@dexto/core 1.1.11 → 1.2.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/README.md +24 -4
- package/dist/Dexto.cjs +4 -14
- package/dist/Dexto.d.ts +8 -29
- package/dist/Dexto.d.ts.map +1 -1
- package/dist/Dexto.js +4 -12
- package/dist/agent/DextoAgent.cjs +92 -3
- package/dist/agent/DextoAgent.d.ts +12 -4
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +52 -3
- package/dist/agent/agentCard.js +1 -0
- package/dist/agent/error-codes.cjs +1 -0
- package/dist/agent/error-codes.d.ts +1 -0
- package/dist/agent/error-codes.d.ts.map +1 -1
- package/dist/agent/error-codes.js +2 -0
- package/dist/agent/errors.cjs +13 -0
- package/dist/agent/errors.d.ts +4 -0
- package/dist/agent/errors.d.ts.map +1 -1
- package/dist/agent/errors.js +14 -0
- package/dist/agent/index.js +1 -0
- package/dist/agent/registry/error-codes.js +1 -0
- package/dist/agent/registry/errors.js +1 -0
- package/dist/agent/registry/registry.js +1 -0
- package/dist/agent/registry/types.js +1 -0
- package/dist/agent/registry/user-registry.js +1 -0
- package/dist/agent/schemas.cjs +6 -1
- package/dist/agent/schemas.d.ts +113 -3
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +7 -1
- package/dist/agent/state-manager.js +1 -0
- package/dist/approval/error-codes.js +1 -0
- package/dist/approval/errors.js +1 -0
- package/dist/approval/index.js +1 -0
- package/dist/approval/manager.cjs +30 -0
- package/dist/approval/manager.d.ts +23 -1
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +31 -0
- package/dist/approval/providers/event-based-approval-provider.js +1 -0
- package/dist/approval/providers/factory.js +1 -0
- package/dist/approval/providers/noop-approval-provider.js +1 -0
- package/dist/approval/schemas.cjs +36 -0
- package/dist/approval/schemas.d.ts +173 -0
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +33 -0
- package/dist/approval/types.cjs +1 -0
- package/dist/approval/types.d.ts +27 -1
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +2 -0
- package/dist/chunk-C6A6W6XS.js +53 -0
- package/dist/config/agent-resolver.js +1 -0
- package/dist/config/error-codes.js +1 -0
- package/dist/config/errors.js +1 -0
- package/dist/config/loader.js +1 -0
- package/dist/config/writer.js +1 -0
- package/dist/context/compression/middle-removal.js +1 -0
- package/dist/context/compression/oldest-removal.js +1 -0
- package/dist/context/error-codes.js +1 -0
- package/dist/context/errors.js +1 -0
- package/dist/context/index.js +1 -0
- package/dist/context/manager.cjs +36 -1
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +27 -1
- package/dist/context/media-helpers.js +1 -0
- package/dist/context/utils.cjs +102 -6
- package/dist/context/utils.d.ts +35 -2
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +100 -6
- package/dist/errors/DextoBaseError.js +1 -0
- package/dist/errors/DextoRuntimeError.js +1 -0
- package/dist/errors/DextoValidationError.js +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/errors/result-bridge.js +1 -0
- package/dist/errors/types.cjs +3 -0
- package/dist/errors/types.d.ts +7 -2
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +4 -0
- package/dist/events/index.cjs +1 -0
- package/dist/events/index.d.ts +6 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +2 -0
- package/dist/filesystem/error-codes.cjs +53 -0
- package/dist/filesystem/error-codes.d.ts +31 -0
- package/dist/filesystem/error-codes.d.ts.map +1 -0
- package/dist/filesystem/error-codes.js +30 -0
- package/dist/filesystem/errors.cjs +303 -0
- package/dist/filesystem/errors.d.ts +109 -0
- package/dist/filesystem/errors.d.ts.map +1 -0
- package/dist/filesystem/errors.js +280 -0
- package/dist/filesystem/filesystem-service.cjs +482 -0
- package/dist/filesystem/filesystem-service.d.ts +57 -0
- package/dist/filesystem/filesystem-service.d.ts.map +1 -0
- package/dist/filesystem/filesystem-service.js +449 -0
- package/dist/filesystem/index.cjs +37 -0
- package/dist/filesystem/index.d.ts +11 -0
- package/dist/filesystem/index.d.ts.map +1 -0
- package/dist/filesystem/index.js +11 -0
- package/dist/filesystem/path-validator.cjs +172 -0
- package/dist/filesystem/path-validator.d.ts +53 -0
- package/dist/filesystem/path-validator.d.ts.map +1 -0
- package/dist/filesystem/path-validator.js +139 -0
- package/dist/filesystem/types.cjs +16 -0
- package/dist/filesystem/types.d.ts +171 -0
- package/dist/filesystem/types.d.ts.map +1 -0
- package/dist/filesystem/types.js +0 -0
- package/dist/index.browser.js +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/llm/error-codes.js +1 -0
- package/dist/llm/errors.js +1 -0
- package/dist/llm/formatters/anthropic.js +1 -0
- package/dist/llm/formatters/factory.js +1 -0
- package/dist/llm/formatters/openai.js +1 -0
- package/dist/llm/formatters/vercel.js +1 -0
- package/dist/llm/registry.cjs +15 -15
- package/dist/llm/registry.d.ts +1 -1
- package/dist/llm/registry.js +16 -15
- package/dist/llm/resolver.js +1 -0
- package/dist/llm/schemas.cjs +6 -2
- package/dist/llm/schemas.d.ts +10 -0
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +7 -2
- package/dist/llm/services/anthropic.cjs +67 -0
- package/dist/llm/services/anthropic.d.ts +6 -0
- package/dist/llm/services/anthropic.d.ts.map +1 -1
- package/dist/llm/services/anthropic.js +27 -0
- package/dist/llm/services/factory.js +1 -0
- package/dist/llm/services/openai.cjs +87 -0
- package/dist/llm/services/openai.d.ts +6 -0
- package/dist/llm/services/openai.d.ts.map +1 -1
- package/dist/llm/services/openai.js +47 -0
- package/dist/llm/services/test-utils.integration.cjs +1 -1
- package/dist/llm/services/test-utils.integration.js +2 -1
- package/dist/llm/services/vercel.cjs +144 -97
- package/dist/llm/services/vercel.d.ts +6 -1
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +105 -98
- package/dist/llm/tokenizer/anthropic.js +1 -0
- package/dist/llm/tokenizer/default.js +1 -0
- package/dist/llm/tokenizer/factory.js +1 -0
- package/dist/llm/tokenizer/google.js +1 -0
- package/dist/llm/tokenizer/openai.cjs +1 -1
- package/dist/llm/tokenizer/openai.d.ts +1 -1
- package/dist/llm/tokenizer/openai.js +2 -1
- package/dist/llm/tokenizer/types.js +1 -0
- package/dist/llm/types.d.ts +2 -2
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +1 -0
- package/dist/llm/validation.js +1 -0
- package/dist/logger/browser.js +1 -0
- package/dist/logger/logger.d.ts +42 -0
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +1 -0
- package/dist/mcp/error-codes.cjs +1 -0
- package/dist/mcp/error-codes.d.ts +1 -0
- package/dist/mcp/error-codes.d.ts.map +1 -1
- package/dist/mcp/error-codes.js +2 -0
- package/dist/mcp/errors.cjs +12 -0
- package/dist/mcp/errors.d.ts +7 -0
- package/dist/mcp/errors.d.ts.map +1 -1
- package/dist/mcp/errors.js +13 -0
- package/dist/mcp/manager.cjs +66 -16
- package/dist/mcp/manager.d.ts +7 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +67 -16
- package/dist/mcp/mcp-client.js +1 -0
- package/dist/mcp/resolver.js +1 -0
- package/dist/mcp/schemas.js +1 -0
- package/dist/mcp/types.d.ts +1 -1
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/memory/error-codes.js +1 -0
- package/dist/memory/errors.js +1 -0
- package/dist/memory/index.js +1 -0
- package/dist/memory/manager.js +1 -0
- package/dist/memory/schemas.js +1 -0
- package/dist/plugins/builtins/content-policy.js +1 -0
- package/dist/plugins/builtins/response-sanitizer.js +1 -0
- package/dist/plugins/error-codes.js +1 -0
- package/dist/plugins/index.js +1 -0
- package/dist/plugins/loader.js +1 -0
- package/dist/plugins/manager.js +1 -0
- package/dist/plugins/registrations/builtins.js +1 -0
- package/dist/plugins/schemas.js +1 -0
- package/dist/preferences/constants.js +1 -0
- package/dist/preferences/error-codes.js +1 -0
- package/dist/preferences/errors.js +1 -0
- package/dist/preferences/index.js +1 -0
- package/dist/preferences/loader.cjs +3 -1
- package/dist/preferences/loader.d.ts +10 -1
- package/dist/preferences/loader.d.ts.map +1 -1
- package/dist/preferences/loader.js +4 -1
- package/dist/preferences/schemas.cjs +2 -1
- package/dist/preferences/schemas.d.ts +8 -0
- package/dist/preferences/schemas.d.ts.map +1 -1
- package/dist/preferences/schemas.js +3 -1
- package/dist/process/command-validator.cjs +544 -0
- package/dist/process/command-validator.d.ts +46 -0
- package/dist/process/command-validator.d.ts.map +1 -0
- package/dist/process/command-validator.js +521 -0
- package/dist/process/error-codes.cjs +47 -0
- package/dist/process/error-codes.d.ts +25 -0
- package/dist/process/error-codes.d.ts.map +1 -0
- package/dist/process/error-codes.js +24 -0
- package/dist/process/errors.cjs +244 -0
- package/dist/process/errors.d.ts +87 -0
- package/dist/process/errors.d.ts.map +1 -0
- package/dist/process/errors.js +221 -0
- package/dist/process/index.cjs +37 -0
- package/dist/process/index.d.ts +11 -0
- package/dist/process/index.d.ts.map +1 -0
- package/dist/process/index.js +11 -0
- package/dist/process/process-service.cjs +443 -0
- package/dist/process/process-service.d.ts +62 -0
- package/dist/process/process-service.d.ts.map +1 -0
- package/dist/process/process-service.js +410 -0
- package/dist/process/types.cjs +16 -0
- package/dist/process/types.d.ts +107 -0
- package/dist/process/types.d.ts.map +1 -0
- package/dist/process/types.js +0 -0
- package/dist/prompts/error-codes.js +1 -0
- package/dist/prompts/errors.js +1 -0
- package/dist/prompts/index.js +1 -0
- package/dist/prompts/name-validation.js +1 -0
- package/dist/prompts/prompt-manager.js +1 -0
- package/dist/prompts/providers/custom-prompt-provider.js +1 -0
- package/dist/prompts/providers/file-prompt-provider.js +1 -0
- package/dist/prompts/providers/mcp-prompt-provider.js +1 -0
- package/dist/prompts/providers/starter-prompt-provider.js +1 -0
- package/dist/prompts/schemas.js +1 -0
- package/dist/prompts/utils.js +1 -0
- package/dist/resources/error-codes.js +1 -0
- package/dist/resources/errors.js +1 -0
- package/dist/resources/handlers/blob-handler.js +1 -0
- package/dist/resources/handlers/factory.js +1 -0
- package/dist/resources/handlers/filesystem-handler.cjs +1 -1
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +2 -1
- package/dist/resources/index.js +1 -0
- package/dist/resources/internal-provider.js +1 -0
- package/dist/resources/manager.js +1 -0
- package/dist/resources/reference-parser.js +1 -0
- package/dist/resources/schemas.js +1 -0
- package/dist/search/index.js +1 -0
- package/dist/search/search-service.js +1 -0
- package/dist/session/chat-session.cjs +2 -2
- package/dist/session/chat-session.d.ts +2 -2
- package/dist/session/chat-session.js +3 -2
- package/dist/session/error-codes.js +1 -0
- package/dist/session/errors.js +1 -0
- package/dist/session/history/database.js +1 -0
- package/dist/session/history/factory.js +1 -0
- package/dist/session/history/memory.js +1 -0
- package/dist/session/index.js +1 -0
- package/dist/session/schemas.js +1 -0
- package/dist/session/session-manager.d.ts +6 -0
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +1 -0
- package/dist/session/title-generator.js +1 -0
- package/dist/storage/blob/factory.cjs +3 -3
- package/dist/storage/blob/factory.d.ts +3 -1
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +4 -3
- package/dist/storage/blob/local-blob-store.cjs +18 -2
- package/dist/storage/blob/local-blob-store.d.ts +2 -1
- package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
- package/dist/storage/blob/local-blob-store.js +19 -2
- package/dist/storage/blob/schemas.js +1 -0
- package/dist/storage/cache/factory.js +1 -0
- package/dist/storage/cache/memory-cache-store.js +1 -0
- package/dist/storage/cache/redis-store.js +1 -0
- package/dist/storage/cache/schemas.js +1 -0
- package/dist/storage/database/factory.cjs +7 -5
- package/dist/storage/database/factory.d.ts +3 -1
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +8 -5
- package/dist/storage/database/memory-database-store.js +1 -0
- package/dist/storage/database/postgres-store.js +1 -0
- package/dist/storage/database/schemas.cjs +1 -1
- package/dist/storage/database/schemas.js +2 -1
- package/dist/storage/database/sqlite-store.cjs +20 -2
- package/dist/storage/database/sqlite-store.d.ts +2 -1
- package/dist/storage/database/sqlite-store.d.ts.map +1 -1
- package/dist/storage/database/sqlite-store.js +21 -2
- package/dist/storage/error-codes.cjs +1 -0
- package/dist/storage/error-codes.d.ts +1 -0
- package/dist/storage/error-codes.d.ts.map +1 -1
- package/dist/storage/error-codes.js +2 -0
- package/dist/storage/errors.cjs +15 -0
- package/dist/storage/errors.d.ts +4 -0
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +16 -0
- package/dist/storage/index.js +1 -0
- package/dist/storage/schemas.js +1 -0
- package/dist/storage/storage-manager.cjs +7 -5
- package/dist/storage/storage-manager.d.ts +5 -2
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +8 -5
- package/dist/systemPrompt/contributors.js +1 -0
- package/dist/systemPrompt/error-codes.js +1 -0
- package/dist/systemPrompt/errors.js +1 -0
- package/dist/systemPrompt/in-built-prompts.js +1 -0
- package/dist/systemPrompt/index.js +1 -0
- package/dist/systemPrompt/manager.js +1 -0
- package/dist/systemPrompt/registry.js +1 -0
- package/dist/systemPrompt/schemas.js +1 -0
- package/dist/telemetry/decorators.cjs +175 -0
- package/dist/telemetry/decorators.d.ts +17 -0
- package/dist/telemetry/decorators.d.ts.map +1 -0
- package/dist/telemetry/decorators.js +157 -0
- package/dist/telemetry/exporters.cjs +108 -0
- package/dist/telemetry/exporters.d.ts +29 -0
- package/dist/telemetry/exporters.d.ts.map +1 -0
- package/dist/telemetry/exporters.js +85 -0
- package/dist/telemetry/index.cjs +28 -0
- package/dist/telemetry/index.d.ts +2 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +5 -0
- package/dist/telemetry/schemas.cjs +71 -0
- package/dist/telemetry/schemas.d.ts +54 -0
- package/dist/telemetry/schemas.d.ts.map +1 -0
- package/dist/telemetry/schemas.js +48 -0
- package/dist/telemetry/telemetry.cjs +228 -0
- package/dist/telemetry/telemetry.d.ts +74 -0
- package/dist/telemetry/telemetry.d.ts.map +1 -0
- package/dist/telemetry/telemetry.js +205 -0
- package/dist/telemetry/types.cjs +16 -0
- package/dist/telemetry/types.d.ts +22 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +0 -0
- package/dist/telemetry/utils.cjs +87 -0
- package/dist/telemetry/utils.d.ts +21 -0
- package/dist/telemetry/utils.d.ts.map +1 -0
- package/dist/telemetry/utils.js +62 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -0
- package/dist/tools/error-codes.js +1 -0
- package/dist/tools/errors.js +1 -0
- package/dist/tools/index.js +1 -0
- package/dist/tools/internal-tools/constants.cjs +39 -0
- package/dist/tools/internal-tools/constants.d.ts +12 -0
- package/dist/tools/internal-tools/constants.d.ts.map +1 -0
- package/dist/tools/internal-tools/constants.js +16 -0
- package/dist/tools/internal-tools/implementations/ask-user-tool.js +1 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +106 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +13 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +73 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +49 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +26 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +62 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +39 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +57 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +34 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +71 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +48 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +47 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +24 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +55 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.js +32 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +56 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.js +33 -0
- package/dist/tools/internal-tools/index.cjs +3 -1
- package/dist/tools/internal-tools/index.d.ts +1 -0
- package/dist/tools/internal-tools/index.d.ts.map +1 -1
- package/dist/tools/internal-tools/index.js +1 -0
- package/dist/tools/internal-tools/provider.js +1 -0
- package/dist/tools/internal-tools/registry.cjs +40 -4
- package/dist/tools/internal-tools/registry.d.ts +5 -9
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +41 -3
- package/dist/tools/schemas.cjs +18 -5
- package/dist/tools/schemas.d.ts +30 -1
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +15 -2
- package/dist/tools/tool-manager.cjs +158 -19
- package/dist/tools/tool-manager.d.ts +48 -2
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +118 -19
- package/dist/utils/api-key-resolver.js +1 -0
- package/dist/utils/api-key-store.js +1 -0
- package/dist/utils/async-context.js +1 -0
- package/dist/utils/debug.js +1 -0
- package/dist/utils/env.js +1 -0
- package/dist/utils/error-conversion.js +1 -0
- package/dist/utils/execution-context.js +1 -0
- package/dist/utils/fs-walk.js +1 -0
- package/dist/utils/path.js +1 -0
- package/dist/utils/port-utils.js +1 -0
- package/dist/utils/redactor.js +1 -0
- package/dist/utils/result.js +1 -0
- package/dist/utils/safe-stringify.js +1 -0
- package/dist/utils/schema-metadata.js +1 -0
- package/dist/utils/schema.js +1 -0
- package/dist/utils/service-initializer.cjs +42 -4
- package/dist/utils/service-initializer.d.ts +2 -1
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +33 -4
- package/dist/utils/user-info.js +1 -0
- package/dist/utils/zod-schema-converter.js +1 -0
- package/package.json +11 -1
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
8
|
+
var __typeError = (msg) => {
|
|
9
|
+
throw TypeError(msg);
|
|
10
|
+
};
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
13
|
var __export = (target, all) => {
|
|
7
14
|
for (var name in all)
|
|
8
15
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,6 +23,44 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
23
|
return to;
|
|
17
24
|
};
|
|
18
25
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
|
+
var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
|
|
27
|
+
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
|
|
28
|
+
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
|
|
29
|
+
var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
|
|
30
|
+
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
|
|
31
|
+
var __runInitializers = (array, flags, self, value) => {
|
|
32
|
+
for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
|
|
33
|
+
return value;
|
|
34
|
+
};
|
|
35
|
+
var __decorateElement = (array, flags, name, decorators, target, extra) => {
|
|
36
|
+
var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
|
|
37
|
+
var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
|
|
38
|
+
var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
|
|
39
|
+
var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
|
|
40
|
+
return __privateGet(this, extra);
|
|
41
|
+
}, set [name](x) {
|
|
42
|
+
return __privateSet(this, extra, x);
|
|
43
|
+
} }, name));
|
|
44
|
+
k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
|
|
45
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
46
|
+
ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
|
|
47
|
+
if (k) {
|
|
48
|
+
ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
|
|
49
|
+
if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
|
|
50
|
+
if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
|
|
51
|
+
}
|
|
52
|
+
it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
|
|
53
|
+
if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
|
|
54
|
+
else if (typeof it !== "object" || it === null) __typeError("Object expected");
|
|
55
|
+
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
|
|
56
|
+
}
|
|
57
|
+
return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
|
|
58
|
+
};
|
|
59
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
60
|
+
var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
|
|
61
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
62
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
63
|
+
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
19
64
|
var vercel_exports = {};
|
|
20
65
|
__export(vercel_exports, {
|
|
21
66
|
VercelLLMService: () => VercelLLMService
|
|
@@ -35,6 +80,13 @@ var import_error_conversion = require("../../utils/error-conversion.js");
|
|
|
35
80
|
var import_error_codes2 = require("../../tools/error-codes.js");
|
|
36
81
|
var import_vercel = require("../formatters/vercel.js");
|
|
37
82
|
var import_factory = require("../tokenizer/factory.js");
|
|
83
|
+
var import_decorators = require("../../telemetry/decorators.js");
|
|
84
|
+
var import_api = require("@opentelemetry/api");
|
|
85
|
+
var _VercelLLMService_decorators, _init;
|
|
86
|
+
_VercelLLMService_decorators = [(0, import_decorators.InstrumentClass)({
|
|
87
|
+
prefix: "llm.vercel",
|
|
88
|
+
excludeMethods: ["getModelId", "getAllTools", "formatTools", "validateToolSupport"]
|
|
89
|
+
})];
|
|
38
90
|
class VercelLLMService {
|
|
39
91
|
model;
|
|
40
92
|
config;
|
|
@@ -43,8 +95,6 @@ class VercelLLMService {
|
|
|
43
95
|
sessionEventBus;
|
|
44
96
|
sessionId;
|
|
45
97
|
toolSupportCache = /* @__PURE__ */ new Map();
|
|
46
|
-
// Map of toolCallId -> queue of raw results to emit with that callId
|
|
47
|
-
rawResultsByCallId = /* @__PURE__ */ new Map();
|
|
48
98
|
/**
|
|
49
99
|
* Helper to extract model ID from LanguageModel union type (string | LanguageModelV2)
|
|
50
100
|
*/
|
|
@@ -86,28 +136,72 @@ class VercelLLMService {
|
|
|
86
136
|
acc[toolName] = {
|
|
87
137
|
inputSchema: (0, import_ai2.jsonSchema)(tool.parameters),
|
|
88
138
|
execute: async (args, options) => {
|
|
139
|
+
const callId = options.toolCallId;
|
|
89
140
|
try {
|
|
141
|
+
import_logger.logger.debug(
|
|
142
|
+
`[vercel] Emitting toolCall event for ${toolName} with callId ${callId}`
|
|
143
|
+
);
|
|
144
|
+
this.sessionEventBus.emit("llmservice:toolCall", {
|
|
145
|
+
toolName,
|
|
146
|
+
args,
|
|
147
|
+
callId
|
|
148
|
+
});
|
|
90
149
|
const rawResult = await this.toolManager.executeTool(
|
|
91
150
|
toolName,
|
|
92
151
|
args,
|
|
93
152
|
this.sessionId
|
|
94
153
|
);
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
154
|
+
const persisted = await this.contextManager.addToolResult(
|
|
155
|
+
callId,
|
|
156
|
+
toolName,
|
|
157
|
+
rawResult,
|
|
158
|
+
{ success: true }
|
|
159
|
+
);
|
|
160
|
+
import_logger.logger.debug(
|
|
161
|
+
`[vercel] Emitting toolResult event for ${toolName} with callId ${callId}`
|
|
162
|
+
);
|
|
163
|
+
this.sessionEventBus.emit("llmservice:toolResult", {
|
|
164
|
+
toolName,
|
|
165
|
+
callId,
|
|
166
|
+
success: true,
|
|
167
|
+
sanitized: persisted,
|
|
168
|
+
...(0, import_debug.shouldIncludeRawToolResult)() ? { rawResult } : {}
|
|
169
|
+
});
|
|
170
|
+
const summaryText = (0, import_utils.summarizeToolContentForText)(persisted.content);
|
|
101
171
|
return summaryText;
|
|
102
172
|
} catch (err) {
|
|
173
|
+
let errorResult;
|
|
174
|
+
let errorFlags = "";
|
|
103
175
|
if (err instanceof import_DextoRuntimeError.DextoRuntimeError && err.code === import_error_codes2.ToolErrorCode.EXECUTION_DENIED) {
|
|
104
|
-
|
|
176
|
+
errorResult = { error: err.message, denied: true };
|
|
177
|
+
errorFlags = " (denied)";
|
|
178
|
+
} else if (err instanceof import_DextoRuntimeError.DextoRuntimeError && err.code === import_error_codes2.ToolErrorCode.CONFIRMATION_TIMEOUT) {
|
|
179
|
+
errorResult = { error: err.message, denied: true, timeout: true };
|
|
180
|
+
errorFlags = " (timeout)";
|
|
181
|
+
} else {
|
|
182
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
183
|
+
errorResult = { error: message };
|
|
105
184
|
}
|
|
106
|
-
|
|
107
|
-
|
|
185
|
+
try {
|
|
186
|
+
const persisted = await this.contextManager.addToolResult(
|
|
187
|
+
callId,
|
|
188
|
+
toolName,
|
|
189
|
+
errorResult,
|
|
190
|
+
{ success: false }
|
|
191
|
+
);
|
|
192
|
+
this.sessionEventBus.emit("llmservice:toolResult", {
|
|
193
|
+
toolName,
|
|
194
|
+
callId,
|
|
195
|
+
success: false,
|
|
196
|
+
sanitized: persisted,
|
|
197
|
+
...(0, import_debug.shouldIncludeRawToolResult)() ? { rawResult: errorResult } : {}
|
|
198
|
+
});
|
|
199
|
+
} catch (persistErr) {
|
|
200
|
+
import_logger.logger.error(
|
|
201
|
+
`Failed to persist error result for ${toolName}: ${String(persistErr)}`
|
|
202
|
+
);
|
|
108
203
|
}
|
|
109
|
-
|
|
110
|
-
return { error: message };
|
|
204
|
+
return `Tool ${toolName} failed${errorFlags}: ${errorResult.error}`;
|
|
111
205
|
}
|
|
112
206
|
},
|
|
113
207
|
...tool.description && { description: tool.description }
|
|
@@ -241,48 +335,6 @@ class VercelLLMService {
|
|
|
241
335
|
import_logger.logger.debug(
|
|
242
336
|
`Step finished, step tool results: ${JSON.stringify(step.toolResults, null, 2)}`
|
|
243
337
|
);
|
|
244
|
-
if (step.toolCalls && step.toolCalls.length > 0) {
|
|
245
|
-
for (const toolCall of step.toolCalls) {
|
|
246
|
-
this.sessionEventBus.emit("llmservice:toolCall", {
|
|
247
|
-
toolName: toolCall.toolName,
|
|
248
|
-
args: toolCall.input,
|
|
249
|
-
callId: toolCall.toolCallId
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
if (step.toolResults && step.toolResults.length > 0) {
|
|
254
|
-
for (const toolResult of step.toolResults) {
|
|
255
|
-
const callId = toolResult.toolCallId;
|
|
256
|
-
const sanitizedFromSdk = toolResult.output;
|
|
257
|
-
let raw;
|
|
258
|
-
if (callId) {
|
|
259
|
-
const q = this.rawResultsByCallId.get(callId) ?? [];
|
|
260
|
-
raw = q.shift();
|
|
261
|
-
if (q.length > 0) this.rawResultsByCallId.set(callId, q);
|
|
262
|
-
else this.rawResultsByCallId.delete(callId);
|
|
263
|
-
}
|
|
264
|
-
try {
|
|
265
|
-
const effectiveCallId = callId ?? `${toolResult.toolName}-${Date.now()}`;
|
|
266
|
-
const persisted = await this.contextManager.addToolResult(
|
|
267
|
-
effectiveCallId,
|
|
268
|
-
toolResult.toolName,
|
|
269
|
-
raw ?? sanitizedFromSdk,
|
|
270
|
-
{ success: true }
|
|
271
|
-
);
|
|
272
|
-
this.sessionEventBus.emit("llmservice:toolResult", {
|
|
273
|
-
toolName: toolResult.toolName,
|
|
274
|
-
callId: effectiveCallId,
|
|
275
|
-
success: true,
|
|
276
|
-
sanitized: persisted,
|
|
277
|
-
...(0, import_debug.shouldIncludeRawToolResult)() ? { rawResult: raw ?? sanitizedFromSdk } : {}
|
|
278
|
-
});
|
|
279
|
-
} catch (err) {
|
|
280
|
-
import_logger.logger.error(
|
|
281
|
-
`Failed to persist tool result for ${toolResult.toolName}: ${String(err)}`
|
|
282
|
-
);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
338
|
},
|
|
287
339
|
stopWhen: (0, import_ai.stepCountIs)(maxSteps),
|
|
288
340
|
...includeMaxOutputTokens ? { maxOutputTokens } : {},
|
|
@@ -309,6 +361,23 @@ class VercelLLMService {
|
|
|
309
361
|
}
|
|
310
362
|
}
|
|
311
363
|
});
|
|
364
|
+
const activeSpan = import_api.trace.getActiveSpan();
|
|
365
|
+
if (activeSpan) {
|
|
366
|
+
const attributes = {};
|
|
367
|
+
if (response.totalUsage.inputTokens !== void 0) {
|
|
368
|
+
attributes["gen_ai.usage.input_tokens"] = response.totalUsage.inputTokens;
|
|
369
|
+
}
|
|
370
|
+
if (response.totalUsage.outputTokens !== void 0) {
|
|
371
|
+
attributes["gen_ai.usage.output_tokens"] = response.totalUsage.outputTokens;
|
|
372
|
+
}
|
|
373
|
+
if (response.totalUsage.totalTokens !== void 0) {
|
|
374
|
+
attributes["gen_ai.usage.total_tokens"] = response.totalUsage.totalTokens;
|
|
375
|
+
}
|
|
376
|
+
if (response.totalUsage.reasoningTokens !== void 0) {
|
|
377
|
+
attributes["gen_ai.usage.reasoning_tokens"] = response.totalUsage.reasoningTokens;
|
|
378
|
+
}
|
|
379
|
+
activeSpan.setAttributes(attributes);
|
|
380
|
+
}
|
|
312
381
|
await this.contextManager.processLLMResponse(response);
|
|
313
382
|
if (typeof response.totalUsage.totalTokens === "number") {
|
|
314
383
|
this.contextManager.updateActualTokenCount(response.totalUsage.totalTokens);
|
|
@@ -432,48 +501,6 @@ class VercelLLMService {
|
|
|
432
501
|
import_logger.logger.debug(
|
|
433
502
|
`Step finished, step tool results: ${JSON.stringify(step.toolResults, null, 2)}`
|
|
434
503
|
);
|
|
435
|
-
if (step.toolCalls && step.toolCalls.length > 0) {
|
|
436
|
-
for (const toolCall of step.toolCalls) {
|
|
437
|
-
this.sessionEventBus.emit("llmservice:toolCall", {
|
|
438
|
-
toolName: toolCall.toolName,
|
|
439
|
-
args: toolCall.input,
|
|
440
|
-
callId: toolCall.toolCallId
|
|
441
|
-
});
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
if (step.toolResults && step.toolResults.length > 0) {
|
|
445
|
-
for (const toolResult of step.toolResults) {
|
|
446
|
-
const callId = toolResult.toolCallId;
|
|
447
|
-
const sanitizedFromSdk = toolResult.output;
|
|
448
|
-
let raw;
|
|
449
|
-
if (callId) {
|
|
450
|
-
const q = this.rawResultsByCallId.get(callId) ?? [];
|
|
451
|
-
raw = q.shift();
|
|
452
|
-
if (q.length > 0) this.rawResultsByCallId.set(callId, q);
|
|
453
|
-
else this.rawResultsByCallId.delete(callId);
|
|
454
|
-
}
|
|
455
|
-
try {
|
|
456
|
-
const effectiveCallId = callId ?? `${toolResult.toolName}-${Date.now()}`;
|
|
457
|
-
const persisted = await this.contextManager.addToolResult(
|
|
458
|
-
effectiveCallId,
|
|
459
|
-
toolResult.toolName,
|
|
460
|
-
raw ?? sanitizedFromSdk,
|
|
461
|
-
{ success: true }
|
|
462
|
-
);
|
|
463
|
-
this.sessionEventBus.emit("llmservice:toolResult", {
|
|
464
|
-
toolName: toolResult.toolName,
|
|
465
|
-
callId: effectiveCallId,
|
|
466
|
-
success: true,
|
|
467
|
-
sanitized: persisted,
|
|
468
|
-
...(0, import_debug.shouldIncludeRawToolResult)() ? { rawResult: raw ?? sanitizedFromSdk } : {}
|
|
469
|
-
});
|
|
470
|
-
} catch (err) {
|
|
471
|
-
import_logger.logger.error(
|
|
472
|
-
`Failed to persist tool result for ${toolResult.toolName}: ${String(err)}`
|
|
473
|
-
);
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
504
|
},
|
|
478
505
|
// No onFinish: we finalize after the stream completes below.
|
|
479
506
|
stopWhen: (0, import_ai.stepCountIs)(maxSteps),
|
|
@@ -504,6 +531,23 @@ class VercelLLMService {
|
|
|
504
531
|
...usage.totalTokens !== void 0 && { totalTokens: usage.totalTokens }
|
|
505
532
|
}
|
|
506
533
|
});
|
|
534
|
+
const activeSpan = import_api.trace.getActiveSpan();
|
|
535
|
+
if (activeSpan) {
|
|
536
|
+
const attributes = {};
|
|
537
|
+
if (usage.inputTokens !== void 0) {
|
|
538
|
+
attributes["gen_ai.usage.input_tokens"] = usage.inputTokens;
|
|
539
|
+
}
|
|
540
|
+
if (usage.outputTokens !== void 0) {
|
|
541
|
+
attributes["gen_ai.usage.output_tokens"] = usage.outputTokens;
|
|
542
|
+
}
|
|
543
|
+
if (usage.totalTokens !== void 0) {
|
|
544
|
+
attributes["gen_ai.usage.total_tokens"] = usage.totalTokens;
|
|
545
|
+
}
|
|
546
|
+
if (usage.reasoningTokens !== void 0) {
|
|
547
|
+
attributes["gen_ai.usage.reasoning_tokens"] = usage.reasoningTokens;
|
|
548
|
+
}
|
|
549
|
+
activeSpan.setAttributes(attributes);
|
|
550
|
+
}
|
|
507
551
|
if (typeof usage.totalTokens === "number") {
|
|
508
552
|
this.contextManager.updateActualTokenCount(usage.totalTokens);
|
|
509
553
|
}
|
|
@@ -550,6 +594,9 @@ class VercelLLMService {
|
|
|
550
594
|
return this.contextManager;
|
|
551
595
|
}
|
|
552
596
|
}
|
|
597
|
+
_init = __decoratorStart(null);
|
|
598
|
+
VercelLLMService = __decorateElement(_init, 0, "VercelLLMService", _VercelLLMService_decorators, VercelLLMService);
|
|
599
|
+
__runInitializers(_init, 1, VercelLLMService);
|
|
553
600
|
// Annotate the CommonJS export names for ESM import in node:
|
|
554
601
|
0 && (module.exports = {
|
|
555
602
|
VercelLLMService
|
|
@@ -12,6 +12,12 @@ import type { ValidatedLLMConfig } from '../schemas.js';
|
|
|
12
12
|
/**
|
|
13
13
|
* Vercel AI SDK implementation of LLMService
|
|
14
14
|
* TODO: improve token counting logic across all LLM services - approximation isn't matching vercel actual token count properly
|
|
15
|
+
* TODO (Telemetry): Add OpenTelemetry metrics collection
|
|
16
|
+
* - LLM call counters (by provider/model)
|
|
17
|
+
* - Token usage histograms (input/output/total/reasoning)
|
|
18
|
+
* - Request latency histograms
|
|
19
|
+
* - Error rate counters
|
|
20
|
+
* See feature-plans/telemetry.md for details
|
|
15
21
|
*/
|
|
16
22
|
export declare class VercelLLMService implements ILLMService {
|
|
17
23
|
private model;
|
|
@@ -21,7 +27,6 @@ export declare class VercelLLMService implements ILLMService {
|
|
|
21
27
|
private sessionEventBus;
|
|
22
28
|
private readonly sessionId;
|
|
23
29
|
private toolSupportCache;
|
|
24
|
-
private rawResultsByCallId;
|
|
25
30
|
/**
|
|
26
31
|
* Helper to extract model ID from LanguageModel union type (string | LanguageModelV2)
|
|
27
32
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/services/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,EAEb,KAAK,YAAY,EAGpB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAc,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/services/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,EAEb,KAAK,YAAY,EAGpB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAc,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD;;;;;;;;;GASG;AACH,qBAIa,gBAAiB,YAAW,WAAW;IAChD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAmC;IAE3D;;OAEG;IACH,OAAO,CAAC,UAAU;gBAKd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,aAAa,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,OAAO,0BAA0B,EAAE,eAAe;IAgCvE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa;YA6G5B,mBAAmB;IA4D3B,YAAY,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,EACjC,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,QAAQ,EACnB,MAAM,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IAgEZ,YAAY,CACd,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,aAAa,EACpB,QAAQ,GAAE,MAAW,EACrB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,MAAM,CAAC;IAuGlB,OAAO,CAAC,gBAAgB;IAgElB,UAAU,CACZ,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,aAAa,EACpB,QAAQ,GAAE,MAAW,EACrB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,MAAM,CAAC;IA8IlB;;;OAGG;IACH,SAAS,IAAI,gBAAgB;IAgC7B;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;CAG/C"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__decorateElement,
|
|
3
|
+
__decoratorStart,
|
|
4
|
+
__runInitializers
|
|
5
|
+
} from "../../chunk-C6A6W6XS.js";
|
|
6
|
+
var _VercelLLMService_decorators, _init;
|
|
1
7
|
import {
|
|
2
8
|
generateText,
|
|
3
9
|
streamText,
|
|
@@ -7,7 +13,7 @@ import {
|
|
|
7
13
|
import { logger } from "../../logger/index.js";
|
|
8
14
|
import { jsonSchema } from "ai";
|
|
9
15
|
import { ContextManager } from "../../context/manager.js";
|
|
10
|
-
import { summarizeToolContentForText
|
|
16
|
+
import { summarizeToolContentForText } from "../../context/utils.js";
|
|
11
17
|
import { shouldIncludeRawToolResult } from "../../utils/debug.js";
|
|
12
18
|
import { getMaxInputTokensForModel, getEffectiveMaxInputTokens } from "../registry.js";
|
|
13
19
|
import { DextoRuntimeError } from "../../errors/DextoRuntimeError.js";
|
|
@@ -17,6 +23,12 @@ import { toError } from "../../utils/error-conversion.js";
|
|
|
17
23
|
import { ToolErrorCode } from "../../tools/error-codes.js";
|
|
18
24
|
import { VercelMessageFormatter } from "../formatters/vercel.js";
|
|
19
25
|
import { createTokenizer } from "../tokenizer/factory.js";
|
|
26
|
+
import { InstrumentClass } from "../../telemetry/decorators.js";
|
|
27
|
+
import { trace } from "@opentelemetry/api";
|
|
28
|
+
_VercelLLMService_decorators = [InstrumentClass({
|
|
29
|
+
prefix: "llm.vercel",
|
|
30
|
+
excludeMethods: ["getModelId", "getAllTools", "formatTools", "validateToolSupport"]
|
|
31
|
+
})];
|
|
20
32
|
class VercelLLMService {
|
|
21
33
|
model;
|
|
22
34
|
config;
|
|
@@ -25,8 +37,6 @@ class VercelLLMService {
|
|
|
25
37
|
sessionEventBus;
|
|
26
38
|
sessionId;
|
|
27
39
|
toolSupportCache = /* @__PURE__ */ new Map();
|
|
28
|
-
// Map of toolCallId -> queue of raw results to emit with that callId
|
|
29
|
-
rawResultsByCallId = /* @__PURE__ */ new Map();
|
|
30
40
|
/**
|
|
31
41
|
* Helper to extract model ID from LanguageModel union type (string | LanguageModelV2)
|
|
32
42
|
*/
|
|
@@ -68,28 +78,72 @@ class VercelLLMService {
|
|
|
68
78
|
acc[toolName] = {
|
|
69
79
|
inputSchema: jsonSchema(tool.parameters),
|
|
70
80
|
execute: async (args, options) => {
|
|
81
|
+
const callId = options.toolCallId;
|
|
71
82
|
try {
|
|
83
|
+
logger.debug(
|
|
84
|
+
`[vercel] Emitting toolCall event for ${toolName} with callId ${callId}`
|
|
85
|
+
);
|
|
86
|
+
this.sessionEventBus.emit("llmservice:toolCall", {
|
|
87
|
+
toolName,
|
|
88
|
+
args,
|
|
89
|
+
callId
|
|
90
|
+
});
|
|
72
91
|
const rawResult = await this.toolManager.executeTool(
|
|
73
92
|
toolName,
|
|
74
93
|
args,
|
|
75
94
|
this.sessionId
|
|
76
95
|
);
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
96
|
+
const persisted = await this.contextManager.addToolResult(
|
|
97
|
+
callId,
|
|
98
|
+
toolName,
|
|
99
|
+
rawResult,
|
|
100
|
+
{ success: true }
|
|
101
|
+
);
|
|
102
|
+
logger.debug(
|
|
103
|
+
`[vercel] Emitting toolResult event for ${toolName} with callId ${callId}`
|
|
104
|
+
);
|
|
105
|
+
this.sessionEventBus.emit("llmservice:toolResult", {
|
|
106
|
+
toolName,
|
|
107
|
+
callId,
|
|
108
|
+
success: true,
|
|
109
|
+
sanitized: persisted,
|
|
110
|
+
...shouldIncludeRawToolResult() ? { rawResult } : {}
|
|
111
|
+
});
|
|
112
|
+
const summaryText = summarizeToolContentForText(persisted.content);
|
|
83
113
|
return summaryText;
|
|
84
114
|
} catch (err) {
|
|
115
|
+
let errorResult;
|
|
116
|
+
let errorFlags = "";
|
|
85
117
|
if (err instanceof DextoRuntimeError && err.code === ToolErrorCode.EXECUTION_DENIED) {
|
|
86
|
-
|
|
118
|
+
errorResult = { error: err.message, denied: true };
|
|
119
|
+
errorFlags = " (denied)";
|
|
120
|
+
} else if (err instanceof DextoRuntimeError && err.code === ToolErrorCode.CONFIRMATION_TIMEOUT) {
|
|
121
|
+
errorResult = { error: err.message, denied: true, timeout: true };
|
|
122
|
+
errorFlags = " (timeout)";
|
|
123
|
+
} else {
|
|
124
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
125
|
+
errorResult = { error: message };
|
|
87
126
|
}
|
|
88
|
-
|
|
89
|
-
|
|
127
|
+
try {
|
|
128
|
+
const persisted = await this.contextManager.addToolResult(
|
|
129
|
+
callId,
|
|
130
|
+
toolName,
|
|
131
|
+
errorResult,
|
|
132
|
+
{ success: false }
|
|
133
|
+
);
|
|
134
|
+
this.sessionEventBus.emit("llmservice:toolResult", {
|
|
135
|
+
toolName,
|
|
136
|
+
callId,
|
|
137
|
+
success: false,
|
|
138
|
+
sanitized: persisted,
|
|
139
|
+
...shouldIncludeRawToolResult() ? { rawResult: errorResult } : {}
|
|
140
|
+
});
|
|
141
|
+
} catch (persistErr) {
|
|
142
|
+
logger.error(
|
|
143
|
+
`Failed to persist error result for ${toolName}: ${String(persistErr)}`
|
|
144
|
+
);
|
|
90
145
|
}
|
|
91
|
-
|
|
92
|
-
return { error: message };
|
|
146
|
+
return `Tool ${toolName} failed${errorFlags}: ${errorResult.error}`;
|
|
93
147
|
}
|
|
94
148
|
},
|
|
95
149
|
...tool.description && { description: tool.description }
|
|
@@ -223,48 +277,6 @@ class VercelLLMService {
|
|
|
223
277
|
logger.debug(
|
|
224
278
|
`Step finished, step tool results: ${JSON.stringify(step.toolResults, null, 2)}`
|
|
225
279
|
);
|
|
226
|
-
if (step.toolCalls && step.toolCalls.length > 0) {
|
|
227
|
-
for (const toolCall of step.toolCalls) {
|
|
228
|
-
this.sessionEventBus.emit("llmservice:toolCall", {
|
|
229
|
-
toolName: toolCall.toolName,
|
|
230
|
-
args: toolCall.input,
|
|
231
|
-
callId: toolCall.toolCallId
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
if (step.toolResults && step.toolResults.length > 0) {
|
|
236
|
-
for (const toolResult of step.toolResults) {
|
|
237
|
-
const callId = toolResult.toolCallId;
|
|
238
|
-
const sanitizedFromSdk = toolResult.output;
|
|
239
|
-
let raw;
|
|
240
|
-
if (callId) {
|
|
241
|
-
const q = this.rawResultsByCallId.get(callId) ?? [];
|
|
242
|
-
raw = q.shift();
|
|
243
|
-
if (q.length > 0) this.rawResultsByCallId.set(callId, q);
|
|
244
|
-
else this.rawResultsByCallId.delete(callId);
|
|
245
|
-
}
|
|
246
|
-
try {
|
|
247
|
-
const effectiveCallId = callId ?? `${toolResult.toolName}-${Date.now()}`;
|
|
248
|
-
const persisted = await this.contextManager.addToolResult(
|
|
249
|
-
effectiveCallId,
|
|
250
|
-
toolResult.toolName,
|
|
251
|
-
raw ?? sanitizedFromSdk,
|
|
252
|
-
{ success: true }
|
|
253
|
-
);
|
|
254
|
-
this.sessionEventBus.emit("llmservice:toolResult", {
|
|
255
|
-
toolName: toolResult.toolName,
|
|
256
|
-
callId: effectiveCallId,
|
|
257
|
-
success: true,
|
|
258
|
-
sanitized: persisted,
|
|
259
|
-
...shouldIncludeRawToolResult() ? { rawResult: raw ?? sanitizedFromSdk } : {}
|
|
260
|
-
});
|
|
261
|
-
} catch (err) {
|
|
262
|
-
logger.error(
|
|
263
|
-
`Failed to persist tool result for ${toolResult.toolName}: ${String(err)}`
|
|
264
|
-
);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
280
|
},
|
|
269
281
|
stopWhen: stepCountIs(maxSteps),
|
|
270
282
|
...includeMaxOutputTokens ? { maxOutputTokens } : {},
|
|
@@ -291,6 +303,23 @@ class VercelLLMService {
|
|
|
291
303
|
}
|
|
292
304
|
}
|
|
293
305
|
});
|
|
306
|
+
const activeSpan = trace.getActiveSpan();
|
|
307
|
+
if (activeSpan) {
|
|
308
|
+
const attributes = {};
|
|
309
|
+
if (response.totalUsage.inputTokens !== void 0) {
|
|
310
|
+
attributes["gen_ai.usage.input_tokens"] = response.totalUsage.inputTokens;
|
|
311
|
+
}
|
|
312
|
+
if (response.totalUsage.outputTokens !== void 0) {
|
|
313
|
+
attributes["gen_ai.usage.output_tokens"] = response.totalUsage.outputTokens;
|
|
314
|
+
}
|
|
315
|
+
if (response.totalUsage.totalTokens !== void 0) {
|
|
316
|
+
attributes["gen_ai.usage.total_tokens"] = response.totalUsage.totalTokens;
|
|
317
|
+
}
|
|
318
|
+
if (response.totalUsage.reasoningTokens !== void 0) {
|
|
319
|
+
attributes["gen_ai.usage.reasoning_tokens"] = response.totalUsage.reasoningTokens;
|
|
320
|
+
}
|
|
321
|
+
activeSpan.setAttributes(attributes);
|
|
322
|
+
}
|
|
294
323
|
await this.contextManager.processLLMResponse(response);
|
|
295
324
|
if (typeof response.totalUsage.totalTokens === "number") {
|
|
296
325
|
this.contextManager.updateActualTokenCount(response.totalUsage.totalTokens);
|
|
@@ -414,48 +443,6 @@ class VercelLLMService {
|
|
|
414
443
|
logger.debug(
|
|
415
444
|
`Step finished, step tool results: ${JSON.stringify(step.toolResults, null, 2)}`
|
|
416
445
|
);
|
|
417
|
-
if (step.toolCalls && step.toolCalls.length > 0) {
|
|
418
|
-
for (const toolCall of step.toolCalls) {
|
|
419
|
-
this.sessionEventBus.emit("llmservice:toolCall", {
|
|
420
|
-
toolName: toolCall.toolName,
|
|
421
|
-
args: toolCall.input,
|
|
422
|
-
callId: toolCall.toolCallId
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
if (step.toolResults && step.toolResults.length > 0) {
|
|
427
|
-
for (const toolResult of step.toolResults) {
|
|
428
|
-
const callId = toolResult.toolCallId;
|
|
429
|
-
const sanitizedFromSdk = toolResult.output;
|
|
430
|
-
let raw;
|
|
431
|
-
if (callId) {
|
|
432
|
-
const q = this.rawResultsByCallId.get(callId) ?? [];
|
|
433
|
-
raw = q.shift();
|
|
434
|
-
if (q.length > 0) this.rawResultsByCallId.set(callId, q);
|
|
435
|
-
else this.rawResultsByCallId.delete(callId);
|
|
436
|
-
}
|
|
437
|
-
try {
|
|
438
|
-
const effectiveCallId = callId ?? `${toolResult.toolName}-${Date.now()}`;
|
|
439
|
-
const persisted = await this.contextManager.addToolResult(
|
|
440
|
-
effectiveCallId,
|
|
441
|
-
toolResult.toolName,
|
|
442
|
-
raw ?? sanitizedFromSdk,
|
|
443
|
-
{ success: true }
|
|
444
|
-
);
|
|
445
|
-
this.sessionEventBus.emit("llmservice:toolResult", {
|
|
446
|
-
toolName: toolResult.toolName,
|
|
447
|
-
callId: effectiveCallId,
|
|
448
|
-
success: true,
|
|
449
|
-
sanitized: persisted,
|
|
450
|
-
...shouldIncludeRawToolResult() ? { rawResult: raw ?? sanitizedFromSdk } : {}
|
|
451
|
-
});
|
|
452
|
-
} catch (err) {
|
|
453
|
-
logger.error(
|
|
454
|
-
`Failed to persist tool result for ${toolResult.toolName}: ${String(err)}`
|
|
455
|
-
);
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
446
|
},
|
|
460
447
|
// No onFinish: we finalize after the stream completes below.
|
|
461
448
|
stopWhen: stepCountIs(maxSteps),
|
|
@@ -486,6 +473,23 @@ class VercelLLMService {
|
|
|
486
473
|
...usage.totalTokens !== void 0 && { totalTokens: usage.totalTokens }
|
|
487
474
|
}
|
|
488
475
|
});
|
|
476
|
+
const activeSpan = trace.getActiveSpan();
|
|
477
|
+
if (activeSpan) {
|
|
478
|
+
const attributes = {};
|
|
479
|
+
if (usage.inputTokens !== void 0) {
|
|
480
|
+
attributes["gen_ai.usage.input_tokens"] = usage.inputTokens;
|
|
481
|
+
}
|
|
482
|
+
if (usage.outputTokens !== void 0) {
|
|
483
|
+
attributes["gen_ai.usage.output_tokens"] = usage.outputTokens;
|
|
484
|
+
}
|
|
485
|
+
if (usage.totalTokens !== void 0) {
|
|
486
|
+
attributes["gen_ai.usage.total_tokens"] = usage.totalTokens;
|
|
487
|
+
}
|
|
488
|
+
if (usage.reasoningTokens !== void 0) {
|
|
489
|
+
attributes["gen_ai.usage.reasoning_tokens"] = usage.reasoningTokens;
|
|
490
|
+
}
|
|
491
|
+
activeSpan.setAttributes(attributes);
|
|
492
|
+
}
|
|
489
493
|
if (typeof usage.totalTokens === "number") {
|
|
490
494
|
this.contextManager.updateActualTokenCount(usage.totalTokens);
|
|
491
495
|
}
|
|
@@ -532,6 +536,9 @@ class VercelLLMService {
|
|
|
532
536
|
return this.contextManager;
|
|
533
537
|
}
|
|
534
538
|
}
|
|
539
|
+
_init = __decoratorStart(null);
|
|
540
|
+
VercelLLMService = __decorateElement(_init, 0, "VercelLLMService", _VercelLLMService_decorators, VercelLLMService);
|
|
541
|
+
__runInitializers(_init, 1, VercelLLMService);
|
|
535
542
|
export {
|
|
536
543
|
VercelLLMService
|
|
537
544
|
};
|
|
@@ -33,7 +33,7 @@ class OpenAITokenizer {
|
|
|
33
33
|
// Tiktoken encoding instance
|
|
34
34
|
/**
|
|
35
35
|
* Initializes the tokenizer for a specific OpenAI model or compatible model.
|
|
36
|
-
* @param model The OpenAI model name (e.g., 'gpt-
|
|
36
|
+
* @param model The OpenAI model name (e.g., 'gpt-5') or a custom model name.
|
|
37
37
|
* @throws TokenizationError if tiktoken initialization fails for both specific model and fallback.
|
|
38
38
|
*/
|
|
39
39
|
constructor(model) {
|