@superblocksteam/vite-plugin-file-sync 2.0.131 → 2.0.132-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-service/agent/tools/build-copy-utils.d.ts +8 -8
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
- package/dist/ai-service/agent/tools/get-logs.d.ts +2 -2
- package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts +2 -2
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts +1 -1
- package/dist/ai-service/app-interface/npm-registry.d.ts.map +1 -1
- package/dist/ai-service/app-interface/npm-registry.js +6 -3
- package/dist/ai-service/app-interface/npm-registry.js.map +1 -1
- package/dist/ai-service/attachments/{csv-upload-artifacts.d.ts → text-upload-artifacts.d.ts} +14 -11
- package/dist/ai-service/attachments/text-upload-artifacts.d.ts.map +1 -0
- package/dist/ai-service/attachments/{csv-upload-artifacts.js → text-upload-artifacts.js} +61 -35
- package/dist/ai-service/attachments/text-upload-artifacts.js.map +1 -0
- package/dist/ai-service/chat/chat-session-store-metrics.d.ts +12 -0
- package/dist/ai-service/chat/chat-session-store-metrics.d.ts.map +1 -0
- package/dist/ai-service/chat/chat-session-store-metrics.js +63 -0
- package/dist/ai-service/chat/chat-session-store-metrics.js.map +1 -0
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +24 -4
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/index.d.ts +4 -38
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +14 -168
- 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 +33 -26
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/compactor.js +21 -13
- package/dist/ai-service/llm/context-v2/compactor.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts +25 -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 +147 -7
- package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context.d.ts +10 -1
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +98 -10
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/llm/context-v2/manager.d.ts +3 -1
- package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/manager.js +26 -5
- package/dist/ai-service/llm/context-v2/manager.js.map +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts +5 -2
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +229 -55
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
- package/dist/ai-service/llm/context-v2/phase2-session-summarizer.d.ts +1 -0
- package/dist/ai-service/llm/context-v2/phase2-session-summarizer.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js +108 -2
- package/dist/ai-service/llm/context-v2/phase2-session-summarizer.js.map +1 -1
- package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts +1 -1
- package/dist/ai-service/llm/context-v2/prompts/compaction.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/prompts/compaction.js +6 -0
- package/dist/ai-service/llm/context-v2/prompts/compaction.js.map +1 -1
- package/dist/ai-service/llm/context-v2/storage/local.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/storage/local.js +16 -2
- package/dist/ai-service/llm/context-v2/storage/local.js.map +1 -1
- package/dist/ai-service/llm/context-v2/types.d.ts +3 -1
- package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/types.js +76 -10
- package/dist/ai-service/llm/context-v2/types.js.map +1 -1
- package/dist/ai-service/llm/context-v2/uniquify-filenames.d.ts +6 -6
- package/dist/ai-service/llm/context-v2/uniquify-filenames.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/uniquify-filenames.js +127 -24
- package/dist/ai-service/llm/context-v2/uniquify-filenames.js.map +1 -1
- package/dist/ai-service/llm/context-v2/utils/get-loaded-context.d.ts +1 -1
- package/dist/ai-service/llm/context-v2/utils/get-loaded-context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/utils/get-loaded-context.js.map +1 -1
- package/dist/ai-service/llm/error.d.ts +1 -1
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +11 -0
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/stream/config.d.ts +19 -29
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.js +17 -40
- package/dist/ai-service/llm/stream/config.js.map +1 -1
- package/dist/ai-service/llm/stream/errors.d.ts +4 -6
- package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/errors.js +13 -0
- package/dist/ai-service/llm/stream/errors.js.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.d.ts +29 -21
- package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.js +157 -68
- 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 +1 -1
- package/dist/ai-service/llm/stream/index.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts +3 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js +55 -25
- package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts +4 -0
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +154 -33
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +3 -6
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +5 -5
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +47 -35
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/context-id.d.ts +1 -1
- package/dist/ai-service/state-machine/helpers/context-id.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/context-id.js +3 -0
- package/dist/ai-service/state-machine/helpers/context-id.js.map +1 -1
- package/dist/ai-service/tasks/types.d.ts +6 -6
- package/dist/ai-service/types.d.ts +0 -6
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js.map +1 -1
- package/dist/lock-service/index.d.ts +2 -0
- package/dist/lock-service/index.d.ts.map +1 -1
- package/dist/lock-service/index.js +52 -3
- package/dist/lock-service/index.js.map +1 -1
- package/dist/migration/translation-prompt.d.ts +6 -7
- package/dist/migration/translation-prompt.d.ts.map +1 -1
- package/dist/migration/translation-prompt.js +6 -7
- package/dist/migration/translation-prompt.js.map +1 -1
- package/dist/migration-templates/app-fullstack/package.json +0 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +0 -6
- package/dist/socket-manager.js.map +1 -1
- package/dist/sync-service/download.d.ts.map +1 -1
- package/dist/sync-service/download.js +49 -1
- package/dist/sync-service/download.js.map +1 -1
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js +62 -0
- package/dist/util/logger.js.map +1 -1
- package/package.json +8 -8
- package/dist/ai-service/attachments/csv-upload-artifacts.d.ts.map +0 -1
- package/dist/ai-service/attachments/csv-upload-artifacts.js.map +0 -1
- package/dist/ai-service/migration-auto-dispatch-readiness.d.ts +0 -18
- package/dist/ai-service/migration-auto-dispatch-readiness.d.ts.map +0 -1
- package/dist/ai-service/migration-auto-dispatch-readiness.js +0 -17
- package/dist/ai-service/migration-auto-dispatch-readiness.js.map +0 -1
- package/dist/ai-service/migration-llm-config.d.ts +0 -7
- package/dist/ai-service/migration-llm-config.d.ts.map +0 -1
- package/dist/ai-service/migration-llm-config.js +0 -122
- package/dist/ai-service/migration-llm-config.js.map +0 -1
- package/dist/ai-service/resolve-generation-state-for-ui.d.ts +0 -8
- package/dist/ai-service/resolve-generation-state-for-ui.d.ts.map +0 -1
- package/dist/ai-service/resolve-generation-state-for-ui.js +0 -36
- package/dist/ai-service/resolve-generation-state-for-ui.js.map +0 -1
- package/dist/ai-service/util/inference-jwt.d.ts +0 -15
- package/dist/ai-service/util/inference-jwt.d.ts.map +0 -1
- package/dist/ai-service/util/inference-jwt.js +0 -56
- package/dist/ai-service/util/inference-jwt.js.map +0 -1
- package/dist/migration-templates/app-fullstack/client/components/ui/chat.tsx +0 -2303
|
@@ -8,20 +8,17 @@ import type { StreamSession } from "./session.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export type TimeoutBudget = number | (() => number);
|
|
10
10
|
/**
|
|
11
|
-
* Detects when a stream has stalled
|
|
11
|
+
* Detects when a stream has stalled.
|
|
12
12
|
*
|
|
13
13
|
* Uses setTimeout-reset: timer is armed on start() and reset on each chunk.
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* silent before useful output arrives while the provider does pre-response work
|
|
18
|
-
* — notably server-side context compaction (`compact_20260112`). See APPS-4520.
|
|
14
|
+
* Three budgets apply: `firstTokenTimeoutMs` bounds the wait for the first
|
|
15
|
+
* text or reasoning delta, `compactionSummaryTimeoutMs` bounds Anthropic's
|
|
16
|
+
* single-shot compaction summary, and `maxIdleTimeMs` governs activity gaps.
|
|
19
17
|
*
|
|
20
18
|
* Automatically subscribes to session events:
|
|
21
|
-
* - "chunk" resets the timer
|
|
22
|
-
*
|
|
23
|
-
* - "
|
|
24
|
-
* - "retry" restarts the timer for the new attempt (back to the first-chunk budget)
|
|
19
|
+
* - "chunk" resets the activity timer
|
|
20
|
+
* - "step:start" resets the timers for the new step's first token
|
|
21
|
+
* - "retry" restarts the timers for the new attempt
|
|
25
22
|
* - "session:complete", "session:error", "session:abort" stop the monitor
|
|
26
23
|
*
|
|
27
24
|
* @example
|
|
@@ -35,11 +32,12 @@ export interface IdleMonitorOptions {
|
|
|
35
32
|
session: StreamSession;
|
|
36
33
|
maxIdleTimeMs: TimeoutBudget;
|
|
37
34
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
35
|
+
* Wall-clock budget for the first text or reasoning delta in each provider
|
|
36
|
+
* step. Raw heartbeats keep the activity timer alive but do not reset this deadline.
|
|
37
|
+
* Defaults to `maxIdleTimeMs`.
|
|
41
38
|
*/
|
|
42
|
-
|
|
39
|
+
firstTokenTimeoutMs?: TimeoutBudget;
|
|
40
|
+
compactionSummaryTimeoutMs?: TimeoutBudget;
|
|
43
41
|
onStall?: (error: StallTimeoutError) => void;
|
|
44
42
|
onServerCompactionStart?: (blockId: string) => void;
|
|
45
43
|
/**
|
|
@@ -64,25 +62,26 @@ export interface IdleMonitorOptions {
|
|
|
64
62
|
export declare class IdleMonitor {
|
|
65
63
|
private readonly session;
|
|
66
64
|
private readonly maxIdleTimeMs;
|
|
67
|
-
private readonly
|
|
65
|
+
private readonly firstTokenTimeoutMs;
|
|
66
|
+
private readonly compactionSummaryTimeoutMs;
|
|
68
67
|
private readonly onStallCallback?;
|
|
69
68
|
private readonly onServerCompactionStart?;
|
|
70
69
|
private readonly shouldPause?;
|
|
71
70
|
private readonly onPauseCallback?;
|
|
72
71
|
private timer;
|
|
72
|
+
private firstTokenTimer;
|
|
73
|
+
private compactionSummaryTimer;
|
|
73
74
|
private stallError;
|
|
74
75
|
private stallCallbacks;
|
|
75
76
|
private subscribed;
|
|
76
|
-
private
|
|
77
|
+
private hasReceivedFirstToken;
|
|
77
78
|
private pausedThisStretch;
|
|
78
79
|
private readonly compactionTextBlockIds;
|
|
79
80
|
private armedBudget;
|
|
81
|
+
private firstTokenArmedBudget;
|
|
82
|
+
private compactionSummaryArmedBudget;
|
|
80
83
|
constructor(options: IdleMonitorOptions);
|
|
81
84
|
private resolveBudget;
|
|
82
|
-
/**
|
|
83
|
-
* Active budget: the first-chunk budget until useful output arrives, then
|
|
84
|
-
* the inter-chunk idle budget. Resolved against the current model each call.
|
|
85
|
-
*/
|
|
86
85
|
private currentBudget;
|
|
87
86
|
/**
|
|
88
87
|
* Start the idle monitor. Arms the timer and subscribes to session events.
|
|
@@ -111,7 +110,16 @@ export declare class IdleMonitor {
|
|
|
111
110
|
private handleRetry;
|
|
112
111
|
private handleSessionEnd;
|
|
113
112
|
private armTimer;
|
|
114
|
-
private
|
|
113
|
+
private armFirstTokenTimer;
|
|
114
|
+
private stopFirstTokenTimer;
|
|
115
|
+
private armCompactionSummaryTimer;
|
|
116
|
+
private stopCompactionSummaryTimer;
|
|
117
|
+
private satisfiesFirstTokenDeadline;
|
|
118
|
+
private handleCompactionUpdate;
|
|
119
|
+
private shouldSuppressStall;
|
|
120
|
+
private emitStall;
|
|
121
|
+
private fireFirstTokenStall;
|
|
122
|
+
private fireCompactionSummaryStall;
|
|
115
123
|
private fireStall;
|
|
116
124
|
}
|
|
117
125
|
//# sourceMappingURL=idle-monitor.d.ts.map
|
|
@@ -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,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
|
|
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;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,aAAa,CAAC;IACpC,0BAA0B,CAAC,EAAE,aAAa,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,uBAAuB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;IAC5B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;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,0BAA0B,CAAgB;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAqC;IACtE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAA4B;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAa;IAC9C,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,qBAAqB,CAAS;IAGtC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAI5D,OAAO,CAAC,WAAW,CAGjB;IAEF,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,4BAA4B,CAAK;gBAE7B,OAAO,EAAE,kBAAkB;IAavC,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;IACH,aAAa,IAAI,iBAAiB,GAAG,IAAI;IAIzC;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;IAU9B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,WAAW,CAgBjB;IAEF,OAAO,CAAC,eAAe,CASrB;IAEF,OAAO,CAAC,WAAW,CAUjB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,SAAS;CAwClB"}
|
|
@@ -3,16 +3,19 @@ import { StallTimeoutError } from "./errors.js";
|
|
|
3
3
|
export class IdleMonitor {
|
|
4
4
|
session;
|
|
5
5
|
maxIdleTimeMs;
|
|
6
|
-
|
|
6
|
+
firstTokenTimeoutMs;
|
|
7
|
+
compactionSummaryTimeoutMs;
|
|
7
8
|
onStallCallback;
|
|
8
9
|
onServerCompactionStart;
|
|
9
10
|
shouldPause;
|
|
10
11
|
onPauseCallback;
|
|
11
12
|
timer = null;
|
|
13
|
+
firstTokenTimer = null;
|
|
14
|
+
compactionSummaryTimer = null;
|
|
12
15
|
stallError = null;
|
|
13
16
|
stallCallbacks = [];
|
|
14
17
|
subscribed = false;
|
|
15
|
-
|
|
18
|
+
hasReceivedFirstToken = false;
|
|
16
19
|
// True once a local-wait suppression stretch has fired its onPause event;
|
|
17
20
|
// reset by real activity (chunk/step/retry) so each stretch logs exactly once.
|
|
18
21
|
pausedThisStretch = false;
|
|
@@ -22,13 +25,18 @@ export class IdleMonitor {
|
|
|
22
25
|
// that actually fired even if the model (and thus the resolver) changed since.
|
|
23
26
|
armedBudget = {
|
|
24
27
|
timeoutMs: 0,
|
|
25
|
-
budgetKind: "
|
|
28
|
+
budgetKind: "inter-chunk",
|
|
26
29
|
};
|
|
30
|
+
// Set before the timer callback can fire.
|
|
31
|
+
firstTokenArmedBudget = 0;
|
|
32
|
+
compactionSummaryArmedBudget = 0;
|
|
27
33
|
constructor(options) {
|
|
28
34
|
this.session = options.session;
|
|
29
35
|
this.maxIdleTimeMs = options.maxIdleTimeMs;
|
|
30
|
-
this.
|
|
31
|
-
options.
|
|
36
|
+
this.firstTokenTimeoutMs =
|
|
37
|
+
options.firstTokenTimeoutMs ?? options.maxIdleTimeMs;
|
|
38
|
+
this.compactionSummaryTimeoutMs =
|
|
39
|
+
options.compactionSummaryTimeoutMs ?? options.maxIdleTimeMs;
|
|
32
40
|
this.onStallCallback = options.onStall;
|
|
33
41
|
this.onServerCompactionStart = options.onServerCompactionStart;
|
|
34
42
|
this.shouldPause = options.shouldPause;
|
|
@@ -37,31 +45,23 @@ export class IdleMonitor {
|
|
|
37
45
|
resolveBudget(budget) {
|
|
38
46
|
return typeof budget === "function" ? budget() : budget;
|
|
39
47
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Active budget: the first-chunk budget until useful output arrives, then
|
|
42
|
-
* the inter-chunk idle budget. Resolved against the current model each call.
|
|
43
|
-
*/
|
|
44
48
|
currentBudget() {
|
|
45
|
-
return
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
: {
|
|
51
|
-
timeoutMs: this.resolveBudget(this.firstChunkTimeoutMs),
|
|
52
|
-
budgetKind: "first-chunk",
|
|
53
|
-
};
|
|
49
|
+
return {
|
|
50
|
+
timeoutMs: this.resolveBudget(this.maxIdleTimeMs),
|
|
51
|
+
budgetKind: "inter-chunk",
|
|
52
|
+
};
|
|
54
53
|
}
|
|
55
54
|
/**
|
|
56
55
|
* Start the idle monitor. Arms the timer and subscribes to session events.
|
|
57
56
|
*/
|
|
58
57
|
start() {
|
|
59
58
|
this.stallError = null;
|
|
60
|
-
this.
|
|
59
|
+
this.hasReceivedFirstToken = false;
|
|
61
60
|
this.pausedThisStretch = false;
|
|
62
61
|
this.compactionTextBlockIds.clear();
|
|
63
62
|
this.session.resetActivityTimer();
|
|
64
63
|
this.subscribeToEvents();
|
|
64
|
+
this.armFirstTokenTimer();
|
|
65
65
|
this.armTimer();
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
@@ -77,6 +77,11 @@ export class IdleMonitor {
|
|
|
77
77
|
clearTimeout(this.timer);
|
|
78
78
|
this.timer = null;
|
|
79
79
|
}
|
|
80
|
+
if (this.firstTokenTimer !== null) {
|
|
81
|
+
clearTimeout(this.firstTokenTimer);
|
|
82
|
+
this.firstTokenTimer = null;
|
|
83
|
+
}
|
|
84
|
+
this.stopCompactionSummaryTimer();
|
|
80
85
|
}
|
|
81
86
|
/**
|
|
82
87
|
* Get the stall error if one has been detected.
|
|
@@ -112,29 +117,39 @@ export class IdleMonitor {
|
|
|
112
117
|
this.session.events.on("session:abort", this.handleSessionEnd);
|
|
113
118
|
}
|
|
114
119
|
handleChunk = (chunk) => {
|
|
115
|
-
|
|
116
|
-
|
|
120
|
+
this.handleCompactionUpdate(chunk);
|
|
121
|
+
if (!this.hasReceivedFirstToken &&
|
|
122
|
+
this.satisfiesFirstTokenDeadline(chunk)) {
|
|
123
|
+
this.hasReceivedFirstToken = true;
|
|
124
|
+
this.stopFirstTokenTimer();
|
|
117
125
|
}
|
|
118
126
|
this.stallError = null;
|
|
119
127
|
this.stallCallbacks = [];
|
|
120
128
|
this.pausedThisStretch = false;
|
|
129
|
+
if (this.compactionSummaryTimer !== null) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
121
132
|
this.armTimer();
|
|
122
133
|
};
|
|
123
134
|
handleStepStart = () => {
|
|
124
|
-
this.
|
|
135
|
+
this.hasReceivedFirstToken = false;
|
|
125
136
|
this.compactionTextBlockIds.clear();
|
|
137
|
+
this.stopCompactionSummaryTimer();
|
|
126
138
|
this.stallError = null;
|
|
127
139
|
this.pausedThisStretch = false;
|
|
128
140
|
this.session.resetActivityTimer();
|
|
141
|
+
this.armFirstTokenTimer();
|
|
129
142
|
this.armTimer();
|
|
130
143
|
};
|
|
131
144
|
handleRetry = () => {
|
|
132
|
-
this.
|
|
145
|
+
this.hasReceivedFirstToken = false;
|
|
133
146
|
this.compactionTextBlockIds.clear();
|
|
147
|
+
this.stopCompactionSummaryTimer();
|
|
134
148
|
this.stallError = null;
|
|
135
149
|
this.stallCallbacks = [];
|
|
136
150
|
this.pausedThisStretch = false;
|
|
137
151
|
this.session.resetActivityTimer();
|
|
152
|
+
this.armFirstTokenTimer();
|
|
138
153
|
this.armTimer();
|
|
139
154
|
};
|
|
140
155
|
handleSessionEnd = () => {
|
|
@@ -150,29 +165,139 @@ export class IdleMonitor {
|
|
|
150
165
|
this.fireStall();
|
|
151
166
|
}, this.armedBudget.timeoutMs);
|
|
152
167
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
168
|
+
armFirstTokenTimer() {
|
|
169
|
+
this.stopFirstTokenTimer();
|
|
170
|
+
if (this.hasReceivedFirstToken) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
this.firstTokenArmedBudget = this.resolveBudget(this.firstTokenTimeoutMs);
|
|
174
|
+
this.firstTokenTimer = setTimeout(() => {
|
|
175
|
+
this.fireFirstTokenStall();
|
|
176
|
+
}, this.firstTokenArmedBudget);
|
|
177
|
+
}
|
|
178
|
+
stopFirstTokenTimer() {
|
|
179
|
+
if (this.firstTokenTimer !== null) {
|
|
180
|
+
clearTimeout(this.firstTokenTimer);
|
|
181
|
+
this.firstTokenTimer = null;
|
|
156
182
|
}
|
|
183
|
+
}
|
|
184
|
+
armCompactionSummaryTimer() {
|
|
185
|
+
this.stopFirstTokenTimer();
|
|
186
|
+
this.stopCompactionSummaryTimer();
|
|
187
|
+
if (this.timer !== null) {
|
|
188
|
+
clearTimeout(this.timer);
|
|
189
|
+
this.timer = null;
|
|
190
|
+
}
|
|
191
|
+
this.compactionSummaryArmedBudget = this.resolveBudget(this.compactionSummaryTimeoutMs);
|
|
192
|
+
this.compactionSummaryTimer = setTimeout(() => {
|
|
193
|
+
this.fireCompactionSummaryStall();
|
|
194
|
+
}, this.compactionSummaryArmedBudget);
|
|
195
|
+
}
|
|
196
|
+
stopCompactionSummaryTimer() {
|
|
197
|
+
if (this.compactionSummaryTimer !== null) {
|
|
198
|
+
clearTimeout(this.compactionSummaryTimer);
|
|
199
|
+
this.compactionSummaryTimer = null;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
satisfiesFirstTokenDeadline(chunk) {
|
|
203
|
+
return ((chunk.type === "text-delta" || chunk.type === "reasoning-delta") &&
|
|
204
|
+
typeof chunk.text === "string" &&
|
|
205
|
+
chunk.text.length > 0);
|
|
206
|
+
}
|
|
207
|
+
handleCompactionUpdate(chunk) {
|
|
157
208
|
const compactionBlock = getServerCompactionTextBlockUpdate(chunk);
|
|
158
209
|
if (compactionBlock.kind === "start") {
|
|
159
210
|
if (!this.compactionTextBlockIds.has(compactionBlock.id)) {
|
|
160
211
|
this.compactionTextBlockIds.add(compactionBlock.id);
|
|
212
|
+
this.armCompactionSummaryTimer();
|
|
161
213
|
this.onServerCompactionStart?.(compactionBlock.id);
|
|
162
214
|
}
|
|
163
|
-
return
|
|
215
|
+
return;
|
|
164
216
|
}
|
|
165
217
|
if (compactionBlock.kind === "part" &&
|
|
166
218
|
this.compactionTextBlockIds.has(compactionBlock.id)) {
|
|
219
|
+
this.stopCompactionSummaryTimer();
|
|
167
220
|
if (compactionBlock.done) {
|
|
168
221
|
this.compactionTextBlockIds.delete(compactionBlock.id);
|
|
222
|
+
if (this.compactionTextBlockIds.size === 0 &&
|
|
223
|
+
!this.hasReceivedFirstToken) {
|
|
224
|
+
this.armFirstTokenTimer();
|
|
225
|
+
}
|
|
169
226
|
}
|
|
170
|
-
return true;
|
|
171
227
|
}
|
|
172
|
-
|
|
228
|
+
}
|
|
229
|
+
shouldSuppressStall() {
|
|
230
|
+
let shouldPause = false;
|
|
231
|
+
try {
|
|
232
|
+
shouldPause = this.shouldPause?.() ?? false;
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
// A shouldPause failure must not break stall monitoring.
|
|
236
|
+
}
|
|
237
|
+
if (!shouldPause) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
// Emit one onPause event at the start of each suppression stretch so a
|
|
241
|
+
// long local wait (e.g. a tool that never returns) is observable, without
|
|
242
|
+
// logging on every re-arm. The flag clears on the next real chunk/step/
|
|
243
|
+
// retry, so a later stuck stretch emits again.
|
|
244
|
+
if (!this.pausedThisStretch) {
|
|
245
|
+
this.pausedThisStretch = true;
|
|
246
|
+
try {
|
|
247
|
+
this.onPauseCallback?.();
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
// A callback/logging failure must not break stall monitoring.
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
emitStall(error) {
|
|
256
|
+
this.stallError = error;
|
|
257
|
+
this.stopFirstTokenTimer();
|
|
258
|
+
if (this.timer !== null) {
|
|
259
|
+
clearTimeout(this.timer);
|
|
260
|
+
this.timer = null;
|
|
261
|
+
}
|
|
262
|
+
// Invariant: run onStallCallback before resolving stallCallbacks. Both are
|
|
263
|
+
// synchronous, so both observe session state as it was at the instant of
|
|
264
|
+
// the stall — before the rejected waitForStall() promise propagates (a
|
|
265
|
+
// microtask) into the managed stream's catch and mutates that state. The
|
|
266
|
+
// stall_reason classifier (orchestrator onStall) relies on this to read
|
|
267
|
+
// session.isAwaitingUpstream() while it still reflects the stalled await.
|
|
268
|
+
try {
|
|
269
|
+
this.onStallCallback?.(this.stallError);
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
// Callback failure must not prevent stall detection from working
|
|
273
|
+
}
|
|
274
|
+
for (const callback of this.stallCallbacks) {
|
|
275
|
+
callback(this.stallError);
|
|
276
|
+
}
|
|
277
|
+
this.stallCallbacks = [];
|
|
278
|
+
}
|
|
279
|
+
fireFirstTokenStall() {
|
|
280
|
+
if (!this.session.isPending() || this.stallError) {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (this.shouldSuppressStall()) {
|
|
284
|
+
this.armFirstTokenTimer();
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
this.emitStall(new StallTimeoutError(this.session.getTimeSinceLastContent(), this.firstTokenArmedBudget, "first-token"));
|
|
288
|
+
}
|
|
289
|
+
fireCompactionSummaryStall() {
|
|
290
|
+
if (!this.session.isPending() || this.stallError) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
if (this.shouldSuppressStall()) {
|
|
294
|
+
this.armCompactionSummaryTimer();
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
this.emitStall(new StallTimeoutError(this.session.getTimeSinceLastContent(), this.compactionSummaryArmedBudget, "compaction"));
|
|
173
298
|
}
|
|
174
299
|
fireStall() {
|
|
175
|
-
if (!this.session.isPending()) {
|
|
300
|
+
if (!this.session.isPending() || this.stallError) {
|
|
176
301
|
return;
|
|
177
302
|
}
|
|
178
303
|
// The timer fired on a wall-clock budget, but the gap may be local work —
|
|
@@ -196,48 +321,12 @@ export class IdleMonitor {
|
|
|
196
321
|
// timer would never re-arm, and stall detection would be dead for the rest
|
|
197
322
|
// of the session. On error, fall through and fire the stall — a real stall
|
|
198
323
|
// surfacing is safer than one being silently swallowed.
|
|
199
|
-
|
|
200
|
-
try {
|
|
201
|
-
shouldPause = this.shouldPause?.() ?? false;
|
|
202
|
-
}
|
|
203
|
-
catch {
|
|
204
|
-
// A shouldPause failure must not break stall monitoring.
|
|
205
|
-
}
|
|
206
|
-
if (shouldPause) {
|
|
207
|
-
// Emit one onPause event at the start of each suppression stretch so a
|
|
208
|
-
// long local wait (e.g. a tool that never returns) is observable, without
|
|
209
|
-
// logging on every re-arm. The flag clears on the next real chunk/step/
|
|
210
|
-
// retry, so a later stuck stretch emits again.
|
|
211
|
-
if (!this.pausedThisStretch) {
|
|
212
|
-
this.pausedThisStretch = true;
|
|
213
|
-
try {
|
|
214
|
-
this.onPauseCallback?.();
|
|
215
|
-
}
|
|
216
|
-
catch {
|
|
217
|
-
// A callback/logging failure must not break stall monitoring.
|
|
218
|
-
}
|
|
219
|
-
}
|
|
324
|
+
if (this.shouldSuppressStall()) {
|
|
220
325
|
this.armTimer();
|
|
221
326
|
return;
|
|
222
327
|
}
|
|
223
328
|
const idleTime = this.session.getTimeSinceLastActivity();
|
|
224
|
-
this.
|
|
225
|
-
// Invariant: run onStallCallback before resolving stallCallbacks. Both are
|
|
226
|
-
// synchronous, so both observe session state as it was at the instant of
|
|
227
|
-
// the stall — before the rejected waitForStall() promise propagates (a
|
|
228
|
-
// microtask) into the managed stream's catch and mutates that state. The
|
|
229
|
-
// stall_reason classifier (orchestrator onStall) relies on this to read
|
|
230
|
-
// session.isAwaitingUpstream() while it still reflects the stalled await.
|
|
231
|
-
try {
|
|
232
|
-
this.onStallCallback?.(this.stallError);
|
|
233
|
-
}
|
|
234
|
-
catch {
|
|
235
|
-
// Callback failure must not prevent stall detection from working
|
|
236
|
-
}
|
|
237
|
-
for (const callback of this.stallCallbacks) {
|
|
238
|
-
callback(this.stallError);
|
|
239
|
-
}
|
|
240
|
-
this.stallCallbacks = [];
|
|
329
|
+
this.emitStall(new StallTimeoutError(idleTime, this.armedBudget.timeoutMs, this.armedBudget.budgetKind));
|
|
241
330
|
}
|
|
242
331
|
}
|
|
243
332
|
//# sourceMappingURL=idle-monitor.js.map
|
|
@@ -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,EAAwB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"idle-monitor.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/idle-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
* }
|
|
43
43
|
* ```
|
|
44
44
|
*/
|
|
45
|
-
export { StreamConfig,
|
|
45
|
+
export { StreamConfig, DEFAULT_FIRST_TOKEN_TIMEOUT_MS, DEFAULT_COMPACTION_SUMMARY_TIMEOUT_MS, } from "./config.js";
|
|
46
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";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EACL,YAAY,EACZ,8BAA8B,EAC9B,qCAAqC,GACtC,MAAM,aAAa,CAAC;AACrB,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"}
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
* }
|
|
43
43
|
* ```
|
|
44
44
|
*/
|
|
45
|
-
export { StreamConfig,
|
|
45
|
+
export { StreamConfig, DEFAULT_FIRST_TOKEN_TIMEOUT_MS, DEFAULT_COMPACTION_SUMMARY_TIMEOUT_MS, } from "./config.js";
|
|
46
46
|
export { StreamOrchestrator } from "./orchestrator.js";
|
|
47
47
|
export { LoggingObserver, LLMObsObserver, ContextObserver, RetryNotificationObserver, wrapToolsForObservability, } from "./observers/index.js";
|
|
48
48
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EACL,YAAY,EACZ,8BAA8B,EAC9B,qCAAqC,GACtC,MAAM,aAAa,CAAC;AAarB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Logger } from "../../../../util/logger.js";
|
|
2
2
|
import type { Tool } from "../../../agent/tools2/types.js";
|
|
3
3
|
import type { LLMObsTracer } from "../../../llmobs/index.js";
|
|
4
|
+
import { LLMProviderError } from "../../error.js";
|
|
4
5
|
import type { ErrorCategory } from "../../error.js";
|
|
5
6
|
import type { StreamConfig } from "../config.js";
|
|
6
7
|
import type { StreamEventBus } from "../event-bus.js";
|
|
@@ -10,8 +11,9 @@ export interface ClassifiedError {
|
|
|
10
11
|
code?: string | number;
|
|
11
12
|
isRetryable: boolean;
|
|
12
13
|
message: string;
|
|
14
|
+
providerErrorType?: string;
|
|
13
15
|
}
|
|
14
|
-
export declare function classifyError(error: unknown): ClassifiedError;
|
|
16
|
+
export declare function classifyError(error: unknown, provider?: LLMProviderError["provider"]): ClassifiedError;
|
|
15
17
|
export interface LLMObsObserverOptions {
|
|
16
18
|
tracer: LLMObsTracer;
|
|
17
19
|
logger: Logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmobs.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/stream/observers/llmobs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"llmobs.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/llm/stream/observers/llmobs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAsB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAcpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAaD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,gBAAgB,CAAC,UAAU,CAAe,GACnD,eAAe,CAgFjB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAwBD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAe,YAAW,cAAc;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAC,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,CAAkB;gBAEvB,OAAO,EAAE,qBAAqB;IAK1C,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAsC3D,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,OAAO;IA+Bf,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,OAAO;IA+Bf,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,aAAa;IAkDrB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,cAAc;IA4CtB,OAAO,CAAC,cAAc;IAwCtB,OAAO,CAAC,cAAc;CA0CvB;AAmLD;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1E,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,YAAY,GACnB,KAAK,CAuDP"}
|