llm-relay 0.68.7 → 0.69.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.d.ts +18 -1
- package/dist/accounting-store.js +130 -224
- package/dist/accounting-store.js.map +1 -1
- package/dist/backend.d.ts +11 -0
- package/dist/backend.js +7 -1
- package/dist/backend.js.map +1 -1
- package/dist/candidate-runner.d.ts +2 -2
- package/dist/candidate-runner.js +47 -21
- package/dist/candidate-runner.js.map +1 -1
- package/dist/cli.d.ts +15 -0
- package/dist/cli.js +77 -47
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -1
- package/dist/dispatch.d.ts +15 -0
- package/dist/dispatch.js +20 -0
- package/dist/dispatch.js.map +1 -1
- package/dist/dynamic-pools.d.ts +1 -1
- package/dist/dynamic-pools.js +2 -2
- package/dist/dynamic-pools.js.map +1 -1
- package/dist/mcp/lane-runner.d.ts +102 -2
- package/dist/mcp/lane-runner.js +49 -6
- package/dist/mcp/lane-runner.js.map +1 -1
- package/dist/mcp/server.d.ts +37 -1
- package/dist/mcp/server.js +183 -14
- package/dist/mcp/server.js.map +1 -1
- package/dist/routes/admin.js +2 -1
- package/dist/routes/admin.js.map +1 -1
- package/dist/routes/messages.d.ts +11 -0
- package/dist/routes/messages.js +7 -25
- package/dist/routes/messages.js.map +1 -1
- package/dist/routes/openai-front.js +5 -23
- package/dist/routes/openai-front.js.map +1 -1
- package/dist/server.d.ts +24 -1
- package/dist/server.js +31 -17
- package/dist/server.js.map +1 -1
- package/dist/setup-claude.d.ts +22 -0
- package/dist/setup-claude.js +91 -5
- package/dist/setup-claude.js.map +1 -1
- package/dist/stream-pipeline.d.ts +11 -0
- package/dist/stream-pipeline.js +2 -11
- package/dist/stream-pipeline.js.map +1 -1
- package/dist/target-facts.d.ts +10 -0
- package/dist/target-facts.js +11 -0
- package/dist/target-facts.js.map +1 -1
- package/package.json +1 -1
- package/skills/llm-relay/SKILL.md +13 -0
- package/skills/llm-relay/references/dispatch-lanes.md +26 -0
- package/dist/accounting-store-io.d.ts +0 -132
- package/dist/accounting-store-io.js +0 -1087
- package/dist/accounting-store-io.js.map +0 -1
|
@@ -19,7 +19,36 @@ export declare const MAX_OUTPUT_BYTES: number;
|
|
|
19
19
|
export declare const DEFAULT_WAIT_MS = 60000;
|
|
20
20
|
/** Ceiling on one lane run. agy's own `--print-timeout` convention here is 30 minutes. */
|
|
21
21
|
export declare const DEFAULT_LANE_TIMEOUT_MS: number;
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* `"timed_out"` is its own terminal status, DISTINCT from `"failed"` (2026-09-03,
|
|
24
|
+
* C:\Code\docs\backlog.md "A bounded llm-relay design dispatch can consume its full 1,200-second
|
|
25
|
+
* wait and return no result"). A killed-by-timeout run used to fall into the same bucket as an
|
|
26
|
+
* ordinary nonzero exit, so a caller reading `status` could not tell "the lane ran and failed"
|
|
27
|
+
* from "the lane never finished" — the two call for different next actions (retry a different
|
|
28
|
+
* lane vs. maybe poll a little longer next time). `complete()` sets it whenever the run result
|
|
29
|
+
* says `timedOut`, ahead of the exit-code/semantic-failure check.
|
|
30
|
+
*/
|
|
31
|
+
export type JobStatus = "running" | "completed" | "failed" | "cancelled" | "timed_out";
|
|
32
|
+
/**
|
|
33
|
+
* The four states `LaneJobStore.complete()`/`cancel()` can put a job into — `"running"` is the
|
|
34
|
+
* only non-terminal member of `JobStatus`. Exported so a rendering test can iterate every
|
|
35
|
+
* terminal status the store actually knows, rather than hand-copying the list a second time.
|
|
36
|
+
*/
|
|
37
|
+
export declare const TERMINAL_JOB_STATUSES: readonly ["completed", "failed", "cancelled", "timed_out"];
|
|
38
|
+
/**
|
|
39
|
+
* The relay's own response headers that announce what happened during an answer-mode HTTP call —
|
|
40
|
+
* the direct-fetch sibling of the provenance every spawned-lane answer already carries (lane id,
|
|
41
|
+
* spec, elapsed). Only these five, allow-list style: never the whole `Headers` object, and NEVER
|
|
42
|
+
* read at all on a non-2xx response (a failure carries status + a bounded body excerpt, not
|
|
43
|
+
* headers — see `runAnswerFetch`).
|
|
44
|
+
*/
|
|
45
|
+
export interface RelayAnnouncements {
|
|
46
|
+
servedBy?: string;
|
|
47
|
+
poolAttempts?: string;
|
|
48
|
+
hedged?: string;
|
|
49
|
+
latencyDemoted?: string;
|
|
50
|
+
degraded?: string;
|
|
51
|
+
}
|
|
23
52
|
export interface LaneJob {
|
|
24
53
|
id: string;
|
|
25
54
|
status: JobStatus;
|
|
@@ -36,6 +65,8 @@ export interface LaneJob {
|
|
|
36
65
|
cwd: string;
|
|
37
66
|
/** Set only when the run failed before or during the spawn. */
|
|
38
67
|
error: string | undefined;
|
|
68
|
+
/** Set only for an answer-mode job whose relay response reached the 2xx branch. */
|
|
69
|
+
relay?: RelayAnnouncements;
|
|
39
70
|
}
|
|
40
71
|
/** What a completed run looks like to a caller. */
|
|
41
72
|
export interface LaneRunResult {
|
|
@@ -44,6 +75,27 @@ export interface LaneRunResult {
|
|
|
44
75
|
stderr: string;
|
|
45
76
|
timedOut: boolean;
|
|
46
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* A lane can exit 0 (agent mode) or answer HTTP 200 (answer mode) with text that is
|
|
80
|
+
* syntactically nonempty but carries nothing usable — a lone `#`, a bare `---`, a block of
|
|
81
|
+
* `***`. The pre-existing check caught only the LITERALLY empty string, which a scaffold-only
|
|
82
|
+
* fragment slips past (C:\Code\docs\backlog.md: a 652-second review returned only `#`).
|
|
83
|
+
*
|
|
84
|
+
* Deliberately STRUCTURAL, not semantic: it strips whitespace, punctuation and Markdown
|
|
85
|
+
* scaffolding characters and asks only whether anything ALPHANUMERIC remains — it does not judge
|
|
86
|
+
* whether the content actually answers the task, which would cross this repo's own repair
|
|
87
|
+
* boundary ("routing comes from config and deterministic classification, never from an LLM's
|
|
88
|
+
* opinion inserted into the request path"). `isContentEmpty("Here is")` is `false`: a generic
|
|
89
|
+
* lead-in with nothing after it is a real judgement call this predicate refuses to make. `"OK"`
|
|
90
|
+
* and `"42"` must both read as content, and do.
|
|
91
|
+
*/
|
|
92
|
+
export declare function isContentEmpty(text: string): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* The distinct failure reason both dispatch modes report for a content-empty result — a single
|
|
95
|
+
* string constant so `describeJob`'s `error:` line and any caller-side matching agree on the
|
|
96
|
+
* literal token, rather than each spelling it out separately.
|
|
97
|
+
*/
|
|
98
|
+
export declare const EMPTY_OUTPUT_REASON = "empty-output: the lane's output has no usable content after stripping formatting";
|
|
47
99
|
export interface DispatchedQuotaReport {
|
|
48
100
|
laneId: string;
|
|
49
101
|
tier: string | undefined;
|
|
@@ -119,6 +171,34 @@ export interface LaneProcessApi {
|
|
|
119
171
|
*/
|
|
120
172
|
export declare function createLaneSpawner(processApi: LaneProcessApi, hostEnv?: NodeJS.ProcessEnv): LaneSpawner;
|
|
121
173
|
export declare const defaultLaneSpawner: LaneSpawner;
|
|
174
|
+
/**
|
|
175
|
+
* The answer-mode HTTP seam — a direct POST to the running relay's own `/v1/messages`,
|
|
176
|
+
* bypassing a spawned harness entirely for a `relay`-kind rung. Typed as `typeof fetch` (this
|
|
177
|
+
* repo's established convention — `backend.ts`, `catalog.ts`, `key-checker.ts`, `reshaper.ts` all
|
|
178
|
+
* inject the real global `fetch` this same way), so a test can hand it a fake built from the
|
|
179
|
+
* real `Response` constructor exactly as those modules' tests already do.
|
|
180
|
+
*
|
|
181
|
+
* Injected for the same reason `LaneSpawner` is, and guarded the same way: this process is
|
|
182
|
+
* launched by a host that may be running on a machine whose OWN `llm-relay` daemon is live on
|
|
183
|
+
* its default port, so an accidentally-unmocked call here would not spend a lane's OWN quota (the
|
|
184
|
+
* spawner's concern) but would reach a REAL locally-running relay and spend a REAL provider's.
|
|
185
|
+
* `createAnswerFetch` copies the `LaneSpawner` guard pattern exactly: under vitest, refuse unless
|
|
186
|
+
* the caller injects its own seam.
|
|
187
|
+
*/
|
|
188
|
+
export type AnswerFetch = typeof fetch;
|
|
189
|
+
export declare function createAnswerFetch(hostEnv?: NodeJS.ProcessEnv): AnswerFetch;
|
|
190
|
+
export declare const defaultAnswerFetch: AnswerFetch;
|
|
191
|
+
/**
|
|
192
|
+
* Where this relay itself is listening, for the answer-mode HTTP call. Deliberately a tiny local
|
|
193
|
+
* copy of `cli.ts`'s `proxyUrl` rather than an import of it: `cli.ts` already imports
|
|
194
|
+
* `McpDispatchServer` from this module's sibling, and importing back would create the first
|
|
195
|
+
* import cycle between `cli.ts` and `mcp/`, for two lines neither side is likely to drift on.
|
|
196
|
+
*/
|
|
197
|
+
export declare function relayLoopbackUrl(config: {
|
|
198
|
+
host: string;
|
|
199
|
+
port: number;
|
|
200
|
+
}, path: string): string;
|
|
201
|
+
export declare function readRelayAnnouncements(headers: Headers): RelayAnnouncements;
|
|
122
202
|
/**
|
|
123
203
|
* The job store.
|
|
124
204
|
*
|
|
@@ -133,7 +213,17 @@ export declare class LaneJobStore {
|
|
|
133
213
|
registerKill(id: string, kill: () => void): void;
|
|
134
214
|
get(id: string): LaneJob | undefined;
|
|
135
215
|
list(): LaneJob[];
|
|
136
|
-
|
|
216
|
+
/**
|
|
217
|
+
* `relay` carries an answer-mode job's captured provenance headers — absent for every
|
|
218
|
+
* agent-mode job, since those never touch HTTP directly.
|
|
219
|
+
*
|
|
220
|
+
* ⚠ `run.timedOut` is checked BEFORE the exit-code/semantic-failure branch and wins outright:
|
|
221
|
+
* a killed-by-timeout run gets `status: "timed_out"`, never `"failed"`, regardless of what
|
|
222
|
+
* `semanticFailure` a caller also passed (agent-mode quota classification already refuses to
|
|
223
|
+
* run on a timed-out result, so in practice this only ever arbitrates against the empty-output
|
|
224
|
+
* check — and a timeout is the more informative, more specific claim of the two).
|
|
225
|
+
*/
|
|
226
|
+
complete(id: string, run: LaneRunResult, semanticFailure?: string, relay?: RelayAnnouncements): void;
|
|
137
227
|
fail(id: string, error: string): void;
|
|
138
228
|
cancel(id: string): boolean;
|
|
139
229
|
cancelAll(): void;
|
|
@@ -154,6 +244,16 @@ export interface CwdCheck {
|
|
|
154
244
|
* the check is existence only — the caller is already a trusted agent on the operator's own
|
|
155
245
|
* machine, and refusing by default would make the tool useless for its stated purpose. The bound
|
|
156
246
|
* is offered, not imposed; that is the operator's call to make in config, not this file's.
|
|
247
|
+
*
|
|
248
|
+
* ⚠ **The containment test resolves BOTH sides with `path.resolve` before comparing** (closed
|
|
249
|
+
* 2026-09-03, docs/audit-findings-2026-09-03.md finding 1 / DR-002). Without it a literal `..`
|
|
250
|
+
* segment in `cwd` — a raw string a caller sends verbatim, never normalized — satisfied a bare
|
|
251
|
+
* `startsWith` prefix test while `existsSync`/`statSync` above had already resolved `..` at the
|
|
252
|
+
* OS level against the REAL, escaped directory: `allowedRoots: ["C:/allowed"]` admitted
|
|
253
|
+
* `C:/allowed/../other`. `path.resolve` collapses `..`/`.` the same way the OS already does for
|
|
254
|
+
* the existence check, so the two agree; it is a no-op on an already-clean absolute path, so the
|
|
255
|
+
* common case is unaffected. `normalizePath`'s trailing-separator LOOP is untouched — resolving
|
|
256
|
+
* first does not remove the need for it (`path.resolve` does not fold case on win32).
|
|
157
257
|
*/
|
|
158
258
|
export declare function checkCwd(cwd: string, allowedRoots: readonly string[] | undefined): CwdCheck;
|
|
159
259
|
/**
|
package/dist/mcp/lane-runner.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { exec, execFile, execSync } from "node:child_process";
|
|
2
2
|
import { existsSync, statSync } from "node:fs";
|
|
3
|
+
import { resolve as resolvePath } from "node:path";
|
|
3
4
|
import { quoteCmdArg } from "../lane-probe.js";
|
|
4
5
|
import { classifyLaneProbeOutput } from "../lane-quota-probe.js";
|
|
5
6
|
import { laneOfRung } from "../lane-manifest.js";
|
|
@@ -8,6 +9,11 @@ export const DEFAULT_MAX_DEPTH = 3;
|
|
|
8
9
|
export const MAX_OUTPUT_BYTES = 16 * 1024 * 1024;
|
|
9
10
|
export const DEFAULT_WAIT_MS = 60_000;
|
|
10
11
|
export const DEFAULT_LANE_TIMEOUT_MS = 30 * 60 * 1000;
|
|
12
|
+
export const TERMINAL_JOB_STATUSES = ["completed", "failed", "cancelled", "timed_out"];
|
|
13
|
+
export function isContentEmpty(text) {
|
|
14
|
+
return text.replace(/[\s#*_\-|>`~=]/g, "").length === 0;
|
|
15
|
+
}
|
|
16
|
+
export const EMPTY_OUTPUT_REASON = "empty-output: the lane's output has no usable content after stripping formatting";
|
|
11
17
|
export function classifyDispatchedResult(input) {
|
|
12
18
|
const { result } = input;
|
|
13
19
|
if (result.timedOut)
|
|
@@ -175,6 +181,35 @@ export function createLaneSpawner(processApi, hostEnv = process.env) {
|
|
|
175
181
|
};
|
|
176
182
|
}
|
|
177
183
|
export const defaultLaneSpawner = createLaneSpawner(nodeProcessApi);
|
|
184
|
+
export function createAnswerFetch(hostEnv = process.env) {
|
|
185
|
+
if (hostEnv["VITEST"]) {
|
|
186
|
+
return (async () => {
|
|
187
|
+
throw new Error("answer-mode HTTP calls are disabled under vitest — inject deps.fetch");
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
return fetch;
|
|
191
|
+
}
|
|
192
|
+
export const defaultAnswerFetch = createAnswerFetch();
|
|
193
|
+
export function relayLoopbackUrl(config, path) {
|
|
194
|
+
const host = config.host.includes(":") ? `[${config.host}]` : config.host;
|
|
195
|
+
return `http://${host}:${config.port}${path}`;
|
|
196
|
+
}
|
|
197
|
+
const RELAY_ANNOUNCEMENT_HEADERS = {
|
|
198
|
+
servedBy: "x-llm-relay-served-by",
|
|
199
|
+
poolAttempts: "x-llm-relay-pool-attempts",
|
|
200
|
+
hedged: "x-llm-relay-hedged",
|
|
201
|
+
latencyDemoted: "x-llm-relay-latency-demoted",
|
|
202
|
+
degraded: "x-llm-relay-degraded",
|
|
203
|
+
};
|
|
204
|
+
export function readRelayAnnouncements(headers) {
|
|
205
|
+
const out = {};
|
|
206
|
+
for (const [key, header] of Object.entries(RELAY_ANNOUNCEMENT_HEADERS)) {
|
|
207
|
+
const value = headers.get(header);
|
|
208
|
+
if (value)
|
|
209
|
+
out[key] = value;
|
|
210
|
+
}
|
|
211
|
+
return out;
|
|
212
|
+
}
|
|
178
213
|
let jobCounter = 0;
|
|
179
214
|
function nextJobId() {
|
|
180
215
|
jobCounter += 1;
|
|
@@ -210,7 +245,7 @@ export class LaneJobStore {
|
|
|
210
245
|
list() {
|
|
211
246
|
return [...this.jobs.values()].sort((a, b) => b.startedAt - a.startedAt);
|
|
212
247
|
}
|
|
213
|
-
complete(id, run, semanticFailure) {
|
|
248
|
+
complete(id, run, semanticFailure, relay) {
|
|
214
249
|
const job = this.jobs.get(id);
|
|
215
250
|
if (!job)
|
|
216
251
|
return;
|
|
@@ -221,9 +256,17 @@ export class LaneJobStore {
|
|
|
221
256
|
job.stderr = run.stderr;
|
|
222
257
|
job.timedOut = run.timedOut;
|
|
223
258
|
job.endedAt = Date.now();
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
259
|
+
if (relay !== undefined)
|
|
260
|
+
job.relay = relay;
|
|
261
|
+
if (run.timedOut) {
|
|
262
|
+
job.status = "timed_out";
|
|
263
|
+
job.error = semanticFailure ?? "the lane exceeded its configured timeout and was stopped before it finished";
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
job.status = run.code === 0 && semanticFailure === undefined ? "completed" : "failed";
|
|
267
|
+
if (semanticFailure !== undefined)
|
|
268
|
+
job.error = semanticFailure;
|
|
269
|
+
}
|
|
227
270
|
this.kills.delete(id);
|
|
228
271
|
}
|
|
229
272
|
fail(id, error) {
|
|
@@ -266,9 +309,9 @@ export function checkCwd(cwd, allowedRoots) {
|
|
|
266
309
|
return { ok: false, reason: `not a directory: ${cwd}` };
|
|
267
310
|
if (!allowedRoots || allowedRoots.length === 0)
|
|
268
311
|
return { ok: true };
|
|
269
|
-
const normalized = normalizePath(cwd);
|
|
312
|
+
const normalized = normalizePath(resolvePath(cwd));
|
|
270
313
|
const permitted = allowedRoots.some((root) => {
|
|
271
|
-
const r = normalizePath(root);
|
|
314
|
+
const r = normalizePath(resolvePath(root));
|
|
272
315
|
return normalized === r || normalized.startsWith(r.endsWith("/") ? r : `${r}/`);
|
|
273
316
|
});
|
|
274
317
|
if (permitted)
|
|
@@ -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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"}
|
package/dist/mcp/server.d.ts
CHANGED
|
@@ -22,8 +22,10 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import type { Config } from "../config.js";
|
|
24
24
|
import type { DispatchView } from "../dispatch.js";
|
|
25
|
-
import { type LaneSpawner, type DispatchedQuotaReport } from "./lane-runner.js";
|
|
25
|
+
import { type AnswerFetch, type LaneSpawner, type DispatchedQuotaReport } from "./lane-runner.js";
|
|
26
26
|
export declare const MCP_SERVER_NAME = "llm-relay";
|
|
27
|
+
/** `max_tokens` for an answer-mode call when the caller names none. */
|
|
28
|
+
export declare const DEFAULT_ANSWER_MAX_TOKENS = 4096;
|
|
27
29
|
/**
|
|
28
30
|
* How a dispatch view is obtained. Injected rather than imported so this module never decides
|
|
29
31
|
* whether to consult the running relay — the caller owns that, exactly as `buildDispatch` takes
|
|
@@ -38,6 +40,12 @@ export interface McpServerDeps {
|
|
|
38
40
|
config: Config;
|
|
39
41
|
buildView: DispatchViewBuilder;
|
|
40
42
|
spawn?: LaneSpawner;
|
|
43
|
+
/**
|
|
44
|
+
* Answer-mode's direct-HTTP seam — a POST to THIS relay's own `/v1/messages`, reading
|
|
45
|
+
* `config.host`/`.port`. Never the vendor egress fetches other modules inject; this is the one
|
|
46
|
+
* call answer mode makes.
|
|
47
|
+
*/
|
|
48
|
+
fetch?: AnswerFetch;
|
|
41
49
|
now?: () => number;
|
|
42
50
|
/** Default working directory for a lane when the caller names none. */
|
|
43
51
|
cwd?: () => string;
|
|
@@ -72,6 +80,7 @@ export declare class McpDispatchServer {
|
|
|
72
80
|
private readonly deps;
|
|
73
81
|
private readonly jobs;
|
|
74
82
|
private readonly spawn;
|
|
83
|
+
private readonly fetchImpl;
|
|
75
84
|
private readonly now;
|
|
76
85
|
private readonly cwd;
|
|
77
86
|
private readonly maxDepth;
|
|
@@ -91,4 +100,31 @@ export declare class McpDispatchServer {
|
|
|
91
100
|
private toolResult;
|
|
92
101
|
private toolCancel;
|
|
93
102
|
private toolDispatch;
|
|
103
|
+
/**
|
|
104
|
+
* Answer mode for a `relay`-kind rung: skip the harness, POST straight to this relay's own
|
|
105
|
+
* `/v1/messages`. `lane.spec` is the rung's own pool/model spec — the relay resolves it through
|
|
106
|
+
* the SAME failover walk any other client's request would get, so pool/failover/hedge behaviour
|
|
107
|
+
* is unchanged; this call merely avoids spawning a `claude -p` process to make it.
|
|
108
|
+
*
|
|
109
|
+
* ⚠ If `spec` resolves to the plain Anthropic passthrough, the dummy `x-api-key` this call sends
|
|
110
|
+
* fails there and the walk moves on to the next candidate — acceptable, since a pool answering
|
|
111
|
+
* from its own passthrough member was never the fast path this mode targets.
|
|
112
|
+
*/
|
|
113
|
+
private dispatchAnswer;
|
|
114
|
+
/**
|
|
115
|
+
* The one HTTP round trip answer mode makes. Never throws for an ordinary outcome — a non-2xx
|
|
116
|
+
* response, an unparseable body, or a timeout are all represented in the returned
|
|
117
|
+
* `LaneRunResult`, exactly as a spawned lane's own nonzero exit or timeout would be. Only a
|
|
118
|
+
* genuine transport error (the relay is not running, DNS failure, …) propagates, for the
|
|
119
|
+
* caller's `.catch()` to turn into `jobs.fail()` — the same shape a spawn that throws
|
|
120
|
+
* synchronously already produces.
|
|
121
|
+
*/
|
|
122
|
+
private runAnswerFetch;
|
|
123
|
+
/**
|
|
124
|
+
* Block for `waitMs`, then hand back a job handle. A fast lane therefore costs ONE call, and a
|
|
125
|
+
* slow one degrades to polling instead of hitting the client's tool timeout. Shared by both
|
|
126
|
+
* dispatch modes so there is exactly one wait/poll/render policy — the "two paths, one policy"
|
|
127
|
+
* shape this repo's own history warns against.
|
|
128
|
+
*/
|
|
129
|
+
private awaitOrPoll;
|
|
94
130
|
}
|