harness-dispatch 0.7.6 → 0.7.8

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/CHANGELOG.md CHANGED
@@ -6,6 +6,183 @@ pre-1.0, so minor versions can carry behaviour changes.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.7.8] — 2026-08-23
10
+
11
+ **Upgrade from 0.7.7.** Two of 0.7.7's five fixes were wrong, and one of them
12
+ re-opened a bug 0.7.6 had fixed.
13
+
14
+ ### Added
15
+
16
+ - Publishing now requires an acceptance record for the exact version being
17
+ released (`acceptance/<version>.md`), checked by the publish workflow.
18
+
19
+ Every regression this project has shipped was found by an independent
20
+ acceptance pass — 0.7.0's wrong apply base, 0.7.2's dropped deletions,
21
+ 0.7.3's path base, 0.7.6's two miscalibrated guards, 0.7.7's under-counted
22
+ escaping. Not one was missed. Every one was already on npm when the pass ran,
23
+ because publishing came first. The review was never the problem; the ordering
24
+ was, and it is mechanical now instead of remembered. A CONDITIONAL verdict
25
+ passes deliberately — see `acceptance/README.md` for why.
26
+
27
+ ### Fixed
28
+
29
+ - The command-line length check counts what cmd.exe actually costs.
30
+ cross-spawn prefixes `^` to every meta character for a cmd.exe target and its
31
+ class INCLUDES THE SPACE, which the previous hand-written model did not. Prose
32
+ therefore failed from about 6,600 characters and JSON from about 4,500, while
33
+ the guard did not fire until about 7,820 — so the raw
34
+ "The command line is too long." went on reaching callers, and because the
35
+ guard stayed silent the route was charged a call, a failure and a breaker
36
+ event for it. The class is now taken from cross-spawn rather than guessed at.
37
+ - The same check applies the cmd.exe budget to any target that is not `.exe` or
38
+ `.com`, which is what cross-spawn actually keys on. An extensionless shim or a
39
+ `.ps1` was given the four-times-larger CreateProcess budget.
40
+ - A model naming the FORCED route itself is dropped again. 0.7.6 dropped it,
41
+ 0.7.7 forwarded it, and Codex rejected `--model codex_cli` with a real failed
42
+ job and a breaker event. Over-specifying ("use codex_cli, with codex_cli") is
43
+ the one ambiguous case; a model that merely collides with some OTHER route's
44
+ id is still honoured, which is why one rule cannot cover both.
45
+ - `modelHintMatched` reports declared models only. It counted a route-NAME
46
+ match as a match, so the one signal the tool schema tells an agent to use for
47
+ self-correction — "true means the picked route actually declares this model" —
48
+ reported the opposite of the truth.
49
+ - The long-prompt check MEASURES the command line instead of estimating it.
50
+ Two releases running the escaping was hand-modelled and wrong in opposite
51
+ directions: 0.7.6 under-counted spaces, 0.7.7 then over-counted backslashes
52
+ and REFUSED an ~800-character band of prompts that ran fine on the Cursor
53
+ route the check exists for. It now replicates cross-spawn's own escaping and
54
+ measures the result, wrapper included, so the budget (8,180 of a measured
55
+ ceiling of 8,191) buys margin rather than paying for a wrong model. A test
56
+ pins it against cross-spawn's real output.
57
+ - A `node_modules/.bin/*.cmd` target is counted at its DOUBLE-escaped length,
58
+ which is what cross-spawn does to npm shims. Such a target failed from about
59
+ 5,300 characters while the check said 6,400.
60
+ - `routing.modelHintDropped` tells you when a model you asked for was not sent
61
+ on. Until now the only signal was `modelHintMatched: false`, documented as
62
+ "forwarded blind — treat the result with more suspicion", which is the
63
+ opposite of what happened: it was not forwarded at all.
64
+ - The top-level `service` parameter drops a self-naming model too. It took a
65
+ third code path that never had the rule, so `service: "codex", hints.model:
66
+ "codex"` still sent `--model codex` to the harness — the failure the forced
67
+ path was fixed for — and reported neither field. All three paths now share
68
+ one function.
69
+ - A blank `hints.model` is rejected on BOTH surfaces instead of silently
70
+ unsetting the route's configured model. An empty string is not "no
71
+ preference": it won against the route default, the harness ran with no model
72
+ flag, and the response reported `model: ""` with nothing to say the request
73
+ had been discarded. Whitespace did the same and also reached the harness as a
74
+ real argument, so `--model " "` cost a provider call, a route failure and
75
+ breaker credit on an HTTP 200. The OpenAI protocol's own top-level `model`
76
+ drops a blank value rather than rejecting it — clients fill that field in
77
+ unconditionally — but it dropped only `""`, not whitespace, and it now drops
78
+ both.
79
+ - A wrong-typed hint is rejected on the HTTP surface instead of vanishing.
80
+ `hints: { model: 123 }` returned 200 with the hint silently gone, and
81
+ `hints: "workspace_edit"` discarded EVERY hint in one go — safety ones
82
+ included — because a non-object failed the branch guard without a word. This
83
+ is the other half of the unknown-KEY rule already there.
84
+ - A whitespace-only `prompt` is rejected on the MCP surface, which the HTTP
85
+ surface has always done. It passed the non-empty check and spent a real route
86
+ call producing nothing.
87
+ - The HTTP surface stops silently downgrading a request it does not understand.
88
+ `mode: "fanou"` ran ONE dispatch and returned 200, so a CI caller asking for
89
+ independent opinions got a single answer indistinguishable from a real one;
90
+ `stream: "true"` returned a non-streaming response the same way; a non-string
91
+ entry in `files` or `models` was dropped, so a delegate ran without context
92
+ the caller believed it had sent. All are refused by name now.
93
+ - `hints.timeoutMs` is checked for its VALUE, not just its type. `0` is not
94
+ nullish, so it won every fallback down to `setTimeout`, fired on the first
95
+ tick and killed the child — "Timed out after 0ms", recorded as a route
96
+ failure with breaker credit, behind an HTTP 200. Negative, fractional and
97
+ absurdly large values were accepted too; MCP has always refused all four.
98
+ - `routePolicy: "standard"` is accepted over HTTP. It is the router's own
99
+ default and the documented one, so copying it out of the docs into an HTTP
100
+ body was an error for naming the thing that already happens.
101
+ - A NUL byte is refused on both surfaces for every field that becomes a
102
+ command-line argument — `prompt`, `files`, `models` and `hints.model` — not
103
+ just `prompt`. The rest surfaced as a raw Node internal from deep inside
104
+ process spawning.
105
+ - Top-level routing hints over HTTP take effect instead of being discarded.
106
+ `{"routePolicy":"local_only"}` returned 200 and the dispatch left the machine
107
+ anyway; `taskType`, `timeoutMs` and `preferLargeContext` were dropped the same
108
+ way, while `safetyProfile` and `workspacePolicy` in the same position had
109
+ always worked — which is what taught callers the placement was fine. OpenAI
110
+ request bodies are flat, so this surface accepts flat hints; the MCP tool
111
+ still refuses the placement by name, and on both a hint you set now either
112
+ takes effect or you are told.
113
+ - `timeoutMs` is capped at what a timer can actually hold (2147483647). Above
114
+ that Node clamps to 1 millisecond, so the longest timeout you could ask for
115
+ became the shortest possible: the harness was killed immediately and the
116
+ ROUTE was blamed. Both surfaces accepted values in that range.
117
+ - `contextJobs` and `service` are refused over HTTP rather than accepted and
118
+ ignored. They are MCP tool parameters this surface does not implement — a
119
+ caller passing `contextJobs` got a delegate running without the prior work
120
+ they believed they had sent, and one passing `service` got whatever route the
121
+ router picked.
122
+ - `escalate` is refused on both surfaces. It has never been a per-call field;
123
+ escalation is per-route configuration.
124
+ - `routePolicy` is enforced in FANOUT mode over HTTP, not only in single mode.
125
+ `{"mode":"fanout","hints":{"routePolicy":"blocked"}}` — documented as
126
+ "dry-run: block everything" — returned 200 having run live agents in the
127
+ caller's working tree, and `local_only` let a metered route run and bill.
128
+ The fanout path built its dispatch options by naming three hint fields
129
+ inline and missed two, so `timeoutMs` never reached the child there either.
130
+ Every applicable hint now comes from one function, so a new one reaches
131
+ every caller instead of whichever call sites someone remembered.
132
+ - The config.yaml spelling of a hint is refused at the TOP level on both
133
+ surfaces — `safety_profile`, `route_policy`, `task_type` and the rest. The
134
+ nested spelling has been refused since 0.6.x because it silently disabled a
135
+ safety limit; one level up it stayed silent, and 0.7.8 made that placement
136
+ more reachable by starting to honour top-level hints.
137
+ - A `null` hint value is refused rather than treated as absent, consistently.
138
+ `{"timeoutMs":null}` returned 200 with the hint gone while
139
+ `{"hints":{"timeoutMs":null}}` was a 400 — the same key, two answers.
140
+ - An environment failure is detected by SHAPE, not by how often the phrase
141
+ appears. The detector overrides a successful exit — it charges the route a
142
+ failure and tells the caller "any answer it gave was produced without reading
143
+ or running anything" — so a delegate that merely WROTE about
144
+ `CreateProcessAsUserW` was given a fabricated diagnosis of a run that worked.
145
+ It now requires the harness's own diagnostic form (with errno) on two
146
+ separate lines, and scans each stream's tail separately so a wall of stderr
147
+ cannot bury a real failure on stdout.
148
+
149
+ ## [0.7.7] — 2026-08-23
150
+
151
+ **Upgrade from 0.7.6.** Two of 0.7.6's three guards were miscalibrated — one
152
+ under-fired on the shipped Cursor route, one over-fired on an explicit request.
153
+
154
+ ### Fixed
155
+
156
+ - The long-prompt check budgets a `.cmd`/`.bat` target at cmd.exe's 8,191
157
+ characters instead of CreateProcess's 32,767. The shipped Cursor route is a
158
+ `cursor-agent.CMD` PowerShell wrapper — not an npm shim — so cross-spawn
159
+ re-spawns it through cmd.exe. A 9,031-character prompt therefore sailed past
160
+ 0.7.6's check and still failed with the bare "The command line is too long."
161
+ that check exists to replace.
162
+ - The same check counts a prompt at its ESCAPED length. Windows escapes every
163
+ `"` to `\"`, so a raw character count under-reads any JSON or source-code
164
+ prompt: 31,000 characters at ~10% quotes measured under budget and threw
165
+ `spawn ENAMETOOLONG` anyway.
166
+ - A model named on a FORCED route reaches the harness again. 0.7.6 stopped
167
+ forwarding a route id as a model override, which was right on the scoring
168
+ path and wrong on the forced one — there the caller has already chosen the
169
+ route, so the value can only be a model, and a model whose name collided with
170
+ some other route's id was silently swapped for the route default.
171
+ - A refused prompt is not charged to the route. The refusal happens before any
172
+ process is spawned and fails identically on every argv route, so one over-long
173
+ prompt cascading through three routes recorded three calls and three failures
174
+ — and three such dispatches opened healthy routes for 300 seconds. The route
175
+ was never asked to do anything.
176
+ - A background dispatch is refused outright when the config file no longer
177
+ loads, instead of being reported orphaned 90 seconds later. The detached
178
+ runner bootstraps from the config FILE, so a file the server can no longer
179
+ load means no runner can start; the job then sat untouched until the orphan
180
+ threshold declared it dead. Observed: a caller told "ended without a result
181
+ (status: orphaned)" about a job whose own status.json later read
182
+ completed/success. The server keeps the last config that loaded cleanly, which
183
+ is why it could accept the dispatch at all — that divergence is the bug, and
184
+ it is now named at the point of refusal.
185
+
9
186
  ## [0.7.6] — 2026-08-23
10
187
 
11
188
  The three items an acceptance pass left open as judgement calls rather than
@@ -564,7 +741,9 @@ the MCP surface to three tools: `dispatch`, `job_status`, `usage`.
564
741
  Known issues in this release, fixed in 0.5.0: `configure` writes resolved API keys into
565
742
  its output, and `configure --yes --force` can delete user-added harnesses.
566
743
 
567
- [Unreleased]: https://github.com/fstubner/harness-dispatch/compare/v0.7.6...HEAD
744
+ [Unreleased]: https://github.com/fstubner/harness-dispatch/compare/v0.7.8...HEAD
745
+ [0.7.8]: https://github.com/fstubner/harness-dispatch/compare/v0.7.7...v0.7.8
746
+ [0.7.7]: https://github.com/fstubner/harness-dispatch/compare/v0.7.6...v0.7.7
568
747
  [0.7.6]: https://github.com/fstubner/harness-dispatch/compare/v0.7.5...v0.7.6
569
748
  [0.7.5]: https://github.com/fstubner/harness-dispatch/compare/v0.7.4...v0.7.5
570
749
  [0.7.4]: https://github.com/fstubner/harness-dispatch/compare/v0.7.3...v0.7.4
package/README.md CHANGED
@@ -663,7 +663,9 @@ decide which of your local CLIs to run.
663
663
  ## Chaining delegated work
664
664
 
665
665
  Pass the jobIds of earlier dispatches as `contextJobs` and their prompts and
666
- outputs are rendered into the new prompt directly:
666
+ outputs are rendered into the new prompt directly — arguments to the `dispatch`
667
+ MCP tool, not an HTTP body (the OpenAI-compatible endpoint does not implement
668
+ `contextJobs`, and refuses it rather than accepting it and ignoring it):
667
669
 
668
670
  ```json
669
671
  { "prompt": "Now write the migration.", "contextJobs": ["job-1786977300001-0f0aaaaa"] }
@@ -41,7 +41,19 @@ export declare function detectRateLimit(text: string): {
41
41
  * reporting that it could not START a process at all, which no prompt can
42
42
  * work around.
43
43
  */
44
- export declare function detectHarnessEnvironmentFailure(text: string): string | undefined;
44
+ export declare function detectHarnessEnvironmentFailure(...streams: string[]): string | undefined;
45
+ /**
46
+ * How long the command line will actually be once escaped.
47
+ *
48
+ * Counting raw characters under-reads on Windows, where every `"` in an
49
+ * argument is escaped to `\"` and every argument containing whitespace is
50
+ * wrapped in quotes. A 31,000-character prompt that is ~10% quote characters —
51
+ * ordinary for JSON or source code — measured under the budget and then threw
52
+ * `spawn ENAMETOOLONG` anyway. Deliberately an over-estimate: refusing a
53
+ * borderline prompt with an explanation beats spawning one that dies with an
54
+ * errno.
55
+ */
56
+ declare function commandLineLength(command: string, args: string[]): number;
45
57
  export declare class GenericCliDispatcher extends BaseDispatcher {
46
58
  #private;
47
59
  readonly id: string;
@@ -64,4 +76,7 @@ export declare class GenericCliDispatcher extends BaseDispatcher {
64
76
  checkQuota(): Promise<QuotaInfo>;
65
77
  stream(prompt: string, files: string[], workingDir: string, opts?: DispatchOpts): AsyncIterable<DispatcherEvent>;
66
78
  }
79
+ /** Exported for the drift test against cross-spawn. Not part of the API. */
80
+ export declare const __commandLineLengthForTest: typeof commandLineLength;
81
+ export {};
67
82
  //# sourceMappingURL=generic-cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generic-cli.d.ts","sourceRoot":"","sources":["../../src/dispatchers/generic-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAIV,eAAe,EACf,SAAS,EAET,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AA2B9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAoBjG;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWhF;AA+MD,qBAAa,oBAAqB,SAAQ,cAAc;;IACtD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAC7D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoC;IACrE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsB;IAE3D;;;;;;OAMG;gBACS,GAAG,CAAC,EAAE,aAAa,EAAE,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;IAY3E,WAAW,IAAI,OAAO;IAIhB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAItC,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,YAAiB,GACtB,aAAa,CAAC,eAAe,CAAC;CA+UlC"}
1
+ {"version":3,"file":"generic-cli.d.ts","sourceRoot":"","sources":["../../src/dispatchers/generic-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAIV,eAAe,EACf,SAAS,EAET,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AA2B9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAoBjG;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CA+CxF;AA+ID;;;;;;;;;;GAUG;AACH,iBAAS,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBlE;AAmMD,qBAAa,oBAAqB,SAAQ,cAAc;;IACtD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAC7D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoC;IACrE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsB;IAE3D;;;;;;OAMG;gBACS,GAAG,CAAC,EAAE,aAAa,EAAE,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;IAY3E,WAAW,IAAI,OAAO;IAIhB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAItC,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,YAAiB,GACtB,aAAa,CAAC,eAAe,CAAC;CAkVlC;AAED,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B,0BAAoB,CAAC"}
@@ -83,8 +83,44 @@ export function detectRateLimit(text) {
83
83
  * reporting that it could not START a process at all, which no prompt can
84
84
  * work around.
85
85
  */
86
- export function detectHarnessEnvironmentFailure(text) {
87
- if (/CreateProcessAsUserW failed/i.test(text)) {
86
+ export function detectHarnessEnvironmentFailure(...streams) {
87
+ // TWO DIAGNOSTIC LINES, in each stream's TAIL.
88
+ //
89
+ // This overrides a SUCCESSFUL exit code, so a false positive is expensive:
90
+ // it charges the route a failure, counts toward the breaker, and tells the
91
+ // caller "any answer it gave was produced without reading or running
92
+ // anything" — a fabricated diagnosis about a run that worked.
93
+ //
94
+ // Counting bare mentions does not separate the two cases. The first version
95
+ // fired on one mention anywhere; raising it to two still fired on a
96
+ // delegate's prose ABOUT this function, which is a realistic thing to
97
+ // receive — this project delegates work on this very file. Both versions
98
+ // were reproduced with a CLI exiting 0 while printing sentences.
99
+ //
100
+ // What separates them better than volume is SHAPE. The harness emits its
101
+ // own diagnostic with the errno attached ("CreateProcessAsUserW failed: 5
102
+ // (Access is denied)"), which prose usually shortens to the bare phrase, so
103
+ // requiring the errno form on two separate LINES needs a real diagnostic,
104
+ // repeated — and a sandbox that cannot spawn fails EVERY attempt, so it
105
+ // repeats by definition (the run this was built from logged six).
106
+ //
107
+ // Narrower, not closed, and worth being exact about both ways:
108
+ // - Prose QUOTING the full diagnostic on two lines still fires. A report
109
+ // on this file can do that, including a diff of this function's own
110
+ // tests. Nothing in the text distinguishes those cases; only the source
111
+ // of the stream would, and we do not have it here.
112
+ // - Only `failed: <digits>` matches. `failed (5)`, `failed with error 5`,
113
+ // or the errno on the next line are all missed. That is deliberate
114
+ // rather than an oversight: the form above is the one observed live, and
115
+ // inventing variants would widen a false-positive surface that has
116
+ // already misfired twice to cover output nobody has seen.
117
+ //
118
+ // Each stream is tailed SEPARATELY, like the rate-limit scanner: six real
119
+ // occurrences on stdout followed by a wall of stderr noise would otherwise
120
+ // fall off the end of a single joined tail.
121
+ const lines = streams.flatMap((s) => rateLimitScanTail(s).split(/\r?\n/));
122
+ const diagnostics = lines.filter((line) => /CreateProcessAsUserW failed:\s*\d+/i.test(line));
123
+ if (diagnostics.length >= 2) {
88
124
  return ("the harness could not spawn any child process — its sandbox refused " +
89
125
  "(CreateProcessAsUserW failed). Any answer it gave was produced without " +
90
126
  "reading or running anything. On Windows this is usually a path the " +
@@ -104,6 +140,159 @@ export function detectHarnessEnvironmentFailure(text) {
104
140
  */
105
141
  const WINDOWS_CMDLINE_MAX = 32_000;
106
142
  const POSIX_ARG_MAX = 128 * 1024 - 2048;
143
+ /**
144
+ * cmd.exe's own limit, and the one that actually binds on Windows more often
145
+ * than the CreateProcess figure above.
146
+ *
147
+ * A `.cmd`/`.bat` target is re-spawned through `cmd.exe`, which caps a command
148
+ * line at 8,191 characters — a quarter of the CreateProcess limit. The first
149
+ * version of this check budgeted 32,000 for everything, so the shipped Cursor
150
+ * route (a `cursor-agent.CMD` PowerShell wrapper, not an npm shim, handed
151
+ * straight to cross-spawn) still failed at ~9k characters with the bare
152
+ * "The command line is too long." this check exists to replace. Measured on a
153
+ * stock install; the true ceiling was then bisected at exactly 8,191.
154
+ *
155
+ * Only eleven characters of margin, because commandLineLength no longer
156
+ * estimates — it builds cross-spawn's own escaped forms and measures them, so
157
+ * the slack that used to cover a wrong model is not needed and was costing
158
+ * ~10% of the usable prompt.
159
+ *
160
+ * One case that margin would NOT cover: cross-spawn keys its escaping on the
161
+ * SHEBANG-RESOLVED file, and unshifts the resolved interpreter path as an
162
+ * extra argument. This keys on the raw command, so a shebang script would go
163
+ * ~60 characters uncounted. It cannot happen through the dispatchers here —
164
+ * resolveCliCommand hands over a fully `which`-resolved path, and reaching
165
+ * cross-spawn's shebang branch on Windows needs an extensionless PATHEXT hit
166
+ * — but a future caller passing an unresolved command is the way in.
167
+ */
168
+ const WINDOWS_CMD_SHIM_MAX = 8_180;
169
+ /**
170
+ * The limit that applies to THIS command, not to the platform in general.
171
+ *
172
+ * Keyed on what cross-spawn will actually DO, not on the extension string.
173
+ * cross-spawn routes through cmd.exe for anything that is not `.com` or `.exe`
174
+ * (lib/parse.js), so an extensionless target, a `.ps1`, or a hand-rolled shim
175
+ * gets the same 8,191-character ceiling as a `.cmd` — the first version of
176
+ * this listed `.cmd`/`.bat` explicitly and handed everything else the
177
+ * four-times-larger CreateProcess budget.
178
+ */
179
+ function commandLineBudget(command) {
180
+ if (process.platform !== "win32")
181
+ return POSIX_ARG_MAX;
182
+ const ext = path.extname(command).toLowerCase();
183
+ return ext === ".exe" || ext === ".com" ? WINDOWS_CMDLINE_MAX : WINDOWS_CMD_SHIM_MAX;
184
+ }
185
+ /**
186
+ * cross-spawn's own meta-character class, copied verbatim from
187
+ * `cross-spawn/lib/util/escape.js`.
188
+ *
189
+ * Every one of these gets a `^` prefix when the target goes through cmd.exe —
190
+ * INCLUDING THE SPACE, which is the character that made hand-modelling this
191
+ * wrong. My first version counted `"` and `\` only, so ordinary prose (~15%
192
+ * spaces) and JSON measured well under budget and still died with cmd.exe's
193
+ * own "The command line is too long." — from ~6,600 characters for prose and
194
+ * ~4,500 for code, against a guard that did not fire until ~7,820.
195
+ *
196
+ * Copied rather than imported because it lives in cross-spawn's internals,
197
+ * which are not part of its public API. The coupling is real either way; a
198
+ * copy at least fails visibly if cross-spawn changes, and the tests below pin
199
+ * the shapes that actually matter.
200
+ */
201
+ const CMD_META_CHARS = /([()\][%!^"`<>&|;, *?])/g;
202
+ /**
203
+ * cross-spawn double-escapes meta chars for an npm-style cmd shim
204
+ * (`node_modules/.bin/x.cmd`) — `isCmdShimRegExp` in its `lib/parse.js`.
205
+ *
206
+ * Counting them once meant such a target died at ~5,300 characters while the
207
+ * estimate said 6,400 against a budget of 8,000, so the guard stayed silent
208
+ * and the bare "The command line is too long." reached the caller anyway.
209
+ */
210
+ const CMD_SHIM_DOUBLE_ESCAPE_RE = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;
211
+ /**
212
+ * `<comspec> /d /s /c "` … `"` — what cross-spawn actually spawns, and it
213
+ * counts against the same ceiling.
214
+ *
215
+ * comspec, not the literal "cmd.exe": cross-spawn uses
216
+ * `process.env.comspec || "cmd.exe"`, which on a normal Windows install is the
217
+ * full `C:\WINDOWS\system32\cmd.exe` — twenty characters longer than the
218
+ * constant this started as. The drift test below caught that on its first run.
219
+ */
220
+ function cmdWrapperOverhead() {
221
+ return `${process.env["comspec"] || "cmd.exe"} /d /s /c ""`.length;
222
+ }
223
+ /**
224
+ * cross-spawn's `escapeCommand`, replicated: meta chars only, no quoting.
225
+ */
226
+ function escapeCmdCommand(command) {
227
+ return command.replace(CMD_META_CHARS, "^$1");
228
+ }
229
+ /**
230
+ * cross-spawn's `escapeArgument`, replicated from `lib/util/escape.js`.
231
+ *
232
+ * REPLICATED, NOT ESTIMATED. The previous version added one character per
233
+ * backslash, but backslashes are only doubled in a run immediately before a
234
+ * quote or the end of the argument — so prompts full of Windows paths (~9%
235
+ * backslashes) were over-counted and REFUSED although they ran: an
236
+ * 804-character band, about 10% of the usable prompt, on the very route the
237
+ * check was written for. Before that the same function under-counted spaces.
238
+ * Both are the cost of hand-modelling something that already exists.
239
+ */
240
+ function escapeCmdArgument(arg, doubleEscapeMetaChars) {
241
+ let out = quoteWindowsArgument(arg);
242
+ out = out.replace(CMD_META_CHARS, "^$1");
243
+ if (doubleEscapeMetaChars)
244
+ out = out.replace(CMD_META_CHARS, "^$1");
245
+ return out;
246
+ }
247
+ /**
248
+ * The quoting half, which applies to EVERY Windows spawn — cmd.exe target or
249
+ * not. Only the `^` meta escaping above is cmd-specific.
250
+ *
251
+ * Split out because the first version of the non-cmd branch counted
252
+ * `arg.length + 3` and so ignored quote escaping entirely, which under-read a
253
+ * quote-heavy prompt heading for a native `.exe`. Caught by the test written
254
+ * for exactly that case one release earlier — the two branches need the same
255
+ * quoting and differ only in what comes after it.
256
+ */
257
+ function quoteWindowsArgument(arg) {
258
+ let out = String(arg);
259
+ // A run of backslashes followed by a double quote: double the run, escape
260
+ // the quote.
261
+ out = out.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"');
262
+ // A run of backslashes at the end (about to be followed by the closing
263
+ // quote): double it.
264
+ out = out.replace(/(?=(\\+?)?)\1$/, "$1$1");
265
+ return `"${out}"`;
266
+ }
267
+ /**
268
+ * How long the command line will actually be once escaped.
269
+ *
270
+ * Counting raw characters under-reads on Windows, where every `"` in an
271
+ * argument is escaped to `\"` and every argument containing whitespace is
272
+ * wrapped in quotes. A 31,000-character prompt that is ~10% quote characters —
273
+ * ordinary for JSON or source code — measured under the budget and then threw
274
+ * `spawn ENAMETOOLONG` anyway. Deliberately an over-estimate: refusing a
275
+ * borderline prompt with an explanation beats spawning one that dies with an
276
+ * errno.
277
+ */
278
+ function commandLineLength(command, args) {
279
+ if (process.platform !== "win32") {
280
+ return args.reduce((n, a) => n + a.length + 1, command.length);
281
+ }
282
+ if (commandLineBudget(command) !== WINDOWS_CMD_SHIM_MAX) {
283
+ // Straight to CreateProcess: the same quoting, without cmd.exe's escaping.
284
+ return args.reduce((n, a) => n + quoteWindowsArgument(a).length + 1, command.length);
285
+ }
286
+ // cmd.exe target. Build the escaped forms and MEASURE them, rather than
287
+ // estimating from character counts — two releases running, the estimate was
288
+ // wrong in one direction and then the other.
289
+ const double = CMD_SHIM_DOUBLE_ESCAPE_RE.test(command);
290
+ const parts = [escapeCmdCommand(command), ...args.map((a) => escapeCmdArgument(a, double))];
291
+ // `cmd.exe /d /s /c "<line>"` — the wrapper cross-spawn actually spawns, and
292
+ // it counts against the same 8,191 ceiling. Uncounted before, which put the
293
+ // estimate a constant ~29 characters under the truth.
294
+ return cmdWrapperOverhead() + parts.join(" ").length;
295
+ }
107
296
  /** Walk a nested object by dotted path, e.g. "message.content". */
108
297
  function getPath(value, path) {
109
298
  return path.split(".").reduce((acc, key) => {
@@ -389,8 +578,8 @@ export class GenericCliDispatcher extends BaseDispatcher {
389
578
  // would refuse work that route can do. Saying which routes CAN take it is
390
579
  // the useful half of the message.
391
580
  if (!protocol.stdin) {
392
- const budget = process.platform === "win32" ? WINDOWS_CMDLINE_MAX : POSIX_ARG_MAX;
393
- const commandLineChars = args.reduce((n, a) => n + a.length + 1, resolved.command.length);
581
+ const budget = commandLineBudget(resolved.command);
582
+ const commandLineChars = commandLineLength(resolved.command, args);
394
583
  if (commandLineChars > budget) {
395
584
  yield {
396
585
  type: "completion",
@@ -398,11 +587,14 @@ export class GenericCliDispatcher extends BaseDispatcher {
398
587
  output: "",
399
588
  service: this.id,
400
589
  success: false,
401
- error: `prompt too long for ${this.id}: the command line would be ` +
402
- `${commandLineChars.toLocaleString()} characters and this platform allows ` +
403
- `${budget.toLocaleString()}. ${this.id} passes the prompt as a command-line ` +
404
- `argument. Send the bulk as files instead of inline text, shorten the prompt, ` +
405
- `or use a route that reads the prompt from stdin (codex does).`,
590
+ error: `prompt too long for ${this.id}: the command line would be about ` +
591
+ `${commandLineChars.toLocaleString()} characters once escaped, and this ` +
592
+ `command accepts ${budget.toLocaleString()}. ${this.id} passes the prompt as a ` +
593
+ `command-line argument. Send the bulk as files instead of inline text, shorten ` +
594
+ `the prompt, or use a route that reads the prompt from stdin (codex does).`,
595
+ // Not the route's fault, so not the route's failure. See
596
+ // DispatchResult.inputRejected.
597
+ inputRejected: true,
406
598
  durationMs: 0,
407
599
  },
408
600
  };
@@ -562,7 +754,7 @@ export class GenericCliDispatcher extends BaseDispatcher {
562
754
  // reports this on whichever one it likes while its real payload goes to
563
755
  // the other, and a lenient exit-0 route would otherwise return the
564
756
  // delegate's uninformed answer as a success.
565
- const envFailure = detectHarnessEnvironmentFailure(`${stdout}\n${stderr}`);
757
+ const envFailure = detectHarnessEnvironmentFailure(stdout, stderr);
566
758
  // A structured error overrides exit code entirely — a CLI that reports
567
759
  // failure in its own response body (is_error, a turn.failed event) is
568
760
  // reporting failure regardless of what the process exit code says.
@@ -635,4 +827,6 @@ export class GenericCliDispatcher extends BaseDispatcher {
635
827
  yield { type: "completion", result };
636
828
  }
637
829
  }
830
+ /** Exported for the drift test against cross-spawn. Not part of the API. */
831
+ export const __commandLineLengthForTest = commandLineLength;
638
832
  //# sourceMappingURL=generic-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generic-cli.js","sourceRoot":"","sources":["../../src/dispatchers/generic-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generic-cli.js","sourceRoot":"","sources":["../../src/dispatchers/generic-cli.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,13 @@ export interface ChatRequest {
34
34
  hints?: unknown;
35
35
  safetyProfile?: unknown;
36
36
  workspacePolicy?: unknown;
37
+ taskType?: unknown;
38
+ routePolicy?: unknown;
39
+ preferLargeContext?: unknown;
40
+ timeoutMs?: unknown;
41
+ contextJobs?: unknown;
42
+ service?: unknown;
43
+ escalate?: unknown;
37
44
  }
38
45
  export declare const MAX_REQUEST_BODY_BYTES: number;
39
46
  /**
@@ -50,6 +57,15 @@ export declare class BadRequestError extends Error {
50
57
  /** Mirrors MAX_CONTEXT_FILES in mcp/tools.ts — the two surfaces must agree. */
51
58
  export declare const MAX_CONTEXT_FILES_HTTP = 64;
52
59
  export declare function readJson(req: IncomingMessage, maxBytes?: number): Promise<unknown>;
60
+ /**
61
+ * Every one of these ends up in an argv array — `files` as `--add-dir`
62
+ * grants, `models` as route ids, `hints.model` as `--model`. A NUL fails deep
63
+ * inside cross-spawn with "The argument 'args[N]' must be a string without
64
+ * null bytes", which is the raw Node internal a boundary rejection replaces.
65
+ * The prompt was guarded and these three were not, on BOTH surfaces — so
66
+ * parity held while both were wrong, which no parity row can catch.
67
+ */
68
+ export declare function noNul(value: string, field: string): void;
53
69
  export declare function parseChatRequest(raw: unknown): {
54
70
  prompt: string;
55
71
  files: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/http/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAC;AAG/D,gFAAgF;AAChF,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAElD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAKD,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAEvD;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAE7C,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,eAAe,EACpB,QAAQ,GAAE,MAA+B,GACxC,OAAO,CAAC,OAAO,CAAC,CAwBlB;AA4HD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;CACnB,CAmDA;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/http/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAC;AAI/D,gFAAgF;AAChF,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAElD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAKD,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAEvD;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAE7C,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,eAAe,EACpB,QAAQ,GAAE,MAA+B,GACxC,OAAO,CAAC,OAAO,CAAC,CAwBlB;AA2ED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIxD;AAgPD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;CACnB,CAiEA;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB"}