llm-relay 0.77.1 → 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.
- package/dist/accounting-store-schema.js +5 -6
- package/dist/accounting-store-schema.js.map +1 -1
- package/dist/accounting-store.d.ts +10 -0
- package/dist/accounting-store.js +60 -6
- package/dist/accounting-store.js.map +1 -1
- package/dist/backend/envelope-validator.d.ts +1 -1
- package/dist/backend/envelope-validator.js +89 -52
- package/dist/backend/envelope-validator.js.map +1 -1
- package/dist/backend/health-prober.js +3 -1
- package/dist/backend/health-prober.js.map +1 -1
- package/dist/backend.d.ts +48 -0
- package/dist/backend.js +831 -7
- package/dist/backend.js.map +1 -1
- package/dist/candidate-runner.d.ts +135 -50
- package/dist/candidate-runner.js +160 -55
- package/dist/candidate-runner.js.map +1 -1
- package/dist/cli.d.ts +24 -2
- package/dist/cli.js +122 -20
- package/dist/cli.js.map +1 -1
- package/dist/config/routing-parser.d.ts +5 -4
- package/dist/config/routing-parser.js +141 -9
- package/dist/config/routing-parser.js.map +1 -1
- package/dist/config-types.d.ts +202 -0
- package/dist/config-types.js +2 -0
- package/dist/config-types.js.map +1 -1
- package/dist/config.d.ts +45 -1
- package/dist/config.js +87 -22
- package/dist/config.js.map +1 -1
- package/dist/dashboard-contract.d.ts +38 -0
- package/dist/dashboard-contract.js +19 -3
- package/dist/dashboard-contract.js.map +1 -1
- package/dist/dispatch-lane-stats.d.ts +33 -4
- package/dist/dispatch-lane-stats.js +65 -16
- package/dist/dispatch-lane-stats.js.map +1 -1
- package/dist/dispatch.d.ts +9 -0
- package/dist/dispatch.js +36 -4
- package/dist/dispatch.js.map +1 -1
- package/dist/key-checker.d.ts +21 -1
- package/dist/key-checker.js +38 -12
- package/dist/key-checker.js.map +1 -1
- package/dist/lane-affinity.d.ts +94 -1
- package/dist/lane-affinity.js +52 -4
- package/dist/lane-affinity.js.map +1 -1
- package/dist/mcp/lane-runner.d.ts +69 -16
- package/dist/mcp/lane-runner.js +30 -1
- package/dist/mcp/lane-runner.js.map +1 -1
- package/dist/mcp/server.d.ts +39 -4
- package/dist/mcp/server.js +70 -13
- package/dist/mcp/server.js.map +1 -1
- package/dist/openai-request.d.ts +21 -0
- package/dist/openai-request.js +1 -1
- package/dist/openai-request.js.map +1 -1
- package/dist/ping/cadence.js +9 -1
- package/dist/ping/cadence.js.map +1 -1
- package/dist/ping/probe-cache.d.ts +13 -0
- package/dist/ping/probe-cache.js +12 -0
- package/dist/ping/probe-cache.js.map +1 -1
- package/dist/responses-request.d.ts +20 -0
- package/dist/responses-request.js +7 -7
- package/dist/responses-request.js.map +1 -1
- package/dist/routes/admin.d.ts +8 -1
- package/dist/routes/admin.js +42 -6
- package/dist/routes/admin.js.map +1 -1
- package/dist/routes/messages.d.ts +1 -0
- package/dist/routes/messages.js +13 -8
- package/dist/routes/messages.js.map +1 -1
- package/dist/routes/openai-front.js +20 -7
- package/dist/routes/openai-front.js.map +1 -1
- package/dist/server.d.ts +9 -1
- package/dist/server.js +21 -3
- package/dist/server.js.map +1 -1
- package/dist/setup-claude.d.ts +2 -2
- package/dist/setup-claude.js +9 -7
- package/dist/setup-claude.js.map +1 -1
- package/dist/stream-pipeline.d.ts +116 -0
- package/dist/stream-pipeline.js +151 -0
- package/dist/stream-pipeline.js.map +1 -1
- package/dist/target-facts.d.ts +5 -4
- package/dist/target-facts.js +5 -0
- package/dist/target-facts.js.map +1 -1
- package/dist/telemetry.d.ts +15 -2
- package/dist/telemetry.js +4 -1
- package/dist/telemetry.js.map +1 -1
- package/dist/tier-data.d.ts +22 -0
- package/dist/tier-data.js +12 -2
- package/dist/tier-data.js.map +1 -1
- package/package.json +2 -1
- package/skills/llm-relay/SKILL.md +8 -3
- package/skills/llm-relay/references/dispatch-lanes.md +2 -1
- package/skills/llm-relay/references/operations.md +1 -1
package/dist/server.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ import { type HedgeDelayDecision } from "./hedge-trigger.js";
|
|
|
21
21
|
import { type HardCapVerdict } from "./hard-cap.js";
|
|
22
22
|
import { type ControlAuthorizationPort } from "./control-authorization.js";
|
|
23
23
|
import { StickySessionManager } from "./session-pin.js";
|
|
24
|
-
import { type CostClassFn } from "./candidate-runner.js";
|
|
24
|
+
import { type CostClassFn, type ProbationFn } from "./candidate-runner.js";
|
|
25
25
|
export { baseLog, logSafePath } from "./request-log.js";
|
|
26
26
|
export { DEFAULT_MAX_BODY_BYTES } from "./stream-pipeline.js";
|
|
27
27
|
export { orderByUsability, classifyStatus, buildForwardHeaders, CredentialConfigError } from "./candidate-runner.js";
|
|
@@ -39,6 +39,8 @@ export interface ProxyDeps {
|
|
|
39
39
|
dashboardRelayVersion?: string;
|
|
40
40
|
dashboardAttributionPolicy?: AttributionPolicy;
|
|
41
41
|
controlAuthorization?: ControlAuthorizationPort | null;
|
|
42
|
+
/** Optional shutdown callback — called by POST /stop after responding 202. A bare programmatic proxy with no onStop answers 503. */
|
|
43
|
+
onStop?: () => void;
|
|
42
44
|
}
|
|
43
45
|
export declare function dashboardExpectedOriginForAuthority(hostname: string, port: number): string;
|
|
44
46
|
export interface Handlers {
|
|
@@ -62,10 +64,16 @@ export interface Handlers {
|
|
|
62
64
|
server: Server;
|
|
63
65
|
quotaDemotion: QuotaDemotionFn;
|
|
64
66
|
latencyDemotion: LatencyDemotionFn;
|
|
67
|
+
probation: ProbationFn;
|
|
65
68
|
hedgeDelay: (attempt: ResolvedAttempt, estimatedInputTokens: number) => HedgeDelayDecision | null;
|
|
66
69
|
hedgeMaxInFlight: number;
|
|
67
70
|
costClassOf: CostClassFn;
|
|
68
71
|
hardCap: (attempt: ResolvedAttempt, now: number) => HardCapVerdict | null;
|
|
72
|
+
/** Optional shutdown callback — called by POST /stop after responding 202. */
|
|
73
|
+
onStop?: () => void;
|
|
74
|
+
/** True the first time GET /telemetry observes the loaded config changed on disk, false on
|
|
75
|
+
* every call after — so the daemon logs the fact exactly once (see config.ts `configStaleness`). */
|
|
76
|
+
claimConfigStalenessLogOnce: () => boolean;
|
|
69
77
|
}
|
|
70
78
|
/**
|
|
71
79
|
* The context ceiling this relay may hold a deployment to, and WHICH rung stated it.
|
package/dist/server.js
CHANGED
|
@@ -40,7 +40,8 @@ import { createHardCapLedgerReader, evaluateHardCap } from "./hard-cap.js";
|
|
|
40
40
|
import { createControlAuthorization, resolveControlAuthorizationConfigDir, validateControlAuthorization, } from "./control-authorization.js";
|
|
41
41
|
import { deriveSessionKey, StickySessionManager, } from "./session-pin.js";
|
|
42
42
|
import { DEFAULT_MAX_BODY_BYTES, bodyReadStatus, failClosed, readBody, } from "./stream-pipeline.js";
|
|
43
|
-
import { applyStickyOrdering, CredentialAttemptTrace, credentialEvidence, DEFAULT_WALK_BUDGET_MS, expandCredentialAttempts, freeOnlyApplies, orderDeploymentGroupsByUsability, stickyProvenanceHeaders, } from "./candidate-runner.js";
|
|
43
|
+
import { applyStickyOrdering, createProbationFn, CredentialAttemptTrace, credentialEvidence, DEFAULT_WALK_BUDGET_MS, expandCredentialAttempts, freeOnlyApplies, orderDeploymentGroupsByUsability, stickyProvenanceHeaders, } from "./candidate-runner.js";
|
|
44
|
+
import { countRequestSamples } from "./ping/probe-cache.js";
|
|
44
45
|
import { detectOpenAiFrontProtocol, openAiFrontPath } from "./routes/openai-front.js";
|
|
45
46
|
import { anthropicMessagesPath } from "./routes/messages.js";
|
|
46
47
|
export { baseLog, logSafePath } from "./request-log.js";
|
|
@@ -63,6 +64,7 @@ const CONTROL_ROUTES = new Set([
|
|
|
63
64
|
"/health/stats",
|
|
64
65
|
"/health",
|
|
65
66
|
"/candidates",
|
|
67
|
+
"/stop",
|
|
66
68
|
]);
|
|
67
69
|
function normalizeHostname(hostname) {
|
|
68
70
|
const lower = hostname.toLowerCase();
|
|
@@ -379,7 +381,7 @@ async function handle(req, res, cfg, h) {
|
|
|
379
381
|
const rankedAttempts = rankCredentialAttempts(attempts, h.credentialLru, {
|
|
380
382
|
evidenceFor: (attempt) => credentialEvidence(attempt, cfg, h.breaker, routingNow),
|
|
381
383
|
});
|
|
382
|
-
const { ordered: orderedAttempts, quotaDemotedFirst, latencyDemotedFirst } = orderDeploymentGroupsByUsability(rankedAttempts, h.breaker, routingNow, h.quotaDemotion, h.costClassOf, h.latencyDemotion);
|
|
384
|
+
const { ordered: orderedAttempts, quotaDemotedFirst, latencyDemotedFirst, } = orderDeploymentGroupsByUsability(rankedAttempts, h.breaker, routingNow, h.quotaDemotion, h.costClassOf, h.latencyDemotion, h.probation);
|
|
383
385
|
let walkAttempts = orderedAttempts;
|
|
384
386
|
let sticky = null;
|
|
385
387
|
if ((isMessages || openAiFrontProtocol) && h.stickySessions) {
|
|
@@ -392,7 +394,7 @@ async function handle(req, res, cfg, h) {
|
|
|
392
394
|
provenance: null,
|
|
393
395
|
};
|
|
394
396
|
if (pinnedSpec) {
|
|
395
|
-
const applied = applyStickyOrdering(walkAttempts, pinnedSpec, h.breaker, degradedSpecs, routingNow, h.quotaDemotion, h.costClassOf);
|
|
397
|
+
const applied = applyStickyOrdering(walkAttempts, pinnedSpec, h.breaker, degradedSpecs, routingNow, h.quotaDemotion, h.costClassOf, undefined, h.probation);
|
|
396
398
|
walkAttempts = applied.targets;
|
|
397
399
|
sticky.provenance = `${pinnedSpec} (${applied.status})`;
|
|
398
400
|
}
|
|
@@ -499,6 +501,13 @@ async function handle(req, res, cfg, h) {
|
|
|
499
501
|
export function createProxy(cfg, deps = {}) {
|
|
500
502
|
const validator = new ToolUseValidator();
|
|
501
503
|
const logger = new MetadataLogger(cfg.log);
|
|
504
|
+
let configStalenessLogged = false;
|
|
505
|
+
const claimConfigStalenessLogOnce = () => {
|
|
506
|
+
if (configStalenessLogged)
|
|
507
|
+
return false;
|
|
508
|
+
configStalenessLogged = true;
|
|
509
|
+
return true;
|
|
510
|
+
};
|
|
502
511
|
const isDestructive = destructiveMatcher(cfg.repair.destructiveTools);
|
|
503
512
|
const catalog = deps.catalog ?? new ModelCatalog();
|
|
504
513
|
const laneCadence = process.env.VITEST ? null : new LaneCadence(cfg);
|
|
@@ -561,6 +570,12 @@ export function createProxy(cfg, deps = {}) {
|
|
|
561
570
|
return undefined;
|
|
562
571
|
}
|
|
563
572
|
};
|
|
573
|
+
const probationDeps = {
|
|
574
|
+
readRequestSamples: countRequestSamples,
|
|
575
|
+
settings: cfg.routing.probation,
|
|
576
|
+
costClassOf,
|
|
577
|
+
};
|
|
578
|
+
const probation = createProbationFn(probationDeps);
|
|
564
579
|
const hedgeSettings = resolveHedgeSettings(cfg.routing?.hedge);
|
|
565
580
|
const hedgeDelay = (attempt, estimatedInputTokens) => {
|
|
566
581
|
const t = attempt.target;
|
|
@@ -669,10 +684,13 @@ export function createProxy(cfg, deps = {}) {
|
|
|
669
684
|
...(controlAuthorization ? { controlAuthorization } : {}),
|
|
670
685
|
quotaDemotion,
|
|
671
686
|
latencyDemotion,
|
|
687
|
+
probation,
|
|
672
688
|
hedgeDelay,
|
|
673
689
|
hedgeMaxInFlight: hedgeSettings.enabled ? 2 : 1,
|
|
674
690
|
costClassOf,
|
|
675
691
|
hardCap: hardCapEvaluator,
|
|
692
|
+
claimConfigStalenessLogOnce,
|
|
693
|
+
...(deps.onStop ? { onStop: deps.onStop } : {}),
|
|
676
694
|
}).catch((e) => {
|
|
677
695
|
failClosed(res, 502, `llm-relay internal error: ${e.message}`);
|
|
678
696
|
logger.write(baseLog(started, req.url ?? "/", false, false, 502, "skipped", null));
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/setup-claude.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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;
|
package/dist/setup-claude.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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.
|
|
24
|
-
6.
|
|
25
|
-
7.
|
|
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)
|
package/dist/setup-claude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-claude.js","sourceRoot":"","sources":["../src/setup-claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAyC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AA+BtE,MAAM,CAAC,MAAM,oBAAoB,GAAG
|
|
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. */
|