@dexto/core 1.4.0 → 1.5.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 +36 -0
- package/dist/agent/DextoAgent.cjs +22 -3
- package/dist/agent/DextoAgent.d.ts +19 -2
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +23 -4
- package/dist/agent/index.cjs +4 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +5 -1
- package/dist/agent/schemas.cjs +90 -71
- package/dist/agent/schemas.d.ts +5911 -96
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +87 -66
- package/dist/approval/manager.cjs +165 -1
- package/dist/approval/manager.d.ts +91 -2
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +155 -1
- package/dist/approval/schemas.cjs +39 -3
- package/dist/approval/schemas.d.ts +238 -1
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +35 -3
- package/dist/approval/types.cjs +1 -0
- package/dist/approval/types.d.ts +26 -1
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +1 -0
- package/dist/context/compaction/factory.cjs +57 -0
- package/dist/context/compaction/factory.d.ts +17 -0
- package/dist/context/compaction/factory.d.ts.map +1 -0
- package/dist/context/compaction/factory.js +34 -0
- package/dist/context/compaction/index.cjs +49 -0
- package/dist/context/compaction/index.d.ts +11 -0
- package/dist/context/compaction/index.d.ts.map +1 -0
- package/dist/context/compaction/index.js +19 -0
- package/dist/context/{compression → compaction}/overflow.cjs +3 -3
- package/dist/context/{compression → compaction}/overflow.d.ts +4 -4
- package/dist/context/compaction/overflow.d.ts.map +1 -0
- package/dist/context/{compression → compaction}/overflow.js +2 -2
- package/dist/context/compaction/provider.cjs +16 -0
- package/dist/context/compaction/provider.d.ts +48 -0
- package/dist/context/compaction/provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/noop-provider.cjs +48 -0
- package/dist/context/compaction/providers/noop-provider.d.ts +24 -0
- package/dist/context/compaction/providers/noop-provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/noop-provider.js +24 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.cjs +61 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +36 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.js +37 -0
- package/dist/context/compaction/registry.cjs +39 -0
- package/dist/context/compaction/registry.d.ts +19 -0
- package/dist/context/compaction/registry.d.ts.map +1 -0
- package/dist/context/compaction/registry.js +16 -0
- package/dist/context/compaction/schemas.cjs +38 -0
- package/dist/context/compaction/schemas.d.ts +24 -0
- package/dist/context/compaction/schemas.d.ts.map +1 -0
- package/dist/context/compaction/schemas.js +14 -0
- package/dist/context/compaction/strategies/noop.cjs +36 -0
- package/dist/context/compaction/strategies/noop.d.ts +18 -0
- package/dist/context/compaction/strategies/noop.d.ts.map +1 -0
- package/dist/context/compaction/strategies/noop.js +13 -0
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.cjs +3 -3
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.d.ts +6 -6
- package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.js +4 -4
- package/dist/context/{compression → compaction}/types.d.ts +4 -4
- package/dist/context/compaction/types.d.ts.map +1 -0
- package/dist/context/compaction/types.js +0 -0
- package/dist/context/error-codes.cjs +4 -0
- package/dist/context/error-codes.d.ts +4 -0
- package/dist/context/error-codes.d.ts.map +1 -1
- package/dist/context/error-codes.js +4 -0
- package/dist/context/errors.cjs +40 -0
- package/dist/context/errors.d.ts +14 -0
- package/dist/context/errors.d.ts.map +1 -1
- package/dist/context/errors.js +40 -0
- package/dist/context/index.cjs +3 -1
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +1 -0
- package/dist/context/types.d.ts +6 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/utils.cjs +27 -7
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +27 -7
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +2 -3
- package/dist/events/index.cjs +2 -2
- package/dist/events/index.d.ts +16 -16
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +2 -2
- package/dist/filesystem/filesystem-service.cjs +39 -0
- package/dist/filesystem/filesystem-service.d.ts +32 -0
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +39 -0
- package/dist/filesystem/index.d.ts +1 -1
- package/dist/filesystem/index.d.ts.map +1 -1
- package/dist/filesystem/path-validator.cjs +69 -1
- package/dist/filesystem/path-validator.d.ts +43 -2
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +69 -1
- package/dist/image/define-image.cjs +146 -0
- package/dist/image/define-image.d.ts +71 -0
- package/dist/image/define-image.d.ts.map +1 -0
- package/dist/image/define-image.js +121 -0
- package/dist/image/index.cjs +32 -0
- package/dist/image/index.d.ts +53 -0
- package/dist/image/index.d.ts.map +1 -0
- package/dist/image/index.js +7 -0
- package/dist/image/types.cjs +16 -0
- package/dist/image/types.d.ts +231 -0
- package/dist/image/types.d.ts.map +1 -0
- package/dist/image/types.js +0 -0
- package/dist/index.cjs +5 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/llm/error-codes.cjs +1 -0
- package/dist/llm/error-codes.d.ts +1 -0
- package/dist/llm/error-codes.d.ts.map +1 -1
- package/dist/llm/error-codes.js +1 -0
- package/dist/llm/errors.cjs +24 -0
- package/dist/llm/errors.d.ts +19 -6
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +24 -0
- package/dist/llm/executor/stream-processor.cjs +11 -3
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +11 -3
- package/dist/llm/executor/turn-executor.cjs +50 -23
- package/dist/llm/executor/turn-executor.d.ts +6 -5
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +50 -23
- package/dist/llm/formatters/vercel.cjs +6 -2
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +6 -2
- package/dist/llm/index.cjs +18 -1
- package/dist/llm/index.d.ts +2 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +14 -0
- package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
- package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
- package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
- package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
- package/dist/llm/providers/local/downloader.cjs +291 -0
- package/dist/llm/providers/local/downloader.d.ts +82 -0
- package/dist/llm/providers/local/downloader.d.ts.map +1 -0
- package/dist/llm/providers/local/downloader.js +251 -0
- package/dist/llm/providers/local/error-codes.cjs +57 -0
- package/dist/llm/providers/local/error-codes.d.ts +66 -0
- package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
- package/dist/llm/providers/local/error-codes.js +34 -0
- package/dist/llm/providers/local/errors.cjs +240 -0
- package/dist/llm/providers/local/errors.d.ts +31 -0
- package/dist/llm/providers/local/errors.d.ts.map +1 -0
- package/dist/llm/providers/local/errors.js +217 -0
- package/dist/llm/providers/local/gpu-detector.cjs +214 -0
- package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
- package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
- package/dist/llm/providers/local/gpu-detector.js +178 -0
- package/dist/llm/providers/local/index.cjs +147 -0
- package/dist/llm/providers/local/index.d.ts +21 -0
- package/dist/llm/providers/local/index.d.ts.map +1 -0
- package/dist/llm/providers/local/index.js +126 -0
- package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
- package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
- package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
- package/dist/llm/providers/local/node-llama-provider.js +176 -0
- package/dist/llm/providers/local/ollama-provider.cjs +230 -0
- package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
- package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
- package/dist/llm/providers/local/ollama-provider.js +198 -0
- package/dist/llm/providers/local/registry.cjs +343 -0
- package/dist/llm/providers/local/registry.d.ts +51 -0
- package/dist/llm/providers/local/registry.d.ts.map +1 -0
- package/dist/llm/providers/local/registry.js +312 -0
- package/dist/llm/providers/local/schemas.cjs +169 -0
- package/dist/llm/providers/local/schemas.d.ts +395 -0
- package/dist/llm/providers/local/schemas.d.ts.map +1 -0
- package/dist/llm/providers/local/schemas.js +133 -0
- package/dist/llm/providers/local/types.cjs +16 -0
- package/dist/llm/providers/local/types.d.ts +219 -0
- package/dist/llm/providers/local/types.d.ts.map +1 -0
- package/dist/llm/providers/local/types.js +0 -0
- package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
- package/dist/llm/providers/openrouter-model-registry.js +309 -0
- package/dist/llm/registry.cjs +535 -9
- package/dist/llm/registry.d.ts +26 -0
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +532 -9
- package/dist/llm/resolver.cjs +63 -5
- package/dist/llm/resolver.d.ts +3 -3
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +69 -6
- package/dist/llm/schemas.cjs +90 -80
- package/dist/llm/schemas.d.ts +158 -22
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +90 -80
- package/dist/llm/services/factory.cjs +87 -13
- package/dist/llm/services/factory.d.ts +4 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +85 -12
- package/dist/llm/services/test-utils.integration.cjs +22 -2
- package/dist/llm/services/test-utils.integration.d.ts +7 -1
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +26 -3
- package/dist/llm/services/vercel.cjs +5 -2
- package/dist/llm/services/vercel.d.ts +3 -2
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +5 -2
- package/dist/llm/types.cjs +11 -1
- package/dist/llm/types.d.ts +1 -1
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +11 -1
- package/dist/mcp/manager.cjs +8 -0
- package/dist/mcp/manager.d.ts +17 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +8 -0
- package/dist/mcp/mcp-client.cjs +0 -3
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +0 -3
- package/dist/memory/schemas.d.ts +1 -1
- package/dist/plugins/error-codes.cjs +3 -0
- package/dist/plugins/error-codes.d.ts +7 -1
- package/dist/plugins/error-codes.d.ts.map +1 -1
- package/dist/plugins/error-codes.js +3 -0
- package/dist/plugins/index.cjs +7 -0
- package/dist/plugins/index.d.ts +4 -2
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +6 -1
- package/dist/plugins/manager.cjs +92 -7
- package/dist/plugins/manager.d.ts +10 -3
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +92 -7
- package/dist/plugins/registry.cjs +63 -0
- package/dist/plugins/registry.d.ts +101 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +39 -0
- package/dist/plugins/schemas.cjs +17 -5
- package/dist/plugins/schemas.d.ts +62 -5
- package/dist/plugins/schemas.d.ts.map +1 -1
- package/dist/plugins/schemas.js +15 -4
- package/dist/providers/base-registry.cjs +147 -0
- package/dist/providers/base-registry.d.ts +147 -0
- package/dist/providers/base-registry.d.ts.map +1 -0
- package/dist/providers/base-registry.js +123 -0
- package/dist/providers/discovery.cjs +95 -0
- package/dist/providers/discovery.d.ts +94 -0
- package/dist/providers/discovery.d.ts.map +1 -0
- package/dist/providers/discovery.js +70 -0
- package/dist/providers/index.cjs +24 -0
- package/dist/providers/index.d.ts +32 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +2 -0
- package/dist/resources/reference-parser.cjs +3 -3
- package/dist/resources/reference-parser.d.ts.map +1 -1
- package/dist/resources/reference-parser.js +3 -3
- package/dist/session/chat-session.cjs +20 -3
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +21 -4
- package/dist/storage/blob/factory.cjs +8 -11
- package/dist/storage/blob/factory.d.ts +32 -6
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +8 -11
- package/dist/storage/blob/index.cjs +56 -0
- package/dist/storage/blob/index.d.ts +45 -0
- package/dist/storage/blob/index.d.ts.map +1 -0
- package/dist/storage/blob/index.js +30 -0
- package/dist/storage/blob/provider.cjs +16 -0
- package/dist/storage/blob/provider.d.ts +50 -0
- package/dist/storage/blob/provider.d.ts.map +1 -0
- package/dist/storage/blob/provider.js +0 -0
- package/dist/storage/blob/providers/index.cjs +31 -0
- package/dist/storage/blob/providers/index.d.ts +8 -0
- package/dist/storage/blob/providers/index.d.ts.map +1 -0
- package/dist/storage/blob/providers/index.js +7 -0
- package/dist/storage/blob/providers/local.cjs +39 -0
- package/dist/storage/blob/providers/local.d.ts +17 -0
- package/dist/storage/blob/providers/local.d.ts.map +1 -0
- package/dist/storage/blob/providers/local.js +16 -0
- package/dist/storage/blob/providers/memory.cjs +39 -0
- package/dist/storage/blob/providers/memory.d.ts +17 -0
- package/dist/storage/blob/providers/memory.d.ts.map +1 -0
- package/dist/storage/blob/providers/memory.js +16 -0
- package/dist/storage/blob/registry.cjs +50 -0
- package/dist/storage/blob/registry.d.ts +42 -0
- package/dist/storage/blob/registry.d.ts.map +1 -0
- package/dist/storage/blob/registry.js +26 -0
- package/dist/storage/blob/schemas.cjs +9 -12
- package/dist/storage/blob/schemas.d.ts +39 -34
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +6 -11
- package/dist/storage/cache/factory.cjs +8 -36
- package/dist/storage/cache/factory.d.ts +32 -7
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +8 -26
- package/dist/storage/cache/index.cjs +53 -0
- package/dist/storage/cache/index.d.ts +44 -0
- package/dist/storage/cache/index.d.ts.map +1 -0
- package/dist/storage/cache/index.js +28 -0
- package/dist/storage/cache/provider.cjs +16 -0
- package/dist/storage/cache/provider.d.ts +56 -0
- package/dist/storage/cache/provider.d.ts.map +1 -0
- package/dist/storage/cache/provider.js +0 -0
- package/dist/storage/cache/providers/index.cjs +31 -0
- package/dist/storage/cache/providers/index.d.ts +8 -0
- package/dist/storage/cache/providers/index.d.ts.map +1 -0
- package/dist/storage/cache/providers/index.js +7 -0
- package/dist/storage/cache/providers/memory.cjs +40 -0
- package/dist/storage/cache/providers/memory.d.ts +17 -0
- package/dist/storage/cache/providers/memory.d.ts.map +1 -0
- package/dist/storage/cache/providers/memory.js +17 -0
- package/dist/storage/cache/providers/redis.cjs +66 -0
- package/dist/storage/cache/providers/redis.d.ts +20 -0
- package/dist/storage/cache/providers/redis.d.ts.map +1 -0
- package/dist/storage/cache/providers/redis.js +33 -0
- package/dist/storage/cache/registry.cjs +50 -0
- package/dist/storage/cache/registry.d.ts +42 -0
- package/dist/storage/cache/registry.d.ts.map +1 -0
- package/dist/storage/cache/registry.js +26 -0
- package/dist/storage/cache/schemas.cjs +6 -2
- package/dist/storage/cache/schemas.d.ts +2 -3
- package/dist/storage/cache/schemas.d.ts.map +1 -1
- package/dist/storage/cache/schemas.js +3 -1
- package/dist/storage/database/factory.cjs +8 -47
- package/dist/storage/database/factory.d.ts +34 -8
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +8 -37
- package/dist/storage/database/index.cjs +58 -0
- package/dist/storage/database/index.d.ts +45 -0
- package/dist/storage/database/index.d.ts.map +1 -0
- package/dist/storage/database/index.js +37 -0
- package/dist/storage/database/provider.cjs +16 -0
- package/dist/storage/database/provider.d.ts +56 -0
- package/dist/storage/database/provider.d.ts.map +1 -0
- package/dist/storage/database/provider.js +0 -0
- package/dist/storage/database/providers/index.cjs +34 -0
- package/dist/storage/database/providers/index.d.ts +9 -0
- package/dist/storage/database/providers/index.d.ts.map +1 -0
- package/dist/storage/database/providers/index.js +9 -0
- package/dist/storage/database/providers/memory.cjs +40 -0
- package/dist/storage/database/providers/memory.d.ts +16 -0
- package/dist/storage/database/providers/memory.d.ts.map +1 -0
- package/dist/storage/database/providers/memory.js +17 -0
- package/dist/storage/database/providers/postgres.cjs +62 -0
- package/dist/storage/database/providers/postgres.d.ts +19 -0
- package/dist/storage/database/providers/postgres.d.ts.map +1 -0
- package/dist/storage/database/providers/postgres.js +29 -0
- package/dist/storage/database/providers/sqlite.cjs +66 -0
- package/dist/storage/database/providers/sqlite.d.ts +20 -0
- package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
- package/dist/storage/database/providers/sqlite.js +33 -0
- package/dist/storage/database/registry.cjs +50 -0
- package/dist/storage/database/registry.d.ts +42 -0
- package/dist/storage/database/registry.d.ts.map +1 -0
- package/dist/storage/database/registry.js +26 -0
- package/dist/storage/database/schemas.cjs +8 -2
- package/dist/storage/database/schemas.d.ts +3 -4
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +4 -1
- package/dist/storage/error-codes.cjs +6 -0
- package/dist/storage/error-codes.d.ts +7 -1
- package/dist/storage/error-codes.d.ts.map +1 -1
- package/dist/storage/error-codes.js +6 -0
- package/dist/storage/errors.cjs +80 -0
- package/dist/storage/errors.d.ts +24 -0
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +80 -0
- package/dist/storage/index.cjs +47 -4
- package/dist/storage/index.d.ts +34 -8
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +32 -3
- package/dist/storage/schemas.cjs +4 -0
- package/dist/storage/schemas.d.ts +17 -50
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +5 -1
- package/dist/storage/storage-manager.cjs +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +3 -3
- package/dist/systemPrompt/in-built-prompts.cjs +7 -6
- package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +6 -5
- package/dist/systemPrompt/registry.cjs +2 -2
- package/dist/systemPrompt/registry.d.ts +1 -1
- package/dist/systemPrompt/registry.d.ts.map +1 -1
- package/dist/systemPrompt/registry.js +2 -2
- package/dist/systemPrompt/schemas.cjs +2 -2
- package/dist/systemPrompt/schemas.d.ts +13 -13
- package/dist/systemPrompt/schemas.js +2 -2
- package/dist/tools/custom-tool-registry.cjs +64 -0
- package/dist/tools/custom-tool-registry.d.ts +120 -0
- package/dist/tools/custom-tool-registry.d.ts.map +1 -0
- package/dist/tools/custom-tool-registry.js +40 -0
- package/dist/tools/custom-tool-schema-registry.cjs +164 -0
- package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
- package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
- package/dist/tools/custom-tool-schema-registry.js +140 -0
- package/dist/tools/error-codes.cjs +3 -0
- package/dist/tools/error-codes.d.ts +4 -1
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +3 -0
- package/dist/tools/errors.cjs +41 -0
- package/dist/tools/errors.d.ts +17 -0
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +41 -0
- package/dist/tools/index.cjs +13 -1
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -1
- package/dist/tools/internal-tools/constants.cjs +3 -9
- package/dist/tools/internal-tools/constants.d.ts +1 -1
- package/dist/tools/internal-tools/constants.d.ts.map +1 -1
- package/dist/tools/internal-tools/constants.js +3 -9
- package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
- package/dist/tools/internal-tools/provider.cjs +150 -23
- package/dist/tools/internal-tools/provider.d.ts +55 -10
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +150 -23
- package/dist/tools/internal-tools/registry.cjs +18 -43
- package/dist/tools/internal-tools/registry.d.ts +4 -4
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +18 -43
- package/dist/tools/schemas.cjs +20 -0
- package/dist/tools/schemas.d.ts +43 -1
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +16 -0
- package/dist/tools/tool-manager.cjs +140 -13
- package/dist/tools/tool-manager.d.ts +22 -3
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +140 -13
- package/dist/tools/types.d.ts +43 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.cjs +19 -1
- package/dist/utils/api-key-resolver.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.js +19 -1
- package/dist/utils/index.cjs +0 -2
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/redactor.cjs +18 -3
- package/dist/utils/redactor.d.ts +0 -7
- package/dist/utils/redactor.d.ts.map +1 -1
- package/dist/utils/redactor.js +18 -3
- package/dist/utils/service-initializer.cjs +9 -35
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +9 -35
- package/package.json +5 -2
- package/dist/context/compression/overflow.d.ts.map +0 -1
- package/dist/context/compression/reactive-overflow.d.ts.map +0 -1
- package/dist/context/compression/types.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -130
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -97
- package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -127
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -104
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -70
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -47
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -86
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -63
- package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -63
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -40
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -124
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -103
- package/dist/utils/env-file.cjs +0 -118
- package/dist/utils/env-file.d.ts +0 -5
- package/dist/utils/env-file.d.ts.map +0 -1
- package/dist/utils/env-file.js +0 -85
- /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
- /package/dist/context/{compression → compaction}/types.cjs +0 -0
|
@@ -24,31 +24,59 @@ module.exports = __toCommonJS(provider_exports);
|
|
|
24
24
|
var import_errors = require("../errors.js");
|
|
25
25
|
var import_schema = require("../../utils/schema.js");
|
|
26
26
|
var import_registry = require("./registry.js");
|
|
27
|
+
var import_custom_tool_registry = require("../custom-tool-registry.js");
|
|
28
|
+
var import_DextoRuntimeError = require("../../errors/DextoRuntimeError.js");
|
|
29
|
+
var import_error_codes = require("../error-codes.js");
|
|
27
30
|
class InternalToolsProvider {
|
|
28
31
|
services;
|
|
29
|
-
|
|
30
|
-
//
|
|
32
|
+
internalTools = /* @__PURE__ */ new Map();
|
|
33
|
+
// Built-in internal tools
|
|
34
|
+
customTools = /* @__PURE__ */ new Map();
|
|
35
|
+
// Custom tool provider tools
|
|
31
36
|
config;
|
|
37
|
+
customToolConfigs;
|
|
32
38
|
logger;
|
|
33
|
-
|
|
39
|
+
agent;
|
|
40
|
+
// Set after construction to avoid circular dependency
|
|
41
|
+
constructor(services, config = [], customToolConfigs = [], logger) {
|
|
34
42
|
this.services = services;
|
|
35
43
|
this.config = config;
|
|
44
|
+
this.customToolConfigs = customToolConfigs;
|
|
36
45
|
this.logger = logger;
|
|
37
|
-
this.logger.debug("InternalToolsProvider initialized with config:", {
|
|
46
|
+
this.logger.debug("InternalToolsProvider initialized with config:", {
|
|
47
|
+
config,
|
|
48
|
+
customToolConfigs
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Set agent reference after construction (avoids circular dependency)
|
|
53
|
+
* Must be called before initialize() if custom tools need agent access
|
|
54
|
+
*/
|
|
55
|
+
setAgent(agent) {
|
|
56
|
+
this.agent = agent;
|
|
38
57
|
}
|
|
39
58
|
/**
|
|
40
59
|
* Initialize the internal tools provider by registering all available internal tools
|
|
60
|
+
* and custom tools from the registry
|
|
41
61
|
*/
|
|
42
62
|
async initialize() {
|
|
43
63
|
this.logger.info("Initializing InternalToolsProvider...");
|
|
44
64
|
try {
|
|
45
|
-
if (this.config.length
|
|
65
|
+
if (this.config.length > 0) {
|
|
66
|
+
this.registerInternalTools();
|
|
67
|
+
} else {
|
|
46
68
|
this.logger.info("No internal tools enabled by configuration");
|
|
47
|
-
return;
|
|
48
69
|
}
|
|
49
|
-
this.
|
|
50
|
-
|
|
51
|
-
|
|
70
|
+
if (this.customToolConfigs.length > 0) {
|
|
71
|
+
this.registerCustomTools();
|
|
72
|
+
} else {
|
|
73
|
+
this.logger.debug("No custom tool providers configured");
|
|
74
|
+
}
|
|
75
|
+
const internalCount = this.internalTools.size;
|
|
76
|
+
const customCount = this.customTools.size;
|
|
77
|
+
this.logger.info(
|
|
78
|
+
`InternalToolsProvider initialized with ${internalCount + customCount} tools (${internalCount} internal, ${customCount} custom)`
|
|
79
|
+
);
|
|
52
80
|
} catch (error) {
|
|
53
81
|
this.logger.error(
|
|
54
82
|
`Failed to initialize InternalToolsProvider: ${error instanceof Error ? error.message : String(error)}`
|
|
@@ -86,7 +114,7 @@ class InternalToolsProvider {
|
|
|
86
114
|
}
|
|
87
115
|
try {
|
|
88
116
|
const tool = toolInfo.factory(this.services);
|
|
89
|
-
this.
|
|
117
|
+
this.internalTools.set(toolName, tool);
|
|
90
118
|
this.logger.debug(`Registered ${toolName} internal tool`);
|
|
91
119
|
} catch (error) {
|
|
92
120
|
this.logger.error(
|
|
@@ -96,27 +124,89 @@ class InternalToolsProvider {
|
|
|
96
124
|
}
|
|
97
125
|
}
|
|
98
126
|
/**
|
|
99
|
-
*
|
|
127
|
+
* Register custom tools from the custom tool registry.
|
|
128
|
+
* Tools are stored by their original ID - prefixing is handled by ToolManager.
|
|
129
|
+
*/
|
|
130
|
+
registerCustomTools() {
|
|
131
|
+
if (!this.agent) {
|
|
132
|
+
throw import_errors.ToolError.configInvalid(
|
|
133
|
+
"Agent reference not set. Call setAgent() before initialize() when using custom tools."
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
const context = {
|
|
137
|
+
logger: this.logger,
|
|
138
|
+
agent: this.agent,
|
|
139
|
+
services: this.services
|
|
140
|
+
// Includes approvalManager for tools that need approval flows
|
|
141
|
+
};
|
|
142
|
+
for (const toolConfig of this.customToolConfigs) {
|
|
143
|
+
try {
|
|
144
|
+
const validatedConfig = import_custom_tool_registry.customToolRegistry.validateConfig(toolConfig);
|
|
145
|
+
const provider = import_custom_tool_registry.customToolRegistry.get(validatedConfig.type);
|
|
146
|
+
if (!provider) {
|
|
147
|
+
const availableTypes = import_custom_tool_registry.customToolRegistry.getTypes();
|
|
148
|
+
throw import_errors.ToolError.unknownCustomToolProvider(validatedConfig.type, availableTypes);
|
|
149
|
+
}
|
|
150
|
+
const tools = provider.create(validatedConfig, context);
|
|
151
|
+
for (const tool of tools) {
|
|
152
|
+
if (this.customTools.has(tool.id)) {
|
|
153
|
+
this.logger.warn(
|
|
154
|
+
`Custom tool '${tool.id}' conflicts with existing custom tool. Skipping.`
|
|
155
|
+
);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
this.customTools.set(tool.id, tool);
|
|
159
|
+
this.logger.debug(
|
|
160
|
+
`Registered custom tool: ${tool.id} from provider '${provider.metadata?.displayName || validatedConfig.type}'`
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
} catch (error) {
|
|
164
|
+
if (error instanceof import_DextoRuntimeError.DextoRuntimeError && error.code === import_error_codes.ToolErrorCode.CUSTOM_TOOL_PROVIDER_UNKNOWN) {
|
|
165
|
+
throw error;
|
|
166
|
+
}
|
|
167
|
+
this.logger.error(
|
|
168
|
+
`Failed to register custom tool provider: ${error instanceof Error ? error.message : String(error)}`
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Check if a tool exists (checks both internal and custom tools)
|
|
100
175
|
*/
|
|
101
176
|
hasTool(toolName) {
|
|
102
|
-
return this.
|
|
177
|
+
return this.internalTools.has(toolName) || this.customTools.has(toolName);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Check if an internal tool exists
|
|
181
|
+
*/
|
|
182
|
+
hasInternalTool(toolName) {
|
|
183
|
+
return this.internalTools.has(toolName);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Check if a custom tool exists
|
|
187
|
+
*/
|
|
188
|
+
hasCustomTool(toolName) {
|
|
189
|
+
return this.customTools.has(toolName);
|
|
103
190
|
}
|
|
104
191
|
/**
|
|
105
192
|
* Get an internal tool by name
|
|
106
193
|
* Returns undefined if tool doesn't exist
|
|
107
194
|
*/
|
|
108
195
|
getTool(toolName) {
|
|
109
|
-
return this.
|
|
196
|
+
return this.internalTools.get(toolName) || this.customTools.get(toolName);
|
|
110
197
|
}
|
|
111
198
|
/**
|
|
112
199
|
* Execute an internal tool - confirmation is handled by ToolManager
|
|
113
200
|
*/
|
|
114
201
|
async executeTool(toolName, args, sessionId, abortSignal) {
|
|
115
|
-
const tool = this.
|
|
202
|
+
const tool = this.internalTools.get(toolName) || this.customTools.get(toolName);
|
|
116
203
|
if (!tool) {
|
|
117
|
-
this.logger.error(`\u274C No
|
|
204
|
+
this.logger.error(`\u274C No tool found: ${toolName}`);
|
|
205
|
+
this.logger.debug(
|
|
206
|
+
`Available internal tools: ${Array.from(this.internalTools.keys()).join(", ")}`
|
|
207
|
+
);
|
|
118
208
|
this.logger.debug(
|
|
119
|
-
`Available
|
|
209
|
+
`Available custom tools: ${Array.from(this.customTools.keys()).join(", ")}`
|
|
120
210
|
);
|
|
121
211
|
throw import_errors.ToolError.notFound(toolName);
|
|
122
212
|
}
|
|
@@ -145,31 +235,68 @@ class InternalToolsProvider {
|
|
|
145
235
|
}
|
|
146
236
|
}
|
|
147
237
|
/**
|
|
148
|
-
* Get
|
|
238
|
+
* Get internal tools in ToolSet format (excludes custom tools)
|
|
239
|
+
*/
|
|
240
|
+
getInternalTools() {
|
|
241
|
+
const toolSet = {};
|
|
242
|
+
for (const [name, tool] of this.internalTools) {
|
|
243
|
+
toolSet[name] = {
|
|
244
|
+
name: tool.id,
|
|
245
|
+
description: tool.description,
|
|
246
|
+
parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
return toolSet;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Get custom tools in ToolSet format (excludes internal tools)
|
|
149
253
|
*/
|
|
150
|
-
|
|
254
|
+
getCustomTools() {
|
|
151
255
|
const toolSet = {};
|
|
152
|
-
for (const [name, tool] of this.
|
|
256
|
+
for (const [name, tool] of this.customTools) {
|
|
153
257
|
toolSet[name] = {
|
|
154
258
|
name: tool.id,
|
|
155
259
|
description: tool.description,
|
|
156
260
|
parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
|
|
157
|
-
// ← Convert on-demand
|
|
158
261
|
};
|
|
159
262
|
}
|
|
160
263
|
return toolSet;
|
|
161
264
|
}
|
|
162
265
|
/**
|
|
163
|
-
* Get tool names
|
|
266
|
+
* Get internal tool names
|
|
267
|
+
*/
|
|
268
|
+
getInternalToolNames() {
|
|
269
|
+
return Array.from(this.internalTools.keys());
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Get custom tool names
|
|
273
|
+
*/
|
|
274
|
+
getCustomToolNames() {
|
|
275
|
+
return Array.from(this.customTools.keys());
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Get all tool names (internal + custom)
|
|
164
279
|
*/
|
|
165
280
|
getToolNames() {
|
|
166
|
-
return
|
|
281
|
+
return [...this.internalTools.keys(), ...this.customTools.keys()];
|
|
167
282
|
}
|
|
168
283
|
/**
|
|
169
284
|
* Get tool count
|
|
170
285
|
*/
|
|
171
286
|
getToolCount() {
|
|
172
|
-
return this.
|
|
287
|
+
return this.internalTools.size + this.customTools.size;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Get internal tool count
|
|
291
|
+
*/
|
|
292
|
+
getInternalToolCount() {
|
|
293
|
+
return this.internalTools.size;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Get custom tool count
|
|
297
|
+
*/
|
|
298
|
+
getCustomToolCount() {
|
|
299
|
+
return this.customTools.size;
|
|
173
300
|
}
|
|
174
301
|
}
|
|
175
302
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,27 +1,39 @@
|
|
|
1
1
|
import { ToolSet, InternalTool } from '../types.js';
|
|
2
2
|
import type { IDextoLogger } from '../../logger/v2/types.js';
|
|
3
|
+
import type { DextoAgent } from '../../agent/DextoAgent.js';
|
|
3
4
|
import { InternalToolsServices } from './registry.js';
|
|
4
|
-
import type { InternalToolsConfig } from '../schemas.js';
|
|
5
|
+
import type { InternalToolsConfig, CustomToolsConfig } from '../schemas.js';
|
|
5
6
|
/**
|
|
6
|
-
* Provider for built-in internal tools
|
|
7
|
+
* Provider for built-in internal tools and custom tool providers
|
|
7
8
|
*
|
|
8
|
-
* This provider manages
|
|
9
|
-
*
|
|
9
|
+
* This provider manages:
|
|
10
|
+
* 1. Built-in internal tools that are shipped with the core system
|
|
11
|
+
* 2. Custom tools registered via the customToolRegistry
|
|
10
12
|
*
|
|
11
13
|
* Benefits:
|
|
12
14
|
* - Clean separation: ToolManager doesn't need to know about specific services
|
|
13
15
|
* - Easy to extend: Just add new tools and services as needed
|
|
14
16
|
* - Lightweight: Direct tool management without complex infrastructure
|
|
15
17
|
* - No unnecessary ProcessedInternalTool wrapper - uses InternalTool directly
|
|
18
|
+
* - Custom tools follow the same provider pattern as blob storage
|
|
16
19
|
*/
|
|
17
20
|
export declare class InternalToolsProvider {
|
|
18
21
|
private services;
|
|
19
|
-
private
|
|
22
|
+
private internalTools;
|
|
23
|
+
private customTools;
|
|
20
24
|
private config;
|
|
25
|
+
private customToolConfigs;
|
|
21
26
|
private logger;
|
|
22
|
-
|
|
27
|
+
private agent?;
|
|
28
|
+
constructor(services: InternalToolsServices, config: InternalToolsConfig | undefined, customToolConfigs: CustomToolsConfig | undefined, logger: IDextoLogger);
|
|
29
|
+
/**
|
|
30
|
+
* Set agent reference after construction (avoids circular dependency)
|
|
31
|
+
* Must be called before initialize() if custom tools need agent access
|
|
32
|
+
*/
|
|
33
|
+
setAgent(agent: DextoAgent): void;
|
|
23
34
|
/**
|
|
24
35
|
* Initialize the internal tools provider by registering all available internal tools
|
|
36
|
+
* and custom tools from the registry
|
|
25
37
|
*/
|
|
26
38
|
initialize(): Promise<void>;
|
|
27
39
|
/**
|
|
@@ -29,9 +41,22 @@ export declare class InternalToolsProvider {
|
|
|
29
41
|
*/
|
|
30
42
|
private registerInternalTools;
|
|
31
43
|
/**
|
|
32
|
-
*
|
|
44
|
+
* Register custom tools from the custom tool registry.
|
|
45
|
+
* Tools are stored by their original ID - prefixing is handled by ToolManager.
|
|
46
|
+
*/
|
|
47
|
+
private registerCustomTools;
|
|
48
|
+
/**
|
|
49
|
+
* Check if a tool exists (checks both internal and custom tools)
|
|
33
50
|
*/
|
|
34
51
|
hasTool(toolName: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Check if an internal tool exists
|
|
54
|
+
*/
|
|
55
|
+
hasInternalTool(toolName: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Check if a custom tool exists
|
|
58
|
+
*/
|
|
59
|
+
hasCustomTool(toolName: string): boolean;
|
|
35
60
|
/**
|
|
36
61
|
* Get an internal tool by name
|
|
37
62
|
* Returns undefined if tool doesn't exist
|
|
@@ -42,16 +67,36 @@ export declare class InternalToolsProvider {
|
|
|
42
67
|
*/
|
|
43
68
|
executeTool(toolName: string, args: Record<string, unknown>, sessionId?: string, abortSignal?: AbortSignal): Promise<unknown>;
|
|
44
69
|
/**
|
|
45
|
-
* Get
|
|
70
|
+
* Get internal tools in ToolSet format (excludes custom tools)
|
|
71
|
+
*/
|
|
72
|
+
getInternalTools(): ToolSet;
|
|
73
|
+
/**
|
|
74
|
+
* Get custom tools in ToolSet format (excludes internal tools)
|
|
75
|
+
*/
|
|
76
|
+
getCustomTools(): ToolSet;
|
|
77
|
+
/**
|
|
78
|
+
* Get internal tool names
|
|
79
|
+
*/
|
|
80
|
+
getInternalToolNames(): string[];
|
|
81
|
+
/**
|
|
82
|
+
* Get custom tool names
|
|
46
83
|
*/
|
|
47
|
-
|
|
84
|
+
getCustomToolNames(): string[];
|
|
48
85
|
/**
|
|
49
|
-
* Get tool names
|
|
86
|
+
* Get all tool names (internal + custom)
|
|
50
87
|
*/
|
|
51
88
|
getToolNames(): string[];
|
|
52
89
|
/**
|
|
53
90
|
* Get tool count
|
|
54
91
|
*/
|
|
55
92
|
getToolCount(): number;
|
|
93
|
+
/**
|
|
94
|
+
* Get internal tool count
|
|
95
|
+
*/
|
|
96
|
+
getInternalToolCount(): number;
|
|
97
|
+
/**
|
|
98
|
+
* Get custom tool count
|
|
99
|
+
*/
|
|
100
|
+
getCustomToolCount(): number;
|
|
56
101
|
}
|
|
57
102
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAA0C,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAK5E;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAa;gBAGvB,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,mBAAmB,YAAK,EAChC,iBAAiB,EAAE,iBAAiB,YAAK,EACzC,MAAM,EAAE,YAAY;IAYxB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIjC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA4D3B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI1C;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC;;;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;IAyCnB;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAc3B;;OAEG;IACH,cAAc,IAAI,OAAO;IAczB;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,kBAAkB,IAAI,MAAM;CAG/B"}
|
|
@@ -2,31 +2,59 @@ 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";
|
|
5
|
+
import { customToolRegistry } from "../custom-tool-registry.js";
|
|
6
|
+
import { DextoRuntimeError } from "../../errors/DextoRuntimeError.js";
|
|
7
|
+
import { ToolErrorCode } from "../error-codes.js";
|
|
5
8
|
class InternalToolsProvider {
|
|
6
9
|
services;
|
|
7
|
-
|
|
8
|
-
//
|
|
10
|
+
internalTools = /* @__PURE__ */ new Map();
|
|
11
|
+
// Built-in internal tools
|
|
12
|
+
customTools = /* @__PURE__ */ new Map();
|
|
13
|
+
// Custom tool provider tools
|
|
9
14
|
config;
|
|
15
|
+
customToolConfigs;
|
|
10
16
|
logger;
|
|
11
|
-
|
|
17
|
+
agent;
|
|
18
|
+
// Set after construction to avoid circular dependency
|
|
19
|
+
constructor(services, config = [], customToolConfigs = [], logger) {
|
|
12
20
|
this.services = services;
|
|
13
21
|
this.config = config;
|
|
22
|
+
this.customToolConfigs = customToolConfigs;
|
|
14
23
|
this.logger = logger;
|
|
15
|
-
this.logger.debug("InternalToolsProvider initialized with config:", {
|
|
24
|
+
this.logger.debug("InternalToolsProvider initialized with config:", {
|
|
25
|
+
config,
|
|
26
|
+
customToolConfigs
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Set agent reference after construction (avoids circular dependency)
|
|
31
|
+
* Must be called before initialize() if custom tools need agent access
|
|
32
|
+
*/
|
|
33
|
+
setAgent(agent) {
|
|
34
|
+
this.agent = agent;
|
|
16
35
|
}
|
|
17
36
|
/**
|
|
18
37
|
* Initialize the internal tools provider by registering all available internal tools
|
|
38
|
+
* and custom tools from the registry
|
|
19
39
|
*/
|
|
20
40
|
async initialize() {
|
|
21
41
|
this.logger.info("Initializing InternalToolsProvider...");
|
|
22
42
|
try {
|
|
23
|
-
if (this.config.length
|
|
43
|
+
if (this.config.length > 0) {
|
|
44
|
+
this.registerInternalTools();
|
|
45
|
+
} else {
|
|
24
46
|
this.logger.info("No internal tools enabled by configuration");
|
|
25
|
-
return;
|
|
26
47
|
}
|
|
27
|
-
this.
|
|
28
|
-
|
|
29
|
-
|
|
48
|
+
if (this.customToolConfigs.length > 0) {
|
|
49
|
+
this.registerCustomTools();
|
|
50
|
+
} else {
|
|
51
|
+
this.logger.debug("No custom tool providers configured");
|
|
52
|
+
}
|
|
53
|
+
const internalCount = this.internalTools.size;
|
|
54
|
+
const customCount = this.customTools.size;
|
|
55
|
+
this.logger.info(
|
|
56
|
+
`InternalToolsProvider initialized with ${internalCount + customCount} tools (${internalCount} internal, ${customCount} custom)`
|
|
57
|
+
);
|
|
30
58
|
} catch (error) {
|
|
31
59
|
this.logger.error(
|
|
32
60
|
`Failed to initialize InternalToolsProvider: ${error instanceof Error ? error.message : String(error)}`
|
|
@@ -64,7 +92,7 @@ class InternalToolsProvider {
|
|
|
64
92
|
}
|
|
65
93
|
try {
|
|
66
94
|
const tool = toolInfo.factory(this.services);
|
|
67
|
-
this.
|
|
95
|
+
this.internalTools.set(toolName, tool);
|
|
68
96
|
this.logger.debug(`Registered ${toolName} internal tool`);
|
|
69
97
|
} catch (error) {
|
|
70
98
|
this.logger.error(
|
|
@@ -74,27 +102,89 @@ class InternalToolsProvider {
|
|
|
74
102
|
}
|
|
75
103
|
}
|
|
76
104
|
/**
|
|
77
|
-
*
|
|
105
|
+
* Register custom tools from the custom tool registry.
|
|
106
|
+
* Tools are stored by their original ID - prefixing is handled by ToolManager.
|
|
107
|
+
*/
|
|
108
|
+
registerCustomTools() {
|
|
109
|
+
if (!this.agent) {
|
|
110
|
+
throw ToolError.configInvalid(
|
|
111
|
+
"Agent reference not set. Call setAgent() before initialize() when using custom tools."
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
const context = {
|
|
115
|
+
logger: this.logger,
|
|
116
|
+
agent: this.agent,
|
|
117
|
+
services: this.services
|
|
118
|
+
// Includes approvalManager for tools that need approval flows
|
|
119
|
+
};
|
|
120
|
+
for (const toolConfig of this.customToolConfigs) {
|
|
121
|
+
try {
|
|
122
|
+
const validatedConfig = customToolRegistry.validateConfig(toolConfig);
|
|
123
|
+
const provider = customToolRegistry.get(validatedConfig.type);
|
|
124
|
+
if (!provider) {
|
|
125
|
+
const availableTypes = customToolRegistry.getTypes();
|
|
126
|
+
throw ToolError.unknownCustomToolProvider(validatedConfig.type, availableTypes);
|
|
127
|
+
}
|
|
128
|
+
const tools = provider.create(validatedConfig, context);
|
|
129
|
+
for (const tool of tools) {
|
|
130
|
+
if (this.customTools.has(tool.id)) {
|
|
131
|
+
this.logger.warn(
|
|
132
|
+
`Custom tool '${tool.id}' conflicts with existing custom tool. Skipping.`
|
|
133
|
+
);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
this.customTools.set(tool.id, tool);
|
|
137
|
+
this.logger.debug(
|
|
138
|
+
`Registered custom tool: ${tool.id} from provider '${provider.metadata?.displayName || validatedConfig.type}'`
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
} catch (error) {
|
|
142
|
+
if (error instanceof DextoRuntimeError && error.code === ToolErrorCode.CUSTOM_TOOL_PROVIDER_UNKNOWN) {
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
this.logger.error(
|
|
146
|
+
`Failed to register custom tool provider: ${error instanceof Error ? error.message : String(error)}`
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Check if a tool exists (checks both internal and custom tools)
|
|
78
153
|
*/
|
|
79
154
|
hasTool(toolName) {
|
|
80
|
-
return this.
|
|
155
|
+
return this.internalTools.has(toolName) || this.customTools.has(toolName);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Check if an internal tool exists
|
|
159
|
+
*/
|
|
160
|
+
hasInternalTool(toolName) {
|
|
161
|
+
return this.internalTools.has(toolName);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Check if a custom tool exists
|
|
165
|
+
*/
|
|
166
|
+
hasCustomTool(toolName) {
|
|
167
|
+
return this.customTools.has(toolName);
|
|
81
168
|
}
|
|
82
169
|
/**
|
|
83
170
|
* Get an internal tool by name
|
|
84
171
|
* Returns undefined if tool doesn't exist
|
|
85
172
|
*/
|
|
86
173
|
getTool(toolName) {
|
|
87
|
-
return this.
|
|
174
|
+
return this.internalTools.get(toolName) || this.customTools.get(toolName);
|
|
88
175
|
}
|
|
89
176
|
/**
|
|
90
177
|
* Execute an internal tool - confirmation is handled by ToolManager
|
|
91
178
|
*/
|
|
92
179
|
async executeTool(toolName, args, sessionId, abortSignal) {
|
|
93
|
-
const tool = this.
|
|
180
|
+
const tool = this.internalTools.get(toolName) || this.customTools.get(toolName);
|
|
94
181
|
if (!tool) {
|
|
95
|
-
this.logger.error(`\u274C No
|
|
182
|
+
this.logger.error(`\u274C No tool found: ${toolName}`);
|
|
183
|
+
this.logger.debug(
|
|
184
|
+
`Available internal tools: ${Array.from(this.internalTools.keys()).join(", ")}`
|
|
185
|
+
);
|
|
96
186
|
this.logger.debug(
|
|
97
|
-
`Available
|
|
187
|
+
`Available custom tools: ${Array.from(this.customTools.keys()).join(", ")}`
|
|
98
188
|
);
|
|
99
189
|
throw ToolError.notFound(toolName);
|
|
100
190
|
}
|
|
@@ -123,31 +213,68 @@ class InternalToolsProvider {
|
|
|
123
213
|
}
|
|
124
214
|
}
|
|
125
215
|
/**
|
|
126
|
-
* Get
|
|
216
|
+
* Get internal tools in ToolSet format (excludes custom tools)
|
|
217
|
+
*/
|
|
218
|
+
getInternalTools() {
|
|
219
|
+
const toolSet = {};
|
|
220
|
+
for (const [name, tool] of this.internalTools) {
|
|
221
|
+
toolSet[name] = {
|
|
222
|
+
name: tool.id,
|
|
223
|
+
description: tool.description,
|
|
224
|
+
parameters: convertZodSchemaToJsonSchema(tool.inputSchema, this.logger)
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
return toolSet;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Get custom tools in ToolSet format (excludes internal tools)
|
|
127
231
|
*/
|
|
128
|
-
|
|
232
|
+
getCustomTools() {
|
|
129
233
|
const toolSet = {};
|
|
130
|
-
for (const [name, tool] of this.
|
|
234
|
+
for (const [name, tool] of this.customTools) {
|
|
131
235
|
toolSet[name] = {
|
|
132
236
|
name: tool.id,
|
|
133
237
|
description: tool.description,
|
|
134
238
|
parameters: convertZodSchemaToJsonSchema(tool.inputSchema, this.logger)
|
|
135
|
-
// ← Convert on-demand
|
|
136
239
|
};
|
|
137
240
|
}
|
|
138
241
|
return toolSet;
|
|
139
242
|
}
|
|
140
243
|
/**
|
|
141
|
-
* Get tool names
|
|
244
|
+
* Get internal tool names
|
|
245
|
+
*/
|
|
246
|
+
getInternalToolNames() {
|
|
247
|
+
return Array.from(this.internalTools.keys());
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Get custom tool names
|
|
251
|
+
*/
|
|
252
|
+
getCustomToolNames() {
|
|
253
|
+
return Array.from(this.customTools.keys());
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Get all tool names (internal + custom)
|
|
142
257
|
*/
|
|
143
258
|
getToolNames() {
|
|
144
|
-
return
|
|
259
|
+
return [...this.internalTools.keys(), ...this.customTools.keys()];
|
|
145
260
|
}
|
|
146
261
|
/**
|
|
147
262
|
* Get tool count
|
|
148
263
|
*/
|
|
149
264
|
getToolCount() {
|
|
150
|
-
return this.
|
|
265
|
+
return this.internalTools.size + this.customTools.size;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Get internal tool count
|
|
269
|
+
*/
|
|
270
|
+
getInternalToolCount() {
|
|
271
|
+
return this.internalTools.size;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Get custom tool count
|
|
275
|
+
*/
|
|
276
|
+
getCustomToolCount() {
|
|
277
|
+
return this.customTools.size;
|
|
151
278
|
}
|
|
152
279
|
}
|
|
153
280
|
export {
|