Skip to content
Developer Preview

UserInputSettledParams

userInput/settled params: the first durable prompt settlement.

  • answers
  • clarification
  • decidedAt
  • decidedByCommandId
  • outcome
  • reason
  • sessionId
  • sourceRange
  • userInputId
  • viewCursor
Source

schema/msp/experimental/msp.schema.json#/types/UserInputSettledParams

{
"description": "`userInput/settled` params: the first durable prompt settlement.",
"properties": {
"answers": {
"description": "The recorded answers: one per question for `answered`, any confirmed\npartial answers for `interrupted`, and empty for every other outcome.",
"items": {
"$ref": "#/$defs/UserInputAnswer"
},
"type": "array"
},
"clarification": {
"anyOf": [
{
"$ref": "#/$defs/UserInputClarification"
},
{
"type": "null"
}
],
"description": "The user's free-form clarification when the outcome is `clarified`;\n`null` otherwise."
},
"decidedAt": {
"description": "The decision time as RFC3339, projected from the durable settlement\nrecord's own stamp (ADR 45450 D3, ruling 2026-10-01): always present\non the wire (schema-required, `null`-able); decoders still tolerate\nits absence (`default`, never skipped — keeps every member present), and current hosts always populate it.",
"type": [
"string",
"null"
]
},
"decidedByCommandId": {
"description": "The `commandId` of the client command that settled the prompt; `null`\nwhen no command did, for example after a timeout or an abort.",
"type": [
"string",
"null"
]
},
"outcome": {
"$ref": "#/$defs/UserInputOutcome",
"description": "How the prompt ended."
},
"reason": {
"description": "The reason, when one applies: the optional reason given with a cancel,\nor why an `aborted` prompt was closed; `null` otherwise.",
"type": [
"string",
"null"
]
},
"sessionId": {
"description": "The session that owns the prompt.",
"type": "string"
},
"sourceRange": {
"$ref": "#/$defs/SourceRange",
"description": "The stored records this event was folded from: an opaque token clients\nmust not interpret."
},
"userInputId": {
"description": "The prompt that settled. Accept a settlement even for a prompt whose\nrequest you never saw.",
"type": "string"
},
"viewCursor": {
"description": "This event's view cursor: opaque, and strictly increasing within the\nsession.",
"type": "string"
}
},
"required": [
"answers",
"clarification",
"decidedAt",
"decidedByCommandId",
"outcome",
"reason",
"sessionId",
"sourceRange",
"userInputId",
"viewCursor"
],
"type": "object"
}