harness-dispatch 0.7.7 → 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,146 @@ 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
+
9
149
  ## [0.7.7] — 2026-08-23
10
150
 
11
151
  **Upgrade from 0.7.6.** Two of 0.7.6's three guards were miscalibrated — one
@@ -601,7 +741,8 @@ the MCP surface to three tools: `dispatch`, `job_status`, `usage`.
601
741
  Known issues in this release, fixed in 0.5.0: `configure` writes resolved API keys into
602
742
  its output, and `configure --yes --force` can delete user-added harnesses.
603
743
 
604
- [Unreleased]: https://github.com/fstubner/harness-dispatch/compare/v0.7.7...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
605
746
  [0.7.7]: https://github.com/fstubner/harness-dispatch/compare/v0.7.6...v0.7.7
606
747
  [0.7.6]: https://github.com/fstubner/harness-dispatch/compare/v0.7.5...v0.7.6
607
748
  [0.7.5]: https://github.com/fstubner/harness-dispatch/compare/v0.7.4...v0.7.5
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;AAwPD,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"}
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 " +
@@ -114,15 +150,119 @@ const POSIX_ARG_MAX = 128 * 1024 - 2048;
114
150
  * route (a `cursor-agent.CMD` PowerShell wrapper, not an npm shim, handed
115
151
  * straight to cross-spawn) still failed at ~9k characters with the bare
116
152
  * "The command line is too long." this check exists to replace. Measured on a
117
- * stock install.
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.
118
178
  */
119
- const WINDOWS_CMD_SHIM_MAX = 8_000;
120
- /** The limit that applies to THIS command, not to the platform in general. */
121
179
  function commandLineBudget(command) {
122
180
  if (process.platform !== "win32")
123
181
  return POSIX_ARG_MAX;
124
- const ext = command.slice(command.lastIndexOf(".")).toLowerCase();
125
- return ext === ".cmd" || ext === ".bat" ? WINDOWS_CMD_SHIM_MAX : WINDOWS_CMDLINE_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}"`;
126
266
  }
127
267
  /**
128
268
  * How long the command line will actually be once escaped.
@@ -136,16 +276,22 @@ function commandLineBudget(command) {
136
276
  * errno.
137
277
  */
138
278
  function commandLineLength(command, args) {
139
- const escapedLength = (arg) => {
140
- if (process.platform !== "win32")
141
- return arg.length;
142
- let n = arg.length + 2; // surrounding quotes
143
- for (const ch of arg)
144
- if (ch === '"' || ch === "\\")
145
- n += 1;
146
- return n;
147
- };
148
- return args.reduce((n, a) => n + escapedLength(a) + 1, escapedLength(command));
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;
149
295
  }
150
296
  /** Walk a nested object by dotted path, e.g. "message.content". */
151
297
  function getPath(value, path) {
@@ -608,7 +754,7 @@ export class GenericCliDispatcher extends BaseDispatcher {
608
754
  // reports this on whichever one it likes while its real payload goes to
609
755
  // the other, and a lenient exit-0 route would otherwise return the
610
756
  // delegate's uninformed answer as a success.
611
- const envFailure = detectHarnessEnvironmentFailure(`${stdout}\n${stderr}`);
757
+ const envFailure = detectHarnessEnvironmentFailure(stdout, stderr);
612
758
  // A structured error overrides exit code entirely — a CLI that reports
613
759
  // failure in its own response body (is_error, a turn.failed event) is
614
760
  // reporting failure regardless of what the process exit code says.
@@ -681,4 +827,6 @@ export class GenericCliDispatcher extends BaseDispatcher {
681
827
  yield { type: "completion", result };
682
828
  }
683
829
  }
830
+ /** Exported for the drift test against cross-spawn. Not part of the API. */
831
+ export const __commandLineLengthForTest = commandLineLength;
684
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"}