llm-relay 0.77.0 → 0.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/accounting-store-schema.js +5 -6
  2. package/dist/accounting-store-schema.js.map +1 -1
  3. package/dist/accounting-store.d.ts +10 -0
  4. package/dist/accounting-store.js +60 -6
  5. package/dist/accounting-store.js.map +1 -1
  6. package/dist/backend/envelope-validator.d.ts +1 -1
  7. package/dist/backend/envelope-validator.js +89 -52
  8. package/dist/backend/envelope-validator.js.map +1 -1
  9. package/dist/backend/health-prober.js +3 -1
  10. package/dist/backend/health-prober.js.map +1 -1
  11. package/dist/backend.d.ts +48 -0
  12. package/dist/backend.js +831 -7
  13. package/dist/backend.js.map +1 -1
  14. package/dist/candidate-runner.d.ts +135 -50
  15. package/dist/candidate-runner.js +160 -55
  16. package/dist/candidate-runner.js.map +1 -1
  17. package/dist/cli.d.ts +24 -2
  18. package/dist/cli.js +122 -20
  19. package/dist/cli.js.map +1 -1
  20. package/dist/config/routing-parser.d.ts +13 -8
  21. package/dist/config/routing-parser.js +369 -183
  22. package/dist/config/routing-parser.js.map +1 -1
  23. package/dist/config-types.d.ts +202 -0
  24. package/dist/config-types.js +2 -0
  25. package/dist/config-types.js.map +1 -1
  26. package/dist/config.d.ts +45 -1
  27. package/dist/config.js +87 -22
  28. package/dist/config.js.map +1 -1
  29. package/dist/dashboard-contract.d.ts +38 -0
  30. package/dist/dashboard-contract.js +19 -3
  31. package/dist/dashboard-contract.js.map +1 -1
  32. package/dist/dispatch-lane-stats.d.ts +33 -4
  33. package/dist/dispatch-lane-stats.js +65 -16
  34. package/dist/dispatch-lane-stats.js.map +1 -1
  35. package/dist/dispatch.d.ts +9 -0
  36. package/dist/dispatch.js +36 -4
  37. package/dist/dispatch.js.map +1 -1
  38. package/dist/key-checker.d.ts +21 -1
  39. package/dist/key-checker.js +38 -12
  40. package/dist/key-checker.js.map +1 -1
  41. package/dist/lane-affinity.d.ts +94 -1
  42. package/dist/lane-affinity.js +52 -4
  43. package/dist/lane-affinity.js.map +1 -1
  44. package/dist/mcp/lane-runner.d.ts +69 -16
  45. package/dist/mcp/lane-runner.js +30 -1
  46. package/dist/mcp/lane-runner.js.map +1 -1
  47. package/dist/mcp/server.d.ts +39 -4
  48. package/dist/mcp/server.js +70 -13
  49. package/dist/mcp/server.js.map +1 -1
  50. package/dist/openai-request.d.ts +21 -0
  51. package/dist/openai-request.js +1 -1
  52. package/dist/openai-request.js.map +1 -1
  53. package/dist/ping/cadence.js +9 -1
  54. package/dist/ping/cadence.js.map +1 -1
  55. package/dist/ping/probe-cache.d.ts +13 -0
  56. package/dist/ping/probe-cache.js +12 -0
  57. package/dist/ping/probe-cache.js.map +1 -1
  58. package/dist/responses-request.d.ts +20 -0
  59. package/dist/responses-request.js +7 -7
  60. package/dist/responses-request.js.map +1 -1
  61. package/dist/routes/admin.d.ts +8 -1
  62. package/dist/routes/admin.js +42 -6
  63. package/dist/routes/admin.js.map +1 -1
  64. package/dist/routes/messages.d.ts +1 -0
  65. package/dist/routes/messages.js +13 -8
  66. package/dist/routes/messages.js.map +1 -1
  67. package/dist/routes/openai-front.js +20 -7
  68. package/dist/routes/openai-front.js.map +1 -1
  69. package/dist/server.d.ts +9 -1
  70. package/dist/server.js +21 -3
  71. package/dist/server.js.map +1 -1
  72. package/dist/setup-claude.d.ts +2 -2
  73. package/dist/setup-claude.js +9 -7
  74. package/dist/setup-claude.js.map +1 -1
  75. package/dist/stream-pipeline.d.ts +116 -0
  76. package/dist/stream-pipeline.js +151 -0
  77. package/dist/stream-pipeline.js.map +1 -1
  78. package/dist/target-facts.d.ts +5 -4
  79. package/dist/target-facts.js +5 -0
  80. package/dist/target-facts.js.map +1 -1
  81. package/dist/telemetry.d.ts +15 -2
  82. package/dist/telemetry.js +4 -1
  83. package/dist/telemetry.js.map +1 -1
  84. package/dist/tier-data.d.ts +22 -0
  85. package/dist/tier-data.js +12 -2
  86. package/dist/tier-data.js.map +1 -1
  87. package/package.json +2 -1
  88. package/skills/llm-relay/SKILL.md +8 -3
  89. package/skills/llm-relay/references/dispatch-lanes.md +2 -1
  90. package/skills/llm-relay/references/operations.md +1 -1
@@ -38,7 +38,7 @@ export interface SetupOptions {
38
38
  * upgraded in place rather than refused as foreign.
39
39
  */
40
40
  export declare const RELAY_AGENT_MARKER_PREFIX = "<!-- llm-relay:relay-agent";
41
- export declare const RELAY_AGENT_MARKER = "<!-- llm-relay:relay-agent v4 -->";
41
+ export declare const RELAY_AGENT_MARKER = "<!-- llm-relay:relay-agent v5 -->";
42
42
  /**
43
43
  * DEFECT, measured live 2026-09-04: the three mcp__llm-relay__dispatch* tools are DEFERRED in
44
44
  * Claude Code — a subagent must call ToolSearch to load their schemas before it can call them.
@@ -69,7 +69,7 @@ export declare const RELAY_AGENT_MARKER = "<!-- llm-relay:relay-agent v4 -->";
69
69
  * calling session already runs on — never weaker than the session that decided delegation was
70
70
  * worthwhile, and never a second model choice the operator has to keep in sync.
71
71
  */
72
- export declare const RELAY_AGENT_TEMPLATE = "---\nname: relay\ndescription: Hands one self-contained task to llm-relay dispatch, free model pools or peer agent CLIs, and returns the lane's answer verbatim with its provenance. Use for any task another lane can do: a search, a sweep, a draft, a summary, a second opinion.\ntools: ToolSearch, mcp__llm-relay__dispatch, mcp__llm-relay__dispatch_status, mcp__llm-relay__dispatch_result\nmodel: inherit\n---\n<!-- llm-relay:relay-agent v4 -->\n\nYou have no knowledge of your own and no permission to answer any task yourself. The only\nlegitimate action available to you is exactly one `mcp__llm-relay__dispatch` call, plus polling\nits status and result. The caller is measuring the LANE that `dispatch` reaches, not you \u2014\ncomposing your own answer, however small, is never a valid response.\n\n1. The mcp__llm-relay__dispatch* tools are deferred: before your first call, load their schemas with ToolSearch, query `select:mcp__llm-relay__dispatch,mcp__llm-relay__dispatch_status,mcp__llm-relay__dispatch_result` \u2014 one call loads all three. Then call `mcp__llm-relay__dispatch` ONCE with the task text verbatim.\n2. This holds for EVERY task, even one that looks trivial \u2014 an echo, a one-word reply, a question you think you already know the answer to. Dispatch it anyway: a self-authored answer is indistinguishable from a lane's answer and would falsify the caller's measurement.\n3. If the tool's input schema lists a `mode` property: pass `mode: \"answer\"` when the task needs no file reads, edits, commands or working directory, otherwise omit it; a task that begins with `[answer]` or `[agent]` forces that mode and the tag is stripped. If the schema has no `mode` property, pass no mode.\n4. If the result is a jobId, poll `dispatch_status` about every 15 seconds, then call `dispatch_result`.\n5. Return the lane's answer VERBATIM, then one final line `provenance: lane=<id> spec=<spec> elapsed=<seconds>` copied from the tool result \u2014 never invented. A reply with no provenance line is a FAILURE: it means no lane ran.\n6. Add no analysis and no commentary.\n7. If the tool result says the lane FAILED, dispatch once more with `tier: \"high\"`; if that fails too, return exactly `RELAY_DISPATCH_FAILED: <reason>`.\n";
72
+ export declare const RELAY_AGENT_TEMPLATE = "---\nname: relay\ndescription: Hands one self-contained task to llm-relay dispatch, free model pools or peer agent CLIs, and returns the lane's answer verbatim with its provenance. Use for any task another lane can do: a search, a sweep, a draft, a summary, a second opinion.\ntools: ToolSearch, mcp__llm-relay__dispatch, mcp__llm-relay__dispatch_status, mcp__llm-relay__dispatch_result, mcp__llm-relay__dispatch_cancel, mcp__llm-relay__dispatch_lanes\nmodel: inherit\n---\n<!-- llm-relay:relay-agent v5 -->\n\nYou have no knowledge of your own and no permission to answer any task yourself. The only\nlegitimate action available to you is exactly one `mcp__llm-relay__dispatch` call, plus polling\nits status and result. The caller is measuring the LANE that `dispatch` reaches, not you \u2014\ncomposing your own answer, however small, is never a valid response.\n\n1. The mcp__llm-relay__dispatch* tools are deferred: before your first call, load their schemas with ToolSearch, query `select:mcp__llm-relay__dispatch,mcp__llm-relay__dispatch_status,mcp__llm-relay__dispatch_result,mcp__llm-relay__dispatch_cancel,mcp__llm-relay__dispatch_lanes` \u2014 one call loads all five. Then call `mcp__llm-relay__dispatch` ONCE with the task text verbatim.\n2. This holds for EVERY task, even one that looks trivial \u2014 an echo, a one-word reply, a question you think you already know the answer to. Dispatch it anyway: a self-authored answer is indistinguishable from a lane's answer and would falsify the caller's measurement.\n3. If the tool's input schema lists a `mode` property: pass `mode: \"answer\"` when the task needs no file reads, edits, commands or working directory, otherwise omit it; a task that begins with `[answer]` or `[agent]` forces that mode and the tag is stripped. If the schema has no `mode` property, pass no mode.\n4. If the result is a jobId, poll `dispatch_status` about every 15 seconds, then call `dispatch_result`.\n5. Use `dispatch_cancel` only when the caller says the task should stop; never to retry.\n6. Use `dispatch_lanes` only when the caller names a lane to use; otherwise take the ladder's own order.\n7. Return the lane's answer VERBATIM, then one final line `provenance: lane=<id> spec=<spec> elapsed=<seconds>` copied from the tool result \u2014 never invented. A reply with no provenance line is a FAILURE: it means no lane ran.\n8. Add no analysis and no commentary.\n9. If the tool result says the lane FAILED, dispatch once more with `tier: \"high\"`; if that fails too, return exactly `RELAY_DISPATCH_FAILED: <reason>`.\n";
73
73
  export declare function getRelayAgentPath(opts?: SetupOptions): string;
74
74
  export declare function installRelayAgent(opts?: SetupOptions): {
75
75
  success: boolean;
@@ -2,27 +2,29 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { join, dirname } from "node:path";
3
3
  import { homedir, platform } from "node:os";
4
4
  export const RELAY_AGENT_MARKER_PREFIX = "<!-- llm-relay:relay-agent";
5
- export const RELAY_AGENT_MARKER = "<!-- llm-relay:relay-agent v4 -->";
5
+ export const RELAY_AGENT_MARKER = "<!-- llm-relay:relay-agent v5 -->";
6
6
  export const RELAY_AGENT_TEMPLATE = `---
7
7
  name: relay
8
8
  description: Hands one self-contained task to llm-relay dispatch, free model pools or peer agent CLIs, and returns the lane's answer verbatim with its provenance. Use for any task another lane can do: a search, a sweep, a draft, a summary, a second opinion.
9
- tools: ToolSearch, mcp__llm-relay__dispatch, mcp__llm-relay__dispatch_status, mcp__llm-relay__dispatch_result
9
+ tools: ToolSearch, mcp__llm-relay__dispatch, mcp__llm-relay__dispatch_status, mcp__llm-relay__dispatch_result, mcp__llm-relay__dispatch_cancel, mcp__llm-relay__dispatch_lanes
10
10
  model: inherit
11
11
  ---
12
- <!-- llm-relay:relay-agent v4 -->
12
+ <!-- llm-relay:relay-agent v5 -->
13
13
 
14
14
  You have no knowledge of your own and no permission to answer any task yourself. The only
15
15
  legitimate action available to you is exactly one \`mcp__llm-relay__dispatch\` call, plus polling
16
16
  its status and result. The caller is measuring the LANE that \`dispatch\` reaches, not you —
17
17
  composing your own answer, however small, is never a valid response.
18
18
 
19
- 1. The mcp__llm-relay__dispatch* tools are deferred: before your first call, load their schemas with ToolSearch, query \`select:mcp__llm-relay__dispatch,mcp__llm-relay__dispatch_status,mcp__llm-relay__dispatch_result\` — one call loads all three. Then call \`mcp__llm-relay__dispatch\` ONCE with the task text verbatim.
19
+ 1. The mcp__llm-relay__dispatch* tools are deferred: before your first call, load their schemas with ToolSearch, query \`select:mcp__llm-relay__dispatch,mcp__llm-relay__dispatch_status,mcp__llm-relay__dispatch_result,mcp__llm-relay__dispatch_cancel,mcp__llm-relay__dispatch_lanes\` — one call loads all five. Then call \`mcp__llm-relay__dispatch\` ONCE with the task text verbatim.
20
20
  2. This holds for EVERY task, even one that looks trivial — an echo, a one-word reply, a question you think you already know the answer to. Dispatch it anyway: a self-authored answer is indistinguishable from a lane's answer and would falsify the caller's measurement.
21
21
  3. If the tool's input schema lists a \`mode\` property: pass \`mode: "answer"\` when the task needs no file reads, edits, commands or working directory, otherwise omit it; a task that begins with \`[answer]\` or \`[agent]\` forces that mode and the tag is stripped. If the schema has no \`mode\` property, pass no mode.
22
22
  4. If the result is a jobId, poll \`dispatch_status\` about every 15 seconds, then call \`dispatch_result\`.
23
- 5. Return the lane's answer VERBATIM, then one final line \`provenance: lane=<id> spec=<spec> elapsed=<seconds>\` copied from the tool result — never invented. A reply with no provenance line is a FAILURE: it means no lane ran.
24
- 6. Add no analysis and no commentary.
25
- 7. If the tool result says the lane FAILED, dispatch once more with \`tier: "high"\`; if that fails too, return exactly \`RELAY_DISPATCH_FAILED: <reason>\`.
23
+ 5. Use \`dispatch_cancel\` only when the caller says the task should stop; never to retry.
24
+ 6. Use \`dispatch_lanes\` only when the caller names a lane to use; otherwise take the ladder's own order.
25
+ 7. Return the lane's answer VERBATIM, then one final line \`provenance: lane=<id> spec=<spec> elapsed=<seconds>\` copied from the tool result — never invented. A reply with no provenance line is a FAILURE: it means no lane ran.
26
+ 8. Add no analysis and no commentary.
27
+ 9. If the tool result says the lane FAILED, dispatch once more with \`tier: "high"\`; if that fails too, return exactly \`RELAY_DISPATCH_FAILED: <reason>\`.
26
28
  `;
27
29
  export function getRelayAgentPath(opts = {}) {
28
30
  if (opts.agentPath)
@@ -1 +1 @@
1
- {"version":3,"file":"setup-claude.js","sourceRoot":"","sources":["../src/setup-claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-claude.js","sourceRoot":"","sources":["../src/setup-claude.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
2
  import type { AssistantMessage } from "./anthropic.js";
3
+ import type { CrawlWatchdogConfig } from "./config-types.js";
3
4
  /**
4
5
  * The code `readBody` sets when it refused a body for exceeding the cap. Owned HERE, by the
5
6
  * thrower, since 2026-09-04 (contract review DR-005): `dashboard-routes.ts` re-exports it for its
@@ -29,6 +30,121 @@ export declare function readBody(req: IncomingMessage, maxBytes?: number): Promi
29
30
  * Wrap a streaming Response with an inter-chunk stall watchdog.
30
31
  */
31
32
  export declare function withStallWatchdog(response: Response, controller: AbortController, stallTimeoutMs: number): Response;
33
+ /**
34
+ * Default crawl-abort threshold: ms per output token, sustained over a full trailing window, above
35
+ * which a COMMITTED stream is judged CRAWLING rather than merely producing a long answer.
36
+ *
37
+ * Calibrated 2026-09-09, on the `latency-demotion.ts` precedent: 4 x `DEFAULT_LATENCY_MS_PER_TOKEN`
38
+ * (250 ms/token, itself measured over 68 real requests on 2026-08-30 — see that file's own
39
+ * comment). A crawl abort hands the client a failure it must retry — measured in
40
+ * `docs/post-commit-stall-measurement-2026-09-09.md`: Claude Code retries once, downgraded to a
41
+ * NON-STREAMING request; Codex retries up to five times, staying streaming, in all four measured
42
+ * cells — so the bar must sit far above the demotion threshold, or a deployment merely slow enough
43
+ * to be latency-demoted would also be aborted mid-response. 250 ms/token is itself ~3.5x the
44
+ * healthy band measured that day, so 1000 ms/token sits well clear of ordinary slow-but-working
45
+ * traffic. A tunable default, not a provider fact — the provenance invariant permits this.
46
+ * Re-calibrate by reading `~/.llm-relay/usage/recent.json` the same way `latency-demotion.ts`
47
+ * describes; there is no dedicated crawl-abort log field to read back yet (see the accepted gaps
48
+ * in `docs/backlog.md`'s "Build the post-commit CRAWL abort" entry once it is amended).
49
+ */
50
+ export declare const DEFAULT_CRAWL_MS_PER_TOKEN = 1000;
51
+ /**
52
+ * Width of the trailing window the crawl rate is measured over, in ms — and, since the rate is
53
+ * `windowMs / tokensInWindow` (see `withCrawlWatchdog`), also the numerator of every rate this
54
+ * watchdog ever computes.
55
+ *
56
+ * Corrected 2026-09-09 (fixing a same-day defect the packet that introduced this watchdog shipped
57
+ * uncaught): the ORIGINAL pairing of `windowMs: 20_000` with `minTokens: 50` could never fire.
58
+ * That version measured `spanMs = min(elapsed, windowMs)` — so `spanMs` never exceeded 20 000 —
59
+ * and required `tokensInWindow >= minTokens` (50) before judging `rate = spanMs / tokensInWindow`.
60
+ * The worst case allowed was 20 000 ms / 50 tokens = 400 ms/token, which can never clear a 1000
61
+ * ms/token threshold: the three defaults were mutually inconsistent by construction, and the
62
+ * measured scenario this watchdog exists for (60 tokens over 90 s, one every 1.5 s) could not trip
63
+ * it either. The rule is now: judge only once a FULL window has elapsed since commit
64
+ * (`elapsed >= windowMs`), then take `tokensInWindow` as the tokens sampled in the trailing
65
+ * `windowMs` and compute `rate = windowMs / tokensInWindow` (a fixed numerator, not a growing
66
+ * `spanMs`) — so with `windowMs: 30_000` and `msPerToken: 1000`, fewer than 30 tokens landing in
67
+ * any trailing 30 s window trips the abort, which the 90 s/60-token scenario clears easily (one
68
+ * token per 1.5 s is roughly 20 tokens per 30 s window).
69
+ */
70
+ export declare const DEFAULT_CRAWL_WINDOW_MS = 30000;
71
+ /**
72
+ * Minimum output tokens that must be observed SINCE COMMIT — across the whole stream, not just the
73
+ * trailing window — before ANY judgement runs at all: evidence the stream is producing an answer
74
+ * in the first place, distinct from `tokensInWindow` below. A window judged before this gate clears
75
+ * would be able to abort a stream that has barely started, on the strength of a single early burst
76
+ * falling silent — exactly the case the SEPARATE "full window holding zero tokens" rule below
77
+ * already declines to judge, stated as its own gate so the two can be tested apart.
78
+ */
79
+ export declare const DEFAULT_CRAWL_MIN_TOKENS = 20;
80
+ export interface CrawlWatchdogSettings {
81
+ enabled: boolean;
82
+ msPerToken: number;
83
+ windowMs: number;
84
+ minTokens: number;
85
+ }
86
+ /**
87
+ * Resolve `routing.crawl` into a total settings object. Absent, `{}`, or any missing key means
88
+ * the tunable default for that key — the `resolveHedgeSettings`/`resolveLatencyDemotion`
89
+ * precedent.
90
+ *
91
+ * The rule `withCrawlWatchdog` enforces, in words: `minTokens` (default 20) is the minimum number
92
+ * of output tokens observed since commit — over the WHOLE stream — before any judgement runs at
93
+ * all, evidence the stream is producing an answer. A window is judged only once it is FULL —
94
+ * elapsed time since commit at least `windowMs` (default 30 000). `tokensInWindow` counts only the
95
+ * tokens whose sample time falls inside the trailing `windowMs`; a full window holding zero tokens
96
+ * yields no opinion at all (silence is `withStallWatchdog`'s job, and this watchdog must never
97
+ * pre-empt it). Otherwise `rate = windowMs / tokensInWindow`, and the stream is CRAWLING — the
98
+ * fetch is aborted — when `rate > msPerToken` (default 1000).
99
+ */
100
+ export declare function resolveCrawlSettings(raw: CrawlWatchdogConfig | undefined): CrawlWatchdogSettings;
101
+ /**
102
+ * The CLIENT-facing wire shape the crawl watchdog reads deltas from. Deliberately the same three
103
+ * members as `stream-commit.ts`'s `StreamCommitProtocol` (not imported from there — this module
104
+ * stays a leaf the way `sse-frames.ts` does, and the membership is copied rather than re-exported
105
+ * so a change to one is never mistaken for a change to the other).
106
+ */
107
+ export type CrawlProtocol = "anthropic-messages" | "openai-chat" | "openai-responses";
108
+ /**
109
+ * A committed stream the relay itself terminated because its measured per-token rate, over the
110
+ * sliding window, stayed worse than the configured threshold.
111
+ *
112
+ * `message` is EXACTLY the text the client-visible SSE `error` frame carries — no
113
+ * "backend stream failed mid-response" wrapping prefix — because the backlog entry ("Build the
114
+ * post-commit CRAWL abort") pins the wording. `candidate-runner.ts` `handleMidStreamError` detects
115
+ * this type via `AbortSignal.reason` (never by inspecting the caught exception, which may be an
116
+ * opaque `AbortError` from the fetch machinery rather than this object) and uses `.message`
117
+ * unwrapped, plus a distinct `errorKinds` member.
118
+ */
119
+ export declare class CrawlAbortedError extends Error {
120
+ readonly rateMsPerToken: number;
121
+ readonly windowMs: number;
122
+ readonly thresholdMsPerToken: number;
123
+ constructor(rateMsPerToken: number, windowMs: number, thresholdMsPerToken: number);
124
+ }
125
+ /**
126
+ * Wrap a COMMITTED streaming Response with a crawl watchdog: abort the backend fetch once a FULL
127
+ * trailing window has elapsed since commit and that window's per-token rate — `settings.windowMs
128
+ * / tokensInWindow` — exceeds `settings.msPerToken`. Two independent gates guard against judging
129
+ * too early: `settings.minTokens` tokens must have been observed SINCE COMMIT (the whole stream,
130
+ * not just the trailing window) before any judgement runs at all, and a full window holding ZERO
131
+ * tokens yields no opinion rather than an abort (unmeasured is no opinion, never slow — the
132
+ * `latency-demotion.ts` precedent; silence is `withStallWatchdog`'s job and this watchdog must
133
+ * never pre-empt it). See `resolveCrawlSettings` for the rule spelled out in full.
134
+ *
135
+ * Installed at the SAME call site as `withStallWatchdog`, after the commit probe has already
136
+ * rebuilt the response from its replayed prefix — so `now() - commitTime` (captured at
137
+ * installation) approximates the true post-commit elapsed time.
138
+ *
139
+ * ⚠ The abort carries the `CrawlAbortedError` as its `AbortSignal.reason` — the same mechanism
140
+ * `controller.abort(reason)` offers natively — rather than erroring the transform's own
141
+ * `ReadableStreamDefaultController` directly. Enqueuing the triggering chunk and then erroring
142
+ * the SAME controller in one microtask risks losing that already-enqueued-but-unread chunk (the
143
+ * ReadableStream spec does not guarantee it survives an immediately following `error()`); routing
144
+ * the abort through the existing `AbortController` — exactly how `withStallWatchdog` already ends
145
+ * a stream — sidesteps that risk entirely and reuses a path already proven correct.
146
+ */
147
+ export declare function withCrawlWatchdog(response: Response, controller: AbortController, protocol: CrawlProtocol, settings: CrawlWatchdogSettings, now?: () => number): Response;
32
148
  /** Fail-closed terminal error response for standard endpoints. */
33
149
  export declare function failClosed(res: ServerResponse, status: number, message: string, extraHeaders?: Record<string, string | string[]>, errorType?: string): void;
34
150
  /** Forward a local Response descriptor directly to ServerResponse. */
@@ -1,4 +1,7 @@
1
1
  import { TransformStream } from "node:stream/web";
2
+ import { isRecord } from "./json-shape.js";
3
+ import { estimateTokensFromCharacters } from "./metadata.js";
4
+ import { BufferedSseFrames, parseSseEvent } from "./sse-frames.js";
2
5
  export const BODY_TOO_LARGE_CODE = "ERR_DASHBOARD_BODY_TOO_LARGE";
3
6
  export function bodyReadStatus(error) {
4
7
  const code = typeof error === "object" && error !== null && "code" in error
@@ -125,6 +128,154 @@ export function withStallWatchdog(response, controller, stallTimeoutMs) {
125
128
  headers: response.headers,
126
129
  });
127
130
  }
131
+ export const DEFAULT_CRAWL_MS_PER_TOKEN = 1000;
132
+ export const DEFAULT_CRAWL_WINDOW_MS = 30_000;
133
+ export const DEFAULT_CRAWL_MIN_TOKENS = 20;
134
+ export function resolveCrawlSettings(raw) {
135
+ return {
136
+ enabled: raw?.enabled ?? true,
137
+ msPerToken: raw?.msPerToken ?? DEFAULT_CRAWL_MS_PER_TOKEN,
138
+ windowMs: raw?.windowMs ?? DEFAULT_CRAWL_WINDOW_MS,
139
+ minTokens: raw?.minTokens ?? DEFAULT_CRAWL_MIN_TOKENS,
140
+ };
141
+ }
142
+ export class CrawlAbortedError extends Error {
143
+ rateMsPerToken;
144
+ windowMs;
145
+ thresholdMsPerToken;
146
+ constructor(rateMsPerToken, windowMs, thresholdMsPerToken) {
147
+ super(`relay aborted a crawling stream: ${rateMsPerToken} ms/token over ${windowMs / 1000} s ` +
148
+ `(threshold ${thresholdMsPerToken})`);
149
+ this.rateMsPerToken = rateMsPerToken;
150
+ this.windowMs = windowMs;
151
+ this.thresholdMsPerToken = thresholdMsPerToken;
152
+ this.name = "CrawlAbortedError";
153
+ }
154
+ }
155
+ function deltaText(value) {
156
+ return typeof value === "string" ? value.length : 0;
157
+ }
158
+ function anthropicDeltaCharacters(data) {
159
+ if (data.type !== "content_block_delta" || !isRecord(data.delta))
160
+ return 0;
161
+ const delta = data.delta;
162
+ if (delta.type === "text_delta")
163
+ return deltaText(delta.text);
164
+ if (delta.type === "thinking_delta")
165
+ return deltaText(delta.thinking);
166
+ if (delta.type === "input_json_delta")
167
+ return deltaText(delta.partial_json);
168
+ return 0;
169
+ }
170
+ function openAiChatChoiceDeltaCharacters(choice) {
171
+ if (!isRecord(choice) || !isRecord(choice.delta))
172
+ return 0;
173
+ const delta = choice.delta;
174
+ let total = deltaText(delta.content);
175
+ const reasoning = typeof delta.reasoning_content === "string" && delta.reasoning_content.length > 0
176
+ ? delta.reasoning_content
177
+ : delta.reasoning;
178
+ total += deltaText(reasoning);
179
+ if (!Array.isArray(delta.tool_calls))
180
+ return total;
181
+ for (const call of delta.tool_calls) {
182
+ if (isRecord(call) && isRecord(call.function))
183
+ total += deltaText(call.function.arguments);
184
+ }
185
+ return total;
186
+ }
187
+ function openAiChatDeltaCharacters(data) {
188
+ if (!Array.isArray(data.choices))
189
+ return 0;
190
+ let total = 0;
191
+ for (const choice of data.choices)
192
+ total += openAiChatChoiceDeltaCharacters(choice);
193
+ return total;
194
+ }
195
+ const OPENAI_RESPONSES_TEXT_DELTA_TYPES = new Set([
196
+ "response.output_text.delta",
197
+ "response.refusal.delta",
198
+ "response.reasoning.delta",
199
+ "response.reasoning_text.delta",
200
+ ]);
201
+ function openAiResponsesDeltaCharacters(data) {
202
+ const type = typeof data.type === "string" ? data.type : "";
203
+ if (OPENAI_RESPONSES_TEXT_DELTA_TYPES.has(type)) {
204
+ const delta = deltaText(data.delta);
205
+ return delta > 0 ? delta : deltaText(data.text);
206
+ }
207
+ if (type === "response.function_call_arguments.delta")
208
+ return deltaText(data.delta);
209
+ return 0;
210
+ }
211
+ function deltaCharacters(protocol, data) {
212
+ if (protocol === "anthropic-messages")
213
+ return anthropicDeltaCharacters(data);
214
+ if (protocol === "openai-chat")
215
+ return openAiChatDeltaCharacters(data);
216
+ return openAiResponsesDeltaCharacters(data);
217
+ }
218
+ export function withCrawlWatchdog(response, controller, protocol, settings, now = Date.now) {
219
+ if (!settings.enabled)
220
+ return response;
221
+ const originalBody = response.body;
222
+ if (!originalBody)
223
+ return response;
224
+ const decoder = new TextDecoder();
225
+ const frames = new BufferedSseFrames();
226
+ const commitTime = now();
227
+ const samples = [];
228
+ let totalTokensSinceCommit = 0;
229
+ let tripped = false;
230
+ const transformStream = new TransformStream({
231
+ transform(chunk, streamController) {
232
+ streamController.enqueue(chunk);
233
+ if (tripped)
234
+ return;
235
+ try {
236
+ frames.append(decoder.decode(chunk, { stream: true }));
237
+ for (const { frame } of frames) {
238
+ const event = parseSseEvent(frame);
239
+ if (!event?.data)
240
+ continue;
241
+ const chars = deltaCharacters(protocol, event.data);
242
+ if (chars <= 0)
243
+ continue;
244
+ const tokens = estimateTokensFromCharacters(chars);
245
+ if (tokens > 0) {
246
+ const ts = now();
247
+ samples.push({ ts, tokens });
248
+ totalTokensSinceCommit += tokens;
249
+ }
250
+ }
251
+ }
252
+ catch {
253
+ }
254
+ if (totalTokensSinceCommit < settings.minTokens)
255
+ return;
256
+ const t = now();
257
+ const elapsed = t - commitTime;
258
+ if (elapsed < settings.windowMs)
259
+ return;
260
+ const windowStart = t - settings.windowMs;
261
+ while (samples.length > 0 && samples[0].ts < windowStart)
262
+ samples.shift();
263
+ const tokensInWindow = samples.reduce((sum, s) => sum + s.tokens, 0);
264
+ if (tokensInWindow === 0)
265
+ return;
266
+ const rate = settings.windowMs / tokensInWindow;
267
+ if (rate <= settings.msPerToken)
268
+ return;
269
+ tripped = true;
270
+ controller.abort(new CrawlAbortedError(Math.round(rate), settings.windowMs, settings.msPerToken));
271
+ },
272
+ });
273
+ return new Response(originalBody.pipeThrough(transformStream), {
274
+ status: response.status,
275
+ statusText: response.statusText,
276
+ headers: response.headers,
277
+ });
278
+ }
128
279
  export function failClosed(res, status, message, extraHeaders, errorType = "api_error") {
129
280
  if (res.headersSent) {
130
281
  if (!res.writableEnded)
@@ -1 +1 @@
1
- {"version":3,"file":"stream-pipeline.js","sourceRoot":"","sources":["../src/stream-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-pipeline.js","sourceRoot":"","sources":["../src/stream-pipeline.ts"],"names":[],"mappings":"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"}
@@ -128,7 +128,7 @@ export declare function recordFact(kind: FactKind, scope: FactScope, opts?: {
128
128
  export declare function factsFor(provider: string, credentialId: CredentialId | null, model: string | null | undefined, opts?: {
129
129
  path?: string;
130
130
  now?: number;
131
- costClass?: CostClass;
131
+ costClass?: CostClass | undefined;
132
132
  }): Array<{
133
133
  kind: FactKind;
134
134
  scope: FactScope;
@@ -139,7 +139,7 @@ export declare function factsFor(provider: string, credentialId: CredentialId |
139
139
  export declare function isCostBlocked(provider: string, credentialId: CredentialId | null, model: string | null | undefined, opts?: {
140
140
  path?: string;
141
141
  now?: number;
142
- costClass?: CostClass;
142
+ costClass?: CostClass | undefined;
143
143
  }): boolean;
144
144
  /**
145
145
  * True only when EVERY enabled credential slot for this provider is cost-blocked.
@@ -148,17 +148,18 @@ export declare function isCostBlocked(provider: string, credentialId: Credential
148
148
  export declare function isCostBlockedForEverySlot(provider: string, model: string | null | undefined, cfg: Pick<Config, "providers">, opts?: {
149
149
  path?: string;
150
150
  now?: number;
151
- costClass?: CostClass;
151
+ costClass?: CostClass | undefined;
152
152
  }): boolean;
153
153
  export declare function cooldownUntil(provider: string, credentialId: CredentialId | null, model: string | null | undefined, opts?: {
154
154
  path?: string;
155
155
  now?: number;
156
- costClass?: CostClass;
156
+ costClass?: CostClass | undefined;
157
157
  }): number | null;
158
158
  /** A success retracts conditions covering this credential/model cell, never measurements. */
159
159
  export declare function clearFacts(provider: string, credentialId: CredentialId | null, model: string | null | undefined, opts?: {
160
160
  path?: string;
161
161
  now?: number;
162
+ costClass?: CostClass | undefined;
162
163
  }): FactKind[];
163
164
  /** Operator retraction of active cooling conditions only; never success evidence or eviction. */
164
165
  export declare function clearCooldownFacts(selector: CooldownFactClearSelector, opts?: {
@@ -272,6 +272,7 @@ export function cooldownUntil(provider, credentialId, model, opts = {}) {
272
272
  export function clearFacts(provider, credentialId, model, opts = {}) {
273
273
  const path = opts.path ?? defaultPath();
274
274
  const now = opts.now ?? Date.now();
275
+ const costClass = opts.costClass;
275
276
  const m = typeof model === "string" ? model : null;
276
277
  const store = load(path);
277
278
  const cleared = [];
@@ -279,6 +280,10 @@ export function clearFacts(provider, credentialId, model, opts = {}) {
279
280
  for (const [key, fact] of Object.entries(store.facts)) {
280
281
  if (!CONDITIONS.has(fact.kind) || !covers(fact, provider, credentialId, m))
281
282
  continue;
283
+ if (fact.costClasses !== undefined) {
284
+ if (costClass === undefined || !fact.costClasses.includes(costClass))
285
+ continue;
286
+ }
282
287
  delete store.facts[key];
283
288
  if (fact.scope.kind === "credential")
284
289
  cleared.push(fact.kind);
@@ -1 +1 @@
1
- {"version":3,"file":"target-facts.js","sourceRoot":"","sources":["../src/target-facts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"target-facts.js","sourceRoot":"","sources":["../src/target-facts.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { Config, ProviderTierType } from "./config.js";
1
+ import { type Config, type ConfigStalenessReport, type ProviderTierType } from "./config.js";
2
2
  import type { CircuitBreaker } from "./circuit-breaker.js";
3
+ import type { WriterHealth } from "./dashboard-contract.js";
3
4
  export interface ProviderTelemetry {
4
5
  provider: string;
5
6
  displayName: string;
@@ -24,6 +25,18 @@ export interface TelemetryReport {
24
25
  subscriptionProvidersCount: number;
25
26
  providers: ProviderTelemetry[];
26
27
  routingTiers: Record<string, string | string[]>;
28
+ /**
29
+ * The metering subsystem's writer health, from the store's `writerHealth()` accessor
30
+ * (backlog item 19): when the store's last flush failed or the writer lease was
31
+ * refused, this names the stop so "no spend since noon" cannot be mistaken for
32
+ * "no traffic since noon". Null when no ledger is attached to the reporter (a bare
33
+ * programmatic proxy): unknown stays null, never a fabricated state.
34
+ */
35
+ accounting: WriterHealth | null;
36
+ /** Does the config file on disk still match what this process loaded? See `configStaleness()`
37
+ * in config.ts — the relay does not hot-reload, so this is how an operator (or the CLI's own
38
+ * stderr notice) finds out an edit has not taken effect. */
39
+ config: ConfigStalenessReport;
27
40
  }
28
41
  /** Aggregate live telemetry and health status across all configured providers. */
29
- export declare function getTelemetryReport(cfg: Config, cb: CircuitBreaker, now?: number): TelemetryReport;
42
+ export declare function getTelemetryReport(cfg: Config, cb: CircuitBreaker, now?: number, accounting?: WriterHealth | null): TelemetryReport;