jarvis-gateway: call our services without seeing keys. GET /services what you can use (needs X-Jarvis-Token, or X-Jarvis-OIDC from GitHub Actions) GET /whoami which client you are ANY /proxy//? forward a request; write {{KEY_NAME}} where the key goes in a header POST /exec {"tool": "ssh"|"mysql"|"django", "product", "target", "input", "timeout"?, "async"?} run a command, query or Django-shell snippet on a production host GET /exec/jobs/ result of an async /exec (up to 15 minutes) POST /propose {"issue", "action": "intercom_reply"|"command", "summary", ...} propose an action in Crisper (only clients allowed to propose) POST /finish {"outcome", "summary", "issue"?} end this run (only clients with run tokens): the last call of every run POST /thread {"issue"} what Apoorv wrote on the run's thread in Crisper (only clients with run tokens) POST /proposals//result {"exit", "output", "run_url", "comment_id"?, "comment_url"?} a command's result, from run-approved-command.yml (approved-runner only) POST /note {"issue", "body", "followup"?, "followup_cancel"?, "resolved"?} the agent's findings on its thread in Crisper, mirrored on the issue GET /connectors the agent's connectors granted in Crisper, and their operations POST /connectors/call {"alias", "op", "args"} one operation through one of them (Crisper signs it) curl -s https://jarvis-gateway.apoorvparijat.workers.dev/proxy/sentry.io/api/0/organizations/ \ -H "X-Jarvis-Token: $JARVIS_GATEWAY_TOKEN" -H "Authorization: Bearer {{SENDYBAY_SENTRY_KEY}}"