@claudexor/schema 4.7.0 → 4.8.2
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.
- package/dist/account-resources.d.ts +37 -37
- package/dist/account-routing-evidence.d.ts +14 -14
- package/dist/attachment.d.ts +178 -0
- package/dist/attachment.d.ts.map +1 -1
- package/dist/attachment.js +46 -0
- package/dist/attachment.js.map +1 -1
- package/dist/captured-run-start.d.ts +1105 -0
- package/dist/captured-run-start.d.ts.map +1 -0
- package/dist/captured-run-start.js +41 -0
- package/dist/captured-run-start.js.map +1 -0
- package/dist/command-summary.d.ts +1 -1
- package/dist/command-summary.d.ts.map +1 -1
- package/dist/command-summary.js +1 -0
- package/dist/command-summary.js.map +1 -1
- package/dist/control-gc.d.ts +377 -0
- package/dist/control-gc.d.ts.map +1 -1
- package/dist/control-gc.js +74 -1
- package/dist/control-gc.js.map +1 -1
- package/dist/control-harness-models.js +1 -1
- package/dist/control-harness-models.js.map +1 -1
- package/dist/control-operation-responses.d.ts +201 -9
- package/dist/control-operation-responses.d.ts.map +1 -1
- package/dist/control-operation-responses.js +7 -1
- package/dist/control-operation-responses.js.map +1 -1
- package/dist/control-run-detail.d.ts +292 -19
- package/dist/control-run-detail.d.ts.map +1 -1
- package/dist/control-run-detail.js +2 -0
- package/dist/control-run-detail.js.map +1 -1
- package/dist/control-run-failure.d.ts +29 -4
- package/dist/control-run-failure.d.ts.map +1 -1
- package/dist/control-run-failure.js +3 -0
- package/dist/control-run-failure.js.map +1 -1
- package/dist/control-run-retry.d.ts +31 -0
- package/dist/control-run-retry.d.ts.map +1 -1
- package/dist/control-run-retry.js +12 -1
- package/dist/control-run-retry.js.map +1 -1
- package/dist/control-timeline.d.ts +9 -0
- package/dist/control-timeline.d.ts.map +1 -1
- package/dist/control-timeline.js +13 -0
- package/dist/control-timeline.js.map +1 -1
- package/dist/control.d.ts +78 -5
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js +7 -9
- package/dist/control.js.map +1 -1
- package/dist/credential-profile-snapshot.d.ts +28 -28
- package/dist/credential-profile.d.ts +1 -1
- package/dist/credential-profile.js +2 -2
- package/dist/credential-profile.js.map +1 -1
- package/dist/credential-store.d.ts +3 -2
- package/dist/credential-store.d.ts.map +1 -1
- package/dist/credential-store.js +5 -4
- package/dist/credential-store.js.map +1 -1
- package/dist/daemon-status.d.ts +492 -0
- package/dist/daemon-status.d.ts.map +1 -1
- package/dist/daemon-status.js +22 -0
- package/dist/daemon-status.js.map +1 -1
- package/dist/deferred-message.d.ts +2450 -0
- package/dist/deferred-message.d.ts.map +1 -0
- package/dist/deferred-message.js +186 -0
- package/dist/deferred-message.js.map +1 -0
- package/dist/events.d.ts +3 -3
- package/dist/events.js +1 -1
- package/dist/events.js.map +1 -1
- package/dist/harness-input.d.ts +15 -0
- package/dist/harness-input.d.ts.map +1 -1
- package/dist/harness-input.js +10 -1
- package/dist/harness-input.js.map +1 -1
- package/dist/harness-model.d.ts +65 -0
- package/dist/harness-model.d.ts.map +1 -1
- package/dist/harness-model.js +42 -0
- package/dist/harness-model.js.map +1 -1
- package/dist/harness-quota.d.ts +3 -3
- package/dist/harness-speech.d.ts +36 -0
- package/dist/harness-speech.d.ts.map +1 -0
- package/dist/harness-speech.js +27 -0
- package/dist/harness-speech.js.map +1 -0
- package/dist/harness.d.ts +79 -9
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js +5 -4
- package/dist/harness.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-run-result.d.ts +356 -12
- package/dist/mcp-run-result.d.ts.map +1 -1
- package/dist/mcp-run-result.js +5 -0
- package/dist/mcp-run-result.js.map +1 -1
- package/dist/mcp-run-wait.d.ts +133 -0
- package/dist/mcp-run-wait.d.ts.map +1 -1
- package/dist/mcp-run-wait.js +4 -0
- package/dist/mcp-run-wait.js.map +1 -1
- package/dist/mcp-upload.d.ts +133 -0
- package/dist/mcp-upload.d.ts.map +1 -0
- package/dist/mcp-upload.js +40 -0
- package/dist/mcp-upload.js.map +1 -0
- package/dist/quota-read.d.ts +8 -8
- package/dist/quota.d.ts +26 -20
- package/dist/quota.d.ts.map +1 -1
- package/dist/quota.js +11 -1
- package/dist/quota.js.map +1 -1
- package/dist/run-observation.d.ts +189 -0
- package/dist/run-observation.d.ts.map +1 -0
- package/dist/run-observation.js +99 -0
- package/dist/run-observation.js.map +1 -0
- package/dist/setup-login.d.ts +5 -5
- package/dist/setup.d.ts +63 -63
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +1 -1
- package/dist/setup.js.map +1 -1
- package/dist/task-group-runs.d.ts +258 -0
- package/dist/task-group-runs.d.ts.map +1 -0
- package/dist/task-group-runs.js +94 -0
- package/dist/task-group-runs.js.map +1 -0
- package/dist/task-group.d.ts +23 -0
- package/dist/task-group.d.ts.map +1 -0
- package/dist/task-group.js +38 -0
- package/dist/task-group.js.map +1 -0
- package/dist/telemetry.d.ts +136 -8
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +2 -5
- package/dist/telemetry.js.map +1 -1
- package/dist/thread-history.d.ts +12553 -0
- package/dist/thread-history.d.ts.map +1 -0
- package/dist/thread-history.js +291 -0
- package/dist/thread-history.js.map +1 -0
- package/generated/ControlAccountResetResponse.schema.json +1 -0
- package/generated/ControlAccountResourcesFreshnessResponse.schema.json +1 -0
- package/generated/ControlAccountResourcesResponse.schema.json +1 -0
- package/generated/ControlCredentialProfileCreateRequest.schema.json +1 -1
- package/generated/ControlCredentialProfilesQueryResponse.schema.json +1 -0
- package/generated/ControlCredentialProfilesResourcesResponse.schema.json +1 -0
- package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +1 -0
- package/generated/ControlDaemonStatus.schema.json +112 -43
- package/generated/ControlGcLastResponse.schema.json +184 -0
- package/generated/ControlGcReceipt.schema.json +60 -1
- package/generated/ControlGcRequest.schema.json +4 -0
- package/generated/ControlQueuedRunInfo.schema.json +10 -0
- package/generated/ControlQuotaFreshnessResponse.schema.json +1 -0
- package/generated/ControlQuotaQueryResponse.schema.json +1 -0
- package/generated/ControlQuotaResponse.schema.json +1 -0
- package/generated/ControlRunAgainDraft.schema.json +5 -0
- package/generated/ControlRunControlResponse.schema.json +169 -0
- package/generated/ControlRunDecisionResponse.schema.json +14 -0
- package/generated/ControlRunDetail.schema.json +240 -2
- package/generated/ControlRunListResponse.schema.json +32 -2
- package/generated/ControlRunRetryResponse.schema.json +10 -0
- package/generated/ControlRunStartInfo.schema.json +10 -0
- package/generated/ControlRunStartRequest.schema.json +5 -0
- package/generated/ControlRunStartResponse.schema.json +18 -0
- package/generated/ControlRunSummary.schema.json +32 -2
- package/generated/ControlSetupJob.schema.json +2 -1
- package/generated/ControlSetupJobCreateRequest.schema.json +2 -1
- package/generated/ControlSetupJobEvent.schema.json +2 -1
- package/generated/ControlSetupJobListFilter.schema.json +2 -1
- package/generated/ControlSetupJobListResponse.schema.json +2 -1
- package/generated/ControlSetupJobSnapshot.schema.json +2 -1
- package/generated/ControlThreadDetail.schema.json +1 -1
- package/generated/ControlUploadImport.schema.json +124 -0
- package/generated/ControlUploadImportRequest.schema.json +66 -0
- package/generated/DeferredMessageCall.schema.json +331 -0
- package/generated/DeferredMessageDetail.schema.json +917 -0
- package/generated/DeferredMessageMutation.schema.json +315 -0
- package/generated/DeferredMessageProjection.schema.json +177 -0
- package/generated/DeferredMessageReadInput.schema.json +20 -0
- package/generated/DeferredMessageReadResult.schema.json +399 -0
- package/generated/DeferredMessageReceipt.schema.json +193 -0
- package/generated/HarnessEvent.schema.json +100 -1
- package/generated/McpAccountsToolResult.schema.json +1 -0
- package/generated/McpRunHandleResult.schema.json +226 -19
- package/generated/McpRunToolResult.schema.json +228 -11
- package/generated/McpRunWaitResult.schema.json +180 -2
- package/generated/McpStoreIdentityInput.schema.json +11 -0
- package/generated/McpUploadCreateInput.schema.json +54 -0
- package/generated/McpUploadFinalizeInput.schema.json +40 -0
- package/generated/McpUploadImportInput.schema.json +52 -0
- package/generated/McpUploadImportLocalInput.schema.json +27 -0
- package/generated/McpUploadImportLocalResult.schema.json +45 -0
- package/generated/McpUploadTargetInput.schema.json +20 -0
- package/generated/ResourceAttachmentRef.schema.json +21 -0
- package/generated/RoutePrimaryDivergedPayload.schema.json +23 -14
- package/generated/RunFailure.schema.json +31 -1
- package/generated/RunObservationRecord.schema.json +64 -0
- package/generated/RunTelemetry.schema.json +83 -1
- package/generated/RunWaitManyInput.schema.json +54 -0
- package/generated/RunWaitManyResult.schema.json +110 -0
- package/generated/RunWaitManySummary.schema.json +75 -0
- package/generated/TaskGroupId.schema.json +11 -0
- package/generated/TaskGroupReceipt.schema.json +26 -0
- package/generated/TaskGroupRunsInput.schema.json +46 -0
- package/generated/TaskGroupRunsResult.schema.json +162 -0
- package/generated/ThreadHistoryInput.schema.json +48 -0
- package/generated/ThreadHistoryPage.schema.json +2857 -0
- package/generated/ThreadPromptPart.schema.json +57 -0
- package/generated/ThreadPromptPartInput.schema.json +41 -0
- package/package.json +2 -2
|
@@ -0,0 +1,2857 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/ThreadHistoryPage",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"ThreadHistoryPage": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"storeId": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 1
|
|
10
|
+
},
|
|
11
|
+
"threadId": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"minLength": 1,
|
|
14
|
+
"maxLength": 256,
|
|
15
|
+
"description": "Thread id."
|
|
16
|
+
},
|
|
17
|
+
"epoch": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1,
|
|
20
|
+
"maxLength": 256
|
|
21
|
+
},
|
|
22
|
+
"revision": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"epoch": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"format": "uuid",
|
|
28
|
+
"description": "Read-owner incarnation; compare sequence only within this epoch."
|
|
29
|
+
},
|
|
30
|
+
"sequence": {
|
|
31
|
+
"type": "integer",
|
|
32
|
+
"minimum": 0,
|
|
33
|
+
"maximum": 9007199254740991,
|
|
34
|
+
"description": "Allocated before synchronous projection. A later snapshot always has a greater sequence."
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"required": [
|
|
38
|
+
"epoch",
|
|
39
|
+
"sequence"
|
|
40
|
+
],
|
|
41
|
+
"additionalProperties": false
|
|
42
|
+
},
|
|
43
|
+
"header": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"properties": {
|
|
46
|
+
"thread": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"properties": {
|
|
49
|
+
"id": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"minLength": 1,
|
|
52
|
+
"description": "Thread id."
|
|
53
|
+
},
|
|
54
|
+
"title": {
|
|
55
|
+
"type": [
|
|
56
|
+
"string",
|
|
57
|
+
"null"
|
|
58
|
+
],
|
|
59
|
+
"default": null,
|
|
60
|
+
"description": "Thread title; null until set."
|
|
61
|
+
},
|
|
62
|
+
"folder": {
|
|
63
|
+
"anyOf": [
|
|
64
|
+
{
|
|
65
|
+
"type": "string",
|
|
66
|
+
"minLength": 1,
|
|
67
|
+
"maxLength": 120,
|
|
68
|
+
"description": "User-visible thread folder name."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"type": "null"
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"description": "Optional sidebar folder; null means ungrouped.",
|
|
75
|
+
"default": null
|
|
76
|
+
},
|
|
77
|
+
"repoRoot": {
|
|
78
|
+
"type": [
|
|
79
|
+
"string",
|
|
80
|
+
"null"
|
|
81
|
+
],
|
|
82
|
+
"default": null,
|
|
83
|
+
"description": "Project root the thread is anchored to; null for a no-project thread."
|
|
84
|
+
},
|
|
85
|
+
"mode": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"enum": [
|
|
88
|
+
"ask",
|
|
89
|
+
"plan",
|
|
90
|
+
"agent"
|
|
91
|
+
],
|
|
92
|
+
"description": "Default mode for new turns."
|
|
93
|
+
},
|
|
94
|
+
"workspaceMode": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"enum": [
|
|
97
|
+
"in_place",
|
|
98
|
+
"isolated",
|
|
99
|
+
"delegated"
|
|
100
|
+
],
|
|
101
|
+
"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.",
|
|
102
|
+
"default": "in_place"
|
|
103
|
+
},
|
|
104
|
+
"workspaceRoot": {
|
|
105
|
+
"type": [
|
|
106
|
+
"string",
|
|
107
|
+
"null"
|
|
108
|
+
],
|
|
109
|
+
"default": null,
|
|
110
|
+
"description": "Caller-owned workspace a delegated thread executes in; null for in_place and isolated threads."
|
|
111
|
+
},
|
|
112
|
+
"authPreference": {
|
|
113
|
+
"type": "string",
|
|
114
|
+
"enum": [
|
|
115
|
+
"subscription",
|
|
116
|
+
"api_key",
|
|
117
|
+
"auto"
|
|
118
|
+
],
|
|
119
|
+
"description": "Preferred auth route: subscription (native/OAuth session), api_key (a stored API key), or auto (engine picks subscription-first with policy fallback). A preference, not a secret.",
|
|
120
|
+
"default": "auto"
|
|
121
|
+
},
|
|
122
|
+
"primaryHarness": {
|
|
123
|
+
"type": [
|
|
124
|
+
"string",
|
|
125
|
+
"null"
|
|
126
|
+
],
|
|
127
|
+
"default": null,
|
|
128
|
+
"description": "Sticky primary harness for the thread; null = engine routing."
|
|
129
|
+
},
|
|
130
|
+
"eligibleHarnesses": {
|
|
131
|
+
"type": "array",
|
|
132
|
+
"items": {
|
|
133
|
+
"type": "string"
|
|
134
|
+
},
|
|
135
|
+
"default": [],
|
|
136
|
+
"description": "Sticky eligible harness pool; empty = the engine auto-pools."
|
|
137
|
+
},
|
|
138
|
+
"credentialProfileId": {
|
|
139
|
+
"anyOf": [
|
|
140
|
+
{
|
|
141
|
+
"type": "string",
|
|
142
|
+
"minLength": 1,
|
|
143
|
+
"description": "Non-empty identifier string."
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"type": "null"
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
"description": "Sticky credential profile for the thread; per-turn selection wins, null = engine-default credentials.",
|
|
150
|
+
"default": null
|
|
151
|
+
},
|
|
152
|
+
"access": {
|
|
153
|
+
"anyOf": [
|
|
154
|
+
{
|
|
155
|
+
"type": "string",
|
|
156
|
+
"enum": [
|
|
157
|
+
"readonly",
|
|
158
|
+
"workspace_write",
|
|
159
|
+
"full",
|
|
160
|
+
"inherit_native",
|
|
161
|
+
"external_sandbox_full"
|
|
162
|
+
],
|
|
163
|
+
"description": "Access profile recorded by an immutable historical artifact. external_sandbox_full is retired and cannot be requested by active surfaces."
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"type": "null"
|
|
167
|
+
}
|
|
168
|
+
],
|
|
169
|
+
"description": "Sticky write scope for write turns; null = the repo trust default.",
|
|
170
|
+
"default": null
|
|
171
|
+
},
|
|
172
|
+
"state": {
|
|
173
|
+
"type": "string",
|
|
174
|
+
"enum": [
|
|
175
|
+
"active",
|
|
176
|
+
"closed",
|
|
177
|
+
"trashed",
|
|
178
|
+
"purged"
|
|
179
|
+
],
|
|
180
|
+
"description": "Thread lifecycle state: active, closed, trashed for recovery, or terminally purged.",
|
|
181
|
+
"default": "active"
|
|
182
|
+
},
|
|
183
|
+
"trashedAt": {
|
|
184
|
+
"type": [
|
|
185
|
+
"string",
|
|
186
|
+
"null"
|
|
187
|
+
],
|
|
188
|
+
"default": null,
|
|
189
|
+
"description": "When the thread entered trash."
|
|
190
|
+
},
|
|
191
|
+
"purgeAfter": {
|
|
192
|
+
"type": [
|
|
193
|
+
"string",
|
|
194
|
+
"null"
|
|
195
|
+
],
|
|
196
|
+
"default": null,
|
|
197
|
+
"description": "Restore deadline, then auto-purge."
|
|
198
|
+
},
|
|
199
|
+
"headRunId": {
|
|
200
|
+
"anyOf": [
|
|
201
|
+
{
|
|
202
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"type": "null"
|
|
206
|
+
}
|
|
207
|
+
],
|
|
208
|
+
"description": "Most recent run of the thread; null before the first turn runs.",
|
|
209
|
+
"default": null
|
|
210
|
+
},
|
|
211
|
+
"needsHuman": {
|
|
212
|
+
"type": "boolean",
|
|
213
|
+
"default": false,
|
|
214
|
+
"description": "True when the head turn is blocked on a human decision (needs-me inbox)."
|
|
215
|
+
},
|
|
216
|
+
"createdAt": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"description": "When the thread was created."
|
|
219
|
+
},
|
|
220
|
+
"updatedAt": {
|
|
221
|
+
"type": "string",
|
|
222
|
+
"description": "When the thread was last updated."
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"required": [
|
|
226
|
+
"id",
|
|
227
|
+
"createdAt",
|
|
228
|
+
"updatedAt"
|
|
229
|
+
],
|
|
230
|
+
"additionalProperties": false,
|
|
231
|
+
"description": "Control-plane projection of a thread (camelCase view of the Thread artifact)."
|
|
232
|
+
},
|
|
233
|
+
"latestTurnId": {
|
|
234
|
+
"anyOf": [
|
|
235
|
+
{
|
|
236
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/threadId"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"type": "null"
|
|
240
|
+
}
|
|
241
|
+
],
|
|
242
|
+
"description": "Thread id."
|
|
243
|
+
},
|
|
244
|
+
"latestOrdinal": {
|
|
245
|
+
"anyOf": [
|
|
246
|
+
{
|
|
247
|
+
"type": "integer",
|
|
248
|
+
"minimum": 0,
|
|
249
|
+
"maximum": 9007199254740991
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"type": "null"
|
|
253
|
+
}
|
|
254
|
+
],
|
|
255
|
+
"description": "Latest stored turn ordinal, including runless turns; null only for an empty thread."
|
|
256
|
+
},
|
|
257
|
+
"latestAdmission": {
|
|
258
|
+
"anyOf": [
|
|
259
|
+
{
|
|
260
|
+
"type": "object",
|
|
261
|
+
"properties": {
|
|
262
|
+
"id": {
|
|
263
|
+
"type": "string",
|
|
264
|
+
"minLength": 1,
|
|
265
|
+
"description": "Turn id."
|
|
266
|
+
},
|
|
267
|
+
"runId": {
|
|
268
|
+
"anyOf": [
|
|
269
|
+
{
|
|
270
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"type": "null"
|
|
274
|
+
}
|
|
275
|
+
],
|
|
276
|
+
"description": "Run backing this turn; null while unbound.",
|
|
277
|
+
"default": null
|
|
278
|
+
},
|
|
279
|
+
"enqueueError": {
|
|
280
|
+
"anyOf": [
|
|
281
|
+
{
|
|
282
|
+
"type": "object",
|
|
283
|
+
"properties": {
|
|
284
|
+
"message": {
|
|
285
|
+
"type": "string",
|
|
286
|
+
"description": "Human-readable refusal message."
|
|
287
|
+
},
|
|
288
|
+
"code": {
|
|
289
|
+
"type": [
|
|
290
|
+
"string",
|
|
291
|
+
"null"
|
|
292
|
+
],
|
|
293
|
+
"default": null,
|
|
294
|
+
"description": "Machine-readable refusal code; remedies key on it, never on the message text."
|
|
295
|
+
},
|
|
296
|
+
"retryable": {
|
|
297
|
+
"type": "boolean",
|
|
298
|
+
"default": true,
|
|
299
|
+
"description": "False when no recorded job exists to replay — surfaces offer a new message instead of a doomed retry."
|
|
300
|
+
},
|
|
301
|
+
"requiredActions": {
|
|
302
|
+
"type": "array",
|
|
303
|
+
"items": {
|
|
304
|
+
"type": "string",
|
|
305
|
+
"minLength": 1,
|
|
306
|
+
"maxLength": 512
|
|
307
|
+
},
|
|
308
|
+
"maxItems": 16,
|
|
309
|
+
"default": [],
|
|
310
|
+
"description": "Bounded user actions that may make an exact retry succeed."
|
|
311
|
+
},
|
|
312
|
+
"context": {
|
|
313
|
+
"type": "object",
|
|
314
|
+
"additionalProperties": {},
|
|
315
|
+
"default": {},
|
|
316
|
+
"description": "Bounded typed recovery context for exact retry."
|
|
317
|
+
},
|
|
318
|
+
"failedAt": {
|
|
319
|
+
"type": "string",
|
|
320
|
+
"description": "When the enqueue failed."
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
"required": [
|
|
324
|
+
"message",
|
|
325
|
+
"failedAt"
|
|
326
|
+
],
|
|
327
|
+
"additionalProperties": false
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"type": "null"
|
|
331
|
+
}
|
|
332
|
+
],
|
|
333
|
+
"default": null,
|
|
334
|
+
"description": "Why this turn has no run (enqueue/preflight refusal); null once a run binds."
|
|
335
|
+
},
|
|
336
|
+
"jobId": {
|
|
337
|
+
"anyOf": [
|
|
338
|
+
{
|
|
339
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/threadId"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"type": "null"
|
|
343
|
+
}
|
|
344
|
+
],
|
|
345
|
+
"description": "Thread id."
|
|
346
|
+
},
|
|
347
|
+
"state": {
|
|
348
|
+
"anyOf": [
|
|
349
|
+
{
|
|
350
|
+
"type": "string",
|
|
351
|
+
"enum": [
|
|
352
|
+
"queued",
|
|
353
|
+
"running",
|
|
354
|
+
"succeeded",
|
|
355
|
+
"failed",
|
|
356
|
+
"cancelled",
|
|
357
|
+
"interrupted"
|
|
358
|
+
],
|
|
359
|
+
"description": "Control-plane run state = the run LIFECYCLE (D8): queued/running while live, then exactly one of succeeded / failed / cancelled / interrupted. Outcome quality (checks/review/delivery) is orthogonal — see outcomeFacts."
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"type": "null"
|
|
363
|
+
}
|
|
364
|
+
],
|
|
365
|
+
"description": "Control-plane run state = the run LIFECYCLE (D8): queued/running while live, then exactly one of succeeded / failed / cancelled / interrupted. Outcome quality (checks/review/delivery) is orthogonal — see outcomeFacts."
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"required": [
|
|
369
|
+
"id",
|
|
370
|
+
"jobId",
|
|
371
|
+
"state"
|
|
372
|
+
],
|
|
373
|
+
"additionalProperties": false,
|
|
374
|
+
"description": "Control-plane projection of one thread turn with its embedded run card."
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"type": "null"
|
|
378
|
+
}
|
|
379
|
+
],
|
|
380
|
+
"description": "Control-plane projection of one thread turn with its embedded run card."
|
|
381
|
+
},
|
|
382
|
+
"headRun": {
|
|
383
|
+
"anyOf": [
|
|
384
|
+
{
|
|
385
|
+
"type": "object",
|
|
386
|
+
"properties": {
|
|
387
|
+
"runId": {
|
|
388
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/threadId"
|
|
389
|
+
},
|
|
390
|
+
"run": {
|
|
391
|
+
"type": "object",
|
|
392
|
+
"properties": {
|
|
393
|
+
"state": {
|
|
394
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestAdmission/anyOf/0/properties/state/anyOf/0"
|
|
395
|
+
},
|
|
396
|
+
"mode": {
|
|
397
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/mode",
|
|
398
|
+
"description": "Canonical run mode: ask and plan are read-only, agent writes. Strategy controls are separate schema-owned fields, never modes."
|
|
399
|
+
},
|
|
400
|
+
"strategy": {
|
|
401
|
+
"anyOf": [
|
|
402
|
+
{
|
|
403
|
+
"type": "string",
|
|
404
|
+
"enum": [
|
|
405
|
+
"race",
|
|
406
|
+
"attempts",
|
|
407
|
+
"until_clean",
|
|
408
|
+
"deep_scan",
|
|
409
|
+
"create"
|
|
410
|
+
]
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"type": "null"
|
|
414
|
+
}
|
|
415
|
+
],
|
|
416
|
+
"description": "Engine strategy flag on the mode, when any."
|
|
417
|
+
},
|
|
418
|
+
"n": {
|
|
419
|
+
"type": "integer",
|
|
420
|
+
"description": "Race width, when the run was a race."
|
|
421
|
+
},
|
|
422
|
+
"result": {
|
|
423
|
+
"type": "object",
|
|
424
|
+
"properties": {
|
|
425
|
+
"kind": {
|
|
426
|
+
"type": "string",
|
|
427
|
+
"enum": [
|
|
428
|
+
"patch",
|
|
429
|
+
"files",
|
|
430
|
+
"answer",
|
|
431
|
+
"plan",
|
|
432
|
+
"report",
|
|
433
|
+
"none"
|
|
434
|
+
],
|
|
435
|
+
"default": "none",
|
|
436
|
+
"description": "What the turn actually produced: a Git patch, directory files, an answer, a plan, a report, or nothing."
|
|
437
|
+
},
|
|
438
|
+
"diffStat": {
|
|
439
|
+
"anyOf": [
|
|
440
|
+
{
|
|
441
|
+
"type": "object",
|
|
442
|
+
"properties": {
|
|
443
|
+
"files": {
|
|
444
|
+
"type": "integer",
|
|
445
|
+
"minimum": 0,
|
|
446
|
+
"description": "Files changed."
|
|
447
|
+
},
|
|
448
|
+
"additions": {
|
|
449
|
+
"type": "integer",
|
|
450
|
+
"minimum": 0,
|
|
451
|
+
"description": "Lines added."
|
|
452
|
+
},
|
|
453
|
+
"deletions": {
|
|
454
|
+
"type": "integer",
|
|
455
|
+
"minimum": 0,
|
|
456
|
+
"description": "Lines deleted."
|
|
457
|
+
}
|
|
458
|
+
},
|
|
459
|
+
"required": [
|
|
460
|
+
"files",
|
|
461
|
+
"additions",
|
|
462
|
+
"deletions"
|
|
463
|
+
],
|
|
464
|
+
"additionalProperties": false
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"type": "null"
|
|
468
|
+
}
|
|
469
|
+
],
|
|
470
|
+
"default": null,
|
|
471
|
+
"description": "Diff statistics; null unless a patch exists."
|
|
472
|
+
},
|
|
473
|
+
"blockers": {
|
|
474
|
+
"type": "integer",
|
|
475
|
+
"minimum": 0,
|
|
476
|
+
"default": 0,
|
|
477
|
+
"description": "Count of accepted blocking review findings."
|
|
478
|
+
},
|
|
479
|
+
"adopted": {
|
|
480
|
+
"type": [
|
|
481
|
+
"boolean",
|
|
482
|
+
"null"
|
|
483
|
+
],
|
|
484
|
+
"default": null,
|
|
485
|
+
"description": "True when the live in-place tree was mutated this turn (regardless of review); null when unknown."
|
|
486
|
+
},
|
|
487
|
+
"applyState": {
|
|
488
|
+
"type": "string",
|
|
489
|
+
"enum": [
|
|
490
|
+
"not_applied",
|
|
491
|
+
"applied",
|
|
492
|
+
"applied_review_blocked",
|
|
493
|
+
"reverted",
|
|
494
|
+
"discarded"
|
|
495
|
+
],
|
|
496
|
+
"description": "Honest application state: not_applied (delivery pending), applied, applied_review_blocked, reverted, or discarded (remaining copied output deliberately not applied).",
|
|
497
|
+
"default": "not_applied"
|
|
498
|
+
},
|
|
499
|
+
"preTurnSha": {
|
|
500
|
+
"type": [
|
|
501
|
+
"string",
|
|
502
|
+
"null"
|
|
503
|
+
],
|
|
504
|
+
"default": null,
|
|
505
|
+
"description": "Tree SHA before this turn mutated the in-place tree (revert restore target)."
|
|
506
|
+
},
|
|
507
|
+
"postTurnSha": {
|
|
508
|
+
"type": [
|
|
509
|
+
"string",
|
|
510
|
+
"null"
|
|
511
|
+
],
|
|
512
|
+
"default": null,
|
|
513
|
+
"description": "Tree SHA right after this turn's mutation; revert refuses if the working tree has diverged from this since."
|
|
514
|
+
},
|
|
515
|
+
"revertAnchorId": {
|
|
516
|
+
"type": [
|
|
517
|
+
"string",
|
|
518
|
+
"null"
|
|
519
|
+
],
|
|
520
|
+
"default": null,
|
|
521
|
+
"description": "Run-owned revert anchor."
|
|
522
|
+
},
|
|
523
|
+
"revertable": {
|
|
524
|
+
"type": "boolean",
|
|
525
|
+
"default": false,
|
|
526
|
+
"description": "Revert metadata is available so a Revert affordance may be offered; not a live-safe guarantee — the server re-checks tree divergence at revert time."
|
|
527
|
+
}
|
|
528
|
+
},
|
|
529
|
+
"additionalProperties": false,
|
|
530
|
+
"description": "Honest terminal outcome of a run (what the turn actually did), projected from the work product and answer artifacts.",
|
|
531
|
+
"default": {}
|
|
532
|
+
},
|
|
533
|
+
"outcomeFacts": {
|
|
534
|
+
"anyOf": [
|
|
535
|
+
{
|
|
536
|
+
"type": "object",
|
|
537
|
+
"properties": {
|
|
538
|
+
"lifecycle": {
|
|
539
|
+
"type": "string",
|
|
540
|
+
"enum": [
|
|
541
|
+
"succeeded",
|
|
542
|
+
"failed",
|
|
543
|
+
"cancelled",
|
|
544
|
+
"interrupted"
|
|
545
|
+
],
|
|
546
|
+
"description": "Terminal lifecycle of the run."
|
|
547
|
+
},
|
|
548
|
+
"noChanges": {
|
|
549
|
+
"type": [
|
|
550
|
+
"boolean",
|
|
551
|
+
"null"
|
|
552
|
+
],
|
|
553
|
+
"default": false,
|
|
554
|
+
"description": "True when the run finished without changing any files (the ex no_op fact)."
|
|
555
|
+
},
|
|
556
|
+
"checks": {
|
|
557
|
+
"type": "string",
|
|
558
|
+
"enum": [
|
|
559
|
+
"passed",
|
|
560
|
+
"failed",
|
|
561
|
+
"not_configured"
|
|
562
|
+
],
|
|
563
|
+
"description": "Deterministic checks axis: configured project checks passed, failed, or none are configured (a named state, never a stand-in for review results).",
|
|
564
|
+
"default": "not_configured"
|
|
565
|
+
},
|
|
566
|
+
"review": {
|
|
567
|
+
"type": "string",
|
|
568
|
+
"enum": [
|
|
569
|
+
"approved",
|
|
570
|
+
"blocked",
|
|
571
|
+
"not_run"
|
|
572
|
+
],
|
|
573
|
+
"description": "Review axis: approved (clean cross-family verified review), blocked (open accepted findings), or not_run.",
|
|
574
|
+
"default": "not_run"
|
|
575
|
+
},
|
|
576
|
+
"review_requested": {
|
|
577
|
+
"type": "boolean",
|
|
578
|
+
"description": "Frozen model-review intent. False permits an honestly unreviewed result; absent historical records retain the review requirement."
|
|
579
|
+
},
|
|
580
|
+
"reason": {
|
|
581
|
+
"anyOf": [
|
|
582
|
+
{
|
|
583
|
+
"type": "string",
|
|
584
|
+
"enum": [
|
|
585
|
+
"harness_failed",
|
|
586
|
+
"no_changes",
|
|
587
|
+
"review_blocked",
|
|
588
|
+
"checks_failed",
|
|
589
|
+
"budget_exhausted",
|
|
590
|
+
"budget_overshoot",
|
|
591
|
+
"cost_unverifiable",
|
|
592
|
+
"not_converged",
|
|
593
|
+
"stuck_no_progress",
|
|
594
|
+
"wall_clock_exceeded",
|
|
595
|
+
"user_cancelled",
|
|
596
|
+
"host_cancelled",
|
|
597
|
+
"owner_task_gone",
|
|
598
|
+
"crash_interrupted",
|
|
599
|
+
"workspace_unavailable",
|
|
600
|
+
"input_required",
|
|
601
|
+
"work_incomplete",
|
|
602
|
+
"context_capacity_exhausted",
|
|
603
|
+
"work_report_contract"
|
|
604
|
+
],
|
|
605
|
+
"description": "Typed reason qualifying a non-clean terminal; null on a clean success."
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"type": "null"
|
|
609
|
+
}
|
|
610
|
+
],
|
|
611
|
+
"description": "Typed reason qualifying a non-clean terminal; null on a clean success.",
|
|
612
|
+
"default": null
|
|
613
|
+
},
|
|
614
|
+
"work_state": {
|
|
615
|
+
"type": "object",
|
|
616
|
+
"properties": {
|
|
617
|
+
"state": {
|
|
618
|
+
"type": "string",
|
|
619
|
+
"enum": [
|
|
620
|
+
"completed",
|
|
621
|
+
"needs_input",
|
|
622
|
+
"incomplete",
|
|
623
|
+
"unverified"
|
|
624
|
+
],
|
|
625
|
+
"description": "Folded work state: the WorkReport state, or unverified when no valid report was obtained (transport unsupported / lane gated, or an instructed footer missing or broken)."
|
|
626
|
+
},
|
|
627
|
+
"source": {
|
|
628
|
+
"type": "string",
|
|
629
|
+
"enum": [
|
|
630
|
+
"constrained",
|
|
631
|
+
"validated",
|
|
632
|
+
"absent"
|
|
633
|
+
],
|
|
634
|
+
"description": "Provenance of a WorkReport: constrained (native schema transport), validated (instructed terminal metadata), or absent (no transport could carry one — a disclosed absence, not a failure)."
|
|
635
|
+
},
|
|
636
|
+
"required_inputs": {
|
|
637
|
+
"type": "array",
|
|
638
|
+
"items": {
|
|
639
|
+
"type": "object",
|
|
640
|
+
"properties": {
|
|
641
|
+
"kind": {
|
|
642
|
+
"type": "string",
|
|
643
|
+
"enum": [
|
|
644
|
+
"file",
|
|
645
|
+
"context",
|
|
646
|
+
"credential",
|
|
647
|
+
"permission",
|
|
648
|
+
"decision",
|
|
649
|
+
"external_dependency"
|
|
650
|
+
],
|
|
651
|
+
"description": "Category of a missing input a needs_input/incomplete report lists: a file, additional context, a credential, a permission, a human decision, or an external dependency."
|
|
652
|
+
},
|
|
653
|
+
"locator": {
|
|
654
|
+
"anyOf": [
|
|
655
|
+
{
|
|
656
|
+
"type": "string",
|
|
657
|
+
"maxLength": 512
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
"type": "null"
|
|
661
|
+
}
|
|
662
|
+
],
|
|
663
|
+
"default": null,
|
|
664
|
+
"description": "Concrete pointer to the missing thing (path/url/name); null when unnameable."
|
|
665
|
+
},
|
|
666
|
+
"description": {
|
|
667
|
+
"type": "string",
|
|
668
|
+
"maxLength": 1024,
|
|
669
|
+
"description": "Human-readable description of what is needed and why."
|
|
670
|
+
}
|
|
671
|
+
},
|
|
672
|
+
"required": [
|
|
673
|
+
"kind",
|
|
674
|
+
"description"
|
|
675
|
+
],
|
|
676
|
+
"additionalProperties": false,
|
|
677
|
+
"description": "One blocking input a needs_input/incomplete WorkReport lists."
|
|
678
|
+
},
|
|
679
|
+
"maxItems": 16,
|
|
680
|
+
"description": "Carried through from a needs_input/incomplete WorkReport for honest disclosure."
|
|
681
|
+
},
|
|
682
|
+
"unverified_reason": {
|
|
683
|
+
"type": "string",
|
|
684
|
+
"enum": [
|
|
685
|
+
"footer_missing",
|
|
686
|
+
"footer_not_json",
|
|
687
|
+
"footer_not_object",
|
|
688
|
+
"report_missing",
|
|
689
|
+
"report_malformed",
|
|
690
|
+
"report_contradictory",
|
|
691
|
+
"legacy_output_invalid"
|
|
692
|
+
],
|
|
693
|
+
"description": "Present only with state unverified on a validated (instructed footer) source: the disclosed cause of the missing report."
|
|
694
|
+
}
|
|
695
|
+
},
|
|
696
|
+
"required": [
|
|
697
|
+
"state",
|
|
698
|
+
"source"
|
|
699
|
+
],
|
|
700
|
+
"additionalProperties": false,
|
|
701
|
+
"description": "D-16 model-attested work outcome, orthogonal to lifecycle; a needs_input/incomplete state vetoes applyability and exit 0. Absent on runs with no work_report transport."
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
"required": [
|
|
705
|
+
"lifecycle"
|
|
706
|
+
],
|
|
707
|
+
"additionalProperties": false,
|
|
708
|
+
"description": "Independent terminal outcome axes of a run (D8/D18)."
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
"type": "null"
|
|
712
|
+
}
|
|
713
|
+
],
|
|
714
|
+
"description": "D8 terminal outcome axes (checks/review/reason/noChanges) for the turn; null while non-terminal.",
|
|
715
|
+
"default": null
|
|
716
|
+
},
|
|
717
|
+
"spendUsd": {
|
|
718
|
+
"type": [
|
|
719
|
+
"number",
|
|
720
|
+
"null"
|
|
721
|
+
],
|
|
722
|
+
"description": "Settled cash in USD; null when unknown."
|
|
723
|
+
},
|
|
724
|
+
"outputReadyState": {
|
|
725
|
+
"type": "string",
|
|
726
|
+
"enum": [
|
|
727
|
+
"pending",
|
|
728
|
+
"finalizing",
|
|
729
|
+
"ready",
|
|
730
|
+
"diagnostic"
|
|
731
|
+
],
|
|
732
|
+
"description": "Whether a terminal run also has a loaded user-facing output artifact: pending (not yet), finalizing (being produced), ready (loaded), diagnostic (only diagnostic output).",
|
|
733
|
+
"default": "pending"
|
|
734
|
+
},
|
|
735
|
+
"waitingOnUser": {
|
|
736
|
+
"type": "boolean",
|
|
737
|
+
"default": false,
|
|
738
|
+
"description": "True while an interactive question is awaiting the user's answer."
|
|
739
|
+
},
|
|
740
|
+
"finishedAt": {
|
|
741
|
+
"type": [
|
|
742
|
+
"string",
|
|
743
|
+
"null"
|
|
744
|
+
],
|
|
745
|
+
"default": null,
|
|
746
|
+
"description": "When the run finished; null while live."
|
|
747
|
+
},
|
|
748
|
+
"delegation": {
|
|
749
|
+
"anyOf": [
|
|
750
|
+
{
|
|
751
|
+
"type": "object",
|
|
752
|
+
"properties": {
|
|
753
|
+
"requested": {
|
|
754
|
+
"type": "boolean",
|
|
755
|
+
"default": false
|
|
756
|
+
},
|
|
757
|
+
"effective": {
|
|
758
|
+
"type": "boolean",
|
|
759
|
+
"default": false
|
|
760
|
+
},
|
|
761
|
+
"used": {
|
|
762
|
+
"type": "boolean",
|
|
763
|
+
"default": false
|
|
764
|
+
},
|
|
765
|
+
"reason": {
|
|
766
|
+
"type": "string",
|
|
767
|
+
"enum": [
|
|
768
|
+
"pending",
|
|
769
|
+
"not_requested",
|
|
770
|
+
"injected_unused",
|
|
771
|
+
"used",
|
|
772
|
+
"runtime_unavailable",
|
|
773
|
+
"manifest_unsupported",
|
|
774
|
+
"access_profile_incompatible",
|
|
775
|
+
"partially_degraded",
|
|
776
|
+
"startup_failed"
|
|
777
|
+
],
|
|
778
|
+
"default": "not_requested"
|
|
779
|
+
},
|
|
780
|
+
"remediation": {
|
|
781
|
+
"anyOf": [
|
|
782
|
+
{
|
|
783
|
+
"type": "string",
|
|
784
|
+
"minLength": 1
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
"type": "null"
|
|
788
|
+
}
|
|
789
|
+
],
|
|
790
|
+
"default": null
|
|
791
|
+
}
|
|
792
|
+
},
|
|
793
|
+
"additionalProperties": false,
|
|
794
|
+
"description": "Engine-owned Delegate requested/effective/used receipt; surfaces project it without parsing model output."
|
|
795
|
+
},
|
|
796
|
+
{
|
|
797
|
+
"type": "null"
|
|
798
|
+
}
|
|
799
|
+
],
|
|
800
|
+
"description": "Durable Delegate outcome receipt; null for ordinary and legacy turns.",
|
|
801
|
+
"default": null
|
|
802
|
+
},
|
|
803
|
+
"delegatedChildRunIds": {
|
|
804
|
+
"type": "array",
|
|
805
|
+
"items": {
|
|
806
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
807
|
+
},
|
|
808
|
+
"maxItems": 8,
|
|
809
|
+
"default": [],
|
|
810
|
+
"description": "At most eight server-owned direct Delegate child ids for whole-thread workspace aggregation."
|
|
811
|
+
}
|
|
812
|
+
},
|
|
813
|
+
"required": [
|
|
814
|
+
"state"
|
|
815
|
+
],
|
|
816
|
+
"additionalProperties": false,
|
|
817
|
+
"description": "Compact run state embedded on a turn so a chat surface renders the whole conversation from one thread fetch."
|
|
818
|
+
}
|
|
819
|
+
},
|
|
820
|
+
"required": [
|
|
821
|
+
"runId",
|
|
822
|
+
"run"
|
|
823
|
+
],
|
|
824
|
+
"additionalProperties": false
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
"type": "null"
|
|
828
|
+
}
|
|
829
|
+
]
|
|
830
|
+
},
|
|
831
|
+
"headRunStatus": {
|
|
832
|
+
"type": "string",
|
|
833
|
+
"enum": [
|
|
834
|
+
"available",
|
|
835
|
+
"unbound",
|
|
836
|
+
"not_retained"
|
|
837
|
+
]
|
|
838
|
+
},
|
|
839
|
+
"sessions": {
|
|
840
|
+
"type": "array",
|
|
841
|
+
"items": {
|
|
842
|
+
"type": "object",
|
|
843
|
+
"properties": {
|
|
844
|
+
"id": {
|
|
845
|
+
"type": "string",
|
|
846
|
+
"minLength": 1,
|
|
847
|
+
"description": "Session id."
|
|
848
|
+
},
|
|
849
|
+
"threadId": {
|
|
850
|
+
"type": "string",
|
|
851
|
+
"minLength": 1,
|
|
852
|
+
"description": "Thread the session belongs to."
|
|
853
|
+
},
|
|
854
|
+
"harnessId": {
|
|
855
|
+
"type": "string",
|
|
856
|
+
"minLength": 1,
|
|
857
|
+
"description": "Harness the session is bound to."
|
|
858
|
+
},
|
|
859
|
+
"nativeSessionId": {
|
|
860
|
+
"type": [
|
|
861
|
+
"string",
|
|
862
|
+
"null"
|
|
863
|
+
],
|
|
864
|
+
"default": null,
|
|
865
|
+
"description": "The vendor CLI session id; null when none exists."
|
|
866
|
+
},
|
|
867
|
+
"observedModel": {
|
|
868
|
+
"type": [
|
|
869
|
+
"string",
|
|
870
|
+
"null"
|
|
871
|
+
],
|
|
872
|
+
"default": null,
|
|
873
|
+
"description": "Model last observed on the session's stream."
|
|
874
|
+
},
|
|
875
|
+
"profileId": {
|
|
876
|
+
"anyOf": [
|
|
877
|
+
{
|
|
878
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
"type": "null"
|
|
882
|
+
}
|
|
883
|
+
],
|
|
884
|
+
"description": "Credential profile the vendor session was created under; resume never crosses profiles (null = engine-default credentials).",
|
|
885
|
+
"default": null
|
|
886
|
+
},
|
|
887
|
+
"state": {
|
|
888
|
+
"type": "string",
|
|
889
|
+
"enum": [
|
|
890
|
+
"live",
|
|
891
|
+
"stale",
|
|
892
|
+
"rebound"
|
|
893
|
+
],
|
|
894
|
+
"default": "live",
|
|
895
|
+
"description": "Session cache state: live, stale, or rebound."
|
|
896
|
+
}
|
|
897
|
+
},
|
|
898
|
+
"required": [
|
|
899
|
+
"id",
|
|
900
|
+
"threadId",
|
|
901
|
+
"harnessId"
|
|
902
|
+
],
|
|
903
|
+
"additionalProperties": false,
|
|
904
|
+
"description": "Control-plane projection of a vendor CLI session bound to a thread."
|
|
905
|
+
},
|
|
906
|
+
"maxItems": 16
|
|
907
|
+
},
|
|
908
|
+
"sessionsComplete": {
|
|
909
|
+
"type": "boolean"
|
|
910
|
+
}
|
|
911
|
+
},
|
|
912
|
+
"required": [
|
|
913
|
+
"thread",
|
|
914
|
+
"latestTurnId",
|
|
915
|
+
"latestOrdinal",
|
|
916
|
+
"latestAdmission",
|
|
917
|
+
"headRun",
|
|
918
|
+
"headRunStatus",
|
|
919
|
+
"sessions",
|
|
920
|
+
"sessionsComplete"
|
|
921
|
+
],
|
|
922
|
+
"additionalProperties": false
|
|
923
|
+
},
|
|
924
|
+
"turns": {
|
|
925
|
+
"type": "array",
|
|
926
|
+
"items": {
|
|
927
|
+
"type": "object",
|
|
928
|
+
"properties": {
|
|
929
|
+
"id": {
|
|
930
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestAdmission/anyOf/0/properties/id"
|
|
931
|
+
},
|
|
932
|
+
"threadId": {
|
|
933
|
+
"type": "string",
|
|
934
|
+
"minLength": 1,
|
|
935
|
+
"description": "Thread the turn belongs to."
|
|
936
|
+
},
|
|
937
|
+
"runId": {
|
|
938
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestAdmission/anyOf/0/properties/runId"
|
|
939
|
+
},
|
|
940
|
+
"parentRunId": {
|
|
941
|
+
"anyOf": [
|
|
942
|
+
{
|
|
943
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
944
|
+
},
|
|
945
|
+
{
|
|
946
|
+
"type": "null"
|
|
947
|
+
}
|
|
948
|
+
],
|
|
949
|
+
"description": "Run this turn follows up on, when any.",
|
|
950
|
+
"default": null
|
|
951
|
+
},
|
|
952
|
+
"answersPlanRunId": {
|
|
953
|
+
"anyOf": [
|
|
954
|
+
{
|
|
955
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
"type": "null"
|
|
959
|
+
}
|
|
960
|
+
],
|
|
961
|
+
"description": "Plan run whose open questions this follow-up turn answers.",
|
|
962
|
+
"default": null
|
|
963
|
+
},
|
|
964
|
+
"planRunId": {
|
|
965
|
+
"anyOf": [
|
|
966
|
+
{
|
|
967
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
968
|
+
},
|
|
969
|
+
{
|
|
970
|
+
"type": "null"
|
|
971
|
+
}
|
|
972
|
+
],
|
|
973
|
+
"description": "Set when this turn implements an approved plan from an earlier run.",
|
|
974
|
+
"default": null
|
|
975
|
+
},
|
|
976
|
+
"planHash": {
|
|
977
|
+
"type": [
|
|
978
|
+
"string",
|
|
979
|
+
"null"
|
|
980
|
+
],
|
|
981
|
+
"default": null,
|
|
982
|
+
"description": "SHA-256 of the frozen plan bytes this Implement turn materialized (INV-081); null on non-Implement/legacy turns (QA-046)."
|
|
983
|
+
},
|
|
984
|
+
"planReadinessOverridden": {
|
|
985
|
+
"type": "boolean",
|
|
986
|
+
"default": false,
|
|
987
|
+
"description": "True when the operator implemented a not-ready plan over open questions (INV-081); recorded for provenance, rendered on the card (QA-046)."
|
|
988
|
+
},
|
|
989
|
+
"kind": {
|
|
990
|
+
"type": "string",
|
|
991
|
+
"enum": [
|
|
992
|
+
"initial",
|
|
993
|
+
"followup",
|
|
994
|
+
"decision"
|
|
995
|
+
],
|
|
996
|
+
"description": "Kind of thread turn: the initial message, a followup, or an operator decision turn.",
|
|
997
|
+
"default": "followup"
|
|
998
|
+
},
|
|
999
|
+
"prompt": {
|
|
1000
|
+
"type": "string",
|
|
1001
|
+
"default": "",
|
|
1002
|
+
"description": "The user's message for this turn."
|
|
1003
|
+
},
|
|
1004
|
+
"enqueueError": {
|
|
1005
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestAdmission/anyOf/0/properties/enqueueError"
|
|
1006
|
+
},
|
|
1007
|
+
"continuity": {
|
|
1008
|
+
"anyOf": [
|
|
1009
|
+
{
|
|
1010
|
+
"type": "object",
|
|
1011
|
+
"properties": {
|
|
1012
|
+
"kind": {
|
|
1013
|
+
"type": "string",
|
|
1014
|
+
"enum": [
|
|
1015
|
+
"native_resume",
|
|
1016
|
+
"packet",
|
|
1017
|
+
"fresh"
|
|
1018
|
+
],
|
|
1019
|
+
"description": "How a turn's lane was continued: native_resume (the lane's own vendor session already held the delta), packet (a continuation packet hydrated a lane switch/gap), or fresh (nothing to carry — the thread's first turn on any lane)."
|
|
1020
|
+
},
|
|
1021
|
+
"packetTurns": {
|
|
1022
|
+
"type": "integer",
|
|
1023
|
+
"minimum": 0,
|
|
1024
|
+
"default": 0,
|
|
1025
|
+
"description": "Delta turns carried in the continuation packet (0 for native_resume/fresh)."
|
|
1026
|
+
},
|
|
1027
|
+
"summarized": {
|
|
1028
|
+
"type": "boolean",
|
|
1029
|
+
"default": false,
|
|
1030
|
+
"description": "True when the packet collapsed an older prefix (mechanical fallback)."
|
|
1031
|
+
},
|
|
1032
|
+
"laneSwitchedFrom": {
|
|
1033
|
+
"anyOf": [
|
|
1034
|
+
{
|
|
1035
|
+
"type": "object",
|
|
1036
|
+
"properties": {
|
|
1037
|
+
"harness": {
|
|
1038
|
+
"type": "string",
|
|
1039
|
+
"description": "Harness of the lane switched away from."
|
|
1040
|
+
},
|
|
1041
|
+
"profileId": {
|
|
1042
|
+
"type": [
|
|
1043
|
+
"string",
|
|
1044
|
+
"null"
|
|
1045
|
+
],
|
|
1046
|
+
"default": null,
|
|
1047
|
+
"description": "Profile of the lane switched away from (null = engine default)."
|
|
1048
|
+
}
|
|
1049
|
+
},
|
|
1050
|
+
"required": [
|
|
1051
|
+
"harness"
|
|
1052
|
+
],
|
|
1053
|
+
"additionalProperties": false
|
|
1054
|
+
},
|
|
1055
|
+
{
|
|
1056
|
+
"type": "null"
|
|
1057
|
+
}
|
|
1058
|
+
],
|
|
1059
|
+
"default": null,
|
|
1060
|
+
"description": "The lane this turn switched away from; null for an in-lane continuation."
|
|
1061
|
+
}
|
|
1062
|
+
},
|
|
1063
|
+
"required": [
|
|
1064
|
+
"kind"
|
|
1065
|
+
],
|
|
1066
|
+
"additionalProperties": false
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
"type": "null"
|
|
1070
|
+
}
|
|
1071
|
+
],
|
|
1072
|
+
"default": null,
|
|
1073
|
+
"description": "How this turn's lane was continued (native resume / packet / fresh); null until stamped."
|
|
1074
|
+
},
|
|
1075
|
+
"createdAt": {
|
|
1076
|
+
"type": "string",
|
|
1077
|
+
"description": "When the turn was created."
|
|
1078
|
+
},
|
|
1079
|
+
"ordinal": {
|
|
1080
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestOrdinal/anyOf/0"
|
|
1081
|
+
},
|
|
1082
|
+
"revision": {
|
|
1083
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/revision"
|
|
1084
|
+
},
|
|
1085
|
+
"promptInfo": {
|
|
1086
|
+
"type": "object",
|
|
1087
|
+
"properties": {
|
|
1088
|
+
"textBytes": {
|
|
1089
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestOrdinal/anyOf/0"
|
|
1090
|
+
},
|
|
1091
|
+
"totalTextBytes": {
|
|
1092
|
+
"anyOf": [
|
|
1093
|
+
{
|
|
1094
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestOrdinal/anyOf/0"
|
|
1095
|
+
},
|
|
1096
|
+
{
|
|
1097
|
+
"type": "null"
|
|
1098
|
+
}
|
|
1099
|
+
],
|
|
1100
|
+
"description": "Complete redacted UTF-8 length, only when known; never an estimated remainder."
|
|
1101
|
+
},
|
|
1102
|
+
"truncated": {
|
|
1103
|
+
"type": "boolean"
|
|
1104
|
+
}
|
|
1105
|
+
},
|
|
1106
|
+
"required": [
|
|
1107
|
+
"textBytes",
|
|
1108
|
+
"totalTextBytes",
|
|
1109
|
+
"truncated"
|
|
1110
|
+
],
|
|
1111
|
+
"additionalProperties": false
|
|
1112
|
+
},
|
|
1113
|
+
"run": {
|
|
1114
|
+
"anyOf": [
|
|
1115
|
+
{
|
|
1116
|
+
"type": "object",
|
|
1117
|
+
"properties": {
|
|
1118
|
+
"state": {
|
|
1119
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestAdmission/anyOf/0/properties/state/anyOf/0"
|
|
1120
|
+
},
|
|
1121
|
+
"mode": {
|
|
1122
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/mode"
|
|
1123
|
+
},
|
|
1124
|
+
"strategy": {
|
|
1125
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/strategy"
|
|
1126
|
+
},
|
|
1127
|
+
"n": {
|
|
1128
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/n"
|
|
1129
|
+
},
|
|
1130
|
+
"result": {
|
|
1131
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/result"
|
|
1132
|
+
},
|
|
1133
|
+
"outcomeFacts": {
|
|
1134
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/outcomeFacts"
|
|
1135
|
+
},
|
|
1136
|
+
"spendUsd": {
|
|
1137
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/spendUsd"
|
|
1138
|
+
},
|
|
1139
|
+
"outputReadyState": {
|
|
1140
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/outputReadyState"
|
|
1141
|
+
},
|
|
1142
|
+
"waitingOnUser": {
|
|
1143
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/waitingOnUser"
|
|
1144
|
+
},
|
|
1145
|
+
"finishedAt": {
|
|
1146
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/finishedAt"
|
|
1147
|
+
},
|
|
1148
|
+
"delegation": {
|
|
1149
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/delegation"
|
|
1150
|
+
},
|
|
1151
|
+
"delegatedChildRunIds": {
|
|
1152
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/delegatedChildRunIds"
|
|
1153
|
+
},
|
|
1154
|
+
"runDir": {
|
|
1155
|
+
"type": "string",
|
|
1156
|
+
"description": "On-disk run artifact directory."
|
|
1157
|
+
},
|
|
1158
|
+
"authRoute": {
|
|
1159
|
+
"anyOf": [
|
|
1160
|
+
{
|
|
1161
|
+
"type": "object",
|
|
1162
|
+
"properties": {
|
|
1163
|
+
"requested": {
|
|
1164
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/authPreference"
|
|
1165
|
+
},
|
|
1166
|
+
"effective": {
|
|
1167
|
+
"anyOf": [
|
|
1168
|
+
{
|
|
1169
|
+
"type": "string",
|
|
1170
|
+
"enum": [
|
|
1171
|
+
"local_session",
|
|
1172
|
+
"api_key",
|
|
1173
|
+
"unknown"
|
|
1174
|
+
],
|
|
1175
|
+
"description": "Auth mode a route runs under: a native local session, an API key, or unknown."
|
|
1176
|
+
},
|
|
1177
|
+
{
|
|
1178
|
+
"type": "null"
|
|
1179
|
+
}
|
|
1180
|
+
],
|
|
1181
|
+
"description": "Auth mode a route runs under: a native local session, an API key, or unknown.",
|
|
1182
|
+
"default": null
|
|
1183
|
+
},
|
|
1184
|
+
"source": {
|
|
1185
|
+
"anyOf": [
|
|
1186
|
+
{
|
|
1187
|
+
"type": "string",
|
|
1188
|
+
"enum": [
|
|
1189
|
+
"native_session",
|
|
1190
|
+
"oauth_token_env",
|
|
1191
|
+
"api_key_env",
|
|
1192
|
+
"api_key_flag",
|
|
1193
|
+
"provider_auth_file",
|
|
1194
|
+
"none"
|
|
1195
|
+
],
|
|
1196
|
+
"description": "Concrete credential source used or probed by a harness."
|
|
1197
|
+
},
|
|
1198
|
+
{
|
|
1199
|
+
"type": "null"
|
|
1200
|
+
}
|
|
1201
|
+
],
|
|
1202
|
+
"description": "Concrete credential source used or probed by a harness.",
|
|
1203
|
+
"default": null
|
|
1204
|
+
},
|
|
1205
|
+
"reason": {
|
|
1206
|
+
"type": "string",
|
|
1207
|
+
"enum": [
|
|
1208
|
+
"as_requested",
|
|
1209
|
+
"native_first",
|
|
1210
|
+
"no_native_session_fallback",
|
|
1211
|
+
"requested_route_unavailable",
|
|
1212
|
+
"undisclosed"
|
|
1213
|
+
],
|
|
1214
|
+
"description": "Deterministic reason for the effective auth route: as_requested, native_first (auto, INV-061), no_native_session_fallback (auto downgraded to api_key), requested_route_unavailable (explicit preference contradicted), or undisclosed."
|
|
1215
|
+
},
|
|
1216
|
+
"harnessId": {
|
|
1217
|
+
"type": [
|
|
1218
|
+
"string",
|
|
1219
|
+
"null"
|
|
1220
|
+
],
|
|
1221
|
+
"default": null
|
|
1222
|
+
},
|
|
1223
|
+
"attemptId": {
|
|
1224
|
+
"type": [
|
|
1225
|
+
"string",
|
|
1226
|
+
"null"
|
|
1227
|
+
],
|
|
1228
|
+
"default": null
|
|
1229
|
+
},
|
|
1230
|
+
"profileId": {
|
|
1231
|
+
"type": [
|
|
1232
|
+
"string",
|
|
1233
|
+
"null"
|
|
1234
|
+
],
|
|
1235
|
+
"default": null,
|
|
1236
|
+
"description": "Credential profile the deciding attempt ran under; null = engine-default credentials."
|
|
1237
|
+
},
|
|
1238
|
+
"modelMismatch": {
|
|
1239
|
+
"anyOf": [
|
|
1240
|
+
{
|
|
1241
|
+
"type": "object",
|
|
1242
|
+
"properties": {
|
|
1243
|
+
"requested": {
|
|
1244
|
+
"type": "string"
|
|
1245
|
+
},
|
|
1246
|
+
"observed": {
|
|
1247
|
+
"type": "string"
|
|
1248
|
+
}
|
|
1249
|
+
},
|
|
1250
|
+
"required": [
|
|
1251
|
+
"requested",
|
|
1252
|
+
"observed"
|
|
1253
|
+
],
|
|
1254
|
+
"additionalProperties": false
|
|
1255
|
+
},
|
|
1256
|
+
{
|
|
1257
|
+
"type": "null"
|
|
1258
|
+
}
|
|
1259
|
+
],
|
|
1260
|
+
"default": null,
|
|
1261
|
+
"description": "Requested-vs-observed model mismatch; null when none."
|
|
1262
|
+
}
|
|
1263
|
+
},
|
|
1264
|
+
"required": [
|
|
1265
|
+
"requested",
|
|
1266
|
+
"reason"
|
|
1267
|
+
],
|
|
1268
|
+
"additionalProperties": false
|
|
1269
|
+
},
|
|
1270
|
+
{
|
|
1271
|
+
"type": "null"
|
|
1272
|
+
}
|
|
1273
|
+
],
|
|
1274
|
+
"description": "Auth route receipt (requested/effective/source/reason + disclosing attempt), projected verbatim from telemetry; null when unavailable."
|
|
1275
|
+
},
|
|
1276
|
+
"harnesses": {
|
|
1277
|
+
"type": "array",
|
|
1278
|
+
"items": {
|
|
1279
|
+
"type": "string"
|
|
1280
|
+
},
|
|
1281
|
+
"description": "Harness pool the run used."
|
|
1282
|
+
},
|
|
1283
|
+
"primaryHarness": {
|
|
1284
|
+
"type": "string",
|
|
1285
|
+
"description": "Primary harness the run preferred."
|
|
1286
|
+
},
|
|
1287
|
+
"startedAt": {
|
|
1288
|
+
"type": "string",
|
|
1289
|
+
"description": "When the run started."
|
|
1290
|
+
},
|
|
1291
|
+
"createdAt": {
|
|
1292
|
+
"type": "string",
|
|
1293
|
+
"description": "When the run was created."
|
|
1294
|
+
},
|
|
1295
|
+
"spendEstimated": {
|
|
1296
|
+
"type": "boolean",
|
|
1297
|
+
"description": "True when settled cash is estimated rather than exact."
|
|
1298
|
+
},
|
|
1299
|
+
"route": {
|
|
1300
|
+
"anyOf": [
|
|
1301
|
+
{
|
|
1302
|
+
"type": "object",
|
|
1303
|
+
"properties": {
|
|
1304
|
+
"requestedModel": {
|
|
1305
|
+
"type": [
|
|
1306
|
+
"string",
|
|
1307
|
+
"null"
|
|
1308
|
+
],
|
|
1309
|
+
"default": null,
|
|
1310
|
+
"description": "Model requested for the run."
|
|
1311
|
+
},
|
|
1312
|
+
"observedModel": {
|
|
1313
|
+
"type": [
|
|
1314
|
+
"string",
|
|
1315
|
+
"null"
|
|
1316
|
+
],
|
|
1317
|
+
"default": null,
|
|
1318
|
+
"description": "Model the harness stream actually reported."
|
|
1319
|
+
},
|
|
1320
|
+
"harnessId": {
|
|
1321
|
+
"type": [
|
|
1322
|
+
"string",
|
|
1323
|
+
"null"
|
|
1324
|
+
],
|
|
1325
|
+
"default": null,
|
|
1326
|
+
"description": "Harness that ran the final attempt."
|
|
1327
|
+
},
|
|
1328
|
+
"verified": {
|
|
1329
|
+
"type": "boolean",
|
|
1330
|
+
"default": false,
|
|
1331
|
+
"description": "True only when an observed model was actually reported by the harness stream — never inferred from the request."
|
|
1332
|
+
}
|
|
1333
|
+
},
|
|
1334
|
+
"additionalProperties": false,
|
|
1335
|
+
"description": "Run-level route evidence projected from telemetry (requested vs observed model)."
|
|
1336
|
+
},
|
|
1337
|
+
{
|
|
1338
|
+
"type": "null"
|
|
1339
|
+
}
|
|
1340
|
+
],
|
|
1341
|
+
"description": "Route evidence from telemetry; null when no telemetry exists (legacy runs).",
|
|
1342
|
+
"default": null
|
|
1343
|
+
},
|
|
1344
|
+
"budget": {
|
|
1345
|
+
"type": "object",
|
|
1346
|
+
"properties": {
|
|
1347
|
+
"cashKnowledge": {
|
|
1348
|
+
"type": "string",
|
|
1349
|
+
"enum": [
|
|
1350
|
+
"exact",
|
|
1351
|
+
"estimated",
|
|
1352
|
+
"unknown"
|
|
1353
|
+
],
|
|
1354
|
+
"description": "Cash certainty from the ledger; explicit unknown keeps spendUsd null independently of valuation."
|
|
1355
|
+
},
|
|
1356
|
+
"paidBudget": {
|
|
1357
|
+
"anyOf": [
|
|
1358
|
+
{
|
|
1359
|
+
"type": "object",
|
|
1360
|
+
"properties": {
|
|
1361
|
+
"kind": {
|
|
1362
|
+
"type": "string",
|
|
1363
|
+
"const": "unlimited"
|
|
1364
|
+
}
|
|
1365
|
+
},
|
|
1366
|
+
"required": [
|
|
1367
|
+
"kind"
|
|
1368
|
+
],
|
|
1369
|
+
"additionalProperties": false
|
|
1370
|
+
},
|
|
1371
|
+
{
|
|
1372
|
+
"type": "object",
|
|
1373
|
+
"properties": {
|
|
1374
|
+
"kind": {
|
|
1375
|
+
"type": "string",
|
|
1376
|
+
"const": "finite"
|
|
1377
|
+
},
|
|
1378
|
+
"maxUsd": {
|
|
1379
|
+
"type": "number",
|
|
1380
|
+
"minimum": 0
|
|
1381
|
+
}
|
|
1382
|
+
},
|
|
1383
|
+
"required": [
|
|
1384
|
+
"kind",
|
|
1385
|
+
"maxUsd"
|
|
1386
|
+
],
|
|
1387
|
+
"additionalProperties": false
|
|
1388
|
+
}
|
|
1389
|
+
],
|
|
1390
|
+
"description": "Incremental-cash budget: explicitly unlimited or a finite non-negative USD cap.",
|
|
1391
|
+
"default": {
|
|
1392
|
+
"kind": "unlimited"
|
|
1393
|
+
}
|
|
1394
|
+
},
|
|
1395
|
+
"spendUsd": {
|
|
1396
|
+
"type": [
|
|
1397
|
+
"number",
|
|
1398
|
+
"null"
|
|
1399
|
+
],
|
|
1400
|
+
"default": null,
|
|
1401
|
+
"description": "CASH spend so far in USD; null when unknown."
|
|
1402
|
+
},
|
|
1403
|
+
"controllableSpendUsd": {
|
|
1404
|
+
"type": [
|
|
1405
|
+
"number",
|
|
1406
|
+
"null"
|
|
1407
|
+
],
|
|
1408
|
+
"default": null,
|
|
1409
|
+
"description": "Cash governed by the finite cap: settled amounts on routes Claudexor controls; null when that cash is unknown. spendUsd can still be null when an included subscription reports no actual debit."
|
|
1410
|
+
},
|
|
1411
|
+
"valuationUsd": {
|
|
1412
|
+
"type": [
|
|
1413
|
+
"number",
|
|
1414
|
+
"null"
|
|
1415
|
+
],
|
|
1416
|
+
"default": null,
|
|
1417
|
+
"description": "Subscription valuation in USD (separate from billed cash); null when unknown — never a fabricated $0 (QA-023c)."
|
|
1418
|
+
},
|
|
1419
|
+
"valuationKnowledge": {
|
|
1420
|
+
"type": "string",
|
|
1421
|
+
"enum": [
|
|
1422
|
+
"exact",
|
|
1423
|
+
"estimated",
|
|
1424
|
+
"unknown"
|
|
1425
|
+
],
|
|
1426
|
+
"default": "unknown",
|
|
1427
|
+
"description": "Confidence of valuationUsd: 'estimated' when token-derived, 'unknown' when no usage was reported (valuationUsd is then null), 'exact' when natively priced."
|
|
1428
|
+
},
|
|
1429
|
+
"remainingUsd": {
|
|
1430
|
+
"type": [
|
|
1431
|
+
"number",
|
|
1432
|
+
"null"
|
|
1433
|
+
],
|
|
1434
|
+
"default": null,
|
|
1435
|
+
"description": "Remaining finite cap after controllableSpendUsd; null when no cap or unknown."
|
|
1436
|
+
},
|
|
1437
|
+
"estimated": {
|
|
1438
|
+
"type": "boolean",
|
|
1439
|
+
"default": false,
|
|
1440
|
+
"description": "True when settled cash is estimated rather than exact; subscription valuation confidence is reported separately."
|
|
1441
|
+
},
|
|
1442
|
+
"source": {
|
|
1443
|
+
"type": "string",
|
|
1444
|
+
"enum": [
|
|
1445
|
+
"decision",
|
|
1446
|
+
"events",
|
|
1447
|
+
"settings",
|
|
1448
|
+
"unknown"
|
|
1449
|
+
],
|
|
1450
|
+
"default": "unknown",
|
|
1451
|
+
"description": "Where the snapshot came from: the decision record, live events, settings, or unknown."
|
|
1452
|
+
},
|
|
1453
|
+
"evidence": {
|
|
1454
|
+
"type": "string",
|
|
1455
|
+
"enum": [
|
|
1456
|
+
"complete",
|
|
1457
|
+
"incomplete",
|
|
1458
|
+
"unavailable"
|
|
1459
|
+
],
|
|
1460
|
+
"description": "Integrity of the canonical events this spend fallback read: 'incomplete' when malformed/non-object event lines were skipped, 'unavailable' when the events file was unreadable, else 'complete'. A non-complete value means the projected spend may disagree with disk truth.",
|
|
1461
|
+
"default": "complete"
|
|
1462
|
+
}
|
|
1463
|
+
},
|
|
1464
|
+
"additionalProperties": false,
|
|
1465
|
+
"description": "Budget snapshot for a run: cap, spend, and provenance.",
|
|
1466
|
+
"default": {}
|
|
1467
|
+
},
|
|
1468
|
+
"failure": {
|
|
1469
|
+
"anyOf": [
|
|
1470
|
+
{
|
|
1471
|
+
"type": "object",
|
|
1472
|
+
"properties": {
|
|
1473
|
+
"requestRefusal": {
|
|
1474
|
+
"anyOf": [
|
|
1475
|
+
{
|
|
1476
|
+
"type": "object",
|
|
1477
|
+
"properties": {
|
|
1478
|
+
"scope": {
|
|
1479
|
+
"type": "string",
|
|
1480
|
+
"const": "turn_text",
|
|
1481
|
+
"description": "All text input items in one native turn; separate instructions are excluded."
|
|
1482
|
+
},
|
|
1483
|
+
"unit": {
|
|
1484
|
+
"type": "string",
|
|
1485
|
+
"const": "unicode_scalars"
|
|
1486
|
+
},
|
|
1487
|
+
"limit": {
|
|
1488
|
+
"anyOf": [
|
|
1489
|
+
{
|
|
1490
|
+
"type": "integer",
|
|
1491
|
+
"exclusiveMinimum": 0,
|
|
1492
|
+
"minimum": -9007199254740991,
|
|
1493
|
+
"maximum": 9007199254740991
|
|
1494
|
+
},
|
|
1495
|
+
{
|
|
1496
|
+
"type": "null"
|
|
1497
|
+
}
|
|
1498
|
+
]
|
|
1499
|
+
},
|
|
1500
|
+
"source": {
|
|
1501
|
+
"type": "string",
|
|
1502
|
+
"minLength": 1
|
|
1503
|
+
},
|
|
1504
|
+
"kind": {
|
|
1505
|
+
"type": "string",
|
|
1506
|
+
"const": "input_too_large"
|
|
1507
|
+
},
|
|
1508
|
+
"actual": {
|
|
1509
|
+
"anyOf": [
|
|
1510
|
+
{
|
|
1511
|
+
"type": "integer",
|
|
1512
|
+
"minimum": -9007199254740991,
|
|
1513
|
+
"maximum": 9007199254740991
|
|
1514
|
+
},
|
|
1515
|
+
{
|
|
1516
|
+
"type": "null"
|
|
1517
|
+
}
|
|
1518
|
+
]
|
|
1519
|
+
},
|
|
1520
|
+
"native_code": {
|
|
1521
|
+
"type": "string",
|
|
1522
|
+
"minLength": 1
|
|
1523
|
+
}
|
|
1524
|
+
},
|
|
1525
|
+
"required": [
|
|
1526
|
+
"scope",
|
|
1527
|
+
"unit",
|
|
1528
|
+
"limit",
|
|
1529
|
+
"source",
|
|
1530
|
+
"kind",
|
|
1531
|
+
"actual",
|
|
1532
|
+
"native_code"
|
|
1533
|
+
],
|
|
1534
|
+
"additionalProperties": false
|
|
1535
|
+
},
|
|
1536
|
+
{
|
|
1537
|
+
"type": "object",
|
|
1538
|
+
"properties": {
|
|
1539
|
+
"kind": {
|
|
1540
|
+
"type": "string",
|
|
1541
|
+
"const": "vendor_cli_too_old"
|
|
1542
|
+
},
|
|
1543
|
+
"native_code": {
|
|
1544
|
+
"type": "string",
|
|
1545
|
+
"const": "claude_code_version_too_old"
|
|
1546
|
+
},
|
|
1547
|
+
"source": {
|
|
1548
|
+
"type": "string",
|
|
1549
|
+
"const": "claude_stdout"
|
|
1550
|
+
},
|
|
1551
|
+
"binary_path": {
|
|
1552
|
+
"anyOf": [
|
|
1553
|
+
{
|
|
1554
|
+
"type": "string",
|
|
1555
|
+
"minLength": 1
|
|
1556
|
+
},
|
|
1557
|
+
{
|
|
1558
|
+
"type": "null"
|
|
1559
|
+
}
|
|
1560
|
+
]
|
|
1561
|
+
},
|
|
1562
|
+
"installed_version": {
|
|
1563
|
+
"anyOf": [
|
|
1564
|
+
{
|
|
1565
|
+
"type": "string",
|
|
1566
|
+
"minLength": 1
|
|
1567
|
+
},
|
|
1568
|
+
{
|
|
1569
|
+
"type": "null"
|
|
1570
|
+
}
|
|
1571
|
+
]
|
|
1572
|
+
}
|
|
1573
|
+
},
|
|
1574
|
+
"required": [
|
|
1575
|
+
"kind",
|
|
1576
|
+
"native_code",
|
|
1577
|
+
"source",
|
|
1578
|
+
"binary_path",
|
|
1579
|
+
"installed_version"
|
|
1580
|
+
],
|
|
1581
|
+
"additionalProperties": false
|
|
1582
|
+
},
|
|
1583
|
+
{
|
|
1584
|
+
"type": "object",
|
|
1585
|
+
"properties": {
|
|
1586
|
+
"kind": {
|
|
1587
|
+
"type": "string",
|
|
1588
|
+
"const": "credential_source_unconfirmed"
|
|
1589
|
+
},
|
|
1590
|
+
"native_code": {
|
|
1591
|
+
"type": "string",
|
|
1592
|
+
"const": "grok_credential_source_unconfirmed"
|
|
1593
|
+
},
|
|
1594
|
+
"source": {
|
|
1595
|
+
"type": "string",
|
|
1596
|
+
"const": "grok_init"
|
|
1597
|
+
},
|
|
1598
|
+
"reported_source": {
|
|
1599
|
+
"type": "string",
|
|
1600
|
+
"maxLength": 80,
|
|
1601
|
+
"description": "Redacted credential source the vendor's startup frame reported."
|
|
1602
|
+
}
|
|
1603
|
+
},
|
|
1604
|
+
"required": [
|
|
1605
|
+
"kind",
|
|
1606
|
+
"native_code",
|
|
1607
|
+
"source",
|
|
1608
|
+
"reported_source"
|
|
1609
|
+
],
|
|
1610
|
+
"additionalProperties": false
|
|
1611
|
+
}
|
|
1612
|
+
],
|
|
1613
|
+
"description": "Vendor-attested request refusal that stops retries and account rotation on its harness; input, executable and credential-source causes carry their own evidence."
|
|
1614
|
+
},
|
|
1615
|
+
"captureFailure": {
|
|
1616
|
+
"type": "object",
|
|
1617
|
+
"properties": {
|
|
1618
|
+
"code": {
|
|
1619
|
+
"type": "string",
|
|
1620
|
+
"enum": [
|
|
1621
|
+
"capture_output_exceeded",
|
|
1622
|
+
"capture_output_incomplete",
|
|
1623
|
+
"capture_preview_truncated",
|
|
1624
|
+
"capture_failed"
|
|
1625
|
+
]
|
|
1626
|
+
},
|
|
1627
|
+
"message": {
|
|
1628
|
+
"type": "string"
|
|
1629
|
+
},
|
|
1630
|
+
"causeCode": {
|
|
1631
|
+
"type": "string"
|
|
1632
|
+
},
|
|
1633
|
+
"bufferBudgetBytes": {
|
|
1634
|
+
"type": "integer",
|
|
1635
|
+
"minimum": 0
|
|
1636
|
+
},
|
|
1637
|
+
"stream": {
|
|
1638
|
+
"type": "string",
|
|
1639
|
+
"enum": [
|
|
1640
|
+
"stdout",
|
|
1641
|
+
"stderr"
|
|
1642
|
+
]
|
|
1643
|
+
},
|
|
1644
|
+
"drain": {
|
|
1645
|
+
"type": "string",
|
|
1646
|
+
"const": "truncated"
|
|
1647
|
+
},
|
|
1648
|
+
"cleanup": {
|
|
1649
|
+
"type": "object",
|
|
1650
|
+
"properties": {
|
|
1651
|
+
"code": {
|
|
1652
|
+
"type": [
|
|
1653
|
+
"string",
|
|
1654
|
+
"null"
|
|
1655
|
+
]
|
|
1656
|
+
},
|
|
1657
|
+
"message": {
|
|
1658
|
+
"type": "string"
|
|
1659
|
+
}
|
|
1660
|
+
},
|
|
1661
|
+
"required": [
|
|
1662
|
+
"code",
|
|
1663
|
+
"message"
|
|
1664
|
+
],
|
|
1665
|
+
"additionalProperties": false
|
|
1666
|
+
}
|
|
1667
|
+
},
|
|
1668
|
+
"required": [
|
|
1669
|
+
"code",
|
|
1670
|
+
"message"
|
|
1671
|
+
],
|
|
1672
|
+
"additionalProperties": false
|
|
1673
|
+
},
|
|
1674
|
+
"phase": {
|
|
1675
|
+
"type": "string",
|
|
1676
|
+
"default": "unknown",
|
|
1677
|
+
"description": "Pipeline phase where the failure happened."
|
|
1678
|
+
},
|
|
1679
|
+
"category": {
|
|
1680
|
+
"type": "string",
|
|
1681
|
+
"enum": [
|
|
1682
|
+
"validation",
|
|
1683
|
+
"project",
|
|
1684
|
+
"auth",
|
|
1685
|
+
"harness_unavailable",
|
|
1686
|
+
"harness_error",
|
|
1687
|
+
"config_error",
|
|
1688
|
+
"budget",
|
|
1689
|
+
"policy",
|
|
1690
|
+
"cancelled",
|
|
1691
|
+
"internal",
|
|
1692
|
+
"unknown"
|
|
1693
|
+
],
|
|
1694
|
+
"default": "unknown",
|
|
1695
|
+
"description": "Typed failure category (validation, project, auth, harness, config, budget, policy, cancelled, internal, unknown). config_error is a settings/routing misconfiguration (e.g. quality routing with no comparable tier), corrected by changing configuration, not by re-auth or waiting for a harness."
|
|
1696
|
+
},
|
|
1697
|
+
"code": {
|
|
1698
|
+
"anyOf": [
|
|
1699
|
+
{
|
|
1700
|
+
"type": "string",
|
|
1701
|
+
"enum": [
|
|
1702
|
+
"finite_zero",
|
|
1703
|
+
"hard_cap",
|
|
1704
|
+
"estimate_headroom",
|
|
1705
|
+
"unknown_paid_in_flight",
|
|
1706
|
+
"budget_overshoot",
|
|
1707
|
+
"cost_unverifiable",
|
|
1708
|
+
"delegation_child_drain_timeout",
|
|
1709
|
+
"subscription_window_exhausted",
|
|
1710
|
+
"credential_pool_exhausted",
|
|
1711
|
+
"input_too_large",
|
|
1712
|
+
"vendor_cli_too_old",
|
|
1713
|
+
"credential_source_unconfirmed",
|
|
1714
|
+
"delegated_home_unavailable",
|
|
1715
|
+
"delegated_confinement_unavailable",
|
|
1716
|
+
"delegated_evidence_incomplete",
|
|
1717
|
+
"access_profile_incompatible",
|
|
1718
|
+
"auxiliary_writable_roots_unsupported",
|
|
1719
|
+
"retired_access_profile"
|
|
1720
|
+
],
|
|
1721
|
+
"description": "Machine-readable failure sub-code within a RunFailure category, including historical delegated-run failures and active access-profile refusals."
|
|
1722
|
+
},
|
|
1723
|
+
{
|
|
1724
|
+
"type": "null"
|
|
1725
|
+
}
|
|
1726
|
+
],
|
|
1727
|
+
"description": "Machine-readable failure sub-code within the category; null when the category alone is sufficient. Surfaces choose remediation from this, never by parsing safeMessage.",
|
|
1728
|
+
"default": null
|
|
1729
|
+
},
|
|
1730
|
+
"harnessId": {
|
|
1731
|
+
"type": [
|
|
1732
|
+
"string",
|
|
1733
|
+
"null"
|
|
1734
|
+
],
|
|
1735
|
+
"default": null,
|
|
1736
|
+
"description": "Harness involved in the failure, when known."
|
|
1737
|
+
},
|
|
1738
|
+
"attemptId": {
|
|
1739
|
+
"type": [
|
|
1740
|
+
"string",
|
|
1741
|
+
"null"
|
|
1742
|
+
],
|
|
1743
|
+
"default": null,
|
|
1744
|
+
"description": "Attempt involved in the failure, when known."
|
|
1745
|
+
},
|
|
1746
|
+
"safeMessage": {
|
|
1747
|
+
"type": "string",
|
|
1748
|
+
"description": "Redacted human-readable failure message."
|
|
1749
|
+
},
|
|
1750
|
+
"rawDetailRef": {
|
|
1751
|
+
"type": [
|
|
1752
|
+
"string",
|
|
1753
|
+
"null"
|
|
1754
|
+
],
|
|
1755
|
+
"default": null,
|
|
1756
|
+
"description": "Artifact path holding the raw (redacted) failure detail."
|
|
1757
|
+
},
|
|
1758
|
+
"logRefs": {
|
|
1759
|
+
"type": "array",
|
|
1760
|
+
"items": {
|
|
1761
|
+
"type": "string"
|
|
1762
|
+
},
|
|
1763
|
+
"default": [],
|
|
1764
|
+
"description": "Log artifact paths relevant to the failure."
|
|
1765
|
+
},
|
|
1766
|
+
"eventRefs": {
|
|
1767
|
+
"type": "array",
|
|
1768
|
+
"items": {
|
|
1769
|
+
"type": "string"
|
|
1770
|
+
},
|
|
1771
|
+
"default": [],
|
|
1772
|
+
"description": "Event references relevant to the failure."
|
|
1773
|
+
},
|
|
1774
|
+
"runDir": {
|
|
1775
|
+
"type": [
|
|
1776
|
+
"string",
|
|
1777
|
+
"null"
|
|
1778
|
+
],
|
|
1779
|
+
"default": null,
|
|
1780
|
+
"description": "Run artifact directory."
|
|
1781
|
+
},
|
|
1782
|
+
"resetsAt": {
|
|
1783
|
+
"anyOf": [
|
|
1784
|
+
{
|
|
1785
|
+
"type": "string",
|
|
1786
|
+
"format": "date-time"
|
|
1787
|
+
},
|
|
1788
|
+
{
|
|
1789
|
+
"type": "null"
|
|
1790
|
+
}
|
|
1791
|
+
],
|
|
1792
|
+
"default": null,
|
|
1793
|
+
"description": "When the refused window reopens (a spent subscription quota window), or null when the failure has no such time. Callers schedule a retry off this field, never off safeMessage."
|
|
1794
|
+
},
|
|
1795
|
+
"vendorFailure": {
|
|
1796
|
+
"anyOf": [
|
|
1797
|
+
{
|
|
1798
|
+
"type": "object",
|
|
1799
|
+
"properties": {
|
|
1800
|
+
"code": {
|
|
1801
|
+
"anyOf": [
|
|
1802
|
+
{
|
|
1803
|
+
"type": "string",
|
|
1804
|
+
"minLength": 1,
|
|
1805
|
+
"maxLength": 128
|
|
1806
|
+
},
|
|
1807
|
+
{
|
|
1808
|
+
"type": "null"
|
|
1809
|
+
}
|
|
1810
|
+
],
|
|
1811
|
+
"description": "The vendor's own machine-readable failure code, verbatim; null when the vendor recorded an error without one."
|
|
1812
|
+
},
|
|
1813
|
+
"message": {
|
|
1814
|
+
"anyOf": [
|
|
1815
|
+
{
|
|
1816
|
+
"type": "string",
|
|
1817
|
+
"maxLength": 4000
|
|
1818
|
+
},
|
|
1819
|
+
{
|
|
1820
|
+
"type": "null"
|
|
1821
|
+
}
|
|
1822
|
+
],
|
|
1823
|
+
"description": "The vendor's own words from the same record, verbatim (redacted); null when absent."
|
|
1824
|
+
},
|
|
1825
|
+
"source": {
|
|
1826
|
+
"type": "string",
|
|
1827
|
+
"minLength": 1,
|
|
1828
|
+
"maxLength": 64,
|
|
1829
|
+
"description": "Evidence channel the code was read from (codex: `codex_rollout`). An open vocabulary: consumers display it, never branch on it."
|
|
1830
|
+
}
|
|
1831
|
+
},
|
|
1832
|
+
"required": [
|
|
1833
|
+
"code",
|
|
1834
|
+
"message",
|
|
1835
|
+
"source"
|
|
1836
|
+
],
|
|
1837
|
+
"additionalProperties": false,
|
|
1838
|
+
"description": "Vendor-typed failure evidence read from a vendor-owned machine-readable record, never parsed from prose."
|
|
1839
|
+
},
|
|
1840
|
+
{
|
|
1841
|
+
"type": "null"
|
|
1842
|
+
}
|
|
1843
|
+
],
|
|
1844
|
+
"description": "The vendor's own typed failure for the attempt this record speaks for, or null when no vendor-typed evidence exists (every harness without such a channel, and any unreadable record). Facts only: carries no remedy.",
|
|
1845
|
+
"default": null
|
|
1846
|
+
},
|
|
1847
|
+
"poolAttempts": {
|
|
1848
|
+
"type": "array",
|
|
1849
|
+
"items": {
|
|
1850
|
+
"type": "object",
|
|
1851
|
+
"properties": {
|
|
1852
|
+
"harnessId": {
|
|
1853
|
+
"type": "string",
|
|
1854
|
+
"minLength": 1,
|
|
1855
|
+
"description": "Harness the try ran on."
|
|
1856
|
+
},
|
|
1857
|
+
"profileId": {
|
|
1858
|
+
"type": [
|
|
1859
|
+
"string",
|
|
1860
|
+
"null"
|
|
1861
|
+
],
|
|
1862
|
+
"description": "Account row the try ran on; null = the harness default route."
|
|
1863
|
+
},
|
|
1864
|
+
"profileDisplayName": {
|
|
1865
|
+
"type": [
|
|
1866
|
+
"string",
|
|
1867
|
+
"null"
|
|
1868
|
+
],
|
|
1869
|
+
"description": "The row's display name at try time (redacted); null for the default route."
|
|
1870
|
+
},
|
|
1871
|
+
"requestedModel": {
|
|
1872
|
+
"type": [
|
|
1873
|
+
"string",
|
|
1874
|
+
"null"
|
|
1875
|
+
],
|
|
1876
|
+
"description": "Model the try asked for; null = the harness default model."
|
|
1877
|
+
},
|
|
1878
|
+
"attemptId": {
|
|
1879
|
+
"type": "string",
|
|
1880
|
+
"minLength": 1,
|
|
1881
|
+
"description": "Attempt the try belongs to."
|
|
1882
|
+
},
|
|
1883
|
+
"tryIndex": {
|
|
1884
|
+
"type": "integer",
|
|
1885
|
+
"minimum": 0,
|
|
1886
|
+
"description": "Zero-based try index within the attempt."
|
|
1887
|
+
},
|
|
1888
|
+
"observedAt": {
|
|
1889
|
+
"type": "string",
|
|
1890
|
+
"format": "date-time",
|
|
1891
|
+
"description": "When the try's first error was observed."
|
|
1892
|
+
},
|
|
1893
|
+
"phase": {
|
|
1894
|
+
"type": "string",
|
|
1895
|
+
"enum": [
|
|
1896
|
+
"pre_start",
|
|
1897
|
+
"pre_progress",
|
|
1898
|
+
"after_progress"
|
|
1899
|
+
],
|
|
1900
|
+
"description": "How far the try got: before a typed session start, after start but before agent progress, or after progress."
|
|
1901
|
+
},
|
|
1902
|
+
"category": {
|
|
1903
|
+
"type": "string",
|
|
1904
|
+
"enum": [
|
|
1905
|
+
"timeout",
|
|
1906
|
+
"rate_limited",
|
|
1907
|
+
"auth_failed",
|
|
1908
|
+
"capability_refused",
|
|
1909
|
+
"process_crash",
|
|
1910
|
+
"config_error",
|
|
1911
|
+
"unknown_harness_error"
|
|
1912
|
+
],
|
|
1913
|
+
"description": "Typed failure category of the try; untyped errors are unknown_harness_error."
|
|
1914
|
+
},
|
|
1915
|
+
"error": {
|
|
1916
|
+
"type": "string",
|
|
1917
|
+
"description": "The try's own error text with its original wording and whitespace, redacted."
|
|
1918
|
+
},
|
|
1919
|
+
"vendorFailure": {
|
|
1920
|
+
"anyOf": [
|
|
1921
|
+
{
|
|
1922
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/run/anyOf/0/properties/failure/anyOf/0/properties/vendorFailure/anyOf/0"
|
|
1923
|
+
},
|
|
1924
|
+
{
|
|
1925
|
+
"type": "null"
|
|
1926
|
+
}
|
|
1927
|
+
],
|
|
1928
|
+
"description": "The vendor's own typed failure for this try, when the adapter attached one."
|
|
1929
|
+
}
|
|
1930
|
+
},
|
|
1931
|
+
"required": [
|
|
1932
|
+
"harnessId",
|
|
1933
|
+
"profileId",
|
|
1934
|
+
"profileDisplayName",
|
|
1935
|
+
"requestedModel",
|
|
1936
|
+
"attemptId",
|
|
1937
|
+
"tryIndex",
|
|
1938
|
+
"observedAt",
|
|
1939
|
+
"phase",
|
|
1940
|
+
"category",
|
|
1941
|
+
"error",
|
|
1942
|
+
"vendorFailure"
|
|
1943
|
+
],
|
|
1944
|
+
"additionalProperties": false,
|
|
1945
|
+
"description": "Per-try account attribution of a failed execution try (diagnostic evidence only)."
|
|
1946
|
+
},
|
|
1947
|
+
"default": [],
|
|
1948
|
+
"description": "Every failed execution try in order, each with its own account and error text; empty when no try failed (and for records written before this field existed)."
|
|
1949
|
+
},
|
|
1950
|
+
"nextActions": {
|
|
1951
|
+
"type": "array",
|
|
1952
|
+
"items": {
|
|
1953
|
+
"type": "string"
|
|
1954
|
+
},
|
|
1955
|
+
"default": [],
|
|
1956
|
+
"description": "Suggested operator next actions."
|
|
1957
|
+
}
|
|
1958
|
+
},
|
|
1959
|
+
"required": [
|
|
1960
|
+
"safeMessage"
|
|
1961
|
+
],
|
|
1962
|
+
"additionalProperties": false,
|
|
1963
|
+
"description": "Typed failure record for a run: phase, category, evidence references, and suggested next actions."
|
|
1964
|
+
},
|
|
1965
|
+
{
|
|
1966
|
+
"type": "null"
|
|
1967
|
+
}
|
|
1968
|
+
],
|
|
1969
|
+
"description": "Typed failure info; null unless the run failed.",
|
|
1970
|
+
"default": null
|
|
1971
|
+
},
|
|
1972
|
+
"applyEligibility": {
|
|
1973
|
+
"anyOf": [
|
|
1974
|
+
{
|
|
1975
|
+
"type": "object",
|
|
1976
|
+
"properties": {
|
|
1977
|
+
"eligible": {
|
|
1978
|
+
"type": "boolean",
|
|
1979
|
+
"description": "True when the apply gate would accept this run's patch right now."
|
|
1980
|
+
},
|
|
1981
|
+
"state": {
|
|
1982
|
+
"type": [
|
|
1983
|
+
"string",
|
|
1984
|
+
"null"
|
|
1985
|
+
],
|
|
1986
|
+
"description": "The gate's apply-eligibility classification (e.g. needs_review | not_verified | no_changes | ok) when known."
|
|
1987
|
+
},
|
|
1988
|
+
"reason": {
|
|
1989
|
+
"type": [
|
|
1990
|
+
"string",
|
|
1991
|
+
"null"
|
|
1992
|
+
],
|
|
1993
|
+
"description": "The gate's refusal text when not eligible (null when eligible)."
|
|
1994
|
+
},
|
|
1995
|
+
"requiredAction": {
|
|
1996
|
+
"type": [
|
|
1997
|
+
"string",
|
|
1998
|
+
"null"
|
|
1999
|
+
],
|
|
2000
|
+
"description": "Honest guidance for what actually unblocks apply (typed operator decision, add gates, re-run, or nothing to apply)."
|
|
2001
|
+
}
|
|
2002
|
+
},
|
|
2003
|
+
"required": [
|
|
2004
|
+
"eligible",
|
|
2005
|
+
"state",
|
|
2006
|
+
"reason",
|
|
2007
|
+
"requiredAction"
|
|
2008
|
+
],
|
|
2009
|
+
"additionalProperties": false,
|
|
2010
|
+
"description": "Derived apply-gate verdict for a run's WorkProduct (single producer in the delivery gate)."
|
|
2011
|
+
},
|
|
2012
|
+
{
|
|
2013
|
+
"type": "null"
|
|
2014
|
+
}
|
|
2015
|
+
],
|
|
2016
|
+
"description": "Derived apply-gate verdict (single producer: the delivery gate); null when the run has no patch artifact.",
|
|
2017
|
+
"default": null
|
|
2018
|
+
},
|
|
2019
|
+
"requiredActions": {
|
|
2020
|
+
"type": "array",
|
|
2021
|
+
"items": {
|
|
2022
|
+
"type": "object",
|
|
2023
|
+
"properties": {
|
|
2024
|
+
"id": {
|
|
2025
|
+
"type": "string",
|
|
2026
|
+
"enum": [
|
|
2027
|
+
"provide_required_input",
|
|
2028
|
+
"complete_incomplete_work",
|
|
2029
|
+
"resolve_review_block",
|
|
2030
|
+
"fix_failed_checks",
|
|
2031
|
+
"record_operator_decision"
|
|
2032
|
+
],
|
|
2033
|
+
"description": "Stable machine id for a required operator action on a blocked terminal run."
|
|
2034
|
+
},
|
|
2035
|
+
"detail": {
|
|
2036
|
+
"type": "string",
|
|
2037
|
+
"description": "Human-readable guidance for this action (English-only, INV-141)."
|
|
2038
|
+
}
|
|
2039
|
+
},
|
|
2040
|
+
"required": [
|
|
2041
|
+
"id",
|
|
2042
|
+
"detail"
|
|
2043
|
+
],
|
|
2044
|
+
"additionalProperties": false,
|
|
2045
|
+
"description": "One typed required operator action derived from a run's terminal outcome facts."
|
|
2046
|
+
},
|
|
2047
|
+
"default": [],
|
|
2048
|
+
"description": "Stable-id required operator actions for a succeeded-but-blocked run (GH #29); empty for clean/decided/failed runs."
|
|
2049
|
+
},
|
|
2050
|
+
"planReadiness": {
|
|
2051
|
+
"anyOf": [
|
|
2052
|
+
{
|
|
2053
|
+
"type": "object",
|
|
2054
|
+
"properties": {
|
|
2055
|
+
"state": {
|
|
2056
|
+
"type": "string",
|
|
2057
|
+
"enum": [
|
|
2058
|
+
"ready",
|
|
2059
|
+
"needs_answers",
|
|
2060
|
+
"unverified"
|
|
2061
|
+
],
|
|
2062
|
+
"description": "Derived plan readiness: ready (block parsed, zero open questions), needs_answers (open questions remain), unverified (no parseable block — the planner ignored the format)."
|
|
2063
|
+
},
|
|
2064
|
+
"questionCount": {
|
|
2065
|
+
"type": "integer",
|
|
2066
|
+
"minimum": 0,
|
|
2067
|
+
"default": 0
|
|
2068
|
+
}
|
|
2069
|
+
},
|
|
2070
|
+
"required": [
|
|
2071
|
+
"state"
|
|
2072
|
+
],
|
|
2073
|
+
"additionalProperties": false,
|
|
2074
|
+
"description": "Server-derived readiness of a plan run (one derivation owner; D17)."
|
|
2075
|
+
},
|
|
2076
|
+
{
|
|
2077
|
+
"type": "null"
|
|
2078
|
+
}
|
|
2079
|
+
],
|
|
2080
|
+
"description": "Derived readiness of a plan run; null for non-plan runs.",
|
|
2081
|
+
"default": null
|
|
2082
|
+
},
|
|
2083
|
+
"planQuestions": {
|
|
2084
|
+
"type": "array",
|
|
2085
|
+
"items": {
|
|
2086
|
+
"type": "object",
|
|
2087
|
+
"properties": {
|
|
2088
|
+
"id": {
|
|
2089
|
+
"type": "string",
|
|
2090
|
+
"minLength": 1,
|
|
2091
|
+
"description": "Stable question id within the plan revision."
|
|
2092
|
+
},
|
|
2093
|
+
"kind": {
|
|
2094
|
+
"type": "string",
|
|
2095
|
+
"enum": [
|
|
2096
|
+
"single",
|
|
2097
|
+
"multi",
|
|
2098
|
+
"text"
|
|
2099
|
+
],
|
|
2100
|
+
"description": "Question kind: pick exactly one, pick one or more, or free text."
|
|
2101
|
+
},
|
|
2102
|
+
"prompt": {
|
|
2103
|
+
"type": "string",
|
|
2104
|
+
"minLength": 1,
|
|
2105
|
+
"description": "The question text."
|
|
2106
|
+
},
|
|
2107
|
+
"options": {
|
|
2108
|
+
"type": "array",
|
|
2109
|
+
"items": {
|
|
2110
|
+
"type": "object",
|
|
2111
|
+
"properties": {
|
|
2112
|
+
"id": {
|
|
2113
|
+
"type": "string",
|
|
2114
|
+
"minLength": 1,
|
|
2115
|
+
"description": "Stable option id within the question."
|
|
2116
|
+
},
|
|
2117
|
+
"label": {
|
|
2118
|
+
"type": "string",
|
|
2119
|
+
"minLength": 1,
|
|
2120
|
+
"description": "Option label shown to the user."
|
|
2121
|
+
}
|
|
2122
|
+
},
|
|
2123
|
+
"required": [
|
|
2124
|
+
"id",
|
|
2125
|
+
"label"
|
|
2126
|
+
],
|
|
2127
|
+
"additionalProperties": false,
|
|
2128
|
+
"description": "One selectable option of a plan question."
|
|
2129
|
+
},
|
|
2130
|
+
"default": [],
|
|
2131
|
+
"description": "Options for single/multi questions; empty for free text."
|
|
2132
|
+
},
|
|
2133
|
+
"allow_text": {
|
|
2134
|
+
"type": "boolean",
|
|
2135
|
+
"default": false,
|
|
2136
|
+
"description": "True when free text is accepted as a complete answer, including as an alternative to single/multi options."
|
|
2137
|
+
}
|
|
2138
|
+
},
|
|
2139
|
+
"required": [
|
|
2140
|
+
"id",
|
|
2141
|
+
"kind",
|
|
2142
|
+
"prompt"
|
|
2143
|
+
],
|
|
2144
|
+
"additionalProperties": false,
|
|
2145
|
+
"description": "One open question surfaced by a plan revision."
|
|
2146
|
+
},
|
|
2147
|
+
"default": [],
|
|
2148
|
+
"description": "Open questions of a plan run (projected from final/questions.json); empty otherwise."
|
|
2149
|
+
},
|
|
2150
|
+
"outcomeBanner": {
|
|
2151
|
+
"type": [
|
|
2152
|
+
"string",
|
|
2153
|
+
"null"
|
|
2154
|
+
],
|
|
2155
|
+
"default": null,
|
|
2156
|
+
"description": "Server-owned outcome headline (status-projection.outcomeBanner); null while the run is not terminal."
|
|
2157
|
+
},
|
|
2158
|
+
"operatorDecision": {
|
|
2159
|
+
"anyOf": [
|
|
2160
|
+
{
|
|
2161
|
+
"type": "object",
|
|
2162
|
+
"properties": {
|
|
2163
|
+
"action": {
|
|
2164
|
+
"type": "string",
|
|
2165
|
+
"description": "Operator decision action (e.g. accept_risk, override)."
|
|
2166
|
+
},
|
|
2167
|
+
"decidedAt": {
|
|
2168
|
+
"type": [
|
|
2169
|
+
"string",
|
|
2170
|
+
"null"
|
|
2171
|
+
],
|
|
2172
|
+
"default": null,
|
|
2173
|
+
"description": "When the decision was made."
|
|
2174
|
+
}
|
|
2175
|
+
},
|
|
2176
|
+
"required": [
|
|
2177
|
+
"action"
|
|
2178
|
+
],
|
|
2179
|
+
"additionalProperties": false
|
|
2180
|
+
},
|
|
2181
|
+
{
|
|
2182
|
+
"type": "null"
|
|
2183
|
+
}
|
|
2184
|
+
],
|
|
2185
|
+
"default": null,
|
|
2186
|
+
"description": "Persisted operator unblock decision (accept_risk/override), hash-bound; null when none was made."
|
|
2187
|
+
},
|
|
2188
|
+
"runFacts": {
|
|
2189
|
+
"anyOf": [
|
|
2190
|
+
{
|
|
2191
|
+
"type": "object",
|
|
2192
|
+
"properties": {
|
|
2193
|
+
"schema_version": {
|
|
2194
|
+
"type": "number",
|
|
2195
|
+
"const": 2,
|
|
2196
|
+
"description": "Schema version of the artifact; bumped on breaking ABI changes."
|
|
2197
|
+
},
|
|
2198
|
+
"run_id": {
|
|
2199
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
2200
|
+
},
|
|
2201
|
+
"task_id": {
|
|
2202
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
2203
|
+
},
|
|
2204
|
+
"mode": {
|
|
2205
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/mode"
|
|
2206
|
+
},
|
|
2207
|
+
"outcome": {
|
|
2208
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/outcomeFacts/anyOf/0"
|
|
2209
|
+
},
|
|
2210
|
+
"deliverable": {
|
|
2211
|
+
"type": "object",
|
|
2212
|
+
"properties": {
|
|
2213
|
+
"present": {
|
|
2214
|
+
"type": "boolean",
|
|
2215
|
+
"description": "Whether the canonical primary deliverable exists."
|
|
2216
|
+
},
|
|
2217
|
+
"kind": {
|
|
2218
|
+
"anyOf": [
|
|
2219
|
+
{
|
|
2220
|
+
"type": "string",
|
|
2221
|
+
"enum": [
|
|
2222
|
+
"answer",
|
|
2223
|
+
"report",
|
|
2224
|
+
"plan",
|
|
2225
|
+
"patch",
|
|
2226
|
+
"files",
|
|
2227
|
+
"structured_output"
|
|
2228
|
+
]
|
|
2229
|
+
},
|
|
2230
|
+
{
|
|
2231
|
+
"type": "null"
|
|
2232
|
+
}
|
|
2233
|
+
],
|
|
2234
|
+
"description": "Kind of canonical primary deliverable; null when none exists."
|
|
2235
|
+
},
|
|
2236
|
+
"path": {
|
|
2237
|
+
"type": [
|
|
2238
|
+
"string",
|
|
2239
|
+
"null"
|
|
2240
|
+
],
|
|
2241
|
+
"description": "Run-relative path of the canonical primary deliverable; null when absent."
|
|
2242
|
+
},
|
|
2243
|
+
"producer_attempt_id": {
|
|
2244
|
+
"anyOf": [
|
|
2245
|
+
{
|
|
2246
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
2247
|
+
},
|
|
2248
|
+
{
|
|
2249
|
+
"type": "null"
|
|
2250
|
+
}
|
|
2251
|
+
],
|
|
2252
|
+
"description": "Attempt that produced the deliverable, when known.",
|
|
2253
|
+
"default": null
|
|
2254
|
+
}
|
|
2255
|
+
},
|
|
2256
|
+
"required": [
|
|
2257
|
+
"present",
|
|
2258
|
+
"kind",
|
|
2259
|
+
"path"
|
|
2260
|
+
],
|
|
2261
|
+
"additionalProperties": false,
|
|
2262
|
+
"description": "Canonical primary-output presence and identity for a terminal run."
|
|
2263
|
+
},
|
|
2264
|
+
"presentation": {
|
|
2265
|
+
"type": "object",
|
|
2266
|
+
"properties": {
|
|
2267
|
+
"state": {
|
|
2268
|
+
"type": "string",
|
|
2269
|
+
"enum": [
|
|
2270
|
+
"ready",
|
|
2271
|
+
"diagnostic"
|
|
2272
|
+
],
|
|
2273
|
+
"description": "Terminal output readiness decided by the last valid output.ready receipt."
|
|
2274
|
+
},
|
|
2275
|
+
"primary": {
|
|
2276
|
+
"anyOf": [
|
|
2277
|
+
{
|
|
2278
|
+
"type": "object",
|
|
2279
|
+
"properties": {
|
|
2280
|
+
"kind": {
|
|
2281
|
+
"type": "string",
|
|
2282
|
+
"enum": [
|
|
2283
|
+
"answer",
|
|
2284
|
+
"report",
|
|
2285
|
+
"plan",
|
|
2286
|
+
"patch",
|
|
2287
|
+
"files",
|
|
2288
|
+
"structured_output",
|
|
2289
|
+
"diagnostic"
|
|
2290
|
+
],
|
|
2291
|
+
"description": "Presentation kind of the terminal primary artifact."
|
|
2292
|
+
},
|
|
2293
|
+
"path": {
|
|
2294
|
+
"type": "string",
|
|
2295
|
+
"minLength": 1,
|
|
2296
|
+
"description": "Normalized run-relative path of the terminal primary artifact."
|
|
2297
|
+
}
|
|
2298
|
+
},
|
|
2299
|
+
"required": [
|
|
2300
|
+
"kind",
|
|
2301
|
+
"path"
|
|
2302
|
+
],
|
|
2303
|
+
"additionalProperties": false,
|
|
2304
|
+
"description": "Primary user-facing artifact selected once during terminal preparation."
|
|
2305
|
+
},
|
|
2306
|
+
{
|
|
2307
|
+
"type": "null"
|
|
2308
|
+
}
|
|
2309
|
+
],
|
|
2310
|
+
"description": "Selected terminal primary artifact, or null when the receipt announces readiness without a primary deliverable."
|
|
2311
|
+
}
|
|
2312
|
+
},
|
|
2313
|
+
"required": [
|
|
2314
|
+
"state",
|
|
2315
|
+
"primary"
|
|
2316
|
+
],
|
|
2317
|
+
"additionalProperties": false,
|
|
2318
|
+
"description": "Immutable terminal output state and primary artifact. Absent only on legacy RunFacts receipts."
|
|
2319
|
+
},
|
|
2320
|
+
"participants": {
|
|
2321
|
+
"type": "object",
|
|
2322
|
+
"properties": {
|
|
2323
|
+
"planners": {
|
|
2324
|
+
"type": "integer",
|
|
2325
|
+
"minimum": 0,
|
|
2326
|
+
"description": "Number of participants whose canonical role is planner."
|
|
2327
|
+
},
|
|
2328
|
+
"attempts": {
|
|
2329
|
+
"type": "array",
|
|
2330
|
+
"items": {
|
|
2331
|
+
"type": "object",
|
|
2332
|
+
"properties": {
|
|
2333
|
+
"attempt_id": {
|
|
2334
|
+
"anyOf": [
|
|
2335
|
+
{
|
|
2336
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
2337
|
+
},
|
|
2338
|
+
{
|
|
2339
|
+
"type": "null"
|
|
2340
|
+
}
|
|
2341
|
+
],
|
|
2342
|
+
"description": "Attempt id when the participant owns an orchestrator attempt; null for reviewer-panel members."
|
|
2343
|
+
},
|
|
2344
|
+
"harness_id": {
|
|
2345
|
+
"type": "string",
|
|
2346
|
+
"minLength": 1,
|
|
2347
|
+
"description": "Harness that served this participant role."
|
|
2348
|
+
},
|
|
2349
|
+
"role": {
|
|
2350
|
+
"type": "string",
|
|
2351
|
+
"enum": [
|
|
2352
|
+
"planner",
|
|
2353
|
+
"merge",
|
|
2354
|
+
"candidate",
|
|
2355
|
+
"scout",
|
|
2356
|
+
"reducer",
|
|
2357
|
+
"reviewer"
|
|
2358
|
+
],
|
|
2359
|
+
"description": "Canonical role of one participant in the terminal run graph."
|
|
2360
|
+
},
|
|
2361
|
+
"deliverable_present": {
|
|
2362
|
+
"type": "boolean",
|
|
2363
|
+
"default": false,
|
|
2364
|
+
"description": "Whether this participant produced the deliverable its role requested."
|
|
2365
|
+
},
|
|
2366
|
+
"status": {
|
|
2367
|
+
"anyOf": [
|
|
2368
|
+
{
|
|
2369
|
+
"type": "string",
|
|
2370
|
+
"enum": [
|
|
2371
|
+
"success",
|
|
2372
|
+
"success_with_warnings",
|
|
2373
|
+
"blocked",
|
|
2374
|
+
"failed"
|
|
2375
|
+
],
|
|
2376
|
+
"description": "Terminal outcome recorded for one run participant."
|
|
2377
|
+
},
|
|
2378
|
+
{
|
|
2379
|
+
"type": "null"
|
|
2380
|
+
}
|
|
2381
|
+
],
|
|
2382
|
+
"description": "Participant outcome when recorded; null for artifact-only reviewer membership.",
|
|
2383
|
+
"default": null
|
|
2384
|
+
}
|
|
2385
|
+
},
|
|
2386
|
+
"required": [
|
|
2387
|
+
"attempt_id",
|
|
2388
|
+
"harness_id",
|
|
2389
|
+
"role"
|
|
2390
|
+
],
|
|
2391
|
+
"additionalProperties": false,
|
|
2392
|
+
"description": "One role-labelled participant in the terminal run graph."
|
|
2393
|
+
},
|
|
2394
|
+
"default": [],
|
|
2395
|
+
"description": "Role-labelled participant roster."
|
|
2396
|
+
}
|
|
2397
|
+
},
|
|
2398
|
+
"required": [
|
|
2399
|
+
"planners"
|
|
2400
|
+
],
|
|
2401
|
+
"additionalProperties": false,
|
|
2402
|
+
"description": "Terminal participant graph plus its planner-lane count."
|
|
2403
|
+
},
|
|
2404
|
+
"gates": {
|
|
2405
|
+
"type": "object",
|
|
2406
|
+
"properties": {
|
|
2407
|
+
"configured": {
|
|
2408
|
+
"type": "boolean",
|
|
2409
|
+
"description": "Whether the frozen task configured deterministic gates."
|
|
2410
|
+
},
|
|
2411
|
+
"required": {
|
|
2412
|
+
"type": "integer",
|
|
2413
|
+
"minimum": 0,
|
|
2414
|
+
"description": "Number of configured required gates."
|
|
2415
|
+
},
|
|
2416
|
+
"total": {
|
|
2417
|
+
"type": "integer",
|
|
2418
|
+
"minimum": 0,
|
|
2419
|
+
"description": "Total configured deterministic gates."
|
|
2420
|
+
},
|
|
2421
|
+
"executed": {
|
|
2422
|
+
"type": "boolean",
|
|
2423
|
+
"description": "Whether the terminal attempt executed the gate set."
|
|
2424
|
+
},
|
|
2425
|
+
"state": {
|
|
2426
|
+
"type": "string",
|
|
2427
|
+
"enum": [
|
|
2428
|
+
"not_configured",
|
|
2429
|
+
"passed",
|
|
2430
|
+
"failed",
|
|
2431
|
+
"skipped"
|
|
2432
|
+
],
|
|
2433
|
+
"description": "Terminal state of the configured deterministic gate set."
|
|
2434
|
+
},
|
|
2435
|
+
"receipt_attempt_id": {
|
|
2436
|
+
"anyOf": [
|
|
2437
|
+
{
|
|
2438
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
2439
|
+
},
|
|
2440
|
+
{
|
|
2441
|
+
"type": "null"
|
|
2442
|
+
}
|
|
2443
|
+
],
|
|
2444
|
+
"description": "Attempt whose gate receipt decides this projection; null when no gates executed.",
|
|
2445
|
+
"default": null
|
|
2446
|
+
}
|
|
2447
|
+
},
|
|
2448
|
+
"required": [
|
|
2449
|
+
"configured",
|
|
2450
|
+
"required",
|
|
2451
|
+
"total",
|
|
2452
|
+
"executed",
|
|
2453
|
+
"state"
|
|
2454
|
+
],
|
|
2455
|
+
"additionalProperties": false,
|
|
2456
|
+
"description": "Canonical gate configuration and terminal receipt projection."
|
|
2457
|
+
},
|
|
2458
|
+
"review": {
|
|
2459
|
+
"type": "object",
|
|
2460
|
+
"properties": {
|
|
2461
|
+
"state": {
|
|
2462
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRun/anyOf/0/properties/run/properties/outcomeFacts/anyOf/0/properties/review"
|
|
2463
|
+
},
|
|
2464
|
+
"blocker_ids": {
|
|
2465
|
+
"type": "array",
|
|
2466
|
+
"items": {
|
|
2467
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/thread/properties/credentialProfileId/anyOf/0"
|
|
2468
|
+
},
|
|
2469
|
+
"default": [],
|
|
2470
|
+
"description": "Stable ids of accepted evidence-backed blocking findings."
|
|
2471
|
+
},
|
|
2472
|
+
"blockers": {
|
|
2473
|
+
"type": "integer",
|
|
2474
|
+
"minimum": 0,
|
|
2475
|
+
"description": "Number of blocking findings."
|
|
2476
|
+
}
|
|
2477
|
+
},
|
|
2478
|
+
"required": [
|
|
2479
|
+
"state",
|
|
2480
|
+
"blockers"
|
|
2481
|
+
],
|
|
2482
|
+
"additionalProperties": false,
|
|
2483
|
+
"description": "Canonical terminal review verdict and blocking-finding identity."
|
|
2484
|
+
},
|
|
2485
|
+
"apply": {
|
|
2486
|
+
"type": "object",
|
|
2487
|
+
"properties": {
|
|
2488
|
+
"eligibility": {
|
|
2489
|
+
"anyOf": [
|
|
2490
|
+
{
|
|
2491
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/run/anyOf/0/properties/applyEligibility/anyOf/0"
|
|
2492
|
+
},
|
|
2493
|
+
{
|
|
2494
|
+
"type": "null"
|
|
2495
|
+
}
|
|
2496
|
+
],
|
|
2497
|
+
"description": "Delivery-gate eligibility at terminalization; null when nothing is applyable.",
|
|
2498
|
+
"default": null
|
|
2499
|
+
},
|
|
2500
|
+
"operator_decision_present": {
|
|
2501
|
+
"type": "boolean",
|
|
2502
|
+
"default": false,
|
|
2503
|
+
"description": "Whether a valid operator decision was present when the receipt was finalized."
|
|
2504
|
+
}
|
|
2505
|
+
},
|
|
2506
|
+
"additionalProperties": false,
|
|
2507
|
+
"description": "Terminal apply eligibility and operator-decision state."
|
|
2508
|
+
},
|
|
2509
|
+
"required_actions": {
|
|
2510
|
+
"type": "array",
|
|
2511
|
+
"items": {
|
|
2512
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/run/anyOf/0/properties/requiredActions/items"
|
|
2513
|
+
},
|
|
2514
|
+
"default": [],
|
|
2515
|
+
"description": "Typed actions required to unblock this terminal outcome."
|
|
2516
|
+
},
|
|
2517
|
+
"generated_at": {
|
|
2518
|
+
"type": "string",
|
|
2519
|
+
"minLength": 1,
|
|
2520
|
+
"description": "When this immutable terminal receipt was finalized."
|
|
2521
|
+
}
|
|
2522
|
+
},
|
|
2523
|
+
"required": [
|
|
2524
|
+
"schema_version",
|
|
2525
|
+
"run_id",
|
|
2526
|
+
"task_id",
|
|
2527
|
+
"mode",
|
|
2528
|
+
"outcome",
|
|
2529
|
+
"deliverable",
|
|
2530
|
+
"participants",
|
|
2531
|
+
"gates",
|
|
2532
|
+
"review",
|
|
2533
|
+
"apply",
|
|
2534
|
+
"generated_at"
|
|
2535
|
+
],
|
|
2536
|
+
"additionalProperties": false,
|
|
2537
|
+
"description": "Validated immutable terminal facts for one run."
|
|
2538
|
+
},
|
|
2539
|
+
{
|
|
2540
|
+
"type": "null"
|
|
2541
|
+
}
|
|
2542
|
+
],
|
|
2543
|
+
"description": "Validated terminal RunFacts receipt; null while active or unavailable.",
|
|
2544
|
+
"default": null
|
|
2545
|
+
},
|
|
2546
|
+
"applyEligibilityCoverage": {
|
|
2547
|
+
"type": "string",
|
|
2548
|
+
"enum": [
|
|
2549
|
+
"complete",
|
|
2550
|
+
"unavailable"
|
|
2551
|
+
]
|
|
2552
|
+
},
|
|
2553
|
+
"operatorDecisionCoverage": {
|
|
2554
|
+
"type": "string",
|
|
2555
|
+
"enum": [
|
|
2556
|
+
"complete",
|
|
2557
|
+
"unavailable"
|
|
2558
|
+
]
|
|
2559
|
+
},
|
|
2560
|
+
"unverifiedOperatorDecision": {
|
|
2561
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/run/anyOf/0/properties/operatorDecision",
|
|
2562
|
+
"default": null,
|
|
2563
|
+
"description": "Recorded decision whose exact evidence exceeds the history read bound. Never grants authority."
|
|
2564
|
+
},
|
|
2565
|
+
"failureMessageInfo": {
|
|
2566
|
+
"anyOf": [
|
|
2567
|
+
{
|
|
2568
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/promptInfo"
|
|
2569
|
+
},
|
|
2570
|
+
{
|
|
2571
|
+
"type": "null"
|
|
2572
|
+
}
|
|
2573
|
+
]
|
|
2574
|
+
},
|
|
2575
|
+
"toolCount": {
|
|
2576
|
+
"type": "object",
|
|
2577
|
+
"properties": {
|
|
2578
|
+
"value": {
|
|
2579
|
+
"anyOf": [
|
|
2580
|
+
{
|
|
2581
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestOrdinal/anyOf/0"
|
|
2582
|
+
},
|
|
2583
|
+
{
|
|
2584
|
+
"type": "null"
|
|
2585
|
+
}
|
|
2586
|
+
]
|
|
2587
|
+
},
|
|
2588
|
+
"coverage": {
|
|
2589
|
+
"type": "string",
|
|
2590
|
+
"enum": [
|
|
2591
|
+
"complete",
|
|
2592
|
+
"partial",
|
|
2593
|
+
"unavailable"
|
|
2594
|
+
]
|
|
2595
|
+
}
|
|
2596
|
+
},
|
|
2597
|
+
"required": [
|
|
2598
|
+
"value",
|
|
2599
|
+
"coverage"
|
|
2600
|
+
],
|
|
2601
|
+
"additionalProperties": false
|
|
2602
|
+
},
|
|
2603
|
+
"fileCount": {
|
|
2604
|
+
"type": "object",
|
|
2605
|
+
"properties": {
|
|
2606
|
+
"value": {
|
|
2607
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/run/anyOf/0/properties/toolCount/properties/value"
|
|
2608
|
+
},
|
|
2609
|
+
"coverage": {
|
|
2610
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/run/anyOf/0/properties/toolCount/properties/coverage"
|
|
2611
|
+
}
|
|
2612
|
+
},
|
|
2613
|
+
"required": [
|
|
2614
|
+
"value",
|
|
2615
|
+
"coverage"
|
|
2616
|
+
],
|
|
2617
|
+
"additionalProperties": false,
|
|
2618
|
+
"description": "File-kind tool calls, not distinct paths or the WorkProduct diffstat."
|
|
2619
|
+
}
|
|
2620
|
+
},
|
|
2621
|
+
"required": [
|
|
2622
|
+
"state",
|
|
2623
|
+
"applyEligibilityCoverage",
|
|
2624
|
+
"operatorDecisionCoverage",
|
|
2625
|
+
"failureMessageInfo",
|
|
2626
|
+
"toolCount",
|
|
2627
|
+
"fileCount"
|
|
2628
|
+
],
|
|
2629
|
+
"additionalProperties": false,
|
|
2630
|
+
"description": "Compact run state embedded on a turn so a chat surface renders the whole conversation from one thread fetch."
|
|
2631
|
+
},
|
|
2632
|
+
{
|
|
2633
|
+
"type": "null"
|
|
2634
|
+
}
|
|
2635
|
+
],
|
|
2636
|
+
"description": "Compact run state embedded on a turn so a chat surface renders the whole conversation from one thread fetch."
|
|
2637
|
+
},
|
|
2638
|
+
"runStatus": {
|
|
2639
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/headRunStatus"
|
|
2640
|
+
},
|
|
2641
|
+
"primaryOutput": {
|
|
2642
|
+
"anyOf": [
|
|
2643
|
+
{
|
|
2644
|
+
"type": "object",
|
|
2645
|
+
"properties": {
|
|
2646
|
+
"kind": {
|
|
2647
|
+
"type": "string",
|
|
2648
|
+
"enum": [
|
|
2649
|
+
"answer",
|
|
2650
|
+
"report",
|
|
2651
|
+
"plan",
|
|
2652
|
+
"summary",
|
|
2653
|
+
"patch",
|
|
2654
|
+
"files",
|
|
2655
|
+
"diagnostic",
|
|
2656
|
+
"structured_output"
|
|
2657
|
+
],
|
|
2658
|
+
"description": "What kind of output this is: answer, report, plan, summary, patch, diagnostic, or structured_output (schema-conformant final/output.json)."
|
|
2659
|
+
},
|
|
2660
|
+
"path": {
|
|
2661
|
+
"type": "string",
|
|
2662
|
+
"description": "Artifact path of the output."
|
|
2663
|
+
},
|
|
2664
|
+
"text": {
|
|
2665
|
+
"type": [
|
|
2666
|
+
"string",
|
|
2667
|
+
"null"
|
|
2668
|
+
],
|
|
2669
|
+
"default": null,
|
|
2670
|
+
"description": "Inline text content, when loaded."
|
|
2671
|
+
},
|
|
2672
|
+
"bytes": {
|
|
2673
|
+
"type": "integer",
|
|
2674
|
+
"minimum": 0,
|
|
2675
|
+
"description": "Size of the output in bytes."
|
|
2676
|
+
},
|
|
2677
|
+
"truncated": {
|
|
2678
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/promptInfo/properties/truncated"
|
|
2679
|
+
},
|
|
2680
|
+
"textBytes": {
|
|
2681
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestOrdinal/anyOf/0"
|
|
2682
|
+
},
|
|
2683
|
+
"totalTextBytes": {
|
|
2684
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/promptInfo/properties/totalTextBytes"
|
|
2685
|
+
}
|
|
2686
|
+
},
|
|
2687
|
+
"required": [
|
|
2688
|
+
"kind",
|
|
2689
|
+
"path",
|
|
2690
|
+
"truncated",
|
|
2691
|
+
"textBytes",
|
|
2692
|
+
"totalTextBytes"
|
|
2693
|
+
],
|
|
2694
|
+
"additionalProperties": false,
|
|
2695
|
+
"description": "The run's primary user-facing output artifact."
|
|
2696
|
+
},
|
|
2697
|
+
{
|
|
2698
|
+
"type": "null"
|
|
2699
|
+
}
|
|
2700
|
+
],
|
|
2701
|
+
"description": "The run's primary user-facing output artifact."
|
|
2702
|
+
},
|
|
2703
|
+
"primaryOutputStatus": {
|
|
2704
|
+
"type": "string",
|
|
2705
|
+
"enum": [
|
|
2706
|
+
"available",
|
|
2707
|
+
"none",
|
|
2708
|
+
"not_retained"
|
|
2709
|
+
]
|
|
2710
|
+
},
|
|
2711
|
+
"answeredByTurnId": {
|
|
2712
|
+
"anyOf": [
|
|
2713
|
+
{
|
|
2714
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/threadId"
|
|
2715
|
+
},
|
|
2716
|
+
{
|
|
2717
|
+
"type": "null"
|
|
2718
|
+
}
|
|
2719
|
+
],
|
|
2720
|
+
"description": "Thread id."
|
|
2721
|
+
},
|
|
2722
|
+
"answeredByPrompt": {
|
|
2723
|
+
"anyOf": [
|
|
2724
|
+
{
|
|
2725
|
+
"type": "object",
|
|
2726
|
+
"properties": {
|
|
2727
|
+
"id": {
|
|
2728
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/header/properties/latestAdmission/anyOf/0/properties/id"
|
|
2729
|
+
},
|
|
2730
|
+
"prompt": {
|
|
2731
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/prompt"
|
|
2732
|
+
},
|
|
2733
|
+
"promptInfo": {
|
|
2734
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/turns/items/properties/promptInfo"
|
|
2735
|
+
}
|
|
2736
|
+
},
|
|
2737
|
+
"required": [
|
|
2738
|
+
"id",
|
|
2739
|
+
"promptInfo"
|
|
2740
|
+
],
|
|
2741
|
+
"additionalProperties": false,
|
|
2742
|
+
"description": "Control-plane projection of one thread turn with its embedded run card."
|
|
2743
|
+
},
|
|
2744
|
+
{
|
|
2745
|
+
"type": "null"
|
|
2746
|
+
}
|
|
2747
|
+
],
|
|
2748
|
+
"description": "Control-plane projection of one thread turn with its embedded run card."
|
|
2749
|
+
},
|
|
2750
|
+
"planAnswerComplete": {
|
|
2751
|
+
"type": "boolean"
|
|
2752
|
+
}
|
|
2753
|
+
},
|
|
2754
|
+
"required": [
|
|
2755
|
+
"id",
|
|
2756
|
+
"threadId",
|
|
2757
|
+
"createdAt",
|
|
2758
|
+
"ordinal",
|
|
2759
|
+
"revision",
|
|
2760
|
+
"promptInfo",
|
|
2761
|
+
"run",
|
|
2762
|
+
"runStatus",
|
|
2763
|
+
"primaryOutput",
|
|
2764
|
+
"primaryOutputStatus",
|
|
2765
|
+
"answeredByTurnId",
|
|
2766
|
+
"answeredByPrompt",
|
|
2767
|
+
"planAnswerComplete"
|
|
2768
|
+
],
|
|
2769
|
+
"additionalProperties": false,
|
|
2770
|
+
"description": "Control-plane projection of one thread turn with its embedded run card."
|
|
2771
|
+
},
|
|
2772
|
+
"maxItems": 20
|
|
2773
|
+
},
|
|
2774
|
+
"hasOlder": {
|
|
2775
|
+
"type": "boolean"
|
|
2776
|
+
},
|
|
2777
|
+
"hasNewer": {
|
|
2778
|
+
"type": "boolean"
|
|
2779
|
+
},
|
|
2780
|
+
"olderCursor": {
|
|
2781
|
+
"anyOf": [
|
|
2782
|
+
{
|
|
2783
|
+
"type": "string",
|
|
2784
|
+
"minLength": 1,
|
|
2785
|
+
"maxLength": 2048
|
|
2786
|
+
},
|
|
2787
|
+
{
|
|
2788
|
+
"type": "null"
|
|
2789
|
+
}
|
|
2790
|
+
]
|
|
2791
|
+
},
|
|
2792
|
+
"newerCursor": {
|
|
2793
|
+
"anyOf": [
|
|
2794
|
+
{
|
|
2795
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/olderCursor/anyOf/0"
|
|
2796
|
+
},
|
|
2797
|
+
{
|
|
2798
|
+
"type": "null"
|
|
2799
|
+
}
|
|
2800
|
+
]
|
|
2801
|
+
},
|
|
2802
|
+
"replayCursor": {
|
|
2803
|
+
"anyOf": [
|
|
2804
|
+
{
|
|
2805
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/olderCursor/anyOf/0"
|
|
2806
|
+
},
|
|
2807
|
+
{
|
|
2808
|
+
"type": "null"
|
|
2809
|
+
}
|
|
2810
|
+
]
|
|
2811
|
+
},
|
|
2812
|
+
"replayNextCursor": {
|
|
2813
|
+
"anyOf": [
|
|
2814
|
+
{
|
|
2815
|
+
"$ref": "#/definitions/ThreadHistoryPage/properties/olderCursor/anyOf/0"
|
|
2816
|
+
},
|
|
2817
|
+
{
|
|
2818
|
+
"type": "null"
|
|
2819
|
+
}
|
|
2820
|
+
],
|
|
2821
|
+
"description": "Continue the original replay membership if current facts no longer fit one page; merge every segment before declaring the refresh complete."
|
|
2822
|
+
},
|
|
2823
|
+
"limitedBy": {
|
|
2824
|
+
"anyOf": [
|
|
2825
|
+
{
|
|
2826
|
+
"type": "string",
|
|
2827
|
+
"enum": [
|
|
2828
|
+
"turns",
|
|
2829
|
+
"bytes"
|
|
2830
|
+
]
|
|
2831
|
+
},
|
|
2832
|
+
{
|
|
2833
|
+
"type": "null"
|
|
2834
|
+
}
|
|
2835
|
+
]
|
|
2836
|
+
}
|
|
2837
|
+
},
|
|
2838
|
+
"required": [
|
|
2839
|
+
"storeId",
|
|
2840
|
+
"threadId",
|
|
2841
|
+
"epoch",
|
|
2842
|
+
"revision",
|
|
2843
|
+
"header",
|
|
2844
|
+
"turns",
|
|
2845
|
+
"hasOlder",
|
|
2846
|
+
"hasNewer",
|
|
2847
|
+
"olderCursor",
|
|
2848
|
+
"newerCursor",
|
|
2849
|
+
"replayCursor",
|
|
2850
|
+
"replayNextCursor",
|
|
2851
|
+
"limitedBy"
|
|
2852
|
+
],
|
|
2853
|
+
"additionalProperties": false
|
|
2854
|
+
}
|
|
2855
|
+
},
|
|
2856
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
2857
|
+
}
|