@claudexor/schema 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +16 -0
- package/dist/agent-capabilities.d.ts +366 -0
- package/dist/agent-capabilities.d.ts.map +1 -0
- package/dist/agent-capabilities.js +125 -0
- package/dist/agent-capabilities.js.map +1 -0
- package/dist/apply-eligibility.d.ts +76 -0
- package/dist/apply-eligibility.d.ts.map +1 -0
- package/dist/apply-eligibility.js +37 -0
- package/dist/apply-eligibility.js.map +1 -0
- package/dist/attachment.d.ts +69 -0
- package/dist/attachment.d.ts.map +1 -0
- package/dist/attachment.js +54 -0
- package/dist/attachment.js.map +1 -0
- package/dist/budget.d.ts +75 -0
- package/dist/budget.d.ts.map +1 -0
- package/dist/budget.js +54 -0
- package/dist/budget.js.map +1 -0
- package/dist/config.d.ts +743 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +194 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +222 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +70 -0
- package/dist/context.js.map +1 -0
- package/dist/control-run-detail.d.ts +1686 -0
- package/dist/control-run-detail.d.ts.map +1 -0
- package/dist/control-run-detail.js +107 -0
- package/dist/control-run-detail.js.map +1 -0
- package/dist/control-trust.d.ts +79 -0
- package/dist/control-trust.d.ts.map +1 -0
- package/dist/control-trust.js +39 -0
- package/dist/control-trust.js.map +1 -0
- package/dist/control.d.ts +4226 -0
- package/dist/control.d.ts.map +1 -0
- package/dist/control.js +1022 -0
- package/dist/control.js.map +1 -0
- package/dist/decision.d.ts +208 -0
- package/dist/decision.d.ts.map +1 -0
- package/dist/decision.js +98 -0
- package/dist/decision.js.map +1 -0
- package/dist/events.d.ts +70 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +105 -0
- package/dist/events.js.map +1 -0
- package/dist/gate.d.ts +37 -0
- package/dist/gate.d.ts.map +1 -0
- package/dist/gate.js +20 -0
- package/dist/gate.js.map +1 -0
- package/dist/harness.d.ts +1418 -0
- package/dist/harness.d.ts.map +1 -0
- package/dist/harness.js +552 -0
- package/dist/harness.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestrate.d.ts +428 -0
- package/dist/orchestrate.d.ts.map +1 -0
- package/dist/orchestrate.js +246 -0
- package/dist/orchestrate.js.map +1 -0
- package/dist/primitives.d.ts +71 -0
- package/dist/primitives.d.ts.map +1 -0
- package/dist/primitives.js +114 -0
- package/dist/primitives.js.map +1 -0
- package/dist/review.d.ts +220 -0
- package/dist/review.d.ts.map +1 -0
- package/dist/review.js +91 -0
- package/dist/review.js.map +1 -0
- package/dist/route.d.ts +67 -0
- package/dist/route.d.ts.map +1 -0
- package/dist/route.js +33 -0
- package/dist/route.js.map +1 -0
- package/dist/spec.d.ts +561 -0
- package/dist/spec.d.ts.map +1 -0
- package/dist/spec.js +133 -0
- package/dist/spec.js.map +1 -0
- package/dist/surface-run-controls.d.ts +14 -0
- package/dist/surface-run-controls.d.ts.map +1 -0
- package/dist/surface-run-controls.js +142 -0
- package/dist/surface-run-controls.js.map +1 -0
- package/dist/task.d.ts +565 -0
- package/dist/task.d.ts.map +1 -0
- package/dist/task.js +186 -0
- package/dist/task.js.map +1 -0
- package/dist/telemetry.d.ts +660 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +140 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/thread.d.ts +348 -0
- package/dist/thread.d.ts.map +1 -0
- package/dist/thread.js +194 -0
- package/dist/thread.js.map +1 -0
- package/dist/workproduct.d.ts +31 -0
- package/dist/workproduct.d.ts.map +1 -0
- package/dist/workproduct.js +25 -0
- package/dist/workproduct.js.map +1 -0
- package/dist/workspace.d.ts +53 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +30 -0
- package/dist/workspace.js.map +1 -0
- package/generated/AgentCapabilityCatalog.schema.json +389 -0
- package/generated/ApplyEligibility.schema.json +44 -0
- package/generated/BudgetLease.schema.json +95 -0
- package/generated/BudgetObservation.schema.json +76 -0
- package/generated/ConformanceReport.schema.json +107 -0
- package/generated/ContextPack.schema.json +186 -0
- package/generated/ControlApplyCheckRequest.schema.json +54 -0
- package/generated/ControlApplyRequest.schema.json +74 -0
- package/generated/ControlHarnessListResponse.schema.json +498 -0
- package/generated/ControlHarnessModelsResponse.schema.json +78 -0
- package/generated/ControlHarnessSettingsPatch.schema.json +130 -0
- package/generated/ControlInteractionAnswerRequest.schema.json +48 -0
- package/generated/ControlInteractionAnswerResponse.schema.json +35 -0
- package/generated/ControlPendingInteraction.schema.json +129 -0
- package/generated/ControlQueuedRunInfo.schema.json +44 -0
- package/generated/ControlRunControlRequest.schema.json +61 -0
- package/generated/ControlRunControlResponse.schema.json +40 -0
- package/generated/ControlRunDecisionRequest.schema.json +98 -0
- package/generated/ControlRunDecisionResponse.schema.json +40 -0
- package/generated/ControlRunDetail.schema.json +1925 -0
- package/generated/ControlRunStartInfo.schema.json +33 -0
- package/generated/ControlRunStartRequest.schema.json +429 -0
- package/generated/ControlRunSummary.schema.json +666 -0
- package/generated/ControlSecretListResponse.schema.json +57 -0
- package/generated/ControlSettingsSnapshot.schema.json +281 -0
- package/generated/ControlSettingsUpdateRequest.schema.json +212 -0
- package/generated/ControlSetupJob.schema.json +148 -0
- package/generated/ControlSetupJobConfirmRequest.schema.json +18 -0
- package/generated/ControlSetupJobCreateRequest.schema.json +38 -0
- package/generated/ControlSetupJobEvent.schema.json +58 -0
- package/generated/ControlSetupJobListResponse.schema.json +162 -0
- package/generated/ControlSpecFreezeRequest.schema.json +83 -0
- package/generated/ControlSpecQuestionsRequest.schema.json +80 -0
- package/generated/ControlThread.schema.json +129 -0
- package/generated/ControlThreadApplyRequest.schema.json +32 -0
- package/generated/ControlThreadApplyResponse.schema.json +47 -0
- package/generated/ControlThreadCreateRequest.schema.json +107 -0
- package/generated/ControlThreadDetail.schema.json +515 -0
- package/generated/ControlThreadListResponse.schema.json +141 -0
- package/generated/ControlThreadUpdateRequest.schema.json +46 -0
- package/generated/ControlTrustListResponse.schema.json +59 -0
- package/generated/ControlTrustState.schema.json +45 -0
- package/generated/ControlTrustUpdateRequest.schema.json +26 -0
- package/generated/DecisionRecord.schema.json +232 -0
- package/generated/GateResult.schema.json +81 -0
- package/generated/GlobalConfig.schema.json +313 -0
- package/generated/HarnessEvent.schema.json +360 -0
- package/generated/HarnessManifest.schema.json +350 -0
- package/generated/HarnessModel.schema.json +41 -0
- package/generated/HarnessStatusDto.schema.json +486 -0
- package/generated/McpRunToolResult.schema.json +91 -0
- package/generated/OrchestrateContract.schema.json +93 -0
- package/generated/OrchestratePlan.schema.json +244 -0
- package/generated/OrchestratePlanProgress.schema.json +103 -0
- package/generated/ProjectConfig.schema.json +95 -0
- package/generated/ReviewFinding.schema.json +226 -0
- package/generated/RouteFallbackPayload.schema.json +79 -0
- package/generated/RouteProof.schema.json +111 -0
- package/generated/RunControl.schema.json +51 -0
- package/generated/RunEvent.schema.json +103 -0
- package/generated/RunFailure.schema.json +98 -0
- package/generated/RunTelemetry.schema.json +433 -0
- package/generated/SecretMetadata.schema.json +34 -0
- package/generated/Session.schema.json +80 -0
- package/generated/SessionReboundLineage.schema.json +73 -0
- package/generated/SpecPack.schema.json +372 -0
- package/generated/TaskContract.schema.json +501 -0
- package/generated/Thread.schema.json +176 -0
- package/generated/ThreadTurn.schema.json +172 -0
- package/generated/TrustConfig.schema.json +44 -0
- package/generated/WorkProduct.schema.json +60 -0
- package/generated/WorkspaceEnvelope.schema.json +94 -0
- package/package.json +43 -0
|
@@ -0,0 +1,1925 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/ControlRunDetail",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"ControlRunDetail": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"summary": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"jobId": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Daemon job id backing the run."
|
|
13
|
+
},
|
|
14
|
+
"runId": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Run id."
|
|
17
|
+
},
|
|
18
|
+
"taskId": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Task id, when allocated."
|
|
21
|
+
},
|
|
22
|
+
"state": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": [
|
|
25
|
+
"queued",
|
|
26
|
+
"running",
|
|
27
|
+
"blocked",
|
|
28
|
+
"succeeded",
|
|
29
|
+
"no_op",
|
|
30
|
+
"ungated",
|
|
31
|
+
"review_not_run",
|
|
32
|
+
"failed",
|
|
33
|
+
"cancelled",
|
|
34
|
+
"interrupted",
|
|
35
|
+
"exhausted",
|
|
36
|
+
"not_converged",
|
|
37
|
+
"stuck_no_progress"
|
|
38
|
+
],
|
|
39
|
+
"description": "Control-plane run state: queued/running while live; blocked awaiting a human; then a terminal outcome (succeeded, no_op, ungated, review_not_run, failed, cancelled, interrupted, exhausted, not_converged, stuck_no_progress)."
|
|
40
|
+
},
|
|
41
|
+
"runDir": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"description": "On-disk run artifact directory."
|
|
44
|
+
},
|
|
45
|
+
"error": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "Error message, when the run failed."
|
|
48
|
+
},
|
|
49
|
+
"failure": {
|
|
50
|
+
"anyOf": [
|
|
51
|
+
{
|
|
52
|
+
"type": "object",
|
|
53
|
+
"properties": {
|
|
54
|
+
"phase": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"default": "unknown",
|
|
57
|
+
"description": "Pipeline phase where the failure happened."
|
|
58
|
+
},
|
|
59
|
+
"category": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"enum": [
|
|
62
|
+
"validation",
|
|
63
|
+
"project",
|
|
64
|
+
"auth",
|
|
65
|
+
"harness_unavailable",
|
|
66
|
+
"harness_error",
|
|
67
|
+
"budget",
|
|
68
|
+
"policy",
|
|
69
|
+
"cancelled",
|
|
70
|
+
"internal",
|
|
71
|
+
"unknown"
|
|
72
|
+
],
|
|
73
|
+
"default": "unknown",
|
|
74
|
+
"description": "Typed failure category (validation, project, auth, harness, budget, policy, cancelled, internal, unknown)."
|
|
75
|
+
},
|
|
76
|
+
"harnessId": {
|
|
77
|
+
"type": [
|
|
78
|
+
"string",
|
|
79
|
+
"null"
|
|
80
|
+
],
|
|
81
|
+
"default": null,
|
|
82
|
+
"description": "Harness involved in the failure, when known."
|
|
83
|
+
},
|
|
84
|
+
"attemptId": {
|
|
85
|
+
"type": [
|
|
86
|
+
"string",
|
|
87
|
+
"null"
|
|
88
|
+
],
|
|
89
|
+
"default": null,
|
|
90
|
+
"description": "Attempt involved in the failure, when known."
|
|
91
|
+
},
|
|
92
|
+
"safeMessage": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"description": "Redacted human-readable failure message."
|
|
95
|
+
},
|
|
96
|
+
"rawDetailRef": {
|
|
97
|
+
"type": [
|
|
98
|
+
"string",
|
|
99
|
+
"null"
|
|
100
|
+
],
|
|
101
|
+
"default": null,
|
|
102
|
+
"description": "Artifact path holding the raw (redacted) failure detail."
|
|
103
|
+
},
|
|
104
|
+
"logRefs": {
|
|
105
|
+
"type": "array",
|
|
106
|
+
"items": {
|
|
107
|
+
"type": "string"
|
|
108
|
+
},
|
|
109
|
+
"default": [],
|
|
110
|
+
"description": "Log artifact paths relevant to the failure."
|
|
111
|
+
},
|
|
112
|
+
"eventRefs": {
|
|
113
|
+
"type": "array",
|
|
114
|
+
"items": {
|
|
115
|
+
"type": "string"
|
|
116
|
+
},
|
|
117
|
+
"default": [],
|
|
118
|
+
"description": "Event references relevant to the failure."
|
|
119
|
+
},
|
|
120
|
+
"runDir": {
|
|
121
|
+
"type": [
|
|
122
|
+
"string",
|
|
123
|
+
"null"
|
|
124
|
+
],
|
|
125
|
+
"default": null,
|
|
126
|
+
"description": "Run artifact directory."
|
|
127
|
+
},
|
|
128
|
+
"nextActions": {
|
|
129
|
+
"type": "array",
|
|
130
|
+
"items": {
|
|
131
|
+
"type": "string"
|
|
132
|
+
},
|
|
133
|
+
"default": [],
|
|
134
|
+
"description": "Suggested operator next actions."
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"required": [
|
|
138
|
+
"safeMessage"
|
|
139
|
+
],
|
|
140
|
+
"additionalProperties": false,
|
|
141
|
+
"description": "Typed failure record for a run: phase, category, evidence references, and suggested next actions."
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"type": "null"
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"description": "Typed failure record; null unless the run failed.",
|
|
148
|
+
"default": null
|
|
149
|
+
},
|
|
150
|
+
"project": {
|
|
151
|
+
"type": "object",
|
|
152
|
+
"properties": {
|
|
153
|
+
"kind": {
|
|
154
|
+
"type": "string",
|
|
155
|
+
"enum": [
|
|
156
|
+
"project",
|
|
157
|
+
"none"
|
|
158
|
+
],
|
|
159
|
+
"default": "none",
|
|
160
|
+
"description": "Whether the run was anchored to a project."
|
|
161
|
+
},
|
|
162
|
+
"root": {
|
|
163
|
+
"type": [
|
|
164
|
+
"string",
|
|
165
|
+
"null"
|
|
166
|
+
],
|
|
167
|
+
"default": null,
|
|
168
|
+
"description": "Project root, when anchored."
|
|
169
|
+
},
|
|
170
|
+
"projectName": {
|
|
171
|
+
"type": [
|
|
172
|
+
"string",
|
|
173
|
+
"null"
|
|
174
|
+
],
|
|
175
|
+
"default": null,
|
|
176
|
+
"description": "Project display name, when anchored."
|
|
177
|
+
},
|
|
178
|
+
"context": {
|
|
179
|
+
"type": "string",
|
|
180
|
+
"enum": [
|
|
181
|
+
"off",
|
|
182
|
+
"auto"
|
|
183
|
+
],
|
|
184
|
+
"default": "off",
|
|
185
|
+
"description": "Project context depth used for the run."
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"additionalProperties": false,
|
|
189
|
+
"description": "Project metadata projected onto a run summary.",
|
|
190
|
+
"default": {}
|
|
191
|
+
},
|
|
192
|
+
"mode": {
|
|
193
|
+
"type": "string",
|
|
194
|
+
"enum": [
|
|
195
|
+
"ask",
|
|
196
|
+
"plan",
|
|
197
|
+
"audit",
|
|
198
|
+
"agent",
|
|
199
|
+
"orchestrate"
|
|
200
|
+
],
|
|
201
|
+
"description": "Canonical run mode: ask, plan, and audit are read-only; agent writes; orchestrate is the autonomous coordinator intent. Engine strategies (race, attempts, swarm, create) are flags on a mode, not modes."
|
|
202
|
+
},
|
|
203
|
+
"strategy": {
|
|
204
|
+
"anyOf": [
|
|
205
|
+
{
|
|
206
|
+
"type": "string",
|
|
207
|
+
"enum": [
|
|
208
|
+
"race",
|
|
209
|
+
"attempts",
|
|
210
|
+
"until_clean",
|
|
211
|
+
"swarm",
|
|
212
|
+
"create"
|
|
213
|
+
]
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"type": "null"
|
|
217
|
+
}
|
|
218
|
+
],
|
|
219
|
+
"description": "Engine strategy flag on the mode (race width / attempt caps / until-clean / swarm / create); flags, not modes."
|
|
220
|
+
},
|
|
221
|
+
"prompt": {
|
|
222
|
+
"type": "string",
|
|
223
|
+
"description": "The user's prompt for the run."
|
|
224
|
+
},
|
|
225
|
+
"harnesses": {
|
|
226
|
+
"type": "array",
|
|
227
|
+
"items": {
|
|
228
|
+
"type": "string"
|
|
229
|
+
},
|
|
230
|
+
"description": "Harness pool the run used."
|
|
231
|
+
},
|
|
232
|
+
"primaryHarness": {
|
|
233
|
+
"type": "string",
|
|
234
|
+
"description": "Primary harness the run preferred."
|
|
235
|
+
},
|
|
236
|
+
"portfolio": {
|
|
237
|
+
"type": "string",
|
|
238
|
+
"enum": [
|
|
239
|
+
"daily-rich",
|
|
240
|
+
"balanced",
|
|
241
|
+
"cheapest",
|
|
242
|
+
"strongest",
|
|
243
|
+
"burn",
|
|
244
|
+
"subscription-first",
|
|
245
|
+
"api-overflow",
|
|
246
|
+
"conserve-claude",
|
|
247
|
+
"conserve-codex"
|
|
248
|
+
],
|
|
249
|
+
"description": "Budget portfolio weighting the harness router's quality/cost/latency and subscription-vs-API preferences (e.g. cheapest minimizes spend, burn maximizes quality, conserve-* deprioritizes one vendor)."
|
|
250
|
+
},
|
|
251
|
+
"model": {
|
|
252
|
+
"type": "string",
|
|
253
|
+
"description": "Scalar model requested for the run."
|
|
254
|
+
},
|
|
255
|
+
"reviewerPanel": {
|
|
256
|
+
"type": "array",
|
|
257
|
+
"items": {
|
|
258
|
+
"type": "object",
|
|
259
|
+
"properties": {
|
|
260
|
+
"harness": {
|
|
261
|
+
"type": "string",
|
|
262
|
+
"minLength": 1,
|
|
263
|
+
"pattern": "\\S",
|
|
264
|
+
"description": "Explicit reviewer harness id; repeated harness ids are allowed so one provider can review through multiple requested models."
|
|
265
|
+
},
|
|
266
|
+
"model": {
|
|
267
|
+
"type": "string",
|
|
268
|
+
"minLength": 1,
|
|
269
|
+
"pattern": "\\S",
|
|
270
|
+
"description": "Per-reviewer model hint, passed to that harness only."
|
|
271
|
+
},
|
|
272
|
+
"effort": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"enum": [
|
|
275
|
+
"low",
|
|
276
|
+
"medium",
|
|
277
|
+
"high",
|
|
278
|
+
"xhigh",
|
|
279
|
+
"max"
|
|
280
|
+
],
|
|
281
|
+
"description": "Per-reviewer effort hint, passed to that harness only."
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
"required": [
|
|
285
|
+
"harness"
|
|
286
|
+
],
|
|
287
|
+
"additionalProperties": false,
|
|
288
|
+
"description": "One reviewer of an explicit reviewer panel."
|
|
289
|
+
},
|
|
290
|
+
"description": "Explicit reviewer panel used for the run."
|
|
291
|
+
},
|
|
292
|
+
"protectedPathApprovals": {
|
|
293
|
+
"type": "array",
|
|
294
|
+
"items": {
|
|
295
|
+
"type": "object",
|
|
296
|
+
"properties": {
|
|
297
|
+
"path": {
|
|
298
|
+
"type": "string",
|
|
299
|
+
"minLength": 1,
|
|
300
|
+
"pattern": "\\S",
|
|
301
|
+
"description": "Glob approved by the operator/user for this run; consumed only by the auto-protected gate/test path policy, not by built-in critical-path gates."
|
|
302
|
+
},
|
|
303
|
+
"reason": {
|
|
304
|
+
"$ref": "#/definitions/ControlRunDetail/properties/summary/properties/reviewerPanel/items/properties/model",
|
|
305
|
+
"description": "Optional human-readable reason for the approval."
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
"required": [
|
|
309
|
+
"path"
|
|
310
|
+
],
|
|
311
|
+
"additionalProperties": false,
|
|
312
|
+
"description": "Per-run typed operator approval allowing changes under an auto-protected gate/test path."
|
|
313
|
+
},
|
|
314
|
+
"description": "Per-run protected-path approvals supplied."
|
|
315
|
+
},
|
|
316
|
+
"n": {
|
|
317
|
+
"type": "integer",
|
|
318
|
+
"description": "Race width, when the run was a race."
|
|
319
|
+
},
|
|
320
|
+
"maxUsd": {
|
|
321
|
+
"type": [
|
|
322
|
+
"number",
|
|
323
|
+
"null"
|
|
324
|
+
],
|
|
325
|
+
"description": "USD cap for the run; null = no cap."
|
|
326
|
+
},
|
|
327
|
+
"spendUsd": {
|
|
328
|
+
"type": [
|
|
329
|
+
"number",
|
|
330
|
+
"null"
|
|
331
|
+
],
|
|
332
|
+
"description": "Settled spend in USD; null when unknown."
|
|
333
|
+
},
|
|
334
|
+
"spendEstimated": {
|
|
335
|
+
"type": "boolean",
|
|
336
|
+
"description": "True when spend is token-derived rather than natively reported."
|
|
337
|
+
},
|
|
338
|
+
"access": {
|
|
339
|
+
"type": "string",
|
|
340
|
+
"enum": [
|
|
341
|
+
"readonly",
|
|
342
|
+
"workspace_write",
|
|
343
|
+
"full",
|
|
344
|
+
"external_sandbox_full",
|
|
345
|
+
"inherit_native"
|
|
346
|
+
],
|
|
347
|
+
"description": "Access profile of the run: the effective profile when known, else the requested one (prefer requestedAccess/effectiveAccess)."
|
|
348
|
+
},
|
|
349
|
+
"requestedAccess": {
|
|
350
|
+
"$ref": "#/definitions/ControlRunDetail/properties/summary/properties/access",
|
|
351
|
+
"description": "Access profile the caller requested."
|
|
352
|
+
},
|
|
353
|
+
"effectiveAccess": {
|
|
354
|
+
"$ref": "#/definitions/ControlRunDetail/properties/summary/properties/access",
|
|
355
|
+
"description": "Access profile actually enforced by the engine."
|
|
356
|
+
},
|
|
357
|
+
"externalContextPolicy": {
|
|
358
|
+
"type": "string",
|
|
359
|
+
"enum": [
|
|
360
|
+
"off",
|
|
361
|
+
"auto",
|
|
362
|
+
"cached",
|
|
363
|
+
"live"
|
|
364
|
+
],
|
|
365
|
+
"description": "Requested web policy for the run."
|
|
366
|
+
},
|
|
367
|
+
"webRequired": {
|
|
368
|
+
"type": "boolean",
|
|
369
|
+
"description": "Whether the run required web evidence."
|
|
370
|
+
},
|
|
371
|
+
"webMode": {
|
|
372
|
+
"$ref": "#/definitions/ControlRunDetail/properties/summary/properties/externalContextPolicy",
|
|
373
|
+
"description": "Web policy actually executed by the selected route."
|
|
374
|
+
},
|
|
375
|
+
"webEvidence": {
|
|
376
|
+
"type": "object",
|
|
377
|
+
"properties": {
|
|
378
|
+
"required": {
|
|
379
|
+
"type": "boolean",
|
|
380
|
+
"default": false,
|
|
381
|
+
"description": "Whether the run required web evidence."
|
|
382
|
+
},
|
|
383
|
+
"mode": {
|
|
384
|
+
"$ref": "#/definitions/ControlRunDetail/properties/summary/properties/externalContextPolicy",
|
|
385
|
+
"default": "auto",
|
|
386
|
+
"description": "Requested external-context policy for the run."
|
|
387
|
+
},
|
|
388
|
+
"effectiveMode": {
|
|
389
|
+
"$ref": "#/definitions/ControlRunDetail/properties/summary/properties/externalContextPolicy",
|
|
390
|
+
"default": "auto",
|
|
391
|
+
"description": "Policy the selected route actually executed (disclosed upgrades, e.g. cached to live)."
|
|
392
|
+
},
|
|
393
|
+
"attempted": {
|
|
394
|
+
"type": "boolean",
|
|
395
|
+
"default": false,
|
|
396
|
+
"description": "Whether any web activity was attempted."
|
|
397
|
+
},
|
|
398
|
+
"satisfied": {
|
|
399
|
+
"type": "boolean",
|
|
400
|
+
"default": false,
|
|
401
|
+
"description": "Whether the web-evidence requirement was satisfied."
|
|
402
|
+
},
|
|
403
|
+
"status": {
|
|
404
|
+
"type": "string",
|
|
405
|
+
"enum": [
|
|
406
|
+
"none",
|
|
407
|
+
"attempted",
|
|
408
|
+
"satisfied",
|
|
409
|
+
"failed",
|
|
410
|
+
"unverified"
|
|
411
|
+
],
|
|
412
|
+
"default": "none",
|
|
413
|
+
"description": "Web-evidence verdict for the run."
|
|
414
|
+
},
|
|
415
|
+
"tool": {
|
|
416
|
+
"type": [
|
|
417
|
+
"string",
|
|
418
|
+
"null"
|
|
419
|
+
],
|
|
420
|
+
"default": null,
|
|
421
|
+
"description": "Web tool that produced the evidence, when any."
|
|
422
|
+
},
|
|
423
|
+
"target": {
|
|
424
|
+
"type": [
|
|
425
|
+
"string",
|
|
426
|
+
"null"
|
|
427
|
+
],
|
|
428
|
+
"default": null,
|
|
429
|
+
"description": "Redacted target (query/url) of the web activity, when any."
|
|
430
|
+
},
|
|
431
|
+
"errorSummary": {
|
|
432
|
+
"type": [
|
|
433
|
+
"string",
|
|
434
|
+
"null"
|
|
435
|
+
],
|
|
436
|
+
"default": null,
|
|
437
|
+
"description": "Redacted error detail when web activity failed."
|
|
438
|
+
},
|
|
439
|
+
"rawDetailRef": {
|
|
440
|
+
"type": [
|
|
441
|
+
"string",
|
|
442
|
+
"null"
|
|
443
|
+
],
|
|
444
|
+
"default": null,
|
|
445
|
+
"description": "Artifact path holding the raw (redacted) evidence detail."
|
|
446
|
+
},
|
|
447
|
+
"available": {
|
|
448
|
+
"type": "boolean",
|
|
449
|
+
"default": true,
|
|
450
|
+
"description": "False when the run predates the telemetry artifact; surfaces must render \"telemetry unavailable\"."
|
|
451
|
+
}
|
|
452
|
+
},
|
|
453
|
+
"additionalProperties": false,
|
|
454
|
+
"description": "Web evidence projected onto a run summary from the telemetry artifact.",
|
|
455
|
+
"default": {}
|
|
456
|
+
},
|
|
457
|
+
"toolPermissionPolicy": {
|
|
458
|
+
"type": "object",
|
|
459
|
+
"additionalProperties": {},
|
|
460
|
+
"description": "Tool allow/deny policy applied to the run."
|
|
461
|
+
},
|
|
462
|
+
"outputReadyState": {
|
|
463
|
+
"type": "string",
|
|
464
|
+
"enum": [
|
|
465
|
+
"pending",
|
|
466
|
+
"finalizing",
|
|
467
|
+
"ready",
|
|
468
|
+
"diagnostic"
|
|
469
|
+
],
|
|
470
|
+
"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).",
|
|
471
|
+
"default": "pending"
|
|
472
|
+
},
|
|
473
|
+
"toolWarningsTotal": {
|
|
474
|
+
"type": "integer",
|
|
475
|
+
"minimum": 0,
|
|
476
|
+
"default": 0,
|
|
477
|
+
"description": "Non-blocking tool warnings projected from the telemetry artifact."
|
|
478
|
+
},
|
|
479
|
+
"result": {
|
|
480
|
+
"type": "object",
|
|
481
|
+
"properties": {
|
|
482
|
+
"kind": {
|
|
483
|
+
"type": "string",
|
|
484
|
+
"enum": [
|
|
485
|
+
"patch",
|
|
486
|
+
"answer",
|
|
487
|
+
"plan",
|
|
488
|
+
"report",
|
|
489
|
+
"none"
|
|
490
|
+
],
|
|
491
|
+
"default": "none",
|
|
492
|
+
"description": "What the turn actually produced: a patch, an answer, a plan (no files changed), a report, or nothing."
|
|
493
|
+
},
|
|
494
|
+
"diffStat": {
|
|
495
|
+
"anyOf": [
|
|
496
|
+
{
|
|
497
|
+
"type": "object",
|
|
498
|
+
"properties": {
|
|
499
|
+
"files": {
|
|
500
|
+
"type": "integer",
|
|
501
|
+
"minimum": 0,
|
|
502
|
+
"description": "Files changed."
|
|
503
|
+
},
|
|
504
|
+
"additions": {
|
|
505
|
+
"type": "integer",
|
|
506
|
+
"minimum": 0,
|
|
507
|
+
"description": "Lines added."
|
|
508
|
+
},
|
|
509
|
+
"deletions": {
|
|
510
|
+
"type": "integer",
|
|
511
|
+
"minimum": 0,
|
|
512
|
+
"description": "Lines deleted."
|
|
513
|
+
}
|
|
514
|
+
},
|
|
515
|
+
"required": [
|
|
516
|
+
"files",
|
|
517
|
+
"additions",
|
|
518
|
+
"deletions"
|
|
519
|
+
],
|
|
520
|
+
"additionalProperties": false
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"type": "null"
|
|
524
|
+
}
|
|
525
|
+
],
|
|
526
|
+
"default": null,
|
|
527
|
+
"description": "Diff statistics; null unless a patch exists."
|
|
528
|
+
},
|
|
529
|
+
"blockers": {
|
|
530
|
+
"type": "integer",
|
|
531
|
+
"minimum": 0,
|
|
532
|
+
"default": 0,
|
|
533
|
+
"description": "Count of accepted blocking review findings."
|
|
534
|
+
},
|
|
535
|
+
"adopted": {
|
|
536
|
+
"type": [
|
|
537
|
+
"boolean",
|
|
538
|
+
"null"
|
|
539
|
+
],
|
|
540
|
+
"default": null,
|
|
541
|
+
"description": "True when the live in-place tree was mutated this turn (regardless of review); null when unknown."
|
|
542
|
+
},
|
|
543
|
+
"applyState": {
|
|
544
|
+
"type": "string",
|
|
545
|
+
"enum": [
|
|
546
|
+
"not_applied",
|
|
547
|
+
"applied",
|
|
548
|
+
"applied_review_blocked",
|
|
549
|
+
"reverted"
|
|
550
|
+
],
|
|
551
|
+
"description": "Honest application state of a run's changes: not_applied (no in-place mutation), applied (applied and review clean), applied_review_blocked (applied but review blocked/unconverged), or reverted.",
|
|
552
|
+
"default": "not_applied"
|
|
553
|
+
},
|
|
554
|
+
"preTurnSha": {
|
|
555
|
+
"type": [
|
|
556
|
+
"string",
|
|
557
|
+
"null"
|
|
558
|
+
],
|
|
559
|
+
"default": null,
|
|
560
|
+
"description": "Tree SHA before this turn mutated the in-place tree (revert restore target)."
|
|
561
|
+
},
|
|
562
|
+
"postTurnSha": {
|
|
563
|
+
"type": [
|
|
564
|
+
"string",
|
|
565
|
+
"null"
|
|
566
|
+
],
|
|
567
|
+
"default": null,
|
|
568
|
+
"description": "Tree SHA right after this turn's mutation; revert refuses if the working tree has diverged from this since."
|
|
569
|
+
},
|
|
570
|
+
"revertable": {
|
|
571
|
+
"type": "boolean",
|
|
572
|
+
"default": false,
|
|
573
|
+
"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."
|
|
574
|
+
}
|
|
575
|
+
},
|
|
576
|
+
"additionalProperties": false,
|
|
577
|
+
"description": "Honest terminal outcome of a run (what the turn actually did), projected from the work product and answer artifacts.",
|
|
578
|
+
"default": {}
|
|
579
|
+
},
|
|
580
|
+
"waitingOnUser": {
|
|
581
|
+
"type": "boolean",
|
|
582
|
+
"default": false,
|
|
583
|
+
"description": "True while at least one interactive question is awaiting the user's answer."
|
|
584
|
+
},
|
|
585
|
+
"route": {
|
|
586
|
+
"anyOf": [
|
|
587
|
+
{
|
|
588
|
+
"type": "object",
|
|
589
|
+
"properties": {
|
|
590
|
+
"requestedModel": {
|
|
591
|
+
"type": [
|
|
592
|
+
"string",
|
|
593
|
+
"null"
|
|
594
|
+
],
|
|
595
|
+
"default": null,
|
|
596
|
+
"description": "Model requested for the run."
|
|
597
|
+
},
|
|
598
|
+
"observedModel": {
|
|
599
|
+
"type": [
|
|
600
|
+
"string",
|
|
601
|
+
"null"
|
|
602
|
+
],
|
|
603
|
+
"default": null,
|
|
604
|
+
"description": "Model the harness stream actually reported."
|
|
605
|
+
},
|
|
606
|
+
"harnessId": {
|
|
607
|
+
"type": [
|
|
608
|
+
"string",
|
|
609
|
+
"null"
|
|
610
|
+
],
|
|
611
|
+
"default": null,
|
|
612
|
+
"description": "Harness that ran the final attempt."
|
|
613
|
+
},
|
|
614
|
+
"verified": {
|
|
615
|
+
"type": "boolean",
|
|
616
|
+
"default": false,
|
|
617
|
+
"description": "True only when an observed model was actually reported by the harness stream — never inferred from the request."
|
|
618
|
+
}
|
|
619
|
+
},
|
|
620
|
+
"additionalProperties": false,
|
|
621
|
+
"description": "Run-level route evidence projected from telemetry (requested vs observed model)."
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"type": "null"
|
|
625
|
+
}
|
|
626
|
+
],
|
|
627
|
+
"description": "Route evidence from telemetry; null when no telemetry exists (legacy runs).",
|
|
628
|
+
"default": null
|
|
629
|
+
},
|
|
630
|
+
"tests": {
|
|
631
|
+
"type": "array",
|
|
632
|
+
"items": {
|
|
633
|
+
"type": "string"
|
|
634
|
+
},
|
|
635
|
+
"description": "Test commands configured as gates."
|
|
636
|
+
},
|
|
637
|
+
"specId": {
|
|
638
|
+
"type": "string",
|
|
639
|
+
"description": "SpecPack id the run was held to."
|
|
640
|
+
},
|
|
641
|
+
"specHash": {
|
|
642
|
+
"type": "string",
|
|
643
|
+
"minLength": 1,
|
|
644
|
+
"description": "Content hash of the SpecPack the run was held to."
|
|
645
|
+
},
|
|
646
|
+
"createdAt": {
|
|
647
|
+
"type": "string",
|
|
648
|
+
"description": "When the run was created."
|
|
649
|
+
},
|
|
650
|
+
"startedAt": {
|
|
651
|
+
"type": "string",
|
|
652
|
+
"description": "When the run started."
|
|
653
|
+
},
|
|
654
|
+
"finishedAt": {
|
|
655
|
+
"type": "string",
|
|
656
|
+
"description": "When the run finished."
|
|
657
|
+
}
|
|
658
|
+
},
|
|
659
|
+
"required": [
|
|
660
|
+
"jobId",
|
|
661
|
+
"runId",
|
|
662
|
+
"state"
|
|
663
|
+
],
|
|
664
|
+
"additionalProperties": false,
|
|
665
|
+
"description": "Run summary row served by GET /runs and embedded in run detail: state, routing, budget, policies, and honest outcome."
|
|
666
|
+
},
|
|
667
|
+
"lastSeq": {
|
|
668
|
+
"type": "integer",
|
|
669
|
+
"minimum": 0,
|
|
670
|
+
"default": 0,
|
|
671
|
+
"description": "Highest event seq included in this snapshot; clients subscribe to the event stream from this cursor (snapshot-then-subscribe, no gaps, no dupes)."
|
|
672
|
+
},
|
|
673
|
+
"artifacts": {
|
|
674
|
+
"type": "array",
|
|
675
|
+
"items": {
|
|
676
|
+
"type": "object",
|
|
677
|
+
"properties": {
|
|
678
|
+
"path": {
|
|
679
|
+
"type": "string",
|
|
680
|
+
"description": "Artifact path relative to the run directory."
|
|
681
|
+
},
|
|
682
|
+
"kind": {
|
|
683
|
+
"type": "string",
|
|
684
|
+
"enum": [
|
|
685
|
+
"file",
|
|
686
|
+
"directory"
|
|
687
|
+
],
|
|
688
|
+
"description": "Whether the artifact is a file or a directory."
|
|
689
|
+
},
|
|
690
|
+
"bytes": {
|
|
691
|
+
"type": "integer",
|
|
692
|
+
"minimum": 0,
|
|
693
|
+
"description": "Size in bytes; absent for directories."
|
|
694
|
+
},
|
|
695
|
+
"mime": {
|
|
696
|
+
"type": "string",
|
|
697
|
+
"description": "MIME type derived from the extension; absent for directories."
|
|
698
|
+
}
|
|
699
|
+
},
|
|
700
|
+
"required": [
|
|
701
|
+
"path",
|
|
702
|
+
"kind"
|
|
703
|
+
],
|
|
704
|
+
"additionalProperties": false,
|
|
705
|
+
"description": "One artifact in the run's artifact tree."
|
|
706
|
+
},
|
|
707
|
+
"default": [],
|
|
708
|
+
"description": "Artifacts recorded in the run tree."
|
|
709
|
+
},
|
|
710
|
+
"primaryOutput": {
|
|
711
|
+
"anyOf": [
|
|
712
|
+
{
|
|
713
|
+
"type": "object",
|
|
714
|
+
"properties": {
|
|
715
|
+
"kind": {
|
|
716
|
+
"type": "string",
|
|
717
|
+
"enum": [
|
|
718
|
+
"answer",
|
|
719
|
+
"report",
|
|
720
|
+
"plan",
|
|
721
|
+
"summary",
|
|
722
|
+
"patch",
|
|
723
|
+
"diagnostic"
|
|
724
|
+
],
|
|
725
|
+
"description": "What kind of output this is: answer, report, plan, summary, patch, or diagnostic."
|
|
726
|
+
},
|
|
727
|
+
"path": {
|
|
728
|
+
"type": "string",
|
|
729
|
+
"description": "Artifact path of the output."
|
|
730
|
+
},
|
|
731
|
+
"text": {
|
|
732
|
+
"type": [
|
|
733
|
+
"string",
|
|
734
|
+
"null"
|
|
735
|
+
],
|
|
736
|
+
"default": null,
|
|
737
|
+
"description": "Inline text content, when loaded."
|
|
738
|
+
},
|
|
739
|
+
"bytes": {
|
|
740
|
+
"type": "integer",
|
|
741
|
+
"minimum": 0,
|
|
742
|
+
"description": "Size of the output in bytes."
|
|
743
|
+
}
|
|
744
|
+
},
|
|
745
|
+
"required": [
|
|
746
|
+
"kind",
|
|
747
|
+
"path"
|
|
748
|
+
],
|
|
749
|
+
"additionalProperties": false,
|
|
750
|
+
"description": "The run's primary user-facing output artifact."
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
"type": "null"
|
|
754
|
+
}
|
|
755
|
+
],
|
|
756
|
+
"description": "The run's primary user-facing output; null while pending.",
|
|
757
|
+
"default": null
|
|
758
|
+
},
|
|
759
|
+
"timeline": {
|
|
760
|
+
"type": "array",
|
|
761
|
+
"items": {
|
|
762
|
+
"type": "object",
|
|
763
|
+
"properties": {
|
|
764
|
+
"type": {
|
|
765
|
+
"type": "string",
|
|
766
|
+
"description": "Run event type."
|
|
767
|
+
},
|
|
768
|
+
"ts": {
|
|
769
|
+
"type": "string",
|
|
770
|
+
"description": "Event timestamp."
|
|
771
|
+
},
|
|
772
|
+
"harnessId": {
|
|
773
|
+
"type": [
|
|
774
|
+
"string",
|
|
775
|
+
"null"
|
|
776
|
+
],
|
|
777
|
+
"default": null,
|
|
778
|
+
"description": "Harness involved, when any."
|
|
779
|
+
},
|
|
780
|
+
"attemptId": {
|
|
781
|
+
"type": [
|
|
782
|
+
"string",
|
|
783
|
+
"null"
|
|
784
|
+
],
|
|
785
|
+
"default": null,
|
|
786
|
+
"description": "Attempt involved, when any."
|
|
787
|
+
},
|
|
788
|
+
"title": {
|
|
789
|
+
"type": "string",
|
|
790
|
+
"description": "Human-readable event title."
|
|
791
|
+
},
|
|
792
|
+
"detail": {
|
|
793
|
+
"type": [
|
|
794
|
+
"string",
|
|
795
|
+
"null"
|
|
796
|
+
],
|
|
797
|
+
"default": null,
|
|
798
|
+
"description": "Human-readable event detail."
|
|
799
|
+
},
|
|
800
|
+
"severity": {
|
|
801
|
+
"type": "string",
|
|
802
|
+
"enum": [
|
|
803
|
+
"info",
|
|
804
|
+
"warning",
|
|
805
|
+
"error"
|
|
806
|
+
],
|
|
807
|
+
"default": "info",
|
|
808
|
+
"description": "Display severity of the event."
|
|
809
|
+
},
|
|
810
|
+
"toolName": {
|
|
811
|
+
"type": [
|
|
812
|
+
"string",
|
|
813
|
+
"null"
|
|
814
|
+
],
|
|
815
|
+
"default": null,
|
|
816
|
+
"description": "Tool name for tool events."
|
|
817
|
+
},
|
|
818
|
+
"target": {
|
|
819
|
+
"type": [
|
|
820
|
+
"string",
|
|
821
|
+
"null"
|
|
822
|
+
],
|
|
823
|
+
"default": null,
|
|
824
|
+
"description": "Redacted tool target for tool events."
|
|
825
|
+
},
|
|
826
|
+
"errorSummary": {
|
|
827
|
+
"type": [
|
|
828
|
+
"string",
|
|
829
|
+
"null"
|
|
830
|
+
],
|
|
831
|
+
"default": null,
|
|
832
|
+
"description": "Redacted error detail for error events."
|
|
833
|
+
},
|
|
834
|
+
"rawRef": {
|
|
835
|
+
"type": [
|
|
836
|
+
"string",
|
|
837
|
+
"null"
|
|
838
|
+
],
|
|
839
|
+
"default": null,
|
|
840
|
+
"description": "Reference to the raw underlying event/artifact."
|
|
841
|
+
}
|
|
842
|
+
},
|
|
843
|
+
"required": [
|
|
844
|
+
"type",
|
|
845
|
+
"title"
|
|
846
|
+
],
|
|
847
|
+
"additionalProperties": false,
|
|
848
|
+
"description": "One projected timeline row of a run for display."
|
|
849
|
+
},
|
|
850
|
+
"default": [],
|
|
851
|
+
"description": "Projected timeline of run events."
|
|
852
|
+
},
|
|
853
|
+
"budget": {
|
|
854
|
+
"type": "object",
|
|
855
|
+
"properties": {
|
|
856
|
+
"maxUsd": {
|
|
857
|
+
"type": [
|
|
858
|
+
"number",
|
|
859
|
+
"null"
|
|
860
|
+
],
|
|
861
|
+
"default": null,
|
|
862
|
+
"description": "USD cap for the run; null = no cap."
|
|
863
|
+
},
|
|
864
|
+
"spendUsd": {
|
|
865
|
+
"type": [
|
|
866
|
+
"number",
|
|
867
|
+
"null"
|
|
868
|
+
],
|
|
869
|
+
"default": null,
|
|
870
|
+
"description": "Spend so far in USD; null when unknown."
|
|
871
|
+
},
|
|
872
|
+
"remainingUsd": {
|
|
873
|
+
"type": [
|
|
874
|
+
"number",
|
|
875
|
+
"null"
|
|
876
|
+
],
|
|
877
|
+
"default": null,
|
|
878
|
+
"description": "Remaining budget in USD; null when no cap or unknown spend."
|
|
879
|
+
},
|
|
880
|
+
"estimated": {
|
|
881
|
+
"type": "boolean",
|
|
882
|
+
"default": false,
|
|
883
|
+
"description": "True when spend is token-derived rather than natively reported."
|
|
884
|
+
},
|
|
885
|
+
"source": {
|
|
886
|
+
"type": "string",
|
|
887
|
+
"enum": [
|
|
888
|
+
"decision",
|
|
889
|
+
"events",
|
|
890
|
+
"settings",
|
|
891
|
+
"unknown"
|
|
892
|
+
],
|
|
893
|
+
"default": "unknown",
|
|
894
|
+
"description": "Where the snapshot came from: the decision record, live events, settings, or unknown."
|
|
895
|
+
}
|
|
896
|
+
},
|
|
897
|
+
"additionalProperties": false,
|
|
898
|
+
"description": "Budget snapshot for a run: cap, spend, and provenance.",
|
|
899
|
+
"default": {}
|
|
900
|
+
},
|
|
901
|
+
"finalSummary": {
|
|
902
|
+
"type": [
|
|
903
|
+
"string",
|
|
904
|
+
"null"
|
|
905
|
+
],
|
|
906
|
+
"default": null,
|
|
907
|
+
"description": "Final summary text; null when the run has none."
|
|
908
|
+
},
|
|
909
|
+
"decision": {
|
|
910
|
+
"anyOf": [
|
|
911
|
+
{
|
|
912
|
+
"type": "object",
|
|
913
|
+
"properties": {
|
|
914
|
+
"winner": {
|
|
915
|
+
"anyOf": [
|
|
916
|
+
{
|
|
917
|
+
"type": "string",
|
|
918
|
+
"minLength": 1,
|
|
919
|
+
"description": "Non-empty identifier string."
|
|
920
|
+
},
|
|
921
|
+
{
|
|
922
|
+
"type": "null"
|
|
923
|
+
}
|
|
924
|
+
],
|
|
925
|
+
"description": "Winning attempt/candidate id; null when nothing won."
|
|
926
|
+
},
|
|
927
|
+
"status": {
|
|
928
|
+
"type": "string",
|
|
929
|
+
"enum": [
|
|
930
|
+
"success",
|
|
931
|
+
"no_op",
|
|
932
|
+
"ungated",
|
|
933
|
+
"review_not_run",
|
|
934
|
+
"blocked",
|
|
935
|
+
"not_converged",
|
|
936
|
+
"stuck_no_progress",
|
|
937
|
+
"failed",
|
|
938
|
+
"exhausted",
|
|
939
|
+
"cancelled"
|
|
940
|
+
],
|
|
941
|
+
"description": "Terminal status of a run: success, no_op (nothing to change), ungated (no gates configured), review_not_run, blocked (accepted blocking findings), not_converged, stuck_no_progress, failed, exhausted (attempt/budget caps), or cancelled."
|
|
942
|
+
},
|
|
943
|
+
"outcome": {
|
|
944
|
+
"type": "string",
|
|
945
|
+
"enum": [
|
|
946
|
+
"ready",
|
|
947
|
+
"no_op",
|
|
948
|
+
"ungated",
|
|
949
|
+
"review_not_run",
|
|
950
|
+
"blocked"
|
|
951
|
+
],
|
|
952
|
+
"description": "Arbitration outcome for the winning candidate: ready (verified applyable), no_op (no changes), ungated (no gates configured), review_not_run, or blocked.",
|
|
953
|
+
"default": "blocked"
|
|
954
|
+
},
|
|
955
|
+
"why_winner": {
|
|
956
|
+
"type": "string",
|
|
957
|
+
"default": "",
|
|
958
|
+
"description": "Why the winner was chosen."
|
|
959
|
+
},
|
|
960
|
+
"why_not_others": {
|
|
961
|
+
"type": "object",
|
|
962
|
+
"additionalProperties": {
|
|
963
|
+
"type": "string"
|
|
964
|
+
},
|
|
965
|
+
"default": {},
|
|
966
|
+
"description": "Per-candidate reasons the others lost, keyed by candidate id."
|
|
967
|
+
},
|
|
968
|
+
"accepted_risks": {
|
|
969
|
+
"type": "array",
|
|
970
|
+
"items": {
|
|
971
|
+
"type": "string"
|
|
972
|
+
},
|
|
973
|
+
"default": [],
|
|
974
|
+
"description": "Risks explicitly accepted in the decision."
|
|
975
|
+
},
|
|
976
|
+
"final_checks": {
|
|
977
|
+
"type": "array",
|
|
978
|
+
"items": {
|
|
979
|
+
"type": "string"
|
|
980
|
+
},
|
|
981
|
+
"default": [],
|
|
982
|
+
"description": "Final checks performed before the decision."
|
|
983
|
+
},
|
|
984
|
+
"evidence_facts": {
|
|
985
|
+
"type": "array",
|
|
986
|
+
"items": {
|
|
987
|
+
"type": "string"
|
|
988
|
+
},
|
|
989
|
+
"default": [],
|
|
990
|
+
"description": "Evidence facts the decision rests on."
|
|
991
|
+
},
|
|
992
|
+
"budget_summary": {
|
|
993
|
+
"type": "object",
|
|
994
|
+
"properties": {
|
|
995
|
+
"spend_usd": {
|
|
996
|
+
"type": [
|
|
997
|
+
"number",
|
|
998
|
+
"null"
|
|
999
|
+
],
|
|
1000
|
+
"default": null,
|
|
1001
|
+
"description": "Total settled spend in USD; null when unknown."
|
|
1002
|
+
},
|
|
1003
|
+
"estimated": {
|
|
1004
|
+
"type": "boolean",
|
|
1005
|
+
"default": false,
|
|
1006
|
+
"description": "True when any of the spend is token-derived rather than natively reported."
|
|
1007
|
+
}
|
|
1008
|
+
},
|
|
1009
|
+
"additionalProperties": false,
|
|
1010
|
+
"default": {
|
|
1011
|
+
"spend_usd": null,
|
|
1012
|
+
"estimated": false
|
|
1013
|
+
},
|
|
1014
|
+
"description": "Settled spend for the run; estimates are disclosed, never presented as exact."
|
|
1015
|
+
},
|
|
1016
|
+
"apply_recommendation": {
|
|
1017
|
+
"type": "string",
|
|
1018
|
+
"enum": [
|
|
1019
|
+
"apply",
|
|
1020
|
+
"inspect",
|
|
1021
|
+
"continue",
|
|
1022
|
+
"split_task",
|
|
1023
|
+
"human_review"
|
|
1024
|
+
],
|
|
1025
|
+
"description": "Recommended next action for the run's work product: apply it, inspect first, continue working, split the task, or get human review.",
|
|
1026
|
+
"default": "inspect"
|
|
1027
|
+
},
|
|
1028
|
+
"verification_basis": {
|
|
1029
|
+
"type": "string",
|
|
1030
|
+
"enum": [
|
|
1031
|
+
"none",
|
|
1032
|
+
"cross_family_review",
|
|
1033
|
+
"both"
|
|
1034
|
+
],
|
|
1035
|
+
"description": "What backed an applyable outcome: none (non-applyable), cross_family_review (a clean cross-family verified review), or both (deterministic gates and that review).",
|
|
1036
|
+
"default": "none"
|
|
1037
|
+
},
|
|
1038
|
+
"final_verify": {
|
|
1039
|
+
"anyOf": [
|
|
1040
|
+
{
|
|
1041
|
+
"type": "object",
|
|
1042
|
+
"properties": {
|
|
1043
|
+
"attempted": {
|
|
1044
|
+
"type": "boolean",
|
|
1045
|
+
"description": "Whether the final verify was attempted."
|
|
1046
|
+
},
|
|
1047
|
+
"base_sha": {
|
|
1048
|
+
"type": [
|
|
1049
|
+
"string",
|
|
1050
|
+
"null"
|
|
1051
|
+
],
|
|
1052
|
+
"default": null,
|
|
1053
|
+
"description": "Base SHA the verify tree was created from (the winner envelope's base)."
|
|
1054
|
+
},
|
|
1055
|
+
"applied_cleanly": {
|
|
1056
|
+
"type": [
|
|
1057
|
+
"boolean",
|
|
1058
|
+
"null"
|
|
1059
|
+
],
|
|
1060
|
+
"default": null,
|
|
1061
|
+
"description": "Whether the patch applied cleanly onto the fresh tree; null when not attempted."
|
|
1062
|
+
},
|
|
1063
|
+
"gates_passed": {
|
|
1064
|
+
"type": [
|
|
1065
|
+
"boolean",
|
|
1066
|
+
"null"
|
|
1067
|
+
],
|
|
1068
|
+
"default": null,
|
|
1069
|
+
"description": "Whether the re-run deterministic gates passed; null when not attempted."
|
|
1070
|
+
},
|
|
1071
|
+
"gates": {
|
|
1072
|
+
"type": "array",
|
|
1073
|
+
"items": {
|
|
1074
|
+
"type": "object",
|
|
1075
|
+
"properties": {
|
|
1076
|
+
"id": {
|
|
1077
|
+
"type": "string",
|
|
1078
|
+
"description": "Gate id."
|
|
1079
|
+
},
|
|
1080
|
+
"status": {
|
|
1081
|
+
"type": "string",
|
|
1082
|
+
"description": "Gate status."
|
|
1083
|
+
}
|
|
1084
|
+
},
|
|
1085
|
+
"required": [
|
|
1086
|
+
"id",
|
|
1087
|
+
"status"
|
|
1088
|
+
],
|
|
1089
|
+
"additionalProperties": false
|
|
1090
|
+
},
|
|
1091
|
+
"default": [],
|
|
1092
|
+
"description": "Per-gate re-run results."
|
|
1093
|
+
},
|
|
1094
|
+
"duration_ms": {
|
|
1095
|
+
"anyOf": [
|
|
1096
|
+
{
|
|
1097
|
+
"type": "integer",
|
|
1098
|
+
"minimum": 0
|
|
1099
|
+
},
|
|
1100
|
+
{
|
|
1101
|
+
"type": "null"
|
|
1102
|
+
}
|
|
1103
|
+
],
|
|
1104
|
+
"default": null,
|
|
1105
|
+
"description": "How long the verify took, in milliseconds."
|
|
1106
|
+
},
|
|
1107
|
+
"reason": {
|
|
1108
|
+
"type": [
|
|
1109
|
+
"string",
|
|
1110
|
+
"null"
|
|
1111
|
+
],
|
|
1112
|
+
"default": null,
|
|
1113
|
+
"description": "Typed reason when attempted=false (e.g. no_patch, no_base_sha) or a failure detail."
|
|
1114
|
+
}
|
|
1115
|
+
},
|
|
1116
|
+
"required": [
|
|
1117
|
+
"attempted"
|
|
1118
|
+
],
|
|
1119
|
+
"additionalProperties": false,
|
|
1120
|
+
"description": "FinalVerifier record: the winner's patch was applied onto a fresh worktree at the candidate's own base SHA and the deterministic gates were re-run there; no model involvement."
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
"type": "null"
|
|
1124
|
+
}
|
|
1125
|
+
],
|
|
1126
|
+
"description": "Final verify record; present only for write runs with a patch (or a recorded reason why the verifier did not run).",
|
|
1127
|
+
"default": null
|
|
1128
|
+
}
|
|
1129
|
+
},
|
|
1130
|
+
"required": [
|
|
1131
|
+
"winner",
|
|
1132
|
+
"status"
|
|
1133
|
+
],
|
|
1134
|
+
"additionalProperties": false,
|
|
1135
|
+
"description": "The arbitration decision for a run: winner, status/outcome, reasons, spend, and the verification that backs applyability."
|
|
1136
|
+
},
|
|
1137
|
+
{
|
|
1138
|
+
"type": "null"
|
|
1139
|
+
}
|
|
1140
|
+
],
|
|
1141
|
+
"description": "The arbitration decision; null before arbitration.",
|
|
1142
|
+
"default": null
|
|
1143
|
+
},
|
|
1144
|
+
"operatorDecision": {
|
|
1145
|
+
"anyOf": [
|
|
1146
|
+
{
|
|
1147
|
+
"type": "object",
|
|
1148
|
+
"properties": {
|
|
1149
|
+
"action": {
|
|
1150
|
+
"type": "string",
|
|
1151
|
+
"description": "Operator decision action (e.g. accept_risk, override)."
|
|
1152
|
+
},
|
|
1153
|
+
"decidedAt": {
|
|
1154
|
+
"type": [
|
|
1155
|
+
"string",
|
|
1156
|
+
"null"
|
|
1157
|
+
],
|
|
1158
|
+
"default": null,
|
|
1159
|
+
"description": "When the decision was made."
|
|
1160
|
+
}
|
|
1161
|
+
},
|
|
1162
|
+
"required": [
|
|
1163
|
+
"action"
|
|
1164
|
+
],
|
|
1165
|
+
"additionalProperties": false
|
|
1166
|
+
},
|
|
1167
|
+
{
|
|
1168
|
+
"type": "null"
|
|
1169
|
+
}
|
|
1170
|
+
],
|
|
1171
|
+
"default": null,
|
|
1172
|
+
"description": "Persisted operator unblock decision (accept_risk/override), hash-bound; null when none was made."
|
|
1173
|
+
},
|
|
1174
|
+
"workProduct": {
|
|
1175
|
+
"anyOf": [
|
|
1176
|
+
{
|
|
1177
|
+
"type": "object",
|
|
1178
|
+
"properties": {
|
|
1179
|
+
"id": {
|
|
1180
|
+
"type": "string",
|
|
1181
|
+
"minLength": 1,
|
|
1182
|
+
"description": "Work product id."
|
|
1183
|
+
},
|
|
1184
|
+
"kind": {
|
|
1185
|
+
"type": "string",
|
|
1186
|
+
"enum": [
|
|
1187
|
+
"patch",
|
|
1188
|
+
"new_repo",
|
|
1189
|
+
"report"
|
|
1190
|
+
],
|
|
1191
|
+
"description": "Kind of work product a run produces: a patch against the base tree, a newly created repository, or a report document."
|
|
1192
|
+
},
|
|
1193
|
+
"source_task_id": {
|
|
1194
|
+
"type": "string",
|
|
1195
|
+
"minLength": 1,
|
|
1196
|
+
"description": "Task the work product came from."
|
|
1197
|
+
},
|
|
1198
|
+
"producer_attempt_id": {
|
|
1199
|
+
"$ref": "#/definitions/ControlRunDetail/properties/decision/anyOf/0/properties/winner/anyOf/0",
|
|
1200
|
+
"description": "Attempt that produced it, when known."
|
|
1201
|
+
},
|
|
1202
|
+
"evidence_dir": {
|
|
1203
|
+
"type": "string",
|
|
1204
|
+
"description": "Directory holding run evidence artifacts."
|
|
1205
|
+
},
|
|
1206
|
+
"files": {
|
|
1207
|
+
"type": "object",
|
|
1208
|
+
"additionalProperties": {
|
|
1209
|
+
"type": "string"
|
|
1210
|
+
},
|
|
1211
|
+
"default": {},
|
|
1212
|
+
"description": "Kind-specific file payload, e.g. artifact name to path (validated loosely here; specialized per kind by callers)."
|
|
1213
|
+
},
|
|
1214
|
+
"meta": {
|
|
1215
|
+
"type": "object",
|
|
1216
|
+
"additionalProperties": {},
|
|
1217
|
+
"default": {},
|
|
1218
|
+
"description": "Kind-specific metadata."
|
|
1219
|
+
}
|
|
1220
|
+
},
|
|
1221
|
+
"required": [
|
|
1222
|
+
"id",
|
|
1223
|
+
"kind",
|
|
1224
|
+
"source_task_id"
|
|
1225
|
+
],
|
|
1226
|
+
"additionalProperties": false,
|
|
1227
|
+
"description": "The deliverable a run produced (patch, new repo, or report), referenced by apply/delivery verbs."
|
|
1228
|
+
},
|
|
1229
|
+
{
|
|
1230
|
+
"type": "null"
|
|
1231
|
+
}
|
|
1232
|
+
],
|
|
1233
|
+
"description": "The run's work product; null when none was produced.",
|
|
1234
|
+
"default": null
|
|
1235
|
+
},
|
|
1236
|
+
"applyEligibility": {
|
|
1237
|
+
"anyOf": [
|
|
1238
|
+
{
|
|
1239
|
+
"type": "object",
|
|
1240
|
+
"properties": {
|
|
1241
|
+
"eligible": {
|
|
1242
|
+
"type": "boolean",
|
|
1243
|
+
"description": "True when the apply gate would accept this run's patch right now."
|
|
1244
|
+
},
|
|
1245
|
+
"state": {
|
|
1246
|
+
"type": [
|
|
1247
|
+
"string",
|
|
1248
|
+
"null"
|
|
1249
|
+
],
|
|
1250
|
+
"description": "The gate's state classification (e.g. blocked | ungated | review_not_run | no_op | ok) when known."
|
|
1251
|
+
},
|
|
1252
|
+
"reason": {
|
|
1253
|
+
"type": [
|
|
1254
|
+
"string",
|
|
1255
|
+
"null"
|
|
1256
|
+
],
|
|
1257
|
+
"description": "The gate's refusal text when not eligible (null when eligible)."
|
|
1258
|
+
},
|
|
1259
|
+
"requiredAction": {
|
|
1260
|
+
"type": [
|
|
1261
|
+
"string",
|
|
1262
|
+
"null"
|
|
1263
|
+
],
|
|
1264
|
+
"description": "Honest guidance for what actually unblocks apply (typed operator decision, add gates, re-run, or nothing to apply)."
|
|
1265
|
+
}
|
|
1266
|
+
},
|
|
1267
|
+
"required": [
|
|
1268
|
+
"eligible",
|
|
1269
|
+
"state",
|
|
1270
|
+
"reason",
|
|
1271
|
+
"requiredAction"
|
|
1272
|
+
],
|
|
1273
|
+
"additionalProperties": false,
|
|
1274
|
+
"description": "Derived apply-gate verdict for a run's WorkProduct (single producer in the delivery gate)."
|
|
1275
|
+
},
|
|
1276
|
+
{
|
|
1277
|
+
"type": "null"
|
|
1278
|
+
}
|
|
1279
|
+
],
|
|
1280
|
+
"description": "Derived apply-gate verdict (single producer: the delivery gate); null when the run has no patch artifact.",
|
|
1281
|
+
"default": null
|
|
1282
|
+
},
|
|
1283
|
+
"reviewFindings": {
|
|
1284
|
+
"type": "array",
|
|
1285
|
+
"items": {
|
|
1286
|
+
"type": "object",
|
|
1287
|
+
"properties": {
|
|
1288
|
+
"id": {
|
|
1289
|
+
"type": "string",
|
|
1290
|
+
"minLength": 1,
|
|
1291
|
+
"description": "Finding id."
|
|
1292
|
+
},
|
|
1293
|
+
"severity": {
|
|
1294
|
+
"type": "string",
|
|
1295
|
+
"enum": [
|
|
1296
|
+
"BLOCK",
|
|
1297
|
+
"FIX_FIRST",
|
|
1298
|
+
"WARN",
|
|
1299
|
+
"NIT",
|
|
1300
|
+
"OUT_OF_SCOPE",
|
|
1301
|
+
"INSUFFICIENT_EVIDENCE",
|
|
1302
|
+
"NEEDS_HUMAN"
|
|
1303
|
+
],
|
|
1304
|
+
"description": "Reviewer-assigned severity of a finding: BLOCK and FIX_FIRST can block convergence when accepted with evidence, WARN/NIT are advisory, OUT_OF_SCOPE and INSUFFICIENT_EVIDENCE are triage verdicts, NEEDS_HUMAN escalates to a human decision."
|
|
1305
|
+
},
|
|
1306
|
+
"category": {
|
|
1307
|
+
"type": "string",
|
|
1308
|
+
"enum": [
|
|
1309
|
+
"correctness",
|
|
1310
|
+
"regression",
|
|
1311
|
+
"security",
|
|
1312
|
+
"performance",
|
|
1313
|
+
"maintainability",
|
|
1314
|
+
"test_gap",
|
|
1315
|
+
"spec_gap",
|
|
1316
|
+
"deploy",
|
|
1317
|
+
"architecture",
|
|
1318
|
+
"ux"
|
|
1319
|
+
],
|
|
1320
|
+
"description": "Subject-matter category of a review finding."
|
|
1321
|
+
},
|
|
1322
|
+
"claim": {
|
|
1323
|
+
"type": "string",
|
|
1324
|
+
"description": "The reviewer's claim, stated concretely."
|
|
1325
|
+
},
|
|
1326
|
+
"linked_acceptance_criteria": {
|
|
1327
|
+
"type": "array",
|
|
1328
|
+
"items": {
|
|
1329
|
+
"$ref": "#/definitions/ControlRunDetail/properties/decision/anyOf/0/properties/winner/anyOf/0"
|
|
1330
|
+
},
|
|
1331
|
+
"default": [],
|
|
1332
|
+
"description": "Ids of acceptance criteria this finding relates to."
|
|
1333
|
+
},
|
|
1334
|
+
"evidence": {
|
|
1335
|
+
"type": "object",
|
|
1336
|
+
"properties": {
|
|
1337
|
+
"files": {
|
|
1338
|
+
"type": "array",
|
|
1339
|
+
"items": {
|
|
1340
|
+
"type": "object",
|
|
1341
|
+
"properties": {
|
|
1342
|
+
"path": {
|
|
1343
|
+
"type": "string",
|
|
1344
|
+
"description": "Repo-relative file path."
|
|
1345
|
+
},
|
|
1346
|
+
"lines": {
|
|
1347
|
+
"type": [
|
|
1348
|
+
"string",
|
|
1349
|
+
"null"
|
|
1350
|
+
],
|
|
1351
|
+
"default": null,
|
|
1352
|
+
"description": "Line range in the file (e.g. \"10-42\"); null when the whole file is cited."
|
|
1353
|
+
}
|
|
1354
|
+
},
|
|
1355
|
+
"required": [
|
|
1356
|
+
"path"
|
|
1357
|
+
],
|
|
1358
|
+
"additionalProperties": false,
|
|
1359
|
+
"description": "File citation supporting a finding."
|
|
1360
|
+
},
|
|
1361
|
+
"default": [],
|
|
1362
|
+
"description": "File citations."
|
|
1363
|
+
},
|
|
1364
|
+
"diff_hunks": {
|
|
1365
|
+
"type": "array",
|
|
1366
|
+
"items": {
|
|
1367
|
+
"type": "string"
|
|
1368
|
+
},
|
|
1369
|
+
"default": [],
|
|
1370
|
+
"description": "Diff hunks quoted as evidence."
|
|
1371
|
+
},
|
|
1372
|
+
"commands": {
|
|
1373
|
+
"type": "array",
|
|
1374
|
+
"items": {
|
|
1375
|
+
"type": "object",
|
|
1376
|
+
"properties": {
|
|
1377
|
+
"command": {
|
|
1378
|
+
"type": "string",
|
|
1379
|
+
"description": "Command whose output supports the finding."
|
|
1380
|
+
}
|
|
1381
|
+
},
|
|
1382
|
+
"required": [
|
|
1383
|
+
"command"
|
|
1384
|
+
],
|
|
1385
|
+
"additionalProperties": false,
|
|
1386
|
+
"description": "Command citation supporting a finding."
|
|
1387
|
+
},
|
|
1388
|
+
"default": [],
|
|
1389
|
+
"description": "Commands whose output supports the finding."
|
|
1390
|
+
},
|
|
1391
|
+
"logs": {
|
|
1392
|
+
"type": "array",
|
|
1393
|
+
"items": {
|
|
1394
|
+
"type": "object",
|
|
1395
|
+
"properties": {
|
|
1396
|
+
"path": {
|
|
1397
|
+
"type": "string",
|
|
1398
|
+
"description": "Log file path."
|
|
1399
|
+
}
|
|
1400
|
+
},
|
|
1401
|
+
"required": [
|
|
1402
|
+
"path"
|
|
1403
|
+
],
|
|
1404
|
+
"additionalProperties": false
|
|
1405
|
+
},
|
|
1406
|
+
"default": [],
|
|
1407
|
+
"description": "Log files cited as evidence."
|
|
1408
|
+
}
|
|
1409
|
+
},
|
|
1410
|
+
"additionalProperties": false,
|
|
1411
|
+
"description": "Evidence backing a finding; a finding without evidence cannot block.",
|
|
1412
|
+
"default": {}
|
|
1413
|
+
},
|
|
1414
|
+
"proposed_fix": {
|
|
1415
|
+
"type": [
|
|
1416
|
+
"string",
|
|
1417
|
+
"null"
|
|
1418
|
+
],
|
|
1419
|
+
"default": null,
|
|
1420
|
+
"description": "Reviewer-proposed fix; null when none was offered."
|
|
1421
|
+
},
|
|
1422
|
+
"reviewer": {
|
|
1423
|
+
"type": "object",
|
|
1424
|
+
"properties": {
|
|
1425
|
+
"harness_id": {
|
|
1426
|
+
"type": "string",
|
|
1427
|
+
"minLength": 1,
|
|
1428
|
+
"description": "Harness that produced the review."
|
|
1429
|
+
},
|
|
1430
|
+
"requested_model": {
|
|
1431
|
+
"type": [
|
|
1432
|
+
"string",
|
|
1433
|
+
"null"
|
|
1434
|
+
],
|
|
1435
|
+
"default": null,
|
|
1436
|
+
"description": "Model requested for the reviewer route."
|
|
1437
|
+
},
|
|
1438
|
+
"requested_effort": {
|
|
1439
|
+
"type": [
|
|
1440
|
+
"string",
|
|
1441
|
+
"null"
|
|
1442
|
+
],
|
|
1443
|
+
"default": null,
|
|
1444
|
+
"description": "Reasoning effort requested for the reviewer route."
|
|
1445
|
+
},
|
|
1446
|
+
"observed_model": {
|
|
1447
|
+
"type": [
|
|
1448
|
+
"string",
|
|
1449
|
+
"null"
|
|
1450
|
+
],
|
|
1451
|
+
"default": null,
|
|
1452
|
+
"description": "Model the harness actually reported using."
|
|
1453
|
+
},
|
|
1454
|
+
"route_proof_status": {
|
|
1455
|
+
"type": "string",
|
|
1456
|
+
"enum": [
|
|
1457
|
+
"verified",
|
|
1458
|
+
"accepted_model_arg",
|
|
1459
|
+
"unverified",
|
|
1460
|
+
"same_model_fallback"
|
|
1461
|
+
],
|
|
1462
|
+
"description": "How strongly the executed route is proven: verified (observed evidence matches the request), accepted_model_arg (the requested model arg was accepted without stream evidence), unverified, or same_model_fallback (a fallback landed on the same model).",
|
|
1463
|
+
"default": "unverified"
|
|
1464
|
+
}
|
|
1465
|
+
},
|
|
1466
|
+
"required": [
|
|
1467
|
+
"harness_id"
|
|
1468
|
+
],
|
|
1469
|
+
"additionalProperties": false,
|
|
1470
|
+
"description": "Who reviewed: the harness/model route and its verification status."
|
|
1471
|
+
},
|
|
1472
|
+
"status": {
|
|
1473
|
+
"type": "string",
|
|
1474
|
+
"enum": [
|
|
1475
|
+
"proposed",
|
|
1476
|
+
"accepted",
|
|
1477
|
+
"rebutted",
|
|
1478
|
+
"fixed",
|
|
1479
|
+
"accepted_risk",
|
|
1480
|
+
"duplicate",
|
|
1481
|
+
"stale",
|
|
1482
|
+
"out_of_scope",
|
|
1483
|
+
"insufficient_evidence"
|
|
1484
|
+
],
|
|
1485
|
+
"description": "Lifecycle status of a finding, from proposed through accepted/rebutted/fixed to terminal triage states (accepted_risk, duplicate, stale, out_of_scope, insufficient_evidence).",
|
|
1486
|
+
"default": "proposed"
|
|
1487
|
+
},
|
|
1488
|
+
"revalidation_note": {
|
|
1489
|
+
"type": "string",
|
|
1490
|
+
"description": "Note recorded when the finding was revalidated against a changed tree."
|
|
1491
|
+
}
|
|
1492
|
+
},
|
|
1493
|
+
"required": [
|
|
1494
|
+
"id",
|
|
1495
|
+
"severity",
|
|
1496
|
+
"category",
|
|
1497
|
+
"claim",
|
|
1498
|
+
"reviewer"
|
|
1499
|
+
],
|
|
1500
|
+
"additionalProperties": false,
|
|
1501
|
+
"description": "One evidence-backed review finding produced by a reviewer harness."
|
|
1502
|
+
},
|
|
1503
|
+
"default": [],
|
|
1504
|
+
"description": "Review findings recorded for the run."
|
|
1505
|
+
},
|
|
1506
|
+
"pendingInteractions": {
|
|
1507
|
+
"type": "array",
|
|
1508
|
+
"items": {
|
|
1509
|
+
"type": "object",
|
|
1510
|
+
"properties": {
|
|
1511
|
+
"interactionId": {
|
|
1512
|
+
"type": "string",
|
|
1513
|
+
"minLength": 1,
|
|
1514
|
+
"description": "Interaction id used to answer."
|
|
1515
|
+
},
|
|
1516
|
+
"runId": {
|
|
1517
|
+
"type": "string",
|
|
1518
|
+
"minLength": 1,
|
|
1519
|
+
"description": "Run the interaction belongs to."
|
|
1520
|
+
},
|
|
1521
|
+
"attemptId": {
|
|
1522
|
+
"type": [
|
|
1523
|
+
"string",
|
|
1524
|
+
"null"
|
|
1525
|
+
],
|
|
1526
|
+
"default": null,
|
|
1527
|
+
"description": "Attempt the interaction was raised in, when known."
|
|
1528
|
+
},
|
|
1529
|
+
"harnessId": {
|
|
1530
|
+
"type": [
|
|
1531
|
+
"string",
|
|
1532
|
+
"null"
|
|
1533
|
+
],
|
|
1534
|
+
"default": null,
|
|
1535
|
+
"description": "Harness that raised the interaction."
|
|
1536
|
+
},
|
|
1537
|
+
"sourceTool": {
|
|
1538
|
+
"type": [
|
|
1539
|
+
"string",
|
|
1540
|
+
"null"
|
|
1541
|
+
],
|
|
1542
|
+
"default": null,
|
|
1543
|
+
"description": "Native tool that raised the request."
|
|
1544
|
+
},
|
|
1545
|
+
"questions": {
|
|
1546
|
+
"type": "array",
|
|
1547
|
+
"items": {
|
|
1548
|
+
"type": "object",
|
|
1549
|
+
"properties": {
|
|
1550
|
+
"id": {
|
|
1551
|
+
"type": "string",
|
|
1552
|
+
"minLength": 1,
|
|
1553
|
+
"description": "Question id."
|
|
1554
|
+
},
|
|
1555
|
+
"question": {
|
|
1556
|
+
"type": "string",
|
|
1557
|
+
"description": "The question text."
|
|
1558
|
+
},
|
|
1559
|
+
"header": {
|
|
1560
|
+
"type": [
|
|
1561
|
+
"string",
|
|
1562
|
+
"null"
|
|
1563
|
+
],
|
|
1564
|
+
"default": null,
|
|
1565
|
+
"description": "Short chip/header text some harnesses attach to a question."
|
|
1566
|
+
},
|
|
1567
|
+
"options": {
|
|
1568
|
+
"type": "array",
|
|
1569
|
+
"items": {
|
|
1570
|
+
"type": "object",
|
|
1571
|
+
"properties": {
|
|
1572
|
+
"label": {
|
|
1573
|
+
"type": "string",
|
|
1574
|
+
"description": "Option label shown to the user."
|
|
1575
|
+
},
|
|
1576
|
+
"description": {
|
|
1577
|
+
"type": [
|
|
1578
|
+
"string",
|
|
1579
|
+
"null"
|
|
1580
|
+
],
|
|
1581
|
+
"default": null,
|
|
1582
|
+
"description": "Optional longer explanation of the option."
|
|
1583
|
+
}
|
|
1584
|
+
},
|
|
1585
|
+
"required": [
|
|
1586
|
+
"label"
|
|
1587
|
+
],
|
|
1588
|
+
"additionalProperties": false,
|
|
1589
|
+
"description": "One multiple-choice option of an interactive question."
|
|
1590
|
+
},
|
|
1591
|
+
"default": [],
|
|
1592
|
+
"description": "Selectable options; empty for free-text-only questions."
|
|
1593
|
+
},
|
|
1594
|
+
"multi_select": {
|
|
1595
|
+
"type": "boolean",
|
|
1596
|
+
"default": false,
|
|
1597
|
+
"description": "Whether multiple options may be selected."
|
|
1598
|
+
}
|
|
1599
|
+
},
|
|
1600
|
+
"required": [
|
|
1601
|
+
"id",
|
|
1602
|
+
"question"
|
|
1603
|
+
],
|
|
1604
|
+
"additionalProperties": false,
|
|
1605
|
+
"description": "One question of an interactive user-input request."
|
|
1606
|
+
},
|
|
1607
|
+
"default": [],
|
|
1608
|
+
"description": "Questions awaiting answers."
|
|
1609
|
+
},
|
|
1610
|
+
"requestedAt": {
|
|
1611
|
+
"type": "string",
|
|
1612
|
+
"description": "When the interaction was requested."
|
|
1613
|
+
},
|
|
1614
|
+
"timeoutAt": {
|
|
1615
|
+
"type": [
|
|
1616
|
+
"string",
|
|
1617
|
+
"null"
|
|
1618
|
+
],
|
|
1619
|
+
"default": null,
|
|
1620
|
+
"description": "When the interaction times out into a benign decline; null = no timeout."
|
|
1621
|
+
}
|
|
1622
|
+
},
|
|
1623
|
+
"required": [
|
|
1624
|
+
"interactionId",
|
|
1625
|
+
"runId",
|
|
1626
|
+
"requestedAt"
|
|
1627
|
+
],
|
|
1628
|
+
"additionalProperties": false,
|
|
1629
|
+
"description": "A live interactive question awaiting the user's answer (snapshot projection)."
|
|
1630
|
+
},
|
|
1631
|
+
"default": [],
|
|
1632
|
+
"description": "Interactive questions currently awaiting answers."
|
|
1633
|
+
},
|
|
1634
|
+
"orchestrate": {
|
|
1635
|
+
"anyOf": [
|
|
1636
|
+
{
|
|
1637
|
+
"type": "object",
|
|
1638
|
+
"properties": {
|
|
1639
|
+
"steps": {
|
|
1640
|
+
"type": "array",
|
|
1641
|
+
"items": {
|
|
1642
|
+
"type": "object",
|
|
1643
|
+
"properties": {
|
|
1644
|
+
"index": {
|
|
1645
|
+
"type": "integer",
|
|
1646
|
+
"minimum": 0,
|
|
1647
|
+
"description": "Position of the step in the plan."
|
|
1648
|
+
},
|
|
1649
|
+
"tool": {
|
|
1650
|
+
"type": "string",
|
|
1651
|
+
"enum": [
|
|
1652
|
+
"start_run",
|
|
1653
|
+
"race",
|
|
1654
|
+
"status",
|
|
1655
|
+
"answer_question",
|
|
1656
|
+
"apply",
|
|
1657
|
+
"review"
|
|
1658
|
+
],
|
|
1659
|
+
"description": "Tool in the orchestrate planner's belt, mapping 1:1 onto engine entry points: start_run, race (best-of-N), status, answer_question, apply, and review."
|
|
1660
|
+
},
|
|
1661
|
+
"risk": {
|
|
1662
|
+
"type": "string",
|
|
1663
|
+
"enum": [
|
|
1664
|
+
"safe",
|
|
1665
|
+
"risky"
|
|
1666
|
+
],
|
|
1667
|
+
"description": "Risk class of the step: safe (no live-tree mutation) or risky."
|
|
1668
|
+
},
|
|
1669
|
+
"status": {
|
|
1670
|
+
"type": "string",
|
|
1671
|
+
"enum": [
|
|
1672
|
+
"pending",
|
|
1673
|
+
"running",
|
|
1674
|
+
"done",
|
|
1675
|
+
"skipped",
|
|
1676
|
+
"blocked",
|
|
1677
|
+
"failed"
|
|
1678
|
+
],
|
|
1679
|
+
"description": "Executor status of one plan step: pending, running, done, skipped, blocked (risky step awaiting a human), or failed."
|
|
1680
|
+
},
|
|
1681
|
+
"run_id": {
|
|
1682
|
+
"type": [
|
|
1683
|
+
"string",
|
|
1684
|
+
"null"
|
|
1685
|
+
],
|
|
1686
|
+
"default": null,
|
|
1687
|
+
"description": "Sub-run id this step started/targeted, when known."
|
|
1688
|
+
},
|
|
1689
|
+
"detail": {
|
|
1690
|
+
"type": [
|
|
1691
|
+
"string",
|
|
1692
|
+
"null"
|
|
1693
|
+
],
|
|
1694
|
+
"default": null,
|
|
1695
|
+
"description": "Human-readable step detail."
|
|
1696
|
+
}
|
|
1697
|
+
},
|
|
1698
|
+
"required": [
|
|
1699
|
+
"index",
|
|
1700
|
+
"tool",
|
|
1701
|
+
"risk",
|
|
1702
|
+
"status"
|
|
1703
|
+
],
|
|
1704
|
+
"additionalProperties": false
|
|
1705
|
+
},
|
|
1706
|
+
"default": [],
|
|
1707
|
+
"description": "Per-step outcomes, in plan order."
|
|
1708
|
+
},
|
|
1709
|
+
"autonomy": {
|
|
1710
|
+
"type": "string",
|
|
1711
|
+
"enum": [
|
|
1712
|
+
"suggest",
|
|
1713
|
+
"auto_safe",
|
|
1714
|
+
"auto_full"
|
|
1715
|
+
],
|
|
1716
|
+
"description": "How much the orchestrate planner may act without confirmation: suggest (user executes the plan), auto_safe (auto-runs only provably safe steps), auto_full (auto-runs everything)."
|
|
1717
|
+
},
|
|
1718
|
+
"stopped_reason": {
|
|
1719
|
+
"type": [
|
|
1720
|
+
"string",
|
|
1721
|
+
"null"
|
|
1722
|
+
],
|
|
1723
|
+
"default": null,
|
|
1724
|
+
"description": "Set when the executor stopped early (first risky step under auto_safe, budget, abort)."
|
|
1725
|
+
}
|
|
1726
|
+
},
|
|
1727
|
+
"required": [
|
|
1728
|
+
"autonomy"
|
|
1729
|
+
],
|
|
1730
|
+
"additionalProperties": false,
|
|
1731
|
+
"description": "Typed executor progress over a plan's tool calls, persisted as final/orchestration_progress.yaml and projected into run detail."
|
|
1732
|
+
},
|
|
1733
|
+
{
|
|
1734
|
+
"type": "null"
|
|
1735
|
+
}
|
|
1736
|
+
],
|
|
1737
|
+
"description": "Typed executor progress for an orchestrate run; null for non-orchestrate runs or suggest autonomy.",
|
|
1738
|
+
"default": null
|
|
1739
|
+
},
|
|
1740
|
+
"candidates": {
|
|
1741
|
+
"type": "array",
|
|
1742
|
+
"items": {
|
|
1743
|
+
"type": "object",
|
|
1744
|
+
"properties": {
|
|
1745
|
+
"attemptId": {
|
|
1746
|
+
"type": "string",
|
|
1747
|
+
"description": "Attempt id of the candidate."
|
|
1748
|
+
},
|
|
1749
|
+
"harnessId": {
|
|
1750
|
+
"type": "string",
|
|
1751
|
+
"description": "Harness that produced the candidate."
|
|
1752
|
+
},
|
|
1753
|
+
"label": {
|
|
1754
|
+
"type": [
|
|
1755
|
+
"string",
|
|
1756
|
+
"null"
|
|
1757
|
+
],
|
|
1758
|
+
"default": null,
|
|
1759
|
+
"description": "Human-readable candidate label, when set."
|
|
1760
|
+
},
|
|
1761
|
+
"costUsd": {
|
|
1762
|
+
"type": "number",
|
|
1763
|
+
"default": 0,
|
|
1764
|
+
"description": "Spend attributed to the candidate, in USD."
|
|
1765
|
+
},
|
|
1766
|
+
"costEstimated": {
|
|
1767
|
+
"type": "boolean",
|
|
1768
|
+
"default": false,
|
|
1769
|
+
"description": "True when the cost is token-derived rather than natively reported."
|
|
1770
|
+
},
|
|
1771
|
+
"errored": {
|
|
1772
|
+
"type": "boolean",
|
|
1773
|
+
"default": false,
|
|
1774
|
+
"description": "True when the candidate's attempt errored."
|
|
1775
|
+
},
|
|
1776
|
+
"gatesPassed": {
|
|
1777
|
+
"type": "integer",
|
|
1778
|
+
"minimum": 0,
|
|
1779
|
+
"default": 0,
|
|
1780
|
+
"description": "Number of deterministic gates that passed."
|
|
1781
|
+
},
|
|
1782
|
+
"gatesTotal": {
|
|
1783
|
+
"type": "integer",
|
|
1784
|
+
"minimum": 0,
|
|
1785
|
+
"default": 0,
|
|
1786
|
+
"description": "Total deterministic gates run for the candidate."
|
|
1787
|
+
},
|
|
1788
|
+
"blockers": {
|
|
1789
|
+
"type": "integer",
|
|
1790
|
+
"minimum": 0,
|
|
1791
|
+
"default": 0,
|
|
1792
|
+
"description": "Count of accepted blocking review findings."
|
|
1793
|
+
},
|
|
1794
|
+
"reviewVerified": {
|
|
1795
|
+
"type": "boolean",
|
|
1796
|
+
"default": false,
|
|
1797
|
+
"description": "Whether the candidate's review route was verified."
|
|
1798
|
+
},
|
|
1799
|
+
"finalReviewClean": {
|
|
1800
|
+
"type": [
|
|
1801
|
+
"boolean",
|
|
1802
|
+
"null"
|
|
1803
|
+
],
|
|
1804
|
+
"default": null,
|
|
1805
|
+
"description": "Whether the final review was clean; null when no final review ran."
|
|
1806
|
+
},
|
|
1807
|
+
"winner": {
|
|
1808
|
+
"type": "boolean",
|
|
1809
|
+
"default": false,
|
|
1810
|
+
"description": "True for the adopted/winning candidate."
|
|
1811
|
+
},
|
|
1812
|
+
"diffstat": {
|
|
1813
|
+
"anyOf": [
|
|
1814
|
+
{
|
|
1815
|
+
"type": "object",
|
|
1816
|
+
"properties": {
|
|
1817
|
+
"files": {
|
|
1818
|
+
"type": "integer",
|
|
1819
|
+
"minimum": 0,
|
|
1820
|
+
"default": 0,
|
|
1821
|
+
"description": "Files changed."
|
|
1822
|
+
},
|
|
1823
|
+
"additions": {
|
|
1824
|
+
"type": "integer",
|
|
1825
|
+
"minimum": 0,
|
|
1826
|
+
"default": 0,
|
|
1827
|
+
"description": "Lines added."
|
|
1828
|
+
},
|
|
1829
|
+
"deletions": {
|
|
1830
|
+
"type": "integer",
|
|
1831
|
+
"minimum": 0,
|
|
1832
|
+
"default": 0,
|
|
1833
|
+
"description": "Lines deleted."
|
|
1834
|
+
}
|
|
1835
|
+
},
|
|
1836
|
+
"additionalProperties": false
|
|
1837
|
+
},
|
|
1838
|
+
{
|
|
1839
|
+
"type": "null"
|
|
1840
|
+
}
|
|
1841
|
+
],
|
|
1842
|
+
"default": null,
|
|
1843
|
+
"description": "Diff statistics of the candidate's patch; null when there is no patch."
|
|
1844
|
+
}
|
|
1845
|
+
},
|
|
1846
|
+
"required": [
|
|
1847
|
+
"attemptId",
|
|
1848
|
+
"harnessId"
|
|
1849
|
+
],
|
|
1850
|
+
"additionalProperties": false,
|
|
1851
|
+
"description": "Per-candidate evidence card for a race run, projected from attempt, review, and decision artifacts."
|
|
1852
|
+
},
|
|
1853
|
+
"default": [],
|
|
1854
|
+
"description": "Per-candidate evidence cards for every envelope-producing mode; empty only when no attempt artifacts exist."
|
|
1855
|
+
},
|
|
1856
|
+
"planProgress": {
|
|
1857
|
+
"anyOf": [
|
|
1858
|
+
{
|
|
1859
|
+
"type": "object",
|
|
1860
|
+
"properties": {
|
|
1861
|
+
"items": {
|
|
1862
|
+
"type": "array",
|
|
1863
|
+
"items": {
|
|
1864
|
+
"type": "object",
|
|
1865
|
+
"properties": {
|
|
1866
|
+
"id": {
|
|
1867
|
+
"type": "string",
|
|
1868
|
+
"description": "Plan item id."
|
|
1869
|
+
},
|
|
1870
|
+
"title": {
|
|
1871
|
+
"type": "string",
|
|
1872
|
+
"description": "Plan item title."
|
|
1873
|
+
},
|
|
1874
|
+
"status": {
|
|
1875
|
+
"type": "string",
|
|
1876
|
+
"enum": [
|
|
1877
|
+
"pending",
|
|
1878
|
+
"in_progress",
|
|
1879
|
+
"completed"
|
|
1880
|
+
],
|
|
1881
|
+
"description": "Progress state of the item."
|
|
1882
|
+
}
|
|
1883
|
+
},
|
|
1884
|
+
"required": [
|
|
1885
|
+
"id",
|
|
1886
|
+
"title",
|
|
1887
|
+
"status"
|
|
1888
|
+
],
|
|
1889
|
+
"additionalProperties": false
|
|
1890
|
+
},
|
|
1891
|
+
"default": [],
|
|
1892
|
+
"description": "Plan items, last-wins."
|
|
1893
|
+
}
|
|
1894
|
+
},
|
|
1895
|
+
"additionalProperties": false
|
|
1896
|
+
},
|
|
1897
|
+
{
|
|
1898
|
+
"type": "null"
|
|
1899
|
+
}
|
|
1900
|
+
],
|
|
1901
|
+
"default": null,
|
|
1902
|
+
"description": "Live plan checklist from the last plan.progress event; null when the run never emitted one."
|
|
1903
|
+
},
|
|
1904
|
+
"failure": {
|
|
1905
|
+
"anyOf": [
|
|
1906
|
+
{
|
|
1907
|
+
"$ref": "#/definitions/ControlRunDetail/properties/summary/properties/failure/anyOf/0"
|
|
1908
|
+
},
|
|
1909
|
+
{
|
|
1910
|
+
"type": "null"
|
|
1911
|
+
}
|
|
1912
|
+
],
|
|
1913
|
+
"description": "Typed failure info; null unless the run failed.",
|
|
1914
|
+
"default": null
|
|
1915
|
+
}
|
|
1916
|
+
},
|
|
1917
|
+
"required": [
|
|
1918
|
+
"summary"
|
|
1919
|
+
],
|
|
1920
|
+
"additionalProperties": false,
|
|
1921
|
+
"description": "Full run detail snapshot served by GET /runs/:id: summary, artifacts, timeline, decision, findings, and progress."
|
|
1922
|
+
}
|
|
1923
|
+
},
|
|
1924
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
1925
|
+
}
|