llm-relay 0.14.2 → 0.14.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dispatch.js CHANGED
@@ -85,24 +85,24 @@ function normalizeTtl(ttlMs) {
85
85
  *
86
86
  * Unknown id is not an error: a host walking a ladder it half-remembers should not get a 500.
87
87
  */
88
- export function markExhausted(cfg, id, ttlMs = DEFAULT_EXHAUSTED_MS) {
88
+ export function markExhausted(cfg, id, ttlMs = DEFAULT_EXHAUSTED_MS, tier) {
89
89
  if (typeof id !== "string" || id.length === 0)
90
90
  return false;
91
- const rung = (cfg.routing.ladder ?? []).find((r) => r.id === id);
91
+ const rung = selectLadder(cfg, tier).rungs.find((r) => r.id === id);
92
92
  if (!rung)
93
93
  return false;
94
94
  cooldownsFor(cfg).set(cooldownKey(rung), Date.now() + normalizeTtl(ttlMs));
95
95
  return true;
96
96
  }
97
97
  /** Clear one rung's cooldown, or every cooldown for this config when no id is given. */
98
- export function clearExhausted(cfg, id) {
98
+ export function clearExhausted(cfg, id, tier) {
99
99
  if (id === undefined) {
100
100
  cooldownsFor(cfg).clear();
101
101
  return;
102
102
  }
103
103
  if (typeof id !== "string")
104
104
  return;
105
- const rung = (cfg.routing.ladder ?? []).find((r) => r.id === id);
105
+ const rung = selectLadder(cfg, tier).rungs.find((r) => r.id === id);
106
106
  if (rung)
107
107
  cooldownsFor(cfg).delete(cooldownKey(rung));
108
108
  }
@@ -142,8 +142,30 @@ function normalizeOptions(opts) {
142
142
  const after = str(opts.after);
143
143
  if (after !== undefined)
144
144
  out.after = after;
145
+ const tier = str(opts.tier);
146
+ if (tier !== undefined)
147
+ out.tier = tier;
145
148
  return out;
146
149
  }
150
+ function inferredTier(cfg) {
151
+ const ladders = cfg.routing.ladders;
152
+ if (!ladders)
153
+ return undefined;
154
+ const dflt = cfg.routing.subagents?.default;
155
+ if (dflt?.startsWith("pool/") && ladders[dflt.slice("pool/".length)])
156
+ return dflt.slice("pool/".length);
157
+ if (ladders.coding)
158
+ return "coding";
159
+ return Object.keys(ladders)[0];
160
+ }
161
+ function selectLadder(cfg, requested) {
162
+ if (!cfg.routing.ladders)
163
+ return { tier: null, rungs: cfg.routing.ladder ?? [] };
164
+ const tier = requested ?? inferredTier(cfg);
165
+ if (!tier || !cfg.routing.ladders[tier])
166
+ return { tier: tier ?? null, rungs: [], ...(tier ? { missing: tier } : {}) };
167
+ return { tier, rungs: cfg.routing.ladders[tier] };
168
+ }
147
169
  /** C0 + C1 control characters, including ESC — never legal in a rung id, and the ANSI carrier. */
148
170
  const CONTROL_CHARS = /[\u0000-\u001f\u007f-\u009f]/g;
149
171
  /**
@@ -184,11 +206,22 @@ function toLane(rung, position, cfg, opts, now) {
184
206
  export function buildDispatch(cfg, rawOpts = {}) {
185
207
  const opts = normalizeOptions(rawOpts ?? {});
186
208
  const now = Date.now();
187
- const rungs = cfg.routing.ladder ?? [];
209
+ const selected = selectLadder(cfg, opts.tier);
210
+ const rungs = selected.rungs;
188
211
  const ladder = rungs.map((r, i) => toLane(r, i + 1, cfg, opts, now));
189
212
  const offload = cfg.routing.offload === true;
213
+ if (selected.missing) {
214
+ return {
215
+ tier: selected.tier,
216
+ offload,
217
+ ladder,
218
+ next: null,
219
+ reason: `no dispatch tier "${describeId(selected.missing)}" configured (have: ${Object.keys(cfg.routing.ladders ?? {}).join(", ")})`,
220
+ };
221
+ }
190
222
  if (ladder.length === 0) {
191
223
  return {
224
+ tier: selected.tier,
192
225
  offload,
193
226
  ladder,
194
227
  next: null,
@@ -199,6 +232,7 @@ export function buildDispatch(cfg, rawOpts = {}) {
199
232
  const forced = ladder.find((l) => l.id === opts.lane);
200
233
  if (!forced) {
201
234
  return {
235
+ tier: selected.tier,
202
236
  offload,
203
237
  ladder,
204
238
  next: null,
@@ -208,6 +242,7 @@ export function buildDispatch(cfg, rawOpts = {}) {
208
242
  // An explicit override is honoured even when the rung is cooling down or parked: the host
209
243
  // asked for THIS target, and second-guessing it would defeat the point of an override.
210
244
  return {
245
+ tier: selected.tier,
211
246
  offload,
212
247
  ladder,
213
248
  next: forced,
@@ -221,6 +256,7 @@ export function buildDispatch(cfg, rawOpts = {}) {
221
256
  const idx = ladder.findIndex((l) => l.id === opts.after);
222
257
  if (idx < 0) {
223
258
  return {
259
+ tier: selected.tier,
224
260
  offload,
225
261
  ladder,
226
262
  next: null,
@@ -232,6 +268,7 @@ export function buildDispatch(cfg, rawOpts = {}) {
232
268
  const next = pool.find((l) => l.state === "ready") ?? null;
233
269
  if (!next) {
234
270
  return {
271
+ tier: selected.tier,
235
272
  offload,
236
273
  ladder,
237
274
  next: null,
@@ -245,6 +282,6 @@ export function buildDispatch(cfg, rawOpts = {}) {
245
282
  : next.position === 1
246
283
  ? "first lane in the ladder"
247
284
  : `first ready lane (${next.position - 1} ahead of it unavailable)`;
248
- return { offload, ladder, next, reason: why };
285
+ return { tier: selected.tier, offload, ladder, next, reason: why };
249
286
  }
250
287
  //# sourceMappingURL=dispatch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH;uEACuE;AACvE,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzD,8EAA8E;AAC9E,MAAM,aAAa,GAAG,GAAG,CAAC;AAkD1B;;;;;;;;;;;;GAYG;AACH,MAAM,SAAS,GAAG,IAAI,OAAO,EAA+B,CAAC;AAE7D,yFAAyF;AACzF,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9B,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,IAAgB;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,IAAgB,EAAE,GAAW;IAC/D,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,oBAAoB,CAAC;IACtF,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAW,EACX,EAAU,EACV,QAAgB,oBAAoB,EACpC,IAAa;IAEb,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,EAAW,EAAE,IAAa;IACpE,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,QAAQ;QAAE,OAAO;IACnC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,IAAI;QAAE,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,gBAAgB,CAAC,IAAqB;IAC7C,MAAM,GAAG,GAAG,CAAC,CAAU,EAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxG,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAClE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5C,IAAI,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxG,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,SAAkB;IACnD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IACjF,MAAM,IAAI,GAAG,SAAS,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACtH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,kGAAkG;AAClG,MAAM,aAAa,GAAG,+BAA+B,CAAC;AAEtD;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,EAAU;IAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AACzF,CAAC;AAED,SAAS,MAAM,CAAC,IAAgB,EAAE,QAAgB,EAAE,GAAW,EAAE,IAAqB,EAAE,GAAW;IACjG,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;IAE7F,MAAM,IAAI,GAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7E,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACxC,IAAI,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrC,IAAI,KAAK,KAAK,IAAI;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAEjE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,sFAAsF;YACtF,8EAA8E;YAC9E,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;SAC5G,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,UAA2B,EAAE;IACtE,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;IAE7C,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO;YACP,MAAM;YACN,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,qBAAqB,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SACrI,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO;YACP,MAAM;YACN,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,uEAAuE;SAChF,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO;gBACP,MAAM;gBACN,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,YAAY,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aACzG,CAAC;QACJ,CAAC;QACD,0FAA0F;QAC1F,uFAAuF;QACvF,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO;YACP,MAAM;YACN,IAAI,EAAE,MAAM;YACZ,MAAM,EACJ,MAAM,CAAC,KAAK,KAAK,OAAO;gBACtB,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,6BAA6B;gBACjD,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,0CAA0C,MAAM,CAAC,KAAK,GAAG;SAClF,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO;gBACP,MAAM;gBACN,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,YAAY,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC1G,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC;IAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO;YACP,MAAM;YACN,IAAI,EAAE,IAAI;YACV,MAAM,EACJ,IAAI,CAAC,KAAK,KAAK,SAAS;gBACtB,CAAC,CAAC,wBAAwB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B;gBAC7E,CAAC,CAAC,qCAAqC;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GACP,IAAI,CAAC,KAAK,KAAK,SAAS;QACtB,CAAC,CAAC,2BAA2B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;QACtD,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC;YACnB,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,qBAAqB,IAAI,CAAC,QAAQ,GAAG,CAAC,2BAA2B,CAAC;IAC1E,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Config } from "./config.js";
2
+ import type { ModelCatalog } from "./catalog.js";
3
+ /**
4
+ * Materialize every dynamic pool as:
5
+ *
6
+ * fixed preferred prefix -> every discovered free target in benchmark order
7
+ *
8
+ * Catalog discovery is deliberately synchronous here: startup warms catalogs in the background,
9
+ * while the on-disk cache makes restarts immediately useful. Re-materializing after a refresh
10
+ * replaces the tail rather than accumulating stale models.
11
+ */
12
+ export declare function materializeDynamicPools(cfg: Config, catalog: ModelCatalog): void;
@@ -0,0 +1,53 @@
1
+ import { rankTargetsByBenchmark, specOfTarget } from "./benchmarks.js";
2
+ /**
3
+ * Materialize every dynamic pool as:
4
+ *
5
+ * fixed preferred prefix -> every discovered free target in benchmark order
6
+ *
7
+ * Catalog discovery is deliberately synchronous here: startup warms catalogs in the background,
8
+ * while the on-disk cache makes restarts immediately useful. Re-materializing after a refresh
9
+ * replaces the tail rather than accumulating stale models.
10
+ */
11
+ export function materializeDynamicPools(cfg, catalog) {
12
+ if (!cfg.routing.poolPolicies || !cfg.routing.pools)
13
+ return;
14
+ for (const [pool, policy] of Object.entries(cfg.routing.poolPolicies)) {
15
+ const seen = new Set(policy.preferred);
16
+ const discovered = [];
17
+ for (const [provider, p] of Object.entries(cfg.providers)) {
18
+ if (p.kind !== "openai")
19
+ continue;
20
+ for (const model of catalog.cachedModels(provider)) {
21
+ const spec = `${provider}/${model}`;
22
+ if (seen.has(spec))
23
+ continue;
24
+ const limits = catalog.cachedLimits(provider, model);
25
+ const inPrice = limits?.pricePromptPerToken;
26
+ const outPrice = limits?.priceCompletionPerToken;
27
+ const explicitlyZeroPriced = inPrice === 0 && outPrice === 0;
28
+ const explicitlyFreeNamed = /(?:^|[/:_-])free(?:$|[/:_-])/i.test(model);
29
+ const knownPaid = (typeof inPrice === "number" && inPrice > 0) || (typeof outPrice === "number" && outPrice > 0);
30
+ // A known positive price always wins. Mixed catalogs (OpenRouter/OpenCode/Kilo) otherwise
31
+ // contribute only zero-priced or explicitly `free`-named models; genuinely free-tier
32
+ // providers may contribute unknown-priced models because many publish no prices at all.
33
+ if (knownPaid)
34
+ continue;
35
+ if (!explicitlyZeroPriced && !explicitlyFreeNamed && p.tierType !== "free")
36
+ continue;
37
+ discovered.push({
38
+ provider,
39
+ model,
40
+ base: p.base,
41
+ kind: p.kind,
42
+ authHeader: p.authHeader,
43
+ timeoutMs: p.timeoutMs,
44
+ ...(p.authEnv ? { authEnv: p.authEnv } : {}),
45
+ });
46
+ seen.add(spec);
47
+ }
48
+ }
49
+ const rankedTail = rankTargetsByBenchmark(discovered).map(specOfTarget);
50
+ cfg.routing.pools[pool] = [...policy.preferred, ...rankedTail];
51
+ }
52
+ }
53
+ //# sourceMappingURL=dynamic-pools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-pools.js","sourceRoot":"","sources":["../src/dynamic-pools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAW,EAAE,OAAqB;IACxE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO;IAE5D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAClC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,GAAG,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAE7B,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACrD,MAAM,OAAO,GAAG,MAAM,EAAE,mBAAmB,CAAC;gBAC5C,MAAM,QAAQ,GAAG,MAAM,EAAE,uBAAuB,CAAC;gBACjD,MAAM,oBAAoB,GAAG,OAAO,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC;gBAC7D,MAAM,mBAAmB,GAAG,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,SAAS,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAEjH,0FAA0F;gBAC1F,qFAAqF;gBACrF,wFAAwF;gBACxF,IAAI,SAAS;oBAAE,SAAS;gBACxB,IAAI,CAAC,oBAAoB,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;oBAAE,SAAS;gBAErF,UAAU,CAAC,IAAI,CAAC;oBACd,QAAQ;oBACR,KAAK;oBACL,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC7C,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
@@ -96,9 +96,9 @@ function probeHeaders(p, apiKey) {
96
96
  * Anything else means the endpoint is public and tells us nothing.
97
97
  * On a network error we assume it IS gated — never downgrade a working key on a blip.
98
98
  */
99
- async function isAuthGated(url, fetchFn) {
99
+ async function isAuthGated(p, url, fetchFn) {
100
100
  try {
101
- const bare = await fetchFn(url, { method: "GET", headers: { "Content-Type": "application/json" }, ...withTimeout() });
101
+ const bare = await fetchFn(url, { method: "GET", headers: probeHeaders(p, undefined), ...withTimeout() });
102
102
  return bare.status === 401 || bare.status === 403;
103
103
  }
104
104
  catch {
@@ -140,7 +140,7 @@ async function probeAuthenticated(p, apiKey, fetchFn, modelId) {
140
140
  // rather than accuse a working key.
141
141
  const anon = await fetchFn(url, {
142
142
  method: "POST",
143
- headers: { "Content-Type": "application/json" },
143
+ headers: probeHeaders(p, undefined),
144
144
  body,
145
145
  ...withTimeout(),
146
146
  });
@@ -271,7 +271,7 @@ export async function validateProviderKeys(cfg, fetchFn = fetch, opts = {}) {
271
271
  // likely to be reachable on their plan.
272
272
  const probeModel = routed.get(name) ?? firstModelId;
273
273
  if (resp.ok && apiKey && url.endsWith("/models") && probeModel) {
274
- const gated = await isAuthGated(url, fetchFn);
274
+ const gated = await isAuthGated(p, url, fetchFn);
275
275
  if (!gated) {
276
276
  const verdict = await probeAuthenticated(p, apiKey, fetchFn, probeModel);
277
277
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"key-checker.js","sourceRoot":"","sources":["../src/key-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-checker.js","sourceRoot":"","sources":["../src/key-checker.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { Config } from "./config.js";
1
+ import type { Config, ProviderTierType } from "./config.js";
2
2
  export interface OnboardingStatus {
3
3
  provider: string;
4
4
  displayName: string;
5
- tierType: "free" | "subscription";
5
+ tierType: ProviderTierType;
6
6
  authEnv: string;
7
7
  hasKey: boolean;
8
8
  signupUrl?: string | undefined;
@@ -51,6 +51,7 @@ export function getOnboardingStatusList(cfg) {
51
51
  export function printOnboardingGuide(cfg) {
52
52
  const statuses = getOnboardingStatusList(cfg);
53
53
  const freeProviders = statuses.filter((s) => s.tierType === "free");
54
+ const mixedProviders = statuses.filter((s) => s.tierType === "mixed");
54
55
  const subProviders = statuses.filter((s) => s.tierType === "subscription");
55
56
  console.log("\n=== llm-relay: Free Models & Subscription Pooling Onboarding ===\n");
56
57
  console.log("🟢 100%-FREE MODEL PROVIDERS:");
@@ -62,6 +63,15 @@ export function printOnboardingGuide(cfg) {
62
63
  console.log(` 👉 Get your 100% FREE key here: ${p.signupUrl}`);
63
64
  }
64
65
  }
66
+ console.log("\n🟡 MIXED CATALOGS (Free Models + Paid Models):");
67
+ for (const p of mixedProviders) {
68
+ const statusTag = p.hasKey ? "✅ Ready" : "❌ Missing Key";
69
+ console.log(` • ${p.displayName} [${statusTag}]`);
70
+ console.log(` Env: ${p.authEnv ? `$${p.authEnv}` : "(none required)"}`);
71
+ if (!p.hasKey && p.signupUrl) {
72
+ console.log(` 👉 Get a key for the provider's free models: ${p.signupUrl}`);
73
+ }
74
+ }
65
75
  console.log("\n🔵 SUBSCRIPTION PROVIDERS (Pooled Quota):");
66
76
  for (const p of subProviders) {
67
77
  const statusTag = p.hasKey ? "✅ Pooled" : "⚪ Not Configured";
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../src/onboarding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../src/onboarding.ts"],"names":[],"mappings":"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"}
package/dist/presets.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import type { ProviderConfig } from "./config.js";
1
+ import type { ProviderConfig, ProviderTierType } from "./config.js";
2
2
  export interface PresetProvider extends ProviderConfig {
3
3
  name: string;
4
4
  displayName: string;
5
5
  signupUrl?: string;
6
- tierType: "free" | "subscription";
6
+ tierType: ProviderTierType;
7
7
  recommendedModels: string[];
8
8
  }
9
- /** 100%-Free provider presets with direct signup URLs and recommended models. */
9
+ /** Providers offering free models or free-tier quota, with direct signup URLs. */
10
10
  export declare const FREE_PROVIDER_PRESETS: Record<string, PresetProvider>;
11
11
  /** User subscription templates for pooling subscription quotas. */
12
12
  export declare const SUBSCRIPTION_PROVIDER_PRESETS: Record<string, PresetProvider>;
package/dist/presets.js CHANGED
@@ -1,4 +1,4 @@
1
- /** 100%-Free provider presets with direct signup URLs and recommended models. */
1
+ /** Providers offering free models or free-tier quota, with direct signup URLs. */
2
2
  export const FREE_PROVIDER_PRESETS = {
3
3
  nim: {
4
4
  name: "nim",
@@ -57,7 +57,7 @@ export const FREE_PROVIDER_PRESETS = {
57
57
  authEnv: "OPENROUTER_API_KEY",
58
58
  authHeader: "authorization",
59
59
  timeoutMs: 120000,
60
- tierType: "free",
60
+ tierType: "mixed",
61
61
  signupUrl: "https://openrouter.ai/keys",
62
62
  recommendedModels: [
63
63
  "openrouter/free",
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
@@ -80,17 +80,19 @@ export async function handleAdminRoutes(req, res, pathname, path, started, reqJs
80
80
  return true;
81
81
  }
82
82
  if ((req.method === "GET" || req.method === "POST") && pathname === "/dispatch") {
83
+ let bodyTier;
83
84
  if (req.method === "POST") {
84
85
  const body = (reqJson ?? {});
85
86
  const ttlMs = typeof body.ttlMs === "number" ? body.ttlMs : undefined;
87
+ bodyTier = typeof body.tier === "string" ? body.tier : undefined;
86
88
  if (typeof body.clear === "string") {
87
- clearExhausted(cfg, body.clear);
89
+ clearExhausted(cfg, body.clear, bodyTier);
88
90
  }
89
91
  else if (body.clear === true) {
90
92
  clearExhausted(cfg);
91
93
  }
92
94
  else if (typeof body.exhausted === "string") {
93
- if (!markExhausted(cfg, body.exhausted, ttlMs)) {
95
+ if (!markExhausted(cfg, body.exhausted, ttlMs, bodyTier)) {
94
96
  failClosed(res, 400, `POST /dispatch: no lane "${body.exhausted}" in routing.ladder`);
95
97
  h.logger.write(baseLog(started, path, false, false, 400, "skipped", null));
96
98
  return true;
@@ -113,6 +115,7 @@ export async function handleAdminRoutes(req, res, pathname, path, started, reqJs
113
115
  ...(taskParam ? { task: taskParam } : {}),
114
116
  ...(pickQuery(path, "lane") ? { lane: pickQuery(path, "lane") } : {}),
115
117
  ...(pickQuery(path, "after") ? { after: pickQuery(path, "after") } : {}),
118
+ ...((pickQuery(path, "tier") ?? bodyTier) ? { tier: (pickQuery(path, "tier") ?? bodyTier) } : {}),
116
119
  });
117
120
  res.writeHead(200, { "content-type": "application/json" });
118
121
  res.end(JSON.stringify(view, null, 2));
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/routes/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/routes/admin.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { createServer } from "node:http";
2
- import { once } from "node:events";
3
2
  import { DEFAULT_ANTHROPIC_VERSION, resolveTargets, reshaperForTarget, subagentSpec, RoutingError, } from "./config.js";
4
3
  import { MetadataLogger } from "./log.js";
5
4
  import { credentialState } from "./authEnv.js";
@@ -16,6 +15,7 @@ import { PingLoop } from "./ping/cadence.js";
16
15
  import { recordModelCall } from "./ping/runtime-telemetry.js";
17
16
  import { globalCircuitBreaker } from "./circuit-breaker.js";
18
17
  import { estimateRequestTokens } from "./metadata.js";
18
+ import { materializeDynamicPools } from "./dynamic-pools.js";
19
19
  const HOP_BY_HOP = new Set([
20
20
  "connection", "keep-alive", "proxy-authenticate", "proxy-authorization",
21
21
  "te", "trailer", "transfer-encoding", "upgrade", "content-length", "content-encoding", "host",
@@ -191,6 +191,7 @@ async function handle(req, res, cfg, h) {
191
191
  // routing.tiers stay pointed at an Anthropic passthrough.
192
192
  const subSpec = isMessages ? subagentSpec(reqJson, model, cfg) : null;
193
193
  const routedModel = subSpec ?? model;
194
+ materializeDynamicPools(cfg, h.catalog);
194
195
  // Re-serialize whenever a subagent spec applied — the @relay: line was stripped from reqJson
195
196
  // in place, and it must not reach the backend even when the spec matches the nominal model.
196
197
  if (subSpec !== null)
@@ -279,6 +280,8 @@ async function handle(req, res, cfg, h) {
279
280
  }
280
281
  // Candidate execution loop with failover across healthyTargets
281
282
  for (let i = 0; i < healthyTargets.length; i++) {
283
+ if (res.destroyed)
284
+ break;
282
285
  target = healthyTargets[i];
283
286
  const controller = new AbortController();
284
287
  const timer = setTimeout(() => controller.abort(), target.timeoutMs);
@@ -319,7 +322,7 @@ async function handle(req, res, cfg, h) {
319
322
  globalCircuitBreaker.recordOutcome(target, { ok: false, status, elapsedMs: Date.now() - started });
320
323
  recordCall(target, false, started);
321
324
  // Failover if additional candidates exist
322
- if (i < healthyTargets.length - 1) {
325
+ if (!res.destroyed && i < healthyTargets.length - 1) {
323
326
  continue;
324
327
  }
325
328
  failClosed(res, status, aborted ? "backend timed out" : `backend unreachable: ${e.message}`);
@@ -339,7 +342,7 @@ async function handle(req, res, cfg, h) {
339
342
  const cls = classifyStatus(backendRes.status);
340
343
  const retryAfterMs = parseRetryAfterMs(backendRes.headers.get("retry-after"));
341
344
  const tryNext = recordAttempt(target, cls, backendRes.status, started, retryAfterMs);
342
- if (tryNext && i < healthyTargets.length - 1) {
345
+ if (tryNext && !res.destroyed && i < healthyTargets.length - 1) {
343
346
  clearTimeout(timer);
344
347
  res.off("close", onResClose);
345
348
  continue; // Failover to next target
@@ -470,6 +473,8 @@ function recordCall(target, ok, started) {
470
473
  async function openAiFrontPath(res, candidates, ctx, h) {
471
474
  const tried = [];
472
475
  for (let i = 0; i < candidates.length; i++) {
476
+ if (res.destroyed)
477
+ break;
473
478
  const target = candidates[i];
474
479
  const isLast = i === candidates.length - 1;
475
480
  tried.push(specOf(target));
@@ -493,7 +498,7 @@ async function openAiFrontPath(res, candidates, ctx, h) {
493
498
  recordCall(target, false, ctx.started);
494
499
  // The client hanging up aborts every candidate; walking the rest would be pointless work
495
500
  // against a socket nobody is reading.
496
- if (!isLast && !res.writableEnded)
501
+ if (!isLast && !res.writableEnded && !res.destroyed)
497
502
  continue;
498
503
  if (!res.headersSent) {
499
504
  res.writeHead(status, { "content-type": "application/json", [SERVED_BY_HEADER]: tried.join(", ") });
@@ -505,7 +510,7 @@ async function openAiFrontPath(res, candidates, ctx, h) {
505
510
  const cls = classifyStatus(upstream.status);
506
511
  const retryAfterMs = parseRetryAfterMs(upstream.headers.get("retry-after"));
507
512
  const tryNext = recordAttempt(target, cls, upstream.status, ctx.started, retryAfterMs);
508
- if (tryNext && !isLast && !res.writableEnded) {
513
+ if (tryNext && !isLast && !res.writableEnded && !res.destroyed) {
509
514
  clearTimeout(timer);
510
515
  res.off("close", onResClose);
511
516
  // Release the skipped candidate's socket — an un-consumed body holds the connection open.
@@ -1166,7 +1171,20 @@ async function writeChunk(res, chunk) {
1166
1171
  try {
1167
1172
  const ok = res.write(chunk);
1168
1173
  if (!ok && !res.destroyed && !res.writableEnded) {
1169
- await once(res, "drain");
1174
+ await new Promise((resolve) => {
1175
+ const cleanup = () => {
1176
+ res.removeListener("drain", onEvent);
1177
+ res.removeListener("close", onEvent);
1178
+ res.removeListener("error", onEvent);
1179
+ };
1180
+ const onEvent = () => {
1181
+ cleanup();
1182
+ resolve();
1183
+ };
1184
+ res.once("drain", onEvent);
1185
+ res.once("close", onEvent);
1186
+ res.once("error", onEvent);
1187
+ });
1170
1188
  }
1171
1189
  return !res.destroyed && !res.writableEnded;
1172
1190
  }