get_body
Fetch the complete body for a plan, step, or turn by ID. Supports secret redaction, length limits, and model reasoning inclusion.
Instructions
Return the on-demand body for an event / plan id.
For a plan_event id: the full plan text and/or Codex steps
(bodies are deliberately kept off the event stream so callers pay for
them only when needed). For a user_turn / assistant_turn id:
the turn text.
shallow=True (plans only) returns just the final plan of the id's
task, dropping the bodies of superseded draft revisions — the S6
case where a subagent receives one plan without the draft noise
(dropped_drafts lists the ids that were elided).
max_chars bounds the returned body/text (default 500_000,
generous enough that ordinary bodies are never cut; pass 0 to
disable). When it trips, the field is sliced with a …[truncated]
marker and body_truncated: true is set.
redact=True (default) masks secrets in the emitted
text/body/title/steps as [REDACTED_<TYPE>] and adds
a redactions type→count dict when any replacement happened;
redact=False returns the raw content.
include_thinking=True (turn ids only): attach the model's reasoning
(message.thinking) as a separate thinking field on the returned
body, re-read from the hosting message. Default False leaves the body
byte-identical to the historical shape (no thinking key). Fail-soft:
a turn without reasoning never carries the key.
Returns the body dict, or {"error": ..., "message": ...} on a bad id.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| redact | No | ||
| shallow | No | ||
| max_chars | No | ||
| include_thinking | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||