@superblocksteam/vite-plugin-file-sync 2.0.70 → 2.0.71-next.1
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.js +1 -1
- package/dist/ai-service/agent/subagents/types.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/types.js +1 -0
- package/dist/ai-service/agent/subagents/types.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 +5 -0
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js +2 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/sample-json.d.ts +2 -0
- package/dist/ai-service/agent/tools/apis/sample-json.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/sample-json.js +16 -0
- package/dist/ai-service/agent/tools/apis/sample-json.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +4 -4
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +16 -5
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +35 -0
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.js +90 -15
- package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
- package/dist/ai-service/agent/tools/build-validate-icons.d.ts +3 -18
- package/dist/ai-service/agent/tools/build-validate-icons.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-validate-icons.js +12 -50
- package/dist/ai-service/agent/tools/build-validate-icons.js.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +1 -1
- package/dist/ai-service/agent/tools/shared-helpers.d.ts +0 -35
- package/dist/ai-service/agent/tools/shared-helpers.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/shared-helpers.js +0 -89
- package/dist/ai-service/agent/tools/shared-helpers.js.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts +1 -23
- package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.js +3 -68
- package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +16 -5
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/bash.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/bash.js +2 -1
- package/dist/ai-service/agent/tools2/tools/bash.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 +10 -2
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.js +2 -1
- package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ls.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ls.js +3 -1
- package/dist/ai-service/agent/tools2/tools/ls.js.map +1 -1
- package/dist/ai-service/agent/tools2/types.d.ts +2 -1
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js +31 -11
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +5 -10
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/clark-provider/clark-chat-settings.d.ts +2 -1
- package/dist/ai-service/clark-provider/clark-chat-settings.d.ts.map +1 -1
- package/dist/ai-service/clark-provider/clark-chat-settings.js +1 -0
- package/dist/ai-service/clark-provider/clark-chat-settings.js.map +1 -1
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +7 -4
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +1 -0
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +1 -0
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts +14 -117
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +57 -149
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/error.d.ts +7 -2
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +17 -17
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/impl/anthropic.d.ts.map +1 -1
- package/dist/ai-service/llm/impl/anthropic.js +2 -1
- package/dist/ai-service/llm/impl/anthropic.js.map +1 -1
- package/dist/ai-service/llm/impl/clark.d.ts.map +1 -1
- package/dist/ai-service/llm/impl/clark.js +2 -1
- package/dist/ai-service/llm/impl/clark.js.map +1 -1
- package/dist/ai-service/llm/interaction/index.d.ts +0 -64
- package/dist/ai-service/llm/interaction/index.d.ts.map +1 -1
- package/dist/ai-service/llm/interaction/index.js +0 -65
- package/dist/ai-service/llm/interaction/index.js.map +1 -1
- package/dist/ai-service/llm/provider.d.ts.map +1 -1
- package/dist/ai-service/llm/provider.js +2 -6
- package/dist/ai-service/llm/provider.js.map +1 -1
- package/dist/ai-service/llm/stream/config.d.ts +56 -0
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/config.js +41 -0
- package/dist/ai-service/llm/stream/config.js.map +1 -0
- package/dist/ai-service/llm/stream/errors.d.ts +16 -0
- package/dist/ai-service/llm/stream/errors.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/errors.js +68 -0
- package/dist/ai-service/llm/stream/errors.js.map +1 -0
- package/dist/ai-service/llm/stream/event-bus.d.ts +68 -0
- package/dist/ai-service/llm/stream/event-bus.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/event-bus.js +51 -0
- package/dist/ai-service/llm/stream/event-bus.js.map +1 -0
- package/dist/ai-service/llm/stream/index.d.ts +49 -0
- package/dist/ai-service/llm/stream/index.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/index.js +46 -0
- package/dist/ai-service/llm/stream/index.js.map +1 -0
- package/dist/ai-service/llm/stream/managed-stream.d.ts +25 -0
- package/dist/ai-service/llm/stream/managed-stream.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/managed-stream.js +68 -0
- package/dist/ai-service/llm/stream/managed-stream.js.map +1 -0
- package/dist/ai-service/llm/stream/observer.d.ts +34 -0
- package/dist/ai-service/llm/stream/observer.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/observer.js +2 -0
- package/dist/ai-service/llm/stream/observer.js.map +1 -0
- package/dist/ai-service/llm/stream/observers/context.d.ts +40 -0
- package/dist/ai-service/llm/stream/observers/context.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/observers/context.js +55 -0
- package/dist/ai-service/llm/stream/observers/context.js.map +1 -0
- package/dist/ai-service/llm/stream/observers/index.d.ts +8 -0
- package/dist/ai-service/llm/stream/observers/index.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/observers/index.js +8 -0
- package/dist/ai-service/llm/stream/observers/index.js.map +1 -0
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts +78 -0
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/observers/llmobs.js +504 -0
- package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -0
- package/dist/ai-service/llm/stream/observers/logging.d.ts +46 -0
- package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/observers/logging.js +296 -0
- package/dist/ai-service/llm/stream/observers/logging.js.map +1 -0
- package/dist/ai-service/llm/stream/observers/retry-notification.d.ts +17 -0
- package/dist/ai-service/llm/stream/observers/retry-notification.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/observers/retry-notification.js +36 -0
- package/dist/ai-service/llm/stream/observers/retry-notification.js.map +1 -0
- package/dist/ai-service/llm/stream/orchestrator.d.ts +73 -0
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/orchestrator.js +285 -0
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -0
- package/dist/ai-service/llm/stream/retry-engine.d.ts +58 -0
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/retry-engine.js +151 -0
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -0
- package/dist/ai-service/llm/stream/session.d.ts +58 -0
- package/dist/ai-service/llm/stream/session.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/session.js +116 -0
- package/dist/ai-service/llm/stream/session.js.map +1 -0
- package/dist/ai-service/llm/stream/tests/helpers/mock-provider.d.ts +129 -0
- package/dist/ai-service/llm/stream/tests/helpers/mock-provider.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/tests/helpers/mock-provider.js +508 -0
- package/dist/ai-service/llm/stream/tests/helpers/mock-provider.js.map +1 -0
- package/dist/ai-service/llm/stream/types.d.ts +15 -0
- package/dist/ai-service/llm/stream/types.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/types.js +2 -0
- package/dist/ai-service/llm/stream/types.js.map +1 -0
- package/dist/ai-service/llm/types.d.ts +1 -1
- package/dist/ai-service/llm/types.d.ts.map +1 -1
- package/dist/ai-service/llmobs/helpers.d.ts +0 -19
- package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
- package/dist/ai-service/llmobs/helpers.js +0 -23
- package/dist/ai-service/llmobs/helpers.js.map +1 -1
- package/dist/ai-service/llmobs/tracer.d.ts +1 -0
- package/dist/ai-service/llmobs/tracer.d.ts.map +1 -1
- package/dist/ai-service/llmobs/tracer.js +1 -0
- package/dist/ai-service/llmobs/tracer.js.map +1 -1
- package/dist/ai-service/llmobs/types.d.ts +2 -0
- package/dist/ai-service/llmobs/types.d.ts.map +1 -1
- package/dist/ai-service/llmobs/utils.d.ts.map +1 -1
- package/dist/ai-service/llmobs/utils.js +8 -0
- package/dist/ai-service/llmobs/utils.js.map +1 -1
- package/dist/ai-service/mcp/playwright-server.d.ts.map +1 -1
- package/dist/ai-service/mcp/playwright-server.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +1 -3
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +6 -28
- 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 +9 -11
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.js +3 -2
- package/dist/ai-service/state-machine/handlers/awaiting-user.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 +18 -4
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.d.ts +5 -4
- package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.js +25 -25
- package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
- package/dist/ai-service/types.d.ts +3 -3
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js +10 -10
- package/dist/ai-service/types.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +10 -3
- package/dist/socket-manager.js.map +1 -1
- package/dist/source-tracker.d.ts.map +1 -1
- package/dist/source-tracker.js +8 -0
- package/dist/source-tracker.js.map +1 -1
- package/dist/sync-service/index.d.ts +7 -2
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +16 -9
- package/dist/sync-service/index.js.map +1 -1
- package/package.json +11 -11
- package/dist/ai-service/llm/interaction/compose.d.ts +0 -71
- package/dist/ai-service/llm/interaction/compose.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/compose.js +0 -88
- package/dist/ai-service/llm/interaction/compose.js.map +0 -1
- package/dist/ai-service/llm/interaction/middleware.d.ts +0 -52
- package/dist/ai-service/llm/interaction/middleware.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/middleware.js +0 -17
- package/dist/ai-service/llm/interaction/middleware.js.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts +0 -45
- package/dist/ai-service/llm/interaction/middlewares/llmobs.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/llmobs.js +0 -85
- package/dist/ai-service/llm/interaction/middlewares/llmobs.js.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/logging.d.ts +0 -88
- package/dist/ai-service/llm/interaction/middlewares/logging.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/logging.js +0 -238
- package/dist/ai-service/llm/interaction/middlewares/logging.js.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts +0 -47
- package/dist/ai-service/llm/interaction/middlewares/profiler.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/profiler.js +0 -183
- package/dist/ai-service/llm/interaction/middlewares/profiler.js.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts +0 -115
- package/dist/ai-service/llm/interaction/middlewares/stream-retry.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/stream-retry.js +0 -231
- package/dist/ai-service/llm/interaction/middlewares/stream-retry.js.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/utils/abort.d.ts +0 -41
- package/dist/ai-service/llm/interaction/middlewares/utils/abort.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/utils/abort.js +0 -74
- package/dist/ai-service/llm/interaction/middlewares/utils/abort.js.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/utils/fallback-chain.d.ts +0 -61
- package/dist/ai-service/llm/interaction/middlewares/utils/fallback-chain.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/utils/fallback-chain.js +0 -116
- package/dist/ai-service/llm/interaction/middlewares/utils/fallback-chain.js.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/utils/retries.d.ts +0 -47
- package/dist/ai-service/llm/interaction/middlewares/utils/retries.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/utils/retries.js +0 -141
- package/dist/ai-service/llm/interaction/middlewares/utils/retries.js.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/utils/stall-detector.d.ts +0 -30
- package/dist/ai-service/llm/interaction/middlewares/utils/stall-detector.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/utils/stall-detector.js +0 -36
- package/dist/ai-service/llm/interaction/middlewares/utils/stall-detector.js.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/utils/streams.d.ts +0 -42
- package/dist/ai-service/llm/interaction/middlewares/utils/streams.d.ts.map +0 -1
- package/dist/ai-service/llm/interaction/middlewares/utils/streams.js +0 -208
- package/dist/ai-service/llm/interaction/middlewares/utils/streams.js.map +0 -1
- package/dist/ai-service/llmobs/middleware/stream-text.d.ts +0 -56
- package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +0 -1
- package/dist/ai-service/llmobs/middleware/stream-text.js +0 -597
- package/dist/ai-service/llmobs/middleware/stream-text.js.map +0 -1
|
@@ -3,28 +3,28 @@ import { safeJsonStringify } from "../util/safe-stringify.js";
|
|
|
3
3
|
const ERROR_MAPPINGS = {
|
|
4
4
|
// Anthropic errors
|
|
5
5
|
rate_limit_error: "rate_limit",
|
|
6
|
-
request_too_large: "
|
|
7
|
-
authentication_error: "
|
|
8
|
-
permission_error: "
|
|
6
|
+
request_too_large: "validation_error",
|
|
7
|
+
authentication_error: "auth_error",
|
|
8
|
+
permission_error: "auth_error",
|
|
9
9
|
not_found_error: "not_found",
|
|
10
|
-
api_error: "
|
|
11
|
-
invalid_request_error: "
|
|
10
|
+
api_error: "api_error",
|
|
11
|
+
invalid_request_error: "validation_error",
|
|
12
12
|
overloaded_error: "overloaded",
|
|
13
13
|
// Bedrock errors
|
|
14
14
|
ThrottlingException: "rate_limit",
|
|
15
|
-
AccessDeniedException: "
|
|
16
|
-
NotAuthorized: "
|
|
17
|
-
InvalidClientTokenId: "
|
|
18
|
-
UnrecognizedClientException: "
|
|
15
|
+
AccessDeniedException: "auth_error",
|
|
16
|
+
NotAuthorized: "auth_error",
|
|
17
|
+
InvalidClientTokenId: "auth_error",
|
|
18
|
+
UnrecognizedClientException: "auth_error",
|
|
19
19
|
ResourceNotFound: "not_found",
|
|
20
|
-
InternalFailure: "
|
|
21
|
-
ValidationError: "
|
|
22
|
-
InvalidAction: "
|
|
23
|
-
IncompleteSignature: "
|
|
24
|
-
RequestExpired: "
|
|
20
|
+
InternalFailure: "api_error",
|
|
21
|
+
ValidationError: "validation_error",
|
|
22
|
+
InvalidAction: "validation_error",
|
|
23
|
+
IncompleteSignature: "validation_error",
|
|
24
|
+
RequestExpired: "timeout",
|
|
25
25
|
ServiceUnavailable: "overloaded",
|
|
26
26
|
// Clark errors
|
|
27
|
-
server_error: "
|
|
27
|
+
server_error: "api_error",
|
|
28
28
|
};
|
|
29
29
|
const name = "SB_LLMProviderError";
|
|
30
30
|
const marker = `superblocks.ai.error.${name}`;
|
|
@@ -34,7 +34,7 @@ export class LLMProviderError extends Error {
|
|
|
34
34
|
messages = ["Failed to get response from LLM provider"];
|
|
35
35
|
name = "LLMProviderError";
|
|
36
36
|
provider;
|
|
37
|
-
type = "
|
|
37
|
+
type = "api_error";
|
|
38
38
|
url;
|
|
39
39
|
statusCode;
|
|
40
40
|
isRetryable = true;
|
|
@@ -66,7 +66,7 @@ export class LLMProviderError extends Error {
|
|
|
66
66
|
if (this.data.type) {
|
|
67
67
|
this.type =
|
|
68
68
|
ERROR_MAPPINGS[this.data.type] ||
|
|
69
|
-
"
|
|
69
|
+
"api_error";
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
// Extract messages from nested cause chain
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/ai-service/llm/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/ai-service/llm/error.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/impl/anthropic.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtE,eAAO,MAAM,aAAa,GAAI,UAAU,mBAAmB,KAAG,
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/impl/anthropic.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtE,eAAO,MAAM,aAAa,GAAI,UAAU,mBAAmB,KAAG,aA0C7D,CAAC"}
|
|
@@ -7,7 +7,8 @@ export const anthropicImpl = (settings) => {
|
|
|
7
7
|
explain: anthropic("claude-3-5-haiku-20241022"),
|
|
8
8
|
classifyPrompt: anthropic("claude-3-5-haiku-20241022"),
|
|
9
9
|
openApiIntent: anthropic("claude-3-7-sonnet-20250219"),
|
|
10
|
-
summarizeMessages: anthropic("claude-
|
|
10
|
+
summarizeMessages: anthropic("claude-haiku-4-5-20251001"),
|
|
11
|
+
fast: anthropic("claude-haiku-4-5-20251001"),
|
|
11
12
|
generateSpecificEdit: wrapLanguageModel({
|
|
12
13
|
model: anthropic("claude-3-5-haiku-20241022"),
|
|
13
14
|
middleware: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/impl/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAA6B,EAAiB,EAAE;IAC5E,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEtD,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,2BAA2B,CAAC;QAC/C,cAAc,EAAE,SAAS,CAAC,2BAA2B,CAAC;QACtD,aAAa,EAAE,SAAS,CAAC,4BAA4B,CAAC;QACtD,iBAAiB,EAAE,SAAS,CAAC,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/impl/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAA6B,EAAiB,EAAE;IAC5E,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEtD,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,2BAA2B,CAAC;QAC/C,cAAc,EAAE,SAAS,CAAC,2BAA2B,CAAC;QACtD,aAAa,EAAE,SAAS,CAAC,4BAA4B,CAAC;QACtD,iBAAiB,EAAE,SAAS,CAAC,2BAA2B,CAAC;QACzD,IAAI,EAAE,SAAS,CAAC,2BAA2B,CAAC;QAE5C,oBAAoB,EAAE,iBAAiB,CAAC;YACtC,KAAK,EAAE,SAAS,CAAC,2BAA2B,CAAC;YAC7C,UAAU,EAAE;gBACV,0BAA0B,CAAC;oBACzB,QAAQ,EAAE;wBACR,eAAe,EAAE,IAAI;wBACrB,WAAW,EAAE,GAAG;qBACjB;iBACF,CAAC;aACH;SACF,CAAC;QACF,iBAAiB,EAAE,iBAAiB,CAAC;YACnC,KAAK,EAAE,SAAS,CAAC,4BAA4B,CAAC;YAC9C,UAAU,EAAE;gBACV,0BAA0B,CAAC;oBACzB,QAAQ,EAAE;wBACR,eAAe,EAAE,KAAK;qBACvB;iBACF,CAAC;aACH;SACF,CAAC;QACF,kBAAkB,EAAE,iBAAiB,CAAC;YACpC,KAAK,EAAE,SAAS,CAAC,4BAA4B,CAAC;YAC9C,UAAU,EAAE;gBACV,0BAA0B,CAAC;oBACzB,QAAQ,EAAE;wBACR,eAAe,EAAE,KAAK;qBACvB;iBACF,CAAC;aACH;SACF,CAAC;KACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clark.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/impl/clark.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtE,eAAO,MAAM,SAAS,GAAI,UAAU,mBAAmB,KAAG,
|
|
1
|
+
{"version":3,"file":"clark.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/impl/clark.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtE,eAAO,MAAM,SAAS,GAAI,UAAU,mBAAmB,KAAG,aAyCzD,CAAC"}
|
|
@@ -8,7 +8,8 @@ export const clarkImpl = (settings) => {
|
|
|
8
8
|
explain: clark(ClarkChatModelId.CLARK_EXPLAIN),
|
|
9
9
|
classifyPrompt: clark(ClarkChatModelId.CLARK_CLASSIFY),
|
|
10
10
|
openApiIntent: clark(ClarkChatModelId.CLARK_INTENT),
|
|
11
|
-
summarizeMessages: clark(ClarkChatModelId.
|
|
11
|
+
summarizeMessages: clark(ClarkChatModelId.CLARK_FAST),
|
|
12
|
+
fast: clark(ClarkChatModelId.CLARK_FAST),
|
|
12
13
|
generateSpecificEdit: wrapLanguageModel({
|
|
13
14
|
model: clark(ClarkChatModelId.CLARK_SMALL_EDIT),
|
|
14
15
|
middleware: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clark.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/impl/clark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAA6B,EAAiB,EAAE;IACxE,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC;QAC9C,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC;QACtD,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC;QACnD,iBAAiB,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"clark.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/impl/clark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAA6B,EAAiB,EAAE;IACxE,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1C,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC;QAC9C,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC;QACtD,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC;QACnD,iBAAiB,EAAE,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACrD,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACxC,oBAAoB,EAAE,iBAAiB,CAAC;YACtC,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;YAC/C,UAAU,EAAE;gBACV,0BAA0B,CAAC;oBACzB,QAAQ,EAAE;wBACR,eAAe,EAAE,IAAI;wBACrB,WAAW,EAAE,GAAG;qBACjB;iBACF,CAAC;aACH;SACF,CAAC;QACF,iBAAiB,EAAE,iBAAiB,CAAC;YACnC,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;YAC/C,UAAU,EAAE;gBACV,0BAA0B,CAAC;oBACzB,QAAQ,EAAE;wBACR,eAAe,EAAE,KAAK;qBACvB;iBACF,CAAC;aACH;SACF,CAAC;QACF,kBAAkB,EAAE,iBAAiB,CAAC;YACpC,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC;YAC7C,UAAU,EAAE;gBACV,0BAA0B,CAAC;oBACzB,QAAQ,EAAE;wBACR,eAAe,EAAE,KAAK;qBACvB;iBACF,CAAC;aACH;SACF,CAAC;KACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,68 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-step LLM interaction system with provider interface and middleware.
|
|
3
|
-
*
|
|
4
|
-
* This module provides a clean, SDK-agnostic interface for LLM streaming
|
|
5
|
-
* with composable middleware. Key features:
|
|
6
|
-
* - Provider interface abstracts away SDK details
|
|
7
|
-
* - onFinally lifecycle hook for cleanup after stream consumption
|
|
8
|
-
* - Composable middlewares for cross-cutting concerns
|
|
9
|
-
* - Adapter pattern for SDK flexibility
|
|
10
|
-
*
|
|
11
|
-
* ## Architecture
|
|
12
|
-
*
|
|
13
|
-
* ```
|
|
14
|
-
* Middlewares (Context, Logging, Profiler, LLMObs)
|
|
15
|
-
* ↓
|
|
16
|
-
* StreamTextProvider Interface (with onFinally)
|
|
17
|
-
* ↓
|
|
18
|
-
* VercelStreamTextAdapter
|
|
19
|
-
* ↓
|
|
20
|
-
* Vercel AI SDK
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* ## Usage
|
|
24
|
-
*
|
|
25
|
-
* ```typescript
|
|
26
|
-
* import {
|
|
27
|
-
* createVercelProvider,
|
|
28
|
-
* applyMiddleware,
|
|
29
|
-
* createContextMiddleware,
|
|
30
|
-
* createLoggingMiddleware,
|
|
31
|
-
* } from "./interaction";
|
|
32
|
-
*
|
|
33
|
-
* // Create base provider
|
|
34
|
-
* const baseProvider = createVercelProvider();
|
|
35
|
-
*
|
|
36
|
-
* // Apply middlewares
|
|
37
|
-
* const provider = applyMiddleware(
|
|
38
|
-
* baseProvider,
|
|
39
|
-
* createContextMiddleware({ ... }),
|
|
40
|
-
* createLoggingMiddleware({ ... })
|
|
41
|
-
* );
|
|
42
|
-
*
|
|
43
|
-
* // Use the provider
|
|
44
|
-
* const result = await provider.streamText({
|
|
45
|
-
* model,
|
|
46
|
-
* messages,
|
|
47
|
-
* tools,
|
|
48
|
-
* onFinally: async () => {
|
|
49
|
-
* // Cleanup after stream consumption
|
|
50
|
-
* }
|
|
51
|
-
* });
|
|
52
|
-
*
|
|
53
|
-
* for await (const chunk of result.fullStream) {
|
|
54
|
-
* // Process chunks
|
|
55
|
-
* }
|
|
56
|
-
* // onFinally runs here ^
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
1
|
export type { StreamTextProvider, StreamTextOptions, StreamTextResult, StepParameters, StreamChunk, StepResult, FinalResult, } from "./provider.js";
|
|
60
|
-
export type { StreamTextMiddleware } from "./middleware.js";
|
|
61
|
-
export { compose, applyMiddleware, createMiddleware } from "./compose.js";
|
|
62
2
|
export { withStreamLifecycle } from "./stream-lifecycle.js";
|
|
63
3
|
export { VercelStreamTextAdapter, createVercelProvider, } from "./adapters/vercel.js";
|
|
64
|
-
export { createLoggingMiddleware, type LoggingMiddlewareOptions, type LogRef, } from "./middlewares/logging.js";
|
|
65
|
-
export { createProfilerMiddleware, type ProfilerMiddlewareOptions, } from "./middlewares/profiler.js";
|
|
66
|
-
export { createLLMObsMiddleware, type LLMObsMiddlewareOptions, } from "./middlewares/llmobs.js";
|
|
67
|
-
export { createStreamRetryMiddleware, type StreamRetryOptions, type FallbackConfig, } from "./middlewares/stream-retry.js";
|
|
68
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/interaction/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/interaction/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,70 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-step LLM interaction system with provider interface and middleware.
|
|
3
|
-
*
|
|
4
|
-
* This module provides a clean, SDK-agnostic interface for LLM streaming
|
|
5
|
-
* with composable middleware. Key features:
|
|
6
|
-
* - Provider interface abstracts away SDK details
|
|
7
|
-
* - onFinally lifecycle hook for cleanup after stream consumption
|
|
8
|
-
* - Composable middlewares for cross-cutting concerns
|
|
9
|
-
* - Adapter pattern for SDK flexibility
|
|
10
|
-
*
|
|
11
|
-
* ## Architecture
|
|
12
|
-
*
|
|
13
|
-
* ```
|
|
14
|
-
* Middlewares (Context, Logging, Profiler, LLMObs)
|
|
15
|
-
* ↓
|
|
16
|
-
* StreamTextProvider Interface (with onFinally)
|
|
17
|
-
* ↓
|
|
18
|
-
* VercelStreamTextAdapter
|
|
19
|
-
* ↓
|
|
20
|
-
* Vercel AI SDK
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* ## Usage
|
|
24
|
-
*
|
|
25
|
-
* ```typescript
|
|
26
|
-
* import {
|
|
27
|
-
* createVercelProvider,
|
|
28
|
-
* applyMiddleware,
|
|
29
|
-
* createContextMiddleware,
|
|
30
|
-
* createLoggingMiddleware,
|
|
31
|
-
* } from "./interaction";
|
|
32
|
-
*
|
|
33
|
-
* // Create base provider
|
|
34
|
-
* const baseProvider = createVercelProvider();
|
|
35
|
-
*
|
|
36
|
-
* // Apply middlewares
|
|
37
|
-
* const provider = applyMiddleware(
|
|
38
|
-
* baseProvider,
|
|
39
|
-
* createContextMiddleware({ ... }),
|
|
40
|
-
* createLoggingMiddleware({ ... })
|
|
41
|
-
* );
|
|
42
|
-
*
|
|
43
|
-
* // Use the provider
|
|
44
|
-
* const result = await provider.streamText({
|
|
45
|
-
* model,
|
|
46
|
-
* messages,
|
|
47
|
-
* tools,
|
|
48
|
-
* onFinally: async () => {
|
|
49
|
-
* // Cleanup after stream consumption
|
|
50
|
-
* }
|
|
51
|
-
* });
|
|
52
|
-
*
|
|
53
|
-
* for await (const chunk of result.fullStream) {
|
|
54
|
-
* // Process chunks
|
|
55
|
-
* }
|
|
56
|
-
* // onFinally runs here ^
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
// Composition utilities
|
|
60
|
-
export { compose, applyMiddleware, createMiddleware } from "./compose.js";
|
|
61
1
|
// Stream lifecycle utilities
|
|
62
2
|
export { withStreamLifecycle } from "./stream-lifecycle.js";
|
|
63
3
|
// Vercel SDK adapter
|
|
64
4
|
export { VercelStreamTextAdapter, createVercelProvider, } from "./adapters/vercel.js";
|
|
65
|
-
// Built-in middlewares
|
|
66
|
-
export { createLoggingMiddleware, } from "./middlewares/logging.js";
|
|
67
|
-
export { createProfilerMiddleware, } from "./middlewares/profiler.js";
|
|
68
|
-
export { createLLMObsMiddleware, } from "./middlewares/llmobs.js";
|
|
69
|
-
export { createStreamRetryMiddleware, } from "./middlewares/stream-retry.js";
|
|
70
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/interaction/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/interaction/index.ts"],"names":[],"mappings":"AAWA,6BAA6B;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAqB;AACrB,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,WAkDF,CAAC"}
|
|
@@ -7,11 +7,7 @@ export const createLLMProvider = (settings, getJwt, llmConfig) => {
|
|
|
7
7
|
const providerType = llmConfig?.provider || "bedrock";
|
|
8
8
|
const wrapDefaults = (model) => wrapLanguageModel({
|
|
9
9
|
model,
|
|
10
|
-
middleware: [
|
|
11
|
-
jwtMiddleware(getJwt),
|
|
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
|
|
14
|
-
],
|
|
10
|
+
middleware: [jwtMiddleware(getJwt)],
|
|
15
11
|
});
|
|
16
12
|
getLogger().info(`Creating LLM provider: type=${providerType}`, {
|
|
17
13
|
config: llmConfig || {},
|
|
@@ -20,7 +16,6 @@ export const createLLMProvider = (settings, getJwt, llmConfig) => {
|
|
|
20
16
|
switch (providerType) {
|
|
21
17
|
case "bedrock":
|
|
22
18
|
case "vertex":
|
|
23
|
-
case "unified":
|
|
24
19
|
implFunc = clarkImpl;
|
|
25
20
|
break;
|
|
26
21
|
case "anthropic":
|
|
@@ -37,6 +32,7 @@ export const createLLMProvider = (settings, getJwt, llmConfig) => {
|
|
|
37
32
|
generateBroadEdit: wrapDefaults(impl.generateBroadEdit),
|
|
38
33
|
generateFullAppGen: wrapDefaults(impl.generateFullAppGen),
|
|
39
34
|
summarizeMessages: wrapDefaults(impl.summarizeMessages),
|
|
35
|
+
fast: wrapDefaults(impl.fast),
|
|
40
36
|
};
|
|
41
37
|
const sdkProvider = customProvider({
|
|
42
38
|
languageModels,
|
|
@@ -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,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
|
|
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,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KACpC,CAAC,CAAC;IACL,SAAS,EAAE,CAAC,IAAI,CAAC,+BAA+B,YAAY,EAAE,EAAE;QAC9D,MAAM,EAAE,SAAS,IAAI,EAAE;KACxB,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC;IACb,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS,CAAC;QACf,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;QACvD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;KAC9B,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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { FileArtifact } from "../../types.js";
|
|
2
|
+
export type ProviderType = "vertex" | "bedrock";
|
|
3
|
+
export type CoreModelType = "claude-sonnet-4-5" | "claude-opus-4-5";
|
|
4
|
+
export interface RetryConfigOptions {
|
|
5
|
+
maxAttempts?: number;
|
|
6
|
+
maxTotalTimeMs?: number;
|
|
7
|
+
initialDelayMs?: number;
|
|
8
|
+
maxDelayMs?: number;
|
|
9
|
+
backoffMultiplier?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface FallbackConfigOptions {
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
initialProvider?: ProviderType;
|
|
14
|
+
initialModel?: CoreModelType;
|
|
15
|
+
}
|
|
16
|
+
export interface LoggingConfigOptions {
|
|
17
|
+
enabled?: boolean;
|
|
18
|
+
conversationId?: string;
|
|
19
|
+
saveArtifact?: (artifact: FileArtifact, stepId: string, runTimestamp: string) => Promise<void>;
|
|
20
|
+
metadata?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export interface StreamConfigOptions {
|
|
23
|
+
retry?: RetryConfigOptions;
|
|
24
|
+
fallback?: FallbackConfigOptions;
|
|
25
|
+
logging?: LoggingConfigOptions;
|
|
26
|
+
}
|
|
27
|
+
interface ResolvedRetryConfig {
|
|
28
|
+
maxAttempts: number;
|
|
29
|
+
maxTotalTimeMs: number;
|
|
30
|
+
initialDelayMs: number;
|
|
31
|
+
maxDelayMs: number;
|
|
32
|
+
backoffMultiplier: number;
|
|
33
|
+
}
|
|
34
|
+
interface ResolvedFallbackConfig {
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
initialProvider: ProviderType;
|
|
37
|
+
initialModel: CoreModelType;
|
|
38
|
+
}
|
|
39
|
+
interface ResolvedLoggingConfig {
|
|
40
|
+
enabled: boolean;
|
|
41
|
+
conversationId?: string;
|
|
42
|
+
saveArtifact?: (artifact: FileArtifact, stepId: string, runTimestamp: string) => Promise<void>;
|
|
43
|
+
metadata: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
export declare class StreamConfig {
|
|
46
|
+
private readonly _retry;
|
|
47
|
+
private readonly _fallback;
|
|
48
|
+
private readonly _logging;
|
|
49
|
+
private constructor();
|
|
50
|
+
static create(options?: StreamConfigOptions): StreamConfig;
|
|
51
|
+
get retry(): Readonly<ResolvedRetryConfig>;
|
|
52
|
+
get fallback(): Readonly<ResolvedFallbackConfig>;
|
|
53
|
+
get logging(): Readonly<ResolvedLoggingConfig>;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAChD,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEpE,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,CACb,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,UAAU,mBAAmB;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,YAAY,CAAC;IAC9B,YAAY,EAAE,aAAa,CAAC;CAC7B;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,CACb,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IAEjD,OAAO;IAUP,MAAM,CAAC,MAAM,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY;IAyB9D,IAAI,KAAK,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAEzC;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,sBAAsB,CAAC,CAE/C;IAED,IAAI,OAAO,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAE7C;CACF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export class StreamConfig {
|
|
2
|
+
_retry;
|
|
3
|
+
_fallback;
|
|
4
|
+
_logging;
|
|
5
|
+
constructor(retry, fallback, logging) {
|
|
6
|
+
this._retry = Object.freeze(retry);
|
|
7
|
+
this._fallback = Object.freeze(fallback);
|
|
8
|
+
this._logging = Object.freeze(logging);
|
|
9
|
+
}
|
|
10
|
+
static create(options = {}) {
|
|
11
|
+
const retry = {
|
|
12
|
+
maxAttempts: options.retry?.maxAttempts ?? 5,
|
|
13
|
+
maxTotalTimeMs: options.retry?.maxTotalTimeMs ?? 120_000,
|
|
14
|
+
initialDelayMs: options.retry?.initialDelayMs ?? 500,
|
|
15
|
+
maxDelayMs: options.retry?.maxDelayMs ?? 10_000,
|
|
16
|
+
backoffMultiplier: options.retry?.backoffMultiplier ?? 2,
|
|
17
|
+
};
|
|
18
|
+
const fallback = {
|
|
19
|
+
enabled: options.fallback?.enabled ?? false,
|
|
20
|
+
initialProvider: options.fallback?.initialProvider ?? "vertex",
|
|
21
|
+
initialModel: options.fallback?.initialModel ?? "claude-sonnet-4-5",
|
|
22
|
+
};
|
|
23
|
+
const logging = {
|
|
24
|
+
enabled: options.logging?.enabled ?? true,
|
|
25
|
+
conversationId: options.logging?.conversationId,
|
|
26
|
+
saveArtifact: options.logging?.saveArtifact,
|
|
27
|
+
metadata: options.logging?.metadata ?? {},
|
|
28
|
+
};
|
|
29
|
+
return new StreamConfig(retry, fallback, logging);
|
|
30
|
+
}
|
|
31
|
+
get retry() {
|
|
32
|
+
return this._retry;
|
|
33
|
+
}
|
|
34
|
+
get fallback() {
|
|
35
|
+
return this._fallback;
|
|
36
|
+
}
|
|
37
|
+
get logging() {
|
|
38
|
+
return this._logging;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/config.ts"],"names":[],"mappings":"AA6DA,MAAM,OAAO,YAAY;IACN,MAAM,CAAsB;IAC5B,SAAS,CAAyB;IAClC,QAAQ,CAAwB;IAEjD,YACE,KAA0B,EAC1B,QAAgC,EAChC,OAA8B;QAE9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,UAA+B,EAAE;QAC7C,MAAM,KAAK,GAAwB;YACjC,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC;YAC5C,cAAc,EAAE,OAAO,CAAC,KAAK,EAAE,cAAc,IAAI,OAAO;YACxD,cAAc,EAAE,OAAO,CAAC,KAAK,EAAE,cAAc,IAAI,GAAG;YACpD,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,IAAI,MAAM;YAC/C,iBAAiB,EAAE,OAAO,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC;SACzD,CAAC;QAEF,MAAM,QAAQ,GAA2B;YACvC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,KAAK;YAC3C,eAAe,EAAE,OAAO,CAAC,QAAQ,EAAE,eAAe,IAAI,QAAQ;YAC9D,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,YAAY,IAAI,mBAAmB;SACpE,CAAC;QAEF,MAAM,OAAO,GAA0B;YACrC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI;YACzC,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,cAAc;YAC/C,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY;YAC3C,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE;SAC1C,CAAC;QAEF,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LLMProviderError } from "../error.js";
|
|
2
|
+
export declare class RetriesExhaustedError extends Error {
|
|
3
|
+
name: string;
|
|
4
|
+
readonly attempts: number;
|
|
5
|
+
readonly totalTimeMs: number;
|
|
6
|
+
constructor(attempts: number, totalTimeMs: number, cause?: unknown);
|
|
7
|
+
}
|
|
8
|
+
export declare class AbortedError extends Error {
|
|
9
|
+
name: string;
|
|
10
|
+
constructor(message?: string);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Wraps an error for consistent error handling.
|
|
14
|
+
*/
|
|
15
|
+
export declare function wrapError(err: unknown, provider?: string): LLMProviderError;
|
|
16
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAC;AAEhE,qBAAa,qBAAsB,SAAQ,KAAK;IACrC,IAAI,SAA2B;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAMnE;AAED,qBAAa,YAAa,SAAQ,KAAK;IAC5B,IAAI,SAAkB;gBAEnB,OAAO,SAAoB;CAGxC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAkD3E"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { InvalidToolInputError } from "ai";
|
|
2
|
+
import { LLMProviderError, isNoOutputError } from "../error.js";
|
|
3
|
+
export class RetriesExhaustedError extends Error {
|
|
4
|
+
name = "RetriesExhaustedError";
|
|
5
|
+
attempts;
|
|
6
|
+
totalTimeMs;
|
|
7
|
+
constructor(attempts, totalTimeMs, cause) {
|
|
8
|
+
super(`All ${attempts} retry attempts exhausted after ${totalTimeMs}ms`);
|
|
9
|
+
this.attempts = attempts;
|
|
10
|
+
this.totalTimeMs = totalTimeMs;
|
|
11
|
+
this.cause = cause;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export class AbortedError extends Error {
|
|
15
|
+
name = "AbortedError";
|
|
16
|
+
constructor(message = "Request aborted") {
|
|
17
|
+
super(message);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Wraps an error for consistent error handling.
|
|
22
|
+
*/
|
|
23
|
+
export function wrapError(err, provider) {
|
|
24
|
+
if (err instanceof LLMProviderError) {
|
|
25
|
+
return err;
|
|
26
|
+
}
|
|
27
|
+
if (isNoOutputError(err)) {
|
|
28
|
+
return new LLMProviderError({
|
|
29
|
+
provider: provider,
|
|
30
|
+
message: err instanceof Error ? err.message : "No output generated by model",
|
|
31
|
+
type: "no_output",
|
|
32
|
+
isRetryable: true,
|
|
33
|
+
cause: err,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
if (err instanceof AbortedError) {
|
|
37
|
+
return new LLMProviderError({
|
|
38
|
+
provider: provider,
|
|
39
|
+
message: err.message,
|
|
40
|
+
type: "aborted",
|
|
41
|
+
isRetryable: false,
|
|
42
|
+
cause: err,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (err instanceof RetriesExhaustedError) {
|
|
46
|
+
return new LLMProviderError({
|
|
47
|
+
provider: provider,
|
|
48
|
+
message: err.message,
|
|
49
|
+
type: "retries_exhausted",
|
|
50
|
+
isRetryable: false,
|
|
51
|
+
cause: err,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (InvalidToolInputError.isInstance(err)) {
|
|
55
|
+
return new LLMProviderError({
|
|
56
|
+
provider: provider,
|
|
57
|
+
message: err.message,
|
|
58
|
+
type: "validation_error",
|
|
59
|
+
isRetryable: true,
|
|
60
|
+
cause: err,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return new LLMProviderError({
|
|
64
|
+
provider: provider,
|
|
65
|
+
cause: err,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,GAAG,uBAAuB,CAAC;IAC/B,QAAQ,CAAS;IACjB,WAAW,CAAS;IAE7B,YAAY,QAAgB,EAAE,WAAmB,EAAE,KAAe;QAChE,KAAK,CAAC,OAAO,QAAQ,mCAAmC,WAAW,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,GAAG,cAAc,CAAC;IAE/B,YAAY,OAAO,GAAG,iBAAiB;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAY,EAAE,QAAiB;IACvD,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,gBAAgB,CAAC;YAC1B,QAAQ,EAAE,QAAwC;YAClD,OAAO,EACL,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B;YACrE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;QAChC,OAAO,IAAI,gBAAgB,CAAC;YAC1B,QAAQ,EAAE,QAAwC;YAClD,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;QACzC,OAAO,IAAI,gBAAgB,CAAC;YAC1B,QAAQ,EAAE,QAAwC;YAClD,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,gBAAgB,CAAC;YAC1B,QAAQ,EAAE,QAAwC;YAClD,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,gBAAgB,CAAC;QAC1B,QAAQ,EAAE,QAAwC;QAClD,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { StreamSession } from "./session.js";
|
|
2
|
+
import type { ProviderInfo } from "./types.js";
|
|
3
|
+
import type { Tool } from "../../agent/tools2/types.js";
|
|
4
|
+
import type { StepResult, FinalResult, StreamChunk } from "../interaction/provider.js";
|
|
5
|
+
import type { ModelMessage } from "ai";
|
|
6
|
+
export interface RequestPayload {
|
|
7
|
+
system?: string;
|
|
8
|
+
messages: ModelMessage[];
|
|
9
|
+
tools?: Record<string, Tool>;
|
|
10
|
+
}
|
|
11
|
+
export type StreamEvents = {
|
|
12
|
+
chunk: [chunk: StreamChunk, session: StreamSession];
|
|
13
|
+
retry: [
|
|
14
|
+
error: unknown,
|
|
15
|
+
attempt: number,
|
|
16
|
+
delayMs: number,
|
|
17
|
+
session: StreamSession
|
|
18
|
+
];
|
|
19
|
+
fallback: [
|
|
20
|
+
from: ProviderInfo,
|
|
21
|
+
to: ProviderInfo,
|
|
22
|
+
reason: "error" | "no_output",
|
|
23
|
+
session: StreamSession
|
|
24
|
+
];
|
|
25
|
+
"step:complete": [
|
|
26
|
+
step: StepResult<Record<string, Tool>>,
|
|
27
|
+
session: StreamSession
|
|
28
|
+
];
|
|
29
|
+
"stream:finish": [
|
|
30
|
+
result: FinalResult<Record<string, Tool>>,
|
|
31
|
+
session: StreamSession
|
|
32
|
+
];
|
|
33
|
+
"session:start": [session: StreamSession, request?: RequestPayload];
|
|
34
|
+
"session:complete": [session: StreamSession];
|
|
35
|
+
"session:error": [error: unknown, session: StreamSession];
|
|
36
|
+
"session:abort": [session: StreamSession];
|
|
37
|
+
};
|
|
38
|
+
export type StreamEventName = keyof StreamEvents;
|
|
39
|
+
export type StreamEventHandler<K extends StreamEventName> = (...args: StreamEvents[K]) => void | Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Type-safe event bus for stream lifecycle events.
|
|
42
|
+
*
|
|
43
|
+
* Observers subscribe to specific events and receive typed arguments.
|
|
44
|
+
* Handlers are called in parallel, and errors in one handler don't affect others.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const events = new StreamEventBus();
|
|
49
|
+
*
|
|
50
|
+
* // Subscribe to events
|
|
51
|
+
* const unsubscribe = events.on("chunk", (chunk, session) => {
|
|
52
|
+
* console.log(`Received chunk: ${chunk.type}`);
|
|
53
|
+
* });
|
|
54
|
+
*
|
|
55
|
+
* // Emit events
|
|
56
|
+
* await events.emit("chunk", myChunk, mySession);
|
|
57
|
+
*
|
|
58
|
+
* // Unsubscribe when done
|
|
59
|
+
* unsubscribe();
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare class StreamEventBus {
|
|
63
|
+
private readonly listeners;
|
|
64
|
+
on<K extends StreamEventName>(event: K, handler: StreamEventHandler<K>): () => void;
|
|
65
|
+
emit<K extends StreamEventName>(event: K, ...args: StreamEvents[K]): Promise<void>;
|
|
66
|
+
clear(): void;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=event-bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/stream/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACpD,KAAK,EAAE;QACL,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,aAAa;KACvB,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,YAAY;QAChB,MAAM,EAAE,OAAO,GAAG,WAAW;QAC7B,OAAO,EAAE,aAAa;KACvB,CAAC;IACF,eAAe,EAAE;QACf,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,EAAE,aAAa;KACvB,CAAC;IACF,eAAe,EAAE;QACf,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO,EAAE,aAAa;KACvB,CAAC;IACF,eAAe,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;IACpE,kBAAkB,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC7C,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1D,eAAe,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC;AACjD,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,eAAe,IAAI,CAC1D,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KACrB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGtB;IAEJ,EAAE,CAAC,CAAC,SAAS,eAAe,EAC1B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,MAAM,IAAI;IAaP,IAAI,CAAC,CAAC,SAAS,eAAe,EAClC,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC;IAchB,KAAK,IAAI,IAAI;CAGd"}
|