@dexto/core 1.4.0 → 1.5.1
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 +5959 -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 +6 -3
- package/dist/events/index.d.ts +35 -19
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +5 -3
- 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/provider-options.cjs +87 -0
- package/dist/llm/executor/provider-options.d.ts +49 -0
- package/dist/llm/executor/provider-options.d.ts.map +1 -0
- package/dist/llm/executor/provider-options.js +63 -0
- package/dist/llm/executor/stream-processor.cjs +22 -11
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +22 -11
- package/dist/llm/executor/turn-executor.cjs +60 -23
- package/dist/llm/executor/turn-executor.d.ts +7 -5
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +60 -23
- package/dist/llm/formatters/vercel.cjs +15 -3
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +15 -3
- 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 +604 -9
- package/dist/llm/registry.d.ts +35 -0
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +600 -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 +107 -81
- package/dist/llm/schemas.d.ts +181 -22
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +107 -81
- 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 +8 -3
- 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 +8 -3
- 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/logger/logger.cjs +7 -3
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +7 -3
- 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 +3 -3
- 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 +109 -0
- package/dist/providers/discovery.d.ts +96 -0
- package/dist/providers/discovery.d.ts.map +1 -0
- package/dist/providers/discovery.js +84 -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/session/history/database.cjs +49 -15
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +49 -15
- package/dist/session/session-manager.cjs +2 -1
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +2 -1
- 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/postgres-store.cjs +174 -78
- package/dist/storage/database/postgres-store.d.ts +19 -0
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +174 -78
- 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 +12 -3
- package/dist/storage/database/schemas.d.ts +11 -4
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +8 -2
- 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 +24 -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 +126 -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 +153 -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 +153 -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
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import "../../../chunk-PTJYTZNU.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const GetResourceInputSchema = z.object({
|
|
4
|
+
reference: z.string().describe(
|
|
5
|
+
'The resource reference to access. Formats: "blob:abc123" (from list_resources), "resource_ref:blob:abc123" (from tool annotations)'
|
|
6
|
+
),
|
|
7
|
+
format: z.enum(["url", "metadata"]).default("url").describe(
|
|
8
|
+
'Output format: "url" for a shareable URL (requires remote storage like Supabase), "metadata" for resource information without loading the data'
|
|
9
|
+
)
|
|
10
|
+
}).strict();
|
|
11
|
+
function createGetResourceTool(resourceManager) {
|
|
12
|
+
return {
|
|
13
|
+
id: "get_resource",
|
|
14
|
+
description: 'Access a stored resource. Use format "url" to get a shareable URL for other agents or external systems (requires remote storage like Supabase). Use format "metadata" to get resource information without loading data. References can be obtained from tool result annotations or list_resources.',
|
|
15
|
+
inputSchema: GetResourceInputSchema,
|
|
16
|
+
execute: async (input, _context) => {
|
|
17
|
+
const { reference, format } = input;
|
|
18
|
+
try {
|
|
19
|
+
const blobStore = resourceManager.getBlobStore();
|
|
20
|
+
const storeType = blobStore.getStoreType();
|
|
21
|
+
let blobUri = reference;
|
|
22
|
+
if (blobUri.startsWith("resource_ref:")) {
|
|
23
|
+
blobUri = blobUri.substring("resource_ref:".length);
|
|
24
|
+
}
|
|
25
|
+
if (blobUri.startsWith("@")) {
|
|
26
|
+
blobUri = blobUri.substring(1);
|
|
27
|
+
}
|
|
28
|
+
if (!blobUri.startsWith("blob:")) {
|
|
29
|
+
blobUri = `blob:${blobUri}`;
|
|
30
|
+
}
|
|
31
|
+
const exists = await blobStore.exists(blobUri);
|
|
32
|
+
if (!exists) {
|
|
33
|
+
return {
|
|
34
|
+
success: false,
|
|
35
|
+
error: `Resource not found: ${reference}`,
|
|
36
|
+
_hint: "Use list_resources to see available resources"
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (format === "metadata") {
|
|
40
|
+
const allBlobs = await blobStore.listBlobs();
|
|
41
|
+
const blobRef = allBlobs.find((b) => b.uri === blobUri);
|
|
42
|
+
if (!blobRef) {
|
|
43
|
+
return {
|
|
44
|
+
success: false,
|
|
45
|
+
error: `Resource metadata not found: ${reference}`,
|
|
46
|
+
_hint: "Use list_resources to see available resources"
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
success: true,
|
|
51
|
+
format: "metadata",
|
|
52
|
+
reference: blobUri,
|
|
53
|
+
mimeType: blobRef.metadata.mimeType,
|
|
54
|
+
size: blobRef.metadata.size,
|
|
55
|
+
filename: blobRef.metadata.originalName,
|
|
56
|
+
source: blobRef.metadata.source,
|
|
57
|
+
createdAt: blobRef.metadata.createdAt.toISOString()
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (storeType === "memory" || storeType === "local") {
|
|
61
|
+
return {
|
|
62
|
+
success: false,
|
|
63
|
+
error: "URL generation not available with local/memory storage",
|
|
64
|
+
_hint: "Configure remote storage (e.g., Supabase) in your agent config to enable URL sharing. Local storage cannot generate shareable URLs.",
|
|
65
|
+
storeType
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const blob = await blobStore.retrieve(blobUri, "url");
|
|
69
|
+
return {
|
|
70
|
+
success: true,
|
|
71
|
+
format: "url",
|
|
72
|
+
url: blob.data,
|
|
73
|
+
reference: blobUri,
|
|
74
|
+
mimeType: blob.metadata.mimeType,
|
|
75
|
+
size: blob.metadata.size,
|
|
76
|
+
filename: blob.metadata.originalName
|
|
77
|
+
};
|
|
78
|
+
} catch (error) {
|
|
79
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
80
|
+
return {
|
|
81
|
+
success: false,
|
|
82
|
+
error: `Failed to access resource: ${message}`
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export {
|
|
89
|
+
createGetResourceTool
|
|
90
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var list_resources_tool_exports = {};
|
|
20
|
+
__export(list_resources_tool_exports, {
|
|
21
|
+
createListResourcesTool: () => createListResourcesTool
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(list_resources_tool_exports);
|
|
24
|
+
var import_zod = require("zod");
|
|
25
|
+
const ListResourcesInputSchema = import_zod.z.object({
|
|
26
|
+
source: import_zod.z.enum(["all", "tool", "user"]).optional().default("all").describe(
|
|
27
|
+
'Filter by source: "tool" for tool-generated resources, "user" for user-uploaded, "all" for both'
|
|
28
|
+
),
|
|
29
|
+
kind: import_zod.z.enum(["all", "image", "audio", "video", "binary"]).optional().default("all").describe('Filter by type: "image", "audio", "video", "binary", or "all"'),
|
|
30
|
+
limit: import_zod.z.number().optional().default(50).describe("Maximum number of resources to return (default: 50)")
|
|
31
|
+
}).strict();
|
|
32
|
+
function createListResourcesTool(resourceManager) {
|
|
33
|
+
return {
|
|
34
|
+
id: "list_resources",
|
|
35
|
+
description: "List available resources (images, files, etc.). Returns resource references that can be used with get_resource to obtain shareable URLs or metadata. Filter by source (tool/user) or kind (image/audio/video/binary).",
|
|
36
|
+
inputSchema: ListResourcesInputSchema,
|
|
37
|
+
execute: async (input, _context) => {
|
|
38
|
+
const { source, kind, limit } = input;
|
|
39
|
+
try {
|
|
40
|
+
const blobStore = resourceManager.getBlobStore();
|
|
41
|
+
const allBlobs = await blobStore.listBlobs();
|
|
42
|
+
const resources = [];
|
|
43
|
+
for (const blob of allBlobs) {
|
|
44
|
+
if (blob.metadata.source === "system") {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (source !== "all" && blob.metadata.source !== source) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const mimeType = blob.metadata.mimeType;
|
|
51
|
+
let resourceKind = "binary";
|
|
52
|
+
if (mimeType.startsWith("image/")) resourceKind = "image";
|
|
53
|
+
else if (mimeType.startsWith("audio/")) resourceKind = "audio";
|
|
54
|
+
else if (mimeType.startsWith("video/")) resourceKind = "video";
|
|
55
|
+
if (kind !== "all" && resourceKind !== kind) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
resources.push({
|
|
59
|
+
reference: blob.uri,
|
|
60
|
+
kind: resourceKind,
|
|
61
|
+
mimeType: blob.metadata.mimeType,
|
|
62
|
+
...blob.metadata.originalName && { filename: blob.metadata.originalName },
|
|
63
|
+
source: blob.metadata.source || "tool",
|
|
64
|
+
size: blob.metadata.size,
|
|
65
|
+
createdAt: blob.metadata.createdAt.toISOString()
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
resources.sort(
|
|
69
|
+
(a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()
|
|
70
|
+
);
|
|
71
|
+
const limitedResources = resources.slice(0, limit);
|
|
72
|
+
return {
|
|
73
|
+
success: true,
|
|
74
|
+
count: limitedResources.length,
|
|
75
|
+
resources: limitedResources,
|
|
76
|
+
_hint: limitedResources.length > 0 ? "Use get_resource with a reference to get a shareable URL or metadata" : "No resources found matching the criteria"
|
|
77
|
+
};
|
|
78
|
+
} catch (error) {
|
|
79
|
+
return {
|
|
80
|
+
success: false,
|
|
81
|
+
error: `Failed to list resources: ${error instanceof Error ? error.message : String(error)}`,
|
|
82
|
+
resources: []
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
89
|
+
0 && (module.exports = {
|
|
90
|
+
createListResourcesTool
|
|
91
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { InternalTool } from '../../types.js';
|
|
2
|
+
import type { ResourceManager } from '../../../resources/manager.js';
|
|
3
|
+
/**
|
|
4
|
+
* Internal tool for listing available resources.
|
|
5
|
+
*
|
|
6
|
+
* This tool allows agents to discover what resources (images, files, etc.) are
|
|
7
|
+
* available. Use this to find resources that can be accessed with get_resource.
|
|
8
|
+
*
|
|
9
|
+
* Resources are stored blobs from:
|
|
10
|
+
* - Tool results (images generated by tools, screenshots, etc.)
|
|
11
|
+
* - User uploads (files attached to messages)
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // List all tool-generated images
|
|
16
|
+
* list_resources({ source: 'tool', kind: 'image' })
|
|
17
|
+
* → { resources: [{ reference: 'blob:abc123', kind: 'image', ... }] }
|
|
18
|
+
*
|
|
19
|
+
* // Get a URL for sharing
|
|
20
|
+
* get_resource({ reference: 'blob:abc123', format: 'url' })
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function createListResourcesTool(resourceManager: ResourceManager): InternalTool;
|
|
24
|
+
//# sourceMappingURL=list-resources-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-resources-tool.d.ts","sourceRoot":"","sources":["../../../../src/tools/internal-tools/implementations/list-resources-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAqDrE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,eAAe,GAAG,YAAY,CA8EtF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import "../../../chunk-PTJYTZNU.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const ListResourcesInputSchema = z.object({
|
|
4
|
+
source: z.enum(["all", "tool", "user"]).optional().default("all").describe(
|
|
5
|
+
'Filter by source: "tool" for tool-generated resources, "user" for user-uploaded, "all" for both'
|
|
6
|
+
),
|
|
7
|
+
kind: z.enum(["all", "image", "audio", "video", "binary"]).optional().default("all").describe('Filter by type: "image", "audio", "video", "binary", or "all"'),
|
|
8
|
+
limit: z.number().optional().default(50).describe("Maximum number of resources to return (default: 50)")
|
|
9
|
+
}).strict();
|
|
10
|
+
function createListResourcesTool(resourceManager) {
|
|
11
|
+
return {
|
|
12
|
+
id: "list_resources",
|
|
13
|
+
description: "List available resources (images, files, etc.). Returns resource references that can be used with get_resource to obtain shareable URLs or metadata. Filter by source (tool/user) or kind (image/audio/video/binary).",
|
|
14
|
+
inputSchema: ListResourcesInputSchema,
|
|
15
|
+
execute: async (input, _context) => {
|
|
16
|
+
const { source, kind, limit } = input;
|
|
17
|
+
try {
|
|
18
|
+
const blobStore = resourceManager.getBlobStore();
|
|
19
|
+
const allBlobs = await blobStore.listBlobs();
|
|
20
|
+
const resources = [];
|
|
21
|
+
for (const blob of allBlobs) {
|
|
22
|
+
if (blob.metadata.source === "system") {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (source !== "all" && blob.metadata.source !== source) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
const mimeType = blob.metadata.mimeType;
|
|
29
|
+
let resourceKind = "binary";
|
|
30
|
+
if (mimeType.startsWith("image/")) resourceKind = "image";
|
|
31
|
+
else if (mimeType.startsWith("audio/")) resourceKind = "audio";
|
|
32
|
+
else if (mimeType.startsWith("video/")) resourceKind = "video";
|
|
33
|
+
if (kind !== "all" && resourceKind !== kind) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
resources.push({
|
|
37
|
+
reference: blob.uri,
|
|
38
|
+
kind: resourceKind,
|
|
39
|
+
mimeType: blob.metadata.mimeType,
|
|
40
|
+
...blob.metadata.originalName && { filename: blob.metadata.originalName },
|
|
41
|
+
source: blob.metadata.source || "tool",
|
|
42
|
+
size: blob.metadata.size,
|
|
43
|
+
createdAt: blob.metadata.createdAt.toISOString()
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
resources.sort(
|
|
47
|
+
(a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()
|
|
48
|
+
);
|
|
49
|
+
const limitedResources = resources.slice(0, limit);
|
|
50
|
+
return {
|
|
51
|
+
success: true,
|
|
52
|
+
count: limitedResources.length,
|
|
53
|
+
resources: limitedResources,
|
|
54
|
+
_hint: limitedResources.length > 0 ? "Use get_resource with a reference to get a shareable URL or metadata" : "No resources found matching the criteria"
|
|
55
|
+
};
|
|
56
|
+
} catch (error) {
|
|
57
|
+
return {
|
|
58
|
+
success: false,
|
|
59
|
+
error: `Failed to list resources: ${error instanceof Error ? error.message : String(error)}`,
|
|
60
|
+
resources: []
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export {
|
|
67
|
+
createListResourcesTool
|
|
68
|
+
};
|
|
@@ -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,92 @@ 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: {
|
|
140
|
+
...this.services,
|
|
141
|
+
// Include storageManager from agent services for custom tools that need persistence
|
|
142
|
+
storageManager: this.agent.services?.storageManager
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
for (const toolConfig of this.customToolConfigs) {
|
|
146
|
+
try {
|
|
147
|
+
const validatedConfig = import_custom_tool_registry.customToolRegistry.validateConfig(toolConfig);
|
|
148
|
+
const provider = import_custom_tool_registry.customToolRegistry.get(validatedConfig.type);
|
|
149
|
+
if (!provider) {
|
|
150
|
+
const availableTypes = import_custom_tool_registry.customToolRegistry.getTypes();
|
|
151
|
+
throw import_errors.ToolError.unknownCustomToolProvider(validatedConfig.type, availableTypes);
|
|
152
|
+
}
|
|
153
|
+
const tools = provider.create(validatedConfig, context);
|
|
154
|
+
for (const tool of tools) {
|
|
155
|
+
if (this.customTools.has(tool.id)) {
|
|
156
|
+
this.logger.warn(
|
|
157
|
+
`Custom tool '${tool.id}' conflicts with existing custom tool. Skipping.`
|
|
158
|
+
);
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
this.customTools.set(tool.id, tool);
|
|
162
|
+
this.logger.debug(
|
|
163
|
+
`Registered custom tool: ${tool.id} from provider '${provider.metadata?.displayName || validatedConfig.type}'`
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
} catch (error) {
|
|
167
|
+
if (error instanceof import_DextoRuntimeError.DextoRuntimeError && error.code === import_error_codes.ToolErrorCode.CUSTOM_TOOL_PROVIDER_UNKNOWN) {
|
|
168
|
+
throw error;
|
|
169
|
+
}
|
|
170
|
+
this.logger.error(
|
|
171
|
+
`Failed to register custom tool provider: ${error instanceof Error ? error.message : String(error)}`
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Check if a tool exists (checks both internal and custom tools)
|
|
100
178
|
*/
|
|
101
179
|
hasTool(toolName) {
|
|
102
|
-
return this.
|
|
180
|
+
return this.internalTools.has(toolName) || this.customTools.has(toolName);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Check if an internal tool exists
|
|
184
|
+
*/
|
|
185
|
+
hasInternalTool(toolName) {
|
|
186
|
+
return this.internalTools.has(toolName);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Check if a custom tool exists
|
|
190
|
+
*/
|
|
191
|
+
hasCustomTool(toolName) {
|
|
192
|
+
return this.customTools.has(toolName);
|
|
103
193
|
}
|
|
104
194
|
/**
|
|
105
195
|
* Get an internal tool by name
|
|
106
196
|
* Returns undefined if tool doesn't exist
|
|
107
197
|
*/
|
|
108
198
|
getTool(toolName) {
|
|
109
|
-
return this.
|
|
199
|
+
return this.internalTools.get(toolName) || this.customTools.get(toolName);
|
|
110
200
|
}
|
|
111
201
|
/**
|
|
112
202
|
* Execute an internal tool - confirmation is handled by ToolManager
|
|
113
203
|
*/
|
|
114
204
|
async executeTool(toolName, args, sessionId, abortSignal) {
|
|
115
|
-
const tool = this.
|
|
205
|
+
const tool = this.internalTools.get(toolName) || this.customTools.get(toolName);
|
|
116
206
|
if (!tool) {
|
|
117
|
-
this.logger.error(`\u274C No
|
|
207
|
+
this.logger.error(`\u274C No tool found: ${toolName}`);
|
|
118
208
|
this.logger.debug(
|
|
119
|
-
`Available internal tools: ${Array.from(this.
|
|
209
|
+
`Available internal tools: ${Array.from(this.internalTools.keys()).join(", ")}`
|
|
210
|
+
);
|
|
211
|
+
this.logger.debug(
|
|
212
|
+
`Available custom tools: ${Array.from(this.customTools.keys()).join(", ")}`
|
|
120
213
|
);
|
|
121
214
|
throw import_errors.ToolError.notFound(toolName);
|
|
122
215
|
}
|
|
@@ -145,31 +238,68 @@ class InternalToolsProvider {
|
|
|
145
238
|
}
|
|
146
239
|
}
|
|
147
240
|
/**
|
|
148
|
-
* Get
|
|
241
|
+
* Get internal tools in ToolSet format (excludes custom tools)
|
|
242
|
+
*/
|
|
243
|
+
getInternalTools() {
|
|
244
|
+
const toolSet = {};
|
|
245
|
+
for (const [name, tool] of this.internalTools) {
|
|
246
|
+
toolSet[name] = {
|
|
247
|
+
name: tool.id,
|
|
248
|
+
description: tool.description,
|
|
249
|
+
parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
return toolSet;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Get custom tools in ToolSet format (excludes internal tools)
|
|
149
256
|
*/
|
|
150
|
-
|
|
257
|
+
getCustomTools() {
|
|
151
258
|
const toolSet = {};
|
|
152
|
-
for (const [name, tool] of this.
|
|
259
|
+
for (const [name, tool] of this.customTools) {
|
|
153
260
|
toolSet[name] = {
|
|
154
261
|
name: tool.id,
|
|
155
262
|
description: tool.description,
|
|
156
263
|
parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
|
|
157
|
-
// ← Convert on-demand
|
|
158
264
|
};
|
|
159
265
|
}
|
|
160
266
|
return toolSet;
|
|
161
267
|
}
|
|
162
268
|
/**
|
|
163
|
-
* Get tool names
|
|
269
|
+
* Get internal tool names
|
|
270
|
+
*/
|
|
271
|
+
getInternalToolNames() {
|
|
272
|
+
return Array.from(this.internalTools.keys());
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Get custom tool names
|
|
276
|
+
*/
|
|
277
|
+
getCustomToolNames() {
|
|
278
|
+
return Array.from(this.customTools.keys());
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Get all tool names (internal + custom)
|
|
164
282
|
*/
|
|
165
283
|
getToolNames() {
|
|
166
|
-
return
|
|
284
|
+
return [...this.internalTools.keys(), ...this.customTools.keys()];
|
|
167
285
|
}
|
|
168
286
|
/**
|
|
169
287
|
* Get tool count
|
|
170
288
|
*/
|
|
171
289
|
getToolCount() {
|
|
172
|
-
return this.
|
|
290
|
+
return this.internalTools.size + this.customTools.size;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Get internal tool count
|
|
294
|
+
*/
|
|
295
|
+
getInternalToolCount() {
|
|
296
|
+
return this.internalTools.size;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Get custom tool count
|
|
300
|
+
*/
|
|
301
|
+
getCustomToolCount() {
|
|
302
|
+
return this.customTools.size;
|
|
173
303
|
}
|
|
174
304
|
}
|
|
175
305
|
// 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;IAgE3B;;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"}
|