Checkpoint the work
checkpoint_putSave where the work got to, in a STRUCTURED shape so the next invocation can actually act on it. FREE. objective and next_action are REQUIRED and a checkpoint without them is refused — a vague checkpoint produces a vague briefing, so the schema is the guardrail. Work state is small: aim for a few kilobytes, not a transcript. The ENVELOPE (objective, next_action, status, files, risks and the rest) is cleartext and is what resume_packet synthesizes from. The BODY (body, state, provider_extras) is opaque — never parsed, indexed or logged in any mode. Set privacy_mode:'client_key' and encrypt the body yourself if it is sensitive; we then cannot read it and never hold your key. FREE — this tool never charges. Authenticate with Authorization: Bearer , or pass agent_key as an argument if your host cannot set headers. Equivalent HTTP route: POST /v1/checkpoint/put.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | BODY, OPAQUE. Full context, reasoning, file contents — anything sensitive. Never parsed, indexed or logged in any mode. Send ciphertext here with privacy_mode:'client_key'. | |
| step | No | ENVELOPE. Optional short step label. Example: 'step-3'. | |
| files | No | ENVELOPE. File references or paths — references, not contents. Contents go in `body`. Example: '[]'. | |
| risks | No | ENVELOPE. Known risks. Example: '[]'. | |
| scope | Yes | The unit of work. Alias: workflow_id. Namespace-scoped. Example: 'permit-review-2026-08'. | |
| state | No | BODY, OPAQUE. Free-form resume state, never parsed. Example: '{"cursor":"abc"}'. | |
| due_by | No | ENVELOPE. ISO-8601 deadline for the work, if it has one. Example: '2026-08-20T00:00:00Z'. | |
| status | No | ENVELOPE. Where the work stands, e.g. in_progress / blocked / waiting / done. Your vocabulary; we do not interpret it. Example: 'in_progress'. | |
| evidence | No | ENVELOPE. References supporting the verified state. Example: '[]'. | |
| priority | No | ENVELOPE. 0 (highest) to 9. Example: '5'. | |
| agent_key | No | Your agent_secret, if your MCP host cannot set the Authorization header. Prefer the header. | |
| artifacts | No | ENVELOPE. Artifact references produced so far (ids, URLs). Example: '[]'. | |
| objective | Yes | ENVELOPE. REQUIRED. The goal, as currently stated. <=2048 chars. Example: 'Decide whether permit P-1 is a sales opportunity'. | |
| remaining | No | ENVELOPE. What still has to be done. Example: '["price it","draft the email"]'. | |
| tools_used | No | ENVELOPE. Tools already called, so the next invocation does not redo the work. Example: '[]'. | |
| next_action | Yes | ENVELOPE. REQUIRED. The single next step, concretely. Alias: next_step. <=2048 chars. Example: 'Call the pricing API for SKU-88 and compare to quote'. | |
| ttl_seconds | No | Retention. Default 2592000 (30d), max 7776000 (90d). Example: '2592000'. | |
| dependencies | No | ENVELOPE. What this work depends on. Example: '[]'. | |
| privacy_mode | No | 'none' (default; body stored as given, still never introspected) or 'client_key' (you encrypted it; we cannot read it and never hold your key). 'escrow' is reserved and not enabled. Example: 'none'. | |
| open_questions | No | ENVELOPE. Unresolved questions blocking or shaping the work. Example: '[]'. | |
| verified_state | No | ENVELOPE. A SHORT summary of what was actually CONFIRMED (not assumed). Put the detail in `body`. Example: '{"permit_fetched":true}'. | |
| provider_extras | No | BODY, OPAQUE. Vendor/framework-specific state. Stored and returned verbatim, never interpreted. Example: '{}'. | |
| budget_remaining | No | ENVELOPE. Whatever budget means for you — calls, tokens, USDC. Example: '{"usdc":"0.05"}'. |