@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
@@ -80,12 +80,13 @@
80
80
  "type": "string",
81
81
  "enum": [
82
82
  "native_session",
83
+ "oauth_token_env",
83
84
  "api_key_env",
84
85
  "api_key_flag",
85
86
  "provider_auth_file",
86
87
  "none"
87
88
  ],
88
- "description": "Where a harness's credentials can come from: a native login session, an API key via env var or CLI flag, a provider auth file, or none."
89
+ "description": "Concrete credential source used or probed by a harness."
89
90
  },
90
91
  "default": [],
91
92
  "description": "Auth sources this harness supports."
@@ -198,21 +199,62 @@
198
199
  "default": {},
199
200
  "description": "Declared isolation containment facts for a harness."
200
201
  },
201
- "image_input": {
202
- "type": "string",
203
- "enum": [
204
- "file_path",
205
- "base64_stream",
206
- "base64_inline",
207
- "none"
208
- ],
209
- "description": "How a harness accepts image input: file_path (CLI file argument), base64_stream (base64 image block on the stream), base64_inline (data-URL in the request), or none (no vision input on this route).",
210
- "default": "none"
202
+ "attachment_inputs": {
203
+ "type": "array",
204
+ "items": {
205
+ "type": "object",
206
+ "properties": {
207
+ "kind": {
208
+ "type": "string",
209
+ "enum": [
210
+ "image",
211
+ "file"
212
+ ],
213
+ "description": "Kind of attached resource: image input or generic file bytes."
214
+ },
215
+ "mime_types": {
216
+ "type": "array",
217
+ "items": {
218
+ "type": "string",
219
+ "minLength": 1
220
+ },
221
+ "minItems": 1
222
+ },
223
+ "max_bytes": {
224
+ "type": "integer",
225
+ "exclusiveMinimum": 0
226
+ },
227
+ "max_count": {
228
+ "type": "integer",
229
+ "exclusiveMinimum": 0
230
+ },
231
+ "transport": {
232
+ "type": "string",
233
+ "enum": [
234
+ "file_path",
235
+ "base64_stream",
236
+ "base64_inline",
237
+ "text_inline"
238
+ ],
239
+ "description": "Native adapter transport used for one supported attachment class."
240
+ }
241
+ },
242
+ "required": [
243
+ "kind",
244
+ "mime_types",
245
+ "max_bytes",
246
+ "max_count",
247
+ "transport"
248
+ ],
249
+ "additionalProperties": false,
250
+ "description": "Finite MIME, size, count and transport limits declared by one adapter."
251
+ },
252
+ "default": []
211
253
  }
212
254
  },
213
255
  "additionalProperties": false,
214
256
  "default": {},
215
- "description": "Structured per-harness facts the engine consumes: auth routing, isolation containment, readonly mechanism, and vision input."
257
+ "description": "Structured per-harness facts the engine consumes: auth routing, isolation containment, readonly mechanism, and finite attachment inputs."
216
258
  },
217
259
  "capabilities": {
218
260
  "type": "object",
@@ -227,6 +269,15 @@
227
269
  "default": false,
228
270
  "description": "The harness can implement code changes (implement intent)."
229
271
  },
272
+ "implementation_transport": {
273
+ "type": "string",
274
+ "enum": [
275
+ "workspace",
276
+ "git_patch_envelope"
277
+ ],
278
+ "description": "Typed producer/consumer transport used when implement=true.",
279
+ "default": "workspace"
280
+ },
230
281
  "create_from_scratch": {
231
282
  "type": "boolean",
232
283
  "default": false,
@@ -312,10 +363,41 @@
312
363
  "known_models": {
313
364
  "type": "array",
314
365
  "items": {
315
- "type": "string"
366
+ "anyOf": [
367
+ {
368
+ "type": "string"
369
+ },
370
+ {
371
+ "type": "object",
372
+ "properties": {
373
+ "id": {
374
+ "type": "string",
375
+ "minLength": 1,
376
+ "description": "Model id/alias."
377
+ },
378
+ "routes": {
379
+ "type": "array",
380
+ "items": {
381
+ "type": "string",
382
+ "enum": [
383
+ "local_session",
384
+ "api_key"
385
+ ]
386
+ },
387
+ "minItems": 1,
388
+ "description": "Credential routes this model is available on."
389
+ }
390
+ },
391
+ "required": [
392
+ "id",
393
+ "routes"
394
+ ],
395
+ "additionalProperties": false
396
+ }
397
+ ]
316
398
  },
317
399
  "default": [],
318
- "description": "Manifest-declared model ids/aliases this harness accepts, used as the model truth source when the adapter has no live inventory; explicit models outside the truth source are refused."
400
+ "description": "Manifest-declared model ids/aliases this harness accepts (bare string = every credential route; object form scopes a model to specific routes), used as the model truth source when the adapter has no live inventory; explicit models outside the truth source are refused."
319
401
  },
320
402
  "known_models_verified_against": {
321
403
  "type": [
@@ -382,6 +464,14 @@
382
464
  "default": [],
383
465
  "description": "Intents the gateway will route to this harness."
384
466
  },
467
+ "routableIntents": {
468
+ "type": "array",
469
+ "items": {
470
+ "type": "string"
471
+ },
472
+ "default": [],
473
+ "description": "Intents the harness is actually routable for right now (doctor-gated); the server-side availability truth surfaces must read instead of re-deriving."
474
+ },
385
475
  "disabledIntents": {
386
476
  "type": "array",
387
477
  "items": {
@@ -436,6 +526,100 @@
436
526
  "default": [],
437
527
  "description": "Human-readable reasons for degraded/unavailable status."
438
528
  },
529
+ "authSources": {
530
+ "type": "array",
531
+ "items": {
532
+ "type": "object",
533
+ "properties": {
534
+ "source": {
535
+ "$ref": "#/definitions/ControlHarnessListResponse/properties/harnesses/items/properties/manifest/anyOf/0/properties/capability_profile/properties/auth/properties/supported_sources/items"
536
+ },
537
+ "availability": {
538
+ "type": "string",
539
+ "enum": [
540
+ "available",
541
+ "unavailable",
542
+ "unknown"
543
+ ]
544
+ },
545
+ "verification": {
546
+ "type": "string",
547
+ "enum": [
548
+ "passed",
549
+ "failed",
550
+ "not_run"
551
+ ]
552
+ },
553
+ "detail": {
554
+ "type": "string",
555
+ "description": "Redacted human-readable source evidence."
556
+ }
557
+ },
558
+ "required": [
559
+ "source",
560
+ "availability",
561
+ "verification"
562
+ ],
563
+ "additionalProperties": false,
564
+ "description": "Doctor-backed readiness for one exact credential source."
565
+ },
566
+ "default": [],
567
+ "description": "Doctor-backed readiness by authentication source; an empty array means readiness was not reported."
568
+ },
569
+ "readiness": {
570
+ "type": "array",
571
+ "items": {
572
+ "type": "object",
573
+ "properties": {
574
+ "id": {
575
+ "type": "string",
576
+ "description": "Stable machine id of the check (adapter probe id or auth source)."
577
+ },
578
+ "kind": {
579
+ "type": "string",
580
+ "enum": [
581
+ "binary",
582
+ "auth",
583
+ "smoke",
584
+ "model",
585
+ "probe"
586
+ ],
587
+ "description": "What KIND of readiness this is: binary presence, credential source, isolated smoke, configured-model validity, or a generic capability probe."
588
+ },
589
+ "title": {
590
+ "type": "string",
591
+ "description": "Human display name of the check."
592
+ },
593
+ "status": {
594
+ "type": "string",
595
+ "enum": [
596
+ "pass",
597
+ "fail",
598
+ "skip"
599
+ ],
600
+ "description": "Outcome; skip = not run / not applicable."
601
+ },
602
+ "detail": {
603
+ "type": [
604
+ "string",
605
+ "null"
606
+ ],
607
+ "default": null,
608
+ "description": "Redacted human-readable evidence for the outcome."
609
+ }
610
+ },
611
+ "required": [
612
+ "id",
613
+ "kind",
614
+ "title",
615
+ "status"
616
+ ],
617
+ "additionalProperties": false,
618
+ "description": "One display-ready readiness check row (daemon-normalized)."
619
+ },
620
+ "default": [],
621
+ "description": "Display-ready readiness checks, daemon-normalized from the raw evidence."
622
+ },
439
623
  "configuredModel": {
440
624
  "type": [
441
625
  "string",
@@ -37,6 +37,25 @@
37
37
  ],
38
38
  "default": null,
39
39
  "description": "Context window in tokens; null when the enumeration source does not report it."
40
+ },
41
+ "routes": {
42
+ "anyOf": [
43
+ {
44
+ "type": "array",
45
+ "items": {
46
+ "type": "string",
47
+ "enum": [
48
+ "local_session",
49
+ "api_key"
50
+ ]
51
+ }
52
+ },
53
+ {
54
+ "type": "null"
55
+ }
56
+ ],
57
+ "default": null,
58
+ "description": "Credential routes the model is scoped to; null = every route."
40
59
  }
41
60
  },
42
61
  "required": [
@@ -65,18 +65,6 @@
65
65
  ],
66
66
  "description": "New max convergence rounds; null clears it."
67
67
  },
68
- "maxUsd": {
69
- "anyOf": [
70
- {
71
- "type": "number",
72
- "minimum": 0
73
- },
74
- {
75
- "type": "null"
76
- }
77
- ],
78
- "description": "New per-harness USD cap; null clears it."
79
- },
80
68
  "toolsAllow": {
81
69
  "type": "array",
82
70
  "items": {
@@ -120,6 +108,15 @@
120
108
  "auto"
121
109
  ],
122
110
  "description": "New auth route preference."
111
+ },
112
+ "profileLimitAction": {
113
+ "type": "string",
114
+ "enum": [
115
+ "fail",
116
+ "ask",
117
+ "rotate"
118
+ ],
119
+ "description": "New profile-selection limit action (fail | ask | rotate)."
123
120
  }
124
121
  },
125
122
  "additionalProperties": false,
@@ -0,0 +1,42 @@
1
+ {
2
+ "$ref": "#/definitions/ControlJournalEvent",
3
+ "definitions": {
4
+ "ControlJournalEvent": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "cursor": {
12
+ "type": "string",
13
+ "minLength": 1,
14
+ "description": "Opaque partition-scoped resume cursor."
15
+ },
16
+ "partition": {
17
+ "type": "string",
18
+ "minLength": 1
19
+ },
20
+ "type": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ },
24
+ "observedAt": {
25
+ "type": "string",
26
+ "format": "date-time"
27
+ },
28
+ "payload": {}
29
+ },
30
+ "required": [
31
+ "schemaVersion",
32
+ "cursor",
33
+ "partition",
34
+ "type",
35
+ "observedAt"
36
+ ],
37
+ "additionalProperties": false,
38
+ "description": "One durable event from a global or project journal partition."
39
+ }
40
+ },
41
+ "$schema": "http://json-schema.org/draft-07/schema#"
42
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "$ref": "#/definitions/ControlJournalExportReceipt",
3
+ "definitions": {
4
+ "ControlJournalExportReceipt": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "exportId": {
12
+ "type": "string",
13
+ "minLength": 1
14
+ },
15
+ "partition": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "maxLength": 256
19
+ },
20
+ "fingerprint": {
21
+ "type": "string",
22
+ "pattern": "^[a-f0-9]{64}$"
23
+ },
24
+ "bundlePath": {
25
+ "type": "string",
26
+ "minLength": 1
27
+ },
28
+ "manifestSha256": {
29
+ "$ref": "#/definitions/ControlJournalExportReceipt/properties/fingerprint"
30
+ },
31
+ "createdAt": {
32
+ "type": "string",
33
+ "format": "date-time"
34
+ }
35
+ },
36
+ "required": [
37
+ "schemaVersion",
38
+ "exportId",
39
+ "partition",
40
+ "fingerprint",
41
+ "bundlePath",
42
+ "manifestSha256",
43
+ "createdAt"
44
+ ],
45
+ "additionalProperties": false
46
+ }
47
+ },
48
+ "$schema": "http://json-schema.org/draft-07/schema#"
49
+ }
@@ -0,0 +1,149 @@
1
+ {
2
+ "$ref": "#/definitions/ControlJournalInspection",
3
+ "definitions": {
4
+ "ControlJournalInspection": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "partition": {
12
+ "type": "string",
13
+ "minLength": 1,
14
+ "maxLength": 256
15
+ },
16
+ "generation": {
17
+ "type": "integer",
18
+ "minimum": 0
19
+ },
20
+ "status": {
21
+ "type": "string",
22
+ "enum": [
23
+ "ready",
24
+ "recovery_required"
25
+ ]
26
+ },
27
+ "recovery": {
28
+ "anyOf": [
29
+ {
30
+ "type": "object",
31
+ "properties": {
32
+ "status": {
33
+ "type": "string",
34
+ "const": "ready"
35
+ },
36
+ "discardedTailBytes": {
37
+ "type": "integer",
38
+ "minimum": 0
39
+ }
40
+ },
41
+ "required": [
42
+ "status",
43
+ "discardedTailBytes"
44
+ ],
45
+ "additionalProperties": false
46
+ },
47
+ {
48
+ "type": "object",
49
+ "properties": {
50
+ "status": {
51
+ "type": "string",
52
+ "const": "recovery_required"
53
+ },
54
+ "location": {
55
+ "anyOf": [
56
+ {
57
+ "type": "object",
58
+ "properties": {
59
+ "kind": {
60
+ "type": "string",
61
+ "const": "byte"
62
+ },
63
+ "byteOffset": {
64
+ "type": "integer",
65
+ "minimum": 0
66
+ }
67
+ },
68
+ "required": [
69
+ "kind",
70
+ "byteOffset"
71
+ ],
72
+ "additionalProperties": false
73
+ },
74
+ {
75
+ "type": "object",
76
+ "properties": {
77
+ "kind": {
78
+ "type": "string",
79
+ "const": "cursor"
80
+ },
81
+ "epoch": {
82
+ "type": "string",
83
+ "minLength": 1
84
+ },
85
+ "seq": {
86
+ "type": "integer",
87
+ "minimum": 0
88
+ }
89
+ },
90
+ "required": [
91
+ "kind",
92
+ "epoch",
93
+ "seq"
94
+ ],
95
+ "additionalProperties": false
96
+ }
97
+ ]
98
+ },
99
+ "reason": {
100
+ "type": "string",
101
+ "minLength": 1
102
+ },
103
+ "discardedTailBytes": {
104
+ "type": "integer",
105
+ "minimum": 0
106
+ }
107
+ },
108
+ "required": [
109
+ "status",
110
+ "location",
111
+ "reason",
112
+ "discardedTailBytes"
113
+ ],
114
+ "additionalProperties": false
115
+ }
116
+ ]
117
+ },
118
+ "fingerprint": {
119
+ "type": "string",
120
+ "pattern": "^[a-f0-9]{64}$"
121
+ },
122
+ "observedAt": {
123
+ "type": "string",
124
+ "format": "date-time"
125
+ },
126
+ "evidenceRefs": {
127
+ "type": "array",
128
+ "items": {
129
+ "type": "string",
130
+ "minLength": 1
131
+ },
132
+ "minItems": 1
133
+ }
134
+ },
135
+ "required": [
136
+ "schemaVersion",
137
+ "partition",
138
+ "generation",
139
+ "status",
140
+ "recovery",
141
+ "fingerprint",
142
+ "observedAt",
143
+ "evidenceRefs"
144
+ ],
145
+ "additionalProperties": false
146
+ }
147
+ },
148
+ "$schema": "http://json-schema.org/draft-07/schema#"
149
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$ref": "#/definitions/ControlJournalQuarantineReceipt",
3
+ "definitions": {
4
+ "ControlJournalQuarantineReceipt": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "operationId": {
12
+ "type": "string",
13
+ "format": "uuid"
14
+ },
15
+ "partition": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "maxLength": 256
19
+ },
20
+ "previousFingerprint": {
21
+ "type": "string",
22
+ "pattern": "^[a-f0-9]{64}$"
23
+ },
24
+ "quarantineArtifactId": {
25
+ "type": "string",
26
+ "minLength": 1
27
+ },
28
+ "quarantinePath": {
29
+ "type": "string",
30
+ "minLength": 1
31
+ },
32
+ "newEpoch": {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ "completedAt": {
37
+ "type": "string",
38
+ "format": "date-time"
39
+ }
40
+ },
41
+ "required": [
42
+ "schemaVersion",
43
+ "operationId",
44
+ "partition",
45
+ "previousFingerprint",
46
+ "quarantineArtifactId",
47
+ "quarantinePath",
48
+ "newEpoch",
49
+ "completedAt"
50
+ ],
51
+ "additionalProperties": false
52
+ }
53
+ },
54
+ "$schema": "http://json-schema.org/draft-07/schema#"
55
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$ref": "#/definitions/ControlJournalQuarantineRequest",
3
+ "definitions": {
4
+ "ControlJournalQuarantineRequest": {
5
+ "type": "object",
6
+ "properties": {
7
+ "expectedFingerprint": {
8
+ "type": "string",
9
+ "pattern": "^[a-f0-9]{64}$"
10
+ },
11
+ "confirmation": {
12
+ "type": "string",
13
+ "const": "quarantine_and_start_fresh"
14
+ }
15
+ },
16
+ "required": [
17
+ "expectedFingerprint",
18
+ "confirmation"
19
+ ],
20
+ "additionalProperties": false
21
+ }
22
+ },
23
+ "$schema": "http://json-schema.org/draft-07/schema#"
24
+ }