@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
@@ -28,12 +28,14 @@
28
28
  "review_not_run",
29
29
  "failed",
30
30
  "cancelled",
31
- "interrupted",
31
+ "interrupted_unknown",
32
+ "cost_unverifiable",
33
+ "exhausted_overshoot",
32
34
  "exhausted",
33
35
  "not_converged",
34
36
  "stuck_no_progress"
35
37
  ],
36
- "description": "Control-plane run state: queued/running while live; blocked awaiting a human; then a terminal outcome (succeeded, no_op, ungated, review_not_run, failed, cancelled, interrupted, exhausted, not_converged, stuck_no_progress)."
38
+ "description": "Control-plane run state: queued/running while live, then an honest success, block, failure, interruption, cost, exhaustion, non-convergence, or cancellation terminal."
37
39
  },
38
40
  "runDir": {
39
41
  "type": "string",
@@ -230,20 +232,14 @@
230
232
  "type": "string",
231
233
  "description": "Primary harness the run preferred."
232
234
  },
233
- "portfolio": {
235
+ "routingGoal": {
234
236
  "type": "string",
235
237
  "enum": [
236
- "daily-rich",
237
- "balanced",
238
- "cheapest",
239
- "strongest",
240
- "burn",
241
- "subscription-first",
242
- "api-overflow",
243
- "conserve-claude",
244
- "conserve-codex"
238
+ "auto",
239
+ "quality",
240
+ "economy"
245
241
  ],
246
- "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)."
242
+ "description": "Routing objective: pace expiring quota, choose the highest declared quality tier, or minimize incremental paid spend."
247
243
  },
248
244
  "model": {
249
245
  "type": "string",
@@ -314,24 +310,220 @@
314
310
  "type": "integer",
315
311
  "description": "Race width, when the run was a race."
316
312
  },
317
- "maxUsd": {
318
- "type": [
319
- "number",
320
- "null"
313
+ "paidBudget": {
314
+ "anyOf": [
315
+ {
316
+ "type": "object",
317
+ "properties": {
318
+ "kind": {
319
+ "type": "string",
320
+ "const": "unlimited"
321
+ }
322
+ },
323
+ "required": [
324
+ "kind"
325
+ ],
326
+ "additionalProperties": false
327
+ },
328
+ {
329
+ "type": "object",
330
+ "properties": {
331
+ "kind": {
332
+ "type": "string",
333
+ "const": "finite"
334
+ },
335
+ "maxUsd": {
336
+ "type": "number",
337
+ "minimum": 0
338
+ }
339
+ },
340
+ "required": [
341
+ "kind",
342
+ "maxUsd"
343
+ ],
344
+ "additionalProperties": false
345
+ }
321
346
  ],
322
- "description": "USD cap for the run; null = no cap."
347
+ "description": "Explicit incremental-cash budget for the run."
323
348
  },
324
349
  "spendUsd": {
325
350
  "type": [
326
351
  "number",
327
352
  "null"
328
353
  ],
329
- "description": "Settled spend in USD; null when unknown."
354
+ "description": "Settled cash in USD; null when unknown."
330
355
  },
331
356
  "spendEstimated": {
332
357
  "type": "boolean",
333
358
  "description": "True when spend is token-derived rather than natively reported."
334
359
  },
360
+ "inputTokens": {
361
+ "anyOf": [
362
+ {
363
+ "type": "integer",
364
+ "minimum": 0
365
+ },
366
+ {
367
+ "type": "null"
368
+ }
369
+ ],
370
+ "description": "Input tokens summed across all attempts; null when no harness reported them."
371
+ },
372
+ "outputTokens": {
373
+ "anyOf": [
374
+ {
375
+ "type": "integer",
376
+ "minimum": 0
377
+ },
378
+ {
379
+ "type": "null"
380
+ }
381
+ ],
382
+ "description": "Output tokens summed across all attempts; null when no harness reported them."
383
+ },
384
+ "cachedInputTokens": {
385
+ "anyOf": [
386
+ {
387
+ "type": "integer",
388
+ "minimum": 0
389
+ },
390
+ {
391
+ "type": "null"
392
+ }
393
+ ],
394
+ "description": "Cached input tokens summed across all attempts; null when no harness reported them."
395
+ },
396
+ "outputConformance": {
397
+ "anyOf": [
398
+ {
399
+ "type": "string",
400
+ "enum": [
401
+ "passed",
402
+ "failed"
403
+ ]
404
+ },
405
+ {
406
+ "type": "null"
407
+ }
408
+ ],
409
+ "description": "Structured-output conformance receipt (passed/failed); null when the run had no outputSchema."
410
+ },
411
+ "authRoute": {
412
+ "anyOf": [
413
+ {
414
+ "type": "object",
415
+ "properties": {
416
+ "requested": {
417
+ "type": "string",
418
+ "enum": [
419
+ "subscription",
420
+ "api_key",
421
+ "auto"
422
+ ],
423
+ "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."
424
+ },
425
+ "effective": {
426
+ "anyOf": [
427
+ {
428
+ "type": "string",
429
+ "enum": [
430
+ "local_session",
431
+ "api_key",
432
+ "unknown"
433
+ ],
434
+ "description": "Auth mode a route runs under: a native local session, an API key, or unknown."
435
+ },
436
+ {
437
+ "type": "null"
438
+ }
439
+ ],
440
+ "description": "Auth mode a route runs under: a native local session, an API key, or unknown.",
441
+ "default": null
442
+ },
443
+ "source": {
444
+ "anyOf": [
445
+ {
446
+ "type": "string",
447
+ "enum": [
448
+ "native_session",
449
+ "oauth_token_env",
450
+ "api_key_env",
451
+ "api_key_flag",
452
+ "provider_auth_file",
453
+ "none"
454
+ ],
455
+ "description": "Concrete credential source used or probed by a harness."
456
+ },
457
+ {
458
+ "type": "null"
459
+ }
460
+ ],
461
+ "description": "Concrete credential source used or probed by a harness.",
462
+ "default": null
463
+ },
464
+ "reason": {
465
+ "type": "string",
466
+ "enum": [
467
+ "as_requested",
468
+ "native_first",
469
+ "no_native_session_fallback",
470
+ "requested_route_unavailable",
471
+ "undisclosed"
472
+ ],
473
+ "description": "Deterministic reason for the effective auth route: as_requested, native_first (auto, INV-061), no_native_session_fallback (auto downgraded to api_key), requested_route_unavailable (explicit preference contradicted), or undisclosed."
474
+ },
475
+ "harnessId": {
476
+ "type": [
477
+ "string",
478
+ "null"
479
+ ],
480
+ "default": null
481
+ },
482
+ "attemptId": {
483
+ "type": [
484
+ "string",
485
+ "null"
486
+ ],
487
+ "default": null
488
+ },
489
+ "modelMismatch": {
490
+ "anyOf": [
491
+ {
492
+ "type": "object",
493
+ "properties": {
494
+ "requested": {
495
+ "type": "string"
496
+ },
497
+ "observed": {
498
+ "type": "string"
499
+ }
500
+ },
501
+ "required": [
502
+ "requested",
503
+ "observed"
504
+ ],
505
+ "additionalProperties": false
506
+ },
507
+ {
508
+ "type": "null"
509
+ }
510
+ ],
511
+ "default": null,
512
+ "description": "Requested-vs-observed model mismatch; null when none."
513
+ }
514
+ },
515
+ "required": [
516
+ "requested",
517
+ "reason"
518
+ ],
519
+ "additionalProperties": false
520
+ },
521
+ {
522
+ "type": "null"
523
+ }
524
+ ],
525
+ "description": "Auth route receipt (requested/effective/source/reason + disclosing attempt), projected verbatim from telemetry; null when unavailable."
526
+ },
335
527
  "access": {
336
528
  "type": "string",
337
529
  "enum": [
@@ -451,6 +643,64 @@
451
643
  "description": "Web evidence projected onto a run summary from the telemetry artifact.",
452
644
  "default": {}
453
645
  },
646
+ "requestRequirements": {
647
+ "type": "array",
648
+ "items": {
649
+ "type": "object",
650
+ "properties": {
651
+ "capability": {
652
+ "type": "string",
653
+ "enum": [
654
+ "browser",
655
+ "path_deny"
656
+ ]
657
+ },
658
+ "harness_id": {
659
+ "type": "string",
660
+ "minLength": 1
661
+ },
662
+ "eligible": {
663
+ "type": "boolean"
664
+ },
665
+ "requested": {
666
+ "type": "boolean"
667
+ },
668
+ "effective": {
669
+ "type": "boolean"
670
+ },
671
+ "reason": {
672
+ "type": "string",
673
+ "enum": [
674
+ "not_requested",
675
+ "effective",
676
+ "manifest_unsupported",
677
+ "web_policy_off",
678
+ "access_profile_incompatible",
679
+ "postdiff_only"
680
+ ]
681
+ },
682
+ "evidence_refs": {
683
+ "type": "array",
684
+ "items": {
685
+ "type": "string"
686
+ },
687
+ "default": []
688
+ }
689
+ },
690
+ "required": [
691
+ "capability",
692
+ "harness_id",
693
+ "eligible",
694
+ "requested",
695
+ "effective",
696
+ "reason"
697
+ ],
698
+ "additionalProperties": false,
699
+ "description": "Preflight resolution of one requested capability on one selected harness lane."
700
+ },
701
+ "default": [],
702
+ "description": "Engine-computed requested/effective capability receipts for selected harness lanes."
703
+ },
454
704
  "toolPermissionPolicy": {
455
705
  "type": "object",
456
706
  "additionalProperties": {},
@@ -564,6 +814,14 @@
564
814
  "default": null,
565
815
  "description": "Tree SHA right after this turn's mutation; revert refuses if the working tree has diverged from this since."
566
816
  },
817
+ "revertAnchorId": {
818
+ "type": [
819
+ "string",
820
+ "null"
821
+ ],
822
+ "default": null,
823
+ "description": "GC-independent revert anchor."
824
+ },
567
825
  "revertable": {
568
826
  "type": "boolean",
569
827
  "default": false,
@@ -627,9 +885,42 @@
627
885
  "tests": {
628
886
  "type": "array",
629
887
  "items": {
630
- "type": "string"
888
+ "type": "object",
889
+ "properties": {
890
+ "program": {
891
+ "type": "string",
892
+ "minLength": 1,
893
+ "pattern": "\\S",
894
+ "description": "Executable invoked directly without an implicit shell."
895
+ },
896
+ "args": {
897
+ "type": "array",
898
+ "items": {
899
+ "type": "string"
900
+ },
901
+ "default": [],
902
+ "description": "Exact argv passed to the executable."
903
+ },
904
+ "cwd": {
905
+ "type": "string",
906
+ "description": "Optional project-relative working directory for the command."
907
+ },
908
+ "envAllowlist": {
909
+ "type": "array",
910
+ "items": {
911
+ "$ref": "#/definitions/ControlRunSummary/properties/reviewerPanel/items/properties/model"
912
+ },
913
+ "default": [],
914
+ "description": "Non-secret parent environment names explicitly forwarded to the command."
915
+ }
916
+ },
917
+ "required": [
918
+ "program"
919
+ ],
920
+ "additionalProperties": false,
921
+ "description": "Canonical deterministic command invocation; no implicit shell parsing."
631
922
  },
632
- "description": "Test commands configured as gates."
923
+ "description": "Typed argv gates."
633
924
  },
634
925
  "specId": {
635
926
  "type": "string",
@@ -6,11 +6,8 @@
6
6
  "properties": {
7
7
  "backend": {
8
8
  "type": "string",
9
- "enum": [
10
- "keychain",
11
- "file"
12
- ],
13
- "description": "Active secret store backend."
9
+ "const": "file",
10
+ "description": "Active Claudexor v2 file secret store."
14
11
  },
15
12
  "secrets": {
16
13
  "type": "array",
@@ -23,16 +20,13 @@
23
20
  },
24
21
  "backend": {
25
22
  "type": "string",
26
- "enum": [
27
- "keychain",
28
- "file"
29
- ],
30
- "description": "Where the secret is stored: the OS keychain or a file store."
23
+ "const": "file",
24
+ "description": "Claudexor v2 file secret store."
31
25
  },
32
26
  "present": {
33
27
  "type": "boolean",
34
28
  "default": true,
35
- "description": "Whether a value is actually stored."
29
+ "description": "Whether a value is stored."
36
30
  }
37
31
  },
38
32
  "required": [
@@ -40,17 +34,17 @@
40
34
  "backend"
41
35
  ],
42
36
  "additionalProperties": false,
43
- "description": "Secret list row: name, storage backend, and presence — never the value."
37
+ "description": "Secret metadata; never the value."
44
38
  },
45
39
  "default": [],
46
- "description": "Stored secrets (metadata only, never values)."
40
+ "description": "Stored secret metadata."
47
41
  }
48
42
  },
49
43
  "required": [
50
44
  "backend"
51
45
  ],
52
46
  "additionalProperties": false,
53
- "description": "Response for listing stored secrets (metadata only)."
47
+ "description": "Metadata-only response for listing stored secrets."
54
48
  }
55
49
  },
56
50
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -0,0 +1,32 @@
1
+ {
2
+ "$ref": "#/definitions/ControlSecretMutationResponse",
3
+ "definitions": {
4
+ "ControlSecretMutationResponse": {
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string"
9
+ },
10
+ "backend": {
11
+ "type": "string",
12
+ "const": "file"
13
+ },
14
+ "stored": {
15
+ "type": "boolean"
16
+ },
17
+ "deleted": {
18
+ "type": "boolean"
19
+ },
20
+ "warning": {
21
+ "type": "string"
22
+ }
23
+ },
24
+ "required": [
25
+ "name"
26
+ ],
27
+ "additionalProperties": false,
28
+ "description": "Managed-secret mutation receipt; never contains the value."
29
+ }
30
+ },
31
+ "$schema": "http://json-schema.org/draft-07/schema#"
32
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$ref": "#/definitions/ControlSecretSetRequest",
3
+ "definitions": {
4
+ "ControlSecretSetRequest": {
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "minLength": 1,
10
+ "description": "Managed secret reference name."
11
+ },
12
+ "value": {
13
+ "type": "string",
14
+ "minLength": 1,
15
+ "description": "Value accepted only by the non-journaled secret route."
16
+ }
17
+ },
18
+ "required": [
19
+ "name",
20
+ "value"
21
+ ],
22
+ "additionalProperties": false,
23
+ "description": "Write one managed secret through the daemon-owned store."
24
+ }
25
+ },
26
+ "$schema": "http://json-schema.org/draft-07/schema#"
27
+ }