auto-model-router 0.4.7 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.omp-plugin/marketplace.json +2 -2
- package/README.md +45 -14
- package/opencode-plugin/auto-model-router.ts +151 -0
- package/opencode-plugin/opencode-plugin.d.ts +39 -0
- package/package.json +1 -1
- package/src/server/http.ts +22 -7
- package/src/util/sse.ts +1 -1
- package/src/wire/openai/responses.ts +365 -0
- package/src/wire/openai/sink.ts +19 -2
- package/src/wire/types.ts +1 -1
- package/test/fixtures/harness/aider.json +47 -0
- package/test/fixtures/harness/codex-responses.json +507 -0
- package/test/fixtures/harness/opencode.json +338 -0
- package/test/harness-requests.test.ts +55 -24
- package/test/wire-responses.test.ts +174 -0
- package/test/wire-sink.test.ts +5 -0
- package/tools/capture-proxy.ts +79 -0
- package/tsconfig.all.json +1 -1
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
{
|
|
2
|
+
"harness": "codex-responses",
|
|
3
|
+
"capturedAtMs": 1788816031609,
|
|
4
|
+
"headers": {
|
|
5
|
+
"content-type": "application/json",
|
|
6
|
+
"user-agent": "codex_exec/0.153.4 (Windows 10.0.26200; x86_64) WindowsTerminal (codex_exec; 0.153.4)",
|
|
7
|
+
"x-omp-harness": "codex"
|
|
8
|
+
},
|
|
9
|
+
"body": {
|
|
10
|
+
"model": "auto",
|
|
11
|
+
"instructions": "You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CLI is an open source project led by OpenAI. You are expected to be precise, safe, and helpful.\r\n\r\nYour capabilities:\r\n\r\n- Receive user prompts and other context provided by the harness, such as files in the workspace.\r\n- Communicate with the user by streaming thinking & responses, and by making & updating pl\u00e2\u20ac\u00a6[17174 chars]",
|
|
12
|
+
"input": [
|
|
13
|
+
{
|
|
14
|
+
"type": "message",
|
|
15
|
+
"id": "msg_01a07dbe-7f45-75a3-a39e-f54cbd405721",
|
|
16
|
+
"role": "developer",
|
|
17
|
+
"content": [
|
|
18
|
+
{
|
|
19
|
+
"type": "input_text",
|
|
20
|
+
"text": "<skills_instructions>\n## Skills\nA skill is a set of local instructions to follow that is stored in a `SKILL.md` file. Below is the list of skills that can be used. Each entry includes a name, description, and a short path that can be expanded into an absolute path using the skill roots table.\n### Skill roots\n- `r0` = `C:/Users/drewa/AppData/Local/Temp/codex-amr/skills/.system`\n### Available skills\u00e2\u20ac\u00a6[2506 chars]"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"type": "input_text",
|
|
24
|
+
"text": "<permissions instructions>\nFilesystem sandboxing defines which files can be read or written. `sandbox_mode` is `read-only`: The sandbox only permits reading files. Network access is restricted.\nApproval policy is currently never. Do not provide the `sandbox_permissions` for any reason, commands will be rejected.\r\n</permissions instructions>"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "message",
|
|
30
|
+
"id": "msg_01a07dbe-7f45-75a3-a39e-f55a095f819b",
|
|
31
|
+
"role": "user",
|
|
32
|
+
"content": [
|
|
33
|
+
{
|
|
34
|
+
"type": "input_text",
|
|
35
|
+
"text": "<environment_context>\n <cwd>C:\\Users\\drewa\\AppData\\Local\\Temp\\codex-amr</cwd>\n <shell>powershell</shell>\n <current_date>2026-09-07</current_date>\n <timezone>America/Los_Angeles</timezone>\n <filesystem><workspace_roots><root>C:\\Users\\drewa\\AppData\\Local\\Temp\\codex-amr</root></workspace_roots><permission_profile type=\"managed\"><file_system type=\"restricted\"><entry access=\"read\"><special>:root</\u00e2\u20ac\u00a6[487 chars]"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"type": "message",
|
|
41
|
+
"id": "msg_01a07dbe-7f65-7c93-9733-b323cc7bbec6",
|
|
42
|
+
"role": "user",
|
|
43
|
+
"content": [
|
|
44
|
+
{
|
|
45
|
+
"type": "input_text",
|
|
46
|
+
"text": "Reply with the single word ok"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"tools": [
|
|
52
|
+
{
|
|
53
|
+
"type": "function",
|
|
54
|
+
"name": "exec_command",
|
|
55
|
+
"description": "Runs a command in a PTY, returning output or a session ID for ongoing interaction.\n\nWindows safety rules:\n- Do not compose destructive filesystem commands across shells. Do not enumerate paths in PowerShell and then pass them to `cmd /c`, batch builtins, or another shell for deletion or moving. Use one shell end-to-end, prefer native PowerShell cmdlets such as `Remove-Item` / `Move-Item` with `-Li\u00e2\u20ac\u00a6[986 chars]",
|
|
56
|
+
"strict": false,
|
|
57
|
+
"parameters": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"properties": {
|
|
60
|
+
"cmd": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"description": "Shell command to execute."
|
|
63
|
+
},
|
|
64
|
+
"justification": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"description": "User-facing approval question for `require_escalated`; omit otherwise."
|
|
67
|
+
},
|
|
68
|
+
"login": {
|
|
69
|
+
"type": "boolean",
|
|
70
|
+
"description": "True runs the shell with -l/-i semantics; false disables them. Defaults to true."
|
|
71
|
+
},
|
|
72
|
+
"max_output_tokens": {
|
|
73
|
+
"type": "number",
|
|
74
|
+
"description": "Output token budget. Defaults to 10000 tokens; larger requests may be capped by policy."
|
|
75
|
+
},
|
|
76
|
+
"prefix_rule": {
|
|
77
|
+
"type": "array",
|
|
78
|
+
"description": "Reusable approval prefix for `cmd`, only with `sandbox_permissions: \"require_escalated\"`; for example [\"git\", \"pull\"].",
|
|
79
|
+
"items": {
|
|
80
|
+
"type": "string"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"sandbox_permissions": {
|
|
84
|
+
"type": "string",
|
|
85
|
+
"description": "Per-command sandbox override. Defaults to `use_default`; use `require_escalated` for unsandboxed execution.",
|
|
86
|
+
"enum": [
|
|
87
|
+
"use_default",
|
|
88
|
+
"require_escalated"
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"shell": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"description": "Shell binary to launch. Defaults to the user's default shell."
|
|
94
|
+
},
|
|
95
|
+
"tty": {
|
|
96
|
+
"type": "boolean",
|
|
97
|
+
"description": "True allocates a PTY for the command; false or omitted uses plain pipes."
|
|
98
|
+
},
|
|
99
|
+
"workdir": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"description": "Working directory for the command. Defaults to the turn cwd."
|
|
102
|
+
},
|
|
103
|
+
"yield_time_ms": {
|
|
104
|
+
"type": "number",
|
|
105
|
+
"description": "Maximum time to wait before returning a session ID for a still-running command. Commands that finish sooner return immediately. For ordinary commands, omit this parameter to use the 10000 ms default. Effective range on Windows is 10000-30000 ms."
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"required": [
|
|
109
|
+
"cmd"
|
|
110
|
+
],
|
|
111
|
+
"additionalProperties": false
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"type": "function",
|
|
116
|
+
"name": "write_stdin",
|
|
117
|
+
"description": "Writes characters to an existing unified exec session and returns recent output.",
|
|
118
|
+
"strict": false,
|
|
119
|
+
"parameters": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"properties": {
|
|
122
|
+
"chars": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"description": "Bytes to write to stdin. Defaults to empty, which polls without writing."
|
|
125
|
+
},
|
|
126
|
+
"max_output_tokens": {
|
|
127
|
+
"type": "number",
|
|
128
|
+
"description": "Output token budget. Defaults to 10000 tokens; larger requests may be capped by policy."
|
|
129
|
+
},
|
|
130
|
+
"session_id": {
|
|
131
|
+
"type": "number",
|
|
132
|
+
"description": "Identifier of the running unified exec session."
|
|
133
|
+
},
|
|
134
|
+
"yield_time_ms": {
|
|
135
|
+
"type": "number",
|
|
136
|
+
"description": "Wait before yielding output. Non-empty writes default to 250 ms and cap at 30000 ms; empty polls wait 5000-300000 ms by default."
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"required": [
|
|
140
|
+
"session_id"
|
|
141
|
+
],
|
|
142
|
+
"additionalProperties": false
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"type": "function",
|
|
147
|
+
"name": "request_user_input",
|
|
148
|
+
"description": "Request user input for one to three short questions and wait for the response. This tool is only available in Plan mode.",
|
|
149
|
+
"strict": false,
|
|
150
|
+
"parameters": {
|
|
151
|
+
"type": "object",
|
|
152
|
+
"properties": {
|
|
153
|
+
"questions": {
|
|
154
|
+
"type": "array",
|
|
155
|
+
"description": "Questions to show the user. Prefer 1 and do not exceed 3",
|
|
156
|
+
"items": {
|
|
157
|
+
"type": "object",
|
|
158
|
+
"properties": {
|
|
159
|
+
"header": {
|
|
160
|
+
"type": "string",
|
|
161
|
+
"description": "Short header label shown in the UI (12 or fewer chars)."
|
|
162
|
+
},
|
|
163
|
+
"id": {
|
|
164
|
+
"type": "string",
|
|
165
|
+
"description": "Stable identifier for mapping answers (snake_case)."
|
|
166
|
+
},
|
|
167
|
+
"options": {
|
|
168
|
+
"type": "array",
|
|
169
|
+
"description": "Provide 2-3 mutually exclusive choices. Put the recommended option first and suffix its label with \"(Recommended)\". Do not include an \"Other\" option in this list; the client will add a free-form \"Other\" option automatically.",
|
|
170
|
+
"items": {
|
|
171
|
+
"type": "object",
|
|
172
|
+
"properties": {
|
|
173
|
+
"description": {
|
|
174
|
+
"type": "string",
|
|
175
|
+
"description": "One short sentence explaining impact/tradeoff if selected."
|
|
176
|
+
},
|
|
177
|
+
"label": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"description": "User-facing label (1-5 words)."
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"required": [
|
|
183
|
+
"label",
|
|
184
|
+
"description"
|
|
185
|
+
],
|
|
186
|
+
"additionalProperties": false
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"question": {
|
|
190
|
+
"type": "string",
|
|
191
|
+
"description": "Single-sentence prompt shown to the user."
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"required": [
|
|
195
|
+
"id",
|
|
196
|
+
"header",
|
|
197
|
+
"question",
|
|
198
|
+
"options"
|
|
199
|
+
],
|
|
200
|
+
"additionalProperties": false
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"required": [
|
|
205
|
+
"questions"
|
|
206
|
+
],
|
|
207
|
+
"additionalProperties": false
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"type": "function",
|
|
212
|
+
"name": "view_image",
|
|
213
|
+
"description": "View a local image file from the filesystem when visual inspection is needed. Use this for images already available on disk.",
|
|
214
|
+
"strict": false,
|
|
215
|
+
"parameters": {
|
|
216
|
+
"type": "object",
|
|
217
|
+
"properties": {
|
|
218
|
+
"path": {
|
|
219
|
+
"type": "string",
|
|
220
|
+
"description": "Local filesystem path to an image file."
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
"required": [
|
|
224
|
+
"path"
|
|
225
|
+
],
|
|
226
|
+
"additionalProperties": false
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"type": "namespace",
|
|
231
|
+
"name": "multi_agent_v1",
|
|
232
|
+
"description": "Tools for spawning and managing sub-agents.",
|
|
233
|
+
"tools": [
|
|
234
|
+
{
|
|
235
|
+
"type": "function",
|
|
236
|
+
"name": "close_agent",
|
|
237
|
+
"description": "Close an agent and any open descendants when they are no longer needed, and return the target agent's previous status before shutdown was requested. Completed agents remain open and count toward the concurrency limit until closed. Don't keep agents open for too long if they are not needed anymore.",
|
|
238
|
+
"strict": false,
|
|
239
|
+
"parameters": {
|
|
240
|
+
"type": "object",
|
|
241
|
+
"properties": {
|
|
242
|
+
"target": {
|
|
243
|
+
"type": "string",
|
|
244
|
+
"description": "Agent id to close (from spawn_agent)."
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
"required": [
|
|
248
|
+
"target"
|
|
249
|
+
],
|
|
250
|
+
"additionalProperties": false
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"type": "function",
|
|
255
|
+
"name": "resume_agent",
|
|
256
|
+
"description": "Resume a previously closed agent by id so it can receive send_input and wait_agent calls.",
|
|
257
|
+
"strict": false,
|
|
258
|
+
"parameters": {
|
|
259
|
+
"type": "object",
|
|
260
|
+
"properties": {
|
|
261
|
+
"id": {
|
|
262
|
+
"type": "string",
|
|
263
|
+
"description": "Agent id to resume."
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
"required": [
|
|
267
|
+
"id"
|
|
268
|
+
],
|
|
269
|
+
"additionalProperties": false
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"type": "function",
|
|
274
|
+
"name": "send_input",
|
|
275
|
+
"description": "Send a message to an existing agent. Use interrupt=true to redirect work immediately. You should reuse the agent by send_input if you believe your assigned task is highly dependent on the context of a previous task.",
|
|
276
|
+
"strict": false,
|
|
277
|
+
"parameters": {
|
|
278
|
+
"type": "object",
|
|
279
|
+
"properties": {
|
|
280
|
+
"interrupt": {
|
|
281
|
+
"type": "boolean",
|
|
282
|
+
"description": "True interrupts the current task and handles this message immediately; false or omitted queues it."
|
|
283
|
+
},
|
|
284
|
+
"items": {
|
|
285
|
+
"type": "array",
|
|
286
|
+
"description": "Structured input items. Use this to pass explicit mentions (for example app:// connector paths).",
|
|
287
|
+
"items": {
|
|
288
|
+
"type": "object",
|
|
289
|
+
"properties": {
|
|
290
|
+
"audio_url": {
|
|
291
|
+
"type": "string",
|
|
292
|
+
"description": "Audio data URL when type is audio."
|
|
293
|
+
},
|
|
294
|
+
"image_url": {
|
|
295
|
+
"type": "string",
|
|
296
|
+
"description": "Image URL when type is image."
|
|
297
|
+
},
|
|
298
|
+
"name": {
|
|
299
|
+
"type": "string",
|
|
300
|
+
"description": "Display name when type is skill or mention."
|
|
301
|
+
},
|
|
302
|
+
"path": {
|
|
303
|
+
"type": "string",
|
|
304
|
+
"description": "Path when type is local_image/local_audio/skill, or structured mention target such as app://<connector-id> or plugin://<plugin-name>@<marketplace-name> when type is mention."
|
|
305
|
+
},
|
|
306
|
+
"text": {
|
|
307
|
+
"type": "string",
|
|
308
|
+
"description": "Text content when type is text."
|
|
309
|
+
},
|
|
310
|
+
"type": {
|
|
311
|
+
"type": "string",
|
|
312
|
+
"description": "Input item type: text, image, local_image, audio, local_audio, skill, or mention."
|
|
313
|
+
}
|
|
314
|
+
},
|
|
315
|
+
"additionalProperties": false
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
"message": {
|
|
319
|
+
"type": "string",
|
|
320
|
+
"description": "Legacy plain-text message to send to the agent. Use either message or items."
|
|
321
|
+
},
|
|
322
|
+
"target": {
|
|
323
|
+
"type": "string",
|
|
324
|
+
"description": "Agent id to message (from spawn_agent)."
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"required": [
|
|
328
|
+
"target"
|
|
329
|
+
],
|
|
330
|
+
"additionalProperties": false
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"type": "function",
|
|
335
|
+
"name": "spawn_agent",
|
|
336
|
+
"description": "\n \n Available model overrides (optional; inherited parent model is preferred):\n- `gpt-6-astra`: Our most capable model for complex, demanding work. Reasoning efforts: low (default), medium, high, xhigh, max, ultra. Service tiers: priority.\n- `gpt-5.6-sol`: Latest frontier agentic coding model. Reasoning efforts: low (default), medium, high, xhigh, max, ultra. Service tiers: priority,\u00e2\u20ac\u00a6[5062 chars]",
|
|
337
|
+
"strict": false,
|
|
338
|
+
"parameters": {
|
|
339
|
+
"type": "object",
|
|
340
|
+
"properties": {
|
|
341
|
+
"fork_context": {
|
|
342
|
+
"type": "boolean",
|
|
343
|
+
"description": "True forks the current thread history into the new agent; false or omitted starts with only the initial prompt."
|
|
344
|
+
},
|
|
345
|
+
"items": {
|
|
346
|
+
"type": "array",
|
|
347
|
+
"description": "Structured input items. Use this to pass explicit mentions (for example app:// connector paths).",
|
|
348
|
+
"items": {
|
|
349
|
+
"type": "object",
|
|
350
|
+
"properties": {
|
|
351
|
+
"audio_url": {
|
|
352
|
+
"type": "string",
|
|
353
|
+
"description": "Audio data URL when type is audio."
|
|
354
|
+
},
|
|
355
|
+
"image_url": {
|
|
356
|
+
"type": "string",
|
|
357
|
+
"description": "Image URL when type is image."
|
|
358
|
+
},
|
|
359
|
+
"name": {
|
|
360
|
+
"type": "string",
|
|
361
|
+
"description": "Display name when type is skill or mention."
|
|
362
|
+
},
|
|
363
|
+
"path": {
|
|
364
|
+
"type": "string",
|
|
365
|
+
"description": "Path when type is local_image/local_audio/skill, or structured mention target such as app://<connector-id> or plugin://<plugin-name>@<marketplace-name> when type is mention."
|
|
366
|
+
},
|
|
367
|
+
"text": {
|
|
368
|
+
"type": "string",
|
|
369
|
+
"description": "Text content when type is text."
|
|
370
|
+
},
|
|
371
|
+
"type": {
|
|
372
|
+
"type": "string",
|
|
373
|
+
"description": "Input item type: text, image, local_image, audio, local_audio, skill, or mention."
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
"additionalProperties": false
|
|
377
|
+
}
|
|
378
|
+
},
|
|
379
|
+
"message": {
|
|
380
|
+
"type": "string",
|
|
381
|
+
"description": "Initial plain-text task for the new agent. Use either message or items."
|
|
382
|
+
},
|
|
383
|
+
"model": {
|
|
384
|
+
"type": "string",
|
|
385
|
+
"description": "Model override for the new agent. Omit unless an explicit override is needed."
|
|
386
|
+
},
|
|
387
|
+
"reasoning_effort": {
|
|
388
|
+
"type": "string",
|
|
389
|
+
"description": "Reasoning effort override for the new agent. Omit to inherit the parent effort."
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
"additionalProperties": false
|
|
393
|
+
}
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"type": "function",
|
|
397
|
+
"name": "wait_agent",
|
|
398
|
+
"description": "Wait for agents to reach a final status. Completed statuses may include the agent's final message. Returns empty status when timed out. Once the agent reaches a final status, a notification message will be received containing the same completed status.",
|
|
399
|
+
"strict": false,
|
|
400
|
+
"parameters": {
|
|
401
|
+
"type": "object",
|
|
402
|
+
"properties": {
|
|
403
|
+
"targets": {
|
|
404
|
+
"type": "array",
|
|
405
|
+
"description": "Agent ids to wait on. Pass multiple ids to wait for whichever finishes first.",
|
|
406
|
+
"items": {
|
|
407
|
+
"type": "string"
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
"timeout_ms": {
|
|
411
|
+
"type": "number",
|
|
412
|
+
"description": "Timeout in milliseconds. Defaults to 30000, min 10000, max 3600000. Prefer longer waits (minutes) to avoid busy polling."
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
"required": [
|
|
416
|
+
"targets"
|
|
417
|
+
],
|
|
418
|
+
"additionalProperties": false
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
]
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"type": "function",
|
|
425
|
+
"name": "get_goal",
|
|
426
|
+
"description": "Get the current goal for this thread, including status, budgets, token and elapsed-time usage, and remaining token budget.",
|
|
427
|
+
"strict": false,
|
|
428
|
+
"parameters": {
|
|
429
|
+
"type": "object",
|
|
430
|
+
"properties": {},
|
|
431
|
+
"required": [],
|
|
432
|
+
"additionalProperties": false
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
"type": "function",
|
|
437
|
+
"name": "create_goal",
|
|
438
|
+
"description": "Create a goal only when explicitly requested by the user or system/developer instructions; do not infer goals from ordinary tasks.\nSet token_budget only when an explicit token budget is requested. Fails if an unfinished goal exists; use update_goal only for status.",
|
|
439
|
+
"strict": false,
|
|
440
|
+
"parameters": {
|
|
441
|
+
"type": "object",
|
|
442
|
+
"properties": {
|
|
443
|
+
"objective": {
|
|
444
|
+
"type": "string",
|
|
445
|
+
"description": "Required. The concrete objective to start pursuing. This starts a new active goal when no goal exists or replaces the current goal when it is complete."
|
|
446
|
+
},
|
|
447
|
+
"token_budget": {
|
|
448
|
+
"type": "integer",
|
|
449
|
+
"description": "Positive token budget for the new goal. Omit unless explicitly requested."
|
|
450
|
+
}
|
|
451
|
+
},
|
|
452
|
+
"required": [
|
|
453
|
+
"objective"
|
|
454
|
+
],
|
|
455
|
+
"additionalProperties": false
|
|
456
|
+
}
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"type": "function",
|
|
460
|
+
"name": "update_goal",
|
|
461
|
+
"description": "Update the existing goal.\nUse this tool only to mark the goal achieved or genuinely blocked.\nSet status to `complete` only when the objective has actually been achieved and no required work remains.\nSet status to `blocked` only when the same blocking condition has repeated for at least three consecutive goal turns, counting the original/user-triggered turn and any automatic continuations, and the \u00e2\u20ac\u00a6[1362 chars]",
|
|
462
|
+
"strict": false,
|
|
463
|
+
"parameters": {
|
|
464
|
+
"type": "object",
|
|
465
|
+
"properties": {
|
|
466
|
+
"status": {
|
|
467
|
+
"type": "string",
|
|
468
|
+
"description": "Required. Set to `complete` only when the objective is achieved and no required work remains. Set to `blocked` only after the same blocking condition has recurred for at least three consecutive goal turns and the agent is at an impasse. After a previously blocked goal is resumed, the resumed run starts a fresh blocked audit.",
|
|
469
|
+
"enum": [
|
|
470
|
+
"complete",
|
|
471
|
+
"blocked"
|
|
472
|
+
]
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
"required": [
|
|
476
|
+
"status"
|
|
477
|
+
],
|
|
478
|
+
"additionalProperties": false
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"type": "web_search",
|
|
483
|
+
"external_web_access": false
|
|
484
|
+
}
|
|
485
|
+
],
|
|
486
|
+
"tool_choice": "auto",
|
|
487
|
+
"parallel_tool_calls": true,
|
|
488
|
+
"reasoning": {
|
|
489
|
+
"summary": "auto"
|
|
490
|
+
},
|
|
491
|
+
"store": false,
|
|
492
|
+
"stream": true,
|
|
493
|
+
"include": [
|
|
494
|
+
"reasoning.encrypted_content"
|
|
495
|
+
],
|
|
496
|
+
"prompt_cache_key": "01a07dbe-7edf-7011-b44d-80842ada934c",
|
|
497
|
+
"client_metadata": {
|
|
498
|
+
"x-codex-installation-id": "<scrubbed>",
|
|
499
|
+
"x-codex-window-id": "01a07dbe-7edf-7011-b44d-80842ada934c:0",
|
|
500
|
+
"session_id": "01a07dbe-7edf-7011-b44d-80842ada934c",
|
|
501
|
+
"turn_id": "01a07dbe-7f19-78a3-9f7e-245e339308f0",
|
|
502
|
+
"thread_id": "01a07dbe-7edf-7011-b44d-80842ada934c",
|
|
503
|
+
"x-codex-turn-metadata": "{\"installation_id\":\"<scrubbed>\",\"session_id\":\"01a07dbe-7edf-7011-b44d-80842ada934c\",\"thread_id\":\"01a07dbe-7edf-7011-b44d-80842ada934c\",\"agent_name\":\"/root\",\"turn_id\":\"01a07dbe-7f19-78a3-9f7e-245e339308f0\",\"window_id\":\"01a07dbe-7edf-7011-b44d-80842ada934c:0\",\"window_number\":0,\"context_window_id\":\"01a07dbe-7edf-7011-b44d-80938fde145c\",\"request_kind\":\"turn\",\"root_turn_id\":\"0\u00e2\u20ac\u00a6[638 chars]",
|
|
504
|
+
"root_turn_id": "01a07dbe-7f19-78a3-9f7e-245e339308f0"
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|