{"ok":true,"site":{"host":"concord-sandbox.vercel.app","url":"https://concord-sandbox.vercel.app/","type":"live","desc":"Sandbox","tools":[{"name":"concord.status","kind":"answer","impl":"imperative","description":"Given an idempotency key, reports whether that step was carried out, and what it returned. Performs nothing. Used to resolve a commitment interrupted mid-flight.","title":"Was this step ever performed?","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"lookupKey":{"type":"string","description":"The idempotency key to look up"}},"required":["lookupKey"]},"outputSchema":{"type":"object","properties":{"lookupKey":{"type":"string"},"happened":{"type":"boolean","description":"Whether this participant ever honoured that key. Its own record, not a guess."},"result":{"type":["object","null"]}},"required":["lookupKey","happened"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"concord.attest_nothing","kind":"act","impl":"imperative","description":"For a commitment this participant was named in but performed no step of, returns a signed statement saying so, so that its silence in the receipt is provable rather than merely absent. Performs nothing, and refuses if this participant did act.","title":"Sign that this participant did nothing in a commitment","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"sagaId":{"type":"string","description":"The commitment it took no part in"},"parties":{"type":"array","items":{"type":"string"},"description":"Every party to it"},"plan":{"type":"object","description":"The shape of the whole commitment"}},"required":["sagaId"]},"outputSchema":{"type":"object","properties":{"attestation":{"type":"object","description":"A signed statement that this participant performed no step."},"error":{"type":"string","description":"Present if it did act, and so will not sign."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"hold_pass","kind":"act","impl":"imperative","description":"reserve on Skyline Lounge","title":"hold_pass","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","description":"Stable key for this step; a repeat returns the first result"},"sagaId":{"type":"string","description":"The commitment this step belongs to; it is covered by the signature"},"parties":{"type":"array","items":{"type":"string"},"description":"Every vendor in this commitment"},"plan":{"type":"object","description":"The shape of the whole commitment — who is party to it, what guarantee was computed, and every step it consists of. Signed, so no statement can be quietly dropped from the receipt afterwards"},"guests":{"type":"number","description":"How many"}},"required":["idempotencyKey"]},"outputSchema":{"type":"object","properties":{"ref":{"type":"string","description":"The handle a later step names."},"attestation":{"type":"object","description":"This participant's signature over what it just did."},"replayed":{"type":"boolean","description":"True when this key was already honoured and the first answer is repeated."},"error":{"type":"string","description":"A business refusal — no seats, no live hold. An answer, not a failure."},"terminal":{"type":"boolean","description":"True when retrying cannot change the answer."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"issue_pass","kind":"act","impl":"imperative","description":"confirm on Skyline Lounge","title":"issue_pass","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","description":"Stable key for this step; a repeat returns the first result"},"sagaId":{"type":"string","description":"The commitment this step belongs to; it is covered by the signature"},"parties":{"type":"array","items":{"type":"string"},"description":"Every vendor in this commitment"},"plan":{"type":"object","description":"The shape of the whole commitment — who is party to it, what guarantee was computed, and every step it consists of. Signed, so no statement can be quietly dropped from the receipt afterwards"},"ref":{"type":"string","description":"Reference from the earlier step"}},"required":["idempotencyKey"]},"outputSchema":{"type":"object","properties":{"ref":{"type":"string","description":"The handle a later step names."},"attestation":{"type":"object","description":"This participant's signature over what it just did."},"replayed":{"type":"boolean","description":"True when this key was already honoured and the first answer is repeated."},"error":{"type":"string","description":"A business refusal — no seats, no live hold. An answer, not a failure."},"terminal":{"type":"boolean","description":"True when retrying cannot change the answer."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"drop_hold","kind":"transact","impl":"imperative","description":"cancel on Skyline Lounge","title":"drop_hold","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"idempotencyKey":{"type":"string","description":"Stable key for this step; a repeat returns the first result"},"sagaId":{"type":"string","description":"The commitment this step belongs to; it is covered by the signature"},"parties":{"type":"array","items":{"type":"string"},"description":"Every vendor in this commitment"},"plan":{"type":"object","description":"The shape of the whole commitment — who is party to it, what guarantee was computed, and every step it consists of. Signed, so no statement can be quietly dropped from the receipt afterwards"},"ref":{"type":"string","description":"Reference from the earlier step"}},"required":["idempotencyKey"]},"outputSchema":{"type":"object","properties":{"ref":{"type":"string","description":"The handle a later step names."},"attestation":{"type":"object","description":"This participant's signature over what it just did."},"replayed":{"type":"boolean","description":"True when this key was already honoured and the first answer is repeated."},"error":{"type":"string","description":"A business refusal — no seats, no live hold. An answer, not a failure."},"terminal":{"type":"boolean","description":"True when retrying cannot change the answer."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"concord.protocol","kind":"act","impl":"imperative","description":"How lounge can take part in a multi-vendor commitment: which tools reserve, confirm, cancel, execute or compensate, and whether anything here can be undone.","title":"Declare commitment protocol","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"outputSchema":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"origin":{"type":"string"},"keyId":{"type":["string","null"],"description":"Which published key signs this participant's statements."},"steps":{"type":"object","description":"phase -> { tool, ttlSeconds?, refund? }. The phases present are what this participant can commit to, and the whole guarantee is derived from them."},"irreversible":{"type":"boolean"},"note":{"type":["string","null"]}},"required":["id","origin","steps"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","apiSurface":"spec","toolCount":6}}