@superblocksteam/vite-plugin-file-sync 2.0.59-next.2 → 2.0.59-next.3
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/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +10 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/apis/examples.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/apis/examples.js +137 -10
- package/dist/ai-service/agent/subagents/apis/examples.js.map +1 -1
- package/dist/ai-service/agent/subagents/apis/static-analysis.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/apis/static-analysis.js +14 -7
- package/dist/ai-service/agent/subagents/apis/static-analysis.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +6 -2
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/analysis.d.ts +9 -0
- package/dist/ai-service/agent/tools/apis/analysis.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/analysis.js +357 -0
- package/dist/ai-service/agent/tools/apis/analysis.js.map +1 -0
- package/dist/ai-service/agent/{subagents → tools}/apis/api-executor.d.ts +35 -10
- package/dist/ai-service/agent/tools/apis/api-executor.d.ts.map +1 -0
- package/dist/ai-service/agent/{subagents → tools}/apis/api-executor.js +179 -94
- package/dist/ai-service/agent/tools/apis/api-executor.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/api-source.d.ts +19 -0
- package/dist/ai-service/agent/tools/apis/api-source.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/api-source.js +73 -0
- package/dist/ai-service/agent/tools/apis/api-source.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts +51 -0
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js +510 -0
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts +32 -0
- package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js +313 -0
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/build-api.d.ts +1 -10
- package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.js +26 -238
- package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts +11 -0
- package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/get-api-docs.js +1809 -0
- package/dist/ai-service/agent/tools/apis/get-api-docs.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/integration-types.d.ts +37 -0
- package/dist/ai-service/agent/tools/apis/integration-types.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/integration-types.js +697 -0
- package/dist/ai-service/agent/tools/apis/integration-types.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +25 -0
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/test-api.js +194 -0
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/write-api.d.ts +11 -0
- package/dist/ai-service/agent/tools/apis/write-api.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/write-api.js +41 -0
- package/dist/ai-service/agent/tools/apis/write-api.js.map +1 -0
- package/dist/ai-service/agent/tools/build-read-files.js +2 -2
- package/dist/ai-service/agent/tools/build-read-files.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts +2 -5
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +51 -22
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts +1 -0
- package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.js +15 -13
- package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts +2 -1
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +4 -3
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +2 -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 +103 -88
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep-metadata.js +25 -4
- package/dist/ai-service/agent/tools2/tools/grep-metadata.js.map +1 -1
- package/dist/ai-service/agent/tools2/types.d.ts +1 -1
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/agent/tools2/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/utils.js +4 -1
- package/dist/ai-service/agent/tools2/utils.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts +1 -3
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +44 -4
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/app-interface/shell.d.ts +5 -0
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +17 -2
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +7 -0
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +26 -0
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/const.d.ts +2 -1
- package/dist/ai-service/const.d.ts.map +1 -1
- package/dist/ai-service/const.js +1 -0
- package/dist/ai-service/const.js.map +1 -1
- package/dist/ai-service/index.d.ts +5 -1
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +55 -7
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/metadata-storage/index.d.ts +10 -0
- package/dist/ai-service/integrations/metadata-storage/index.d.ts.map +1 -1
- package/dist/ai-service/integrations/metadata-storage/local.d.ts +4 -2
- package/dist/ai-service/integrations/metadata-storage/local.d.ts.map +1 -1
- package/dist/ai-service/integrations/metadata-storage/local.js +35 -9
- package/dist/ai-service/integrations/metadata-storage/local.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +27 -2
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +129 -62
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts +123 -0
- package/dist/ai-service/llm/client.d.ts.map +1 -0
- package/dist/ai-service/llm/client.js +168 -0
- package/dist/ai-service/llm/client.js.map +1 -0
- package/dist/ai-service/llm/context/context-handle.d.ts +4 -4
- package/dist/ai-service/llm/context/context-handle.d.ts.map +1 -1
- package/dist/ai-service/llm/context/context-handle.js +7 -3
- package/dist/ai-service/llm/context/context-handle.js.map +1 -1
- package/dist/ai-service/llm/context/context.d.ts +28 -0
- package/dist/ai-service/llm/context/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context/context.js +117 -0
- package/dist/ai-service/llm/context/context.js.map +1 -1
- package/dist/ai-service/llm/context/manager.d.ts +22 -2
- package/dist/ai-service/llm/context/manager.d.ts.map +1 -1
- package/dist/ai-service/llm/context/manager.js +86 -13
- package/dist/ai-service/llm/context/manager.js.map +1 -1
- package/dist/ai-service/llm/context/storage/index.d.ts +1 -0
- package/dist/ai-service/llm/context/storage/index.d.ts.map +1 -1
- package/dist/ai-service/llm/context/storage/local.d.ts +1 -0
- package/dist/ai-service/llm/context/storage/local.d.ts.map +1 -1
- package/dist/ai-service/llm/context/storage/local.js +13 -1
- package/dist/ai-service/llm/context/storage/local.js.map +1 -1
- package/dist/ai-service/llm/error.d.ts +14 -4
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +49 -4
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/interaction/adapters/vercel.d.ts +67 -0
- package/dist/ai-service/llm/interaction/adapters/vercel.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/adapters/vercel.js +110 -0
- package/dist/ai-service/llm/interaction/adapters/vercel.js.map +1 -0
- package/dist/ai-service/llm/interaction/compose.d.ts +71 -0
- package/dist/ai-service/llm/interaction/compose.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/compose.js +88 -0
- package/dist/ai-service/llm/interaction/compose.js.map +1 -0
- package/dist/ai-service/llm/interaction/index.d.ts +68 -0
- package/dist/ai-service/llm/interaction/index.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/index.js +70 -0
- package/dist/ai-service/llm/interaction/index.js.map +1 -0
- package/dist/ai-service/llm/interaction/middleware.d.ts +52 -0
- package/dist/ai-service/llm/interaction/middleware.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/middleware.js +17 -0
- package/dist/ai-service/llm/interaction/middleware.js.map +1 -0
- package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts +45 -0
- package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/middlewares/llmobs.js +85 -0
- package/dist/ai-service/llm/interaction/middlewares/llmobs.js.map +1 -0
- package/dist/ai-service/llm/interaction/middlewares/logging.d.ts +88 -0
- package/dist/ai-service/llm/interaction/middlewares/logging.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/middlewares/logging.js +238 -0
- package/dist/ai-service/llm/interaction/middlewares/logging.js.map +1 -0
- package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts +47 -0
- package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/middlewares/profiler.js +183 -0
- package/dist/ai-service/llm/interaction/middlewares/profiler.js.map +1 -0
- package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts +121 -0
- package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/middlewares/stream-retry.js +291 -0
- package/dist/ai-service/llm/interaction/middlewares/stream-retry.js.map +1 -0
- package/dist/ai-service/llm/interaction/provider.d.ts +158 -0
- package/dist/ai-service/llm/interaction/provider.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/provider.js +15 -0
- package/dist/ai-service/llm/interaction/provider.js.map +1 -0
- package/dist/ai-service/llm/interaction/stream-lifecycle.d.ts +48 -0
- package/dist/ai-service/llm/interaction/stream-lifecycle.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/stream-lifecycle.js +131 -0
- package/dist/ai-service/llm/interaction/stream-lifecycle.js.map +1 -0
- package/dist/ai-service/llm/provider.d.ts +1 -2
- package/dist/ai-service/llm/provider.d.ts.map +1 -1
- package/dist/ai-service/llm/provider.js +3 -6
- package/dist/ai-service/llm/provider.js.map +1 -1
- package/dist/ai-service/llmobs/helpers.d.ts +7 -8
- package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
- package/dist/ai-service/llmobs/helpers.js +8 -48
- package/dist/ai-service/llmobs/helpers.js.map +1 -1
- package/dist/ai-service/llmobs/middleware/stream-text.d.ts +19 -21
- package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +1 -1
- package/dist/ai-service/llmobs/middleware/stream-text.js +98 -106
- package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -1
- package/dist/ai-service/llmobs/types.d.ts +14 -1
- package/dist/ai-service/llmobs/types.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +75 -5
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +100 -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 +4 -0
- package/dist/ai-service/state-machine/handlers/agent-planning.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 +91 -456
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +1 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.js +15 -0
- package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
- 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/types.d.ts +30 -0
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/binding-extraction/extract-identifiers.d.ts +14 -0
- package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -1
- package/dist/binding-extraction/extract-identifiers.js +46 -1
- package/dist/binding-extraction/extract-identifiers.js.map +1 -1
- package/dist/binding-extraction/js-identifiers.d.ts +14 -0
- package/dist/binding-extraction/js-identifiers.d.ts.map +1 -1
- package/dist/binding-extraction/js-identifiers.js +168 -0
- package/dist/binding-extraction/js-identifiers.js.map +1 -1
- package/dist/binding-extraction/python-identifiers.d.ts +5 -0
- package/dist/binding-extraction/python-identifiers.d.ts.map +1 -1
- package/dist/binding-extraction/python-identifiers.js +76 -7
- package/dist/binding-extraction/python-identifiers.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +73 -3
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/file-system-manager.d.ts.map +1 -1
- package/dist/file-system-manager.js +6 -4
- package/dist/file-system-manager.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lock-service/activity-tracker.d.ts +14 -2
- package/dist/lock-service/activity-tracker.d.ts.map +1 -1
- package/dist/lock-service/activity-tracker.js +43 -6
- package/dist/lock-service/activity-tracker.js.map +1 -1
- package/dist/lock-service/index.d.ts +13 -2
- package/dist/lock-service/index.d.ts.map +1 -1
- package/dist/lock-service/index.js +130 -44
- package/dist/lock-service/index.js.map +1 -1
- package/dist/parsing/jsx.d.ts.map +1 -1
- package/dist/parsing/jsx.js +78 -66
- package/dist/parsing/jsx.js.map +1 -1
- package/dist/socket-manager.js +1 -1
- package/dist/socket-manager.js.map +1 -1
- package/dist/sync-service/list-dir.d.ts.map +1 -1
- package/dist/sync-service/list-dir.js +41 -18
- package/dist/sync-service/list-dir.js.map +1 -1
- package/dist/vite-plugin-yaml-types.d.ts.map +1 -1
- package/dist/vite-plugin-yaml-types.js +2 -4
- package/dist/vite-plugin-yaml-types.js.map +1 -1
- package/package.json +7 -7
- package/dist/ai-service/agent/subagents/apis/api-executor.d.ts.map +0 -1
- package/dist/ai-service/agent/subagents/apis/api-executor.js.map +0 -1
- package/dist/ai-service/agent/subagents/apis/context.d.ts +0 -12
- package/dist/ai-service/agent/subagents/apis/context.d.ts.map +0 -1
- package/dist/ai-service/agent/subagents/apis/context.js +0 -18
- package/dist/ai-service/agent/subagents/apis/context.js.map +0 -1
- package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +0 -40
- package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +0 -1
- package/dist/ai-service/agent/subagents/apis/generate-api-source.js +0 -516
- package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +0 -1
- package/dist/ai-service/agent/subagents/apis/state.d.ts +0 -49
- package/dist/ai-service/agent/subagents/apis/state.d.ts.map +0 -1
- package/dist/ai-service/agent/subagents/apis/state.js +0 -25
- package/dist/ai-service/agent/subagents/apis/state.js.map +0 -1
- package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +0 -3
- package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +0 -1
- package/dist/ai-service/agent/subagents/apis/system-prompt.js +0 -1704
- package/dist/ai-service/agent/subagents/apis/system-prompt.js.map +0 -1
- package/dist/ai-service/agent/tools/apis/finalize-api.d.ts +0 -11
- package/dist/ai-service/agent/tools/apis/finalize-api.d.ts.map +0 -1
- package/dist/ai-service/agent/tools/apis/finalize-api.js +0 -133
- package/dist/ai-service/agent/tools/apis/finalize-api.js.map +0 -1
- package/dist/ai-service/llm/middleware/retry.d.ts +0 -112
- package/dist/ai-service/llm/middleware/retry.d.ts.map +0 -1
- package/dist/ai-service/llm/middleware/retry.js +0 -239
- package/dist/ai-service/llm/middleware/retry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ai-service/integrations/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ai-service/integrations/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level LLM client with integrated middleware support.
|
|
3
|
+
*
|
|
4
|
+
* This client provides a streamText interface that automatically handles:
|
|
5
|
+
* - Context management (conversation history and locking)
|
|
6
|
+
* - Automatic retry on transient failures (with fresh state on each retry)
|
|
7
|
+
* - Logging middleware (logs to artifacts)
|
|
8
|
+
* - Token tracking (optional)
|
|
9
|
+
* - LLMObs middleware (tracing and observability)
|
|
10
|
+
*
|
|
11
|
+
* The client can be used anywhere in the codebase (FSM handlers, subagents, etc.)
|
|
12
|
+
* and provides consistent LLM interaction patterns with proper resource management.
|
|
13
|
+
*/
|
|
14
|
+
import { LLMObsTracer } from "../llmobs/tracer.js";
|
|
15
|
+
import { type LoggingMiddlewareOptions } from "./interaction/middlewares/logging.js";
|
|
16
|
+
import type { AcquireContextOptions } from "./context/context-handle.js";
|
|
17
|
+
import type { ContextManager } from "./context/manager.js";
|
|
18
|
+
import type { ContextId, ContextOptions } from "./context/types.js";
|
|
19
|
+
import type { StreamTextOptions, StreamTextResult, StreamTextProvider } from "./interaction/provider.js";
|
|
20
|
+
import type { Tool } from "../agent/tools2/types.js";
|
|
21
|
+
import type { AppShell } from "../app-interface/shell.js";
|
|
22
|
+
import type { LanguageModel, ModelMessage } from "ai";
|
|
23
|
+
/**
|
|
24
|
+
* Options for LLMClient.streamText().
|
|
25
|
+
*/
|
|
26
|
+
export interface LLMClientStreamTextOptions<TOOLS extends Record<string, Tool>> extends Omit<StreamTextOptions<TOOLS>, "messages"> {
|
|
27
|
+
/** Language model to use */
|
|
28
|
+
model: LanguageModel;
|
|
29
|
+
/**
|
|
30
|
+
* Context configuration for managing conversation history.
|
|
31
|
+
*
|
|
32
|
+
* If contextId is omitted, an ephemeral context is used.
|
|
33
|
+
* The context is automatically acquired and released around the LLM call.
|
|
34
|
+
* It can be seeded with initial messages and configured with options.
|
|
35
|
+
*/
|
|
36
|
+
context?: {
|
|
37
|
+
/** Context identifier for persistent conversation history (omit for ephemeral context) */
|
|
38
|
+
contextId?: ContextId;
|
|
39
|
+
/** Optional messages to initialize context with (useful for forking or custom history) */
|
|
40
|
+
messages?: ModelMessage[];
|
|
41
|
+
/** Owner identifier (auto-generated if not provided) */
|
|
42
|
+
ownerId?: string;
|
|
43
|
+
/** Context configuration options */
|
|
44
|
+
contextOptions?: ContextOptions;
|
|
45
|
+
/** Acquisition options (timeouts, retries) */
|
|
46
|
+
acquireOptions?: AcquireContextOptions;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Logging configuration. Set to false to disable logging.
|
|
50
|
+
*/
|
|
51
|
+
logging?: {
|
|
52
|
+
/** Unique identifier for this conversation */
|
|
53
|
+
conversationId?: string;
|
|
54
|
+
/** Optional log reference for external access to log content */
|
|
55
|
+
logRef?: LoggingMiddlewareOptions["logRef"];
|
|
56
|
+
/** Optional additional metadata to log */
|
|
57
|
+
metadata?: LoggingMiddlewareOptions["metadata"];
|
|
58
|
+
} | false;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* High-level LLM client with integrated middleware and context management.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const llmClient = new LLMClient(contextManager, appShell);
|
|
66
|
+
*
|
|
67
|
+
* // Ephemeral context (no contextId)
|
|
68
|
+
* await llmClient.streamText({
|
|
69
|
+
* model: anthropic('claude-3-5-sonnet'),
|
|
70
|
+
* user: { role: "user", content: "Hello!" }
|
|
71
|
+
* });
|
|
72
|
+
*
|
|
73
|
+
* // Ephemeral context with custom messages
|
|
74
|
+
* await llmClient.streamText({
|
|
75
|
+
* model,
|
|
76
|
+
* user: { role: "user", content: "Continue" },
|
|
77
|
+
* context: {
|
|
78
|
+
* messages: [
|
|
79
|
+
* { role: "user", content: "Previous question" },
|
|
80
|
+
* { role: "assistant", content: "Previous answer" }
|
|
81
|
+
* ]
|
|
82
|
+
* }
|
|
83
|
+
* });
|
|
84
|
+
*
|
|
85
|
+
* // Persistent context
|
|
86
|
+
* const result = await llmClient.streamText({
|
|
87
|
+
* model: anthropic('claude-3-5-sonnet'),
|
|
88
|
+
* user: { role: "user", content: "Hello!" },
|
|
89
|
+
* context: { contextId: { appId, userId, name: "main" } },
|
|
90
|
+
* logging: { conversationId: "conv-123", runTimestamp: Date.now().toString() }
|
|
91
|
+
* });
|
|
92
|
+
*
|
|
93
|
+
* for await (const text of result.textStream) {
|
|
94
|
+
* console.log(text);
|
|
95
|
+
* }
|
|
96
|
+
* // Context automatically released, log automatically saved
|
|
97
|
+
*
|
|
98
|
+
* // With external logRef for accessing logs during streaming
|
|
99
|
+
* const logRef = { content: "" };
|
|
100
|
+
* await llmClient.streamText({
|
|
101
|
+
* model,
|
|
102
|
+
* user: { role: "user", content: "Hello!" },
|
|
103
|
+
* logging: {
|
|
104
|
+
* conversationId: "conv-123",
|
|
105
|
+
* logRef // Access logs via logRef.content during streaming
|
|
106
|
+
* }
|
|
107
|
+
* });
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare class LLMClient {
|
|
111
|
+
private readonly contextManager;
|
|
112
|
+
private readonly appShell;
|
|
113
|
+
private readonly baseProvider;
|
|
114
|
+
constructor(contextManager: ContextManager, appShell: AppShell, baseProvider?: StreamTextProvider);
|
|
115
|
+
/**
|
|
116
|
+
* Streams text from an LLM with automatic context and middleware management.
|
|
117
|
+
*
|
|
118
|
+
* @param options - Stream options including model, messages, tools, context config, etc.
|
|
119
|
+
* @returns Promise resolving to stream result
|
|
120
|
+
*/
|
|
121
|
+
streamText<TOOLS extends Record<string, Tool>>(options: LLMClientStreamTextOptions<TOOLS>, logger?: import("../../util/logger.js").Logger, tracer?: LLMObsTracer): Promise<StreamTextResult<TOOLS>>;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAsB,YAAY,EAAE,MAAM,IAAI,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,0BAA0B,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAC5E,SAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAClD,4BAA4B;IAC5B,KAAK,EAAE,aAAa,CAAC;IAErB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE;QACR,0FAA0F;QAC1F,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,0FAA0F;QAC1F,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;QAC1B,wDAAwD;QACxD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,oCAAoC;QACpC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,8CAA8C;QAC9C,cAAc,CAAC,EAAE,qBAAqB,CAAC;KACxC,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EACJ;QACE,8CAA8C;QAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gEAAgE;QAChE,MAAM,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC5C,0CAA0C;QAC1C,QAAQ,CAAC,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAC;KACjD,GACD,KAAK,CAAC;CACX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,YAAY,GAAE,kBAA2C;IAG5E;;;;;OAKG;IACG,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EACjD,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAC,EAC1C,MAAM,wCAAc,EACpB,MAAM,eAAwB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;CAoHpC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level LLM client with integrated middleware support.
|
|
3
|
+
*
|
|
4
|
+
* This client provides a streamText interface that automatically handles:
|
|
5
|
+
* - Context management (conversation history and locking)
|
|
6
|
+
* - Automatic retry on transient failures (with fresh state on each retry)
|
|
7
|
+
* - Logging middleware (logs to artifacts)
|
|
8
|
+
* - Token tracking (optional)
|
|
9
|
+
* - LLMObs middleware (tracing and observability)
|
|
10
|
+
*
|
|
11
|
+
* The client can be used anywhere in the codebase (FSM handlers, subagents, etc.)
|
|
12
|
+
* and provides consistent LLM interaction patterns with proper resource management.
|
|
13
|
+
*/
|
|
14
|
+
import { getLogger } from "../../util/logger.js";
|
|
15
|
+
import { LLMObsTracer } from "../llmobs/tracer.js";
|
|
16
|
+
import { createVercelProvider } from "./interaction/adapters/vercel.js";
|
|
17
|
+
import { applyMiddleware } from "./interaction/compose.js";
|
|
18
|
+
import { createLLMObsMiddleware } from "./interaction/middlewares/llmobs.js";
|
|
19
|
+
import { createLoggingMiddleware, } from "./interaction/middlewares/logging.js";
|
|
20
|
+
import { createStreamRetryMiddleware } from "./interaction/middlewares/stream-retry.js";
|
|
21
|
+
/**
|
|
22
|
+
* High-level LLM client with integrated middleware and context management.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const llmClient = new LLMClient(contextManager, appShell);
|
|
27
|
+
*
|
|
28
|
+
* // Ephemeral context (no contextId)
|
|
29
|
+
* await llmClient.streamText({
|
|
30
|
+
* model: anthropic('claude-3-5-sonnet'),
|
|
31
|
+
* user: { role: "user", content: "Hello!" }
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* // Ephemeral context with custom messages
|
|
35
|
+
* await llmClient.streamText({
|
|
36
|
+
* model,
|
|
37
|
+
* user: { role: "user", content: "Continue" },
|
|
38
|
+
* context: {
|
|
39
|
+
* messages: [
|
|
40
|
+
* { role: "user", content: "Previous question" },
|
|
41
|
+
* { role: "assistant", content: "Previous answer" }
|
|
42
|
+
* ]
|
|
43
|
+
* }
|
|
44
|
+
* });
|
|
45
|
+
*
|
|
46
|
+
* // Persistent context
|
|
47
|
+
* const result = await llmClient.streamText({
|
|
48
|
+
* model: anthropic('claude-3-5-sonnet'),
|
|
49
|
+
* user: { role: "user", content: "Hello!" },
|
|
50
|
+
* context: { contextId: { appId, userId, name: "main" } },
|
|
51
|
+
* logging: { conversationId: "conv-123", runTimestamp: Date.now().toString() }
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* for await (const text of result.textStream) {
|
|
55
|
+
* console.log(text);
|
|
56
|
+
* }
|
|
57
|
+
* // Context automatically released, log automatically saved
|
|
58
|
+
*
|
|
59
|
+
* // With external logRef for accessing logs during streaming
|
|
60
|
+
* const logRef = { content: "" };
|
|
61
|
+
* await llmClient.streamText({
|
|
62
|
+
* model,
|
|
63
|
+
* user: { role: "user", content: "Hello!" },
|
|
64
|
+
* logging: {
|
|
65
|
+
* conversationId: "conv-123",
|
|
66
|
+
* logRef // Access logs via logRef.content during streaming
|
|
67
|
+
* }
|
|
68
|
+
* });
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export class LLMClient {
|
|
72
|
+
contextManager;
|
|
73
|
+
appShell;
|
|
74
|
+
baseProvider;
|
|
75
|
+
constructor(contextManager, appShell, baseProvider = createVercelProvider()) {
|
|
76
|
+
this.contextManager = contextManager;
|
|
77
|
+
this.appShell = appShell;
|
|
78
|
+
this.baseProvider = baseProvider;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Streams text from an LLM with automatic context and middleware management.
|
|
82
|
+
*
|
|
83
|
+
* @param options - Stream options including model, messages, tools, context config, etc.
|
|
84
|
+
* @returns Promise resolving to stream result
|
|
85
|
+
*/
|
|
86
|
+
async streamText(options, logger = getLogger(), tracer = LLMObsTracer.instance) {
|
|
87
|
+
const { model, user, system, context: contextConfig, logging: loggingConfig, prepareStep, onStepFinish, onFinish, onFinally, ...streamOptions } = options;
|
|
88
|
+
// Validate user is provided
|
|
89
|
+
if (!user) {
|
|
90
|
+
throw new Error("user message is required");
|
|
91
|
+
}
|
|
92
|
+
// Extract context parameters
|
|
93
|
+
const contextId = contextConfig?.contextId;
|
|
94
|
+
const ownerId = contextConfig?.ownerId ??
|
|
95
|
+
(contextId
|
|
96
|
+
? `llmclient-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
|
|
97
|
+
: `ephemeral-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`);
|
|
98
|
+
// Acquire context lock (undefined contextId creates ephemeral context)
|
|
99
|
+
const contextHandle = await this.contextManager.acquireContext(contextId, ownerId, {
|
|
100
|
+
contextOptions: contextConfig?.contextOptions,
|
|
101
|
+
acquireOptions: contextConfig?.acquireOptions,
|
|
102
|
+
});
|
|
103
|
+
try {
|
|
104
|
+
const ctx = contextHandle.context;
|
|
105
|
+
// Initialize context with custom messages if provided
|
|
106
|
+
if (contextConfig?.messages) {
|
|
107
|
+
ctx.initializeWith(contextConfig.messages);
|
|
108
|
+
}
|
|
109
|
+
// Set system prompt if provided (overrides any in messages array)
|
|
110
|
+
if (system) {
|
|
111
|
+
const systemMsg = {
|
|
112
|
+
role: "system",
|
|
113
|
+
content: system,
|
|
114
|
+
};
|
|
115
|
+
ctx.setSystemPrompt(systemMsg);
|
|
116
|
+
}
|
|
117
|
+
// Start turn with user message
|
|
118
|
+
ctx.startTurn(user);
|
|
119
|
+
// Build middleware stack
|
|
120
|
+
const middlewares = [];
|
|
121
|
+
if (loggingConfig !== false && loggingConfig) {
|
|
122
|
+
middlewares.push(createLoggingMiddleware({
|
|
123
|
+
conversationId: loggingConfig.conversationId,
|
|
124
|
+
saveArtifact: this.appShell.saveGeneratedArtifact.bind(this.appShell),
|
|
125
|
+
logRef: loggingConfig.logRef,
|
|
126
|
+
metadata: loggingConfig.metadata,
|
|
127
|
+
}));
|
|
128
|
+
}
|
|
129
|
+
middlewares.push(createStreamRetryMiddleware({
|
|
130
|
+
maxTotalRetryTimeMs: 2 * 60 * 1000, // 2 minutes
|
|
131
|
+
logger: getLogger(),
|
|
132
|
+
}));
|
|
133
|
+
middlewares.push(createLLMObsMiddleware({ tracer, logger }));
|
|
134
|
+
// Compose all middlewares
|
|
135
|
+
const provider = applyMiddleware(this.baseProvider, ...middlewares);
|
|
136
|
+
// Call streamText with injected lifecycle hooks for context management
|
|
137
|
+
const result = await provider.streamText({
|
|
138
|
+
...streamOptions,
|
|
139
|
+
model,
|
|
140
|
+
messages: ctx.getMessages(),
|
|
141
|
+
prepareStep: async (step) => {
|
|
142
|
+
ctx.startStep();
|
|
143
|
+
step = { ...step, messages: ctx.getMessages() };
|
|
144
|
+
return prepareStep?.(step) ?? step;
|
|
145
|
+
},
|
|
146
|
+
onStepFinish: async (stepResult) => {
|
|
147
|
+
ctx.endStep(stepResult.response.messages, stepResult.usage);
|
|
148
|
+
return onStepFinish?.(stepResult);
|
|
149
|
+
},
|
|
150
|
+
onFinish: async (finalResult) => {
|
|
151
|
+
ctx.endTurn(finalResult.usage);
|
|
152
|
+
return onFinish?.(finalResult);
|
|
153
|
+
},
|
|
154
|
+
onFinally: async () => {
|
|
155
|
+
contextHandle.release();
|
|
156
|
+
return onFinally?.();
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
return result;
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
// Release context on error before stream starts
|
|
163
|
+
contextHandle.release();
|
|
164
|
+
throw error;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/ai-service/llm/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,8 +36,8 @@ import type { ContextId } from "./types.js";
|
|
|
36
36
|
export declare class ContextHandle {
|
|
37
37
|
/** The context instance */
|
|
38
38
|
readonly context: Context;
|
|
39
|
-
/** The ID of the context */
|
|
40
|
-
readonly contextId: ContextId;
|
|
39
|
+
/** The ID of the context (undefined for ephemeral contexts) */
|
|
40
|
+
readonly contextId: ContextId | undefined;
|
|
41
41
|
/** The owner ID holding this handle */
|
|
42
42
|
readonly ownerId: string;
|
|
43
43
|
/** The lock manager to release the lock */
|
|
@@ -46,8 +46,8 @@ export declare class ContextHandle {
|
|
|
46
46
|
constructor(
|
|
47
47
|
/** The context instance */
|
|
48
48
|
context: Context,
|
|
49
|
-
/** The ID of the context */
|
|
50
|
-
contextId: ContextId,
|
|
49
|
+
/** The ID of the context (undefined for ephemeral contexts) */
|
|
50
|
+
contextId: ContextId | undefined,
|
|
51
51
|
/** The owner ID holding this handle */
|
|
52
52
|
ownerId: string,
|
|
53
53
|
/** The lock manager to release the lock */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-handle.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context-handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,aAAa;IAItB,2BAA2B;aACX,OAAO,EAAE,OAAO;IAChC
|
|
1
|
+
{"version":3,"file":"context-handle.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context-handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,aAAa;IAItB,2BAA2B;aACX,OAAO,EAAE,OAAO;IAChC,+DAA+D;aAC/C,SAAS,EAAE,SAAS,GAAG,SAAS;IAChD,uCAAuC;aACvB,OAAO,EAAE,MAAM;IAC/B,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAV9B,OAAO,CAAC,SAAS,CAAS;;IAGxB,2BAA2B;IACX,OAAO,EAAE,OAAO;IAChC,+DAA+D;IAC/C,SAAS,EAAE,SAAS,GAAG,SAAS;IAChD,uCAAuC;IACvB,OAAO,EAAE,MAAM;IAC/B,2CAA2C;IAC1B,WAAW,EAAE,kBAAkB;IAGlD;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAYf;;;;OAIG;IACH,WAAW,IAAI,IAAI;IASnB;;;OAGG;IACG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;OAGG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,kBAAkB,EAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,OAAO,CAAC,CAsClB"}
|
|
@@ -39,7 +39,7 @@ export class ContextHandle {
|
|
|
39
39
|
constructor(
|
|
40
40
|
/** The context instance */
|
|
41
41
|
context,
|
|
42
|
-
/** The ID of the context */
|
|
42
|
+
/** The ID of the context (undefined for ephemeral contexts) */
|
|
43
43
|
contextId,
|
|
44
44
|
/** The owner ID holding this handle */
|
|
45
45
|
ownerId,
|
|
@@ -67,7 +67,10 @@ export class ContextHandle {
|
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
69
|
this._released = true;
|
|
70
|
-
|
|
70
|
+
// Only release lock for persistent contexts (ephemeral ones don't have locks)
|
|
71
|
+
if (this.contextId) {
|
|
72
|
+
this.lockManager.release(this.contextId, this.ownerId);
|
|
73
|
+
}
|
|
71
74
|
}
|
|
72
75
|
/**
|
|
73
76
|
* Ensures the handle is still valid for use.
|
|
@@ -76,7 +79,8 @@ export class ContextHandle {
|
|
|
76
79
|
*/
|
|
77
80
|
ensureValid() {
|
|
78
81
|
if (this._released) {
|
|
79
|
-
|
|
82
|
+
const contextName = this.contextId?.name ?? "ephemeral";
|
|
83
|
+
throw new Error(`Context handle for '${contextName}' has been released and cannot be used`);
|
|
80
84
|
}
|
|
81
85
|
}
|
|
82
86
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-handle.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context-handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,aAAa;IAKN;IAEA;IAEA;IAEC;IAVX,SAAS,GAAG,KAAK,CAAC;IAE1B;IACE,2BAA2B;IACX,OAAgB;IAChC
|
|
1
|
+
{"version":3,"file":"context-handle.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context-handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,aAAa;IAKN;IAEA;IAEA;IAEC;IAVX,SAAS,GAAG,KAAK,CAAC;IAE1B;IACE,2BAA2B;IACX,OAAgB;IAChC,+DAA+D;IAC/C,SAAgC;IAChD,uCAAuC;IACvB,OAAe;IAC/B,2CAA2C;IAC1B,WAA+B;QANhC,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAuB;QAEhC,YAAO,GAAP,OAAO,CAAQ;QAEd,gBAAW,GAAX,WAAW,CAAoB;IAC/C,CAAC;IAEJ;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,8EAA8E;QAC9E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,WAAW,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,uBAAuB,WAAW,wCAAwC,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;CACF;AAgBD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAA+B,EAC/B,SAAoB,EACpB,OAAe,EACf,UAAiC,EAAE;IAEnC,MAAM,EACJ,aAAa,GAAG,CAAC,EACjB,aAAa,EACb,eAAe,GAAG,GAAG,EACrB,KAAK,GAAG,KAAK,GACd,GAAG,OAAO,CAAC;IAEZ,MAAM,QAAQ,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,OAAO,IAAI,EAAE,CAAC;QACZ,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,KAAK;YACpB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;gBACtC,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,aAAa;aACzB,CAAC;YACJ,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE;gBACzC,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;QAEP,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2CAA2C;QAC3C,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mEAAmE;QACnE,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
|
|
@@ -52,6 +52,30 @@ export declare class Context {
|
|
|
52
52
|
* Seed empty context with a summary message.
|
|
53
53
|
*/
|
|
54
54
|
seedIfEmpty(summary: UserModelMessage): void;
|
|
55
|
+
/**
|
|
56
|
+
* Initializes the context with a list of existing messages.
|
|
57
|
+
*
|
|
58
|
+
* This method is useful for creating ephemeral contexts with custom message
|
|
59
|
+
* history (e.g., forking a conversation or starting with a specific context).
|
|
60
|
+
* Messages are tokenized and stored as L1 turns for full detail preservation.
|
|
61
|
+
*
|
|
62
|
+
* Note: This does NOT start a new turn - call startTurn() separately with
|
|
63
|
+
* the new user message.
|
|
64
|
+
*
|
|
65
|
+
* @param messages - Array of messages to initialize the context with
|
|
66
|
+
* @throws {ContextLimitExceededError} If messages exceed maxTokens and allowOverflow is false
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const ctx = await contextManager.acquireContext(undefined, "ephemeral-123");
|
|
71
|
+
* ctx.initializeWith([
|
|
72
|
+
* { role: "user", content: "Previous question" },
|
|
73
|
+
* { role: "assistant", content: "Previous answer" }
|
|
74
|
+
* ]);
|
|
75
|
+
* ctx.startTurn({ role: "user", content: "New question" });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
initializeWith(messages: ModelMessage[]): void;
|
|
55
79
|
/**
|
|
56
80
|
* Returns all messages in order (system + L3 + L2 + L1).
|
|
57
81
|
*
|
|
@@ -103,6 +127,10 @@ export declare class Context {
|
|
|
103
127
|
startTurn(user: UserModelMessage): void;
|
|
104
128
|
/**
|
|
105
129
|
* Starts a new step within the active turn.
|
|
130
|
+
*
|
|
131
|
+
* This method is idempotent: if the last step is empty (from a failed attempt),
|
|
132
|
+
* it reuses that step instead of creating a new one. This ensures retry scenarios
|
|
133
|
+
* work correctly without accumulating empty step arrays.
|
|
106
134
|
*/
|
|
107
135
|
startStep(): void;
|
|
108
136
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC5B,MAAM,cAAc,CAAC;AAWtB,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,gBAAgB,EAGhB,eAAe,EACf,IAAI,EACJ,sBAAsB,EAEvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAGd,SAAS,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,IAAI,CAAC;AAEZ;;;GAGG;AACH,qBAAa,OAAO;IAClB,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IAEzC,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,OAAO,EAAE,MAAM,EAAE,CAAM;IACvB,OAAO,EAAE,MAAM,EAAE,CAAM;IACvB,OAAO,EAAE,MAAM,EAAE,CAAM;IACvB,OAAO,CAAC,SAAS,CAAC,CAA2C;IAG7D,OAAO,CAAC,sBAAsB,CAAK;IAGnC,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,MAAM,EAAE;QAClB,EAAE,CAAC,EAAE,SAAS,CAAC;QACf,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,aAAa,EAAE,aAAa,CAAC;KAC9B;IASD,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,OAAO,CAAC,SAAS;IAKjB,OAAO,KAAK,MAAM,GAKjB;YAEa,OAAO;IAMrB;;OAEG;IACI,WAAW,CAAC,OAAO,EAAE,gBAAgB;IAS5C;;;;OAIG;IACI,WAAW,IAAI,YAAY,EAAE;IA4CpC;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAevB;IAED;;OAEG;IACH,IAAI,sBAAsB,IAAI,MAAM,CAGnC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,IAAI,GAAG,SAAS,CAEjC;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,gBAAgB,EAAE,CAMrC;IAED;;OAEG;IACH,OAAO,KAAK,WAAW,GAKtB;IAED,eAAe;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,6 +124,111 @@ let Context = (() => {
|
|
|
124
124
|
}
|
|
125
125
|
this.l3Turns.push(new L3Turn(this.withTokenCount(summary)));
|
|
126
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Initializes the context with a list of existing messages.
|
|
129
|
+
*
|
|
130
|
+
* This method is useful for creating ephemeral contexts with custom message
|
|
131
|
+
* history (e.g., forking a conversation or starting with a specific context).
|
|
132
|
+
* Messages are tokenized and stored as L1 turns for full detail preservation.
|
|
133
|
+
*
|
|
134
|
+
* Note: This does NOT start a new turn - call startTurn() separately with
|
|
135
|
+
* the new user message.
|
|
136
|
+
*
|
|
137
|
+
* @param messages - Array of messages to initialize the context with
|
|
138
|
+
* @throws {ContextLimitExceededError} If messages exceed maxTokens and allowOverflow is false
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```typescript
|
|
142
|
+
* const ctx = await contextManager.acquireContext(undefined, "ephemeral-123");
|
|
143
|
+
* ctx.initializeWith([
|
|
144
|
+
* { role: "user", content: "Previous question" },
|
|
145
|
+
* { role: "assistant", content: "Previous answer" }
|
|
146
|
+
* ]);
|
|
147
|
+
* ctx.startTurn({ role: "user", content: "New question" });
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
initializeWith(messages) {
|
|
151
|
+
if (this.turnMessages.length > 0) {
|
|
152
|
+
this.logger.warn("initializeWith called on non-empty context - this will append to existing history");
|
|
153
|
+
}
|
|
154
|
+
let state = "awaiting-user";
|
|
155
|
+
let currentTurn = null;
|
|
156
|
+
let currentStep = [];
|
|
157
|
+
const finishStep = () => {
|
|
158
|
+
if (currentStep.length > 0 && currentTurn) {
|
|
159
|
+
currentTurn.steps.push(currentStep);
|
|
160
|
+
currentStep = [];
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
const finishTurn = () => {
|
|
164
|
+
finishStep();
|
|
165
|
+
if (currentTurn) {
|
|
166
|
+
this.l1Turns.push(currentTurn);
|
|
167
|
+
currentTurn = null;
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
for (const message of messages) {
|
|
171
|
+
if (message.role === "user") {
|
|
172
|
+
// User message starts a new turn
|
|
173
|
+
finishTurn();
|
|
174
|
+
const tokenizedUser = this.withTokenCount(message);
|
|
175
|
+
currentTurn = new L1Turn(tokenizedUser);
|
|
176
|
+
state = "awaiting-assistant";
|
|
177
|
+
}
|
|
178
|
+
else if (message.role === "assistant") {
|
|
179
|
+
// Assistant message behavior depends on state
|
|
180
|
+
if (!currentTurn) {
|
|
181
|
+
this.logger.warn("Found assistant message without preceding user message - skipping");
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (state === "in-step") {
|
|
185
|
+
// We've seen tool results, so finish current step before continuing
|
|
186
|
+
// This creates a new empty currentStep array
|
|
187
|
+
finishStep();
|
|
188
|
+
}
|
|
189
|
+
// Add this assistant message to currentStep (which is now empty if we just called finishStep)
|
|
190
|
+
const tokenizedMsg = this.withTokenCount(message);
|
|
191
|
+
currentStep.push(tokenizedMsg);
|
|
192
|
+
state = "awaiting-assistant"; // Waiting for tool results or next assistant
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
// Tool result message - add to current step
|
|
196
|
+
if (!currentTurn) {
|
|
197
|
+
this.logger.warn("Found tool message without preceding user message - skipping");
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
if (state === "awaiting-assistant" || state === "in-step") {
|
|
201
|
+
const tokenizedMsg = this.withTokenCount(message);
|
|
202
|
+
currentStep.push(tokenizedMsg);
|
|
203
|
+
state = "in-step"; // Mark that we have tool results in this step
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Ignore system messages - they should be set via setSystemPrompt()
|
|
207
|
+
}
|
|
208
|
+
// Finish final turn
|
|
209
|
+
finishTurn();
|
|
210
|
+
// Validate total tokens don't exceed limit
|
|
211
|
+
const totalTokens = this.tokenCount;
|
|
212
|
+
if (totalTokens > this.options.maxTokens) {
|
|
213
|
+
this.logger.warn(`Initialized messages exceed maxTokens: ${totalTokens} > ${this.options.maxTokens}`);
|
|
214
|
+
if (!this.options.allowOverflow) {
|
|
215
|
+
const info = {
|
|
216
|
+
currentTokens: totalTokens,
|
|
217
|
+
maxTokens: this.options.maxTokens,
|
|
218
|
+
breakdown: {
|
|
219
|
+
system: this.systemPromptTokenCount,
|
|
220
|
+
user: 0,
|
|
221
|
+
activeStep: 0,
|
|
222
|
+
history: totalTokens - this.systemPromptTokenCount,
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
throw new ContextLimitExceededError(info);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// Compact if needed
|
|
229
|
+
this.compactIfNeeded();
|
|
230
|
+
this.printState({ message: "initializeWith" });
|
|
231
|
+
}
|
|
127
232
|
/**
|
|
128
233
|
* Returns all messages in order (system + L3 + L2 + L1).
|
|
129
234
|
*
|
|
@@ -276,11 +381,23 @@ let Context = (() => {
|
|
|
276
381
|
}
|
|
277
382
|
/**
|
|
278
383
|
* Starts a new step within the active turn.
|
|
384
|
+
*
|
|
385
|
+
* This method is idempotent: if the last step is empty (from a failed attempt),
|
|
386
|
+
* it reuses that step instead of creating a new one. This ensures retry scenarios
|
|
387
|
+
* work correctly without accumulating empty step arrays.
|
|
279
388
|
*/
|
|
280
389
|
startStep() {
|
|
281
390
|
if (!this.activeTurn) {
|
|
282
391
|
throw new Error("No active turn to start a step in.");
|
|
283
392
|
}
|
|
393
|
+
// Check if last step is empty (from a failed/retried attempt)
|
|
394
|
+
const steps = this.activeTurn.steps;
|
|
395
|
+
const lastStep = steps[steps.length - 1];
|
|
396
|
+
if (lastStep && lastStep.length === 0) {
|
|
397
|
+
// Reuse empty step for retry - this makes startStep() idempotent
|
|
398
|
+
this.logger.debug("Reusing empty step for retry");
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
284
401
|
this.logger.info(`Starting new step in active turn`);
|
|
285
402
|
if (this.tokenCount > this.options.maxTokens) {
|
|
286
403
|
this.onContextLimitExceeded();
|