@dexto/core 1.2.3 → 1.2.5
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 +164 -64
- package/dist/agent/schemas.d.ts +2605 -517
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +167 -64
- 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/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.d.ts +6 -6
- 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/prompt-manager.cjs +25 -18
- 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 -18
- 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/file-prompt-provider.cjs +14 -12
- package/dist/prompts/providers/file-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/file-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/file-prompt-provider.js +14 -12
- 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/providers/starter-prompt-provider.cjs +7 -5
- package/dist/prompts/providers/starter-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/starter-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/starter-prompt-provider.js +7 -5
- package/dist/prompts/schemas.d.ts +3 -3
- 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/manager.cjs +11 -8
- package/dist/systemPrompt/manager.d.ts +4 -2
- package/dist/systemPrompt/manager.d.ts.map +1 -1
- package/dist/systemPrompt/manager.js +11 -8
- package/dist/systemPrompt/schemas.cjs +21 -1
- package/dist/systemPrompt/schemas.d.ts +53 -53
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +11 -1
- 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 +87 -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 +69 -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/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
package/dist/telemetry/utils.cjs
CHANGED
|
@@ -25,43 +25,47 @@ __export(utils_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(utils_exports);
|
|
26
26
|
var import_api = require("@opentelemetry/api");
|
|
27
27
|
var import_telemetry = require("./telemetry.js");
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
import_logger.logger.silly("hasActiveTelemetry called.");
|
|
28
|
+
function hasActiveTelemetry(logger) {
|
|
29
|
+
logger?.silly("hasActiveTelemetry called.");
|
|
31
30
|
try {
|
|
32
31
|
const telemetryInstance = import_telemetry.Telemetry.get();
|
|
33
32
|
const isActive = telemetryInstance.isInitialized();
|
|
34
|
-
|
|
33
|
+
logger?.silly(`hasActiveTelemetry: Telemetry is initialized: ${isActive}`);
|
|
35
34
|
return isActive;
|
|
36
35
|
} catch (error) {
|
|
37
|
-
|
|
36
|
+
logger?.silly(
|
|
38
37
|
`hasActiveTelemetry: Telemetry not active or initialized. Error: ${error instanceof Error ? error.message : String(error)}`
|
|
39
38
|
);
|
|
40
39
|
return false;
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
|
-
function getBaggageValues(ctx) {
|
|
44
|
-
|
|
42
|
+
function getBaggageValues(ctx, logger) {
|
|
43
|
+
logger?.silly("getBaggageValues called.");
|
|
45
44
|
const currentBaggage = import_api.propagation.getBaggage(ctx);
|
|
46
45
|
const requestId = currentBaggage?.getEntry("http.request_id")?.value;
|
|
47
46
|
const componentName = currentBaggage?.getEntry("componentName")?.value;
|
|
48
47
|
const runId = currentBaggage?.getEntry("runId")?.value;
|
|
49
48
|
const threadId = currentBaggage?.getEntry("threadId")?.value;
|
|
50
49
|
const resourceId = currentBaggage?.getEntry("resourceId")?.value;
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
const sessionId = currentBaggage?.getEntry("sessionId")?.value;
|
|
51
|
+
logger?.silly(
|
|
52
|
+
`getBaggageValues: Extracted - requestId: ${requestId}, componentName: ${componentName}, runId: ${runId}, threadId: ${threadId}, resourceId: ${resourceId}, sessionId: ${sessionId}`
|
|
53
53
|
);
|
|
54
54
|
return {
|
|
55
55
|
requestId,
|
|
56
56
|
componentName,
|
|
57
57
|
runId,
|
|
58
58
|
threadId,
|
|
59
|
-
resourceId
|
|
59
|
+
resourceId,
|
|
60
|
+
sessionId
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
|
-
function addBaggageAttributesToSpan(span, ctx) {
|
|
63
|
-
|
|
64
|
-
const { requestId, componentName, runId, threadId, resourceId } = getBaggageValues(
|
|
63
|
+
function addBaggageAttributesToSpan(span, ctx, logger) {
|
|
64
|
+
logger?.debug("addBaggageAttributesToSpan called.");
|
|
65
|
+
const { requestId, componentName, runId, threadId, resourceId, sessionId } = getBaggageValues(
|
|
66
|
+
ctx,
|
|
67
|
+
logger
|
|
68
|
+
);
|
|
65
69
|
if (componentName) {
|
|
66
70
|
span.setAttribute("componentName", componentName);
|
|
67
71
|
}
|
|
@@ -77,7 +81,10 @@ function addBaggageAttributesToSpan(span, ctx) {
|
|
|
77
81
|
if (resourceId) {
|
|
78
82
|
span.setAttribute("resourceId", resourceId);
|
|
79
83
|
}
|
|
80
|
-
|
|
84
|
+
if (sessionId) {
|
|
85
|
+
span.setAttribute("sessionId", sessionId);
|
|
86
|
+
}
|
|
87
|
+
logger?.debug("addBaggageAttributesToSpan: Baggage attributes added to span.");
|
|
81
88
|
}
|
|
82
89
|
// Annotate the CommonJS export names for ESM import in node:
|
|
83
90
|
0 && (module.exports = {
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import type { Context, Span } from '@opentelemetry/api';
|
|
2
|
-
|
|
2
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
3
|
+
export declare function hasActiveTelemetry(logger?: IDextoLogger): boolean;
|
|
3
4
|
/**
|
|
4
5
|
* Get baggage values from context
|
|
5
6
|
* @param ctx The context to get baggage values from
|
|
7
|
+
* @param logger Optional logger instance
|
|
6
8
|
* @returns
|
|
7
9
|
*/
|
|
8
|
-
export declare function getBaggageValues(ctx: Context): {
|
|
10
|
+
export declare function getBaggageValues(ctx: Context, logger?: IDextoLogger): {
|
|
9
11
|
requestId: string | undefined;
|
|
10
12
|
componentName: string | undefined;
|
|
11
13
|
runId: string | undefined;
|
|
12
14
|
threadId: string | undefined;
|
|
13
15
|
resourceId: string | undefined;
|
|
16
|
+
sessionId: string | undefined;
|
|
14
17
|
};
|
|
15
18
|
/**
|
|
16
19
|
* Attaches baggage values from the given context to the provided span as attributes.
|
|
17
20
|
* @param span The OpenTelemetry Span to add attributes to.
|
|
18
21
|
* @param ctx The OpenTelemetry Context from which to extract baggage values.
|
|
22
|
+
* @param logger Optional logger instance
|
|
19
23
|
*/
|
|
20
|
-
export declare function addBaggageAttributesToSpan(span: Span, ctx: Context): void;
|
|
24
|
+
export declare function addBaggageAttributesToSpan(span: Span, ctx: Context, logger?: IDextoLogger): void;
|
|
21
25
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/telemetry/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/telemetry/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAajE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY;;;;;;;EAoBnE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CA0BhG"}
|
package/dist/telemetry/utils.js
CHANGED
|
@@ -1,43 +1,47 @@
|
|
|
1
1
|
import "../chunk-C6A6W6XS.js";
|
|
2
2
|
import { propagation } from "@opentelemetry/api";
|
|
3
3
|
import { Telemetry } from "./telemetry.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
logger.silly("hasActiveTelemetry called.");
|
|
4
|
+
function hasActiveTelemetry(logger) {
|
|
5
|
+
logger?.silly("hasActiveTelemetry called.");
|
|
7
6
|
try {
|
|
8
7
|
const telemetryInstance = Telemetry.get();
|
|
9
8
|
const isActive = telemetryInstance.isInitialized();
|
|
10
|
-
logger
|
|
9
|
+
logger?.silly(`hasActiveTelemetry: Telemetry is initialized: ${isActive}`);
|
|
11
10
|
return isActive;
|
|
12
11
|
} catch (error) {
|
|
13
|
-
logger
|
|
12
|
+
logger?.silly(
|
|
14
13
|
`hasActiveTelemetry: Telemetry not active or initialized. Error: ${error instanceof Error ? error.message : String(error)}`
|
|
15
14
|
);
|
|
16
15
|
return false;
|
|
17
16
|
}
|
|
18
17
|
}
|
|
19
|
-
function getBaggageValues(ctx) {
|
|
20
|
-
logger
|
|
18
|
+
function getBaggageValues(ctx, logger) {
|
|
19
|
+
logger?.silly("getBaggageValues called.");
|
|
21
20
|
const currentBaggage = propagation.getBaggage(ctx);
|
|
22
21
|
const requestId = currentBaggage?.getEntry("http.request_id")?.value;
|
|
23
22
|
const componentName = currentBaggage?.getEntry("componentName")?.value;
|
|
24
23
|
const runId = currentBaggage?.getEntry("runId")?.value;
|
|
25
24
|
const threadId = currentBaggage?.getEntry("threadId")?.value;
|
|
26
25
|
const resourceId = currentBaggage?.getEntry("resourceId")?.value;
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
const sessionId = currentBaggage?.getEntry("sessionId")?.value;
|
|
27
|
+
logger?.silly(
|
|
28
|
+
`getBaggageValues: Extracted - requestId: ${requestId}, componentName: ${componentName}, runId: ${runId}, threadId: ${threadId}, resourceId: ${resourceId}, sessionId: ${sessionId}`
|
|
29
29
|
);
|
|
30
30
|
return {
|
|
31
31
|
requestId,
|
|
32
32
|
componentName,
|
|
33
33
|
runId,
|
|
34
34
|
threadId,
|
|
35
|
-
resourceId
|
|
35
|
+
resourceId,
|
|
36
|
+
sessionId
|
|
36
37
|
};
|
|
37
38
|
}
|
|
38
|
-
function addBaggageAttributesToSpan(span, ctx) {
|
|
39
|
-
logger
|
|
40
|
-
const { requestId, componentName, runId, threadId, resourceId } = getBaggageValues(
|
|
39
|
+
function addBaggageAttributesToSpan(span, ctx, logger) {
|
|
40
|
+
logger?.debug("addBaggageAttributesToSpan called.");
|
|
41
|
+
const { requestId, componentName, runId, threadId, resourceId, sessionId } = getBaggageValues(
|
|
42
|
+
ctx,
|
|
43
|
+
logger
|
|
44
|
+
);
|
|
41
45
|
if (componentName) {
|
|
42
46
|
span.setAttribute("componentName", componentName);
|
|
43
47
|
}
|
|
@@ -53,7 +57,10 @@ function addBaggageAttributesToSpan(span, ctx) {
|
|
|
53
57
|
if (resourceId) {
|
|
54
58
|
span.setAttribute("resourceId", resourceId);
|
|
55
59
|
}
|
|
56
|
-
|
|
60
|
+
if (sessionId) {
|
|
61
|
+
span.setAttribute("sessionId", sessionId);
|
|
62
|
+
}
|
|
63
|
+
logger?.debug("addBaggageAttributesToSpan: Baggage attributes added to span.");
|
|
57
64
|
}
|
|
58
65
|
export {
|
|
59
66
|
addBaggageAttributesToSpan,
|
|
@@ -24,12 +24,12 @@ module.exports = __toCommonJS(factory_exports);
|
|
|
24
24
|
var import_in_memory = require("./in-memory.js");
|
|
25
25
|
var import_storage = require("./storage.js");
|
|
26
26
|
var import_errors = require("../../errors.js");
|
|
27
|
-
function createAllowedToolsProvider(config) {
|
|
27
|
+
function createAllowedToolsProvider(config, logger) {
|
|
28
28
|
switch (config.type) {
|
|
29
29
|
case "memory":
|
|
30
30
|
return new import_in_memory.InMemoryAllowedToolsProvider();
|
|
31
31
|
case "storage":
|
|
32
|
-
return new import_storage.StorageAllowedToolsProvider(config.storageManager);
|
|
32
|
+
return new import_storage.StorageAllowedToolsProvider(config.storageManager, logger);
|
|
33
33
|
default: {
|
|
34
34
|
const _exhaustive = config;
|
|
35
35
|
throw import_errors.ToolError.configInvalid(
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { IAllowedToolsProvider } from './types.js';
|
|
2
2
|
import type { StorageManager } from '../../../storage/index.js';
|
|
3
|
+
import type { IDextoLogger } from '../../../logger/v2/types.js';
|
|
3
4
|
export type AllowedToolsConfig = {
|
|
4
5
|
type: 'memory';
|
|
5
6
|
} | {
|
|
@@ -9,5 +10,5 @@ export type AllowedToolsConfig = {
|
|
|
9
10
|
/**
|
|
10
11
|
* Create an AllowedToolsProvider based on configuration.
|
|
11
12
|
*/
|
|
12
|
-
export declare function createAllowedToolsProvider(config: AllowedToolsConfig): IAllowedToolsProvider;
|
|
13
|
+
export declare function createAllowedToolsProvider(config: AllowedToolsConfig, logger: IDextoLogger): IAllowedToolsProvider;
|
|
13
14
|
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/tools/confirmation/allowed-tools-provider/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/tools/confirmation/allowed-tools-provider/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAU7D,MAAM,MAAM,kBAAkB,GACxB;IACI,IAAI,EAAE,QAAQ,CAAC;CAClB,GACD;IACI,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;CAClC,CAAC;AAER;;GAEG;AACH,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,YAAY,GACrB,qBAAqB,CAcvB"}
|
|
@@ -2,12 +2,12 @@ import "../../../chunk-C6A6W6XS.js";
|
|
|
2
2
|
import { InMemoryAllowedToolsProvider } from "./in-memory.js";
|
|
3
3
|
import { StorageAllowedToolsProvider } from "./storage.js";
|
|
4
4
|
import { ToolError } from "../../errors.js";
|
|
5
|
-
function createAllowedToolsProvider(config) {
|
|
5
|
+
function createAllowedToolsProvider(config, logger) {
|
|
6
6
|
switch (config.type) {
|
|
7
7
|
case "memory":
|
|
8
8
|
return new InMemoryAllowedToolsProvider();
|
|
9
9
|
case "storage":
|
|
10
|
-
return new StorageAllowedToolsProvider(config.storageManager);
|
|
10
|
+
return new StorageAllowedToolsProvider(config.storageManager, logger);
|
|
11
11
|
default: {
|
|
12
12
|
const _exhaustive = config;
|
|
13
13
|
throw ToolError.configInvalid(
|
|
@@ -21,26 +21,27 @@ __export(storage_exports, {
|
|
|
21
21
|
StorageAllowedToolsProvider: () => StorageAllowedToolsProvider
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(storage_exports);
|
|
24
|
-
var import_logger = require("../../../logger/index.cjs");
|
|
25
24
|
class StorageAllowedToolsProvider {
|
|
26
|
-
constructor(storageManager) {
|
|
25
|
+
constructor(storageManager, logger) {
|
|
27
26
|
this.storageManager = storageManager;
|
|
27
|
+
this.logger = logger;
|
|
28
28
|
}
|
|
29
|
+
logger;
|
|
29
30
|
buildKey(sessionId) {
|
|
30
31
|
return sessionId ? `allowedTools:${sessionId}` : "allowedTools:global";
|
|
31
32
|
}
|
|
32
33
|
async allowTool(toolName, sessionId) {
|
|
33
34
|
const key = this.buildKey(sessionId);
|
|
34
|
-
|
|
35
|
+
this.logger.debug(`Adding allowed tool '${toolName}' for key '${key}'`);
|
|
35
36
|
const existingRaw = await this.storageManager.getDatabase().get(key);
|
|
36
37
|
const newSet = new Set(Array.isArray(existingRaw) ? existingRaw : []);
|
|
37
38
|
newSet.add(toolName);
|
|
38
39
|
await this.storageManager.getDatabase().set(key, Array.from(newSet));
|
|
39
|
-
|
|
40
|
+
this.logger.debug(`Added allowed tool '${toolName}' for key '${key}'`);
|
|
40
41
|
}
|
|
41
42
|
async disallowTool(toolName, sessionId) {
|
|
42
43
|
const key = this.buildKey(sessionId);
|
|
43
|
-
|
|
44
|
+
this.logger.debug(`Removing allowed tool '${toolName}' for key '${key}'`);
|
|
44
45
|
const existingRaw = await this.storageManager.getDatabase().get(key);
|
|
45
46
|
if (!Array.isArray(existingRaw)) return;
|
|
46
47
|
const newSet = new Set(existingRaw);
|
|
@@ -52,7 +53,7 @@ class StorageAllowedToolsProvider {
|
|
|
52
53
|
if (Array.isArray(sessionArr) && sessionArr.includes(toolName)) return true;
|
|
53
54
|
const globalArr = await this.storageManager.getDatabase().get(this.buildKey(void 0));
|
|
54
55
|
const allowed = Array.isArray(globalArr) ? globalArr.includes(toolName) : false;
|
|
55
|
-
|
|
56
|
+
this.logger.debug(
|
|
56
57
|
`Checked allowed tool '${toolName}' in session '${sessionId ?? "global"}' \u2013 allowed=${allowed}`
|
|
57
58
|
);
|
|
58
59
|
return allowed;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { StorageManager } from '../../../storage/index.js';
|
|
2
2
|
import type { IAllowedToolsProvider } from './types.js';
|
|
3
|
+
import type { IDextoLogger } from '../../../logger/v2/types.js';
|
|
3
4
|
/**
|
|
4
5
|
* Storage-backed implementation that persists allowed tools in the Dexto
|
|
5
6
|
* storage manager. The key scheme is:
|
|
@@ -10,7 +11,8 @@ import type { IAllowedToolsProvider } from './types.js';
|
|
|
10
11
|
*/
|
|
11
12
|
export declare class StorageAllowedToolsProvider implements IAllowedToolsProvider {
|
|
12
13
|
private storageManager;
|
|
13
|
-
|
|
14
|
+
private logger;
|
|
15
|
+
constructor(storageManager: StorageManager, logger: IDextoLogger);
|
|
14
16
|
private buildKey;
|
|
15
17
|
allowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
16
18
|
disallowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/tools/confirmation/allowed-tools-provider/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/tools/confirmation/allowed-tools-provider/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;GAOG;AACH,qBAAa,2BAA4B,YAAW,qBAAqB;IAIjE,OAAO,CAAC,cAAc;IAH1B,OAAO,CAAC,MAAM,CAAe;gBAGjB,cAAc,EAAE,cAAc,EACtC,MAAM,EAAE,YAAY;IAKxB,OAAO,CAAC,QAAQ;IAIV,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBrE,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CAIlE"}
|
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
import "../../../chunk-C6A6W6XS.js";
|
|
2
|
-
import { logger } from "../../../logger/index.js";
|
|
3
2
|
class StorageAllowedToolsProvider {
|
|
4
|
-
constructor(storageManager) {
|
|
3
|
+
constructor(storageManager, logger) {
|
|
5
4
|
this.storageManager = storageManager;
|
|
5
|
+
this.logger = logger;
|
|
6
6
|
}
|
|
7
|
+
logger;
|
|
7
8
|
buildKey(sessionId) {
|
|
8
9
|
return sessionId ? `allowedTools:${sessionId}` : "allowedTools:global";
|
|
9
10
|
}
|
|
10
11
|
async allowTool(toolName, sessionId) {
|
|
11
12
|
const key = this.buildKey(sessionId);
|
|
12
|
-
logger.debug(`Adding allowed tool '${toolName}' for key '${key}'`);
|
|
13
|
+
this.logger.debug(`Adding allowed tool '${toolName}' for key '${key}'`);
|
|
13
14
|
const existingRaw = await this.storageManager.getDatabase().get(key);
|
|
14
15
|
const newSet = new Set(Array.isArray(existingRaw) ? existingRaw : []);
|
|
15
16
|
newSet.add(toolName);
|
|
16
17
|
await this.storageManager.getDatabase().set(key, Array.from(newSet));
|
|
17
|
-
logger.debug(`Added allowed tool '${toolName}' for key '${key}'`);
|
|
18
|
+
this.logger.debug(`Added allowed tool '${toolName}' for key '${key}'`);
|
|
18
19
|
}
|
|
19
20
|
async disallowTool(toolName, sessionId) {
|
|
20
21
|
const key = this.buildKey(sessionId);
|
|
21
|
-
logger.debug(`Removing allowed tool '${toolName}' for key '${key}'`);
|
|
22
|
+
this.logger.debug(`Removing allowed tool '${toolName}' for key '${key}'`);
|
|
22
23
|
const existingRaw = await this.storageManager.getDatabase().get(key);
|
|
23
24
|
if (!Array.isArray(existingRaw)) return;
|
|
24
25
|
const newSet = new Set(existingRaw);
|
|
@@ -30,7 +31,7 @@ class StorageAllowedToolsProvider {
|
|
|
30
31
|
if (Array.isArray(sessionArr) && sessionArr.includes(toolName)) return true;
|
|
31
32
|
const globalArr = await this.storageManager.getDatabase().get(this.buildKey(void 0));
|
|
32
33
|
const allowed = Array.isArray(globalArr) ? globalArr.includes(toolName) : false;
|
|
33
|
-
logger.debug(
|
|
34
|
+
this.logger.debug(
|
|
34
35
|
`Checked allowed tool '${toolName}' in session '${sessionId ?? "global"}' \u2013 allowed=${allowed}`
|
|
35
36
|
);
|
|
36
37
|
return allowed;
|
package/dist/tools/errors.cjs
CHANGED
|
@@ -65,11 +65,12 @@ class ToolError {
|
|
|
65
65
|
* Tool execution timeout
|
|
66
66
|
*/
|
|
67
67
|
static executionTimeout(toolName, timeoutMs, sessionId) {
|
|
68
|
+
const message = timeoutMs > 0 ? `Tool '${toolName}' execution timed out after ${timeoutMs}ms` : `Tool '${toolName}' execution timed out`;
|
|
68
69
|
return new import_DextoRuntimeError.DextoRuntimeError(
|
|
69
70
|
import_error_codes.ToolErrorCode.EXECUTION_TIMEOUT,
|
|
70
71
|
import_types.ErrorScope.TOOLS,
|
|
71
72
|
import_types.ErrorType.TIMEOUT,
|
|
72
|
-
|
|
73
|
+
message,
|
|
73
74
|
{ toolName, timeoutMs, sessionId }
|
|
74
75
|
);
|
|
75
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/tools/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAItE;;;GAGG;AACH,qBAAa,SAAS;IAClB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;;;IAUhC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;IAU3E;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;IAU3D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/tools/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAItE;;;GAGG;AACH,qBAAa,SAAS;IAClB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;;;IAUhC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;IAU3E;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;IAU3D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;IAc/E;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;IAUxD;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM;;;IAUlD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;IAUlF;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;IAUnD;;OAEG;IACH,MAAM,CAAC,2BAA2B,CAAC,QAAQ,EAAE,MAAM;;;IAUnD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM;IAUpC;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;CAShE"}
|
package/dist/tools/errors.js
CHANGED
|
@@ -43,11 +43,12 @@ class ToolError {
|
|
|
43
43
|
* Tool execution timeout
|
|
44
44
|
*/
|
|
45
45
|
static executionTimeout(toolName, timeoutMs, sessionId) {
|
|
46
|
+
const message = timeoutMs > 0 ? `Tool '${toolName}' execution timed out after ${timeoutMs}ms` : `Tool '${toolName}' execution timed out`;
|
|
46
47
|
return new DextoRuntimeError(
|
|
47
48
|
ToolErrorCode.EXECUTION_TIMEOUT,
|
|
48
49
|
ErrorScope.TOOLS,
|
|
49
50
|
ErrorType.TIMEOUT,
|
|
50
|
-
|
|
51
|
+
message,
|
|
51
52
|
{ toolName, timeoutMs, sessionId }
|
|
52
53
|
);
|
|
53
54
|
}
|
|
@@ -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
|
+
});
|