@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
@@ -9,13 +9,35 @@
9
9
  "minLength": 1,
10
10
  "description": "Setup job the event belongs to."
11
11
  },
12
- "seq": {
12
+ "cursor": {
13
+ "type": "string",
14
+ "minLength": 1,
15
+ "maxLength": 4096,
16
+ "description": "Opaque durable global-journal cursor for exact SSE resume."
17
+ },
18
+ "previousCursor": {
19
+ "anyOf": [
20
+ {
21
+ "type": "string",
22
+ "minLength": 1,
23
+ "maxLength": 4096
24
+ },
25
+ {
26
+ "type": "null"
27
+ }
28
+ ],
29
+ "description": "Exact client-relative predecessor cursor; null only at the beginning of the global journal."
30
+ },
31
+ "sequence": {
13
32
  "type": "integer",
14
- "minimum": 0,
15
- "description": "Monotonic event sequence within the job."
33
+ "exclusiveMinimum": 0,
34
+ "minimum": -9007199254740991,
35
+ "maximum": 9007199254740991,
36
+ "description": "Global partition sequence used to reject duplicate or regressive frames; gaps are valid."
16
37
  },
17
38
  "time": {
18
39
  "type": "string",
40
+ "format": "date-time",
19
41
  "description": "Event timestamp."
20
42
  },
21
43
  "kind": {
@@ -34,6 +56,8 @@
34
56
  "succeeded",
35
57
  "failed",
36
58
  "cancelled",
59
+ "timed_out",
60
+ "interrupted_unknown",
37
61
  "not_supported"
38
62
  ],
39
63
  "description": "Lifecycle state of a setup job, including waiting_for_input (needs user confirmation/input) and not_supported."
@@ -41,14 +65,854 @@
41
65
  "message": {
42
66
  "type": "string",
43
67
  "description": "Human-readable status message."
68
+ },
69
+ "job": {
70
+ "type": "object",
71
+ "properties": {
72
+ "jobId": {
73
+ "type": "string",
74
+ "minLength": 1,
75
+ "description": "Setup job id."
76
+ },
77
+ "harness": {
78
+ "type": "string",
79
+ "enum": [
80
+ "codex",
81
+ "claude",
82
+ "cursor"
83
+ ],
84
+ "description": "Harness ids with a managed native-login flow."
85
+ },
86
+ "action": {
87
+ "type": "string",
88
+ "const": "login",
89
+ "description": "The daemon-managed native-login action."
90
+ },
91
+ "profileId": {
92
+ "type": [
93
+ "string",
94
+ "null"
95
+ ],
96
+ "default": null,
97
+ "description": "Registered profile this login targets; null = the default session."
98
+ },
99
+ "state": {
100
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/state"
101
+ },
102
+ "phase": {
103
+ "type": "string",
104
+ "enum": [
105
+ "preparing",
106
+ "launching",
107
+ "awaiting_user",
108
+ "verifying",
109
+ "cancelling",
110
+ "completed"
111
+ ],
112
+ "description": "Fine-grained setup phase; cancellation remains a phase until the underlying process has actually stopped."
113
+ },
114
+ "deadlineAt": {
115
+ "type": "string",
116
+ "format": "date-time",
117
+ "description": "Current native-login deadline when the job has one."
118
+ },
119
+ "outcome": {
120
+ "type": "object",
121
+ "properties": {
122
+ "reason": {
123
+ "type": "string",
124
+ "enum": [
125
+ "completed",
126
+ "not_supported",
127
+ "launch_failed",
128
+ "command_failed",
129
+ "auth_not_ready",
130
+ "capability_verification_failed",
131
+ "credential_route_mismatch",
132
+ "timed_out",
133
+ "cancelled_by_user",
134
+ "cancelled_on_restart",
135
+ "interrupted",
136
+ "interrupted_unknown",
137
+ "termination_unconfirmed"
138
+ ]
139
+ },
140
+ "exitCode": {
141
+ "anyOf": [
142
+ {
143
+ "type": "integer"
144
+ },
145
+ {
146
+ "type": "null"
147
+ }
148
+ ]
149
+ },
150
+ "signal": {
151
+ "type": [
152
+ "string",
153
+ "null"
154
+ ]
155
+ }
156
+ },
157
+ "required": [
158
+ "reason"
159
+ ],
160
+ "additionalProperties": false,
161
+ "description": "Typed terminal setup outcome with native command evidence when available."
162
+ },
163
+ "command": {
164
+ "type": [
165
+ "string",
166
+ "null"
167
+ ],
168
+ "description": "Display-only native-login command description, when available."
169
+ },
170
+ "guideUrl": {
171
+ "anyOf": [
172
+ {
173
+ "type": "string",
174
+ "format": "uri"
175
+ },
176
+ {
177
+ "type": "null"
178
+ }
179
+ ],
180
+ "description": "Official vendor login guide URL."
181
+ },
182
+ "message": {
183
+ "type": "string",
184
+ "description": "Human-readable status message."
185
+ },
186
+ "createdAt": {
187
+ "type": "string",
188
+ "format": "date-time",
189
+ "description": "When the job was created."
190
+ },
191
+ "startedAt": {
192
+ "anyOf": [
193
+ {
194
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/deadlineAt"
195
+ },
196
+ {
197
+ "type": "null"
198
+ }
199
+ ],
200
+ "description": "When the job started running."
201
+ },
202
+ "finishedAt": {
203
+ "anyOf": [
204
+ {
205
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/deadlineAt"
206
+ },
207
+ {
208
+ "type": "null"
209
+ }
210
+ ],
211
+ "description": "When the job finished."
212
+ },
213
+ "authCapability": {
214
+ "anyOf": [
215
+ {
216
+ "type": "object",
217
+ "properties": {
218
+ "attemptId": {
219
+ "type": "string",
220
+ "minLength": 1,
221
+ "description": "Non-empty identifier string."
222
+ },
223
+ "challengeDigest": {
224
+ "type": "string",
225
+ "pattern": "^[a-f0-9]{64}$"
226
+ },
227
+ "requestDigest": {
228
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
229
+ },
230
+ "disclosure": {
231
+ "type": "object",
232
+ "properties": {
233
+ "schemaVersion": {
234
+ "type": "number",
235
+ "const": 1
236
+ },
237
+ "protocolVersion": {
238
+ "type": "number",
239
+ "const": 1
240
+ },
241
+ "harness": {
242
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/attemptId"
243
+ },
244
+ "requested": {
245
+ "type": "string",
246
+ "enum": [
247
+ "subscription",
248
+ "api_key",
249
+ "auto"
250
+ ],
251
+ "description": "Requested credential behavior: exact subscription, exact managed API key, or policy-governed auto selection."
252
+ },
253
+ "requiredRoute": {
254
+ "type": "string",
255
+ "enum": [
256
+ "vendor_native",
257
+ "managed_api_key",
258
+ "local"
259
+ ],
260
+ "description": "Effective credential route: vendor-owned native session, Claudexor-managed API key, or credential-free local execution."
261
+ },
262
+ "requiredSource": {
263
+ "type": "string",
264
+ "enum": [
265
+ "native_session",
266
+ "oauth_token_env",
267
+ "api_key_env",
268
+ "api_key_flag",
269
+ "provider_auth_file",
270
+ "none"
271
+ ],
272
+ "description": "Concrete credential source used or probed by a harness."
273
+ },
274
+ "networkScope": {
275
+ "type": "string",
276
+ "const": "selected_harness_only"
277
+ },
278
+ "billingKnowledge": {
279
+ "type": "string",
280
+ "enum": [
281
+ "proven_zero",
282
+ "subscription_entitlement",
283
+ "metered",
284
+ "unknown"
285
+ ],
286
+ "description": "What is actually known about incremental billing; a native credential route alone never proves entitlement or zero cost."
287
+ },
288
+ "incrementalCostKnowledge": {
289
+ "type": "string",
290
+ "enum": [
291
+ "exact",
292
+ "estimated",
293
+ "unknown"
294
+ ],
295
+ "description": "Quality of incremental-cash cost evidence for an operation."
296
+ },
297
+ "mayConsumeQuota": {
298
+ "type": "boolean"
299
+ },
300
+ "generatedAt": {
301
+ "type": "string",
302
+ "format": "date-time"
303
+ }
304
+ },
305
+ "required": [
306
+ "schemaVersion",
307
+ "protocolVersion",
308
+ "harness",
309
+ "requested",
310
+ "requiredRoute",
311
+ "requiredSource",
312
+ "networkScope",
313
+ "billingKnowledge",
314
+ "incrementalCostKnowledge",
315
+ "mayConsumeQuota",
316
+ "generatedAt"
317
+ ],
318
+ "additionalProperties": false,
319
+ "description": "Pre-execution disclosure for the exact same-harness capability smoke required by auth setup."
320
+ },
321
+ "state": {
322
+ "type": "string",
323
+ "const": "disclosed"
324
+ }
325
+ },
326
+ "required": [
327
+ "attemptId",
328
+ "challengeDigest",
329
+ "requestDigest",
330
+ "disclosure",
331
+ "state"
332
+ ],
333
+ "additionalProperties": false
334
+ },
335
+ {
336
+ "type": "object",
337
+ "properties": {
338
+ "attemptId": {
339
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/attemptId"
340
+ },
341
+ "challengeDigest": {
342
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
343
+ },
344
+ "requestDigest": {
345
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
346
+ },
347
+ "disclosure": {
348
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure"
349
+ },
350
+ "state": {
351
+ "type": "string",
352
+ "const": "running"
353
+ },
354
+ "startedAt": {
355
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/generatedAt"
356
+ }
357
+ },
358
+ "required": [
359
+ "attemptId",
360
+ "challengeDigest",
361
+ "requestDigest",
362
+ "disclosure",
363
+ "state",
364
+ "startedAt"
365
+ ],
366
+ "additionalProperties": false
367
+ },
368
+ {
369
+ "type": "object",
370
+ "properties": {
371
+ "attemptId": {
372
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/attemptId"
373
+ },
374
+ "challengeDigest": {
375
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
376
+ },
377
+ "requestDigest": {
378
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
379
+ },
380
+ "disclosure": {
381
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure"
382
+ },
383
+ "state": {
384
+ "type": "string",
385
+ "const": "completed"
386
+ },
387
+ "startedAt": {
388
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/generatedAt"
389
+ },
390
+ "completedAt": {
391
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/generatedAt"
392
+ },
393
+ "receipt": {
394
+ "type": "object",
395
+ "properties": {
396
+ "receiptId": {
397
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/attemptId"
398
+ },
399
+ "attemptId": {
400
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/attemptId"
401
+ },
402
+ "harness": {
403
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/attemptId"
404
+ },
405
+ "requested": {
406
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/requested"
407
+ },
408
+ "requiredRoute": {
409
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/requiredRoute"
410
+ },
411
+ "requiredSource": {
412
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/requiredSource"
413
+ },
414
+ "effective": {
415
+ "anyOf": [
416
+ {
417
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/requiredRoute"
418
+ },
419
+ {
420
+ "type": "null"
421
+ }
422
+ ],
423
+ "description": "Effective credential route: vendor-owned native session, Claudexor-managed API key, or credential-free local execution."
424
+ },
425
+ "effectiveSource": {
426
+ "anyOf": [
427
+ {
428
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/requiredSource"
429
+ },
430
+ {
431
+ "type": "null"
432
+ }
433
+ ],
434
+ "description": "Concrete credential source used or probed by a harness."
435
+ },
436
+ "selectionReason": {
437
+ "type": "string",
438
+ "enum": [
439
+ "exact_requested_route",
440
+ "adapter_unavailable",
441
+ "request_mismatch",
442
+ "route_missing",
443
+ "route_mismatch",
444
+ "source_missing",
445
+ "source_mismatch",
446
+ "harness_error",
447
+ "adapter_error",
448
+ "missing_completion",
449
+ "response_mismatch",
450
+ "scratch_mutated",
451
+ "protocol_violation",
452
+ "adapter_identity_mismatch",
453
+ "cancelled"
454
+ ]
455
+ },
456
+ "availability": {
457
+ "type": "string",
458
+ "enum": [
459
+ "available",
460
+ "unavailable",
461
+ "unknown"
462
+ ]
463
+ },
464
+ "verification": {
465
+ "type": "string",
466
+ "enum": [
467
+ "passed",
468
+ "failed",
469
+ "not_run"
470
+ ]
471
+ },
472
+ "billingKnowledge": {
473
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/billingKnowledge"
474
+ },
475
+ "costKnowledge": {
476
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/incrementalCostKnowledge"
477
+ },
478
+ "costUsd": {
479
+ "type": "number",
480
+ "minimum": 0
481
+ },
482
+ "startedAt": {
483
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/generatedAt"
484
+ },
485
+ "completedAt": {
486
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/generatedAt"
487
+ },
488
+ "challengeDigest": {
489
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
490
+ },
491
+ "requestDigest": {
492
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
493
+ },
494
+ "responseDigest": {
495
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
496
+ },
497
+ "streamDigest": {
498
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
499
+ },
500
+ "scratchBeforeDigest": {
501
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
502
+ },
503
+ "scratchAfterDigest": {
504
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
505
+ },
506
+ "stream": {
507
+ "type": "object",
508
+ "properties": {
509
+ "startedEvents": {
510
+ "type": "integer",
511
+ "minimum": 0
512
+ },
513
+ "completedEvents": {
514
+ "type": "integer",
515
+ "minimum": 0
516
+ },
517
+ "errorEvents": {
518
+ "type": "integer",
519
+ "minimum": 0
520
+ },
521
+ "unexpectedToolEvents": {
522
+ "type": "integer",
523
+ "minimum": 0
524
+ },
525
+ "interactionEvents": {
526
+ "type": "integer",
527
+ "minimum": 0
528
+ },
529
+ "sessionMismatchEvents": {
530
+ "type": "integer",
531
+ "minimum": 0
532
+ },
533
+ "eventsAfterCompleted": {
534
+ "type": "integer",
535
+ "minimum": 0
536
+ },
537
+ "aborted": {
538
+ "type": "boolean"
539
+ }
540
+ },
541
+ "required": [
542
+ "startedEvents",
543
+ "completedEvents",
544
+ "errorEvents",
545
+ "unexpectedToolEvents",
546
+ "interactionEvents",
547
+ "sessionMismatchEvents",
548
+ "eventsAfterCompleted",
549
+ "aborted"
550
+ ],
551
+ "additionalProperties": false
552
+ },
553
+ "evidenceRefs": {
554
+ "type": "array",
555
+ "items": {
556
+ "type": "string",
557
+ "minLength": 1
558
+ }
559
+ }
560
+ },
561
+ "required": [
562
+ "receiptId",
563
+ "attemptId",
564
+ "harness",
565
+ "requested",
566
+ "requiredRoute",
567
+ "requiredSource",
568
+ "effective",
569
+ "effectiveSource",
570
+ "selectionReason",
571
+ "availability",
572
+ "verification",
573
+ "billingKnowledge",
574
+ "costKnowledge",
575
+ "startedAt",
576
+ "completedAt",
577
+ "challengeDigest",
578
+ "requestDigest",
579
+ "responseDigest",
580
+ "streamDigest",
581
+ "scratchBeforeDigest",
582
+ "scratchAfterDigest",
583
+ "stream",
584
+ "evidenceRefs"
585
+ ],
586
+ "additionalProperties": false,
587
+ "description": "Immutable result of one exact-route same-harness capability smoke."
588
+ }
589
+ },
590
+ "required": [
591
+ "attemptId",
592
+ "challengeDigest",
593
+ "requestDigest",
594
+ "disclosure",
595
+ "state",
596
+ "startedAt",
597
+ "completedAt",
598
+ "receipt"
599
+ ],
600
+ "additionalProperties": false
601
+ },
602
+ {
603
+ "type": "object",
604
+ "properties": {
605
+ "attemptId": {
606
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/attemptId"
607
+ },
608
+ "challengeDigest": {
609
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
610
+ },
611
+ "requestDigest": {
612
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/challengeDigest"
613
+ },
614
+ "disclosure": {
615
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure"
616
+ },
617
+ "state": {
618
+ "type": "string",
619
+ "const": "interrupted_unknown"
620
+ },
621
+ "startedAt": {
622
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/generatedAt"
623
+ },
624
+ "interruptedAt": {
625
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/authCapability/anyOf/0/properties/disclosure/properties/generatedAt"
626
+ }
627
+ },
628
+ "required": [
629
+ "attemptId",
630
+ "challengeDigest",
631
+ "requestDigest",
632
+ "disclosure",
633
+ "state",
634
+ "startedAt",
635
+ "interruptedAt"
636
+ ],
637
+ "additionalProperties": false
638
+ }
639
+ ],
640
+ "description": "Single durable lifecycle for the exact-route same-harness capability proof."
641
+ },
642
+ "execution": {
643
+ "type": "object",
644
+ "properties": {
645
+ "executionId": {
646
+ "type": "string",
647
+ "pattern": "^[A-Za-z0-9-]+$"
648
+ },
649
+ "commandDigest": {
650
+ "type": "string",
651
+ "pattern": "^[a-f0-9]{64}$"
652
+ },
653
+ "manifestDigest": {
654
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/execution/properties/commandDigest"
655
+ },
656
+ "processGroup": {
657
+ "type": "object",
658
+ "properties": {
659
+ "schemaVersion": {
660
+ "type": "number",
661
+ "const": 1
662
+ },
663
+ "pgid": {
664
+ "type": "integer",
665
+ "exclusiveMinimum": 0
666
+ },
667
+ "leader": {
668
+ "type": "object",
669
+ "properties": {
670
+ "status": {
671
+ "type": "string",
672
+ "const": "known"
673
+ },
674
+ "pid": {
675
+ "type": "integer",
676
+ "exclusiveMinimum": 0
677
+ },
678
+ "platform": {
679
+ "type": "string",
680
+ "enum": [
681
+ "linux",
682
+ "darwin"
683
+ ]
684
+ },
685
+ "source": {
686
+ "type": "string",
687
+ "enum": [
688
+ "procfs_stat",
689
+ "proc_pidinfo"
690
+ ]
691
+ },
692
+ "startToken": {
693
+ "type": "string",
694
+ "minLength": 1
695
+ },
696
+ "processGroupId": {
697
+ "type": "integer",
698
+ "exclusiveMinimum": 0
699
+ }
700
+ },
701
+ "required": [
702
+ "status",
703
+ "pid",
704
+ "platform",
705
+ "source",
706
+ "startToken",
707
+ "processGroupId"
708
+ ],
709
+ "additionalProperties": false
710
+ }
711
+ },
712
+ "required": [
713
+ "schemaVersion",
714
+ "pgid",
715
+ "leader"
716
+ ],
717
+ "additionalProperties": false
718
+ },
719
+ "observedAt": {
720
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/deadlineAt"
721
+ },
722
+ "permitIssuedAt": {
723
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/deadlineAt"
724
+ }
725
+ },
726
+ "required": [
727
+ "executionId",
728
+ "commandDigest",
729
+ "manifestDigest",
730
+ "processGroup",
731
+ "observedAt"
732
+ ],
733
+ "additionalProperties": false,
734
+ "description": "Durable process-group and pre-execution permit evidence."
735
+ },
736
+ "authorization": {
737
+ "type": "object",
738
+ "properties": {
739
+ "executionId": {
740
+ "type": "string",
741
+ "pattern": "^[A-Za-z0-9-]+$"
742
+ },
743
+ "executable": {
744
+ "type": "object",
745
+ "properties": {
746
+ "realpath": {
747
+ "type": "string",
748
+ "pattern": "^\\/"
749
+ },
750
+ "sha256": {
751
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/execution/properties/commandDigest"
752
+ },
753
+ "size": {
754
+ "type": "integer",
755
+ "minimum": 0
756
+ },
757
+ "mode": {
758
+ "type": "integer",
759
+ "minimum": 0
760
+ },
761
+ "device": {
762
+ "type": "string",
763
+ "pattern": "^[0-9]+$"
764
+ },
765
+ "inode": {
766
+ "type": "string",
767
+ "pattern": "^[0-9]+$"
768
+ }
769
+ },
770
+ "required": [
771
+ "realpath",
772
+ "sha256",
773
+ "size",
774
+ "mode",
775
+ "device",
776
+ "inode"
777
+ ],
778
+ "additionalProperties": false
779
+ },
780
+ "args": {
781
+ "type": "array",
782
+ "items": {
783
+ "type": "string"
784
+ }
785
+ },
786
+ "commandDigest": {
787
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/execution/properties/commandDigest"
788
+ },
789
+ "manifestDigest": {
790
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/execution/properties/commandDigest"
791
+ }
792
+ },
793
+ "required": [
794
+ "executionId",
795
+ "executable",
796
+ "args",
797
+ "commandDigest",
798
+ "manifestDigest"
799
+ ],
800
+ "additionalProperties": false,
801
+ "description": "Immutable hash-bound command authorized before external handoff."
802
+ },
803
+ "nativeCommand": {
804
+ "type": "object",
805
+ "properties": {
806
+ "executionId": {
807
+ "type": "string",
808
+ "pattern": "^[A-Za-z0-9-]+$"
809
+ },
810
+ "commandDigest": {
811
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/execution/properties/commandDigest"
812
+ },
813
+ "manifestDigest": {
814
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/execution/properties/commandDigest"
815
+ },
816
+ "permitIssuedAt": {
817
+ "anyOf": [
818
+ {
819
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/deadlineAt"
820
+ },
821
+ {
822
+ "type": "null"
823
+ }
824
+ ]
825
+ },
826
+ "commandStarted": {
827
+ "type": "boolean"
828
+ },
829
+ "exitCode": {
830
+ "anyOf": [
831
+ {
832
+ "type": "integer",
833
+ "minimum": 0
834
+ },
835
+ {
836
+ "type": "null"
837
+ }
838
+ ]
839
+ },
840
+ "signal": {
841
+ "type": [
842
+ "string",
843
+ "null"
844
+ ]
845
+ },
846
+ "errorCode": {
847
+ "type": "string",
848
+ "enum": [
849
+ "permit_timeout",
850
+ "spawn_failed"
851
+ ]
852
+ },
853
+ "finishedAt": {
854
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/deadlineAt"
855
+ }
856
+ },
857
+ "required": [
858
+ "executionId",
859
+ "commandDigest",
860
+ "manifestDigest",
861
+ "permitIssuedAt",
862
+ "commandStarted",
863
+ "exitCode",
864
+ "signal",
865
+ "finishedAt"
866
+ ],
867
+ "additionalProperties": false,
868
+ "description": "Durable result of the hash-bound native login command, persisted before capability verification."
869
+ },
870
+ "terminationReconciliation": {
871
+ "type": "object",
872
+ "properties": {
873
+ "status": {
874
+ "type": "string",
875
+ "const": "empty"
876
+ },
877
+ "observedAt": {
878
+ "$ref": "#/definitions/ControlSetupJobEvent/properties/job/properties/deadlineAt"
879
+ }
880
+ },
881
+ "required": [
882
+ "status",
883
+ "observedAt"
884
+ ],
885
+ "additionalProperties": false,
886
+ "description": "Server-owned proof that a previously unconfirmed setup process group is empty."
887
+ }
888
+ },
889
+ "required": [
890
+ "jobId",
891
+ "harness",
892
+ "action",
893
+ "state",
894
+ "phase",
895
+ "command",
896
+ "guideUrl",
897
+ "message",
898
+ "createdAt",
899
+ "startedAt",
900
+ "finishedAt"
901
+ ],
902
+ "additionalProperties": false,
903
+ "description": "Full authoritative setup-job snapshot at this cursor."
44
904
  }
45
905
  },
46
906
  "required": [
47
907
  "jobId",
48
- "seq",
908
+ "cursor",
909
+ "previousCursor",
910
+ "sequence",
49
911
  "time",
50
912
  "kind",
51
- "message"
913
+ "state",
914
+ "message",
915
+ "job"
52
916
  ],
53
917
  "additionalProperties": false,
54
918
  "description": "Status event on a setup job's event stream."