@claudexor/schema 1.0.1 → 2.1.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 (278) hide show
  1. package/dist/agent-capabilities.d.ts +102 -30
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +49 -18
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/apply-eligibility.d.ts.map +1 -1
  6. package/dist/apply-eligibility.js +22 -6
  7. package/dist/apply-eligibility.js.map +1 -1
  8. package/dist/attachment.d.ts +117 -52
  9. package/dist/attachment.d.ts.map +1 -1
  10. package/dist/attachment.js +60 -45
  11. package/dist/attachment.js.map +1 -1
  12. package/dist/auth.d.ts +1444 -0
  13. package/dist/auth.d.ts.map +1 -0
  14. package/dist/auth.js +371 -0
  15. package/dist/auth.js.map +1 -0
  16. package/dist/budget.d.ts +147 -18
  17. package/dist/budget.d.ts.map +1 -1
  18. package/dist/budget.js +80 -22
  19. package/dist/budget.js.map +1 -1
  20. package/dist/config.d.ts +829 -135
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +195 -41
  23. package/dist/config.js.map +1 -1
  24. package/dist/context.d.ts +6 -6
  25. package/dist/context.d.ts.map +1 -1
  26. package/dist/context.js +31 -7
  27. package/dist/context.js.map +1 -1
  28. package/dist/control-gc.d.ts +185 -0
  29. package/dist/control-gc.d.ts.map +1 -0
  30. package/dist/control-gc.js +81 -0
  31. package/dist/control-gc.js.map +1 -0
  32. package/dist/control-operation-responses.d.ts +1298 -0
  33. package/dist/control-operation-responses.d.ts.map +1 -0
  34. package/dist/control-operation-responses.js +35 -0
  35. package/dist/control-operation-responses.js.map +1 -0
  36. package/dist/control-run-detail.d.ts +556 -247
  37. package/dist/control-run-detail.d.ts.map +1 -1
  38. package/dist/control-run-detail.js +72 -17
  39. package/dist/control-run-detail.js.map +1 -1
  40. package/dist/control-run-retry.d.ts +88 -0
  41. package/dist/control-run-retry.d.ts.map +1 -0
  42. package/dist/control-run-retry.js +40 -0
  43. package/dist/control-run-retry.js.map +1 -0
  44. package/dist/control-run-scope.d.ts +25 -0
  45. package/dist/control-run-scope.d.ts.map +1 -0
  46. package/dist/control-run-scope.js +22 -0
  47. package/dist/control-run-scope.js.map +1 -0
  48. package/dist/control-secret.d.ts +90 -0
  49. package/dist/control-secret.d.ts.map +1 -0
  50. package/dist/control-secret.js +35 -0
  51. package/dist/control-secret.js.map +1 -0
  52. package/dist/control-spec.d.ts +592 -0
  53. package/dist/control-spec.d.ts.map +1 -0
  54. package/dist/control-spec.js +85 -0
  55. package/dist/control-spec.js.map +1 -0
  56. package/dist/control-thread-apply.d.ts +175 -0
  57. package/dist/control-thread-apply.d.ts.map +1 -0
  58. package/dist/control-thread-apply.js +31 -0
  59. package/dist/control-thread-apply.js.map +1 -0
  60. package/dist/control-trust.d.ts +74 -10
  61. package/dist/control-trust.d.ts.map +1 -1
  62. package/dist/control-trust.js +31 -11
  63. package/dist/control-trust.js.map +1 -1
  64. package/dist/control.d.ts +1688 -1334
  65. package/dist/control.d.ts.map +1 -1
  66. package/dist/control.js +592 -333
  67. package/dist/control.js.map +1 -1
  68. package/dist/credential-profile.d.ts +454 -0
  69. package/dist/credential-profile.d.ts.map +1 -0
  70. package/dist/credential-profile.js +140 -0
  71. package/dist/credential-profile.js.map +1 -0
  72. package/dist/decision.d.ts +10 -10
  73. package/dist/decision.d.ts.map +1 -1
  74. package/dist/decision.js +62 -15
  75. package/dist/decision.js.map +1 -1
  76. package/dist/delivery.d.ts +99 -0
  77. package/dist/delivery.d.ts.map +1 -0
  78. package/dist/delivery.js +19 -0
  79. package/dist/delivery.js.map +1 -0
  80. package/dist/events.d.ts +41 -4
  81. package/dist/events.d.ts.map +1 -1
  82. package/dist/events.js +47 -4
  83. package/dist/events.js.map +1 -1
  84. package/dist/gate.d.ts +5 -5
  85. package/dist/gate.d.ts.map +1 -1
  86. package/dist/gate.js +25 -5
  87. package/dist/gate.js.map +1 -1
  88. package/dist/harness.d.ts +775 -237
  89. package/dist/harness.d.ts.map +1 -1
  90. package/dist/harness.js +314 -111
  91. package/dist/harness.js.map +1 -1
  92. package/dist/index.d.ts +19 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +19 -0
  95. package/dist/index.js.map +1 -1
  96. package/dist/operation.d.ts +185 -0
  97. package/dist/operation.d.ts.map +1 -0
  98. package/dist/operation.js +50 -0
  99. package/dist/operation.js.map +1 -0
  100. package/dist/orchestrate.d.ts +150 -22
  101. package/dist/orchestrate.d.ts.map +1 -1
  102. package/dist/orchestrate.js +117 -7
  103. package/dist/orchestrate.js.map +1 -1
  104. package/dist/primitives.d.ts.map +1 -1
  105. package/dist/primitives.js +4 -1
  106. package/dist/primitives.js.map +1 -1
  107. package/dist/problem.d.ts +29 -0
  108. package/dist/problem.d.ts.map +1 -0
  109. package/dist/problem.js +17 -0
  110. package/dist/problem.js.map +1 -0
  111. package/dist/project.d.ts +97 -0
  112. package/dist/project.d.ts.map +1 -0
  113. package/dist/project.js +27 -0
  114. package/dist/project.js.map +1 -0
  115. package/dist/quota.d.ts +269 -0
  116. package/dist/quota.d.ts.map +1 -0
  117. package/dist/quota.js +58 -0
  118. package/dist/quota.js.map +1 -0
  119. package/dist/raw.d.ts +195 -0
  120. package/dist/raw.d.ts.map +1 -0
  121. package/dist/raw.js +58 -0
  122. package/dist/raw.js.map +1 -0
  123. package/dist/readiness.d.ts +596 -0
  124. package/dist/readiness.d.ts.map +1 -0
  125. package/dist/readiness.js +87 -0
  126. package/dist/readiness.js.map +1 -0
  127. package/dist/recovery.d.ts +515 -0
  128. package/dist/recovery.d.ts.map +1 -0
  129. package/dist/recovery.js +93 -0
  130. package/dist/recovery.js.map +1 -0
  131. package/dist/request-requirements.d.ts +36 -0
  132. package/dist/request-requirements.d.ts.map +1 -0
  133. package/dist/request-requirements.js +29 -0
  134. package/dist/request-requirements.js.map +1 -0
  135. package/dist/review.d.ts +26 -26
  136. package/dist/review.d.ts.map +1 -1
  137. package/dist/review.js +50 -10
  138. package/dist/review.js.map +1 -1
  139. package/dist/route.d.ts +13 -13
  140. package/dist/route.d.ts.map +1 -1
  141. package/dist/route.js +19 -4
  142. package/dist/route.js.map +1 -1
  143. package/dist/setup.d.ts +9811 -0
  144. package/dist/setup.d.ts.map +1 -0
  145. package/dist/setup.js +475 -0
  146. package/dist/setup.js.map +1 -0
  147. package/dist/spec.d.ts +178 -61
  148. package/dist/spec.d.ts.map +1 -1
  149. package/dist/spec.js +69 -16
  150. package/dist/spec.js.map +1 -1
  151. package/dist/surface-run-controls.d.ts.map +1 -1
  152. package/dist/surface-run-controls.js +25 -21
  153. package/dist/surface-run-controls.js.map +1 -1
  154. package/dist/task.d.ts +1657 -60
  155. package/dist/task.d.ts.map +1 -1
  156. package/dist/task.js +144 -18
  157. package/dist/task.js.map +1 -1
  158. package/dist/telemetry.d.ts +487 -72
  159. package/dist/telemetry.d.ts.map +1 -1
  160. package/dist/telemetry.js +194 -16
  161. package/dist/telemetry.js.map +1 -1
  162. package/dist/thread.d.ts +89 -51
  163. package/dist/thread.d.ts.map +1 -1
  164. package/dist/thread.js +56 -11
  165. package/dist/thread.js.map +1 -1
  166. package/dist/tool-ref.d.ts +45 -0
  167. package/dist/tool-ref.d.ts.map +1 -0
  168. package/dist/tool-ref.js +45 -0
  169. package/dist/tool-ref.js.map +1 -0
  170. package/dist/workproduct.d.ts +3 -3
  171. package/dist/workproduct.d.ts.map +1 -1
  172. package/dist/workproduct.js.map +1 -1
  173. package/dist/workspace.d.ts +3 -3
  174. package/dist/workspace.d.ts.map +1 -1
  175. package/dist/workspace.js +12 -3
  176. package/dist/workspace.js.map +1 -1
  177. package/generated/AgentCapabilityCatalog.schema.json +53 -11
  178. package/generated/BudgetLease.schema.json +55 -6
  179. package/generated/BudgetObservation.schema.json +44 -7
  180. package/generated/ConformanceReport.schema.json +49 -0
  181. package/generated/ControlApplyCheckResponse.schema.json +34 -0
  182. package/generated/ControlArtifactListResponse.schema.json +57 -0
  183. package/generated/ControlAuthReadinessRefreshRequest.schema.json +38 -0
  184. package/generated/ControlAuthReadinessRefreshResponse.schema.json +85 -0
  185. package/generated/ControlCredentialProfileCreateRequest.schema.json +32 -0
  186. package/generated/ControlCredentialProfileCreateResponse.schema.json +142 -0
  187. package/generated/ControlCredentialProfileDeleteResponse.schema.json +107 -0
  188. package/generated/ControlCredentialProfilesResponse.schema.json +155 -0
  189. package/generated/ControlDeliveryResponse.schema.json +136 -0
  190. package/generated/ControlGcReceipt.schema.json +170 -0
  191. package/generated/ControlGcRequest.schema.json +18 -0
  192. package/generated/ControlHandshakeRequest.schema.json +26 -0
  193. package/generated/ControlHandshakeResponse.schema.json +30 -0
  194. package/generated/ControlHarnessListResponse.schema.json +198 -14
  195. package/generated/ControlHarnessModelsResponse.schema.json +19 -0
  196. package/generated/ControlHarnessSettingsPatch.schema.json +9 -12
  197. package/generated/ControlJournalEvent.schema.json +42 -0
  198. package/generated/ControlJournalExportReceipt.schema.json +49 -0
  199. package/generated/ControlJournalInspection.schema.json +149 -0
  200. package/generated/ControlJournalQuarantineReceipt.schema.json +55 -0
  201. package/generated/ControlJournalQuarantineRequest.schema.json +24 -0
  202. package/generated/ControlJournalValidation.schema.json +181 -0
  203. package/generated/ControlOperationCatalog.schema.json +128 -0
  204. package/generated/ControlOperationDescriptor.schema.json +110 -0
  205. package/generated/ControlProblem.schema.json +59 -0
  206. package/generated/ControlProject.schema.json +42 -0
  207. package/generated/ControlProjectListResponse.schema.json +54 -0
  208. package/generated/ControlProjectRegisterRequest.schema.json +19 -0
  209. package/generated/ControlProjectRelinkRequest.schema.json +19 -0
  210. package/generated/ControlQueuedRunInfo.schema.json +4 -2
  211. package/generated/ControlQuotaResponse.schema.json +177 -0
  212. package/generated/ControlResource.schema.json +59 -0
  213. package/generated/ControlRunAgainDraft.schema.json +539 -0
  214. package/generated/ControlRunDetail.schema.json +373 -34
  215. package/generated/ControlRunListResponse.schema.json +968 -0
  216. package/generated/ControlRunRetryResponse.schema.json +54 -0
  217. package/generated/ControlRunStartRequest.schema.json +123 -55
  218. package/generated/ControlRunStartResponse.schema.json +78 -0
  219. package/generated/ControlRunSummary.schema.json +312 -21
  220. package/generated/ControlSecretListResponse.schema.json +8 -14
  221. package/generated/ControlSecretMutationResponse.schema.json +32 -0
  222. package/generated/ControlSecretSetRequest.schema.json +27 -0
  223. package/generated/ControlSettingsSnapshot.schema.json +128 -44
  224. package/generated/ControlSettingsUpdateRequest.schema.json +119 -40
  225. package/generated/ControlSetupJob.schema.json +770 -64
  226. package/generated/ControlSetupJobCreateRequest.schema.json +16 -13
  227. package/generated/ControlSetupJobEvent.schema.json +869 -5
  228. package/generated/ControlSetupJobListFilter.schema.json +35 -0
  229. package/generated/ControlSetupJobListResponse.schema.json +770 -64
  230. package/generated/ControlSetupJobSnapshot.schema.json +878 -0
  231. package/generated/ControlSpecAnswersRequest.schema.json +74 -0
  232. package/generated/ControlSpecQuestionsRequest.schema.json +128 -2
  233. package/generated/ControlSpecSession.schema.json +249 -0
  234. package/generated/ControlSpecSessionListResponse.schema.json +261 -0
  235. package/generated/ControlThread.schema.json +36 -6
  236. package/generated/ControlThreadApplyResponse.schema.json +139 -0
  237. package/generated/ControlThreadCreateRequest.schema.json +6 -2
  238. package/generated/ControlThreadDetail.schema.json +64 -12
  239. package/generated/ControlThreadListResponse.schema.json +36 -6
  240. package/generated/ControlThreadTurnRequest.schema.json +413 -0
  241. package/generated/ControlThreadTurnResponse.schema.json +73 -0
  242. package/generated/ControlThreadUpdateRequest.schema.json +12 -1
  243. package/generated/ControlTrustListResponse.schema.json +6 -0
  244. package/generated/ControlTrustState.schema.json +6 -0
  245. package/generated/ControlTrustUpdateRequest.schema.json +65 -3
  246. package/generated/ControlUploadCreateRequest.schema.json +37 -0
  247. package/generated/ControlUploadFinalizeRequest.schema.json +17 -0
  248. package/generated/ControlUploadStatus.schema.json +40 -0
  249. package/generated/CredentialProfile.schema.json +78 -0
  250. package/generated/CredentialProfileStatus.schema.json +61 -0
  251. package/generated/DecisionRecord.schema.json +6 -3
  252. package/generated/GlobalConfig.schema.json +238 -55
  253. package/generated/HarnessEvent.schema.json +259 -11
  254. package/generated/HarnessManifest.schema.json +96 -14
  255. package/generated/HarnessModel.schema.json +19 -0
  256. package/generated/HarnessStatusDto.schema.json +198 -14
  257. package/generated/OrchestrateContract.schema.json +32 -6
  258. package/generated/OrchestratePlan.schema.json +20 -0
  259. package/generated/OrchestratePlanProgress.schema.json +61 -0
  260. package/generated/PaidBudget.schema.json +42 -0
  261. package/generated/Project.schema.json +45 -0
  262. package/generated/ProjectConfig.schema.json +45 -18
  263. package/generated/RawContextPacket.schema.json +184 -0
  264. package/generated/RawGitPatchEnvelope.schema.json +70 -0
  265. package/generated/RunEvent.schema.json +3 -0
  266. package/generated/RunTelemetry.schema.json +280 -0
  267. package/generated/SecretMetadata.schema.json +4 -7
  268. package/generated/Session.schema.json +14 -0
  269. package/generated/SpecPack.schema.json +118 -7
  270. package/generated/TaskContract.schema.json +224 -30
  271. package/generated/TestCommandInvocation.schema.json +45 -0
  272. package/generated/Thread.schema.json +74 -6
  273. package/generated/ThreadHeadPing.schema.json +40 -0
  274. package/generated/ThreadTurn.schema.json +24 -11
  275. package/generated/TrustConfig.schema.json +77 -0
  276. package/package.json +3 -2
  277. package/generated/ControlSetupJobConfirmRequest.schema.json +0 -18
  278. package/generated/ControlSpecFreezeRequest.schema.json +0 -83
@@ -0,0 +1,54 @@
1
+ {
2
+ "$ref": "#/definitions/ControlRunRetryResponse",
3
+ "definitions": {
4
+ "ControlRunRetryResponse": {
5
+ "type": "object",
6
+ "properties": {
7
+ "retryOf": {
8
+ "type": "string",
9
+ "minLength": 1,
10
+ "description": "Non-empty identifier string."
11
+ },
12
+ "jobId": {
13
+ "$ref": "#/definitions/ControlRunRetryResponse/properties/retryOf"
14
+ },
15
+ "runId": {
16
+ "anyOf": [
17
+ {
18
+ "$ref": "#/definitions/ControlRunRetryResponse/properties/retryOf"
19
+ },
20
+ {
21
+ "type": "null"
22
+ }
23
+ ],
24
+ "description": "Non-empty identifier string.",
25
+ "default": null
26
+ },
27
+ "turnId": {
28
+ "anyOf": [
29
+ {
30
+ "$ref": "#/definitions/ControlRunRetryResponse/properties/retryOf"
31
+ },
32
+ {
33
+ "type": "null"
34
+ }
35
+ ],
36
+ "description": "Non-empty identifier string.",
37
+ "default": null
38
+ },
39
+ "state": {
40
+ "type": "string",
41
+ "minLength": 1
42
+ }
43
+ },
44
+ "required": [
45
+ "retryOf",
46
+ "jobId",
47
+ "state"
48
+ ],
49
+ "additionalProperties": false,
50
+ "description": "Durable handle returned by Exact Retry for a fresh command attempt."
51
+ }
52
+ },
53
+ "$schema": "http://json-schema.org/draft-07/schema#"
54
+ }
@@ -9,51 +9,28 @@
9
9
  "default": "",
10
10
  "description": "The user's prompt for the run."
11
11
  },
12
+ "instructions": {
13
+ "type": "string",
14
+ "description": "System-level instructions layered onto every task-producing lane; delivered natively (append-system-prompt / developer_instructions) or as a delimited prompt prefix."
15
+ },
12
16
  "attachments": {
13
17
  "type": "array",
14
18
  "items": {
15
19
  "type": "object",
16
20
  "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": {
21
+ "resourceId": {
32
22
  "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."
23
+ "minLength": 1,
24
+ "description": "Immutable daemon resource id returned by upload finalize."
51
25
  }
52
26
  },
27
+ "required": [
28
+ "resourceId"
29
+ ],
53
30
  "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."
31
+ "description": "Reference to an immutable daemon-owned uploaded resource."
55
32
  },
56
- "description": "Inbound files/images for this turn; the daemon resolves each to a scoped on-disk attachment before the run spec is built."
33
+ "description": "Immutable daemon resource ids returned by upload finalize; paths and inline bytes are not accepted."
57
34
  },
58
35
  "mode": {
59
36
  "type": "string",
@@ -126,7 +103,7 @@
126
103
  "live"
127
104
  ],
128
105
  "default": "envelope",
129
- "description": "Run isolation: envelope (isolated worktree under .claudexor/workspaces, the default) or live (the project tree itself)."
106
+ "description": "Run isolation: envelope (isolated worktree in the external per-project runtime namespace, the default) or live (the project tree itself)."
130
107
  }
131
108
  },
132
109
  "additionalProperties": false,
@@ -149,20 +126,14 @@
149
126
  "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items",
150
127
  "description": "Primary harness the run should prefer."
151
128
  },
152
- "portfolio": {
129
+ "routingGoal": {
153
130
  "type": "string",
154
131
  "enum": [
155
- "daily-rich",
156
- "balanced",
157
- "cheapest",
158
- "strongest",
159
- "burn",
160
- "subscription-first",
161
- "api-overflow",
162
- "conserve-claude",
163
- "conserve-codex"
132
+ "auto",
133
+ "quality",
134
+ "economy"
164
135
  ],
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)."
136
+ "description": "Routing objective: pace expiring quota, choose the highest declared quality tier, or minimize incremental paid spend."
166
137
  },
167
138
  "model": {
168
139
  "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items",
@@ -266,17 +237,41 @@
266
237
  ],
267
238
  "description": "Best-of-N synthesis policy: auto only synthesizes an extra candidate when n>=3 and candidates genuinely complement; always/never force it."
268
239
  },
269
- "maxUsd": {
240
+ "paidBudget": {
270
241
  "anyOf": [
271
242
  {
272
- "type": "number",
273
- "minimum": 0
243
+ "type": "object",
244
+ "properties": {
245
+ "kind": {
246
+ "type": "string",
247
+ "const": "unlimited"
248
+ }
249
+ },
250
+ "required": [
251
+ "kind"
252
+ ],
253
+ "additionalProperties": false
274
254
  },
275
255
  {
276
- "type": "null"
256
+ "type": "object",
257
+ "properties": {
258
+ "kind": {
259
+ "type": "string",
260
+ "const": "finite"
261
+ },
262
+ "maxUsd": {
263
+ "type": "number",
264
+ "minimum": 0
265
+ }
266
+ },
267
+ "required": [
268
+ "kind",
269
+ "maxUsd"
270
+ ],
271
+ "additionalProperties": false
277
272
  }
278
273
  ],
279
- "description": "USD cap for the run; null = no cap."
274
+ "description": "Explicit incremental-cash budget for the run."
280
275
  },
281
276
  "access": {
282
277
  "type": "string",
@@ -305,14 +300,47 @@
305
300
  },
306
301
  "browser": {
307
302
  "type": "boolean",
308
- "description": "Opt this run into the agent-driven browser; honored only for browser-capable harnesses when web policy is not off."
303
+ "description": "Request the agent-driven browser; preflight records per-lane effectiveness and refuses when no selected lane can receive it."
309
304
  },
310
305
  "tests": {
311
306
  "type": "array",
312
307
  "items": {
313
- "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items"
308
+ "type": "object",
309
+ "properties": {
310
+ "program": {
311
+ "type": "string",
312
+ "minLength": 1,
313
+ "pattern": "\\S",
314
+ "description": "Executable invoked directly without an implicit shell."
315
+ },
316
+ "args": {
317
+ "type": "array",
318
+ "items": {
319
+ "type": "string"
320
+ },
321
+ "default": [],
322
+ "description": "Exact argv passed to the executable."
323
+ },
324
+ "cwd": {
325
+ "type": "string",
326
+ "description": "Optional project-relative working directory for the command."
327
+ },
328
+ "envAllowlist": {
329
+ "type": "array",
330
+ "items": {
331
+ "$ref": "#/definitions/ControlRunStartRequest/properties/harnesses/items"
332
+ },
333
+ "default": [],
334
+ "description": "Non-secret parent environment names explicitly forwarded to the command."
335
+ }
336
+ },
337
+ "required": [
338
+ "program"
339
+ ],
340
+ "additionalProperties": false,
341
+ "description": "Canonical deterministic command invocation; no implicit shell parsing."
314
342
  },
315
- "description": "Test commands to run as deterministic gates."
343
+ "description": "Typed-argv commands to run as deterministic gates."
316
344
  },
317
345
  "protectedPathApprovals": {
318
346
  "type": "array",
@@ -364,6 +392,10 @@
364
392
  "$ref": "#/definitions/ControlRunStartRequest/properties/threadId",
365
393
  "description": "Run this turn follows up on."
366
394
  },
395
+ "retryOf": {
396
+ "$ref": "#/definitions/ControlRunStartRequest/properties/threadId",
397
+ "description": "Server-owned Exact Retry lineage; direct POST /runs rejects it."
398
+ },
367
399
  "planRunId": {
368
400
  "$ref": "#/definitions/ControlRunStartRequest/properties/threadId",
369
401
  "description": "Internal daemon handoff only; rejected (400) on POST /runs. When set, the turn implements an approved plan from that run."
@@ -406,6 +438,18 @@
406
438
  ],
407
439
  "description": "Per-run auth route override."
408
440
  },
441
+ "credentialProfileId": {
442
+ "anyOf": [
443
+ {
444
+ "type": "string",
445
+ "minLength": 1
446
+ },
447
+ {
448
+ "type": "null"
449
+ }
450
+ ],
451
+ "description": "Explicit per-run credential profile id; null FORCES the engine-default ladder past a thread-sticky profile; unknown/disabled ids refuse, never default."
452
+ },
409
453
  "autonomy": {
410
454
  "type": "string",
411
455
  "enum": [
@@ -419,6 +463,30 @@
419
463
  "type": "integer",
420
464
  "exclusiveMinimum": 0,
421
465
  "description": "Cap on orchestrate plan tool calls; only meaningful for mode=orchestrate."
466
+ },
467
+ "maxSeconds": {
468
+ "type": "integer",
469
+ "exclusiveMinimum": 0,
470
+ "maximum": 604800,
471
+ "description": "Hard wall-clock deadline for the whole run (seconds, from scheduler start, max 7 days); on expiry the run is cancelled with reason wall_clock_exceeded and partial artifacts are kept."
472
+ },
473
+ "denyPaths": {
474
+ "type": "array",
475
+ "items": {
476
+ "type": "string",
477
+ "minLength": 1
478
+ },
479
+ "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)."
480
+ },
481
+ "outputSchema": {
482
+ "type": "object",
483
+ "additionalProperties": {},
484
+ "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."
485
+ },
486
+ "maxTurns": {
487
+ "type": "integer",
488
+ "exclusiveMinimum": 0,
489
+ "description": "Per-run turn cap (beats per-harness settings)."
422
490
  }
423
491
  },
424
492
  "additionalProperties": false,
@@ -0,0 +1,78 @@
1
+ {
2
+ "$ref": "#/definitions/ControlRunStartResponse",
3
+ "definitions": {
4
+ "ControlRunStartResponse": {
5
+ "anyOf": [
6
+ {
7
+ "type": "object",
8
+ "properties": {
9
+ "jobId": {
10
+ "type": "string",
11
+ "description": "Daemon job id backing the run."
12
+ },
13
+ "runId": {
14
+ "type": "string",
15
+ "description": "Run id."
16
+ },
17
+ "taskId": {
18
+ "type": "string",
19
+ "description": "Task id, when already allocated."
20
+ },
21
+ "runDir": {
22
+ "type": "string",
23
+ "description": "On-disk run artifact directory."
24
+ }
25
+ },
26
+ "required": [
27
+ "runId",
28
+ "runDir"
29
+ ],
30
+ "additionalProperties": false,
31
+ "description": "Response for a successfully enqueued run."
32
+ },
33
+ {
34
+ "type": "object",
35
+ "properties": {
36
+ "jobId": {
37
+ "type": "string",
38
+ "description": "Daemon job id."
39
+ },
40
+ "state": {
41
+ "type": "string",
42
+ "enum": [
43
+ "queued",
44
+ "running",
45
+ "blocked",
46
+ "succeeded",
47
+ "no_op",
48
+ "ungated",
49
+ "review_not_run",
50
+ "failed",
51
+ "cancelled",
52
+ "interrupted_unknown",
53
+ "cost_unverifiable",
54
+ "exhausted_overshoot",
55
+ "exhausted",
56
+ "not_converged",
57
+ "stuck_no_progress"
58
+ ],
59
+ "description": "Control-plane run state: queued/running while live, then an honest success, block, failure, interruption, cost, exhaustion, non-convergence, or cancellation terminal."
60
+ },
61
+ "error": {
62
+ "type": "string",
63
+ "description": "Error message, when the job failed."
64
+ }
65
+ },
66
+ "required": [
67
+ "jobId",
68
+ "state"
69
+ ],
70
+ "additionalProperties": false,
71
+ "description": "Compact state of a queued/running daemon job."
72
+ }
73
+ ],
74
+ "description": "Immediate or queued durable handle returned by POST /runs."
75
+ }
76
+ },
77
+ "$schema": "http://json-schema.org/draft-07/schema#"
78
+ }