Skip to content
Developer Preview

PendingRequestPointer

A late-joiner pointer at an unsettled server-initiated request. The full payloads arrive as re-issued server-to-client requests right after a session/resume response; session/read never re-issues them.

A second instance, RULED: the flat discriminated-object precedent is accepted for this type too, on the ApprovalSubject precedent, with the serialized JSON unchanged. A strict union node kind may be funded later; if it is, it must cover both this type and TurnInputPart. the protocol ratifies two kind-discriminated entry shapes ({kind: "approval", approvalId, viewCursor} / {kind: "userInput", userInputId, viewCursor}); this is one flat object with both ids optional, so the published schema accepts {"kind":"approval","userInputId":…} and an entry carrying no id at all. The v1 model names no object-variant union (the ApprovalSubject precedent, followed for TurnInputPart), and this instance differs from that one in a way the ruling should see: kind here is an OPEN enum, where TurnInputPart.type is closed.

  • approvalId
  • kind
  • userInputId
  • viewCursor
Source

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

{
"description": "A late-joiner pointer at an unsettled server-initiated request. The full payloads arrive as re-issued\nserver-to-client requests right after a `session/resume` response; `session/read` never re-issues them.\n\n**A second instance, RULED: the\nflat discriminated-object precedent is accepted for this type too, on the\n`ApprovalSubject` precedent, with the serialized JSON unchanged. A strict\nunion node kind may be funded later; if it is, it must cover both this\ntype and `TurnInputPart`.** the protocol ratifies two\nkind-discriminated entry shapes (`{kind: \"approval\", approvalId,\nviewCursor}` / `{kind: \"userInput\", userInputId, viewCursor}`); this is one\nflat object with both ids optional, so the published schema accepts\n`{\"kind\":\"approval\",\"userInputId\":…}` and an entry carrying no id at all.\nThe v1 model names no object-variant union (the `ApprovalSubject`\nprecedent, followed for `TurnInputPart`), and this instance differs from\nthat one in a way the ruling should see: `kind` here is an OPEN enum,\nwhere `TurnInputPart.type` is closed.",
"properties": {
"approvalId": {
"description": "Present on an `approval` entry.",
"type": "string"
},
"kind": {
"$ref": "#/$defs/PendingRequestKind",
"description": "The discriminator; v1 values `approval` and `userInput`."
},
"userInputId": {
"description": "Present on a `userInput` entry.",
"type": "string"
},
"viewCursor": {
"description": "The cursor the request opened at.",
"type": "string"
}
},
"required": [
"kind",
"viewCursor"
],
"type": "object"
}