@superblocksteam/vite-plugin-file-sync 2.0.130-next.1 → 2.0.130-next.2
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/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +30 -0
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +8 -0
- 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 +94 -4
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +6 -1
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
- package/dist/ai-service/app-skills/helpers.js +17 -18
- package/dist/ai-service/app-skills/helpers.js.map +1 -1
- package/dist/ai-service/chat/chat-push-metrics.d.ts +12 -0
- package/dist/ai-service/chat/chat-push-metrics.d.ts.map +1 -0
- package/dist/ai-service/chat/chat-push-metrics.js +68 -0
- package/dist/ai-service/chat/chat-push-metrics.js.map +1 -0
- package/dist/ai-service/chat/chat-session-store.d.ts +61 -5
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +214 -8
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/chat/transcript-budget.d.ts +108 -0
- package/dist/ai-service/chat/transcript-budget.d.ts.map +1 -0
- package/dist/ai-service/chat/transcript-budget.js +175 -0
- package/dist/ai-service/chat/transcript-budget.js.map +1 -0
- package/dist/ai-service/chat/transcript-metrics.d.ts +16 -0
- package/dist/ai-service/chat/transcript-metrics.d.ts.map +1 -0
- package/dist/ai-service/chat/transcript-metrics.js +128 -0
- package/dist/ai-service/chat/transcript-metrics.js.map +1 -0
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +4 -0
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/llm/clark-stream-telemetry-sink.d.ts +4 -0
- package/dist/ai-service/llm/clark-stream-telemetry-sink.d.ts.map +1 -0
- package/dist/ai-service/llm/clark-stream-telemetry-sink.js +105 -0
- package/dist/ai-service/llm/clark-stream-telemetry-sink.js.map +1 -0
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +63 -39
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/compaction/client-side.js +10 -1
- package/dist/ai-service/llm/context-v2/compaction/client-side.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +43 -2
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/llm/context-v2/storage/event-types.d.ts +10 -1
- package/dist/ai-service/llm/context-v2/storage/event-types.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/storage/event-types.js +7 -1
- package/dist/ai-service/llm/context-v2/storage/event-types.js.map +1 -1
- package/dist/ai-service/llm/stream/config.d.ts +30 -0
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.js +34 -17
- package/dist/ai-service/llm/stream/config.js.map +1 -1
- package/dist/ai-service/llm/stream/errors.d.ts +10 -1
- package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/errors.js +3 -1
- package/dist/ai-service/llm/stream/errors.js.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.d.ts +13 -4
- package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.js +28 -6
- package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -1
- package/dist/ai-service/llm/stream/index.d.ts +1 -1
- package/dist/ai-service/llm/stream/index.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/index.js.map +1 -1
- package/dist/ai-service/llm/stream/managed-stream.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/managed-stream.js +1 -0
- package/dist/ai-service/llm/stream/managed-stream.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts +19 -0
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +277 -29
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts +15 -0
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +55 -2
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/llm/stream/session.d.ts +3 -0
- package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/session.js +13 -0
- package/dist/ai-service/llm/stream/session.js.map +1 -1
- package/dist/ai-service/llm/stream/wait-state-tracker.d.ts +54 -0
- package/dist/ai-service/llm/stream/wait-state-tracker.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/wait-state-tracker.js +105 -0
- package/dist/ai-service/llm/stream/wait-state-tracker.js.map +1 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +13 -7
- 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 +55 -43
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/flush-pending-chat-pushes.d.ts +11 -0
- package/dist/ai-service/state-machine/handlers/flush-pending-chat-pushes.d.ts.map +1 -0
- package/dist/ai-service/state-machine/handlers/flush-pending-chat-pushes.js +11 -0
- package/dist/ai-service/state-machine/handlers/flush-pending-chat-pushes.js.map +1 -0
- 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 -0
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/background-chat-record-metrics.d.ts +8 -0
- package/dist/ai-service/state-machine/helpers/background-chat-record-metrics.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/background-chat-record-metrics.js +52 -0
- package/dist/ai-service/state-machine/helpers/background-chat-record-metrics.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/background-chat-record.d.ts +33 -0
- package/dist/ai-service/state-machine/helpers/background-chat-record.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/background-chat-record.js +61 -0
- package/dist/ai-service/state-machine/helpers/background-chat-record.js.map +1 -0
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +1 -0
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/tasks/peer-push.d.ts +7 -4
- package/dist/ai-service/tasks/peer-push.d.ts.map +1 -1
- package/dist/ai-service/tasks/peer-push.js +7 -4
- package/dist/ai-service/tasks/peer-push.js.map +1 -1
- package/dist/migration-templates/app-fullstack/package.json +1 -1
- package/dist/socket-manager.d.ts +2 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +17 -6
- package/dist/socket-manager.js.map +1 -1
- package/dist/util/logger.d.ts +1 -0
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js.map +1 -1
- package/package.json +8 -8
|
@@ -12,9 +12,18 @@ import type { SuperblocksMetadata } from "../types.js";
|
|
|
12
12
|
*
|
|
13
13
|
* - `prompt_sent`: A user prompt was sent to the LLM.
|
|
14
14
|
* - `response_received`: An assistant response was received from the LLM.
|
|
15
|
-
* - `compaction_received`: A
|
|
15
|
+
* - `compaction_received`: A compaction replaced earlier history — either a
|
|
16
|
+
* server-side compaction summary or the anchor marker written before a
|
|
17
|
+
* client-side phase-1 compaction window.
|
|
16
18
|
*/
|
|
17
19
|
export type EventType = "prompt_sent" | "response_received" | "compaction_received";
|
|
20
|
+
/**
|
|
21
|
+
* Content of the `compaction_received` marker written before a client-side
|
|
22
|
+
* phase-1 compaction window. The marker is the replay anchor that
|
|
23
|
+
* `JsonlEventStore.loadMessages` scans back to; phase-2 windows do not need
|
|
24
|
+
* it because their first message carries `isSummary`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const CLIENT_COMPACTION_MARKER = "Client-side compaction applied";
|
|
18
27
|
/**
|
|
19
28
|
* Message role aligned with AI SDK's `ModelMessage` role literals.
|
|
20
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD
|
|
1
|
+
{"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,mBAAmB,GACnB,qBAAqB,CAAC;AAE1B;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,mCAAmC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,iEAAiE;IACjE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,+FAA+F;IAC/F,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;CAC7C"}
|
|
@@ -6,5 +6,11 @@
|
|
|
6
6
|
* or compaction received). The event log replaces full-context JSON
|
|
7
7
|
* blob storage with an incremental, corruption-tolerant format.
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Content of the `compaction_received` marker written before a client-side
|
|
11
|
+
* phase-1 compaction window. The marker is the replay anchor that
|
|
12
|
+
* `JsonlEventStore.loadMessages` scans back to; phase-2 windows do not need
|
|
13
|
+
* it because their first message carries `isSummary`.
|
|
14
|
+
*/
|
|
15
|
+
export const CLIENT_COMPACTION_MARKER = "Client-side compaction applied";
|
|
10
16
|
//# sourceMappingURL=event-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-types.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
1
|
+
{"version":3,"file":"event-types.js","sourceRoot":"","sources":["../../../../../src/ai-service/llm/context-v2/storage/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkBH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,gCAAgC,CAAC"}
|
|
@@ -3,6 +3,23 @@ import type { FileArtifact } from "../../types.js";
|
|
|
3
3
|
export type ProviderType = "vertex" | "bedrock" | "snowflake";
|
|
4
4
|
export type CoreModelType = "claude-sonnet-4-5" | "claude-sonnet-4-6" | "claude-opus-4-5" | "claude-opus-4-6" | "claude-opus-4-7";
|
|
5
5
|
export type { FallbackStrategy };
|
|
6
|
+
/**
|
|
7
|
+
* The time budgets that govern stall detection and the retry max-time wall for
|
|
8
|
+
* a single model. These differ by model (e.g. extended-thinking opus models get
|
|
9
|
+
* a larger idle/total budget than sonnet), so fallback attempts must resolve
|
|
10
|
+
* them against the CURRENT model, not the initial one. See APPS-4775.
|
|
11
|
+
*/
|
|
12
|
+
export interface RetryBudget {
|
|
13
|
+
idleTimeoutMs: number;
|
|
14
|
+
firstChunkTimeoutMs: number;
|
|
15
|
+
maxTotalTimeMs: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Resolves the time budgets for a given model. Callers that vary budgets by
|
|
19
|
+
* model (LLMClient) supply one; everything else falls back to the flat resolved
|
|
20
|
+
* values so behavior is unchanged.
|
|
21
|
+
*/
|
|
22
|
+
export type RetryBudgetResolver = (model: CoreModelType) => RetryBudget;
|
|
6
23
|
export interface RetryConfigOptions {
|
|
7
24
|
maxAttempts?: number;
|
|
8
25
|
maxAttemptsPerProvider?: number | Record<ProviderType, Record<CoreModelType, number> | number>;
|
|
@@ -15,6 +32,13 @@ export interface RetryConfigOptions {
|
|
|
15
32
|
* gaps after the compaction start event. See APPS-4520.
|
|
16
33
|
*/
|
|
17
34
|
firstChunkTimeoutMs?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Per-model budget resolver. When supplied, the orchestrator's IdleMonitor
|
|
37
|
+
* and the RetryEngine's max-time guard recompute idle/first-chunk/max-time
|
|
38
|
+
* from the CURRENT attempt's model instead of inheriting the initial model's
|
|
39
|
+
* frozen budget across fallback. See APPS-4775.
|
|
40
|
+
*/
|
|
41
|
+
budgetForModel?: RetryBudgetResolver;
|
|
18
42
|
initialDelayMs?: number;
|
|
19
43
|
maxDelayMs?: number;
|
|
20
44
|
backoffMultiplier?: number;
|
|
@@ -80,6 +104,12 @@ interface ResolvedRetryConfig {
|
|
|
80
104
|
maxTotalTimeMs: number;
|
|
81
105
|
idleTimeoutMs: number;
|
|
82
106
|
firstChunkTimeoutMs: number;
|
|
107
|
+
/**
|
|
108
|
+
* Always present. When the caller supplies no resolver, returns the flat
|
|
109
|
+
* resolved budget for every model so behavior is unchanged. The orchestrator
|
|
110
|
+
* and retry engine call this with the current attempt's model. See APPS-4775.
|
|
111
|
+
*/
|
|
112
|
+
budgetForModel: RetryBudgetResolver;
|
|
83
113
|
initialDelayMs: number;
|
|
84
114
|
maxDelayMs: number;
|
|
85
115
|
backoffMultiplier: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,26 +45,43 @@ export class StreamConfig {
|
|
|
45
45
|
"These values should come from the UI feature flags " +
|
|
46
46
|
"(ui.clark-ai.llm-provider and superblocks.ai.core-model.name).");
|
|
47
47
|
}
|
|
48
|
+
// Generic default for callers with no server-side context management.
|
|
49
|
+
// Like firstChunkTimeoutMs below, StreamConfig stays agnostic and does
|
|
50
|
+
// NOT floor this against the proxy upstream-stall timeout — callers that
|
|
51
|
+
// run behind the proxy must pass a value >= the proxy stall budget so a
|
|
52
|
+
// single upstream stall can't exhaust the retry clock (LLMClient does
|
|
53
|
+
// this via Math.max(..., proxyStallTimeoutMs)). See APPS-4520.
|
|
54
|
+
const resolvedMaxTotalTimeMs = options.retry?.maxTotalTimeMs ?? 120_000;
|
|
55
|
+
const resolvedIdleTimeoutMs = options.retry?.idleTimeoutMs ?? 90_000;
|
|
56
|
+
// Defaults to the inter-chunk idle budget so generic callers see no
|
|
57
|
+
// behavior change. StreamConfig is context-management-agnostic and does
|
|
58
|
+
// NOT itself apply the larger server-side first-chunk budget — callers
|
|
59
|
+
// that opt into server-side context management must pass a value derived
|
|
60
|
+
// from `defaultFirstChunkTimeoutMs(serverSide, idleTimeoutMs)` (LLMClient
|
|
61
|
+
// does this). See APPS-4520.
|
|
62
|
+
const resolvedFirstChunkTimeoutMs = options.retry?.firstChunkTimeoutMs ??
|
|
63
|
+
options.retry?.idleTimeoutMs ??
|
|
64
|
+
90_000;
|
|
65
|
+
// When the caller varies budgets by model (LLMClient), the flat fields
|
|
66
|
+
// reflect the INITIAL model's budget so observers/tests reading them are
|
|
67
|
+
// unchanged, and budgetForModel resolves per attempt. Otherwise
|
|
68
|
+
// budgetForModel returns the flat budget for every model — no behavior
|
|
69
|
+
// change for callers that don't supply a resolver. See APPS-4775.
|
|
70
|
+
const initialBudget = options.retry?.budgetForModel
|
|
71
|
+
? options.retry.budgetForModel(options.model)
|
|
72
|
+
: {
|
|
73
|
+
idleTimeoutMs: resolvedIdleTimeoutMs,
|
|
74
|
+
firstChunkTimeoutMs: resolvedFirstChunkTimeoutMs,
|
|
75
|
+
maxTotalTimeMs: resolvedMaxTotalTimeMs,
|
|
76
|
+
};
|
|
77
|
+
const budgetForModel = options.retry?.budgetForModel ?? (() => initialBudget);
|
|
48
78
|
const retry = {
|
|
49
79
|
maxAttempts: options.retry?.maxAttempts ?? 5,
|
|
50
80
|
maxAttemptsPerProvider: options.retry?.maxAttemptsPerProvider ?? 2,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
// single upstream stall can't exhaust the retry clock (LLMClient does
|
|
56
|
-
// this via Math.max(..., proxyStallTimeoutMs)). See APPS-4520.
|
|
57
|
-
maxTotalTimeMs: options.retry?.maxTotalTimeMs ?? 120_000,
|
|
58
|
-
idleTimeoutMs: options.retry?.idleTimeoutMs ?? 90_000,
|
|
59
|
-
// Defaults to the inter-chunk idle budget so generic callers see no
|
|
60
|
-
// behavior change. StreamConfig is context-management-agnostic and does
|
|
61
|
-
// NOT itself apply the larger server-side first-chunk budget — callers
|
|
62
|
-
// that opt into server-side context management must pass a value derived
|
|
63
|
-
// from `defaultFirstChunkTimeoutMs(serverSide, idleTimeoutMs)` (LLMClient
|
|
64
|
-
// does this). See APPS-4520.
|
|
65
|
-
firstChunkTimeoutMs: options.retry?.firstChunkTimeoutMs ??
|
|
66
|
-
options.retry?.idleTimeoutMs ??
|
|
67
|
-
90_000,
|
|
81
|
+
maxTotalTimeMs: initialBudget.maxTotalTimeMs,
|
|
82
|
+
idleTimeoutMs: initialBudget.idleTimeoutMs,
|
|
83
|
+
firstChunkTimeoutMs: initialBudget.firstChunkTimeoutMs,
|
|
84
|
+
budgetForModel,
|
|
68
85
|
initialDelayMs: options.retry?.initialDelayMs ?? 500,
|
|
69
86
|
maxDelayMs: options.retry?.maxDelayMs ?? 10_000,
|
|
70
87
|
backoffMultiplier: options.retry?.backoffMultiplier ?? 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,14 @@ export declare class AbortedError extends Error {
|
|
|
10
10
|
name: string;
|
|
11
11
|
constructor(message?: string);
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Which idle budget was in effect when a stall fired. "first-chunk" means the
|
|
15
|
+
* model never sent content (only silence/keep-alives) before the stall;
|
|
16
|
+
* "inter-chunk" means content was flowing and then stopped. Carried on the
|
|
17
|
+
* error so downstream logging classifies stalls without re-deriving the budget
|
|
18
|
+
* by numeric comparison — which is ambiguous now that budgets are per-model.
|
|
19
|
+
*/
|
|
20
|
+
export type StallBudgetKind = "first-chunk" | "inter-chunk";
|
|
13
21
|
/**
|
|
14
22
|
* Error thrown when a stream has been idle for too long.
|
|
15
23
|
* This is a retryable error that triggers the retry logic.
|
|
@@ -19,7 +27,8 @@ export declare class StallTimeoutError extends Error implements RetryableError {
|
|
|
19
27
|
readonly isRetryable = true;
|
|
20
28
|
readonly idleTimeMs: number;
|
|
21
29
|
readonly maxIdleTimeMs: number;
|
|
22
|
-
|
|
30
|
+
readonly budgetKind: StallBudgetKind;
|
|
31
|
+
constructor(idleTimeMs: number, maxIdleTimeMs: number, budgetKind?: StallBudgetKind);
|
|
23
32
|
}
|
|
24
33
|
/**
|
|
25
34
|
* Wraps an error for consistent error handling.
|
|
@@ -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;;;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;
|
|
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;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,aAAa,CAAC;AAE5D;;;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,CA0D3E"}
|
|
@@ -27,10 +27,12 @@ export class StallTimeoutError extends Error {
|
|
|
27
27
|
isRetryable = true;
|
|
28
28
|
idleTimeMs;
|
|
29
29
|
maxIdleTimeMs;
|
|
30
|
-
|
|
30
|
+
budgetKind;
|
|
31
|
+
constructor(idleTimeMs, maxIdleTimeMs, budgetKind = "inter-chunk") {
|
|
31
32
|
super(`Stream stalled: no activity for ${idleTimeMs}ms (max: ${maxIdleTimeMs}ms)`);
|
|
32
33
|
this.idleTimeMs = idleTimeMs;
|
|
33
34
|
this.maxIdleTimeMs = maxIdleTimeMs;
|
|
35
|
+
this.budgetKind = budgetKind;
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;AAE3C,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GAEjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAuB,CAAC;AAErD,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,GAAG,uBAAuB,CAAC;IAC/B,QAAQ,CAAS;IACjB,WAAW,CAAS;IAE7B,YAAY,QAAgB,EAAE,WAAmB,EAAE,KAAe;QAChE,KAAK,CAAC,OAAO,QAAQ,mCAAmC,WAAW,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,GAAG,cAAc,CAAC;IAE/B,YAAY,OAAO,GAAG,iBAAiB;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { StallTimeoutError } from "./errors.js";
|
|
2
2
|
import type { StreamSession } from "./session.js";
|
|
3
|
+
/**
|
|
4
|
+
* An idle budget, either a fixed value or a thunk resolved at arm time. A thunk
|
|
5
|
+
* lets the budget track the CURRENT attempt's model across fallback, so a
|
|
6
|
+
* downgraded model is monitored against its own budget rather than the initial
|
|
7
|
+
* model's. See APPS-4775.
|
|
8
|
+
*/
|
|
9
|
+
export type TimeoutBudget = number | (() => number);
|
|
3
10
|
/**
|
|
4
11
|
* Detects when a stream has stalled (no chunks received within timeout).
|
|
5
12
|
*
|
|
@@ -26,13 +33,13 @@ import type { StreamSession } from "./session.js";
|
|
|
26
33
|
*/
|
|
27
34
|
export interface IdleMonitorOptions {
|
|
28
35
|
session: StreamSession;
|
|
29
|
-
maxIdleTimeMs:
|
|
36
|
+
maxIdleTimeMs: TimeoutBudget;
|
|
30
37
|
/**
|
|
31
38
|
* Budget for the first useful output event in each provider step. Defaults
|
|
32
39
|
* to `maxIdleTimeMs`. Set larger to tolerate server-side context compaction
|
|
33
40
|
* gaps after the compaction start event.
|
|
34
41
|
*/
|
|
35
|
-
firstChunkTimeoutMs?:
|
|
42
|
+
firstChunkTimeoutMs?: TimeoutBudget;
|
|
36
43
|
onStall?: (error: StallTimeoutError) => void;
|
|
37
44
|
onServerCompactionStart?: (blockId: string) => void;
|
|
38
45
|
}
|
|
@@ -48,12 +55,14 @@ export declare class IdleMonitor {
|
|
|
48
55
|
private subscribed;
|
|
49
56
|
private hasReceivedChunk;
|
|
50
57
|
private readonly compactionTextBlockIds;
|
|
58
|
+
private armedBudget;
|
|
51
59
|
constructor(options: IdleMonitorOptions);
|
|
60
|
+
private resolveBudget;
|
|
52
61
|
/**
|
|
53
62
|
* Active budget: the first-chunk budget until useful output arrives, then
|
|
54
|
-
* the inter-chunk idle budget.
|
|
63
|
+
* the inter-chunk idle budget. Resolved against the current model each call.
|
|
55
64
|
*/
|
|
56
|
-
private
|
|
65
|
+
private currentBudget;
|
|
57
66
|
/**
|
|
58
67
|
* Start the idle monitor. Arms the timer and subscribes to session events.
|
|
59
68
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idle-monitor.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/idle-monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"idle-monitor.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/idle-monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAwB,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,aAAa,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAgB;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAqC;IACtE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAA4B;IACrE,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAI5D,OAAO,CAAC,WAAW,CAGjB;gBAEU,OAAO,EAAE,kBAAkB;IASvC,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI;IAOZ;;OAEG;IACH,aAAa,IAAI,iBAAiB,GAAG,IAAI;IAIzC;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;IAU9B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,WAAW,CAOjB;IAEF,OAAO,CAAC,eAAe,CAMrB;IAEF,OAAO,CAAC,WAAW,CAOjB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,SAAS;CAuBlB"}
|
|
@@ -12,6 +12,13 @@ export class IdleMonitor {
|
|
|
12
12
|
subscribed = false;
|
|
13
13
|
hasReceivedChunk = false;
|
|
14
14
|
compactionTextBlockIds = new Set();
|
|
15
|
+
// The budget snapshot used when the live timer was armed. fireStall() reports
|
|
16
|
+
// this rather than re-resolving, so the logged budget always matches the timer
|
|
17
|
+
// that actually fired even if the model (and thus the resolver) changed since.
|
|
18
|
+
armedBudget = {
|
|
19
|
+
timeoutMs: 0,
|
|
20
|
+
budgetKind: "first-chunk",
|
|
21
|
+
};
|
|
15
22
|
constructor(options) {
|
|
16
23
|
this.session = options.session;
|
|
17
24
|
this.maxIdleTimeMs = options.maxIdleTimeMs;
|
|
@@ -20,14 +27,23 @@ export class IdleMonitor {
|
|
|
20
27
|
this.onStallCallback = options.onStall;
|
|
21
28
|
this.onServerCompactionStart = options.onServerCompactionStart;
|
|
22
29
|
}
|
|
30
|
+
resolveBudget(budget) {
|
|
31
|
+
return typeof budget === "function" ? budget() : budget;
|
|
32
|
+
}
|
|
23
33
|
/**
|
|
24
34
|
* Active budget: the first-chunk budget until useful output arrives, then
|
|
25
|
-
* the inter-chunk idle budget.
|
|
35
|
+
* the inter-chunk idle budget. Resolved against the current model each call.
|
|
26
36
|
*/
|
|
27
|
-
|
|
37
|
+
currentBudget() {
|
|
28
38
|
return this.hasReceivedChunk
|
|
29
|
-
?
|
|
30
|
-
|
|
39
|
+
? {
|
|
40
|
+
timeoutMs: this.resolveBudget(this.maxIdleTimeMs),
|
|
41
|
+
budgetKind: "inter-chunk",
|
|
42
|
+
}
|
|
43
|
+
: {
|
|
44
|
+
timeoutMs: this.resolveBudget(this.firstChunkTimeoutMs),
|
|
45
|
+
budgetKind: "first-chunk",
|
|
46
|
+
};
|
|
31
47
|
}
|
|
32
48
|
/**
|
|
33
49
|
* Start the idle monitor. Arms the timer and subscribes to session events.
|
|
@@ -79,6 +95,10 @@ export class IdleMonitor {
|
|
|
79
95
|
this.session.events.on("chunk", this.handleChunk);
|
|
80
96
|
this.session.events.on("step:start", this.handleStepStart);
|
|
81
97
|
this.session.events.on("retry", this.handleRetry);
|
|
98
|
+
// "retry" re-arms while session.provider is still the OLD model; "fallback"
|
|
99
|
+
// fires after the provider switch, so re-arming here picks up the new
|
|
100
|
+
// model's idle budget for the next attempt. See APPS-4775.
|
|
101
|
+
this.session.events.on("fallback", this.handleRetry);
|
|
82
102
|
this.session.events.on("session:complete", this.handleSessionEnd);
|
|
83
103
|
this.session.events.on("session:error", this.handleSessionEnd);
|
|
84
104
|
this.session.events.on("session:abort", this.handleSessionEnd);
|
|
@@ -113,9 +133,11 @@ export class IdleMonitor {
|
|
|
113
133
|
if (this.timer !== null) {
|
|
114
134
|
clearTimeout(this.timer);
|
|
115
135
|
}
|
|
136
|
+
// Snapshot the budget once so the fired timer and the reported stall agree.
|
|
137
|
+
this.armedBudget = this.currentBudget();
|
|
116
138
|
this.timer = setTimeout(() => {
|
|
117
139
|
this.fireStall();
|
|
118
|
-
}, this.
|
|
140
|
+
}, this.armedBudget.timeoutMs);
|
|
119
141
|
}
|
|
120
142
|
keepsFirstChunkBudget(chunk) {
|
|
121
143
|
if (chunk.type === "raw" && this.compactionTextBlockIds.size > 0) {
|
|
@@ -143,7 +165,7 @@ export class IdleMonitor {
|
|
|
143
165
|
return;
|
|
144
166
|
}
|
|
145
167
|
const idleTime = this.session.getTimeSinceLastActivity();
|
|
146
|
-
this.stallError = new StallTimeoutError(idleTime, this.
|
|
168
|
+
this.stallError = new StallTimeoutError(idleTime, this.armedBudget.timeoutMs, this.armedBudget.budgetKind);
|
|
147
169
|
try {
|
|
148
170
|
this.onStallCallback?.(this.stallError);
|
|
149
171
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idle-monitor.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/idle-monitor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"idle-monitor.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/idle-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
* ```
|
|
44
44
|
*/
|
|
45
45
|
export { StreamConfig, defaultFirstChunkTimeoutMs } from "./config.js";
|
|
46
|
-
export type { RetryConfigOptions, ProviderType, CoreModelType, FallbackStrategy, FallbackConfigOptions, } from "./config.js";
|
|
46
|
+
export type { RetryConfigOptions, RetryBudget, RetryBudgetResolver, ProviderType, CoreModelType, FallbackStrategy, FallbackConfigOptions, } from "./config.js";
|
|
47
47
|
export type { StreamObserver } from "./observer.js";
|
|
48
48
|
export { StreamOrchestrator } from "./orchestrator.js";
|
|
49
49
|
export { LoggingObserver, LLMObsObserver, ContextObserver, RetryNotificationObserver, wrapToolsForObservability, } from "./observers/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACvE,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACvE,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAavE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC"}
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;GAqBG;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,GACvB,mBAAmB,CAAC,CAAC,CAAC,
|
|
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;;;;;;;;;;;;;;;;;;;;;GAqBG;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,GACvB,mBAAmB,CAAC,CAAC,CAAC,CAwHxB"}
|
|
@@ -31,6 +31,7 @@ export function createManagedStream(source, session, idleMonitor) {
|
|
|
31
31
|
controller.close();
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
|
+
session.recordPull();
|
|
34
35
|
// Loop over raw chunks (provider SSE keep-alives / message metadata):
|
|
35
36
|
// these exist only to feed IdleMonitor during thinking silences so the
|
|
36
37
|
// watchdog doesn't stall a healthy stream. For each raw chunk we:
|
|
@@ -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;AAIhF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAGjC,MAA8B,EAC9B,OAAsB,EACtB,WAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAChD,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAI;QACrC,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gBACnC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-stream.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/managed-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,8 @@ export declare class StreamOrchestrator {
|
|
|
54
54
|
private readonly getJwt?;
|
|
55
55
|
constructor(options: StreamOrchestratorOptions);
|
|
56
56
|
execute<TOOLS extends Record<string, Tool>>(options: OrchestratorStreamTextOptions<TOOLS>): Promise<StreamTextResult<TOOLS>>;
|
|
57
|
+
private asAsyncIterableStream;
|
|
58
|
+
private textStreamFromFullStream;
|
|
57
59
|
/**
|
|
58
60
|
* Wraps a fullStream with retry logic. When an error occurs (either thrown or
|
|
59
61
|
* as an error chunk), makes a retry decision and either creates a new stream
|
|
@@ -72,6 +74,14 @@ export declare class StreamOrchestrator {
|
|
|
72
74
|
private startStreamWithRetry;
|
|
73
75
|
private wrapFinalError;
|
|
74
76
|
private startStream;
|
|
77
|
+
/**
|
|
78
|
+
* Wraps each tool's execute so only the live attempt can run it. The Vercel AI
|
|
79
|
+
* SDK auto-executes tools as their calls arrive on the provider stream, and a
|
|
80
|
+
* superseded attempt's stream can still deliver buffered tool calls after we
|
|
81
|
+
* abort it. Throwing AbortedError here ensures a terminal tool's real side
|
|
82
|
+
* effect (e.g. build_finalize) runs once, for the winning attempt only.
|
|
83
|
+
*/
|
|
84
|
+
private guardToolsForAttempt;
|
|
75
85
|
private applyProvider;
|
|
76
86
|
/**
|
|
77
87
|
* Replaces the thinking-related fields on `providerOptions.anthropic` and
|
|
@@ -82,6 +92,15 @@ export declare class StreamOrchestrator {
|
|
|
82
92
|
*/
|
|
83
93
|
private rebuildThinkingOptions;
|
|
84
94
|
private getFallbackReason;
|
|
95
|
+
/**
|
|
96
|
+
* Switch the session to a fallback provider, emit the structured switch log,
|
|
97
|
+
* and fire the "fallback" event. `fastFallback` distinguishes the stall
|
|
98
|
+
* fast-fallback path (a stall left the provider early) from a normal
|
|
99
|
+
* provider-exhaustion fallback, surfaced as a queryable Datadog facet so the
|
|
100
|
+
* fast-fallback behavior is verifiable in production. Error context for the
|
|
101
|
+
* triggering error is carried by the retry log that follows this call.
|
|
102
|
+
*/
|
|
103
|
+
private switchProvider;
|
|
85
104
|
private delay;
|
|
86
105
|
}
|
|
87
106
|
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/orchestrator.ts"],"names":[],"mappings":"AAGA,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;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/orchestrator.ts"],"names":[],"mappings":"AAGA,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;AAIhD,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;AA+DJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,kBAAkB;IAC7B,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;IA2LnC,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,wBAAwB;IAiChC;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAqErB;;;OAGG;YACW,mBAAmB;YA0EnB,oBAAoB;IAqElC,OAAO,CAAC,cAAc;YA6BR,WAAW;IAkFzB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,aAAa;IA2DrB;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAuE9B,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;OAOG;YACW,cAAc;IAuC5B,OAAO,CAAC,KAAK;CAmBd"}
|