@gakr-gakr/codex 0.1.0

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.
Files changed (86) hide show
  1. package/autobot.plugin.json +374 -0
  2. package/doctor-contract-api.ts +68 -0
  3. package/harness.ts +72 -0
  4. package/index.ts +124 -0
  5. package/media-understanding-provider.ts +521 -0
  6. package/package.json +40 -0
  7. package/prompt-overlay.ts +21 -0
  8. package/provider-catalog.ts +83 -0
  9. package/provider-discovery.ts +45 -0
  10. package/provider.ts +243 -0
  11. package/src/app-server/app-inventory-cache.ts +324 -0
  12. package/src/app-server/approval-bridge.ts +1211 -0
  13. package/src/app-server/auth-bridge.ts +614 -0
  14. package/src/app-server/capabilities.ts +27 -0
  15. package/src/app-server/client-factory.ts +24 -0
  16. package/src/app-server/client.ts +715 -0
  17. package/src/app-server/compact.ts +512 -0
  18. package/src/app-server/computer-use.ts +683 -0
  19. package/src/app-server/config.ts +1038 -0
  20. package/src/app-server/context-engine-projection.ts +403 -0
  21. package/src/app-server/dynamic-tool-diagnostics.ts +73 -0
  22. package/src/app-server/dynamic-tool-profile.ts +70 -0
  23. package/src/app-server/dynamic-tools.ts +623 -0
  24. package/src/app-server/elicitation-bridge.ts +783 -0
  25. package/src/app-server/event-projector.ts +2065 -0
  26. package/src/app-server/image-payload-sanitizer.ts +167 -0
  27. package/src/app-server/local-runtime-attribution.ts +39 -0
  28. package/src/app-server/managed-binary.ts +193 -0
  29. package/src/app-server/models.ts +172 -0
  30. package/src/app-server/native-hook-relay.ts +150 -0
  31. package/src/app-server/native-subagent-task-mirror.ts +497 -0
  32. package/src/app-server/plugin-activation.ts +283 -0
  33. package/src/app-server/plugin-app-cache-key.ts +74 -0
  34. package/src/app-server/plugin-approval-roundtrip.ts +122 -0
  35. package/src/app-server/plugin-inventory.ts +357 -0
  36. package/src/app-server/plugin-thread-config.ts +455 -0
  37. package/src/app-server/protocol-generated/json/DynamicToolCallParams.json +33 -0
  38. package/src/app-server/protocol-generated/json/v2/ErrorNotification.json +199 -0
  39. package/src/app-server/protocol-generated/json/v2/GetAccountResponse.json +102 -0
  40. package/src/app-server/protocol-generated/json/v2/ModelListResponse.json +227 -0
  41. package/src/app-server/protocol-generated/json/v2/ThreadResumeResponse.json +2630 -0
  42. package/src/app-server/protocol-generated/json/v2/ThreadStartResponse.json +2630 -0
  43. package/src/app-server/protocol-generated/json/v2/TurnCompletedNotification.json +1659 -0
  44. package/src/app-server/protocol-generated/json/v2/TurnStartResponse.json +1655 -0
  45. package/src/app-server/protocol-validators.ts +203 -0
  46. package/src/app-server/protocol.ts +520 -0
  47. package/src/app-server/rate-limit-cache.ts +48 -0
  48. package/src/app-server/rate-limits.ts +583 -0
  49. package/src/app-server/request.ts +73 -0
  50. package/src/app-server/run-attempt.ts +4862 -0
  51. package/src/app-server/session-binding.ts +398 -0
  52. package/src/app-server/session-history.ts +44 -0
  53. package/src/app-server/shared-client.ts +289 -0
  54. package/src/app-server/side-question.ts +1009 -0
  55. package/src/app-server/test-support.ts +48 -0
  56. package/src/app-server/thread-lifecycle.ts +959 -0
  57. package/src/app-server/timeout.ts +9 -0
  58. package/src/app-server/tool-progress-normalization.ts +77 -0
  59. package/src/app-server/trajectory.ts +368 -0
  60. package/src/app-server/transcript-mirror.ts +208 -0
  61. package/src/app-server/transport-stdio.ts +107 -0
  62. package/src/app-server/transport-websocket.ts +90 -0
  63. package/src/app-server/transport.ts +117 -0
  64. package/src/app-server/user-input-bridge.ts +316 -0
  65. package/src/app-server/version.ts +4 -0
  66. package/src/app-server/vision-tools.ts +12 -0
  67. package/src/command-account.ts +544 -0
  68. package/src/command-formatters.ts +426 -0
  69. package/src/command-handlers.ts +2021 -0
  70. package/src/command-plugins-management.ts +137 -0
  71. package/src/command-rpc.ts +142 -0
  72. package/src/commands.ts +65 -0
  73. package/src/conversation-binding-data.ts +124 -0
  74. package/src/conversation-binding.ts +561 -0
  75. package/src/conversation-control.ts +303 -0
  76. package/src/conversation-turn-collector.ts +186 -0
  77. package/src/conversation-turn-input.ts +106 -0
  78. package/src/migration/apply.ts +501 -0
  79. package/src/migration/helpers.ts +55 -0
  80. package/src/migration/plan.ts +461 -0
  81. package/src/migration/provider.ts +41 -0
  82. package/src/migration/source.ts +643 -0
  83. package/src/migration/targets.ts +25 -0
  84. package/src/node-cli-sessions.ts +711 -0
  85. package/test-api.ts +95 -0
  86. package/tsconfig.json +16 -0
@@ -0,0 +1,1659 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "TurnCompletedNotification",
4
+ "type": "object",
5
+ "required": [
6
+ "threadId",
7
+ "turn"
8
+ ],
9
+ "properties": {
10
+ "threadId": {
11
+ "type": "string"
12
+ },
13
+ "turn": {
14
+ "$ref": "#/definitions/Turn"
15
+ }
16
+ },
17
+ "definitions": {
18
+ "AbsolutePathBuf": {
19
+ "description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
20
+ "type": "string"
21
+ },
22
+ "ByteRange": {
23
+ "type": "object",
24
+ "required": [
25
+ "end",
26
+ "start"
27
+ ],
28
+ "properties": {
29
+ "end": {
30
+ "type": "integer",
31
+ "format": "uint",
32
+ "minimum": 0
33
+ },
34
+ "start": {
35
+ "type": "integer",
36
+ "format": "uint",
37
+ "minimum": 0
38
+ }
39
+ }
40
+ },
41
+ "CodexErrorInfo": {
42
+ "description": "This translation layer make sure that we expose codex error code in camel case.\n\nWhen an upstream HTTP status is available (for example, from the Responses API or a provider), it is forwarded in `httpStatusCode` on the relevant `codexErrorInfo` variant.",
43
+ "oneOf": [
44
+ {
45
+ "type": "string",
46
+ "enum": [
47
+ "contextWindowExceeded",
48
+ "usageLimitExceeded",
49
+ "serverOverloaded",
50
+ "cyberPolicy",
51
+ "internalServerError",
52
+ "unauthorized",
53
+ "badRequest",
54
+ "threadRollbackFailed",
55
+ "sandboxError",
56
+ "other"
57
+ ]
58
+ },
59
+ {
60
+ "type": "object",
61
+ "required": [
62
+ "httpConnectionFailed"
63
+ ],
64
+ "properties": {
65
+ "httpConnectionFailed": {
66
+ "type": "object",
67
+ "properties": {
68
+ "httpStatusCode": {
69
+ "type": [
70
+ "integer",
71
+ "null"
72
+ ],
73
+ "format": "uint16",
74
+ "minimum": 0
75
+ }
76
+ }
77
+ }
78
+ },
79
+ "additionalProperties": false,
80
+ "title": "HttpConnectionFailedCodexErrorInfo"
81
+ },
82
+ {
83
+ "description": "Failed to connect to the response SSE stream.",
84
+ "type": "object",
85
+ "required": [
86
+ "responseStreamConnectionFailed"
87
+ ],
88
+ "properties": {
89
+ "responseStreamConnectionFailed": {
90
+ "type": "object",
91
+ "properties": {
92
+ "httpStatusCode": {
93
+ "type": [
94
+ "integer",
95
+ "null"
96
+ ],
97
+ "format": "uint16",
98
+ "minimum": 0
99
+ }
100
+ }
101
+ }
102
+ },
103
+ "additionalProperties": false,
104
+ "title": "ResponseStreamConnectionFailedCodexErrorInfo"
105
+ },
106
+ {
107
+ "description": "The response SSE stream disconnected in the middle of a turn before completion.",
108
+ "type": "object",
109
+ "required": [
110
+ "responseStreamDisconnected"
111
+ ],
112
+ "properties": {
113
+ "responseStreamDisconnected": {
114
+ "type": "object",
115
+ "properties": {
116
+ "httpStatusCode": {
117
+ "type": [
118
+ "integer",
119
+ "null"
120
+ ],
121
+ "format": "uint16",
122
+ "minimum": 0
123
+ }
124
+ }
125
+ }
126
+ },
127
+ "additionalProperties": false,
128
+ "title": "ResponseStreamDisconnectedCodexErrorInfo"
129
+ },
130
+ {
131
+ "description": "Reached the retry limit for responses.",
132
+ "type": "object",
133
+ "required": [
134
+ "responseTooManyFailedAttempts"
135
+ ],
136
+ "properties": {
137
+ "responseTooManyFailedAttempts": {
138
+ "type": "object",
139
+ "properties": {
140
+ "httpStatusCode": {
141
+ "type": [
142
+ "integer",
143
+ "null"
144
+ ],
145
+ "format": "uint16",
146
+ "minimum": 0
147
+ }
148
+ }
149
+ }
150
+ },
151
+ "additionalProperties": false,
152
+ "title": "ResponseTooManyFailedAttemptsCodexErrorInfo"
153
+ },
154
+ {
155
+ "description": "Returned when `turn/start` or `turn/steer` is submitted while the current active turn cannot accept same-turn steering, for example `/review` or manual `/compact`.",
156
+ "type": "object",
157
+ "required": [
158
+ "activeTurnNotSteerable"
159
+ ],
160
+ "properties": {
161
+ "activeTurnNotSteerable": {
162
+ "type": "object",
163
+ "required": [
164
+ "turnKind"
165
+ ],
166
+ "properties": {
167
+ "turnKind": {
168
+ "$ref": "#/definitions/NonSteerableTurnKind"
169
+ }
170
+ }
171
+ }
172
+ },
173
+ "additionalProperties": false,
174
+ "title": "ActiveTurnNotSteerableCodexErrorInfo"
175
+ }
176
+ ]
177
+ },
178
+ "CollabAgentState": {
179
+ "type": "object",
180
+ "required": [
181
+ "status"
182
+ ],
183
+ "properties": {
184
+ "message": {
185
+ "type": [
186
+ "string",
187
+ "null"
188
+ ]
189
+ },
190
+ "status": {
191
+ "$ref": "#/definitions/CollabAgentStatus"
192
+ }
193
+ }
194
+ },
195
+ "CollabAgentStatus": {
196
+ "type": "string",
197
+ "enum": [
198
+ "pendingInit",
199
+ "running",
200
+ "interrupted",
201
+ "completed",
202
+ "errored",
203
+ "shutdown",
204
+ "notFound"
205
+ ]
206
+ },
207
+ "CollabAgentTool": {
208
+ "type": "string",
209
+ "enum": [
210
+ "spawnAgent",
211
+ "sendInput",
212
+ "resumeAgent",
213
+ "wait",
214
+ "closeAgent"
215
+ ]
216
+ },
217
+ "CollabAgentToolCallStatus": {
218
+ "type": "string",
219
+ "enum": [
220
+ "inProgress",
221
+ "completed",
222
+ "failed"
223
+ ]
224
+ },
225
+ "CommandAction": {
226
+ "oneOf": [
227
+ {
228
+ "type": "object",
229
+ "required": [
230
+ "command",
231
+ "name",
232
+ "path",
233
+ "type"
234
+ ],
235
+ "properties": {
236
+ "command": {
237
+ "type": "string"
238
+ },
239
+ "name": {
240
+ "type": "string"
241
+ },
242
+ "path": {
243
+ "$ref": "#/definitions/AbsolutePathBuf"
244
+ },
245
+ "type": {
246
+ "type": "string",
247
+ "enum": [
248
+ "read"
249
+ ],
250
+ "title": "ReadCommandActionType"
251
+ }
252
+ },
253
+ "title": "ReadCommandAction"
254
+ },
255
+ {
256
+ "type": "object",
257
+ "required": [
258
+ "command",
259
+ "type"
260
+ ],
261
+ "properties": {
262
+ "command": {
263
+ "type": "string"
264
+ },
265
+ "path": {
266
+ "type": [
267
+ "string",
268
+ "null"
269
+ ]
270
+ },
271
+ "type": {
272
+ "type": "string",
273
+ "enum": [
274
+ "listFiles"
275
+ ],
276
+ "title": "ListFilesCommandActionType"
277
+ }
278
+ },
279
+ "title": "ListFilesCommandAction"
280
+ },
281
+ {
282
+ "type": "object",
283
+ "required": [
284
+ "command",
285
+ "type"
286
+ ],
287
+ "properties": {
288
+ "command": {
289
+ "type": "string"
290
+ },
291
+ "path": {
292
+ "type": [
293
+ "string",
294
+ "null"
295
+ ]
296
+ },
297
+ "query": {
298
+ "type": [
299
+ "string",
300
+ "null"
301
+ ]
302
+ },
303
+ "type": {
304
+ "type": "string",
305
+ "enum": [
306
+ "search"
307
+ ],
308
+ "title": "SearchCommandActionType"
309
+ }
310
+ },
311
+ "title": "SearchCommandAction"
312
+ },
313
+ {
314
+ "type": "object",
315
+ "required": [
316
+ "command",
317
+ "type"
318
+ ],
319
+ "properties": {
320
+ "command": {
321
+ "type": "string"
322
+ },
323
+ "type": {
324
+ "type": "string",
325
+ "enum": [
326
+ "unknown"
327
+ ],
328
+ "title": "UnknownCommandActionType"
329
+ }
330
+ },
331
+ "title": "UnknownCommandAction"
332
+ }
333
+ ]
334
+ },
335
+ "CommandExecutionSource": {
336
+ "type": "string",
337
+ "enum": [
338
+ "agent",
339
+ "userShell",
340
+ "unifiedExecStartup",
341
+ "unifiedExecInteraction"
342
+ ]
343
+ },
344
+ "CommandExecutionStatus": {
345
+ "type": "string",
346
+ "enum": [
347
+ "inProgress",
348
+ "completed",
349
+ "failed",
350
+ "declined"
351
+ ]
352
+ },
353
+ "DynamicToolCallOutputContentItem": {
354
+ "oneOf": [
355
+ {
356
+ "type": "object",
357
+ "required": [
358
+ "text",
359
+ "type"
360
+ ],
361
+ "properties": {
362
+ "text": {
363
+ "type": "string"
364
+ },
365
+ "type": {
366
+ "type": "string",
367
+ "enum": [
368
+ "inputText"
369
+ ],
370
+ "title": "InputTextDynamicToolCallOutputContentItemType"
371
+ }
372
+ },
373
+ "title": "InputTextDynamicToolCallOutputContentItem"
374
+ },
375
+ {
376
+ "type": "object",
377
+ "required": [
378
+ "imageUrl",
379
+ "type"
380
+ ],
381
+ "properties": {
382
+ "imageUrl": {
383
+ "type": "string"
384
+ },
385
+ "type": {
386
+ "type": "string",
387
+ "enum": [
388
+ "inputImage"
389
+ ],
390
+ "title": "InputImageDynamicToolCallOutputContentItemType"
391
+ }
392
+ },
393
+ "title": "InputImageDynamicToolCallOutputContentItem"
394
+ }
395
+ ]
396
+ },
397
+ "DynamicToolCallStatus": {
398
+ "type": "string",
399
+ "enum": [
400
+ "inProgress",
401
+ "completed",
402
+ "failed"
403
+ ]
404
+ },
405
+ "FileUpdateChange": {
406
+ "type": "object",
407
+ "required": [
408
+ "diff",
409
+ "kind",
410
+ "path"
411
+ ],
412
+ "properties": {
413
+ "diff": {
414
+ "type": "string"
415
+ },
416
+ "kind": {
417
+ "$ref": "#/definitions/PatchChangeKind"
418
+ },
419
+ "path": {
420
+ "type": "string"
421
+ }
422
+ }
423
+ },
424
+ "HookPromptFragment": {
425
+ "type": "object",
426
+ "required": [
427
+ "hookRunId",
428
+ "text"
429
+ ],
430
+ "properties": {
431
+ "hookRunId": {
432
+ "type": "string"
433
+ },
434
+ "text": {
435
+ "type": "string"
436
+ }
437
+ }
438
+ },
439
+ "McpToolCallError": {
440
+ "type": "object",
441
+ "required": [
442
+ "message"
443
+ ],
444
+ "properties": {
445
+ "message": {
446
+ "type": "string"
447
+ }
448
+ }
449
+ },
450
+ "McpToolCallResult": {
451
+ "type": "object",
452
+ "required": [
453
+ "content"
454
+ ],
455
+ "properties": {
456
+ "_meta": true,
457
+ "content": {
458
+ "type": "array",
459
+ "items": true
460
+ },
461
+ "structuredContent": true
462
+ }
463
+ },
464
+ "McpToolCallStatus": {
465
+ "type": "string",
466
+ "enum": [
467
+ "inProgress",
468
+ "completed",
469
+ "failed"
470
+ ]
471
+ },
472
+ "MemoryCitation": {
473
+ "type": "object",
474
+ "required": [
475
+ "entries",
476
+ "threadIds"
477
+ ],
478
+ "properties": {
479
+ "entries": {
480
+ "type": "array",
481
+ "items": {
482
+ "$ref": "#/definitions/MemoryCitationEntry"
483
+ }
484
+ },
485
+ "threadIds": {
486
+ "type": "array",
487
+ "items": {
488
+ "type": "string"
489
+ }
490
+ }
491
+ }
492
+ },
493
+ "MemoryCitationEntry": {
494
+ "type": "object",
495
+ "required": [
496
+ "lineEnd",
497
+ "lineStart",
498
+ "note",
499
+ "path"
500
+ ],
501
+ "properties": {
502
+ "lineEnd": {
503
+ "type": "integer",
504
+ "format": "uint32",
505
+ "minimum": 0
506
+ },
507
+ "lineStart": {
508
+ "type": "integer",
509
+ "format": "uint32",
510
+ "minimum": 0
511
+ },
512
+ "note": {
513
+ "type": "string"
514
+ },
515
+ "path": {
516
+ "type": "string"
517
+ }
518
+ }
519
+ },
520
+ "MessagePhase": {
521
+ "description": "Classifies an assistant message as interim commentary or final answer text.\n\nProviders do not emit this consistently, so callers must treat `None` as \"phase unknown\" and keep compatibility behavior for legacy models.",
522
+ "oneOf": [
523
+ {
524
+ "description": "Mid-turn assistant text (for example preamble/progress narration).\n\nAdditional tool calls or assistant output may follow before turn completion.",
525
+ "type": "string",
526
+ "enum": [
527
+ "commentary"
528
+ ]
529
+ },
530
+ {
531
+ "description": "The assistant's terminal answer text for the current turn.",
532
+ "type": "string",
533
+ "enum": [
534
+ "final_answer"
535
+ ]
536
+ }
537
+ ]
538
+ },
539
+ "NonSteerableTurnKind": {
540
+ "type": "string",
541
+ "enum": [
542
+ "review",
543
+ "compact"
544
+ ]
545
+ },
546
+ "PatchApplyStatus": {
547
+ "type": "string",
548
+ "enum": [
549
+ "inProgress",
550
+ "completed",
551
+ "failed",
552
+ "declined"
553
+ ]
554
+ },
555
+ "PatchChangeKind": {
556
+ "oneOf": [
557
+ {
558
+ "type": "object",
559
+ "required": [
560
+ "type"
561
+ ],
562
+ "properties": {
563
+ "type": {
564
+ "type": "string",
565
+ "enum": [
566
+ "add"
567
+ ],
568
+ "title": "AddPatchChangeKindType"
569
+ }
570
+ },
571
+ "title": "AddPatchChangeKind"
572
+ },
573
+ {
574
+ "type": "object",
575
+ "required": [
576
+ "type"
577
+ ],
578
+ "properties": {
579
+ "type": {
580
+ "type": "string",
581
+ "enum": [
582
+ "delete"
583
+ ],
584
+ "title": "DeletePatchChangeKindType"
585
+ }
586
+ },
587
+ "title": "DeletePatchChangeKind"
588
+ },
589
+ {
590
+ "type": "object",
591
+ "required": [
592
+ "type"
593
+ ],
594
+ "properties": {
595
+ "move_path": {
596
+ "type": [
597
+ "string",
598
+ "null"
599
+ ]
600
+ },
601
+ "type": {
602
+ "type": "string",
603
+ "enum": [
604
+ "update"
605
+ ],
606
+ "title": "UpdatePatchChangeKindType"
607
+ }
608
+ },
609
+ "title": "UpdatePatchChangeKind"
610
+ }
611
+ ]
612
+ },
613
+ "ReasoningEffort": {
614
+ "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
615
+ "type": "string",
616
+ "enum": [
617
+ "none",
618
+ "minimal",
619
+ "low",
620
+ "medium",
621
+ "high",
622
+ "xhigh"
623
+ ]
624
+ },
625
+ "TextElement": {
626
+ "type": "object",
627
+ "required": [
628
+ "byteRange"
629
+ ],
630
+ "properties": {
631
+ "byteRange": {
632
+ "description": "Byte range in the parent `text` buffer that this element occupies.",
633
+ "allOf": [
634
+ {
635
+ "$ref": "#/definitions/ByteRange"
636
+ }
637
+ ]
638
+ },
639
+ "placeholder": {
640
+ "description": "Optional human-readable placeholder for the element, displayed in the UI.",
641
+ "type": [
642
+ "string",
643
+ "null"
644
+ ]
645
+ }
646
+ }
647
+ },
648
+ "ThreadItem": {
649
+ "oneOf": [
650
+ {
651
+ "type": "object",
652
+ "required": [
653
+ "content",
654
+ "id",
655
+ "type"
656
+ ],
657
+ "properties": {
658
+ "content": {
659
+ "type": "array",
660
+ "items": {
661
+ "$ref": "#/definitions/UserInput"
662
+ }
663
+ },
664
+ "id": {
665
+ "type": "string"
666
+ },
667
+ "type": {
668
+ "type": "string",
669
+ "enum": [
670
+ "userMessage"
671
+ ],
672
+ "title": "UserMessageThreadItemType"
673
+ }
674
+ },
675
+ "title": "UserMessageThreadItem"
676
+ },
677
+ {
678
+ "type": "object",
679
+ "required": [
680
+ "fragments",
681
+ "id",
682
+ "type"
683
+ ],
684
+ "properties": {
685
+ "fragments": {
686
+ "type": "array",
687
+ "items": {
688
+ "$ref": "#/definitions/HookPromptFragment"
689
+ }
690
+ },
691
+ "id": {
692
+ "type": "string"
693
+ },
694
+ "type": {
695
+ "type": "string",
696
+ "enum": [
697
+ "hookPrompt"
698
+ ],
699
+ "title": "HookPromptThreadItemType"
700
+ }
701
+ },
702
+ "title": "HookPromptThreadItem"
703
+ },
704
+ {
705
+ "type": "object",
706
+ "required": [
707
+ "id",
708
+ "text",
709
+ "type"
710
+ ],
711
+ "properties": {
712
+ "id": {
713
+ "type": "string"
714
+ },
715
+ "memoryCitation": {
716
+ "default": null,
717
+ "anyOf": [
718
+ {
719
+ "$ref": "#/definitions/MemoryCitation"
720
+ },
721
+ {
722
+ "type": "null"
723
+ }
724
+ ]
725
+ },
726
+ "phase": {
727
+ "default": null,
728
+ "anyOf": [
729
+ {
730
+ "$ref": "#/definitions/MessagePhase"
731
+ },
732
+ {
733
+ "type": "null"
734
+ }
735
+ ]
736
+ },
737
+ "text": {
738
+ "type": "string"
739
+ },
740
+ "type": {
741
+ "type": "string",
742
+ "enum": [
743
+ "agentMessage"
744
+ ],
745
+ "title": "AgentMessageThreadItemType"
746
+ }
747
+ },
748
+ "title": "AgentMessageThreadItem"
749
+ },
750
+ {
751
+ "description": "EXPERIMENTAL - proposed plan item content. The completed plan item is authoritative and may not match the concatenation of `PlanDelta` text.",
752
+ "type": "object",
753
+ "required": [
754
+ "id",
755
+ "text",
756
+ "type"
757
+ ],
758
+ "properties": {
759
+ "id": {
760
+ "type": "string"
761
+ },
762
+ "text": {
763
+ "type": "string"
764
+ },
765
+ "type": {
766
+ "type": "string",
767
+ "enum": [
768
+ "plan"
769
+ ],
770
+ "title": "PlanThreadItemType"
771
+ }
772
+ },
773
+ "title": "PlanThreadItem"
774
+ },
775
+ {
776
+ "type": "object",
777
+ "required": [
778
+ "id",
779
+ "type"
780
+ ],
781
+ "properties": {
782
+ "content": {
783
+ "default": [],
784
+ "type": "array",
785
+ "items": {
786
+ "type": "string"
787
+ }
788
+ },
789
+ "id": {
790
+ "type": "string"
791
+ },
792
+ "summary": {
793
+ "default": [],
794
+ "type": "array",
795
+ "items": {
796
+ "type": "string"
797
+ }
798
+ },
799
+ "type": {
800
+ "type": "string",
801
+ "enum": [
802
+ "reasoning"
803
+ ],
804
+ "title": "ReasoningThreadItemType"
805
+ }
806
+ },
807
+ "title": "ReasoningThreadItem"
808
+ },
809
+ {
810
+ "type": "object",
811
+ "required": [
812
+ "command",
813
+ "commandActions",
814
+ "cwd",
815
+ "id",
816
+ "status",
817
+ "type"
818
+ ],
819
+ "properties": {
820
+ "aggregatedOutput": {
821
+ "description": "The command's output, aggregated from stdout and stderr.",
822
+ "type": [
823
+ "string",
824
+ "null"
825
+ ]
826
+ },
827
+ "command": {
828
+ "description": "The command to be executed.",
829
+ "type": "string"
830
+ },
831
+ "commandActions": {
832
+ "description": "A best-effort parsing of the command to understand the action(s) it will perform. This returns a list of CommandAction objects because a single shell command may be composed of many commands piped together.",
833
+ "type": "array",
834
+ "items": {
835
+ "$ref": "#/definitions/CommandAction"
836
+ }
837
+ },
838
+ "cwd": {
839
+ "description": "The command's working directory.",
840
+ "allOf": [
841
+ {
842
+ "$ref": "#/definitions/AbsolutePathBuf"
843
+ }
844
+ ]
845
+ },
846
+ "durationMs": {
847
+ "description": "The duration of the command execution in milliseconds.",
848
+ "type": [
849
+ "integer",
850
+ "null"
851
+ ],
852
+ "format": "int64"
853
+ },
854
+ "exitCode": {
855
+ "description": "The command's exit code.",
856
+ "type": [
857
+ "integer",
858
+ "null"
859
+ ],
860
+ "format": "int32"
861
+ },
862
+ "id": {
863
+ "type": "string"
864
+ },
865
+ "processId": {
866
+ "description": "Identifier for the underlying PTY process (when available).",
867
+ "type": [
868
+ "string",
869
+ "null"
870
+ ]
871
+ },
872
+ "source": {
873
+ "default": "agent",
874
+ "allOf": [
875
+ {
876
+ "$ref": "#/definitions/CommandExecutionSource"
877
+ }
878
+ ]
879
+ },
880
+ "status": {
881
+ "$ref": "#/definitions/CommandExecutionStatus"
882
+ },
883
+ "type": {
884
+ "type": "string",
885
+ "enum": [
886
+ "commandExecution"
887
+ ],
888
+ "title": "CommandExecutionThreadItemType"
889
+ }
890
+ },
891
+ "title": "CommandExecutionThreadItem"
892
+ },
893
+ {
894
+ "type": "object",
895
+ "required": [
896
+ "changes",
897
+ "id",
898
+ "status",
899
+ "type"
900
+ ],
901
+ "properties": {
902
+ "changes": {
903
+ "type": "array",
904
+ "items": {
905
+ "$ref": "#/definitions/FileUpdateChange"
906
+ }
907
+ },
908
+ "id": {
909
+ "type": "string"
910
+ },
911
+ "status": {
912
+ "$ref": "#/definitions/PatchApplyStatus"
913
+ },
914
+ "type": {
915
+ "type": "string",
916
+ "enum": [
917
+ "fileChange"
918
+ ],
919
+ "title": "FileChangeThreadItemType"
920
+ }
921
+ },
922
+ "title": "FileChangeThreadItem"
923
+ },
924
+ {
925
+ "type": "object",
926
+ "required": [
927
+ "arguments",
928
+ "id",
929
+ "server",
930
+ "status",
931
+ "tool",
932
+ "type"
933
+ ],
934
+ "properties": {
935
+ "arguments": true,
936
+ "durationMs": {
937
+ "description": "The duration of the MCP tool call in milliseconds.",
938
+ "type": [
939
+ "integer",
940
+ "null"
941
+ ],
942
+ "format": "int64"
943
+ },
944
+ "error": {
945
+ "anyOf": [
946
+ {
947
+ "$ref": "#/definitions/McpToolCallError"
948
+ },
949
+ {
950
+ "type": "null"
951
+ }
952
+ ]
953
+ },
954
+ "id": {
955
+ "type": "string"
956
+ },
957
+ "mcpAppResourceUri": {
958
+ "type": [
959
+ "string",
960
+ "null"
961
+ ]
962
+ },
963
+ "result": {
964
+ "anyOf": [
965
+ {
966
+ "$ref": "#/definitions/McpToolCallResult"
967
+ },
968
+ {
969
+ "type": "null"
970
+ }
971
+ ]
972
+ },
973
+ "server": {
974
+ "type": "string"
975
+ },
976
+ "status": {
977
+ "$ref": "#/definitions/McpToolCallStatus"
978
+ },
979
+ "tool": {
980
+ "type": "string"
981
+ },
982
+ "type": {
983
+ "type": "string",
984
+ "enum": [
985
+ "mcpToolCall"
986
+ ],
987
+ "title": "McpToolCallThreadItemType"
988
+ }
989
+ },
990
+ "title": "McpToolCallThreadItem"
991
+ },
992
+ {
993
+ "type": "object",
994
+ "required": [
995
+ "arguments",
996
+ "id",
997
+ "status",
998
+ "tool",
999
+ "type"
1000
+ ],
1001
+ "properties": {
1002
+ "arguments": true,
1003
+ "contentItems": {
1004
+ "type": [
1005
+ "array",
1006
+ "null"
1007
+ ],
1008
+ "items": {
1009
+ "$ref": "#/definitions/DynamicToolCallOutputContentItem"
1010
+ }
1011
+ },
1012
+ "durationMs": {
1013
+ "description": "The duration of the dynamic tool call in milliseconds.",
1014
+ "type": [
1015
+ "integer",
1016
+ "null"
1017
+ ],
1018
+ "format": "int64"
1019
+ },
1020
+ "id": {
1021
+ "type": "string"
1022
+ },
1023
+ "namespace": {
1024
+ "type": [
1025
+ "string",
1026
+ "null"
1027
+ ]
1028
+ },
1029
+ "status": {
1030
+ "$ref": "#/definitions/DynamicToolCallStatus"
1031
+ },
1032
+ "success": {
1033
+ "type": [
1034
+ "boolean",
1035
+ "null"
1036
+ ]
1037
+ },
1038
+ "tool": {
1039
+ "type": "string"
1040
+ },
1041
+ "type": {
1042
+ "type": "string",
1043
+ "enum": [
1044
+ "dynamicToolCall"
1045
+ ],
1046
+ "title": "DynamicToolCallThreadItemType"
1047
+ }
1048
+ },
1049
+ "title": "DynamicToolCallThreadItem"
1050
+ },
1051
+ {
1052
+ "type": "object",
1053
+ "required": [
1054
+ "agentsStates",
1055
+ "id",
1056
+ "receiverThreadIds",
1057
+ "senderThreadId",
1058
+ "status",
1059
+ "tool",
1060
+ "type"
1061
+ ],
1062
+ "properties": {
1063
+ "agentsStates": {
1064
+ "description": "Last known status of the target agents, when available.",
1065
+ "type": "object",
1066
+ "additionalProperties": {
1067
+ "$ref": "#/definitions/CollabAgentState"
1068
+ }
1069
+ },
1070
+ "id": {
1071
+ "description": "Unique identifier for this collab tool call.",
1072
+ "type": "string"
1073
+ },
1074
+ "model": {
1075
+ "description": "Model requested for the spawned agent, when applicable.",
1076
+ "type": [
1077
+ "string",
1078
+ "null"
1079
+ ]
1080
+ },
1081
+ "prompt": {
1082
+ "description": "Prompt text sent as part of the collab tool call, when available.",
1083
+ "type": [
1084
+ "string",
1085
+ "null"
1086
+ ]
1087
+ },
1088
+ "reasoningEffort": {
1089
+ "description": "Reasoning effort requested for the spawned agent, when applicable.",
1090
+ "anyOf": [
1091
+ {
1092
+ "$ref": "#/definitions/ReasoningEffort"
1093
+ },
1094
+ {
1095
+ "type": "null"
1096
+ }
1097
+ ]
1098
+ },
1099
+ "receiverThreadIds": {
1100
+ "description": "Thread ID of the receiving agent, when applicable. In case of spawn operation, this corresponds to the newly spawned agent.",
1101
+ "type": "array",
1102
+ "items": {
1103
+ "type": "string"
1104
+ }
1105
+ },
1106
+ "senderThreadId": {
1107
+ "description": "Thread ID of the agent issuing the collab request.",
1108
+ "type": "string"
1109
+ },
1110
+ "status": {
1111
+ "description": "Current status of the collab tool call.",
1112
+ "allOf": [
1113
+ {
1114
+ "$ref": "#/definitions/CollabAgentToolCallStatus"
1115
+ }
1116
+ ]
1117
+ },
1118
+ "tool": {
1119
+ "description": "Name of the collab tool that was invoked.",
1120
+ "allOf": [
1121
+ {
1122
+ "$ref": "#/definitions/CollabAgentTool"
1123
+ }
1124
+ ]
1125
+ },
1126
+ "type": {
1127
+ "type": "string",
1128
+ "enum": [
1129
+ "collabAgentToolCall"
1130
+ ],
1131
+ "title": "CollabAgentToolCallThreadItemType"
1132
+ }
1133
+ },
1134
+ "title": "CollabAgentToolCallThreadItem"
1135
+ },
1136
+ {
1137
+ "type": "object",
1138
+ "required": [
1139
+ "id",
1140
+ "query",
1141
+ "type"
1142
+ ],
1143
+ "properties": {
1144
+ "action": {
1145
+ "anyOf": [
1146
+ {
1147
+ "$ref": "#/definitions/WebSearchAction"
1148
+ },
1149
+ {
1150
+ "type": "null"
1151
+ }
1152
+ ]
1153
+ },
1154
+ "id": {
1155
+ "type": "string"
1156
+ },
1157
+ "query": {
1158
+ "type": "string"
1159
+ },
1160
+ "type": {
1161
+ "type": "string",
1162
+ "enum": [
1163
+ "webSearch"
1164
+ ],
1165
+ "title": "WebSearchThreadItemType"
1166
+ }
1167
+ },
1168
+ "title": "WebSearchThreadItem"
1169
+ },
1170
+ {
1171
+ "type": "object",
1172
+ "required": [
1173
+ "id",
1174
+ "path",
1175
+ "type"
1176
+ ],
1177
+ "properties": {
1178
+ "id": {
1179
+ "type": "string"
1180
+ },
1181
+ "path": {
1182
+ "$ref": "#/definitions/AbsolutePathBuf"
1183
+ },
1184
+ "type": {
1185
+ "type": "string",
1186
+ "enum": [
1187
+ "imageView"
1188
+ ],
1189
+ "title": "ImageViewThreadItemType"
1190
+ }
1191
+ },
1192
+ "title": "ImageViewThreadItem"
1193
+ },
1194
+ {
1195
+ "type": "object",
1196
+ "required": [
1197
+ "id",
1198
+ "result",
1199
+ "status",
1200
+ "type"
1201
+ ],
1202
+ "properties": {
1203
+ "id": {
1204
+ "type": "string"
1205
+ },
1206
+ "result": {
1207
+ "type": "string"
1208
+ },
1209
+ "revisedPrompt": {
1210
+ "type": [
1211
+ "string",
1212
+ "null"
1213
+ ]
1214
+ },
1215
+ "savedPath": {
1216
+ "anyOf": [
1217
+ {
1218
+ "$ref": "#/definitions/AbsolutePathBuf"
1219
+ },
1220
+ {
1221
+ "type": "null"
1222
+ }
1223
+ ]
1224
+ },
1225
+ "status": {
1226
+ "type": "string"
1227
+ },
1228
+ "type": {
1229
+ "type": "string",
1230
+ "enum": [
1231
+ "imageGeneration"
1232
+ ],
1233
+ "title": "ImageGenerationThreadItemType"
1234
+ }
1235
+ },
1236
+ "title": "ImageGenerationThreadItem"
1237
+ },
1238
+ {
1239
+ "type": "object",
1240
+ "required": [
1241
+ "id",
1242
+ "review",
1243
+ "type"
1244
+ ],
1245
+ "properties": {
1246
+ "id": {
1247
+ "type": "string"
1248
+ },
1249
+ "review": {
1250
+ "type": "string"
1251
+ },
1252
+ "type": {
1253
+ "type": "string",
1254
+ "enum": [
1255
+ "enteredReviewMode"
1256
+ ],
1257
+ "title": "EnteredReviewModeThreadItemType"
1258
+ }
1259
+ },
1260
+ "title": "EnteredReviewModeThreadItem"
1261
+ },
1262
+ {
1263
+ "type": "object",
1264
+ "required": [
1265
+ "id",
1266
+ "review",
1267
+ "type"
1268
+ ],
1269
+ "properties": {
1270
+ "id": {
1271
+ "type": "string"
1272
+ },
1273
+ "review": {
1274
+ "type": "string"
1275
+ },
1276
+ "type": {
1277
+ "type": "string",
1278
+ "enum": [
1279
+ "exitedReviewMode"
1280
+ ],
1281
+ "title": "ExitedReviewModeThreadItemType"
1282
+ }
1283
+ },
1284
+ "title": "ExitedReviewModeThreadItem"
1285
+ },
1286
+ {
1287
+ "type": "object",
1288
+ "required": [
1289
+ "id",
1290
+ "type"
1291
+ ],
1292
+ "properties": {
1293
+ "id": {
1294
+ "type": "string"
1295
+ },
1296
+ "type": {
1297
+ "type": "string",
1298
+ "enum": [
1299
+ "contextCompaction"
1300
+ ],
1301
+ "title": "ContextCompactionThreadItemType"
1302
+ }
1303
+ },
1304
+ "title": "ContextCompactionThreadItem"
1305
+ }
1306
+ ]
1307
+ },
1308
+ "Turn": {
1309
+ "type": "object",
1310
+ "required": [
1311
+ "id",
1312
+ "items",
1313
+ "status"
1314
+ ],
1315
+ "properties": {
1316
+ "completedAt": {
1317
+ "description": "Unix timestamp (in seconds) when the turn completed.",
1318
+ "type": [
1319
+ "integer",
1320
+ "null"
1321
+ ],
1322
+ "format": "int64"
1323
+ },
1324
+ "durationMs": {
1325
+ "description": "Duration between turn start and completion in milliseconds, if known.",
1326
+ "type": [
1327
+ "integer",
1328
+ "null"
1329
+ ],
1330
+ "format": "int64"
1331
+ },
1332
+ "error": {
1333
+ "description": "Only populated when the Turn's status is failed.",
1334
+ "anyOf": [
1335
+ {
1336
+ "$ref": "#/definitions/TurnError"
1337
+ },
1338
+ {
1339
+ "type": "null"
1340
+ }
1341
+ ]
1342
+ },
1343
+ "id": {
1344
+ "type": "string"
1345
+ },
1346
+ "items": {
1347
+ "description": "Thread items currently included in this turn payload.",
1348
+ "type": "array",
1349
+ "items": {
1350
+ "$ref": "#/definitions/ThreadItem"
1351
+ }
1352
+ },
1353
+ "itemsView": {
1354
+ "description": "Describes how much of `items` has been loaded for this turn.",
1355
+ "default": "full",
1356
+ "allOf": [
1357
+ {
1358
+ "$ref": "#/definitions/TurnItemsView"
1359
+ }
1360
+ ]
1361
+ },
1362
+ "startedAt": {
1363
+ "description": "Unix timestamp (in seconds) when the turn started.",
1364
+ "type": [
1365
+ "integer",
1366
+ "null"
1367
+ ],
1368
+ "format": "int64"
1369
+ },
1370
+ "status": {
1371
+ "$ref": "#/definitions/TurnStatus"
1372
+ }
1373
+ }
1374
+ },
1375
+ "TurnError": {
1376
+ "type": "object",
1377
+ "required": [
1378
+ "message"
1379
+ ],
1380
+ "properties": {
1381
+ "additionalDetails": {
1382
+ "default": null,
1383
+ "type": [
1384
+ "string",
1385
+ "null"
1386
+ ]
1387
+ },
1388
+ "codexErrorInfo": {
1389
+ "anyOf": [
1390
+ {
1391
+ "$ref": "#/definitions/CodexErrorInfo"
1392
+ },
1393
+ {
1394
+ "type": "null"
1395
+ }
1396
+ ]
1397
+ },
1398
+ "message": {
1399
+ "type": "string"
1400
+ }
1401
+ }
1402
+ },
1403
+ "TurnItemsView": {
1404
+ "oneOf": [
1405
+ {
1406
+ "description": "`items` was not loaded for this turn. The field is intentionally empty.",
1407
+ "type": "string",
1408
+ "enum": [
1409
+ "notLoaded"
1410
+ ]
1411
+ },
1412
+ {
1413
+ "description": "`items` contains only a display summary for this turn.",
1414
+ "type": "string",
1415
+ "enum": [
1416
+ "summary"
1417
+ ]
1418
+ },
1419
+ {
1420
+ "description": "`items` contains every ThreadItem available from persisted app-server history for this turn.",
1421
+ "type": "string",
1422
+ "enum": [
1423
+ "full"
1424
+ ]
1425
+ }
1426
+ ]
1427
+ },
1428
+ "TurnStatus": {
1429
+ "type": "string",
1430
+ "enum": [
1431
+ "completed",
1432
+ "interrupted",
1433
+ "failed",
1434
+ "inProgress"
1435
+ ]
1436
+ },
1437
+ "UserInput": {
1438
+ "oneOf": [
1439
+ {
1440
+ "type": "object",
1441
+ "required": [
1442
+ "text",
1443
+ "type"
1444
+ ],
1445
+ "properties": {
1446
+ "text": {
1447
+ "type": "string"
1448
+ },
1449
+ "text_elements": {
1450
+ "description": "UI-defined spans within `text` used to render or persist special elements.",
1451
+ "default": [],
1452
+ "type": "array",
1453
+ "items": {
1454
+ "$ref": "#/definitions/TextElement"
1455
+ }
1456
+ },
1457
+ "type": {
1458
+ "type": "string",
1459
+ "enum": [
1460
+ "text"
1461
+ ],
1462
+ "title": "TextUserInputType"
1463
+ }
1464
+ },
1465
+ "title": "TextUserInput"
1466
+ },
1467
+ {
1468
+ "type": "object",
1469
+ "required": [
1470
+ "type",
1471
+ "url"
1472
+ ],
1473
+ "properties": {
1474
+ "type": {
1475
+ "type": "string",
1476
+ "enum": [
1477
+ "image"
1478
+ ],
1479
+ "title": "ImageUserInputType"
1480
+ },
1481
+ "url": {
1482
+ "type": "string"
1483
+ }
1484
+ },
1485
+ "title": "ImageUserInput"
1486
+ },
1487
+ {
1488
+ "type": "object",
1489
+ "required": [
1490
+ "path",
1491
+ "type"
1492
+ ],
1493
+ "properties": {
1494
+ "path": {
1495
+ "type": "string"
1496
+ },
1497
+ "type": {
1498
+ "type": "string",
1499
+ "enum": [
1500
+ "localImage"
1501
+ ],
1502
+ "title": "LocalImageUserInputType"
1503
+ }
1504
+ },
1505
+ "title": "LocalImageUserInput"
1506
+ },
1507
+ {
1508
+ "type": "object",
1509
+ "required": [
1510
+ "name",
1511
+ "path",
1512
+ "type"
1513
+ ],
1514
+ "properties": {
1515
+ "name": {
1516
+ "type": "string"
1517
+ },
1518
+ "path": {
1519
+ "type": "string"
1520
+ },
1521
+ "type": {
1522
+ "type": "string",
1523
+ "enum": [
1524
+ "skill"
1525
+ ],
1526
+ "title": "SkillUserInputType"
1527
+ }
1528
+ },
1529
+ "title": "SkillUserInput"
1530
+ },
1531
+ {
1532
+ "type": "object",
1533
+ "required": [
1534
+ "name",
1535
+ "path",
1536
+ "type"
1537
+ ],
1538
+ "properties": {
1539
+ "name": {
1540
+ "type": "string"
1541
+ },
1542
+ "path": {
1543
+ "type": "string"
1544
+ },
1545
+ "type": {
1546
+ "type": "string",
1547
+ "enum": [
1548
+ "mention"
1549
+ ],
1550
+ "title": "MentionUserInputType"
1551
+ }
1552
+ },
1553
+ "title": "MentionUserInput"
1554
+ }
1555
+ ]
1556
+ },
1557
+ "WebSearchAction": {
1558
+ "oneOf": [
1559
+ {
1560
+ "type": "object",
1561
+ "required": [
1562
+ "type"
1563
+ ],
1564
+ "properties": {
1565
+ "queries": {
1566
+ "type": [
1567
+ "array",
1568
+ "null"
1569
+ ],
1570
+ "items": {
1571
+ "type": "string"
1572
+ }
1573
+ },
1574
+ "query": {
1575
+ "type": [
1576
+ "string",
1577
+ "null"
1578
+ ]
1579
+ },
1580
+ "type": {
1581
+ "type": "string",
1582
+ "enum": [
1583
+ "search"
1584
+ ],
1585
+ "title": "SearchWebSearchActionType"
1586
+ }
1587
+ },
1588
+ "title": "SearchWebSearchAction"
1589
+ },
1590
+ {
1591
+ "type": "object",
1592
+ "required": [
1593
+ "type"
1594
+ ],
1595
+ "properties": {
1596
+ "type": {
1597
+ "type": "string",
1598
+ "enum": [
1599
+ "openPage"
1600
+ ],
1601
+ "title": "OpenPageWebSearchActionType"
1602
+ },
1603
+ "url": {
1604
+ "type": [
1605
+ "string",
1606
+ "null"
1607
+ ]
1608
+ }
1609
+ },
1610
+ "title": "OpenPageWebSearchAction"
1611
+ },
1612
+ {
1613
+ "type": "object",
1614
+ "required": [
1615
+ "type"
1616
+ ],
1617
+ "properties": {
1618
+ "pattern": {
1619
+ "type": [
1620
+ "string",
1621
+ "null"
1622
+ ]
1623
+ },
1624
+ "type": {
1625
+ "type": "string",
1626
+ "enum": [
1627
+ "findInPage"
1628
+ ],
1629
+ "title": "FindInPageWebSearchActionType"
1630
+ },
1631
+ "url": {
1632
+ "type": [
1633
+ "string",
1634
+ "null"
1635
+ ]
1636
+ }
1637
+ },
1638
+ "title": "FindInPageWebSearchAction"
1639
+ },
1640
+ {
1641
+ "type": "object",
1642
+ "required": [
1643
+ "type"
1644
+ ],
1645
+ "properties": {
1646
+ "type": {
1647
+ "type": "string",
1648
+ "enum": [
1649
+ "other"
1650
+ ],
1651
+ "title": "OtherWebSearchActionType"
1652
+ }
1653
+ },
1654
+ "title": "OtherWebSearchAction"
1655
+ }
1656
+ ]
1657
+ }
1658
+ }
1659
+ }