llm-relay 0.32.2 → 0.34.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/dispatch.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { expandPoolSpecs, offloadRule, splitSpec, POOL_PREFIX } from "./config.js";
2
+ import { unsupportedArgValues, verifyModel } from "./lane-manifest.js";
2
3
  /**
3
4
  * The dispatch ladder: which LANE a host agent should hand a delegated task to, in what order,
4
5
  * and what to do when one is spent.
@@ -343,6 +344,13 @@ function normalizeOptions(opts) {
343
344
  // key could be any shape, and calling a non-function would throw mid-render.
344
345
  if (typeof opts.publishedContextWindow === "function")
345
346
  out.publishedContextWindow = opts.publishedContextWindow;
347
+ // Not a wire field either — supplied in-process by the server/CLI from the cached manifest. Shape
348
+ // is guarded for the same reason as the rest: a malformed value must read as "no manifest"
349
+ // (⇒ nothing evicted), never throw mid-render or evict on garbage.
350
+ const manifest = opts.manifest;
351
+ if (manifest && typeof manifest === "object" && manifest.version === 1 && typeof manifest.lanes === "object" && manifest.lanes !== null) {
352
+ out.manifest = manifest;
353
+ }
346
354
  return out;
347
355
  }
348
356
  function inferredTier(cfg) {
@@ -406,6 +414,22 @@ function toLane(rung, position, cfg, opts, now, client, platform, host, entrypoi
406
414
  };
407
415
  if (rung.env)
408
416
  lane.invoke.env = { ...rung.env };
417
+ // Validate the rung against what the lane's own tool says it serves. Reads the CACHED manifest
418
+ // only — nothing here spawns anything. ⚠ Absent/unprobed/unknown ⇒ no change at all, so a stale
419
+ // manifest can never empty the ladder (see lane-manifest.ts).
420
+ const dropped = unsupportedRungArgs(rung, opts.manifest ?? null);
421
+ if (dropped.length > 0) {
422
+ lane.invoke.args = stripArgs(lane.invoke.args, dropped.map((d) => d.arg));
423
+ lane.droppedArgs = dropped.map((d) => d.reason);
424
+ }
425
+ const verdict = verifyRungModel(rung, opts.manifest ?? null);
426
+ if (verdict?.status === "not-servable") {
427
+ lane.notServable = verdict.reason;
428
+ lane.state = "not-servable";
429
+ // Withhold the command entirely. A rung whose model does not exist must not be renderable —
430
+ // handing back a command known to fail is the whole defect being fixed here.
431
+ delete lane.invoke;
432
+ }
409
433
  }
410
434
  if (rung.kind === "relay" && rung.spec) {
411
435
  lane.spec = rung.spec;
@@ -440,6 +464,82 @@ function toLane(rung, position, cfg, opts, now, client, platform, host, entrypoi
440
464
  }
441
465
  return lane;
442
466
  }
467
+ /** The `--model` / `--config model_reasoning_effort=` value a cli rung actually passes. */
468
+ function rungModel(rung) {
469
+ const args = rung.args ?? [];
470
+ const i = args.indexOf("--model");
471
+ if (i >= 0 && i + 1 < args.length)
472
+ return args[i + 1] ?? null;
473
+ const m = args.find((a) => a.startsWith("--model="));
474
+ return m ? m.slice("--model=".length) : null;
475
+ }
476
+ function verifyRungModel(rung, manifest) {
477
+ if (!rung.command)
478
+ return null;
479
+ const model = rungModel(rung);
480
+ if (!model)
481
+ return null;
482
+ return verifyModel(manifest, rung.command, model);
483
+ }
484
+ /** Argument name/value pairs a cli rung passes, in both `--flag value` and `key=value` forms. */
485
+ function rungArgValues(rung) {
486
+ const args = rung.args ?? [];
487
+ const out = [];
488
+ for (let i = 0; i < args.length; i++) {
489
+ const a = args[i];
490
+ if (a === undefined)
491
+ continue;
492
+ if (a.startsWith("--") && !a.includes("=")) {
493
+ const v = args[i + 1];
494
+ if (v !== undefined && !v.startsWith("--"))
495
+ out.push({ arg: a, value: v });
496
+ }
497
+ else if (a.includes("=") && !a.startsWith("--")) {
498
+ const [k, ...rest] = a.split("=");
499
+ if (k)
500
+ out.push({ arg: k, value: rest.join("=") });
501
+ }
502
+ }
503
+ return out;
504
+ }
505
+ function unsupportedRungArgs(rung, manifest) {
506
+ if (!rung.command)
507
+ return [];
508
+ const model = rungModel(rung);
509
+ if (!model)
510
+ return [];
511
+ const dropped = [];
512
+ for (const { arg, value } of rungArgValues(rung)) {
513
+ if (arg === "--model")
514
+ continue;
515
+ const v = unsupportedArgValues(manifest, rung.command, model, arg, value);
516
+ if (v.unsupported && v.reason)
517
+ dropped.push({ arg, reason: v.reason });
518
+ }
519
+ return dropped;
520
+ }
521
+ /** Remove `--flag value` pairs and `key=value` tokens (including a `--config key=value` pair). */
522
+ function stripArgs(args, drop) {
523
+ const out = [];
524
+ for (let i = 0; i < args.length; i++) {
525
+ const a = args[i];
526
+ if (a === undefined)
527
+ continue;
528
+ if (drop.includes(a)) {
529
+ i++;
530
+ continue;
531
+ }
532
+ const key = a.includes("=") ? a.split("=")[0] : null;
533
+ if (key && drop.includes(key)) {
534
+ // `--config key=value`: the preceding flag goes with it.
535
+ if (out[out.length - 1] === "--config")
536
+ out.pop();
537
+ continue;
538
+ }
539
+ out.push(a);
540
+ }
541
+ return out;
542
+ }
443
543
  export function buildDispatch(cfg, rawOpts = {}, platform = process.platform) {
444
544
  const opts = normalizeOptions(rawOpts ?? {});
445
545
  const client = opts.client ?? "default";
@@ -499,7 +599,7 @@ export function buildDispatch(cfg, rawOpts = {}, platform = process.platform) {
499
599
  // to work for this host is the exact defect this is here to fix — the host would spend a turn
500
600
  // discovering it, and in the Desktop case would discover it as a silent no-op rather than an
501
601
  // error. An explicit `?lane=` override above still reaches it.
502
- const usable = pool.filter((l) => l.state === "ready" && l.unreachable === undefined);
602
+ const usable = pool.filter((l) => l.state === "ready" && l.unreachable === undefined && l.notServable === undefined);
503
603
  const next = usable[0] ?? null;
504
604
  if (!next) {
505
605
  const blocked = pool.filter((l) => l.unreachable !== undefined).length;
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * What a `cli` lane's own tool says it can serve.
3
+ *
4
+ * A `cli` rung is opaque config rendered verbatim into a command the host runs, so nothing
5
+ * validated it. Measured 2026-08-08: the ladder handed an agent
6
+ * `agy --model claude-opus-5 --effort medium`, in which BOTH halves were wrong independently —
7
+ * AGY serves no Claude 5 at all, and `--effort` is rejected outright for its Claude models. The
8
+ * lane looked healthy and completed nothing. See docs/lane-discovery.md.
9
+ *
10
+ * ⚠ A model the vendor does not serve is `not-servable` — an EXISTENCE fact, so the rung is
11
+ * REMOVED, not demoted. `target-facts.ts` already draws that line: `allowance-exhausted` demotes
12
+ * because it expires, `not-servable` removes because it will not start existing.
13
+ *
14
+ * ⚠ Eviction requires POSITIVE evidence. "This lane's roster is known and the model is not in it"
15
+ * evicts; "no manifest, or this lane was never probed" is UNKNOWN and changes nothing. Same
16
+ * fail-safe as a signature miss in `refusal-interpretation.ts`, and the same reasoning that makes
17
+ * an unset `${ENV}` disable one provider rather than abort startup — a stale manifest must never
18
+ * be able to empty the ladder, because this proxy fronts every session.
19
+ */
20
+ export interface LaneModel {
21
+ id: string;
22
+ /** Argument values the tool states this model supports, keyed by argument name. */
23
+ supports?: Record<string, string[]>;
24
+ }
25
+ export interface LaneEntry {
26
+ /** Which command produced this roster, so a reader can tell a listing from an attempt. */
27
+ via: string;
28
+ probedAt: string;
29
+ models: LaneModel[];
30
+ /**
31
+ * Arguments this lane's tool REJECTED for a given model, learned from an observed failure
32
+ * rather than probed. AGY publishes no flag support, so its facts can only arrive this way.
33
+ */
34
+ rejectedArgs?: Record<string, string[]>;
35
+ }
36
+ export interface LaneManifest {
37
+ version: 1;
38
+ lanes: Record<string, LaneEntry>;
39
+ }
40
+ /**
41
+ * ⚠ Under vitest, never read the developer's real manifest — same rule and same reason as
42
+ * `getProbeCachePath()`. A suite fixture naming a made-up model (`agy-gemini`, `codex`) would be
43
+ * evicted by the machine's ACTUAL roster, so three pre-existing dispatch tests went red the moment
44
+ * a real `lanes --probe` had been run. A test's ladder must be decided by its own config, not by
45
+ * whichever CLIs happen to be installed. Tests needing a manifest pass one explicitly.
46
+ */
47
+ export declare function getLaneManifestPath(): string;
48
+ export declare const DEFAULT_MANIFEST_PATH: string;
49
+ export declare function loadLaneManifest(path?: string): LaneManifest | null;
50
+ export declare function saveLaneManifest(m: LaneManifest, path?: string): void;
51
+ /** The lane a command belongs to. Closed set — an unrecognized command is UNKNOWN, never evicted. */
52
+ export declare function laneOfCommand(command: string): string | null;
53
+ export type ModelVerdict = {
54
+ status: "unknown";
55
+ reason: string;
56
+ } | {
57
+ status: "servable";
58
+ } | {
59
+ status: "not-servable";
60
+ reason: string;
61
+ };
62
+ /**
63
+ * Is this model one the lane's tool says it serves?
64
+ *
65
+ * ⚠ Every negative path that is not positive evidence returns `unknown`. Only a KNOWN roster that
66
+ * omits the model produces `not-servable`.
67
+ */
68
+ export declare function verifyModel(manifest: LaneManifest | null, command: string, model: string): ModelVerdict;
69
+ /**
70
+ * Argument values the lane is KNOWN to reject for this model — from a stated support list where the
71
+ * tool publishes one (Codex), or from an observed rejection where it does not (AGY).
72
+ */
73
+ export declare function unsupportedArgValues(manifest: LaneManifest | null, command: string, model: string, arg: string, value: string): {
74
+ unsupported: boolean;
75
+ reason?: string;
76
+ };
77
+ /** Record an argument this lane rejected for a model. An existence fact — it does not expire. */
78
+ export declare function recordRejectedArg(m: LaneManifest, lane: string, model: string, arg: string): LaneManifest;
@@ -0,0 +1,100 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { homedir, tmpdir } from "node:os";
4
+ /**
5
+ * ⚠ Under vitest, never read the developer's real manifest — same rule and same reason as
6
+ * `getProbeCachePath()`. A suite fixture naming a made-up model (`agy-gemini`, `codex`) would be
7
+ * evicted by the machine's ACTUAL roster, so three pre-existing dispatch tests went red the moment
8
+ * a real `lanes --probe` had been run. A test's ladder must be decided by its own config, not by
9
+ * whichever CLIs happen to be installed. Tests needing a manifest pass one explicitly.
10
+ */
11
+ export function getLaneManifestPath() {
12
+ if (process.env.VITEST)
13
+ return join(tmpdir(), "llm-relay-vitest", "lane-manifest.json");
14
+ return join(homedir(), ".llm-relay", "lane-manifest.json");
15
+ }
16
+ export const DEFAULT_MANIFEST_PATH = getLaneManifestPath();
17
+ export function loadLaneManifest(path = DEFAULT_MANIFEST_PATH) {
18
+ try {
19
+ if (!existsSync(path))
20
+ return null;
21
+ const j = JSON.parse(readFileSync(path, "utf8"));
22
+ if (j?.version !== 1 || typeof j.lanes !== "object" || j.lanes === null)
23
+ return null;
24
+ return j;
25
+ }
26
+ catch {
27
+ // Unreadable is UNKNOWN, never "nothing is servable". A corrupt manifest that evicted every
28
+ // rung would turn a hygiene feature into a total outage.
29
+ return null;
30
+ }
31
+ }
32
+ export function saveLaneManifest(m, path = DEFAULT_MANIFEST_PATH) {
33
+ mkdirSync(dirname(path), { recursive: true });
34
+ writeFileSync(path, JSON.stringify(m, null, 2) + "\n");
35
+ }
36
+ /** The lane a command belongs to. Closed set — an unrecognized command is UNKNOWN, never evicted. */
37
+ export function laneOfCommand(command) {
38
+ const base = (command.split(/[\\/]/).pop() ?? command).toLowerCase().replace(/\.(exe|cmd|bat)$/, "");
39
+ if (base === "agy")
40
+ return "agy";
41
+ if (base === "codex")
42
+ return "codex";
43
+ return null;
44
+ }
45
+ /**
46
+ * Is this model one the lane's tool says it serves?
47
+ *
48
+ * ⚠ Every negative path that is not positive evidence returns `unknown`. Only a KNOWN roster that
49
+ * omits the model produces `not-servable`.
50
+ */
51
+ export function verifyModel(manifest, command, model) {
52
+ const lane = laneOfCommand(command);
53
+ if (!lane)
54
+ return { status: "unknown", reason: "command is not a lane this relay can probe" };
55
+ const entry = manifest?.lanes[lane];
56
+ if (!entry)
57
+ return { status: "unknown", reason: `lane "${lane}" has never been probed` };
58
+ if (entry.models.length === 0)
59
+ return { status: "unknown", reason: `lane "${lane}" probed but returned no roster` };
60
+ if (entry.models.some((m) => m.id === model))
61
+ return { status: "servable" };
62
+ return {
63
+ status: "not-servable",
64
+ reason: `"${model}" is not in ${lane}'s roster (probed ${entry.probedAt} via \`${entry.via}\`)`,
65
+ };
66
+ }
67
+ /**
68
+ * Argument values the lane is KNOWN to reject for this model — from a stated support list where the
69
+ * tool publishes one (Codex), or from an observed rejection where it does not (AGY).
70
+ */
71
+ export function unsupportedArgValues(manifest, command, model, arg, value) {
72
+ const lane = laneOfCommand(command);
73
+ if (!lane)
74
+ return { unsupported: false };
75
+ const entry = manifest?.lanes[lane];
76
+ if (!entry)
77
+ return { unsupported: false };
78
+ const rejected = entry.rejectedArgs?.[model];
79
+ if (rejected?.includes(arg)) {
80
+ return { unsupported: true, reason: `${lane} rejects "${arg}" for "${model}" (observed)` };
81
+ }
82
+ const stated = entry.models.find((m) => m.id === model)?.supports?.[arg];
83
+ // Absence of a support list is UNKNOWN — only a stated list that omits the value is evidence.
84
+ if (stated && !stated.includes(value)) {
85
+ return { unsupported: true, reason: `${lane} states "${model}" supports ${arg}: ${stated.join(",")} (not "${value}")` };
86
+ }
87
+ return { unsupported: false };
88
+ }
89
+ /** Record an argument this lane rejected for a model. An existence fact — it does not expire. */
90
+ export function recordRejectedArg(m, lane, model, arg) {
91
+ const entry = m.lanes[lane];
92
+ if (!entry)
93
+ return m;
94
+ const rejected = entry.rejectedArgs ?? {};
95
+ const forModel = new Set(rejected[model] ?? []);
96
+ forModel.add(arg);
97
+ entry.rejectedArgs = { ...rejected, [model]: [...forModel] };
98
+ return m;
99
+ }
100
+ //# sourceMappingURL=lane-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lane-manifest.js","sourceRoot":"","sources":["../src/lane-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AA4C1C;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,EAAE,CAAC;AAE3D,MAAM,UAAU,gBAAgB,CAAC,OAAe,qBAAqB;IACnE,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAiB,CAAC;QACjE,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACrF,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,4FAA4F;QAC5F,yDAAyD;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAe,EAAE,OAAe,qBAAqB;IACpF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACrG,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,QAA6B,EAC7B,OAAe,EACf,KAAa;IAEb,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,4CAA4C,EAAE,CAAC;IAC9F,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,yBAAyB,EAAE,CAAC;IACzF,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,iCAAiC,EAAE,CAAC;IACpH,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC5E,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,IAAI,KAAK,eAAe,IAAI,qBAAqB,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC,GAAG,KAAK;KAChG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAA6B,EAC7B,OAAe,EACf,KAAa,EACb,GAAW,EACX,KAAa;IAEb,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE1C,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,aAAa,GAAG,UAAU,KAAK,cAAc,EAAE,CAAC;IAC7F,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IACzE,8FAA8F;IAC9F,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,YAAY,KAAK,cAAc,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;IAC1H,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,iBAAiB,CAAC,CAAe,EAAE,IAAY,EAAE,KAAa,EAAE,GAAW;IACzF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC;IACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,CAAC,YAAY,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC7D,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { Config } from "./config.js";
2
+ /**
3
+ * `llm-relay lanes --probe` — ask each `cli` lane's own tool what it serves.
4
+ *
5
+ * ⚠ This is the ONE place the relay runs a `cli` lane's command, and the boundary is worth stating
6
+ * because CLAUDE.md says flatly that the relay never spawns one. That invariant is about the
7
+ * REQUEST PATH: a cli lane's quota is client-bound, it runs its own tool loop, and it returns only
8
+ * final text, so a relay that shelled out mid-request could never return the `tool_use` blocks an
9
+ * HTTP turn owes its caller. An operator running a diagnostic is not the request path — exactly as
10
+ * `pools --probe` sends real completions the request path would never send. Nothing here is
11
+ * reachable from `handle()`, and the request path reads only the CACHED manifest.
12
+ *
13
+ * Discovery is not symmetric (docs/lane-discovery.md):
14
+ * codex — `codex debug models` returns JSON including per-model `supported_reasoning_levels`,
15
+ * so both the id and the effort argument are validated with no API call spent.
16
+ * agy — `agy models` returns `id<TAB>label` and states nothing about flags, so its argument
17
+ * facts can only be learned from an observed rejection.
18
+ */
19
+ export interface LaneProbeResult {
20
+ lane: string;
21
+ ok: boolean;
22
+ via: string;
23
+ modelCount: number;
24
+ error?: string;
25
+ }
26
+ /** Distinct `cli` commands the configured ladders actually reference. */
27
+ export declare function laneCommands(cfg: Config): Map<string, string>;
28
+ export declare function probeLanes(cfg: Config, path?: string): LaneProbeResult[];
@@ -0,0 +1,113 @@
1
+ import { execFileSync, execSync } from "node:child_process";
2
+ import { laneOfCommand, loadLaneManifest, saveLaneManifest, DEFAULT_MANIFEST_PATH, } from "./lane-manifest.js";
3
+ function run(command, args) {
4
+ const opts = {
5
+ encoding: "utf8",
6
+ maxBuffer: 64 * 1024 * 1024,
7
+ timeout: 60_000,
8
+ stdio: ["ignore", "pipe", "pipe"],
9
+ };
10
+ try {
11
+ return execFileSync(command, args, opts);
12
+ }
13
+ catch (e) {
14
+ // ⚠ On Windows an npm-installed CLI is a `.cmd` shim, which execFileSync will not resolve
15
+ // without a shell — `codex` fails ENOENT while running fine in any terminal. Retry through the
16
+ // shell rather than defaulting to it: shell:true re-parses the command line, so it is the
17
+ // fallback, not the norm. Args here are fixed literals from the probers, never task content.
18
+ if (process.platform === "win32" && e.code === "ENOENT") {
19
+ // Passed as ONE command line rather than command+args: node deprecates the args form under
20
+ // `shell: true` because it concatenates without escaping. Every token here is a fixed literal
21
+ // from a prober above — no task content, no user input — and the path is quoted.
22
+ return execSync(`"${command}" ${args.join(" ")}`, opts);
23
+ }
24
+ throw e;
25
+ }
26
+ }
27
+ function probeCodex(command) {
28
+ const via = `${command} debug models`;
29
+ const raw = run(command, ["debug", "models"]);
30
+ const parsed = JSON.parse(raw);
31
+ if (!Array.isArray(parsed.models)) {
32
+ throw new Error(`codex catalog had no "models" array — keys: ${Object.keys(parsed).join(" | ")}`);
33
+ }
34
+ const models = [];
35
+ for (const m of parsed.models) {
36
+ const id = typeof m.slug === "string" ? m.slug : null;
37
+ if (!id)
38
+ continue;
39
+ const levels = Array.isArray(m.supported_reasoning_levels)
40
+ ? m.supported_reasoning_levels
41
+ .map((r) => (typeof r.effort === "string" ? r.effort : null))
42
+ .filter((e) => e !== null)
43
+ : [];
44
+ models.push(levels.length > 0 ? { id, supports: { model_reasoning_effort: levels } } : { id });
45
+ }
46
+ if (models.length === 0)
47
+ throw new Error("codex catalog parsed to zero models — schema likely changed");
48
+ return { via, probedAt: new Date().toISOString(), models };
49
+ }
50
+ function probeAgy(command) {
51
+ const via = `${command} models`;
52
+ const raw = run(command, ["models"]);
53
+ const models = [];
54
+ for (const line of raw.split("\n")) {
55
+ // `id<TAB>Display Name`. A header/status line ("Fetching available models...") has no tab.
56
+ const [id] = line.split("\t");
57
+ const trimmed = id?.trim();
58
+ if (!trimmed || !line.includes("\t"))
59
+ continue;
60
+ models.push({ id: trimmed });
61
+ }
62
+ if (models.length === 0)
63
+ throw new Error("agy models parsed to zero models — output format likely changed");
64
+ // ⚠ No `supports` recorded: agy publishes nothing about flags, and inventing an empty support
65
+ // list would read as "supports nothing" and evict every argument.
66
+ return { via, probedAt: new Date().toISOString(), models };
67
+ }
68
+ const PROBERS = {
69
+ codex: probeCodex,
70
+ agy: probeAgy,
71
+ };
72
+ /** Distinct `cli` commands the configured ladders actually reference. */
73
+ export function laneCommands(cfg) {
74
+ const found = new Map();
75
+ const ladders = cfg.routing.ladders ?? {};
76
+ const all = [...Object.values(ladders).flat(), ...(cfg.routing.ladder ?? [])];
77
+ for (const rung of all) {
78
+ if (rung?.kind !== "cli" || typeof rung.command !== "string")
79
+ continue;
80
+ const lane = laneOfCommand(rung.command);
81
+ if (lane && !found.has(lane))
82
+ found.set(lane, rung.command);
83
+ }
84
+ return found;
85
+ }
86
+ export function probeLanes(cfg, path = DEFAULT_MANIFEST_PATH) {
87
+ const existing = loadLaneManifest(path);
88
+ const manifest = existing ?? { version: 1, lanes: {} };
89
+ const results = [];
90
+ for (const [lane, command] of laneCommands(cfg)) {
91
+ const prober = PROBERS[lane];
92
+ if (!prober) {
93
+ results.push({ lane, ok: false, via: command, modelCount: 0, error: "no prober for this lane" });
94
+ continue;
95
+ }
96
+ try {
97
+ const entry = prober(command);
98
+ // Learned argument rejections survive a re-probe: they are existence facts about a flag,
99
+ // and the roster reading that replaces the model list says nothing about them.
100
+ const previous = manifest.lanes[lane]?.rejectedArgs;
101
+ manifest.lanes[lane] = previous ? { ...entry, rejectedArgs: previous } : entry;
102
+ results.push({ lane, ok: true, via: entry.via, modelCount: entry.models.length });
103
+ }
104
+ catch (e) {
105
+ // A failed probe leaves any PREVIOUS entry untouched — losing a good roster because the tool
106
+ // was momentarily unavailable would evict working rungs.
107
+ results.push({ lane, ok: false, via: command, modelCount: 0, error: e.message });
108
+ }
109
+ }
110
+ saveLaneManifest(manifest, path);
111
+ return results;
112
+ }
113
+ //# sourceMappingURL=lane-probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lane-probe.js","sourceRoot":"","sources":["../src/lane-probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,GAItB,MAAM,oBAAoB,CAAC;AA4B5B,SAAS,GAAG,CAAC,OAAe,EAAE,IAAc;IAC1C,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,MAAe;QACzB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC3B,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAA0B;KAC3D,CAAC;IACF,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,0FAA0F;QAC1F,+FAA+F;QAC/F,0FAA0F;QAC1F,6FAA6F;QAC7F,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnF,2FAA2F;YAC3F,8FAA8F;YAC9F,iFAAiF;YACjF,OAAO,QAAQ,CAAC,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,GAAG,GAAG,GAAG,OAAO,eAAe,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgD,CAAC;IAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACtD,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;YACxD,CAAC,CAAE,CAAC,CAAC,0BAA6D;iBAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC5D,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;YAC3C,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACxG,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC/B,MAAM,GAAG,GAAG,GAAG,OAAO,SAAS,CAAC;IAChC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,2FAA2F;QAC3F,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/C,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IAC5G,8FAA8F;IAC9F,kEAAkE;IAClE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,OAAO,GAAmD;IAC9D,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,QAAQ;CACd,CAAC;AAEF,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9E,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,EAAE,IAAI,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAAE,SAAS;QACvE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,OAAe,qBAAqB;IAC1E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAiB,QAAQ,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACrE,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;YACjG,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,yFAAyF;YACzF,+EAA+E;YAC/E,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;YACpD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,6FAA6F;YAC7F,yDAAyD;YACzD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -2,6 +2,7 @@ import { unroutableOffloadClient } from "../config.js";
2
2
  import { buildRegistry } from "../registry.js";
3
3
  import { buildCandidates } from "../candidates.js";
4
4
  import { offloadState, setOffload } from "../offload.js";
5
+ import { loadLaneManifest } from "../lane-manifest.js";
5
6
  import { buildDispatch, markExhausted, clearExhausted, OUTCOME_DEFAULT_MS } from "../dispatch.js";
6
7
  import { parseHostRoutingState } from "../host-routing.js";
7
8
  import { contextWindowResolver } from "../metadata.js";
@@ -229,6 +230,8 @@ export async function handleAdminRoutes(req, res, pathname, path, started, reqJs
229
230
  const hostParam = parseHostRoutingState(pickQuery(path, "host"));
230
231
  const entrypointParam = pickQuery(path, "entrypoint");
231
232
  const view = buildDispatch(cfg, {
233
+ // Cached manifest only — the request path never probes. Absent ⇒ nothing is evicted.
234
+ manifest: loadLaneManifest(),
232
235
  ...(taskParam ? { task: taskParam } : {}),
233
236
  ...(pickQuery(path, "lane") ? { lane: pickQuery(path, "lane") } : {}),
234
237
  ...(pickQuery(path, "after") ? { after: pickQuery(path, "after") } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/routes/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/routes/admin.ts"],"names":[],"mappings":"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"}