mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
Include spawn agent model metadata in app-server items (#14410)
- add model and reasoning effort to app-server collab spawn items and notifications - regenerate app-server protocol schemas for the new fields --------- Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
@@ -3059,6 +3059,10 @@
|
||||
"description": "Identifier for the collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent.",
|
||||
"type": "string"
|
||||
},
|
||||
"new_agent_nickname": {
|
||||
"description": "Optional nickname assigned to the new agent.",
|
||||
"type": [
|
||||
@@ -3088,6 +3092,14 @@
|
||||
"description": "Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the beginning.",
|
||||
"type": "string"
|
||||
},
|
||||
"reasoning_effort": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent."
|
||||
},
|
||||
"sender_thread_id": {
|
||||
"allOf": [
|
||||
{
|
||||
@@ -3114,7 +3126,9 @@
|
||||
},
|
||||
"required": [
|
||||
"call_id",
|
||||
"model",
|
||||
"prompt",
|
||||
"reasoning_effort",
|
||||
"sender_thread_id",
|
||||
"status",
|
||||
"type"
|
||||
@@ -9278,6 +9292,10 @@
|
||||
"description": "Identifier for the collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent.",
|
||||
"type": "string"
|
||||
},
|
||||
"new_agent_nickname": {
|
||||
"description": "Optional nickname assigned to the new agent.",
|
||||
"type": [
|
||||
@@ -9307,6 +9325,14 @@
|
||||
"description": "Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the beginning.",
|
||||
"type": "string"
|
||||
},
|
||||
"reasoning_effort": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent."
|
||||
},
|
||||
"sender_thread_id": {
|
||||
"allOf": [
|
||||
{
|
||||
@@ -9333,7 +9359,9 @@
|
||||
},
|
||||
"required": [
|
||||
"call_id",
|
||||
"model",
|
||||
"prompt",
|
||||
"reasoning_effort",
|
||||
"sender_thread_id",
|
||||
"status",
|
||||
"type"
|
||||
|
||||
@@ -1588,6 +1588,18 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"ReasoningSummaryPartAddedNotification": {
|
||||
"properties": {
|
||||
"itemId": {
|
||||
@@ -2375,6 +2387,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -2382,6 +2401,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -4422,6 +4422,10 @@
|
||||
"description": "Identifier for the collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent.",
|
||||
"type": "string"
|
||||
},
|
||||
"new_agent_nickname": {
|
||||
"description": "Optional nickname assigned to the new agent.",
|
||||
"type": [
|
||||
@@ -4451,6 +4455,14 @@
|
||||
"description": "Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the beginning.",
|
||||
"type": "string"
|
||||
},
|
||||
"reasoning_effort": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/v2/ReasoningEffort"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent."
|
||||
},
|
||||
"sender_thread_id": {
|
||||
"allOf": [
|
||||
{
|
||||
@@ -4477,7 +4489,9 @@
|
||||
},
|
||||
"required": [
|
||||
"call_id",
|
||||
"model",
|
||||
"prompt",
|
||||
"reasoning_effort",
|
||||
"sender_thread_id",
|
||||
"status",
|
||||
"type"
|
||||
@@ -15802,6 +15816,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -15809,6 +15830,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/v2/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -6224,6 +6224,10 @@
|
||||
"description": "Identifier for the collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent.",
|
||||
"type": "string"
|
||||
},
|
||||
"new_agent_nickname": {
|
||||
"description": "Optional nickname assigned to the new agent.",
|
||||
"type": [
|
||||
@@ -6253,6 +6257,14 @@
|
||||
"description": "Initial prompt sent to the agent. Can be empty to prevent CoT leaking at the beginning.",
|
||||
"type": "string"
|
||||
},
|
||||
"reasoning_effort": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent."
|
||||
},
|
||||
"sender_thread_id": {
|
||||
"allOf": [
|
||||
{
|
||||
@@ -6279,7 +6291,9 @@
|
||||
},
|
||||
"required": [
|
||||
"call_id",
|
||||
"model",
|
||||
"prompt",
|
||||
"reasoning_effort",
|
||||
"sender_thread_id",
|
||||
"status",
|
||||
"type"
|
||||
@@ -13569,6 +13583,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -13576,6 +13597,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -374,6 +374,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -751,6 +763,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -758,6 +777,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -374,6 +374,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -751,6 +763,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -758,6 +777,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -488,6 +488,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -865,6 +877,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -872,6 +891,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -1349,6 +1349,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1356,6 +1363,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -1349,6 +1349,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1356,6 +1363,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -1349,6 +1349,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1356,6 +1363,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -511,6 +511,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"SessionSource": {
|
||||
"oneOf": [
|
||||
{
|
||||
@@ -1103,6 +1115,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -1110,6 +1129,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -488,6 +488,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -865,6 +877,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -872,6 +891,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -488,6 +488,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -865,6 +877,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -872,6 +891,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -488,6 +488,18 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ReasoningEffort": {
|
||||
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
|
||||
"enum": [
|
||||
"none",
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high",
|
||||
"xhigh"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"TextElement": {
|
||||
"properties": {
|
||||
"byteRange": {
|
||||
@@ -865,6 +877,13 @@
|
||||
"description": "Unique identifier for this collab tool call.",
|
||||
"type": "string"
|
||||
},
|
||||
"model": {
|
||||
"description": "Model requested for the spawned agent, when applicable.",
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"description": "Prompt text sent as part of the collab tool call, when available.",
|
||||
"type": [
|
||||
@@ -872,6 +891,17 @@
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"reasoningEffort": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/ReasoningEffort"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Reasoning effort requested for the spawned agent, when applicable."
|
||||
},
|
||||
"receiverThreadIds": {
|
||||
"description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
|
||||
"items": {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { AgentStatus } from "./AgentStatus";
|
||||
import type { ReasoningEffort } from "./ReasoningEffort";
|
||||
import type { ThreadId } from "./ThreadId";
|
||||
|
||||
export type CollabAgentSpawnEndEvent = {
|
||||
@@ -30,6 +31,14 @@ new_agent_role?: string | null,
|
||||
* beginning.
|
||||
*/
|
||||
prompt: string,
|
||||
/**
|
||||
* Model requested for the spawned agent.
|
||||
*/
|
||||
model: string,
|
||||
/**
|
||||
* Reasoning effort requested for the spawned agent.
|
||||
*/
|
||||
reasoning_effort: ReasoningEffort,
|
||||
/**
|
||||
* Last known status of the new agent reported to the sender agent.
|
||||
*/
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { MessagePhase } from "../MessagePhase";
|
||||
import type { ReasoningEffort } from "../ReasoningEffort";
|
||||
import type { JsonValue } from "../serde_json/JsonValue";
|
||||
import type { CollabAgentState } from "./CollabAgentState";
|
||||
import type { CollabAgentTool } from "./CollabAgentTool";
|
||||
@@ -82,6 +83,14 @@ receiverThreadIds: Array<string>,
|
||||
* Prompt text sent as part of the collab tool call, when available.
|
||||
*/
|
||||
prompt: string | null,
|
||||
/**
|
||||
* Model requested for the spawned agent, when applicable.
|
||||
*/
|
||||
model: string | null,
|
||||
/**
|
||||
* Reasoning effort requested for the spawned agent, when applicable.
|
||||
*/
|
||||
reasoningEffort: ReasoningEffort | null,
|
||||
/**
|
||||
* Last known status of the target agents, when available.
|
||||
*/
|
||||
|
||||
@@ -554,6 +554,8 @@ impl ThreadHistoryBuilder {
|
||||
sender_thread_id: payload.sender_thread_id.to_string(),
|
||||
receiver_thread_ids: Vec::new(),
|
||||
prompt: Some(payload.prompt.clone()),
|
||||
model: Some(payload.model.clone()),
|
||||
reasoning_effort: Some(payload.reasoning_effort),
|
||||
agents_states: HashMap::new(),
|
||||
};
|
||||
self.upsert_item_in_current_turn(item);
|
||||
@@ -587,6 +589,8 @@ impl ThreadHistoryBuilder {
|
||||
sender_thread_id: payload.sender_thread_id.to_string(),
|
||||
receiver_thread_ids,
|
||||
prompt: Some(payload.prompt.clone()),
|
||||
model: Some(payload.model.clone()),
|
||||
reasoning_effort: Some(payload.reasoning_effort),
|
||||
agents_states,
|
||||
});
|
||||
}
|
||||
@@ -602,6 +606,8 @@ impl ThreadHistoryBuilder {
|
||||
sender_thread_id: payload.sender_thread_id.to_string(),
|
||||
receiver_thread_ids: vec![payload.receiver_thread_id.to_string()],
|
||||
prompt: Some(payload.prompt.clone()),
|
||||
model: None,
|
||||
reasoning_effort: None,
|
||||
agents_states: HashMap::new(),
|
||||
};
|
||||
self.upsert_item_in_current_turn(item);
|
||||
@@ -624,6 +630,8 @@ impl ThreadHistoryBuilder {
|
||||
sender_thread_id: payload.sender_thread_id.to_string(),
|
||||
receiver_thread_ids: vec![receiver_id.clone()],
|
||||
prompt: Some(payload.prompt.clone()),
|
||||
model: None,
|
||||
reasoning_effort: None,
|
||||
agents_states: [(receiver_id, received_status)].into_iter().collect(),
|
||||
});
|
||||
}
|
||||
@@ -643,6 +651,8 @@ impl ThreadHistoryBuilder {
|
||||
.map(ToString::to_string)
|
||||
.collect(),
|
||||
prompt: None,
|
||||
model: None,
|
||||
reasoning_effort: None,
|
||||
agents_states: HashMap::new(),
|
||||
};
|
||||
self.upsert_item_in_current_turn(item);
|
||||
@@ -676,6 +686,8 @@ impl ThreadHistoryBuilder {
|
||||
sender_thread_id: payload.sender_thread_id.to_string(),
|
||||
receiver_thread_ids,
|
||||
prompt: None,
|
||||
model: None,
|
||||
reasoning_effort: None,
|
||||
agents_states,
|
||||
});
|
||||
}
|
||||
@@ -691,6 +703,8 @@ impl ThreadHistoryBuilder {
|
||||
sender_thread_id: payload.sender_thread_id.to_string(),
|
||||
receiver_thread_ids: vec![payload.receiver_thread_id.to_string()],
|
||||
prompt: None,
|
||||
model: None,
|
||||
reasoning_effort: None,
|
||||
agents_states: HashMap::new(),
|
||||
};
|
||||
self.upsert_item_in_current_turn(item);
|
||||
@@ -715,6 +729,8 @@ impl ThreadHistoryBuilder {
|
||||
sender_thread_id: payload.sender_thread_id.to_string(),
|
||||
receiver_thread_ids: vec![receiver_id],
|
||||
prompt: None,
|
||||
model: None,
|
||||
reasoning_effort: None,
|
||||
agents_states,
|
||||
});
|
||||
}
|
||||
@@ -730,6 +746,8 @@ impl ThreadHistoryBuilder {
|
||||
sender_thread_id: payload.sender_thread_id.to_string(),
|
||||
receiver_thread_ids: vec![payload.receiver_thread_id.to_string()],
|
||||
prompt: None,
|
||||
model: None,
|
||||
reasoning_effort: None,
|
||||
agents_states: HashMap::new(),
|
||||
};
|
||||
self.upsert_item_in_current_turn(item);
|
||||
@@ -757,6 +775,8 @@ impl ThreadHistoryBuilder {
|
||||
sender_thread_id: payload.sender_thread_id.to_string(),
|
||||
receiver_thread_ids: vec![receiver_id],
|
||||
prompt: None,
|
||||
model: None,
|
||||
reasoning_effort: None,
|
||||
agents_states,
|
||||
});
|
||||
}
|
||||
@@ -2325,6 +2345,8 @@ mod tests {
|
||||
sender_thread_id: "00000000-0000-0000-0000-000000000001".into(),
|
||||
receiver_thread_ids: vec!["00000000-0000-0000-0000-000000000002".into()],
|
||||
prompt: None,
|
||||
model: None,
|
||||
reasoning_effort: None,
|
||||
agents_states: [(
|
||||
"00000000-0000-0000-0000-000000000002".into(),
|
||||
CollabAgentState {
|
||||
@@ -2338,6 +2360,63 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn reconstructs_collab_spawn_end_item_with_model_metadata() {
|
||||
let sender_thread_id = ThreadId::try_from("00000000-0000-0000-0000-000000000001")
|
||||
.expect("valid sender thread id");
|
||||
let spawned_thread_id = ThreadId::try_from("00000000-0000-0000-0000-000000000002")
|
||||
.expect("valid receiver thread id");
|
||||
let events = vec![
|
||||
EventMsg::UserMessage(UserMessageEvent {
|
||||
message: "spawn agent".into(),
|
||||
images: None,
|
||||
text_elements: Vec::new(),
|
||||
local_images: Vec::new(),
|
||||
}),
|
||||
EventMsg::CollabAgentSpawnEnd(codex_protocol::protocol::CollabAgentSpawnEndEvent {
|
||||
call_id: "spawn-1".into(),
|
||||
sender_thread_id,
|
||||
new_thread_id: Some(spawned_thread_id),
|
||||
new_agent_nickname: Some("Scout".into()),
|
||||
new_agent_role: Some("explorer".into()),
|
||||
prompt: "inspect the repo".into(),
|
||||
model: "gpt-5.4-mini".into(),
|
||||
reasoning_effort: codex_protocol::openai_models::ReasoningEffort::Medium,
|
||||
status: AgentStatus::Running,
|
||||
}),
|
||||
];
|
||||
|
||||
let items = events
|
||||
.into_iter()
|
||||
.map(RolloutItem::EventMsg)
|
||||
.collect::<Vec<_>>();
|
||||
let turns = build_turns_from_rollout_items(&items);
|
||||
assert_eq!(turns.len(), 1);
|
||||
assert_eq!(turns[0].items.len(), 2);
|
||||
assert_eq!(
|
||||
turns[0].items[1],
|
||||
ThreadItem::CollabAgentToolCall {
|
||||
id: "spawn-1".into(),
|
||||
tool: CollabAgentTool::SpawnAgent,
|
||||
status: CollabAgentToolCallStatus::Completed,
|
||||
sender_thread_id: "00000000-0000-0000-0000-000000000001".into(),
|
||||
receiver_thread_ids: vec!["00000000-0000-0000-0000-000000000002".into()],
|
||||
prompt: Some("inspect the repo".into()),
|
||||
model: Some("gpt-5.4-mini".into()),
|
||||
reasoning_effort: Some(codex_protocol::openai_models::ReasoningEffort::Medium),
|
||||
agents_states: [(
|
||||
"00000000-0000-0000-0000-000000000002".into(),
|
||||
CollabAgentState {
|
||||
status: crate::protocol::v2::CollabAgentStatus::Running,
|
||||
message: None,
|
||||
},
|
||||
)]
|
||||
.into_iter()
|
||||
.collect(),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn rollback_failed_error_does_not_mark_turn_failed() {
|
||||
let events = vec![
|
||||
|
||||
@@ -3946,6 +3946,10 @@ pub enum ThreadItem {
|
||||
receiver_thread_ids: Vec<String>,
|
||||
/// Prompt text sent as part of the collab tool call, when available.
|
||||
prompt: Option<String>,
|
||||
/// Model requested for the spawned agent, when applicable.
|
||||
model: Option<String>,
|
||||
/// Reasoning effort requested for the spawned agent, when applicable.
|
||||
reasoning_effort: Option<ReasoningEffort>,
|
||||
/// Last known status of the target agents, when available.
|
||||
agents_states: HashMap<String, CollabAgentState>,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user