llm-relay 0.34.0 → 0.35.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.
- package/dist/backend.js +13 -4
- package/dist/backend.js.map +1 -1
- package/dist/catalog.js +52 -4
- package/dist/catalog.js.map +1 -1
- package/dist/cli.js +13 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +17 -0
- package/dist/config.js +13 -0
- package/dist/config.js.map +1 -1
- package/dist/onboarding.d.ts +10 -0
- package/dist/onboarding.js +25 -9
- package/dist/onboarding.js.map +1 -1
- package/dist/ping/runtime-telemetry.js +13 -2
- package/dist/ping/runtime-telemetry.js.map +1 -1
- package/dist/process-safety-net.d.ts +46 -0
- package/dist/process-safety-net.js +131 -0
- package/dist/process-safety-net.js.map +1 -0
- package/dist/refusal-interpretation.js +13 -0
- package/dist/refusal-interpretation.js.map +1 -1
- package/dist/repair.d.ts +7 -0
- package/dist/repair.js +155 -6
- package/dist/repair.js.map +1 -1
- package/dist/server.d.ts +27 -2
- package/dist/server.js +127 -10
- package/dist/server.js.map +1 -1
- package/dist/tool-dialects.js +45 -0
- package/dist/tool-dialects.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refusal-interpretation.js","sourceRoot":"","sources":["../src/refusal-interpretation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"refusal-interpretation.js","sourceRoot":"","sources":["../src/refusal-interpretation.ts"],"names":[],"mappings":"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"}
|
package/dist/repair.d.ts
CHANGED
|
@@ -30,6 +30,13 @@ export interface RepairDeps {
|
|
|
30
30
|
* only on what the backend sent.
|
|
31
31
|
*/
|
|
32
32
|
export declare function repair(assistant: AssistantMessage, tools: Map<string, JsonSchema | null>, deps: RepairDeps): Promise<RepairDecision>;
|
|
33
|
+
/**
|
|
34
|
+
* Repair double-encoded tool inputs across a message, returning the corrected message or null
|
|
35
|
+
* when nothing provable changed. Structure is conserved by construction — same blocks, same
|
|
36
|
+
* order, same tool_use ids and names, only `input` values decoded — so this needs no
|
|
37
|
+
* `guardReshaped`: it is not a collaborator, it is arithmetic on the schema.
|
|
38
|
+
*/
|
|
39
|
+
export declare function decodeDoubleEncodedInputs(message: AssistantMessage, tools: Map<string, JsonSchema | null>): AssistantMessage | null;
|
|
33
40
|
/**
|
|
34
41
|
* The post-reshape safety gate, taken on the message we are about to emit.
|
|
35
42
|
*
|
package/dist/repair.js
CHANGED
|
@@ -27,13 +27,28 @@ export async function repair(assistant, tools, deps) {
|
|
|
27
27
|
if (initialValidation.uncheckableCount > 0) {
|
|
28
28
|
return { outcome: "failed" };
|
|
29
29
|
}
|
|
30
|
-
//
|
|
31
|
-
//
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
//
|
|
30
|
+
// Deterministic pre-pass #1: double-encoded tool arguments (adoption review §1.7). Several
|
|
31
|
+
// free-tier models (GLM family prominently) emit nested JSON as a STRING —
|
|
32
|
+
// `{"plan": "[{\"step\":…}]"}` where the schema wants an array — or the whole input as its own
|
|
33
|
+
// JSON text. Both are provable from the declared schema alone, so decoding them here spends no
|
|
34
|
+
// reshaper round-trip and ships nothing to another provider. Anything unproven is untouched.
|
|
35
|
+
if (errors.length > 0) {
|
|
36
|
+
const decoded = decodeDoubleEncodedInputs(current, tools);
|
|
37
|
+
if (decoded !== null) {
|
|
38
|
+
const recheck = deps.validator.validate(decoded, tools);
|
|
39
|
+
if (recheck.valid)
|
|
40
|
+
return { outcome: "fixed", message: decoded };
|
|
41
|
+
errors = recheck.errors;
|
|
42
|
+
current = decoded;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Deterministic pre-pass #2: a stop_reason mismatch is PURE protocol form — the message
|
|
46
|
+
// carries tool_use blocks but announces some other stop_reason, so the harness never runs the
|
|
47
|
+
// tool. Fixing it needs no model — it is fully determined by the content — so do it here
|
|
48
|
+
// rather than paying a reshaper round-trip that also ships this request's tool schemas and
|
|
49
|
+
// arguments to another provider. Spreads `current` so it composes with pre-pass #1.
|
|
35
50
|
if (errors.length > 0 && errors.every((e) => e.kind === "stop_reason_mismatch")) {
|
|
36
|
-
const normalized = { ...
|
|
51
|
+
const normalized = { ...current, stop_reason: "tool_use" };
|
|
37
52
|
const recheck = deps.validator.validate(normalized, tools);
|
|
38
53
|
if (recheck.valid)
|
|
39
54
|
return { outcome: "fixed", message: normalized };
|
|
@@ -69,6 +84,140 @@ export async function repair(assistant, tools, deps) {
|
|
|
69
84
|
}
|
|
70
85
|
return { outcome: "failed" };
|
|
71
86
|
}
|
|
87
|
+
function schemaNode(v) {
|
|
88
|
+
if (v === null || typeof v !== "object")
|
|
89
|
+
return undefined;
|
|
90
|
+
const o = v;
|
|
91
|
+
return {
|
|
92
|
+
...(typeof o["type"] === "string" ? { type: o["type"] } : {}),
|
|
93
|
+
...(o["properties"] !== null && typeof o["properties"] === "object"
|
|
94
|
+
? { properties: o["properties"] }
|
|
95
|
+
: {}),
|
|
96
|
+
...(o["items"] !== undefined ? { items: o["items"] } : {}),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Decode `value` against the schema node that describes it, or return undefined for "leave it
|
|
101
|
+
* alone". The gate is the whole design (fork-validated in freellmapi's tool-args repair): the
|
|
102
|
+
* schema must say `array` or `object`, and the string must parse to exactly that type. A
|
|
103
|
+
* parameter whose schema says `string` is never touched even when it looks like JSON, an absent
|
|
104
|
+
* or type-less schema node is never guessed at, and a mismatch is left as-is, never coerced.
|
|
105
|
+
*/
|
|
106
|
+
function decodeIfSchemaSays(value, schema) {
|
|
107
|
+
const want = schema?.type;
|
|
108
|
+
if (want !== "array" && want !== "object")
|
|
109
|
+
return undefined;
|
|
110
|
+
const trimmed = value.trim();
|
|
111
|
+
if (!(trimmed.startsWith("[") || trimmed.startsWith("{")))
|
|
112
|
+
return undefined;
|
|
113
|
+
try {
|
|
114
|
+
const inner = JSON.parse(trimmed);
|
|
115
|
+
const match = want === "array" ? Array.isArray(inner) : inner !== null && typeof inner === "object" && !Array.isArray(inner);
|
|
116
|
+
return match ? inner : undefined;
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Walk a decoded input alongside its schema, decoding double-encoded strings wherever the schema
|
|
124
|
+
* is unambiguous. Recursion is the point: the model that stringifies a top-level array
|
|
125
|
+
* stringifies a nested one too, and each level re-applies the identical gate, so depth adds
|
|
126
|
+
* reach without loosening the rule. A tuple `items` array is deliberately not followed —
|
|
127
|
+
* matching a decoded element to its position is inference, not proof. Mutates `node` (always a
|
|
128
|
+
* fresh clone here, never the caller's message) and reports whether anything changed.
|
|
129
|
+
*/
|
|
130
|
+
function decodeInPlace(node, schemaRaw) {
|
|
131
|
+
if (node === null || typeof node !== "object")
|
|
132
|
+
return false;
|
|
133
|
+
const schema = schemaNode(schemaRaw);
|
|
134
|
+
let changed = false;
|
|
135
|
+
if (Array.isArray(node)) {
|
|
136
|
+
const itemSchema = schema?.items;
|
|
137
|
+
if (itemSchema === undefined || Array.isArray(itemSchema))
|
|
138
|
+
return false;
|
|
139
|
+
for (let i = 0; i < node.length; i++) {
|
|
140
|
+
const value = node[i];
|
|
141
|
+
if (typeof value === "string") {
|
|
142
|
+
const decoded = decodeIfSchemaSays(value, schemaNode(itemSchema));
|
|
143
|
+
if (decoded !== undefined) {
|
|
144
|
+
node[i] = decoded;
|
|
145
|
+
changed = true;
|
|
146
|
+
decodeInPlace(decoded, itemSchema);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else if (decodeInPlace(value, itemSchema)) {
|
|
150
|
+
changed = true;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return changed;
|
|
154
|
+
}
|
|
155
|
+
const props = schema?.properties;
|
|
156
|
+
if (!props)
|
|
157
|
+
return false;
|
|
158
|
+
const obj = node;
|
|
159
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
160
|
+
const child = props[key];
|
|
161
|
+
if (child === undefined)
|
|
162
|
+
continue; // Unknown key — no schema to justify a change.
|
|
163
|
+
if (typeof value === "string") {
|
|
164
|
+
const decoded = decodeIfSchemaSays(value, schemaNode(child));
|
|
165
|
+
if (decoded !== undefined) {
|
|
166
|
+
obj[key] = decoded;
|
|
167
|
+
changed = true;
|
|
168
|
+
decodeInPlace(decoded, child);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else if (decodeInPlace(value, child)) {
|
|
172
|
+
changed = true;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return changed;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Repair double-encoded tool inputs across a message, returning the corrected message or null
|
|
179
|
+
* when nothing provable changed. Structure is conserved by construction — same blocks, same
|
|
180
|
+
* order, same tool_use ids and names, only `input` values decoded — so this needs no
|
|
181
|
+
* `guardReshaped`: it is not a collaborator, it is arithmetic on the schema.
|
|
182
|
+
*/
|
|
183
|
+
export function decodeDoubleEncodedInputs(message, tools) {
|
|
184
|
+
let changed = false;
|
|
185
|
+
const content = message.content.map((block) => {
|
|
186
|
+
if (!isToolUseBlock(block))
|
|
187
|
+
return block;
|
|
188
|
+
let input = block.input;
|
|
189
|
+
let blockChanged = false;
|
|
190
|
+
// Whole-input double encoding: the input object arrived as its own JSON text. Needs no
|
|
191
|
+
// schema — an input must be an object, so a string input proves the wrapping.
|
|
192
|
+
if (typeof input === "string") {
|
|
193
|
+
const trimmed = input.trim();
|
|
194
|
+
if (trimmed.startsWith("{")) {
|
|
195
|
+
try {
|
|
196
|
+
const inner = JSON.parse(trimmed);
|
|
197
|
+
if (inner !== null && typeof inner === "object" && !Array.isArray(inner)) {
|
|
198
|
+
input = inner;
|
|
199
|
+
blockChanged = true;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
// Not JSON — nothing provable; the reshaper can still try.
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
if (input !== null && typeof input === "object") {
|
|
208
|
+
const copy = structuredClone(input);
|
|
209
|
+
if (decodeInPlace(copy, tools.get(block.name) ?? undefined)) {
|
|
210
|
+
input = copy;
|
|
211
|
+
blockChanged = true;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
if (!blockChanged)
|
|
215
|
+
return block;
|
|
216
|
+
changed = true;
|
|
217
|
+
return { ...block, input };
|
|
218
|
+
});
|
|
219
|
+
return changed ? { ...message, content } : null;
|
|
220
|
+
}
|
|
72
221
|
/**
|
|
73
222
|
* Re-attach the BACKEND's response envelope to a repaired message.
|
|
74
223
|
*
|
package/dist/repair.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair.js","sourceRoot":"","sources":["../src/repair.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAyB,MAAM,gBAAgB,CAAC;AA2BxE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,SAA2B,EAC3B,KAAqC,EACrC,IAAgB;IAEhB,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO;SACrC,MAAM,CAAC,cAAc,CAAC;SACtB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACpE,IAAI,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,GAAG,SAAS,CAAC;IAExB,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,iBAAiB,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"repair.js","sourceRoot":"","sources":["../src/repair.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAyB,MAAM,gBAAgB,CAAC;AA2BxE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,SAA2B,EAC3B,KAAqC,EACrC,IAAgB;IAEhB,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO;SACrC,MAAM,CAAC,cAAc,CAAC;SACtB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACpE,IAAI,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,GAAG,SAAS,CAAC;IAExB,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,iBAAiB,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,2FAA2F;IAC3F,2EAA2E;IAC3E,+FAA+F;IAC/F,+FAA+F;IAC/F,6FAA6F;IAC7F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,yBAAyB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACxD,IAAI,OAAO,CAAC,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YACjE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACxB,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,8FAA8F;IAC9F,yFAAyF;IACzF,2FAA2F;IAC3F,oFAAoF;IACpF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,EAAE,CAAC;QAChF,MAAM,UAAU,GAAqB,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QACpE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACxB,OAAO,GAAG,UAAU,CAAC;IACvB,CAAC;IAED,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QAC5D,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACnC,KAAK;gBACL,YAAY,EAAE,OAAO;gBACrB,MAAM;gBACN,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;aACxC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,oFAAoF;YACpF,qFAAqF;YACrF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAE5D,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAE9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7D,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACjG,kDAAkD;QAClD,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACtB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAKD,SAAS,UAAU,CAAC,CAAU;IAC5B,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ;YACjE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,YAAY,CAA4B,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,KAAa,EAAE,MAA8B;IACvE,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,CAAC;IAC1B,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,KAAK,GACT,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjH,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,IAAa,EAAE,SAAkB;IACtD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,MAAM,EAAE,KAAK,CAAC;QACjC,IAAI,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAY,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;oBAClB,OAAO,GAAG,IAAI,CAAC;oBACf,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;iBAAM,IAAI,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC5C,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,EAAE,UAAU,CAAC;IACjC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS,CAAC,+CAA+C;QAClF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBACnB,OAAO,GAAG,IAAI,CAAC;gBACf,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAyB,EACzB,KAAqC;IAErC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,KAAK,GAAY,KAAK,CAAC,KAAK,CAAC;QACjC,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,uFAAuF;QACvF,8EAA8E;QAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzE,KAAK,GAAG,KAAK,CAAC;wBACd,YAAY,GAAG,IAAI,CAAC;oBACtB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,2DAA2D;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,GAAY,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC;gBAC5D,KAAK,GAAG,IAAI,CAAC;gBACb,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY;YAAE,OAAO,KAAK,CAAC;QAChC,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,cAAc,CAAC,QAA0B,EAAE,QAA0B;IAC5E,MAAM,GAAG,GAAqB,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC/F,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS;QAAE,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IACpD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7D,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;QAAE,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;IACrF,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,aAAa,CAC3B,QAA0B,EAC1B,SAA2B,EAC3B,aAA4C;IAE5C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnE,CAAC;AAED,+FAA+F;AAC/F,SAAS,kBAAkB,CAAC,QAA0B,EAAE,SAA2B;IACjF,MAAM,MAAM,GAAmB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,MAAM,KAAK,GAAmB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACrD,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAClC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC;YACrD,SAAS;QACX,CAAC;QACD,kDAAkD;QAClD,2DAA2D;QAC3D,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS;QACtB,wFAAwF;QACxF,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAsB;IACvD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;YAClD,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,EAAE;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -23,9 +23,13 @@ export declare function orderByUsability(targets: ResolvedTarget[], breaker?: Ci
|
|
|
23
23
|
*
|
|
24
24
|
* ok — serve it; the target is proven healthy.
|
|
25
25
|
* retriable — the deployment could not serve this request (429/5xx, a 400/404 that here is
|
|
26
|
-
* nearly always "this model won't take this shape",
|
|
26
|
+
* nearly always "this model won't take this shape", a 402 — on the free/router
|
|
27
27
|
* providers this proxy fronts, "payment required" means depleted monthly credits,
|
|
28
|
-
* i.e. a 429 with a monthly window
|
|
28
|
+
* i.e. a 429 with a monthly window — or a 410: the deployment is GONE, which is a
|
|
29
|
+
* fact about one member, never about the request, so a sibling can still serve it.
|
|
30
|
+
* NVIDIA retired models with real 410 End-of-Life responses on 2026-08-07; before
|
|
31
|
+
* 410 joined this class those returned straight to the client with a healthy pool
|
|
32
|
+
* standing by. Breaker failure, try the next.
|
|
29
33
|
* credential — 401/403. Try the next candidate, but tell the breaker's HEALTH side nothing:
|
|
30
34
|
* see `recordCredentialFault`.
|
|
31
35
|
* client — a genuine client-side 4xx (413, 422, …). The next candidate would reject it
|
|
@@ -33,6 +37,27 @@ export declare function orderByUsability(targets: ResolvedTarget[], breaker?: Ci
|
|
|
33
37
|
*/
|
|
34
38
|
export type OutcomeClass = "ok" | "retriable" | "credential" | "client";
|
|
35
39
|
export declare function classifyStatus(status: number): OutcomeClass;
|
|
40
|
+
/**
|
|
41
|
+
* Wall-clock ceiling on STARTING further failover attempts — one policy, both fronts, same maxim
|
|
42
|
+
* as `classifyStatus`. A deep pool could legitimately spend members × timeoutMs on one request;
|
|
43
|
+
* the budget bounds the walk, never the answer: an attempt already in flight is not aborted, and
|
|
44
|
+
* the first TWO attempts are always allowed, so a slow-failing first candidate cannot starve the
|
|
45
|
+
* request of its one retry. 0 disables. Default fork-validated in freellmapi (45s) — adoption
|
|
46
|
+
* review §1.5.
|
|
47
|
+
*/
|
|
48
|
+
export declare const DEFAULT_WALK_BUDGET_MS = 45000;
|
|
49
|
+
/**
|
|
50
|
+
* Streamed-response deadline split (adoption review §1.2) — one policy, both fronts.
|
|
51
|
+
*
|
|
52
|
+
* One flat `timeoutMs` spanning the whole attempt mis-serves streams in both directions: a
|
|
53
|
+
* healthy long generation still emitting bytes at the deadline is killed mid-answer, while a
|
|
54
|
+
* genuinely dead stream is not detected until the same deadline. So once a stream is chosen for
|
|
55
|
+
* serving, the total deadline DISARMS and an inter-byte watchdog takes over: every arriving
|
|
56
|
+
* chunk re-arms it, and only silence for the full window aborts — through the same controller,
|
|
57
|
+
* so the existing mid-stream error path reports it honestly. Default fork-validated in
|
|
58
|
+
* freellmapi (90s); `stallTimeoutMs: 0` keeps the old single-deadline behavior.
|
|
59
|
+
*/
|
|
60
|
+
export declare const DEFAULT_STALL_TIMEOUT_MS = 90000;
|
|
36
61
|
/** A provider declared an authEnv whose variable is unset — a configuration error, not a passthrough. */
|
|
37
62
|
export declare class CredentialConfigError extends Error {
|
|
38
63
|
constructor(provider: string, authEnv: string);
|
package/dist/server.js
CHANGED
|
@@ -16,6 +16,7 @@ import { recordModelCall } from "./ping/runtime-telemetry.js";
|
|
|
16
16
|
import { CircuitBreaker, globalCircuitBreaker } from "./circuit-breaker.js";
|
|
17
17
|
import { estimateRequestTokens, assessCost } from "./metadata.js";
|
|
18
18
|
import { specOfTarget } from "./benchmarks.js";
|
|
19
|
+
import { extractQuotaPercent } from "./ping/ping.js";
|
|
19
20
|
import { materializeDynamicPools } from "./dynamic-pools.js";
|
|
20
21
|
import { baseLog } from "./request-log.js";
|
|
21
22
|
import { looksLikeContextLengthError, parseStatedContextLimit, recordObservedContextLimit } from "./context-limits.js";
|
|
@@ -482,6 +483,8 @@ async function handle(req, res, cfg, h) {
|
|
|
482
483
|
// Candidate execution loop with failover across healthyTargets.
|
|
483
484
|
// All-429 exhaustion Retry-After policy: `Pool429Tracker`.
|
|
484
485
|
const pool429 = new Pool429Tracker();
|
|
486
|
+
const walkBudgetMs = cfg.walkBudgetMs ?? DEFAULT_WALK_BUDGET_MS;
|
|
487
|
+
const walkStarted = Date.now();
|
|
485
488
|
for (let i = 0; i < healthyTargets.length; i++) {
|
|
486
489
|
if (res.destroyed)
|
|
487
490
|
break;
|
|
@@ -543,8 +546,13 @@ async function handle(req, res, cfg, h) {
|
|
|
543
546
|
status,
|
|
544
547
|
});
|
|
545
548
|
}
|
|
546
|
-
//
|
|
547
|
-
|
|
549
|
+
// A genuine transport throw (not this proxy's own deadline) condemns the provider's host
|
|
550
|
+
// for the rest of THIS walk only — prune before the "is there a next candidate" check so
|
|
551
|
+
// a walk whose only remaining members share the dead host ends honestly here.
|
|
552
|
+
if (!aborted)
|
|
553
|
+
dropRemainingSameProvider(healthyTargets, i, target.provider);
|
|
554
|
+
// Failover if additional candidates exist and the walk budget allows another start
|
|
555
|
+
if (!res.destroyed && i < healthyTargets.length - 1 && walkBudgetAllowsNext(walkBudgetMs, walkStarted, i + 1)) {
|
|
548
556
|
continue;
|
|
549
557
|
}
|
|
550
558
|
failClosed(res, status, aborted ? "backend timed out" : `backend unreachable: ${e.message}`);
|
|
@@ -563,11 +571,11 @@ async function handle(req, res, cfg, h) {
|
|
|
563
571
|
// returned exactly as before.
|
|
564
572
|
const cls = classifyStatus(backendRes.status);
|
|
565
573
|
const retryAfterMs = parseRetryAfterMs(backendRes.headers.get("retry-after"));
|
|
566
|
-
observeAttemptHeaders(h, attempt, backendRes.status, retryAfterMs);
|
|
574
|
+
observeAttemptHeaders(h, attempt, backendRes.status, retryAfterMs, backendRes.headers);
|
|
567
575
|
observeContextLimit(backendRes, target);
|
|
568
576
|
const localFailure = errorOrigin(backendRes) === "local";
|
|
569
577
|
const tryNext = !localFailure && shouldTryNext(cls);
|
|
570
|
-
if (tryNext && !res.destroyed && i < healthyTargets.length - 1) {
|
|
578
|
+
if (tryNext && !res.destroyed && i < healthyTargets.length - 1 && walkBudgetAllowsNext(walkBudgetMs, walkStarted, i + 1)) {
|
|
571
579
|
clearTimeout(timer);
|
|
572
580
|
res.off("close", onResClose);
|
|
573
581
|
if (await discardCandidate(backendRes, target, backendRes.status, retryAfterMs))
|
|
@@ -582,6 +590,14 @@ async function handle(req, res, cfg, h) {
|
|
|
582
590
|
continue; // Failover to next target
|
|
583
591
|
}
|
|
584
592
|
const streamed = (backendRes.headers.get("content-type") ?? "").includes("text/event-stream");
|
|
593
|
+
// Phase switch (adoption review §1.2): this stream IS the response now — failover is over,
|
|
594
|
+
// so the total deadline has done its job and would only kill a healthy long generation.
|
|
595
|
+
// From here, silence (not duration) is the failure signal.
|
|
596
|
+
const stallMs = target.stallTimeoutMs ?? DEFAULT_STALL_TIMEOUT_MS;
|
|
597
|
+
if (streamed && backendRes.status < 400 && stallMs > 0) {
|
|
598
|
+
clearTimeout(timer);
|
|
599
|
+
backendRes = withStallWatchdog(backendRes, controller, stallMs);
|
|
600
|
+
}
|
|
585
601
|
const willValidate = isMessages && hadTools && backendRes.status < 400;
|
|
586
602
|
const reshaper = h.resolveReshaper(target);
|
|
587
603
|
const doRepair = cfg.mode === "repair" && willValidate && reshaper !== undefined;
|
|
@@ -692,7 +708,7 @@ export function classifyStatus(status) {
|
|
|
692
708
|
return "ok";
|
|
693
709
|
if (status === 401 || status === 403)
|
|
694
710
|
return "credential";
|
|
695
|
-
if (status === 400 || status === 402 || status === 404 || status === 429 || status >= 500)
|
|
711
|
+
if (status === 400 || status === 402 || status === 404 || status === 410 || status === 429 || status >= 500)
|
|
696
712
|
return "retriable";
|
|
697
713
|
return "client";
|
|
698
714
|
}
|
|
@@ -700,6 +716,82 @@ export function classifyStatus(status) {
|
|
|
700
716
|
function shouldTryNext(cls) {
|
|
701
717
|
return cls === "retriable" || cls === "credential";
|
|
702
718
|
}
|
|
719
|
+
/**
|
|
720
|
+
* Wall-clock ceiling on STARTING further failover attempts — one policy, both fronts, same maxim
|
|
721
|
+
* as `classifyStatus`. A deep pool could legitimately spend members × timeoutMs on one request;
|
|
722
|
+
* the budget bounds the walk, never the answer: an attempt already in flight is not aborted, and
|
|
723
|
+
* the first TWO attempts are always allowed, so a slow-failing first candidate cannot starve the
|
|
724
|
+
* request of its one retry. 0 disables. Default fork-validated in freellmapi (45s) — adoption
|
|
725
|
+
* review §1.5.
|
|
726
|
+
*/
|
|
727
|
+
export const DEFAULT_WALK_BUDGET_MS = 45_000;
|
|
728
|
+
function walkBudgetAllowsNext(budgetMs, walkStarted, attemptsCompleted) {
|
|
729
|
+
if (attemptsCompleted < 2)
|
|
730
|
+
return true;
|
|
731
|
+
if (budgetMs === 0)
|
|
732
|
+
return true;
|
|
733
|
+
return Date.now() - walkStarted < budgetMs;
|
|
734
|
+
}
|
|
735
|
+
/**
|
|
736
|
+
* Streamed-response deadline split (adoption review §1.2) — one policy, both fronts.
|
|
737
|
+
*
|
|
738
|
+
* One flat `timeoutMs` spanning the whole attempt mis-serves streams in both directions: a
|
|
739
|
+
* healthy long generation still emitting bytes at the deadline is killed mid-answer, while a
|
|
740
|
+
* genuinely dead stream is not detected until the same deadline. So once a stream is chosen for
|
|
741
|
+
* serving, the total deadline DISARMS and an inter-byte watchdog takes over: every arriving
|
|
742
|
+
* chunk re-arms it, and only silence for the full window aborts — through the same controller,
|
|
743
|
+
* so the existing mid-stream error path reports it honestly. Default fork-validated in
|
|
744
|
+
* freellmapi (90s); `stallTimeoutMs: 0` keeps the old single-deadline behavior.
|
|
745
|
+
*/
|
|
746
|
+
export const DEFAULT_STALL_TIMEOUT_MS = 90_000;
|
|
747
|
+
function withStallWatchdog(upstream, controller, stallMs) {
|
|
748
|
+
if (!upstream.body)
|
|
749
|
+
return upstream;
|
|
750
|
+
let timer;
|
|
751
|
+
const arm = () => {
|
|
752
|
+
if (timer)
|
|
753
|
+
clearTimeout(timer);
|
|
754
|
+
timer = setTimeout(() => controller.abort(), stallMs);
|
|
755
|
+
};
|
|
756
|
+
const disarm = () => {
|
|
757
|
+
if (timer)
|
|
758
|
+
clearTimeout(timer);
|
|
759
|
+
timer = undefined;
|
|
760
|
+
};
|
|
761
|
+
const watchdog = new TransformStream({
|
|
762
|
+
start: arm,
|
|
763
|
+
transform(chunk, ctrl) {
|
|
764
|
+
arm();
|
|
765
|
+
ctrl.enqueue(chunk);
|
|
766
|
+
},
|
|
767
|
+
flush: disarm,
|
|
768
|
+
});
|
|
769
|
+
return new Response(upstream.body.pipeThrough(watchdog), {
|
|
770
|
+
status: upstream.status,
|
|
771
|
+
headers: upstream.headers,
|
|
772
|
+
});
|
|
773
|
+
}
|
|
774
|
+
/**
|
|
775
|
+
* Request-local failure-domain elimination (adoption review §1.6) — one policy, both fronts.
|
|
776
|
+
*
|
|
777
|
+
* A TRANSPORT failure — DNS, connection refused, TLS, socket reset: thrown before any HTTP
|
|
778
|
+
* response existed — is evidence about the provider's HOST, not about one model, so the rest of
|
|
779
|
+
* this walk drops the failed provider's remaining members instead of burning one hop per member
|
|
780
|
+
* to rediscover the same dead host (the transport half of the 13-round-trips-to-learn-4-facts
|
|
781
|
+
* pathology in docs/pool-eligibility.md).
|
|
782
|
+
*
|
|
783
|
+
* Deliberately narrow. NOT widened on 5xx statuses — a status is a live host answering, and this
|
|
784
|
+
* repo has measured a 529 that was model-local while sibling deployments served. NOT widened on
|
|
785
|
+
* this proxy's own per-target deadline — a slow model is not a dead host, and the next member may
|
|
786
|
+
* be a smaller, faster one. Request-local by construction: the pruned array dies with the
|
|
787
|
+
* response, so it cannot fight the breaker's per-deployment accounting.
|
|
788
|
+
*/
|
|
789
|
+
function dropRemainingSameProvider(targets, afterIndex, provider) {
|
|
790
|
+
for (let j = targets.length - 1; j > afterIndex; j--) {
|
|
791
|
+
if (targets[j].provider === provider)
|
|
792
|
+
targets.splice(j, 1);
|
|
793
|
+
}
|
|
794
|
+
}
|
|
703
795
|
/**
|
|
704
796
|
* All-429 exhaustion policy — one policy, both fronts (same maxim as `classifyStatus`).
|
|
705
797
|
*
|
|
@@ -954,7 +1046,13 @@ function resolveResetMs(interpretation, headerMs, body) {
|
|
|
954
1046
|
* never learning the one 429 that is worth learning.
|
|
955
1047
|
*/
|
|
956
1048
|
function carriesEligibilityFact(status) {
|
|
957
|
-
return status === 400 ||
|
|
1049
|
+
return (status === 400 ||
|
|
1050
|
+
status === 401 ||
|
|
1051
|
+
status === 402 ||
|
|
1052
|
+
status === 403 ||
|
|
1053
|
+
status === 404 ||
|
|
1054
|
+
status === 410 ||
|
|
1055
|
+
status === 429);
|
|
958
1056
|
}
|
|
959
1057
|
/**
|
|
960
1058
|
* Release a candidate the walk is stepping over — reading its body first when that body might say
|
|
@@ -973,13 +1071,19 @@ async function discardCandidate(res, target, status, retryAfterMs) {
|
|
|
973
1071
|
await res.body?.cancel().catch(() => { });
|
|
974
1072
|
return false;
|
|
975
1073
|
}
|
|
976
|
-
function observeAttemptHeaders(h, attempt, status, retryAfterMs) {
|
|
1074
|
+
function observeAttemptHeaders(h, attempt, status, retryAfterMs, headers) {
|
|
977
1075
|
const observedAt = Date.now();
|
|
1076
|
+
// Provider-stated quota from the response that just served REAL traffic (adoption review
|
|
1077
|
+
// §1.9). The breaker's observation shape always carried `quotaPercent`; only synthetic probes
|
|
1078
|
+
// ever supplied it, so live rate-limit headers were dropped on the floor and `/telemetry`
|
|
1079
|
+
// showed probe-aged quota beside fresh live health.
|
|
1080
|
+
const quotaPercent = headers ? extractQuotaPercent(headers) : null;
|
|
978
1081
|
const result = h.breaker.observeHeaders(attempt.handle, {
|
|
979
1082
|
target: attempt.identity,
|
|
980
1083
|
status,
|
|
981
1084
|
observedAt,
|
|
982
1085
|
elapsedMs: observedAt - attempt.started,
|
|
1086
|
+
...(quotaPercent !== null ? { quotaPercent } : {}),
|
|
983
1087
|
...(retryAfterMs !== null ? { retryAfterMs } : {}),
|
|
984
1088
|
});
|
|
985
1089
|
if (!result.ok)
|
|
@@ -1083,6 +1187,8 @@ async function openAiFrontPath(res, candidates, ctx, h) {
|
|
|
1083
1187
|
const tried = [];
|
|
1084
1188
|
// All-429 exhaustion Retry-After policy, shared with the Anthropic path: `Pool429Tracker`.
|
|
1085
1189
|
const pool429 = new Pool429Tracker();
|
|
1190
|
+
const walkBudgetMs = ctx.cfg?.walkBudgetMs ?? DEFAULT_WALK_BUDGET_MS;
|
|
1191
|
+
const walkStarted = Date.now();
|
|
1086
1192
|
for (let i = 0; i < candidates.length; i++) {
|
|
1087
1193
|
if (res.destroyed)
|
|
1088
1194
|
break;
|
|
@@ -1142,9 +1248,14 @@ async function openAiFrontPath(res, candidates, ctx, h) {
|
|
|
1142
1248
|
status,
|
|
1143
1249
|
});
|
|
1144
1250
|
}
|
|
1251
|
+
// A genuine transport throw (not this proxy's own deadline) condemns the provider's host
|
|
1252
|
+
// for the rest of THIS walk only. Prune first, and re-read the live length below — the
|
|
1253
|
+
// `isLast` cached at loop top predates the prune.
|
|
1254
|
+
if (!aborted)
|
|
1255
|
+
dropRemainingSameProvider(candidates, i, target.provider);
|
|
1145
1256
|
// The client hanging up aborts every candidate; walking the rest would be pointless work
|
|
1146
1257
|
// against a socket nobody is reading.
|
|
1147
|
-
if (
|
|
1258
|
+
if (i < candidates.length - 1 && !res.writableEnded && !res.destroyed && walkBudgetAllowsNext(walkBudgetMs, walkStarted, i + 1))
|
|
1148
1259
|
continue;
|
|
1149
1260
|
if (!res.headersSent) {
|
|
1150
1261
|
res.writeHead(status, { "content-type": "application/json", [SERVED_BY_HEADER]: tried.join(", ") });
|
|
@@ -1159,10 +1270,10 @@ async function openAiFrontPath(res, candidates, ctx, h) {
|
|
|
1159
1270
|
const localFailure = errorOrigin(upstream) === "local";
|
|
1160
1271
|
const cls = classifyStatus(upstream.status);
|
|
1161
1272
|
const retryAfterMs = parseRetryAfterMs(upstream.headers.get("retry-after"));
|
|
1162
|
-
observeAttemptHeaders(h, attempt, upstream.status, retryAfterMs);
|
|
1273
|
+
observeAttemptHeaders(h, attempt, upstream.status, retryAfterMs, upstream.headers);
|
|
1163
1274
|
observeContextLimit(upstream, target);
|
|
1164
1275
|
const tryNext = localFailure ? false : shouldTryNext(cls);
|
|
1165
|
-
if (tryNext && !isLast && !res.writableEnded && !res.destroyed) {
|
|
1276
|
+
if (tryNext && !isLast && !res.writableEnded && !res.destroyed && walkBudgetAllowsNext(walkBudgetMs, walkStarted, i + 1)) {
|
|
1166
1277
|
clearTimeout(timer);
|
|
1167
1278
|
res.off("close", onResClose);
|
|
1168
1279
|
// Release the skipped candidate's socket — an un-consumed body holds the connection open.
|
|
@@ -1186,6 +1297,12 @@ async function openAiFrontPath(res, candidates, ctx, h) {
|
|
|
1186
1297
|
// deployment tried, in order — so an exhausted pool is self-describing and the reader can
|
|
1187
1298
|
// see that the failure they are holding is the last of N, not the only one.
|
|
1188
1299
|
const streamed = (upstream.headers.get("content-type") ?? "").includes("text/event-stream");
|
|
1300
|
+
// Same phase switch as the Anthropic path — one deadline policy, both fronts (§1.2).
|
|
1301
|
+
const stallMs = target.stallTimeoutMs ?? DEFAULT_STALL_TIMEOUT_MS;
|
|
1302
|
+
if (streamed && upstream.status < 400 && stallMs > 0) {
|
|
1303
|
+
clearTimeout(timer);
|
|
1304
|
+
upstream = withStallWatchdog(upstream, controller, stallMs);
|
|
1305
|
+
}
|
|
1189
1306
|
try {
|
|
1190
1307
|
const servedBy = upstream.status >= 400 ? tried.join(", ") : specOfTarget(target);
|
|
1191
1308
|
const headers = { ...filterResponseHeaders(upstream.headers), [SERVED_BY_HEADER]: servedBy };
|