@claudexor/schema 4.7.0 → 4.8.1

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 (174) hide show
  1. package/dist/account-resources.d.ts +37 -37
  2. package/dist/account-routing-evidence.d.ts +14 -14
  3. package/dist/attachment.d.ts +178 -0
  4. package/dist/attachment.d.ts.map +1 -1
  5. package/dist/attachment.js +46 -0
  6. package/dist/attachment.js.map +1 -1
  7. package/dist/captured-run-start.d.ts +1105 -0
  8. package/dist/captured-run-start.d.ts.map +1 -0
  9. package/dist/captured-run-start.js +41 -0
  10. package/dist/captured-run-start.js.map +1 -0
  11. package/dist/command-summary.d.ts +1 -1
  12. package/dist/command-summary.d.ts.map +1 -1
  13. package/dist/command-summary.js +1 -0
  14. package/dist/command-summary.js.map +1 -1
  15. package/dist/control-harness-models.js +1 -1
  16. package/dist/control-harness-models.js.map +1 -1
  17. package/dist/control-operation-responses.d.ts +201 -9
  18. package/dist/control-operation-responses.d.ts.map +1 -1
  19. package/dist/control-operation-responses.js +7 -1
  20. package/dist/control-operation-responses.js.map +1 -1
  21. package/dist/control-run-detail.d.ts +277 -19
  22. package/dist/control-run-detail.d.ts.map +1 -1
  23. package/dist/control-run-detail.js +2 -0
  24. package/dist/control-run-detail.js.map +1 -1
  25. package/dist/control-run-failure.d.ts +29 -4
  26. package/dist/control-run-failure.d.ts.map +1 -1
  27. package/dist/control-run-failure.js +3 -0
  28. package/dist/control-run-failure.js.map +1 -1
  29. package/dist/control-run-retry.d.ts +31 -0
  30. package/dist/control-run-retry.d.ts.map +1 -1
  31. package/dist/control-run-retry.js +12 -1
  32. package/dist/control-run-retry.js.map +1 -1
  33. package/dist/control.d.ts +69 -5
  34. package/dist/control.d.ts.map +1 -1
  35. package/dist/control.js +3 -7
  36. package/dist/control.js.map +1 -1
  37. package/dist/credential-profile-snapshot.d.ts +28 -28
  38. package/dist/credential-profile.d.ts +1 -1
  39. package/dist/credential-profile.js +2 -2
  40. package/dist/credential-profile.js.map +1 -1
  41. package/dist/credential-store.d.ts +3 -2
  42. package/dist/credential-store.d.ts.map +1 -1
  43. package/dist/credential-store.js +5 -4
  44. package/dist/credential-store.js.map +1 -1
  45. package/dist/deferred-message.d.ts +2450 -0
  46. package/dist/deferred-message.d.ts.map +1 -0
  47. package/dist/deferred-message.js +186 -0
  48. package/dist/deferred-message.js.map +1 -0
  49. package/dist/events.d.ts +3 -3
  50. package/dist/events.js +1 -1
  51. package/dist/events.js.map +1 -1
  52. package/dist/harness-input.d.ts +15 -0
  53. package/dist/harness-input.d.ts.map +1 -1
  54. package/dist/harness-input.js +10 -1
  55. package/dist/harness-input.js.map +1 -1
  56. package/dist/harness-model.d.ts +65 -0
  57. package/dist/harness-model.d.ts.map +1 -1
  58. package/dist/harness-model.js +42 -0
  59. package/dist/harness-model.js.map +1 -1
  60. package/dist/harness-quota.d.ts +3 -3
  61. package/dist/harness.d.ts +61 -9
  62. package/dist/harness.d.ts.map +1 -1
  63. package/dist/harness.js +2 -2
  64. package/dist/harness.js.map +1 -1
  65. package/dist/index.d.ts +8 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +8 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/mcp-run-result.d.ts +356 -12
  70. package/dist/mcp-run-result.d.ts.map +1 -1
  71. package/dist/mcp-run-result.js +5 -0
  72. package/dist/mcp-run-result.js.map +1 -1
  73. package/dist/mcp-run-wait.d.ts +133 -0
  74. package/dist/mcp-run-wait.d.ts.map +1 -1
  75. package/dist/mcp-run-wait.js +4 -0
  76. package/dist/mcp-run-wait.js.map +1 -1
  77. package/dist/mcp-upload.d.ts +133 -0
  78. package/dist/mcp-upload.d.ts.map +1 -0
  79. package/dist/mcp-upload.js +40 -0
  80. package/dist/mcp-upload.js.map +1 -0
  81. package/dist/quota-read.d.ts +8 -8
  82. package/dist/quota.d.ts +26 -20
  83. package/dist/quota.d.ts.map +1 -1
  84. package/dist/quota.js +11 -1
  85. package/dist/quota.js.map +1 -1
  86. package/dist/run-observation.d.ts +189 -0
  87. package/dist/run-observation.d.ts.map +1 -0
  88. package/dist/run-observation.js +93 -0
  89. package/dist/run-observation.js.map +1 -0
  90. package/dist/setup-login.d.ts +5 -5
  91. package/dist/setup.d.ts +63 -63
  92. package/dist/setup.d.ts.map +1 -1
  93. package/dist/setup.js +1 -1
  94. package/dist/setup.js.map +1 -1
  95. package/dist/task-group-runs.d.ts +257 -0
  96. package/dist/task-group-runs.d.ts.map +1 -0
  97. package/dist/task-group-runs.js +91 -0
  98. package/dist/task-group-runs.js.map +1 -0
  99. package/dist/task-group.d.ts +23 -0
  100. package/dist/task-group.d.ts.map +1 -0
  101. package/dist/task-group.js +38 -0
  102. package/dist/task-group.js.map +1 -0
  103. package/dist/telemetry.d.ts +136 -8
  104. package/dist/telemetry.d.ts.map +1 -1
  105. package/dist/telemetry.js +2 -5
  106. package/dist/telemetry.js.map +1 -1
  107. package/dist/thread-history.d.ts +12553 -0
  108. package/dist/thread-history.d.ts.map +1 -0
  109. package/dist/thread-history.js +291 -0
  110. package/dist/thread-history.js.map +1 -0
  111. package/generated/ControlAccountResetResponse.schema.json +1 -0
  112. package/generated/ControlAccountResourcesFreshnessResponse.schema.json +1 -0
  113. package/generated/ControlAccountResourcesResponse.schema.json +1 -0
  114. package/generated/ControlCredentialProfileCreateRequest.schema.json +1 -1
  115. package/generated/ControlCredentialProfilesQueryResponse.schema.json +1 -0
  116. package/generated/ControlCredentialProfilesResourcesResponse.schema.json +1 -0
  117. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +1 -0
  118. package/generated/ControlQueuedRunInfo.schema.json +10 -0
  119. package/generated/ControlQuotaFreshnessResponse.schema.json +1 -0
  120. package/generated/ControlQuotaQueryResponse.schema.json +1 -0
  121. package/generated/ControlQuotaResponse.schema.json +1 -0
  122. package/generated/ControlRunAgainDraft.schema.json +5 -0
  123. package/generated/ControlRunControlResponse.schema.json +169 -0
  124. package/generated/ControlRunDetail.schema.json +208 -1
  125. package/generated/ControlRunListResponse.schema.json +31 -1
  126. package/generated/ControlRunRetryResponse.schema.json +10 -0
  127. package/generated/ControlRunStartInfo.schema.json +10 -0
  128. package/generated/ControlRunStartRequest.schema.json +5 -0
  129. package/generated/ControlRunStartResponse.schema.json +18 -0
  130. package/generated/ControlRunSummary.schema.json +31 -1
  131. package/generated/ControlSetupJob.schema.json +2 -1
  132. package/generated/ControlSetupJobCreateRequest.schema.json +2 -1
  133. package/generated/ControlSetupJobEvent.schema.json +2 -1
  134. package/generated/ControlSetupJobListFilter.schema.json +2 -1
  135. package/generated/ControlSetupJobListResponse.schema.json +2 -1
  136. package/generated/ControlSetupJobSnapshot.schema.json +2 -1
  137. package/generated/ControlUploadImport.schema.json +124 -0
  138. package/generated/ControlUploadImportRequest.schema.json +66 -0
  139. package/generated/DeferredMessageCall.schema.json +331 -0
  140. package/generated/DeferredMessageDetail.schema.json +917 -0
  141. package/generated/DeferredMessageMutation.schema.json +315 -0
  142. package/generated/DeferredMessageProjection.schema.json +177 -0
  143. package/generated/DeferredMessageReadInput.schema.json +20 -0
  144. package/generated/DeferredMessageReadResult.schema.json +399 -0
  145. package/generated/DeferredMessageReceipt.schema.json +193 -0
  146. package/generated/HarnessEvent.schema.json +75 -1
  147. package/generated/McpAccountsToolResult.schema.json +1 -0
  148. package/generated/McpRunHandleResult.schema.json +226 -19
  149. package/generated/McpRunToolResult.schema.json +228 -11
  150. package/generated/McpRunWaitResult.schema.json +180 -2
  151. package/generated/McpStoreIdentityInput.schema.json +11 -0
  152. package/generated/McpUploadCreateInput.schema.json +54 -0
  153. package/generated/McpUploadFinalizeInput.schema.json +40 -0
  154. package/generated/McpUploadImportInput.schema.json +52 -0
  155. package/generated/McpUploadImportLocalInput.schema.json +27 -0
  156. package/generated/McpUploadImportLocalResult.schema.json +45 -0
  157. package/generated/McpUploadTargetInput.schema.json +20 -0
  158. package/generated/ResourceAttachmentRef.schema.json +21 -0
  159. package/generated/RoutePrimaryDivergedPayload.schema.json +23 -14
  160. package/generated/RunFailure.schema.json +31 -1
  161. package/generated/RunObservationRecord.schema.json +64 -0
  162. package/generated/RunTelemetry.schema.json +83 -1
  163. package/generated/RunWaitManyInput.schema.json +47 -0
  164. package/generated/RunWaitManyResult.schema.json +110 -0
  165. package/generated/RunWaitManySummary.schema.json +75 -0
  166. package/generated/TaskGroupId.schema.json +11 -0
  167. package/generated/TaskGroupReceipt.schema.json +26 -0
  168. package/generated/TaskGroupRunsInput.schema.json +46 -0
  169. package/generated/TaskGroupRunsResult.schema.json +162 -0
  170. package/generated/ThreadHistoryInput.schema.json +48 -0
  171. package/generated/ThreadHistoryPage.schema.json +2857 -0
  172. package/generated/ThreadPromptPart.schema.json +57 -0
  173. package/generated/ThreadPromptPartInput.schema.json +41 -0
  174. package/package.json +2 -2
@@ -0,0 +1,917 @@
1
+ {
2
+ "$ref": "#/definitions/DeferredMessageDetail",
3
+ "definitions": {
4
+ "DeferredMessageDetail": {
5
+ "type": "object",
6
+ "properties": {
7
+ "draftId": {
8
+ "type": "string",
9
+ "minLength": 1,
10
+ "description": "Non-empty identifier string."
11
+ },
12
+ "revision": {
13
+ "type": "integer",
14
+ "exclusiveMinimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "state": {
18
+ "type": "string",
19
+ "enum": [
20
+ "waiting",
21
+ "held",
22
+ "dispatched",
23
+ "cleared"
24
+ ]
25
+ },
26
+ "predecessorJobId": {
27
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId"
28
+ },
29
+ "predecessorRunId": {
30
+ "anyOf": [
31
+ {
32
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId"
33
+ },
34
+ {
35
+ "type": "null"
36
+ }
37
+ ],
38
+ "description": "Non-empty identifier string."
39
+ },
40
+ "predecessorResult": {
41
+ "type": "string",
42
+ "description": "Existing addressed run-detail/result path; no duplicate result store."
43
+ },
44
+ "hold": {
45
+ "anyOf": [
46
+ {
47
+ "type": "object",
48
+ "properties": {
49
+ "code": {
50
+ "type": "string",
51
+ "enum": [
52
+ "predecessor_failed",
53
+ "predecessor_cancelled",
54
+ "predecessor_interrupted",
55
+ "predecessor_needs_input",
56
+ "predecessor_incomplete",
57
+ "predecessor_facts_unavailable",
58
+ "predecessor_work_unverified",
59
+ "predecessor_checks_failed",
60
+ "predecessor_review_blocked",
61
+ "predecessor_output_unavailable",
62
+ "settlement_unknown",
63
+ "stop_requested",
64
+ "shutdown",
65
+ "restart_requires_controller",
66
+ "partition_retired",
67
+ "admission_refused"
68
+ ]
69
+ },
70
+ "problem": {
71
+ "type": "object",
72
+ "properties": {
73
+ "message": {
74
+ "type": "string",
75
+ "description": "Human-readable refusal message."
76
+ },
77
+ "code": {
78
+ "type": [
79
+ "string",
80
+ "null"
81
+ ],
82
+ "default": null,
83
+ "description": "Machine-readable refusal code carried from the throwing gate; null when the failure had no typed code."
84
+ },
85
+ "retryable": {
86
+ "type": "boolean",
87
+ "default": true,
88
+ "description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay."
89
+ },
90
+ "required_actions": {
91
+ "type": "array",
92
+ "items": {
93
+ "type": "string",
94
+ "minLength": 1,
95
+ "maxLength": 512
96
+ },
97
+ "maxItems": 16,
98
+ "default": [],
99
+ "description": "Bounded user actions that may make an exact retry succeed."
100
+ },
101
+ "context": {
102
+ "type": "object",
103
+ "additionalProperties": {},
104
+ "default": {},
105
+ "description": "Bounded typed recovery context; never arbitrary provider or environment output."
106
+ }
107
+ },
108
+ "required": [
109
+ "message"
110
+ ],
111
+ "additionalProperties": false,
112
+ "description": "Typed, sanitized problem for a thread turn that could not start."
113
+ }
114
+ },
115
+ "required": [
116
+ "code"
117
+ ],
118
+ "additionalProperties": false,
119
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
120
+ },
121
+ {
122
+ "type": "null"
123
+ }
124
+ ],
125
+ "description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
126
+ },
127
+ "dispatchedRevision": {
128
+ "anyOf": [
129
+ {
130
+ "$ref": "#/definitions/DeferredMessageDetail/properties/revision"
131
+ },
132
+ {
133
+ "type": "null"
134
+ }
135
+ ]
136
+ },
137
+ "successorJobId": {
138
+ "anyOf": [
139
+ {
140
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId"
141
+ },
142
+ {
143
+ "type": "null"
144
+ }
145
+ ],
146
+ "description": "Non-empty identifier string."
147
+ },
148
+ "successorRunId": {
149
+ "anyOf": [
150
+ {
151
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId"
152
+ },
153
+ {
154
+ "type": "null"
155
+ }
156
+ ],
157
+ "description": "Non-empty identifier string."
158
+ },
159
+ "prompt": {
160
+ "type": "string"
161
+ },
162
+ "attachments": {
163
+ "type": "array",
164
+ "items": {
165
+ "type": "object",
166
+ "properties": {
167
+ "resourceId": {
168
+ "type": "string",
169
+ "minLength": 1,
170
+ "description": "Immutable daemon resource id returned by upload finalize."
171
+ }
172
+ },
173
+ "required": [
174
+ "resourceId"
175
+ ],
176
+ "additionalProperties": false,
177
+ "description": "Reference to an immutable daemon-owned uploaded resource."
178
+ }
179
+ },
180
+ "capturedStart": {
181
+ "anyOf": [
182
+ {
183
+ "type": "object",
184
+ "properties": {
185
+ "prompt": {
186
+ "type": "string",
187
+ "default": "",
188
+ "description": "The user's prompt for the run."
189
+ },
190
+ "instructions": {
191
+ "type": "string",
192
+ "description": "System-level instructions layered onto every task-producing lane; delivered natively (append-system-prompt-file / developer_instructions) or as a delimited prompt prefix."
193
+ },
194
+ "attachments": {
195
+ "type": "array",
196
+ "items": {
197
+ "$ref": "#/definitions/DeferredMessageDetail/properties/attachments/items"
198
+ },
199
+ "description": "Immutable daemon resource ids returned by upload finalize; paths and inline bytes are not accepted."
200
+ },
201
+ "mode": {
202
+ "type": "string",
203
+ "enum": [
204
+ "ask",
205
+ "plan",
206
+ "agent"
207
+ ],
208
+ "description": "Canonical run mode: ask and plan are read-only, agent writes. Strategy controls are separate schema-owned fields, never modes.",
209
+ "default": "agent"
210
+ },
211
+ "taskGroupId": {
212
+ "type": "string",
213
+ "format": "uuid",
214
+ "description": "Caller-generated UUID saved before launching the first member. Each job still needs its own idempotency key; the group grants no execution authority."
215
+ },
216
+ "scope": {
217
+ "anyOf": [
218
+ {
219
+ "type": "object",
220
+ "properties": {
221
+ "kind": {
222
+ "type": "string",
223
+ "const": "project"
224
+ },
225
+ "root": {
226
+ "type": "string",
227
+ "description": "Absolute path of the project root."
228
+ },
229
+ "context": {
230
+ "type": "string",
231
+ "enum": [
232
+ "auto"
233
+ ],
234
+ "description": "Project context depth; auto is the only mode.",
235
+ "default": "auto"
236
+ },
237
+ "ephemeral": {
238
+ "type": "boolean",
239
+ "default": false,
240
+ "description": "Declare the root one-shot: it anchors this run only, is never entered into the durable project registry, and its commands/run events live in the global no-project partition."
241
+ }
242
+ },
243
+ "required": [
244
+ "kind",
245
+ "root"
246
+ ],
247
+ "additionalProperties": false,
248
+ "description": "Run anchored to a project."
249
+ },
250
+ {
251
+ "type": "object",
252
+ "properties": {
253
+ "kind": {
254
+ "type": "string",
255
+ "const": "none"
256
+ }
257
+ },
258
+ "required": [
259
+ "kind"
260
+ ],
261
+ "additionalProperties": false,
262
+ "description": "Run with no project (pure ask)."
263
+ }
264
+ ],
265
+ "description": "What the run operates on: a project (with root) or nothing.",
266
+ "default": {
267
+ "kind": "none"
268
+ }
269
+ },
270
+ "execution": {
271
+ "type": "object",
272
+ "properties": {
273
+ "isolation": {
274
+ "type": "string",
275
+ "enum": [
276
+ "envelope",
277
+ "live"
278
+ ],
279
+ "default": "envelope",
280
+ "description": "Run isolation: envelope (isolated worktree in the external per-project runtime namespace, the default) or live (the project tree itself)."
281
+ },
282
+ "delegated": {
283
+ "type": "boolean",
284
+ "default": false,
285
+ "description": "Marks a run driven by an EXTERNAL orchestrator that owns the workspace, not by the operator at a surface. Such a run uses a scoped harness HOME even under isolation='live' (an in-place delegated attempt therefore cannot resume a native vendor session stored under the real HOME). Unrelated to the `delegate` belt flag and to `delegatedFromRunId` (belt-child provenance)."
286
+ },
287
+ "workspaceRoot": {
288
+ "type": "string",
289
+ "description": "Absolute existing execution workspace for a project-scoped delegated run: the live tree of an agent run (or the source of its directory execution), and the read-only tree of a delegated thread's Ask/Plan turn. The stable project identity remains scope.root."
290
+ },
291
+ "workspaceKind": {
292
+ "type": "string",
293
+ "enum": [
294
+ "git",
295
+ "directory"
296
+ ],
297
+ "description": "Explicit directory execution needs no Git initialization; omission preserves existing clients."
298
+ },
299
+ "scopePaths": {
300
+ "type": "array",
301
+ "items": {
302
+ "type": "string",
303
+ "minLength": 1
304
+ },
305
+ "description": "Agent-selected input footprint. Directory copies materialize this entire selection; direct runs need no whole-tree baseline."
306
+ },
307
+ "auxiliaryWritableRoots": {
308
+ "type": "array",
309
+ "items": {
310
+ "type": "string",
311
+ "minLength": 1
312
+ },
313
+ "description": "Exact existing absolute directories, created by the caller, that an Agent run with effective workspace_write may also write (service caches or scratch outside the execution tree). [] grants nothing extra; so does omission, except that a continueFrom successor omitting execution inherits its predecessor's whole execution group. Requires a lane whose capability_profile.access_control.auxiliary_writable_roots is true; the files are never part of the project result."
314
+ }
315
+ },
316
+ "additionalProperties": false,
317
+ "description": "Execution isolation and delegation settings for a run.",
318
+ "default": {
319
+ "isolation": "envelope"
320
+ }
321
+ },
322
+ "harnesses": {
323
+ "type": "array",
324
+ "items": {
325
+ "type": "string",
326
+ "minLength": 1,
327
+ "pattern": "\\S",
328
+ "description": "User-supplied string that must contain visible content, not just whitespace."
329
+ },
330
+ "description": "Eligible harness pool for the run; omitted = engine auto-pools."
331
+ },
332
+ "primaryHarness": {
333
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/harnesses/items",
334
+ "description": "Primary harness the run should prefer."
335
+ },
336
+ "routingGoal": {
337
+ "type": "string",
338
+ "enum": [
339
+ "auto",
340
+ "quality",
341
+ "economy"
342
+ ],
343
+ "description": "Routing objective: pace expiring quota, choose the highest declared quality tier, or minimize incremental paid spend."
344
+ },
345
+ "model": {
346
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/harnesses/items",
347
+ "description": "Scalar model convenience: expands to the resolved primary harness only (never the pool); rejected with a multi-harness pool and no primary — use models instead."
348
+ },
349
+ "models": {
350
+ "type": "object",
351
+ "additionalProperties": {
352
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/harnesses/items"
353
+ },
354
+ "propertyNames": {
355
+ "minLength": 1,
356
+ "pattern": "\\S"
357
+ },
358
+ "description": "Harness-scoped model map (harness id to model id); an entry here wins over the scalar model and over the per-harness settings default."
359
+ },
360
+ "effort": {
361
+ "type": "string",
362
+ "minLength": 1,
363
+ "maxLength": 32,
364
+ "pattern": "^[a-z0-9]+(?:[_-][a-z0-9]+)*$",
365
+ "description": "Requested reasoning effort."
366
+ },
367
+ "processingPreference": {
368
+ "type": "string",
369
+ "enum": [
370
+ "standard",
371
+ "fast",
372
+ "economy"
373
+ ],
374
+ "description": "Advisory service preference. Fast or Economy may use ordinary Standard service; fallback never introduces Fast. Omission preserves native defaults. Explicit native serviceTier takes precedence."
375
+ },
376
+ "promptCacheTtl": {
377
+ "type": "string",
378
+ "enum": [
379
+ "5m",
380
+ "1h"
381
+ ],
382
+ "description": "Native prompt-cache lifetime for the main conversation and helper requests of a harness that declares it. Omission sends no override: native defaults, profile settings and the inherited environment stay in effect."
383
+ },
384
+ "efforts": {
385
+ "type": "object",
386
+ "additionalProperties": {
387
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/effort"
388
+ },
389
+ "propertyNames": {
390
+ "minLength": 1,
391
+ "pattern": "\\S"
392
+ },
393
+ "description": "Harness-scoped effort map (harness id to effort); an entry here wins over the scalar effort and the per-harness settings default."
394
+ },
395
+ "review": {
396
+ "type": "boolean",
397
+ "description": "Agent model review: ordinary runs default off; true selects an automatic panel. Explicit reviewer controls, best-of and untilClean request review. Capped attempts default to review unless explicitly false."
398
+ },
399
+ "reviewerModels": {
400
+ "type": "object",
401
+ "additionalProperties": {
402
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/harnesses/items"
403
+ },
404
+ "propertyNames": {
405
+ "enum": [
406
+ "openai",
407
+ "anthropic",
408
+ "google",
409
+ "cursor",
410
+ "opencode",
411
+ "xai",
412
+ "local",
413
+ "unknown"
414
+ ]
415
+ },
416
+ "description": "Per-provider-family reviewer model overrides (legacy; reviewerPanel wins when present)."
417
+ },
418
+ "reviewerEfforts": {
419
+ "type": "object",
420
+ "additionalProperties": {
421
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/effort"
422
+ },
423
+ "propertyNames": {
424
+ "enum": [
425
+ "openai",
426
+ "anthropic",
427
+ "google",
428
+ "cursor",
429
+ "opencode",
430
+ "xai",
431
+ "local",
432
+ "unknown"
433
+ ]
434
+ },
435
+ "description": "Per-provider-family reviewer effort overrides (legacy; reviewerPanel wins when present)."
436
+ },
437
+ "n": {
438
+ "type": "integer",
439
+ "minimum": -9007199254740991,
440
+ "maximum": 9007199254740991,
441
+ "exclusiveMinimum": 0,
442
+ "description": "Race width: number of best-of-N candidates."
443
+ },
444
+ "attempts": {
445
+ "anyOf": [
446
+ {
447
+ "type": "integer",
448
+ "exclusiveMinimum": 0
449
+ },
450
+ {
451
+ "type": "null"
452
+ }
453
+ ],
454
+ "description": "Cap on convergence attempts; null = engine default."
455
+ },
456
+ "untilClean": {
457
+ "type": "boolean",
458
+ "description": "Agent flag: iterate until the convergence predicate is clean (no fixed cap)."
459
+ },
460
+ "deepScan": {
461
+ "type": "boolean",
462
+ "description": "Ask flag: bounded multi-scout research sweep with synthesis."
463
+ },
464
+ "create": {
465
+ "type": "boolean",
466
+ "description": "Agent flag: create-from-scratch intent."
467
+ },
468
+ "council": {
469
+ "type": "boolean",
470
+ "description": "Plan strategy: N harnesses draft plans in parallel, the primary merges into one unified plan + one question set. Plan mode only."
471
+ },
472
+ "synthesis": {
473
+ "type": "string",
474
+ "enum": [
475
+ "auto",
476
+ "always",
477
+ "never"
478
+ ],
479
+ "description": "Best-of-N synthesis policy: auto only synthesizes an extra candidate when n>=3 and candidates genuinely complement; always/never force it."
480
+ },
481
+ "paidBudget": {
482
+ "anyOf": [
483
+ {
484
+ "type": "object",
485
+ "properties": {
486
+ "kind": {
487
+ "type": "string",
488
+ "const": "unlimited"
489
+ }
490
+ },
491
+ "required": [
492
+ "kind"
493
+ ],
494
+ "additionalProperties": false
495
+ },
496
+ {
497
+ "type": "object",
498
+ "properties": {
499
+ "kind": {
500
+ "type": "string",
501
+ "const": "finite"
502
+ },
503
+ "maxUsd": {
504
+ "type": "number",
505
+ "minimum": 0
506
+ }
507
+ },
508
+ "required": [
509
+ "kind",
510
+ "maxUsd"
511
+ ],
512
+ "additionalProperties": false
513
+ }
514
+ ],
515
+ "description": "Explicit incremental-cash budget for the run."
516
+ },
517
+ "access": {
518
+ "type": "string",
519
+ "enum": [
520
+ "readonly",
521
+ "workspace_write",
522
+ "full",
523
+ "inherit_native"
524
+ ],
525
+ "description": "Requested access profile; effective access is derived by the engine and never client-supplied."
526
+ },
527
+ "web": {
528
+ "type": "string",
529
+ "enum": [
530
+ "off",
531
+ "auto",
532
+ "cached",
533
+ "live"
534
+ ],
535
+ "description": "Web policy for the run (alias of externalContextPolicy; must match when both set)."
536
+ },
537
+ "externalContextPolicy": {
538
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/web",
539
+ "description": "External web/context policy for the run."
540
+ },
541
+ "browser": {
542
+ "type": "boolean",
543
+ "description": "Request the agent-driven browser; preflight records per-lane effectiveness and refuses when no selected lane can receive it."
544
+ },
545
+ "tests": {
546
+ "type": "array",
547
+ "items": {
548
+ "type": "object",
549
+ "properties": {
550
+ "program": {
551
+ "type": "string",
552
+ "minLength": 1,
553
+ "pattern": "\\S",
554
+ "description": "Executable invoked directly without an implicit shell."
555
+ },
556
+ "args": {
557
+ "type": "array",
558
+ "items": {
559
+ "type": "string"
560
+ },
561
+ "default": [],
562
+ "description": "Exact argv passed to the executable."
563
+ },
564
+ "cwd": {
565
+ "type": "string",
566
+ "description": "Optional project-relative working directory for the command."
567
+ },
568
+ "envAllowlist": {
569
+ "type": "array",
570
+ "items": {
571
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/harnesses/items"
572
+ },
573
+ "default": [],
574
+ "description": "Non-secret parent environment names explicitly forwarded to the command."
575
+ }
576
+ },
577
+ "required": [
578
+ "program"
579
+ ],
580
+ "additionalProperties": false,
581
+ "description": "Canonical deterministic command invocation; no implicit shell parsing."
582
+ },
583
+ "description": "Typed-argv commands to run as deterministic gates."
584
+ },
585
+ "protectedPathApprovals": {
586
+ "type": "array",
587
+ "items": {
588
+ "type": "object",
589
+ "properties": {
590
+ "path": {
591
+ "type": "string",
592
+ "minLength": 1,
593
+ "pattern": "\\S",
594
+ "description": "Glob approved by the operator/user for this run; consumed only by the auto-protected gate/test path policy, not by built-in critical-path gates."
595
+ },
596
+ "reason": {
597
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/harnesses/items",
598
+ "description": "Optional human-readable reason for the approval."
599
+ }
600
+ },
601
+ "required": [
602
+ "path"
603
+ ],
604
+ "additionalProperties": false,
605
+ "description": "Per-run typed operator approval allowing changes under an auto-protected gate/test path."
606
+ },
607
+ "description": "Typed per-run approvals for changing auto-protected gate/test paths; does not bypass built-in critical/security path human gates."
608
+ },
609
+ "threadId": {
610
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId",
611
+ "description": "Thread this run is a turn of."
612
+ },
613
+ "turnId": {
614
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId",
615
+ "description": "Internal daemon handoff only; rejected (400) when supplied by a client on POST /runs — use POST /threads/:id/turns instead."
616
+ },
617
+ "parentRunId": {
618
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId",
619
+ "description": "Server-owned parent/follow-up lineage; rejected on direct POST /runs."
620
+ },
621
+ "delegatedFromRunId": {
622
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId",
623
+ "description": "Internal belt-child provenance only; equals parentRunId and is rejected on direct POST /runs."
624
+ },
625
+ "retryOf": {
626
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId",
627
+ "description": "Server-owned Exact Retry lineage; direct POST /runs rejects it."
628
+ },
629
+ "continueFrom": {
630
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId",
631
+ "description": "Continue a terminal predecessor run owned by this daemon; one accepted successor per predecessor. Omitted mode, scope, execution, harness, model and promptCacheTtl come from the predecessor; prompt is the continuation text and may be empty."
632
+ },
633
+ "continueCarrier": {
634
+ "type": "string",
635
+ "enum": [
636
+ "auto",
637
+ "packet"
638
+ ],
639
+ "description": "Carrier preference for continueFrom; omitted = auto."
640
+ },
641
+ "continueModelInherited": {
642
+ "type": "boolean",
643
+ "description": "Internal continuation model provenance; direct POST /runs rejects it."
644
+ },
645
+ "planRunId": {
646
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId",
647
+ "description": "Internal daemon handoff only; rejected (400) on POST /runs. When set, the turn implements an approved plan from that run."
648
+ },
649
+ "planRef": {
650
+ "type": "object",
651
+ "properties": {
652
+ "runId": {
653
+ "$ref": "#/definitions/DeferredMessageDetail/properties/draftId"
654
+ },
655
+ "sha256": {
656
+ "type": "string",
657
+ "pattern": "^[0-9a-f]{64}$"
658
+ },
659
+ "path": {
660
+ "type": "string",
661
+ "minLength": 1
662
+ }
663
+ },
664
+ "required": [
665
+ "runId",
666
+ "sha256",
667
+ "path"
668
+ ],
669
+ "additionalProperties": false,
670
+ "description": "Internal daemon handoff only; rejected (400) on POST /runs. Frozen-plan reference delivered to the executor as a file."
671
+ },
672
+ "reviewerPanel": {
673
+ "type": "array",
674
+ "items": {
675
+ "type": "object",
676
+ "properties": {
677
+ "harness": {
678
+ "type": "string",
679
+ "minLength": 1,
680
+ "pattern": "\\S",
681
+ "description": "Explicit reviewer harness id; repeated harness ids are allowed so one provider can review through multiple requested models."
682
+ },
683
+ "model": {
684
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/harnesses/items",
685
+ "description": "Per-reviewer model hint, passed to that harness only."
686
+ },
687
+ "effort": {
688
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/effort",
689
+ "description": "Per-reviewer effort hint, passed to that harness only."
690
+ },
691
+ "credentialProfileId": {
692
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/harnesses/items",
693
+ "description": "Per-reviewer credential profile id; explicit pins are strict and never fall back."
694
+ },
695
+ "processingPreference": {
696
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/processingPreference",
697
+ "description": "Advisory service preference. Fast or Economy may use ordinary Standard service; fallback never introduces Fast. Omission preserves native defaults. Explicit native serviceTier takes precedence."
698
+ }
699
+ },
700
+ "required": [
701
+ "harness"
702
+ ],
703
+ "additionalProperties": false,
704
+ "description": "One reviewer of an explicit reviewer panel — a harness plus optional model, effort, and strict credentialProfileId. Compact entries are unpinned; structured JSON carries pins."
705
+ },
706
+ "minItems": 1,
707
+ "description": "Explicit Agent reviewer panel — who reviews the change, one entry per reviewer as `harness=model:effort` (CLI `--reviewer-panel`, unpinned) or structured `--reviewer-panel-json` with optional strict credentialProfileId. Duplicate harness entries are kept so one provider can review through several models; overrides the legacy reviewerModels/reviewerEfforts maps."
708
+ },
709
+ "authPreference": {
710
+ "type": "string",
711
+ "enum": [
712
+ "subscription",
713
+ "api_key",
714
+ "auto"
715
+ ],
716
+ "description": "Per-run auth route override."
717
+ },
718
+ "credentialProfileId": {
719
+ "anyOf": [
720
+ {
721
+ "type": "string",
722
+ "minLength": 1
723
+ },
724
+ {
725
+ "type": "null"
726
+ }
727
+ ],
728
+ "description": "Explicit per-run credential profile id; null FORCES the engine-default ladder past a thread-sticky profile; unknown/disabled ids refuse, never default."
729
+ },
730
+ "delegate": {
731
+ "type": "boolean",
732
+ "description": "Agent-only: inject the Claudexor delegation belt so the harness can spawn bounded isolated sub-runs; non-agent modes refuse, while known belt or harness unavailability degrades before start to ordinary Agent with a durable warning."
733
+ },
734
+ "maxSeconds": {
735
+ "type": "integer",
736
+ "exclusiveMinimum": 0,
737
+ "maximum": 604800,
738
+ "description": "Wall-clock limit for the whole run (seconds, max seven days). Omission disables the clock. Explicit limits cancel by default; soft mode warns and continues."
739
+ },
740
+ "timeLimitMode": {
741
+ "type": "string",
742
+ "enum": [
743
+ "soft",
744
+ "hard"
745
+ ],
746
+ "description": "Initial timer mode: soft warns and continues; hard cancels. Omission is hard with maxSeconds and soft without it."
747
+ },
748
+ "denyPaths": {
749
+ "type": "array",
750
+ "items": {
751
+ "type": "string",
752
+ "minLength": 1
753
+ },
754
+ "description": "Per-run globs no candidate may touch at all; envelope-only (in-place runs are refused), enforced by the engine post-diff gate, disclosed per lane via path_deny receipts. accept_risk may still deliver (INV-111)."
755
+ },
756
+ "outputSchema": {
757
+ "type": "object",
758
+ "additionalProperties": {},
759
+ "description": "JSON Schema for the run's final answer; mandatory (incapable lane => preflight refusal), engine-validated into final/output.json with a typed outputConformance receipt."
760
+ },
761
+ "maxTurns": {
762
+ "type": "integer",
763
+ "exclusiveMinimum": 0,
764
+ "description": "Per-run turn cap (beats per-harness settings)."
765
+ },
766
+ "deferredDefaults": {
767
+ "type": "object",
768
+ "properties": {
769
+ "harnesses": {
770
+ "type": "object",
771
+ "additionalProperties": {
772
+ "type": "object",
773
+ "properties": {
774
+ "default_model": {
775
+ "type": [
776
+ "string",
777
+ "null"
778
+ ],
779
+ "default": null,
780
+ "description": "Per-harness default model; null = the harness's own default."
781
+ },
782
+ "effort": {
783
+ "anyOf": [
784
+ {
785
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/effort"
786
+ },
787
+ {
788
+ "type": "null"
789
+ }
790
+ ],
791
+ "description": "Default reasoning effort for the harness; null = harness default.",
792
+ "default": null
793
+ },
794
+ "max_turns": {
795
+ "anyOf": [
796
+ {
797
+ "type": "integer",
798
+ "exclusiveMinimum": 0
799
+ },
800
+ {
801
+ "type": "null"
802
+ }
803
+ ],
804
+ "default": null,
805
+ "description": "Default max agent turns; null = no limit."
806
+ },
807
+ "max_rounds": {
808
+ "anyOf": [
809
+ {
810
+ "type": "integer",
811
+ "exclusiveMinimum": 0
812
+ },
813
+ {
814
+ "type": "null"
815
+ }
816
+ ],
817
+ "default": null,
818
+ "description": "Default max convergence rounds; null = engine default."
819
+ },
820
+ "fallback_model": {
821
+ "type": [
822
+ "string",
823
+ "null"
824
+ ],
825
+ "default": null,
826
+ "description": "Model to fall back to on typed fallback signals; null = none."
827
+ },
828
+ "web": {
829
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/web",
830
+ "default": "auto",
831
+ "description": "Default web policy for this harness."
832
+ },
833
+ "auth_preference": {
834
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/authPreference",
835
+ "default": "auto",
836
+ "description": "Preferred auth route: subscription (native/OAuth session), api_key (a stored API key), or auto (engine picks subscription-first with policy fallback). A preference, not a secret."
837
+ }
838
+ },
839
+ "additionalProperties": false,
840
+ "description": "Per-harness settings."
841
+ }
842
+ },
843
+ "eligibleHarnesses": {
844
+ "type": "array",
845
+ "items": {
846
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/harnesses/items"
847
+ }
848
+ },
849
+ "primaryHarness": {
850
+ "anyOf": [
851
+ {
852
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/harnesses/items"
853
+ },
854
+ {
855
+ "type": "null"
856
+ }
857
+ ],
858
+ "description": "User-supplied string that must contain visible content, not just whitespace."
859
+ },
860
+ "authPreference": {
861
+ "$ref": "#/definitions/DeferredMessageDetail/properties/capturedStart/anyOf/0/properties/authPreference"
862
+ }
863
+ },
864
+ "required": [
865
+ "harnesses",
866
+ "eligibleHarnesses",
867
+ "primaryHarness",
868
+ "authPreference"
869
+ ],
870
+ "additionalProperties": false
871
+ }
872
+ },
873
+ "additionalProperties": false,
874
+ "description": "Request body for POST /runs: prompt, mode, scope, routing, strategy flags, budget, policies, and thread linkage."
875
+ },
876
+ {
877
+ "type": "null"
878
+ }
879
+ ],
880
+ "description": "Immutable execution controls captured once; null after clear. Completed envelopes may continue in a different_root under ordinary continueFrom custody."
881
+ },
882
+ "capturedAt": {
883
+ "anyOf": [
884
+ {
885
+ "type": "string",
886
+ "minLength": 1,
887
+ "description": "ISO-8601 timestamp string."
888
+ },
889
+ {
890
+ "type": "null"
891
+ }
892
+ ],
893
+ "description": "When capturedStart was frozen: draft creation. Edits never recapture; null after clear."
894
+ }
895
+ },
896
+ "required": [
897
+ "draftId",
898
+ "revision",
899
+ "state",
900
+ "predecessorJobId",
901
+ "predecessorRunId",
902
+ "predecessorResult",
903
+ "hold",
904
+ "dispatchedRevision",
905
+ "successorJobId",
906
+ "successorRunId",
907
+ "prompt",
908
+ "attachments",
909
+ "capturedStart",
910
+ "capturedAt"
911
+ ],
912
+ "additionalProperties": false,
913
+ "description": "Compact addressed draft state, with exact predecessor result and successor handles. A terminal predecessor does not imply the draft has resolved."
914
+ }
915
+ },
916
+ "$schema": "http://json-schema.org/draft-07/schema#"
917
+ }