@oeronteros-1/opencode-orchestra 1.0.27 → 1.0.29
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/README.md +79 -1
- package/dashboard-dist/assets/index-DXFxvVhJ.css +1 -0
- package/dashboard-dist/assets/index-DlLCX2BY.js +132 -0
- package/dashboard-dist/index.html +2 -2
- package/dist/agents/integrator.js +1 -1
- package/dist/agents/integrator.js.map +1 -1
- package/dist/agents/lead.js +2 -13
- package/dist/agents/lead.js.map +1 -1
- package/dist/config/load.d.ts +5 -0
- package/dist/config/load.js +20 -5
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts +3 -0
- package/dist/config/schema.js +6 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/dashboard/server.js +27 -8
- package/dist/dashboard/server.js.map +1 -1
- package/dist/diagnostics/doctor.js +194 -0
- package/dist/diagnostics/doctor.js.map +1 -1
- package/dist/diagnostics/update.js +8 -7
- package/dist/diagnostics/update.js.map +1 -1
- package/dist/index.js +33 -4
- package/dist/index.js.map +1 -1
- package/dist/orchestration/ownership.d.ts +19 -0
- package/dist/orchestration/ownership.js +26 -0
- package/dist/orchestration/ownership.js.map +1 -1
- package/dist/routing/classifier.js +20 -2
- package/dist/routing/classifier.js.map +1 -1
- package/dist/routing/fallback.d.ts +19 -10
- package/dist/routing/fallback.js +89 -18
- package/dist/routing/fallback.js.map +1 -1
- package/dist/routing/model-resolver.d.ts +47 -0
- package/dist/routing/model-resolver.js +110 -2
- package/dist/routing/model-resolver.js.map +1 -1
- package/dist/spawn.d.ts +14 -1
- package/dist/spawn.js +58 -4
- package/dist/spawn.js.map +1 -1
- package/dist/telemetry/ledger.d.ts +49 -0
- package/dist/telemetry/ledger.js +157 -0
- package/dist/telemetry/ledger.js.map +1 -1
- package/dist/telemetry/live.d.ts +12 -1
- package/dist/telemetry/live.js +50 -9
- package/dist/telemetry/live.js.map +1 -1
- package/dist/tools.js +71 -3
- package/dist/tools.js.map +1 -1
- package/package.json +4 -4
- package/schema/opencode-orchestra.schema.json +8 -0
- package/dashboard-dist/assets/index-BcxwxSxG.js +0 -124
- package/dashboard-dist/assets/index-igZBUoKO.css +0 -2
package/dist/spawn.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { statSync } from "node:fs";
|
|
2
3
|
import os from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
3
5
|
/**
|
|
4
6
|
* Quote a command line for cmd.exe: parts containing spaces or cmd
|
|
5
7
|
* metacharacters are wrapped in double quotes so paths with spaces and
|
|
@@ -26,17 +28,69 @@ const UNSAFE_FOR_CMD_RETRY = /["%\r\n;,!]/;
|
|
|
26
28
|
export function safeForCmdRetry(parts) {
|
|
27
29
|
return !parts.some((part) => UNSAFE_FOR_CMD_RETRY.test(part));
|
|
28
30
|
}
|
|
31
|
+
/** cmd.exe's default executable search order within a directory. */
|
|
32
|
+
const DEFAULT_PATHEXT = [".COM", ".EXE", ".BAT", ".CMD"];
|
|
33
|
+
/**
|
|
34
|
+
* Mirror cmd.exe's PATH resolution for a bare command name: scan the current
|
|
35
|
+
* directory and then PATH in order, trying PATHEXT extensions within each
|
|
36
|
+
* directory, and return the first existing file. Patched Windows Node skips
|
|
37
|
+
* `.cmd`/`.bat` candidates when resolving direct spawns, so a `.cmd` shim in
|
|
38
|
+
* an earlier PATH entry would otherwise be silently shadowed by a real `.exe`
|
|
39
|
+
* further down PATH. Knowing which candidate wins lets us route `.cmd`/`.bat`
|
|
40
|
+
* wins through the cmd.exe retry deterministically.
|
|
41
|
+
*/
|
|
42
|
+
function resolveCommandCandidate(command, env, cwd) {
|
|
43
|
+
const pathext = (env.PATHEXT ?? DEFAULT_PATHEXT.join(";"))
|
|
44
|
+
.split(";")
|
|
45
|
+
.map((extension) => extension.trim())
|
|
46
|
+
.filter((extension) => extension.length > 0)
|
|
47
|
+
.map((extension) => (extension.startsWith(".") ? extension : "." + extension));
|
|
48
|
+
const directories = [cwd, ...(env.PATH ?? "").split(";").map((directory) => directory.replace(/^"|"$/g, ""))].filter((directory) => directory.length > 0);
|
|
49
|
+
for (const directory of directories) {
|
|
50
|
+
for (const extension of pathext) {
|
|
51
|
+
const candidate = path.join(directory, command + extension);
|
|
52
|
+
try {
|
|
53
|
+
if (statSync(candidate).isFile())
|
|
54
|
+
return candidate;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// Not a file; try the next extension.
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
29
63
|
/**
|
|
30
64
|
* Run a command natively, retrying through cmd.exe when Windows cannot
|
|
31
65
|
* spawn the target directly (`.cmd`/`.bat` shims and shell scripts fail
|
|
32
66
|
* with EINVAL on CVE-2024-27980-patched Node). The retry is skipped for
|
|
33
67
|
* inputs cmd.exe could reinterpret — see {@link safeForCmdRetry} — and
|
|
34
68
|
* off-Windows the native result is always returned untouched.
|
|
69
|
+
*
|
|
70
|
+
* When a bare command name resolves to a `.cmd`/`.bat` shim ahead of any
|
|
71
|
+
* spawnable executable on Windows, the direct spawn is skipped entirely and
|
|
72
|
+
* the command runs through cmd.exe, mirroring cmd.exe's own resolution order.
|
|
73
|
+
* This keeps PATH-based shims authoritative even when a real `.exe` of the
|
|
74
|
+
* same name sits further down PATH (patched Node would otherwise bypass the
|
|
75
|
+
* shim and run the real tool).
|
|
35
76
|
*/
|
|
36
|
-
export function spawnWithCmdFallback(command, args, options = {}) {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
77
|
+
export function spawnWithCmdFallback(command, args, options = {}, deps = {}) {
|
|
78
|
+
const runSpawn = deps.spawnSync || spawnSync;
|
|
79
|
+
const platform = deps.platform || process.platform;
|
|
80
|
+
const isBareName = !command.includes("\\") && !command.includes("/") && path.extname(command).length === 0;
|
|
81
|
+
if (platform === "win32" && isBareName && safeForCmdRetry([command, ...args])) {
|
|
82
|
+
const env = options.env ?? process.env;
|
|
83
|
+
const cwd = typeof options.cwd === "string" ? options.cwd : process.cwd();
|
|
84
|
+
const candidate = resolveCommandCandidate(command, env, cwd);
|
|
85
|
+
if (candidate !== undefined && /\.(cmd|bat)$/i.test(candidate)) {
|
|
86
|
+
const viaCmd = runSpawn(quoteLineForCmd([command, ...args]), [], { ...options, shell: true });
|
|
87
|
+
if (viaCmd.error === undefined)
|
|
88
|
+
return viaCmd;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const direct = runSpawn(command, args, options);
|
|
92
|
+
if (platform === "win32" && direct.error !== undefined && safeForCmdRetry([command, ...args])) {
|
|
93
|
+
const retry = runSpawn(quoteLineForCmd([command, ...args]), [], { ...options, shell: true });
|
|
40
94
|
if (retry.error === undefined)
|
|
41
95
|
return retry;
|
|
42
96
|
}
|
package/dist/spawn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ModelCandidateInput, ProfileName } from "../config/schema.js";
|
|
2
|
+
import { type ErrorKind } from "../routing/fallback.js";
|
|
2
3
|
import type { PricingStatus } from "../pricing/cost.js";
|
|
3
4
|
export interface TokenUsage {
|
|
4
5
|
input: number;
|
|
@@ -24,6 +25,20 @@ export interface MessageUsage {
|
|
|
24
25
|
prompt?: string;
|
|
25
26
|
reply?: string;
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* A sanitized, bounded record of an observed attempt: the model that ran, the
|
|
30
|
+
* policy error class (never the raw error text), the next model when a retry
|
|
31
|
+
* was observed, and the outcome. Events are capped and never store credentials,
|
|
32
|
+
* prompts, or provider response bodies.
|
|
33
|
+
*/
|
|
34
|
+
export interface ReliabilityEvent {
|
|
35
|
+
attempt: number;
|
|
36
|
+
model?: string;
|
|
37
|
+
errorKind?: ErrorKind;
|
|
38
|
+
outcome: "failed" | "retried" | "succeeded";
|
|
39
|
+
nextModel?: string;
|
|
40
|
+
at: number;
|
|
41
|
+
}
|
|
27
42
|
export interface SessionLedger {
|
|
28
43
|
profile?: ProfileName;
|
|
29
44
|
agents: Record<string, number>;
|
|
@@ -37,6 +52,7 @@ export interface SessionLedger {
|
|
|
37
52
|
consensusUncertainty?: number;
|
|
38
53
|
consensusNotes?: string;
|
|
39
54
|
messages: Record<string, MessageUsage>;
|
|
55
|
+
reliability?: ReliabilityEvent[];
|
|
40
56
|
}
|
|
41
57
|
export interface LedgerState {
|
|
42
58
|
version: 2;
|
|
@@ -57,6 +73,13 @@ interface AssistantInfo {
|
|
|
57
73
|
};
|
|
58
74
|
tokens?: TokenUsage;
|
|
59
75
|
finish?: string;
|
|
76
|
+
error?: {
|
|
77
|
+
message?: string;
|
|
78
|
+
status?: number;
|
|
79
|
+
statusCode?: number;
|
|
80
|
+
/** OpenCode SDK nests provider error details under `data` (name + data). */
|
|
81
|
+
data?: unknown;
|
|
82
|
+
};
|
|
60
83
|
}
|
|
61
84
|
export declare function emptyLedgerState(): LedgerState;
|
|
62
85
|
export declare function readLedgerState(file: string): Promise<LedgerState>;
|
|
@@ -68,6 +91,13 @@ export declare class Ledger {
|
|
|
68
91
|
private readonly pricingStatusOf;
|
|
69
92
|
private state?;
|
|
70
93
|
private queue;
|
|
94
|
+
/**
|
|
95
|
+
* In-memory per-session pending retryable failure: session id -> attempt
|
|
96
|
+
* number that failed. Cleared when the next assistant attempt in that session
|
|
97
|
+
* is observed. Terminal kinds (auth/invalid-request/other) never populate it,
|
|
98
|
+
* so no retry transition is fabricated for them.
|
|
99
|
+
*/
|
|
100
|
+
private readonly pendingFailure;
|
|
71
101
|
constructor(directory: string, telemetryDirectory: string, enabled: boolean, pools: ModelCandidateInput[][], storeTexts?: boolean, pricingStatusOf?: (providerID: string | undefined, modelID: string | undefined) => PricingStatus | undefined);
|
|
72
102
|
private load;
|
|
73
103
|
private save;
|
|
@@ -78,6 +108,25 @@ export declare class Ledger {
|
|
|
78
108
|
notes?: string;
|
|
79
109
|
}): Promise<void>;
|
|
80
110
|
recordAssistant(info: AssistantInfo): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Append a normalized reliability event to a session, keeping only the most
|
|
113
|
+
* recent `RELIABILITY_EVENT_CAP` entries. Unrecognizable events are dropped.
|
|
114
|
+
*/
|
|
115
|
+
private appendReliabilityEvent;
|
|
116
|
+
/**
|
|
117
|
+
* Observe a genuinely new assistant attempt. A retryable failure that was
|
|
118
|
+
* pending from the previous attempt produces a "retried" transition; then the
|
|
119
|
+
* attempt's own failure (if any) produces a "failed" event and, when
|
|
120
|
+
* retryable, arms the next transition. Successful attempts with no pending
|
|
121
|
+
* failure produce no event.
|
|
122
|
+
*/
|
|
123
|
+
private observeReliabilityAttempt;
|
|
124
|
+
/**
|
|
125
|
+
* Additive reliability event recording. No-op when the ledger is disabled.
|
|
126
|
+
* The event is sanitized (bounded fields, closed error-kind enum, no raw
|
|
127
|
+
* error text) and the session's event list is capped.
|
|
128
|
+
*/
|
|
129
|
+
recordReliabilityEvent(sessionID: string, event: ReliabilityEvent): Promise<void>;
|
|
81
130
|
/**
|
|
82
131
|
* Opt-in debug text. No-op unless the ledger was constructed with
|
|
83
132
|
* `storeTexts`, so prompts and replies are never persisted by default.
|
package/dist/telemetry/ledger.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { normalizeCandidate } from "../routing/model-resolver.js";
|
|
4
|
+
import { classifyError, isRetryable } from "../routing/fallback.js";
|
|
4
5
|
function emptySession() {
|
|
5
6
|
return {
|
|
6
7
|
agents: {},
|
|
@@ -26,6 +27,92 @@ function normalizeTokens(tokens) {
|
|
|
26
27
|
},
|
|
27
28
|
};
|
|
28
29
|
}
|
|
30
|
+
const RELIABILITY_EVENT_CAP = 100;
|
|
31
|
+
const RELIABILITY_FIELD_CAP = 200;
|
|
32
|
+
const ERROR_KINDS = new Set(["rate-limit", "server", "timeout", "auth", "invalid-request", "other"]);
|
|
33
|
+
const RELIABILITY_OUTCOMES = new Set(["failed", "retried", "succeeded"]);
|
|
34
|
+
function boundedString(value) {
|
|
35
|
+
if (typeof value !== "string")
|
|
36
|
+
return undefined;
|
|
37
|
+
const trimmed = value.trim();
|
|
38
|
+
return trimmed.length > 0 ? trimmed.slice(0, RELIABILITY_FIELD_CAP) : undefined;
|
|
39
|
+
}
|
|
40
|
+
function isReliabilityOutcome(value) {
|
|
41
|
+
return RELIABILITY_OUTCOMES.has(value);
|
|
42
|
+
}
|
|
43
|
+
function isPositiveFiniteNumber(value) {
|
|
44
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Normalize a reliability event into its exact persisted shape, or return
|
|
48
|
+
* undefined when the record is unrecognizable (missing/invalid outcome,
|
|
49
|
+
* attempt, or timestamp). Unrecognizable records are dropped rather than
|
|
50
|
+
* coerced into plausible events, so corrupted persisted state never fabricates
|
|
51
|
+
* a "failed" attempt. Unknown error kinds and non-string model/nextModel are
|
|
52
|
+
* omitted; strings are bounded; raw error text is never stored.
|
|
53
|
+
*/
|
|
54
|
+
function normalizeReliabilityEvent(value) {
|
|
55
|
+
if (typeof value !== "object" || value === null)
|
|
56
|
+
return undefined;
|
|
57
|
+
const event = value;
|
|
58
|
+
if (!isReliabilityOutcome(event.outcome))
|
|
59
|
+
return undefined;
|
|
60
|
+
if (!isPositiveFiniteNumber(event.attempt))
|
|
61
|
+
return undefined;
|
|
62
|
+
if (typeof event.at !== "number" || !Number.isFinite(event.at))
|
|
63
|
+
return undefined;
|
|
64
|
+
const model = boundedString(event.model);
|
|
65
|
+
const nextModel = boundedString(event.nextModel);
|
|
66
|
+
const errorKind = event.errorKind !== undefined && ERROR_KINDS.has(event.errorKind) ? event.errorKind : undefined;
|
|
67
|
+
return {
|
|
68
|
+
attempt: Math.floor(event.attempt),
|
|
69
|
+
...(model !== undefined ? { model } : {}),
|
|
70
|
+
...(errorKind !== undefined ? { errorKind } : {}),
|
|
71
|
+
outcome: event.outcome,
|
|
72
|
+
...(nextModel !== undefined ? { nextModel } : {}),
|
|
73
|
+
at: event.at,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function normalizeReliability(value) {
|
|
77
|
+
if (!Array.isArray(value))
|
|
78
|
+
return [];
|
|
79
|
+
const events = [];
|
|
80
|
+
for (const item of value) {
|
|
81
|
+
const normalized = normalizeReliabilityEvent(item);
|
|
82
|
+
if (normalized !== undefined)
|
|
83
|
+
events.push(normalized);
|
|
84
|
+
}
|
|
85
|
+
return events.slice(-RELIABILITY_EVENT_CAP);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Derive a policy error class from an assistant message. A provider error is
|
|
89
|
+
* classified directly; a bare `finish: "error"` with no error detail falls back
|
|
90
|
+
* to the "other" (terminal) class because no retryable signal is known.
|
|
91
|
+
*/
|
|
92
|
+
function classifyFailure(info) {
|
|
93
|
+
if (info.error != null)
|
|
94
|
+
return classifyError(toFlatError(info.error)).kind;
|
|
95
|
+
if (info.finish === "error")
|
|
96
|
+
return classifyError({ message: info.finish }).kind;
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Normalize an assistant error into the flat `{ message, status, statusCode }`
|
|
101
|
+
* shape that `classifyError` consumes. The OpenCode SDK wraps provider errors
|
|
102
|
+
* as `{ name, data: { message, statusCode } }`, so top-level fields win and any
|
|
103
|
+
* nested `data` fields are promoted when the top level is absent.
|
|
104
|
+
*/
|
|
105
|
+
function toFlatError(error) {
|
|
106
|
+
const nested = (typeof error.data === "object" && error.data !== null ? error.data : {});
|
|
107
|
+
const message = error.message ?? (typeof nested.message === "string" ? nested.message : undefined);
|
|
108
|
+
const status = error.status ?? (typeof nested.status === "number" ? nested.status : undefined);
|
|
109
|
+
const statusCode = error.statusCode ?? (typeof nested.statusCode === "number" ? nested.statusCode : undefined);
|
|
110
|
+
return {
|
|
111
|
+
...(message !== undefined ? { message } : {}),
|
|
112
|
+
...(status !== undefined ? { status } : {}),
|
|
113
|
+
...(statusCode !== undefined ? { statusCode } : {}),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
29
116
|
function upgradeState(input) {
|
|
30
117
|
if (typeof input !== "object" || input === null)
|
|
31
118
|
return emptyLedgerState();
|
|
@@ -41,6 +128,9 @@ function upgradeState(input) {
|
|
|
41
128
|
session.freeWorkerCalls ??= 0;
|
|
42
129
|
session.unknownPriceCalls ??= 0;
|
|
43
130
|
session.paidCallsUsed ??= 0;
|
|
131
|
+
if (session.reliability !== undefined) {
|
|
132
|
+
session.reliability = normalizeReliability(session.reliability);
|
|
133
|
+
}
|
|
44
134
|
for (const [id, message] of Object.entries(session.messages)) {
|
|
45
135
|
session.messages[id] = {
|
|
46
136
|
...message,
|
|
@@ -71,6 +161,13 @@ export class Ledger {
|
|
|
71
161
|
pricingStatusOf;
|
|
72
162
|
state;
|
|
73
163
|
queue = Promise.resolve();
|
|
164
|
+
/**
|
|
165
|
+
* In-memory per-session pending retryable failure: session id -> attempt
|
|
166
|
+
* number that failed. Cleared when the next assistant attempt in that session
|
|
167
|
+
* is observed. Terminal kinds (auth/invalid-request/other) never populate it,
|
|
168
|
+
* so no retry transition is fabricated for them.
|
|
169
|
+
*/
|
|
170
|
+
pendingFailure = new Map();
|
|
74
171
|
constructor(directory, telemetryDirectory, enabled, pools, storeTexts = false, pricingStatusOf) {
|
|
75
172
|
this.enabled = enabled;
|
|
76
173
|
this.storeTexts = storeTexts;
|
|
@@ -159,6 +256,7 @@ export class Ledger {
|
|
|
159
256
|
&& (declared === "free" || (declared === undefined && pricingStatus === "free"))) {
|
|
160
257
|
session.freeWorkerCalls += 1;
|
|
161
258
|
}
|
|
259
|
+
this.observeReliabilityAttempt(session, info.sessionID, model, info);
|
|
162
260
|
}
|
|
163
261
|
session.messages[info.id] = {
|
|
164
262
|
cost: currentCost,
|
|
@@ -175,6 +273,65 @@ export class Ledger {
|
|
|
175
273
|
};
|
|
176
274
|
});
|
|
177
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Append a normalized reliability event to a session, keeping only the most
|
|
278
|
+
* recent `RELIABILITY_EVENT_CAP` entries. Unrecognizable events are dropped.
|
|
279
|
+
*/
|
|
280
|
+
appendReliabilityEvent(session, event) {
|
|
281
|
+
const normalized = normalizeReliabilityEvent(event);
|
|
282
|
+
if (normalized === undefined)
|
|
283
|
+
return;
|
|
284
|
+
const events = (session.reliability ??= []);
|
|
285
|
+
events.push(normalized);
|
|
286
|
+
if (events.length > RELIABILITY_EVENT_CAP) {
|
|
287
|
+
session.reliability = events.slice(-RELIABILITY_EVENT_CAP);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Observe a genuinely new assistant attempt. A retryable failure that was
|
|
292
|
+
* pending from the previous attempt produces a "retried" transition; then the
|
|
293
|
+
* attempt's own failure (if any) produces a "failed" event and, when
|
|
294
|
+
* retryable, arms the next transition. Successful attempts with no pending
|
|
295
|
+
* failure produce no event.
|
|
296
|
+
*/
|
|
297
|
+
observeReliabilityAttempt(session, sessionID, model, info) {
|
|
298
|
+
const pendingAttempt = this.pendingFailure.get(sessionID);
|
|
299
|
+
const attempt = pendingAttempt !== undefined ? pendingAttempt + 1 : 1;
|
|
300
|
+
if (pendingAttempt !== undefined) {
|
|
301
|
+
this.appendReliabilityEvent(session, {
|
|
302
|
+
attempt,
|
|
303
|
+
...(model !== undefined ? { model } : {}),
|
|
304
|
+
outcome: "retried",
|
|
305
|
+
...(model !== undefined ? { nextModel: model } : {}),
|
|
306
|
+
at: Date.now(),
|
|
307
|
+
});
|
|
308
|
+
this.pendingFailure.delete(sessionID);
|
|
309
|
+
}
|
|
310
|
+
const kind = classifyFailure(info);
|
|
311
|
+
if (kind === undefined)
|
|
312
|
+
return;
|
|
313
|
+
this.appendReliabilityEvent(session, {
|
|
314
|
+
attempt,
|
|
315
|
+
...(model !== undefined ? { model } : {}),
|
|
316
|
+
errorKind: kind,
|
|
317
|
+
outcome: "failed",
|
|
318
|
+
at: Date.now(),
|
|
319
|
+
});
|
|
320
|
+
if (isRetryable(kind)) {
|
|
321
|
+
this.pendingFailure.set(sessionID, attempt);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Additive reliability event recording. No-op when the ledger is disabled.
|
|
326
|
+
* The event is sanitized (bounded fields, closed error-kind enum, no raw
|
|
327
|
+
* error text) and the session's event list is capped.
|
|
328
|
+
*/
|
|
329
|
+
async recordReliabilityEvent(sessionID, event) {
|
|
330
|
+
await this.mutate((state) => {
|
|
331
|
+
const session = (state.sessions[sessionID] ??= emptySession());
|
|
332
|
+
this.appendReliabilityEvent(session, event);
|
|
333
|
+
});
|
|
334
|
+
}
|
|
178
335
|
/**
|
|
179
336
|
* Opt-in debug text. No-op unless the ledger was constructed with
|
|
180
337
|
* `storeTexts`, so prompts and replies are never persisted by default.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/telemetry/ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/telemetry/ledger.ts"],"names":[],"mappings":"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"}
|
package/dist/telemetry/live.d.ts
CHANGED
|
@@ -58,6 +58,8 @@ export interface LiveActiveAgent {
|
|
|
58
58
|
provider?: string | undefined;
|
|
59
59
|
/** Epoch ms the agent started responding. */
|
|
60
60
|
startedAt: number;
|
|
61
|
+
/** Accumulated time spent receiving output deltas, excluding pauses. */
|
|
62
|
+
generationMs?: number | undefined;
|
|
61
63
|
/** Last-seen snippet of the in-progress output. */
|
|
62
64
|
text: string;
|
|
63
65
|
/** Estimated USD accrued while still generating. */
|
|
@@ -81,6 +83,14 @@ export interface LiveSnapshot {
|
|
|
81
83
|
/** Rolling event log (newest last). */
|
|
82
84
|
recent: LiveEvent[];
|
|
83
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Atomically replace `destination` with `temporary`. On POSIX, `rename` always
|
|
88
|
+
* replaces an open destination; on Windows it can fail with EPERM/EBUSY/EACCES
|
|
89
|
+
* while a concurrent reader (the dashboard SSE poll or a test harness) has the
|
|
90
|
+
* destination open. The lock is held only for the duration of a small read, so
|
|
91
|
+
* a short retry reliably wins without resorting to a non-atomic write.
|
|
92
|
+
*/
|
|
93
|
+
export declare function renameWithRetry(from: string, to: string, renameFn?: (from: string, to: string) => Promise<void>, attempts?: number, delayMs?: number): Promise<void>;
|
|
84
94
|
export declare function emptyLiveSnapshot(): LiveSnapshot;
|
|
85
95
|
/** Parse the persisted live snapshot; returns an empty snapshot on failure. */
|
|
86
96
|
export declare function parseLiveSnapshot(text: string): LiveSnapshot;
|
|
@@ -107,7 +117,8 @@ export declare class LiveStream {
|
|
|
107
117
|
private lastWrite;
|
|
108
118
|
private dirty;
|
|
109
119
|
private enabled;
|
|
110
|
-
|
|
120
|
+
private readonly now;
|
|
121
|
+
constructor(directory: string, telemetryDirectory: string, enabled: boolean, estimatePrice?: (provider: string | undefined, model: string | undefined) => LiveTokenPrice | undefined, maxRecent?: number, throttleMs?: number, storeTexts?: boolean, now?: () => number);
|
|
111
122
|
private makeEvent;
|
|
112
123
|
/** Mark an agent message as started generating. */
|
|
113
124
|
start(input: {
|
package/dist/telemetry/live.js
CHANGED
|
@@ -2,6 +2,32 @@ import { mkdir, rename, writeFile } from "node:fs/promises";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
const MAX_RECENT = 200;
|
|
4
4
|
const THROTTLE_MS = 450;
|
|
5
|
+
const GENERATION_PAUSE_MS = 2_000;
|
|
6
|
+
const RENAME_ATTEMPTS = 10;
|
|
7
|
+
const RENAME_RETRY_MS = 30;
|
|
8
|
+
/**
|
|
9
|
+
* Atomically replace `destination` with `temporary`. On POSIX, `rename` always
|
|
10
|
+
* replaces an open destination; on Windows it can fail with EPERM/EBUSY/EACCES
|
|
11
|
+
* while a concurrent reader (the dashboard SSE poll or a test harness) has the
|
|
12
|
+
* destination open. The lock is held only for the duration of a small read, so
|
|
13
|
+
* a short retry reliably wins without resorting to a non-atomic write.
|
|
14
|
+
*/
|
|
15
|
+
export async function renameWithRetry(from, to, renameFn = rename, attempts = RENAME_ATTEMPTS, delayMs = RENAME_RETRY_MS) {
|
|
16
|
+
let lastError;
|
|
17
|
+
for (let attempt = 0; attempt < attempts; attempt++) {
|
|
18
|
+
try {
|
|
19
|
+
await renameFn(from, to);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
lastError = error;
|
|
24
|
+
if (attempt < attempts - 1) {
|
|
25
|
+
await new Promise((resolve) => setTimeout(resolve, delayMs));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
throw lastError;
|
|
30
|
+
}
|
|
5
31
|
function emptySnapshot() {
|
|
6
32
|
return { version: 1, updatedAt: 0, seq: 0, active: [], recent: [] };
|
|
7
33
|
}
|
|
@@ -58,16 +84,18 @@ export class LiveStream {
|
|
|
58
84
|
lastWrite = 0;
|
|
59
85
|
dirty = false;
|
|
60
86
|
enabled;
|
|
61
|
-
|
|
87
|
+
now;
|
|
88
|
+
constructor(directory, telemetryDirectory, enabled, estimatePrice = () => undefined, maxRecent = MAX_RECENT, throttleMs = THROTTLE_MS, storeTexts = false, now = Date.now) {
|
|
62
89
|
this.liveFile = path.resolve(directory, telemetryDirectory, "live.ndjson");
|
|
63
90
|
this.enabled = enabled;
|
|
64
91
|
this.storeTexts = storeTexts;
|
|
65
92
|
this.maxRecent = maxRecent;
|
|
66
93
|
this.throttleMs = throttleMs;
|
|
67
94
|
this.estimatePrice = estimatePrice;
|
|
95
|
+
this.now = now;
|
|
68
96
|
}
|
|
69
97
|
makeEvent(input) {
|
|
70
|
-
const event = { seq: ++this.seq, ts:
|
|
98
|
+
const event = { seq: ++this.seq, ts: this.now(), ...input };
|
|
71
99
|
this.recent.push(event);
|
|
72
100
|
if (this.recent.length > this.maxRecent)
|
|
73
101
|
this.recent.splice(0, this.recent.length - this.maxRecent);
|
|
@@ -89,13 +117,15 @@ export class LiveStream {
|
|
|
89
117
|
agent: input.agent,
|
|
90
118
|
model: input.model,
|
|
91
119
|
provider: input.provider,
|
|
92
|
-
startedAt: input.startedAt ??
|
|
120
|
+
startedAt: input.startedAt ?? this.now(),
|
|
121
|
+
generationMs: 0,
|
|
93
122
|
text: "",
|
|
94
123
|
cost: est.cost,
|
|
95
124
|
tokens: { input: est.input, output: 0, reasoning: 0 },
|
|
96
125
|
lastSeq: this.seq,
|
|
97
126
|
chars: 0,
|
|
98
127
|
reasoningChars: 0,
|
|
128
|
+
lastOutputAt: undefined,
|
|
99
129
|
});
|
|
100
130
|
this.makeEvent({
|
|
101
131
|
e: "start",
|
|
@@ -143,7 +173,18 @@ export class LiveStream {
|
|
|
143
173
|
existing.provider = input.provider;
|
|
144
174
|
const snippet = input.text.length > 240 ? `${input.text.slice(-240)}…` : input.text;
|
|
145
175
|
existing.text = this.storeTexts ? snippet : "";
|
|
146
|
-
|
|
176
|
+
const nextChars = input.chars ?? input.text.length;
|
|
177
|
+
const outputProgressed = nextChars > existing.chars;
|
|
178
|
+
if (outputProgressed) {
|
|
179
|
+
const timestamp = this.now();
|
|
180
|
+
if (existing.lastOutputAt !== undefined) {
|
|
181
|
+
const interval = timestamp - existing.lastOutputAt;
|
|
182
|
+
if (interval >= 0 && interval <= GENERATION_PAUSE_MS)
|
|
183
|
+
existing.generationMs += interval;
|
|
184
|
+
}
|
|
185
|
+
existing.lastOutputAt = timestamp;
|
|
186
|
+
}
|
|
187
|
+
existing.chars = Math.max(existing.chars, nextChars);
|
|
147
188
|
existing.reasoningChars = Math.max(existing.reasoningChars, input.reasoningChars ?? 0);
|
|
148
189
|
existing.confidence = input.confidence;
|
|
149
190
|
existing.flags = input.flags;
|
|
@@ -196,11 +237,11 @@ export class LiveStream {
|
|
|
196
237
|
}
|
|
197
238
|
serialize() {
|
|
198
239
|
const active = [...this.active.values()]
|
|
199
|
-
.map(({ lastSeq: _lastSeq, chars: _chars, reasoningChars: _reasoningChars, ...rest }) => rest)
|
|
240
|
+
.map(({ lastSeq: _lastSeq, chars: _chars, reasoningChars: _reasoningChars, lastOutputAt: _lastOutputAt, ...rest }) => rest)
|
|
200
241
|
.sort((a, b) => a.startedAt - b.startedAt);
|
|
201
242
|
return {
|
|
202
243
|
version: 1,
|
|
203
|
-
updatedAt: this.lastWrite ||
|
|
244
|
+
updatedAt: this.lastWrite || this.now(),
|
|
204
245
|
seq: this.seq,
|
|
205
246
|
active,
|
|
206
247
|
recent: [...this.recent],
|
|
@@ -220,7 +261,7 @@ export class LiveStream {
|
|
|
220
261
|
}
|
|
221
262
|
if (this.timer)
|
|
222
263
|
return;
|
|
223
|
-
const remaining = this.throttleMs - (
|
|
264
|
+
const remaining = this.throttleMs - (this.now() - this.lastWrite);
|
|
224
265
|
this.timer = setTimeout(() => {
|
|
225
266
|
this.timer = undefined;
|
|
226
267
|
void this.flush();
|
|
@@ -228,7 +269,7 @@ export class LiveStream {
|
|
|
228
269
|
}
|
|
229
270
|
flush() {
|
|
230
271
|
this.dirty = false;
|
|
231
|
-
this.lastWrite =
|
|
272
|
+
this.lastWrite = this.now();
|
|
232
273
|
const snapshot = this.serialize();
|
|
233
274
|
this.queue = this.queue.then(async () => {
|
|
234
275
|
try {
|
|
@@ -245,7 +286,7 @@ export class LiveStream {
|
|
|
245
286
|
}
|
|
246
287
|
const temporary = `${this.liveFile}.tmp`;
|
|
247
288
|
await writeFile(temporary, JSON.stringify(snapshot) + "\n", "utf8");
|
|
248
|
-
await
|
|
289
|
+
await renameWithRetry(temporary, this.liveFile);
|
|
249
290
|
}
|
|
250
291
|
catch {
|
|
251
292
|
// Live telemetry is best-effort; a failure must never break orchestration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/telemetry/live.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../src/telemetry/live.ts"],"names":[],"mappings":"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"}
|