@superblocksteam/vite-plugin-file-sync 2.0.59-next.0 → 2.0.59-next.10
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 +25 -9
- 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 +358 -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 +1841 -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 +689 -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.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +73 -127
- 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 +55 -13
- 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 +3 -1
- package/dist/ai-service/const.d.ts.map +1 -1
- package/dist/ai-service/const.js +3 -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 +119 -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/context/utils/message-utils.d.ts.map +1 -1
- package/dist/ai-service/llm/context/utils/message-utils.js +6 -2
- package/dist/ai-service/llm/context/utils/message-utils.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 +111 -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 +173 -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/result-utils.d.ts +43 -0
- package/dist/ai-service/llm/interaction/result-utils.d.ts.map +1 -0
- package/dist/ai-service/llm/interaction/result-utils.js +49 -0
- package/dist/ai-service/llm/interaction/result-utils.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 +129 -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/template-renderer.js +1 -1
- package/dist/ai-service/template-renderer.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
|
@@ -38,6 +38,17 @@ import { getLogger } from "../../util/logger.js";
|
|
|
38
38
|
import { databaseIntegrationTypes } from "../const.js";
|
|
39
39
|
import llmobs from "../llmobs/index.js";
|
|
40
40
|
import { LocalMetadataStorage } from "./metadata-storage/local.js";
|
|
41
|
+
/**
|
|
42
|
+
* TTL (Time To Live) configuration for metadata cache.
|
|
43
|
+
*/
|
|
44
|
+
export const METADATA_TTL = {
|
|
45
|
+
/** Default TTL: 10 minutes - balances freshness with load */
|
|
46
|
+
DEFAULT: 10 * 60 * 1000,
|
|
47
|
+
/** Minimum TTL: 1 minute - for testing or high-frequency updates */
|
|
48
|
+
MIN: 1 * 60 * 1000,
|
|
49
|
+
/** Maximum TTL: 1 hour - for very stable metadata */
|
|
50
|
+
MAX: 60 * 60 * 1000,
|
|
51
|
+
};
|
|
41
52
|
let IntegrationStore = (() => {
|
|
42
53
|
let _instanceExtraInitializers = [];
|
|
43
54
|
let _getMetadata_decorators;
|
|
@@ -124,15 +135,51 @@ let IntegrationStore = (() => {
|
|
|
124
135
|
getHeader(id) {
|
|
125
136
|
return this.integrations.find((i) => i.id === id);
|
|
126
137
|
}
|
|
127
|
-
async getMetadata(id, editorClient) {
|
|
138
|
+
async getMetadata(id, editorClient, options) {
|
|
139
|
+
const logger = getLogger();
|
|
140
|
+
// Force refresh bypasses everything
|
|
141
|
+
if (options?.forceRefresh) {
|
|
142
|
+
logger.info(`[integration-store] Force refresh requested for ${id}, invalidating cache`);
|
|
143
|
+
await this.metadataStorage.invalidate(id);
|
|
144
|
+
// Check for in-flight fetch to avoid duplicate requests
|
|
145
|
+
const pending = this.pendingMetadataFetches.get(id);
|
|
146
|
+
if (pending) {
|
|
147
|
+
logger.debug(`[integration-store] Waiting for in-flight fetch of ${id}`);
|
|
148
|
+
return pending;
|
|
149
|
+
}
|
|
150
|
+
// Start new fetch
|
|
151
|
+
const fetchPromise = this._fetchMetadata(id, editorClient);
|
|
152
|
+
this.pendingMetadataFetches.set(id, fetchPromise);
|
|
153
|
+
try {
|
|
154
|
+
return await fetchPromise;
|
|
155
|
+
}
|
|
156
|
+
finally {
|
|
157
|
+
this.pendingMetadataFetches.delete(id);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
128
160
|
// Check for in-flight fetch to avoid duplicate requests
|
|
129
161
|
const pending = this.pendingMetadataFetches.get(id);
|
|
130
162
|
if (pending) {
|
|
131
|
-
|
|
163
|
+
logger.debug(`[integration-store] Waiting for in-flight fetch of ${id}`);
|
|
132
164
|
return pending;
|
|
133
165
|
}
|
|
166
|
+
// Check cache age and refresh if stale (synchronous/blocking)
|
|
167
|
+
const cachedPath = await this.metadataStorage.loadMetadata(id);
|
|
168
|
+
if (cachedPath) {
|
|
169
|
+
const age = await this.metadataStorage.getAge(id);
|
|
170
|
+
const ttl = options?.ttl ?? METADATA_TTL.DEFAULT;
|
|
171
|
+
if (age !== null && age < ttl) {
|
|
172
|
+
// Cache is fresh, use it
|
|
173
|
+
logger.debug(`[integration-store] Using fresh cache for ${id} (age: ${Math.round(age / 1000)}s, TTL: ${Math.round(ttl / 1000)}s)`);
|
|
174
|
+
return { _gronPath: cachedPath };
|
|
175
|
+
}
|
|
176
|
+
// Cache is stale, fetch fresh data synchronously (blocking)
|
|
177
|
+
if (age !== null) {
|
|
178
|
+
logger.info(`[integration-store] Cache for ${id} is stale (age: ${Math.round(age / 1000)}s, TTL: ${Math.round(ttl / 1000)}s), refreshing...`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
134
181
|
// Start new fetch and track it
|
|
135
|
-
const fetchPromise = this._fetchMetadata(id, editorClient);
|
|
182
|
+
const fetchPromise = this._fetchMetadata(id, editorClient, cachedPath);
|
|
136
183
|
this.pendingMetadataFetches.set(id, fetchPromise);
|
|
137
184
|
try {
|
|
138
185
|
const result = await fetchPromise;
|
|
@@ -143,7 +190,7 @@ let IntegrationStore = (() => {
|
|
|
143
190
|
this.pendingMetadataFetches.delete(id);
|
|
144
191
|
}
|
|
145
192
|
}
|
|
146
|
-
async _fetchMetadata(id, editorClient) {
|
|
193
|
+
async _fetchMetadata(id, editorClient, staleCache) {
|
|
147
194
|
const header = this.getHeader(id);
|
|
148
195
|
if (!header) {
|
|
149
196
|
getLogger().warn(`[integration-store] No integration found for id ${id}`);
|
|
@@ -151,51 +198,80 @@ let IntegrationStore = (() => {
|
|
|
151
198
|
}
|
|
152
199
|
if (!editorClient) {
|
|
153
200
|
getLogger().warn(`[integration-store] No editor client provided, cannot fetch metadata for integration ${id}`);
|
|
201
|
+
// If we have stale cache and no editor client, return stale cache
|
|
202
|
+
if (staleCache) {
|
|
203
|
+
getLogger().info(`[integration-store] Returning stale cache for ${id} (no editor client)`);
|
|
204
|
+
return { _gronPath: staleCache };
|
|
205
|
+
}
|
|
154
206
|
return undefined;
|
|
155
207
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if (header.plugin.openApiSpecRef) {
|
|
166
|
-
// OpenAPI integration - get the spec
|
|
167
|
-
const spec = await this.getOpenApiSpec(header.id, editorClient);
|
|
168
|
-
const metadata = { openApiSpec: spec };
|
|
169
|
-
// Write cache and wait for it to complete
|
|
170
|
-
try {
|
|
171
|
-
await this.metadataStorage.saveMetadata(id, metadata);
|
|
172
|
-
// Return with gron path after successful cache write
|
|
173
|
-
const gronPath = await this.metadataStorage.loadMetadata(id);
|
|
174
|
-
if (gronPath) {
|
|
175
|
-
return { _gronPath: gronPath };
|
|
208
|
+
try {
|
|
209
|
+
// Check if we have it cached in filesystem
|
|
210
|
+
// (only check if no staleCache was passed - if staleCache exists, we're refreshing)
|
|
211
|
+
if (!staleCache) {
|
|
212
|
+
const cachedPath = await this.metadataStorage.loadMetadata(id);
|
|
213
|
+
if (cachedPath) {
|
|
214
|
+
// Cache hit! Return metadata with special gron path marker
|
|
215
|
+
getLogger().debug(`[integration-store] Using filesystem cache for ${id}`);
|
|
216
|
+
return { _gronPath: cachedPath };
|
|
176
217
|
}
|
|
177
218
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
219
|
+
// Cache miss or refresh - fetch from server
|
|
220
|
+
getLogger().info(`[integration-store] Fetching metadata for ${id}`);
|
|
221
|
+
if (header.plugin.openApiSpecRef) {
|
|
222
|
+
// OpenAPI integration - get the spec
|
|
223
|
+
const spec = await this.getOpenApiSpec(header.id, editorClient);
|
|
224
|
+
const metadata = { openApiSpec: spec };
|
|
225
|
+
// Write cache and wait for it to complete
|
|
226
|
+
try {
|
|
227
|
+
await this.metadataStorage.saveMetadata(id, metadata);
|
|
228
|
+
// Return with gron path after successful cache write
|
|
229
|
+
const gronPath = await this.metadataStorage.loadMetadata(id);
|
|
230
|
+
if (gronPath) {
|
|
231
|
+
return { _gronPath: gronPath };
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
getLogger().error(`[integration-store] Failed to cache metadata for ${id}: ${err.message}`);
|
|
236
|
+
// Continue anyway - return the metadata even if caching fails
|
|
237
|
+
}
|
|
238
|
+
return metadata;
|
|
239
|
+
}
|
|
240
|
+
// Regular database integration - get metadata
|
|
241
|
+
const integration = await editorClient?.call.aiGetIntegration({
|
|
242
|
+
integrationId: id,
|
|
243
|
+
});
|
|
244
|
+
// Check if the integration has an openApiSpecRef at the top level
|
|
245
|
+
// This is returned by the UI when a REST API integration has a custom OpenAPI spec
|
|
246
|
+
if (integration.openApiSpecRef) {
|
|
247
|
+
const spec = await this.getOpenApiSpec(header.id, editorClient, integration.openApiSpecRef);
|
|
248
|
+
const metadata = {
|
|
249
|
+
openApiSpec: spec,
|
|
250
|
+
openApiSpecRef: integration.openApiSpecRef,
|
|
251
|
+
};
|
|
252
|
+
// Write cache and wait for it to complete
|
|
253
|
+
try {
|
|
254
|
+
await this.metadataStorage.saveMetadata(id, metadata);
|
|
255
|
+
// Return with gron path after successful cache write
|
|
256
|
+
const gronPath = await this.metadataStorage.loadMetadata(id);
|
|
257
|
+
if (gronPath) {
|
|
258
|
+
return { _gronPath: gronPath };
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
getLogger().error(`[integration-store] Failed to cache metadata for ${id}: ${err.message}`);
|
|
263
|
+
// Continue anyway - return the metadata even if caching fails
|
|
264
|
+
}
|
|
265
|
+
return metadata;
|
|
266
|
+
}
|
|
267
|
+
if (Object.keys(integration.metadata).length === 0) {
|
|
268
|
+
getLogger().warn(`[integration-store] No metadata found for integration ${id}`);
|
|
269
|
+
return undefined;
|
|
181
270
|
}
|
|
182
|
-
return metadata;
|
|
183
|
-
}
|
|
184
|
-
// Regular database integration - get metadata
|
|
185
|
-
const integration = await editorClient?.call.aiGetIntegration({
|
|
186
|
-
integrationId: id,
|
|
187
|
-
});
|
|
188
|
-
// Check if the integration has an openApiSpecRef at the top level
|
|
189
|
-
// This is returned by the UI when a REST API integration has a custom OpenAPI spec
|
|
190
|
-
if (integration.openApiSpecRef) {
|
|
191
|
-
const spec = await this.getOpenApiSpec(header.id, editorClient, integration.openApiSpecRef);
|
|
192
|
-
const metadata = {
|
|
193
|
-
openApiSpec: spec,
|
|
194
|
-
openApiSpecRef: integration.openApiSpecRef,
|
|
195
|
-
};
|
|
196
271
|
// Write cache and wait for it to complete
|
|
197
272
|
try {
|
|
198
|
-
await this.metadataStorage.saveMetadata(id, metadata);
|
|
273
|
+
await this.metadataStorage.saveMetadata(id, integration.metadata);
|
|
274
|
+
getLogger().info(`[integration-store] Successfully cached metadata for ${id}`);
|
|
199
275
|
// Return with gron path after successful cache write
|
|
200
276
|
const gronPath = await this.metadataStorage.loadMetadata(id);
|
|
201
277
|
if (gronPath) {
|
|
@@ -206,34 +282,25 @@ let IntegrationStore = (() => {
|
|
|
206
282
|
getLogger().error(`[integration-store] Failed to cache metadata for ${id}: ${err.message}`);
|
|
207
283
|
// Continue anyway - return the metadata even if caching fails
|
|
208
284
|
}
|
|
209
|
-
return metadata;
|
|
285
|
+
return integration.metadata;
|
|
210
286
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
try {
|
|
217
|
-
await this.metadataStorage.saveMetadata(id, integration.metadata);
|
|
218
|
-
getLogger().info(`[integration-store] Successfully cached metadata for ${id}`);
|
|
219
|
-
// Return with gron path after successful cache write
|
|
220
|
-
const gronPath = await this.metadataStorage.loadMetadata(id);
|
|
221
|
-
if (gronPath) {
|
|
222
|
-
return { _gronPath: gronPath };
|
|
287
|
+
catch (fetchError) {
|
|
288
|
+
// Fetch failed - fall back to stale cache if available
|
|
289
|
+
if (staleCache) {
|
|
290
|
+
getLogger().warn(`[integration-store] Failed to fetch fresh metadata for ${id}: ${fetchError.message}. Falling back to stale cache.`);
|
|
291
|
+
return { _gronPath: staleCache };
|
|
223
292
|
}
|
|
293
|
+
// No stale cache available - propagate error
|
|
294
|
+
getLogger().error(`[integration-store] Failed to fetch metadata for ${id} and no stale cache available: ${fetchError.message}`);
|
|
295
|
+
throw fetchError;
|
|
224
296
|
}
|
|
225
|
-
catch (err) {
|
|
226
|
-
getLogger().error(`[integration-store] Failed to cache metadata for ${id}: ${err.message}`);
|
|
227
|
-
// Continue anyway - return the metadata even if caching fails
|
|
228
|
-
}
|
|
229
|
-
return integration.metadata;
|
|
230
297
|
}
|
|
231
|
-
async getIntegration(id, editorClient) {
|
|
298
|
+
async getIntegration(id, editorClient, options) {
|
|
232
299
|
const header = this.getHeader(id);
|
|
233
300
|
if (!header) {
|
|
234
301
|
return undefined;
|
|
235
302
|
}
|
|
236
|
-
const metadata = await this.getMetadata(id, editorClient);
|
|
303
|
+
const metadata = await this.getMetadata(id, editorClient, options);
|
|
237
304
|
return {
|
|
238
305
|
...header,
|
|
239
306
|
metadata: metadata || {},
|
|
@@ -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"}
|