@dexto/core 1.3.0 → 1.4.0
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 +17 -9
- package/dist/agent/DextoAgent.cjs +548 -207
- package/dist/agent/DextoAgent.d.ts +156 -33
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +545 -204
- package/dist/agent/agentCard.js +1 -1
- package/dist/agent/error-codes.cjs +1 -0
- package/dist/agent/error-codes.d.ts +2 -1
- package/dist/agent/error-codes.d.ts.map +1 -1
- package/dist/agent/error-codes.js +2 -1
- package/dist/agent/errors.cjs +13 -0
- package/dist/agent/errors.d.ts +4 -0
- package/dist/agent/errors.d.ts.map +1 -1
- package/dist/agent/errors.js +14 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/schemas.cjs +3 -0
- package/dist/agent/schemas.d.ts +92 -55
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +6 -2
- package/dist/agent/state-manager.cjs +5 -5
- package/dist/agent/state-manager.d.ts +4 -4
- package/dist/agent/state-manager.js +6 -6
- package/dist/agent/types.d.ts +24 -10
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/approval/error-codes.js +1 -1
- package/dist/approval/errors.js +1 -1
- package/dist/approval/factory.js +1 -1
- package/dist/approval/index.js +1 -1
- package/dist/approval/manager.cjs +69 -3
- package/dist/approval/manager.d.ts +41 -3
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +70 -4
- package/dist/approval/schemas.cjs +18 -4
- package/dist/approval/schemas.d.ts +106 -32
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +19 -5
- package/dist/approval/types.d.ts +6 -0
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +1 -1
- package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
- package/dist/{llm/tokenizer/default.cjs → context/compression/overflow.cjs} +20 -18
- package/dist/context/compression/overflow.d.ts +33 -0
- package/dist/context/compression/overflow.d.ts.map +1 -0
- package/dist/context/compression/overflow.js +19 -0
- package/dist/context/compression/reactive-overflow.cjs +201 -0
- package/dist/context/compression/reactive-overflow.d.ts +81 -0
- package/dist/context/compression/reactive-overflow.d.ts.map +1 -0
- package/dist/context/compression/reactive-overflow.js +178 -0
- package/dist/context/compression/types.d.ts +9 -7
- package/dist/context/compression/types.d.ts.map +1 -1
- package/dist/context/error-codes.cjs +3 -0
- package/dist/context/error-codes.d.ts +4 -1
- package/dist/context/error-codes.d.ts.map +1 -1
- package/dist/context/error-codes.js +4 -1
- package/dist/context/errors.cjs +28 -0
- package/dist/context/errors.d.ts +7 -0
- package/dist/context/errors.d.ts.map +1 -1
- package/dist/context/errors.js +29 -1
- package/dist/context/index.js +1 -1
- package/dist/context/manager.cjs +280 -323
- package/dist/context/manager.d.ts +65 -111
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +280 -328
- package/dist/context/media-helpers.js +1 -1
- package/dist/context/types.cjs +49 -0
- package/dist/context/types.d.ts +181 -72
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/types.js +35 -0
- package/dist/context/utils.cjs +266 -283
- package/dist/context/utils.d.ts +32 -18
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +266 -283
- package/dist/errors/DextoBaseError.js +1 -1
- package/dist/errors/DextoRuntimeError.js +1 -1
- package/dist/errors/DextoValidationError.js +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/result-bridge.js +1 -1
- package/dist/errors/types.js +1 -1
- package/dist/events/index.cjs +18 -1
- package/dist/events/index.d.ts +149 -12
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +19 -2
- package/dist/filesystem/error-codes.js +1 -1
- package/dist/filesystem/errors.js +1 -1
- package/dist/filesystem/filesystem-service.js +1 -1
- package/dist/filesystem/index.js +1 -1
- package/dist/filesystem/path-validator.js +1 -1
- package/dist/index.browser.cjs +23 -8
- package/dist/index.browser.d.ts +4 -3
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +20 -3
- package/dist/index.js +1 -1
- package/dist/llm/error-codes.cjs +0 -1
- package/dist/llm/error-codes.d.ts +0 -1
- package/dist/llm/error-codes.d.ts.map +1 -1
- package/dist/llm/error-codes.js +1 -2
- package/dist/llm/errors.cjs +10 -10
- package/dist/llm/errors.d.ts +5 -6
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +12 -12
- package/dist/llm/executor/stream-processor.cjs +367 -0
- package/dist/llm/executor/stream-processor.d.ts +55 -0
- package/dist/llm/executor/stream-processor.d.ts.map +1 -0
- package/dist/llm/executor/stream-processor.js +344 -0
- package/dist/llm/executor/tool-output-truncator.cjs +75 -0
- package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
- package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
- package/dist/llm/executor/tool-output-truncator.js +48 -0
- package/dist/llm/executor/turn-executor.cjs +753 -0
- package/dist/llm/executor/turn-executor.d.ts +166 -0
- package/dist/llm/executor/turn-executor.d.ts.map +1 -0
- package/dist/llm/executor/turn-executor.js +684 -0
- package/dist/llm/executor/types.d.ts +27 -0
- package/dist/llm/executor/types.d.ts.map +1 -0
- package/dist/llm/formatters/vercel.cjs +20 -186
- package/dist/llm/formatters/vercel.d.ts +2 -14
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +19 -185
- package/dist/llm/registry.cjs +36 -45
- package/dist/llm/registry.d.ts +53 -39
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +34 -42
- package/dist/llm/resolver.cjs +1 -31
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +2 -34
- package/dist/llm/schemas.cjs +2 -17
- package/dist/llm/schemas.d.ts +10 -23
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +5 -22
- package/dist/llm/services/factory.cjs +3 -92
- package/dist/llm/services/factory.d.ts +14 -4
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +4 -83
- package/dist/llm/services/test-utils.integration.cjs +6 -8
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +7 -9
- package/dist/llm/services/types.d.ts +1 -28
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +54 -468
- package/dist/llm/services/vercel.d.ts +38 -21
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +56 -475
- package/dist/llm/types.cjs +0 -3
- package/dist/llm/types.d.ts +8 -8
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +1 -3
- package/dist/llm/validation.js +1 -1
- package/dist/logger/browser.js +1 -1
- package/dist/logger/factory.js +1 -1
- package/dist/logger/index.js +1 -1
- package/dist/logger/logger.js +1 -1
- package/dist/logger/v2/dexto-logger.cjs +34 -6
- package/dist/logger/v2/dexto-logger.d.ts +20 -2
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
- package/dist/logger/v2/dexto-logger.js +35 -7
- package/dist/logger/v2/error-codes.js +1 -1
- package/dist/logger/v2/errors.js +1 -1
- package/dist/logger/v2/schemas.js +1 -1
- package/dist/logger/v2/test-utils.cjs +70 -0
- package/dist/logger/v2/test-utils.d.ts +17 -0
- package/dist/logger/v2/test-utils.d.ts.map +1 -0
- package/dist/logger/v2/test-utils.js +46 -0
- package/dist/logger/v2/transport-factory.js +1 -1
- package/dist/logger/v2/transports/console-transport.js +1 -1
- package/dist/logger/v2/transports/file-transport.cjs +6 -0
- package/dist/logger/v2/transports/file-transport.d.ts +4 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
- package/dist/logger/v2/transports/file-transport.js +7 -1
- package/dist/logger/v2/types.cjs +1 -0
- package/dist/logger/v2/types.d.ts +18 -2
- package/dist/logger/v2/types.d.ts.map +1 -1
- package/dist/logger/v2/types.js +2 -1
- package/dist/mcp/error-codes.cjs +1 -0
- package/dist/mcp/error-codes.d.ts +1 -0
- package/dist/mcp/error-codes.d.ts.map +1 -1
- package/dist/mcp/error-codes.js +2 -1
- package/dist/mcp/errors.cjs +13 -0
- package/dist/mcp/errors.d.ts +7 -0
- package/dist/mcp/errors.d.ts.map +1 -1
- package/dist/mcp/errors.js +14 -1
- package/dist/mcp/manager.cjs +4 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +5 -1
- package/dist/mcp/mcp-client.js +1 -1
- package/dist/mcp/resolver.js +1 -1
- package/dist/mcp/schemas.cjs +6 -0
- package/dist/mcp/schemas.d.ts +52 -0
- package/dist/mcp/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.js +6 -1
- package/dist/memory/error-codes.js +1 -1
- package/dist/memory/errors.js +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/memory/manager.js +1 -1
- package/dist/memory/schemas.d.ts +2 -2
- package/dist/memory/schemas.js +1 -1
- package/dist/plugins/builtins/content-policy.js +1 -1
- package/dist/plugins/builtins/response-sanitizer.js +1 -1
- package/dist/plugins/error-codes.js +1 -1
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/loader.js +1 -1
- package/dist/plugins/manager.js +1 -1
- package/dist/plugins/registrations/builtins.js +1 -1
- package/dist/plugins/schemas.d.ts +3 -3
- package/dist/plugins/schemas.js +1 -1
- package/dist/plugins/types.d.ts +0 -1
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.js +1 -1
- package/dist/process/error-codes.js +1 -1
- package/dist/process/errors.js +1 -1
- package/dist/process/index.js +1 -1
- package/dist/process/process-service.cjs +78 -26
- package/dist/process/process-service.d.ts +6 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +79 -27
- package/dist/process/types.d.ts +2 -2
- package/dist/process/types.d.ts.map +1 -1
- package/dist/prompts/error-codes.cjs +1 -0
- package/dist/prompts/error-codes.d.ts +2 -1
- package/dist/prompts/error-codes.d.ts.map +1 -1
- package/dist/prompts/error-codes.js +2 -1
- package/dist/prompts/errors.cjs +15 -0
- package/dist/prompts/errors.d.ts +4 -0
- package/dist/prompts/errors.d.ts.map +1 -1
- package/dist/prompts/errors.js +16 -1
- package/dist/prompts/index.js +1 -1
- package/dist/prompts/name-validation.js +1 -1
- package/dist/prompts/prompt-manager.cjs +13 -2
- package/dist/prompts/prompt-manager.d.ts +7 -0
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +14 -3
- package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
- package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.js +13 -4
- package/dist/prompts/providers/custom-prompt-provider.js +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
- package/dist/prompts/schemas.d.ts +12 -0
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +1 -1
- package/dist/prompts/types.d.ts +2 -0
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/prompts/utils.js +1 -1
- package/dist/resources/error-codes.js +1 -1
- package/dist/resources/errors.js +1 -1
- package/dist/resources/handlers/blob-handler.js +1 -1
- package/dist/resources/handlers/factory.js +1 -1
- package/dist/resources/handlers/filesystem-handler.js +1 -1
- package/dist/resources/index.js +1 -1
- package/dist/resources/internal-provider.js +1 -1
- package/dist/resources/manager.js +1 -1
- package/dist/resources/reference-parser.js +1 -1
- package/dist/resources/schemas.js +1 -1
- package/dist/search/index.js +1 -1
- package/dist/search/search-service.js +1 -1
- package/dist/session/chat-session.cjs +149 -51
- package/dist/session/chat-session.d.ts +69 -29
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +150 -52
- package/dist/session/error-codes.js +1 -1
- package/dist/session/errors.js +1 -1
- package/dist/session/history/database.cjs +134 -21
- package/dist/session/history/database.d.ts +37 -8
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +135 -22
- package/dist/session/history/factory.js +1 -1
- package/dist/session/history/memory.cjs +18 -0
- package/dist/session/history/memory.d.ts +8 -0
- package/dist/session/history/memory.d.ts.map +1 -1
- package/dist/session/history/memory.js +19 -1
- package/dist/session/history/types.d.ts +13 -1
- package/dist/session/history/types.d.ts.map +1 -1
- package/dist/session/index.cjs +3 -0
- package/dist/session/index.d.ts +3 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +3 -1
- package/dist/session/message-queue.cjs +201 -0
- package/dist/session/message-queue.d.ts +114 -0
- package/dist/session/message-queue.d.ts.map +1 -0
- package/dist/session/message-queue.js +178 -0
- package/dist/session/schemas.js +1 -1
- package/dist/session/session-manager.cjs +57 -7
- package/dist/session/session-manager.d.ts +18 -0
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +58 -8
- package/dist/session/title-generator.cjs +4 -8
- package/dist/session/title-generator.d.ts +1 -2
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +5 -9
- package/dist/session/types.cjs +16 -0
- package/dist/session/types.d.ts +14 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +0 -0
- package/dist/storage/blob/factory.js +1 -1
- package/dist/storage/blob/local-blob-store.js +1 -1
- package/dist/storage/blob/memory-blob-store.js +1 -1
- package/dist/storage/blob/schemas.js +1 -1
- package/dist/storage/cache/factory.js +1 -1
- package/dist/storage/cache/memory-cache-store.js +1 -1
- package/dist/storage/cache/redis-store.js +1 -1
- package/dist/storage/cache/schemas.js +1 -1
- package/dist/storage/database/factory.js +1 -1
- package/dist/storage/database/memory-database-store.js +1 -1
- package/dist/storage/database/postgres-store.cjs +12 -0
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +13 -1
- package/dist/storage/database/schemas.js +1 -1
- package/dist/storage/database/sqlite-store.js +1 -1
- package/dist/storage/error-codes.js +1 -1
- package/dist/storage/errors.js +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/schemas.js +1 -1
- package/dist/storage/storage-manager.js +1 -1
- package/dist/systemPrompt/contributors.js +1 -1
- package/dist/systemPrompt/error-codes.js +1 -1
- package/dist/systemPrompt/errors.js +1 -1
- package/dist/systemPrompt/in-built-prompts.js +1 -1
- package/dist/systemPrompt/index.js +1 -1
- package/dist/systemPrompt/manager.js +1 -1
- package/dist/systemPrompt/registry.js +1 -1
- package/dist/systemPrompt/schemas.d.ts +5 -5
- package/dist/systemPrompt/schemas.js +1 -1
- package/dist/telemetry/decorators.js +1 -1
- package/dist/telemetry/error-codes.js +1 -1
- package/dist/telemetry/errors.js +1 -1
- package/dist/telemetry/exporters.js +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/schemas.js +1 -1
- package/dist/telemetry/telemetry.js +1 -1
- package/dist/telemetry/utils.js +1 -1
- package/dist/tools/bash-pattern-utils.cjs +91 -0
- package/dist/tools/bash-pattern-utils.d.ts +58 -0
- package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
- package/dist/tools/bash-pattern-utils.js +64 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
- package/dist/tools/display-types.cjs +60 -0
- package/dist/tools/display-types.d.ts +133 -0
- package/dist/tools/display-types.d.ts.map +1 -0
- package/dist/tools/display-types.js +32 -0
- package/dist/tools/error-codes.cjs +2 -0
- package/dist/tools/error-codes.d.ts +3 -1
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +3 -1
- package/dist/tools/errors.cjs +30 -0
- package/dist/tools/errors.d.ts +16 -0
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +31 -1
- package/dist/tools/index.cjs +2 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -1
- package/dist/tools/internal-tools/constants.js +1 -1
- package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +42 -18
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +3 -3
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +43 -19
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +66 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +67 -2
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +14 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +15 -2
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +16 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +17 -2
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +9 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.js +10 -2
- package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +69 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.js +72 -2
- package/dist/tools/internal-tools/provider.cjs +27 -10
- package/dist/tools/internal-tools/provider.d.ts +8 -5
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +28 -11
- package/dist/tools/internal-tools/registry.cjs +4 -3
- package/dist/tools/internal-tools/registry.d.ts +28 -7
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +5 -4
- package/dist/tools/schemas.cjs +16 -6
- package/dist/tools/schemas.d.ts +31 -4
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +14 -6
- package/dist/tools/tool-manager.cjs +140 -18
- package/dist/tools/tool-manager.d.ts +23 -1
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +145 -19
- package/dist/tools/types.d.ts +20 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.js +1 -1
- package/dist/utils/async-context.js +1 -1
- package/dist/utils/debug.js +1 -1
- package/dist/{llm/tokenizer/types.cjs → utils/defer.cjs} +19 -10
- package/dist/utils/defer.d.ts +63 -0
- package/dist/utils/defer.d.ts.map +1 -0
- package/dist/utils/defer.js +19 -0
- package/dist/utils/env-file.js +1 -1
- package/dist/utils/error-conversion.js +1 -1
- package/dist/utils/execution-context.js +1 -1
- package/dist/utils/fs-walk.js +1 -1
- package/dist/utils/index.cjs +3 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/path.js +1 -1
- package/dist/utils/redactor.js +1 -1
- package/dist/utils/result.js +1 -1
- package/dist/utils/safe-stringify.js +1 -1
- package/dist/utils/schema-metadata.js +1 -1
- package/dist/utils/schema.js +1 -1
- package/dist/utils/service-initializer.cjs +6 -2
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +7 -3
- package/dist/utils/user-info.js +1 -1
- package/dist/utils/zod-schema-converter.js +1 -1
- package/package.json +6 -7
- package/dist/context/compression/middle-removal.cjs +0 -95
- package/dist/context/compression/middle-removal.d.ts +0 -47
- package/dist/context/compression/middle-removal.d.ts.map +0 -1
- package/dist/context/compression/middle-removal.js +0 -72
- package/dist/context/compression/oldest-removal.cjs +0 -83
- package/dist/context/compression/oldest-removal.d.ts +0 -42
- package/dist/context/compression/oldest-removal.d.ts.map +0 -1
- package/dist/context/compression/oldest-removal.js +0 -60
- package/dist/llm/formatters/anthropic.cjs +0 -257
- package/dist/llm/formatters/anthropic.d.ts +0 -46
- package/dist/llm/formatters/anthropic.d.ts.map +0 -1
- package/dist/llm/formatters/anthropic.js +0 -239
- package/dist/llm/formatters/factory.cjs +0 -50
- package/dist/llm/formatters/factory.d.ts +0 -10
- package/dist/llm/formatters/factory.d.ts.map +0 -1
- package/dist/llm/formatters/factory.js +0 -27
- package/dist/llm/formatters/openai.cjs +0 -203
- package/dist/llm/formatters/openai.d.ts +0 -39
- package/dist/llm/formatters/openai.d.ts.map +0 -1
- package/dist/llm/formatters/openai.js +0 -184
- package/dist/llm/formatters/types.d.ts +0 -41
- package/dist/llm/formatters/types.d.ts.map +0 -1
- package/dist/llm/services/anthropic.cjs +0 -511
- package/dist/llm/services/anthropic.d.ts +0 -48
- package/dist/llm/services/anthropic.d.ts.map +0 -1
- package/dist/llm/services/anthropic.js +0 -447
- package/dist/llm/services/openai.cjs +0 -611
- package/dist/llm/services/openai.d.ts +0 -48
- package/dist/llm/services/openai.d.ts.map +0 -1
- package/dist/llm/services/openai.js +0 -547
- package/dist/llm/tokenizer/anthropic.cjs +0 -43
- package/dist/llm/tokenizer/anthropic.d.ts +0 -19
- package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
- package/dist/llm/tokenizer/anthropic.js +0 -20
- package/dist/llm/tokenizer/default.d.ts +0 -14
- package/dist/llm/tokenizer/default.d.ts.map +0 -1
- package/dist/llm/tokenizer/default.js +0 -18
- package/dist/llm/tokenizer/factory.cjs +0 -44
- package/dist/llm/tokenizer/factory.d.ts +0 -12
- package/dist/llm/tokenizer/factory.d.ts.map +0 -1
- package/dist/llm/tokenizer/factory.js +0 -21
- package/dist/llm/tokenizer/google.cjs +0 -52
- package/dist/llm/tokenizer/google.d.ts +0 -29
- package/dist/llm/tokenizer/google.d.ts.map +0 -1
- package/dist/llm/tokenizer/google.js +0 -29
- package/dist/llm/tokenizer/openai.cjs +0 -115
- package/dist/llm/tokenizer/openai.d.ts +0 -41
- package/dist/llm/tokenizer/openai.d.ts.map +0 -1
- package/dist/llm/tokenizer/openai.js +0 -91
- package/dist/llm/tokenizer/types.d.ts +0 -18
- package/dist/llm/tokenizer/types.d.ts.map +0 -1
- package/dist/llm/tokenizer/types.js +0 -10
- /package/dist/llm/{formatters → executor}/types.cjs +0 -0
- /package/dist/llm/{formatters → executor}/types.js +0 -0
package/dist/tools/schemas.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare const ToolPoliciesSchema: z.ZodDefault<z.ZodObject<{
|
|
|
20
20
|
export type ToolPolicies = z.output<typeof ToolPoliciesSchema>;
|
|
21
21
|
export declare const ToolConfirmationConfigSchema: z.ZodObject<{
|
|
22
22
|
mode: z.ZodDefault<z.ZodEnum<["manual", "auto-approve", "auto-deny"]>>;
|
|
23
|
-
timeout: z.
|
|
23
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
24
24
|
allowedToolsStorage: z.ZodDefault<z.ZodEnum<["memory", "storage"]>>;
|
|
25
25
|
toolPolicies: z.ZodDefault<z.ZodObject<{
|
|
26
26
|
alwaysAllow: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -33,13 +33,13 @@ export declare const ToolConfirmationConfigSchema: z.ZodObject<{
|
|
|
33
33
|
alwaysDeny?: string[] | undefined;
|
|
34
34
|
}>>;
|
|
35
35
|
}, "strict", z.ZodTypeAny, {
|
|
36
|
-
timeout: number;
|
|
37
36
|
mode: "manual" | "auto-approve" | "auto-deny";
|
|
38
37
|
allowedToolsStorage: "storage" | "memory";
|
|
39
38
|
toolPolicies: {
|
|
40
39
|
alwaysAllow: string[];
|
|
41
40
|
alwaysDeny: string[];
|
|
42
41
|
};
|
|
42
|
+
timeout?: number | undefined;
|
|
43
43
|
}, {
|
|
44
44
|
timeout?: number | undefined;
|
|
45
45
|
mode?: "manual" | "auto-approve" | "auto-deny" | undefined;
|
|
@@ -53,14 +53,41 @@ export type ToolConfirmationConfig = z.input<typeof ToolConfirmationConfigSchema
|
|
|
53
53
|
export type ValidatedToolConfirmationConfig = z.output<typeof ToolConfirmationConfigSchema>;
|
|
54
54
|
export declare const ElicitationConfigSchema: z.ZodObject<{
|
|
55
55
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
56
|
-
timeout: z.
|
|
56
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
57
57
|
}, "strict", z.ZodTypeAny, {
|
|
58
|
-
timeout: number;
|
|
59
58
|
enabled: boolean;
|
|
59
|
+
timeout?: number | undefined;
|
|
60
60
|
}, {
|
|
61
61
|
timeout?: number | undefined;
|
|
62
62
|
enabled?: boolean | undefined;
|
|
63
63
|
}>;
|
|
64
64
|
export type ElicitationConfig = z.input<typeof ElicitationConfigSchema>;
|
|
65
65
|
export type ValidatedElicitationConfig = z.output<typeof ElicitationConfigSchema>;
|
|
66
|
+
export declare const ToolLimitsSchema: z.ZodObject<{
|
|
67
|
+
maxOutputChars: z.ZodOptional<z.ZodNumber>;
|
|
68
|
+
maxLines: z.ZodOptional<z.ZodNumber>;
|
|
69
|
+
maxLineLength: z.ZodOptional<z.ZodNumber>;
|
|
70
|
+
}, "strict", z.ZodTypeAny, {
|
|
71
|
+
maxOutputChars?: number | undefined;
|
|
72
|
+
maxLines?: number | undefined;
|
|
73
|
+
maxLineLength?: number | undefined;
|
|
74
|
+
}, {
|
|
75
|
+
maxOutputChars?: number | undefined;
|
|
76
|
+
maxLines?: number | undefined;
|
|
77
|
+
maxLineLength?: number | undefined;
|
|
78
|
+
}>;
|
|
79
|
+
export declare const ToolsConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
80
|
+
maxOutputChars: z.ZodOptional<z.ZodNumber>;
|
|
81
|
+
maxLines: z.ZodOptional<z.ZodNumber>;
|
|
82
|
+
maxLineLength: z.ZodOptional<z.ZodNumber>;
|
|
83
|
+
}, "strict", z.ZodTypeAny, {
|
|
84
|
+
maxOutputChars?: number | undefined;
|
|
85
|
+
maxLines?: number | undefined;
|
|
86
|
+
maxLineLength?: number | undefined;
|
|
87
|
+
}, {
|
|
88
|
+
maxOutputChars?: number | undefined;
|
|
89
|
+
maxLines?: number | undefined;
|
|
90
|
+
maxLineLength?: number | undefined;
|
|
91
|
+
}>>;
|
|
92
|
+
export type ToolsConfig = z.output<typeof ToolsConfigSchema>;
|
|
66
93
|
//# 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,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"}
|
|
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;AAGlF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAShB,CAAC;AAEd,eAAO,MAAM,iBAAiB;;;;;;;;;;;;GAEgB,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
package/dist/tools/schemas.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { INTERNAL_TOOL_NAMES } from "./internal-tools/constants.js";
|
|
4
4
|
const TOOL_CONFIRMATION_MODES = ["manual", "auto-approve", "auto-deny"];
|
|
@@ -20,8 +20,8 @@ const ToolConfirmationConfigSchema = z.object({
|
|
|
20
20
|
mode: z.enum(TOOL_CONFIRMATION_MODES).default(DEFAULT_TOOL_CONFIRMATION_MODE).describe(
|
|
21
21
|
"Tool confirmation mode: manual (interactive), auto-approve (all tools), auto-deny (no tools)"
|
|
22
22
|
),
|
|
23
|
-
timeout: z.number().int().positive().
|
|
24
|
-
"Timeout for tool confirmation requests in milliseconds
|
|
23
|
+
timeout: z.number().int().positive().optional().describe(
|
|
24
|
+
"Timeout for tool confirmation requests in milliseconds (optional - no timeout if not specified)"
|
|
25
25
|
),
|
|
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)"
|
|
@@ -34,12 +34,18 @@ const ElicitationConfigSchema = z.object({
|
|
|
34
34
|
enabled: z.boolean().default(false).describe(
|
|
35
35
|
"Enable elicitation support (ask_user tool and MCP server elicitations). When disabled, elicitation requests will be rejected."
|
|
36
36
|
),
|
|
37
|
-
timeout: z.number().int().positive().
|
|
38
|
-
"Timeout for elicitation requests in milliseconds
|
|
37
|
+
timeout: z.number().int().positive().optional().describe(
|
|
38
|
+
"Timeout for elicitation requests in milliseconds (optional - no timeout if not specified)"
|
|
39
39
|
)
|
|
40
40
|
}).strict().describe(
|
|
41
41
|
"Elicitation configuration for user input requests. Independent from tool confirmation mode, allowing auto-approve for tools while still supporting elicitation."
|
|
42
42
|
);
|
|
43
|
+
const ToolLimitsSchema = z.object({
|
|
44
|
+
maxOutputChars: z.number().optional().describe("Maximum number of characters for tool output"),
|
|
45
|
+
maxLines: z.number().optional().describe("Maximum number of lines for tool output"),
|
|
46
|
+
maxLineLength: z.number().optional().describe("Maximum length of a single line")
|
|
47
|
+
}).strict();
|
|
48
|
+
const ToolsConfigSchema = z.record(ToolLimitsSchema).describe("Per-tool configuration limits");
|
|
43
49
|
export {
|
|
44
50
|
ALLOWED_TOOLS_STORAGE_TYPES,
|
|
45
51
|
DEFAULT_ALLOWED_TOOLS_STORAGE,
|
|
@@ -48,5 +54,7 @@ export {
|
|
|
48
54
|
InternalToolsSchema,
|
|
49
55
|
TOOL_CONFIRMATION_MODES,
|
|
50
56
|
ToolConfirmationConfigSchema,
|
|
51
|
-
|
|
57
|
+
ToolLimitsSchema,
|
|
58
|
+
ToolPoliciesSchema,
|
|
59
|
+
ToolsConfigSchema
|
|
52
60
|
};
|
|
@@ -68,9 +68,12 @@ __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 import_error_codes = require("./error-codes.js");
|
|
72
|
+
var import_errors2 = require("../errors/index.js");
|
|
71
73
|
var import_types2 = require("../logger/v2/types.js");
|
|
72
74
|
var import_types3 = require("../approval/types.js");
|
|
73
75
|
var import_decorators = require("../telemetry/decorators.js");
|
|
76
|
+
var import_bash_pattern_utils = require("./bash-pattern-utils.js");
|
|
74
77
|
var _ToolManager_decorators, _init;
|
|
75
78
|
_ToolManager_decorators = [(0, import_decorators.InstrumentClass)({
|
|
76
79
|
prefix: "tool",
|
|
@@ -109,9 +112,12 @@ let _ToolManager = class _ToolManager {
|
|
|
109
112
|
this.toolPolicies = toolPolicies;
|
|
110
113
|
this.logger = logger.createChild(import_types2.DextoLogComponent.TOOLS);
|
|
111
114
|
if (options?.internalToolsConfig && options.internalToolsConfig.length > 0) {
|
|
115
|
+
const internalToolsServices = {
|
|
116
|
+
...options.internalToolsServices,
|
|
117
|
+
approvalManager
|
|
118
|
+
};
|
|
112
119
|
this.internalToolsProvider = new import_provider.InternalToolsProvider(
|
|
113
|
-
|
|
114
|
-
approvalManager,
|
|
120
|
+
internalToolsServices,
|
|
115
121
|
options.internalToolsConfig,
|
|
116
122
|
this.logger
|
|
117
123
|
);
|
|
@@ -163,6 +169,37 @@ let _ToolManager = class _ToolManager {
|
|
|
163
169
|
this.invalidateCache();
|
|
164
170
|
});
|
|
165
171
|
}
|
|
172
|
+
// ==================== Bash Pattern Approval Helpers ====================
|
|
173
|
+
/**
|
|
174
|
+
* Check if a tool name represents a bash execution tool
|
|
175
|
+
*/
|
|
176
|
+
isBashTool(toolName) {
|
|
177
|
+
return toolName === "bash_exec" || toolName === "internal--bash_exec";
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Check if a bash command is covered by any approved pattern.
|
|
181
|
+
* Generates a pattern key from the command, then checks if it's covered by stored patterns.
|
|
182
|
+
*
|
|
183
|
+
* Returns approval info if covered, or pattern suggestions if not.
|
|
184
|
+
*/
|
|
185
|
+
checkBashPatternApproval(command) {
|
|
186
|
+
const patternKey = (0, import_bash_pattern_utils.generateBashPatternKey)(command);
|
|
187
|
+
if (!patternKey) {
|
|
188
|
+
if ((0, import_bash_pattern_utils.isDangerousCommand)(command)) {
|
|
189
|
+
this.logger.debug(
|
|
190
|
+
`Skipping pattern generation for dangerous command: ${command.split(/\s+/)[0]}`
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
return { approved: false, suggestedPatterns: [] };
|
|
194
|
+
}
|
|
195
|
+
if (this.approvalManager.matchesBashPattern(patternKey)) {
|
|
196
|
+
return { approved: true };
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
approved: false,
|
|
200
|
+
suggestedPatterns: (0, import_bash_pattern_utils.generateBashPatternSuggestions)(command)
|
|
201
|
+
};
|
|
202
|
+
}
|
|
166
203
|
getMcpManager() {
|
|
167
204
|
return this.mcpManager;
|
|
168
205
|
}
|
|
@@ -247,15 +284,41 @@ let _ToolManager = class _ToolManager {
|
|
|
247
284
|
/**
|
|
248
285
|
* Execute a tool by routing based on universal prefix
|
|
249
286
|
* ALL tools must have source prefix - no exceptions
|
|
287
|
+
*
|
|
288
|
+
* @param toolName The fully qualified tool name (e.g., "internal--edit_file")
|
|
289
|
+
* @param args The arguments for the tool
|
|
290
|
+
* @param toolCallId The unique tool call ID for tracking (from LLM or generated for direct calls)
|
|
291
|
+
* @param sessionId Optional session ID for context
|
|
292
|
+
* @param abortSignal Optional abort signal for cancellation support
|
|
250
293
|
*/
|
|
251
|
-
async executeTool(toolName, args, sessionId) {
|
|
252
|
-
this.logger.debug(`\u{1F527} Tool execution requested: '${toolName}'`);
|
|
294
|
+
async executeTool(toolName, args, toolCallId, sessionId, abortSignal) {
|
|
295
|
+
this.logger.debug(`\u{1F527} Tool execution requested: '${toolName}' (toolCallId: ${toolCallId})`);
|
|
253
296
|
this.logger.debug(`Tool args: ${JSON.stringify(args, null, 2)}`);
|
|
254
|
-
|
|
297
|
+
if (sessionId) {
|
|
298
|
+
this.agentEventBus.emit("llm:tool-call", {
|
|
299
|
+
toolName,
|
|
300
|
+
args,
|
|
301
|
+
callId: toolCallId,
|
|
302
|
+
sessionId
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
const { requireApproval, approvalStatus } = await this.handleToolApproval(
|
|
306
|
+
toolName,
|
|
307
|
+
args,
|
|
308
|
+
toolCallId,
|
|
309
|
+
sessionId
|
|
310
|
+
);
|
|
255
311
|
this.logger.debug(`\u2705 Tool execution approved: ${toolName}`);
|
|
256
312
|
this.logger.info(
|
|
257
313
|
`\u{1F527} Tool execution started for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
258
314
|
);
|
|
315
|
+
if (sessionId) {
|
|
316
|
+
this.agentEventBus.emit("tool:running", {
|
|
317
|
+
toolName,
|
|
318
|
+
toolCallId,
|
|
319
|
+
sessionId
|
|
320
|
+
});
|
|
321
|
+
}
|
|
259
322
|
const startTime = Date.now();
|
|
260
323
|
if (this.pluginManager && this.sessionManager && this.stateManager) {
|
|
261
324
|
const beforePayload = {
|
|
@@ -299,7 +362,8 @@ let _ToolManager = class _ToolManager {
|
|
|
299
362
|
result = await this.internalToolsProvider.executeTool(
|
|
300
363
|
actualToolName,
|
|
301
364
|
args,
|
|
302
|
-
sessionId
|
|
365
|
+
sessionId,
|
|
366
|
+
abortSignal
|
|
303
367
|
);
|
|
304
368
|
} else {
|
|
305
369
|
this.logger.debug(`\u{1F527} Detected tool without proper prefix: '${toolName}'`);
|
|
@@ -337,7 +401,10 @@ let _ToolManager = class _ToolManager {
|
|
|
337
401
|
);
|
|
338
402
|
result = modifiedPayload.result;
|
|
339
403
|
}
|
|
340
|
-
return
|
|
404
|
+
return {
|
|
405
|
+
result,
|
|
406
|
+
...requireApproval && { requireApproval, approvalStatus }
|
|
407
|
+
};
|
|
341
408
|
} catch (error) {
|
|
342
409
|
const duration = Date.now() - startTime;
|
|
343
410
|
this.logger.error(
|
|
@@ -477,8 +544,13 @@ let _ToolManager = class _ToolManager {
|
|
|
477
544
|
* Handle tool approval/confirmation flow
|
|
478
545
|
* Checks allowed list, manages approval modes (manual, auto-approve, auto-deny),
|
|
479
546
|
* and handles remember choice logic
|
|
547
|
+
*
|
|
548
|
+
* @param toolName The fully qualified tool name
|
|
549
|
+
* @param args The arguments for the tool
|
|
550
|
+
* @param toolCallId The unique tool call ID for tracking parallel tool calls
|
|
551
|
+
* @param sessionId Optional session ID for context
|
|
480
552
|
*/
|
|
481
|
-
async handleToolApproval(toolName, args, sessionId) {
|
|
553
|
+
async handleToolApproval(toolName, args, toolCallId, sessionId) {
|
|
482
554
|
if (this.isInAlwaysDenyList(toolName)) {
|
|
483
555
|
this.logger.info(
|
|
484
556
|
`Tool '${toolName}' is in static deny list \u2013 blocking execution (session: ${sessionId ?? "global"})`
|
|
@@ -490,18 +562,31 @@ let _ToolManager = class _ToolManager {
|
|
|
490
562
|
this.logger.info(
|
|
491
563
|
`Tool '${toolName}' is in static allow list \u2013 skipping confirmation (session: ${sessionId ?? "global"})`
|
|
492
564
|
);
|
|
493
|
-
return;
|
|
565
|
+
return { requireApproval: false };
|
|
494
566
|
}
|
|
495
567
|
const isAllowed = await this.allowedToolsProvider.isToolAllowed(toolName, sessionId);
|
|
496
568
|
if (isAllowed) {
|
|
497
569
|
this.logger.info(
|
|
498
570
|
`Tool '${toolName}' already allowed for session '${sessionId ?? "global"}' \u2013 skipping confirmation.`
|
|
499
571
|
);
|
|
500
|
-
return;
|
|
572
|
+
return { requireApproval: false };
|
|
573
|
+
}
|
|
574
|
+
let bashPatternResult;
|
|
575
|
+
if (this.isBashTool(toolName)) {
|
|
576
|
+
const command = args.command;
|
|
577
|
+
if (command) {
|
|
578
|
+
bashPatternResult = this.checkBashPatternApproval(command);
|
|
579
|
+
if (bashPatternResult.approved) {
|
|
580
|
+
this.logger.info(
|
|
581
|
+
`Bash command '${command}' matched approved pattern \u2013 skipping confirmation.`
|
|
582
|
+
);
|
|
583
|
+
return { requireApproval: false };
|
|
584
|
+
}
|
|
585
|
+
}
|
|
501
586
|
}
|
|
502
587
|
if (this.approvalMode === "auto-approve") {
|
|
503
588
|
this.logger.debug(`\u{1F7E2} Auto-approving tool execution: ${toolName}`);
|
|
504
|
-
return;
|
|
589
|
+
return { requireApproval: false };
|
|
505
590
|
}
|
|
506
591
|
if (this.approvalMode === "auto-deny") {
|
|
507
592
|
this.logger.debug(`\u{1F6AB} Auto-denying tool execution: ${toolName}`);
|
|
@@ -511,21 +596,57 @@ let _ToolManager = class _ToolManager {
|
|
|
511
596
|
`Tool confirmation requested for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
512
597
|
);
|
|
513
598
|
try {
|
|
599
|
+
let displayPreview;
|
|
600
|
+
const actualToolName = toolName.replace(/^internal--/, "");
|
|
601
|
+
const internalTool = this.internalToolsProvider?.getTool(actualToolName);
|
|
602
|
+
if (internalTool?.generatePreview) {
|
|
603
|
+
try {
|
|
604
|
+
const context = { sessionId };
|
|
605
|
+
const preview = await internalTool.generatePreview(args, context);
|
|
606
|
+
displayPreview = preview ?? void 0;
|
|
607
|
+
this.logger.debug(`Generated preview for ${toolName}`);
|
|
608
|
+
} catch (previewError) {
|
|
609
|
+
if (previewError instanceof import_errors2.DextoRuntimeError && previewError.code === import_error_codes.ToolErrorCode.VALIDATION_FAILED) {
|
|
610
|
+
this.logger.debug(
|
|
611
|
+
`Validation failed for ${toolName}: ${previewError.message}`
|
|
612
|
+
);
|
|
613
|
+
throw previewError;
|
|
614
|
+
}
|
|
615
|
+
this.logger.debug(
|
|
616
|
+
`Preview generation failed for ${toolName}: ${previewError instanceof Error ? previewError.message : String(previewError)}`
|
|
617
|
+
);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
514
620
|
const requestData = {
|
|
515
621
|
toolName,
|
|
622
|
+
toolCallId,
|
|
516
623
|
args
|
|
517
624
|
};
|
|
518
625
|
if (sessionId !== void 0) {
|
|
519
626
|
requestData.sessionId = sessionId;
|
|
520
627
|
}
|
|
628
|
+
if (displayPreview !== void 0) {
|
|
629
|
+
requestData.displayPreview = displayPreview;
|
|
630
|
+
}
|
|
631
|
+
if (bashPatternResult?.suggestedPatterns && bashPatternResult.suggestedPatterns.length > 0) {
|
|
632
|
+
requestData.suggestedPatterns = bashPatternResult.suggestedPatterns;
|
|
633
|
+
}
|
|
521
634
|
const response = await this.approvalManager.requestToolConfirmation(requestData);
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
const
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
635
|
+
if (response.status === import_types3.ApprovalStatus.APPROVED && response.data) {
|
|
636
|
+
const rememberChoice = "rememberChoice" in response.data ? response.data.rememberChoice : false;
|
|
637
|
+
const rememberPattern = "rememberPattern" in response.data ? response.data.rememberPattern : void 0;
|
|
638
|
+
if (rememberChoice) {
|
|
639
|
+
const allowSessionId = sessionId ?? response.sessionId;
|
|
640
|
+
await this.allowedToolsProvider.allowTool(toolName, allowSessionId);
|
|
641
|
+
this.logger.info(
|
|
642
|
+
`Tool '${toolName}' added to allowed tools for session '${allowSessionId ?? "global"}' (remember choice selected)`
|
|
643
|
+
);
|
|
644
|
+
} else if (rememberPattern && typeof rememberPattern === "string" && this.isBashTool(toolName)) {
|
|
645
|
+
this.approvalManager.addBashPattern(rememberPattern);
|
|
646
|
+
this.logger.info(
|
|
647
|
+
`Bash pattern '${rememberPattern}' added for session approval`
|
|
648
|
+
);
|
|
649
|
+
}
|
|
529
650
|
}
|
|
530
651
|
const approved = response.status === import_types3.ApprovalStatus.APPROVED;
|
|
531
652
|
if (!approved) {
|
|
@@ -546,6 +667,7 @@ let _ToolManager = class _ToolManager {
|
|
|
546
667
|
this.logger.info(
|
|
547
668
|
`Tool confirmation approved for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
548
669
|
);
|
|
670
|
+
return { requireApproval: true, approvalStatus: "approved" };
|
|
549
671
|
} catch (error) {
|
|
550
672
|
this.logger.error(
|
|
551
673
|
`Tool confirmation error for ${toolName}: ${error instanceof Error ? error.message : String(error)}`
|
|
@@ -75,6 +75,17 @@ export declare class ToolManager {
|
|
|
75
75
|
* Set up listeners for MCP notifications to invalidate cache on changes
|
|
76
76
|
*/
|
|
77
77
|
private setupNotificationListeners;
|
|
78
|
+
/**
|
|
79
|
+
* Check if a tool name represents a bash execution tool
|
|
80
|
+
*/
|
|
81
|
+
private isBashTool;
|
|
82
|
+
/**
|
|
83
|
+
* Check if a bash command is covered by any approved pattern.
|
|
84
|
+
* Generates a pattern key from the command, then checks if it's covered by stored patterns.
|
|
85
|
+
*
|
|
86
|
+
* Returns approval info if covered, or pattern suggestions if not.
|
|
87
|
+
*/
|
|
88
|
+
private checkBashPatternApproval;
|
|
78
89
|
getMcpManager(): MCPManager;
|
|
79
90
|
/**
|
|
80
91
|
* Get all MCP tools (delegates to mcpManager.getAllTools())
|
|
@@ -105,8 +116,14 @@ export declare class ToolManager {
|
|
|
105
116
|
/**
|
|
106
117
|
* Execute a tool by routing based on universal prefix
|
|
107
118
|
* ALL tools must have source prefix - no exceptions
|
|
119
|
+
*
|
|
120
|
+
* @param toolName The fully qualified tool name (e.g., "internal--edit_file")
|
|
121
|
+
* @param args The arguments for the tool
|
|
122
|
+
* @param toolCallId The unique tool call ID for tracking (from LLM or generated for direct calls)
|
|
123
|
+
* @param sessionId Optional session ID for context
|
|
124
|
+
* @param abortSignal Optional abort signal for cancellation support
|
|
108
125
|
*/
|
|
109
|
-
executeTool(toolName: string, args: Record<string, unknown>, sessionId?: string): Promise<
|
|
126
|
+
executeTool(toolName: string, args: Record<string, unknown>, toolCallId: string, sessionId?: string, abortSignal?: AbortSignal): Promise<import('./types.js').ToolExecutionResult>;
|
|
110
127
|
/**
|
|
111
128
|
* Check if a tool exists (must have proper source prefix)
|
|
112
129
|
*/
|
|
@@ -157,6 +174,11 @@ export declare class ToolManager {
|
|
|
157
174
|
* Handle tool approval/confirmation flow
|
|
158
175
|
* Checks allowed list, manages approval modes (manual, auto-approve, auto-deny),
|
|
159
176
|
* and handles remember choice logic
|
|
177
|
+
*
|
|
178
|
+
* @param toolName The fully qualified tool name
|
|
179
|
+
* @param args The arguments for the tool
|
|
180
|
+
* @param toolCallId The unique tool call ID for tracking parallel tool calls
|
|
181
|
+
* @param sessionId Optional session ID for context
|
|
160
182
|
*/
|
|
161
183
|
private handleToolApproval;
|
|
162
184
|
/**
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../src/tools/tool-manager.ts"],"names":[],"mappings":"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"}
|