@dexto/core 1.2.4 → 1.2.6
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 +60 -0
- package/dist/agent/DextoAgent.cjs +579 -345
- package/dist/agent/DextoAgent.d.ts +131 -83
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +573 -336
- package/dist/agent/agentCard.cjs +4 -2
- package/dist/agent/agentCard.d.ts +0 -1
- package/dist/agent/agentCard.d.ts.map +1 -1
- package/dist/agent/agentCard.js +4 -2
- package/dist/agent/index.cjs +3 -7
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +7 -6
- package/dist/agent/schemas.cjs +179 -75
- package/dist/agent/schemas.d.ts +2678 -586
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +172 -65
- package/dist/agent/state-manager.cjs +28 -23
- package/dist/agent/state-manager.d.ts +4 -1
- package/dist/agent/state-manager.d.ts.map +1 -1
- package/dist/agent/state-manager.js +28 -23
- package/dist/{preferences/constants.cjs → agent/types.cjs} +2 -14
- package/dist/agent/types.d.ts +54 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +0 -0
- package/dist/approval/errors.cjs +89 -8
- package/dist/approval/errors.d.ts +5 -3
- package/dist/approval/errors.d.ts.map +1 -1
- package/dist/approval/errors.js +89 -8
- package/dist/approval/{providers/factory.d.ts → factory.d.ts} +2 -2
- package/dist/approval/factory.d.ts.map +1 -0
- package/dist/approval/{providers/factory.js → factory.js} +1 -1
- package/dist/approval/index.cjs +4 -6
- package/dist/approval/index.d.ts +3 -5
- package/dist/approval/index.d.ts.map +1 -1
- package/dist/approval/index.js +4 -5
- package/dist/approval/manager.cjs +140 -37
- package/dist/approval/manager.d.ts +56 -17
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +141 -38
- package/dist/approval/schemas.cjs +9 -1
- package/dist/approval/schemas.d.ts +120 -35
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +9 -2
- package/dist/approval/types.cjs +14 -2
- package/dist/approval/types.d.ts +64 -12
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +12 -1
- package/dist/context/compression/middle-removal.cjs +11 -11
- package/dist/context/compression/middle-removal.d.ts +3 -1
- package/dist/context/compression/middle-removal.d.ts.map +1 -1
- package/dist/context/compression/middle-removal.js +11 -11
- package/dist/context/compression/oldest-removal.cjs +18 -5
- package/dist/context/compression/oldest-removal.d.ts +3 -1
- package/dist/context/compression/oldest-removal.d.ts.map +1 -1
- package/dist/context/compression/oldest-removal.js +18 -5
- package/dist/context/manager.cjs +94 -67
- package/dist/context/manager.d.ts +13 -10
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +94 -67
- package/dist/context/utils.cjs +79 -65
- package/dist/context/utils.d.ts +15 -12
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +45 -31
- package/dist/errors/DextoRuntimeError.d.ts +5 -5
- package/dist/errors/DextoRuntimeError.d.ts.map +1 -1
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts +5 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +1 -2
- package/dist/errors/types.cjs +1 -2
- package/dist/errors/types.d.ts +5 -8
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +1 -2
- package/dist/events/index.cjs +125 -55
- package/dist/events/index.d.ts +204 -97
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +123 -55
- package/dist/filesystem/filesystem-service.cjs +40 -30
- package/dist/filesystem/filesystem-service.d.ts +9 -1
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +40 -30
- package/dist/filesystem/path-validator.cjs +4 -3
- package/dist/filesystem/path-validator.d.ts +3 -1
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +4 -3
- package/dist/filesystem/types.d.ts +3 -3
- package/dist/filesystem/types.d.ts.map +1 -1
- package/dist/index.browser.cjs +7 -0
- package/dist/index.browser.d.ts +2 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +4 -0
- package/dist/index.cjs +0 -7
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/llm/formatters/anthropic.cjs +32 -21
- package/dist/llm/formatters/anthropic.d.ts +3 -0
- package/dist/llm/formatters/anthropic.d.ts.map +1 -1
- package/dist/llm/formatters/anthropic.js +32 -21
- package/dist/llm/formatters/factory.cjs +6 -7
- package/dist/llm/formatters/factory.d.ts +2 -1
- package/dist/llm/formatters/factory.d.ts.map +1 -1
- package/dist/llm/formatters/factory.js +4 -5
- package/dist/llm/formatters/openai.cjs +38 -9
- package/dist/llm/formatters/openai.d.ts +3 -0
- package/dist/llm/formatters/openai.d.ts.map +1 -1
- package/dist/llm/formatters/openai.js +38 -9
- package/dist/llm/formatters/vercel.cjs +49 -8
- package/dist/llm/formatters/vercel.d.ts +3 -0
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +49 -8
- package/dist/llm/registry.cjs +153 -17
- package/dist/llm/registry.d.ts +5 -2
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +143 -7
- package/dist/llm/resolver.cjs +4 -4
- package/dist/llm/resolver.d.ts +3 -2
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +4 -4
- package/dist/llm/schemas.cjs +6 -3
- package/dist/llm/schemas.d.ts +51 -17
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +5 -3
- package/dist/llm/services/anthropic.cjs +216 -183
- package/dist/llm/services/anthropic.d.ts +3 -1
- package/dist/llm/services/anthropic.d.ts.map +1 -1
- package/dist/llm/services/anthropic.js +217 -184
- package/dist/llm/services/factory.cjs +15 -9
- package/dist/llm/services/factory.d.ts +2 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +15 -9
- package/dist/llm/services/openai.cjs +262 -225
- package/dist/llm/services/openai.d.ts +3 -1
- package/dist/llm/services/openai.d.ts.map +1 -1
- package/dist/llm/services/openai.js +263 -226
- package/dist/llm/services/test-utils.integration.cjs +58 -12
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +58 -12
- package/dist/llm/services/types.d.ts +9 -0
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +163 -111
- package/dist/llm/services/vercel.d.ts +3 -1
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +157 -105
- package/dist/llm/tokenizer/factory.cjs +2 -2
- package/dist/llm/tokenizer/factory.d.ts +3 -1
- package/dist/llm/tokenizer/factory.d.ts.map +1 -1
- package/dist/llm/tokenizer/factory.js +2 -2
- package/dist/llm/tokenizer/openai.cjs +16 -9
- package/dist/llm/tokenizer/openai.d.ts +4 -1
- package/dist/llm/tokenizer/openai.d.ts.map +1 -1
- package/dist/llm/tokenizer/openai.js +16 -9
- package/dist/llm/validation.cjs +8 -9
- package/dist/llm/validation.d.ts +3 -1
- package/dist/llm/validation.d.ts.map +1 -1
- package/dist/llm/validation.js +5 -6
- package/dist/logger/factory.cjs +54 -0
- package/dist/logger/factory.d.ts +36 -0
- package/dist/logger/factory.d.ts.map +1 -0
- package/dist/logger/factory.js +31 -0
- package/dist/logger/index.cjs +42 -3
- package/dist/logger/index.d.ts +17 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +26 -1
- package/dist/logger/logger.cjs +30 -17
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +30 -17
- package/dist/logger/v2/dexto-logger.cjs +141 -0
- package/dist/logger/v2/dexto-logger.d.ts +54 -0
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -0
- package/dist/logger/v2/dexto-logger.js +118 -0
- package/dist/{preferences → logger/v2}/error-codes.cjs +11 -10
- package/dist/logger/v2/error-codes.d.ts +13 -0
- package/dist/logger/v2/error-codes.d.ts.map +1 -0
- package/dist/logger/v2/error-codes.js +13 -0
- package/dist/logger/v2/errors.cjs +107 -0
- package/dist/logger/v2/errors.d.ts +32 -0
- package/dist/logger/v2/errors.d.ts.map +1 -0
- package/dist/logger/v2/errors.js +84 -0
- package/dist/logger/v2/schemas.cjs +57 -0
- package/dist/logger/v2/schemas.d.ts +147 -0
- package/dist/logger/v2/schemas.d.ts.map +1 -0
- package/dist/logger/v2/schemas.js +33 -0
- package/dist/logger/v2/transport-factory.cjs +53 -0
- package/dist/logger/v2/transport-factory.d.ts +21 -0
- package/dist/logger/v2/transport-factory.d.ts.map +1 -0
- package/dist/logger/v2/transport-factory.js +29 -0
- package/dist/logger/v2/transports/console-transport.cjs +79 -0
- package/dist/logger/v2/transports/console-transport.d.ts +23 -0
- package/dist/logger/v2/transports/console-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/console-transport.js +46 -0
- package/dist/logger/v2/transports/file-transport.cjs +161 -0
- package/dist/logger/v2/transports/file-transport.d.ts +46 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/file-transport.js +128 -0
- package/dist/logger/v2/types.cjs +49 -0
- package/dist/logger/v2/types.d.ts +123 -0
- package/dist/logger/v2/types.d.ts.map +1 -0
- package/dist/logger/v2/types.js +26 -0
- package/dist/mcp/manager.cjs +88 -78
- package/dist/mcp/manager.d.ts +3 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +88 -78
- package/dist/mcp/mcp-client.cjs +109 -79
- package/dist/mcp/mcp-client.d.ts +3 -0
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +102 -72
- package/dist/memory/index.cjs +2 -0
- package/dist/memory/index.d.ts +1 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +3 -1
- package/dist/memory/manager.cjs +9 -7
- package/dist/memory/manager.d.ts +3 -1
- package/dist/memory/manager.d.ts.map +1 -1
- package/dist/memory/manager.js +9 -7
- package/dist/memory/schemas.cjs +10 -0
- package/dist/memory/schemas.d.ts +37 -8
- package/dist/memory/schemas.d.ts.map +1 -1
- package/dist/memory/schemas.js +9 -0
- package/dist/plugins/manager.cjs +21 -19
- package/dist/plugins/manager.d.ts +3 -1
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +21 -19
- package/dist/plugins/schemas.d.ts +9 -9
- package/dist/plugins/types.d.ts +2 -2
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.cjs +30 -20
- package/dist/process/command-validator.d.ts +4 -1
- package/dist/process/command-validator.d.ts.map +1 -1
- package/dist/process/command-validator.js +30 -20
- package/dist/process/process-service.cjs +23 -21
- package/dist/process/process-service.d.ts +3 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +23 -21
- package/dist/prompts/index.cjs +6 -8
- package/dist/prompts/index.d.ts +2 -4
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +4 -6
- package/dist/prompts/prompt-manager.cjs +25 -20
- package/dist/prompts/prompt-manager.d.ts +3 -1
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +25 -20
- package/dist/prompts/providers/config-prompt-provider.cjs +331 -0
- package/dist/prompts/providers/config-prompt-provider.d.ts +34 -0
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -0
- package/dist/prompts/providers/config-prompt-provider.js +308 -0
- package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
- package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/custom-prompt-provider.js +11 -7
- package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
- package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
- package/dist/prompts/schemas.cjs +42 -23
- package/dist/prompts/schemas.d.ts +123 -14
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +39 -22
- package/dist/prompts/types.d.ts +1 -1
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.cjs +15 -11
- package/dist/resources/handlers/blob-handler.d.ts +3 -1
- package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.js +15 -11
- package/dist/resources/handlers/factory.cjs +3 -3
- package/dist/resources/handlers/factory.d.ts +2 -1
- package/dist/resources/handlers/factory.d.ts.map +1 -1
- package/dist/resources/handlers/factory.js +3 -3
- package/dist/resources/handlers/filesystem-handler.cjs +10 -8
- package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +10 -8
- package/dist/resources/internal-provider.cjs +28 -20
- package/dist/resources/internal-provider.d.ts +3 -1
- package/dist/resources/internal-provider.d.ts.map +1 -1
- package/dist/resources/internal-provider.js +28 -20
- package/dist/resources/manager.cjs +34 -25
- package/dist/resources/manager.d.ts +3 -1
- package/dist/resources/manager.d.ts.map +1 -1
- package/dist/resources/manager.js +34 -25
- package/dist/resources/schemas.d.ts +6 -6
- package/dist/search/search-service.cjs +8 -6
- package/dist/search/search-service.d.ts +3 -1
- package/dist/search/search-service.d.ts.map +1 -1
- package/dist/search/search-service.js +8 -6
- package/dist/session/chat-session.cjs +40 -27
- package/dist/session/chat-session.d.ts +10 -7
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +40 -27
- package/dist/session/history/database.cjs +18 -11
- package/dist/session/history/database.d.ts +3 -1
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +18 -11
- package/dist/session/history/factory.cjs +2 -2
- package/dist/session/history/factory.d.ts +5 -1
- package/dist/session/history/factory.d.ts.map +1 -1
- package/dist/session/history/factory.js +2 -2
- package/dist/session/session-manager.cjs +37 -53
- package/dist/session/session-manager.d.ts +3 -17
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +37 -53
- package/dist/session/title-generator.cjs +3 -2
- package/dist/session/title-generator.d.ts +2 -1
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +3 -2
- package/dist/storage/blob/factory.cjs +9 -18
- package/dist/storage/blob/factory.d.ts +5 -4
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +8 -17
- package/dist/storage/blob/local-blob-store.cjs +25 -32
- package/dist/storage/blob/local-blob-store.d.ts +3 -2
- package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
- package/dist/storage/blob/local-blob-store.js +25 -32
- package/dist/storage/blob/memory-blob-store.cjs +326 -0
- package/dist/storage/blob/memory-blob-store.d.ts +66 -0
- package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
- package/dist/storage/blob/memory-blob-store.js +303 -0
- package/dist/storage/blob/schemas.cjs +3 -1
- package/dist/storage/blob/schemas.d.ts +6 -6
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +3 -1
- package/dist/storage/cache/factory.cjs +7 -8
- package/dist/storage/cache/factory.d.ts +4 -1
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +4 -5
- package/dist/storage/cache/redis-store.cjs +4 -1
- package/dist/storage/cache/redis-store.d.ts +3 -1
- package/dist/storage/cache/redis-store.d.ts.map +1 -1
- package/dist/storage/cache/redis-store.js +4 -1
- package/dist/storage/database/factory.cjs +13 -16
- package/dist/storage/database/factory.d.ts +5 -3
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +9 -12
- package/dist/storage/database/postgres-store.cjs +4 -1
- package/dist/storage/database/postgres-store.d.ts +3 -1
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +4 -1
- package/dist/storage/database/schemas.cjs +3 -4
- package/dist/storage/database/schemas.d.ts +8 -16
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +3 -4
- package/dist/storage/database/sqlite-store.cjs +17 -45
- package/dist/storage/database/sqlite-store.d.ts +3 -3
- package/dist/storage/database/sqlite-store.d.ts.map +1 -1
- package/dist/storage/database/sqlite-store.js +17 -45
- package/dist/storage/schemas.cjs +3 -1
- package/dist/storage/schemas.d.ts +16 -23
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +3 -1
- package/dist/storage/storage-manager.cjs +15 -15
- package/dist/storage/storage-manager.d.ts +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +15 -15
- package/dist/systemPrompt/contributors.cjs +15 -15
- package/dist/systemPrompt/contributors.d.ts +5 -3
- package/dist/systemPrompt/contributors.d.ts.map +1 -1
- package/dist/systemPrompt/contributors.js +15 -15
- package/dist/systemPrompt/in-built-prompts.cjs +0 -5
- package/dist/systemPrompt/in-built-prompts.d.ts +1 -2
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +0 -4
- package/dist/systemPrompt/manager.cjs +31 -23
- package/dist/systemPrompt/manager.d.ts +5 -3
- package/dist/systemPrompt/manager.d.ts.map +1 -1
- package/dist/systemPrompt/manager.js +31 -23
- package/dist/systemPrompt/registry.cjs +1 -2
- package/dist/systemPrompt/registry.d.ts +1 -1
- package/dist/systemPrompt/registry.d.ts.map +1 -1
- package/dist/systemPrompt/registry.js +1 -2
- package/dist/systemPrompt/schemas.cjs +24 -18
- package/dist/systemPrompt/schemas.d.ts +46 -222
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +14 -18
- package/dist/telemetry/decorators.cjs +54 -15
- package/dist/telemetry/decorators.d.ts.map +1 -1
- package/dist/telemetry/decorators.js +54 -15
- package/dist/telemetry/utils.cjs +21 -14
- package/dist/telemetry/utils.d.ts +7 -3
- package/dist/telemetry/utils.d.ts.map +1 -1
- package/dist/telemetry/utils.js +21 -14
- package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
- package/dist/tools/errors.cjs +2 -1
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +2 -1
- package/dist/tools/internal-tools/constants.cjs +2 -1
- package/dist/tools/internal-tools/constants.d.ts +1 -1
- package/dist/tools/internal-tools/constants.d.ts.map +1 -1
- package/dist/tools/internal-tools/constants.js +2 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
- package/dist/tools/internal-tools/provider.cjs +21 -17
- package/dist/tools/internal-tools/provider.d.ts +3 -1
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +21 -17
- package/dist/tools/internal-tools/registry.cjs +5 -0
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +5 -0
- package/dist/tools/schemas.cjs +16 -4
- package/dist/tools/schemas.d.ts +21 -9
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +15 -4
- package/dist/tools/tool-manager.cjs +64 -47
- package/dist/tools/tool-manager.d.ts +4 -2
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +61 -44
- package/dist/tools/types.d.ts +0 -4
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/env-file.cjs +118 -0
- package/dist/utils/env-file.d.ts +5 -0
- package/dist/utils/env-file.d.ts.map +1 -0
- package/dist/utils/env-file.js +85 -0
- package/dist/utils/error-conversion.cjs +23 -1
- package/dist/utils/error-conversion.d.ts +2 -1
- package/dist/utils/error-conversion.d.ts.map +1 -1
- package/dist/utils/error-conversion.js +23 -1
- package/dist/utils/execution-context.d.ts.map +1 -1
- package/dist/utils/fs-walk.d.ts.map +1 -1
- package/dist/utils/index.cjs +7 -9
- package/dist/utils/index.d.ts +3 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -4
- package/dist/utils/path.cjs +22 -57
- package/dist/utils/path.d.ts +8 -7
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +21 -54
- package/dist/utils/result.cjs +37 -14
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/result.js +37 -14
- package/dist/utils/schema.cjs +2 -3
- package/dist/utils/schema.d.ts +2 -1
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +1 -2
- package/dist/utils/service-initializer.cjs +88 -61
- package/dist/utils/service-initializer.d.ts +4 -2
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +70 -43
- package/package.json +7 -3
- package/dist/Dexto.cjs +0 -251
- package/dist/Dexto.d.ts +0 -191
- package/dist/Dexto.d.ts.map +0 -1
- package/dist/Dexto.js +0 -228
- package/dist/agent/registry/error-codes.cjs +0 -44
- package/dist/agent/registry/error-codes.d.ts +0 -21
- package/dist/agent/registry/error-codes.d.ts.map +0 -1
- package/dist/agent/registry/error-codes.js +0 -21
- package/dist/agent/registry/errors.cjs +0 -188
- package/dist/agent/registry/errors.d.ts +0 -63
- package/dist/agent/registry/errors.d.ts.map +0 -1
- package/dist/agent/registry/errors.js +0 -165
- package/dist/agent/registry/registry.cjs +0 -479
- package/dist/agent/registry/registry.d.ts +0 -130
- package/dist/agent/registry/registry.d.ts.map +0 -1
- package/dist/agent/registry/registry.js +0 -453
- package/dist/agent/registry/types.cjs +0 -74
- package/dist/agent/registry/types.d.ts +0 -142
- package/dist/agent/registry/types.d.ts.map +0 -1
- package/dist/agent/registry/types.js +0 -48
- package/dist/agent/registry/user-registry.cjs +0 -140
- package/dist/agent/registry/user-registry.d.ts +0 -34
- package/dist/agent/registry/user-registry.d.ts.map +0 -1
- package/dist/agent/registry/user-registry.js +0 -105
- package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
- package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
- package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/event-based-approval-provider.js +0 -133
- package/dist/approval/providers/factory.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.cjs +0 -54
- package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
- package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.js +0 -31
- package/dist/config/agent-resolver.cjs +0 -153
- package/dist/config/agent-resolver.d.ts +0 -14
- package/dist/config/agent-resolver.d.ts.map +0 -1
- package/dist/config/agent-resolver.js +0 -123
- package/dist/config/error-codes.cjs +0 -39
- package/dist/config/error-codes.d.ts +0 -16
- package/dist/config/error-codes.d.ts.map +0 -1
- package/dist/config/error-codes.js +0 -16
- package/dist/config/errors.cjs +0 -126
- package/dist/config/errors.d.ts +0 -34
- package/dist/config/errors.d.ts.map +0 -1
- package/dist/config/errors.js +0 -103
- package/dist/config/index.cjs +0 -26
- package/dist/config/index.d.ts +0 -4
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -3
- package/dist/config/loader.cjs +0 -119
- package/dist/config/loader.d.ts +0 -16
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -86
- package/dist/config/writer.cjs +0 -182
- package/dist/config/writer.d.ts +0 -35
- package/dist/config/writer.d.ts.map +0 -1
- package/dist/config/writer.js +0 -147
- package/dist/preferences/constants.d.ts +0 -2
- package/dist/preferences/constants.d.ts.map +0 -1
- package/dist/preferences/constants.js +0 -5
- package/dist/preferences/error-codes.d.ts +0 -8
- package/dist/preferences/error-codes.d.ts.map +0 -1
- package/dist/preferences/error-codes.js +0 -12
- package/dist/preferences/errors.cjs +0 -75
- package/dist/preferences/errors.d.ts +0 -18
- package/dist/preferences/errors.d.ts.map +0 -1
- package/dist/preferences/errors.js +0 -51
- package/dist/preferences/index.cjs +0 -55
- package/dist/preferences/index.d.ts +0 -6
- package/dist/preferences/index.d.ts.map +0 -1
- package/dist/preferences/index.js +0 -32
- package/dist/preferences/loader.cjs +0 -138
- package/dist/preferences/loader.d.ts +0 -51
- package/dist/preferences/loader.d.ts.map +0 -1
- package/dist/preferences/loader.js +0 -110
- package/dist/preferences/schemas.cjs +0 -75
- package/dist/preferences/schemas.d.ts +0 -110
- package/dist/preferences/schemas.d.ts.map +0 -1
- package/dist/preferences/schemas.js +0 -49
- package/dist/prompts/providers/file-prompt-provider.cjs +0 -399
- package/dist/prompts/providers/file-prompt-provider.d.ts +0 -47
- package/dist/prompts/providers/file-prompt-provider.d.ts.map +0 -1
- package/dist/prompts/providers/file-prompt-provider.js +0 -376
- package/dist/prompts/providers/starter-prompt-provider.cjs +0 -170
- package/dist/prompts/providers/starter-prompt-provider.d.ts +0 -45
- package/dist/prompts/providers/starter-prompt-provider.d.ts.map +0 -1
- package/dist/prompts/providers/starter-prompt-provider.js +0 -147
- package/dist/utils/api-key-store.cjs +0 -56
- package/dist/utils/api-key-store.d.ts +0 -24
- package/dist/utils/api-key-store.d.ts.map +0 -1
- package/dist/utils/api-key-store.js +0 -31
- package/dist/utils/env.cjs +0 -154
- package/dist/utils/env.d.ts +0 -28
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -119
- package/dist/utils/port-utils.cjs +0 -37
- package/dist/utils/port-utils.d.ts +0 -10
- package/dist/utils/port-utils.d.ts.map +0 -1
- package/dist/utils/port-utils.js +0 -14
- package/dist/utils/port-utils.spec.cjs +0 -26
- package/dist/utils/port-utils.spec.js +0 -25
- /package/dist/approval/{providers/factory.cjs → factory.cjs} +0 -0
|
@@ -2,6 +2,7 @@ import { MCPManager } from '../mcp/manager.js';
|
|
|
2
2
|
import { InternalToolsServices } from './internal-tools/registry.js';
|
|
3
3
|
import type { InternalToolsConfig, ToolPolicies } from './schemas.js';
|
|
4
4
|
import { ToolSet } from './types.js';
|
|
5
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
5
6
|
import type { AgentEventBus } from '../events/index.js';
|
|
6
7
|
import type { ApprovalManager } from '../approval/manager.js';
|
|
7
8
|
import type { IAllowedToolsProvider } from './confirmation/allowed-tools-provider/types.js';
|
|
@@ -56,7 +57,8 @@ export declare class ToolManager {
|
|
|
56
57
|
private static readonly INTERNAL_TOOL_PREFIX;
|
|
57
58
|
private toolsCache;
|
|
58
59
|
private cacheValid;
|
|
59
|
-
|
|
60
|
+
private logger;
|
|
61
|
+
constructor(mcpManager: MCPManager, approvalManager: ApprovalManager, allowedToolsProvider: IAllowedToolsProvider, approvalMode: 'manual' | 'auto-approve' | 'auto-deny', agentEventBus: AgentEventBus, toolPolicies: ToolPolicies, options: InternalToolsOptions, logger: IDextoLogger);
|
|
60
62
|
/**
|
|
61
63
|
* Initialize the ToolManager and its components
|
|
62
64
|
*/
|
|
@@ -153,7 +155,7 @@ export declare class ToolManager {
|
|
|
153
155
|
private isInAlwaysAllowList;
|
|
154
156
|
/**
|
|
155
157
|
* Handle tool approval/confirmation flow
|
|
156
|
-
* Checks allowed list, manages approval modes (
|
|
158
|
+
* Checks allowed list, manages approval modes (manual, auto-approve, auto-deny),
|
|
157
159
|
* and handles remember choice logic
|
|
158
160
|
*/
|
|
159
161
|
private handleToolApproval;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../src/tools/tool-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../src/tools/tool-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAInE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBASa,WAAW;IACpB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,qBAAqB,CAAC,CAAwB;IACtD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,oBAAoB,CAAwB;IACpD,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAA2B;IAG/C,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAC,CAAoB;IAGzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAW;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IAG5D,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,MAAM,CAAe;gBAGzB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,oBAAoB,EAAE,qBAAqB,EAC3C,YAAY,EAAE,QAAQ,GAAG,cAAc,GAAG,WAAW,EACrD,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,YAAY;IA0BxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACH,gBAAgB,CACZ,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,iBAAiB,GAChC,IAAI;IAOP;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAmBlC,aAAa,IAAI,UAAU;IAI3B;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;;;;;;;;;;;;OAaG;YACW,aAAa;IAwD3B;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC;;;OAGG;IACG,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC;IAgJnB;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBjD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;IAgCF;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS;IAgB/D;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;;;OAIG;YACW,kBAAkB;IAoHhC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;OAEG;IACH,uBAAuB,IAAI,MAAM,EAAE;IAInC;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACH,sBAAsB,IAAI,IAAI;CAGjC"}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
var _ToolManager_decorators, _init;
|
|
7
7
|
import { InternalToolsProvider } from "./internal-tools/provider.js";
|
|
8
8
|
import { ToolError } from "./errors.js";
|
|
9
|
-
import {
|
|
9
|
+
import { DextoLogComponent } from "../logger/v2/types.js";
|
|
10
10
|
import { ApprovalStatus } from "../approval/types.js";
|
|
11
11
|
import { InstrumentClass } from "../telemetry/decorators.js";
|
|
12
12
|
_ToolManager_decorators = [InstrumentClass({
|
|
@@ -36,22 +36,25 @@ let _ToolManager = class _ToolManager {
|
|
|
36
36
|
// Tool caching for performance
|
|
37
37
|
toolsCache = {};
|
|
38
38
|
cacheValid = false;
|
|
39
|
-
|
|
39
|
+
logger;
|
|
40
|
+
constructor(mcpManager, approvalManager, allowedToolsProvider, approvalMode, agentEventBus, toolPolicies, options, logger) {
|
|
40
41
|
this.mcpManager = mcpManager;
|
|
41
42
|
this.approvalManager = approvalManager;
|
|
42
43
|
this.allowedToolsProvider = allowedToolsProvider;
|
|
43
44
|
this.approvalMode = approvalMode;
|
|
44
45
|
this.agentEventBus = agentEventBus;
|
|
45
46
|
this.toolPolicies = toolPolicies;
|
|
47
|
+
this.logger = logger.createChild(DextoLogComponent.TOOLS);
|
|
46
48
|
if (options?.internalToolsConfig && options.internalToolsConfig.length > 0) {
|
|
47
49
|
this.internalToolsProvider = new InternalToolsProvider(
|
|
48
50
|
options.internalToolsServices || {},
|
|
49
51
|
approvalManager,
|
|
50
|
-
options.internalToolsConfig
|
|
52
|
+
options.internalToolsConfig,
|
|
53
|
+
this.logger
|
|
51
54
|
);
|
|
52
55
|
}
|
|
53
56
|
this.setupNotificationListeners();
|
|
54
|
-
logger.debug("ToolManager initialized");
|
|
57
|
+
this.logger.debug("ToolManager initialized");
|
|
55
58
|
}
|
|
56
59
|
/**
|
|
57
60
|
* Initialize the ToolManager and its components
|
|
@@ -60,7 +63,7 @@ let _ToolManager = class _ToolManager {
|
|
|
60
63
|
if (this.internalToolsProvider) {
|
|
61
64
|
await this.internalToolsProvider.initialize();
|
|
62
65
|
}
|
|
63
|
-
logger.debug("ToolManager initialization complete");
|
|
66
|
+
this.logger.debug("ToolManager initialization complete");
|
|
64
67
|
}
|
|
65
68
|
/**
|
|
66
69
|
* Set plugin support services (called after construction to avoid circular dependencies)
|
|
@@ -69,7 +72,7 @@ let _ToolManager = class _ToolManager {
|
|
|
69
72
|
this.pluginManager = pluginManager;
|
|
70
73
|
this.sessionManager = sessionManager;
|
|
71
74
|
this.stateManager = stateManager;
|
|
72
|
-
logger.debug("Plugin support configured for ToolManager");
|
|
75
|
+
this.logger.debug("Plugin support configured for ToolManager");
|
|
73
76
|
}
|
|
74
77
|
/**
|
|
75
78
|
* Invalidate the tools cache when tool sources change
|
|
@@ -82,14 +85,18 @@ let _ToolManager = class _ToolManager {
|
|
|
82
85
|
* Set up listeners for MCP notifications to invalidate cache on changes
|
|
83
86
|
*/
|
|
84
87
|
setupNotificationListeners() {
|
|
85
|
-
this.agentEventBus.on("
|
|
88
|
+
this.agentEventBus.on("mcp:server-connected", async (payload) => {
|
|
86
89
|
if (payload.success) {
|
|
87
|
-
logger.debug(
|
|
90
|
+
this.logger.debug(
|
|
91
|
+
`\u{1F504} MCP server connected, invalidating tool cache: ${payload.name}`
|
|
92
|
+
);
|
|
88
93
|
this.invalidateCache();
|
|
89
94
|
}
|
|
90
95
|
});
|
|
91
|
-
this.agentEventBus.on("
|
|
92
|
-
logger.debug(
|
|
96
|
+
this.agentEventBus.on("mcp:server-removed", async (payload) => {
|
|
97
|
+
this.logger.debug(
|
|
98
|
+
`\u{1F504} MCP server removed: ${payload.serverName}, invalidating tool cache`
|
|
99
|
+
);
|
|
93
100
|
this.invalidateCache();
|
|
94
101
|
});
|
|
95
102
|
}
|
|
@@ -124,7 +131,7 @@ let _ToolManager = class _ToolManager {
|
|
|
124
131
|
try {
|
|
125
132
|
mcpTools = await this.mcpManager.getAllTools();
|
|
126
133
|
} catch (error) {
|
|
127
|
-
logger.error(
|
|
134
|
+
this.logger.error(
|
|
128
135
|
`Failed to get MCP tools: ${error instanceof Error ? error.message : String(error)}`
|
|
129
136
|
);
|
|
130
137
|
mcpTools = {};
|
|
@@ -132,7 +139,7 @@ let _ToolManager = class _ToolManager {
|
|
|
132
139
|
try {
|
|
133
140
|
internalTools = this.internalToolsProvider?.getAllTools() || {};
|
|
134
141
|
} catch (error) {
|
|
135
|
-
logger.error(
|
|
142
|
+
this.logger.error(
|
|
136
143
|
`Failed to get internal tools: ${error instanceof Error ? error.message : String(error)}`
|
|
137
144
|
);
|
|
138
145
|
internalTools = {};
|
|
@@ -156,7 +163,7 @@ let _ToolManager = class _ToolManager {
|
|
|
156
163
|
const totalTools = Object.keys(allTools).length;
|
|
157
164
|
const mcpCount = Object.keys(mcpTools).length;
|
|
158
165
|
const internalCount = Object.keys(internalTools).length;
|
|
159
|
-
logger.debug(
|
|
166
|
+
this.logger.debug(
|
|
160
167
|
`\u{1F527} Unified tool discovery: ${totalTools} total tools (${mcpCount} MCP \u2192 ${_ToolManager.MCP_TOOL_PREFIX}*, ${internalCount} internal \u2192 ${_ToolManager.INTERNAL_TOOL_PREFIX}*)`
|
|
161
168
|
);
|
|
162
169
|
return allTools;
|
|
@@ -179,11 +186,11 @@ let _ToolManager = class _ToolManager {
|
|
|
179
186
|
* ALL tools must have source prefix - no exceptions
|
|
180
187
|
*/
|
|
181
188
|
async executeTool(toolName, args, sessionId) {
|
|
182
|
-
logger.debug(`\u{1F527} Tool execution requested: '${toolName}'`);
|
|
183
|
-
logger.debug(`Tool args: ${JSON.stringify(args, null, 2)}`);
|
|
189
|
+
this.logger.debug(`\u{1F527} Tool execution requested: '${toolName}'`);
|
|
190
|
+
this.logger.debug(`Tool args: ${JSON.stringify(args, null, 2)}`);
|
|
184
191
|
await this.handleToolApproval(toolName, args, sessionId);
|
|
185
|
-
logger.debug(`\u2705 Tool execution approved: ${toolName}`);
|
|
186
|
-
logger.info(
|
|
192
|
+
this.logger.debug(`\u2705 Tool execution approved: ${toolName}`);
|
|
193
|
+
this.logger.info(
|
|
187
194
|
`\u{1F527} Tool execution started for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
188
195
|
);
|
|
189
196
|
const startTime = Date.now();
|
|
@@ -209,15 +216,15 @@ let _ToolManager = class _ToolManager {
|
|
|
209
216
|
try {
|
|
210
217
|
let result;
|
|
211
218
|
if (toolName.startsWith(_ToolManager.MCP_TOOL_PREFIX)) {
|
|
212
|
-
logger.debug(`\u{1F527} Detected MCP tool: '${toolName}'`);
|
|
219
|
+
this.logger.debug(`\u{1F527} Detected MCP tool: '${toolName}'`);
|
|
213
220
|
const actualToolName = toolName.substring(_ToolManager.MCP_TOOL_PREFIX.length);
|
|
214
221
|
if (actualToolName.length === 0) {
|
|
215
222
|
throw ToolError.invalidName(toolName, "tool name cannot be empty after prefix");
|
|
216
223
|
}
|
|
217
|
-
logger.debug(`\u{1F3AF} MCP routing: '${toolName}' -> '${actualToolName}'`);
|
|
224
|
+
this.logger.debug(`\u{1F3AF} MCP routing: '${toolName}' -> '${actualToolName}'`);
|
|
218
225
|
result = await this.mcpManager.executeTool(actualToolName, args, sessionId);
|
|
219
226
|
} else if (toolName.startsWith(_ToolManager.INTERNAL_TOOL_PREFIX)) {
|
|
220
|
-
logger.debug(`\u{1F527} Detected internal tool: '${toolName}'`);
|
|
227
|
+
this.logger.debug(`\u{1F527} Detected internal tool: '${toolName}'`);
|
|
221
228
|
const actualToolName = toolName.substring(_ToolManager.INTERNAL_TOOL_PREFIX.length);
|
|
222
229
|
if (actualToolName.length === 0) {
|
|
223
230
|
throw ToolError.invalidName(toolName, "tool name cannot be empty after prefix");
|
|
@@ -225,24 +232,26 @@ let _ToolManager = class _ToolManager {
|
|
|
225
232
|
if (!this.internalToolsProvider) {
|
|
226
233
|
throw ToolError.internalToolsNotInitialized(toolName);
|
|
227
234
|
}
|
|
228
|
-
logger.debug(`\u{1F3AF} Internal routing: '${toolName}' -> '${actualToolName}'`);
|
|
235
|
+
this.logger.debug(`\u{1F3AF} Internal routing: '${toolName}' -> '${actualToolName}'`);
|
|
229
236
|
result = await this.internalToolsProvider.executeTool(
|
|
230
237
|
actualToolName,
|
|
231
238
|
args,
|
|
232
239
|
sessionId
|
|
233
240
|
);
|
|
234
241
|
} else {
|
|
235
|
-
logger.debug(`\u{1F527} Detected tool without proper prefix: '${toolName}'`);
|
|
242
|
+
this.logger.debug(`\u{1F527} Detected tool without proper prefix: '${toolName}'`);
|
|
236
243
|
const stats = await this.getToolStats();
|
|
237
|
-
logger.error(
|
|
244
|
+
this.logger.error(
|
|
238
245
|
`\u274C Tool missing source prefix: '${toolName}' (expected '${_ToolManager.MCP_TOOL_PREFIX}*' or '${_ToolManager.INTERNAL_TOOL_PREFIX}*')`
|
|
239
246
|
);
|
|
240
|
-
logger.debug(
|
|
247
|
+
this.logger.debug(
|
|
248
|
+
`Available: ${stats.mcp} MCP tools, ${stats.internal} internal tools`
|
|
249
|
+
);
|
|
241
250
|
throw ToolError.notFound(toolName);
|
|
242
251
|
}
|
|
243
252
|
const duration = Date.now() - startTime;
|
|
244
|
-
logger.debug(`\u{1F3AF} Tool execution completed in ${duration}ms: '${toolName}'`);
|
|
245
|
-
logger.info(
|
|
253
|
+
this.logger.debug(`\u{1F3AF} Tool execution completed in ${duration}ms: '${toolName}'`);
|
|
254
|
+
this.logger.info(
|
|
246
255
|
`\u2705 Tool execution completed successfully for ${toolName} in ${duration}ms, sessionId: ${sessionId ?? "global"}`
|
|
247
256
|
);
|
|
248
257
|
if (this.pluginManager && this.sessionManager && this.stateManager) {
|
|
@@ -268,7 +277,7 @@ let _ToolManager = class _ToolManager {
|
|
|
268
277
|
return result;
|
|
269
278
|
} catch (error) {
|
|
270
279
|
const duration = Date.now() - startTime;
|
|
271
|
-
logger.error(
|
|
280
|
+
this.logger.error(
|
|
272
281
|
`\u274C Tool execution failed for ${toolName} after ${duration}ms, sessionId: ${sessionId ?? "global"}: ${error instanceof Error ? error.message : String(error)}`
|
|
273
282
|
);
|
|
274
283
|
if (this.pluginManager && this.sessionManager && this.stateManager) {
|
|
@@ -312,7 +321,7 @@ let _ToolManager = class _ToolManager {
|
|
|
312
321
|
try {
|
|
313
322
|
mcpTools = await this.mcpManager.getAllTools();
|
|
314
323
|
} catch (error) {
|
|
315
|
-
logger.error(
|
|
324
|
+
this.logger.error(
|
|
316
325
|
`Failed to get MCP tools for stats: ${error instanceof Error ? error.message : String(error)}`
|
|
317
326
|
);
|
|
318
327
|
mcpTools = {};
|
|
@@ -320,7 +329,7 @@ let _ToolManager = class _ToolManager {
|
|
|
320
329
|
try {
|
|
321
330
|
internalTools = this.internalToolsProvider?.getAllTools() || {};
|
|
322
331
|
} catch (error) {
|
|
323
|
-
logger.error(
|
|
332
|
+
this.logger.error(
|
|
324
333
|
`Failed to get internal tools for stats: ${error instanceof Error ? error.message : String(error)}`
|
|
325
334
|
);
|
|
326
335
|
internalTools = {};
|
|
@@ -403,39 +412,39 @@ let _ToolManager = class _ToolManager {
|
|
|
403
412
|
}
|
|
404
413
|
/**
|
|
405
414
|
* Handle tool approval/confirmation flow
|
|
406
|
-
* Checks allowed list, manages approval modes (
|
|
415
|
+
* Checks allowed list, manages approval modes (manual, auto-approve, auto-deny),
|
|
407
416
|
* and handles remember choice logic
|
|
408
417
|
*/
|
|
409
418
|
async handleToolApproval(toolName, args, sessionId) {
|
|
410
419
|
if (this.isInAlwaysDenyList(toolName)) {
|
|
411
|
-
logger.info(
|
|
420
|
+
this.logger.info(
|
|
412
421
|
`Tool '${toolName}' is in static deny list \u2013 blocking execution (session: ${sessionId ?? "global"})`
|
|
413
422
|
);
|
|
414
|
-
logger.debug(`\u{1F6AB} Tool execution blocked by policy: ${toolName}`);
|
|
423
|
+
this.logger.debug(`\u{1F6AB} Tool execution blocked by policy: ${toolName}`);
|
|
415
424
|
throw ToolError.executionDenied(toolName, sessionId);
|
|
416
425
|
}
|
|
417
426
|
if (this.isInAlwaysAllowList(toolName)) {
|
|
418
|
-
logger.info(
|
|
427
|
+
this.logger.info(
|
|
419
428
|
`Tool '${toolName}' is in static allow list \u2013 skipping confirmation (session: ${sessionId ?? "global"})`
|
|
420
429
|
);
|
|
421
430
|
return;
|
|
422
431
|
}
|
|
423
432
|
const isAllowed = await this.allowedToolsProvider.isToolAllowed(toolName, sessionId);
|
|
424
433
|
if (isAllowed) {
|
|
425
|
-
logger.info(
|
|
434
|
+
this.logger.info(
|
|
426
435
|
`Tool '${toolName}' already allowed for session '${sessionId ?? "global"}' \u2013 skipping confirmation.`
|
|
427
436
|
);
|
|
428
437
|
return;
|
|
429
438
|
}
|
|
430
439
|
if (this.approvalMode === "auto-approve") {
|
|
431
|
-
logger.debug(`\u{1F7E2} Auto-approving tool execution: ${toolName}`);
|
|
440
|
+
this.logger.debug(`\u{1F7E2} Auto-approving tool execution: ${toolName}`);
|
|
432
441
|
return;
|
|
433
442
|
}
|
|
434
443
|
if (this.approvalMode === "auto-deny") {
|
|
435
|
-
logger.debug(`\u{1F6AB} Auto-denying tool execution: ${toolName}`);
|
|
444
|
+
this.logger.debug(`\u{1F6AB} Auto-denying tool execution: ${toolName}`);
|
|
436
445
|
throw ToolError.executionDenied(toolName, sessionId);
|
|
437
446
|
}
|
|
438
|
-
logger.info(
|
|
447
|
+
this.logger.info(
|
|
439
448
|
`Tool confirmation requested for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
440
449
|
);
|
|
441
450
|
try {
|
|
@@ -451,23 +460,31 @@ let _ToolManager = class _ToolManager {
|
|
|
451
460
|
if (response.status === ApprovalStatus.APPROVED && rememberChoice) {
|
|
452
461
|
const allowSessionId = sessionId ?? response.sessionId;
|
|
453
462
|
await this.allowedToolsProvider.allowTool(toolName, allowSessionId);
|
|
454
|
-
logger.info(
|
|
463
|
+
this.logger.info(
|
|
455
464
|
`Tool '${toolName}' added to allowed tools for session '${allowSessionId ?? "global"}' (remember choice selected)`
|
|
456
465
|
);
|
|
457
466
|
}
|
|
458
467
|
const approved = response.status === ApprovalStatus.APPROVED;
|
|
459
468
|
if (!approved) {
|
|
460
|
-
|
|
461
|
-
|
|
469
|
+
if (response.status === ApprovalStatus.CANCELLED && response.reason === "timeout") {
|
|
470
|
+
this.logger.info(
|
|
471
|
+
`Tool confirmation timed out for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
472
|
+
);
|
|
473
|
+
this.logger.debug(`\u23F1\uFE0F Tool execution timed out: ${toolName}`);
|
|
474
|
+
const timeoutMs = response.timeoutMs ?? 0;
|
|
475
|
+
throw ToolError.executionTimeout(toolName, timeoutMs, sessionId);
|
|
476
|
+
}
|
|
477
|
+
this.logger.info(
|
|
478
|
+
`Tool confirmation denied for ${toolName}, sessionId: ${sessionId ?? "global"}, reason: ${response.reason ?? "unknown"}`
|
|
462
479
|
);
|
|
463
|
-
logger.debug(`\u{1F6AB} Tool execution denied: ${toolName}`);
|
|
480
|
+
this.logger.debug(`\u{1F6AB} Tool execution denied: ${toolName}`);
|
|
464
481
|
throw ToolError.executionDenied(toolName, sessionId);
|
|
465
482
|
}
|
|
466
|
-
logger.info(
|
|
483
|
+
this.logger.info(
|
|
467
484
|
`Tool confirmation approved for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
468
485
|
);
|
|
469
486
|
} catch (error) {
|
|
470
|
-
logger.error(
|
|
487
|
+
this.logger.error(
|
|
471
488
|
`Tool confirmation error for ${toolName}: ${error instanceof Error ? error.message : String(error)}`
|
|
472
489
|
);
|
|
473
490
|
throw error;
|
|
@@ -480,7 +497,7 @@ let _ToolManager = class _ToolManager {
|
|
|
480
497
|
async refresh() {
|
|
481
498
|
await this.mcpManager.refresh();
|
|
482
499
|
this.invalidateCache();
|
|
483
|
-
logger.debug("ToolManager refreshed (including MCP server capabilities)");
|
|
500
|
+
this.logger.debug("ToolManager refreshed (including MCP server capabilities)");
|
|
484
501
|
}
|
|
485
502
|
/**
|
|
486
503
|
* Get list of pending confirmation requests
|
package/dist/tools/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IAEX,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IAEpB,+CAA+C;IAC/C,WAAW,EAAE,SAAS,CAAC;IAEvB,8FAA8F;IAC9F,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC3F;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,WAAW,CAAC;KAC3B,CAAC;CACL;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IAEX,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IAEpB,+CAA+C;IAC/C,WAAW,EAAE,SAAS,CAAC;IAEvB,8FAA8F;IAC9F,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC3F;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,WAAW,CAAC;KAC3B,CAAC;CACL;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var env_file_exports = {};
|
|
30
|
+
__export(env_file_exports, {
|
|
31
|
+
updateEnvFile: () => updateEnvFile
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(env_file_exports);
|
|
34
|
+
var path = __toESM(require("node:path"), 1);
|
|
35
|
+
var import_node_fs = require("node:fs");
|
|
36
|
+
const DEXTO_ENV_KEYS = [
|
|
37
|
+
"OPENAI_API_KEY",
|
|
38
|
+
"ANTHROPIC_API_KEY",
|
|
39
|
+
"GOOGLE_GENERATIVE_AI_API_KEY",
|
|
40
|
+
"GROQ_API_KEY",
|
|
41
|
+
"COHERE_API_KEY",
|
|
42
|
+
"XAI_API_KEY",
|
|
43
|
+
"DEXTO_LOG_LEVEL"
|
|
44
|
+
];
|
|
45
|
+
function isDextoEnvKey(value) {
|
|
46
|
+
return DEXTO_ENV_KEYS.includes(value);
|
|
47
|
+
}
|
|
48
|
+
async function updateEnvFile(envFilePath, updates) {
|
|
49
|
+
await import_node_fs.promises.mkdir(path.dirname(envFilePath), { recursive: true });
|
|
50
|
+
let envLines = [];
|
|
51
|
+
try {
|
|
52
|
+
const existingEnv = await import_node_fs.promises.readFile(envFilePath, "utf8");
|
|
53
|
+
envLines = existingEnv.split("\n");
|
|
54
|
+
} catch {
|
|
55
|
+
}
|
|
56
|
+
const currentValues = {};
|
|
57
|
+
envLines.forEach((line) => {
|
|
58
|
+
const match = line.match(/^([A-Z0-9_]+)=(.*)$/);
|
|
59
|
+
if (match && match[1] && isDextoEnvKey(match[1])) {
|
|
60
|
+
const value = match[2] ?? "";
|
|
61
|
+
currentValues[match[1]] = value;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
const updatedValues = Object.fromEntries(
|
|
65
|
+
DEXTO_ENV_KEYS.map((key) => {
|
|
66
|
+
const update = updates[key];
|
|
67
|
+
const current = currentValues[key];
|
|
68
|
+
const fallback = key === "DEXTO_LOG_LEVEL" ? "info" : "";
|
|
69
|
+
const value = update !== void 0 ? update : current ?? fallback;
|
|
70
|
+
return [key, value];
|
|
71
|
+
})
|
|
72
|
+
);
|
|
73
|
+
const sectionHeader = "## Dexto env variables";
|
|
74
|
+
const headerIndex = envLines.findIndex((line) => line.trim() === sectionHeader);
|
|
75
|
+
let contentLines;
|
|
76
|
+
if (headerIndex !== -1) {
|
|
77
|
+
const beforeSection = envLines.slice(0, headerIndex);
|
|
78
|
+
let sectionEnd = headerIndex + 1;
|
|
79
|
+
while (sectionEnd < envLines.length && envLines[sectionEnd]?.trim() !== "") {
|
|
80
|
+
sectionEnd++;
|
|
81
|
+
}
|
|
82
|
+
if (sectionEnd < envLines.length && envLines[sectionEnd]?.trim() === "") {
|
|
83
|
+
sectionEnd++;
|
|
84
|
+
}
|
|
85
|
+
const afterSection = envLines.slice(sectionEnd);
|
|
86
|
+
contentLines = [...beforeSection, ...afterSection];
|
|
87
|
+
} else {
|
|
88
|
+
contentLines = envLines;
|
|
89
|
+
}
|
|
90
|
+
const existingEnvVars = {};
|
|
91
|
+
contentLines.forEach((line) => {
|
|
92
|
+
const match = line.match(/^([A-Z0-9_]+)=(.*)$/);
|
|
93
|
+
if (match && match[1] && isDextoEnvKey(match[1])) {
|
|
94
|
+
const value = match[2] ?? "";
|
|
95
|
+
existingEnvVars[match[1]] = value;
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
if (contentLines.length > 0) {
|
|
99
|
+
if (contentLines[contentLines.length - 1]?.trim() !== "") {
|
|
100
|
+
contentLines.push("");
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
contentLines.push("");
|
|
104
|
+
}
|
|
105
|
+
contentLines.push(sectionHeader);
|
|
106
|
+
for (const key of DEXTO_ENV_KEYS) {
|
|
107
|
+
if (key in existingEnvVars && !(key in updates)) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
contentLines.push(`${key}=${updatedValues[key]}`);
|
|
111
|
+
}
|
|
112
|
+
contentLines.push("");
|
|
113
|
+
await import_node_fs.promises.writeFile(envFilePath, contentLines.join("\n"), "utf8");
|
|
114
|
+
}
|
|
115
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
116
|
+
0 && (module.exports = {
|
|
117
|
+
updateEnvFile
|
|
118
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-file.d.ts","sourceRoot":"","sources":["../../src/utils/env-file.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,wBAAsB,aAAa,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAgFf"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import "../chunk-C6A6W6XS.js";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import { promises as fs } from "node:fs";
|
|
4
|
+
const DEXTO_ENV_KEYS = [
|
|
5
|
+
"OPENAI_API_KEY",
|
|
6
|
+
"ANTHROPIC_API_KEY",
|
|
7
|
+
"GOOGLE_GENERATIVE_AI_API_KEY",
|
|
8
|
+
"GROQ_API_KEY",
|
|
9
|
+
"COHERE_API_KEY",
|
|
10
|
+
"XAI_API_KEY",
|
|
11
|
+
"DEXTO_LOG_LEVEL"
|
|
12
|
+
];
|
|
13
|
+
function isDextoEnvKey(value) {
|
|
14
|
+
return DEXTO_ENV_KEYS.includes(value);
|
|
15
|
+
}
|
|
16
|
+
async function updateEnvFile(envFilePath, updates) {
|
|
17
|
+
await fs.mkdir(path.dirname(envFilePath), { recursive: true });
|
|
18
|
+
let envLines = [];
|
|
19
|
+
try {
|
|
20
|
+
const existingEnv = await fs.readFile(envFilePath, "utf8");
|
|
21
|
+
envLines = existingEnv.split("\n");
|
|
22
|
+
} catch {
|
|
23
|
+
}
|
|
24
|
+
const currentValues = {};
|
|
25
|
+
envLines.forEach((line) => {
|
|
26
|
+
const match = line.match(/^([A-Z0-9_]+)=(.*)$/);
|
|
27
|
+
if (match && match[1] && isDextoEnvKey(match[1])) {
|
|
28
|
+
const value = match[2] ?? "";
|
|
29
|
+
currentValues[match[1]] = value;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
const updatedValues = Object.fromEntries(
|
|
33
|
+
DEXTO_ENV_KEYS.map((key) => {
|
|
34
|
+
const update = updates[key];
|
|
35
|
+
const current = currentValues[key];
|
|
36
|
+
const fallback = key === "DEXTO_LOG_LEVEL" ? "info" : "";
|
|
37
|
+
const value = update !== void 0 ? update : current ?? fallback;
|
|
38
|
+
return [key, value];
|
|
39
|
+
})
|
|
40
|
+
);
|
|
41
|
+
const sectionHeader = "## Dexto env variables";
|
|
42
|
+
const headerIndex = envLines.findIndex((line) => line.trim() === sectionHeader);
|
|
43
|
+
let contentLines;
|
|
44
|
+
if (headerIndex !== -1) {
|
|
45
|
+
const beforeSection = envLines.slice(0, headerIndex);
|
|
46
|
+
let sectionEnd = headerIndex + 1;
|
|
47
|
+
while (sectionEnd < envLines.length && envLines[sectionEnd]?.trim() !== "") {
|
|
48
|
+
sectionEnd++;
|
|
49
|
+
}
|
|
50
|
+
if (sectionEnd < envLines.length && envLines[sectionEnd]?.trim() === "") {
|
|
51
|
+
sectionEnd++;
|
|
52
|
+
}
|
|
53
|
+
const afterSection = envLines.slice(sectionEnd);
|
|
54
|
+
contentLines = [...beforeSection, ...afterSection];
|
|
55
|
+
} else {
|
|
56
|
+
contentLines = envLines;
|
|
57
|
+
}
|
|
58
|
+
const existingEnvVars = {};
|
|
59
|
+
contentLines.forEach((line) => {
|
|
60
|
+
const match = line.match(/^([A-Z0-9_]+)=(.*)$/);
|
|
61
|
+
if (match && match[1] && isDextoEnvKey(match[1])) {
|
|
62
|
+
const value = match[2] ?? "";
|
|
63
|
+
existingEnvVars[match[1]] = value;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
if (contentLines.length > 0) {
|
|
67
|
+
if (contentLines[contentLines.length - 1]?.trim() !== "") {
|
|
68
|
+
contentLines.push("");
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
contentLines.push("");
|
|
72
|
+
}
|
|
73
|
+
contentLines.push(sectionHeader);
|
|
74
|
+
for (const key of DEXTO_ENV_KEYS) {
|
|
75
|
+
if (key in existingEnvVars && !(key in updates)) {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
contentLines.push(`${key}=${updatedValues[key]}`);
|
|
79
|
+
}
|
|
80
|
+
contentLines.push("");
|
|
81
|
+
await fs.writeFile(envFilePath, contentLines.join("\n"), "utf8");
|
|
82
|
+
}
|
|
83
|
+
export {
|
|
84
|
+
updateEnvFile
|
|
85
|
+
};
|
|
@@ -22,11 +22,32 @@ __export(error_conversion_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(error_conversion_exports);
|
|
24
24
|
var import_safe_stringify = require("./safe-stringify.js");
|
|
25
|
-
function toError(error) {
|
|
25
|
+
function toError(error, logger) {
|
|
26
26
|
if (error instanceof Error) {
|
|
27
|
+
logger.info(`error is already an Error: ${error.message}`);
|
|
27
28
|
return error;
|
|
28
29
|
}
|
|
29
30
|
if (error && typeof error === "object") {
|
|
31
|
+
const errorObj = error;
|
|
32
|
+
if (errorObj.error?.data?.error?.message) {
|
|
33
|
+
logger.info(
|
|
34
|
+
`Extracted error from error.error.data.error.message: ${errorObj.error.data.error.message}`
|
|
35
|
+
);
|
|
36
|
+
return new Error(errorObj.error.data.error.message, { cause: error });
|
|
37
|
+
}
|
|
38
|
+
if (errorObj.error?.responseBody && typeof errorObj.error.responseBody === "string") {
|
|
39
|
+
try {
|
|
40
|
+
const parsed = JSON.parse(errorObj.error.responseBody);
|
|
41
|
+
if (parsed?.error?.message) {
|
|
42
|
+
logger.info(
|
|
43
|
+
`Extracted error from error.error.responseBody: ${parsed.error.message}`
|
|
44
|
+
);
|
|
45
|
+
return new Error(parsed.error.message, { cause: error });
|
|
46
|
+
}
|
|
47
|
+
} catch {
|
|
48
|
+
logger.info(`Failed to parse error.error.responseBody as JSON`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
30
51
|
if ("message" in error && typeof error.message === "string") {
|
|
31
52
|
return new Error(error.message, { cause: error });
|
|
32
53
|
}
|
|
@@ -40,6 +61,7 @@ function toError(error) {
|
|
|
40
61
|
return new Error(error.description, { cause: error });
|
|
41
62
|
}
|
|
42
63
|
const serialized = (0, import_safe_stringify.safeStringify)(error);
|
|
64
|
+
logger.info(`falling back to safe serialization for complex objects: ${serialized}`);
|
|
43
65
|
return new Error(serialized);
|
|
44
66
|
}
|
|
45
67
|
if (typeof error === "string") {
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
* Utility functions for converting various error types to proper Error instances
|
|
3
3
|
* with meaningful messages instead of "[object Object]"
|
|
4
4
|
*/
|
|
5
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
5
6
|
/**
|
|
6
7
|
* Converts any error value to an Error instance with a meaningful message
|
|
7
8
|
*
|
|
8
9
|
* @param error - The error value to convert (can be Error, object, string, etc.)
|
|
9
10
|
* @returns Error instance with extracted or serialized message
|
|
10
11
|
*/
|
|
11
|
-
export declare function toError(error: unknown): Error;
|
|
12
|
+
export declare function toError(error: unknown, logger: IDextoLogger): Error;
|
|
12
13
|
//# sourceMappingURL=error-conversion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-conversion.d.ts","sourceRoot":"","sources":["../../src/utils/error-conversion.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"error-conversion.d.ts","sourceRoot":"","sources":["../../src/utils/error-conversion.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,KAAK,CAkEnE"}
|