@dexto/core 1.2.4 → 1.2.6
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 +60 -0
- package/dist/agent/DextoAgent.cjs +579 -345
- package/dist/agent/DextoAgent.d.ts +131 -83
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +573 -336
- package/dist/agent/agentCard.cjs +4 -2
- package/dist/agent/agentCard.d.ts +0 -1
- package/dist/agent/agentCard.d.ts.map +1 -1
- package/dist/agent/agentCard.js +4 -2
- package/dist/agent/index.cjs +3 -7
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +7 -6
- package/dist/agent/schemas.cjs +179 -75
- package/dist/agent/schemas.d.ts +2678 -586
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +172 -65
- package/dist/agent/state-manager.cjs +28 -23
- package/dist/agent/state-manager.d.ts +4 -1
- package/dist/agent/state-manager.d.ts.map +1 -1
- package/dist/agent/state-manager.js +28 -23
- package/dist/{preferences/constants.cjs → agent/types.cjs} +2 -14
- package/dist/agent/types.d.ts +54 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +0 -0
- package/dist/approval/errors.cjs +89 -8
- package/dist/approval/errors.d.ts +5 -3
- package/dist/approval/errors.d.ts.map +1 -1
- package/dist/approval/errors.js +89 -8
- package/dist/approval/{providers/factory.d.ts → factory.d.ts} +2 -2
- package/dist/approval/factory.d.ts.map +1 -0
- package/dist/approval/{providers/factory.js → factory.js} +1 -1
- package/dist/approval/index.cjs +4 -6
- package/dist/approval/index.d.ts +3 -5
- package/dist/approval/index.d.ts.map +1 -1
- package/dist/approval/index.js +4 -5
- package/dist/approval/manager.cjs +140 -37
- package/dist/approval/manager.d.ts +56 -17
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +141 -38
- package/dist/approval/schemas.cjs +9 -1
- package/dist/approval/schemas.d.ts +120 -35
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +9 -2
- package/dist/approval/types.cjs +14 -2
- package/dist/approval/types.d.ts +64 -12
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +12 -1
- package/dist/context/compression/middle-removal.cjs +11 -11
- package/dist/context/compression/middle-removal.d.ts +3 -1
- package/dist/context/compression/middle-removal.d.ts.map +1 -1
- package/dist/context/compression/middle-removal.js +11 -11
- package/dist/context/compression/oldest-removal.cjs +18 -5
- package/dist/context/compression/oldest-removal.d.ts +3 -1
- package/dist/context/compression/oldest-removal.d.ts.map +1 -1
- package/dist/context/compression/oldest-removal.js +18 -5
- package/dist/context/manager.cjs +94 -67
- package/dist/context/manager.d.ts +13 -10
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +94 -67
- package/dist/context/utils.cjs +79 -65
- package/dist/context/utils.d.ts +15 -12
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +45 -31
- package/dist/errors/DextoRuntimeError.d.ts +5 -5
- package/dist/errors/DextoRuntimeError.d.ts.map +1 -1
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts +5 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +1 -2
- package/dist/errors/types.cjs +1 -2
- package/dist/errors/types.d.ts +5 -8
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +1 -2
- package/dist/events/index.cjs +125 -55
- package/dist/events/index.d.ts +204 -97
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +123 -55
- package/dist/filesystem/filesystem-service.cjs +40 -30
- package/dist/filesystem/filesystem-service.d.ts +9 -1
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +40 -30
- package/dist/filesystem/path-validator.cjs +4 -3
- package/dist/filesystem/path-validator.d.ts +3 -1
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +4 -3
- package/dist/filesystem/types.d.ts +3 -3
- package/dist/filesystem/types.d.ts.map +1 -1
- package/dist/index.browser.cjs +7 -0
- package/dist/index.browser.d.ts +2 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +4 -0
- package/dist/index.cjs +0 -7
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/llm/formatters/anthropic.cjs +32 -21
- package/dist/llm/formatters/anthropic.d.ts +3 -0
- package/dist/llm/formatters/anthropic.d.ts.map +1 -1
- package/dist/llm/formatters/anthropic.js +32 -21
- package/dist/llm/formatters/factory.cjs +6 -7
- package/dist/llm/formatters/factory.d.ts +2 -1
- package/dist/llm/formatters/factory.d.ts.map +1 -1
- package/dist/llm/formatters/factory.js +4 -5
- package/dist/llm/formatters/openai.cjs +38 -9
- package/dist/llm/formatters/openai.d.ts +3 -0
- package/dist/llm/formatters/openai.d.ts.map +1 -1
- package/dist/llm/formatters/openai.js +38 -9
- package/dist/llm/formatters/vercel.cjs +49 -8
- package/dist/llm/formatters/vercel.d.ts +3 -0
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +49 -8
- package/dist/llm/registry.cjs +153 -17
- package/dist/llm/registry.d.ts +5 -2
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +143 -7
- package/dist/llm/resolver.cjs +4 -4
- package/dist/llm/resolver.d.ts +3 -2
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +4 -4
- package/dist/llm/schemas.cjs +6 -3
- package/dist/llm/schemas.d.ts +51 -17
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +5 -3
- package/dist/llm/services/anthropic.cjs +216 -183
- package/dist/llm/services/anthropic.d.ts +3 -1
- package/dist/llm/services/anthropic.d.ts.map +1 -1
- package/dist/llm/services/anthropic.js +217 -184
- package/dist/llm/services/factory.cjs +15 -9
- package/dist/llm/services/factory.d.ts +2 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +15 -9
- package/dist/llm/services/openai.cjs +262 -225
- package/dist/llm/services/openai.d.ts +3 -1
- package/dist/llm/services/openai.d.ts.map +1 -1
- package/dist/llm/services/openai.js +263 -226
- package/dist/llm/services/test-utils.integration.cjs +58 -12
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +58 -12
- package/dist/llm/services/types.d.ts +9 -0
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +163 -111
- package/dist/llm/services/vercel.d.ts +3 -1
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +157 -105
- package/dist/llm/tokenizer/factory.cjs +2 -2
- package/dist/llm/tokenizer/factory.d.ts +3 -1
- package/dist/llm/tokenizer/factory.d.ts.map +1 -1
- package/dist/llm/tokenizer/factory.js +2 -2
- package/dist/llm/tokenizer/openai.cjs +16 -9
- package/dist/llm/tokenizer/openai.d.ts +4 -1
- package/dist/llm/tokenizer/openai.d.ts.map +1 -1
- package/dist/llm/tokenizer/openai.js +16 -9
- package/dist/llm/validation.cjs +8 -9
- package/dist/llm/validation.d.ts +3 -1
- package/dist/llm/validation.d.ts.map +1 -1
- package/dist/llm/validation.js +5 -6
- package/dist/logger/factory.cjs +54 -0
- package/dist/logger/factory.d.ts +36 -0
- package/dist/logger/factory.d.ts.map +1 -0
- package/dist/logger/factory.js +31 -0
- package/dist/logger/index.cjs +42 -3
- package/dist/logger/index.d.ts +17 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +26 -1
- package/dist/logger/logger.cjs +30 -17
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +30 -17
- package/dist/logger/v2/dexto-logger.cjs +141 -0
- package/dist/logger/v2/dexto-logger.d.ts +54 -0
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -0
- package/dist/logger/v2/dexto-logger.js +118 -0
- package/dist/{preferences → logger/v2}/error-codes.cjs +11 -10
- package/dist/logger/v2/error-codes.d.ts +13 -0
- package/dist/logger/v2/error-codes.d.ts.map +1 -0
- package/dist/logger/v2/error-codes.js +13 -0
- package/dist/logger/v2/errors.cjs +107 -0
- package/dist/logger/v2/errors.d.ts +32 -0
- package/dist/logger/v2/errors.d.ts.map +1 -0
- package/dist/logger/v2/errors.js +84 -0
- package/dist/logger/v2/schemas.cjs +57 -0
- package/dist/logger/v2/schemas.d.ts +147 -0
- package/dist/logger/v2/schemas.d.ts.map +1 -0
- package/dist/logger/v2/schemas.js +33 -0
- package/dist/logger/v2/transport-factory.cjs +53 -0
- package/dist/logger/v2/transport-factory.d.ts +21 -0
- package/dist/logger/v2/transport-factory.d.ts.map +1 -0
- package/dist/logger/v2/transport-factory.js +29 -0
- package/dist/logger/v2/transports/console-transport.cjs +79 -0
- package/dist/logger/v2/transports/console-transport.d.ts +23 -0
- package/dist/logger/v2/transports/console-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/console-transport.js +46 -0
- package/dist/logger/v2/transports/file-transport.cjs +161 -0
- package/dist/logger/v2/transports/file-transport.d.ts +46 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/file-transport.js +128 -0
- package/dist/logger/v2/types.cjs +49 -0
- package/dist/logger/v2/types.d.ts +123 -0
- package/dist/logger/v2/types.d.ts.map +1 -0
- package/dist/logger/v2/types.js +26 -0
- package/dist/mcp/manager.cjs +88 -78
- package/dist/mcp/manager.d.ts +3 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +88 -78
- package/dist/mcp/mcp-client.cjs +109 -79
- package/dist/mcp/mcp-client.d.ts +3 -0
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +102 -72
- package/dist/memory/index.cjs +2 -0
- package/dist/memory/index.d.ts +1 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +3 -1
- package/dist/memory/manager.cjs +9 -7
- package/dist/memory/manager.d.ts +3 -1
- package/dist/memory/manager.d.ts.map +1 -1
- package/dist/memory/manager.js +9 -7
- package/dist/memory/schemas.cjs +10 -0
- package/dist/memory/schemas.d.ts +37 -8
- package/dist/memory/schemas.d.ts.map +1 -1
- package/dist/memory/schemas.js +9 -0
- package/dist/plugins/manager.cjs +21 -19
- package/dist/plugins/manager.d.ts +3 -1
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +21 -19
- package/dist/plugins/schemas.d.ts +9 -9
- package/dist/plugins/types.d.ts +2 -2
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.cjs +30 -20
- package/dist/process/command-validator.d.ts +4 -1
- package/dist/process/command-validator.d.ts.map +1 -1
- package/dist/process/command-validator.js +30 -20
- package/dist/process/process-service.cjs +23 -21
- package/dist/process/process-service.d.ts +3 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +23 -21
- package/dist/prompts/index.cjs +6 -8
- package/dist/prompts/index.d.ts +2 -4
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +4 -6
- package/dist/prompts/prompt-manager.cjs +25 -20
- package/dist/prompts/prompt-manager.d.ts +3 -1
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +25 -20
- package/dist/prompts/providers/config-prompt-provider.cjs +331 -0
- package/dist/prompts/providers/config-prompt-provider.d.ts +34 -0
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -0
- package/dist/prompts/providers/config-prompt-provider.js +308 -0
- package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
- package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/custom-prompt-provider.js +11 -7
- package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
- package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
- package/dist/prompts/schemas.cjs +42 -23
- package/dist/prompts/schemas.d.ts +123 -14
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +39 -22
- package/dist/prompts/types.d.ts +1 -1
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.cjs +15 -11
- package/dist/resources/handlers/blob-handler.d.ts +3 -1
- package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.js +15 -11
- package/dist/resources/handlers/factory.cjs +3 -3
- package/dist/resources/handlers/factory.d.ts +2 -1
- package/dist/resources/handlers/factory.d.ts.map +1 -1
- package/dist/resources/handlers/factory.js +3 -3
- package/dist/resources/handlers/filesystem-handler.cjs +10 -8
- package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +10 -8
- package/dist/resources/internal-provider.cjs +28 -20
- package/dist/resources/internal-provider.d.ts +3 -1
- package/dist/resources/internal-provider.d.ts.map +1 -1
- package/dist/resources/internal-provider.js +28 -20
- package/dist/resources/manager.cjs +34 -25
- package/dist/resources/manager.d.ts +3 -1
- package/dist/resources/manager.d.ts.map +1 -1
- package/dist/resources/manager.js +34 -25
- package/dist/resources/schemas.d.ts +6 -6
- package/dist/search/search-service.cjs +8 -6
- package/dist/search/search-service.d.ts +3 -1
- package/dist/search/search-service.d.ts.map +1 -1
- package/dist/search/search-service.js +8 -6
- package/dist/session/chat-session.cjs +40 -27
- package/dist/session/chat-session.d.ts +10 -7
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +40 -27
- package/dist/session/history/database.cjs +18 -11
- package/dist/session/history/database.d.ts +3 -1
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +18 -11
- package/dist/session/history/factory.cjs +2 -2
- package/dist/session/history/factory.d.ts +5 -1
- package/dist/session/history/factory.d.ts.map +1 -1
- package/dist/session/history/factory.js +2 -2
- package/dist/session/session-manager.cjs +37 -53
- package/dist/session/session-manager.d.ts +3 -17
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +37 -53
- package/dist/session/title-generator.cjs +3 -2
- package/dist/session/title-generator.d.ts +2 -1
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +3 -2
- package/dist/storage/blob/factory.cjs +9 -18
- package/dist/storage/blob/factory.d.ts +5 -4
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +8 -17
- package/dist/storage/blob/local-blob-store.cjs +25 -32
- package/dist/storage/blob/local-blob-store.d.ts +3 -2
- package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
- package/dist/storage/blob/local-blob-store.js +25 -32
- package/dist/storage/blob/memory-blob-store.cjs +326 -0
- package/dist/storage/blob/memory-blob-store.d.ts +66 -0
- package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
- package/dist/storage/blob/memory-blob-store.js +303 -0
- package/dist/storage/blob/schemas.cjs +3 -1
- package/dist/storage/blob/schemas.d.ts +6 -6
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +3 -1
- package/dist/storage/cache/factory.cjs +7 -8
- package/dist/storage/cache/factory.d.ts +4 -1
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +4 -5
- package/dist/storage/cache/redis-store.cjs +4 -1
- package/dist/storage/cache/redis-store.d.ts +3 -1
- package/dist/storage/cache/redis-store.d.ts.map +1 -1
- package/dist/storage/cache/redis-store.js +4 -1
- package/dist/storage/database/factory.cjs +13 -16
- package/dist/storage/database/factory.d.ts +5 -3
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +9 -12
- package/dist/storage/database/postgres-store.cjs +4 -1
- package/dist/storage/database/postgres-store.d.ts +3 -1
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +4 -1
- package/dist/storage/database/schemas.cjs +3 -4
- package/dist/storage/database/schemas.d.ts +8 -16
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +3 -4
- package/dist/storage/database/sqlite-store.cjs +17 -45
- package/dist/storage/database/sqlite-store.d.ts +3 -3
- package/dist/storage/database/sqlite-store.d.ts.map +1 -1
- package/dist/storage/database/sqlite-store.js +17 -45
- package/dist/storage/schemas.cjs +3 -1
- package/dist/storage/schemas.d.ts +16 -23
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +3 -1
- package/dist/storage/storage-manager.cjs +15 -15
- package/dist/storage/storage-manager.d.ts +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +15 -15
- package/dist/systemPrompt/contributors.cjs +15 -15
- package/dist/systemPrompt/contributors.d.ts +5 -3
- package/dist/systemPrompt/contributors.d.ts.map +1 -1
- package/dist/systemPrompt/contributors.js +15 -15
- package/dist/systemPrompt/in-built-prompts.cjs +0 -5
- package/dist/systemPrompt/in-built-prompts.d.ts +1 -2
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +0 -4
- package/dist/systemPrompt/manager.cjs +31 -23
- package/dist/systemPrompt/manager.d.ts +5 -3
- package/dist/systemPrompt/manager.d.ts.map +1 -1
- package/dist/systemPrompt/manager.js +31 -23
- package/dist/systemPrompt/registry.cjs +1 -2
- package/dist/systemPrompt/registry.d.ts +1 -1
- package/dist/systemPrompt/registry.d.ts.map +1 -1
- package/dist/systemPrompt/registry.js +1 -2
- package/dist/systemPrompt/schemas.cjs +24 -18
- package/dist/systemPrompt/schemas.d.ts +46 -222
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +14 -18
- package/dist/telemetry/decorators.cjs +54 -15
- package/dist/telemetry/decorators.d.ts.map +1 -1
- package/dist/telemetry/decorators.js +54 -15
- package/dist/telemetry/utils.cjs +21 -14
- package/dist/telemetry/utils.d.ts +7 -3
- package/dist/telemetry/utils.d.ts.map +1 -1
- package/dist/telemetry/utils.js +21 -14
- package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
- package/dist/tools/errors.cjs +2 -1
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +2 -1
- package/dist/tools/internal-tools/constants.cjs +2 -1
- 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 +2 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
- package/dist/tools/internal-tools/provider.cjs +21 -17
- package/dist/tools/internal-tools/provider.d.ts +3 -1
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +21 -17
- package/dist/tools/internal-tools/registry.cjs +5 -0
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +5 -0
- package/dist/tools/schemas.cjs +16 -4
- package/dist/tools/schemas.d.ts +21 -9
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +15 -4
- package/dist/tools/tool-manager.cjs +64 -47
- package/dist/tools/tool-manager.d.ts +4 -2
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +61 -44
- package/dist/tools/types.d.ts +0 -4
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/env-file.cjs +118 -0
- package/dist/utils/env-file.d.ts +5 -0
- package/dist/utils/env-file.d.ts.map +1 -0
- package/dist/utils/env-file.js +85 -0
- package/dist/utils/error-conversion.cjs +23 -1
- package/dist/utils/error-conversion.d.ts +2 -1
- package/dist/utils/error-conversion.d.ts.map +1 -1
- package/dist/utils/error-conversion.js +23 -1
- package/dist/utils/execution-context.d.ts.map +1 -1
- package/dist/utils/fs-walk.d.ts.map +1 -1
- package/dist/utils/index.cjs +7 -9
- package/dist/utils/index.d.ts +3 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -4
- package/dist/utils/path.cjs +22 -57
- package/dist/utils/path.d.ts +8 -7
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +21 -54
- package/dist/utils/result.cjs +37 -14
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/result.js +37 -14
- package/dist/utils/schema.cjs +2 -3
- package/dist/utils/schema.d.ts +2 -1
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +1 -2
- package/dist/utils/service-initializer.cjs +88 -61
- package/dist/utils/service-initializer.d.ts +4 -2
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +70 -43
- package/package.json +7 -3
- package/dist/Dexto.cjs +0 -251
- package/dist/Dexto.d.ts +0 -191
- package/dist/Dexto.d.ts.map +0 -1
- package/dist/Dexto.js +0 -228
- package/dist/agent/registry/error-codes.cjs +0 -44
- package/dist/agent/registry/error-codes.d.ts +0 -21
- package/dist/agent/registry/error-codes.d.ts.map +0 -1
- package/dist/agent/registry/error-codes.js +0 -21
- package/dist/agent/registry/errors.cjs +0 -188
- package/dist/agent/registry/errors.d.ts +0 -63
- package/dist/agent/registry/errors.d.ts.map +0 -1
- package/dist/agent/registry/errors.js +0 -165
- package/dist/agent/registry/registry.cjs +0 -479
- package/dist/agent/registry/registry.d.ts +0 -130
- package/dist/agent/registry/registry.d.ts.map +0 -1
- package/dist/agent/registry/registry.js +0 -453
- package/dist/agent/registry/types.cjs +0 -74
- package/dist/agent/registry/types.d.ts +0 -142
- package/dist/agent/registry/types.d.ts.map +0 -1
- package/dist/agent/registry/types.js +0 -48
- package/dist/agent/registry/user-registry.cjs +0 -140
- package/dist/agent/registry/user-registry.d.ts +0 -34
- package/dist/agent/registry/user-registry.d.ts.map +0 -1
- package/dist/agent/registry/user-registry.js +0 -105
- package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
- package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
- package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/event-based-approval-provider.js +0 -133
- package/dist/approval/providers/factory.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.cjs +0 -54
- package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
- package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.js +0 -31
- package/dist/config/agent-resolver.cjs +0 -153
- package/dist/config/agent-resolver.d.ts +0 -14
- package/dist/config/agent-resolver.d.ts.map +0 -1
- package/dist/config/agent-resolver.js +0 -123
- package/dist/config/error-codes.cjs +0 -39
- package/dist/config/error-codes.d.ts +0 -16
- package/dist/config/error-codes.d.ts.map +0 -1
- package/dist/config/error-codes.js +0 -16
- package/dist/config/errors.cjs +0 -126
- package/dist/config/errors.d.ts +0 -34
- package/dist/config/errors.d.ts.map +0 -1
- package/dist/config/errors.js +0 -103
- package/dist/config/index.cjs +0 -26
- package/dist/config/index.d.ts +0 -4
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -3
- package/dist/config/loader.cjs +0 -119
- package/dist/config/loader.d.ts +0 -16
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -86
- package/dist/config/writer.cjs +0 -182
- package/dist/config/writer.d.ts +0 -35
- package/dist/config/writer.d.ts.map +0 -1
- package/dist/config/writer.js +0 -147
- package/dist/preferences/constants.d.ts +0 -2
- package/dist/preferences/constants.d.ts.map +0 -1
- package/dist/preferences/constants.js +0 -5
- package/dist/preferences/error-codes.d.ts +0 -8
- package/dist/preferences/error-codes.d.ts.map +0 -1
- package/dist/preferences/error-codes.js +0 -12
- package/dist/preferences/errors.cjs +0 -75
- package/dist/preferences/errors.d.ts +0 -18
- package/dist/preferences/errors.d.ts.map +0 -1
- package/dist/preferences/errors.js +0 -51
- package/dist/preferences/index.cjs +0 -55
- package/dist/preferences/index.d.ts +0 -6
- package/dist/preferences/index.d.ts.map +0 -1
- package/dist/preferences/index.js +0 -32
- package/dist/preferences/loader.cjs +0 -138
- package/dist/preferences/loader.d.ts +0 -51
- package/dist/preferences/loader.d.ts.map +0 -1
- package/dist/preferences/loader.js +0 -110
- package/dist/preferences/schemas.cjs +0 -75
- package/dist/preferences/schemas.d.ts +0 -110
- package/dist/preferences/schemas.d.ts.map +0 -1
- package/dist/preferences/schemas.js +0 -49
- package/dist/prompts/providers/file-prompt-provider.cjs +0 -399
- package/dist/prompts/providers/file-prompt-provider.d.ts +0 -47
- package/dist/prompts/providers/file-prompt-provider.d.ts.map +0 -1
- package/dist/prompts/providers/file-prompt-provider.js +0 -376
- package/dist/prompts/providers/starter-prompt-provider.cjs +0 -170
- package/dist/prompts/providers/starter-prompt-provider.d.ts +0 -45
- package/dist/prompts/providers/starter-prompt-provider.d.ts.map +0 -1
- package/dist/prompts/providers/starter-prompt-provider.js +0 -147
- package/dist/utils/api-key-store.cjs +0 -56
- package/dist/utils/api-key-store.d.ts +0 -24
- package/dist/utils/api-key-store.d.ts.map +0 -1
- package/dist/utils/api-key-store.js +0 -31
- package/dist/utils/env.cjs +0 -154
- package/dist/utils/env.d.ts +0 -28
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -119
- package/dist/utils/port-utils.cjs +0 -37
- package/dist/utils/port-utils.d.ts +0 -10
- package/dist/utils/port-utils.d.ts.map +0 -1
- package/dist/utils/port-utils.js +0 -14
- package/dist/utils/port-utils.spec.cjs +0 -26
- package/dist/utils/port-utils.spec.js +0 -25
- /package/dist/approval/{providers/factory.cjs → factory.cjs} +0 -0
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
* Available internal tool names
|
|
8
8
|
* Must be kept in sync with INTERNAL_TOOL_REGISTRY in registry.ts
|
|
9
9
|
*/
|
|
10
|
-
export declare const INTERNAL_TOOL_NAMES: readonly ["search_history", "ask_user", "read_file", "glob_files", "grep_content", "write_file", "edit_file", "bash_exec", "bash_output", "kill_process"];
|
|
10
|
+
export declare const INTERNAL_TOOL_NAMES: readonly ["search_history", "ask_user", "read_file", "glob_files", "grep_content", "write_file", "edit_file", "bash_exec", "bash_output", "kill_process", "delegate_to_url"];
|
|
11
11
|
export type KnownInternalTool = (typeof INTERNAL_TOOL_NAMES)[number];
|
|
12
12
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,8KAYtB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -47,7 +47,7 @@ const BashExecInputSchema = import_zod.z.object({
|
|
|
47
47
|
function createBashExecTool(processService, approvalManager) {
|
|
48
48
|
return {
|
|
49
49
|
id: "bash_exec",
|
|
50
|
-
description: "Execute a shell command. Returns stdout, stderr, exit code, and duration.
|
|
50
|
+
description: "Execute a shell command with 2-minute default timeout. Returns stdout, stderr, exit code, and duration. For long-running commands (servers, watchers, npm run dev), MUST use run_in_background=true (use bash_output to retrieve results later). Commands ending with & are blocked - use run_in_background instead. Requires approval for all commands. Dangerous commands (rm, git push, etc.) require additional per-command approval. Always quote file paths with spaces. Security: dangerous commands are blocked, injection attempts are detected.",
|
|
51
51
|
inputSchema: BashExecInputSchema,
|
|
52
52
|
execute: async (input, context) => {
|
|
53
53
|
const { command, description, timeout, run_in_background, cwd } = input;
|
|
@@ -15,7 +15,7 @@ const BashExecInputSchema = z.object({
|
|
|
15
15
|
function createBashExecTool(processService, approvalManager) {
|
|
16
16
|
return {
|
|
17
17
|
id: "bash_exec",
|
|
18
|
-
description: "Execute a shell command. Returns stdout, stderr, exit code, and duration.
|
|
18
|
+
description: "Execute a shell command with 2-minute default timeout. Returns stdout, stderr, exit code, and duration. For long-running commands (servers, watchers, npm run dev), MUST use run_in_background=true (use bash_output to retrieve results later). Commands ending with & are blocked - use run_in_background instead. Requires approval for all commands. Dangerous commands (rm, git push, etc.) require additional per-command approval. Always quote file paths with spaces. Security: dangerous commands are blocked, injection attempts are detected.",
|
|
19
19
|
inputSchema: BashExecInputSchema,
|
|
20
20
|
execute: async (input, context) => {
|
|
21
21
|
const { command, description, timeout, run_in_background, cwd } = input;
|
|
@@ -0,0 +1,192 @@
|
|
|
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 delegate_to_url_tool_exports = {};
|
|
20
|
+
__export(delegate_to_url_tool_exports, {
|
|
21
|
+
createDelegateToUrlTool: () => createDelegateToUrlTool
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(delegate_to_url_tool_exports);
|
|
24
|
+
var import_zod = require("zod");
|
|
25
|
+
var import_errors = require("../../../errors/index.js");
|
|
26
|
+
const DelegateToUrlInputSchema = import_zod.z.object({
|
|
27
|
+
url: import_zod.z.string().url().describe(
|
|
28
|
+
'The A2A-compliant agent URL (e.g., "http://localhost:3001" or "https://agent.example.com"). The tool will automatically append the correct JSON-RPC endpoint.'
|
|
29
|
+
),
|
|
30
|
+
message: import_zod.z.string().min(1).describe(
|
|
31
|
+
"The message or task to delegate to the agent. This will be sent as natural language input."
|
|
32
|
+
),
|
|
33
|
+
sessionId: import_zod.z.string().optional().describe(
|
|
34
|
+
"Optional session ID for maintaining conversation state across multiple delegations to the same agent"
|
|
35
|
+
),
|
|
36
|
+
timeout: import_zod.z.number().optional().default(3e4).describe("Request timeout in milliseconds (default: 30000)")
|
|
37
|
+
}).strict();
|
|
38
|
+
class SimpleA2AClient {
|
|
39
|
+
url;
|
|
40
|
+
timeout;
|
|
41
|
+
constructor(url, timeout = 3e4) {
|
|
42
|
+
this.url = url.replace(/\/$/, "");
|
|
43
|
+
this.timeout = timeout;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Send a message to the A2A agent using JSON-RPC 2.0
|
|
47
|
+
*/
|
|
48
|
+
async sendMessage(message, sessionId) {
|
|
49
|
+
const messageId = this.generateId();
|
|
50
|
+
const taskId = sessionId || this.generateId();
|
|
51
|
+
const a2aMessage = {
|
|
52
|
+
role: "user",
|
|
53
|
+
parts: [
|
|
54
|
+
{
|
|
55
|
+
kind: "text",
|
|
56
|
+
text: message
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
messageId,
|
|
60
|
+
taskId,
|
|
61
|
+
contextId: taskId,
|
|
62
|
+
kind: "message"
|
|
63
|
+
};
|
|
64
|
+
const rpcRequest = {
|
|
65
|
+
jsonrpc: "2.0",
|
|
66
|
+
id: this.generateId(),
|
|
67
|
+
method: "message/send",
|
|
68
|
+
params: {
|
|
69
|
+
message: a2aMessage,
|
|
70
|
+
configuration: {
|
|
71
|
+
blocking: true
|
|
72
|
+
// Wait for completion
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const endpoints = [
|
|
77
|
+
`${this.url}/v1/jsonrpc`,
|
|
78
|
+
// A2A v0.3.0 JSON-RPC endpoint
|
|
79
|
+
`${this.url}/jsonrpc`
|
|
80
|
+
// Alternative path
|
|
81
|
+
];
|
|
82
|
+
let lastError = null;
|
|
83
|
+
for (const endpoint of endpoints) {
|
|
84
|
+
try {
|
|
85
|
+
const controller = new AbortController();
|
|
86
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
87
|
+
const response = await fetch(endpoint, {
|
|
88
|
+
method: "POST",
|
|
89
|
+
headers: {
|
|
90
|
+
"Content-Type": "application/json",
|
|
91
|
+
"User-Agent": "@dexto/core"
|
|
92
|
+
},
|
|
93
|
+
body: JSON.stringify(rpcRequest),
|
|
94
|
+
signal: controller.signal
|
|
95
|
+
});
|
|
96
|
+
clearTimeout(timeoutId);
|
|
97
|
+
if (!response.ok) {
|
|
98
|
+
lastError = new Error(
|
|
99
|
+
`HTTP ${response.status}: ${response.statusText} (tried ${endpoint})`
|
|
100
|
+
);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const data = await response.json();
|
|
104
|
+
if ("error" in data && data.error) {
|
|
105
|
+
throw new Error(
|
|
106
|
+
`Agent returned error: ${data.error.message || "Unknown error"}`
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
if ("result" in data) {
|
|
110
|
+
return this.extractTaskResponse(data.result);
|
|
111
|
+
}
|
|
112
|
+
return data;
|
|
113
|
+
} catch (error) {
|
|
114
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
115
|
+
throw new import_errors.DextoRuntimeError(
|
|
116
|
+
`Delegation timeout after ${this.timeout}ms`,
|
|
117
|
+
import_errors.ErrorScope.TOOLS,
|
|
118
|
+
import_errors.ErrorType.TIMEOUT,
|
|
119
|
+
"DELEGATION_TIMEOUT"
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
throw new import_errors.DextoRuntimeError(
|
|
126
|
+
`Failed to connect to agent at ${this.url}. Tried endpoints: ${endpoints.join(", ")}. Last error: ${lastError?.message || "Unknown error"}`,
|
|
127
|
+
import_errors.ErrorScope.TOOLS,
|
|
128
|
+
import_errors.ErrorType.THIRD_PARTY,
|
|
129
|
+
"DELEGATION_FAILED"
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Extract response text from A2A Task structure
|
|
134
|
+
*/
|
|
135
|
+
extractTaskResponse(task) {
|
|
136
|
+
if (task.history && Array.isArray(task.history)) {
|
|
137
|
+
const agentMessages = task.history.filter((m) => m.role === "agent");
|
|
138
|
+
if (agentMessages.length > 0) {
|
|
139
|
+
const lastMessage = agentMessages[agentMessages.length - 1];
|
|
140
|
+
if (lastMessage.parts && Array.isArray(lastMessage.parts)) {
|
|
141
|
+
const textParts = lastMessage.parts.filter((p) => p.kind === "text").map((p) => p.text);
|
|
142
|
+
if (textParts.length > 0) {
|
|
143
|
+
return textParts.join("\n");
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return JSON.stringify(task, null, 2);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Generate unique ID
|
|
152
|
+
*/
|
|
153
|
+
generateId() {
|
|
154
|
+
return `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
function createDelegateToUrlTool() {
|
|
158
|
+
return {
|
|
159
|
+
id: "delegate_to_url",
|
|
160
|
+
description: 'Delegate a task to another A2A-compliant agent at a specific URL. Supports STATEFUL multi-turn conversations via sessionId parameter. USAGE: (1) First delegation: provide url + message. Tool returns a response AND a sessionId. (2) Follow-up: use the SAME sessionId to continue the conversation with that agent. The agent remembers previous context. EXAMPLE: First call {url: "http://agent:3001", message: "Analyze data X"} returns {sessionId: "xyz", response: "..."}. Second call {url: "http://agent:3001", message: "What was the top insight?", sessionId: "xyz"}. The agent will remember the first analysis and can answer specifically.',
|
|
161
|
+
inputSchema: DelegateToUrlInputSchema,
|
|
162
|
+
execute: async (input, _context) => {
|
|
163
|
+
const { url, message, sessionId, timeout } = input;
|
|
164
|
+
try {
|
|
165
|
+
const client = new SimpleA2AClient(url, timeout);
|
|
166
|
+
const effectiveSessionId = sessionId || `delegation-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
167
|
+
const response = await client.sendMessage(message, effectiveSessionId);
|
|
168
|
+
return {
|
|
169
|
+
success: true,
|
|
170
|
+
agentUrl: url,
|
|
171
|
+
sessionId: effectiveSessionId,
|
|
172
|
+
response,
|
|
173
|
+
_hint: sessionId ? "Continued existing conversation" : "Started new conversation - use this sessionId for follow-ups"
|
|
174
|
+
};
|
|
175
|
+
} catch (error) {
|
|
176
|
+
if (error instanceof import_errors.DextoRuntimeError) {
|
|
177
|
+
throw error;
|
|
178
|
+
}
|
|
179
|
+
throw new import_errors.DextoRuntimeError(
|
|
180
|
+
`Delegation failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
181
|
+
import_errors.ErrorScope.TOOLS,
|
|
182
|
+
import_errors.ErrorType.SYSTEM,
|
|
183
|
+
"DELEGATION_ERROR"
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
190
|
+
0 && (module.exports = {
|
|
191
|
+
createDelegateToUrlTool
|
|
192
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { InternalTool } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Internal tool for agent-to-agent delegation
|
|
4
|
+
*
|
|
5
|
+
* Delegates tasks to other A2A-compliant agents at known URLs.
|
|
6
|
+
* Supports stateful multi-turn conversations via sessionId parameter.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - A2A Protocol v0.3.0 compliant (JSON-RPC 2.0 transport)
|
|
10
|
+
* - Stateful conversations with session management
|
|
11
|
+
* - Automatic endpoint discovery (/v1/jsonrpc, /jsonrpc)
|
|
12
|
+
* - Configurable timeouts and error handling
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* // Single delegation
|
|
17
|
+
* delegate_to_url({
|
|
18
|
+
* url: "http://pdf-analyzer:3001",
|
|
19
|
+
* message: "Extract all tables from the Q4 sales report"
|
|
20
|
+
* })
|
|
21
|
+
* → Returns: {sessionId: "delegation-xyz", response: "..."}
|
|
22
|
+
*
|
|
23
|
+
* // Multi-turn conversation (use same sessionId)
|
|
24
|
+
* delegate_to_url({
|
|
25
|
+
* url: "http://pdf-analyzer:3001",
|
|
26
|
+
* message: "Which table had the highest values?",
|
|
27
|
+
* sessionId: "delegation-xyz"
|
|
28
|
+
* })
|
|
29
|
+
* → Agent remembers the previous extraction and can answer specifically
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function createDelegateToUrlTool(): InternalTool;
|
|
33
|
+
//# sourceMappingURL=delegate-to-url-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegate-to-url-tool.d.ts","sourceRoot":"","sources":["../../../../src/tools/internal-tools/implementations/delegate-to-url-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AA8MpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,uBAAuB,IAAI,YAAY,CA8CtD"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import "../../../chunk-C6A6W6XS.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { DextoRuntimeError, ErrorScope, ErrorType } from "../../../errors/index.js";
|
|
4
|
+
const DelegateToUrlInputSchema = z.object({
|
|
5
|
+
url: z.string().url().describe(
|
|
6
|
+
'The A2A-compliant agent URL (e.g., "http://localhost:3001" or "https://agent.example.com"). The tool will automatically append the correct JSON-RPC endpoint.'
|
|
7
|
+
),
|
|
8
|
+
message: z.string().min(1).describe(
|
|
9
|
+
"The message or task to delegate to the agent. This will be sent as natural language input."
|
|
10
|
+
),
|
|
11
|
+
sessionId: z.string().optional().describe(
|
|
12
|
+
"Optional session ID for maintaining conversation state across multiple delegations to the same agent"
|
|
13
|
+
),
|
|
14
|
+
timeout: z.number().optional().default(3e4).describe("Request timeout in milliseconds (default: 30000)")
|
|
15
|
+
}).strict();
|
|
16
|
+
class SimpleA2AClient {
|
|
17
|
+
url;
|
|
18
|
+
timeout;
|
|
19
|
+
constructor(url, timeout = 3e4) {
|
|
20
|
+
this.url = url.replace(/\/$/, "");
|
|
21
|
+
this.timeout = timeout;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Send a message to the A2A agent using JSON-RPC 2.0
|
|
25
|
+
*/
|
|
26
|
+
async sendMessage(message, sessionId) {
|
|
27
|
+
const messageId = this.generateId();
|
|
28
|
+
const taskId = sessionId || this.generateId();
|
|
29
|
+
const a2aMessage = {
|
|
30
|
+
role: "user",
|
|
31
|
+
parts: [
|
|
32
|
+
{
|
|
33
|
+
kind: "text",
|
|
34
|
+
text: message
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
messageId,
|
|
38
|
+
taskId,
|
|
39
|
+
contextId: taskId,
|
|
40
|
+
kind: "message"
|
|
41
|
+
};
|
|
42
|
+
const rpcRequest = {
|
|
43
|
+
jsonrpc: "2.0",
|
|
44
|
+
id: this.generateId(),
|
|
45
|
+
method: "message/send",
|
|
46
|
+
params: {
|
|
47
|
+
message: a2aMessage,
|
|
48
|
+
configuration: {
|
|
49
|
+
blocking: true
|
|
50
|
+
// Wait for completion
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const endpoints = [
|
|
55
|
+
`${this.url}/v1/jsonrpc`,
|
|
56
|
+
// A2A v0.3.0 JSON-RPC endpoint
|
|
57
|
+
`${this.url}/jsonrpc`
|
|
58
|
+
// Alternative path
|
|
59
|
+
];
|
|
60
|
+
let lastError = null;
|
|
61
|
+
for (const endpoint of endpoints) {
|
|
62
|
+
try {
|
|
63
|
+
const controller = new AbortController();
|
|
64
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
65
|
+
const response = await fetch(endpoint, {
|
|
66
|
+
method: "POST",
|
|
67
|
+
headers: {
|
|
68
|
+
"Content-Type": "application/json",
|
|
69
|
+
"User-Agent": "@dexto/core"
|
|
70
|
+
},
|
|
71
|
+
body: JSON.stringify(rpcRequest),
|
|
72
|
+
signal: controller.signal
|
|
73
|
+
});
|
|
74
|
+
clearTimeout(timeoutId);
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
lastError = new Error(
|
|
77
|
+
`HTTP ${response.status}: ${response.statusText} (tried ${endpoint})`
|
|
78
|
+
);
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const data = await response.json();
|
|
82
|
+
if ("error" in data && data.error) {
|
|
83
|
+
throw new Error(
|
|
84
|
+
`Agent returned error: ${data.error.message || "Unknown error"}`
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
if ("result" in data) {
|
|
88
|
+
return this.extractTaskResponse(data.result);
|
|
89
|
+
}
|
|
90
|
+
return data;
|
|
91
|
+
} catch (error) {
|
|
92
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
93
|
+
throw new DextoRuntimeError(
|
|
94
|
+
`Delegation timeout after ${this.timeout}ms`,
|
|
95
|
+
ErrorScope.TOOLS,
|
|
96
|
+
ErrorType.TIMEOUT,
|
|
97
|
+
"DELEGATION_TIMEOUT"
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
throw new DextoRuntimeError(
|
|
104
|
+
`Failed to connect to agent at ${this.url}. Tried endpoints: ${endpoints.join(", ")}. Last error: ${lastError?.message || "Unknown error"}`,
|
|
105
|
+
ErrorScope.TOOLS,
|
|
106
|
+
ErrorType.THIRD_PARTY,
|
|
107
|
+
"DELEGATION_FAILED"
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Extract response text from A2A Task structure
|
|
112
|
+
*/
|
|
113
|
+
extractTaskResponse(task) {
|
|
114
|
+
if (task.history && Array.isArray(task.history)) {
|
|
115
|
+
const agentMessages = task.history.filter((m) => m.role === "agent");
|
|
116
|
+
if (agentMessages.length > 0) {
|
|
117
|
+
const lastMessage = agentMessages[agentMessages.length - 1];
|
|
118
|
+
if (lastMessage.parts && Array.isArray(lastMessage.parts)) {
|
|
119
|
+
const textParts = lastMessage.parts.filter((p) => p.kind === "text").map((p) => p.text);
|
|
120
|
+
if (textParts.length > 0) {
|
|
121
|
+
return textParts.join("\n");
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return JSON.stringify(task, null, 2);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Generate unique ID
|
|
130
|
+
*/
|
|
131
|
+
generateId() {
|
|
132
|
+
return `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function createDelegateToUrlTool() {
|
|
136
|
+
return {
|
|
137
|
+
id: "delegate_to_url",
|
|
138
|
+
description: 'Delegate a task to another A2A-compliant agent at a specific URL. Supports STATEFUL multi-turn conversations via sessionId parameter. USAGE: (1) First delegation: provide url + message. Tool returns a response AND a sessionId. (2) Follow-up: use the SAME sessionId to continue the conversation with that agent. The agent remembers previous context. EXAMPLE: First call {url: "http://agent:3001", message: "Analyze data X"} returns {sessionId: "xyz", response: "..."}. Second call {url: "http://agent:3001", message: "What was the top insight?", sessionId: "xyz"}. The agent will remember the first analysis and can answer specifically.',
|
|
139
|
+
inputSchema: DelegateToUrlInputSchema,
|
|
140
|
+
execute: async (input, _context) => {
|
|
141
|
+
const { url, message, sessionId, timeout } = input;
|
|
142
|
+
try {
|
|
143
|
+
const client = new SimpleA2AClient(url, timeout);
|
|
144
|
+
const effectiveSessionId = sessionId || `delegation-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
145
|
+
const response = await client.sendMessage(message, effectiveSessionId);
|
|
146
|
+
return {
|
|
147
|
+
success: true,
|
|
148
|
+
agentUrl: url,
|
|
149
|
+
sessionId: effectiveSessionId,
|
|
150
|
+
response,
|
|
151
|
+
_hint: sessionId ? "Continued existing conversation" : "Started new conversation - use this sessionId for follow-ups"
|
|
152
|
+
};
|
|
153
|
+
} catch (error) {
|
|
154
|
+
if (error instanceof DextoRuntimeError) {
|
|
155
|
+
throw error;
|
|
156
|
+
}
|
|
157
|
+
throw new DextoRuntimeError(
|
|
158
|
+
`Delegation failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
159
|
+
ErrorScope.TOOLS,
|
|
160
|
+
ErrorType.SYSTEM,
|
|
161
|
+
"DELEGATION_ERROR"
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
export {
|
|
168
|
+
createDelegateToUrlTool
|
|
169
|
+
};
|
|
@@ -21,7 +21,6 @@ __export(provider_exports, {
|
|
|
21
21
|
InternalToolsProvider: () => InternalToolsProvider
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(provider_exports);
|
|
24
|
-
var import_logger = require("../../logger/index.js");
|
|
25
24
|
var import_errors = require("../errors.js");
|
|
26
25
|
var import_schema = require("../../utils/schema.js");
|
|
27
26
|
var import_registry = require("./registry.js");
|
|
@@ -31,27 +30,29 @@ class InternalToolsProvider {
|
|
|
31
30
|
// ← Store original InternalTool
|
|
32
31
|
approvalManager;
|
|
33
32
|
config;
|
|
34
|
-
|
|
33
|
+
logger;
|
|
34
|
+
constructor(services, approvalManager, config = [], logger) {
|
|
35
35
|
this.services = services;
|
|
36
36
|
this.approvalManager = approvalManager;
|
|
37
37
|
this.config = config;
|
|
38
|
-
|
|
38
|
+
this.logger = logger;
|
|
39
|
+
this.logger.debug("InternalToolsProvider initialized with config:", { config });
|
|
39
40
|
}
|
|
40
41
|
/**
|
|
41
42
|
* Initialize the internal tools provider by registering all available internal tools
|
|
42
43
|
*/
|
|
43
44
|
async initialize() {
|
|
44
|
-
|
|
45
|
+
this.logger.info("Initializing InternalToolsProvider...");
|
|
45
46
|
try {
|
|
46
47
|
if (this.config.length === 0) {
|
|
47
|
-
|
|
48
|
+
this.logger.info("No internal tools enabled by configuration");
|
|
48
49
|
return;
|
|
49
50
|
}
|
|
50
51
|
this.registerInternalTools();
|
|
51
52
|
const toolCount = this.tools.size;
|
|
52
|
-
|
|
53
|
+
this.logger.info(`InternalToolsProvider initialized with ${toolCount} internal tools`);
|
|
53
54
|
} catch (error) {
|
|
54
|
-
|
|
55
|
+
this.logger.error(
|
|
55
56
|
`Failed to initialize InternalToolsProvider: ${error instanceof Error ? error.message : String(error)}`
|
|
56
57
|
);
|
|
57
58
|
throw error;
|
|
@@ -71,7 +72,7 @@ class InternalToolsProvider {
|
|
|
71
72
|
(serviceKey) => !servicesWithApproval[serviceKey]
|
|
72
73
|
);
|
|
73
74
|
if (missingServices.length > 0) {
|
|
74
|
-
|
|
75
|
+
this.logger.debug(
|
|
75
76
|
`Skipping ${toolName} internal tool - missing services: ${missingServices.join(", ")}`
|
|
76
77
|
);
|
|
77
78
|
continue;
|
|
@@ -79,9 +80,9 @@ class InternalToolsProvider {
|
|
|
79
80
|
try {
|
|
80
81
|
const tool = toolInfo.factory(servicesWithApproval);
|
|
81
82
|
this.tools.set(toolName, tool);
|
|
82
|
-
|
|
83
|
+
this.logger.debug(`Registered ${toolName} internal tool`);
|
|
83
84
|
} catch (error) {
|
|
84
|
-
|
|
85
|
+
this.logger.error(
|
|
85
86
|
`Failed to register ${toolName} internal tool: ${error instanceof Error ? error.message : String(error)}`
|
|
86
87
|
);
|
|
87
88
|
}
|
|
@@ -99,15 +100,16 @@ class InternalToolsProvider {
|
|
|
99
100
|
async executeTool(toolName, args, sessionId) {
|
|
100
101
|
const tool = this.tools.get(toolName);
|
|
101
102
|
if (!tool) {
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
this.logger.error(`\u274C No internal tool found: ${toolName}`);
|
|
104
|
+
this.logger.debug(
|
|
105
|
+
`Available internal tools: ${Array.from(this.tools.keys()).join(", ")}`
|
|
106
|
+
);
|
|
104
107
|
throw import_errors.ToolError.notFound(toolName);
|
|
105
108
|
}
|
|
106
109
|
const validationResult = tool.inputSchema.safeParse(args);
|
|
107
110
|
if (!validationResult.success) {
|
|
108
|
-
|
|
109
|
-
`\u274C Invalid arguments for tool ${toolName}
|
|
110
|
-
validationResult.error.message
|
|
111
|
+
this.logger.error(
|
|
112
|
+
`\u274C Invalid arguments for tool ${toolName}: ${validationResult.error.message}`
|
|
111
113
|
);
|
|
112
114
|
throw import_errors.ToolError.invalidName(
|
|
113
115
|
toolName,
|
|
@@ -119,7 +121,9 @@ class InternalToolsProvider {
|
|
|
119
121
|
const result = await tool.execute(validationResult.data, context);
|
|
120
122
|
return result;
|
|
121
123
|
} catch (error) {
|
|
122
|
-
|
|
124
|
+
this.logger.error(`\u274C Internal tool execution failed: ${toolName}`, {
|
|
125
|
+
error: error instanceof Error ? error.message : String(error)
|
|
126
|
+
});
|
|
123
127
|
throw error;
|
|
124
128
|
}
|
|
125
129
|
}
|
|
@@ -132,7 +136,7 @@ class InternalToolsProvider {
|
|
|
132
136
|
toolSet[name] = {
|
|
133
137
|
name: tool.id,
|
|
134
138
|
description: tool.description,
|
|
135
|
-
parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema)
|
|
139
|
+
parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
|
|
136
140
|
// ← Convert on-demand
|
|
137
141
|
};
|
|
138
142
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ToolSet } from '../types.js';
|
|
2
|
+
import type { IDextoLogger } from '../../logger/v2/types.js';
|
|
2
3
|
import { InternalToolsServices } from './registry.js';
|
|
3
4
|
import type { InternalToolsConfig } from '../schemas.js';
|
|
4
5
|
import type { ApprovalManager } from '../../approval/manager.js';
|
|
@@ -19,7 +20,8 @@ export declare class InternalToolsProvider {
|
|
|
19
20
|
private tools;
|
|
20
21
|
private approvalManager;
|
|
21
22
|
private config;
|
|
22
|
-
|
|
23
|
+
private logger;
|
|
24
|
+
constructor(services: InternalToolsServices, approvalManager: ApprovalManager, config: InternalToolsConfig | undefined, logger: IDextoLogger);
|
|
23
25
|
/**
|
|
24
26
|
* Initialize the internal tools provider by registering all available internal tools
|
|
25
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAgB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAgB,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAuB,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAe;gBAGzB,QAAQ,EAAE,qBAAqB,EAC/B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,mBAAmB,YAAK,EAChC,MAAM,EAAE,YAAY;IASxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACG,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC;IAkCnB;;OAEG;IACH,WAAW,IAAI,OAAO;IActB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;CAGzB"}
|