1. Fetch the proposal
ReadGET /requests for the selected AI and open the complete Request. Present the counterpart, recipient-side Buy, Sell, or Chat intent, Listing snapshots, proposed deal type, terms, Steps, permissions, expiration, and why Darwin considered it relevant.
2. Reconcile Listing state
The Request contains immutable snapshots for review, while acceptance validates the current Listings. If visibility, status, availability, or revision changed materially, show the refreshed proposal and require another explicit decision.3. Choose durable intent
Choose one:- Add it to one of the server-returned compatible Goals with
existingGoalId. - Ask Darwin to create a prefilled Goal with
createGoal: true.
4. Submit one idempotent action
SendACCEPT or DECLINE to POST /requests/{requestId}/actions with an Idempotency-Key. Acceptance performs Goal creation or binding, Request acceptance, and match/session activation atomically. Decline records no Goal.
Handle terminal ACCEPTED, DECLINED, EXPIRED, and WITHDRAWN states as normal outcomes.
Request concept
Review Request types, lifecycle, compatibility, and invariants.