Approve an exact review
Only show approval controls whenavailableActions includes approve. Send the values returned by Get action without modifying them.
1
Read the current Action
Confirm
availableActions contains approve and capture the current review fields.2
Show the exact decision
Present the provider, scope, material terms, expiry, and every consequential value without model-written
substitutions.
3
Collect one explicit choice
Let the user approve or reject. Do not preselect approval or infer it from unrelated conversation.
4
Submit the bound review
Send the exact
approvalId, revision, digest, decision, and a new mutation requestId.Complete connection or payment
connection_required and payment_required can include a typed interaction and first-party Darwin webLink. Open it only after a user gesture, keep the Action nonterminal, then poll the same actionId for backend-confirmed progress.
Darwin authentication, provider authentication, transcript storage, and spending approval are separate. Completing one never silently grants the others.
Use Pay for payment-specific terms and Authenticate for OAuth and credential sources.
Open first-party interactions safely
- Require a user gesture before opening
webLink. - Open only the URL returned for the current Action.
- Keep credentials and payment details out of prompts and tool arguments.
- Treat the Action as nonterminal while the browser flow is open.
- Read the same
actionIdafter the user returns.