Skip to content

Structured output

Tools that declare an outputSchema also return structuredContent. The text block stays for clients that only read text. Do not parse the text when structured fields exist.

context_pack is experimental and must not declare an outputSchema.

These tools declare a schema:

ToolPayload
read_filecontent, content_hash, status, truncated. Range fields and continuation when cut. Batch: hash on each files[] entry, not at the top.
write_filepath, bytes_written, content_hash, verified, status, message. Optional backup_id, feedback.
edit_filepath, replacements, lines_added, lines_removed, total_lines, content_hash. Optional backup_id, parent_backup_id, warnings.
multi_editSame family as edit, with successful_edits and total_edits.
search_filesHits, truncated, hidden_count, continuation. Empty is status:empty and is not an error.
list_directoryEntries. Tree output includes truncated and hidden_count.
batch_operationsstatus, kind, success, counts, items, retryable, message. Optional backup_id, rollback_status.
backupstatus, action, message.
list_allowed_directoriesRoots plus version, commit, build date, profile, roots mode, readonly, tool count.
diff_filesDiff payload.
apply_patchApply result.
analyze_codestatus, action, findings, truncated, tool, retryable, message.
security_policyWhether a policy is active. No patterns.
github_issuesIssue payload.
gitlab_issuesIssue payload.

status on mutations is applied, simulated, empty, partial, or failed, depending on the tool. simulated is a dry-run. write_file has no dry-run. Its status is applied.

content_hash is FNV-1a, 8 hex digits, of the full file bytes from the same snapshot as the body (or, for writes, of the reopened host file).

detail (summary, normal, full) shapes structured content on directory_tree, search_files, batch read_file, and help without a tool name. Compact mode trims text. It does not replace detail.