harness-dispatch 0.7.8 → 0.8.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 (114) hide show
  1. package/CHANGELOG.md +706 -1
  2. package/README.md +35 -5
  3. package/config.default.yaml +30 -2
  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/bin.d.ts.map +1 -1
  9. package/dist/bin.js +449 -21
  10. package/dist/bin.js.map +1 -1
  11. package/dist/breaker-store.d.ts +25 -1
  12. package/dist/breaker-store.d.ts.map +1 -1
  13. package/dist/breaker-store.js +193 -25
  14. package/dist/breaker-store.js.map +1 -1
  15. package/dist/client-register.d.ts +147 -0
  16. package/dist/client-register.d.ts.map +1 -0
  17. package/dist/client-register.js +380 -0
  18. package/dist/client-register.js.map +1 -0
  19. package/dist/config/validation.d.ts +29 -0
  20. package/dist/config/validation.d.ts.map +1 -1
  21. package/dist/config/validation.js +88 -0
  22. package/dist/config/validation.js.map +1 -1
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js +55 -2
  25. package/dist/config.js.map +1 -1
  26. package/dist/dispatch-log.d.ts +14 -0
  27. package/dist/dispatch-log.d.ts.map +1 -1
  28. package/dist/dispatch-log.js +3 -0
  29. package/dist/dispatch-log.js.map +1 -1
  30. package/dist/dispatchers/generic-cli.d.ts.map +1 -1
  31. package/dist/dispatchers/generic-cli.js +35 -0
  32. package/dist/dispatchers/generic-cli.js.map +1 -1
  33. package/dist/dispatchers/openai-compatible.d.ts +20 -4
  34. package/dist/dispatchers/openai-compatible.d.ts.map +1 -1
  35. package/dist/dispatchers/openai-compatible.js +145 -17
  36. package/dist/dispatchers/openai-compatible.js.map +1 -1
  37. package/dist/dispatchers/shared/rate-limit-headers.d.ts +4 -2
  38. package/dist/dispatchers/shared/rate-limit-headers.d.ts.map +1 -1
  39. package/dist/dispatchers/shared/rate-limit-headers.js +4 -2
  40. package/dist/dispatchers/shared/rate-limit-headers.js.map +1 -1
  41. package/dist/http/answer-stream.d.ts +52 -0
  42. package/dist/http/answer-stream.d.ts.map +1 -0
  43. package/dist/http/answer-stream.js +47 -0
  44. package/dist/http/answer-stream.js.map +1 -0
  45. package/dist/http/parse.d.ts.map +1 -1
  46. package/dist/http/parse.js +41 -0
  47. package/dist/http/parse.js.map +1 -1
  48. package/dist/http/server.d.ts.map +1 -1
  49. package/dist/http/server.js +102 -9
  50. package/dist/http/server.js.map +1 -1
  51. package/dist/jobs/store.d.ts.map +1 -1
  52. package/dist/jobs/store.js +45 -4
  53. package/dist/jobs/store.js.map +1 -1
  54. package/dist/jobs.d.ts +24 -0
  55. package/dist/jobs.d.ts.map +1 -1
  56. package/dist/jobs.js +101 -1
  57. package/dist/jobs.js.map +1 -1
  58. package/dist/mcp/config-hot-reload.d.ts.map +1 -1
  59. package/dist/mcp/config-hot-reload.js +10 -0
  60. package/dist/mcp/config-hot-reload.js.map +1 -1
  61. package/dist/mcp/near-miss-guard.d.ts +45 -0
  62. package/dist/mcp/near-miss-guard.d.ts.map +1 -0
  63. package/dist/mcp/near-miss-guard.js +98 -0
  64. package/dist/mcp/near-miss-guard.js.map +1 -0
  65. package/dist/mcp/server.d.ts.map +1 -1
  66. package/dist/mcp/server.js +36 -0
  67. package/dist/mcp/server.js.map +1 -1
  68. package/dist/mcp/tool-schemas.d.ts.map +1 -1
  69. package/dist/mcp/tool-schemas.js +21 -4
  70. package/dist/mcp/tool-schemas.js.map +1 -1
  71. package/dist/mcp/tools.d.ts +32 -0
  72. package/dist/mcp/tools.d.ts.map +1 -1
  73. package/dist/mcp/tools.js +41 -0
  74. package/dist/mcp/tools.js.map +1 -1
  75. package/dist/mcp-clients.d.ts +63 -0
  76. package/dist/mcp-clients.d.ts.map +1 -0
  77. package/dist/mcp-clients.js +117 -0
  78. package/dist/mcp-clients.js.map +1 -0
  79. package/dist/near-miss.d.ts +63 -0
  80. package/dist/near-miss.d.ts.map +1 -0
  81. package/dist/near-miss.js +132 -0
  82. package/dist/near-miss.js.map +1 -0
  83. package/dist/quota.d.ts +31 -1
  84. package/dist/quota.d.ts.map +1 -1
  85. package/dist/quota.js +68 -6
  86. package/dist/quota.js.map +1 -1
  87. package/dist/route-policy.d.ts +10 -0
  88. package/dist/route-policy.d.ts.map +1 -1
  89. package/dist/route-policy.js +20 -2
  90. package/dist/route-policy.js.map +1 -1
  91. package/dist/router.d.ts +61 -2
  92. package/dist/router.d.ts.map +1 -1
  93. package/dist/router.js +165 -29
  94. package/dist/router.js.map +1 -1
  95. package/dist/safety.d.ts.map +1 -1
  96. package/dist/safety.js +31 -1
  97. package/dist/safety.js.map +1 -1
  98. package/dist/status.d.ts +30 -21
  99. package/dist/status.d.ts.map +1 -1
  100. package/dist/status.js +152 -8
  101. package/dist/status.js.map +1 -1
  102. package/dist/types.d.ts +43 -1
  103. package/dist/types.d.ts.map +1 -1
  104. package/dist/working-dir.d.ts.map +1 -1
  105. package/dist/working-dir.js +16 -0
  106. package/dist/working-dir.js.map +1 -1
  107. package/dist/workspace-resolve.d.ts.map +1 -1
  108. package/dist/workspace-resolve.js +119 -15
  109. package/dist/workspace-resolve.js.map +1 -1
  110. package/dist/workspaces.d.ts +83 -0
  111. package/dist/workspaces.d.ts.map +1 -1
  112. package/dist/workspaces.js +288 -15
  113. package/dist/workspaces.js.map +1 -1
  114. package/package.json +4 -3
@@ -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;IAwH1B,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,YAAiB,GACtB,aAAa,CAAC,eAAe,CAAC;CAkQlC"}
@@ -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;
@@ -404,11 +480,18 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
404
480
  const responseHeaders = headersToObject(res.headers);
405
481
  const durationMs = Date.now() - start;
406
482
  let rawBody = "";
483
+ // Distinguished from an empty body, because they are different events with
484
+ // different fixes and this path used to state the wrong one as fact: a
485
+ // server that sent 200 plus a partial body and then reset the connection
486
+ // was reported as "the endpoint returned 200 with no body". The streaming
487
+ // path said "terminated" and kept the partial output for the same socket,
488
+ // so the two paths did not agree — while a comment claimed they did.
489
+ let bodyReadError;
407
490
  try {
408
491
  rawBody = await res.text();
409
492
  }
410
- catch {
411
- // Body read failed treat as empty.
493
+ catch (err) {
494
+ bodyReadError = err instanceof Error ? err.message : String(err);
412
495
  }
413
496
  const parsedBody = this.#parseBody(rawBody);
414
497
  if (res.status === 429) {
@@ -443,7 +526,10 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
443
526
  output: "",
444
527
  service: this.id,
445
528
  success: false,
446
- error: `Unexpected response shape: ${rawBody.slice(0, 300)}`,
529
+ // Same questions the streaming path asks, in the same order. This path
530
+ // used to emit a dangling "Unexpected response shape: " with nothing
531
+ // after the colon for an empty body — technically true and useless.
532
+ error: describeUnusableBody(rawBody, bodyReadError),
447
533
  durationMs,
448
534
  rateLimitHeaders: responseHeaders,
449
535
  };
@@ -554,6 +640,16 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
554
640
  // the trailing flush as one "frame" — use a regex boundary instead.
555
641
  const chunks = [];
556
642
  let buffer = "";
643
+ // The head of the body exactly as it arrived, kept because `buffer` is
644
+ // consumed frame by frame and is empty by the time a failure is reported.
645
+ // Without it the failure message could only say what was NOT found.
646
+ //
647
+ // Truncated to RAW_HEAD_CHARS, not "stopped once past it": the previous
648
+ // version appended whole chunks while under the limit, so one chunk could
649
+ // carry it to any length. That was invisible until it mattered — the same
650
+ // 2 KB body classified two different ways depending on how the network
651
+ // split it, decided by bytes the message never showed.
652
+ let rawSeen = "";
557
653
  // Merged across frames, not overwritten — Anthropic's input/output
558
654
  // token counts arrive on two DIFFERENT frames (see #parseSseFrame).
559
655
  let inputTokens;
@@ -589,7 +685,10 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
589
685
  const { value, done } = await reader.read();
590
686
  if (done)
591
687
  break;
592
- buffer += decoder.decode(value, { stream: true });
688
+ const text = decoder.decode(value, { stream: true });
689
+ buffer += text;
690
+ if (rawSeen.length < RAW_HEAD_CHARS)
691
+ rawSeen = (rawSeen + text).slice(0, RAW_HEAD_CHARS);
593
692
  let boundary = SSE_FRAME_BOUNDARY.exec(buffer);
594
693
  while (boundary !== null) {
595
694
  const frame = buffer.slice(0, boundary.index);
@@ -651,12 +750,41 @@ export class OpenAICompatibleDispatcher extends BaseDispatcher {
651
750
  streamError = evts.error;
652
751
  }
653
752
  const output = chunks.join("");
654
- const result = streamError !== undefined
753
+ // A 200 that yields no answer is not a successful empty answer. jobs.ts
754
+ // only ever streams, so the MCP surface (the primary one, and the one an
755
+ // orchestrating agent branches on) reported `success: true` with an empty
756
+ // output. The breaker heals on a success, so a route serving nothing but
757
+ // empty 200s was recorded as healthy forever and never tripped.
758
+ //
759
+ // The message asks one question — did ANYTHING come back? — and does not
760
+ // try to work out why what came back was unusable.
761
+ //
762
+ // Two previous versions did try, and both were wrong in ways nobody
763
+ // noticed until an acceptance pass went looking. The first reported "no
764
+ // content" for anything that yielded no text, so an HTML error page, plain
765
+ // prose and a gateway that ignored `stream: true` were all described as
766
+ // empty. The second tested whether the body looked like SSE, and got three
767
+ // more cases backwards: a stream in a dialect this parser does not read
768
+ // (Anthropic's, on a route configured as OpenAI's) has its real answer
769
+ // discarded and called empty; SSE comment keepalives — `: OPENROUTER
770
+ // PROCESSING`, sent by a real provider — are well-formed SSE carrying
771
+ // nothing and were called an unexpected shape; and an HTML page containing
772
+ // any `data:` line was called empty.
773
+ //
774
+ // Each fix was right about the case in front of it and wrong one case
775
+ // over, which is the signal that the classification itself does not belong
776
+ // here. This dispatcher knows one thing for certain: whether bytes
777
+ // arrived. Everything else is the reader's to judge, and showing them the
778
+ // body is what lets them. A well-formed empty stream now reports its own
779
+ // `data: [DONE]` rather than a friendlier sentence about it — less
780
+ // polished, and it cannot be wrong.
781
+ const emptyAnswer = streamError === undefined && output.length === 0;
782
+ const result = streamError !== undefined || emptyAnswer
655
783
  ? {
656
784
  output,
657
785
  service: this.id,
658
786
  success: false,
659
- error: streamError,
787
+ error: streamError ?? describeUnusableBody(rawSeen),
660
788
  durationMs: Date.now() - start,
661
789
  rateLimitHeaders: responseHeaders,
662
790
  }
@@ -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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"}
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * HTTP rate-limit header parsers.
3
3
  *
4
- * Ported from `src/coding_agent/dispatchers/utils.py` (parse_remaining,
5
- * parse_limit, parse_retry_after). Preserves the same key order and semantics:
4
+ * Ported from the Python v1's `src/coding_agent/dispatchers/utils.py`
5
+ * (parse_remaining, parse_limit, parse_retry_after) a path that no longer
6
+ * exists in this repo, kept as provenance. claims-check-ignore
7
+ * Preserves the same key order and semantics:
6
8
  * - matching is case-insensitive (headers are normalized to lowercase)
7
9
  * - numeric strings with commas are NOT supported here (matches Python)
8
10
  * - Retry-After may be a delta-seconds number or an HTTP-date
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit-headers.d.ts","sourceRoot":"","sources":["../../../src/dispatchers/shared/rate-limit-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA8DH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAO7E;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAOzE;AAED;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB,QAAe,CAAC;AAQhD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAE9E"}
1
+ {"version":3,"file":"rate-limit-headers.d.ts","sourceRoot":"","sources":["../../../src/dispatchers/shared/rate-limit-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8DH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAO7E;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAOzE;AAED;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB,QAAe,CAAC;AAQhD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAE9E"}
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * HTTP rate-limit header parsers.
3
3
  *
4
- * Ported from `src/coding_agent/dispatchers/utils.py` (parse_remaining,
5
- * parse_limit, parse_retry_after). Preserves the same key order and semantics:
4
+ * Ported from the Python v1's `src/coding_agent/dispatchers/utils.py`
5
+ * (parse_remaining, parse_limit, parse_retry_after) a path that no longer
6
+ * exists in this repo, kept as provenance. claims-check-ignore
7
+ * Preserves the same key order and semantics:
6
8
  * - matching is case-insensitive (headers are normalized to lowercase)
7
9
  * - numeric strings with commas are NOT supported here (matches Python)
8
10
  * - Retry-After may be a delta-seconds number or an HTTP-date
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit-headers.js","sourceRoot":"","sources":["../../../src/dispatchers/shared/rate-limit-headers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limit-headers.js","sourceRoot":"","sources":["../../../src/dispatchers/shared/rate-limit-headers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,cAAc,GAAG;IACrB,gCAAgC;IAChC,uBAAuB;IACvB,wCAAwC;IACxC,sCAAsC;IACtC,qBAAqB;CACb,CAAC;AAEX,MAAM,UAAU,GAAG;IACjB,4BAA4B;IAC5B,mBAAmB;IACnB,oCAAoC;IACpC,kCAAkC;IAClC,iBAAiB;CACT,CAAC;AAEX,MAAM,gBAAgB,GAAG;IACvB,aAAa;IACb,yBAAyB;CACjB,CAAC;AAEX,MAAM,gBAAgB,GAAG;IACvB,mBAAmB;IACnB,4BAA4B;IAC5B,0BAA0B;CAClB,CAAC;AAEX;;;GAGG;AACH,SAAS,KAAK,CAAC,OAA+B;IAC5C,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,GAAuB;IAC7C,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAChC,+CAA+C;IAC/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAuB;IAC/C,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,0DAA0D;IAC1D,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAA+B;IAC5D,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAA+B;IACxD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEhD,SAAS,KAAK,CAAC,OAAsB;IACnC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,OAAO,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA+B;IACzD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAEzB,mBAAmB;IACnB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,mEAAmE;IACnE,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;IACpC,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;YACvC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * What a streaming HTTP client should be shown, from what a dispatcher emits.
3
+ *
4
+ * WHY THIS IS A SEPARATE FUNCTION. The streaming branch forwarded every stdout
5
+ * chunk into `delta.content`. For an OpenAI-compatible endpoint that is
6
+ * correct — those chunks ARE the assistant's text. For a CLI harness they are
7
+ * protocol: a client concatenating deltas received
8
+ * `{"type":"thread.started",...}` and internal ids, while the non-streaming
9
+ * call on the same endpoint returned the parsed answer.
10
+ *
11
+ * It lives here, apart from the request handler, because the bug is only
12
+ * visible in the DIFFERENCE between those two event shapes — and a test that
13
+ * drives the HTTP server can only produce one of them per machine. An
14
+ * endpoint-backed test cannot tell "forward everything" from "forward the
15
+ * answer" (both look right), and a CLI-backed one depends on which harnesses
16
+ * happen to be installed, which is how a green test ends up proving nothing.
17
+ * As a function over an event sequence, both shapes are ordinary inputs.
18
+ */
19
+ import type { DispatcherEvent } from "../types.js";
20
+ /**
21
+ * Returns the text to emit for one event, or undefined for events a user
22
+ * should not see.
23
+ *
24
+ * Stateful by necessity: whether the final parsed answer should be sent
25
+ * depends on whether anything was already streamed. Sending both would deliver
26
+ * the answer twice.
27
+ */
28
+ export declare function createAnswerStream(): AnswerStream;
29
+ export interface AnswerStream {
30
+ /** Text to emit for this event, or undefined for events a user should not see. */
31
+ next(event: DispatcherEvent): string | undefined;
32
+ /**
33
+ * True once any answer text has been sent to the client.
34
+ *
35
+ * Once it is, this request is COMMITTED to the route that sent it, and a
36
+ * failure has to end the response rather than fall back.
37
+ *
38
+ * Falling back after streaming produced the worst of both: an acceptance
39
+ * pass measured an endpoint streaming "he", "llo ", then dying — the client
40
+ * got those two deltas and an error frame, while the dispatch log showed the
41
+ * fallback route had succeeded with 49 characters of output. The answer was
42
+ * produced, charged for, and thrown away, because a fresh answer cannot be
43
+ * spliced onto a half-sent one without garbling it.
44
+ *
45
+ * Stopping is the honest resolution: the client gets a truthful error
46
+ * instead of a mangled message, and no second route is billed for work that
47
+ * could never be delivered. Falling back BEFORE anything is sent still
48
+ * happens, which is the case fallback exists for.
49
+ */
50
+ readonly committed: boolean;
51
+ }
52
+ //# sourceMappingURL=answer-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-stream.d.ts","sourceRoot":"","sources":["../../src/http/answer-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAkBjD;AAED,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAAC;IACjD;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * What a streaming HTTP client should be shown, from what a dispatcher emits.
3
+ *
4
+ * WHY THIS IS A SEPARATE FUNCTION. The streaming branch forwarded every stdout
5
+ * chunk into `delta.content`. For an OpenAI-compatible endpoint that is
6
+ * correct — those chunks ARE the assistant's text. For a CLI harness they are
7
+ * protocol: a client concatenating deltas received
8
+ * `{"type":"thread.started",...}` and internal ids, while the non-streaming
9
+ * call on the same endpoint returned the parsed answer.
10
+ *
11
+ * It lives here, apart from the request handler, because the bug is only
12
+ * visible in the DIFFERENCE between those two event shapes — and a test that
13
+ * drives the HTTP server can only produce one of them per machine. An
14
+ * endpoint-backed test cannot tell "forward everything" from "forward the
15
+ * answer" (both look right), and a CLI-backed one depends on which harnesses
16
+ * happen to be installed, which is how a green test ends up proving nothing.
17
+ * As a function over an event sequence, both shapes are ordinary inputs.
18
+ */
19
+ /**
20
+ * Returns the text to emit for one event, or undefined for events a user
21
+ * should not see.
22
+ *
23
+ * Stateful by necessity: whether the final parsed answer should be sent
24
+ * depends on whether anything was already streamed. Sending both would deliver
25
+ * the answer twice.
26
+ */
27
+ export function createAnswerStream() {
28
+ let streamedAnswer = false;
29
+ return {
30
+ next(event) {
31
+ if (event.type === "stdout" && event.text === true) {
32
+ streamedAnswer = true;
33
+ return event.chunk;
34
+ }
35
+ if (event.type === "completion" && event.result.success) {
36
+ if (streamedAnswer || event.result.output === "")
37
+ return undefined;
38
+ return event.result.output;
39
+ }
40
+ return undefined;
41
+ },
42
+ get committed() {
43
+ return streamedAnswer;
44
+ },
45
+ };
46
+ }
47
+ //# sourceMappingURL=answer-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-stream.js","sourceRoot":"","sources":["../../src/http/answer-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,OAAO;QACL,IAAI,CAAC,KAAK;YACR,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnD,cAAc,GAAG,IAAI,CAAC;gBACtB,OAAO,KAAK,CAAC,KAAK,CAAC;YACrB,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxD,IAAI,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE;oBAAE,OAAO,SAAS,CAAC;gBACnE,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,SAAS;YACX,OAAO,cAAc,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -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;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"}
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;AAK/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;AA+QD,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,CA4EA;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"}