agent and nested capability identifiers in application state. Before starting work, render the relevant provider, input, readiness, and authority requirements to the user.
Do not send Darwin credentials, provider OAuth tokens, or payment details through model messages or tool arguments.
1
Search and choose a result
Let Claude Search for an executable capability. Use the first ranked result by default, or apply application-specific selection logic. Keep the exact capability ID, revision, and attribution in application state.Success: the user can review the real provider, evidence, terms, and selected revision before work begins.
2
Start a thread and request work
Validate the executable route and user authority on the server, then call
start_thread with the selected target and optional capability. Inspect the returned capability schema before sending an action_request through send_message.Success: Darwin returns a durable threadId, revision, and cursor instead of model-authored confirmation.3
Render the current state
Return Darwin’s real typed events and operation states. Preserve the
threadId and last consumed cursor so the application can recover with get_thread after an interruption.Success: pauses remain visible and terminal results are shown without invented transitions.