@pentoshi/clai 3.11.3 → 3.11.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/agent/runner.js +51 -10
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/stream-recovery.d.ts +15 -1
- package/dist/agent/stream-recovery.js +42 -2
- package/dist/agent/stream-recovery.js.map +1 -1
- package/dist/llm/agentrouter.js +2 -2
- package/dist/llm/agentrouter.js.map +1 -1
- package/dist/llm/bynara.js +2 -2
- package/dist/llm/bynara.js.map +1 -1
- package/dist/llm/http.d.ts +29 -3
- package/dist/llm/http.js +110 -25
- package/dist/llm/http.js.map +1 -1
- package/dist/llm/modal.js +7 -2
- package/dist/llm/modal.js.map +1 -1
- package/dist/llm/nvidia.js +6 -6
- package/dist/llm/nvidia.js.map +1 -1
- package/dist/llm/router.d.ts +1 -1
- package/dist/llm/router.js +59 -15
- package/dist/llm/router.js.map +1 -1
- package/dist/modes/ask.js +91 -23
- package/dist/modes/ask.js.map +1 -1
- package/dist/prompts/embedded.js +2 -2
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/index.d.ts +7 -0
- package/dist/prompts/index.js +44 -4
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/system.agent.md +2 -1
- package/dist/prompts/system.ask.md +1 -0
- package/dist/safety/classifier.js +3 -0
- package/dist/safety/classifier.js.map +1 -1
- package/dist/tools/definitions.js +15 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/image.d.ts +19 -1
- package/dist/tools/image.js +149 -1
- package/dist/tools/image.js.map +1 -1
- package/dist/tools/registry.js +13 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/tool-types.d.ts +8 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +155 -28
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/components/transcript/use-transcript-selection.d.ts +2 -2
- package/dist/tui-v2/components/transcript/use-transcript-selection.js +7 -8
- package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
|
@@ -12,12 +12,23 @@
|
|
|
12
12
|
* These helpers are pure so the escalation ladder and the "give up only in the
|
|
13
13
|
* worst case" guarantee are unit-testable without a live provider.
|
|
14
14
|
*/
|
|
15
|
-
export type StreamFailureKind = "aborted" | "empty" | "context-overflow" | "rate-limit" | "server"
|
|
15
|
+
export type StreamFailureKind = "aborted" | "empty" | "context-overflow" | "rate-limit" | "server"
|
|
16
|
+
/** Transport died: the socket dropped or never delivered a byte. */
|
|
17
|
+
| "network"
|
|
18
|
+
/**
|
|
19
|
+
* The connection stayed healthy but the model stopped producing output —
|
|
20
|
+
* almost always a runtime buffering one very large `tool_calls` argument
|
|
21
|
+
* string. Distinct from `network` because the request was accepted and the
|
|
22
|
+
* work was done: retrying the identical request on the identical route
|
|
23
|
+
* replays the whole generation and stalls again the same way.
|
|
24
|
+
*/
|
|
25
|
+
| "stall" | "auth" | "not-found" | "unknown";
|
|
16
26
|
export interface StreamRecoveryState {
|
|
17
27
|
empty: number;
|
|
18
28
|
rateLimit: number;
|
|
19
29
|
server: number;
|
|
20
30
|
network: number;
|
|
31
|
+
stall: number;
|
|
21
32
|
context: number;
|
|
22
33
|
/** auth / not-found / unknown share one "structural" bucket. */
|
|
23
34
|
structural: number;
|
|
@@ -28,6 +39,7 @@ export interface StreamRecoveryLimits {
|
|
|
28
39
|
readonly maxRateLimit: number;
|
|
29
40
|
readonly maxServer: number;
|
|
30
41
|
readonly maxNetwork: number;
|
|
42
|
+
readonly maxStall: number;
|
|
31
43
|
readonly maxContext: number;
|
|
32
44
|
readonly maxStructural: number;
|
|
33
45
|
/** Hard cap across every failure class so a turn can never loop forever. */
|
|
@@ -48,6 +60,8 @@ export interface StreamRecoveryPlan {
|
|
|
48
60
|
readonly disableThinking: boolean;
|
|
49
61
|
/** Let the router fall back to another provider/model on the retry. */
|
|
50
62
|
readonly allowModelFallback: boolean;
|
|
63
|
+
/** Try alternates before replaying the selected route (stall recovery only). */
|
|
64
|
+
readonly preferModelFallback?: boolean | undefined;
|
|
51
65
|
/** Optional trailing user nudge (empty-admission recovery). */
|
|
52
66
|
readonly nudge?: string | undefined;
|
|
53
67
|
/** Human-facing one-liner; only set on the FIRST retry of a class (low noise). */
|
|
@@ -12,13 +12,16 @@
|
|
|
12
12
|
* These helpers are pure so the escalation ladder and the "give up only in the
|
|
13
13
|
* worst case" guarantee are unit-testable without a live provider.
|
|
14
14
|
*/
|
|
15
|
-
import { ProviderError } from "../llm/http.js";
|
|
15
|
+
import { ProviderError, STREAM_STALL_MARKER } from "../llm/http.js";
|
|
16
16
|
import { isEmptyCompletionError } from "../llm/router.js";
|
|
17
17
|
export const DEFAULT_STREAM_RECOVERY_LIMITS = {
|
|
18
18
|
maxEmpty: 4,
|
|
19
19
|
maxRateLimit: 3,
|
|
20
20
|
maxServer: 3,
|
|
21
21
|
maxNetwork: 3,
|
|
22
|
+
// A stall costs a full generation per attempt, so the budget is tight and
|
|
23
|
+
// each attempt changes something (smaller writes, then another route).
|
|
24
|
+
maxStall: 2,
|
|
22
25
|
maxContext: 2,
|
|
23
26
|
maxStructural: 1,
|
|
24
27
|
maxTotal: 10,
|
|
@@ -27,6 +30,10 @@ export const DEFAULT_STREAM_RECOVERY_LIMITS = {
|
|
|
27
30
|
const EMPTY_NUDGE = "Your previous response was empty. Continue the task now: emit your next tool call, " +
|
|
28
31
|
"or give your final answer if every required step is already complete and verified. " +
|
|
29
32
|
"Do not reply with an empty message.";
|
|
33
|
+
const STALL_NUDGE = "The previous attempt stopped while the provider was buffering a large tool-call payload; the incomplete call was discarded. " +
|
|
34
|
+
"Keep each call small from here on: write or edit at most ~150 lines per call. For a new large file, use one initial " +
|
|
35
|
+
"fs.write followed by sequential fs.append calls; for an existing file, use several bounded fs.edit / fs.replaceLines calls. " +
|
|
36
|
+
"Continue from the preserved progress without restarting the task or repeating prior prose.";
|
|
30
37
|
function errorStatus(error) {
|
|
31
38
|
if (error instanceof ProviderError)
|
|
32
39
|
return error.status ?? 0;
|
|
@@ -68,7 +75,12 @@ export function classifyStreamFailure(error) {
|
|
|
68
75
|
/\b50[0-4]\b|upstream provider (unavailable|error)|server error \(5|bad gateway|service unavailable|gateway timeout|overloaded/.test(msg)) {
|
|
69
76
|
return "server";
|
|
70
77
|
}
|
|
71
|
-
|
|
78
|
+
// A stall on a live connection must be checked BEFORE the network patterns:
|
|
79
|
+
// its message also contains "stream stalled", but the transport was fine and
|
|
80
|
+
// the fix is different (shrink the tool call / change route, not just retry).
|
|
81
|
+
if (new RegExp(STREAM_STALL_MARKER, "i").test(msg))
|
|
82
|
+
return "stall";
|
|
83
|
+
if (/connection glitch|socket connection was closed|econnreset|etimedout|econnrefused|enotfound|fetch failed|network error|premature close|stream stalled|transport timeout|unexpected end of file|request timed out|connection dropped|timed out before any response/.test(msg)) {
|
|
72
84
|
return "network";
|
|
73
85
|
}
|
|
74
86
|
// Empty admission (no visible text, no tool calls). Cheap to retry / nudge.
|
|
@@ -92,6 +104,7 @@ export function createStreamRecoveryState() {
|
|
|
92
104
|
rateLimit: 0,
|
|
93
105
|
server: 0,
|
|
94
106
|
network: 0,
|
|
107
|
+
stall: 0,
|
|
95
108
|
context: 0,
|
|
96
109
|
structural: 0,
|
|
97
110
|
total: 0,
|
|
@@ -102,6 +115,7 @@ export function resetStreamRecoveryState(state) {
|
|
|
102
115
|
state.rateLimit = 0;
|
|
103
116
|
state.server = 0;
|
|
104
117
|
state.network = 0;
|
|
118
|
+
state.stall = 0;
|
|
105
119
|
state.context = 0;
|
|
106
120
|
state.structural = 0;
|
|
107
121
|
state.total = 0;
|
|
@@ -122,6 +136,9 @@ export function recordRecoveryAttempt(state, kind) {
|
|
|
122
136
|
case "network":
|
|
123
137
|
state.network += 1;
|
|
124
138
|
break;
|
|
139
|
+
case "stall":
|
|
140
|
+
state.stall += 1;
|
|
141
|
+
break;
|
|
125
142
|
case "context-overflow":
|
|
126
143
|
state.context += 1;
|
|
127
144
|
break;
|
|
@@ -226,6 +243,29 @@ export function planStreamRecovery(input) {
|
|
|
226
243
|
notice: n === 0 ? "connection dropped — retrying" : undefined,
|
|
227
244
|
};
|
|
228
245
|
}
|
|
246
|
+
case "stall": {
|
|
247
|
+
const n = state.stall;
|
|
248
|
+
if (n >= limits.maxStall)
|
|
249
|
+
return giveUp;
|
|
250
|
+
return {
|
|
251
|
+
action: "retry",
|
|
252
|
+
kind,
|
|
253
|
+
// The transport is healthy, so there is nothing to wait out. Retry
|
|
254
|
+
// promptly and spend the budget on changing the request instead.
|
|
255
|
+
delayMs: pick([1_000, 3_000], n, cap),
|
|
256
|
+
forceCompact: false,
|
|
257
|
+
// Thinking multiplies the silent window before a tool call appears.
|
|
258
|
+
disableThinking: n >= 1,
|
|
259
|
+
// The same route will buffer the same way. Prefer a configured
|
|
260
|
+
// alternate first, but keep the selected route as the final fallback.
|
|
261
|
+
allowModelFallback: true,
|
|
262
|
+
preferModelFallback: true,
|
|
263
|
+
nudge: STALL_NUDGE,
|
|
264
|
+
notice: n === 0
|
|
265
|
+
? "provider stopped streaming mid-response — retrying with smaller tool calls"
|
|
266
|
+
: undefined,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
229
269
|
case "context-overflow": {
|
|
230
270
|
const n = state.context;
|
|
231
271
|
if (n >= limits.maxContext)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-recovery.js","sourceRoot":"","sources":["../../src/agent/stream-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"stream-recovery.js","sourceRoot":"","sources":["../../src/agent/stream-recovery.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/agentrouter.js
CHANGED
|
@@ -201,8 +201,8 @@ export const agentrouterProvider = {
|
|
|
201
201
|
onToolCallDelta: request.onToolCallDelta,
|
|
202
202
|
reasoning: request.thinking,
|
|
203
203
|
reasoningStyle: "agentrouter",
|
|
204
|
-
//
|
|
205
|
-
|
|
204
|
+
// 60s first byte, but the mid-stream budget has to survive a fully
|
|
205
|
+
// buffered tool call (see DEFAULT_STREAM_IDLE_TIMEOUT_MS).
|
|
206
206
|
initialIdleTimeoutMs: 60_000,
|
|
207
207
|
headers,
|
|
208
208
|
tools: request.tools,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentrouter.js","sourceRoot":"","sources":["../../src/llm/agentrouter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,GAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAEnB,4EAA4E;AAC5E,+EAA+E;AAC/E,0DAA0D;AAC1D,qEAAqE;AACrE,EAAE;AACF,sCAAsC;AACtC,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,wEAAwE;AACxE,wEAAwE;AACxE,0EAA0E;AAC1E,yEAAyE;AACzE,yEAAyE;AACzE,2BAA2B;AAC3B,kFAAkF;AAClF,MAAM,OAAO,GAAG,4BAA4B,CAAC;AAE7C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,oCAAoC,EAAE,cAAc;IACpD,kBAAkB,EAAE,sBAAsB;IAC1C,aAAa,EAAE,kBAAkB;IACjC,iBAAiB,EAAE,kBAAkB;IACrC,mBAAmB,EAAE,iBAAiB;IACtC,oBAAoB,EAAE,qBAAqB;CAC5C,CAAC;AAEF,+EAA+E;AAC/E,2EAA2E;AAC3E,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,EAAE,YAAY,EAAE,sBAAsB,CAAC,KAAK,CAAE,EAAE,CAAC;AAC1D,CAAC;AAED,IAAI,YAAY,GAAoB,IAAI,CAAC;AACzC,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB;AAExD;;;;;GAKG;AACH,SAAS,yBAAyB,CAAC,KAAc;IAC/C,MAAM,MAAM,GAAG,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,GAAG,GAAG,GAAG,OAAO,KAAK,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChD,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,mBAAmB,GACvB,iFAAiF,CAAC,IAAI,CACpF,GAAG,CACJ,CAAC;IACJ,IAAI,CAAC,mBAAmB;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,oBAAoB,CACjC,EAAmD;IAEnD,MAAM,KAAK,GAAG,aAAa,CAAC;IAC5B,IAAI,SAAkB,CAAC;IACvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;QACzE,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YAChD,aAAa,GAAG,KAAK,CAAC,CAAC,uBAAuB;YAC9C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACnD,sEAAsE;QACxE,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAc,EACd,gBAAoC;IAEpC,IAAI,CAAC,CAAC,KAAK,YAAY,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IACpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,MAAM,CAAC;QAClC,CAAC,CAAC,MAAM,CAAC;IACX,6EAA6E;IAC7E,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC9C,EAAE,EAAE,aAAa;IACjB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,aAAa,CAAC,WAAW;IACvC,MAAM,EAAE,qBAAqB;IAC7B,oEAAoE;IACpE,yEAAyE;IACzE,0DAA0D;IAC1D,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;IAChE,KAAK,CAAC,UAAU,CAAC,IAAkB;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,YAAY,IAAI,GAAG,GAAG,aAAa,GAAG,YAAY,EAAE,CAAC;YACvD,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,EAAE;gBAChD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,MAAM,EAAE;oBACjC,GAAG,OAAO;iBACX;aACF,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAmC,QAAQ,CAAC,CAAC;YACxE,OAAO,wBAAwB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,YAAY,GAAG,MAAM,CAAC;YACtB,aAAa,GAAG,GAAG,CAAC;QACtB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAkB;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CACrC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAC/C,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,QAAQ,CACZ,OAA0B,EAC1B,IAAkB;QAElB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,WAAW,CAAC;QACzD,MAAM,MAAM,GAAG,CAAC,SAA6B,EAAE,EAAE,CAC/C,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/B,wBAAwB,CAAC;YACvB,QAAQ,EAAE,aAAa;YACvB,UAAU,EAAE,aAAa;YACzB,OAAO;YACP,MAAM;YACN,KAAK;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS;YACT,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,cAAc,EAAE,aAAa;YAC7B,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC7C,CAAC,CACH,CAAC;QACJ,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,8BAA8B,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACxE,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,KAAK,CAAC;YACtC,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,kBAAkB,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK,CAAC,MAAM,CACV,OAA0B,EAC1B,IAAkB,EAClB,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,WAAW,CAAC;QACzD,MAAM,MAAM,GAAG,CAAC,SAA6B,EAAE,EAAE,CAC/C,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/B,sBAAsB,CAAC;YACrB,QAAQ,EAAE,aAAa;YACvB,UAAU,EAAE,aAAa;YACzB,OAAO;YACP,MAAM;YACN,KAAK;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS;YACT,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,cAAc,EAAE,aAAa;YAC7B,
|
|
1
|
+
{"version":3,"file":"agentrouter.js","sourceRoot":"","sources":["../../src/llm/agentrouter.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/bynara.js
CHANGED
|
@@ -79,8 +79,8 @@ export const bynaraProvider = {
|
|
|
79
79
|
onToolCallDelta: request.onToolCallDelta,
|
|
80
80
|
reasoning: request.thinking,
|
|
81
81
|
reasoningStyle: "openai",
|
|
82
|
-
//
|
|
83
|
-
|
|
82
|
+
// 60s first byte, but the mid-stream budget has to survive a fully
|
|
83
|
+
// buffered tool call (see DEFAULT_STREAM_IDLE_TIMEOUT_MS).
|
|
84
84
|
initialIdleTimeoutMs: 60_000,
|
|
85
85
|
tools: request.tools,
|
|
86
86
|
toolChoice: request.toolChoice,
|
package/dist/llm/bynara.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bynara.js","sourceRoot":"","sources":["../../src/llm/bynara.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bynara.js","sourceRoot":"","sources":["../../src/llm/bynara.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/http.d.ts
CHANGED
|
@@ -9,9 +9,29 @@ export declare function catalogEntryVision(entry: unknown): boolean | undefined;
|
|
|
9
9
|
export declare function ingestModelCatalogEntries(provider: ProviderId, entries: readonly unknown[]): string[];
|
|
10
10
|
export declare function ingestOpenAiModelCatalog(provider: ProviderId, payload: unknown): string[];
|
|
11
11
|
export declare function readJson<T>(response: Response): Promise<T>;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Mid-stream silence budget.
|
|
14
|
+
*
|
|
15
|
+
* This is deliberately generous because "no bytes" does **not** mean "dead
|
|
16
|
+
* socket" on an OpenAI-compatible endpoint. Most self-hosted runtimes (vLLM /
|
|
17
|
+
* SGLang and the tool-call parsers layered on top of them) buffer an entire
|
|
18
|
+
* `tool_calls` delta before emitting it, so a model writing a large file goes
|
|
19
|
+
* completely silent on the wire for as long as the generation takes. A 90s
|
|
20
|
+
* budget aborted those healthy streams at `firstToken + 90s`, reported the
|
|
21
|
+
* abort as a network failure, and burned three identical retries that each
|
|
22
|
+
* re-generated the same prefix before one happened to finish inside the window.
|
|
23
|
+
*/
|
|
24
|
+
export declare const DEFAULT_STREAM_IDLE_TIMEOUT_MS = 240000;
|
|
25
|
+
export declare const THINKING_STREAM_IDLE_TIMEOUT_MS = 300000;
|
|
14
26
|
export declare const THINKING_STREAM_INITIAL_IDLE_TIMEOUT_MS = 300000;
|
|
27
|
+
/**
|
|
28
|
+
* Marker appended to the message of a stall that happened on a **live**
|
|
29
|
+
* connection (bytes/keepalives were still arriving, or output had already
|
|
30
|
+
* started and simply stopped). Such a stall is not a transport failure, so the
|
|
31
|
+
* recovery layer must not classify it as `network` and retry the identical
|
|
32
|
+
* request against the identical route.
|
|
33
|
+
*/
|
|
34
|
+
export declare const STREAM_STALL_MARKER = "no model output";
|
|
15
35
|
export interface StreamLineReaderOptions {
|
|
16
36
|
signal?: AbortSignal | undefined;
|
|
17
37
|
idleTimeoutMs?: number | undefined;
|
|
@@ -138,8 +158,14 @@ export declare function openAiCompatibleStream(options: {
|
|
|
138
158
|
name?: string;
|
|
139
159
|
argumentsBytes?: number;
|
|
140
160
|
}) => void) | undefined;
|
|
141
|
-
/** Abort a stream that
|
|
161
|
+
/** Abort a stream that delivers no bytes for this long (mid-stream). */
|
|
142
162
|
idleTimeoutMs?: number | undefined;
|
|
143
163
|
initialIdleTimeoutMs?: number | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* Abort a stream that delivers bytes but no model output for this long.
|
|
166
|
+
* Bounds a keepalive-only stream. Defaults to 1.5x the largest byte budget so
|
|
167
|
+
* it always outlasts the transport watchdog.
|
|
168
|
+
*/
|
|
169
|
+
outputIdleTimeoutMs?: number | undefined;
|
|
144
170
|
}): Promise<OpenAiCompatibleResult>;
|
|
145
171
|
export declare function openAiCompatiblePing(baseUrl: string, apiKey: string, headers?: Record<string, string> | undefined): Promise<void>;
|
package/dist/llm/http.js
CHANGED
|
@@ -229,9 +229,29 @@ async function readBodyCapped(response, maxBytes) {
|
|
|
229
229
|
}
|
|
230
230
|
return collected;
|
|
231
231
|
}
|
|
232
|
-
|
|
233
|
-
|
|
232
|
+
/**
|
|
233
|
+
* Mid-stream silence budget.
|
|
234
|
+
*
|
|
235
|
+
* This is deliberately generous because "no bytes" does **not** mean "dead
|
|
236
|
+
* socket" on an OpenAI-compatible endpoint. Most self-hosted runtimes (vLLM /
|
|
237
|
+
* SGLang and the tool-call parsers layered on top of them) buffer an entire
|
|
238
|
+
* `tool_calls` delta before emitting it, so a model writing a large file goes
|
|
239
|
+
* completely silent on the wire for as long as the generation takes. A 90s
|
|
240
|
+
* budget aborted those healthy streams at `firstToken + 90s`, reported the
|
|
241
|
+
* abort as a network failure, and burned three identical retries that each
|
|
242
|
+
* re-generated the same prefix before one happened to finish inside the window.
|
|
243
|
+
*/
|
|
244
|
+
export const DEFAULT_STREAM_IDLE_TIMEOUT_MS = 240_000;
|
|
245
|
+
export const THINKING_STREAM_IDLE_TIMEOUT_MS = 300_000;
|
|
234
246
|
export const THINKING_STREAM_INITIAL_IDLE_TIMEOUT_MS = 300_000;
|
|
247
|
+
/**
|
|
248
|
+
* Marker appended to the message of a stall that happened on a **live**
|
|
249
|
+
* connection (bytes/keepalives were still arriving, or output had already
|
|
250
|
+
* started and simply stopped). Such a stall is not a transport failure, so the
|
|
251
|
+
* recovery layer must not classify it as `network` and retry the identical
|
|
252
|
+
* request against the identical route.
|
|
253
|
+
*/
|
|
254
|
+
export const STREAM_STALL_MARKER = "no model output";
|
|
235
255
|
function readWithAbort(reader, signal) {
|
|
236
256
|
if (signal.aborted) {
|
|
237
257
|
return Promise.reject(signal.reason ?? new Error("Stream aborted"));
|
|
@@ -861,21 +881,67 @@ export async function openAiCompatibleStream(options) {
|
|
|
861
881
|
(reasoningOn
|
|
862
882
|
? THINKING_STREAM_INITIAL_IDLE_TIMEOUT_MS
|
|
863
883
|
: idleTimeoutMs);
|
|
884
|
+
// "No bytes" and "no output" are different failures and need separate
|
|
885
|
+
// budgets. The transport watchdog is re-armed by every read, so an SSE
|
|
886
|
+
// keepalive comment, a `delta:{}` heartbeat, a role-only opening delta, or a
|
|
887
|
+
// multi-line frame still being assembled all count as proof that the
|
|
888
|
+
// connection is healthy. The output watchdog is re-armed only by real model
|
|
889
|
+
// progress, so a stream that keepalives forever without ever producing
|
|
890
|
+
// anything still fails instead of hanging.
|
|
891
|
+
const outputIdleTimeoutMs = options.outputIdleTimeoutMs ??
|
|
892
|
+
Math.round(Math.max(idleTimeoutMs, initialIdleTimeoutMs) * 1.5);
|
|
864
893
|
const idleController = new AbortController();
|
|
865
|
-
let
|
|
894
|
+
let transportTimer;
|
|
895
|
+
let outputTimer;
|
|
866
896
|
let idleFired = false;
|
|
897
|
+
let firedWatchdog;
|
|
898
|
+
/** Budget of whichever watchdog fired, for the error message. */
|
|
899
|
+
let firedBudgetMs = initialIdleTimeoutMs;
|
|
900
|
+
/**
|
|
901
|
+
* Any bytes at all read off the socket, whether or not the frame carried
|
|
902
|
+
* model output. Separates "the route never answered" (retry the request) from
|
|
903
|
+
* "the model was working and went quiet" (a retry replays all of that work).
|
|
904
|
+
*/
|
|
905
|
+
let sawTransportActivity = false;
|
|
906
|
+
/** Model-visible progress: content, reasoning, tool-call delta, or usage. */
|
|
867
907
|
let sawStreamProgress = false;
|
|
868
|
-
|
|
908
|
+
const fireStall = (watchdog, budgetMs) => {
|
|
909
|
+
// The two timers can expire in the same event-loop turn. Preserve the first
|
|
910
|
+
// cause so a transport outage is never relabeled by the output watchdog.
|
|
911
|
+
if (idleFired)
|
|
912
|
+
return;
|
|
913
|
+
idleFired = true;
|
|
914
|
+
firedWatchdog = watchdog;
|
|
915
|
+
firedBudgetMs = budgetMs;
|
|
916
|
+
idleController.abort();
|
|
917
|
+
};
|
|
918
|
+
const armTransportTimer = (budgetMs) => {
|
|
919
|
+
if (transportTimer)
|
|
920
|
+
clearTimeout(transportTimer);
|
|
921
|
+
transportTimer = setTimeout(() => fireStall("transport", budgetMs), budgetMs);
|
|
922
|
+
};
|
|
923
|
+
/** Bytes arrived — the connection is alive; re-arm the mid-stream budget. */
|
|
924
|
+
const noteTransportActivity = () => {
|
|
925
|
+
sawTransportActivity = true;
|
|
926
|
+
armTransportTimer(idleTimeoutMs);
|
|
927
|
+
};
|
|
869
928
|
const resetIdleTimer = () => {
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
929
|
+
sawStreamProgress = true;
|
|
930
|
+
noteTransportActivity();
|
|
931
|
+
if (outputTimer)
|
|
932
|
+
clearTimeout(outputTimer);
|
|
933
|
+
outputTimer = setTimeout(() => fireStall("output", outputIdleTimeoutMs), outputIdleTimeoutMs);
|
|
934
|
+
};
|
|
935
|
+
armTransportTimer(initialIdleTimeoutMs);
|
|
936
|
+
outputTimer = setTimeout(() => fireStall("output", outputIdleTimeoutMs), outputIdleTimeoutMs);
|
|
937
|
+
const clearIdleTimers = () => {
|
|
938
|
+
if (transportTimer)
|
|
939
|
+
clearTimeout(transportTimer);
|
|
940
|
+
if (outputTimer)
|
|
941
|
+
clearTimeout(outputTimer);
|
|
942
|
+
transportTimer = undefined;
|
|
943
|
+
outputTimer = undefined;
|
|
877
944
|
};
|
|
878
|
-
resetIdleTimer();
|
|
879
945
|
const onCallerAbort = () => idleController.abort(options.signal?.reason);
|
|
880
946
|
options.signal?.addEventListener("abort", onCallerAbort, { once: true });
|
|
881
947
|
const supportsVision = modelAcceptsImages(options.providerId, options.model);
|
|
@@ -909,17 +975,15 @@ export async function openAiCompatibleStream(options) {
|
|
|
909
975
|
});
|
|
910
976
|
}
|
|
911
977
|
catch (error) {
|
|
912
|
-
|
|
913
|
-
clearTimeout(idleTimer);
|
|
978
|
+
clearIdleTimers();
|
|
914
979
|
options.signal?.removeEventListener("abort", onCallerAbort);
|
|
915
980
|
if (idleFired) {
|
|
916
|
-
throw new ProviderError(`${options.provider} request timed out before any response (${Math.round(
|
|
981
|
+
throw new ProviderError(`${options.provider} request timed out before any response (${Math.round(firedBudgetMs / 1000)}s)`);
|
|
917
982
|
}
|
|
918
983
|
throw error;
|
|
919
984
|
}
|
|
920
985
|
if (!response.ok) {
|
|
921
|
-
|
|
922
|
-
clearTimeout(idleTimer);
|
|
986
|
+
clearIdleTimers();
|
|
923
987
|
options.signal?.removeEventListener("abort", onCallerAbort);
|
|
924
988
|
try {
|
|
925
989
|
await readJson(response);
|
|
@@ -932,15 +996,13 @@ export async function openAiCompatibleStream(options) {
|
|
|
932
996
|
}
|
|
933
997
|
}
|
|
934
998
|
if (!response.body) {
|
|
935
|
-
|
|
936
|
-
clearTimeout(idleTimer);
|
|
999
|
+
clearIdleTimers();
|
|
937
1000
|
options.signal?.removeEventListener("abort", onCallerAbort);
|
|
938
1001
|
throw new ProviderError(`${options.provider} returned no stream body`);
|
|
939
1002
|
}
|
|
940
1003
|
const contentType = response.headers.get("content-type") ?? "";
|
|
941
1004
|
if (response.status === 202 || /\bapplication\/json\b/i.test(contentType)) {
|
|
942
|
-
|
|
943
|
-
clearTimeout(idleTimer);
|
|
1005
|
+
clearIdleTimers();
|
|
944
1006
|
options.signal?.removeEventListener("abort", onCallerAbort);
|
|
945
1007
|
const data = await readJson(response);
|
|
946
1008
|
if (response.status === 202) {
|
|
@@ -1091,8 +1153,7 @@ export async function openAiCompatibleStream(options) {
|
|
|
1091
1153
|
}
|
|
1092
1154
|
};
|
|
1093
1155
|
const cleanup = () => {
|
|
1094
|
-
|
|
1095
|
-
clearTimeout(idleTimer);
|
|
1156
|
+
clearIdleTimers();
|
|
1096
1157
|
options.signal?.removeEventListener("abort", onCallerAbort);
|
|
1097
1158
|
idleController.signal.removeEventListener("abort", cancelReaderOnAbort);
|
|
1098
1159
|
};
|
|
@@ -1116,6 +1177,11 @@ export async function openAiCompatibleStream(options) {
|
|
|
1116
1177
|
}
|
|
1117
1178
|
if (done)
|
|
1118
1179
|
break;
|
|
1180
|
+
// Bytes off the wire re-arm the watchdog before anything is parsed.
|
|
1181
|
+
// Keepalives and empty deltas are proof of a live connection, so they
|
|
1182
|
+
// must not be allowed to age out a stream that is merely quiet.
|
|
1183
|
+
if (value && value.byteLength > 0)
|
|
1184
|
+
noteTransportActivity();
|
|
1119
1185
|
buffer += decoder.decode(value, { stream: true });
|
|
1120
1186
|
const lines = buffer.split("\n");
|
|
1121
1187
|
buffer = lines.pop() ?? "";
|
|
@@ -1189,7 +1255,6 @@ export async function openAiCompatibleStream(options) {
|
|
|
1189
1255
|
reasoningToken ||
|
|
1190
1256
|
token ||
|
|
1191
1257
|
toolProgress) {
|
|
1192
|
-
sawStreamProgress = true;
|
|
1193
1258
|
resetIdleTimer();
|
|
1194
1259
|
}
|
|
1195
1260
|
if (choice?.finish_reason)
|
|
@@ -1260,7 +1325,27 @@ export async function openAiCompatibleStream(options) {
|
|
|
1260
1325
|
}
|
|
1261
1326
|
catch (error) {
|
|
1262
1327
|
if (idleFired) {
|
|
1263
|
-
|
|
1328
|
+
const seconds = Math.round(firedBudgetMs / 1000);
|
|
1329
|
+
// Preserve the actual watchdog source. Any byte proves the route admitted
|
|
1330
|
+
// the request, but a later byte-silence timeout is still a transport
|
|
1331
|
+
// failure; only the output watchdog denotes a live keepalive-only/model
|
|
1332
|
+
// stall and receives STREAM_STALL_MARKER.
|
|
1333
|
+
if (firedWatchdog === "transport" || !sawTransportActivity) {
|
|
1334
|
+
if (!sawTransportActivity) {
|
|
1335
|
+
// Keep the established wording: both the router's transparent-retry
|
|
1336
|
+
// check and classifyStreamFailure key off this phrase to treat a route
|
|
1337
|
+
// that never answered as a retriable transport failure.
|
|
1338
|
+
throw new ProviderError(`${options.provider} request timed out before any response (${seconds}s) — no data arrived on the connection.`);
|
|
1339
|
+
}
|
|
1340
|
+
throw new ProviderError(`${options.provider} stream transport timeout (${seconds}s) — no data arrived on the connection after it had started.`);
|
|
1341
|
+
}
|
|
1342
|
+
throw new ProviderError(`${options.provider} stream stalled — ${STREAM_STALL_MARKER} for ${seconds}s` +
|
|
1343
|
+
(sawStreamProgress
|
|
1344
|
+
? " after it had already started producing output. " +
|
|
1345
|
+
"The connection stayed open, so the model was most likely buffering one very large tool call. " +
|
|
1346
|
+
"Split large writes into smaller sequential calls, or try a smaller model / disable thinking with /variants off."
|
|
1347
|
+
: " — the connection stayed open but the model never produced anything. " +
|
|
1348
|
+
"Try another model, or disable thinking with /variants off."));
|
|
1264
1349
|
}
|
|
1265
1350
|
throw error;
|
|
1266
1351
|
}
|