@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
|
@@ -38,13 +38,21 @@ function createReadFileTool(fileSystemService) {
|
|
|
38
38
|
limit,
|
|
39
39
|
offset
|
|
40
40
|
});
|
|
41
|
+
const _display = {
|
|
42
|
+
type: "file",
|
|
43
|
+
path: file_path,
|
|
44
|
+
operation: "read",
|
|
45
|
+
size: result.size,
|
|
46
|
+
lineCount: result.lines
|
|
47
|
+
};
|
|
41
48
|
return {
|
|
42
49
|
content: result.content,
|
|
43
50
|
lines: result.lines,
|
|
44
51
|
encoding: result.encoding,
|
|
45
52
|
truncated: result.truncated,
|
|
46
53
|
size: result.size,
|
|
47
|
-
...result.mimeType && { mimeType: result.mimeType }
|
|
54
|
+
...result.mimeType && { mimeType: result.mimeType },
|
|
55
|
+
_display
|
|
48
56
|
};
|
|
49
57
|
}
|
|
50
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file-tool.d.ts","sourceRoot":"","sources":["../../../../src/tools/internal-tools/implementations/read-file-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"read-file-tool.d.ts","sourceRoot":"","sources":["../../../../src/tools/internal-tools/implementations/read-file-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAuBjE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,YAAY,CAoCrF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../../../chunk-
|
|
1
|
+
import "../../../chunk-PTJYTZNU.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
const ReadFileInputSchema = z.object({
|
|
4
4
|
file_path: z.string().describe("Absolute path to the file to read"),
|
|
@@ -16,13 +16,21 @@ function createReadFileTool(fileSystemService) {
|
|
|
16
16
|
limit,
|
|
17
17
|
offset
|
|
18
18
|
});
|
|
19
|
+
const _display = {
|
|
20
|
+
type: "file",
|
|
21
|
+
path: file_path,
|
|
22
|
+
operation: "read",
|
|
23
|
+
size: result.size,
|
|
24
|
+
lineCount: result.lines
|
|
25
|
+
};
|
|
19
26
|
return {
|
|
20
27
|
content: result.content,
|
|
21
28
|
lines: result.lines,
|
|
22
29
|
encoding: result.encoding,
|
|
23
30
|
truncated: result.truncated,
|
|
24
31
|
size: result.size,
|
|
25
|
-
...result.mimeType && { mimeType: result.mimeType }
|
|
32
|
+
...result.mimeType && { mimeType: result.mimeType },
|
|
33
|
+
_display
|
|
26
34
|
};
|
|
27
35
|
}
|
|
28
36
|
};
|
|
@@ -22,30 +22,98 @@ __export(write_file_tool_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(write_file_tool_exports);
|
|
24
24
|
var import_zod = require("zod");
|
|
25
|
+
var import_diff = require("diff");
|
|
26
|
+
var import_filesystem = require("../../../filesystem/index.js");
|
|
27
|
+
var import_errors = require("../../../errors/index.js");
|
|
25
28
|
const WriteFileInputSchema = import_zod.z.object({
|
|
26
29
|
file_path: import_zod.z.string().describe("Absolute path where the file should be written"),
|
|
27
30
|
content: import_zod.z.string().describe("Content to write to the file"),
|
|
28
31
|
create_dirs: import_zod.z.boolean().optional().default(false).describe("Create parent directories if they don't exist (default: false)"),
|
|
29
32
|
encoding: import_zod.z.enum(["utf-8", "ascii", "latin1", "utf16le"]).optional().default("utf-8").describe("File encoding (default: utf-8)")
|
|
30
33
|
}).strict();
|
|
34
|
+
function generateDiffPreview(filePath, originalContent, newContent) {
|
|
35
|
+
const unified = (0, import_diff.createPatch)(filePath, originalContent, newContent, "before", "after", {
|
|
36
|
+
context: 3
|
|
37
|
+
});
|
|
38
|
+
const additions = (unified.match(/^\+[^+]/gm) || []).length;
|
|
39
|
+
const deletions = (unified.match(/^-[^-]/gm) || []).length;
|
|
40
|
+
return {
|
|
41
|
+
type: "diff",
|
|
42
|
+
unified,
|
|
43
|
+
filename: filePath,
|
|
44
|
+
additions,
|
|
45
|
+
deletions
|
|
46
|
+
};
|
|
47
|
+
}
|
|
31
48
|
function createWriteFileTool(fileSystemService) {
|
|
32
49
|
return {
|
|
33
50
|
id: "write_file",
|
|
34
51
|
description: "Write content to a file. Creates a new file or overwrites existing file. Automatically creates backup of existing files before overwriting. Use create_dirs to create parent directories. Requires approval for all write operations. Returns success status, path, bytes written, and backup path if applicable.",
|
|
35
52
|
inputSchema: WriteFileInputSchema,
|
|
53
|
+
/**
|
|
54
|
+
* Generate preview for approval UI - shows diff or file creation info
|
|
55
|
+
*/
|
|
56
|
+
generatePreview: async (input, _context) => {
|
|
57
|
+
const { file_path, content } = input;
|
|
58
|
+
try {
|
|
59
|
+
const originalFile = await fileSystemService.readFile(file_path);
|
|
60
|
+
const originalContent = originalFile.content;
|
|
61
|
+
return generateDiffPreview(file_path, originalContent, content);
|
|
62
|
+
} catch (error) {
|
|
63
|
+
if (error instanceof import_errors.DextoRuntimeError && error.code === import_filesystem.FileSystemErrorCode.FILE_NOT_FOUND) {
|
|
64
|
+
const lineCount = content.split("\n").length;
|
|
65
|
+
const preview = {
|
|
66
|
+
type: "file",
|
|
67
|
+
path: file_path,
|
|
68
|
+
operation: "create",
|
|
69
|
+
size: content.length,
|
|
70
|
+
lineCount,
|
|
71
|
+
content
|
|
72
|
+
// Include content for approval preview
|
|
73
|
+
};
|
|
74
|
+
return preview;
|
|
75
|
+
}
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
},
|
|
36
79
|
execute: async (input, _context) => {
|
|
37
80
|
const { file_path, content, create_dirs, encoding } = input;
|
|
81
|
+
let originalContent = null;
|
|
82
|
+
try {
|
|
83
|
+
const originalFile = await fileSystemService.readFile(file_path);
|
|
84
|
+
originalContent = originalFile.content;
|
|
85
|
+
} catch (error) {
|
|
86
|
+
if (error instanceof import_errors.DextoRuntimeError && error.code === import_filesystem.FileSystemErrorCode.FILE_NOT_FOUND) {
|
|
87
|
+
originalContent = null;
|
|
88
|
+
} else {
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
38
92
|
const result = await fileSystemService.writeFile(file_path, content, {
|
|
39
93
|
createDirs: create_dirs,
|
|
40
94
|
encoding,
|
|
41
95
|
backup: true
|
|
42
96
|
// Always create backup for internal tools
|
|
43
97
|
});
|
|
98
|
+
let _display;
|
|
99
|
+
if (originalContent === null) {
|
|
100
|
+
const lineCount = content.split("\n").length;
|
|
101
|
+
_display = {
|
|
102
|
+
type: "file",
|
|
103
|
+
path: file_path,
|
|
104
|
+
operation: "create",
|
|
105
|
+
size: result.bytesWritten,
|
|
106
|
+
lineCount
|
|
107
|
+
};
|
|
108
|
+
} else {
|
|
109
|
+
_display = generateDiffPreview(file_path, originalContent, content);
|
|
110
|
+
}
|
|
44
111
|
return {
|
|
45
112
|
success: result.success,
|
|
46
113
|
path: result.path,
|
|
47
114
|
bytes_written: result.bytesWritten,
|
|
48
|
-
...result.backupPath && { backup_path: result.backupPath }
|
|
115
|
+
...result.backupPath && { backup_path: result.backupPath },
|
|
116
|
+
_display
|
|
49
117
|
};
|
|
50
118
|
}
|
|
51
119
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file-tool.d.ts","sourceRoot":"","sources":["../../../../src/tools/internal-tools/implementations/write-file-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"write-file-tool.d.ts","sourceRoot":"","sources":["../../../../src/tools/internal-tools/implementations/write-file-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACH,iBAAiB,EAGpB,MAAM,8BAA8B,CAAC;AA8CtC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,YAAY,CAoGtF"}
|
|
@@ -1,29 +1,99 @@
|
|
|
1
|
-
import "../../../chunk-
|
|
1
|
+
import "../../../chunk-PTJYTZNU.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
+
import { createPatch } from "diff";
|
|
4
|
+
import {
|
|
5
|
+
FileSystemErrorCode
|
|
6
|
+
} from "../../../filesystem/index.js";
|
|
7
|
+
import { DextoRuntimeError } from "../../../errors/index.js";
|
|
3
8
|
const WriteFileInputSchema = z.object({
|
|
4
9
|
file_path: z.string().describe("Absolute path where the file should be written"),
|
|
5
10
|
content: z.string().describe("Content to write to the file"),
|
|
6
11
|
create_dirs: z.boolean().optional().default(false).describe("Create parent directories if they don't exist (default: false)"),
|
|
7
12
|
encoding: z.enum(["utf-8", "ascii", "latin1", "utf16le"]).optional().default("utf-8").describe("File encoding (default: utf-8)")
|
|
8
13
|
}).strict();
|
|
14
|
+
function generateDiffPreview(filePath, originalContent, newContent) {
|
|
15
|
+
const unified = createPatch(filePath, originalContent, newContent, "before", "after", {
|
|
16
|
+
context: 3
|
|
17
|
+
});
|
|
18
|
+
const additions = (unified.match(/^\+[^+]/gm) || []).length;
|
|
19
|
+
const deletions = (unified.match(/^-[^-]/gm) || []).length;
|
|
20
|
+
return {
|
|
21
|
+
type: "diff",
|
|
22
|
+
unified,
|
|
23
|
+
filename: filePath,
|
|
24
|
+
additions,
|
|
25
|
+
deletions
|
|
26
|
+
};
|
|
27
|
+
}
|
|
9
28
|
function createWriteFileTool(fileSystemService) {
|
|
10
29
|
return {
|
|
11
30
|
id: "write_file",
|
|
12
31
|
description: "Write content to a file. Creates a new file or overwrites existing file. Automatically creates backup of existing files before overwriting. Use create_dirs to create parent directories. Requires approval for all write operations. Returns success status, path, bytes written, and backup path if applicable.",
|
|
13
32
|
inputSchema: WriteFileInputSchema,
|
|
33
|
+
/**
|
|
34
|
+
* Generate preview for approval UI - shows diff or file creation info
|
|
35
|
+
*/
|
|
36
|
+
generatePreview: async (input, _context) => {
|
|
37
|
+
const { file_path, content } = input;
|
|
38
|
+
try {
|
|
39
|
+
const originalFile = await fileSystemService.readFile(file_path);
|
|
40
|
+
const originalContent = originalFile.content;
|
|
41
|
+
return generateDiffPreview(file_path, originalContent, content);
|
|
42
|
+
} catch (error) {
|
|
43
|
+
if (error instanceof DextoRuntimeError && error.code === FileSystemErrorCode.FILE_NOT_FOUND) {
|
|
44
|
+
const lineCount = content.split("\n").length;
|
|
45
|
+
const preview = {
|
|
46
|
+
type: "file",
|
|
47
|
+
path: file_path,
|
|
48
|
+
operation: "create",
|
|
49
|
+
size: content.length,
|
|
50
|
+
lineCount,
|
|
51
|
+
content
|
|
52
|
+
// Include content for approval preview
|
|
53
|
+
};
|
|
54
|
+
return preview;
|
|
55
|
+
}
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
},
|
|
14
59
|
execute: async (input, _context) => {
|
|
15
60
|
const { file_path, content, create_dirs, encoding } = input;
|
|
61
|
+
let originalContent = null;
|
|
62
|
+
try {
|
|
63
|
+
const originalFile = await fileSystemService.readFile(file_path);
|
|
64
|
+
originalContent = originalFile.content;
|
|
65
|
+
} catch (error) {
|
|
66
|
+
if (error instanceof DextoRuntimeError && error.code === FileSystemErrorCode.FILE_NOT_FOUND) {
|
|
67
|
+
originalContent = null;
|
|
68
|
+
} else {
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
16
72
|
const result = await fileSystemService.writeFile(file_path, content, {
|
|
17
73
|
createDirs: create_dirs,
|
|
18
74
|
encoding,
|
|
19
75
|
backup: true
|
|
20
76
|
// Always create backup for internal tools
|
|
21
77
|
});
|
|
78
|
+
let _display;
|
|
79
|
+
if (originalContent === null) {
|
|
80
|
+
const lineCount = content.split("\n").length;
|
|
81
|
+
_display = {
|
|
82
|
+
type: "file",
|
|
83
|
+
path: file_path,
|
|
84
|
+
operation: "create",
|
|
85
|
+
size: result.bytesWritten,
|
|
86
|
+
lineCount
|
|
87
|
+
};
|
|
88
|
+
} else {
|
|
89
|
+
_display = generateDiffPreview(file_path, originalContent, content);
|
|
90
|
+
}
|
|
22
91
|
return {
|
|
23
92
|
success: result.success,
|
|
24
93
|
path: result.path,
|
|
25
94
|
bytes_written: result.bytesWritten,
|
|
26
|
-
...result.backupPath && { backup_path: result.backupPath }
|
|
95
|
+
...result.backupPath && { backup_path: result.backupPath },
|
|
96
|
+
_display
|
|
27
97
|
};
|
|
28
98
|
}
|
|
29
99
|
};
|
|
@@ -28,12 +28,10 @@ class InternalToolsProvider {
|
|
|
28
28
|
services;
|
|
29
29
|
tools = /* @__PURE__ */ new Map();
|
|
30
30
|
// ← Store original InternalTool
|
|
31
|
-
approvalManager;
|
|
32
31
|
config;
|
|
33
32
|
logger;
|
|
34
|
-
constructor(services,
|
|
33
|
+
constructor(services, config = [], logger) {
|
|
35
34
|
this.services = services;
|
|
36
|
-
this.approvalManager = approvalManager;
|
|
37
35
|
this.config = config;
|
|
38
36
|
this.logger = logger;
|
|
39
37
|
this.logger.debug("InternalToolsProvider initialized with config:", { config });
|
|
@@ -62,14 +60,13 @@ class InternalToolsProvider {
|
|
|
62
60
|
* Register all available internal tools based on available services and configuration
|
|
63
61
|
*/
|
|
64
62
|
registerInternalTools() {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
approvalManager: this.approvalManager
|
|
63
|
+
const featureFlags = {
|
|
64
|
+
elicitation: this.services.approvalManager?.getConfig().elicitation.enabled ?? false
|
|
68
65
|
};
|
|
69
66
|
for (const toolName of this.config) {
|
|
70
67
|
const toolInfo = (0, import_registry.getInternalToolInfo)(toolName);
|
|
71
68
|
const missingServices = toolInfo.requiredServices.filter(
|
|
72
|
-
(serviceKey) => !
|
|
69
|
+
(serviceKey) => !this.services[serviceKey]
|
|
73
70
|
);
|
|
74
71
|
if (missingServices.length > 0) {
|
|
75
72
|
this.logger.debug(
|
|
@@ -77,8 +74,18 @@ class InternalToolsProvider {
|
|
|
77
74
|
);
|
|
78
75
|
continue;
|
|
79
76
|
}
|
|
77
|
+
const missingFeatures = (toolInfo.requiredFeatures ?? []).filter(
|
|
78
|
+
(feature) => !featureFlags[feature]
|
|
79
|
+
);
|
|
80
|
+
if (missingFeatures.length > 0) {
|
|
81
|
+
throw import_errors.ToolError.featureDisabled(
|
|
82
|
+
toolName,
|
|
83
|
+
missingFeatures,
|
|
84
|
+
`Tool '${toolName}' requires features which are currently disabled: ${missingFeatures.join(", ")}. Either remove '${toolName}' from internalTools, or enable: ${missingFeatures.map((f) => `${f}.enabled: true`).join(", ")}`
|
|
85
|
+
);
|
|
86
|
+
}
|
|
80
87
|
try {
|
|
81
|
-
const tool = toolInfo.factory(
|
|
88
|
+
const tool = toolInfo.factory(this.services);
|
|
82
89
|
this.tools.set(toolName, tool);
|
|
83
90
|
this.logger.debug(`Registered ${toolName} internal tool`);
|
|
84
91
|
} catch (error) {
|
|
@@ -94,10 +101,17 @@ class InternalToolsProvider {
|
|
|
94
101
|
hasTool(toolName) {
|
|
95
102
|
return this.tools.has(toolName);
|
|
96
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Get an internal tool by name
|
|
106
|
+
* Returns undefined if tool doesn't exist
|
|
107
|
+
*/
|
|
108
|
+
getTool(toolName) {
|
|
109
|
+
return this.tools.get(toolName);
|
|
110
|
+
}
|
|
97
111
|
/**
|
|
98
112
|
* Execute an internal tool - confirmation is handled by ToolManager
|
|
99
113
|
*/
|
|
100
|
-
async executeTool(toolName, args, sessionId) {
|
|
114
|
+
async executeTool(toolName, args, sessionId, abortSignal) {
|
|
101
115
|
const tool = this.tools.get(toolName);
|
|
102
116
|
if (!tool) {
|
|
103
117
|
this.logger.error(`\u274C No internal tool found: ${toolName}`);
|
|
@@ -117,7 +131,10 @@ class InternalToolsProvider {
|
|
|
117
131
|
);
|
|
118
132
|
}
|
|
119
133
|
try {
|
|
120
|
-
const context = {
|
|
134
|
+
const context = {
|
|
135
|
+
sessionId,
|
|
136
|
+
abortSignal
|
|
137
|
+
};
|
|
121
138
|
const result = await tool.execute(validationResult.data, context);
|
|
122
139
|
return result;
|
|
123
140
|
} catch (error) {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { ToolSet } from '../types.js';
|
|
1
|
+
import { ToolSet, InternalTool } from '../types.js';
|
|
2
2
|
import type { IDextoLogger } from '../../logger/v2/types.js';
|
|
3
3
|
import { InternalToolsServices } from './registry.js';
|
|
4
4
|
import type { InternalToolsConfig } from '../schemas.js';
|
|
5
|
-
import type { ApprovalManager } from '../../approval/manager.js';
|
|
6
5
|
/**
|
|
7
6
|
* Provider for built-in internal tools that are part of the core system
|
|
8
7
|
*
|
|
@@ -18,10 +17,9 @@ import type { ApprovalManager } from '../../approval/manager.js';
|
|
|
18
17
|
export declare class InternalToolsProvider {
|
|
19
18
|
private services;
|
|
20
19
|
private tools;
|
|
21
|
-
private approvalManager;
|
|
22
20
|
private config;
|
|
23
21
|
private logger;
|
|
24
|
-
constructor(services: InternalToolsServices,
|
|
22
|
+
constructor(services: InternalToolsServices, config: InternalToolsConfig | undefined, logger: IDextoLogger);
|
|
25
23
|
/**
|
|
26
24
|
* Initialize the internal tools provider by registering all available internal tools
|
|
27
25
|
*/
|
|
@@ -34,10 +32,15 @@ export declare class InternalToolsProvider {
|
|
|
34
32
|
* Check if a tool exists
|
|
35
33
|
*/
|
|
36
34
|
hasTool(toolName: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Get an internal tool by name
|
|
37
|
+
* Returns undefined if tool doesn't exist
|
|
38
|
+
*/
|
|
39
|
+
getTool(toolName: string): InternalTool | undefined;
|
|
37
40
|
/**
|
|
38
41
|
* Execute an internal tool - confirmation is handled by ToolManager
|
|
39
42
|
*/
|
|
40
|
-
executeTool(toolName: string, args: Record<string, unknown>, sessionId?: string): Promise<unknown>;
|
|
43
|
+
executeTool(toolName: string, args: Record<string, unknown>, sessionId?: string, abortSignal?: AbortSignal): Promise<unknown>;
|
|
41
44
|
/**
|
|
42
45
|
* Get all tools in ToolSet format with on-demand JSON Schema conversion
|
|
43
46
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAA0C,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAe;gBAGzB,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,mBAAmB,YAAK,EAChC,MAAM,EAAE,YAAY;IAQxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD;;OAEG;IACG,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,OAAO,CAAC;IAqCnB;;OAEG;IACH,WAAW,IAAI,OAAO;IActB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;CAGzB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../../chunk-
|
|
1
|
+
import "../../chunk-PTJYTZNU.js";
|
|
2
2
|
import { ToolError } from "../errors.js";
|
|
3
3
|
import { convertZodSchemaToJsonSchema } from "../../utils/schema.js";
|
|
4
4
|
import { getInternalToolInfo } from "./registry.js";
|
|
@@ -6,12 +6,10 @@ class InternalToolsProvider {
|
|
|
6
6
|
services;
|
|
7
7
|
tools = /* @__PURE__ */ new Map();
|
|
8
8
|
// ← Store original InternalTool
|
|
9
|
-
approvalManager;
|
|
10
9
|
config;
|
|
11
10
|
logger;
|
|
12
|
-
constructor(services,
|
|
11
|
+
constructor(services, config = [], logger) {
|
|
13
12
|
this.services = services;
|
|
14
|
-
this.approvalManager = approvalManager;
|
|
15
13
|
this.config = config;
|
|
16
14
|
this.logger = logger;
|
|
17
15
|
this.logger.debug("InternalToolsProvider initialized with config:", { config });
|
|
@@ -40,14 +38,13 @@ class InternalToolsProvider {
|
|
|
40
38
|
* Register all available internal tools based on available services and configuration
|
|
41
39
|
*/
|
|
42
40
|
registerInternalTools() {
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
approvalManager: this.approvalManager
|
|
41
|
+
const featureFlags = {
|
|
42
|
+
elicitation: this.services.approvalManager?.getConfig().elicitation.enabled ?? false
|
|
46
43
|
};
|
|
47
44
|
for (const toolName of this.config) {
|
|
48
45
|
const toolInfo = getInternalToolInfo(toolName);
|
|
49
46
|
const missingServices = toolInfo.requiredServices.filter(
|
|
50
|
-
(serviceKey) => !
|
|
47
|
+
(serviceKey) => !this.services[serviceKey]
|
|
51
48
|
);
|
|
52
49
|
if (missingServices.length > 0) {
|
|
53
50
|
this.logger.debug(
|
|
@@ -55,8 +52,18 @@ class InternalToolsProvider {
|
|
|
55
52
|
);
|
|
56
53
|
continue;
|
|
57
54
|
}
|
|
55
|
+
const missingFeatures = (toolInfo.requiredFeatures ?? []).filter(
|
|
56
|
+
(feature) => !featureFlags[feature]
|
|
57
|
+
);
|
|
58
|
+
if (missingFeatures.length > 0) {
|
|
59
|
+
throw ToolError.featureDisabled(
|
|
60
|
+
toolName,
|
|
61
|
+
missingFeatures,
|
|
62
|
+
`Tool '${toolName}' requires features which are currently disabled: ${missingFeatures.join(", ")}. Either remove '${toolName}' from internalTools, or enable: ${missingFeatures.map((f) => `${f}.enabled: true`).join(", ")}`
|
|
63
|
+
);
|
|
64
|
+
}
|
|
58
65
|
try {
|
|
59
|
-
const tool = toolInfo.factory(
|
|
66
|
+
const tool = toolInfo.factory(this.services);
|
|
60
67
|
this.tools.set(toolName, tool);
|
|
61
68
|
this.logger.debug(`Registered ${toolName} internal tool`);
|
|
62
69
|
} catch (error) {
|
|
@@ -72,10 +79,17 @@ class InternalToolsProvider {
|
|
|
72
79
|
hasTool(toolName) {
|
|
73
80
|
return this.tools.has(toolName);
|
|
74
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Get an internal tool by name
|
|
84
|
+
* Returns undefined if tool doesn't exist
|
|
85
|
+
*/
|
|
86
|
+
getTool(toolName) {
|
|
87
|
+
return this.tools.get(toolName);
|
|
88
|
+
}
|
|
75
89
|
/**
|
|
76
90
|
* Execute an internal tool - confirmation is handled by ToolManager
|
|
77
91
|
*/
|
|
78
|
-
async executeTool(toolName, args, sessionId) {
|
|
92
|
+
async executeTool(toolName, args, sessionId, abortSignal) {
|
|
79
93
|
const tool = this.tools.get(toolName);
|
|
80
94
|
if (!tool) {
|
|
81
95
|
this.logger.error(`\u274C No internal tool found: ${toolName}`);
|
|
@@ -95,7 +109,10 @@ class InternalToolsProvider {
|
|
|
95
109
|
);
|
|
96
110
|
}
|
|
97
111
|
try {
|
|
98
|
-
const context = {
|
|
112
|
+
const context = {
|
|
113
|
+
sessionId,
|
|
114
|
+
abortSignal
|
|
115
|
+
};
|
|
99
116
|
const result = await tool.execute(validationResult.data, context);
|
|
100
117
|
return result;
|
|
101
118
|
} catch (error) {
|
|
@@ -40,7 +40,8 @@ const INTERNAL_TOOL_REGISTRY = {
|
|
|
40
40
|
},
|
|
41
41
|
ask_user: {
|
|
42
42
|
factory: (services) => (0, import_ask_user_tool.createAskUserTool)(services.approvalManager),
|
|
43
|
-
requiredServices: ["approvalManager"]
|
|
43
|
+
requiredServices: ["approvalManager"],
|
|
44
|
+
requiredFeatures: ["elicitation"]
|
|
44
45
|
},
|
|
45
46
|
read_file: {
|
|
46
47
|
factory: (services) => (0, import_read_file_tool.createReadFileTool)(services.fileSystemService),
|
|
@@ -63,8 +64,8 @@ const INTERNAL_TOOL_REGISTRY = {
|
|
|
63
64
|
requiredServices: ["fileSystemService"]
|
|
64
65
|
},
|
|
65
66
|
bash_exec: {
|
|
66
|
-
factory: (services) => (0, import_bash_exec_tool.createBashExecTool)(services.processService
|
|
67
|
-
requiredServices: ["processService"
|
|
67
|
+
factory: (services) => (0, import_bash_exec_tool.createBashExecTool)(services.processService),
|
|
68
|
+
requiredServices: ["processService"]
|
|
68
69
|
},
|
|
69
70
|
bash_output: {
|
|
70
71
|
factory: (services) => (0, import_bash_output_tool.createBashOutputTool)(services.processService),
|
|
@@ -4,6 +4,25 @@ import { ApprovalManager } from '../../approval/manager.js';
|
|
|
4
4
|
import { FileSystemService } from '../../filesystem/index.js';
|
|
5
5
|
import { ProcessService } from '../../process/index.js';
|
|
6
6
|
import type { KnownInternalTool } from './constants.js';
|
|
7
|
+
/**
|
|
8
|
+
* Agent features that tools can depend on.
|
|
9
|
+
* Tools can declare required features via `requiredFeatures` in the registry.
|
|
10
|
+
* If a required feature is disabled, the tool will not be registered and agent startup will fail.
|
|
11
|
+
*
|
|
12
|
+
* To add new features:
|
|
13
|
+
* 1. Add the feature name to this union type (e.g., 'elicitation' | 'file_access' | 'network_access')
|
|
14
|
+
* 2. Add the feature flag derivation in provider.ts `registerInternalTools()`:
|
|
15
|
+
* ```
|
|
16
|
+
* const featureFlags: Record<AgentFeature, boolean> = {
|
|
17
|
+
* elicitation: this.services.approvalManager?.getConfig().elicitation.enabled ?? false,
|
|
18
|
+
* file_access: config.fileAccess?.enabled ?? false, // example
|
|
19
|
+
* };
|
|
20
|
+
* ```
|
|
21
|
+
* 3. Add `requiredFeatures: ['feature_name'] as const` to tool entries that need it
|
|
22
|
+
*
|
|
23
|
+
* Tools can require multiple features - all must be enabled or startup fails with a clear error.
|
|
24
|
+
*/
|
|
25
|
+
export type AgentFeature = 'elicitation';
|
|
7
26
|
/**
|
|
8
27
|
* Services available to internal tools
|
|
9
28
|
* Add new services here as needed for internal tools
|
|
@@ -19,18 +38,20 @@ export interface InternalToolsServices {
|
|
|
19
38
|
*/
|
|
20
39
|
type InternalToolFactory = (services: InternalToolsServices) => InternalTool;
|
|
21
40
|
/**
|
|
22
|
-
* Internal tool registry
|
|
41
|
+
* Internal tool registry entry type
|
|
23
42
|
*/
|
|
24
|
-
export
|
|
43
|
+
export interface InternalToolRegistryEntry {
|
|
25
44
|
factory: InternalToolFactory;
|
|
26
45
|
requiredServices: readonly (keyof InternalToolsServices)[];
|
|
27
|
-
|
|
46
|
+
requiredFeatures?: readonly AgentFeature[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Internal tool registry - Must match names array exactly (TypeScript enforces this)
|
|
50
|
+
*/
|
|
51
|
+
export declare const INTERNAL_TOOL_REGISTRY: Record<KnownInternalTool, InternalToolRegistryEntry>;
|
|
28
52
|
/**
|
|
29
53
|
* Type-safe registry access
|
|
30
54
|
*/
|
|
31
|
-
export declare function getInternalToolInfo(toolName: KnownInternalTool):
|
|
32
|
-
factory: InternalToolFactory;
|
|
33
|
-
requiredServices: readonly (keyof InternalToolsServices)[];
|
|
34
|
-
};
|
|
55
|
+
export declare function getInternalToolInfo(toolName: KnownInternalTool): InternalToolRegistryEntry;
|
|
35
56
|
export {};
|
|
36
57
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -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;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,
|
|
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;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC;;;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,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,SAAS,CAAC,MAAM,qBAAqB,CAAC,EAAE,CAAC;IAC3D,gBAAgB,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAsDvF,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,yBAAyB,CAE1F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../../chunk-
|
|
1
|
+
import "../../chunk-PTJYTZNU.js";
|
|
2
2
|
import { createSearchHistoryTool } from "./implementations/search-history-tool.js";
|
|
3
3
|
import { createAskUserTool } from "./implementations/ask-user-tool.js";
|
|
4
4
|
import { createReadFileTool } from "./implementations/read-file-tool.js";
|
|
@@ -17,7 +17,8 @@ const INTERNAL_TOOL_REGISTRY = {
|
|
|
17
17
|
},
|
|
18
18
|
ask_user: {
|
|
19
19
|
factory: (services) => createAskUserTool(services.approvalManager),
|
|
20
|
-
requiredServices: ["approvalManager"]
|
|
20
|
+
requiredServices: ["approvalManager"],
|
|
21
|
+
requiredFeatures: ["elicitation"]
|
|
21
22
|
},
|
|
22
23
|
read_file: {
|
|
23
24
|
factory: (services) => createReadFileTool(services.fileSystemService),
|
|
@@ -40,8 +41,8 @@ const INTERNAL_TOOL_REGISTRY = {
|
|
|
40
41
|
requiredServices: ["fileSystemService"]
|
|
41
42
|
},
|
|
42
43
|
bash_exec: {
|
|
43
|
-
factory: (services) => createBashExecTool(services.processService
|
|
44
|
-
requiredServices: ["processService"
|
|
44
|
+
factory: (services) => createBashExecTool(services.processService),
|
|
45
|
+
requiredServices: ["processService"]
|
|
45
46
|
},
|
|
46
47
|
bash_output: {
|
|
47
48
|
factory: (services) => createBashOutputTool(services.processService),
|
package/dist/tools/schemas.cjs
CHANGED
|
@@ -25,7 +25,9 @@ __export(schemas_exports, {
|
|
|
25
25
|
InternalToolsSchema: () => InternalToolsSchema,
|
|
26
26
|
TOOL_CONFIRMATION_MODES: () => TOOL_CONFIRMATION_MODES,
|
|
27
27
|
ToolConfirmationConfigSchema: () => ToolConfirmationConfigSchema,
|
|
28
|
-
|
|
28
|
+
ToolLimitsSchema: () => ToolLimitsSchema,
|
|
29
|
+
ToolPoliciesSchema: () => ToolPoliciesSchema,
|
|
30
|
+
ToolsConfigSchema: () => ToolsConfigSchema
|
|
29
31
|
});
|
|
30
32
|
module.exports = __toCommonJS(schemas_exports);
|
|
31
33
|
var import_zod = require("zod");
|
|
@@ -49,8 +51,8 @@ const ToolConfirmationConfigSchema = import_zod.z.object({
|
|
|
49
51
|
mode: import_zod.z.enum(TOOL_CONFIRMATION_MODES).default(DEFAULT_TOOL_CONFIRMATION_MODE).describe(
|
|
50
52
|
"Tool confirmation mode: manual (interactive), auto-approve (all tools), auto-deny (no tools)"
|
|
51
53
|
),
|
|
52
|
-
timeout: import_zod.z.number().int().positive().
|
|
53
|
-
"Timeout for tool confirmation requests in milliseconds
|
|
54
|
+
timeout: import_zod.z.number().int().positive().optional().describe(
|
|
55
|
+
"Timeout for tool confirmation requests in milliseconds (optional - no timeout if not specified)"
|
|
54
56
|
),
|
|
55
57
|
allowedToolsStorage: import_zod.z.enum(ALLOWED_TOOLS_STORAGE_TYPES).default(DEFAULT_ALLOWED_TOOLS_STORAGE).describe(
|
|
56
58
|
"Storage type for remembered tool approvals: memory (session-only) or storage (persistent)"
|
|
@@ -63,12 +65,18 @@ const ElicitationConfigSchema = import_zod.z.object({
|
|
|
63
65
|
enabled: import_zod.z.boolean().default(false).describe(
|
|
64
66
|
"Enable elicitation support (ask_user tool and MCP server elicitations). When disabled, elicitation requests will be rejected."
|
|
65
67
|
),
|
|
66
|
-
timeout: import_zod.z.number().int().positive().
|
|
67
|
-
"Timeout for elicitation requests in milliseconds
|
|
68
|
+
timeout: import_zod.z.number().int().positive().optional().describe(
|
|
69
|
+
"Timeout for elicitation requests in milliseconds (optional - no timeout if not specified)"
|
|
68
70
|
)
|
|
69
71
|
}).strict().describe(
|
|
70
72
|
"Elicitation configuration for user input requests. Independent from tool confirmation mode, allowing auto-approve for tools while still supporting elicitation."
|
|
71
73
|
);
|
|
74
|
+
const ToolLimitsSchema = import_zod.z.object({
|
|
75
|
+
maxOutputChars: import_zod.z.number().optional().describe("Maximum number of characters for tool output"),
|
|
76
|
+
maxLines: import_zod.z.number().optional().describe("Maximum number of lines for tool output"),
|
|
77
|
+
maxLineLength: import_zod.z.number().optional().describe("Maximum length of a single line")
|
|
78
|
+
}).strict();
|
|
79
|
+
const ToolsConfigSchema = import_zod.z.record(ToolLimitsSchema).describe("Per-tool configuration limits");
|
|
72
80
|
// Annotate the CommonJS export names for ESM import in node:
|
|
73
81
|
0 && (module.exports = {
|
|
74
82
|
ALLOWED_TOOLS_STORAGE_TYPES,
|
|
@@ -78,5 +86,7 @@ const ElicitationConfigSchema = import_zod.z.object({
|
|
|
78
86
|
InternalToolsSchema,
|
|
79
87
|
TOOL_CONFIRMATION_MODES,
|
|
80
88
|
ToolConfirmationConfigSchema,
|
|
81
|
-
|
|
89
|
+
ToolLimitsSchema,
|
|
90
|
+
ToolPoliciesSchema,
|
|
91
|
+
ToolsConfigSchema
|
|
82
92
|
});
|