@superblocksteam/vite-plugin-file-sync 2.0.59-next.2 → 2.0.59-next.4
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
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stream lifecycle management utilities.
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for wrapping streams with lifecycle hooks, particularly
|
|
5
|
+
* `onFinally` which runs after stream consumption completes.
|
|
6
|
+
*
|
|
7
|
+
* Key challenge: The `streamText()` function returns immediately, but the
|
|
8
|
+
* streams are consumed asynchronously later. We need to track when consumption
|
|
9
|
+
* actually completes to run cleanup logic.
|
|
10
|
+
*
|
|
11
|
+
* Solution: Wrap streams with `TransformStream` that tracks consumption via
|
|
12
|
+
* the `flush()` method, which runs when the input stream closes.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Wraps a StreamTextResult to add onFinally lifecycle hook.
|
|
16
|
+
*
|
|
17
|
+
* The onFinally callback runs after stream consumption completes, handling:
|
|
18
|
+
* - Normal completion (stream exhausted)
|
|
19
|
+
* - Errors during consumption
|
|
20
|
+
* - Stream cancellation/abandonment
|
|
21
|
+
*
|
|
22
|
+
* Guarantees:
|
|
23
|
+
* - Runs exactly once, even if multiple stream accessors are used
|
|
24
|
+
* - Idempotent (safe to call multiple times)
|
|
25
|
+
* - Works with all consumption patterns (iteration, promises, piping)
|
|
26
|
+
*
|
|
27
|
+
* @param result - The stream result to wrap
|
|
28
|
+
* @param onFinally - Callback to run after consumption
|
|
29
|
+
* @returns Wrapped result with lifecycle tracking
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const result = await streamText({ model, messages });
|
|
34
|
+
* const wrapped = withStreamLifecycle(result, async () => {
|
|
35
|
+
* console.log('Stream consumed!');
|
|
36
|
+
* await cleanup();
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* for await (const text of wrapped.textStream) {
|
|
40
|
+
* console.log(text);
|
|
41
|
+
* }
|
|
42
|
+
* // onFinally runs here ^
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export function withStreamLifecycle(result, onFinally) {
|
|
46
|
+
// Track whether finalization has run
|
|
47
|
+
let finalized = false;
|
|
48
|
+
/**
|
|
49
|
+
* Ensures onFinally runs exactly once.
|
|
50
|
+
* Safe to call multiple times (idempotent).
|
|
51
|
+
*/
|
|
52
|
+
const ensureFinally = async () => {
|
|
53
|
+
if (finalized)
|
|
54
|
+
return;
|
|
55
|
+
finalized = true;
|
|
56
|
+
try {
|
|
57
|
+
await onFinally();
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
// Log but don't throw - we're in cleanup, don't break the stream
|
|
61
|
+
console.error("[streamLifecycle] Error in onFinally:", error);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
// Wrap textStream to track consumption
|
|
65
|
+
const wrappedTextStream = wrapAsyncIterable(result.textStream, ensureFinally);
|
|
66
|
+
// Wrap fullStream to track consumption
|
|
67
|
+
const wrappedFullStream = wrapAsyncIterable(result.fullStream, ensureFinally);
|
|
68
|
+
// Return result with wrapped streams
|
|
69
|
+
return {
|
|
70
|
+
...result,
|
|
71
|
+
textStream: wrappedTextStream,
|
|
72
|
+
fullStream: wrappedFullStream,
|
|
73
|
+
// Note: response promise doesn't need wrapping - it resolves during
|
|
74
|
+
// generation, not after consumption. onFinally needs to wait for
|
|
75
|
+
// stream consumption, which happens via the stream wrappers above.
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Wraps an async iterable with a finalization callback.
|
|
80
|
+
*
|
|
81
|
+
* Uses TransformStream to intercept the stream lifecycle:
|
|
82
|
+
* - `transform()`: Passes chunks through unchanged
|
|
83
|
+
* - `flush()`: Called when input stream closes (after all chunks processed)
|
|
84
|
+
* - `cancel()`: Called if stream is cancelled/abandoned
|
|
85
|
+
*
|
|
86
|
+
* The finalization callback runs in both flush() and cancel() to ensure
|
|
87
|
+
* cleanup happens whether the stream completes normally or is abandoned.
|
|
88
|
+
*
|
|
89
|
+
* @param source - The async iterable to wrap
|
|
90
|
+
* @param onFinalize - Callback to run after consumption
|
|
91
|
+
* @returns Wrapped async iterable
|
|
92
|
+
*/
|
|
93
|
+
function wrapAsyncIterable(source, onFinalize) {
|
|
94
|
+
// Convert async iterable to ReadableStream if needed
|
|
95
|
+
let sourceStream;
|
|
96
|
+
if (source instanceof ReadableStream) {
|
|
97
|
+
sourceStream = source;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Manually convert async iterable to ReadableStream
|
|
101
|
+
sourceStream = new ReadableStream({
|
|
102
|
+
async start(controller) {
|
|
103
|
+
try {
|
|
104
|
+
for await (const chunk of source) {
|
|
105
|
+
controller.enqueue(chunk);
|
|
106
|
+
}
|
|
107
|
+
controller.close();
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
controller.error(error);
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
// Create transform stream that tracks lifecycle
|
|
116
|
+
const lifecycleTransform = new TransformStream({
|
|
117
|
+
// Pass through all chunks unchanged
|
|
118
|
+
transform(chunk, controller) {
|
|
119
|
+
controller.enqueue(chunk);
|
|
120
|
+
},
|
|
121
|
+
// Called when input stream closes (after all chunks processed)
|
|
122
|
+
async flush() {
|
|
123
|
+
await onFinalize();
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
// Pipe source through lifecycle tracker
|
|
127
|
+
const wrappedStream = sourceStream.pipeThrough(lifecycleTransform);
|
|
128
|
+
// Return as AsyncIterableStream (has both stream and iterable interfaces)
|
|
129
|
+
return wrappedStream;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=stream-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-lifecycle.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/interaction/stream-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,mBAAmB,CAGjC,MAA+B,EAC/B,SAAqC;IAErC,qCAAqC;IACrC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB;;;OAGG;IACH,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,SAAS;YAAE,OAAO;QACtB,SAAS,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC;YACH,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iEAAiE;YACjE,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC;IAEF,uCAAuC;IACvC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE9E,uCAAuC;IACvC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE9E,qCAAqC;IACrC,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,iBAAiB;QAC7B,oEAAoE;QACpE,iEAAiE;QACjE,mEAAmE;KACpE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,iBAAiB,CACxB,MAAwB,EACxB,UAA+B;IAE/B,qDAAqD;IACrD,IAAI,YAA+B,CAAC;IACpC,IAAI,MAAM,YAAY,cAAc,EAAE,CAAC;QACrC,YAAY,GAAG,MAAM,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,oDAAoD;QACpD,YAAY,GAAG,IAAI,cAAc,CAAI;YACnC,KAAK,CAAC,KAAK,CAAC,UAAU;gBACpB,IAAI,CAAC;oBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBACjC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;oBACD,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,gDAAgD;IAChD,MAAM,kBAAkB,GAAG,IAAI,eAAe,CAAO;QACnD,oCAAoC;QACpC,SAAS,CAAC,KAAK,EAAE,UAAU;YACzB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,+DAA+D;QAC/D,KAAK,CAAC,KAAK;YACT,MAAM,UAAU,EAAE,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;IAEH,wCAAwC;IACxC,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEnE,0EAA0E;IAC1E,OAAO,aAAuC,CAAC;AACjD,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { type RetryOptions } from "./middleware/retry.js";
|
|
2
1
|
import type { LLMProvider, LLMProviderSettings } from "./types.js";
|
|
3
2
|
import type { LLMProviderConfig } from "@superblocksteam/library-shared/types";
|
|
4
|
-
export declare const createLLMProvider: (settings: LLMProviderSettings, getJwt?: () => string | undefined, llmConfig?: LLMProviderConfig
|
|
3
|
+
export declare const createLLMProvider: (settings: LLMProviderSettings, getJwt?: () => string | undefined, llmConfig?: LLMProviderConfig) => LLMProvider;
|
|
5
4
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,eAAO,MAAM,iBAAiB,GAC5B,UAAU,mBAAmB,EAC7B,SAAS,MAAM,MAAM,GAAG,SAAS,EACjC,YAAY,iBAAiB,KAC5B,WAuDF,CAAC"}
|
|
@@ -2,18 +2,15 @@ import { customProvider, wrapLanguageModel } from "ai";
|
|
|
2
2
|
import { getLogger } from "../../util/logger.js";
|
|
3
3
|
import { anthropicImpl } from "./impl/anthropic.js";
|
|
4
4
|
import { clarkImpl } from "./impl/clark.js";
|
|
5
|
-
import { retryMiddleware } from "./middleware/retry.js";
|
|
6
5
|
import { jwtMiddleware, modelFromClassification } from "./utils.js";
|
|
7
|
-
export const createLLMProvider = (settings, getJwt, llmConfig
|
|
6
|
+
export const createLLMProvider = (settings, getJwt, llmConfig) => {
|
|
8
7
|
const providerType = llmConfig?.provider || "bedrock";
|
|
9
8
|
const wrapDefaults = (model) => wrapLanguageModel({
|
|
10
9
|
model,
|
|
11
10
|
middleware: [
|
|
12
11
|
jwtMiddleware(getJwt),
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
...retryOptions,
|
|
16
|
-
}, getLogger()),
|
|
12
|
+
// Note: Retry is now handled at the StreamText level via createStreamRetryMiddleware
|
|
13
|
+
// to ensure fresh Vercel SDK state and correct message sequences on retry
|
|
17
14
|
],
|
|
18
15
|
});
|
|
19
16
|
getLogger().info(`Creating LLM provider: type=${providerType}, config=${JSON.stringify(llmConfig || {})}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAUpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAA6B,EAC7B,MAAiC,EACjC,SAA6B,EAChB,EAAE;IACf,MAAM,YAAY,GAAG,SAAS,EAAE,QAAQ,IAAI,SAAS,CAAC;IAEtD,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAE,EAAE,CAC9C,iBAAiB,CAAC;QAChB,KAAK;QACL,UAAU,EAAE;YACV,aAAa,CAAC,MAAM,CAAC;YACrB,qFAAqF;YACrF,0EAA0E;SAC3E;KACF,CAAC,CAAC;IACL,SAAS,EAAE,CAAC,IAAI,CACd,+BAA+B,YAAY,YAAY,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CACzF,CAAC;IACF,IAAI,QAAQ,CAAC;IACb,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,QAAQ,GAAG,SAAS,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,QAAQ,GAAG,SAAS,CAAC;YACrB,MAAM;QACR,KAAK,WAAW,CAAC;QACjB;YACE,QAAQ,GAAG,aAAa,CAAC;YACzB,MAAM;IACV,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEhC,MAAM,cAAc,GAAkB;QACpC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;QACjD,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/C,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,oBAAoB,EAAE,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC7D,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACvD,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACzD,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;KACxD,CAAC;IAEF,MAAM,WAAW,GAAG,cAAc,CAAC;QACjC,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,EAAE;QACxC,OAAO,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,YAAY;QACZ,sBAAsB,EAAE,CAAC,cAAc,EAAE,EAAE,CACzC,uBAAuB,CAAC,YAAY,EAAE,cAAc,CAAC;KACxD,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { streamText, type ToolSet } from "ai";
|
|
2
1
|
import { type Logger } from "../../util/logger.js";
|
|
2
|
+
import { type StreamTextOptions } from "../llm/interaction/index.js";
|
|
3
3
|
import { LLMObsTracer } from "./tracer.js";
|
|
4
4
|
import type { LLMObsSpan } from "./types.js";
|
|
5
|
+
import type { Tool } from "../agent/tools2/types.js";
|
|
5
6
|
export declare function traceWorkflow<T>(name: string, operation: (span: any) => Promise<T>, tags?: Record<string, string | boolean>, llmobs?: LLMObsTracer): Promise<T>;
|
|
6
7
|
export declare function traceTask<T>(name: string, operation: (span: any) => Promise<T>, tags?: Record<string, string | boolean>, llmobs?: LLMObsTracer): Promise<T>;
|
|
7
8
|
export declare function traceLLM<T>(name: string, modelName: string, modelProvider: string, operation: (span: LLMObsSpan) => Promise<T>, tags?: Record<string, string | boolean>, llmobs?: LLMObsTracer): Promise<T>;
|
|
@@ -16,13 +17,11 @@ export declare function getCommonTraceTags(jwt: string | undefined, applicationI
|
|
|
16
17
|
* and chaos monkey error injection is handled at the fetch level. This function only applies
|
|
17
18
|
* LLMObs tracing.
|
|
18
19
|
*
|
|
19
|
-
* @param clark - Clark state machine instance
|
|
20
|
-
* @param services - Clark state handler parameters
|
|
21
20
|
* @param params - Parameters to pass to streamText
|
|
21
|
+
* @param tracer - Optional LLMObs tracer
|
|
22
|
+
* @param logger - Optional logger
|
|
23
|
+
*
|
|
24
|
+
* @deprecated use the LLMClient with LLMObs middleware instead (Clark.streamText in most cases)
|
|
22
25
|
*/
|
|
23
|
-
export declare function tracedStreamText<T extends
|
|
24
|
-
export declare const traceToolSet: <T extends ToolSet>(toolset: T, llmobs?: LLMObsTracer, hooks?: {
|
|
25
|
-
beforeExecute?: (name: string) => void;
|
|
26
|
-
afterExecute?: (name: string, span: LLMObsSpan) => void;
|
|
27
|
-
}) => T;
|
|
26
|
+
export declare function tracedStreamText<T extends Record<string, Tool>>(params: StreamTextOptions<T>, tracer?: LLMObsTracer, logger?: Logger): Promise<import("../llm/interaction/provider.js").StreamTextResult<T>>;
|
|
28
27
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llmobs/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llmobs/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGrD,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACvC,MAAM,GAAE,YAAoC,GAC3C,OAAO,CAAC,CAAC,CAAC,CAaZ;AAGD,wBAAgB,SAAS,CAAC,CAAC,EACzB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACvC,MAAM,GAAE,YAAoC,GAC3C,OAAO,CAAC,CAAC,CAAC,CAaZ;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EAC3C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACvC,MAAM,GAAE,YAAoC,GAC3C,OAAO,CAAC,CAAC,CAAC,CAeZ;AAGD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxB;AAGD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAM,GACpD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAclC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC7D,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,MAAM,GAAE,YAAoC,EAC5C,MAAM,GAAE,MAAoB,yEAQ7B"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { streamText } from "ai";
|
|
2
1
|
import { getLogger } from "../../util/logger.js";
|
|
2
|
+
import { applyMiddleware } from "../llm/interaction/compose.js";
|
|
3
|
+
import { createLLMObsMiddleware, VercelStreamTextAdapter, } from "../llm/interaction/index.js";
|
|
3
4
|
import { parseJwt } from "../util/parse-jwt.js";
|
|
4
|
-
import { safeJsonStringify } from "../util/safe-stringify.js";
|
|
5
|
-
import { LLMObsStreamTextMiddleware } from "./middleware/stream-text.js";
|
|
6
5
|
import { LLMObsTracer } from "./tracer.js";
|
|
7
6
|
// Helper function for workflow tracing with common patterns
|
|
8
7
|
export function traceWorkflow(name, operation, tags, llmobs = LLMObsTracer.instance) {
|
|
@@ -77,54 +76,15 @@ export function getCommonTraceTags(jwt, applicationId, organizationId, additiona
|
|
|
77
76
|
* and chaos monkey error injection is handled at the fetch level. This function only applies
|
|
78
77
|
* LLMObs tracing.
|
|
79
78
|
*
|
|
80
|
-
* @param clark - Clark state machine instance
|
|
81
|
-
* @param services - Clark state handler parameters
|
|
82
79
|
* @param params - Parameters to pass to streamText
|
|
80
|
+
* @param tracer - Optional LLMObs tracer
|
|
81
|
+
* @param logger - Optional logger
|
|
82
|
+
*
|
|
83
|
+
* @deprecated use the LLMClient with LLMObs middleware instead (Clark.streamText in most cases)
|
|
83
84
|
*/
|
|
84
85
|
export function tracedStreamText(params, tracer = LLMObsTracer.instance, logger = getLogger()) {
|
|
85
|
-
// Disable built-in retries - we handle retries at the LanguageModelV2 middleware level
|
|
86
|
-
params = {
|
|
87
|
-
...params,
|
|
88
|
-
maxRetries: 0,
|
|
89
|
-
};
|
|
90
86
|
// Apply LLMObs tracing middleware
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
return tracedStreamText(params);
|
|
87
|
+
const traced = applyMiddleware(new VercelStreamTextAdapter(), createLLMObsMiddleware({ tracer, logger }));
|
|
88
|
+
return traced.streamText(params);
|
|
94
89
|
}
|
|
95
|
-
export const traceToolSet = (toolset, llmobs = LLMObsTracer.instance, hooks) => {
|
|
96
|
-
const tracedToolset = {};
|
|
97
|
-
for (const [name, tool] of Object.entries(toolset)) {
|
|
98
|
-
tracedToolset[name] = {
|
|
99
|
-
...tool,
|
|
100
|
-
execute: async (input, options) => {
|
|
101
|
-
hooks?.beforeExecute?.(name);
|
|
102
|
-
return await llmobs.trace({
|
|
103
|
-
kind: "tool",
|
|
104
|
-
name: `tool.${name}`,
|
|
105
|
-
}, async (span) => {
|
|
106
|
-
if (!tool.execute) {
|
|
107
|
-
throw new Error(`Tool ${name} has no execute method`);
|
|
108
|
-
}
|
|
109
|
-
const result = await tool.execute(input, options);
|
|
110
|
-
hooks?.afterExecute?.(name, span);
|
|
111
|
-
const metadata = {
|
|
112
|
-
toolCallid: options?.toolCallId,
|
|
113
|
-
...Object.fromEntries(Object.entries(tool).map(([key, value]) => [
|
|
114
|
-
key,
|
|
115
|
-
safeJsonStringify(value),
|
|
116
|
-
])),
|
|
117
|
-
};
|
|
118
|
-
llmobs.annotate(span, {
|
|
119
|
-
inputData: safeJsonStringify(input),
|
|
120
|
-
outputData: safeJsonStringify(result),
|
|
121
|
-
metadata,
|
|
122
|
-
});
|
|
123
|
-
return result;
|
|
124
|
-
});
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
return tracedToolset;
|
|
129
|
-
};
|
|
130
90
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/ai-service/llmobs/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/ai-service/llmobs/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { type Logger } from "../../../util/logger.js";
|
|
2
2
|
import { LLMObsTracer, type LLMObsSpan } from "../index.js";
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
type
|
|
6
|
-
readonly steps: StepResult<T>[];
|
|
7
|
-
};
|
|
8
|
-
type StreamTextOnAbortCallback<T extends ToolSet> = (event: StreamAbortEvent<T>) => PromiseLike<void> | void;
|
|
3
|
+
import type { Tool } from "../../agent/tools2/types.js";
|
|
4
|
+
import type { StepParameters, StreamChunk, FinalResult } from "../../llm/interaction/provider.js";
|
|
5
|
+
import type { ToolSet, LanguageModel, StepResult, AsyncIterableStream } from "ai";
|
|
9
6
|
type StreamSegment = {
|
|
10
7
|
type: "text" | "reasoning" | "tool-call" | "tool-result" | "tool-input" | "raw" | "thinking" | "source";
|
|
11
8
|
span: LLMObsSpan;
|
|
@@ -25,22 +22,22 @@ export declare class LLMObsStreamTextMiddleware {
|
|
|
25
22
|
llmobs: LLMObsTracer;
|
|
26
23
|
logger: Logger;
|
|
27
24
|
private errorLogged;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
25
|
+
constructor(model: LanguageModel, tools?: Record<string, Tool>, llmobs?: LLMObsTracer, logger?: Logger);
|
|
26
|
+
/**
|
|
27
|
+
* Handles stream errors by logging and finishing spans.
|
|
28
|
+
* Public so it can be called from stream wrappers.
|
|
29
|
+
*/
|
|
30
|
+
handleStreamError(error: unknown): void;
|
|
31
|
+
wrapTools<TOOLS extends Record<string, Tool>>(tools: TOOLS): TOOLS;
|
|
32
|
+
prepareStep(step: StepParameters, model: LanguageModel, next?: (step: StepParameters) => Promise<StepParameters> | StepParameters): Promise<StepParameters>;
|
|
33
|
+
onChunk(chunk: StreamChunk, next?: (event: {
|
|
34
|
+
chunk: StreamChunk;
|
|
35
|
+
}) => Promise<void> | void): Promise<void>;
|
|
36
|
+
onStepFinish(step: StepResult<any>, next?: (step: StepResult<any>) => Promise<void> | void): Promise<void>;
|
|
37
|
+
onError(error: Error, next?: (error: Error) => Promise<void> | void): Promise<void>;
|
|
38
|
+
onAbort(next?: () => Promise<void> | void): Promise<void>;
|
|
39
|
+
onFinish(result: FinalResult, next?: (result: FinalResult) => Promise<void> | void): Promise<void>;
|
|
42
40
|
onFinally(): Promise<void>;
|
|
43
|
-
private handleStreamError;
|
|
44
41
|
private handleToolExecuteStart;
|
|
45
42
|
private logStreamError;
|
|
46
43
|
private ensureSegment;
|
|
@@ -56,5 +53,6 @@ export declare class LLMObsStreamTextMiddleware {
|
|
|
56
53
|
private finishFullSpan;
|
|
57
54
|
private setModel;
|
|
58
55
|
}
|
|
56
|
+
export declare function wrapStream<T>(source: AsyncIterable<T>, onError: (err: unknown) => Promise<void>, onFinally: () => Promise<void>): AsyncIterableStream<T>;
|
|
59
57
|
export {};
|
|
60
58
|
//# sourceMappingURL=stream-text.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-text.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llmobs/middleware/stream-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"stream-text.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llmobs/middleware/stream-text.ts"],"names":[],"mappings":"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"}
|