mirror of
https://github.com/openai/codex.git
synced 2026-11-06 20:20:34 +00:00
## What changed
Allow experimental clients to request `deferOutput: {"commandExecution": true}` in `thread/items/list` for a specific `turnId`. Completed commands with a recorded completion time, exit code zero, and nonempty saved output return `outputDeferred: true` and `item.aggregatedOutput: null`. Clients can retrieve the complete output through `thread/items/read` using the turn and item IDs.
Keep full output by default and for listings across turns. Make conversion from `ThreadItemEntry` to `ThreadItem` fallible so Rust consumers detect deferred output instead of treating an incomplete item as complete.
## Testing
Add integration coverage for experimental capability gating, default and disabled options, command status and output eligibility, listings across turns, deferred-item conversion, and full output retrieval by item ID.
GitOrigin-RevId: d6bfac34bb68f7e3b327fd5553270ed6d0fe87cf
111 lines
2.6 KiB
JSON
Generated
111 lines
2.6 KiB
JSON
Generated
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"SortDirection": {
|
|
"enum": [
|
|
"asc",
|
|
"desc"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"ThreadItemOutputDeferral": {
|
|
"properties": {},
|
|
"type": "object"
|
|
},
|
|
"ThreadItemsListAnchor": {
|
|
"description": "An exclusive item position within the requested visible turn.",
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"itemId": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"item"
|
|
],
|
|
"title": "ItemThreadItemsListAnchorType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"itemId",
|
|
"type"
|
|
],
|
|
"title": "ItemThreadItemsListAnchor",
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"ThreadItemsListCursor": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "#/definitions/ThreadItemsListAnchor"
|
|
}
|
|
],
|
|
"description": "Starting position for an item-history page."
|
|
}
|
|
},
|
|
"properties": {
|
|
"cursor": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/ThreadItemsListCursor"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Opaque continuation cursor or an exclusive item anchor in the requested visible turn. An item anchor requires a non-empty `turnId`; ascending (the default) returns items after it, and descending returns items before it. Continue with the returned string cursor."
|
|
},
|
|
"deferOutput": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/ThreadItemOutputDeferral"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "For a single turn, choose which saved outputs to fetch separately by item ID."
|
|
},
|
|
"limit": {
|
|
"description": "Optional item page size.",
|
|
"format": "uint32",
|
|
"minimum": 0.0,
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"sortDirection": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/SortDirection"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional item pagination direction; defaults to ascending."
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"turnId": {
|
|
"description": "Optional turn id to filter by. When omitted, returns items across the thread.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"threadId"
|
|
],
|
|
"title": "ThreadItemsListParams",
|
|
"type": "object"
|
|
} |