@dexto/core 1.3.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 +53 -9
- package/dist/agent/DextoAgent.cjs +570 -210
- package/dist/agent/DextoAgent.d.ts +175 -35
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +568 -208
- package/dist/agent/agentCard.js +1 -1
- package/dist/agent/error-codes.cjs +1 -0
- package/dist/agent/error-codes.d.ts +2 -1
- package/dist/agent/error-codes.d.ts.map +1 -1
- package/dist/agent/error-codes.js +2 -1
- package/dist/agent/errors.cjs +13 -0
- package/dist/agent/errors.d.ts +4 -0
- package/dist/agent/errors.d.ts.map +1 -1
- package/dist/agent/errors.js +14 -1
- package/dist/agent/index.cjs +4 -1
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +6 -2
- package/dist/agent/schemas.cjs +90 -68
- package/dist/agent/schemas.d.ts +5998 -146
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +90 -65
- package/dist/agent/state-manager.cjs +5 -5
- package/dist/agent/state-manager.d.ts +4 -4
- package/dist/agent/state-manager.js +6 -6
- package/dist/agent/types.d.ts +24 -10
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/approval/error-codes.js +1 -1
- package/dist/approval/errors.js +1 -1
- package/dist/approval/factory.js +1 -1
- package/dist/approval/index.js +1 -1
- package/dist/approval/manager.cjs +234 -4
- package/dist/approval/manager.d.ts +131 -4
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +225 -5
- package/dist/approval/schemas.cjs +57 -7
- package/dist/approval/schemas.d.ts +344 -33
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +54 -8
- package/dist/approval/types.cjs +1 -0
- package/dist/approval/types.d.ts +32 -1
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +2 -1
- package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
- 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/compaction/overflow.cjs +43 -0
- package/dist/context/compaction/overflow.d.ts +33 -0
- package/dist/context/compaction/overflow.d.ts.map +1 -0
- package/dist/context/compaction/overflow.js +19 -0
- 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/{llm/tokenizer/factory.cjs → context/compaction/registry.cjs} +15 -20
- 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/{llm/tokenizer/types.cjs → context/compaction/strategies/noop.cjs} +12 -9
- 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/compaction/strategies/reactive-overflow.cjs +201 -0
- package/dist/context/compaction/strategies/reactive-overflow.d.ts +81 -0
- package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
- package/dist/context/compaction/strategies/reactive-overflow.js +178 -0
- package/dist/context/compaction/types.d.ts +20 -0
- package/dist/context/compaction/types.d.ts.map +1 -0
- package/dist/context/error-codes.cjs +7 -0
- package/dist/context/error-codes.d.ts +8 -1
- package/dist/context/error-codes.d.ts.map +1 -1
- package/dist/context/error-codes.js +8 -1
- package/dist/context/errors.cjs +68 -0
- package/dist/context/errors.d.ts +21 -0
- package/dist/context/errors.d.ts.map +1 -1
- package/dist/context/errors.js +69 -1
- 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 +2 -1
- package/dist/context/manager.cjs +280 -323
- package/dist/context/manager.d.ts +65 -111
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +280 -328
- package/dist/context/media-helpers.js +1 -1
- package/dist/context/types.cjs +49 -0
- package/dist/context/types.d.ts +187 -72
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/types.js +35 -0
- package/dist/context/utils.cjs +293 -290
- package/dist/context/utils.d.ts +32 -18
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +293 -290
- package/dist/errors/DextoBaseError.js +1 -1
- package/dist/errors/DextoRuntimeError.js +1 -1
- package/dist/errors/DextoValidationError.js +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +3 -4
- package/dist/errors/types.js +1 -1
- package/dist/events/index.cjs +18 -1
- package/dist/events/index.d.ts +149 -12
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +19 -2
- package/dist/filesystem/error-codes.js +1 -1
- package/dist/filesystem/errors.js +1 -1
- package/dist/filesystem/filesystem-service.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 +40 -1
- package/dist/filesystem/index.d.ts +1 -1
- package/dist/filesystem/index.d.ts.map +1 -1
- package/dist/filesystem/index.js +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 +70 -2
- 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/{llm/tokenizer/default.cjs → image/index.cjs} +10 -19
- 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.d.ts +231 -0
- package/dist/image/types.d.ts.map +1 -0
- package/dist/image/types.js +0 -0
- package/dist/index.browser.cjs +23 -8
- package/dist/index.browser.d.ts +4 -3
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +20 -3
- package/dist/index.cjs +5 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/llm/error-codes.cjs +1 -1
- package/dist/llm/error-codes.d.ts +1 -1
- package/dist/llm/error-codes.d.ts.map +1 -1
- package/dist/llm/error-codes.js +2 -2
- package/dist/llm/errors.cjs +34 -10
- package/dist/llm/errors.d.ts +23 -11
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +36 -12
- package/dist/llm/executor/stream-processor.cjs +375 -0
- package/dist/llm/executor/stream-processor.d.ts +55 -0
- package/dist/llm/executor/stream-processor.d.ts.map +1 -0
- package/dist/llm/executor/stream-processor.js +352 -0
- package/dist/llm/executor/tool-output-truncator.cjs +75 -0
- package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
- package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
- package/dist/llm/executor/tool-output-truncator.js +48 -0
- package/dist/llm/executor/turn-executor.cjs +780 -0
- package/dist/llm/executor/turn-executor.d.ts +167 -0
- package/dist/llm/executor/turn-executor.d.ts.map +1 -0
- package/dist/llm/executor/turn-executor.js +711 -0
- package/dist/llm/executor/types.cjs +16 -0
- package/dist/llm/executor/types.d.ts +27 -0
- package/dist/llm/executor/types.d.ts.map +1 -0
- package/dist/llm/executor/types.js +0 -0
- package/dist/llm/formatters/vercel.cjs +26 -188
- package/dist/llm/formatters/vercel.d.ts +2 -14
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +25 -187
- 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 +569 -52
- package/dist/llm/registry.d.ts +79 -39
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +564 -49
- package/dist/llm/resolver.cjs +62 -34
- package/dist/llm/resolver.d.ts +3 -3
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +69 -38
- package/dist/llm/schemas.cjs +92 -97
- package/dist/llm/schemas.d.ts +162 -39
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +93 -100
- package/dist/llm/services/factory.cjs +88 -103
- package/dist/llm/services/factory.d.ts +17 -4
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +87 -93
- package/dist/llm/services/test-utils.integration.cjs +28 -10
- 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 +33 -12
- package/dist/llm/services/types.d.ts +1 -28
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +58 -469
- package/dist/llm/services/vercel.d.ts +39 -21
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +60 -476
- package/dist/llm/types.cjs +11 -4
- package/dist/llm/types.d.ts +9 -9
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +12 -4
- package/dist/llm/validation.js +1 -1
- package/dist/logger/browser.js +1 -1
- package/dist/logger/factory.js +1 -1
- package/dist/logger/index.js +1 -1
- package/dist/logger/logger.js +1 -1
- package/dist/logger/v2/dexto-logger.cjs +34 -6
- package/dist/logger/v2/dexto-logger.d.ts +20 -2
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
- package/dist/logger/v2/dexto-logger.js +35 -7
- package/dist/logger/v2/error-codes.js +1 -1
- package/dist/logger/v2/errors.js +1 -1
- package/dist/logger/v2/schemas.js +1 -1
- package/dist/logger/v2/test-utils.cjs +70 -0
- package/dist/logger/v2/test-utils.d.ts +17 -0
- package/dist/logger/v2/test-utils.d.ts.map +1 -0
- package/dist/logger/v2/test-utils.js +46 -0
- package/dist/logger/v2/transport-factory.js +1 -1
- package/dist/logger/v2/transports/console-transport.js +1 -1
- package/dist/logger/v2/transports/file-transport.cjs +6 -0
- package/dist/logger/v2/transports/file-transport.d.ts +4 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
- package/dist/logger/v2/transports/file-transport.js +7 -1
- package/dist/logger/v2/types.cjs +1 -0
- package/dist/logger/v2/types.d.ts +18 -2
- package/dist/logger/v2/types.d.ts.map +1 -1
- package/dist/logger/v2/types.js +2 -1
- package/dist/mcp/error-codes.cjs +1 -0
- package/dist/mcp/error-codes.d.ts +1 -0
- package/dist/mcp/error-codes.d.ts.map +1 -1
- package/dist/mcp/error-codes.js +2 -1
- package/dist/mcp/errors.cjs +13 -0
- package/dist/mcp/errors.d.ts +7 -0
- package/dist/mcp/errors.d.ts.map +1 -1
- package/dist/mcp/errors.js +14 -1
- package/dist/mcp/manager.cjs +12 -0
- package/dist/mcp/manager.d.ts +17 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +13 -1
- package/dist/mcp/mcp-client.cjs +0 -3
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +1 -4
- package/dist/mcp/resolver.js +1 -1
- package/dist/mcp/schemas.cjs +6 -0
- package/dist/mcp/schemas.d.ts +52 -0
- package/dist/mcp/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.js +6 -1
- package/dist/memory/error-codes.js +1 -1
- package/dist/memory/errors.js +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/memory/manager.js +1 -1
- package/dist/memory/schemas.d.ts +3 -3
- package/dist/memory/schemas.js +1 -1
- package/dist/plugins/builtins/content-policy.js +1 -1
- package/dist/plugins/builtins/response-sanitizer.js +1 -1
- package/dist/plugins/error-codes.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 +4 -1
- 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 +7 -2
- package/dist/plugins/loader.js +1 -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 +93 -8
- package/dist/plugins/registrations/builtins.js +1 -1
- 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 +65 -8
- package/dist/plugins/schemas.d.ts.map +1 -1
- package/dist/plugins/schemas.js +16 -5
- package/dist/plugins/types.d.ts +0 -1
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.js +1 -1
- package/dist/process/error-codes.js +1 -1
- package/dist/process/errors.js +1 -1
- package/dist/process/index.js +1 -1
- package/dist/process/process-service.cjs +78 -26
- package/dist/process/process-service.d.ts +6 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +79 -27
- package/dist/process/types.d.ts +2 -2
- package/dist/process/types.d.ts.map +1 -1
- package/dist/prompts/error-codes.cjs +1 -0
- package/dist/prompts/error-codes.d.ts +2 -1
- package/dist/prompts/error-codes.d.ts.map +1 -1
- package/dist/prompts/error-codes.js +2 -1
- package/dist/prompts/errors.cjs +15 -0
- package/dist/prompts/errors.d.ts +4 -0
- package/dist/prompts/errors.d.ts.map +1 -1
- package/dist/prompts/errors.js +16 -1
- package/dist/prompts/index.js +1 -1
- package/dist/prompts/name-validation.js +1 -1
- package/dist/prompts/prompt-manager.cjs +13 -2
- package/dist/prompts/prompt-manager.d.ts +7 -0
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +14 -3
- package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
- package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.js +13 -4
- package/dist/prompts/providers/custom-prompt-provider.js +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
- package/dist/prompts/schemas.d.ts +12 -0
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +1 -1
- package/dist/prompts/types.d.ts +2 -0
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/prompts/utils.js +1 -1
- package/dist/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/error-codes.js +1 -1
- package/dist/resources/errors.js +1 -1
- package/dist/resources/handlers/blob-handler.js +1 -1
- package/dist/resources/handlers/factory.js +1 -1
- package/dist/resources/handlers/filesystem-handler.js +1 -1
- package/dist/resources/index.js +1 -1
- package/dist/resources/internal-provider.js +1 -1
- package/dist/resources/manager.js +1 -1
- package/dist/resources/reference-parser.cjs +3 -3
- package/dist/resources/reference-parser.d.ts.map +1 -1
- package/dist/resources/reference-parser.js +4 -4
- package/dist/resources/schemas.js +1 -1
- package/dist/search/index.js +1 -1
- package/dist/search/search-service.js +1 -1
- package/dist/session/chat-session.cjs +169 -54
- package/dist/session/chat-session.d.ts +69 -29
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +171 -56
- package/dist/session/error-codes.js +1 -1
- package/dist/session/errors.js +1 -1
- package/dist/session/history/database.cjs +134 -21
- package/dist/session/history/database.d.ts +37 -8
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +135 -22
- package/dist/session/history/factory.js +1 -1
- package/dist/session/history/memory.cjs +18 -0
- package/dist/session/history/memory.d.ts +8 -0
- package/dist/session/history/memory.d.ts.map +1 -1
- package/dist/session/history/memory.js +19 -1
- package/dist/session/history/types.d.ts +13 -1
- package/dist/session/history/types.d.ts.map +1 -1
- package/dist/session/index.cjs +3 -0
- package/dist/session/index.d.ts +3 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +3 -1
- package/dist/session/message-queue.cjs +201 -0
- package/dist/session/message-queue.d.ts +114 -0
- package/dist/session/message-queue.d.ts.map +1 -0
- package/dist/session/message-queue.js +178 -0
- package/dist/session/schemas.js +1 -1
- package/dist/session/session-manager.cjs +57 -7
- package/dist/session/session-manager.d.ts +18 -0
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +58 -8
- package/dist/session/title-generator.cjs +4 -8
- package/dist/session/title-generator.d.ts +1 -2
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +5 -9
- package/dist/session/types.cjs +16 -0
- package/dist/session/types.d.ts +14 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +0 -0
- package/dist/storage/blob/factory.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 +9 -12
- 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/local-blob-store.js +1 -1
- package/dist/storage/blob/memory-blob-store.js +1 -1
- 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 +7 -12
- 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 +9 -27
- 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/memory-cache-store.js +1 -1
- 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/redis-store.js +1 -1
- package/dist/{llm/tokenizer/google.cjs → storage/cache/registry.cjs} +23 -25
- 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 +4 -2
- 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 +9 -38
- 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/memory-database-store.js +1 -1
- package/dist/storage/database/postgres-store.cjs +12 -0
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +13 -1
- package/dist/storage/database/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 +5 -2
- package/dist/storage/database/sqlite-store.js +1 -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 +7 -1
- 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 +81 -1
- 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 +33 -4
- 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 +6 -2
- package/dist/storage/storage-manager.cjs +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +4 -4
- package/dist/systemPrompt/contributors.js +1 -1
- package/dist/systemPrompt/error-codes.js +1 -1
- package/dist/systemPrompt/errors.js +1 -1
- package/dist/systemPrompt/in-built-prompts.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 +7 -6
- package/dist/systemPrompt/index.js +1 -1
- package/dist/systemPrompt/manager.js +1 -1
- 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 +3 -3
- package/dist/systemPrompt/schemas.cjs +2 -2
- package/dist/systemPrompt/schemas.d.ts +18 -18
- package/dist/systemPrompt/schemas.js +3 -3
- package/dist/telemetry/decorators.js +1 -1
- package/dist/telemetry/error-codes.js +1 -1
- package/dist/telemetry/errors.js +1 -1
- package/dist/telemetry/exporters.js +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/schemas.js +1 -1
- package/dist/telemetry/telemetry.js +1 -1
- package/dist/telemetry/utils.js +1 -1
- package/dist/tools/bash-pattern-utils.cjs +91 -0
- package/dist/tools/bash-pattern-utils.d.ts +58 -0
- package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
- package/dist/tools/bash-pattern-utils.js +64 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
- package/dist/tools/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/display-types.cjs +60 -0
- package/dist/tools/display-types.d.ts +133 -0
- package/dist/tools/display-types.d.ts.map +1 -0
- package/dist/tools/display-types.js +32 -0
- package/dist/tools/error-codes.cjs +5 -0
- package/dist/tools/error-codes.d.ts +6 -1
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +6 -1
- package/dist/tools/errors.cjs +71 -0
- package/dist/tools/errors.d.ts +33 -0
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +72 -1
- package/dist/tools/index.cjs +15 -1
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +13 -2
- 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 +4 -10
- package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
- 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/implementations/search-history-tool.js +1 -1
- package/dist/tools/internal-tools/provider.cjs +175 -31
- package/dist/tools/internal-tools/provider.d.ts +62 -14
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +176 -32
- package/dist/tools/internal-tools/registry.cjs +19 -43
- package/dist/tools/internal-tools/registry.d.ts +32 -11
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +20 -44
- package/dist/tools/schemas.cjs +36 -6
- package/dist/tools/schemas.d.ts +74 -5
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +30 -6
- package/dist/tools/tool-manager.cjs +279 -30
- package/dist/tools/tool-manager.d.ts +45 -4
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +284 -31
- package/dist/tools/types.d.ts +63 -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 +20 -2
- package/dist/utils/async-context.js +1 -1
- package/dist/utils/debug.js +1 -1
- package/dist/{llm/tokenizer/anthropic.cjs → utils/defer.cjs} +19 -20
- package/dist/utils/defer.d.ts +63 -0
- package/dist/utils/defer.d.ts.map +1 -0
- package/dist/utils/defer.js +19 -0
- package/dist/utils/error-conversion.js +1 -1
- package/dist/utils/execution-context.js +1 -1
- package/dist/utils/fs-walk.js +1 -1
- package/dist/utils/index.cjs +3 -3
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/path.js +1 -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 +19 -4
- package/dist/utils/result.js +1 -1
- package/dist/utils/safe-stringify.js +1 -1
- package/dist/utils/schema-metadata.js +1 -1
- package/dist/utils/schema.js +1 -1
- package/dist/utils/service-initializer.cjs +15 -37
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +16 -38
- package/dist/utils/user-info.js +1 -1
- package/dist/utils/zod-schema-converter.js +1 -1
- package/package.json +10 -8
- package/dist/context/compression/middle-removal.cjs +0 -95
- package/dist/context/compression/middle-removal.d.ts +0 -47
- package/dist/context/compression/middle-removal.d.ts.map +0 -1
- package/dist/context/compression/middle-removal.js +0 -72
- package/dist/context/compression/oldest-removal.cjs +0 -83
- package/dist/context/compression/oldest-removal.d.ts +0 -42
- package/dist/context/compression/oldest-removal.d.ts.map +0 -1
- package/dist/context/compression/oldest-removal.js +0 -60
- package/dist/context/compression/types.d.ts +0 -18
- package/dist/context/compression/types.d.ts.map +0 -1
- package/dist/llm/formatters/anthropic.cjs +0 -257
- package/dist/llm/formatters/anthropic.d.ts +0 -46
- package/dist/llm/formatters/anthropic.d.ts.map +0 -1
- package/dist/llm/formatters/anthropic.js +0 -239
- package/dist/llm/formatters/factory.cjs +0 -50
- package/dist/llm/formatters/factory.d.ts +0 -10
- package/dist/llm/formatters/factory.d.ts.map +0 -1
- package/dist/llm/formatters/factory.js +0 -27
- package/dist/llm/formatters/openai.cjs +0 -203
- package/dist/llm/formatters/openai.d.ts +0 -39
- package/dist/llm/formatters/openai.d.ts.map +0 -1
- package/dist/llm/formatters/openai.js +0 -184
- package/dist/llm/formatters/types.d.ts +0 -41
- package/dist/llm/formatters/types.d.ts.map +0 -1
- package/dist/llm/services/anthropic.cjs +0 -511
- package/dist/llm/services/anthropic.d.ts +0 -48
- package/dist/llm/services/anthropic.d.ts.map +0 -1
- package/dist/llm/services/anthropic.js +0 -447
- package/dist/llm/services/openai.cjs +0 -611
- package/dist/llm/services/openai.d.ts +0 -48
- package/dist/llm/services/openai.d.ts.map +0 -1
- package/dist/llm/services/openai.js +0 -547
- package/dist/llm/tokenizer/anthropic.d.ts +0 -19
- package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
- package/dist/llm/tokenizer/anthropic.js +0 -20
- package/dist/llm/tokenizer/default.d.ts +0 -14
- package/dist/llm/tokenizer/default.d.ts.map +0 -1
- package/dist/llm/tokenizer/default.js +0 -18
- package/dist/llm/tokenizer/factory.d.ts +0 -12
- package/dist/llm/tokenizer/factory.d.ts.map +0 -1
- package/dist/llm/tokenizer/factory.js +0 -21
- package/dist/llm/tokenizer/google.d.ts +0 -29
- package/dist/llm/tokenizer/google.d.ts.map +0 -1
- package/dist/llm/tokenizer/google.js +0 -29
- package/dist/llm/tokenizer/openai.cjs +0 -115
- package/dist/llm/tokenizer/openai.d.ts +0 -41
- package/dist/llm/tokenizer/openai.d.ts.map +0 -1
- package/dist/llm/tokenizer/openai.js +0 -91
- package/dist/llm/tokenizer/types.d.ts +0 -18
- package/dist/llm/tokenizer/types.d.ts.map +0 -1
- package/dist/llm/tokenizer/types.js +0 -10
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -106
- 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 -73
- 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 -62
- 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 -39
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -57
- 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 -34
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -71
- 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 -48
- 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 -55
- 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 -32
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -56
- 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 -33
- 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
- /package/dist/{llm/formatters → context/compaction}/types.js +0 -0
- /package/dist/{llm/formatters → image}/types.cjs +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { InternalTool } from './types.js';
|
|
2
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
3
|
+
import type { DextoAgent } from '../agent/DextoAgent.js';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { BaseRegistry } from '../providers/base-registry.js';
|
|
6
|
+
/**
|
|
7
|
+
* Context passed to custom tool providers when creating tools.
|
|
8
|
+
* Provides access to the agent instance for bidirectional communication.
|
|
9
|
+
*
|
|
10
|
+
* **Bidirectional Services Pattern:**
|
|
11
|
+
* Some services need both:
|
|
12
|
+
* - Agent → Service: LLM calls tools that invoke service methods
|
|
13
|
+
* - Service → Agent: Service emits events that trigger agent invocation
|
|
14
|
+
*
|
|
15
|
+
* Implementation pattern:
|
|
16
|
+
* ```typescript
|
|
17
|
+
* create: (config, context) => {
|
|
18
|
+
* const service = new MyService(config, context.logger);
|
|
19
|
+
*
|
|
20
|
+
* // Wire up Service → Agent communication
|
|
21
|
+
* service.on('event', async (data) => {
|
|
22
|
+
* await context.agent.sendMessage({
|
|
23
|
+
* role: 'user',
|
|
24
|
+
* content: data.prompt,
|
|
25
|
+
* });
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* // Return Agent → Service tools
|
|
29
|
+
* return [createMyTool(service)];
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* **Future Consideration:**
|
|
34
|
+
* For complex event routing or decoupled architectures, consider using an Event Bus pattern
|
|
35
|
+
* where services emit events to a central bus and the agent/app subscribes. This would
|
|
36
|
+
* provide better separation of concerns at the cost of more indirection and complexity.
|
|
37
|
+
*/
|
|
38
|
+
export interface ToolCreationContext {
|
|
39
|
+
logger: IDextoLogger;
|
|
40
|
+
agent: DextoAgent;
|
|
41
|
+
/**
|
|
42
|
+
* Optional services available to custom tool providers.
|
|
43
|
+
* Includes approvalManager for tools that need approval flows.
|
|
44
|
+
*/
|
|
45
|
+
services?: {
|
|
46
|
+
searchService?: any;
|
|
47
|
+
approvalManager?: any;
|
|
48
|
+
fileSystemService?: any;
|
|
49
|
+
processService?: any;
|
|
50
|
+
resourceManager?: any;
|
|
51
|
+
[key: string]: any;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Custom tool provider interface.
|
|
56
|
+
* Allows external code to register tool providers that create one or more tools.
|
|
57
|
+
* Mirrors the BlobStoreProvider pattern for consistency.
|
|
58
|
+
*
|
|
59
|
+
* @template TType - The provider type discriminator (must match config.type)
|
|
60
|
+
* @template TConfig - The provider configuration type (must include { type: TType })
|
|
61
|
+
*/
|
|
62
|
+
export interface CustomToolProvider<TType extends string = string, TConfig extends {
|
|
63
|
+
type: TType;
|
|
64
|
+
} = any> {
|
|
65
|
+
/** Unique type identifier matching the discriminator in config */
|
|
66
|
+
type: TType;
|
|
67
|
+
/** Zod schema for runtime validation of provider configuration */
|
|
68
|
+
configSchema: z.ZodType<TConfig, any, any>;
|
|
69
|
+
/**
|
|
70
|
+
* Factory function to create tools from validated configuration
|
|
71
|
+
* @param config - Validated configuration matching configSchema
|
|
72
|
+
* @param context - Tool creation context with logger and optional services
|
|
73
|
+
* @returns Array of tools to register
|
|
74
|
+
*/
|
|
75
|
+
create(config: TConfig, context: ToolCreationContext): InternalTool[];
|
|
76
|
+
/** Optional metadata for display and categorization */
|
|
77
|
+
metadata?: {
|
|
78
|
+
displayName: string;
|
|
79
|
+
description: string;
|
|
80
|
+
category?: string;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Registry for custom tool providers.
|
|
85
|
+
* Mirrors BlobStoreRegistry pattern for consistency across Dexto provider system.
|
|
86
|
+
*
|
|
87
|
+
* Custom tool providers can be registered from external code (CLI, apps, examples)
|
|
88
|
+
* and are validated at runtime using their Zod schemas.
|
|
89
|
+
*
|
|
90
|
+
* Extends BaseRegistry for common registry functionality.
|
|
91
|
+
*
|
|
92
|
+
* When a provider is registered, its config schema is also registered in the
|
|
93
|
+
* customToolSchemaRegistry for early validation at config load time.
|
|
94
|
+
*/
|
|
95
|
+
export declare class CustomToolRegistry extends BaseRegistry<CustomToolProvider> {
|
|
96
|
+
constructor();
|
|
97
|
+
/**
|
|
98
|
+
* Register a custom tool provider.
|
|
99
|
+
* Also registers the provider's config schema for early validation.
|
|
100
|
+
*
|
|
101
|
+
* @param provider - The custom tool provider to register
|
|
102
|
+
* @throws Error if a provider with the same type is already registered
|
|
103
|
+
*/
|
|
104
|
+
register(provider: CustomToolProvider): void;
|
|
105
|
+
/**
|
|
106
|
+
* Unregister a custom tool provider.
|
|
107
|
+
* Note: This does NOT unregister the schema from customToolSchemaRegistry
|
|
108
|
+
* to avoid breaking active configs that reference the schema.
|
|
109
|
+
*
|
|
110
|
+
* @param type - The provider type to unregister
|
|
111
|
+
* @returns true if the provider was unregistered, false if it wasn't registered
|
|
112
|
+
*/
|
|
113
|
+
unregister(type: string): boolean;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Global singleton instance of the custom tool registry.
|
|
117
|
+
* Custom tool providers should be registered at application startup.
|
|
118
|
+
*/
|
|
119
|
+
export declare const customToolRegistry: CustomToolRegistry;
|
|
120
|
+
//# sourceMappingURL=custom-tool-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-tool-registry.d.ts","sourceRoot":"","sources":["../../src/tools/custom-tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAA6B,MAAM,+BAA+B,CAAC;AAGxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE;QACP,aAAa,CAAC,EAAE,GAAG,CAAC;QACpB,eAAe,CAAC,EAAE,GAAG,CAAC;QACtB,iBAAiB,CAAC,EAAE,GAAG,CAAC;QACxB,cAAc,CAAC,EAAE,GAAG,CAAC;QACrB,eAAe,CAAC,EAAE,GAAG,CAAC;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACtB,CAAC;CACL;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB,CAC/B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAAG,GAAG;IAErC,kEAAkE;IAClE,IAAI,EAAE,KAAK,CAAC;IAEZ,kEAAkE;IAClE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE3C;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,GAAG,YAAY,EAAE,CAAC;IAEtE,uDAAuD;IACvD,QAAQ,CAAC,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAYD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,kBAAkB,CAAC;;IAKpE;;;;;;OAMG;IACM,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAQrD;;;;;;;OAOG;IACM,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAK7C;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
|
+
import { ToolError } from "./errors.js";
|
|
3
|
+
import { BaseRegistry } from "../providers/base-registry.js";
|
|
4
|
+
import { customToolSchemaRegistry } from "./custom-tool-schema-registry.js";
|
|
5
|
+
const customToolErrorFactory = {
|
|
6
|
+
alreadyRegistered: (type) => ToolError.customToolProviderAlreadyRegistered(type),
|
|
7
|
+
notFound: (type, availableTypes) => ToolError.unknownCustomToolProvider(type, availableTypes)
|
|
8
|
+
};
|
|
9
|
+
class CustomToolRegistry extends BaseRegistry {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(customToolErrorFactory);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Register a custom tool provider.
|
|
15
|
+
* Also registers the provider's config schema for early validation.
|
|
16
|
+
*
|
|
17
|
+
* @param provider - The custom tool provider to register
|
|
18
|
+
* @throws Error if a provider with the same type is already registered
|
|
19
|
+
*/
|
|
20
|
+
register(provider) {
|
|
21
|
+
super.register(provider);
|
|
22
|
+
customToolSchemaRegistry.register(provider.type, provider.configSchema);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Unregister a custom tool provider.
|
|
26
|
+
* Note: This does NOT unregister the schema from customToolSchemaRegistry
|
|
27
|
+
* to avoid breaking active configs that reference the schema.
|
|
28
|
+
*
|
|
29
|
+
* @param type - The provider type to unregister
|
|
30
|
+
* @returns true if the provider was unregistered, false if it wasn't registered
|
|
31
|
+
*/
|
|
32
|
+
unregister(type) {
|
|
33
|
+
return super.unregister(type);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const customToolRegistry = new CustomToolRegistry();
|
|
37
|
+
export {
|
|
38
|
+
CustomToolRegistry,
|
|
39
|
+
customToolRegistry
|
|
40
|
+
};
|
|
@@ -0,0 +1,164 @@
|
|
|
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 custom_tool_schema_registry_exports = {};
|
|
20
|
+
__export(custom_tool_schema_registry_exports, {
|
|
21
|
+
customToolSchemaRegistry: () => customToolSchemaRegistry,
|
|
22
|
+
getCustomToolSchemaRegistry: () => getCustomToolSchemaRegistry
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(custom_tool_schema_registry_exports);
|
|
25
|
+
var import_zod = require("zod");
|
|
26
|
+
var import_types = require("../logger/v2/types.js");
|
|
27
|
+
const createNoOpLogger = () => {
|
|
28
|
+
const noOpLogger = {
|
|
29
|
+
debug: () => {
|
|
30
|
+
},
|
|
31
|
+
info: () => {
|
|
32
|
+
},
|
|
33
|
+
warn: () => {
|
|
34
|
+
},
|
|
35
|
+
error: () => {
|
|
36
|
+
},
|
|
37
|
+
silly: () => {
|
|
38
|
+
},
|
|
39
|
+
trackException: () => {
|
|
40
|
+
},
|
|
41
|
+
setLevel: () => {
|
|
42
|
+
},
|
|
43
|
+
getLevel: () => "info",
|
|
44
|
+
getLogFilePath: () => null,
|
|
45
|
+
destroy: () => Promise.resolve(),
|
|
46
|
+
createChild: () => noOpLogger
|
|
47
|
+
};
|
|
48
|
+
return noOpLogger;
|
|
49
|
+
};
|
|
50
|
+
class CustomToolSchemaRegistry {
|
|
51
|
+
schemas = /* @__PURE__ */ new Map();
|
|
52
|
+
logger;
|
|
53
|
+
constructor(logger) {
|
|
54
|
+
this.logger = logger;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Register a provider's config schema.
|
|
58
|
+
* Called automatically when a custom tool provider is registered.
|
|
59
|
+
*
|
|
60
|
+
* @param type Provider type (must match the 'type' field in config)
|
|
61
|
+
* @param schema Zod schema for the provider's configuration
|
|
62
|
+
*
|
|
63
|
+
* @throws Error if schema is already registered for this type
|
|
64
|
+
*/
|
|
65
|
+
register(type, schema) {
|
|
66
|
+
if (this.schemas.has(type)) {
|
|
67
|
+
throw new Error(`Config schema already registered for provider type: ${type}`);
|
|
68
|
+
}
|
|
69
|
+
this.schemas.set(type, schema);
|
|
70
|
+
this.logger.debug(`Registered config schema for provider: ${type}`);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get a provider's config schema.
|
|
74
|
+
*
|
|
75
|
+
* @param type Provider type
|
|
76
|
+
* @returns The registered schema, or undefined if not found
|
|
77
|
+
*/
|
|
78
|
+
get(type) {
|
|
79
|
+
return this.schemas.get(type);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Check if a provider type has a registered schema.
|
|
83
|
+
*
|
|
84
|
+
* @param type Provider type
|
|
85
|
+
* @returns true if schema is registered
|
|
86
|
+
*/
|
|
87
|
+
has(type) {
|
|
88
|
+
return this.schemas.has(type);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get all registered provider types.
|
|
92
|
+
*
|
|
93
|
+
* @returns Array of provider type strings
|
|
94
|
+
*/
|
|
95
|
+
getRegisteredTypes() {
|
|
96
|
+
return Array.from(this.schemas.keys());
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Create a discriminated union schema for all registered providers.
|
|
100
|
+
* This enables early validation of provider-specific fields at config load time.
|
|
101
|
+
*
|
|
102
|
+
* The union is discriminated by the 'type' field, which provides better error
|
|
103
|
+
* messages when validation fails.
|
|
104
|
+
*
|
|
105
|
+
* @returns Discriminated union schema if providers are registered,
|
|
106
|
+
* passthrough schema otherwise (for backward compatibility)
|
|
107
|
+
*/
|
|
108
|
+
createUnionSchema() {
|
|
109
|
+
const types = this.getRegisteredTypes();
|
|
110
|
+
if (types.length === 0) {
|
|
111
|
+
this.logger.debug(
|
|
112
|
+
"No provider schemas registered - using passthrough schema for custom tools"
|
|
113
|
+
);
|
|
114
|
+
return import_zod.z.object({
|
|
115
|
+
type: import_zod.z.string().describe("Custom tool provider type")
|
|
116
|
+
}).passthrough().describe(
|
|
117
|
+
"Custom tool provider configuration (no schemas registered - validation deferred to runtime)"
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
const schemas = [];
|
|
121
|
+
for (const type of types) {
|
|
122
|
+
const schema = this.get(type);
|
|
123
|
+
if (schema) {
|
|
124
|
+
schemas.push(schema);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (schemas.length === 0) {
|
|
128
|
+
this.logger.warn("No schemas found despite having registered types");
|
|
129
|
+
return import_zod.z.object({
|
|
130
|
+
type: import_zod.z.string()
|
|
131
|
+
}).passthrough();
|
|
132
|
+
}
|
|
133
|
+
if (schemas.length === 1) {
|
|
134
|
+
this.logger.debug(`Using single provider schema: ${types[0]}`);
|
|
135
|
+
return schemas[0];
|
|
136
|
+
}
|
|
137
|
+
this.logger.debug(
|
|
138
|
+
`Creating union schema for ${schemas.length} providers: ${types.join(", ")}`
|
|
139
|
+
);
|
|
140
|
+
return import_zod.z.union(schemas);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Clear all registered schemas.
|
|
144
|
+
* Primarily used for testing.
|
|
145
|
+
*/
|
|
146
|
+
clear() {
|
|
147
|
+
this.schemas.clear();
|
|
148
|
+
this.logger.debug("Cleared all registered provider schemas");
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
let globalInstance;
|
|
152
|
+
function getCustomToolSchemaRegistry(logger) {
|
|
153
|
+
if (!globalInstance) {
|
|
154
|
+
const registryLogger = logger ? logger.createChild(import_types.DextoLogComponent.TOOLS) : createNoOpLogger();
|
|
155
|
+
globalInstance = new CustomToolSchemaRegistry(registryLogger);
|
|
156
|
+
}
|
|
157
|
+
return globalInstance;
|
|
158
|
+
}
|
|
159
|
+
const customToolSchemaRegistry = getCustomToolSchemaRegistry();
|
|
160
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
161
|
+
0 && (module.exports = {
|
|
162
|
+
customToolSchemaRegistry,
|
|
163
|
+
getCustomToolSchemaRegistry
|
|
164
|
+
});
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Tool Schema Registry
|
|
3
|
+
*
|
|
4
|
+
* Registry for custom tool provider configuration schemas.
|
|
5
|
+
* Allows core to validate provider-specific fields at config load time
|
|
6
|
+
* by building a discriminated union of all registered schemas.
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* 1. Providers register their config schemas when they register with customToolRegistry
|
|
10
|
+
* 2. Core uses this registry to build a discriminated union schema at runtime
|
|
11
|
+
* 3. Agent config validation uses the union to validate provider-specific fields early
|
|
12
|
+
*
|
|
13
|
+
* Benefits:
|
|
14
|
+
* - Early validation (at config load time, not runtime)
|
|
15
|
+
* - Type safety (full Zod validation for all provider fields)
|
|
16
|
+
* - IDE support (TypeScript knows all provider fields)
|
|
17
|
+
* - Single source of truth (provider schema defines everything)
|
|
18
|
+
*/
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
21
|
+
declare class CustomToolSchemaRegistry {
|
|
22
|
+
private schemas;
|
|
23
|
+
private logger;
|
|
24
|
+
constructor(logger: IDextoLogger);
|
|
25
|
+
/**
|
|
26
|
+
* Register a provider's config schema.
|
|
27
|
+
* Called automatically when a custom tool provider is registered.
|
|
28
|
+
*
|
|
29
|
+
* @param type Provider type (must match the 'type' field in config)
|
|
30
|
+
* @param schema Zod schema for the provider's configuration
|
|
31
|
+
*
|
|
32
|
+
* @throws Error if schema is already registered for this type
|
|
33
|
+
*/
|
|
34
|
+
register<T extends z.ZodType<any>>(type: string, schema: T): void;
|
|
35
|
+
/**
|
|
36
|
+
* Get a provider's config schema.
|
|
37
|
+
*
|
|
38
|
+
* @param type Provider type
|
|
39
|
+
* @returns The registered schema, or undefined if not found
|
|
40
|
+
*/
|
|
41
|
+
get(type: string): z.ZodType<any> | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Check if a provider type has a registered schema.
|
|
44
|
+
*
|
|
45
|
+
* @param type Provider type
|
|
46
|
+
* @returns true if schema is registered
|
|
47
|
+
*/
|
|
48
|
+
has(type: string): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Get all registered provider types.
|
|
51
|
+
*
|
|
52
|
+
* @returns Array of provider type strings
|
|
53
|
+
*/
|
|
54
|
+
getRegisteredTypes(): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Create a discriminated union schema for all registered providers.
|
|
57
|
+
* This enables early validation of provider-specific fields at config load time.
|
|
58
|
+
*
|
|
59
|
+
* The union is discriminated by the 'type' field, which provides better error
|
|
60
|
+
* messages when validation fails.
|
|
61
|
+
*
|
|
62
|
+
* @returns Discriminated union schema if providers are registered,
|
|
63
|
+
* passthrough schema otherwise (for backward compatibility)
|
|
64
|
+
*/
|
|
65
|
+
createUnionSchema(): z.ZodType<any>;
|
|
66
|
+
/**
|
|
67
|
+
* Clear all registered schemas.
|
|
68
|
+
* Primarily used for testing.
|
|
69
|
+
*/
|
|
70
|
+
clear(): void;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get the global custom tool schema registry instance.
|
|
74
|
+
* Creates it on first access with the provided logger.
|
|
75
|
+
*
|
|
76
|
+
* @param logger Optional logger for the registry (only used on first access)
|
|
77
|
+
* @returns The global registry instance
|
|
78
|
+
*/
|
|
79
|
+
export declare function getCustomToolSchemaRegistry(logger?: IDextoLogger): CustomToolSchemaRegistry;
|
|
80
|
+
/**
|
|
81
|
+
* Global custom tool schema registry instance.
|
|
82
|
+
* Use this for registering and retrieving provider config schemas.
|
|
83
|
+
*/
|
|
84
|
+
export declare const customToolSchemaRegistry: CustomToolSchemaRegistry;
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=custom-tool-schema-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-tool-schema-registry.d.ts","sourceRoot":"","sources":["../../src/tools/custom-tool-schema-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA8B1D,cAAM,wBAAwB;IAC1B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAIhC;;;;;;;;OAQG;IACH,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAQjE;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS;IAI7C;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;;;;;;;;OASG;IACH,iBAAiB,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAsDnC;;;OAGG;IACH,KAAK,IAAI,IAAI;CAIhB;AAMD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,wBAAwB,CAQ3F;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,0BAAgC,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { DextoLogComponent } from "../logger/v2/types.js";
|
|
4
|
+
const createNoOpLogger = () => {
|
|
5
|
+
const noOpLogger = {
|
|
6
|
+
debug: () => {
|
|
7
|
+
},
|
|
8
|
+
info: () => {
|
|
9
|
+
},
|
|
10
|
+
warn: () => {
|
|
11
|
+
},
|
|
12
|
+
error: () => {
|
|
13
|
+
},
|
|
14
|
+
silly: () => {
|
|
15
|
+
},
|
|
16
|
+
trackException: () => {
|
|
17
|
+
},
|
|
18
|
+
setLevel: () => {
|
|
19
|
+
},
|
|
20
|
+
getLevel: () => "info",
|
|
21
|
+
getLogFilePath: () => null,
|
|
22
|
+
destroy: () => Promise.resolve(),
|
|
23
|
+
createChild: () => noOpLogger
|
|
24
|
+
};
|
|
25
|
+
return noOpLogger;
|
|
26
|
+
};
|
|
27
|
+
class CustomToolSchemaRegistry {
|
|
28
|
+
schemas = /* @__PURE__ */ new Map();
|
|
29
|
+
logger;
|
|
30
|
+
constructor(logger) {
|
|
31
|
+
this.logger = logger;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Register a provider's config schema.
|
|
35
|
+
* Called automatically when a custom tool provider is registered.
|
|
36
|
+
*
|
|
37
|
+
* @param type Provider type (must match the 'type' field in config)
|
|
38
|
+
* @param schema Zod schema for the provider's configuration
|
|
39
|
+
*
|
|
40
|
+
* @throws Error if schema is already registered for this type
|
|
41
|
+
*/
|
|
42
|
+
register(type, schema) {
|
|
43
|
+
if (this.schemas.has(type)) {
|
|
44
|
+
throw new Error(`Config schema already registered for provider type: ${type}`);
|
|
45
|
+
}
|
|
46
|
+
this.schemas.set(type, schema);
|
|
47
|
+
this.logger.debug(`Registered config schema for provider: ${type}`);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get a provider's config schema.
|
|
51
|
+
*
|
|
52
|
+
* @param type Provider type
|
|
53
|
+
* @returns The registered schema, or undefined if not found
|
|
54
|
+
*/
|
|
55
|
+
get(type) {
|
|
56
|
+
return this.schemas.get(type);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check if a provider type has a registered schema.
|
|
60
|
+
*
|
|
61
|
+
* @param type Provider type
|
|
62
|
+
* @returns true if schema is registered
|
|
63
|
+
*/
|
|
64
|
+
has(type) {
|
|
65
|
+
return this.schemas.has(type);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get all registered provider types.
|
|
69
|
+
*
|
|
70
|
+
* @returns Array of provider type strings
|
|
71
|
+
*/
|
|
72
|
+
getRegisteredTypes() {
|
|
73
|
+
return Array.from(this.schemas.keys());
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create a discriminated union schema for all registered providers.
|
|
77
|
+
* This enables early validation of provider-specific fields at config load time.
|
|
78
|
+
*
|
|
79
|
+
* The union is discriminated by the 'type' field, which provides better error
|
|
80
|
+
* messages when validation fails.
|
|
81
|
+
*
|
|
82
|
+
* @returns Discriminated union schema if providers are registered,
|
|
83
|
+
* passthrough schema otherwise (for backward compatibility)
|
|
84
|
+
*/
|
|
85
|
+
createUnionSchema() {
|
|
86
|
+
const types = this.getRegisteredTypes();
|
|
87
|
+
if (types.length === 0) {
|
|
88
|
+
this.logger.debug(
|
|
89
|
+
"No provider schemas registered - using passthrough schema for custom tools"
|
|
90
|
+
);
|
|
91
|
+
return z.object({
|
|
92
|
+
type: z.string().describe("Custom tool provider type")
|
|
93
|
+
}).passthrough().describe(
|
|
94
|
+
"Custom tool provider configuration (no schemas registered - validation deferred to runtime)"
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
const schemas = [];
|
|
98
|
+
for (const type of types) {
|
|
99
|
+
const schema = this.get(type);
|
|
100
|
+
if (schema) {
|
|
101
|
+
schemas.push(schema);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (schemas.length === 0) {
|
|
105
|
+
this.logger.warn("No schemas found despite having registered types");
|
|
106
|
+
return z.object({
|
|
107
|
+
type: z.string()
|
|
108
|
+
}).passthrough();
|
|
109
|
+
}
|
|
110
|
+
if (schemas.length === 1) {
|
|
111
|
+
this.logger.debug(`Using single provider schema: ${types[0]}`);
|
|
112
|
+
return schemas[0];
|
|
113
|
+
}
|
|
114
|
+
this.logger.debug(
|
|
115
|
+
`Creating union schema for ${schemas.length} providers: ${types.join(", ")}`
|
|
116
|
+
);
|
|
117
|
+
return z.union(schemas);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Clear all registered schemas.
|
|
121
|
+
* Primarily used for testing.
|
|
122
|
+
*/
|
|
123
|
+
clear() {
|
|
124
|
+
this.schemas.clear();
|
|
125
|
+
this.logger.debug("Cleared all registered provider schemas");
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
let globalInstance;
|
|
129
|
+
function getCustomToolSchemaRegistry(logger) {
|
|
130
|
+
if (!globalInstance) {
|
|
131
|
+
const registryLogger = logger ? logger.createChild(DextoLogComponent.TOOLS) : createNoOpLogger();
|
|
132
|
+
globalInstance = new CustomToolSchemaRegistry(registryLogger);
|
|
133
|
+
}
|
|
134
|
+
return globalInstance;
|
|
135
|
+
}
|
|
136
|
+
const customToolSchemaRegistry = getCustomToolSchemaRegistry();
|
|
137
|
+
export {
|
|
138
|
+
customToolSchemaRegistry,
|
|
139
|
+
getCustomToolSchemaRegistry
|
|
140
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
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 display_types_exports = {};
|
|
20
|
+
__export(display_types_exports, {
|
|
21
|
+
isDiffDisplay: () => isDiffDisplay,
|
|
22
|
+
isFileDisplay: () => isFileDisplay,
|
|
23
|
+
isGenericDisplay: () => isGenericDisplay,
|
|
24
|
+
isSearchDisplay: () => isSearchDisplay,
|
|
25
|
+
isShellDisplay: () => isShellDisplay,
|
|
26
|
+
isValidDisplayData: () => isValidDisplayData
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(display_types_exports);
|
|
29
|
+
function isDiffDisplay(d) {
|
|
30
|
+
return d.type === "diff";
|
|
31
|
+
}
|
|
32
|
+
function isShellDisplay(d) {
|
|
33
|
+
return d.type === "shell";
|
|
34
|
+
}
|
|
35
|
+
function isSearchDisplay(d) {
|
|
36
|
+
return d.type === "search";
|
|
37
|
+
}
|
|
38
|
+
function isFileDisplay(d) {
|
|
39
|
+
return d.type === "file";
|
|
40
|
+
}
|
|
41
|
+
function isGenericDisplay(d) {
|
|
42
|
+
return d.type === "generic";
|
|
43
|
+
}
|
|
44
|
+
const VALID_DISPLAY_TYPES = ["diff", "shell", "search", "file", "generic"];
|
|
45
|
+
function isValidDisplayData(d) {
|
|
46
|
+
if (d === null || typeof d !== "object") {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
const obj = d;
|
|
50
|
+
return typeof obj.type === "string" && VALID_DISPLAY_TYPES.includes(obj.type);
|
|
51
|
+
}
|
|
52
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
+
0 && (module.exports = {
|
|
54
|
+
isDiffDisplay,
|
|
55
|
+
isFileDisplay,
|
|
56
|
+
isGenericDisplay,
|
|
57
|
+
isSearchDisplay,
|
|
58
|
+
isShellDisplay,
|
|
59
|
+
isValidDisplayData
|
|
60
|
+
});
|