@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.
- package/dist/attemptTelemetry.d.ts +38 -2
- package/dist/attemptTelemetry.d.ts.map +1 -1
- package/dist/attemptTelemetry.js +75 -2
- package/dist/attemptTelemetry.js.map +1 -1
- package/dist/contract-gates.d.ts +21 -0
- package/dist/contract-gates.d.ts.map +1 -0
- package/dist/contract-gates.js +93 -0
- package/dist/contract-gates.js.map +1 -0
- package/dist/credential-profiles.d.ts +152 -0
- package/dist/credential-profiles.d.ts.map +1 -0
- package/dist/credential-profiles.js +270 -0
- package/dist/credential-profiles.js.map +1 -0
- package/dist/diffReview.d.ts +9 -1
- package/dist/diffReview.d.ts.map +1 -1
- package/dist/diffReview.js +114 -18
- package/dist/diffReview.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modelGovernance.d.ts +6 -1
- package/dist/modelGovernance.d.ts.map +1 -1
- package/dist/modelGovernance.js +8 -2
- package/dist/modelGovernance.js.map +1 -1
- package/dist/orchestrateExecutor.d.ts +43 -0
- package/dist/orchestrateExecutor.d.ts.map +1 -0
- package/dist/orchestrateExecutor.js +207 -0
- package/dist/orchestrateExecutor.js.map +1 -0
- package/dist/orchestratePlanner.d.ts.map +1 -1
- package/dist/orchestratePlanner.js.map +1 -1
- package/dist/orchestrator.d.ts +100 -83
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +1008 -993
- package/dist/orchestrator.js.map +1 -1
- package/dist/outcomeReducer.d.ts +25 -0
- package/dist/outcomeReducer.d.ts.map +1 -0
- package/dist/outcomeReducer.js +121 -0
- package/dist/outcomeReducer.js.map +1 -0
- package/dist/policyFindings.d.ts +18 -0
- package/dist/policyFindings.d.ts.map +1 -0
- package/dist/policyFindings.js +166 -0
- package/dist/policyFindings.js.map +1 -0
- package/dist/requestRequirements.d.ts +38 -0
- package/dist/requestRequirements.d.ts.map +1 -0
- package/dist/requestRequirements.js +127 -0
- package/dist/requestRequirements.js.map +1 -0
- package/dist/reviewerPanel.d.ts +15 -1
- package/dist/reviewerPanel.d.ts.map +1 -1
- package/dist/reviewerPanel.js +85 -2
- package/dist/reviewerPanel.js.map +1 -1
- package/dist/routeContext.d.ts +37 -0
- package/dist/routeContext.d.ts.map +1 -0
- package/dist/routeContext.js +38 -0
- package/dist/routeContext.js.map +1 -0
- package/dist/runSupport.d.ts +37 -21
- package/dist/runSupport.d.ts.map +1 -1
- package/dist/runSupport.js +102 -78
- package/dist/runSupport.js.map +1 -1
- package/dist/runTelemetryWriter.d.ts +20 -0
- package/dist/runTelemetryWriter.d.ts.map +1 -0
- package/dist/runTelemetryWriter.js +68 -0
- package/dist/runTelemetryWriter.js.map +1 -0
- package/dist/runTerminals.d.ts +7 -1
- package/dist/runTerminals.d.ts.map +1 -1
- package/dist/runTerminals.js +42 -4
- package/dist/runTerminals.js.map +1 -1
- package/dist/structuredOutput.d.ts +33 -0
- package/dist/structuredOutput.d.ts.map +1 -0
- package/dist/structuredOutput.js +106 -0
- package/dist/structuredOutput.js.map +1 -0
- package/package.json +19 -18
- package/dist/finalVerifier.d.ts +0 -25
- package/dist/finalVerifier.d.ts.map +0 -1
- package/dist/finalVerifier.js +0 -110
- package/dist/finalVerifier.js.map +0 -1
package/dist/runSupport.js
CHANGED
|
@@ -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
|
|
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(
|
|
36
|
-
if (
|
|
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
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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 {
|
|
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 === "
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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)
|
|
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,
|
|
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
|
-
|
|
323
|
-
|
|
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 {
|
|
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,
|
package/dist/runSupport.js.map
CHANGED
|
@@ -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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"}
|
package/dist/runTerminals.d.ts
CHANGED
|
@@ -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
|
|
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,
|
|
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"}
|
package/dist/runTerminals.js
CHANGED
|
@@ -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
|
-
|
|
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:
|
|
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
|
}
|
package/dist/runTerminals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runTerminals.js","sourceRoot":"","sources":["../src/runTerminals.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAiBhD,MAAM,UAAU,YAAY,CAC1B,KAAoB,EACpB,KAA4C,EAC5C,OAWC;IAED,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE;QACpD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACpC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACpC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;QAC/C,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;QAC1C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;KACvC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAa,EACb,KAAa,EACb,MAAc,EACd,IAAc,EACd,MAAc,EACd,UAAsE,EACtE,cAA2B,EAC3B,QAAwB;
|
|
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"}
|