@dexto/core 1.2.4 → 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
|
@@ -36,7 +36,7 @@ var crypto = __toESM(require("node:crypto"), 1);
|
|
|
36
36
|
var path = __toESM(require("node:path"), 1);
|
|
37
37
|
var import_command_validator = require("./command-validator.js");
|
|
38
38
|
var import_errors = require("./errors.js");
|
|
39
|
-
var
|
|
39
|
+
var import_types2 = require("../logger/v2/types.js");
|
|
40
40
|
const DEFAULT_TIMEOUT = 12e4;
|
|
41
41
|
const DEFAULT_MAX_TIMEOUT = 6e5;
|
|
42
42
|
const DEFAULT_MAX_CONCURRENT_PROCESSES = 5;
|
|
@@ -46,7 +46,8 @@ class ProcessService {
|
|
|
46
46
|
commandValidator;
|
|
47
47
|
initialized = false;
|
|
48
48
|
backgroundProcesses = /* @__PURE__ */ new Map();
|
|
49
|
-
|
|
49
|
+
logger;
|
|
50
|
+
constructor(config = {}, logger) {
|
|
50
51
|
this.config = {
|
|
51
52
|
securityLevel: config.securityLevel || "moderate",
|
|
52
53
|
maxTimeout: config.maxTimeout || DEFAULT_MAX_TIMEOUT,
|
|
@@ -57,19 +58,20 @@ class ProcessService {
|
|
|
57
58
|
environment: config.environment || {},
|
|
58
59
|
workingDirectory: config.workingDirectory
|
|
59
60
|
};
|
|
60
|
-
this.
|
|
61
|
+
this.logger = logger.createChild(import_types2.DextoLogComponent.PROCESS);
|
|
62
|
+
this.commandValidator = new import_command_validator.CommandValidator(this.config, this.logger);
|
|
61
63
|
}
|
|
62
64
|
/**
|
|
63
65
|
* Initialize the service
|
|
64
66
|
*/
|
|
65
67
|
async initialize() {
|
|
66
68
|
if (this.initialized) {
|
|
67
|
-
|
|
69
|
+
this.logger.debug("ProcessService already initialized");
|
|
68
70
|
return;
|
|
69
71
|
}
|
|
70
72
|
this.backgroundProcesses.clear();
|
|
71
73
|
this.initialized = true;
|
|
72
|
-
|
|
74
|
+
this.logger.info("ProcessService initialized successfully");
|
|
73
75
|
}
|
|
74
76
|
/**
|
|
75
77
|
* Execute a command
|
|
@@ -90,15 +92,15 @@ class ProcessService {
|
|
|
90
92
|
"Command requires approval but no approval mechanism provided"
|
|
91
93
|
);
|
|
92
94
|
}
|
|
93
|
-
|
|
95
|
+
this.logger.info(
|
|
94
96
|
`Command requires approval: ${normalizedCommand} - requesting user confirmation`
|
|
95
97
|
);
|
|
96
98
|
const approved = await options.approvalFunction(normalizedCommand);
|
|
97
99
|
if (!approved) {
|
|
98
|
-
|
|
100
|
+
this.logger.info(`Command approval denied: ${normalizedCommand}`);
|
|
99
101
|
throw import_errors.ProcessError.approvalDenied(normalizedCommand);
|
|
100
102
|
}
|
|
101
|
-
|
|
103
|
+
this.logger.info(`Command approved: ${normalizedCommand}`);
|
|
102
104
|
}
|
|
103
105
|
const rawTimeout = options.timeout !== void 0 && Number.isFinite(options.timeout) ? options.timeout : DEFAULT_TIMEOUT;
|
|
104
106
|
const timeout = Math.max(1, Math.min(rawTimeout, this.config.maxTimeout));
|
|
@@ -133,7 +135,7 @@ class ProcessService {
|
|
|
133
135
|
let stderr = "";
|
|
134
136
|
let killed = false;
|
|
135
137
|
let closed = false;
|
|
136
|
-
|
|
138
|
+
this.logger.debug(`Executing command: ${command}`);
|
|
137
139
|
const child = (0, import_node_child_process.spawn)(command, {
|
|
138
140
|
cwd: options.cwd,
|
|
139
141
|
env: options.env,
|
|
@@ -167,7 +169,7 @@ class ProcessService {
|
|
|
167
169
|
stderr += `
|
|
168
170
|
Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
169
171
|
}
|
|
170
|
-
|
|
172
|
+
this.logger.debug(
|
|
171
173
|
`Command completed with exit code ${exitCode} in ${duration}ms: ${command}`
|
|
172
174
|
);
|
|
173
175
|
resolve({
|
|
@@ -211,7 +213,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
211
213
|
env[key] = value;
|
|
212
214
|
}
|
|
213
215
|
}
|
|
214
|
-
|
|
216
|
+
this.logger.debug(`Starting background process ${processId}: ${command}`);
|
|
215
217
|
const child = (0, import_node_child_process.spawn)(command, {
|
|
216
218
|
cwd,
|
|
217
219
|
env,
|
|
@@ -242,13 +244,13 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
242
244
|
);
|
|
243
245
|
const killTimer = setTimeout(() => {
|
|
244
246
|
if (bgProcess.status === "running") {
|
|
245
|
-
|
|
247
|
+
this.logger.warn(
|
|
246
248
|
`Background process ${processId} timed out after ${bgTimeout}ms, sending SIGTERM`
|
|
247
249
|
);
|
|
248
250
|
child.kill("SIGTERM");
|
|
249
251
|
setTimeout(() => {
|
|
250
252
|
if (bgProcess.status === "running") {
|
|
251
|
-
|
|
253
|
+
this.logger.warn(
|
|
252
254
|
`Background process ${processId} did not respond to SIGTERM, sending SIGKILL`
|
|
253
255
|
);
|
|
254
256
|
child.kill("SIGKILL");
|
|
@@ -265,7 +267,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
265
267
|
} else {
|
|
266
268
|
if (!outputBuffer.truncated) {
|
|
267
269
|
outputBuffer.truncated = true;
|
|
268
|
-
|
|
270
|
+
this.logger.warn(`Output buffer full for process ${processId}`);
|
|
269
271
|
}
|
|
270
272
|
}
|
|
271
273
|
});
|
|
@@ -278,7 +280,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
278
280
|
} else {
|
|
279
281
|
if (!outputBuffer.truncated) {
|
|
280
282
|
outputBuffer.truncated = true;
|
|
281
|
-
|
|
283
|
+
this.logger.warn(`Error buffer full for process ${processId}`);
|
|
282
284
|
}
|
|
283
285
|
}
|
|
284
286
|
});
|
|
@@ -288,7 +290,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
288
290
|
bgProcess.exitCode = code ?? void 0;
|
|
289
291
|
bgProcess.completedAt = /* @__PURE__ */ new Date();
|
|
290
292
|
bgProcess.outputBuffer.complete = true;
|
|
291
|
-
|
|
293
|
+
this.logger.debug(`Background process ${processId} completed with exit code ${code}`);
|
|
292
294
|
});
|
|
293
295
|
child.on("error", (error) => {
|
|
294
296
|
clearTimeout(killTimer);
|
|
@@ -303,10 +305,10 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
303
305
|
} else {
|
|
304
306
|
if (!bgProcess.outputBuffer.truncated) {
|
|
305
307
|
bgProcess.outputBuffer.truncated = true;
|
|
306
|
-
|
|
308
|
+
this.logger.warn(`Error buffer full for process ${processId}`);
|
|
307
309
|
}
|
|
308
310
|
}
|
|
309
|
-
|
|
311
|
+
this.logger.error(`Background process ${processId} failed: ${error.message}`);
|
|
310
312
|
});
|
|
311
313
|
return {
|
|
312
314
|
processId,
|
|
@@ -353,7 +355,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
353
355
|
throw import_errors.ProcessError.processNotFound(processId);
|
|
354
356
|
}
|
|
355
357
|
if (bgProcess.status !== "running") {
|
|
356
|
-
|
|
358
|
+
this.logger.debug(`Process ${processId} is not running (status: ${bgProcess.status})`);
|
|
357
359
|
return;
|
|
358
360
|
}
|
|
359
361
|
try {
|
|
@@ -363,7 +365,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
363
365
|
bgProcess.child.kill("SIGKILL");
|
|
364
366
|
}
|
|
365
367
|
}, 5e3);
|
|
366
|
-
|
|
368
|
+
this.logger.debug(`Process ${processId} sent SIGTERM`);
|
|
367
369
|
} catch (error) {
|
|
368
370
|
throw import_errors.ProcessError.killFailed(
|
|
369
371
|
processId,
|
|
@@ -431,7 +433,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
431
433
|
const age = now - bgProcess.completedAt.getTime();
|
|
432
434
|
if (age > CLEANUP_AGE) {
|
|
433
435
|
this.backgroundProcesses.delete(processId);
|
|
434
|
-
|
|
436
|
+
this.logger.debug(`Cleaned up old process ${processId}`);
|
|
435
437
|
}
|
|
436
438
|
}
|
|
437
439
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Secure command execution and process management for Dexto internal tools
|
|
5
5
|
*/
|
|
6
6
|
import { ProcessConfig, ExecuteOptions, ProcessResult, ProcessHandle, ProcessOutput, ProcessInfo } from './types.js';
|
|
7
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
7
8
|
/**
|
|
8
9
|
* ProcessService - Handles command execution and process management
|
|
9
10
|
* TODO: Add tests for this class
|
|
@@ -13,7 +14,8 @@ export declare class ProcessService {
|
|
|
13
14
|
private commandValidator;
|
|
14
15
|
private initialized;
|
|
15
16
|
private backgroundProcesses;
|
|
16
|
-
|
|
17
|
+
private logger;
|
|
18
|
+
constructor(config: Partial<ProcessConfig> | undefined, logger: IDextoLogger);
|
|
17
19
|
/**
|
|
18
20
|
* Initialize the service
|
|
19
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-service.d.ts","sourceRoot":"","sources":["../../src/process/process-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EACH,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,EAEd,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"process-service.d.ts","sourceRoot":"","sources":["../../src/process/process-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EACH,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,EAEd,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAuB1D;;;GAGG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,mBAAmB,CAA6C;IACxE,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,YAAK,EAAE,MAAM,EAAE,YAAY;IAkBrE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACG,cAAc,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IAwEzC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsFzB;;OAEG;YACW,mBAAmB;IAiKjC;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA+BjE;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCnD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAiB7C;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC;IAIpC;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAcjC"}
|
|
@@ -4,7 +4,7 @@ import * as crypto from "node:crypto";
|
|
|
4
4
|
import * as path from "node:path";
|
|
5
5
|
import { CommandValidator } from "./command-validator.js";
|
|
6
6
|
import { ProcessError } from "./errors.js";
|
|
7
|
-
import {
|
|
7
|
+
import { DextoLogComponent } from "../logger/v2/types.js";
|
|
8
8
|
const DEFAULT_TIMEOUT = 12e4;
|
|
9
9
|
const DEFAULT_MAX_TIMEOUT = 6e5;
|
|
10
10
|
const DEFAULT_MAX_CONCURRENT_PROCESSES = 5;
|
|
@@ -14,7 +14,8 @@ class ProcessService {
|
|
|
14
14
|
commandValidator;
|
|
15
15
|
initialized = false;
|
|
16
16
|
backgroundProcesses = /* @__PURE__ */ new Map();
|
|
17
|
-
|
|
17
|
+
logger;
|
|
18
|
+
constructor(config = {}, logger) {
|
|
18
19
|
this.config = {
|
|
19
20
|
securityLevel: config.securityLevel || "moderate",
|
|
20
21
|
maxTimeout: config.maxTimeout || DEFAULT_MAX_TIMEOUT,
|
|
@@ -25,19 +26,20 @@ class ProcessService {
|
|
|
25
26
|
environment: config.environment || {},
|
|
26
27
|
workingDirectory: config.workingDirectory
|
|
27
28
|
};
|
|
28
|
-
this.
|
|
29
|
+
this.logger = logger.createChild(DextoLogComponent.PROCESS);
|
|
30
|
+
this.commandValidator = new CommandValidator(this.config, this.logger);
|
|
29
31
|
}
|
|
30
32
|
/**
|
|
31
33
|
* Initialize the service
|
|
32
34
|
*/
|
|
33
35
|
async initialize() {
|
|
34
36
|
if (this.initialized) {
|
|
35
|
-
logger.debug("ProcessService already initialized");
|
|
37
|
+
this.logger.debug("ProcessService already initialized");
|
|
36
38
|
return;
|
|
37
39
|
}
|
|
38
40
|
this.backgroundProcesses.clear();
|
|
39
41
|
this.initialized = true;
|
|
40
|
-
logger.info("ProcessService initialized successfully");
|
|
42
|
+
this.logger.info("ProcessService initialized successfully");
|
|
41
43
|
}
|
|
42
44
|
/**
|
|
43
45
|
* Execute a command
|
|
@@ -58,15 +60,15 @@ class ProcessService {
|
|
|
58
60
|
"Command requires approval but no approval mechanism provided"
|
|
59
61
|
);
|
|
60
62
|
}
|
|
61
|
-
logger.info(
|
|
63
|
+
this.logger.info(
|
|
62
64
|
`Command requires approval: ${normalizedCommand} - requesting user confirmation`
|
|
63
65
|
);
|
|
64
66
|
const approved = await options.approvalFunction(normalizedCommand);
|
|
65
67
|
if (!approved) {
|
|
66
|
-
logger.info(`Command approval denied: ${normalizedCommand}`);
|
|
68
|
+
this.logger.info(`Command approval denied: ${normalizedCommand}`);
|
|
67
69
|
throw ProcessError.approvalDenied(normalizedCommand);
|
|
68
70
|
}
|
|
69
|
-
logger.info(`Command approved: ${normalizedCommand}`);
|
|
71
|
+
this.logger.info(`Command approved: ${normalizedCommand}`);
|
|
70
72
|
}
|
|
71
73
|
const rawTimeout = options.timeout !== void 0 && Number.isFinite(options.timeout) ? options.timeout : DEFAULT_TIMEOUT;
|
|
72
74
|
const timeout = Math.max(1, Math.min(rawTimeout, this.config.maxTimeout));
|
|
@@ -101,7 +103,7 @@ class ProcessService {
|
|
|
101
103
|
let stderr = "";
|
|
102
104
|
let killed = false;
|
|
103
105
|
let closed = false;
|
|
104
|
-
logger.debug(`Executing command: ${command}`);
|
|
106
|
+
this.logger.debug(`Executing command: ${command}`);
|
|
105
107
|
const child = spawn(command, {
|
|
106
108
|
cwd: options.cwd,
|
|
107
109
|
env: options.env,
|
|
@@ -135,7 +137,7 @@ class ProcessService {
|
|
|
135
137
|
stderr += `
|
|
136
138
|
Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
137
139
|
}
|
|
138
|
-
logger.debug(
|
|
140
|
+
this.logger.debug(
|
|
139
141
|
`Command completed with exit code ${exitCode} in ${duration}ms: ${command}`
|
|
140
142
|
);
|
|
141
143
|
resolve({
|
|
@@ -179,7 +181,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
179
181
|
env[key] = value;
|
|
180
182
|
}
|
|
181
183
|
}
|
|
182
|
-
logger.debug(`Starting background process ${processId}: ${command}`);
|
|
184
|
+
this.logger.debug(`Starting background process ${processId}: ${command}`);
|
|
183
185
|
const child = spawn(command, {
|
|
184
186
|
cwd,
|
|
185
187
|
env,
|
|
@@ -210,13 +212,13 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
210
212
|
);
|
|
211
213
|
const killTimer = setTimeout(() => {
|
|
212
214
|
if (bgProcess.status === "running") {
|
|
213
|
-
logger.warn(
|
|
215
|
+
this.logger.warn(
|
|
214
216
|
`Background process ${processId} timed out after ${bgTimeout}ms, sending SIGTERM`
|
|
215
217
|
);
|
|
216
218
|
child.kill("SIGTERM");
|
|
217
219
|
setTimeout(() => {
|
|
218
220
|
if (bgProcess.status === "running") {
|
|
219
|
-
logger.warn(
|
|
221
|
+
this.logger.warn(
|
|
220
222
|
`Background process ${processId} did not respond to SIGTERM, sending SIGKILL`
|
|
221
223
|
);
|
|
222
224
|
child.kill("SIGKILL");
|
|
@@ -233,7 +235,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
233
235
|
} else {
|
|
234
236
|
if (!outputBuffer.truncated) {
|
|
235
237
|
outputBuffer.truncated = true;
|
|
236
|
-
logger.warn(`Output buffer full for process ${processId}`);
|
|
238
|
+
this.logger.warn(`Output buffer full for process ${processId}`);
|
|
237
239
|
}
|
|
238
240
|
}
|
|
239
241
|
});
|
|
@@ -246,7 +248,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
246
248
|
} else {
|
|
247
249
|
if (!outputBuffer.truncated) {
|
|
248
250
|
outputBuffer.truncated = true;
|
|
249
|
-
logger.warn(`Error buffer full for process ${processId}`);
|
|
251
|
+
this.logger.warn(`Error buffer full for process ${processId}`);
|
|
250
252
|
}
|
|
251
253
|
}
|
|
252
254
|
});
|
|
@@ -256,7 +258,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
256
258
|
bgProcess.exitCode = code ?? void 0;
|
|
257
259
|
bgProcess.completedAt = /* @__PURE__ */ new Date();
|
|
258
260
|
bgProcess.outputBuffer.complete = true;
|
|
259
|
-
logger.debug(`Background process ${processId} completed with exit code ${code}`);
|
|
261
|
+
this.logger.debug(`Background process ${processId} completed with exit code ${code}`);
|
|
260
262
|
});
|
|
261
263
|
child.on("error", (error) => {
|
|
262
264
|
clearTimeout(killTimer);
|
|
@@ -271,10 +273,10 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
271
273
|
} else {
|
|
272
274
|
if (!bgProcess.outputBuffer.truncated) {
|
|
273
275
|
bgProcess.outputBuffer.truncated = true;
|
|
274
|
-
logger.warn(`Error buffer full for process ${processId}`);
|
|
276
|
+
this.logger.warn(`Error buffer full for process ${processId}`);
|
|
275
277
|
}
|
|
276
278
|
}
|
|
277
|
-
logger.error(`Background process ${processId} failed: ${error.message}`);
|
|
279
|
+
this.logger.error(`Background process ${processId} failed: ${error.message}`);
|
|
278
280
|
});
|
|
279
281
|
return {
|
|
280
282
|
processId,
|
|
@@ -321,7 +323,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
321
323
|
throw ProcessError.processNotFound(processId);
|
|
322
324
|
}
|
|
323
325
|
if (bgProcess.status !== "running") {
|
|
324
|
-
logger.debug(`Process ${processId} is not running (status: ${bgProcess.status})`);
|
|
326
|
+
this.logger.debug(`Process ${processId} is not running (status: ${bgProcess.status})`);
|
|
325
327
|
return;
|
|
326
328
|
}
|
|
327
329
|
try {
|
|
@@ -331,7 +333,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
331
333
|
bgProcess.child.kill("SIGKILL");
|
|
332
334
|
}
|
|
333
335
|
}, 5e3);
|
|
334
|
-
logger.debug(`Process ${processId} sent SIGTERM`);
|
|
336
|
+
this.logger.debug(`Process ${processId} sent SIGTERM`);
|
|
335
337
|
} catch (error) {
|
|
336
338
|
throw ProcessError.killFailed(
|
|
337
339
|
processId,
|
|
@@ -399,7 +401,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
399
401
|
const age = now - bgProcess.completedAt.getTime();
|
|
400
402
|
if (age > CLEANUP_AGE) {
|
|
401
403
|
this.backgroundProcesses.delete(processId);
|
|
402
|
-
logger.debug(`Cleaned up old process ${processId}`);
|
|
404
|
+
this.logger.debug(`Cleaned up old process ${processId}`);
|
|
403
405
|
}
|
|
404
406
|
}
|
|
405
407
|
}
|
|
@@ -26,37 +26,41 @@ var import_file_prompt_provider = require("./providers/file-prompt-provider.js")
|
|
|
26
26
|
var import_starter_prompt_provider = require("./providers/starter-prompt-provider.js");
|
|
27
27
|
var import_custom_prompt_provider = require("./providers/custom-prompt-provider.js");
|
|
28
28
|
var import_errors = require("./errors.js");
|
|
29
|
-
var
|
|
29
|
+
var import_types = require("../logger/v2/types.js");
|
|
30
30
|
var import_utils = require("./utils.js");
|
|
31
31
|
class PromptManager {
|
|
32
|
-
constructor(mcpManager, resourceManager, agentConfig, eventBus, database) {
|
|
32
|
+
constructor(mcpManager, resourceManager, agentConfig, eventBus, database, logger) {
|
|
33
33
|
this.eventBus = eventBus;
|
|
34
34
|
this.database = database;
|
|
35
|
-
this.
|
|
36
|
-
this.providers.set("
|
|
37
|
-
this.providers.set("
|
|
38
|
-
this.providers.set("
|
|
39
|
-
|
|
35
|
+
this.logger = logger.createChild(import_types.DextoLogComponent.PROMPT);
|
|
36
|
+
this.providers.set("mcp", new import_mcp_prompt_provider.MCPPromptProvider(mcpManager, this.logger));
|
|
37
|
+
this.providers.set("file", new import_file_prompt_provider.FilePromptProvider({ resourceManager }, this.logger));
|
|
38
|
+
this.providers.set("starter", new import_starter_prompt_provider.StarterPromptProvider(agentConfig, this.logger));
|
|
39
|
+
this.providers.set(
|
|
40
|
+
"custom",
|
|
41
|
+
new import_custom_prompt_provider.CustomPromptProvider(this.database, resourceManager, this.logger)
|
|
42
|
+
);
|
|
43
|
+
this.logger.debug(
|
|
40
44
|
`PromptManager initialized with providers: ${Array.from(this.providers.keys()).join(", ")}`
|
|
41
45
|
);
|
|
42
46
|
const refresh = async (reason) => {
|
|
43
|
-
|
|
47
|
+
this.logger.debug(`PromptManager refreshing due to: ${reason}`);
|
|
44
48
|
await this.refresh();
|
|
45
49
|
};
|
|
46
|
-
this.eventBus.on("
|
|
50
|
+
this.eventBus.on("mcp:server-connected", async (p) => {
|
|
47
51
|
if (p.success) {
|
|
48
52
|
await refresh(`mcpServerConnected:${p.name}`);
|
|
49
53
|
}
|
|
50
54
|
});
|
|
51
|
-
this.eventBus.on("
|
|
55
|
+
this.eventBus.on("mcp:server-removed", async (p) => {
|
|
52
56
|
await refresh(`mcpServerRemoved:${p.serverName}`);
|
|
53
57
|
});
|
|
54
|
-
this.eventBus.on("
|
|
58
|
+
this.eventBus.on("mcp:server-updated", async (p) => {
|
|
55
59
|
await refresh(`mcpServerUpdated:${p.serverName}`);
|
|
56
60
|
});
|
|
57
|
-
this.eventBus.on("
|
|
61
|
+
this.eventBus.on("mcp:prompts-list-changed", async (p) => {
|
|
58
62
|
await this.updatePromptsForServer(p.serverName, p.prompts);
|
|
59
|
-
|
|
63
|
+
this.logger.debug(
|
|
60
64
|
`\u{1F504} Surgically updated prompts for server '${p.serverName}': [${p.prompts.join(", ")}]`
|
|
61
65
|
);
|
|
62
66
|
});
|
|
@@ -65,9 +69,10 @@ class PromptManager {
|
|
|
65
69
|
promptIndex;
|
|
66
70
|
aliasMap = /* @__PURE__ */ new Map();
|
|
67
71
|
buildPromise = null;
|
|
72
|
+
logger;
|
|
68
73
|
async initialize() {
|
|
69
74
|
await this.ensureCache();
|
|
70
|
-
|
|
75
|
+
this.logger.debug("PromptManager initialization complete");
|
|
71
76
|
}
|
|
72
77
|
async list() {
|
|
73
78
|
await this.ensureCache();
|
|
@@ -204,7 +209,7 @@ class PromptManager {
|
|
|
204
209
|
provider.invalidateCache();
|
|
205
210
|
}
|
|
206
211
|
await this.ensureCache();
|
|
207
|
-
|
|
212
|
+
this.logger.info("PromptManager refreshed");
|
|
208
213
|
}
|
|
209
214
|
/**
|
|
210
215
|
* Surgically update prompts for a specific MCP server instead of full cache rebuild
|
|
@@ -224,7 +229,9 @@ class PromptManager {
|
|
|
224
229
|
this.insertPrompt(this.promptIndex, this.aliasMap, "mcp", prompt);
|
|
225
230
|
}
|
|
226
231
|
} catch (error) {
|
|
227
|
-
|
|
232
|
+
this.logger.debug(
|
|
233
|
+
`Failed to get updated prompts for server '${serverName}': ${error}`
|
|
234
|
+
);
|
|
228
235
|
}
|
|
229
236
|
}
|
|
230
237
|
}
|
|
@@ -294,7 +301,7 @@ class PromptManager {
|
|
|
294
301
|
this.insertPrompt(index, aliases, providerName, prompt);
|
|
295
302
|
}
|
|
296
303
|
} catch (error) {
|
|
297
|
-
|
|
304
|
+
this.logger.error(
|
|
298
305
|
`Failed to get prompts from ${providerName} provider: ${error instanceof Error ? error.message : String(error)}`
|
|
299
306
|
);
|
|
300
307
|
}
|
|
@@ -303,7 +310,7 @@ class PromptManager {
|
|
|
303
310
|
this.aliasMap = aliases;
|
|
304
311
|
if (index.size > 0) {
|
|
305
312
|
const sample = Array.from(index.keys()).slice(0, 5);
|
|
306
|
-
|
|
313
|
+
this.logger.debug(
|
|
307
314
|
`\u{1F4CB} Prompt discovery: ${index.size} prompts. Sample: ${sample.join(", ")}`
|
|
308
315
|
);
|
|
309
316
|
}
|
|
@@ -4,6 +4,7 @@ import type { GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
|
|
|
4
4
|
import type { ValidatedAgentConfig } from '../agent/schemas.js';
|
|
5
5
|
import type { AgentEventBus } from '../events/index.js';
|
|
6
6
|
import { type CreateCustomPromptInput } from './providers/custom-prompt-provider.js';
|
|
7
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
7
8
|
import type { ResourceManager } from '../resources/manager.js';
|
|
8
9
|
import type { Database } from '../storage/database/types.js';
|
|
9
10
|
export declare class PromptManager {
|
|
@@ -13,7 +14,8 @@ export declare class PromptManager {
|
|
|
13
14
|
private promptIndex;
|
|
14
15
|
private aliasMap;
|
|
15
16
|
private buildPromise;
|
|
16
|
-
|
|
17
|
+
private logger;
|
|
18
|
+
constructor(mcpManager: MCPManager, resourceManager: ResourceManager, agentConfig: ValidatedAgentConfig, eventBus: AgentEventBus, database: Database, logger: IDextoLogger);
|
|
17
19
|
initialize(): Promise<void>;
|
|
18
20
|
list(): Promise<PromptSet>;
|
|
19
21
|
has(name: string): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-manager.d.ts","sourceRoot":"","sources":["../../src/prompts/prompt-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,OAAO,EAEH,KAAK,uBAAuB,EAC/B,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-manager.d.ts","sourceRoot":"","sources":["../../src/prompts/prompt-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,OAAO,EAEH,KAAK,uBAAuB,EAC/B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAU7D,qBAAa,aAAa;IAWlB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAX7B,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,MAAM,CAAe;gBAGzB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,oBAAoB,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,QAAQ,EACnC,MAAM,EAAE,YAAY;IAyClB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAU1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAY9F;;;;;;;;;;;;;OAaG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAkDjF,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAa7D,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAUvE,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASrD;;;;;;;;;;;;OAYG;IACG,aAAa,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7B,GACP,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAiC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;OAEG;YACW,sBAAsB;IA+BpC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,kBAAkB;YAqBZ,WAAW;YAgBX,UAAU;IA4BxB,OAAO,CAAC,YAAY;YA8DN,SAAS;CAgB1B"}
|
|
@@ -6,37 +6,41 @@ import {
|
|
|
6
6
|
CustomPromptProvider
|
|
7
7
|
} from "./providers/custom-prompt-provider.js";
|
|
8
8
|
import { PromptError } from "./errors.js";
|
|
9
|
-
import {
|
|
9
|
+
import { DextoLogComponent } from "../logger/v2/types.js";
|
|
10
10
|
import { normalizePromptArgs, flattenPromptResult } from "./utils.js";
|
|
11
11
|
class PromptManager {
|
|
12
|
-
constructor(mcpManager, resourceManager, agentConfig, eventBus, database) {
|
|
12
|
+
constructor(mcpManager, resourceManager, agentConfig, eventBus, database, logger) {
|
|
13
13
|
this.eventBus = eventBus;
|
|
14
14
|
this.database = database;
|
|
15
|
-
this.
|
|
16
|
-
this.providers.set("
|
|
17
|
-
this.providers.set("
|
|
18
|
-
this.providers.set("
|
|
19
|
-
|
|
15
|
+
this.logger = logger.createChild(DextoLogComponent.PROMPT);
|
|
16
|
+
this.providers.set("mcp", new MCPPromptProvider(mcpManager, this.logger));
|
|
17
|
+
this.providers.set("file", new FilePromptProvider({ resourceManager }, this.logger));
|
|
18
|
+
this.providers.set("starter", new StarterPromptProvider(agentConfig, this.logger));
|
|
19
|
+
this.providers.set(
|
|
20
|
+
"custom",
|
|
21
|
+
new CustomPromptProvider(this.database, resourceManager, this.logger)
|
|
22
|
+
);
|
|
23
|
+
this.logger.debug(
|
|
20
24
|
`PromptManager initialized with providers: ${Array.from(this.providers.keys()).join(", ")}`
|
|
21
25
|
);
|
|
22
26
|
const refresh = async (reason) => {
|
|
23
|
-
logger.debug(`PromptManager refreshing due to: ${reason}`);
|
|
27
|
+
this.logger.debug(`PromptManager refreshing due to: ${reason}`);
|
|
24
28
|
await this.refresh();
|
|
25
29
|
};
|
|
26
|
-
this.eventBus.on("
|
|
30
|
+
this.eventBus.on("mcp:server-connected", async (p) => {
|
|
27
31
|
if (p.success) {
|
|
28
32
|
await refresh(`mcpServerConnected:${p.name}`);
|
|
29
33
|
}
|
|
30
34
|
});
|
|
31
|
-
this.eventBus.on("
|
|
35
|
+
this.eventBus.on("mcp:server-removed", async (p) => {
|
|
32
36
|
await refresh(`mcpServerRemoved:${p.serverName}`);
|
|
33
37
|
});
|
|
34
|
-
this.eventBus.on("
|
|
38
|
+
this.eventBus.on("mcp:server-updated", async (p) => {
|
|
35
39
|
await refresh(`mcpServerUpdated:${p.serverName}`);
|
|
36
40
|
});
|
|
37
|
-
this.eventBus.on("
|
|
41
|
+
this.eventBus.on("mcp:prompts-list-changed", async (p) => {
|
|
38
42
|
await this.updatePromptsForServer(p.serverName, p.prompts);
|
|
39
|
-
logger.debug(
|
|
43
|
+
this.logger.debug(
|
|
40
44
|
`\u{1F504} Surgically updated prompts for server '${p.serverName}': [${p.prompts.join(", ")}]`
|
|
41
45
|
);
|
|
42
46
|
});
|
|
@@ -45,9 +49,10 @@ class PromptManager {
|
|
|
45
49
|
promptIndex;
|
|
46
50
|
aliasMap = /* @__PURE__ */ new Map();
|
|
47
51
|
buildPromise = null;
|
|
52
|
+
logger;
|
|
48
53
|
async initialize() {
|
|
49
54
|
await this.ensureCache();
|
|
50
|
-
logger.debug("PromptManager initialization complete");
|
|
55
|
+
this.logger.debug("PromptManager initialization complete");
|
|
51
56
|
}
|
|
52
57
|
async list() {
|
|
53
58
|
await this.ensureCache();
|
|
@@ -184,7 +189,7 @@ class PromptManager {
|
|
|
184
189
|
provider.invalidateCache();
|
|
185
190
|
}
|
|
186
191
|
await this.ensureCache();
|
|
187
|
-
logger.info("PromptManager refreshed");
|
|
192
|
+
this.logger.info("PromptManager refreshed");
|
|
188
193
|
}
|
|
189
194
|
/**
|
|
190
195
|
* Surgically update prompts for a specific MCP server instead of full cache rebuild
|
|
@@ -204,7 +209,9 @@ class PromptManager {
|
|
|
204
209
|
this.insertPrompt(this.promptIndex, this.aliasMap, "mcp", prompt);
|
|
205
210
|
}
|
|
206
211
|
} catch (error) {
|
|
207
|
-
logger.debug(
|
|
212
|
+
this.logger.debug(
|
|
213
|
+
`Failed to get updated prompts for server '${serverName}': ${error}`
|
|
214
|
+
);
|
|
208
215
|
}
|
|
209
216
|
}
|
|
210
217
|
}
|
|
@@ -274,7 +281,7 @@ class PromptManager {
|
|
|
274
281
|
this.insertPrompt(index, aliases, providerName, prompt);
|
|
275
282
|
}
|
|
276
283
|
} catch (error) {
|
|
277
|
-
logger.error(
|
|
284
|
+
this.logger.error(
|
|
278
285
|
`Failed to get prompts from ${providerName} provider: ${error instanceof Error ? error.message : String(error)}`
|
|
279
286
|
);
|
|
280
287
|
}
|
|
@@ -283,7 +290,7 @@ class PromptManager {
|
|
|
283
290
|
this.aliasMap = aliases;
|
|
284
291
|
if (index.size > 0) {
|
|
285
292
|
const sample = Array.from(index.keys()).slice(0, 5);
|
|
286
|
-
logger.debug(
|
|
293
|
+
this.logger.debug(
|
|
287
294
|
`\u{1F4CB} Prompt discovery: ${index.size} prompts. Sample: ${sample.join(", ")}`
|
|
288
295
|
);
|
|
289
296
|
}
|