@claudexor/schema 3.0.4 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/agent-capabilities.d.ts +37 -0
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +14 -0
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/apply-eligibility.d.ts +384 -18
  6. package/dist/apply-eligibility.d.ts.map +1 -1
  7. package/dist/apply-eligibility.js +20 -1
  8. package/dist/apply-eligibility.js.map +1 -1
  9. package/dist/budget.d.ts +75 -0
  10. package/dist/budget.d.ts.map +1 -1
  11. package/dist/budget.js +46 -0
  12. package/dist/budget.js.map +1 -1
  13. package/dist/config.d.ts +41 -41
  14. package/dist/control-operation-responses.d.ts +287 -65
  15. package/dist/control-operation-responses.d.ts.map +1 -1
  16. package/dist/control-operation-responses.js +33 -3
  17. package/dist/control-operation-responses.js.map +1 -1
  18. package/dist/control-run-detail.d.ts +600 -150
  19. package/dist/control-run-detail.d.ts.map +1 -1
  20. package/dist/control-run-detail.js +28 -2
  21. package/dist/control-run-detail.js.map +1 -1
  22. package/dist/control-run-retry.d.ts +1 -1
  23. package/dist/control-run-scope.d.ts +1 -1
  24. package/dist/control-thread-apply.d.ts +10 -0
  25. package/dist/control-thread-apply.d.ts.map +1 -1
  26. package/dist/control.d.ts +664 -156
  27. package/dist/control.d.ts.map +1 -1
  28. package/dist/control.js +76 -2
  29. package/dist/control.js.map +1 -1
  30. package/dist/decision.d.ts +205 -9
  31. package/dist/decision.d.ts.map +1 -1
  32. package/dist/decision.js +69 -1
  33. package/dist/decision.js.map +1 -1
  34. package/dist/deep-scan.d.ts +27 -0
  35. package/dist/deep-scan.d.ts.map +1 -0
  36. package/dist/deep-scan.js +27 -0
  37. package/dist/deep-scan.js.map +1 -0
  38. package/dist/delivery.d.ts +13 -0
  39. package/dist/delivery.d.ts.map +1 -1
  40. package/dist/delivery.js +15 -0
  41. package/dist/delivery.js.map +1 -1
  42. package/dist/events.d.ts +59 -4
  43. package/dist/events.d.ts.map +1 -1
  44. package/dist/events.js +85 -0
  45. package/dist/events.js.map +1 -1
  46. package/dist/harness.d.ts +111 -3
  47. package/dist/harness.d.ts.map +1 -1
  48. package/dist/harness.js +77 -1
  49. package/dist/harness.js.map +1 -1
  50. package/dist/index.d.ts +3 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +3 -0
  53. package/dist/index.js.map +1 -1
  54. package/dist/operation.d.ts +193 -10
  55. package/dist/operation.d.ts.map +1 -1
  56. package/dist/operation.js +45 -0
  57. package/dist/operation.js.map +1 -1
  58. package/dist/output-schema-dialect.d.ts +22 -0
  59. package/dist/output-schema-dialect.d.ts.map +1 -0
  60. package/dist/output-schema-dialect.js +37 -0
  61. package/dist/output-schema-dialect.js.map +1 -0
  62. package/dist/output-schema.d.ts +26 -2
  63. package/dist/output-schema.d.ts.map +1 -1
  64. package/dist/output-schema.js +313 -16
  65. package/dist/output-schema.js.map +1 -1
  66. package/dist/plan.d.ts +2 -2
  67. package/dist/problem.d.ts +3 -3
  68. package/dist/project.d.ts +47 -12
  69. package/dist/project.d.ts.map +1 -1
  70. package/dist/project.js +32 -0
  71. package/dist/project.js.map +1 -1
  72. package/dist/readiness.d.ts +14 -0
  73. package/dist/readiness.d.ts.map +1 -1
  74. package/dist/recovery.d.ts +14 -14
  75. package/dist/review.d.ts +7 -7
  76. package/dist/route.d.ts +2 -2
  77. package/dist/setup.d.ts +288 -94
  78. package/dist/setup.d.ts.map +1 -1
  79. package/dist/setup.js +90 -6
  80. package/dist/setup.js.map +1 -1
  81. package/dist/status-projection.d.ts +79 -4
  82. package/dist/status-projection.d.ts.map +1 -1
  83. package/dist/status-projection.js +161 -4
  84. package/dist/status-projection.js.map +1 -1
  85. package/dist/task.d.ts +14 -0
  86. package/dist/task.d.ts.map +1 -1
  87. package/dist/task.js +9 -0
  88. package/dist/task.js.map +1 -1
  89. package/dist/telemetry.d.ts +779 -16
  90. package/dist/telemetry.d.ts.map +1 -1
  91. package/dist/telemetry.js +177 -4
  92. package/dist/telemetry.js.map +1 -1
  93. package/dist/tool-ref.d.ts +14 -0
  94. package/dist/tool-ref.d.ts.map +1 -1
  95. package/dist/tool-ref.js +15 -0
  96. package/dist/tool-ref.js.map +1 -1
  97. package/dist/work-report.d.ts +131 -0
  98. package/dist/work-report.d.ts.map +1 -0
  99. package/dist/work-report.js +124 -0
  100. package/dist/work-report.js.map +1 -0
  101. package/dist/workspace.d.ts +2 -2
  102. package/generated/AgentCapabilityCatalog.schema.json +35 -0
  103. package/generated/ControlApplyCheckResponse.schema.json +5 -0
  104. package/generated/ControlDeliveryResponse.schema.json +14 -0
  105. package/generated/ControlHarnessListResponse.schema.json +19 -0
  106. package/generated/ControlOperationCatalog.schema.json +74 -0
  107. package/generated/ControlOperationDescriptor.schema.json +74 -0
  108. package/generated/ControlOperationParameter.schema.json +75 -0
  109. package/generated/ControlProjectRemoveReceipt.schema.json +58 -0
  110. package/generated/ControlRunAgainDraft.schema.json +11 -0
  111. package/generated/ControlRunDetail.schema.json +403 -9
  112. package/generated/ControlRunListResponse.schema.json +229 -3
  113. package/generated/ControlRunStartRequest.schema.json +11 -0
  114. package/generated/ControlRunSummary.schema.json +215 -2
  115. package/generated/ControlSetupJobCreateRequest.schema.json +2 -1
  116. package/generated/ControlSetupJobEvent.schema.json +28 -0
  117. package/generated/ControlSetupJobSnapshot.schema.json +28 -0
  118. package/generated/ControlThreadApplyResponse.schema.json +14 -0
  119. package/generated/ControlThreadDetail.schema.json +94 -1
  120. package/generated/ControlThreadTurnRequest.schema.json +11 -0
  121. package/generated/DecisionRecord.schema.json +178 -2
  122. package/generated/HarnessEvent.schema.json +79 -1
  123. package/generated/HarnessManifest.schema.json +19 -0
  124. package/generated/HarnessStatusDto.schema.json +19 -0
  125. package/generated/McpRunHandleResult.schema.json +286 -1
  126. package/generated/McpRunToolResult.schema.json +171 -1
  127. package/generated/RoutePoolDegradedPayload.schema.json +79 -0
  128. package/generated/RunEvent.schema.json +7 -1
  129. package/generated/RunFailure.schema.json +23 -1
  130. package/generated/RunTelemetry.schema.json +376 -1
  131. package/generated/StructuredOutputConformance.schema.json +83 -0
  132. package/generated/TaskContract.schema.json +16 -0
  133. package/package.json +2 -2
@@ -18,11 +18,23 @@ export declare const WebEvidenceRecord: z.ZodObject<{
18
18
  attempted: z.ZodDefault<z.ZodBoolean>;
19
19
  satisfied: z.ZodDefault<z.ZodBoolean>;
20
20
  status: z.ZodDefault<z.ZodEnum<["none", "attempted", "satisfied", "failed", "unverified"]>>;
21
+ /**
22
+ * QA-042: retrieval STRENGTH of a satisfied/attempted web requirement,
23
+ * orthogonal to `status`. `verified` = at least one web result carried a
24
+ * typed successful retrieval (e.g. claude WebFetch content, a browser
25
+ * navigation); `dispatched` = web activity completed but the route exposes
26
+ * no typed fetch outcome (codex `web_search`/`open_page`), so the gate is
27
+ * satisfied at dispatch strength but content is NOT proven; `none` = no web
28
+ * activity. A surface renders "Web verified" only for `verified`, never for
29
+ * a dispatch-only route (which is honestly "Web reached").
30
+ */
31
+ verification: z.ZodDefault<z.ZodEnum<["verified", "dispatched", "none"]>>;
21
32
  tool: z.ZodDefault<z.ZodNullable<z.ZodString>>;
22
33
  target: z.ZodDefault<z.ZodNullable<z.ZodString>>;
23
34
  error_summary: z.ZodDefault<z.ZodNullable<z.ZodString>>;
24
35
  }, "strip", z.ZodTypeAny, {
25
- status: "failed" | "none" | "attempted" | "unverified" | "satisfied";
36
+ status: "failed" | "none" | "unverified" | "attempted" | "satisfied";
37
+ verification: "none" | "verified" | "dispatched";
26
38
  target: string | null;
27
39
  error_summary: string | null;
28
40
  tool: string | null;
@@ -32,7 +44,8 @@ export declare const WebEvidenceRecord: z.ZodObject<{
32
44
  effective_mode: "off" | "auto" | "cached" | "live";
33
45
  satisfied: boolean;
34
46
  }, {
35
- status?: "failed" | "none" | "attempted" | "unverified" | "satisfied" | undefined;
47
+ status?: "failed" | "none" | "unverified" | "attempted" | "satisfied" | undefined;
48
+ verification?: "none" | "verified" | "dispatched" | undefined;
36
49
  target?: string | null | undefined;
37
50
  error_summary?: string | null | undefined;
38
51
  tool?: string | null | undefined;
@@ -67,15 +80,45 @@ export declare const ToolErrorRecord: z.ZodObject<{
67
80
  tool_use_id?: string | null | undefined;
68
81
  }>;
69
82
  export type ToolErrorRecord = z.infer<typeof ToolErrorRecord>;
83
+ /**
84
+ * Typed taxonomy (GH #31) the orchestrator classifies every adapter/harness
85
+ * transient failure into at the adapter→orchestrator boundary. Orthogonal to
86
+ * the fine-grained `kind`: the retry policy gates on this category's
87
+ * `retryable` verdict, and required-actions attach auth guidance ONLY on
88
+ * `auth_failed`. Never inferred by surfaces or parsed from prose.
89
+ */
90
+ export declare const HarnessFailureCategory: z.ZodEnum<["timeout", "rate_limited", "auth_failed", "capability_refused", "process_crash", "config_error", "unknown_harness_error"]>;
91
+ export type HarnessFailureCategory = z.infer<typeof HarnessFailureCategory>;
70
92
  export declare const TransientFailureRecord: z.ZodObject<{
71
93
  kind: z.ZodDefault<z.ZodEnum<["network", "stream_disconnect", "service_unavailable", "timeout", "unknown"]>>;
94
+ /** GH #31 typed category the retry policy and required-actions read. */
95
+ category: z.ZodDefault<z.ZodEnum<["timeout", "rate_limited", "auth_failed", "capability_refused", "process_crash", "config_error", "unknown_harness_error"]>>;
96
+ /** Whether the classified category is retryable — the centralized retry
97
+ * gate reads THIS, never a bare sawTransient boolean. */
98
+ retryable: z.ZodDefault<z.ZodBoolean>;
72
99
  retry_delay_ms: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
100
+ /** Preserved safe provider metadata: the vendor's HTTP status when disclosed. */
101
+ http_status: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
102
+ /** Process termination signal (e.g. SIGKILL) when a crash killed the child, else null. */
103
+ signal: z.ZodDefault<z.ZodNullable<z.ZodString>>;
104
+ /** Vendor/adapter error-category code passed verbatim as evidence, when any. */
105
+ adapter_code: z.ZodDefault<z.ZodNullable<z.ZodString>>;
73
106
  }, "strip", z.ZodTypeAny, {
74
107
  kind: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout";
75
108
  retry_delay_ms: number | null;
109
+ retryable: boolean;
110
+ category: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error";
111
+ http_status: number | null;
112
+ signal: string | null;
113
+ adapter_code: string | null;
76
114
  }, {
77
115
  kind?: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout" | undefined;
78
116
  retry_delay_ms?: number | null | undefined;
117
+ retryable?: boolean | undefined;
118
+ category?: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error" | undefined;
119
+ http_status?: number | null | undefined;
120
+ signal?: string | null | undefined;
121
+ adapter_code?: string | null | undefined;
79
122
  }>;
80
123
  export type TransientFailureRecord = z.infer<typeof TransientFailureRecord>;
81
124
  export declare const AttemptOutcomeStatus: z.ZodEnum<["success", "success_with_warnings", "blocked", "failed"]>;
@@ -89,21 +132,85 @@ export declare const AttemptOutcome: z.ZodObject<{
89
132
  gates_passed: z.ZodDefault<z.ZodNullable<z.ZodBoolean>>;
90
133
  harness_errored: z.ZodDefault<z.ZodBoolean>;
91
134
  web_required_unsatisfied: z.ZodDefault<z.ZodBoolean>;
135
+ /** QA-024: the run requested the Claudexor delegation belt (--delegate) but
136
+ * the injected MCP server never became operational (the harness reported it
137
+ * `failed`). A requested-but-unavailable belt must not terminalize a silent
138
+ * clean success — the harness may have degraded to its own native subagent
139
+ * with no Claudexor sub-run provenance. */
140
+ delegation_belt_unavailable: z.ZodDefault<z.ZodBoolean>;
92
141
  tool_warnings_count: z.ZodDefault<z.ZodNumber>;
93
142
  status: z.ZodDefault<z.ZodEnum<["success", "success_with_warnings", "blocked", "failed"]>>;
143
+ /**
144
+ * D-16 work_state axis for this attempt (INV-116): the model-attested work
145
+ * outcome from its WorkReport, orthogonal to `status`. Absent when the
146
+ * route carries no work_report transport (pre-D16 shape preserved).
147
+ */
148
+ work_state: z.ZodOptional<z.ZodObject<{
149
+ state: z.ZodEnum<["completed", "needs_input", "incomplete", "unverified"]>;
150
+ source: z.ZodEnum<["constrained", "validated", "absent"]>;
151
+ required_inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
152
+ kind: z.ZodEnum<["file", "context", "credential", "permission", "decision", "external_dependency"]>;
153
+ locator: z.ZodDefault<z.ZodNullable<z.ZodString>>;
154
+ description: z.ZodString;
155
+ }, "strip", z.ZodTypeAny, {
156
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
157
+ description: string;
158
+ locator: string | null;
159
+ }, {
160
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
161
+ description: string;
162
+ locator?: string | null | undefined;
163
+ }>, "many">>;
164
+ }, "strip", z.ZodTypeAny, {
165
+ source: "constrained" | "validated" | "absent";
166
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
167
+ required_inputs?: {
168
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
169
+ description: string;
170
+ locator: string | null;
171
+ }[] | undefined;
172
+ }, {
173
+ source: "constrained" | "validated" | "absent";
174
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
175
+ required_inputs?: {
176
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
177
+ description: string;
178
+ locator?: string | null | undefined;
179
+ }[] | undefined;
180
+ }>>;
94
181
  }, "strip", z.ZodTypeAny, {
95
182
  status: "failed" | "blocked" | "success" | "success_with_warnings";
96
183
  gates_passed: boolean | null;
97
184
  deliverable_present: boolean;
98
185
  harness_errored: boolean;
99
186
  web_required_unsatisfied: boolean;
187
+ delegation_belt_unavailable: boolean;
100
188
  tool_warnings_count: number;
189
+ work_state?: {
190
+ source: "constrained" | "validated" | "absent";
191
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
192
+ required_inputs?: {
193
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
194
+ description: string;
195
+ locator: string | null;
196
+ }[] | undefined;
197
+ } | undefined;
101
198
  }, {
102
199
  status?: "failed" | "blocked" | "success" | "success_with_warnings" | undefined;
200
+ work_state?: {
201
+ source: "constrained" | "validated" | "absent";
202
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
203
+ required_inputs?: {
204
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
205
+ description: string;
206
+ locator?: string | null | undefined;
207
+ }[] | undefined;
208
+ } | undefined;
103
209
  gates_passed?: boolean | null | undefined;
104
210
  deliverable_present?: boolean | undefined;
105
211
  harness_errored?: boolean | undefined;
106
212
  web_required_unsatisfied?: boolean | undefined;
213
+ delegation_belt_unavailable?: boolean | undefined;
107
214
  tool_warnings_count?: number | undefined;
108
215
  }>;
109
216
  export type AttemptOutcome = z.infer<typeof AttemptOutcome>;
@@ -114,6 +221,8 @@ export type AttemptOutcome = z.infer<typeof AttemptOutcome>;
114
221
  */
115
222
  export declare const StructuredOutputConformance: z.ZodObject<{
116
223
  schema_version: z.ZodLiteral<2>;
224
+ schema_dialect: z.ZodDefault<z.ZodNullable<z.ZodEnum<["draft-07", "draft-2020-12"]>>>;
225
+ schema_hash: z.ZodDefault<z.ZodNullable<z.ZodString>>;
117
226
  status: z.ZodEnum<["passed", "failed"]>;
118
227
  reason: z.ZodDefault<z.ZodNullable<z.ZodString>>;
119
228
  /** Present when the answer parsed as JSON at all (even non-conformant JSON
@@ -124,6 +233,8 @@ export declare const StructuredOutputConformance: z.ZodObject<{
124
233
  status: "passed" | "failed";
125
234
  reason: string | null;
126
235
  schema_version: 2;
236
+ schema_dialect: "draft-07" | "draft-2020-12" | null;
237
+ schema_hash: string | null;
127
238
  output_path: string | null;
128
239
  generated_at: string;
129
240
  }, {
@@ -131,6 +242,8 @@ export declare const StructuredOutputConformance: z.ZodObject<{
131
242
  schema_version: 2;
132
243
  generated_at: string;
133
244
  reason?: string | null | undefined;
245
+ schema_dialect?: "draft-07" | "draft-2020-12" | null | undefined;
246
+ schema_hash?: string | null | undefined;
134
247
  output_path?: string | null | undefined;
135
248
  }>;
136
249
  export type StructuredOutputConformance = z.infer<typeof StructuredOutputConformance>;
@@ -148,6 +261,68 @@ export declare const TokenUsage: z.ZodObject<{
148
261
  cached_input_tokens?: number | null | undefined;
149
262
  }>;
150
263
  export type TokenUsage = z.infer<typeof TokenUsage>;
264
+ /**
265
+ * Runtime readiness receipt for the Claudexor delegation belt (D32) on one
266
+ * attempt (QA-024). The preflight/descriptor layer refuses TYPED when no belt
267
+ * `cli.js` entry exists; THIS record is the complementary runtime truth: when a
268
+ * belt WAS injected, did the harness's MCP server actually come up, and did any
269
+ * belt tool actually run? A `failed` server with zero tool evidence is the
270
+ * false-success trap — the harness saw no `mcp__claudexor__*` tools and may
271
+ * have answered from its own native subagent with no Claudexor sub-run.
272
+ */
273
+ export declare const DelegationBeltEvidence: z.ZodObject<{
274
+ requested: z.ZodDefault<z.ZodBoolean>;
275
+ server_name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
276
+ ready: z.ZodDefault<z.ZodBoolean>;
277
+ failed: z.ZodDefault<z.ZodBoolean>;
278
+ tool_evidence: z.ZodDefault<z.ZodBoolean>;
279
+ }, "strip", z.ZodTypeAny, {
280
+ ready: boolean;
281
+ failed: boolean;
282
+ requested: boolean;
283
+ server_name: string | null;
284
+ tool_evidence: boolean;
285
+ }, {
286
+ ready?: boolean | undefined;
287
+ failed?: boolean | undefined;
288
+ requested?: boolean | undefined;
289
+ server_name?: string | null | undefined;
290
+ tool_evidence?: boolean | undefined;
291
+ }>;
292
+ export type DelegationBeltEvidence = z.infer<typeof DelegationBeltEvidence>;
293
+ /**
294
+ * QA-040: runtime browser-MCP evidence for one attempt. `requested` is set when
295
+ * the engine armed the Playwright browser injection for this lane (the injected
296
+ * server name is known — a fixed `browser` namespace). `attempted`/`satisfied`/
297
+ * `failed` flip from the run's tool events matched to that injected server, so a
298
+ * successful browser navigation is recognized as trusted live-web activity even
299
+ * though the adapter normalizes browser calls as `kind:"mcp"` (codex/claude both
300
+ * do). `unused` discloses an armed-but-never-called browser (a generic
301
+ * web_search satisfied instead) WITHOUT failing the run — disclosure only.
302
+ */
303
+ export declare const BrowserEvidenceRecord: z.ZodObject<{
304
+ requested: z.ZodDefault<z.ZodBoolean>;
305
+ server_name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
306
+ attempted: z.ZodDefault<z.ZodBoolean>;
307
+ satisfied: z.ZodDefault<z.ZodBoolean>;
308
+ failed: z.ZodDefault<z.ZodBoolean>;
309
+ unused: z.ZodDefault<z.ZodBoolean>;
310
+ }, "strip", z.ZodTypeAny, {
311
+ failed: boolean;
312
+ requested: boolean;
313
+ attempted: boolean;
314
+ satisfied: boolean;
315
+ server_name: string | null;
316
+ unused: boolean;
317
+ }, {
318
+ failed?: boolean | undefined;
319
+ requested?: boolean | undefined;
320
+ attempted?: boolean | undefined;
321
+ satisfied?: boolean | undefined;
322
+ server_name?: string | null | undefined;
323
+ unused?: boolean | undefined;
324
+ }>;
325
+ export type BrowserEvidenceRecord = z.infer<typeof BrowserEvidenceRecord>;
151
326
  export declare const AttemptTelemetryRecord: z.ZodObject<{
152
327
  attempt_id: z.ZodString;
153
328
  harness_id: z.ZodString;
@@ -211,11 +386,23 @@ export declare const AttemptTelemetryRecord: z.ZodObject<{
211
386
  attempted: z.ZodDefault<z.ZodBoolean>;
212
387
  satisfied: z.ZodDefault<z.ZodBoolean>;
213
388
  status: z.ZodDefault<z.ZodEnum<["none", "attempted", "satisfied", "failed", "unverified"]>>;
389
+ /**
390
+ * QA-042: retrieval STRENGTH of a satisfied/attempted web requirement,
391
+ * orthogonal to `status`. `verified` = at least one web result carried a
392
+ * typed successful retrieval (e.g. claude WebFetch content, a browser
393
+ * navigation); `dispatched` = web activity completed but the route exposes
394
+ * no typed fetch outcome (codex `web_search`/`open_page`), so the gate is
395
+ * satisfied at dispatch strength but content is NOT proven; `none` = no web
396
+ * activity. A surface renders "Web verified" only for `verified`, never for
397
+ * a dispatch-only route (which is honestly "Web reached").
398
+ */
399
+ verification: z.ZodDefault<z.ZodEnum<["verified", "dispatched", "none"]>>;
214
400
  tool: z.ZodDefault<z.ZodNullable<z.ZodString>>;
215
401
  target: z.ZodDefault<z.ZodNullable<z.ZodString>>;
216
402
  error_summary: z.ZodDefault<z.ZodNullable<z.ZodString>>;
217
403
  }, "strip", z.ZodTypeAny, {
218
- status: "failed" | "none" | "attempted" | "unverified" | "satisfied";
404
+ status: "failed" | "none" | "unverified" | "attempted" | "satisfied";
405
+ verification: "none" | "verified" | "dispatched";
219
406
  target: string | null;
220
407
  error_summary: string | null;
221
408
  tool: string | null;
@@ -225,7 +412,8 @@ export declare const AttemptTelemetryRecord: z.ZodObject<{
225
412
  effective_mode: "off" | "auto" | "cached" | "live";
226
413
  satisfied: boolean;
227
414
  }, {
228
- status?: "failed" | "none" | "attempted" | "unverified" | "satisfied" | undefined;
415
+ status?: "failed" | "none" | "unverified" | "attempted" | "satisfied" | undefined;
416
+ verification?: "none" | "verified" | "dispatched" | undefined;
229
417
  target?: string | null | undefined;
230
418
  error_summary?: string | null | undefined;
231
419
  tool?: string | null | undefined;
@@ -268,13 +456,34 @@ export declare const AttemptTelemetryRecord: z.ZodObject<{
268
456
  /** Adapter-declared transient failures that informed bounded retry policy. */
269
457
  transient_failures: z.ZodDefault<z.ZodArray<z.ZodObject<{
270
458
  kind: z.ZodDefault<z.ZodEnum<["network", "stream_disconnect", "service_unavailable", "timeout", "unknown"]>>;
459
+ /** GH #31 typed category the retry policy and required-actions read. */
460
+ category: z.ZodDefault<z.ZodEnum<["timeout", "rate_limited", "auth_failed", "capability_refused", "process_crash", "config_error", "unknown_harness_error"]>>;
461
+ /** Whether the classified category is retryable — the centralized retry
462
+ * gate reads THIS, never a bare sawTransient boolean. */
463
+ retryable: z.ZodDefault<z.ZodBoolean>;
271
464
  retry_delay_ms: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
465
+ /** Preserved safe provider metadata: the vendor's HTTP status when disclosed. */
466
+ http_status: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
467
+ /** Process termination signal (e.g. SIGKILL) when a crash killed the child, else null. */
468
+ signal: z.ZodDefault<z.ZodNullable<z.ZodString>>;
469
+ /** Vendor/adapter error-category code passed verbatim as evidence, when any. */
470
+ adapter_code: z.ZodDefault<z.ZodNullable<z.ZodString>>;
272
471
  }, "strip", z.ZodTypeAny, {
273
472
  kind: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout";
274
473
  retry_delay_ms: number | null;
474
+ retryable: boolean;
475
+ category: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error";
476
+ http_status: number | null;
477
+ signal: string | null;
478
+ adapter_code: string | null;
275
479
  }, {
276
480
  kind?: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout" | undefined;
277
481
  retry_delay_ms?: number | null | undefined;
482
+ retryable?: boolean | undefined;
483
+ category?: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error" | undefined;
484
+ http_status?: number | null | undefined;
485
+ signal?: string | null | undefined;
486
+ adapter_code?: string | null | undefined;
278
487
  }>, "many">>;
279
488
  /** Contract/outcome projection for this attempt. */
280
489
  outcome: z.ZodDefault<z.ZodObject<{
@@ -282,23 +491,132 @@ export declare const AttemptTelemetryRecord: z.ZodObject<{
282
491
  gates_passed: z.ZodDefault<z.ZodNullable<z.ZodBoolean>>;
283
492
  harness_errored: z.ZodDefault<z.ZodBoolean>;
284
493
  web_required_unsatisfied: z.ZodDefault<z.ZodBoolean>;
494
+ /** QA-024: the run requested the Claudexor delegation belt (--delegate) but
495
+ * the injected MCP server never became operational (the harness reported it
496
+ * `failed`). A requested-but-unavailable belt must not terminalize a silent
497
+ * clean success — the harness may have degraded to its own native subagent
498
+ * with no Claudexor sub-run provenance. */
499
+ delegation_belt_unavailable: z.ZodDefault<z.ZodBoolean>;
285
500
  tool_warnings_count: z.ZodDefault<z.ZodNumber>;
286
501
  status: z.ZodDefault<z.ZodEnum<["success", "success_with_warnings", "blocked", "failed"]>>;
502
+ /**
503
+ * D-16 work_state axis for this attempt (INV-116): the model-attested work
504
+ * outcome from its WorkReport, orthogonal to `status`. Absent when the
505
+ * route carries no work_report transport (pre-D16 shape preserved).
506
+ */
507
+ work_state: z.ZodOptional<z.ZodObject<{
508
+ state: z.ZodEnum<["completed", "needs_input", "incomplete", "unverified"]>;
509
+ source: z.ZodEnum<["constrained", "validated", "absent"]>;
510
+ required_inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
511
+ kind: z.ZodEnum<["file", "context", "credential", "permission", "decision", "external_dependency"]>;
512
+ locator: z.ZodDefault<z.ZodNullable<z.ZodString>>;
513
+ description: z.ZodString;
514
+ }, "strip", z.ZodTypeAny, {
515
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
516
+ description: string;
517
+ locator: string | null;
518
+ }, {
519
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
520
+ description: string;
521
+ locator?: string | null | undefined;
522
+ }>, "many">>;
523
+ }, "strip", z.ZodTypeAny, {
524
+ source: "constrained" | "validated" | "absent";
525
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
526
+ required_inputs?: {
527
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
528
+ description: string;
529
+ locator: string | null;
530
+ }[] | undefined;
531
+ }, {
532
+ source: "constrained" | "validated" | "absent";
533
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
534
+ required_inputs?: {
535
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
536
+ description: string;
537
+ locator?: string | null | undefined;
538
+ }[] | undefined;
539
+ }>>;
287
540
  }, "strip", z.ZodTypeAny, {
288
541
  status: "failed" | "blocked" | "success" | "success_with_warnings";
289
542
  gates_passed: boolean | null;
290
543
  deliverable_present: boolean;
291
544
  harness_errored: boolean;
292
545
  web_required_unsatisfied: boolean;
546
+ delegation_belt_unavailable: boolean;
293
547
  tool_warnings_count: number;
548
+ work_state?: {
549
+ source: "constrained" | "validated" | "absent";
550
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
551
+ required_inputs?: {
552
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
553
+ description: string;
554
+ locator: string | null;
555
+ }[] | undefined;
556
+ } | undefined;
294
557
  }, {
295
558
  status?: "failed" | "blocked" | "success" | "success_with_warnings" | undefined;
559
+ work_state?: {
560
+ source: "constrained" | "validated" | "absent";
561
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
562
+ required_inputs?: {
563
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
564
+ description: string;
565
+ locator?: string | null | undefined;
566
+ }[] | undefined;
567
+ } | undefined;
296
568
  gates_passed?: boolean | null | undefined;
297
569
  deliverable_present?: boolean | undefined;
298
570
  harness_errored?: boolean | undefined;
299
571
  web_required_unsatisfied?: boolean | undefined;
572
+ delegation_belt_unavailable?: boolean | undefined;
300
573
  tool_warnings_count?: number | undefined;
301
574
  }>>;
575
+ /** Delegation-belt runtime readiness (QA-024); present only when a belt was
576
+ * injected into this attempt. Absent on non-delegate attempts. */
577
+ delegation_belt: z.ZodOptional<z.ZodObject<{
578
+ requested: z.ZodDefault<z.ZodBoolean>;
579
+ server_name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
580
+ ready: z.ZodDefault<z.ZodBoolean>;
581
+ failed: z.ZodDefault<z.ZodBoolean>;
582
+ tool_evidence: z.ZodDefault<z.ZodBoolean>;
583
+ }, "strip", z.ZodTypeAny, {
584
+ ready: boolean;
585
+ failed: boolean;
586
+ requested: boolean;
587
+ server_name: string | null;
588
+ tool_evidence: boolean;
589
+ }, {
590
+ ready?: boolean | undefined;
591
+ failed?: boolean | undefined;
592
+ requested?: boolean | undefined;
593
+ server_name?: string | null | undefined;
594
+ tool_evidence?: boolean | undefined;
595
+ }>>;
596
+ /** Browser-MCP runtime evidence (QA-040); present only when the browser was
597
+ * armed for this attempt. Absent when the browser was not injected. */
598
+ browser: z.ZodOptional<z.ZodObject<{
599
+ requested: z.ZodDefault<z.ZodBoolean>;
600
+ server_name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
601
+ attempted: z.ZodDefault<z.ZodBoolean>;
602
+ satisfied: z.ZodDefault<z.ZodBoolean>;
603
+ failed: z.ZodDefault<z.ZodBoolean>;
604
+ unused: z.ZodDefault<z.ZodBoolean>;
605
+ }, "strip", z.ZodTypeAny, {
606
+ failed: boolean;
607
+ requested: boolean;
608
+ attempted: boolean;
609
+ satisfied: boolean;
610
+ server_name: string | null;
611
+ unused: boolean;
612
+ }, {
613
+ failed?: boolean | undefined;
614
+ requested?: boolean | undefined;
615
+ attempted?: boolean | undefined;
616
+ satisfied?: boolean | undefined;
617
+ server_name?: string | null | undefined;
618
+ unused?: boolean | undefined;
619
+ }>>;
302
620
  /** Token usage summed across this attempt's usage events. */
303
621
  usage: z.ZodDefault<z.ZodObject<{
304
622
  input_tokens: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
@@ -317,7 +635,8 @@ export declare const AttemptTelemetryRecord: z.ZodObject<{
317
635
  profile_id: string | null;
318
636
  harness_id: string;
319
637
  web: {
320
- status: "failed" | "none" | "attempted" | "unverified" | "satisfied";
638
+ status: "failed" | "none" | "unverified" | "attempted" | "satisfied";
639
+ verification: "none" | "verified" | "dispatched";
321
640
  target: string | null;
322
641
  error_summary: string | null;
323
642
  tool: string | null;
@@ -361,6 +680,11 @@ export declare const AttemptTelemetryRecord: z.ZodObject<{
361
680
  transient_failures: {
362
681
  kind: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout";
363
682
  retry_delay_ms: number | null;
683
+ retryable: boolean;
684
+ category: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error";
685
+ http_status: number | null;
686
+ signal: string | null;
687
+ adapter_code: string | null;
364
688
  }[];
365
689
  outcome: {
366
690
  status: "failed" | "blocked" | "success" | "success_with_warnings";
@@ -368,12 +692,38 @@ export declare const AttemptTelemetryRecord: z.ZodObject<{
368
692
  deliverable_present: boolean;
369
693
  harness_errored: boolean;
370
694
  web_required_unsatisfied: boolean;
695
+ delegation_belt_unavailable: boolean;
371
696
  tool_warnings_count: number;
697
+ work_state?: {
698
+ source: "constrained" | "validated" | "absent";
699
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
700
+ required_inputs?: {
701
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
702
+ description: string;
703
+ locator: string | null;
704
+ }[] | undefined;
705
+ } | undefined;
372
706
  };
707
+ browser?: {
708
+ failed: boolean;
709
+ requested: boolean;
710
+ attempted: boolean;
711
+ satisfied: boolean;
712
+ server_name: string | null;
713
+ unused: boolean;
714
+ } | undefined;
715
+ delegation_belt?: {
716
+ ready: boolean;
717
+ failed: boolean;
718
+ requested: boolean;
719
+ server_name: string | null;
720
+ tool_evidence: boolean;
721
+ } | undefined;
373
722
  }, {
374
723
  harness_id: string;
375
724
  web: {
376
- status?: "failed" | "none" | "attempted" | "unverified" | "satisfied" | undefined;
725
+ status?: "failed" | "none" | "unverified" | "attempted" | "satisfied" | undefined;
726
+ verification?: "none" | "verified" | "dispatched" | undefined;
377
727
  target?: string | null | undefined;
378
728
  error_summary?: string | null | undefined;
379
729
  tool?: string | null | undefined;
@@ -385,6 +735,14 @@ export declare const AttemptTelemetryRecord: z.ZodObject<{
385
735
  };
386
736
  attempt_id: string;
387
737
  profile_id?: string | null | undefined;
738
+ browser?: {
739
+ failed?: boolean | undefined;
740
+ requested?: boolean | undefined;
741
+ attempted?: boolean | undefined;
742
+ satisfied?: boolean | undefined;
743
+ server_name?: string | null | undefined;
744
+ unused?: boolean | undefined;
745
+ } | undefined;
388
746
  usage?: {
389
747
  input_tokens?: number | null | undefined;
390
748
  output_tokens?: number | null | undefined;
@@ -418,15 +776,37 @@ export declare const AttemptTelemetryRecord: z.ZodObject<{
418
776
  transient_failures?: {
419
777
  kind?: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout" | undefined;
420
778
  retry_delay_ms?: number | null | undefined;
779
+ retryable?: boolean | undefined;
780
+ category?: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error" | undefined;
781
+ http_status?: number | null | undefined;
782
+ signal?: string | null | undefined;
783
+ adapter_code?: string | null | undefined;
421
784
  }[] | undefined;
422
785
  outcome?: {
423
786
  status?: "failed" | "blocked" | "success" | "success_with_warnings" | undefined;
787
+ work_state?: {
788
+ source: "constrained" | "validated" | "absent";
789
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
790
+ required_inputs?: {
791
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
792
+ description: string;
793
+ locator?: string | null | undefined;
794
+ }[] | undefined;
795
+ } | undefined;
424
796
  gates_passed?: boolean | null | undefined;
425
797
  deliverable_present?: boolean | undefined;
426
798
  harness_errored?: boolean | undefined;
427
799
  web_required_unsatisfied?: boolean | undefined;
800
+ delegation_belt_unavailable?: boolean | undefined;
428
801
  tool_warnings_count?: number | undefined;
429
802
  } | undefined;
803
+ delegation_belt?: {
804
+ ready?: boolean | undefined;
805
+ failed?: boolean | undefined;
806
+ requested?: boolean | undefined;
807
+ server_name?: string | null | undefined;
808
+ tool_evidence?: boolean | undefined;
809
+ } | undefined;
430
810
  }>;
431
811
  export type AttemptTelemetryRecord = z.infer<typeof AttemptTelemetryRecord>;
432
812
  export declare const RunTelemetry: z.ZodObject<{
@@ -451,11 +831,23 @@ export declare const RunTelemetry: z.ZodObject<{
451
831
  attempted: z.ZodDefault<z.ZodBoolean>;
452
832
  satisfied: z.ZodDefault<z.ZodBoolean>;
453
833
  status: z.ZodDefault<z.ZodEnum<["none", "attempted", "satisfied", "failed", "unverified"]>>;
834
+ /**
835
+ * QA-042: retrieval STRENGTH of a satisfied/attempted web requirement,
836
+ * orthogonal to `status`. `verified` = at least one web result carried a
837
+ * typed successful retrieval (e.g. claude WebFetch content, a browser
838
+ * navigation); `dispatched` = web activity completed but the route exposes
839
+ * no typed fetch outcome (codex `web_search`/`open_page`), so the gate is
840
+ * satisfied at dispatch strength but content is NOT proven; `none` = no web
841
+ * activity. A surface renders "Web verified" only for `verified`, never for
842
+ * a dispatch-only route (which is honestly "Web reached").
843
+ */
844
+ verification: z.ZodDefault<z.ZodEnum<["verified", "dispatched", "none"]>>;
454
845
  tool: z.ZodDefault<z.ZodNullable<z.ZodString>>;
455
846
  target: z.ZodDefault<z.ZodNullable<z.ZodString>>;
456
847
  error_summary: z.ZodDefault<z.ZodNullable<z.ZodString>>;
457
848
  }, "strip", z.ZodTypeAny, {
458
- status: "failed" | "none" | "attempted" | "unverified" | "satisfied";
849
+ status: "failed" | "none" | "unverified" | "attempted" | "satisfied";
850
+ verification: "none" | "verified" | "dispatched";
459
851
  target: string | null;
460
852
  error_summary: string | null;
461
853
  tool: string | null;
@@ -465,7 +857,8 @@ export declare const RunTelemetry: z.ZodObject<{
465
857
  effective_mode: "off" | "auto" | "cached" | "live";
466
858
  satisfied: boolean;
467
859
  }, {
468
- status?: "failed" | "none" | "attempted" | "unverified" | "satisfied" | undefined;
860
+ status?: "failed" | "none" | "unverified" | "attempted" | "satisfied" | undefined;
861
+ verification?: "none" | "verified" | "dispatched" | undefined;
469
862
  target?: string | null | undefined;
470
863
  error_summary?: string | null | undefined;
471
864
  tool?: string | null | undefined;
@@ -538,11 +931,23 @@ export declare const RunTelemetry: z.ZodObject<{
538
931
  attempted: z.ZodDefault<z.ZodBoolean>;
539
932
  satisfied: z.ZodDefault<z.ZodBoolean>;
540
933
  status: z.ZodDefault<z.ZodEnum<["none", "attempted", "satisfied", "failed", "unverified"]>>;
934
+ /**
935
+ * QA-042: retrieval STRENGTH of a satisfied/attempted web requirement,
936
+ * orthogonal to `status`. `verified` = at least one web result carried a
937
+ * typed successful retrieval (e.g. claude WebFetch content, a browser
938
+ * navigation); `dispatched` = web activity completed but the route exposes
939
+ * no typed fetch outcome (codex `web_search`/`open_page`), so the gate is
940
+ * satisfied at dispatch strength but content is NOT proven; `none` = no web
941
+ * activity. A surface renders "Web verified" only for `verified`, never for
942
+ * a dispatch-only route (which is honestly "Web reached").
943
+ */
944
+ verification: z.ZodDefault<z.ZodEnum<["verified", "dispatched", "none"]>>;
541
945
  tool: z.ZodDefault<z.ZodNullable<z.ZodString>>;
542
946
  target: z.ZodDefault<z.ZodNullable<z.ZodString>>;
543
947
  error_summary: z.ZodDefault<z.ZodNullable<z.ZodString>>;
544
948
  }, "strip", z.ZodTypeAny, {
545
- status: "failed" | "none" | "attempted" | "unverified" | "satisfied";
949
+ status: "failed" | "none" | "unverified" | "attempted" | "satisfied";
950
+ verification: "none" | "verified" | "dispatched";
546
951
  target: string | null;
547
952
  error_summary: string | null;
548
953
  tool: string | null;
@@ -552,7 +957,8 @@ export declare const RunTelemetry: z.ZodObject<{
552
957
  effective_mode: "off" | "auto" | "cached" | "live";
553
958
  satisfied: boolean;
554
959
  }, {
555
- status?: "failed" | "none" | "attempted" | "unverified" | "satisfied" | undefined;
960
+ status?: "failed" | "none" | "unverified" | "attempted" | "satisfied" | undefined;
961
+ verification?: "none" | "verified" | "dispatched" | undefined;
556
962
  target?: string | null | undefined;
557
963
  error_summary?: string | null | undefined;
558
964
  tool?: string | null | undefined;
@@ -595,13 +1001,34 @@ export declare const RunTelemetry: z.ZodObject<{
595
1001
  /** Adapter-declared transient failures that informed bounded retry policy. */
596
1002
  transient_failures: z.ZodDefault<z.ZodArray<z.ZodObject<{
597
1003
  kind: z.ZodDefault<z.ZodEnum<["network", "stream_disconnect", "service_unavailable", "timeout", "unknown"]>>;
1004
+ /** GH #31 typed category the retry policy and required-actions read. */
1005
+ category: z.ZodDefault<z.ZodEnum<["timeout", "rate_limited", "auth_failed", "capability_refused", "process_crash", "config_error", "unknown_harness_error"]>>;
1006
+ /** Whether the classified category is retryable — the centralized retry
1007
+ * gate reads THIS, never a bare sawTransient boolean. */
1008
+ retryable: z.ZodDefault<z.ZodBoolean>;
598
1009
  retry_delay_ms: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
1010
+ /** Preserved safe provider metadata: the vendor's HTTP status when disclosed. */
1011
+ http_status: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
1012
+ /** Process termination signal (e.g. SIGKILL) when a crash killed the child, else null. */
1013
+ signal: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1014
+ /** Vendor/adapter error-category code passed verbatim as evidence, when any. */
1015
+ adapter_code: z.ZodDefault<z.ZodNullable<z.ZodString>>;
599
1016
  }, "strip", z.ZodTypeAny, {
600
1017
  kind: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout";
601
1018
  retry_delay_ms: number | null;
1019
+ retryable: boolean;
1020
+ category: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error";
1021
+ http_status: number | null;
1022
+ signal: string | null;
1023
+ adapter_code: string | null;
602
1024
  }, {
603
1025
  kind?: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout" | undefined;
604
1026
  retry_delay_ms?: number | null | undefined;
1027
+ retryable?: boolean | undefined;
1028
+ category?: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error" | undefined;
1029
+ http_status?: number | null | undefined;
1030
+ signal?: string | null | undefined;
1031
+ adapter_code?: string | null | undefined;
605
1032
  }>, "many">>;
606
1033
  /** Contract/outcome projection for this attempt. */
607
1034
  outcome: z.ZodDefault<z.ZodObject<{
@@ -609,23 +1036,132 @@ export declare const RunTelemetry: z.ZodObject<{
609
1036
  gates_passed: z.ZodDefault<z.ZodNullable<z.ZodBoolean>>;
610
1037
  harness_errored: z.ZodDefault<z.ZodBoolean>;
611
1038
  web_required_unsatisfied: z.ZodDefault<z.ZodBoolean>;
1039
+ /** QA-024: the run requested the Claudexor delegation belt (--delegate) but
1040
+ * the injected MCP server never became operational (the harness reported it
1041
+ * `failed`). A requested-but-unavailable belt must not terminalize a silent
1042
+ * clean success — the harness may have degraded to its own native subagent
1043
+ * with no Claudexor sub-run provenance. */
1044
+ delegation_belt_unavailable: z.ZodDefault<z.ZodBoolean>;
612
1045
  tool_warnings_count: z.ZodDefault<z.ZodNumber>;
613
1046
  status: z.ZodDefault<z.ZodEnum<["success", "success_with_warnings", "blocked", "failed"]>>;
1047
+ /**
1048
+ * D-16 work_state axis for this attempt (INV-116): the model-attested work
1049
+ * outcome from its WorkReport, orthogonal to `status`. Absent when the
1050
+ * route carries no work_report transport (pre-D16 shape preserved).
1051
+ */
1052
+ work_state: z.ZodOptional<z.ZodObject<{
1053
+ state: z.ZodEnum<["completed", "needs_input", "incomplete", "unverified"]>;
1054
+ source: z.ZodEnum<["constrained", "validated", "absent"]>;
1055
+ required_inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
1056
+ kind: z.ZodEnum<["file", "context", "credential", "permission", "decision", "external_dependency"]>;
1057
+ locator: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1058
+ description: z.ZodString;
1059
+ }, "strip", z.ZodTypeAny, {
1060
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
1061
+ description: string;
1062
+ locator: string | null;
1063
+ }, {
1064
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
1065
+ description: string;
1066
+ locator?: string | null | undefined;
1067
+ }>, "many">>;
1068
+ }, "strip", z.ZodTypeAny, {
1069
+ source: "constrained" | "validated" | "absent";
1070
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
1071
+ required_inputs?: {
1072
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
1073
+ description: string;
1074
+ locator: string | null;
1075
+ }[] | undefined;
1076
+ }, {
1077
+ source: "constrained" | "validated" | "absent";
1078
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
1079
+ required_inputs?: {
1080
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
1081
+ description: string;
1082
+ locator?: string | null | undefined;
1083
+ }[] | undefined;
1084
+ }>>;
614
1085
  }, "strip", z.ZodTypeAny, {
615
1086
  status: "failed" | "blocked" | "success" | "success_with_warnings";
616
1087
  gates_passed: boolean | null;
617
1088
  deliverable_present: boolean;
618
1089
  harness_errored: boolean;
619
1090
  web_required_unsatisfied: boolean;
1091
+ delegation_belt_unavailable: boolean;
620
1092
  tool_warnings_count: number;
1093
+ work_state?: {
1094
+ source: "constrained" | "validated" | "absent";
1095
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
1096
+ required_inputs?: {
1097
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
1098
+ description: string;
1099
+ locator: string | null;
1100
+ }[] | undefined;
1101
+ } | undefined;
621
1102
  }, {
622
1103
  status?: "failed" | "blocked" | "success" | "success_with_warnings" | undefined;
1104
+ work_state?: {
1105
+ source: "constrained" | "validated" | "absent";
1106
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
1107
+ required_inputs?: {
1108
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
1109
+ description: string;
1110
+ locator?: string | null | undefined;
1111
+ }[] | undefined;
1112
+ } | undefined;
623
1113
  gates_passed?: boolean | null | undefined;
624
1114
  deliverable_present?: boolean | undefined;
625
1115
  harness_errored?: boolean | undefined;
626
1116
  web_required_unsatisfied?: boolean | undefined;
1117
+ delegation_belt_unavailable?: boolean | undefined;
627
1118
  tool_warnings_count?: number | undefined;
628
1119
  }>>;
1120
+ /** Delegation-belt runtime readiness (QA-024); present only when a belt was
1121
+ * injected into this attempt. Absent on non-delegate attempts. */
1122
+ delegation_belt: z.ZodOptional<z.ZodObject<{
1123
+ requested: z.ZodDefault<z.ZodBoolean>;
1124
+ server_name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1125
+ ready: z.ZodDefault<z.ZodBoolean>;
1126
+ failed: z.ZodDefault<z.ZodBoolean>;
1127
+ tool_evidence: z.ZodDefault<z.ZodBoolean>;
1128
+ }, "strip", z.ZodTypeAny, {
1129
+ ready: boolean;
1130
+ failed: boolean;
1131
+ requested: boolean;
1132
+ server_name: string | null;
1133
+ tool_evidence: boolean;
1134
+ }, {
1135
+ ready?: boolean | undefined;
1136
+ failed?: boolean | undefined;
1137
+ requested?: boolean | undefined;
1138
+ server_name?: string | null | undefined;
1139
+ tool_evidence?: boolean | undefined;
1140
+ }>>;
1141
+ /** Browser-MCP runtime evidence (QA-040); present only when the browser was
1142
+ * armed for this attempt. Absent when the browser was not injected. */
1143
+ browser: z.ZodOptional<z.ZodObject<{
1144
+ requested: z.ZodDefault<z.ZodBoolean>;
1145
+ server_name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1146
+ attempted: z.ZodDefault<z.ZodBoolean>;
1147
+ satisfied: z.ZodDefault<z.ZodBoolean>;
1148
+ failed: z.ZodDefault<z.ZodBoolean>;
1149
+ unused: z.ZodDefault<z.ZodBoolean>;
1150
+ }, "strip", z.ZodTypeAny, {
1151
+ failed: boolean;
1152
+ requested: boolean;
1153
+ attempted: boolean;
1154
+ satisfied: boolean;
1155
+ server_name: string | null;
1156
+ unused: boolean;
1157
+ }, {
1158
+ failed?: boolean | undefined;
1159
+ requested?: boolean | undefined;
1160
+ attempted?: boolean | undefined;
1161
+ satisfied?: boolean | undefined;
1162
+ server_name?: string | null | undefined;
1163
+ unused?: boolean | undefined;
1164
+ }>>;
629
1165
  /** Token usage summed across this attempt's usage events. */
630
1166
  usage: z.ZodDefault<z.ZodObject<{
631
1167
  input_tokens: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
@@ -644,7 +1180,8 @@ export declare const RunTelemetry: z.ZodObject<{
644
1180
  profile_id: string | null;
645
1181
  harness_id: string;
646
1182
  web: {
647
- status: "failed" | "none" | "attempted" | "unverified" | "satisfied";
1183
+ status: "failed" | "none" | "unverified" | "attempted" | "satisfied";
1184
+ verification: "none" | "verified" | "dispatched";
648
1185
  target: string | null;
649
1186
  error_summary: string | null;
650
1187
  tool: string | null;
@@ -688,6 +1225,11 @@ export declare const RunTelemetry: z.ZodObject<{
688
1225
  transient_failures: {
689
1226
  kind: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout";
690
1227
  retry_delay_ms: number | null;
1228
+ retryable: boolean;
1229
+ category: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error";
1230
+ http_status: number | null;
1231
+ signal: string | null;
1232
+ adapter_code: string | null;
691
1233
  }[];
692
1234
  outcome: {
693
1235
  status: "failed" | "blocked" | "success" | "success_with_warnings";
@@ -695,12 +1237,38 @@ export declare const RunTelemetry: z.ZodObject<{
695
1237
  deliverable_present: boolean;
696
1238
  harness_errored: boolean;
697
1239
  web_required_unsatisfied: boolean;
1240
+ delegation_belt_unavailable: boolean;
698
1241
  tool_warnings_count: number;
1242
+ work_state?: {
1243
+ source: "constrained" | "validated" | "absent";
1244
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
1245
+ required_inputs?: {
1246
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
1247
+ description: string;
1248
+ locator: string | null;
1249
+ }[] | undefined;
1250
+ } | undefined;
699
1251
  };
1252
+ browser?: {
1253
+ failed: boolean;
1254
+ requested: boolean;
1255
+ attempted: boolean;
1256
+ satisfied: boolean;
1257
+ server_name: string | null;
1258
+ unused: boolean;
1259
+ } | undefined;
1260
+ delegation_belt?: {
1261
+ ready: boolean;
1262
+ failed: boolean;
1263
+ requested: boolean;
1264
+ server_name: string | null;
1265
+ tool_evidence: boolean;
1266
+ } | undefined;
700
1267
  }, {
701
1268
  harness_id: string;
702
1269
  web: {
703
- status?: "failed" | "none" | "attempted" | "unverified" | "satisfied" | undefined;
1270
+ status?: "failed" | "none" | "unverified" | "attempted" | "satisfied" | undefined;
1271
+ verification?: "none" | "verified" | "dispatched" | undefined;
704
1272
  target?: string | null | undefined;
705
1273
  error_summary?: string | null | undefined;
706
1274
  tool?: string | null | undefined;
@@ -712,6 +1280,14 @@ export declare const RunTelemetry: z.ZodObject<{
712
1280
  };
713
1281
  attempt_id: string;
714
1282
  profile_id?: string | null | undefined;
1283
+ browser?: {
1284
+ failed?: boolean | undefined;
1285
+ requested?: boolean | undefined;
1286
+ attempted?: boolean | undefined;
1287
+ satisfied?: boolean | undefined;
1288
+ server_name?: string | null | undefined;
1289
+ unused?: boolean | undefined;
1290
+ } | undefined;
715
1291
  usage?: {
716
1292
  input_tokens?: number | null | undefined;
717
1293
  output_tokens?: number | null | undefined;
@@ -745,15 +1321,37 @@ export declare const RunTelemetry: z.ZodObject<{
745
1321
  transient_failures?: {
746
1322
  kind?: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout" | undefined;
747
1323
  retry_delay_ms?: number | null | undefined;
1324
+ retryable?: boolean | undefined;
1325
+ category?: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error" | undefined;
1326
+ http_status?: number | null | undefined;
1327
+ signal?: string | null | undefined;
1328
+ adapter_code?: string | null | undefined;
748
1329
  }[] | undefined;
749
1330
  outcome?: {
750
1331
  status?: "failed" | "blocked" | "success" | "success_with_warnings" | undefined;
1332
+ work_state?: {
1333
+ source: "constrained" | "validated" | "absent";
1334
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
1335
+ required_inputs?: {
1336
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
1337
+ description: string;
1338
+ locator?: string | null | undefined;
1339
+ }[] | undefined;
1340
+ } | undefined;
751
1341
  gates_passed?: boolean | null | undefined;
752
1342
  deliverable_present?: boolean | undefined;
753
1343
  harness_errored?: boolean | undefined;
754
1344
  web_required_unsatisfied?: boolean | undefined;
1345
+ delegation_belt_unavailable?: boolean | undefined;
755
1346
  tool_warnings_count?: number | undefined;
756
1347
  } | undefined;
1348
+ delegation_belt?: {
1349
+ ready?: boolean | undefined;
1350
+ failed?: boolean | undefined;
1351
+ requested?: boolean | undefined;
1352
+ server_name?: string | null | undefined;
1353
+ tool_evidence?: boolean | undefined;
1354
+ } | undefined;
757
1355
  }>, "many">>;
758
1356
  request_requirements: z.ZodDefault<z.ZodArray<z.ZodObject<{
759
1357
  capability: z.ZodEnum<["browser", "path_deny"]>;
@@ -851,10 +1449,76 @@ export declare const RunTelemetry: z.ZodObject<{
851
1449
  observed: string;
852
1450
  } | null | undefined;
853
1451
  }>>>;
1452
+ /** Typed routing rationale (QA-034) recorded ONCE at pool ordering: the
1453
+ * ordered/dropped pool, the decisive reason, and per-candidate billing/cost
1454
+ * tuples. Run evidence, not an event. Null on legacy artifacts and on runs
1455
+ * with an explicit single-harness pool where no ranking was computed. */
1456
+ routing_rationale: z.ZodDefault<z.ZodNullable<z.ZodObject<{
1457
+ goal: z.ZodEnum<["auto", "quality", "economy"]>;
1458
+ paid_fallback: z.ZodEnum<["never", "when_unavailable", "allowed_within_cap"]>;
1459
+ order: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1460
+ dropped: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1461
+ reason: z.ZodEnum<["subscription_entitlement_first", "lowest_incremental_cash", "quality_tier", "expiring_quota_slack", "all_incremental_cash_unknown", "declared_order"]>;
1462
+ entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
1463
+ harness_id: z.ZodString;
1464
+ billing_knowledge: z.ZodEnum<["proven_zero", "subscription_entitlement", "metered", "unknown"]>;
1465
+ incremental_cost_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
1466
+ eligible: z.ZodBoolean;
1467
+ }, "strip", z.ZodTypeAny, {
1468
+ harness_id: string;
1469
+ billing_knowledge: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
1470
+ incremental_cost_usd: number | null;
1471
+ eligible: boolean;
1472
+ }, {
1473
+ harness_id: string;
1474
+ billing_knowledge: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
1475
+ eligible: boolean;
1476
+ incremental_cost_usd?: number | null | undefined;
1477
+ }>, "many">>;
1478
+ }, "strip", z.ZodTypeAny, {
1479
+ entries: {
1480
+ harness_id: string;
1481
+ billing_knowledge: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
1482
+ incremental_cost_usd: number | null;
1483
+ eligible: boolean;
1484
+ }[];
1485
+ reason: "subscription_entitlement_first" | "lowest_incremental_cash" | "quality_tier" | "expiring_quota_slack" | "all_incremental_cash_unknown" | "declared_order";
1486
+ goal: "auto" | "quality" | "economy";
1487
+ paid_fallback: "never" | "when_unavailable" | "allowed_within_cap";
1488
+ order: string[];
1489
+ dropped: string[];
1490
+ }, {
1491
+ reason: "subscription_entitlement_first" | "lowest_incremental_cash" | "quality_tier" | "expiring_quota_slack" | "all_incremental_cash_unknown" | "declared_order";
1492
+ goal: "auto" | "quality" | "economy";
1493
+ paid_fallback: "never" | "when_unavailable" | "allowed_within_cap";
1494
+ entries?: {
1495
+ harness_id: string;
1496
+ billing_knowledge: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
1497
+ eligible: boolean;
1498
+ incremental_cost_usd?: number | null | undefined;
1499
+ }[] | undefined;
1500
+ order?: string[] | undefined;
1501
+ dropped?: string[] | undefined;
1502
+ }>>>;
1503
+ /** Deep-scan reducer outcome (#27 / D-6); null on non-deep-scan/legacy runs. */
1504
+ deep_scan_synthesis: z.ZodDefault<z.ZodNullable<z.ZodObject<{
1505
+ status: z.ZodEnum<["succeeded", "failed", "skipped"]>;
1506
+ reducer_attempt_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1507
+ reason: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1508
+ }, "strip", z.ZodTypeAny, {
1509
+ status: "failed" | "succeeded" | "skipped";
1510
+ reason: string | null;
1511
+ reducer_attempt_id: string | null;
1512
+ }, {
1513
+ status: "failed" | "succeeded" | "skipped";
1514
+ reason?: string | null | undefined;
1515
+ reducer_attempt_id?: string | null | undefined;
1516
+ }>>>;
854
1517
  generated_at: z.ZodString;
855
1518
  }, "strip", z.ZodTypeAny, {
856
1519
  web: {
857
- status: "failed" | "none" | "attempted" | "unverified" | "satisfied";
1520
+ status: "failed" | "none" | "unverified" | "attempted" | "satisfied";
1521
+ verification: "none" | "verified" | "dispatched";
858
1522
  target: string | null;
859
1523
  error_summary: string | null;
860
1524
  tool: string | null;
@@ -874,7 +1538,8 @@ export declare const RunTelemetry: z.ZodObject<{
874
1538
  profile_id: string | null;
875
1539
  harness_id: string;
876
1540
  web: {
877
- status: "failed" | "none" | "attempted" | "unverified" | "satisfied";
1541
+ status: "failed" | "none" | "unverified" | "attempted" | "satisfied";
1542
+ verification: "none" | "verified" | "dispatched";
878
1543
  target: string | null;
879
1544
  error_summary: string | null;
880
1545
  tool: string | null;
@@ -918,6 +1583,11 @@ export declare const RunTelemetry: z.ZodObject<{
918
1583
  transient_failures: {
919
1584
  kind: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout";
920
1585
  retry_delay_ms: number | null;
1586
+ retryable: boolean;
1587
+ category: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error";
1588
+ http_status: number | null;
1589
+ signal: string | null;
1590
+ adapter_code: string | null;
921
1591
  }[];
922
1592
  outcome: {
923
1593
  status: "failed" | "blocked" | "success" | "success_with_warnings";
@@ -925,8 +1595,33 @@ export declare const RunTelemetry: z.ZodObject<{
925
1595
  deliverable_present: boolean;
926
1596
  harness_errored: boolean;
927
1597
  web_required_unsatisfied: boolean;
1598
+ delegation_belt_unavailable: boolean;
928
1599
  tool_warnings_count: number;
1600
+ work_state?: {
1601
+ source: "constrained" | "validated" | "absent";
1602
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
1603
+ required_inputs?: {
1604
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
1605
+ description: string;
1606
+ locator: string | null;
1607
+ }[] | undefined;
1608
+ } | undefined;
929
1609
  };
1610
+ browser?: {
1611
+ failed: boolean;
1612
+ requested: boolean;
1613
+ attempted: boolean;
1614
+ satisfied: boolean;
1615
+ server_name: string | null;
1616
+ unused: boolean;
1617
+ } | undefined;
1618
+ delegation_belt?: {
1619
+ ready: boolean;
1620
+ failed: boolean;
1621
+ requested: boolean;
1622
+ server_name: string | null;
1623
+ tool_evidence: boolean;
1624
+ } | undefined;
930
1625
  }[];
931
1626
  generated_at: string;
932
1627
  request_requirements: {
@@ -961,9 +1656,28 @@ export declare const RunTelemetry: z.ZodObject<{
961
1656
  observed: string;
962
1657
  } | null;
963
1658
  } | null;
1659
+ routing_rationale: {
1660
+ entries: {
1661
+ harness_id: string;
1662
+ billing_knowledge: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
1663
+ incremental_cost_usd: number | null;
1664
+ eligible: boolean;
1665
+ }[];
1666
+ reason: "subscription_entitlement_first" | "lowest_incremental_cash" | "quality_tier" | "expiring_quota_slack" | "all_incremental_cash_unknown" | "declared_order";
1667
+ goal: "auto" | "quality" | "economy";
1668
+ paid_fallback: "never" | "when_unavailable" | "allowed_within_cap";
1669
+ order: string[];
1670
+ dropped: string[];
1671
+ } | null;
1672
+ deep_scan_synthesis: {
1673
+ status: "failed" | "succeeded" | "skipped";
1674
+ reason: string | null;
1675
+ reducer_attempt_id: string | null;
1676
+ } | null;
964
1677
  }, {
965
1678
  web: {
966
- status?: "failed" | "none" | "attempted" | "unverified" | "satisfied" | undefined;
1679
+ status?: "failed" | "none" | "unverified" | "attempted" | "satisfied" | undefined;
1680
+ verification?: "none" | "verified" | "dispatched" | undefined;
967
1681
  target?: string | null | undefined;
968
1682
  error_summary?: string | null | undefined;
969
1683
  tool?: string | null | undefined;
@@ -986,7 +1700,8 @@ export declare const RunTelemetry: z.ZodObject<{
986
1700
  attempts?: {
987
1701
  harness_id: string;
988
1702
  web: {
989
- status?: "failed" | "none" | "attempted" | "unverified" | "satisfied" | undefined;
1703
+ status?: "failed" | "none" | "unverified" | "attempted" | "satisfied" | undefined;
1704
+ verification?: "none" | "verified" | "dispatched" | undefined;
990
1705
  target?: string | null | undefined;
991
1706
  error_summary?: string | null | undefined;
992
1707
  tool?: string | null | undefined;
@@ -998,6 +1713,14 @@ export declare const RunTelemetry: z.ZodObject<{
998
1713
  };
999
1714
  attempt_id: string;
1000
1715
  profile_id?: string | null | undefined;
1716
+ browser?: {
1717
+ failed?: boolean | undefined;
1718
+ requested?: boolean | undefined;
1719
+ attempted?: boolean | undefined;
1720
+ satisfied?: boolean | undefined;
1721
+ server_name?: string | null | undefined;
1722
+ unused?: boolean | undefined;
1723
+ } | undefined;
1001
1724
  usage?: {
1002
1725
  input_tokens?: number | null | undefined;
1003
1726
  output_tokens?: number | null | undefined;
@@ -1031,15 +1754,37 @@ export declare const RunTelemetry: z.ZodObject<{
1031
1754
  transient_failures?: {
1032
1755
  kind?: "unknown" | "network" | "stream_disconnect" | "service_unavailable" | "timeout" | undefined;
1033
1756
  retry_delay_ms?: number | null | undefined;
1757
+ retryable?: boolean | undefined;
1758
+ category?: "rate_limited" | "timeout" | "config_error" | "auth_failed" | "capability_refused" | "process_crash" | "unknown_harness_error" | undefined;
1759
+ http_status?: number | null | undefined;
1760
+ signal?: string | null | undefined;
1761
+ adapter_code?: string | null | undefined;
1034
1762
  }[] | undefined;
1035
1763
  outcome?: {
1036
1764
  status?: "failed" | "blocked" | "success" | "success_with_warnings" | undefined;
1765
+ work_state?: {
1766
+ source: "constrained" | "validated" | "absent";
1767
+ state: "completed" | "needs_input" | "incomplete" | "unverified";
1768
+ required_inputs?: {
1769
+ kind: "file" | "context" | "decision" | "credential" | "permission" | "external_dependency";
1770
+ description: string;
1771
+ locator?: string | null | undefined;
1772
+ }[] | undefined;
1773
+ } | undefined;
1037
1774
  gates_passed?: boolean | null | undefined;
1038
1775
  deliverable_present?: boolean | undefined;
1039
1776
  harness_errored?: boolean | undefined;
1040
1777
  web_required_unsatisfied?: boolean | undefined;
1778
+ delegation_belt_unavailable?: boolean | undefined;
1041
1779
  tool_warnings_count?: number | undefined;
1042
1780
  } | undefined;
1781
+ delegation_belt?: {
1782
+ ready?: boolean | undefined;
1783
+ failed?: boolean | undefined;
1784
+ requested?: boolean | undefined;
1785
+ server_name?: string | null | undefined;
1786
+ tool_evidence?: boolean | undefined;
1787
+ } | undefined;
1043
1788
  }[] | undefined;
1044
1789
  request_requirements?: {
1045
1790
  requested: boolean;
@@ -1070,6 +1815,24 @@ export declare const RunTelemetry: z.ZodObject<{
1070
1815
  observed: string;
1071
1816
  } | null | undefined;
1072
1817
  } | null | undefined;
1818
+ routing_rationale?: {
1819
+ reason: "subscription_entitlement_first" | "lowest_incremental_cash" | "quality_tier" | "expiring_quota_slack" | "all_incremental_cash_unknown" | "declared_order";
1820
+ goal: "auto" | "quality" | "economy";
1821
+ paid_fallback: "never" | "when_unavailable" | "allowed_within_cap";
1822
+ entries?: {
1823
+ harness_id: string;
1824
+ billing_knowledge: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
1825
+ eligible: boolean;
1826
+ incremental_cost_usd?: number | null | undefined;
1827
+ }[] | undefined;
1828
+ order?: string[] | undefined;
1829
+ dropped?: string[] | undefined;
1830
+ } | null | undefined;
1831
+ deep_scan_synthesis?: {
1832
+ status: "failed" | "succeeded" | "skipped";
1833
+ reason?: string | null | undefined;
1834
+ reducer_attempt_id?: string | null | undefined;
1835
+ } | null | undefined;
1073
1836
  }>;
1074
1837
  export type RunTelemetry = z.infer<typeof RunTelemetry>;
1075
1838
  //# sourceMappingURL=telemetry.d.ts.map