@superblocksteam/vite-plugin-file-sync 2.0.139 → 2.0.140-next.1
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/ai-service/agent/tools/apis/api-validation-orchestrator.js +1 -1
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +3 -2
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +1 -13
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/git.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/git.js +19 -1
- package/dist/ai-service/agent/tools2/tools/git.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +46 -3
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/app-interface/npm-registry.d.ts +11 -7
- package/dist/ai-service/app-interface/npm-registry.d.ts.map +1 -1
- package/dist/ai-service/app-interface/npm-registry.js +11 -7
- package/dist/ai-service/app-interface/npm-registry.js.map +1 -1
- package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
- package/dist/ai-service/app-skills/helpers.js +2 -0
- package/dist/ai-service/app-skills/helpers.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store-metrics.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store-metrics.js +26 -17
- package/dist/ai-service/chat/chat-session-store-metrics.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +1 -4
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +32 -8
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/chat/transcript-metrics.d.ts +5 -0
- package/dist/ai-service/chat/transcript-metrics.d.ts.map +1 -1
- package/dist/ai-service/chat/transcript-metrics.js +42 -15
- package/dist/ai-service/chat/transcript-metrics.js.map +1 -1
- package/dist/ai-service/index.d.ts +2 -0
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +206 -31
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +9 -9
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts +6 -0
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.js +18 -1
- package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
- package/dist/ai-service/llm/provider.d.ts +7 -1
- package/dist/ai-service/llm/provider.d.ts.map +1 -1
- package/dist/ai-service/llm/provider.js +292 -15
- package/dist/ai-service/llm/provider.js.map +1 -1
- package/dist/ai-service/llm/stream/empty-tool-call-tracker.d.ts +47 -0
- package/dist/ai-service/llm/stream/empty-tool-call-tracker.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/empty-tool-call-tracker.js +122 -0
- package/dist/ai-service/llm/stream/empty-tool-call-tracker.js.map +1 -0
- package/dist/ai-service/llm/stream/errors.d.ts +21 -1
- package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/errors.js +20 -0
- package/dist/ai-service/llm/stream/errors.js.map +1 -1
- package/dist/ai-service/llm/stream/managed-stream.d.ts +5 -1
- package/dist/ai-service/llm/stream/managed-stream.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/managed-stream.js +51 -1
- package/dist/ai-service/llm/stream/managed-stream.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts +17 -2
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +185 -135
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llmobs/otel-exporter.d.ts.map +1 -1
- package/dist/ai-service/llmobs/otel-exporter.js +17 -6
- package/dist/ai-service/llmobs/otel-exporter.js.map +1 -1
- package/dist/ai-service/llmobs/tracer.d.ts +24 -2
- package/dist/ai-service/llmobs/tracer.d.ts.map +1 -1
- package/dist/ai-service/llmobs/tracer.js +90 -25
- package/dist/ai-service/llmobs/tracer.js.map +1 -1
- package/dist/ai-service/llmobs/types.d.ts +5 -0
- package/dist/ai-service/llmobs/types.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +24 -7
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +5 -0
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +30 -43
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.js +21 -0
- package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.js +16 -1
- package/dist/ai-service/state-machine/handlers/idle.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +10 -21
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/persist-prompt-attachments.d.ts +25 -0
- package/dist/ai-service/state-machine/handlers/persist-prompt-attachments.d.ts.map +1 -0
- package/dist/ai-service/state-machine/handlers/persist-prompt-attachments.js +68 -0
- package/dist/ai-service/state-machine/handlers/persist-prompt-attachments.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/prompt-failure.d.ts +51 -0
- package/dist/ai-service/state-machine/helpers/prompt-failure.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/prompt-failure.js +149 -0
- package/dist/ai-service/state-machine/helpers/prompt-failure.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts +77 -0
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js +229 -0
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/transition.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/transition.js +5 -1
- package/dist/ai-service/state-machine/helpers/transition.js.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.d.ts +6 -1
- package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.js +13 -3
- package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
- package/dist/ai-service/util/llm-config-utils.d.ts +2 -2
- package/dist/ai-service/util/llm-config-utils.d.ts.map +1 -1
- package/dist/ai-service/util/llm-config-utils.js +2 -2
- package/dist/ai-service/util/llm-config-utils.js.map +1 -1
- package/dist/git-service/app-layout-guard.d.ts +36 -0
- package/dist/git-service/app-layout-guard.d.ts.map +1 -0
- package/dist/git-service/app-layout-guard.js +66 -0
- package/dist/git-service/app-layout-guard.js.map +1 -0
- package/dist/git-service/errors.d.ts +5 -0
- package/dist/git-service/errors.d.ts.map +1 -1
- package/dist/git-service/errors.js +10 -0
- package/dist/git-service/errors.js.map +1 -1
- package/dist/git-service/index.d.ts +2 -2
- package/dist/git-service/index.d.ts.map +1 -1
- package/dist/git-service/index.js +2 -2
- package/dist/git-service/index.js.map +1 -1
- package/dist/migration-templates/app-fullstack/package.json +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +6 -0
- package/dist/socket-manager.js.map +1 -1
- package/dist/sync-service/index.d.ts +16 -9
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +154 -4
- package/dist/sync-service/index.js.map +1 -1
- package/dist/util/logger.d.ts +7 -0
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js +29 -0
- package/dist/util/logger.js.map +1 -1
- package/package.json +14 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { FinishReason, TextStreamPart } from "ai";
|
|
2
|
+
import type { Tool } from "../../agent/tools2/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Whether a tool call's input carries anything the tool could act on. Empty
|
|
5
|
+
* objects/arrays/strings, whitespace-only strings, and JSON-encoded variants
|
|
6
|
+
* thereof count as having no usable input. This is only one signal: an empty
|
|
7
|
+
* call is treated as an anomaly elsewhere only when it also never yields a
|
|
8
|
+
* tool-result and the turn ends on a non-"tool-calls" finish, so legitimate
|
|
9
|
+
* zero-argument tools are not affected.
|
|
10
|
+
*/
|
|
11
|
+
export declare function hasUsableToolInput(value: unknown, depth?: number): boolean;
|
|
12
|
+
export declare function getToolCallId(chunk: {
|
|
13
|
+
id?: unknown;
|
|
14
|
+
toolCallId?: unknown;
|
|
15
|
+
}): string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Tracks, for a single provider attempt, tool calls that arrived with no usable
|
|
18
|
+
* input and never produced a result. The managed stream feeds every chunk
|
|
19
|
+
* through this tracker so it can both record the anomaly and decide whether to
|
|
20
|
+
* surface a retryable {@link EmptyToolCallError}. A fresh tracker is created per
|
|
21
|
+
* attempt. See {@link EmptyToolCallError} for why this anomaly happens.
|
|
22
|
+
*/
|
|
23
|
+
export declare class EmptyToolCallTracker {
|
|
24
|
+
private readonly pending;
|
|
25
|
+
private readonly withInputDeltas;
|
|
26
|
+
private finishReasonValue;
|
|
27
|
+
private rawFinishReasonValue;
|
|
28
|
+
observe(chunk: TextStreamPart<Record<string, Tool>>): void;
|
|
29
|
+
get pendingCount(): number;
|
|
30
|
+
get toolNames(): string[];
|
|
31
|
+
get finishReason(): FinishReason | undefined;
|
|
32
|
+
get rawFinishReason(): string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* True when the turn ended on a terminal stop reason while a tool call is
|
|
35
|
+
* still unresolved. A "tool-calls" finish means the AI SDK itself drives
|
|
36
|
+
* continuation, so only a non-"tool-calls" terminal finish indicates the
|
|
37
|
+
* generation actually halted with work left to do.
|
|
38
|
+
*
|
|
39
|
+
* An absent finishReason is deliberately treated as "not an anomaly": every
|
|
40
|
+
* real provider terminal chunk carries a reason, so a missing one means the
|
|
41
|
+
* turn hasn't actually ended here (or the SDK shape drifted), and forcing a
|
|
42
|
+
* retry on that ambiguity risks looping healthy streams. The anomaly is still
|
|
43
|
+
* recorded via the metric/log; only the retry is withheld.
|
|
44
|
+
*/
|
|
45
|
+
get endedWithoutToolContinuation(): boolean;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=empty-tool-call-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-tool-call-tracker.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/empty-tool-call-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAEvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAIxD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,OAAO,CA6BrE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,GAAG,SAAS,CAQrB;AAED;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,oBAAoB,CAAqB;IAEjD,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;IAoC1D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAE3C;IAED,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CAExC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,4BAA4B,IAAI,OAAO,CAM1C;CACF"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
const MAX_TOOL_INPUT_PARSE_DEPTH = 10;
|
|
2
|
+
/**
|
|
3
|
+
* Whether a tool call's input carries anything the tool could act on. Empty
|
|
4
|
+
* objects/arrays/strings, whitespace-only strings, and JSON-encoded variants
|
|
5
|
+
* thereof count as having no usable input. This is only one signal: an empty
|
|
6
|
+
* call is treated as an anomaly elsewhere only when it also never yields a
|
|
7
|
+
* tool-result and the turn ends on a non-"tool-calls" finish, so legitimate
|
|
8
|
+
* zero-argument tools are not affected.
|
|
9
|
+
*/
|
|
10
|
+
export function hasUsableToolInput(value, depth = 0) {
|
|
11
|
+
// Deliberate fail-open: pathologically deep nesting is treated as usable
|
|
12
|
+
// rather than spending unbounded work unwrapping it. A stuck provider emits a
|
|
13
|
+
// flat empty block, not a deeply nested one, so this can't mask the anomaly.
|
|
14
|
+
if (depth > MAX_TOOL_INPUT_PARSE_DEPTH) {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
if (value === null || value === undefined) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (typeof value === "string") {
|
|
21
|
+
// Empty and whitespace-only strings carry nothing actionable.
|
|
22
|
+
if (value.trim() === "") {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
return hasUsableToolInput(JSON.parse(value), depth + 1);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// A non-blank, non-JSON string is real content the tool can act on.
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (Array.isArray(value)) {
|
|
34
|
+
return value.length > 0;
|
|
35
|
+
}
|
|
36
|
+
if (typeof value === "object") {
|
|
37
|
+
return Object.keys(value).length > 0;
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
export function getToolCallId(chunk) {
|
|
42
|
+
if (typeof chunk.toolCallId === "string") {
|
|
43
|
+
return chunk.toolCallId;
|
|
44
|
+
}
|
|
45
|
+
if (typeof chunk.id === "string") {
|
|
46
|
+
return chunk.id;
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Tracks, for a single provider attempt, tool calls that arrived with no usable
|
|
52
|
+
* input and never produced a result. The managed stream feeds every chunk
|
|
53
|
+
* through this tracker so it can both record the anomaly and decide whether to
|
|
54
|
+
* surface a retryable {@link EmptyToolCallError}. A fresh tracker is created per
|
|
55
|
+
* attempt. See {@link EmptyToolCallError} for why this anomaly happens.
|
|
56
|
+
*/
|
|
57
|
+
export class EmptyToolCallTracker {
|
|
58
|
+
pending = new Map();
|
|
59
|
+
withInputDeltas = new Set();
|
|
60
|
+
finishReasonValue;
|
|
61
|
+
rawFinishReasonValue;
|
|
62
|
+
observe(chunk) {
|
|
63
|
+
if (chunk.type === "tool-input-delta") {
|
|
64
|
+
const toolCallId = getToolCallId(chunk);
|
|
65
|
+
if (typeof toolCallId === "string") {
|
|
66
|
+
this.withInputDeltas.add(toolCallId);
|
|
67
|
+
this.pending.delete(toolCallId);
|
|
68
|
+
}
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (chunk.type === "tool-call") {
|
|
72
|
+
const toolCallId = getToolCallId(chunk);
|
|
73
|
+
if (typeof toolCallId === "string" &&
|
|
74
|
+
!this.withInputDeltas.has(toolCallId) &&
|
|
75
|
+
!hasUsableToolInput(chunk.input)) {
|
|
76
|
+
this.pending.set(toolCallId, chunk.toolName);
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (chunk.type === "tool-result") {
|
|
81
|
+
const toolCallId = getToolCallId(chunk);
|
|
82
|
+
if (typeof toolCallId === "string") {
|
|
83
|
+
this.pending.delete(toolCallId);
|
|
84
|
+
}
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (chunk.type === "finish") {
|
|
88
|
+
this.finishReasonValue = chunk.finishReason;
|
|
89
|
+
this.rawFinishReasonValue = chunk.rawFinishReason;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
get pendingCount() {
|
|
93
|
+
return this.pending.size;
|
|
94
|
+
}
|
|
95
|
+
get toolNames() {
|
|
96
|
+
return [...new Set(this.pending.values())];
|
|
97
|
+
}
|
|
98
|
+
get finishReason() {
|
|
99
|
+
return this.finishReasonValue;
|
|
100
|
+
}
|
|
101
|
+
get rawFinishReason() {
|
|
102
|
+
return this.rawFinishReasonValue;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* True when the turn ended on a terminal stop reason while a tool call is
|
|
106
|
+
* still unresolved. A "tool-calls" finish means the AI SDK itself drives
|
|
107
|
+
* continuation, so only a non-"tool-calls" terminal finish indicates the
|
|
108
|
+
* generation actually halted with work left to do.
|
|
109
|
+
*
|
|
110
|
+
* An absent finishReason is deliberately treated as "not an anomaly": every
|
|
111
|
+
* real provider terminal chunk carries a reason, so a missing one means the
|
|
112
|
+
* turn hasn't actually ended here (or the SDK shape drifted), and forcing a
|
|
113
|
+
* retry on that ambiguity risks looping healthy streams. The anomaly is still
|
|
114
|
+
* recorded via the metric/log; only the retry is withheld.
|
|
115
|
+
*/
|
|
116
|
+
get endedWithoutToolContinuation() {
|
|
117
|
+
return (this.pending.size > 0 &&
|
|
118
|
+
this.finishReasonValue !== undefined &&
|
|
119
|
+
this.finishReasonValue !== "tool-calls");
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=empty-tool-call-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-tool-call-tracker.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/empty-tool-call-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export declare class AbortedError extends Error {
|
|
|
10
10
|
name: string;
|
|
11
11
|
constructor(message?: string);
|
|
12
12
|
}
|
|
13
|
-
export declare class ToolExecutionTimeoutError extends Error {
|
|
13
|
+
export declare class ToolExecutionTimeoutError extends Error implements RetryableError {
|
|
14
14
|
name: string;
|
|
15
15
|
readonly input: unknown | undefined;
|
|
16
16
|
readonly isRetryable = false;
|
|
@@ -18,6 +18,26 @@ export declare class ToolExecutionTimeoutError extends Error {
|
|
|
18
18
|
readonly toolName: string;
|
|
19
19
|
constructor(toolName: string, timeoutMs: number, input?: unknown);
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Error thrown when a provider ends a turn with a tool call that has no usable
|
|
23
|
+
* input and never produced a result. Some providers (notably Snowflake Cortex
|
|
24
|
+
* over the Anthropic-compatible API) emit an empty tool-use block and report a
|
|
25
|
+
* terminal stop reason instead of continuing, which silently halts generation
|
|
26
|
+
* mid-build. Surfacing it as a retryable error lets the retry engine re-run the
|
|
27
|
+
* turn or fall back to another provider instead of finishing early.
|
|
28
|
+
*/
|
|
29
|
+
export declare class EmptyToolCallError extends Error implements RetryableError {
|
|
30
|
+
name: string;
|
|
31
|
+
readonly isRetryable = true;
|
|
32
|
+
readonly toolNames: string[];
|
|
33
|
+
readonly finishReason: string | undefined;
|
|
34
|
+
constructor(args: {
|
|
35
|
+
provider: string;
|
|
36
|
+
model: string;
|
|
37
|
+
toolNames: string[];
|
|
38
|
+
finishReason?: string;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
21
41
|
/**
|
|
22
42
|
* Which idle budget was in effect when a stall fired. Carried on the error so
|
|
23
43
|
* downstream logging classifies stalls without re-deriving the budget by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EAEpB,gBAAgB,EAChB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,CAAC;AAErD,qBAAa,qBAAsB,SAAQ,KAAK;IACrC,IAAI,SAA2B;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAMnE;AAED,qBAAa,YAAa,SAAQ,KAAK;IAC5B,IAAI,SAAkB;gBAEnB,OAAO,SAAoB;CAGxC;AAED,qBAAa,yBAA0B,SAAQ,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EAEpB,gBAAgB,EAChB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,CAAC;AAErD,qBAAa,qBAAsB,SAAQ,KAAK;IACrC,IAAI,SAA2B;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAMnE;AAED,qBAAa,YAAa,SAAQ,KAAK;IAC5B,IAAI,SAAkB;gBAEnB,OAAO,SAAoB;CAGxC;AAED,qBAAa,yBAA0B,SAAQ,KAAM,YAAW,cAAc;IACnE,IAAI,SAA+B;IAC5C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,WAAW,SAAS;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAMjE;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,KAAM,YAAW,cAAc;IAC5D,IAAI,SAAwB;IACrC,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE9B,IAAI,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;CAQF;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,CAAC;AAE3E;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAM,YAAW,cAAc;IAC3D,IAAI,SAAuB;IACpC,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;gBAGnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,UAAU,GAAE,eAA+B;CAS9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAwE3E"}
|
|
@@ -31,6 +31,26 @@ export class ToolExecutionTimeoutError extends Error {
|
|
|
31
31
|
this.timeoutMs = timeoutMs;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Error thrown when a provider ends a turn with a tool call that has no usable
|
|
36
|
+
* input and never produced a result. Some providers (notably Snowflake Cortex
|
|
37
|
+
* over the Anthropic-compatible API) emit an empty tool-use block and report a
|
|
38
|
+
* terminal stop reason instead of continuing, which silently halts generation
|
|
39
|
+
* mid-build. Surfacing it as a retryable error lets the retry engine re-run the
|
|
40
|
+
* turn or fall back to another provider instead of finishing early.
|
|
41
|
+
*/
|
|
42
|
+
export class EmptyToolCallError extends Error {
|
|
43
|
+
name = "EmptyToolCallError";
|
|
44
|
+
isRetryable = true;
|
|
45
|
+
toolNames;
|
|
46
|
+
finishReason;
|
|
47
|
+
constructor(args) {
|
|
48
|
+
super(`Provider ${args.provider}/${args.model} ended the turn with an unusable tool call ` +
|
|
49
|
+
`(${args.toolNames.join(", ") || "unknown"}; finishReason=${args.finishReason ?? "unknown"})`);
|
|
50
|
+
this.toolNames = args.toolNames;
|
|
51
|
+
this.finishReason = args.finishReason;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
34
54
|
/**
|
|
35
55
|
* Error thrown when a stream has been idle for too long.
|
|
36
56
|
* This is a retryable error that triggers the retry logic.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AsyncIterableStream, TextStreamPart } from "ai";
|
|
2
2
|
import type { Tool } from "../../agent/tools2/types.js";
|
|
3
|
+
import { EmptyToolCallTracker } from "./empty-tool-call-tracker.js";
|
|
3
4
|
import type { IdleMonitor } from "./idle-monitor.js";
|
|
4
5
|
import type { StreamSession } from "./session.js";
|
|
5
6
|
/**
|
|
@@ -22,7 +23,10 @@ import type { StreamSession } from "./session.js";
|
|
|
22
23
|
* @param source - The source async iterable stream
|
|
23
24
|
* @param session - The session to update with events
|
|
24
25
|
* @param idleMonitor - Idle monitor to detect stalled streams
|
|
26
|
+
* @param onEmptyToolCallFinish - Called when the attempt ends with one or more
|
|
27
|
+
* unusable tool calls, so the caller can record the anomaly. Detection and the
|
|
28
|
+
* resulting retryable error are owned here.
|
|
25
29
|
* @returns A managed stream with lifecycle hooks
|
|
26
30
|
*/
|
|
27
|
-
export declare function createManagedStream<T extends TextStreamPart<Record<string, Tool>>>(source: AsyncIterableStream<T>, session: StreamSession, idleMonitor: IdleMonitor): AsyncIterableStream<T>;
|
|
31
|
+
export declare function createManagedStream<T extends TextStreamPart<Record<string, Tool>>>(source: AsyncIterableStream<T>, session: StreamSession, idleMonitor: IdleMonitor, onEmptyToolCallFinish?: (tracker: EmptyToolCallTracker) => void): AsyncIterableStream<T>;
|
|
28
32
|
//# sourceMappingURL=managed-stream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-stream.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/managed-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAE9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"managed-stream.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/managed-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAE9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAE9C,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC9B,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,WAAW,EACxB,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAC9D,mBAAmB,CAAC,CAAC,CAAC,CA2MxB"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { getServerCompactionTextBlockUpdate } from "./compaction-text-block.js";
|
|
2
|
+
import { EmptyToolCallTracker } from "./empty-tool-call-tracker.js";
|
|
3
|
+
import { EmptyToolCallError } from "./errors.js";
|
|
2
4
|
/**
|
|
3
5
|
* Creates a managed stream that wraps the source stream with lifecycle management.
|
|
4
6
|
*
|
|
@@ -19,12 +21,17 @@ import { getServerCompactionTextBlockUpdate } from "./compaction-text-block.js";
|
|
|
19
21
|
* @param source - The source async iterable stream
|
|
20
22
|
* @param session - The session to update with events
|
|
21
23
|
* @param idleMonitor - Idle monitor to detect stalled streams
|
|
24
|
+
* @param onEmptyToolCallFinish - Called when the attempt ends with one or more
|
|
25
|
+
* unusable tool calls, so the caller can record the anomaly. Detection and the
|
|
26
|
+
* resulting retryable error are owned here.
|
|
22
27
|
* @returns A managed stream with lifecycle hooks
|
|
23
28
|
*/
|
|
24
|
-
export function createManagedStream(source, session, idleMonitor) {
|
|
29
|
+
export function createManagedStream(source, session, idleMonitor, onEmptyToolCallFinish) {
|
|
25
30
|
const iterator = source[Symbol.asyncIterator]();
|
|
26
31
|
let closed = false;
|
|
27
32
|
const compactionTextBlockIds = new Set();
|
|
33
|
+
// Fresh per managed stream, so each provider attempt is tracked independently.
|
|
34
|
+
const emptyToolCallTracker = new EmptyToolCallTracker();
|
|
28
35
|
const readable = new ReadableStream({
|
|
29
36
|
async pull(controller) {
|
|
30
37
|
if (closed || !session.isPending()) {
|
|
@@ -133,6 +140,49 @@ export function createManagedStream(source, session, idleMonitor) {
|
|
|
133
140
|
controller.error(chunkError);
|
|
134
141
|
return;
|
|
135
142
|
}
|
|
143
|
+
emptyToolCallTracker.observe(result.value);
|
|
144
|
+
if (result.value.type === "finish" &&
|
|
145
|
+
emptyToolCallTracker.pendingCount > 0) {
|
|
146
|
+
// Telemetry must never preempt the data path. If the reporting
|
|
147
|
+
// callback throws (OTel counter, injected logger), a bare call here
|
|
148
|
+
// would fall through to the generic catch below and replace the
|
|
149
|
+
// outcome with the logging exception: it would misclassify the very
|
|
150
|
+
// incident this surfaces, and — in the healthy tool-calls
|
|
151
|
+
// continuation case — turn a successful multi-tool turn into a hard
|
|
152
|
+
// failure. Swallow reporting errors so they can't do either.
|
|
153
|
+
try {
|
|
154
|
+
onEmptyToolCallFinish?.(emptyToolCallTracker);
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
// ignore: reporting is best-effort, recovery below is what matters
|
|
158
|
+
}
|
|
159
|
+
// Surface the anomaly as a retryable error the same way an error
|
|
160
|
+
// chunk does — via controller.error, not by enqueuing the finish —
|
|
161
|
+
// so wrapWithRetry can retry or fall back instead of completing the
|
|
162
|
+
// stream. See EmptyToolCallError for why providers end a turn this
|
|
163
|
+
// way.
|
|
164
|
+
if (emptyToolCallTracker.endedWithoutToolContinuation) {
|
|
165
|
+
// Feed liveness only, exactly like the error-chunk path above: we
|
|
166
|
+
// deliberately skip session.recordChunk() so this finish does not
|
|
167
|
+
// advance the content clock. recordChunk() resets lastContentTime,
|
|
168
|
+
// and this attempt is about to be retried — counting the finish
|
|
169
|
+
// would let a stuck provider's terminal chunk reset the retry
|
|
170
|
+
// budget's max-time guard. The one-short chunkCount on a failing
|
|
171
|
+
// attempt is intentional; the empty-tool-call anomaly is captured
|
|
172
|
+
// via its own metric and the terminal_reason classification.
|
|
173
|
+
session.resetActivityTimer();
|
|
174
|
+
void session.events.emit("chunk", result.value, session);
|
|
175
|
+
closed = true;
|
|
176
|
+
// don't finalize here, wrapWithRetry catches this and decides whether to retry
|
|
177
|
+
controller.error(new EmptyToolCallError({
|
|
178
|
+
provider: session.provider.name,
|
|
179
|
+
model: session.provider.model,
|
|
180
|
+
toolNames: emptyToolCallTracker.toolNames,
|
|
181
|
+
finishReason: emptyToolCallTracker.finishReason,
|
|
182
|
+
}));
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
136
186
|
session.recordChunk(result.value.type);
|
|
137
187
|
void session.events.emit("chunk", result.value, session);
|
|
138
188
|
controller.enqueue(result.value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-stream.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/managed-stream.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-stream.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/managed-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,17 @@ export declare class StreamOrchestrator {
|
|
|
57
57
|
constructor(options: StreamOrchestratorOptions);
|
|
58
58
|
execute<TOOLS extends Record<string, Tool>>(options: OrchestratorStreamTextOptions<TOOLS>): Promise<StreamTextResult<TOOLS>>;
|
|
59
59
|
private asAsyncIterableStream;
|
|
60
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Wraps an async iterable as a ReadableStream that pulls one item per read.
|
|
62
|
+
* highWaterMark 0 keeps it from pulling eagerly, so binding to the underlying
|
|
63
|
+
* source is deferred until the consumer actually reads.
|
|
64
|
+
*/
|
|
65
|
+
private readableFromAsyncIterable;
|
|
66
|
+
/**
|
|
67
|
+
* Projects a stream of typed parts down to text deltas, dropping server-side
|
|
68
|
+
* compaction summary blocks so they never surface through textStream.
|
|
69
|
+
*/
|
|
70
|
+
private extractTextDeltas;
|
|
61
71
|
private logTerminalStreamSummary;
|
|
62
72
|
private terminalReason;
|
|
63
73
|
/**
|
|
@@ -78,7 +88,12 @@ export declare class StreamOrchestrator {
|
|
|
78
88
|
private startStreamWithRetry;
|
|
79
89
|
private wrapFinalError;
|
|
80
90
|
private startStream;
|
|
81
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Record the metric + structured warning for an attempt that ended with one
|
|
93
|
+
* or more unusable tool calls. Called at the terminal finish chunk so the
|
|
94
|
+
* signal is captured whether or not the orchestrator goes on to retry.
|
|
95
|
+
*/
|
|
96
|
+
private logEmptyToolCalls;
|
|
82
97
|
/**
|
|
83
98
|
* Wraps each tool's execute so only the live attempt can run it. The Vercel AI
|
|
84
99
|
* SDK auto-executes tools as their calls arrive on the provider stream, and a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/orchestrator.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGxD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/orchestrator.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGxD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAWhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMpD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,MAAM,6BAA6B,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAC1E,iBAAiB,CAAC,KAAK,CAAC,GAAG;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AA6QJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAgC;IAC1E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAGlC;IAEJ,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA2B;gBAEvC,OAAO,EAAE,yBAAyB;IAUxC,OAAO,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC9C,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC,GAC5C,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAmanC,OAAO,CAAC,qBAAqB;IA4B7B;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IA8BjC;;;OAGG;YACY,iBAAiB;IA2BhC,OAAO,CAAC,wBAAwB;IAmEhC,OAAO,CAAC,cAAc;IAkDtB;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAuErB;;;OAGG;YACW,mBAAmB;YA+EnB,oBAAoB;IAwElC,OAAO,CAAC,cAAc;YAuCR,WAAW;IAkFzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAsC5B,OAAO,CAAC,aAAa;IA2DrB;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAuE9B,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;OAOG;YACW,cAAc;IAwC5B,OAAO,CAAC,KAAK;CAmBd"}
|