TurnStartParams
turn/start params.
turn/start.providerRequestOptions is deliberately absent: RULED to stay off the published schema. The
schema is the contract, and a free-form-object node kind is revisited only
if the experimental field graduates.
Fields and variants
Section titled “Fields and variants”commandIddisplayTextifBusyinputreasoningEffortsessionIdtokenBudget— ExperimentaluserShellworkspaceRoots
Source
schema/msp/experimental/msp.schema.json#/types/TurnStartParams
{ "description": "`turn/start` params.\n\n`turn/start.providerRequestOptions` is deliberately absent: **RULED to stay off the published schema.** The\nschema is the contract, and a free-form-object node kind is revisited only\nif the experimental field graduates.", "properties": { "commandId": { "description": "The idempotency handle (UUIDv7). The fresh turn's `turnId`\nderives from it.", "type": "string" }, "displayText": { "description": "Presentation form of the prompt for transcripts. Durable; carried on\nthe resulting user-message view item. Never model-visible.", "type": "string" }, "ifBusy": { "$ref": "#/$defs/IfBusy", "description": "Disposition when a turn is already running; default `queue`." }, "input": { "description": "Ordered content parts; required and non-empty.", "items": { "$ref": "#/$defs/TurnInputPart" }, "type": "array" }, "reasoningEffort": { "$ref": "#/$defs/ReasoningEffort", "description": "Reasoning tier sampled at submission for this turn." }, "sessionId": { "description": "The target session.", "type": "string" }, "tokenBudget": { "description": "This turn's token budget in tokens: an\ninteger floor of 1, riding to workflow-launch admission and inert\nwhen no workflow launches. Omitted means no budget; 0 or a\nnon-integer is invalid params, as is explicit `null`. No wire upper bound beyond the\ninteger type. Experimental: D6 rules\nnames and shape only, v1 membership stays open, so the member\nships off the stable bundle until a v1 ruling graduates it.", "minimum": 1, "type": "integer", "x-msp-descriptor": "turn/start.tokenBudget", "x-msp-stability": "experimental" }, "userShell": { "$ref": "#/$defs/TurnUserShell", "description": "A queued `!` shell action riding this turn:\nthe `!cmd` typed while a turn runs, executed at the next\nmodel-call boundary before any later steer. Exclusive with `text`\nand `skill` input; `input` may be empty only when this member is\npresent. Capability-gated on `userShell`: a carrying turn on a\nconnection without the grant fails `-32010 capabilityRequired`.\nExplicit `null` is invalid params (the null-tolerant set is\nclosed). A v1 stable member." }, "workspaceRoots": { "description": "A sticky REPLACEMENT of the session's runtime workspace-root set,\nbinding at this turn's launch and persisting for subsequent turns\nuntil replaced again — unlike `reasoningEffort`, which is\nthis-turn-only. Same shape and validation as\n`session/start.workspaceRoots`; invalid params on an explicit\n`ifBusy: \"steer\"` submit and so is explicit `null`; omitted means \"unchanged\", never\n\"reset\".", "items": { "type": "string" }, "type": "array" } }, "required": [ "commandId", "input", "sessionId" ], "type": "object"}