harness-dispatch 0.7.9 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/CHANGELOG.md +1170 -1
  2. package/README.md +52 -6
  3. package/config.default.yaml +49 -5
  4. package/dist/auth.d.ts +29 -0
  5. package/dist/auth.d.ts.map +1 -1
  6. package/dist/auth.js +58 -5
  7. package/dist/auth.js.map +1 -1
  8. package/dist/billing.d.ts +24 -0
  9. package/dist/billing.d.ts.map +1 -1
  10. package/dist/billing.js +24 -0
  11. package/dist/billing.js.map +1 -1
  12. package/dist/bin.d.ts.map +1 -1
  13. package/dist/bin.js +529 -31
  14. package/dist/bin.js.map +1 -1
  15. package/dist/breaker-store.d.ts +25 -1
  16. package/dist/breaker-store.d.ts.map +1 -1
  17. package/dist/breaker-store.js +193 -25
  18. package/dist/breaker-store.js.map +1 -1
  19. package/dist/circuit-breaker.d.ts +9 -1
  20. package/dist/circuit-breaker.d.ts.map +1 -1
  21. package/dist/circuit-breaker.js +15 -1
  22. package/dist/circuit-breaker.js.map +1 -1
  23. package/dist/client-register.d.ts +157 -0
  24. package/dist/client-register.d.ts.map +1 -0
  25. package/dist/client-register.js +389 -0
  26. package/dist/client-register.js.map +1 -0
  27. package/dist/config/validation.d.ts +41 -0
  28. package/dist/config/validation.d.ts.map +1 -1
  29. package/dist/config/validation.js +215 -1
  30. package/dist/config/validation.js.map +1 -1
  31. package/dist/config.d.ts +4 -2
  32. package/dist/config.d.ts.map +1 -1
  33. package/dist/config.js +143 -6
  34. package/dist/config.js.map +1 -1
  35. package/dist/configure-yaml.d.ts +2 -0
  36. package/dist/configure-yaml.d.ts.map +1 -1
  37. package/dist/configure-yaml.js +69 -3
  38. package/dist/configure-yaml.js.map +1 -1
  39. package/dist/dispatch-log.d.ts +14 -0
  40. package/dist/dispatch-log.d.ts.map +1 -1
  41. package/dist/dispatch-log.js +3 -0
  42. package/dist/dispatch-log.js.map +1 -1
  43. package/dist/dispatchers/generic-cli.d.ts.map +1 -1
  44. package/dist/dispatchers/generic-cli.js +92 -15
  45. package/dist/dispatchers/generic-cli.js.map +1 -1
  46. package/dist/dispatchers/openai-compatible.d.ts +20 -4
  47. package/dist/dispatchers/openai-compatible.d.ts.map +1 -1
  48. package/dist/dispatchers/openai-compatible.js +167 -19
  49. package/dist/dispatchers/openai-compatible.js.map +1 -1
  50. package/dist/dispatchers/shared/harness-login.d.ts +25 -0
  51. package/dist/dispatchers/shared/harness-login.d.ts.map +1 -0
  52. package/dist/dispatchers/shared/harness-login.js +68 -0
  53. package/dist/dispatchers/shared/harness-login.js.map +1 -0
  54. package/dist/dispatchers/shared/stream-subprocess.d.ts.map +1 -1
  55. package/dist/dispatchers/shared/stream-subprocess.js +70 -4
  56. package/dist/dispatchers/shared/stream-subprocess.js.map +1 -1
  57. package/dist/file-lock.d.ts +29 -1
  58. package/dist/file-lock.d.ts.map +1 -1
  59. package/dist/file-lock.js +22 -1
  60. package/dist/file-lock.js.map +1 -1
  61. package/dist/http/answer-stream.d.ts +52 -0
  62. package/dist/http/answer-stream.d.ts.map +1 -0
  63. package/dist/http/answer-stream.js +47 -0
  64. package/dist/http/answer-stream.js.map +1 -0
  65. package/dist/http/parse.d.ts.map +1 -1
  66. package/dist/http/parse.js +41 -0
  67. package/dist/http/parse.js.map +1 -1
  68. package/dist/http/server.d.ts +2 -0
  69. package/dist/http/server.d.ts.map +1 -1
  70. package/dist/http/server.js +281 -23
  71. package/dist/http/server.js.map +1 -1
  72. package/dist/jobs/context.d.ts +0 -7
  73. package/dist/jobs/context.d.ts.map +1 -1
  74. package/dist/jobs/context.js +95 -7
  75. package/dist/jobs/context.js.map +1 -1
  76. package/dist/jobs/store.d.ts.map +1 -1
  77. package/dist/jobs/store.js +45 -4
  78. package/dist/jobs/store.js.map +1 -1
  79. package/dist/jobs/types.d.ts +8 -1
  80. package/dist/jobs/types.d.ts.map +1 -1
  81. package/dist/jobs.d.ts +39 -0
  82. package/dist/jobs.d.ts.map +1 -1
  83. package/dist/jobs.js +207 -15
  84. package/dist/jobs.js.map +1 -1
  85. package/dist/leaderboard.d.ts.map +1 -1
  86. package/dist/leaderboard.js +39 -27
  87. package/dist/leaderboard.js.map +1 -1
  88. package/dist/mcp/config-hot-reload.d.ts +14 -3
  89. package/dist/mcp/config-hot-reload.d.ts.map +1 -1
  90. package/dist/mcp/config-hot-reload.js +33 -5
  91. package/dist/mcp/config-hot-reload.js.map +1 -1
  92. package/dist/mcp/dispatcher-factory.d.ts.map +1 -1
  93. package/dist/mcp/dispatcher-factory.js +14 -3
  94. package/dist/mcp/dispatcher-factory.js.map +1 -1
  95. package/dist/mcp/near-miss-guard.d.ts +45 -0
  96. package/dist/mcp/near-miss-guard.d.ts.map +1 -0
  97. package/dist/mcp/near-miss-guard.js +98 -0
  98. package/dist/mcp/near-miss-guard.js.map +1 -0
  99. package/dist/mcp/server.d.ts.map +1 -1
  100. package/dist/mcp/server.js +36 -0
  101. package/dist/mcp/server.js.map +1 -1
  102. package/dist/mcp/tool-schemas.d.ts +1 -1
  103. package/dist/mcp/tool-schemas.d.ts.map +1 -1
  104. package/dist/mcp/tool-schemas.js +27 -7
  105. package/dist/mcp/tool-schemas.js.map +1 -1
  106. package/dist/mcp/tools.d.ts +33 -4
  107. package/dist/mcp/tools.d.ts.map +1 -1
  108. package/dist/mcp/tools.js +85 -8
  109. package/dist/mcp/tools.js.map +1 -1
  110. package/dist/mcp-clients.d.ts +72 -0
  111. package/dist/mcp-clients.d.ts.map +1 -0
  112. package/dist/mcp-clients.js +121 -0
  113. package/dist/mcp-clients.js.map +1 -0
  114. package/dist/near-miss.d.ts +63 -0
  115. package/dist/near-miss.d.ts.map +1 -0
  116. package/dist/near-miss.js +132 -0
  117. package/dist/near-miss.js.map +1 -0
  118. package/dist/quota.d.ts +31 -1
  119. package/dist/quota.d.ts.map +1 -1
  120. package/dist/quota.js +84 -8
  121. package/dist/quota.js.map +1 -1
  122. package/dist/route-policy.d.ts +12 -1
  123. package/dist/route-policy.d.ts.map +1 -1
  124. package/dist/route-policy.js +74 -2
  125. package/dist/route-policy.js.map +1 -1
  126. package/dist/router.d.ts +61 -2
  127. package/dist/router.d.ts.map +1 -1
  128. package/dist/router.js +160 -29
  129. package/dist/router.js.map +1 -1
  130. package/dist/safety.d.ts.map +1 -1
  131. package/dist/safety.js +37 -1
  132. package/dist/safety.js.map +1 -1
  133. package/dist/state-dir.d.ts +10 -0
  134. package/dist/state-dir.d.ts.map +1 -1
  135. package/dist/state-dir.js +12 -0
  136. package/dist/state-dir.js.map +1 -1
  137. package/dist/status.d.ts +30 -21
  138. package/dist/status.d.ts.map +1 -1
  139. package/dist/status.js +152 -8
  140. package/dist/status.js.map +1 -1
  141. package/dist/types.d.ts +49 -2
  142. package/dist/types.d.ts.map +1 -1
  143. package/dist/working-dir.d.ts.map +1 -1
  144. package/dist/working-dir.js +16 -0
  145. package/dist/working-dir.js.map +1 -1
  146. package/dist/workspace-resolve.d.ts.map +1 -1
  147. package/dist/workspace-resolve.js +196 -15
  148. package/dist/workspace-resolve.js.map +1 -1
  149. package/dist/workspaces.d.ts +98 -0
  150. package/dist/workspaces.d.ts.map +1 -1
  151. package/dist/workspaces.js +609 -20
  152. package/dist/workspaces.js.map +1 -1
  153. package/package.json +1 -1
@@ -27,11 +27,27 @@
27
27
  import type { DispatchResult, DispatcherEvent, QuotaInfo, ServiceConfig } from "../types.js";
28
28
  import { BaseDispatcher, type DispatchOpts } from "./base.js";
29
29
  /**
30
- * Append `path` onto `baseUrl`, inserting `/v1` unless it's already there.
30
+ * Append `path` onto `baseUrl`, inserting `/v1` only when the base URL has no
31
+ * path of its own.
32
+ *
31
33
  * Exported so callers other than this dispatcher (e.g. the `usage` tool's
32
- * listModels, which hits GET {baseUrl}/models on the same endpoint) build
33
- * URLs the same way — a baseUrl configured without a /v1 suffix must not
34
- * 404 on one code path while working on the other.
34
+ * listModels, which hits GET {baseUrl}/models on the same endpoint) build URLs
35
+ * the same way — a baseUrl configured bare must not 404 on one code path while
36
+ * working on the other.
37
+ *
38
+ * The rule used to be "append /v1 unless it already ENDS in /v1", which
39
+ * mangles any other path. This project's own config.default.yaml documents
40
+ * `base_url: https://generativelanguage.googleapis.com/v1beta/openai` — Google's
41
+ * OpenAI-compatible endpoint — and that produced
42
+ * `/v1beta/openai/v1/chat/completions`, which is not a URL Google serves. An
43
+ * acceptance pass noticed the same shape via `anthropic_messages`, whose
44
+ * documented form is `POST {base_url}/messages`: a third-party host on a
45
+ * non-/v1 path was simply unconfigurable.
46
+ *
47
+ * "You gave me a path, I use it" is the predictable rule, and every other
48
+ * documented example already spells out its own `/v1` (`.../api/v1`,
49
+ * `http://localhost:11434/v1`), so they are unaffected. A bare origin still
50
+ * gets `/v1`, which is what makes `https://api.anthropic.com` work.
35
51
  */
36
52
  export declare function endpointUrl(baseUrl: string, path: string): string;
37
53
  export declare class OpenAICompatibleDispatcher extends BaseDispatcher {
@@ -1 +1 @@
1
- {"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../src/dispatchers/openai-compatible.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAW9D;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjE;AA0GD,qBAAa,0BAA2B,SAAQ,cAAc;;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,GAAG,EAAE,aAAa;IAY9B,WAAW,IAAI,OAAO;IAIhB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IA0PtC;;;;OAIG;IACY,QAAQ,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,cAAc,CAAC;IA8G1B,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,YAAiB,GACtB,aAAa,CAAC,eAAe,CAAC;CAyNlC"}
1
+ {"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../src/dispatchers/openai-compatible.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAiB9D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAYjE;AA6ID,qBAAa,0BAA2B,SAAQ,cAAc;;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,GAAG,EAAE,aAAa;IAY9B,WAAW,IAAI,OAAO;IAIhB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAqQtC;;;;OAIG;IACY,QAAQ,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,cAAc,CAAC;IAkI1B,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,YAAiB,GACtB,aAAa,CAAC,eAAe,CAAC;CA6QlC"}
@@ -26,7 +26,7 @@
26
26
  */
27
27
  import { BaseDispatcher } from "./base.js";
28
28
  import { parseRetryAfter } from "./shared/rate-limit-headers.js";
29
- import { redactEndpointHost } from "../status.js";
29
+ import { redactEndpointHost, scrubEndpointSecrets } from "../status.js";
30
30
  const CHAT_PATH = "/chat/completions";
31
31
  const MESSAGES_PATH = "/messages";
32
32
  const ANTHROPIC_VERSION = "2023-06-01";
@@ -34,15 +34,47 @@ const DEFAULT_TIMEOUT_MS = 120_000;
34
34
  /** SSE frames are separated by a blank line — spec-legal as \n\n or \r\n\r\n. */
35
35
  const SSE_FRAME_BOUNDARY = /\r?\n\r?\n/;
36
36
  /**
37
- * Append `path` onto `baseUrl`, inserting `/v1` unless it's already there.
37
+ * How much of an unusable response body to quote back. Enough to recognise an
38
+ * HTML error page or a JSON error envelope; short enough that a multi-megabyte
39
+ * body does not become the error message.
40
+ */
41
+ const RAW_HEAD_CHARS = 300;
42
+ /**
43
+ * Append `path` onto `baseUrl`, inserting `/v1` only when the base URL has no
44
+ * path of its own.
45
+ *
38
46
  * Exported so callers other than this dispatcher (e.g. the `usage` tool's
39
- * listModels, which hits GET {baseUrl}/models on the same endpoint) build
40
- * URLs the same way — a baseUrl configured without a /v1 suffix must not
41
- * 404 on one code path while working on the other.
47
+ * listModels, which hits GET {baseUrl}/models on the same endpoint) build URLs
48
+ * the same way — a baseUrl configured bare must not 404 on one code path while
49
+ * working on the other.
50
+ *
51
+ * The rule used to be "append /v1 unless it already ENDS in /v1", which
52
+ * mangles any other path. This project's own config.default.yaml documents
53
+ * `base_url: https://generativelanguage.googleapis.com/v1beta/openai` — Google's
54
+ * OpenAI-compatible endpoint — and that produced
55
+ * `/v1beta/openai/v1/chat/completions`, which is not a URL Google serves. An
56
+ * acceptance pass noticed the same shape via `anthropic_messages`, whose
57
+ * documented form is `POST {base_url}/messages`: a third-party host on a
58
+ * non-/v1 path was simply unconfigurable.
59
+ *
60
+ * "You gave me a path, I use it" is the predictable rule, and every other
61
+ * documented example already spells out its own `/v1` (`.../api/v1`,
62
+ * `http://localhost:11434/v1`), so they are unaffected. A bare origin still
63
+ * gets `/v1`, which is what makes `https://api.anthropic.com` work.
42
64
  */
43
65
  export function endpointUrl(baseUrl, path) {
44
66
  const trimmed = baseUrl.replace(/\/+$/, "");
45
- return trimmed.endsWith("/v1") ? `${trimmed}${path}` : `${trimmed}/v1${path}`;
67
+ let hasPath;
68
+ try {
69
+ const parsed = new URL(trimmed);
70
+ hasPath = parsed.pathname !== "" && parsed.pathname !== "/";
71
+ }
72
+ catch {
73
+ // Not parseable as a URL — fall back to the old suffix test rather than
74
+ // guessing, so a malformed base_url behaves as it always did.
75
+ hasPath = trimmed.endsWith("/v1");
76
+ }
77
+ return hasPath ? `${trimmed}${path}` : `${trimmed}/v1${path}`;
46
78
  }
47
79
  const DEFAULT_MAX_TOKENS = 8192;
48
80
  const DEFAULT_SYSTEM_PROMPT = "You are an expert software engineer. " +
@@ -80,7 +112,41 @@ function describeFetchFailure(err, baseUrl) {
80
112
  ? "TLS certificate rejected"
81
113
  : (cause?.message ?? undefined);
82
114
  const where = redactEndpointHost(baseUrl);
83
- return hint ? `${message} (${where}: ${hint})` : `${message} (${where})`;
115
+ // The wrapped message is scrubbed too, not just the URL appended after it.
116
+ // undici embeds the URL it was handed, so a base_url carrying userinfo or a
117
+ // key in the query put the raw credential straight into this string — and
118
+ // this string reaches the terminal and `logs/dispatches.jsonl`. The hint is
119
+ // scrubbed on the same grounds: it can be `cause.message`, which is equally
120
+ // not ours.
121
+ const safe = (text) => scrubEndpointSecrets(text, baseUrl);
122
+ return hint ? `${safe(message)} (${where}: ${safe(hint)})` : `${safe(message)} (${where})`;
123
+ }
124
+ /**
125
+ * Why a 200 produced no answer — asked identically by both request paths, so
126
+ * that "the two surfaces agree" is something the code enforces rather than
127
+ * something a comment claims.
128
+ *
129
+ * It answers what was observed and nothing else. Earlier versions tried to
130
+ * work out WHY a body was unusable, and each was wrong in ways only an
131
+ * acceptance pass found: one called an HTML error page "no content", the next
132
+ * discarded a real answer arriving in another SSE dialect, called a provider's
133
+ * keepalives an unexpected shape, and classified the same bytes differently
134
+ * depending on how the network split them.
135
+ */
136
+ function describeUnusableBody(raw, readError) {
137
+ if (readError !== undefined) {
138
+ // "No body" would be a claim about what the endpoint sent, and a failed
139
+ // read is not evidence of that — the bytes below may be a partial answer.
140
+ return raw.length === 0
141
+ ? `Response body could not be read: ${readError}`
142
+ : `Response body could not be read: ${readError} (partial body: ${raw.slice(0, RAW_HEAD_CHARS)})`;
143
+ }
144
+ return raw.length === 0
145
+ ? "Empty response: the endpoint returned 200 with no body"
146
+ : // Deliberately not a claim about the SHAPE being wrong — a well-formed
147
+ // stream that carried nothing lands here too. It says what it knows:
148
+ // nothing usable came out of this, and here is what arrived.
149
+ `No answer in response body: ${raw.slice(0, RAW_HEAD_CHARS)}`;
84
150
  }
85
151
  export class OpenAICompatibleDispatcher extends BaseDispatcher {
86
152
  id;
@@ -188,7 +254,14 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
188
254
  if (!msg || typeof msg !== "object")
189
255
  return null;
190
256
  const content = msg.content;
191
- return typeof content === "string" ? content : null;
257
+ // An empty string is not an answer. The anthropic_messages branch above has
258
+ // always said so (`text.length > 0 ? text : null`); this one returned any
259
+ // string, so a well-formed 200 carrying `content: ""` was a SUCCESS with no
260
+ // output — the same silent-empty-success this dispatcher was just fixed for
261
+ // on the streaming side, still live here. An acceptance pass caught the
262
+ // fix's own claim ("the streaming path now refuses this the same way the
263
+ // buffered path does") asserting a guard that did not exist.
264
+ return typeof content === "string" && content.length > 0 ? content : null;
192
265
  }
193
266
  #extractUsage(body) {
194
267
  if (this.wireProtocol === "anthropic_messages") {
@@ -279,7 +352,9 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
279
352
  const delta = c.delta ?? c.message;
280
353
  const content = delta?.content;
281
354
  if (typeof content === "string" && content.length > 0) {
282
- out.push({ type: "stdout", chunk: content });
355
+ // text: this IS the answer — an endpoint streams assistant content, not
356
+ // a protocol, so it can be shown as it arrives.
357
+ out.push({ type: "stdout", chunk: content, text: true });
283
358
  }
284
359
  }
285
360
  }
@@ -329,8 +404,9 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
329
404
  }
330
405
  else if (obj.type === "content_block_delta") {
331
406
  const text = obj.delta?.type === "text_delta" ? obj.delta.text : undefined;
332
- if (typeof text === "string" && text.length > 0)
333
- out.push({ type: "stdout", chunk: text });
407
+ if (typeof text === "string" && text.length > 0) {
408
+ out.push({ type: "stdout", chunk: text, text: true });
409
+ }
334
410
  }
335
411
  else if (obj.type === "message_delta") {
336
412
  const v = obj.usage?.output_tokens;
@@ -400,15 +476,34 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
400
476
  durationMs: Date.now() - start,
401
477
  };
402
478
  }
403
- clearTimeout(timer);
479
+ // NOT cleared here — the timer must span the body read below.
480
+ //
481
+ // Clearing on headers left `res.text()` unbounded, so a route configured
482
+ // with `timeout_ms: 120000` could sit far past it on a stalled body, with
483
+ // only undici's 300s inactivity default as a backstop. This is the
484
+ // BUFFERED path, which the router uses for its primary route, so the
485
+ // configured timeout was the one number a caller could set and the one
486
+ // the slow case ignored. Structurally identical to the leaderboard
487
+ // timeout fixed in the previous release; the streaming sibling below
488
+ // already spans its own read.
404
489
  const responseHeaders = headersToObject(res.headers);
405
490
  const durationMs = Date.now() - start;
406
491
  let rawBody = "";
492
+ // Distinguished from an empty body, because they are different events with
493
+ // different fixes and this path used to state the wrong one as fact: a
494
+ // server that sent 200 plus a partial body and then reset the connection
495
+ // was reported as "the endpoint returned 200 with no body". The streaming
496
+ // path said "terminated" and kept the partial output for the same socket,
497
+ // so the two paths did not agree — while a comment claimed they did.
498
+ let bodyReadError;
407
499
  try {
408
500
  rawBody = await res.text();
409
501
  }
410
- catch {
411
- // Body read failed treat as empty.
502
+ catch (err) {
503
+ bodyReadError = err instanceof Error ? err.message : String(err);
504
+ }
505
+ finally {
506
+ clearTimeout(timer);
412
507
  }
413
508
  const parsedBody = this.#parseBody(rawBody);
414
509
  if (res.status === 429) {
@@ -443,7 +538,10 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
443
538
  output: "",
444
539
  service: this.id,
445
540
  success: false,
446
- error: `Unexpected response shape: ${rawBody.slice(0, 300)}`,
541
+ // Same questions the streaming path asks, in the same order. This path
542
+ // used to emit a dangling "Unexpected response shape: " with nothing
543
+ // after the colon for an empty body — technically true and useless.
544
+ error: describeUnusableBody(rawBody, bodyReadError),
447
545
  durationMs,
448
546
  rateLimitHeaders: responseHeaders,
449
547
  };
@@ -554,6 +652,16 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
554
652
  // the trailing flush as one "frame" — use a regex boundary instead.
555
653
  const chunks = [];
556
654
  let buffer = "";
655
+ // The head of the body exactly as it arrived, kept because `buffer` is
656
+ // consumed frame by frame and is empty by the time a failure is reported.
657
+ // Without it the failure message could only say what was NOT found.
658
+ //
659
+ // Truncated to RAW_HEAD_CHARS, not "stopped once past it": the previous
660
+ // version appended whole chunks while under the limit, so one chunk could
661
+ // carry it to any length. That was invisible until it mattered — the same
662
+ // 2 KB body classified two different ways depending on how the network
663
+ // split it, decided by bytes the message never showed.
664
+ let rawSeen = "";
557
665
  // Merged across frames, not overwritten — Anthropic's input/output
558
666
  // token counts arrive on two DIFFERENT frames (see #parseSseFrame).
559
667
  let inputTokens;
@@ -589,7 +697,10 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
589
697
  const { value, done } = await reader.read();
590
698
  if (done)
591
699
  break;
592
- buffer += decoder.decode(value, { stream: true });
700
+ const text = decoder.decode(value, { stream: true });
701
+ buffer += text;
702
+ if (rawSeen.length < RAW_HEAD_CHARS)
703
+ rawSeen = (rawSeen + text).slice(0, RAW_HEAD_CHARS);
593
704
  let boundary = SSE_FRAME_BOUNDARY.exec(buffer);
594
705
  while (boundary !== null) {
595
706
  const frame = buffer.slice(0, boundary.index);
@@ -611,7 +722,15 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
611
722
  }
612
723
  catch (err) {
613
724
  clearTimeout(timer);
614
- const errMsg = err instanceof Error ? err.message : String(err);
725
+ // Scrubbed, like every other error leaving this dispatcher.
726
+ //
727
+ // undici embeds the request URL in its failure messages, so a base_url
728
+ // carrying userinfo or an api key in the query string ended up verbatim
729
+ // in `result.error` — and from there in job status, stderr.log and
730
+ // dispatches.jsonl. The fetch-failure sibling routes through
731
+ // describeFetchFailure precisely to avoid that; this branch was the one
732
+ // that did not.
733
+ const errMsg = scrubEndpointSecrets(err instanceof Error ? err.message : String(err), this.baseUrl ?? "");
615
734
  yield {
616
735
  type: "completion",
617
736
  result: {
@@ -651,12 +770,41 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
651
770
  streamError = evts.error;
652
771
  }
653
772
  const output = chunks.join("");
654
- const result = streamError !== undefined
773
+ // A 200 that yields no answer is not a successful empty answer. jobs.ts
774
+ // only ever streams, so the MCP surface (the primary one, and the one an
775
+ // orchestrating agent branches on) reported `success: true` with an empty
776
+ // output. The breaker heals on a success, so a route serving nothing but
777
+ // empty 200s was recorded as healthy forever and never tripped.
778
+ //
779
+ // The message asks one question — did ANYTHING come back? — and does not
780
+ // try to work out why what came back was unusable.
781
+ //
782
+ // Two previous versions did try, and both were wrong in ways nobody
783
+ // noticed until an acceptance pass went looking. The first reported "no
784
+ // content" for anything that yielded no text, so an HTML error page, plain
785
+ // prose and a gateway that ignored `stream: true` were all described as
786
+ // empty. The second tested whether the body looked like SSE, and got three
787
+ // more cases backwards: a stream in a dialect this parser does not read
788
+ // (Anthropic's, on a route configured as OpenAI's) has its real answer
789
+ // discarded and called empty; SSE comment keepalives — `: OPENROUTER
790
+ // PROCESSING`, sent by a real provider — are well-formed SSE carrying
791
+ // nothing and were called an unexpected shape; and an HTML page containing
792
+ // any `data:` line was called empty.
793
+ //
794
+ // Each fix was right about the case in front of it and wrong one case
795
+ // over, which is the signal that the classification itself does not belong
796
+ // here. This dispatcher knows one thing for certain: whether bytes
797
+ // arrived. Everything else is the reader's to judge, and showing them the
798
+ // body is what lets them. A well-formed empty stream now reports its own
799
+ // `data: [DONE]` rather than a friendlier sentence about it — less
800
+ // polished, and it cannot be wrong.
801
+ const emptyAnswer = streamError === undefined && output.length === 0;
802
+ const result = streamError !== undefined || emptyAnswer
655
803
  ? {
656
804
  output,
657
805
  service: this.id,
658
806
  success: false,
659
- error: streamError,
807
+ error: streamError ?? describeUnusableBody(rawSeen),
660
808
  durationMs: Date.now() - start,
661
809
  rateLimitHeaders: responseHeaders,
662
810
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../src/dispatchers/openai-compatible.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../src/dispatchers/openai-compatible.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Asks a harness CLI whether it is logged in.
3
+ *
4
+ * `doctor` reported a Codex route as `ok` on routes, billing and safety while
5
+ * the CLI had never been logged in, and the first dispatch then failed with a
6
+ * raw OpenAI `401 Unauthorized ... Missing bearer` — a message from a
7
+ * different product, with no mention of `codex login`. Nothing here read the
8
+ * credential file on purpose: Codex accepts a ChatGPT login, an API key via
9
+ * `codex login --with-api-key`, and honours its own CODEX_HOME, so the only
10
+ * answer that is right in every case is the one the CLI itself gives.
11
+ *
12
+ * `codex login status` prints "Logged in using ChatGPT" / "Logged in using an
13
+ * API key" and exits 0, or "Not logged in" and exits 1 (codex-cli 0.152.1,
14
+ * checked both ways). Anything else — no such subcommand on an older build,
15
+ * a spawn failure, a hang — is `unknown`, and doctor treats unknown as "could
16
+ * not tell", never as a failure, so a Codex build this cannot read does not
17
+ * fail a working install.
18
+ *
19
+ * Only Codex today. The other harnesses have no equivalent subcommand this
20
+ * tool has verified; guessing at their credential files would reintroduce the
21
+ * false-negative risk this avoids.
22
+ */
23
+ export type LoginState = "logged_in" | "logged_out" | "unknown";
24
+ export declare function codexLoginState(command: string, timeoutMs?: number): Promise<LoginState>;
25
+ //# sourceMappingURL=harness-login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-login.d.ts","sourceRoot":"","sources":["../../../src/dispatchers/shared/harness-login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;AAEhE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAsCxF"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Asks a harness CLI whether it is logged in.
3
+ *
4
+ * `doctor` reported a Codex route as `ok` on routes, billing and safety while
5
+ * the CLI had never been logged in, and the first dispatch then failed with a
6
+ * raw OpenAI `401 Unauthorized ... Missing bearer` — a message from a
7
+ * different product, with no mention of `codex login`. Nothing here read the
8
+ * credential file on purpose: Codex accepts a ChatGPT login, an API key via
9
+ * `codex login --with-api-key`, and honours its own CODEX_HOME, so the only
10
+ * answer that is right in every case is the one the CLI itself gives.
11
+ *
12
+ * `codex login status` prints "Logged in using ChatGPT" / "Logged in using an
13
+ * API key" and exits 0, or "Not logged in" and exits 1 (codex-cli 0.152.1,
14
+ * checked both ways). Anything else — no such subcommand on an older build,
15
+ * a spawn failure, a hang — is `unknown`, and doctor treats unknown as "could
16
+ * not tell", never as a failure, so a Codex build this cannot read does not
17
+ * fail a working install.
18
+ *
19
+ * Only Codex today. The other harnesses have no equivalent subcommand this
20
+ * tool has verified; guessing at their credential files would reintroduce the
21
+ * false-negative risk this avoids.
22
+ */
23
+ import spawn from "cross-spawn";
24
+ export function codexLoginState(command, timeoutMs = 15_000) {
25
+ return new Promise((resolve) => {
26
+ let settled = false;
27
+ const finish = (state) => {
28
+ if (settled)
29
+ return;
30
+ settled = true;
31
+ clearTimeout(timer);
32
+ resolve(state);
33
+ };
34
+ let child;
35
+ try {
36
+ child = spawn(command, ["login", "status"], {
37
+ stdio: ["ignore", "pipe", "pipe"],
38
+ windowsHide: true,
39
+ });
40
+ }
41
+ catch {
42
+ resolve("unknown");
43
+ return;
44
+ }
45
+ const timer = setTimeout(() => {
46
+ child.kill();
47
+ finish("unknown");
48
+ }, timeoutMs);
49
+ timer.unref();
50
+ let output = "";
51
+ child.stdout?.on("data", (chunk) => {
52
+ output += chunk.toString("utf8");
53
+ });
54
+ child.stderr?.on("data", (chunk) => {
55
+ output += chunk.toString("utf8");
56
+ });
57
+ child.on("error", () => finish("unknown"));
58
+ child.on("close", (code) => {
59
+ if (code === 0)
60
+ finish("logged_in");
61
+ else if (/not logged in/i.test(output))
62
+ finish("logged_out");
63
+ else
64
+ finish("unknown");
65
+ });
66
+ });
67
+ }
68
+ //# sourceMappingURL=harness-login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-login.js","sourceRoot":"","sources":["../../../src/dispatchers/shared/harness-login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,MAAM,aAAa,CAAC;AAIhC,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,SAAS,GAAG,MAAM;IACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,KAAiB,EAAQ,EAAE;YACzC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,IAAI,KAA+B,CAAC;QACpC,IAAI,CAAC;YACH,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;gBAC1C,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,SAAS,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC;gBAAE,MAAM,CAAC,WAAW,CAAC,CAAC;iBAC/B,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,YAAY,CAAC,CAAC;;gBACxD,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stream-subprocess.d.ts","sourceRoot":"","sources":["../../../src/dispatchers/shared/stream-subprocess.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAAG,eAAe,GAAG,aAAa,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,GAAE,oBAAyB,GAC9B,aAAa,CAAC,qBAAqB,CAAC,CAkBtC;AAsQD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,aAAa,CAAC,qBAAqB,CAAC,GACzC,OAAO,CAAC,aAAa,CAAC,CA0BxB"}
1
+ {"version":3,"file":"stream-subprocess.d.ts","sourceRoot":"","sources":["../../../src/dispatchers/shared/stream-subprocess.ts"],"names":[],"mappings":"AAuCA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAAG,eAAe,GAAG,aAAa,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,GAAE,oBAAyB,GAC9B,aAAa,CAAC,qBAAqB,CAAC,CAkBtC;AAqSD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,aAAa,CAAC,qBAAqB,CAAC,GACzC,OAAO,CAAC,aAAa,CAAC,CA0BxB"}