@claudexor/orchestrator 1.0.1 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/attemptTelemetry.d.ts +38 -2
  2. package/dist/attemptTelemetry.d.ts.map +1 -1
  3. package/dist/attemptTelemetry.js +75 -2
  4. package/dist/attemptTelemetry.js.map +1 -1
  5. package/dist/contract-gates.d.ts +21 -0
  6. package/dist/contract-gates.d.ts.map +1 -0
  7. package/dist/contract-gates.js +93 -0
  8. package/dist/contract-gates.js.map +1 -0
  9. package/dist/credential-profiles.d.ts +152 -0
  10. package/dist/credential-profiles.d.ts.map +1 -0
  11. package/dist/credential-profiles.js +270 -0
  12. package/dist/credential-profiles.js.map +1 -0
  13. package/dist/diffReview.d.ts +9 -1
  14. package/dist/diffReview.d.ts.map +1 -1
  15. package/dist/diffReview.js +114 -18
  16. package/dist/diffReview.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/modelGovernance.d.ts +6 -1
  22. package/dist/modelGovernance.d.ts.map +1 -1
  23. package/dist/modelGovernance.js +8 -2
  24. package/dist/modelGovernance.js.map +1 -1
  25. package/dist/orchestrateExecutor.d.ts +43 -0
  26. package/dist/orchestrateExecutor.d.ts.map +1 -0
  27. package/dist/orchestrateExecutor.js +207 -0
  28. package/dist/orchestrateExecutor.js.map +1 -0
  29. package/dist/orchestratePlanner.d.ts.map +1 -1
  30. package/dist/orchestratePlanner.js.map +1 -1
  31. package/dist/orchestrator.d.ts +100 -83
  32. package/dist/orchestrator.d.ts.map +1 -1
  33. package/dist/orchestrator.js +1008 -993
  34. package/dist/orchestrator.js.map +1 -1
  35. package/dist/outcomeReducer.d.ts +25 -0
  36. package/dist/outcomeReducer.d.ts.map +1 -0
  37. package/dist/outcomeReducer.js +121 -0
  38. package/dist/outcomeReducer.js.map +1 -0
  39. package/dist/policyFindings.d.ts +18 -0
  40. package/dist/policyFindings.d.ts.map +1 -0
  41. package/dist/policyFindings.js +166 -0
  42. package/dist/policyFindings.js.map +1 -0
  43. package/dist/requestRequirements.d.ts +38 -0
  44. package/dist/requestRequirements.d.ts.map +1 -0
  45. package/dist/requestRequirements.js +127 -0
  46. package/dist/requestRequirements.js.map +1 -0
  47. package/dist/reviewerPanel.d.ts +15 -1
  48. package/dist/reviewerPanel.d.ts.map +1 -1
  49. package/dist/reviewerPanel.js +85 -2
  50. package/dist/reviewerPanel.js.map +1 -1
  51. package/dist/routeContext.d.ts +37 -0
  52. package/dist/routeContext.d.ts.map +1 -0
  53. package/dist/routeContext.js +38 -0
  54. package/dist/routeContext.js.map +1 -0
  55. package/dist/runSupport.d.ts +37 -21
  56. package/dist/runSupport.d.ts.map +1 -1
  57. package/dist/runSupport.js +102 -78
  58. package/dist/runSupport.js.map +1 -1
  59. package/dist/runTelemetryWriter.d.ts +20 -0
  60. package/dist/runTelemetryWriter.d.ts.map +1 -0
  61. package/dist/runTelemetryWriter.js +68 -0
  62. package/dist/runTelemetryWriter.js.map +1 -0
  63. package/dist/runTerminals.d.ts +7 -1
  64. package/dist/runTerminals.d.ts.map +1 -1
  65. package/dist/runTerminals.js +42 -4
  66. package/dist/runTerminals.js.map +1 -1
  67. package/dist/structuredOutput.d.ts +33 -0
  68. package/dist/structuredOutput.d.ts.map +1 -0
  69. package/dist/structuredOutput.js +106 -0
  70. package/dist/structuredOutput.js.map +1 -0
  71. package/package.json +19 -18
  72. package/dist/finalVerifier.d.ts +0 -25
  73. package/dist/finalVerifier.d.ts.map +0 -1
  74. package/dist/finalVerifier.js +0 -110
  75. package/dist/finalVerifier.js.map +0 -1
@@ -1,10 +1,46 @@
1
- import { FallbackReason as FallbackReasonSchema, RouteFallbackPayload as RouteFallbackPayloadSchema } from "@claudexor/schema";
1
+ import { FallbackReason as FallbackReasonSchema, RouteFallbackPayload as RouteFallbackPayloadSchema, } from "@claudexor/schema";
2
2
  import { isBlocking } from "@claudexor/schema";
3
3
  import { redactSecrets } from "@claudexor/util";
4
4
  import { observationsFromEvent, recordHarnessMetric } from "@claudexor/budget";
5
5
  import { existsSync, readFileSync } from "node:fs";
6
6
  import { join } from "node:path";
7
7
  import { ArtifactStore } from "@claudexor/artifact-store";
8
+ import { blockedDecisionOverride } from "@claudexor/delivery";
9
+ /** Typed terminal evidence for a fresh-verified race whose live delivery was refused. */
10
+ export function deliveryRefusalDecisionFields(evidenceFacts, reason) {
11
+ return {
12
+ status: "blocked",
13
+ outcome: "blocked",
14
+ apply_recommendation: "inspect",
15
+ evidence_facts: [...evidenceFacts, `delivery refused: ${redactSecrets(reason)}`],
16
+ };
17
+ }
18
+ export function deliveryRefusalFailure(reason, runDir) {
19
+ return {
20
+ phase: "delivery",
21
+ category: "validation",
22
+ safeMessage: `delivery refused after fresh verification: ${redactSecrets(reason)}`,
23
+ rawDetailRef: "final/delivery_receipt.yaml",
24
+ runDir,
25
+ nextActions: [
26
+ "Inspect final/delivery_receipt.yaml",
27
+ "Retry after the target tree stops changing",
28
+ ],
29
+ };
30
+ }
31
+ export function writeRaceDeliveryDecision(store, path, input) {
32
+ store.writeYaml(path, {
33
+ ...input.decision,
34
+ ...(input.deliveryFailureReason
35
+ ? deliveryRefusalDecisionFields(input.decision.evidence_facts, input.deliveryFailureReason)
36
+ : input.status === "blocked"
37
+ ? blockedDecisionOverride(input.decision.evidence_facts, input.finalVerify)
38
+ : {}),
39
+ review_verified: input.reviewVerified,
40
+ final_verify: input.finalVerify,
41
+ ...(input.deliveryReceiptPath ? { delivery_receipt: input.deliveryReceiptPath } : {}),
42
+ });
43
+ }
8
44
  /**
9
45
  * Relay cross-share: the prior planners' plans, injected into a later
10
46
  * planner's prompt so the harnesses CONVERGE on an aligned plan instead of
@@ -21,7 +57,9 @@ export function relayPriorPlansSection(plans) {
21
57
  const blocks = plans
22
58
  .map((p) => {
23
59
  const cut = p.text.length > CAP;
24
- const body = cut ? `${p.text.slice(0, CAP)}\n[... plan truncated at ${CAP} chars — the source run's plan artifact carries the full text]` : p.text;
60
+ const body = cut
61
+ ? `${p.text.slice(0, CAP)}\n[... plan truncated at ${CAP} chars — the source run's plan artifact carries the full text]`
62
+ : p.text;
25
63
  return `### Plan already proposed by ${p.id}\n${body}`;
26
64
  })
27
65
  .join("\n\n");
@@ -32,8 +70,8 @@ export function transientRetryDelayMs(nativeDelayMs, policy, retryIndex) {
32
70
  const delay = nativeDelayMs ?? fallback;
33
71
  return Math.min(delay, policy.maxDelayMs);
34
72
  }
35
- export function gateProtectedPaths(commands) {
36
- if (commands.length === 0)
73
+ export function gateProtectedPaths(commandTokens) {
74
+ if (commandTokens.length === 0)
37
75
  return [];
38
76
  const paths = new Set([
39
77
  "package.json",
@@ -44,28 +82,26 @@ export function gateProtectedPaths(commands) {
44
82
  "**/*.test.*",
45
83
  "**/*.spec.*",
46
84
  ]);
47
- for (const command of commands) {
48
- for (const raw of command.split(/\s+/)) {
49
- const token = raw.trim().replace(/^['"]|['"]$/g, "");
50
- if (!token ||
51
- token.startsWith("-") ||
52
- token.includes("=") ||
53
- token.includes("://") ||
54
- token.startsWith("/"))
55
- continue;
56
- if (!token.includes("/") && !token.includes("."))
57
- continue;
58
- const clean = token.replace(/^[./]+/, "").replace(/[),;]+$/g, "");
59
- if (!clean || clean === "package.json")
60
- continue;
61
- const testish = clean.startsWith("test/") ||
62
- clean.startsWith("tests/") ||
63
- clean.startsWith("__tests__/") ||
64
- clean.includes(".test.") ||
65
- clean.includes(".spec.");
66
- if (testish)
67
- paths.add(clean.endsWith("/") ? `${clean}**` : clean);
68
- }
85
+ for (const raw of commandTokens) {
86
+ const token = raw.trim();
87
+ if (!token ||
88
+ token.startsWith("-") ||
89
+ token.includes("=") ||
90
+ token.includes("://") ||
91
+ token.startsWith("/"))
92
+ continue;
93
+ if (!token.includes("/") && !token.includes("."))
94
+ continue;
95
+ const clean = token.replace(/^[./]+/, "").replace(/[),;]+$/g, "");
96
+ if (!clean || clean === "package.json")
97
+ continue;
98
+ const testish = clean.startsWith("test/") ||
99
+ clean.startsWith("tests/") ||
100
+ clean.startsWith("__tests__/") ||
101
+ clean.includes(".test.") ||
102
+ clean.includes(".spec.");
103
+ if (testish)
104
+ paths.add(clean.endsWith("/") ? `${clean}**` : clean);
69
105
  }
70
106
  return [...paths];
71
107
  }
@@ -94,11 +130,7 @@ export function promptWithProtectedPathConstraint(prompt, protectedPaths, autoPr
94
130
  ...approvalLines,
95
131
  ]
96
132
  : [];
97
- return [
98
- prompt,
99
- ...specLines,
100
- ...autoLines,
101
- ].join("\n");
133
+ return [prompt, ...specLines, ...autoLines].join("\n");
102
134
  }
103
135
  export function sleep(ms) {
104
136
  if (ms <= 0)
@@ -129,31 +161,27 @@ export function harnessEventPayload(harnessId, attemptId, ev) {
129
161
  harness_id: harnessId,
130
162
  attempt_id: attemptId,
131
163
  session_id: safe.session_id,
164
+ ts: safe.ts,
132
165
  type: safe.type,
133
166
  title: String(title).slice(0, 500),
134
167
  text: safe.text,
135
168
  error: safe.error,
136
169
  usage: safe.usage,
137
170
  observed_model: safe.observed_model,
171
+ credential_route: safe.credential_route,
172
+ quota: safe.quota,
173
+ rate_limit: safe.rate_limit,
138
174
  tool: safe.tool,
139
175
  interaction: safe.interaction,
176
+ // Typed finality/status MUST survive this projection (W-C1/W-C2): the
177
+ // app's transcript reducer keys the answer-dedup on `final` and the
178
+ // activity feed on `status` — dropping them here silently killed both
179
+ // on the LIVE path (caught by the F2.5 E2E smoke, not unit tests).
180
+ final: safe.final,
181
+ status: safe.status,
140
182
  payload: safe.payload,
141
183
  };
142
184
  }
143
- /**
144
- * Deduplicate the known "final result repeats the last streamed message" shape
145
- * (adjacent only). Legitimately repeated earlier messages are preserved — a
146
- * whole-array dedupe would silently merge real output.
147
- */
148
- export function pushUniqueText(parts, text) {
149
- const normalized = text.trim();
150
- if (!normalized)
151
- return;
152
- const last = parts[parts.length - 1]?.trim();
153
- if (last === normalized)
154
- return;
155
- parts.push(normalized);
156
- }
157
185
  export function formatFindings(findings) {
158
186
  if (findings.length === 0)
159
187
  return "(no findings recorded)";
@@ -183,23 +211,6 @@ export function renderSummary(runId, mode, decision, evidences, synthReason, rev
183
211
  decision.why_winner,
184
212
  ].join("\n") + "\n");
185
213
  }
186
- /** Pure read: a referenced run's decision/work_product status, or null. */
187
- export function readRunStatus(repoRoot, runId) {
188
- const store = new ArtifactStore(repoRoot);
189
- const sub = store.runPaths(runId);
190
- const decision = store.readYaml(join(sub.arbitrationDir, "decision.yaml"));
191
- const wp = store.readYaml(join(sub.finalDir, "work_product.yaml"));
192
- if (!decision && !wp)
193
- return null;
194
- const parts = [];
195
- if (decision?.status)
196
- parts.push(`decision=${decision.status}`);
197
- if (wp?.meta?.["result_kind"])
198
- parts.push(`result_kind=${String(wp.meta["result_kind"])}`);
199
- if (wp?.meta?.["apply_state"])
200
- parts.push(`apply_state=${String(wp.meta["apply_state"])}`);
201
- return parts.length > 0 ? parts.join(", ") : `run ${runId}: artifacts present`;
202
- }
203
214
  /** Pure read: a referenced run's recorded patch diff, or null. */
204
215
  export function readRunPatch(repoRoot, runId) {
205
216
  const store = new ArtifactStore(repoRoot);
@@ -212,7 +223,11 @@ export function envInheritance(cfg) {
212
223
  }
213
224
  export function transientRetryPolicy(cfg) {
214
225
  const c = cfg.global.runtime.transient_retry;
215
- return { maxRetries: c.max_retries, initialDelayMs: c.initial_delay_ms, maxDelayMs: c.max_delay_ms };
226
+ return {
227
+ maxRetries: c.max_retries,
228
+ initialDelayMs: c.initial_delay_ms,
229
+ maxDelayMs: c.max_delay_ms,
230
+ };
216
231
  }
217
232
  export function reviewerTimeoutMs(cfg) {
218
233
  return cfg.global.runtime.reviewer_timeout_ms;
@@ -244,19 +259,18 @@ export function observeAuthSwitch(log, harnessId, attemptId, ev) {
244
259
  /* a malformed marker must not fail the run */
245
260
  }
246
261
  }
247
- /** Observe ALL budget/quota signals from one harness event and disclose
248
- * quota pressure ONCE per attempt (crossing semantics). One owner — the
249
- * agent, plan, and read-only loops all consume this instead of pasting the
250
- * loop (critic finding: triplicated logic drifts). */
251
262
  export function observeBudgetSignals(ledger, log, harnessId, attemptId, ev, state) {
252
263
  for (const obs of observationsFromEvent(harnessId, ev)) {
253
264
  ledger.observe(obs);
254
- if (obs.kind === "used_percent" && (obs.used_percent ?? 0) >= 50 && !state.quotaPressureDisclosed) {
265
+ if (obs.kind === "quota_constraint" &&
266
+ (obs.used_ratio ?? 0) >= 0.5 &&
267
+ !state.quotaPressureDisclosed) {
255
268
  state.quotaPressureDisclosed = true;
256
269
  log?.emit("budget.quota_pressure", {
257
270
  harness_id: harnessId,
258
271
  attempt_id: attemptId,
259
- used_percent: obs.used_percent,
272
+ constraint_id: obs.constraint_id,
273
+ used_ratio: obs.used_ratio,
260
274
  resets_at: obs.resets_at ?? null,
261
275
  });
262
276
  }
@@ -273,7 +287,7 @@ export function rotateOnStall(poolIds, currentIdx, ledger, tried, log, fromHarne
273
287
  from_harness: fromHarness,
274
288
  to_harness: poolIds[pickedIdx],
275
289
  reason: "stall",
276
- headroom: ledger.headroom(poolIds[pickedIdx]),
290
+ pace_slack: ledger.bindingPaceSlack(poolIds[pickedIdx]),
277
291
  });
278
292
  }
279
293
  return pickedIdx;
@@ -285,7 +299,8 @@ export function rotateOnStall(poolIds, currentIdx, ledger, tried, log, fromHarne
285
299
  export function pickStallRotationIdx(poolIds, currentIdx, ledger, tried = new Set()) {
286
300
  if (poolIds.length === 0)
287
301
  return currentIdx; // total: never NaN via %0
288
- const rank = (candidates) => candidates.sort((a, b) => ledger.headroom(b.id) - ledger.headroom(a.id) ||
302
+ const rank = (candidates) => candidates.sort((a, b) => (ledger.bindingPaceSlack(b.id) ?? Number.NEGATIVE_INFINITY) -
303
+ (ledger.bindingPaceSlack(a.id) ?? Number.NEGATIVE_INFINITY) ||
289
304
  ((a.idx - currentIdx + poolIds.length) % poolIds.length) -
290
305
  ((b.idx - currentIdx + poolIds.length) % poolIds.length))[0];
291
306
  const eligible = poolIds
@@ -299,29 +314,34 @@ export function pickStallRotationIdx(poolIds, currentIdx, ledger, tried = new Se
299
314
  /** Routing metrics: one settled sample per CLEAN attempt (advisory input;
300
315
  * failures never fail the run). Errored/cancelled attempts are NOT samples —
301
316
  * a fast-failing harness must not earn a flattering latency average (the
302
- * router divides by latency). Duration = stream time only (gates excluded). */
317
+ * router divides by latency) but their DISCLOSED auth route is still route
318
+ * evidence (the quota they burned is real) and refreshes last_auth_mode
319
+ * without counting a sample. Duration = stream time only (gates excluded). */
303
320
  export function recordCleanAttemptMetrics(configDir, harnessId, sample) {
304
- if (sample.errored || sample.aborted)
321
+ if (sample.errored || sample.aborted) {
322
+ if (sample.authMode)
323
+ recordHarnessMetric(configDir, harnessId, { authMode: sample.authMode });
305
324
  return;
325
+ }
306
326
  recordHarnessMetric(configDir, harnessId, {
307
327
  costUsd: sample.costUsd > 0 ? sample.costUsd : null,
308
328
  durationMs: sample.streamMs,
329
+ authMode: sample.authMode ?? null,
309
330
  });
310
331
  }
311
332
  /** Build the ISOLATED-ENVELOPE sub-run input for an orchestrate SAFE step
312
333
  * (start_run/race): inPlace forced false, no thread binding, no nested
313
334
  * autonomy, recursion depth incremented. Pure construction; the caller
314
335
  * asserts the envelope invariant. */
315
- export function buildEnvelopeSubInput(input, call, remainingUsd) {
336
+ export function buildEnvelopeSubInput(input, call, budgetLedger) {
316
337
  return {
317
338
  repoRoot: input.repoRoot,
318
339
  prompt: call.prompt,
319
340
  mode: (call.tool === "start_run" ? (call.mode ?? "agent") : "agent"),
320
341
  n: call.tool === "race" ? call.n : undefined,
321
342
  harnesses: call.tool === "start_run" && call.harness ? [call.harness] : undefined,
322
- portfolio: input.portfolio,
323
- // Aggregate budget: the sub-run gets only the REMAINING headroom.
324
- maxUsd: remainingUsd,
343
+ routingGoal: input.routingGoal,
344
+ budgetLedger,
325
345
  web: input.web,
326
346
  externalContextPolicy: input.externalContextPolicy,
327
347
  signal: input.signal,
@@ -351,7 +371,11 @@ export function buildEnvelopeSubInput(input, call, remainingUsd) {
351
371
  */
352
372
  export async function deliverPlanAnswer(input, call) {
353
373
  if (!input.answerInteraction) {
354
- return { status: "skipped", runId: null, detail: "no live interaction surface in this context" };
374
+ return {
375
+ status: "skipped",
376
+ runId: null,
377
+ detail: "no live interaction surface in this context",
378
+ };
355
379
  }
356
380
  const delivered = await input.answerInteraction(input.runId ?? "", call.interaction_id, {
357
381
  interaction_id: call.interaction_id,
@@ -1 +1 @@
1
- {"version":3,"file":"runSupport.js","sourceRoot":"","sources":["../src/runSupport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runSupport.js","sourceRoot":"","sources":["../src/runSupport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type ModeKind, type TaskContract } from "@claudexor/schema";
2
+ import type { ArtifactStore } from "@claudexor/artifact-store";
3
+ import { type AttemptTelemetry } from "./attemptTelemetry.js";
4
+ /** The run's final telemetry artifact incl. the auth-route receipt (one owner). */
5
+ export declare function writeRunTelemetryArtifact(args: {
6
+ store: ArtifactStore;
7
+ finalDir: string;
8
+ contract: TaskContract;
9
+ runId: string;
10
+ taskId: string;
11
+ mode: ModeKind;
12
+ attempts: {
13
+ attemptId: string;
14
+ harnessId: string;
15
+ telemetry: AttemptTelemetry;
16
+ }[];
17
+ finalAttemptId: string | null;
18
+ resolveAuthPreference: (harnessId: string) => TaskContract["auth_preference"];
19
+ }): void;
20
+ //# sourceMappingURL=runTelemetryWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runTelemetryWriter.d.ts","sourceRoot":"","sources":["../src/runTelemetryWriter.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,mFAAmF;AACnF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,gBAAgB,CAAA;KAAE,EAAE,CAAC;IAClF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,CAAC,iBAAiB,CAAC,CAAC;CAC/E,GAAG,IAAI,CAkEP"}
@@ -0,0 +1,68 @@
1
+ import { join } from "node:path";
2
+ import { SCHEMA_VERSION, deriveAuthRouteReason, RunTelemetry as RunTelemetrySchema, } from "@claudexor/schema";
3
+ import { nowIso } from "@claudexor/util";
4
+ import { aggregateRunTokenUsage, aggregateRunWebEvidence, attemptTelemetryRecord, } from "./attemptTelemetry.js";
5
+ /** The run's final telemetry artifact incl. the auth-route receipt (one owner). */
6
+ export function writeRunTelemetryArtifact(args) {
7
+ const { store, finalDir, contract, runId, taskId, mode, attempts, finalAttemptId } = args;
8
+ {
9
+ const records = attempts.map((a) => attemptTelemetryRecord(a.attemptId, a.harnessId, a.telemetry));
10
+ const finalRecord = finalAttemptId
11
+ ? records.find((r) => r.attempt_id === finalAttemptId)
12
+ : undefined;
13
+ const runWeb = finalRecord?.web ?? aggregateRunWebEvidence(records, contract);
14
+ const telemetry = RunTelemetrySchema.parse({
15
+ schema_version: SCHEMA_VERSION,
16
+ run_id: runId,
17
+ task_id: taskId,
18
+ mode,
19
+ requested_access: contract.access.requested_profile,
20
+ effective_access: contract.access.effective_profile,
21
+ external_context_policy: contract.external_context.policy,
22
+ effective_web_mode: finalRecord?.web.effective_mode ?? contract.external_context.effective_mode,
23
+ web_required: contract.external_context.web_required,
24
+ final_attempt_id: finalAttemptId,
25
+ web: runWeb,
26
+ attempts: records,
27
+ request_requirements: records.flatMap((record) => record.request_requirements),
28
+ tool_warnings_total: records.reduce((sum, r) => sum + r.outcome.tool_warnings_count, 0),
29
+ usage_totals: aggregateRunTokenUsage(records),
30
+ auth_route: (() => {
31
+ // The FINAL attempt's disclosure decides the run's route receipt (it
32
+ // produced the deliverable); fall back to the first disclosing attempt.
33
+ const disclosing = (finalRecord?.auth_mode ? finalRecord : undefined) ??
34
+ records.find((r) => r.auth_mode !== null) ??
35
+ finalRecord ??
36
+ records[0];
37
+ const requestedModel = disclosing?.requested_model ?? null;
38
+ const observedModel = disclosing?.observed_model ?? null;
39
+ // The requested route is the RESOLVED per-harness preference of the
40
+ // disclosing lane (run-level scalar → per-harness config → global),
41
+ // not the bare run-level scalar — otherwise a configured
42
+ // harnesses.<id>.auth_preference=api_key reads as requested=auto.
43
+ const requestedRoute = disclosing?.harness_id
44
+ ? args.resolveAuthPreference(disclosing.harness_id)
45
+ : contract.auth_preference;
46
+ return {
47
+ requested: requestedRoute,
48
+ effective: disclosing?.auth_mode ?? null,
49
+ source: disclosing?.auth_source ?? null,
50
+ reason: deriveAuthRouteReason(requestedRoute, disclosing?.auth_mode ?? null),
51
+ harness_id: disclosing?.harness_id ?? null,
52
+ attempt_id: disclosing?.attempt_id ?? null,
53
+ // The DECIDING attempt's disclosed profile (adapters stamp it on
54
+ // stream events; rotation makes it differ from the contract's
55
+ // requested id) — never the frozen request.
56
+ profile_id: disclosing?.profile_id ?? null,
57
+ // Typed mismatch, only when BOTH sides are known and differ.
58
+ model_mismatch: requestedModel !== null && observedModel !== null && requestedModel !== observedModel
59
+ ? { requested: requestedModel, observed: observedModel }
60
+ : null,
61
+ };
62
+ })(),
63
+ generated_at: nowIso(),
64
+ });
65
+ store.writeYaml(join(finalDir, "telemetry.yaml"), telemetry);
66
+ }
67
+ }
68
+ //# sourceMappingURL=runTelemetryWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runTelemetryWriter.js","sourceRoot":"","sources":["../src/runTelemetryWriter.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,13 @@ export declare function cancelledResult(log: EventLog, runId: string, taskId: st
38
38
  attemptId: string;
39
39
  harnessId: string;
40
40
  status: string;
41
- }[], writeTelemetry?: () => void, spendUsd?: number | null): OrchestratorResult;
41
+ }[], writeTelemetry?: () => void, spendUsd?: number | null,
42
+ /** The abort signal that ended the run: a STRING reason (e.g.
43
+ * `wall_clock_exceeded` from the maxSeconds deadline) is surfaced; a plain
44
+ * user cancel aborts with a DOMException reason and stays a bare cancel. */
45
+ cancelSignal?: AbortSignal,
46
+ /** Materializes the diagnostic summary the output.ready below announces. */
47
+ store?: ArtifactStore): OrchestratorResult;
42
48
  /**
43
49
  * Terminal safety net for an unexpected throw in a post-announce phase.
44
50
  * Every run must end with failure.yaml + summary + a terminal run.failed
@@ -1 +1 @@
1
- {"version":3,"file":"runTerminals.d.ts","sourceRoot":"","sources":["../src/runTerminals.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd;oEACgE;IAChE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAC5C,OAAO,EAAE;IACP,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,GACA,IAAI,CAaN;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,EACtE,cAAc,CAAC,EAAE,MAAM,IAAI,EAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,kBAAkB,CAoBpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAC5C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,kBAAkB,CA+BpB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,IAAI,KAAK,OAAO,CAAC,kBAAkB,CAAC,GAChF,OAAO,CAAC,kBAAkB,CAAC,CAwB7B"}
1
+ {"version":3,"file":"runTerminals.d.ts","sourceRoot":"","sources":["../src/runTerminals.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd;oEACgE;IAChE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAC5C,OAAO,EAAE;IACP,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,GACA,IAAI,CAaN;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,EACtE,cAAc,CAAC,EAAE,MAAM,IAAI,EAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;AACxB;;4EAE4E;AAC5E,YAAY,CAAC,EAAE,WAAW;AAC1B,4EAA4E;AAC5E,KAAK,CAAC,EAAE,aAAa,GACpB,kBAAkB,CAqDpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAC5C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,kBAAkB,CA+BpB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,IAAI,KAAK,OAAO,CAAC,kBAAkB,CAAC,GAChF,OAAO,CAAC,kBAAkB,CAAC,CA+C7B"}
@@ -30,7 +30,13 @@ export function writeFailure(store, paths, failure) {
30
30
  * must still account for what it spent and observed; it used to be
31
31
  * written only by convergence.
32
32
  */
33
- export function cancelledResult(log, runId, taskId, mode, runDir, candidates, writeTelemetry, spendUsd) {
33
+ export function cancelledResult(log, runId, taskId, mode, runDir, candidates, writeTelemetry, spendUsd,
34
+ /** The abort signal that ended the run: a STRING reason (e.g.
35
+ * `wall_clock_exceeded` from the maxSeconds deadline) is surfaced; a plain
36
+ * user cancel aborts with a DOMException reason and stays a bare cancel. */
37
+ cancelSignal,
38
+ /** Materializes the diagnostic summary the output.ready below announces. */
39
+ store) {
34
40
  if (writeTelemetry) {
35
41
  try {
36
42
  writeTelemetry();
@@ -39,7 +45,35 @@ export function cancelledResult(log, runId, taskId, mode, runDir, candidates, wr
39
45
  /* partial telemetry is best-effort on the cancel path */
40
46
  }
41
47
  }
42
- log.emit("run.failed", { status: "cancelled" });
48
+ const cancelReason = typeof cancelSignal?.reason === "string" && cancelSignal.reason
49
+ ? cancelSignal.reason
50
+ : undefined;
51
+ const summaryText = cancelReason === "wall_clock_exceeded"
52
+ ? "run cancelled: wall-clock deadline (maxSeconds) exceeded"
53
+ : "run cancelled";
54
+ // Materialize the diagnostic summary BEFORE announcing it — output.ready must
55
+ // point at a file that exists (partial-output honesty), and it must precede
56
+ // the terminal in every mode (INV-116).
57
+ let summaryWritten = false;
58
+ if (store) {
59
+ try {
60
+ store.writeText(join(runDir, "final", "summary.md"), `# Run ${runId} (${mode})\n\n- Status: cancelled\n${cancelReason ? `- Reason: ${cancelReason}\n` : ""}\n${summaryText}\n`);
61
+ summaryWritten = true;
62
+ }
63
+ catch {
64
+ /* best-effort: a write failure must not mask the cancel terminal */
65
+ }
66
+ }
67
+ // output.ready is EVIDENCE (release wave sol #3): announce the summary only
68
+ // when the file actually materialized — a failed write still gets its
69
+ // terminal below, just without a pointer to a nonexistent artifact.
70
+ if (summaryWritten) {
71
+ log.emit("output.ready", { kind: "summary", path: "final/summary.md", state: "diagnostic" });
72
+ }
73
+ log.emit("run.failed", {
74
+ status: "cancelled",
75
+ ...(cancelReason ? { reason: cancelReason } : {}),
76
+ });
43
77
  return {
44
78
  runId,
45
79
  taskId,
@@ -47,9 +81,10 @@ export function cancelledResult(log, runId, taskId, mode, runDir, candidates, wr
47
81
  status: "cancelled",
48
82
  winner: null,
49
83
  runDir,
50
- summary: "run cancelled",
84
+ summary: summaryText,
51
85
  candidates,
52
86
  ...(spendUsd !== undefined ? { spendUsd } : {}),
87
+ ...(cancelReason ? { cancelReason } : {}),
53
88
  };
54
89
  }
55
90
  /**
@@ -116,7 +151,10 @@ export async function guardAnnouncedRun(signal, body) {
116
151
  spendUsd = null;
117
152
  }
118
153
  if (signal?.aborted) {
119
- return cancelledResult(a.log, a.runId, a.taskId, a.mode, a.paths.root, [], undefined, spendUsd);
154
+ return cancelledResult(a.log, a.runId, a.taskId, a.mode, a.paths.root, [], undefined, spendUsd,
155
+ // A wall-clock abort surfaced as a throw must keep its reason and
156
+ // materialize the diagnostic summary, exactly like the checkpoint paths.
157
+ signal, a.store);
120
158
  }
121
159
  return failTerminally(a.log, a.store, a.paths, a.runId, a.taskId, a.mode, a.phase, err, spendUsd);
122
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runTerminals.js","sourceRoot":"","sources":["../src/runTerminals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runTerminals.js","sourceRoot":"","sources":["../src/runTerminals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { ArtifactStore } from "@claudexor/artifact-store";
2
+ import type { EventLog } from "@claudexor/event-log";
3
+ export interface StructuredOutputVerdict {
4
+ status: "passed" | "failed";
5
+ reason: string | null;
6
+ }
7
+ /** Preflight: prove a caller schema COMPILES under the same ajv the validator
8
+ * uses, so a malformed schema is refused before any run dir exists instead of
9
+ * crashing the validator mid-run. Throws on a schema ajv cannot build. */
10
+ export declare function assertOutputSchemaCompiles(schema: Record<string, unknown>): void;
11
+ /**
12
+ * The ONE engine validator for a run's structured-output contract (Quiz-6a).
13
+ * The `schema` here is the CALLER's ORIGINAL contract (the conformance
14
+ * authority) — NEVER the vendor-strictified transport form, which would falsely
15
+ * pass e.g. `{"field":null}` for an optional string. Every capable lane was
16
+ * constrained natively at preflight; this turns the winner's answer text into a
17
+ * typed conformance receipt (final/structured_output.yaml). A non-conformant
18
+ * answer is a FAILED receipt, never a failed run — the run stays
19
+ * success-with-warnings and the embedder retries on the receipt.
20
+ *
21
+ * Only a CONFORMANT answer becomes final/output.json (the primary
22
+ * structured_output artifact must never surface known-invalid data). A
23
+ * parsed-but-non-conformant answer is preserved under final/output.invalid.json
24
+ * (diagnostic) for the embedder to inspect; an unparsable answer writes nothing.
25
+ */
26
+ export declare function finalizeStructuredOutput(opts: {
27
+ store: ArtifactStore;
28
+ finalDir: string;
29
+ log: EventLog;
30
+ schema: Record<string, unknown>;
31
+ answerText: string | null | undefined;
32
+ }): StructuredOutputVerdict;
33
+ //# sourceMappingURL=structuredOutput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredOutput.d.ts","sourceRoot":"","sources":["../src/structuredOutput.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;2EAE2E;AAC3E,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAShF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC,GAAG,uBAAuB,CAmE1B"}