llm-relay 0.80.0 → 0.82.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 (97) hide show
  1. package/dist/backend.d.ts +43 -3
  2. package/dist/backend.js +0 -0
  3. package/dist/backend.js.map +1 -1
  4. package/dist/candidate-runner.d.ts +45 -9
  5. package/dist/candidate-runner.js +55 -22
  6. package/dist/candidate-runner.js.map +1 -1
  7. package/dist/catalog.d.ts +49 -0
  8. package/dist/catalog.js +18 -0
  9. package/dist/catalog.js.map +1 -1
  10. package/dist/circuit-breaker.d.ts +118 -1
  11. package/dist/circuit-breaker.js +96 -1
  12. package/dist/circuit-breaker.js.map +1 -1
  13. package/dist/cli.d.ts +3 -0
  14. package/dist/cli.js +23 -3
  15. package/dist/cli.js.map +1 -1
  16. package/dist/config/routing-parser.d.ts +1 -1
  17. package/dist/config/routing-parser.js +27 -1
  18. package/dist/config/routing-parser.js.map +1 -1
  19. package/dist/config-edit.js +70 -16
  20. package/dist/config-edit.js.map +1 -1
  21. package/dist/config-types.d.ts +62 -6
  22. package/dist/config-types.js +1 -1
  23. package/dist/config-types.js.map +1 -1
  24. package/dist/dashboard/.vite/manifest.json +2 -2
  25. package/dist/dashboard/assets/index-B2UQHoym.js +74 -0
  26. package/dist/dashboard/assets/index-DFEP3XPr.css +1 -0
  27. package/dist/dashboard/index.html +2 -2
  28. package/dist/dispatch-lane-stats.d.ts +59 -5
  29. package/dist/dispatch-lane-stats.js +96 -29
  30. package/dist/dispatch-lane-stats.js.map +1 -1
  31. package/dist/dispatch.d.ts +143 -1
  32. package/dist/dispatch.js +260 -98
  33. package/dist/dispatch.js.map +1 -1
  34. package/dist/lane-affinity.d.ts +8 -0
  35. package/dist/lane-affinity.js +10 -0
  36. package/dist/lane-affinity.js.map +1 -1
  37. package/dist/log.d.ts +16 -0
  38. package/dist/log.js +1 -0
  39. package/dist/log.js.map +1 -1
  40. package/dist/mcp/agy-quota-log.d.ts +37 -0
  41. package/dist/mcp/agy-quota-log.js +68 -0
  42. package/dist/mcp/agy-quota-log.js.map +1 -0
  43. package/dist/mcp/job-archive.d.ts +55 -0
  44. package/dist/mcp/job-archive.js +151 -0
  45. package/dist/mcp/job-archive.js.map +1 -0
  46. package/dist/mcp/lane-runner.d.ts +108 -5
  47. package/dist/mcp/lane-runner.js +93 -4
  48. package/dist/mcp/lane-runner.js.map +1 -1
  49. package/dist/mcp/readonly-boundary.d.ts +46 -0
  50. package/dist/mcp/readonly-boundary.js +119 -0
  51. package/dist/mcp/readonly-boundary.js.map +1 -1
  52. package/dist/mcp/server.d.ts +132 -8
  53. package/dist/mcp/server.js +267 -68
  54. package/dist/mcp/server.js.map +1 -1
  55. package/dist/openai-request.d.ts +8 -0
  56. package/dist/openai-request.js +33 -9
  57. package/dist/openai-request.js.map +1 -1
  58. package/dist/pacing.d.ts +125 -0
  59. package/dist/pacing.js +83 -0
  60. package/dist/pacing.js.map +1 -0
  61. package/dist/ping/cadence.d.ts +57 -0
  62. package/dist/ping/cadence.js +58 -0
  63. package/dist/ping/cadence.js.map +1 -1
  64. package/dist/refusal-interpretation.d.ts +24 -0
  65. package/dist/refusal-interpretation.js +10 -1
  66. package/dist/refusal-interpretation.js.map +1 -1
  67. package/dist/responses-request.d.ts +14 -1
  68. package/dist/responses-request.js +21 -4
  69. package/dist/responses-request.js.map +1 -1
  70. package/dist/routes/admin.d.ts +8 -0
  71. package/dist/routes/admin.js +122 -35
  72. package/dist/routes/admin.js.map +1 -1
  73. package/dist/routes/messages.d.ts +2 -0
  74. package/dist/routes/messages.js +7 -3
  75. package/dist/routes/messages.js.map +1 -1
  76. package/dist/routes/openai-front.d.ts +1 -0
  77. package/dist/routes/openai-front.js +7 -3
  78. package/dist/routes/openai-front.js.map +1 -1
  79. package/dist/server.d.ts +4 -0
  80. package/dist/server.js +28 -4
  81. package/dist/server.js.map +1 -1
  82. package/dist/setup-claude.d.ts +2 -2
  83. package/dist/setup-claude.js +3 -3
  84. package/dist/stream-commit.d.ts +65 -0
  85. package/dist/stream-commit.js +150 -8
  86. package/dist/stream-commit.js.map +1 -1
  87. package/dist/target-facts.js +3 -0
  88. package/dist/target-facts.js.map +1 -1
  89. package/dist/telemetry.d.ts +9 -1
  90. package/dist/telemetry.js +1 -1
  91. package/dist/telemetry.js.map +1 -1
  92. package/package.json +1 -1
  93. package/scripts/install-skill.mjs +2 -2
  94. package/skills/llm-relay/SKILL.md +5 -3
  95. package/skills/llm-relay/references/dispatch-lanes.md +8 -2
  96. package/dist/dashboard/assets/index-Bqtx14ES.css +0 -1
  97. package/dist/dashboard/assets/index-CetZdLCA.js +0 -74
@@ -1,4 +1,5 @@
1
1
  import { type JobJournal } from "./job-journal.js";
2
+ import { type JobArchive } from "./job-archive.js";
2
3
  import type { DispatchLaneStatus } from "../dispatch-lane-stats.js";
3
4
  /** Depth marker written into every child's environment, read back to bound recursion. */
4
5
  export declare const DEPTH_ENV = "LLM_RELAY_DISPATCH_DEPTH";
@@ -162,6 +163,24 @@ export interface LaneJob {
162
163
  * exactly — the pre-walk answer carried no such advice at all.
163
164
  */
164
165
  walkEnabled?: boolean;
166
+ /**
167
+ * The caller NAMED what to run — a `lane` override, or a `model` run as its own one-lane view —
168
+ * so the walk ran exactly one lane on purpose. `jobAnswer` then says that only that lane ran:
169
+ * "every dispatch lane has now been tried" would be false there, and it tells an autonomous
170
+ * caller to stop delegating altogether (measured 2026-09-10 on jobs 0023 and 0024).
171
+ */
172
+ forcedLane?: boolean;
173
+ /**
174
+ * How long the lane now running usually takes to ANSWER in this dispatch's mode, from that
175
+ * lane's own completed runs — rendered on every poll so a caller can tell a slow lane from a
176
+ * stuck one. 23 of the 182 unanswered dispatches in the 2026-09-10 transcript sweep ended with
177
+ * the caller simply no longer polling. Absent when the lane has no completed run on record.
178
+ */
179
+ expected?: {
180
+ medianMs: number | null;
181
+ p80Ms: number | null;
182
+ samples: number;
183
+ };
165
184
  startedAt: number;
166
185
  endedAt: number | undefined;
167
186
  exitCode: number | null;
@@ -180,6 +199,45 @@ export interface LaneJob {
180
199
  * reaches a terminal state. See `LaneProcessReport`.
181
200
  */
182
201
  process?: LaneProcessReport;
202
+ /**
203
+ * What the lane now running has produced so far, and when it last produced anything — so a poll
204
+ * can say how long a lane has been SILENT (`docs/backlog.md`: a Muse Spark lane logged a stream
205
+ * error in its first second, produced nothing more, and read `running` for nine minutes with
206
+ * nothing on the status to distinguish it from a lane still thinking). Present only while a
207
+ * SPAWNED attempt runs; an answer-mode call has no output stream and carries none.
208
+ */
209
+ activity?: LaneActivity;
210
+ /**
211
+ * This record was read back from the archive after an MCP server restart: the job ended in a
212
+ * previous process, and its report is exactly what that process wrote (`job-archive.ts`).
213
+ */
214
+ restored?: boolean;
215
+ /**
216
+ * The read-only TOOL binding applied to the lane now running (`readonly-boundary.ts`
217
+ * `readOnlyInvoke`). Replaced per lane, like `expected`; absent for an ordinary dispatch.
218
+ */
219
+ readOnly?: {
220
+ laneId: string;
221
+ binding: string;
222
+ };
223
+ }
224
+ /**
225
+ * Output progress of the attempt now running. Byte counts and timestamps only — never the bytes.
226
+ *
227
+ * ⚠ Silence is REPORTED here, never acted on. `claude -p` — the transposed `cliLane` form every
228
+ * `relay` rung takes in agent mode, i.e. the free pool itself — buffers its whole answer until
229
+ * exit (module header), so "zero bytes after N seconds" is the ordinary shape of a healthy run on
230
+ * the most-used lane. A threshold that killed on it would manufacture the false failure the backlog
231
+ * item names as worse than a slow honest status. The figure lets the CALLER decide, which is the
232
+ * property's second branch.
233
+ */
234
+ export interface LaneActivity {
235
+ /** When the running attempt was spawned. */
236
+ attemptStartedAt: number;
237
+ /** When the lane last wrote anything to either stream; null while it has written nothing. */
238
+ lastOutputAt: number | null;
239
+ stdoutBytes: number;
240
+ stderrBytes: number;
183
241
  }
184
242
  /**
185
243
  * The record of one job's OWNED processes, written at the moment the job goes terminal.
@@ -252,6 +310,15 @@ export interface LaneSpawnOptions {
252
310
  env: NodeJS.ProcessEnv;
253
311
  cwd: string;
254
312
  timeoutMs: number;
313
+ /**
314
+ * Called for every chunk the child writes to either stream, with the chunk's SIZE — the bytes
315
+ * themselves stay in the exec buffer that becomes `LaneRunResult`. Optional so every existing
316
+ * caller and test double is unchanged; the store's silence figure is fed from it.
317
+ */
318
+ onOutput?: ((chunk: {
319
+ stream: "stdout" | "stderr";
320
+ bytes: number;
321
+ }) => void) | undefined;
255
322
  }
256
323
  /**
257
324
  * The spawn seam. Injected so the suite can exercise every path without spending real lane quota —
@@ -291,12 +358,23 @@ type LaneExecError = Error & {
291
358
  };
292
359
  /** Terminate a full process tree (on Windows via taskkill /T /F, on POSIX via process group / signal). */
293
360
  export declare function terminateProcessTree(pid: number, platform?: NodeJS.Platform): void;
361
+ /** A readable the spawner can watch for progress; the `data` event is all it subscribes to. */
362
+ export interface LaneOutputStream {
363
+ on: (event: "data", listener: (chunk: string | Buffer) => void) => unknown;
364
+ }
294
365
  /** The small child-process surface the lane spawner needs. */
295
366
  export interface LaneChildProcess {
296
367
  pid?: number | undefined;
297
368
  stdin: {
298
369
  end: () => void;
299
370
  } | null | undefined;
371
+ /**
372
+ * Optional, so a test double that models no streams is unchanged. When present, the spawner
373
+ * subscribes for `onOutput` ALONGSIDE `execFile`'s own buffering listener — a second `data`
374
+ * listener never consumes what the first collects, so `LaneRunResult` is byte-identical.
375
+ */
376
+ stdout?: LaneOutputStream | null | undefined;
377
+ stderr?: LaneOutputStream | null | undefined;
300
378
  kill: () => boolean;
301
379
  }
302
380
  /** Spawn options common to the direct and Windows shell-fallback paths. */
@@ -356,12 +434,17 @@ export declare function relayLoopbackUrl(config: {
356
434
  port: number;
357
435
  }, path: string): string;
358
436
  export declare function readRelayAnnouncements(headers: Headers): RelayAnnouncements;
437
+ /** Raise the counter to at least `seq`; never lowers it. */
438
+ export declare function seedJobCounter(seq: number): void;
359
439
  /**
360
440
  * The job store.
361
441
  *
362
- * Deliberately IN MEMORY. This process is stdio-attached to one host session, so its children die
363
- * with it; a durable store would outlive the processes it describes and start reporting jobs whose
364
- * output no longer exists. `cancelAll` is wired to process exit so nothing is orphaned.
442
+ * IN MEMORY for what RUNS: this process is stdio-attached to one host session, so its children die
443
+ * with it, and a durable record of a running job would describe a process that no longer exists.
444
+ * Two things ARE durable, each in its own file: the set of jobs a restart killed (`job-journal.ts`,
445
+ * a row per running job, cleared when it ends) and every job's FINAL record once it is terminal
446
+ * (`job-archive.ts`, written eagerly at the terminal transition). `cancelAll` is wired to process
447
+ * exit so nothing is orphaned.
365
448
  */
366
449
  export declare class LaneJobStore {
367
450
  private readonly jobs;
@@ -377,7 +460,16 @@ export declare class LaneJobStore {
377
460
  */
378
461
  isAlive: (pid: number) => boolean;
379
462
  private readonly journal;
380
- constructor(journal?: JobJournal);
463
+ private readonly archive;
464
+ constructor(journal?: JobJournal, archive?: JobArchive);
465
+ /**
466
+ * The finished jobs a previous process archived, read back so `dispatch_status`/`dispatch_result`
467
+ * answer for them after a restart instead of `unknown jobId`. Marked `restored` so the rendering
468
+ * can say the report predates this process.
469
+ */
470
+ private restoreArchive;
471
+ /** Run the archive's pending write now — the shutdown seam, called from `McpDispatchServer.shutdown`. */
472
+ flush(): void;
381
473
  /**
382
474
  * The jobs a PREVIOUS process died holding. They are adopted as terminal `"killed"` rows rather
383
475
  * than dropped, because the measured cost of dropping them was ninety lane-minutes lost behind a
@@ -431,7 +523,17 @@ export declare class LaneJobStore {
431
523
  * other; without the guard a walk that advanced in the same tick would repoint a job the
432
524
  * operator had already stopped.
433
525
  */
434
- setCurrentLane(id: string, laneId: string, spec: string | undefined): void;
526
+ setCurrentLane(id: string, laneId: string, spec: string | undefined, expected?: LaneJob["expected"]): void;
527
+ /**
528
+ * A spawned attempt has started for `id`: from now until it settles, `noteOutput` counts what it
529
+ * writes and a poll can say how long it has been silent. Not called for an answer-mode HTTP call,
530
+ * which has no output stream — its absence is what keeps the figure honest there.
531
+ */
532
+ beginAttemptActivity(id: string, now: number): void;
533
+ /** The running attempt wrote `bytes` to `stream` at `now`. Ignored once the attempt is over. */
534
+ noteOutput(id: string, stream: "stdout" | "stderr", bytes: number, now: number): void;
535
+ /** Record the read-only tool binding the lane now running was given, so the reply can state it. */
536
+ noteReadOnly(id: string, laneId: string, binding: string): void;
435
537
  /**
436
538
  * Append one tried lane to the walk's record. Appended for EVERY attempt, the winner included,
437
539
  * so the answer can say what it cost to get there — and so an abandoned lane leaves a trace,
@@ -452,6 +554,7 @@ export declare class LaneJobStore {
452
554
  noteWalkScope(id: string, scope: {
453
555
  enabled: boolean;
454
556
  lanesNotTried: number;
557
+ forced?: boolean;
455
558
  }): void;
456
559
  /**
457
560
  * A rung the walk SKIPPED for its `maxConcurrent` cap "counts as NOT TRIED" (the backlog item's
@@ -3,6 +3,7 @@ import { existsSync, statSync } from "node:fs";
3
3
  import { resolve as resolvePath } from "node:path";
4
4
  import { quoteCmdArg } from "../lane-probe.js";
5
5
  import { nullJobJournal } from "./job-journal.js";
6
+ import { jobSeqOf, nullJobArchive } from "./job-archive.js";
6
7
  import { classifyLaneProbeOutput } from "../lane-quota-probe.js";
7
8
  import { laneOfRung } from "../lane-manifest.js";
8
9
  export const DEPTH_ENV = "LLM_RELAY_DISPATCH_DEPTH";
@@ -147,6 +148,29 @@ export function terminateProcessTree(pid, platform = process.platform) {
147
148
  }
148
149
  }
149
150
  }
151
+ function observeOutput(child, onOutput) {
152
+ if (!onOutput)
153
+ return;
154
+ const size = (chunk) => (typeof chunk === "string" ? Buffer.byteLength(chunk) : chunk.length);
155
+ const watch = (stream) => {
156
+ const s = child[stream];
157
+ if (!s)
158
+ return;
159
+ try {
160
+ s.on("data", (chunk) => {
161
+ try {
162
+ onOutput({ stream, bytes: size(chunk) });
163
+ }
164
+ catch {
165
+ }
166
+ });
167
+ }
168
+ catch {
169
+ }
170
+ };
171
+ watch("stdout");
172
+ watch("stderr");
173
+ }
150
174
  const nodeProcessApi = {
151
175
  platform: process.platform,
152
176
  execFile: (command, args, opts, callback) => execFile(command, args, opts, callback),
@@ -200,11 +224,13 @@ export function createLaneSpawner(processApi, hostEnv = process.env) {
200
224
  });
201
225
  child = fallback;
202
226
  fallback.stdin?.end();
227
+ observeOutput(fallback, opts.onOutput);
203
228
  return;
204
229
  }
205
230
  settle(err, stdout ?? "", stderr ?? "");
206
231
  });
207
232
  child.stdin?.end();
233
+ observeOutput(child, opts.onOutput);
208
234
  });
209
235
  return {
210
236
  result,
@@ -266,6 +292,10 @@ function nextJobId() {
266
292
  jobCounter += 1;
267
293
  return `job-${String(jobCounter).padStart(4, "0")}`;
268
294
  }
295
+ export function seedJobCounter(seq) {
296
+ if (Number.isSafeInteger(seq) && seq > jobCounter)
297
+ jobCounter = seq;
298
+ }
269
299
  export class LaneJobStore {
270
300
  jobs = new Map();
271
301
  kills = new Map();
@@ -280,15 +310,36 @@ export class LaneJobStore {
280
310
  }
281
311
  };
282
312
  journal;
283
- constructor(journal = nullJobJournal) {
313
+ archive;
314
+ constructor(journal = nullJobJournal, archive = nullJobArchive) {
284
315
  this.journal = journal;
316
+ this.archive = archive;
317
+ this.restoreArchive();
285
318
  this.adoptOrphans();
286
319
  }
320
+ restoreArchive() {
321
+ const { jobs, lastSeq } = this.archive.restore();
322
+ seedJobCounter(lastSeq);
323
+ for (const row of jobs) {
324
+ if (this.jobs.has(row.id))
325
+ continue;
326
+ this.jobs.set(row.id, { ...row, restored: true });
327
+ const seq = jobSeqOf(row.id);
328
+ if (seq !== null)
329
+ seedJobCounter(seq);
330
+ }
331
+ }
332
+ flush() {
333
+ this.archive.flush();
334
+ }
287
335
  adoptOrphans() {
288
336
  for (const row of this.journal.orphans()) {
289
337
  if (this.jobs.has(row.jobId))
290
338
  continue;
291
- this.jobs.set(row.jobId, {
339
+ const seq = jobSeqOf(row.jobId);
340
+ if (seq !== null)
341
+ seedJobCounter(seq);
342
+ const killed = {
292
343
  id: row.jobId,
293
344
  status: "killed",
294
345
  laneId: row.laneId,
@@ -305,7 +356,9 @@ export class LaneJobStore {
305
356
  "directory for partial files before re-dispatching.",
306
357
  attempts: [],
307
358
  process: { pids: [], survivors: [], terminated: false },
308
- });
359
+ };
360
+ this.jobs.set(row.jobId, killed);
361
+ this.archive.record(killed);
309
362
  }
310
363
  }
311
364
  create(laneId, spec, cwd, dispatchSource) {
@@ -326,6 +379,9 @@ export class LaneJobStore {
326
379
  ...(dispatchSource !== undefined ? { dispatchSource } : {}),
327
380
  };
328
381
  this.jobs.set(job.id, job);
382
+ const seq = jobSeqOf(job.id);
383
+ if (seq !== null)
384
+ this.archive.noteSeq(seq);
329
385
  this.journal.note({
330
386
  jobId: job.id,
331
387
  laneId: job.laneId,
@@ -352,9 +408,11 @@ export class LaneJobStore {
352
408
  this.journal.clear(id);
353
409
  if (!job)
354
410
  return;
411
+ delete job.activity;
355
412
  const pids = readOwnedPids(handle);
356
413
  if (kill === undefined) {
357
414
  job.process = { pids, survivors: [], terminated: false };
415
+ this.archive.record(job);
358
416
  return;
359
417
  }
360
418
  try {
@@ -363,6 +421,7 @@ export class LaneJobStore {
363
421
  catch {
364
422
  }
365
423
  job.process = { pids, survivors: pids.filter((pid) => this.isAlive(pid)), terminated: true };
424
+ this.archive.record(job);
366
425
  }
367
426
  ownedProcesses() {
368
427
  const rows = [];
@@ -378,12 +437,40 @@ export class LaneJobStore {
378
437
  }
379
438
  return rows;
380
439
  }
381
- setCurrentLane(id, laneId, spec) {
440
+ setCurrentLane(id, laneId, spec, expected) {
382
441
  const job = this.jobs.get(id);
383
442
  if (!job || job.status !== "running")
384
443
  return;
385
444
  job.laneId = laneId;
386
445
  job.spec = spec;
446
+ if (expected === undefined)
447
+ delete job.expected;
448
+ else
449
+ job.expected = expected;
450
+ delete job.activity;
451
+ delete job.readOnly;
452
+ }
453
+ beginAttemptActivity(id, now) {
454
+ const job = this.jobs.get(id);
455
+ if (!job || job.status !== "running")
456
+ return;
457
+ job.activity = { attemptStartedAt: now, lastOutputAt: null, stdoutBytes: 0, stderrBytes: 0 };
458
+ }
459
+ noteOutput(id, stream, bytes, now) {
460
+ const activity = this.jobs.get(id)?.activity;
461
+ if (!activity || !Number.isFinite(bytes) || bytes <= 0)
462
+ return;
463
+ activity.lastOutputAt = now;
464
+ if (stream === "stdout")
465
+ activity.stdoutBytes += bytes;
466
+ else
467
+ activity.stderrBytes += bytes;
468
+ }
469
+ noteReadOnly(id, laneId, binding) {
470
+ const job = this.jobs.get(id);
471
+ if (!job || job.status !== "running")
472
+ return;
473
+ job.readOnly = { laneId, binding };
387
474
  }
388
475
  recordAttempt(id, attempt) {
389
476
  this.jobs.get(id)?.attempts.push(attempt);
@@ -395,6 +482,8 @@ export class LaneJobStore {
395
482
  job.walkEnabled = scope.enabled;
396
483
  if (scope.lanesNotTried > 0)
397
484
  job.lanesNotTried = scope.lanesNotTried;
485
+ if (scope.forced === true)
486
+ job.forcedLane = true;
398
487
  }
399
488
  noteSkippedLane(id) {
400
489
  const job = this.jobs.get(id);
@@ -1 +1 @@
1
- {"version":3,"file":"lane-runner.js","sourceRoot":"","sources":["../../src/mcp/lane-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lane-runner.js","sourceRoot":"","sources":["../../src/mcp/lane-runner.ts"],"names":[],"mappings":"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"}
@@ -31,3 +31,49 @@ export type ReadOnlyVerdict = {
31
31
  export declare function readOnlyVerdict(req: ReadOnlyRequest): ReadOnlyVerdict;
32
32
  /** Resolve the directory a dispatch will actually run in: the caller's `cwd`, else the default. */
33
33
  export declare function resolveReadOnlyCwd(cwd: string | undefined, fallback?: string): string;
34
+ /** A lane invocation as `dispatch.ts` renders it and `lane-runner.ts` spawns it. */
35
+ export interface LaneInvocation {
36
+ command: string;
37
+ args: string[];
38
+ env?: Record<string, string | null>;
39
+ }
40
+ /**
41
+ * Claude Code's read-only built-in tools. `Task`/`Agent` are excluded on purpose: a subagent is
42
+ * another tool loop, and confining the parent says nothing about it. `WebFetch`/`WebSearch` read
43
+ * the network, never the tree.
44
+ */
45
+ export declare const CLAUDE_READ_ONLY_TOOLS: readonly ["Read", "Glob", "Grep", "WebFetch", "WebSearch"];
46
+ /**
47
+ * The tools a read-only Claude lane is DENIED by name, over and above being absent from the allow
48
+ * list. Belt and braces: `--tools` removes them from the model's view, `--permission-mode dontAsk`
49
+ * auto-denies anything not allowed (MCP tools included), and this names the writers explicitly so
50
+ * a future built-in that slips into the default set is still refused. Every first-party mutation
51
+ * tool from `DEFAULT_DESTRUCTIVE` (`config.ts`) is here.
52
+ */
53
+ export declare const CLAUDE_READ_ONLY_DENIED: readonly ["Bash", "BashOutput", "KillShell", "Edit", "Write", "MultiEdit", "NotebookEdit", "Task", "Agent"];
54
+ export type ReadOnlyInvokeVerdict = {
55
+ ok: true;
56
+ invoke: LaneInvocation;
57
+ binding: string;
58
+ } | {
59
+ ok: false;
60
+ reason: string;
61
+ };
62
+ /**
63
+ * Rewrite a lane invocation so the lane's OWN CLI runs it read-only, or say why that cannot be
64
+ * done for this lane kind. Pure over the invocation; never spawns, never reads config.
65
+ *
66
+ * - `claude`: the harness's documented flags. `--permission-mode dontAsk` (CLAUDE.md: "`dontAsk` for
67
+ * a read-only [lane] that fails loudly instead of silently" — NEVER `plan`, which a headless
68
+ * `claude -p` can never leave), `--tools` + `--allowedTools` narrowed to `CLAUDE_READ_ONLY_TOOLS`,
69
+ * and `--disallowedTools` naming the writers. Any permission flag the template carried is
70
+ * REPLACED, so `acceptEdits` and a wide allow list cannot survive beside the read-only set.
71
+ * - `codex`: `--sandbox read-only`, Codex's documented read-only policy, with `--full-auto` and
72
+ * every bypass flag stripped. Enforcement is Codex's own sandbox; the relay states the policy.
73
+ * - `opencode`: refused. Its tool permissions live per agent in its own `opencode.json`, which the
74
+ * relay neither owns nor can verify from a command line.
75
+ * - `agy`: refused. Its permission flags are unverified here, and a denied tool discards its whole
76
+ * answer, so a bound AGY lane would return nothing where a claude lane returns a review.
77
+ * - anything else: refused — an unrecognised binary is the unknown case, and unknown never claims.
78
+ */
79
+ export declare function readOnlyInvoke(invoke: LaneInvocation): ReadOnlyInvokeVerdict;
@@ -1,4 +1,5 @@
1
1
  import { resolve as resolvePath } from "node:path";
2
+ import { laneOfRung } from "../lane-manifest.js";
2
3
  export function readOnlyVerdict(req) {
3
4
  if (!req.readOnly)
4
5
  return { ok: true, cwd: resolveReadOnlyCwd(req.cwd) };
@@ -33,4 +34,122 @@ function normalize(p) {
33
34
  unified = unified.slice(0, end);
34
35
  return process.platform === "win32" ? unified.toLowerCase() : unified;
35
36
  }
37
+ export const CLAUDE_READ_ONLY_TOOLS = ["Read", "Glob", "Grep", "WebFetch", "WebSearch"];
38
+ export const CLAUDE_READ_ONLY_DENIED = [
39
+ "Bash",
40
+ "BashOutput",
41
+ "KillShell",
42
+ "Edit",
43
+ "Write",
44
+ "MultiEdit",
45
+ "NotebookEdit",
46
+ "Task",
47
+ "Agent",
48
+ ];
49
+ const CLAUDE_PERMISSION_FLAGS = [
50
+ "--permission-mode",
51
+ "--allowedTools",
52
+ "--allowed-tools",
53
+ "--disallowedTools",
54
+ "--disallowed-tools",
55
+ "--tools",
56
+ "--dangerously-skip-permissions",
57
+ ];
58
+ const CODEX_VALUED_FLAGS = ["--sandbox", "-s"];
59
+ const CODEX_BARE_FLAGS = ["--full-auto", "--dangerously-bypass-approvals-and-sandbox", "--yolo"];
60
+ export function readOnlyInvoke(invoke) {
61
+ const kind = laneToolOf(invoke);
62
+ switch (kind) {
63
+ case "claude":
64
+ return readOnlyClaude(invoke);
65
+ case "codex":
66
+ return readOnlyCodex(invoke);
67
+ case "opencode":
68
+ return {
69
+ ok: false,
70
+ reason: "readOnly cannot bind an OpenCode lane's tools: OpenCode sets tool permissions per agent in " +
71
+ "its own opencode.json, and the relay has no command-line way to restrict them",
72
+ };
73
+ case "agy":
74
+ return {
75
+ ok: false,
76
+ reason: "readOnly cannot bind an AGY lane's tools: the relay has no verified command-line way to " +
77
+ "restrict them, and a denied AGY tool discards the whole answer",
78
+ };
79
+ case null:
80
+ return {
81
+ ok: false,
82
+ reason: `readOnly cannot bind this lane's tools: "${invoke.command}" is not a lane binary the relay knows how to restrict`,
83
+ };
84
+ default: {
85
+ const _never = kind;
86
+ return _never;
87
+ }
88
+ }
89
+ }
90
+ function laneToolOf(invoke) {
91
+ const known = laneOfRung(invoke.command, invoke.args)?.lane;
92
+ if (known === "agy" || known === "codex")
93
+ return known;
94
+ for (const token of [invoke.command, ...invoke.args]) {
95
+ const base = (token.split(/[\\/]/).pop() ?? token).toLowerCase().replace(/\.(exe|cmd|bat)$/, "");
96
+ if (base === "claude")
97
+ return "claude";
98
+ if (base === "opencode")
99
+ return "opencode";
100
+ }
101
+ return null;
102
+ }
103
+ function withoutValuedFlag(args, flag) {
104
+ const out = [];
105
+ for (let i = 0; i < args.length; i++) {
106
+ const a = args[i];
107
+ if (a === flag) {
108
+ i += 1;
109
+ continue;
110
+ }
111
+ if (a.startsWith(`${flag}=`))
112
+ continue;
113
+ out.push(a);
114
+ }
115
+ return out;
116
+ }
117
+ function readOnlyClaude(invoke) {
118
+ let args = invoke.args;
119
+ for (const flag of CLAUDE_PERMISSION_FLAGS) {
120
+ args = flag === "--dangerously-skip-permissions" ? args.filter((a) => a !== flag) : withoutValuedFlag(args, flag);
121
+ }
122
+ const allowed = CLAUDE_READ_ONLY_TOOLS.join(",");
123
+ const denied = CLAUDE_READ_ONLY_DENIED.join(",");
124
+ const bound = [
125
+ ...args,
126
+ "--permission-mode",
127
+ "dontAsk",
128
+ "--tools",
129
+ allowed,
130
+ "--allowedTools",
131
+ allowed,
132
+ "--disallowedTools",
133
+ denied,
134
+ ];
135
+ return {
136
+ ok: true,
137
+ invoke: { ...invoke, args: bound },
138
+ binding: `claude --permission-mode dontAsk --tools ${allowed} (denied: ${denied})`,
139
+ };
140
+ }
141
+ function readOnlyCodex(invoke) {
142
+ let args = invoke.args;
143
+ for (const flag of CODEX_VALUED_FLAGS)
144
+ args = withoutValuedFlag(args, flag);
145
+ args = args.filter((a) => !CODEX_BARE_FLAGS.includes(a));
146
+ const at = args.indexOf("exec");
147
+ const insertAt = at === -1 ? 0 : at + 1;
148
+ const bound = [...args.slice(0, insertAt), "--sandbox", "read-only", ...args.slice(insertAt)];
149
+ return {
150
+ ok: true,
151
+ invoke: { ...invoke, args: bound },
152
+ binding: "codex --sandbox read-only (enforced by Codex's own sandbox policy)",
153
+ };
154
+ }
36
155
  //# sourceMappingURL=readonly-boundary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readonly-boundary.js","sourceRoot":"","sources":["../../src/mcp/readonly-boundary.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AA4BnD,MAAM,UAAU,eAAe,CAAC,GAAoB;IAClD,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;IACzE,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;IACjF,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC7D,OAAO;QACL,EAAE,EAAE,KAAK;QACT,OAAO,EACL,mFAAmF;YACnF,IAAI,GAAG,sCAAsC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,wBAAwB;YAChG,2FAA2F;YAC3F,4FAA4F;YAC5F,8FAA8F;YAC9F,2EAA2E;KAC9E,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,kBAAkB,CAAC,GAAuB,EAAE,QAAiB;IAC3E,OAAO,WAAW,CAAC,GAAG,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACvD,CAAC;AAMD,SAAS,QAAQ,CAAC,SAAiB,EAAE,IAAY;IAC/C,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAGD,SAAS,SAAS,CAAC,CAAS;IAC1B,IAAI,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IACzB,OAAO,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,GAAG,IAAI,CAAC,CAAC;IACrD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"readonly-boundary.js","sourceRoot":"","sources":["../../src/mcp/readonly-boundary.ts"],"names":[],"mappings":"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"}