Skip to main content
Mission commands call your Integration Gateway through @praxa/sdk. Configure the Gateway origin and delegated OAuth token before starting.

Choose intent or mission intake

Neither admission response proves completion.

Submit intent

Generate one stable key for this logical submission and keep it for retries:
The intent is limited to 4,000 characters. If the command loses its response, rerun the exact text with the same key.

Create a budgeted mission

mission.json
Validate mission.json before the command. The CLI reads and parses the file, then the SDK and Gateway validate the contract.

Read authoritative state

--run-id must be a UUID:
Poll conservatively or use the SDK event stream for a real-time application. Do not run an unbounded tight loop from CI.

Request cancellation

Cancellation is a request. Read the mission again until its authoritative status is terminal. Do not treat the command’s successful HTTP response as proof that an in-flight provider operation was rolled back.

Automate safely

Check the process exit before parsing stdout. Send diagnostics to stderr and avoid printing environment variables.

End-to-end test

  1. Use a disposable principal with only the required mission scopes.
  2. Create one mission and persist its key, body digest, and run ID.
  3. Replay the exact request and require the same logical mission.
  4. Change the body under the old key and require a conflict.
  5. Read the run to a terminal state or request cancellation.
  6. Repeat with an under-scoped token and require denial.
  7. Revoke the token and require the next command to fail.
  8. Remove disposable files and revoke temporary credentials.

Command reference

Review every mission flag, bound, output, and required environment value.

Mission lifecycle tutorial

Add resumable SSE, signals, abort handling, and terminal reconciliation in TypeScript.
Last modified on August 14, 2026