@claudexor/schema 1.0.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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/agent-capabilities.d.ts +366 -0
  4. package/dist/agent-capabilities.d.ts.map +1 -0
  5. package/dist/agent-capabilities.js +125 -0
  6. package/dist/agent-capabilities.js.map +1 -0
  7. package/dist/apply-eligibility.d.ts +76 -0
  8. package/dist/apply-eligibility.d.ts.map +1 -0
  9. package/dist/apply-eligibility.js +37 -0
  10. package/dist/apply-eligibility.js.map +1 -0
  11. package/dist/attachment.d.ts +69 -0
  12. package/dist/attachment.d.ts.map +1 -0
  13. package/dist/attachment.js +54 -0
  14. package/dist/attachment.js.map +1 -0
  15. package/dist/budget.d.ts +75 -0
  16. package/dist/budget.d.ts.map +1 -0
  17. package/dist/budget.js +54 -0
  18. package/dist/budget.js.map +1 -0
  19. package/dist/config.d.ts +743 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js +194 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/context.d.ts +222 -0
  24. package/dist/context.d.ts.map +1 -0
  25. package/dist/context.js +70 -0
  26. package/dist/context.js.map +1 -0
  27. package/dist/control-run-detail.d.ts +1686 -0
  28. package/dist/control-run-detail.d.ts.map +1 -0
  29. package/dist/control-run-detail.js +107 -0
  30. package/dist/control-run-detail.js.map +1 -0
  31. package/dist/control-trust.d.ts +79 -0
  32. package/dist/control-trust.d.ts.map +1 -0
  33. package/dist/control-trust.js +39 -0
  34. package/dist/control-trust.js.map +1 -0
  35. package/dist/control.d.ts +4226 -0
  36. package/dist/control.d.ts.map +1 -0
  37. package/dist/control.js +1022 -0
  38. package/dist/control.js.map +1 -0
  39. package/dist/decision.d.ts +208 -0
  40. package/dist/decision.d.ts.map +1 -0
  41. package/dist/decision.js +98 -0
  42. package/dist/decision.js.map +1 -0
  43. package/dist/events.d.ts +70 -0
  44. package/dist/events.d.ts.map +1 -0
  45. package/dist/events.js +105 -0
  46. package/dist/events.js.map +1 -0
  47. package/dist/gate.d.ts +37 -0
  48. package/dist/gate.d.ts.map +1 -0
  49. package/dist/gate.js +20 -0
  50. package/dist/gate.js.map +1 -0
  51. package/dist/harness.d.ts +1418 -0
  52. package/dist/harness.d.ts.map +1 -0
  53. package/dist/harness.js +552 -0
  54. package/dist/harness.js.map +1 -0
  55. package/dist/index.d.ts +32 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +32 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/orchestrate.d.ts +428 -0
  60. package/dist/orchestrate.d.ts.map +1 -0
  61. package/dist/orchestrate.js +246 -0
  62. package/dist/orchestrate.js.map +1 -0
  63. package/dist/primitives.d.ts +71 -0
  64. package/dist/primitives.d.ts.map +1 -0
  65. package/dist/primitives.js +114 -0
  66. package/dist/primitives.js.map +1 -0
  67. package/dist/review.d.ts +220 -0
  68. package/dist/review.d.ts.map +1 -0
  69. package/dist/review.js +91 -0
  70. package/dist/review.js.map +1 -0
  71. package/dist/route.d.ts +67 -0
  72. package/dist/route.d.ts.map +1 -0
  73. package/dist/route.js +33 -0
  74. package/dist/route.js.map +1 -0
  75. package/dist/spec.d.ts +561 -0
  76. package/dist/spec.d.ts.map +1 -0
  77. package/dist/spec.js +133 -0
  78. package/dist/spec.js.map +1 -0
  79. package/dist/surface-run-controls.d.ts +14 -0
  80. package/dist/surface-run-controls.d.ts.map +1 -0
  81. package/dist/surface-run-controls.js +142 -0
  82. package/dist/surface-run-controls.js.map +1 -0
  83. package/dist/task.d.ts +565 -0
  84. package/dist/task.d.ts.map +1 -0
  85. package/dist/task.js +186 -0
  86. package/dist/task.js.map +1 -0
  87. package/dist/telemetry.d.ts +660 -0
  88. package/dist/telemetry.d.ts.map +1 -0
  89. package/dist/telemetry.js +140 -0
  90. package/dist/telemetry.js.map +1 -0
  91. package/dist/thread.d.ts +348 -0
  92. package/dist/thread.d.ts.map +1 -0
  93. package/dist/thread.js +194 -0
  94. package/dist/thread.js.map +1 -0
  95. package/dist/workproduct.d.ts +31 -0
  96. package/dist/workproduct.d.ts.map +1 -0
  97. package/dist/workproduct.js +25 -0
  98. package/dist/workproduct.js.map +1 -0
  99. package/dist/workspace.d.ts +53 -0
  100. package/dist/workspace.d.ts.map +1 -0
  101. package/dist/workspace.js +30 -0
  102. package/dist/workspace.js.map +1 -0
  103. package/generated/AgentCapabilityCatalog.schema.json +389 -0
  104. package/generated/ApplyEligibility.schema.json +44 -0
  105. package/generated/BudgetLease.schema.json +95 -0
  106. package/generated/BudgetObservation.schema.json +76 -0
  107. package/generated/ConformanceReport.schema.json +107 -0
  108. package/generated/ContextPack.schema.json +186 -0
  109. package/generated/ControlApplyCheckRequest.schema.json +54 -0
  110. package/generated/ControlApplyRequest.schema.json +74 -0
  111. package/generated/ControlHarnessListResponse.schema.json +498 -0
  112. package/generated/ControlHarnessModelsResponse.schema.json +78 -0
  113. package/generated/ControlHarnessSettingsPatch.schema.json +130 -0
  114. package/generated/ControlInteractionAnswerRequest.schema.json +48 -0
  115. package/generated/ControlInteractionAnswerResponse.schema.json +35 -0
  116. package/generated/ControlPendingInteraction.schema.json +129 -0
  117. package/generated/ControlQueuedRunInfo.schema.json +44 -0
  118. package/generated/ControlRunControlRequest.schema.json +61 -0
  119. package/generated/ControlRunControlResponse.schema.json +40 -0
  120. package/generated/ControlRunDecisionRequest.schema.json +98 -0
  121. package/generated/ControlRunDecisionResponse.schema.json +40 -0
  122. package/generated/ControlRunDetail.schema.json +1925 -0
  123. package/generated/ControlRunStartInfo.schema.json +33 -0
  124. package/generated/ControlRunStartRequest.schema.json +429 -0
  125. package/generated/ControlRunSummary.schema.json +666 -0
  126. package/generated/ControlSecretListResponse.schema.json +57 -0
  127. package/generated/ControlSettingsSnapshot.schema.json +281 -0
  128. package/generated/ControlSettingsUpdateRequest.schema.json +212 -0
  129. package/generated/ControlSetupJob.schema.json +148 -0
  130. package/generated/ControlSetupJobConfirmRequest.schema.json +18 -0
  131. package/generated/ControlSetupJobCreateRequest.schema.json +38 -0
  132. package/generated/ControlSetupJobEvent.schema.json +58 -0
  133. package/generated/ControlSetupJobListResponse.schema.json +162 -0
  134. package/generated/ControlSpecFreezeRequest.schema.json +83 -0
  135. package/generated/ControlSpecQuestionsRequest.schema.json +80 -0
  136. package/generated/ControlThread.schema.json +129 -0
  137. package/generated/ControlThreadApplyRequest.schema.json +32 -0
  138. package/generated/ControlThreadApplyResponse.schema.json +47 -0
  139. package/generated/ControlThreadCreateRequest.schema.json +107 -0
  140. package/generated/ControlThreadDetail.schema.json +515 -0
  141. package/generated/ControlThreadListResponse.schema.json +141 -0
  142. package/generated/ControlThreadUpdateRequest.schema.json +46 -0
  143. package/generated/ControlTrustListResponse.schema.json +59 -0
  144. package/generated/ControlTrustState.schema.json +45 -0
  145. package/generated/ControlTrustUpdateRequest.schema.json +26 -0
  146. package/generated/DecisionRecord.schema.json +232 -0
  147. package/generated/GateResult.schema.json +81 -0
  148. package/generated/GlobalConfig.schema.json +313 -0
  149. package/generated/HarnessEvent.schema.json +360 -0
  150. package/generated/HarnessManifest.schema.json +350 -0
  151. package/generated/HarnessModel.schema.json +41 -0
  152. package/generated/HarnessStatusDto.schema.json +486 -0
  153. package/generated/McpRunToolResult.schema.json +91 -0
  154. package/generated/OrchestrateContract.schema.json +93 -0
  155. package/generated/OrchestratePlan.schema.json +244 -0
  156. package/generated/OrchestratePlanProgress.schema.json +103 -0
  157. package/generated/ProjectConfig.schema.json +95 -0
  158. package/generated/ReviewFinding.schema.json +226 -0
  159. package/generated/RouteFallbackPayload.schema.json +79 -0
  160. package/generated/RouteProof.schema.json +111 -0
  161. package/generated/RunControl.schema.json +51 -0
  162. package/generated/RunEvent.schema.json +103 -0
  163. package/generated/RunFailure.schema.json +98 -0
  164. package/generated/RunTelemetry.schema.json +433 -0
  165. package/generated/SecretMetadata.schema.json +34 -0
  166. package/generated/Session.schema.json +80 -0
  167. package/generated/SessionReboundLineage.schema.json +73 -0
  168. package/generated/SpecPack.schema.json +372 -0
  169. package/generated/TaskContract.schema.json +501 -0
  170. package/generated/Thread.schema.json +176 -0
  171. package/generated/ThreadTurn.schema.json +172 -0
  172. package/generated/TrustConfig.schema.json +44 -0
  173. package/generated/WorkProduct.schema.json +60 -0
  174. package/generated/WorkspaceEnvelope.schema.json +94 -0
  175. package/package.json +43 -0
@@ -0,0 +1,33 @@
1
+ {
2
+ "$ref": "#/definitions/ControlRunStartInfo",
3
+ "definitions": {
4
+ "ControlRunStartInfo": {
5
+ "type": "object",
6
+ "properties": {
7
+ "jobId": {
8
+ "type": "string",
9
+ "description": "Daemon job id backing the run."
10
+ },
11
+ "runId": {
12
+ "type": "string",
13
+ "description": "Run id."
14
+ },
15
+ "taskId": {
16
+ "type": "string",
17
+ "description": "Task id, when already allocated."
18
+ },
19
+ "runDir": {
20
+ "type": "string",
21
+ "description": "On-disk run artifact directory."
22
+ }
23
+ },
24
+ "required": [
25
+ "runId",
26
+ "runDir"
27
+ ],
28
+ "additionalProperties": false,
29
+ "description": "Response for a successfully enqueued run."
30
+ }
31
+ },
32
+ "$schema": "http://json-schema.org/draft-07/schema#"
33
+ }
@@ -0,0 +1,429 @@
1
+ {
2
+ "$ref": "#/definitions/ControlRunStartRequest",
3
+ "definitions": {
4
+ "ControlRunStartRequest": {
5
+ "type": "object",
6
+ "properties": {
7
+ "prompt": {
8
+ "type": "string",
9
+ "default": "",
10
+ "description": "The user's prompt for the run."
11
+ },
12
+ "attachments": {
13
+ "type": "array",
14
+ "items": {
15
+ "type": "object",
16
+ "properties": {
17
+ "kind": {
18
+ "type": "string",
19
+ "enum": [
20
+ "image",
21
+ "file"
22
+ ],
23
+ "description": "Kind of attachment: image (vision input) or file (generic bytes).",
24
+ "default": "file"
25
+ },
26
+ "mime": {
27
+ "type": "string",
28
+ "default": "application/octet-stream",
29
+ "description": "MIME type of the attachment content."
30
+ },
31
+ "name": {
32
+ "type": "string",
33
+ "default": "",
34
+ "description": "Original file name for the attachment."
35
+ },
36
+ "data": {
37
+ "type": [
38
+ "string",
39
+ "null"
40
+ ],
41
+ "default": null,
42
+ "description": "Base64-inline attachment bytes for a fresh upload; null when path is used instead."
43
+ },
44
+ "path": {
45
+ "type": [
46
+ "string",
47
+ "null"
48
+ ],
49
+ "default": null,
50
+ "description": "Absolute existing file path to read bytes from; null when data is used instead."
51
+ }
52
+ },
53
+ "additionalProperties": false,
54
+ "description": "Inbound attachment on a control request; exactly one of data (base64-inline) or path (absolute existing file) is expected, resolved by the daemon into a durable Attachment."
55
+ },
56
+ "description": "Inbound files/images for this turn; the daemon resolves each to a scoped on-disk attachment before the run spec is built."
57
+ },
58
+ "mode": {
59
+ "type": "string",
60
+ "enum": [
61
+ "ask",
62
+ "plan",
63
+ "audit",
64
+ "agent",
65
+ "orchestrate"
66
+ ],
67
+ "description": "Canonical run mode: ask, plan, and audit are read-only; agent writes; orchestrate is the autonomous coordinator intent. Engine strategies (race, attempts, swarm, create) are flags on a mode, not modes.",
68
+ "default": "agent"
69
+ },
70
+ "scope": {
71
+ "anyOf": [
72
+ {
73
+ "type": "object",
74
+ "properties": {
75
+ "kind": {
76
+ "type": "string",
77
+ "const": "project"
78
+ },
79
+ "root": {
80
+ "type": "string",
81
+ "description": "Absolute path of the project root."
82
+ },
83
+ "context": {
84
+ "type": "string",
85
+ "enum": [
86
+ "auto"
87
+ ],
88
+ "description": "Project context depth; auto is the only mode.",
89
+ "default": "auto"
90
+ }
91
+ },
92
+ "required": [
93
+ "kind",
94
+ "root"
95
+ ],
96
+ "additionalProperties": false,
97
+ "description": "Run anchored to a project."
98
+ },
99
+ {
100
+ "type": "object",
101
+ "properties": {
102
+ "kind": {
103
+ "type": "string",
104
+ "const": "none"
105
+ }
106
+ },
107
+ "required": [
108
+ "kind"
109
+ ],
110
+ "additionalProperties": false,
111
+ "description": "Run with no project (pure ask)."
112
+ }
113
+ ],
114
+ "description": "What the run operates on: a project (with root) or nothing.",
115
+ "default": {
116
+ "kind": "none"
117
+ }
118
+ },
119
+ "execution": {
120
+ "type": "object",
121
+ "properties": {
122
+ "isolation": {
123
+ "type": "string",
124
+ "enum": [
125
+ "envelope",
126
+ "live"
127
+ ],
128
+ "default": "envelope",
129
+ "description": "Run isolation: envelope (isolated worktree under .claudexor/workspaces, the default) or live (the project tree itself)."
130
+ }
131
+ },
132
+ "additionalProperties": false,
133
+ "description": "Execution isolation settings for a run.",
134
+ "default": {
135
+ "isolation": "envelope"
136
+ }
137
+ },
138
+ "harnesses": {
139
+ "type": "array",
140
+ "items": {
141
+ "type": "string",
142
+ "minLength": 1,
143
+ "pattern": "\\S",
144
+ "description": "User-supplied string that must contain visible content, not just whitespace."
145
+ },
146
+ "description": "Eligible harness pool for the run; omitted = engine auto-pools."
147
+ },
148
+ "primaryHarness": {
149
+ "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items",
150
+ "description": "Primary harness the run should prefer."
151
+ },
152
+ "portfolio": {
153
+ "type": "string",
154
+ "enum": [
155
+ "daily-rich",
156
+ "balanced",
157
+ "cheapest",
158
+ "strongest",
159
+ "burn",
160
+ "subscription-first",
161
+ "api-overflow",
162
+ "conserve-claude",
163
+ "conserve-codex"
164
+ ],
165
+ "description": "Budget portfolio weighting the harness router's quality/cost/latency and subscription-vs-API preferences (e.g. cheapest minimizes spend, burn maximizes quality, conserve-* deprioritizes one vendor)."
166
+ },
167
+ "model": {
168
+ "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items",
169
+ "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."
170
+ },
171
+ "models": {
172
+ "type": "object",
173
+ "additionalProperties": {
174
+ "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items"
175
+ },
176
+ "propertyNames": {
177
+ "minLength": 1,
178
+ "pattern": "\\S"
179
+ },
180
+ "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."
181
+ },
182
+ "effort": {
183
+ "type": "string",
184
+ "enum": [
185
+ "low",
186
+ "medium",
187
+ "high",
188
+ "xhigh",
189
+ "max"
190
+ ],
191
+ "description": "Requested reasoning effort."
192
+ },
193
+ "reviewerModels": {
194
+ "type": "object",
195
+ "additionalProperties": {
196
+ "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items"
197
+ },
198
+ "propertyNames": {
199
+ "enum": [
200
+ "openai",
201
+ "anthropic",
202
+ "google",
203
+ "cursor",
204
+ "opencode",
205
+ "xai",
206
+ "local",
207
+ "unknown"
208
+ ]
209
+ },
210
+ "description": "Per-provider-family reviewer model overrides (legacy; reviewerPanel wins when present)."
211
+ },
212
+ "reviewerEfforts": {
213
+ "type": "object",
214
+ "additionalProperties": {
215
+ "$ref": "#/definitions/ControlRunStartRequest/properties/effort"
216
+ },
217
+ "propertyNames": {
218
+ "enum": [
219
+ "openai",
220
+ "anthropic",
221
+ "google",
222
+ "cursor",
223
+ "opencode",
224
+ "xai",
225
+ "local",
226
+ "unknown"
227
+ ]
228
+ },
229
+ "description": "Per-provider-family reviewer effort overrides (legacy; reviewerPanel wins when present)."
230
+ },
231
+ "n": {
232
+ "type": "integer",
233
+ "exclusiveMinimum": 0,
234
+ "description": "Race width: number of best-of-N candidates."
235
+ },
236
+ "attempts": {
237
+ "anyOf": [
238
+ {
239
+ "type": "integer",
240
+ "exclusiveMinimum": 0
241
+ },
242
+ {
243
+ "type": "null"
244
+ }
245
+ ],
246
+ "description": "Cap on convergence attempts; null = engine default."
247
+ },
248
+ "untilClean": {
249
+ "type": "boolean",
250
+ "description": "Agent flag: iterate until the convergence predicate is clean (no fixed cap)."
251
+ },
252
+ "swarm": {
253
+ "type": "boolean",
254
+ "description": "Audit flag: bounded read-only research swarm."
255
+ },
256
+ "create": {
257
+ "type": "boolean",
258
+ "description": "Agent flag: create-from-scratch intent."
259
+ },
260
+ "synthesis": {
261
+ "type": "string",
262
+ "enum": [
263
+ "auto",
264
+ "always",
265
+ "never"
266
+ ],
267
+ "description": "Best-of-N synthesis policy: auto only synthesizes an extra candidate when n>=3 and candidates genuinely complement; always/never force it."
268
+ },
269
+ "maxUsd": {
270
+ "anyOf": [
271
+ {
272
+ "type": "number",
273
+ "minimum": 0
274
+ },
275
+ {
276
+ "type": "null"
277
+ }
278
+ ],
279
+ "description": "USD cap for the run; null = no cap."
280
+ },
281
+ "access": {
282
+ "type": "string",
283
+ "enum": [
284
+ "readonly",
285
+ "workspace_write",
286
+ "full",
287
+ "external_sandbox_full",
288
+ "inherit_native"
289
+ ],
290
+ "description": "Requested access profile; effective access is derived by the engine and never client-supplied."
291
+ },
292
+ "web": {
293
+ "type": "string",
294
+ "enum": [
295
+ "off",
296
+ "auto",
297
+ "cached",
298
+ "live"
299
+ ],
300
+ "description": "Web policy for the run (alias of externalContextPolicy; must match when both set)."
301
+ },
302
+ "externalContextPolicy": {
303
+ "$ref": "#/definitions/ControlRunStartRequest/properties/web",
304
+ "description": "External web/context policy for the run."
305
+ },
306
+ "browser": {
307
+ "type": "boolean",
308
+ "description": "Opt this run into the agent-driven browser; honored only for browser-capable harnesses when web policy is not off."
309
+ },
310
+ "tests": {
311
+ "type": "array",
312
+ "items": {
313
+ "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items"
314
+ },
315
+ "description": "Test commands to run as deterministic gates."
316
+ },
317
+ "protectedPathApprovals": {
318
+ "type": "array",
319
+ "items": {
320
+ "type": "object",
321
+ "properties": {
322
+ "path": {
323
+ "type": "string",
324
+ "minLength": 1,
325
+ "pattern": "\\S",
326
+ "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."
327
+ },
328
+ "reason": {
329
+ "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items",
330
+ "description": "Optional human-readable reason for the approval."
331
+ }
332
+ },
333
+ "required": [
334
+ "path"
335
+ ],
336
+ "additionalProperties": false,
337
+ "description": "Per-run typed operator approval allowing changes under an auto-protected gate/test path."
338
+ },
339
+ "description": "Typed per-run approvals for changing auto-protected gate/test paths; does not bypass built-in critical/security path human gates."
340
+ },
341
+ "specPath": {
342
+ "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items",
343
+ "description": "Path to a frozen SpecPack the run is held to."
344
+ },
345
+ "specId": {
346
+ "type": "string",
347
+ "description": "Id of the SpecPack the run is held to."
348
+ },
349
+ "specHash": {
350
+ "type": "string",
351
+ "minLength": 1,
352
+ "description": "Content hash of the SpecPack the run is held to."
353
+ },
354
+ "threadId": {
355
+ "type": "string",
356
+ "minLength": 1,
357
+ "description": "Thread this run is a turn of."
358
+ },
359
+ "turnId": {
360
+ "$ref": "#/definitions/ControlRunStartRequest/properties/threadId",
361
+ "description": "Internal daemon handoff only; rejected (400) when supplied by a client on POST /runs — use POST /threads/:id/turns instead."
362
+ },
363
+ "parentRunId": {
364
+ "$ref": "#/definitions/ControlRunStartRequest/properties/threadId",
365
+ "description": "Run this turn follows up on."
366
+ },
367
+ "planRunId": {
368
+ "$ref": "#/definitions/ControlRunStartRequest/properties/threadId",
369
+ "description": "Internal daemon handoff only; rejected (400) on POST /runs. When set, the turn implements an approved plan from that run."
370
+ },
371
+ "reviewerPanel": {
372
+ "type": "array",
373
+ "items": {
374
+ "type": "object",
375
+ "properties": {
376
+ "harness": {
377
+ "type": "string",
378
+ "minLength": 1,
379
+ "pattern": "\\S",
380
+ "description": "Explicit reviewer harness id; repeated harness ids are allowed so one provider can review through multiple requested models."
381
+ },
382
+ "model": {
383
+ "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items",
384
+ "description": "Per-reviewer model hint, passed to that harness only."
385
+ },
386
+ "effort": {
387
+ "$ref": "#/definitions/ControlRunStartRequest/properties/effort",
388
+ "description": "Per-reviewer effort hint, passed to that harness only."
389
+ }
390
+ },
391
+ "required": [
392
+ "harness"
393
+ ],
394
+ "additionalProperties": false,
395
+ "description": "One reviewer of an explicit reviewer panel."
396
+ },
397
+ "minItems": 1,
398
+ "description": "Explicit reviewer panel; overrides the legacy reviewerModels/reviewerEfforts maps and preserves duplicate harness entries for multi-model same-provider reviews."
399
+ },
400
+ "authPreference": {
401
+ "type": "string",
402
+ "enum": [
403
+ "subscription",
404
+ "api_key",
405
+ "auto"
406
+ ],
407
+ "description": "Per-run auth route override."
408
+ },
409
+ "autonomy": {
410
+ "type": "string",
411
+ "enum": [
412
+ "suggest",
413
+ "auto_safe",
414
+ "auto_full"
415
+ ],
416
+ "description": "Autonomy level for the orchestrate planner; only meaningful for mode=orchestrate."
417
+ },
418
+ "maxToolCalls": {
419
+ "type": "integer",
420
+ "exclusiveMinimum": 0,
421
+ "description": "Cap on orchestrate plan tool calls; only meaningful for mode=orchestrate."
422
+ }
423
+ },
424
+ "additionalProperties": false,
425
+ "description": "Request body for POST /runs: prompt, mode, scope, routing, strategy flags, budget, policies, and spec/thread linkage."
426
+ }
427
+ },
428
+ "$schema": "http://json-schema.org/draft-07/schema#"
429
+ }