task/create
Server → TM round-trip asking whether the TM accepts a newly requested task. Triggered from thetask/request handler after
the task row is inserted (status "waiting") and before the
requester observes any state.
The TM owns the post-accept lifecycle:
- On
acceptthe server transitions the task to"active"and firestask/createdto the requester. The TM SHOULD then calltask/conversation/createto honor the requester’sinitialConversationhint if it chose to. - On
reject(or timeout / RPC error / decode failure) the server transitions the task to"failed"and firestask/failedto the requester.
DispatchAuthorize /
MessagesAuthorize: timeout synthesizes
{ decision: "reject", reason: "timeout" }; an unknown app or
RPC/decode failure synthesizes reason: "tm_unreachable".
Durability note: the task/request handler inserts the task row
(waiting) BEFORE this callback’s network round-trip, and the
terminal setStatus runs AFTER it. The sequence is not atomic
(the callback is a network call, not a DB op), so a crash or fiber
interrupt in that window can strand a task in waiting. Stranded
waiting tasks are invisible to delivery (no conversation, no
participants observe them) and are reaped by follow-up work (the
stale-waiting-task sweep, #684).
Parameters
Branded TaskId
Branded AgentId
The invitedAgentIds field.
The initialConversation field.
The receivedAt field.
Response
The verdict field.