@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
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import "../../chunk-C6A6W6XS.js";
|
|
2
|
-
import { logger } from "../../logger/index.js";
|
|
3
2
|
import { ToolError } from "../errors.js";
|
|
4
3
|
import { convertZodSchemaToJsonSchema } from "../../utils/schema.js";
|
|
5
4
|
import { getInternalToolInfo } from "./registry.js";
|
|
@@ -9,27 +8,29 @@ class InternalToolsProvider {
|
|
|
9
8
|
// ← Store original InternalTool
|
|
10
9
|
approvalManager;
|
|
11
10
|
config;
|
|
12
|
-
|
|
11
|
+
logger;
|
|
12
|
+
constructor(services, approvalManager, config = [], logger) {
|
|
13
13
|
this.services = services;
|
|
14
14
|
this.approvalManager = approvalManager;
|
|
15
15
|
this.config = config;
|
|
16
|
-
logger
|
|
16
|
+
this.logger = logger;
|
|
17
|
+
this.logger.debug("InternalToolsProvider initialized with config:", { config });
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
20
|
* Initialize the internal tools provider by registering all available internal tools
|
|
20
21
|
*/
|
|
21
22
|
async initialize() {
|
|
22
|
-
logger.info("Initializing InternalToolsProvider...");
|
|
23
|
+
this.logger.info("Initializing InternalToolsProvider...");
|
|
23
24
|
try {
|
|
24
25
|
if (this.config.length === 0) {
|
|
25
|
-
logger.info("No internal tools enabled by configuration");
|
|
26
|
+
this.logger.info("No internal tools enabled by configuration");
|
|
26
27
|
return;
|
|
27
28
|
}
|
|
28
29
|
this.registerInternalTools();
|
|
29
30
|
const toolCount = this.tools.size;
|
|
30
|
-
logger.info(`InternalToolsProvider initialized with ${toolCount} internal tools`);
|
|
31
|
+
this.logger.info(`InternalToolsProvider initialized with ${toolCount} internal tools`);
|
|
31
32
|
} catch (error) {
|
|
32
|
-
logger.error(
|
|
33
|
+
this.logger.error(
|
|
33
34
|
`Failed to initialize InternalToolsProvider: ${error instanceof Error ? error.message : String(error)}`
|
|
34
35
|
);
|
|
35
36
|
throw error;
|
|
@@ -49,7 +50,7 @@ class InternalToolsProvider {
|
|
|
49
50
|
(serviceKey) => !servicesWithApproval[serviceKey]
|
|
50
51
|
);
|
|
51
52
|
if (missingServices.length > 0) {
|
|
52
|
-
logger.debug(
|
|
53
|
+
this.logger.debug(
|
|
53
54
|
`Skipping ${toolName} internal tool - missing services: ${missingServices.join(", ")}`
|
|
54
55
|
);
|
|
55
56
|
continue;
|
|
@@ -57,9 +58,9 @@ class InternalToolsProvider {
|
|
|
57
58
|
try {
|
|
58
59
|
const tool = toolInfo.factory(servicesWithApproval);
|
|
59
60
|
this.tools.set(toolName, tool);
|
|
60
|
-
logger.debug(`Registered ${toolName} internal tool`);
|
|
61
|
+
this.logger.debug(`Registered ${toolName} internal tool`);
|
|
61
62
|
} catch (error) {
|
|
62
|
-
logger.error(
|
|
63
|
+
this.logger.error(
|
|
63
64
|
`Failed to register ${toolName} internal tool: ${error instanceof Error ? error.message : String(error)}`
|
|
64
65
|
);
|
|
65
66
|
}
|
|
@@ -77,15 +78,16 @@ class InternalToolsProvider {
|
|
|
77
78
|
async executeTool(toolName, args, sessionId) {
|
|
78
79
|
const tool = this.tools.get(toolName);
|
|
79
80
|
if (!tool) {
|
|
80
|
-
logger.error(`\u274C No internal tool found: ${toolName}`);
|
|
81
|
-
logger.debug(
|
|
81
|
+
this.logger.error(`\u274C No internal tool found: ${toolName}`);
|
|
82
|
+
this.logger.debug(
|
|
83
|
+
`Available internal tools: ${Array.from(this.tools.keys()).join(", ")}`
|
|
84
|
+
);
|
|
82
85
|
throw ToolError.notFound(toolName);
|
|
83
86
|
}
|
|
84
87
|
const validationResult = tool.inputSchema.safeParse(args);
|
|
85
88
|
if (!validationResult.success) {
|
|
86
|
-
logger.error(
|
|
87
|
-
`\u274C Invalid arguments for tool ${toolName}
|
|
88
|
-
validationResult.error.message
|
|
89
|
+
this.logger.error(
|
|
90
|
+
`\u274C Invalid arguments for tool ${toolName}: ${validationResult.error.message}`
|
|
89
91
|
);
|
|
90
92
|
throw ToolError.invalidName(
|
|
91
93
|
toolName,
|
|
@@ -97,7 +99,9 @@ class InternalToolsProvider {
|
|
|
97
99
|
const result = await tool.execute(validationResult.data, context);
|
|
98
100
|
return result;
|
|
99
101
|
} catch (error) {
|
|
100
|
-
logger.error(`\u274C Internal tool execution failed: ${toolName}`,
|
|
102
|
+
this.logger.error(`\u274C Internal tool execution failed: ${toolName}`, {
|
|
103
|
+
error: error instanceof Error ? error.message : String(error)
|
|
104
|
+
});
|
|
101
105
|
throw error;
|
|
102
106
|
}
|
|
103
107
|
}
|
|
@@ -110,7 +114,7 @@ class InternalToolsProvider {
|
|
|
110
114
|
toolSet[name] = {
|
|
111
115
|
name: tool.id,
|
|
112
116
|
description: tool.description,
|
|
113
|
-
parameters: convertZodSchemaToJsonSchema(tool.inputSchema)
|
|
117
|
+
parameters: convertZodSchemaToJsonSchema(tool.inputSchema, this.logger)
|
|
114
118
|
// ← Convert on-demand
|
|
115
119
|
};
|
|
116
120
|
}
|
|
@@ -32,6 +32,7 @@ var import_edit_file_tool = require("./implementations/edit-file-tool.js");
|
|
|
32
32
|
var import_bash_exec_tool = require("./implementations/bash-exec-tool.js");
|
|
33
33
|
var import_bash_output_tool = require("./implementations/bash-output-tool.js");
|
|
34
34
|
var import_kill_process_tool = require("./implementations/kill-process-tool.js");
|
|
35
|
+
var import_delegate_to_url_tool = require("./implementations/delegate-to-url-tool.js");
|
|
35
36
|
const INTERNAL_TOOL_REGISTRY = {
|
|
36
37
|
search_history: {
|
|
37
38
|
factory: (services) => (0, import_search_history_tool.createSearchHistoryTool)(services.searchService),
|
|
@@ -72,6 +73,10 @@ const INTERNAL_TOOL_REGISTRY = {
|
|
|
72
73
|
kill_process: {
|
|
73
74
|
factory: (services) => (0, import_kill_process_tool.createKillProcessTool)(services.processService),
|
|
74
75
|
requiredServices: ["processService"]
|
|
76
|
+
},
|
|
77
|
+
delegate_to_url: {
|
|
78
|
+
factory: (_services) => (0, import_delegate_to_url_tool.createDelegateToUrlTool)(),
|
|
79
|
+
requiredServices: []
|
|
75
80
|
}
|
|
76
81
|
};
|
|
77
82
|
function getInternalToolInfo(toolName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAYxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,CAAC;CAKnC;AAED;;GAEG;AACH,KAAK,mBAAmB,GAAG,CAAC,QAAQ,EAAE,qBAAqB,KAAK,YAAY,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACvC,iBAAiB,EACjB;IACI,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,SAAS,CAAC,MAAM,qBAAqB,CAAC,EAAE,CAAC;CAC9D,CAuDJ,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB;aA9D9C,mBAAmB;sBACV,SAAS,CAAC,MAAM,qBAAqB,CAAC,EAAE;EA+DjE"}
|
|
@@ -9,6 +9,7 @@ import { createEditFileTool } from "./implementations/edit-file-tool.js";
|
|
|
9
9
|
import { createBashExecTool } from "./implementations/bash-exec-tool.js";
|
|
10
10
|
import { createBashOutputTool } from "./implementations/bash-output-tool.js";
|
|
11
11
|
import { createKillProcessTool } from "./implementations/kill-process-tool.js";
|
|
12
|
+
import { createDelegateToUrlTool } from "./implementations/delegate-to-url-tool.js";
|
|
12
13
|
const INTERNAL_TOOL_REGISTRY = {
|
|
13
14
|
search_history: {
|
|
14
15
|
factory: (services) => createSearchHistoryTool(services.searchService),
|
|
@@ -49,6 +50,10 @@ const INTERNAL_TOOL_REGISTRY = {
|
|
|
49
50
|
kill_process: {
|
|
50
51
|
factory: (services) => createKillProcessTool(services.processService),
|
|
51
52
|
requiredServices: ["processService"]
|
|
53
|
+
},
|
|
54
|
+
delegate_to_url: {
|
|
55
|
+
factory: (_services) => createDelegateToUrlTool(),
|
|
56
|
+
requiredServices: []
|
|
52
57
|
}
|
|
53
58
|
};
|
|
54
59
|
function getInternalToolInfo(toolName) {
|
package/dist/tools/schemas.cjs
CHANGED
|
@@ -21,6 +21,7 @@ __export(schemas_exports, {
|
|
|
21
21
|
ALLOWED_TOOLS_STORAGE_TYPES: () => ALLOWED_TOOLS_STORAGE_TYPES,
|
|
22
22
|
DEFAULT_ALLOWED_TOOLS_STORAGE: () => DEFAULT_ALLOWED_TOOLS_STORAGE,
|
|
23
23
|
DEFAULT_TOOL_CONFIRMATION_MODE: () => DEFAULT_TOOL_CONFIRMATION_MODE,
|
|
24
|
+
ElicitationConfigSchema: () => ElicitationConfigSchema,
|
|
24
25
|
InternalToolsSchema: () => InternalToolsSchema,
|
|
25
26
|
TOOL_CONFIRMATION_MODES: () => TOOL_CONFIRMATION_MODES,
|
|
26
27
|
ToolConfirmationConfigSchema: () => ToolConfirmationConfigSchema,
|
|
@@ -29,9 +30,9 @@ __export(schemas_exports, {
|
|
|
29
30
|
module.exports = __toCommonJS(schemas_exports);
|
|
30
31
|
var import_zod = require("zod");
|
|
31
32
|
var import_constants = require("./internal-tools/constants.js");
|
|
32
|
-
const TOOL_CONFIRMATION_MODES = ["
|
|
33
|
+
const TOOL_CONFIRMATION_MODES = ["manual", "auto-approve", "auto-deny"];
|
|
33
34
|
const ALLOWED_TOOLS_STORAGE_TYPES = ["memory", "storage"];
|
|
34
|
-
const DEFAULT_TOOL_CONFIRMATION_MODE = "
|
|
35
|
+
const DEFAULT_TOOL_CONFIRMATION_MODE = "auto-approve";
|
|
35
36
|
const DEFAULT_ALLOWED_TOOLS_STORAGE = "storage";
|
|
36
37
|
const InternalToolsSchema = import_zod.z.array(import_zod.z.enum(import_constants.INTERNAL_TOOL_NAMES).describe("Available internal tool names")).default([]).describe(
|
|
37
38
|
`Array of internal tool names to enable. Empty array = disabled. Available tools: ${import_constants.INTERNAL_TOOL_NAMES.join(", ")}`
|
|
@@ -46,7 +47,7 @@ const ToolPoliciesSchema = import_zod.z.object({
|
|
|
46
47
|
}).strict().default({ alwaysAllow: [], alwaysDeny: [] }).describe("Static tool policies for allow/deny lists");
|
|
47
48
|
const ToolConfirmationConfigSchema = import_zod.z.object({
|
|
48
49
|
mode: import_zod.z.enum(TOOL_CONFIRMATION_MODES).default(DEFAULT_TOOL_CONFIRMATION_MODE).describe(
|
|
49
|
-
"Tool confirmation mode:
|
|
50
|
+
"Tool confirmation mode: manual (interactive), auto-approve (all tools), auto-deny (no tools)"
|
|
50
51
|
),
|
|
51
52
|
timeout: import_zod.z.number().int().positive().default(12e4).describe(
|
|
52
53
|
"Timeout for tool confirmation requests in milliseconds, defaults to 120000ms (2 mins)"
|
|
@@ -54,15 +55,26 @@ const ToolConfirmationConfigSchema = import_zod.z.object({
|
|
|
54
55
|
allowedToolsStorage: import_zod.z.enum(ALLOWED_TOOLS_STORAGE_TYPES).default(DEFAULT_ALLOWED_TOOLS_STORAGE).describe(
|
|
55
56
|
"Storage type for remembered tool approvals: memory (session-only) or storage (persistent)"
|
|
56
57
|
),
|
|
57
|
-
toolPolicies: ToolPoliciesSchema.
|
|
58
|
+
toolPolicies: ToolPoliciesSchema.describe(
|
|
58
59
|
"Static tool policies for fine-grained allow/deny control. Deny list takes precedence over allow list."
|
|
59
60
|
)
|
|
60
61
|
}).strict().describe("Tool confirmation and approval configuration");
|
|
62
|
+
const ElicitationConfigSchema = import_zod.z.object({
|
|
63
|
+
enabled: import_zod.z.boolean().default(true).describe(
|
|
64
|
+
"Enable elicitation support (ask_user tool and MCP server elicitations). When disabled, elicitation requests will be rejected."
|
|
65
|
+
),
|
|
66
|
+
timeout: import_zod.z.number().int().positive().default(12e4).describe(
|
|
67
|
+
"Timeout for elicitation requests in milliseconds, defaults to 120000ms (2 mins)"
|
|
68
|
+
)
|
|
69
|
+
}).strict().describe(
|
|
70
|
+
"Elicitation configuration for user input requests. Independent from tool confirmation mode, allowing auto-approve for tools while still supporting elicitation."
|
|
71
|
+
);
|
|
61
72
|
// Annotate the CommonJS export names for ESM import in node:
|
|
62
73
|
0 && (module.exports = {
|
|
63
74
|
ALLOWED_TOOLS_STORAGE_TYPES,
|
|
64
75
|
DEFAULT_ALLOWED_TOOLS_STORAGE,
|
|
65
76
|
DEFAULT_TOOL_CONFIRMATION_MODE,
|
|
77
|
+
ElicitationConfigSchema,
|
|
66
78
|
InternalToolsSchema,
|
|
67
79
|
TOOL_CONFIRMATION_MODES,
|
|
68
80
|
ToolConfirmationConfigSchema,
|
package/dist/tools/schemas.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const TOOL_CONFIRMATION_MODES: readonly ["
|
|
2
|
+
export declare const TOOL_CONFIRMATION_MODES: readonly ["manual", "auto-approve", "auto-deny"];
|
|
3
3
|
export type ToolConfirmationMode = (typeof TOOL_CONFIRMATION_MODES)[number];
|
|
4
4
|
export declare const ALLOWED_TOOLS_STORAGE_TYPES: readonly ["memory", "storage"];
|
|
5
5
|
export type AllowedToolsStorageType = (typeof ALLOWED_TOOLS_STORAGE_TYPES)[number];
|
|
6
6
|
export declare const DEFAULT_TOOL_CONFIRMATION_MODE: ToolConfirmationMode;
|
|
7
7
|
export declare const DEFAULT_ALLOWED_TOOLS_STORAGE: AllowedToolsStorageType;
|
|
8
|
-
export declare const InternalToolsSchema: z.ZodDefault<z.ZodArray<z.ZodEnum<["search_history", "ask_user", "read_file", "glob_files", "grep_content", "write_file", "edit_file", "bash_exec", "bash_output", "kill_process"]>, "many">>;
|
|
8
|
+
export declare const InternalToolsSchema: z.ZodDefault<z.ZodArray<z.ZodEnum<["search_history", "ask_user", "read_file", "glob_files", "grep_content", "write_file", "edit_file", "bash_exec", "bash_output", "kill_process", "delegate_to_url"]>, "many">>;
|
|
9
9
|
export type InternalToolsConfig = z.output<typeof InternalToolsSchema>;
|
|
10
10
|
export declare const ToolPoliciesSchema: z.ZodDefault<z.ZodObject<{
|
|
11
11
|
alwaysAllow: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -19,10 +19,10 @@ export declare const ToolPoliciesSchema: z.ZodDefault<z.ZodObject<{
|
|
|
19
19
|
}>>;
|
|
20
20
|
export type ToolPolicies = z.output<typeof ToolPoliciesSchema>;
|
|
21
21
|
export declare const ToolConfirmationConfigSchema: z.ZodObject<{
|
|
22
|
-
mode: z.ZodDefault<z.ZodEnum<["
|
|
22
|
+
mode: z.ZodDefault<z.ZodEnum<["manual", "auto-approve", "auto-deny"]>>;
|
|
23
23
|
timeout: z.ZodDefault<z.ZodNumber>;
|
|
24
24
|
allowedToolsStorage: z.ZodDefault<z.ZodEnum<["memory", "storage"]>>;
|
|
25
|
-
toolPolicies: z.
|
|
25
|
+
toolPolicies: z.ZodDefault<z.ZodObject<{
|
|
26
26
|
alwaysAllow: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
27
27
|
alwaysDeny: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
28
28
|
}, "strict", z.ZodTypeAny, {
|
|
@@ -31,18 +31,18 @@ export declare const ToolConfirmationConfigSchema: z.ZodObject<{
|
|
|
31
31
|
}, {
|
|
32
32
|
alwaysAllow?: string[] | undefined;
|
|
33
33
|
alwaysDeny?: string[] | undefined;
|
|
34
|
-
}
|
|
34
|
+
}>>;
|
|
35
35
|
}, "strict", z.ZodTypeAny, {
|
|
36
36
|
timeout: number;
|
|
37
|
-
mode: "
|
|
37
|
+
mode: "manual" | "auto-approve" | "auto-deny";
|
|
38
38
|
allowedToolsStorage: "storage" | "memory";
|
|
39
|
-
toolPolicies
|
|
39
|
+
toolPolicies: {
|
|
40
40
|
alwaysAllow: string[];
|
|
41
41
|
alwaysDeny: string[];
|
|
42
|
-
}
|
|
42
|
+
};
|
|
43
43
|
}, {
|
|
44
44
|
timeout?: number | undefined;
|
|
45
|
-
mode?: "
|
|
45
|
+
mode?: "manual" | "auto-approve" | "auto-deny" | undefined;
|
|
46
46
|
allowedToolsStorage?: "storage" | "memory" | undefined;
|
|
47
47
|
toolPolicies?: {
|
|
48
48
|
alwaysAllow?: string[] | undefined;
|
|
@@ -51,4 +51,16 @@ export declare const ToolConfirmationConfigSchema: z.ZodObject<{
|
|
|
51
51
|
}>;
|
|
52
52
|
export type ToolConfirmationConfig = z.input<typeof ToolConfirmationConfigSchema>;
|
|
53
53
|
export type ValidatedToolConfirmationConfig = z.output<typeof ToolConfirmationConfigSchema>;
|
|
54
|
+
export declare const ElicitationConfigSchema: z.ZodObject<{
|
|
55
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
56
|
+
timeout: z.ZodDefault<z.ZodNumber>;
|
|
57
|
+
}, "strict", z.ZodTypeAny, {
|
|
58
|
+
timeout: number;
|
|
59
|
+
enabled: boolean;
|
|
60
|
+
}, {
|
|
61
|
+
timeout?: number | undefined;
|
|
62
|
+
enabled?: boolean | undefined;
|
|
63
|
+
}>;
|
|
64
|
+
export type ElicitationConfig = z.input<typeof ElicitationConfigSchema>;
|
|
65
|
+
export type ValidatedElicitationConfig = z.output<typeof ElicitationConfigSchema>;
|
|
54
66
|
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB,kDAAmD,CAAC;AACxF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,eAAO,MAAM,2BAA2B,gCAAiC,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnF,eAAO,MAAM,8BAA8B,EAAE,oBAAqC,CAAC;AACnF,eAAO,MAAM,6BAA6B,EAAE,uBAAmC,CAAC;AAIhF,eAAO,MAAM,mBAAmB,kNAK3B,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGvE,eAAO,MAAM,kBAAkB;;;;;;;;;GAiB2B,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE/D,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BoB,CAAC;AAE9D,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAG5F,eAAO,MAAM,uBAAuB;;;;;;;;;EAoB/B,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
package/dist/tools/schemas.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "../chunk-C6A6W6XS.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { INTERNAL_TOOL_NAMES } from "./internal-tools/constants.js";
|
|
4
|
-
const TOOL_CONFIRMATION_MODES = ["
|
|
4
|
+
const TOOL_CONFIRMATION_MODES = ["manual", "auto-approve", "auto-deny"];
|
|
5
5
|
const ALLOWED_TOOLS_STORAGE_TYPES = ["memory", "storage"];
|
|
6
|
-
const DEFAULT_TOOL_CONFIRMATION_MODE = "
|
|
6
|
+
const DEFAULT_TOOL_CONFIRMATION_MODE = "auto-approve";
|
|
7
7
|
const DEFAULT_ALLOWED_TOOLS_STORAGE = "storage";
|
|
8
8
|
const InternalToolsSchema = z.array(z.enum(INTERNAL_TOOL_NAMES).describe("Available internal tool names")).default([]).describe(
|
|
9
9
|
`Array of internal tool names to enable. Empty array = disabled. Available tools: ${INTERNAL_TOOL_NAMES.join(", ")}`
|
|
@@ -18,7 +18,7 @@ const ToolPoliciesSchema = z.object({
|
|
|
18
18
|
}).strict().default({ alwaysAllow: [], alwaysDeny: [] }).describe("Static tool policies for allow/deny lists");
|
|
19
19
|
const ToolConfirmationConfigSchema = z.object({
|
|
20
20
|
mode: z.enum(TOOL_CONFIRMATION_MODES).default(DEFAULT_TOOL_CONFIRMATION_MODE).describe(
|
|
21
|
-
"Tool confirmation mode:
|
|
21
|
+
"Tool confirmation mode: manual (interactive), auto-approve (all tools), auto-deny (no tools)"
|
|
22
22
|
),
|
|
23
23
|
timeout: z.number().int().positive().default(12e4).describe(
|
|
24
24
|
"Timeout for tool confirmation requests in milliseconds, defaults to 120000ms (2 mins)"
|
|
@@ -26,14 +26,25 @@ const ToolConfirmationConfigSchema = z.object({
|
|
|
26
26
|
allowedToolsStorage: z.enum(ALLOWED_TOOLS_STORAGE_TYPES).default(DEFAULT_ALLOWED_TOOLS_STORAGE).describe(
|
|
27
27
|
"Storage type for remembered tool approvals: memory (session-only) or storage (persistent)"
|
|
28
28
|
),
|
|
29
|
-
toolPolicies: ToolPoliciesSchema.
|
|
29
|
+
toolPolicies: ToolPoliciesSchema.describe(
|
|
30
30
|
"Static tool policies for fine-grained allow/deny control. Deny list takes precedence over allow list."
|
|
31
31
|
)
|
|
32
32
|
}).strict().describe("Tool confirmation and approval configuration");
|
|
33
|
+
const ElicitationConfigSchema = z.object({
|
|
34
|
+
enabled: z.boolean().default(true).describe(
|
|
35
|
+
"Enable elicitation support (ask_user tool and MCP server elicitations). When disabled, elicitation requests will be rejected."
|
|
36
|
+
),
|
|
37
|
+
timeout: z.number().int().positive().default(12e4).describe(
|
|
38
|
+
"Timeout for elicitation requests in milliseconds, defaults to 120000ms (2 mins)"
|
|
39
|
+
)
|
|
40
|
+
}).strict().describe(
|
|
41
|
+
"Elicitation configuration for user input requests. Independent from tool confirmation mode, allowing auto-approve for tools while still supporting elicitation."
|
|
42
|
+
);
|
|
33
43
|
export {
|
|
34
44
|
ALLOWED_TOOLS_STORAGE_TYPES,
|
|
35
45
|
DEFAULT_ALLOWED_TOOLS_STORAGE,
|
|
36
46
|
DEFAULT_TOOL_CONFIRMATION_MODE,
|
|
47
|
+
ElicitationConfigSchema,
|
|
37
48
|
InternalToolsSchema,
|
|
38
49
|
TOOL_CONFIRMATION_MODES,
|
|
39
50
|
ToolConfirmationConfigSchema,
|
|
@@ -68,8 +68,8 @@ __export(tool_manager_exports, {
|
|
|
68
68
|
module.exports = __toCommonJS(tool_manager_exports);
|
|
69
69
|
var import_provider = require("./internal-tools/provider.js");
|
|
70
70
|
var import_errors = require("./errors.js");
|
|
71
|
-
var
|
|
72
|
-
var
|
|
71
|
+
var import_types2 = require("../logger/v2/types.js");
|
|
72
|
+
var import_types3 = require("../approval/types.js");
|
|
73
73
|
var import_decorators = require("../telemetry/decorators.js");
|
|
74
74
|
var _ToolManager_decorators, _init;
|
|
75
75
|
_ToolManager_decorators = [(0, import_decorators.InstrumentClass)({
|
|
@@ -99,22 +99,25 @@ let _ToolManager = class _ToolManager {
|
|
|
99
99
|
// Tool caching for performance
|
|
100
100
|
toolsCache = {};
|
|
101
101
|
cacheValid = false;
|
|
102
|
-
|
|
102
|
+
logger;
|
|
103
|
+
constructor(mcpManager, approvalManager, allowedToolsProvider, approvalMode, agentEventBus, toolPolicies, options, logger) {
|
|
103
104
|
this.mcpManager = mcpManager;
|
|
104
105
|
this.approvalManager = approvalManager;
|
|
105
106
|
this.allowedToolsProvider = allowedToolsProvider;
|
|
106
107
|
this.approvalMode = approvalMode;
|
|
107
108
|
this.agentEventBus = agentEventBus;
|
|
108
109
|
this.toolPolicies = toolPolicies;
|
|
110
|
+
this.logger = logger.createChild(import_types2.DextoLogComponent.TOOLS);
|
|
109
111
|
if (options?.internalToolsConfig && options.internalToolsConfig.length > 0) {
|
|
110
112
|
this.internalToolsProvider = new import_provider.InternalToolsProvider(
|
|
111
113
|
options.internalToolsServices || {},
|
|
112
114
|
approvalManager,
|
|
113
|
-
options.internalToolsConfig
|
|
115
|
+
options.internalToolsConfig,
|
|
116
|
+
this.logger
|
|
114
117
|
);
|
|
115
118
|
}
|
|
116
119
|
this.setupNotificationListeners();
|
|
117
|
-
|
|
120
|
+
this.logger.debug("ToolManager initialized");
|
|
118
121
|
}
|
|
119
122
|
/**
|
|
120
123
|
* Initialize the ToolManager and its components
|
|
@@ -123,7 +126,7 @@ let _ToolManager = class _ToolManager {
|
|
|
123
126
|
if (this.internalToolsProvider) {
|
|
124
127
|
await this.internalToolsProvider.initialize();
|
|
125
128
|
}
|
|
126
|
-
|
|
129
|
+
this.logger.debug("ToolManager initialization complete");
|
|
127
130
|
}
|
|
128
131
|
/**
|
|
129
132
|
* Set plugin support services (called after construction to avoid circular dependencies)
|
|
@@ -132,7 +135,7 @@ let _ToolManager = class _ToolManager {
|
|
|
132
135
|
this.pluginManager = pluginManager;
|
|
133
136
|
this.sessionManager = sessionManager;
|
|
134
137
|
this.stateManager = stateManager;
|
|
135
|
-
|
|
138
|
+
this.logger.debug("Plugin support configured for ToolManager");
|
|
136
139
|
}
|
|
137
140
|
/**
|
|
138
141
|
* Invalidate the tools cache when tool sources change
|
|
@@ -145,14 +148,18 @@ let _ToolManager = class _ToolManager {
|
|
|
145
148
|
* Set up listeners for MCP notifications to invalidate cache on changes
|
|
146
149
|
*/
|
|
147
150
|
setupNotificationListeners() {
|
|
148
|
-
this.agentEventBus.on("
|
|
151
|
+
this.agentEventBus.on("mcp:server-connected", async (payload) => {
|
|
149
152
|
if (payload.success) {
|
|
150
|
-
|
|
153
|
+
this.logger.debug(
|
|
154
|
+
`\u{1F504} MCP server connected, invalidating tool cache: ${payload.name}`
|
|
155
|
+
);
|
|
151
156
|
this.invalidateCache();
|
|
152
157
|
}
|
|
153
158
|
});
|
|
154
|
-
this.agentEventBus.on("
|
|
155
|
-
|
|
159
|
+
this.agentEventBus.on("mcp:server-removed", async (payload) => {
|
|
160
|
+
this.logger.debug(
|
|
161
|
+
`\u{1F504} MCP server removed: ${payload.serverName}, invalidating tool cache`
|
|
162
|
+
);
|
|
156
163
|
this.invalidateCache();
|
|
157
164
|
});
|
|
158
165
|
}
|
|
@@ -187,7 +194,7 @@ let _ToolManager = class _ToolManager {
|
|
|
187
194
|
try {
|
|
188
195
|
mcpTools = await this.mcpManager.getAllTools();
|
|
189
196
|
} catch (error) {
|
|
190
|
-
|
|
197
|
+
this.logger.error(
|
|
191
198
|
`Failed to get MCP tools: ${error instanceof Error ? error.message : String(error)}`
|
|
192
199
|
);
|
|
193
200
|
mcpTools = {};
|
|
@@ -195,7 +202,7 @@ let _ToolManager = class _ToolManager {
|
|
|
195
202
|
try {
|
|
196
203
|
internalTools = this.internalToolsProvider?.getAllTools() || {};
|
|
197
204
|
} catch (error) {
|
|
198
|
-
|
|
205
|
+
this.logger.error(
|
|
199
206
|
`Failed to get internal tools: ${error instanceof Error ? error.message : String(error)}`
|
|
200
207
|
);
|
|
201
208
|
internalTools = {};
|
|
@@ -219,7 +226,7 @@ let _ToolManager = class _ToolManager {
|
|
|
219
226
|
const totalTools = Object.keys(allTools).length;
|
|
220
227
|
const mcpCount = Object.keys(mcpTools).length;
|
|
221
228
|
const internalCount = Object.keys(internalTools).length;
|
|
222
|
-
|
|
229
|
+
this.logger.debug(
|
|
223
230
|
`\u{1F527} Unified tool discovery: ${totalTools} total tools (${mcpCount} MCP \u2192 ${_ToolManager.MCP_TOOL_PREFIX}*, ${internalCount} internal \u2192 ${_ToolManager.INTERNAL_TOOL_PREFIX}*)`
|
|
224
231
|
);
|
|
225
232
|
return allTools;
|
|
@@ -242,11 +249,11 @@ let _ToolManager = class _ToolManager {
|
|
|
242
249
|
* ALL tools must have source prefix - no exceptions
|
|
243
250
|
*/
|
|
244
251
|
async executeTool(toolName, args, sessionId) {
|
|
245
|
-
|
|
246
|
-
|
|
252
|
+
this.logger.debug(`\u{1F527} Tool execution requested: '${toolName}'`);
|
|
253
|
+
this.logger.debug(`Tool args: ${JSON.stringify(args, null, 2)}`);
|
|
247
254
|
await this.handleToolApproval(toolName, args, sessionId);
|
|
248
|
-
|
|
249
|
-
|
|
255
|
+
this.logger.debug(`\u2705 Tool execution approved: ${toolName}`);
|
|
256
|
+
this.logger.info(
|
|
250
257
|
`\u{1F527} Tool execution started for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
251
258
|
);
|
|
252
259
|
const startTime = Date.now();
|
|
@@ -272,15 +279,15 @@ let _ToolManager = class _ToolManager {
|
|
|
272
279
|
try {
|
|
273
280
|
let result;
|
|
274
281
|
if (toolName.startsWith(_ToolManager.MCP_TOOL_PREFIX)) {
|
|
275
|
-
|
|
282
|
+
this.logger.debug(`\u{1F527} Detected MCP tool: '${toolName}'`);
|
|
276
283
|
const actualToolName = toolName.substring(_ToolManager.MCP_TOOL_PREFIX.length);
|
|
277
284
|
if (actualToolName.length === 0) {
|
|
278
285
|
throw import_errors.ToolError.invalidName(toolName, "tool name cannot be empty after prefix");
|
|
279
286
|
}
|
|
280
|
-
|
|
287
|
+
this.logger.debug(`\u{1F3AF} MCP routing: '${toolName}' -> '${actualToolName}'`);
|
|
281
288
|
result = await this.mcpManager.executeTool(actualToolName, args, sessionId);
|
|
282
289
|
} else if (toolName.startsWith(_ToolManager.INTERNAL_TOOL_PREFIX)) {
|
|
283
|
-
|
|
290
|
+
this.logger.debug(`\u{1F527} Detected internal tool: '${toolName}'`);
|
|
284
291
|
const actualToolName = toolName.substring(_ToolManager.INTERNAL_TOOL_PREFIX.length);
|
|
285
292
|
if (actualToolName.length === 0) {
|
|
286
293
|
throw import_errors.ToolError.invalidName(toolName, "tool name cannot be empty after prefix");
|
|
@@ -288,24 +295,26 @@ let _ToolManager = class _ToolManager {
|
|
|
288
295
|
if (!this.internalToolsProvider) {
|
|
289
296
|
throw import_errors.ToolError.internalToolsNotInitialized(toolName);
|
|
290
297
|
}
|
|
291
|
-
|
|
298
|
+
this.logger.debug(`\u{1F3AF} Internal routing: '${toolName}' -> '${actualToolName}'`);
|
|
292
299
|
result = await this.internalToolsProvider.executeTool(
|
|
293
300
|
actualToolName,
|
|
294
301
|
args,
|
|
295
302
|
sessionId
|
|
296
303
|
);
|
|
297
304
|
} else {
|
|
298
|
-
|
|
305
|
+
this.logger.debug(`\u{1F527} Detected tool without proper prefix: '${toolName}'`);
|
|
299
306
|
const stats = await this.getToolStats();
|
|
300
|
-
|
|
307
|
+
this.logger.error(
|
|
301
308
|
`\u274C Tool missing source prefix: '${toolName}' (expected '${_ToolManager.MCP_TOOL_PREFIX}*' or '${_ToolManager.INTERNAL_TOOL_PREFIX}*')`
|
|
302
309
|
);
|
|
303
|
-
|
|
310
|
+
this.logger.debug(
|
|
311
|
+
`Available: ${stats.mcp} MCP tools, ${stats.internal} internal tools`
|
|
312
|
+
);
|
|
304
313
|
throw import_errors.ToolError.notFound(toolName);
|
|
305
314
|
}
|
|
306
315
|
const duration = Date.now() - startTime;
|
|
307
|
-
|
|
308
|
-
|
|
316
|
+
this.logger.debug(`\u{1F3AF} Tool execution completed in ${duration}ms: '${toolName}'`);
|
|
317
|
+
this.logger.info(
|
|
309
318
|
`\u2705 Tool execution completed successfully for ${toolName} in ${duration}ms, sessionId: ${sessionId ?? "global"}`
|
|
310
319
|
);
|
|
311
320
|
if (this.pluginManager && this.sessionManager && this.stateManager) {
|
|
@@ -331,7 +340,7 @@ let _ToolManager = class _ToolManager {
|
|
|
331
340
|
return result;
|
|
332
341
|
} catch (error) {
|
|
333
342
|
const duration = Date.now() - startTime;
|
|
334
|
-
|
|
343
|
+
this.logger.error(
|
|
335
344
|
`\u274C Tool execution failed for ${toolName} after ${duration}ms, sessionId: ${sessionId ?? "global"}: ${error instanceof Error ? error.message : String(error)}`
|
|
336
345
|
);
|
|
337
346
|
if (this.pluginManager && this.sessionManager && this.stateManager) {
|
|
@@ -375,7 +384,7 @@ let _ToolManager = class _ToolManager {
|
|
|
375
384
|
try {
|
|
376
385
|
mcpTools = await this.mcpManager.getAllTools();
|
|
377
386
|
} catch (error) {
|
|
378
|
-
|
|
387
|
+
this.logger.error(
|
|
379
388
|
`Failed to get MCP tools for stats: ${error instanceof Error ? error.message : String(error)}`
|
|
380
389
|
);
|
|
381
390
|
mcpTools = {};
|
|
@@ -383,7 +392,7 @@ let _ToolManager = class _ToolManager {
|
|
|
383
392
|
try {
|
|
384
393
|
internalTools = this.internalToolsProvider?.getAllTools() || {};
|
|
385
394
|
} catch (error) {
|
|
386
|
-
|
|
395
|
+
this.logger.error(
|
|
387
396
|
`Failed to get internal tools for stats: ${error instanceof Error ? error.message : String(error)}`
|
|
388
397
|
);
|
|
389
398
|
internalTools = {};
|
|
@@ -466,39 +475,39 @@ let _ToolManager = class _ToolManager {
|
|
|
466
475
|
}
|
|
467
476
|
/**
|
|
468
477
|
* Handle tool approval/confirmation flow
|
|
469
|
-
* Checks allowed list, manages approval modes (
|
|
478
|
+
* Checks allowed list, manages approval modes (manual, auto-approve, auto-deny),
|
|
470
479
|
* and handles remember choice logic
|
|
471
480
|
*/
|
|
472
481
|
async handleToolApproval(toolName, args, sessionId) {
|
|
473
482
|
if (this.isInAlwaysDenyList(toolName)) {
|
|
474
|
-
|
|
483
|
+
this.logger.info(
|
|
475
484
|
`Tool '${toolName}' is in static deny list \u2013 blocking execution (session: ${sessionId ?? "global"})`
|
|
476
485
|
);
|
|
477
|
-
|
|
486
|
+
this.logger.debug(`\u{1F6AB} Tool execution blocked by policy: ${toolName}`);
|
|
478
487
|
throw import_errors.ToolError.executionDenied(toolName, sessionId);
|
|
479
488
|
}
|
|
480
489
|
if (this.isInAlwaysAllowList(toolName)) {
|
|
481
|
-
|
|
490
|
+
this.logger.info(
|
|
482
491
|
`Tool '${toolName}' is in static allow list \u2013 skipping confirmation (session: ${sessionId ?? "global"})`
|
|
483
492
|
);
|
|
484
493
|
return;
|
|
485
494
|
}
|
|
486
495
|
const isAllowed = await this.allowedToolsProvider.isToolAllowed(toolName, sessionId);
|
|
487
496
|
if (isAllowed) {
|
|
488
|
-
|
|
497
|
+
this.logger.info(
|
|
489
498
|
`Tool '${toolName}' already allowed for session '${sessionId ?? "global"}' \u2013 skipping confirmation.`
|
|
490
499
|
);
|
|
491
500
|
return;
|
|
492
501
|
}
|
|
493
502
|
if (this.approvalMode === "auto-approve") {
|
|
494
|
-
|
|
503
|
+
this.logger.debug(`\u{1F7E2} Auto-approving tool execution: ${toolName}`);
|
|
495
504
|
return;
|
|
496
505
|
}
|
|
497
506
|
if (this.approvalMode === "auto-deny") {
|
|
498
|
-
|
|
507
|
+
this.logger.debug(`\u{1F6AB} Auto-denying tool execution: ${toolName}`);
|
|
499
508
|
throw import_errors.ToolError.executionDenied(toolName, sessionId);
|
|
500
509
|
}
|
|
501
|
-
|
|
510
|
+
this.logger.info(
|
|
502
511
|
`Tool confirmation requested for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
503
512
|
);
|
|
504
513
|
try {
|
|
@@ -511,26 +520,34 @@ let _ToolManager = class _ToolManager {
|
|
|
511
520
|
}
|
|
512
521
|
const response = await this.approvalManager.requestToolConfirmation(requestData);
|
|
513
522
|
const rememberChoice = response.data && "rememberChoice" in response.data ? response.data.rememberChoice : false;
|
|
514
|
-
if (response.status ===
|
|
523
|
+
if (response.status === import_types3.ApprovalStatus.APPROVED && rememberChoice) {
|
|
515
524
|
const allowSessionId = sessionId ?? response.sessionId;
|
|
516
525
|
await this.allowedToolsProvider.allowTool(toolName, allowSessionId);
|
|
517
|
-
|
|
526
|
+
this.logger.info(
|
|
518
527
|
`Tool '${toolName}' added to allowed tools for session '${allowSessionId ?? "global"}' (remember choice selected)`
|
|
519
528
|
);
|
|
520
529
|
}
|
|
521
|
-
const approved = response.status ===
|
|
530
|
+
const approved = response.status === import_types3.ApprovalStatus.APPROVED;
|
|
522
531
|
if (!approved) {
|
|
523
|
-
|
|
524
|
-
|
|
532
|
+
if (response.status === import_types3.ApprovalStatus.CANCELLED && response.reason === "timeout") {
|
|
533
|
+
this.logger.info(
|
|
534
|
+
`Tool confirmation timed out for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
535
|
+
);
|
|
536
|
+
this.logger.debug(`\u23F1\uFE0F Tool execution timed out: ${toolName}`);
|
|
537
|
+
const timeoutMs = response.timeoutMs ?? 0;
|
|
538
|
+
throw import_errors.ToolError.executionTimeout(toolName, timeoutMs, sessionId);
|
|
539
|
+
}
|
|
540
|
+
this.logger.info(
|
|
541
|
+
`Tool confirmation denied for ${toolName}, sessionId: ${sessionId ?? "global"}, reason: ${response.reason ?? "unknown"}`
|
|
525
542
|
);
|
|
526
|
-
|
|
543
|
+
this.logger.debug(`\u{1F6AB} Tool execution denied: ${toolName}`);
|
|
527
544
|
throw import_errors.ToolError.executionDenied(toolName, sessionId);
|
|
528
545
|
}
|
|
529
|
-
|
|
546
|
+
this.logger.info(
|
|
530
547
|
`Tool confirmation approved for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
531
548
|
);
|
|
532
549
|
} catch (error) {
|
|
533
|
-
|
|
550
|
+
this.logger.error(
|
|
534
551
|
`Tool confirmation error for ${toolName}: ${error instanceof Error ? error.message : String(error)}`
|
|
535
552
|
);
|
|
536
553
|
throw error;
|
|
@@ -543,7 +560,7 @@ let _ToolManager = class _ToolManager {
|
|
|
543
560
|
async refresh() {
|
|
544
561
|
await this.mcpManager.refresh();
|
|
545
562
|
this.invalidateCache();
|
|
546
|
-
|
|
563
|
+
this.logger.debug("ToolManager refreshed (including MCP server capabilities)");
|
|
547
564
|
}
|
|
548
565
|
/**
|
|
549
566
|
* Get list of pending confirmation requests
|