@claudexor/schema 5.0.2 → 6.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 (281) hide show
  1. package/dist/account-routing-evidence.d.ts +324 -0
  2. package/dist/account-routing-evidence.d.ts.map +1 -1
  3. package/dist/account-routing-evidence.js +27 -2
  4. package/dist/account-routing-evidence.js.map +1 -1
  5. package/dist/agent-capabilities.d.ts +3 -0
  6. package/dist/agent-capabilities.d.ts.map +1 -1
  7. package/dist/agent-capabilities.js +6 -2
  8. package/dist/agent-capabilities.js.map +1 -1
  9. package/dist/attachment.d.ts +103 -6
  10. package/dist/attachment.d.ts.map +1 -1
  11. package/dist/attachment.js +32 -6
  12. package/dist/attachment.js.map +1 -1
  13. package/dist/attempt-execution.d.ts +23 -0
  14. package/dist/attempt-execution.d.ts.map +1 -1
  15. package/dist/attempt-execution.js +2 -0
  16. package/dist/attempt-execution.js.map +1 -1
  17. package/dist/browser-evidence.d.ts +85 -0
  18. package/dist/browser-evidence.d.ts.map +1 -0
  19. package/dist/browser-evidence.js +72 -0
  20. package/dist/browser-evidence.js.map +1 -0
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +1 -1
  23. package/dist/config.js.map +1 -1
  24. package/dist/control-gc.d.ts +30 -0
  25. package/dist/control-gc.d.ts.map +1 -1
  26. package/dist/control-gc.js +28 -1
  27. package/dist/control-gc.js.map +1 -1
  28. package/dist/control-harness-list.d.ts +34 -0
  29. package/dist/control-harness-list.d.ts.map +1 -1
  30. package/dist/control-harness-models.d.ts +122 -0
  31. package/dist/control-harness-models.d.ts.map +1 -1
  32. package/dist/control-harness-models.js +2 -0
  33. package/dist/control-harness-models.js.map +1 -1
  34. package/dist/control-operation-responses.d.ts +459 -36
  35. package/dist/control-operation-responses.d.ts.map +1 -1
  36. package/dist/control-operation-responses.js +11 -2
  37. package/dist/control-operation-responses.js.map +1 -1
  38. package/dist/control-pending-interaction.d.ts +96 -0
  39. package/dist/control-pending-interaction.d.ts.map +1 -0
  40. package/dist/control-pending-interaction.js +42 -0
  41. package/dist/control-pending-interaction.js.map +1 -0
  42. package/dist/control-process-scope.d.ts +34 -0
  43. package/dist/control-process-scope.d.ts.map +1 -1
  44. package/dist/control-process-scope.js +13 -0
  45. package/dist/control-process-scope.js.map +1 -1
  46. package/dist/control-run-detail.d.ts +877 -89
  47. package/dist/control-run-detail.d.ts.map +1 -1
  48. package/dist/control-run-detail.js +2 -1
  49. package/dist/control-run-detail.js.map +1 -1
  50. package/dist/control-run-failure.d.ts +40 -6
  51. package/dist/control-run-failure.d.ts.map +1 -1
  52. package/dist/control-run-failure.js +34 -3
  53. package/dist/control-run-failure.js.map +1 -1
  54. package/dist/control-run-message.js +1 -1
  55. package/dist/control-run-message.js.map +1 -1
  56. package/dist/control-trust.d.ts +8 -0
  57. package/dist/control-trust.d.ts.map +1 -1
  58. package/dist/control-trust.js +4 -0
  59. package/dist/control-trust.js.map +1 -1
  60. package/dist/control-web-evidence.d.ts +125 -0
  61. package/dist/control-web-evidence.d.ts.map +1 -0
  62. package/dist/control-web-evidence.js +109 -0
  63. package/dist/control-web-evidence.js.map +1 -0
  64. package/dist/control.d.ts +322 -179
  65. package/dist/control.d.ts.map +1 -1
  66. package/dist/control.js +52 -75
  67. package/dist/control.js.map +1 -1
  68. package/dist/credential-profile-snapshot.d.ts +136 -0
  69. package/dist/credential-profile-snapshot.d.ts.map +1 -1
  70. package/dist/credential-profile.d.ts +4 -3
  71. package/dist/credential-profile.d.ts.map +1 -1
  72. package/dist/credential-profile.js +4 -3
  73. package/dist/credential-profile.js.map +1 -1
  74. package/dist/decision.d.ts +9 -9
  75. package/dist/decision.d.ts.map +1 -1
  76. package/dist/decision.js +2 -0
  77. package/dist/decision.js.map +1 -1
  78. package/dist/deferred-message.d.ts +646 -0
  79. package/dist/deferred-message.d.ts.map +1 -1
  80. package/dist/deferred-message.js +16 -2
  81. package/dist/deferred-message.js.map +1 -1
  82. package/dist/events.d.ts +6 -6
  83. package/dist/events.d.ts.map +1 -1
  84. package/dist/events.js +1 -0
  85. package/dist/events.js.map +1 -1
  86. package/dist/harness-confinement.js +1 -1
  87. package/dist/harness-confinement.js.map +1 -1
  88. package/dist/harness-input.d.ts +12 -0
  89. package/dist/harness-input.d.ts.map +1 -1
  90. package/dist/harness-input.js +11 -1
  91. package/dist/harness-input.js.map +1 -1
  92. package/dist/harness-interaction.d.ts +32 -0
  93. package/dist/harness-interaction.d.ts.map +1 -1
  94. package/dist/harness-interaction.js +47 -0
  95. package/dist/harness-interaction.js.map +1 -1
  96. package/dist/harness-maintenance.d.ts +3561 -717
  97. package/dist/harness-maintenance.d.ts.map +1 -1
  98. package/dist/harness-maintenance.js +107 -111
  99. package/dist/harness-maintenance.js.map +1 -1
  100. package/dist/harness-program.d.ts +2164 -0
  101. package/dist/harness-program.d.ts.map +1 -0
  102. package/dist/harness-program.js +110 -0
  103. package/dist/harness-program.js.map +1 -0
  104. package/dist/harness.d.ts +162 -19
  105. package/dist/harness.d.ts.map +1 -1
  106. package/dist/harness.js +25 -15
  107. package/dist/harness.js.map +1 -1
  108. package/dist/index.d.ts +6 -0
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +6 -0
  111. package/dist/index.js.map +1 -1
  112. package/dist/mcp-run-result.d.ts +453 -50
  113. package/dist/mcp-run-result.d.ts.map +1 -1
  114. package/dist/mcp-run-wait.d.ts +131 -0
  115. package/dist/mcp-run-wait.d.ts.map +1 -1
  116. package/dist/mcp-run-wait.js +3 -2
  117. package/dist/mcp-run-wait.js.map +1 -1
  118. package/dist/model-operation.d.ts +107 -0
  119. package/dist/model-operation.d.ts.map +1 -1
  120. package/dist/model-operation.js +3 -0
  121. package/dist/model-operation.js.map +1 -1
  122. package/dist/operation.d.ts +1 -1
  123. package/dist/operation.d.ts.map +1 -1
  124. package/dist/operation.js +1 -1
  125. package/dist/operation.js.map +1 -1
  126. package/dist/process-scope.d.ts +154 -0
  127. package/dist/process-scope.d.ts.map +1 -1
  128. package/dist/process-scope.js +16 -1
  129. package/dist/process-scope.js.map +1 -1
  130. package/dist/quota.d.ts +15 -0
  131. package/dist/quota.d.ts.map +1 -1
  132. package/dist/quota.js +15 -0
  133. package/dist/quota.js.map +1 -1
  134. package/dist/rate-limit.d.ts +3 -0
  135. package/dist/rate-limit.d.ts.map +1 -1
  136. package/dist/rate-limit.js +4 -0
  137. package/dist/rate-limit.js.map +1 -1
  138. package/dist/raw.d.ts.map +1 -1
  139. package/dist/raw.js +11 -5
  140. package/dist/raw.js.map +1 -1
  141. package/dist/readiness.d.ts +26 -0
  142. package/dist/readiness.d.ts.map +1 -1
  143. package/dist/route-controls.d.ts +49 -0
  144. package/dist/route-controls.d.ts.map +1 -0
  145. package/dist/route-controls.js +53 -0
  146. package/dist/route-controls.js.map +1 -0
  147. package/dist/route-health.d.ts +23 -23
  148. package/dist/route-health.js +1 -1
  149. package/dist/route-health.js.map +1 -1
  150. package/dist/run-continuation.d.ts +6 -6
  151. package/dist/run-continuity.d.ts +7 -7
  152. package/dist/run-continuity.d.ts.map +1 -1
  153. package/dist/run-continuity.js +2 -1
  154. package/dist/run-continuity.js.map +1 -1
  155. package/dist/run-facts.d.ts +5 -5
  156. package/dist/run-facts.js +1 -1
  157. package/dist/run-facts.js.map +1 -1
  158. package/dist/run-observation.d.ts +70 -0
  159. package/dist/run-observation.d.ts.map +1 -1
  160. package/dist/run-observation.js +31 -12
  161. package/dist/run-observation.js.map +1 -1
  162. package/dist/status-projection.d.ts +3 -2
  163. package/dist/status-projection.d.ts.map +1 -1
  164. package/dist/status-projection.js +5 -2
  165. package/dist/status-projection.js.map +1 -1
  166. package/dist/task-group.d.ts +3 -0
  167. package/dist/task-group.d.ts.map +1 -1
  168. package/dist/task-group.js +11 -1
  169. package/dist/task-group.js.map +1 -1
  170. package/dist/task.d.ts +2 -2
  171. package/dist/task.d.ts.map +1 -1
  172. package/dist/task.js +4 -4
  173. package/dist/task.js.map +1 -1
  174. package/dist/telemetry.d.ts +658 -117
  175. package/dist/telemetry.d.ts.map +1 -1
  176. package/dist/telemetry.js +19 -88
  177. package/dist/telemetry.js.map +1 -1
  178. package/dist/thread-export.d.ts +847 -0
  179. package/dist/thread-export.d.ts.map +1 -0
  180. package/dist/thread-export.js +238 -0
  181. package/dist/thread-export.js.map +1 -0
  182. package/dist/thread-history.d.ts +356 -132
  183. package/dist/thread-history.d.ts.map +1 -1
  184. package/dist/thread.d.ts +72 -6
  185. package/dist/thread.d.ts.map +1 -1
  186. package/dist/thread.js +19 -3
  187. package/dist/thread.js.map +1 -1
  188. package/dist/tool-ref.d.ts +172 -21
  189. package/dist/tool-ref.d.ts.map +1 -1
  190. package/dist/tool-ref.js +114 -29
  191. package/dist/tool-ref.js.map +1 -1
  192. package/dist/web-evidence.d.ts +91 -0
  193. package/dist/web-evidence.d.ts.map +1 -0
  194. package/dist/web-evidence.js +77 -0
  195. package/dist/web-evidence.js.map +1 -0
  196. package/dist/workspace.js +1 -1
  197. package/dist/workspace.js.map +1 -1
  198. package/generated/AgentCapabilityCatalog.schema.json +20 -2
  199. package/generated/AttemptExecutionEvidence.schema.json +35 -0
  200. package/generated/ConformanceReport.schema.json +26 -0
  201. package/generated/ControlAccountRoutingEvidenceResponse.schema.json +61 -1
  202. package/generated/ControlCredentialProfilesQueryResponse.schema.json +28 -2
  203. package/generated/ControlCredentialProfilesResourcesResponse.schema.json +28 -2
  204. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +28 -2
  205. package/generated/ControlGcLastResponse.schema.json +22 -0
  206. package/generated/ControlGcReceipt.schema.json +13 -1
  207. package/generated/ControlHarnessAccountCatalog.schema.json +27 -0
  208. package/generated/ControlHarnessAccountModelsResponse.schema.json +27 -0
  209. package/generated/ControlHarnessListResponse.schema.json +28 -2
  210. package/generated/ControlHarnessMaintenanceCreateRequest.schema.json +2 -28
  211. package/generated/ControlHarnessMaintenanceInventory.schema.json +547 -184
  212. package/generated/ControlHarnessMaintenanceOperation.schema.json +211 -63
  213. package/generated/ControlHarnessModelsQueryResponse.schema.json +30 -0
  214. package/generated/ControlHarnessModelsResponse.schema.json +27 -0
  215. package/generated/ControlModelAccountCatalogResponse.schema.json +27 -0
  216. package/generated/ControlModelCatalogQueryResponse.schema.json +27 -0
  217. package/generated/ControlModelCatalogResponse.schema.json +27 -0
  218. package/generated/ControlPendingInteraction.schema.json +10 -1
  219. package/generated/ControlQueuedRunInfo.schema.json +1 -1
  220. package/generated/ControlResource.schema.json +5 -0
  221. package/generated/ControlResourceRelease.schema.json +44 -0
  222. package/generated/ControlResourceReleaseRequest.schema.json +27 -0
  223. package/generated/ControlRetainedEnvelope.schema.json +2 -1
  224. package/generated/ControlRouteHealth.schema.json +13 -1
  225. package/generated/ControlRunControlResponse.schema.json +41 -3
  226. package/generated/ControlRunDecisionRequest.schema.json +8 -2
  227. package/generated/ControlRunDecisionResponse.schema.json +4 -3
  228. package/generated/ControlRunDetail.schema.json +403 -11
  229. package/generated/ControlRunListResponse.schema.json +317 -7
  230. package/generated/ControlRunMessageResponse.schema.json +1 -1
  231. package/generated/ControlRunRetryResponse.schema.json +1 -1
  232. package/generated/ControlRunStartInfo.schema.json +1 -1
  233. package/generated/ControlRunStartResponse.schema.json +2 -2
  234. package/generated/ControlRunSummary.schema.json +317 -7
  235. package/generated/ControlThreadDetail.schema.json +6 -0
  236. package/generated/ControlThreadTurnResponse.schema.json +9 -0
  237. package/generated/ControlTrustListResponse.schema.json +8 -0
  238. package/generated/ControlTrustState.schema.json +8 -0
  239. package/generated/ControlUploadImport.schema.json +12 -2
  240. package/generated/ControlUploadImportRequest.schema.json +5 -0
  241. package/generated/DecisionRecord.schema.json +1 -0
  242. package/generated/DeferredMessageDetail.schema.json +43 -7
  243. package/generated/DeferredMessageProjection.schema.json +41 -3
  244. package/generated/DeferredMessageReadResult.schema.json +42 -4
  245. package/generated/DeferredMessageReceipt.schema.json +41 -3
  246. package/generated/EnvelopeCustody.schema.json +3 -2
  247. package/generated/GlobalConfig.schema.json +1 -1
  248. package/generated/HarnessEvent.schema.json +181 -4
  249. package/generated/HarnessManifest.schema.json +28 -2
  250. package/generated/HarnessProgram.schema.json +278 -0
  251. package/generated/HarnessProgramIdentity.schema.json +25 -0
  252. package/generated/HarnessStatusDto.schema.json +28 -2
  253. package/generated/McpAccountsToolResult.schema.json +88 -2
  254. package/generated/McpRunHandleResult.schema.json +141 -6
  255. package/generated/McpRunToolResult.schema.json +140 -6
  256. package/generated/McpRunWaitResult.schema.json +52 -5
  257. package/generated/McpThreadTurnResult.schema.json +9 -0
  258. package/generated/NativeProgramEvidence.schema.json +38 -0
  259. package/generated/RawContextPacket.schema.json +6 -4
  260. package/generated/RawGitPatchEnvelope.schema.json +1 -1
  261. package/generated/RoutePoolDegradedPayload.schema.json +2 -1
  262. package/generated/RunContinuityReceipt.schema.json +2 -1
  263. package/generated/RunFacts.schema.json +1 -0
  264. package/generated/RunFailure.schema.json +62 -2
  265. package/generated/RunResumable.schema.json +2 -1
  266. package/generated/RunTelemetry.schema.json +323 -7
  267. package/generated/RunWaitManyInput.schema.json +4 -0
  268. package/generated/RunWaitManyResult.schema.json +30 -0
  269. package/generated/SelectedHarnessProgram.schema.json +56 -0
  270. package/generated/TaskContract.schema.json +3 -3
  271. package/generated/TaskGroupReceipt.schema.json +1 -1
  272. package/generated/Thread.schema.json +41 -0
  273. package/generated/ThreadExportManifest.schema.json +461 -0
  274. package/generated/ThreadExportReceipt.schema.json +94 -0
  275. package/generated/ThreadHistoryPage.schema.json +71 -2
  276. package/generated/ThreadRetireAbandonRequest.schema.json +21 -0
  277. package/generated/ThreadRetireRequest.schema.json +41 -0
  278. package/generated/ThreadRetirement.schema.json +175 -0
  279. package/generated/ThreadTurn.schema.json +1 -1
  280. package/generated/WorkspaceEnvelope.schema.json +1 -1
  281. package/package.json +2 -2
@@ -0,0 +1,56 @@
1
+ {
2
+ "$ref": "#/definitions/SelectedHarnessProgram",
3
+ "definitions": {
4
+ "SelectedHarnessProgram": {
5
+ "type": "object",
6
+ "properties": {
7
+ "path": {
8
+ "type": [
9
+ "string",
10
+ "null"
11
+ ]
12
+ },
13
+ "realPath": {
14
+ "type": [
15
+ "string",
16
+ "null"
17
+ ]
18
+ },
19
+ "version": {
20
+ "type": [
21
+ "string",
22
+ "null"
23
+ ]
24
+ },
25
+ "versionOutput": {
26
+ "type": [
27
+ "string",
28
+ "null"
29
+ ]
30
+ },
31
+ "overrideEnv": {
32
+ "type": [
33
+ "string",
34
+ "null"
35
+ ]
36
+ },
37
+ "overrideValue": {
38
+ "type": [
39
+ "string",
40
+ "null"
41
+ ]
42
+ }
43
+ },
44
+ "required": [
45
+ "path",
46
+ "realPath",
47
+ "version",
48
+ "versionOutput",
49
+ "overrideEnv",
50
+ "overrideValue"
51
+ ],
52
+ "additionalProperties": false
53
+ }
54
+ },
55
+ "$schema": "http://json-schema.org/draft-07/schema#"
56
+ }
@@ -411,7 +411,7 @@
411
411
  "effective_profile": {
412
412
  "$ref": "#/definitions/TaskContract/properties/access/properties/requested_profile",
413
413
  "default": "workspace_write",
414
- "description": "Access profile actually enforced by the engine (mode/trust clamps applied; never client-supplied)."
414
+ "description": "Access profile the engine resolved and passes to the harness (mode/trust clamps applied; never client-supplied); the harness's native setting decides what it confines."
415
415
  },
416
416
  "auxiliary_writable_roots": {
417
417
  "type": "array",
@@ -427,7 +427,7 @@
427
427
  "requested_profile": "workspace_write",
428
428
  "effective_profile": "workspace_write"
429
429
  },
430
- "description": "Requested vs engine-enforced access profile."
430
+ "description": "Requested vs engine-resolved access profile."
431
431
  },
432
432
  "external_context": {
433
433
  "type": "object",
@@ -451,7 +451,7 @@
451
451
  "effective_mode": {
452
452
  "$ref": "#/definitions/TaskContract/properties/external_context/properties/policy",
453
453
  "default": "auto",
454
- "description": "Policy the selected route actually executes (disclosed upgrades, e.g. cached to live)."
454
+ "description": "Policy given to the selected route, after disclosed upgrades (e.g. cached to live)."
455
455
  }
456
456
  },
457
457
  "additionalProperties": false,
@@ -12,7 +12,7 @@
12
12
  "storeId": {
13
13
  "type": "string",
14
14
  "minLength": 1,
15
- "description": "Identity of the durable engine store that accepted this group member, stable across restarts."
15
+ "description": "Identity of the durable engine store that accepted this command, stable across restarts. A group member always carries it; an ordinary receipt carries it only for a request sending `X-Claudexor-Store-Identity: 1`, and it stays absent, meaning unknown, when the store has no identity to give."
16
16
  }
17
17
  },
18
18
  "required": [
@@ -270,6 +270,47 @@
270
270
  ],
271
271
  "default": null,
272
272
  "description": "Lifecycle state restored while the trash retention window remains open."
273
+ },
274
+ "retirement": {
275
+ "type": "object",
276
+ "properties": {
277
+ "operationId": {
278
+ "type": "string",
279
+ "minLength": 1,
280
+ "description": "The caller's durable release intent."
281
+ },
282
+ "exportId": {
283
+ "type": "string",
284
+ "description": "The manifest identity the caller transferred."
285
+ },
286
+ "closureDigest": {
287
+ "type": "string",
288
+ "description": "The engine-record identity at acceptance."
289
+ },
290
+ "contentDigest": {
291
+ "type": "string",
292
+ "description": "Every exported byte, re-hashed by the engine."
293
+ },
294
+ "laneDigest": {
295
+ "type": "string",
296
+ "description": "The lane bytes acceptance named for removal."
297
+ },
298
+ "acceptedAt": {
299
+ "type": "string",
300
+ "minLength": 1,
301
+ "description": "When the purge decision committed."
302
+ }
303
+ },
304
+ "required": [
305
+ "operationId",
306
+ "exportId",
307
+ "closureDigest",
308
+ "contentDigest",
309
+ "laneDigest",
310
+ "acceptedAt"
311
+ ],
312
+ "additionalProperties": false,
313
+ "description": "Present on a thread purged through conditional retirement; absent otherwise."
273
314
  }
274
315
  },
275
316
  "required": [
@@ -0,0 +1,461 @@
1
+ {
2
+ "$ref": "#/definitions/ThreadExportManifest",
3
+ "definitions": {
4
+ "ThreadExportManifest": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "storeId": {
12
+ "type": "string",
13
+ "minLength": 1
14
+ },
15
+ "threadId": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "description": "Non-empty identifier string."
19
+ },
20
+ "exportId": {
21
+ "type": "string",
22
+ "pattern": "^sha256:[0-9a-f]{64}$",
23
+ "description": "Identity of this closure, inventory and gap list."
24
+ },
25
+ "closureDigest": {
26
+ "type": "string",
27
+ "pattern": "^sha256:[0-9a-f]{64}$",
28
+ "description": "Identity of the closure's engine records alone."
29
+ },
30
+ "threadState": {
31
+ "type": "string",
32
+ "enum": [
33
+ "active",
34
+ "closed",
35
+ "trashed",
36
+ "purged"
37
+ ],
38
+ "description": "Thread lifecycle state: active, closed, trashed for recovery, or terminally purged."
39
+ },
40
+ "headRevision": {
41
+ "type": "integer",
42
+ "minimum": 0
43
+ },
44
+ "workspaceMode": {
45
+ "type": "string",
46
+ "enum": [
47
+ "in_place",
48
+ "isolated",
49
+ "delegated"
50
+ ],
51
+ "description": "Per-thread workspace mode: in_place mutates the live project tree directly (the default); isolated keeps a persistent git worktree per thread that apply merges into the project; delegated runs every turn in one caller-owned workspace bound at creation, which Claudexor never applies to the project or deletes."
52
+ },
53
+ "coverage": {
54
+ "type": "string",
55
+ "enum": [
56
+ "complete",
57
+ "partial"
58
+ ],
59
+ "description": "complete exactly when gaps is empty."
60
+ },
61
+ "retirable": {
62
+ "type": "boolean",
63
+ "description": "Retirement can be requested for this manifest."
64
+ },
65
+ "gaps": {
66
+ "type": "array",
67
+ "items": {
68
+ "type": "object",
69
+ "properties": {
70
+ "code": {
71
+ "type": "string",
72
+ "enum": [
73
+ "closure_not_quiescent",
74
+ "closure_awaiting_decision",
75
+ "closure_partition_unavailable",
76
+ "command_record_not_retained",
77
+ "run_directory_missing",
78
+ "run_files_expired",
79
+ "run_tree_unreadable",
80
+ "run_observations_unreadable",
81
+ "attachment_unavailable",
82
+ "native_session_unattributed",
83
+ "native_session_unsupported",
84
+ "native_format_unqualified",
85
+ "native_session_missing",
86
+ "native_session_unreadable",
87
+ "native_projection_failed",
88
+ "lane_unreadable",
89
+ "lane_credentials_undeclared",
90
+ "isolated_worktree_present"
91
+ ]
92
+ },
93
+ "subject": {
94
+ "type": "string",
95
+ "minLength": 1,
96
+ "description": "The exact run, session, path or lane this gap names."
97
+ },
98
+ "message": {
99
+ "type": "string",
100
+ "minLength": 1
101
+ }
102
+ },
103
+ "required": [
104
+ "code",
105
+ "subject",
106
+ "message"
107
+ ],
108
+ "additionalProperties": false
109
+ }
110
+ },
111
+ "disclosures": {
112
+ "type": "array",
113
+ "items": {
114
+ "type": "object",
115
+ "properties": {
116
+ "harness": {
117
+ "type": "string",
118
+ "minLength": 1
119
+ },
120
+ "source": {
121
+ "type": "string",
122
+ "minLength": 1
123
+ },
124
+ "reason": {
125
+ "type": "string",
126
+ "minLength": 1
127
+ }
128
+ },
129
+ "required": [
130
+ "harness",
131
+ "source",
132
+ "reason"
133
+ ],
134
+ "additionalProperties": false
135
+ },
136
+ "description": "Known vendor state outside this export because no record binds it to these sessions. Named so it is never mistaken for covered; it does not block retirement."
137
+ },
138
+ "closure": {
139
+ "type": "object",
140
+ "properties": {
141
+ "turns": {
142
+ "type": "array",
143
+ "items": {
144
+ "type": "object",
145
+ "properties": {
146
+ "turnId": {
147
+ "$ref": "#/definitions/ThreadExportManifest/properties/threadId"
148
+ },
149
+ "ordinal": {
150
+ "$ref": "#/definitions/ThreadExportManifest/properties/headRevision"
151
+ },
152
+ "runId": {
153
+ "type": [
154
+ "string",
155
+ "null"
156
+ ]
157
+ },
158
+ "promptSha256": {
159
+ "type": "string"
160
+ }
161
+ },
162
+ "required": [
163
+ "turnId",
164
+ "ordinal",
165
+ "runId",
166
+ "promptSha256"
167
+ ],
168
+ "additionalProperties": false
169
+ }
170
+ },
171
+ "runs": {
172
+ "type": "array",
173
+ "items": {
174
+ "type": "object",
175
+ "properties": {
176
+ "jobId": {
177
+ "type": "string"
178
+ },
179
+ "runId": {
180
+ "type": [
181
+ "string",
182
+ "null"
183
+ ]
184
+ },
185
+ "state": {
186
+ "type": "string"
187
+ },
188
+ "kind": {
189
+ "type": "string"
190
+ },
191
+ "threadId": {
192
+ "type": [
193
+ "string",
194
+ "null"
195
+ ]
196
+ },
197
+ "turnId": {
198
+ "type": [
199
+ "string",
200
+ "null"
201
+ ]
202
+ },
203
+ "continueFrom": {
204
+ "type": [
205
+ "string",
206
+ "null"
207
+ ]
208
+ },
209
+ "delegatedFrom": {
210
+ "type": [
211
+ "string",
212
+ "null"
213
+ ]
214
+ }
215
+ },
216
+ "required": [
217
+ "jobId",
218
+ "runId",
219
+ "state",
220
+ "kind",
221
+ "threadId",
222
+ "turnId",
223
+ "continueFrom",
224
+ "delegatedFrom"
225
+ ],
226
+ "additionalProperties": false
227
+ }
228
+ }
229
+ },
230
+ "required": [
231
+ "turns",
232
+ "runs"
233
+ ],
234
+ "additionalProperties": false
235
+ },
236
+ "sessions": {
237
+ "type": "array",
238
+ "items": {
239
+ "type": "object",
240
+ "properties": {
241
+ "harness": {
242
+ "type": "string",
243
+ "minLength": 1
244
+ },
245
+ "nativeSessionId": {
246
+ "type": "string",
247
+ "minLength": 1
248
+ },
249
+ "status": {
250
+ "type": "string",
251
+ "enum": [
252
+ "exported",
253
+ "missing",
254
+ "unsupported",
255
+ "unqualified",
256
+ "unreadable"
257
+ ]
258
+ },
259
+ "provenance": {
260
+ "type": "array",
261
+ "items": {
262
+ "type": "object",
263
+ "properties": {
264
+ "source": {
265
+ "type": "string",
266
+ "enum": [
267
+ "attempt_event",
268
+ "run_event",
269
+ "reviewer_stream",
270
+ "session_capsule",
271
+ "run_resumable",
272
+ "thread_session"
273
+ ]
274
+ },
275
+ "runId": {
276
+ "type": [
277
+ "string",
278
+ "null"
279
+ ]
280
+ },
281
+ "attemptId": {
282
+ "type": [
283
+ "string",
284
+ "null"
285
+ ]
286
+ },
287
+ "profileId": {
288
+ "type": [
289
+ "string",
290
+ "null"
291
+ ],
292
+ "description": "Null when the record names no profile."
293
+ },
294
+ "cwd": {
295
+ "type": [
296
+ "string",
297
+ "null"
298
+ ]
299
+ }
300
+ },
301
+ "required": [
302
+ "source",
303
+ "runId",
304
+ "attemptId",
305
+ "profileId",
306
+ "cwd"
307
+ ],
308
+ "additionalProperties": false
309
+ }
310
+ },
311
+ "copies": {
312
+ "type": "array",
313
+ "items": {
314
+ "type": "object",
315
+ "properties": {
316
+ "storeKey": {
317
+ "type": "string",
318
+ "minLength": 1
319
+ },
320
+ "profileId": {
321
+ "type": [
322
+ "string",
323
+ "null"
324
+ ]
325
+ }
326
+ },
327
+ "required": [
328
+ "storeKey",
329
+ "profileId"
330
+ ],
331
+ "additionalProperties": false
332
+ },
333
+ "description": "Every store holding material of this exact session."
334
+ }
335
+ },
336
+ "required": [
337
+ "harness",
338
+ "nativeSessionId",
339
+ "status",
340
+ "provenance",
341
+ "copies"
342
+ ],
343
+ "additionalProperties": false
344
+ }
345
+ },
346
+ "items": {
347
+ "type": "array",
348
+ "items": {
349
+ "type": "object",
350
+ "properties": {
351
+ "itemId": {
352
+ "type": "string",
353
+ "pattern": "^i[0-9a-f]{32}$"
354
+ },
355
+ "plane": {
356
+ "type": "string",
357
+ "enum": [
358
+ "sql",
359
+ "run",
360
+ "native",
361
+ "lane",
362
+ "resource",
363
+ "projection"
364
+ ],
365
+ "description": "sql: engine records; run: the run tree; native: vendor session material; lane: the thread's lane directory (what retirement deletes); resource: attachment bytes; projection: decoded text of a compressed original, kept beside it."
366
+ },
367
+ "path": {
368
+ "type": "string",
369
+ "minLength": 1,
370
+ "description": "Relative POSIX path: the item's complete name and, with its plane, its identity; distinct copies stay distinct. A volume may be unable to name it, so a consumer may keep the bytes elsewhere and record that place."
371
+ },
372
+ "kind": {
373
+ "type": "string",
374
+ "enum": [
375
+ "file",
376
+ "symlink",
377
+ "special",
378
+ "credential_store"
379
+ ],
380
+ "description": "file: exact bytes to transfer. symlink: recorded, never followed. special: a FIFO or socket, recorded. credential_store: an exact engine or vendor credential path, never opened or exported."
381
+ },
382
+ "sizeBytes": {
383
+ "anyOf": [
384
+ {
385
+ "$ref": "#/definitions/ThreadExportManifest/properties/headRevision"
386
+ },
387
+ {
388
+ "type": "null"
389
+ }
390
+ ]
391
+ },
392
+ "mtimeMs": {
393
+ "type": [
394
+ "number",
395
+ "null"
396
+ ]
397
+ },
398
+ "sha256": {
399
+ "anyOf": [
400
+ {
401
+ "type": "string",
402
+ "pattern": "^sha256:[0-9a-f]{64}$"
403
+ },
404
+ {
405
+ "type": "null"
406
+ }
407
+ ],
408
+ "description": "Known before transfer for engine records, attachments, projections and symlink text; otherwise the transfer's ETag."
409
+ },
410
+ "projectionOf": {
411
+ "type": [
412
+ "string",
413
+ "null"
414
+ ],
415
+ "description": "The itemId this projection decodes."
416
+ },
417
+ "linkTarget": {
418
+ "type": [
419
+ "string",
420
+ "null"
421
+ ],
422
+ "description": "A symlink's own text; its target is never read."
423
+ }
424
+ },
425
+ "required": [
426
+ "itemId",
427
+ "plane",
428
+ "path",
429
+ "kind",
430
+ "sizeBytes",
431
+ "mtimeMs",
432
+ "sha256",
433
+ "projectionOf",
434
+ "linkTarget"
435
+ ],
436
+ "additionalProperties": false
437
+ }
438
+ }
439
+ },
440
+ "required": [
441
+ "schemaVersion",
442
+ "storeId",
443
+ "threadId",
444
+ "exportId",
445
+ "closureDigest",
446
+ "threadState",
447
+ "headRevision",
448
+ "workspaceMode",
449
+ "coverage",
450
+ "retirable",
451
+ "gaps",
452
+ "disclosures",
453
+ "closure",
454
+ "sessions",
455
+ "items"
456
+ ],
457
+ "additionalProperties": false
458
+ }
459
+ },
460
+ "$schema": "http://json-schema.org/draft-07/schema#"
461
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "$ref": "#/definitions/ThreadExportReceipt",
3
+ "definitions": {
4
+ "ThreadExportReceipt": {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "storeId": {
12
+ "type": "string",
13
+ "minLength": 1
14
+ },
15
+ "threadId": {
16
+ "type": "string",
17
+ "minLength": 1,
18
+ "description": "Non-empty identifier string."
19
+ },
20
+ "exportId": {
21
+ "type": "string",
22
+ "pattern": "^sha256:[0-9a-f]{64}$"
23
+ },
24
+ "closureDigest": {
25
+ "$ref": "#/definitions/ThreadExportReceipt/properties/exportId"
26
+ },
27
+ "contentDigest": {
28
+ "$ref": "#/definitions/ThreadExportReceipt/properties/exportId"
29
+ },
30
+ "laneDigest": {
31
+ "$ref": "#/definitions/ThreadExportReceipt/properties/exportId"
32
+ },
33
+ "coverage": {
34
+ "type": "string",
35
+ "enum": [
36
+ "complete",
37
+ "partial"
38
+ ]
39
+ },
40
+ "retirable": {
41
+ "type": "boolean"
42
+ },
43
+ "transferred": {
44
+ "type": "array",
45
+ "items": {
46
+ "type": "object",
47
+ "properties": {
48
+ "itemId": {
49
+ "type": "string"
50
+ },
51
+ "path": {
52
+ "type": "string",
53
+ "description": "The item's complete manifest path."
54
+ },
55
+ "placedAt": {
56
+ "type": "string",
57
+ "minLength": 1,
58
+ "description": "Where in this bundle the bytes are, when its volume cannot name `path`. Absent: at `path`."
59
+ },
60
+ "sizeBytes": {
61
+ "type": "integer",
62
+ "minimum": 0
63
+ },
64
+ "sha256": {
65
+ "$ref": "#/definitions/ThreadExportReceipt/properties/exportId"
66
+ }
67
+ },
68
+ "required": [
69
+ "itemId",
70
+ "path",
71
+ "sizeBytes",
72
+ "sha256"
73
+ ],
74
+ "additionalProperties": false
75
+ }
76
+ }
77
+ },
78
+ "required": [
79
+ "schemaVersion",
80
+ "storeId",
81
+ "threadId",
82
+ "exportId",
83
+ "closureDigest",
84
+ "contentDigest",
85
+ "laneDigest",
86
+ "coverage",
87
+ "retirable",
88
+ "transferred"
89
+ ],
90
+ "additionalProperties": false
91
+ }
92
+ },
93
+ "$schema": "http://json-schema.org/draft-07/schema#"
94
+ }