@dexto/core 1.2.4 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -0
- package/dist/agent/DextoAgent.cjs +579 -345
- package/dist/agent/DextoAgent.d.ts +131 -83
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +573 -336
- package/dist/agent/agentCard.cjs +4 -2
- package/dist/agent/agentCard.d.ts +0 -1
- package/dist/agent/agentCard.d.ts.map +1 -1
- package/dist/agent/agentCard.js +4 -2
- package/dist/agent/index.cjs +3 -7
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +7 -6
- package/dist/agent/schemas.cjs +179 -75
- package/dist/agent/schemas.d.ts +2678 -586
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +172 -65
- package/dist/agent/state-manager.cjs +28 -23
- package/dist/agent/state-manager.d.ts +4 -1
- package/dist/agent/state-manager.d.ts.map +1 -1
- package/dist/agent/state-manager.js +28 -23
- package/dist/{preferences/constants.cjs → agent/types.cjs} +2 -14
- package/dist/agent/types.d.ts +54 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +0 -0
- package/dist/approval/errors.cjs +89 -8
- package/dist/approval/errors.d.ts +5 -3
- package/dist/approval/errors.d.ts.map +1 -1
- package/dist/approval/errors.js +89 -8
- package/dist/approval/{providers/factory.d.ts → factory.d.ts} +2 -2
- package/dist/approval/factory.d.ts.map +1 -0
- package/dist/approval/{providers/factory.js → factory.js} +1 -1
- package/dist/approval/index.cjs +4 -6
- package/dist/approval/index.d.ts +3 -5
- package/dist/approval/index.d.ts.map +1 -1
- package/dist/approval/index.js +4 -5
- package/dist/approval/manager.cjs +140 -37
- package/dist/approval/manager.d.ts +56 -17
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +141 -38
- package/dist/approval/schemas.cjs +9 -1
- package/dist/approval/schemas.d.ts +120 -35
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +9 -2
- package/dist/approval/types.cjs +14 -2
- package/dist/approval/types.d.ts +64 -12
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +12 -1
- package/dist/context/compression/middle-removal.cjs +11 -11
- package/dist/context/compression/middle-removal.d.ts +3 -1
- package/dist/context/compression/middle-removal.d.ts.map +1 -1
- package/dist/context/compression/middle-removal.js +11 -11
- package/dist/context/compression/oldest-removal.cjs +18 -5
- package/dist/context/compression/oldest-removal.d.ts +3 -1
- package/dist/context/compression/oldest-removal.d.ts.map +1 -1
- package/dist/context/compression/oldest-removal.js +18 -5
- package/dist/context/manager.cjs +94 -67
- package/dist/context/manager.d.ts +13 -10
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +94 -67
- package/dist/context/utils.cjs +79 -65
- package/dist/context/utils.d.ts +15 -12
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +45 -31
- package/dist/errors/DextoRuntimeError.d.ts +5 -5
- package/dist/errors/DextoRuntimeError.d.ts.map +1 -1
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts +5 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +1 -2
- package/dist/errors/types.cjs +1 -2
- package/dist/errors/types.d.ts +5 -8
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +1 -2
- package/dist/events/index.cjs +125 -55
- package/dist/events/index.d.ts +204 -97
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +123 -55
- package/dist/filesystem/filesystem-service.cjs +40 -30
- package/dist/filesystem/filesystem-service.d.ts +9 -1
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +40 -30
- package/dist/filesystem/path-validator.cjs +4 -3
- package/dist/filesystem/path-validator.d.ts +3 -1
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +4 -3
- package/dist/filesystem/types.d.ts +3 -3
- package/dist/filesystem/types.d.ts.map +1 -1
- package/dist/index.browser.cjs +7 -0
- package/dist/index.browser.d.ts +2 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +4 -0
- package/dist/index.cjs +0 -7
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/llm/formatters/anthropic.cjs +32 -21
- package/dist/llm/formatters/anthropic.d.ts +3 -0
- package/dist/llm/formatters/anthropic.d.ts.map +1 -1
- package/dist/llm/formatters/anthropic.js +32 -21
- package/dist/llm/formatters/factory.cjs +6 -7
- package/dist/llm/formatters/factory.d.ts +2 -1
- package/dist/llm/formatters/factory.d.ts.map +1 -1
- package/dist/llm/formatters/factory.js +4 -5
- package/dist/llm/formatters/openai.cjs +38 -9
- package/dist/llm/formatters/openai.d.ts +3 -0
- package/dist/llm/formatters/openai.d.ts.map +1 -1
- package/dist/llm/formatters/openai.js +38 -9
- package/dist/llm/formatters/vercel.cjs +49 -8
- package/dist/llm/formatters/vercel.d.ts +3 -0
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +49 -8
- package/dist/llm/registry.cjs +153 -17
- package/dist/llm/registry.d.ts +5 -2
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +143 -7
- package/dist/llm/resolver.cjs +4 -4
- package/dist/llm/resolver.d.ts +3 -2
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +4 -4
- package/dist/llm/schemas.cjs +6 -3
- package/dist/llm/schemas.d.ts +51 -17
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +5 -3
- package/dist/llm/services/anthropic.cjs +216 -183
- package/dist/llm/services/anthropic.d.ts +3 -1
- package/dist/llm/services/anthropic.d.ts.map +1 -1
- package/dist/llm/services/anthropic.js +217 -184
- package/dist/llm/services/factory.cjs +15 -9
- package/dist/llm/services/factory.d.ts +2 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +15 -9
- package/dist/llm/services/openai.cjs +262 -225
- package/dist/llm/services/openai.d.ts +3 -1
- package/dist/llm/services/openai.d.ts.map +1 -1
- package/dist/llm/services/openai.js +263 -226
- package/dist/llm/services/test-utils.integration.cjs +58 -12
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +58 -12
- package/dist/llm/services/types.d.ts +9 -0
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +163 -111
- package/dist/llm/services/vercel.d.ts +3 -1
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +157 -105
- package/dist/llm/tokenizer/factory.cjs +2 -2
- package/dist/llm/tokenizer/factory.d.ts +3 -1
- package/dist/llm/tokenizer/factory.d.ts.map +1 -1
- package/dist/llm/tokenizer/factory.js +2 -2
- package/dist/llm/tokenizer/openai.cjs +16 -9
- package/dist/llm/tokenizer/openai.d.ts +4 -1
- package/dist/llm/tokenizer/openai.d.ts.map +1 -1
- package/dist/llm/tokenizer/openai.js +16 -9
- package/dist/llm/validation.cjs +8 -9
- package/dist/llm/validation.d.ts +3 -1
- package/dist/llm/validation.d.ts.map +1 -1
- package/dist/llm/validation.js +5 -6
- package/dist/logger/factory.cjs +54 -0
- package/dist/logger/factory.d.ts +36 -0
- package/dist/logger/factory.d.ts.map +1 -0
- package/dist/logger/factory.js +31 -0
- package/dist/logger/index.cjs +42 -3
- package/dist/logger/index.d.ts +17 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +26 -1
- package/dist/logger/logger.cjs +30 -17
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +30 -17
- package/dist/logger/v2/dexto-logger.cjs +141 -0
- package/dist/logger/v2/dexto-logger.d.ts +54 -0
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -0
- package/dist/logger/v2/dexto-logger.js +118 -0
- package/dist/{preferences → logger/v2}/error-codes.cjs +11 -10
- package/dist/logger/v2/error-codes.d.ts +13 -0
- package/dist/logger/v2/error-codes.d.ts.map +1 -0
- package/dist/logger/v2/error-codes.js +13 -0
- package/dist/logger/v2/errors.cjs +107 -0
- package/dist/logger/v2/errors.d.ts +32 -0
- package/dist/logger/v2/errors.d.ts.map +1 -0
- package/dist/logger/v2/errors.js +84 -0
- package/dist/logger/v2/schemas.cjs +57 -0
- package/dist/logger/v2/schemas.d.ts +147 -0
- package/dist/logger/v2/schemas.d.ts.map +1 -0
- package/dist/logger/v2/schemas.js +33 -0
- package/dist/logger/v2/transport-factory.cjs +53 -0
- package/dist/logger/v2/transport-factory.d.ts +21 -0
- package/dist/logger/v2/transport-factory.d.ts.map +1 -0
- package/dist/logger/v2/transport-factory.js +29 -0
- package/dist/logger/v2/transports/console-transport.cjs +79 -0
- package/dist/logger/v2/transports/console-transport.d.ts +23 -0
- package/dist/logger/v2/transports/console-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/console-transport.js +46 -0
- package/dist/logger/v2/transports/file-transport.cjs +161 -0
- package/dist/logger/v2/transports/file-transport.d.ts +46 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/file-transport.js +128 -0
- package/dist/logger/v2/types.cjs +49 -0
- package/dist/logger/v2/types.d.ts +123 -0
- package/dist/logger/v2/types.d.ts.map +1 -0
- package/dist/logger/v2/types.js +26 -0
- package/dist/mcp/manager.cjs +88 -78
- package/dist/mcp/manager.d.ts +3 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +88 -78
- package/dist/mcp/mcp-client.cjs +109 -79
- package/dist/mcp/mcp-client.d.ts +3 -0
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +102 -72
- package/dist/memory/index.cjs +2 -0
- package/dist/memory/index.d.ts +1 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +3 -1
- package/dist/memory/manager.cjs +9 -7
- package/dist/memory/manager.d.ts +3 -1
- package/dist/memory/manager.d.ts.map +1 -1
- package/dist/memory/manager.js +9 -7
- package/dist/memory/schemas.cjs +10 -0
- package/dist/memory/schemas.d.ts +37 -8
- package/dist/memory/schemas.d.ts.map +1 -1
- package/dist/memory/schemas.js +9 -0
- package/dist/plugins/manager.cjs +21 -19
- package/dist/plugins/manager.d.ts +3 -1
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +21 -19
- package/dist/plugins/schemas.d.ts +9 -9
- package/dist/plugins/types.d.ts +2 -2
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.cjs +30 -20
- package/dist/process/command-validator.d.ts +4 -1
- package/dist/process/command-validator.d.ts.map +1 -1
- package/dist/process/command-validator.js +30 -20
- package/dist/process/process-service.cjs +23 -21
- package/dist/process/process-service.d.ts +3 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +23 -21
- package/dist/prompts/index.cjs +6 -8
- package/dist/prompts/index.d.ts +2 -4
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +4 -6
- package/dist/prompts/prompt-manager.cjs +25 -20
- package/dist/prompts/prompt-manager.d.ts +3 -1
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +25 -20
- package/dist/prompts/providers/config-prompt-provider.cjs +331 -0
- package/dist/prompts/providers/config-prompt-provider.d.ts +34 -0
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -0
- package/dist/prompts/providers/config-prompt-provider.js +308 -0
- package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
- package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/custom-prompt-provider.js +11 -7
- package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
- package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
- package/dist/prompts/schemas.cjs +42 -23
- package/dist/prompts/schemas.d.ts +123 -14
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +39 -22
- package/dist/prompts/types.d.ts +1 -1
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.cjs +15 -11
- package/dist/resources/handlers/blob-handler.d.ts +3 -1
- package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.js +15 -11
- package/dist/resources/handlers/factory.cjs +3 -3
- package/dist/resources/handlers/factory.d.ts +2 -1
- package/dist/resources/handlers/factory.d.ts.map +1 -1
- package/dist/resources/handlers/factory.js +3 -3
- package/dist/resources/handlers/filesystem-handler.cjs +10 -8
- package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +10 -8
- package/dist/resources/internal-provider.cjs +28 -20
- package/dist/resources/internal-provider.d.ts +3 -1
- package/dist/resources/internal-provider.d.ts.map +1 -1
- package/dist/resources/internal-provider.js +28 -20
- package/dist/resources/manager.cjs +34 -25
- package/dist/resources/manager.d.ts +3 -1
- package/dist/resources/manager.d.ts.map +1 -1
- package/dist/resources/manager.js +34 -25
- package/dist/resources/schemas.d.ts +6 -6
- package/dist/search/search-service.cjs +8 -6
- package/dist/search/search-service.d.ts +3 -1
- package/dist/search/search-service.d.ts.map +1 -1
- package/dist/search/search-service.js +8 -6
- package/dist/session/chat-session.cjs +40 -27
- package/dist/session/chat-session.d.ts +10 -7
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +40 -27
- package/dist/session/history/database.cjs +18 -11
- package/dist/session/history/database.d.ts +3 -1
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +18 -11
- package/dist/session/history/factory.cjs +2 -2
- package/dist/session/history/factory.d.ts +5 -1
- package/dist/session/history/factory.d.ts.map +1 -1
- package/dist/session/history/factory.js +2 -2
- package/dist/session/session-manager.cjs +37 -53
- package/dist/session/session-manager.d.ts +3 -17
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +37 -53
- package/dist/session/title-generator.cjs +3 -2
- package/dist/session/title-generator.d.ts +2 -1
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +3 -2
- package/dist/storage/blob/factory.cjs +9 -18
- package/dist/storage/blob/factory.d.ts +5 -4
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +8 -17
- package/dist/storage/blob/local-blob-store.cjs +25 -32
- package/dist/storage/blob/local-blob-store.d.ts +3 -2
- package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
- package/dist/storage/blob/local-blob-store.js +25 -32
- package/dist/storage/blob/memory-blob-store.cjs +326 -0
- package/dist/storage/blob/memory-blob-store.d.ts +66 -0
- package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
- package/dist/storage/blob/memory-blob-store.js +303 -0
- package/dist/storage/blob/schemas.cjs +3 -1
- package/dist/storage/blob/schemas.d.ts +6 -6
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +3 -1
- package/dist/storage/cache/factory.cjs +7 -8
- package/dist/storage/cache/factory.d.ts +4 -1
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +4 -5
- package/dist/storage/cache/redis-store.cjs +4 -1
- package/dist/storage/cache/redis-store.d.ts +3 -1
- package/dist/storage/cache/redis-store.d.ts.map +1 -1
- package/dist/storage/cache/redis-store.js +4 -1
- package/dist/storage/database/factory.cjs +13 -16
- package/dist/storage/database/factory.d.ts +5 -3
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +9 -12
- package/dist/storage/database/postgres-store.cjs +4 -1
- package/dist/storage/database/postgres-store.d.ts +3 -1
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +4 -1
- package/dist/storage/database/schemas.cjs +3 -4
- package/dist/storage/database/schemas.d.ts +8 -16
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +3 -4
- package/dist/storage/database/sqlite-store.cjs +17 -45
- package/dist/storage/database/sqlite-store.d.ts +3 -3
- package/dist/storage/database/sqlite-store.d.ts.map +1 -1
- package/dist/storage/database/sqlite-store.js +17 -45
- package/dist/storage/schemas.cjs +3 -1
- package/dist/storage/schemas.d.ts +16 -23
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +3 -1
- package/dist/storage/storage-manager.cjs +15 -15
- package/dist/storage/storage-manager.d.ts +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +15 -15
- package/dist/systemPrompt/contributors.cjs +15 -15
- package/dist/systemPrompt/contributors.d.ts +5 -3
- package/dist/systemPrompt/contributors.d.ts.map +1 -1
- package/dist/systemPrompt/contributors.js +15 -15
- package/dist/systemPrompt/in-built-prompts.cjs +0 -5
- package/dist/systemPrompt/in-built-prompts.d.ts +1 -2
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +0 -4
- package/dist/systemPrompt/manager.cjs +31 -23
- package/dist/systemPrompt/manager.d.ts +5 -3
- package/dist/systemPrompt/manager.d.ts.map +1 -1
- package/dist/systemPrompt/manager.js +31 -23
- package/dist/systemPrompt/registry.cjs +1 -2
- package/dist/systemPrompt/registry.d.ts +1 -1
- package/dist/systemPrompt/registry.d.ts.map +1 -1
- package/dist/systemPrompt/registry.js +1 -2
- package/dist/systemPrompt/schemas.cjs +24 -18
- package/dist/systemPrompt/schemas.d.ts +46 -222
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +14 -18
- package/dist/telemetry/decorators.cjs +54 -15
- package/dist/telemetry/decorators.d.ts.map +1 -1
- package/dist/telemetry/decorators.js +54 -15
- package/dist/telemetry/utils.cjs +21 -14
- package/dist/telemetry/utils.d.ts +7 -3
- package/dist/telemetry/utils.d.ts.map +1 -1
- package/dist/telemetry/utils.js +21 -14
- package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
- package/dist/tools/errors.cjs +2 -1
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +2 -1
- package/dist/tools/internal-tools/constants.cjs +2 -1
- package/dist/tools/internal-tools/constants.d.ts +1 -1
- package/dist/tools/internal-tools/constants.d.ts.map +1 -1
- package/dist/tools/internal-tools/constants.js +2 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
- package/dist/tools/internal-tools/provider.cjs +21 -17
- package/dist/tools/internal-tools/provider.d.ts +3 -1
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +21 -17
- package/dist/tools/internal-tools/registry.cjs +5 -0
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +5 -0
- package/dist/tools/schemas.cjs +16 -4
- package/dist/tools/schemas.d.ts +21 -9
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +15 -4
- package/dist/tools/tool-manager.cjs +64 -47
- package/dist/tools/tool-manager.d.ts +4 -2
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +61 -44
- package/dist/tools/types.d.ts +0 -4
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/env-file.cjs +118 -0
- package/dist/utils/env-file.d.ts +5 -0
- package/dist/utils/env-file.d.ts.map +1 -0
- package/dist/utils/env-file.js +85 -0
- package/dist/utils/error-conversion.cjs +23 -1
- package/dist/utils/error-conversion.d.ts +2 -1
- package/dist/utils/error-conversion.d.ts.map +1 -1
- package/dist/utils/error-conversion.js +23 -1
- package/dist/utils/execution-context.d.ts.map +1 -1
- package/dist/utils/fs-walk.d.ts.map +1 -1
- package/dist/utils/index.cjs +7 -9
- package/dist/utils/index.d.ts +3 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -4
- package/dist/utils/path.cjs +22 -57
- package/dist/utils/path.d.ts +8 -7
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +21 -54
- package/dist/utils/result.cjs +37 -14
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/result.js +37 -14
- package/dist/utils/schema.cjs +2 -3
- package/dist/utils/schema.d.ts +2 -1
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +1 -2
- package/dist/utils/service-initializer.cjs +88 -61
- package/dist/utils/service-initializer.d.ts +4 -2
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +70 -43
- package/package.json +7 -3
- package/dist/Dexto.cjs +0 -251
- package/dist/Dexto.d.ts +0 -191
- package/dist/Dexto.d.ts.map +0 -1
- package/dist/Dexto.js +0 -228
- package/dist/agent/registry/error-codes.cjs +0 -44
- package/dist/agent/registry/error-codes.d.ts +0 -21
- package/dist/agent/registry/error-codes.d.ts.map +0 -1
- package/dist/agent/registry/error-codes.js +0 -21
- package/dist/agent/registry/errors.cjs +0 -188
- package/dist/agent/registry/errors.d.ts +0 -63
- package/dist/agent/registry/errors.d.ts.map +0 -1
- package/dist/agent/registry/errors.js +0 -165
- package/dist/agent/registry/registry.cjs +0 -479
- package/dist/agent/registry/registry.d.ts +0 -130
- package/dist/agent/registry/registry.d.ts.map +0 -1
- package/dist/agent/registry/registry.js +0 -453
- package/dist/agent/registry/types.cjs +0 -74
- package/dist/agent/registry/types.d.ts +0 -142
- package/dist/agent/registry/types.d.ts.map +0 -1
- package/dist/agent/registry/types.js +0 -48
- package/dist/agent/registry/user-registry.cjs +0 -140
- package/dist/agent/registry/user-registry.d.ts +0 -34
- package/dist/agent/registry/user-registry.d.ts.map +0 -1
- package/dist/agent/registry/user-registry.js +0 -105
- package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
- package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
- package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/event-based-approval-provider.js +0 -133
- package/dist/approval/providers/factory.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.cjs +0 -54
- package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
- package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.js +0 -31
- package/dist/config/agent-resolver.cjs +0 -153
- package/dist/config/agent-resolver.d.ts +0 -14
- package/dist/config/agent-resolver.d.ts.map +0 -1
- package/dist/config/agent-resolver.js +0 -123
- package/dist/config/error-codes.cjs +0 -39
- package/dist/config/error-codes.d.ts +0 -16
- package/dist/config/error-codes.d.ts.map +0 -1
- package/dist/config/error-codes.js +0 -16
- package/dist/config/errors.cjs +0 -126
- package/dist/config/errors.d.ts +0 -34
- package/dist/config/errors.d.ts.map +0 -1
- package/dist/config/errors.js +0 -103
- package/dist/config/index.cjs +0 -26
- package/dist/config/index.d.ts +0 -4
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -3
- package/dist/config/loader.cjs +0 -119
- package/dist/config/loader.d.ts +0 -16
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -86
- package/dist/config/writer.cjs +0 -182
- package/dist/config/writer.d.ts +0 -35
- package/dist/config/writer.d.ts.map +0 -1
- package/dist/config/writer.js +0 -147
- package/dist/preferences/constants.d.ts +0 -2
- package/dist/preferences/constants.d.ts.map +0 -1
- package/dist/preferences/constants.js +0 -5
- package/dist/preferences/error-codes.d.ts +0 -8
- package/dist/preferences/error-codes.d.ts.map +0 -1
- package/dist/preferences/error-codes.js +0 -12
- package/dist/preferences/errors.cjs +0 -75
- package/dist/preferences/errors.d.ts +0 -18
- package/dist/preferences/errors.d.ts.map +0 -1
- package/dist/preferences/errors.js +0 -51
- package/dist/preferences/index.cjs +0 -55
- package/dist/preferences/index.d.ts +0 -6
- package/dist/preferences/index.d.ts.map +0 -1
- package/dist/preferences/index.js +0 -32
- package/dist/preferences/loader.cjs +0 -138
- package/dist/preferences/loader.d.ts +0 -51
- package/dist/preferences/loader.d.ts.map +0 -1
- package/dist/preferences/loader.js +0 -110
- package/dist/preferences/schemas.cjs +0 -75
- package/dist/preferences/schemas.d.ts +0 -110
- package/dist/preferences/schemas.d.ts.map +0 -1
- package/dist/preferences/schemas.js +0 -49
- package/dist/prompts/providers/file-prompt-provider.cjs +0 -399
- package/dist/prompts/providers/file-prompt-provider.d.ts +0 -47
- package/dist/prompts/providers/file-prompt-provider.d.ts.map +0 -1
- package/dist/prompts/providers/file-prompt-provider.js +0 -376
- package/dist/prompts/providers/starter-prompt-provider.cjs +0 -170
- package/dist/prompts/providers/starter-prompt-provider.d.ts +0 -45
- package/dist/prompts/providers/starter-prompt-provider.d.ts.map +0 -1
- package/dist/prompts/providers/starter-prompt-provider.js +0 -147
- package/dist/utils/api-key-store.cjs +0 -56
- package/dist/utils/api-key-store.d.ts +0 -24
- package/dist/utils/api-key-store.d.ts.map +0 -1
- package/dist/utils/api-key-store.js +0 -31
- package/dist/utils/env.cjs +0 -154
- package/dist/utils/env.d.ts +0 -28
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -119
- package/dist/utils/port-utils.cjs +0 -37
- package/dist/utils/port-utils.d.ts +0 -10
- package/dist/utils/port-utils.d.ts.map +0 -1
- package/dist/utils/port-utils.js +0 -14
- package/dist/utils/port-utils.spec.cjs +0 -26
- package/dist/utils/port-utils.spec.js +0 -25
- /package/dist/approval/{providers/factory.cjs → factory.cjs} +0 -0
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Security-focused command validation for process execution
|
|
5
5
|
*/
|
|
6
6
|
import { ProcessConfig, CommandValidation } from './types.js';
|
|
7
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
7
8
|
/**
|
|
8
9
|
* CommandValidator - Validates commands for security and policy compliance
|
|
9
10
|
*
|
|
@@ -17,7 +18,8 @@ import { ProcessConfig, CommandValidation } from './types.js';
|
|
|
17
18
|
*/
|
|
18
19
|
export declare class CommandValidator {
|
|
19
20
|
private config;
|
|
20
|
-
|
|
21
|
+
private logger;
|
|
22
|
+
constructor(config: ProcessConfig, logger: IDextoLogger);
|
|
21
23
|
/**
|
|
22
24
|
* Validate a command for security and policy compliance
|
|
23
25
|
*/
|
|
@@ -28,6 +30,7 @@ export declare class CommandValidator {
|
|
|
28
30
|
private detectInjection;
|
|
29
31
|
/**
|
|
30
32
|
* Determine if a command requires approval
|
|
33
|
+
* Handles compound commands (with &&, ||, ;) by checking each sub-command
|
|
31
34
|
*/
|
|
32
35
|
private determineApprovalRequirement;
|
|
33
36
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-validator.d.ts","sourceRoot":"","sources":["../../src/process/command-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"command-validator.d.ts","sourceRoot":"","sources":["../../src/process/command-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAkQ1D;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY;IAQvD;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB;IAgFnD;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAyCpC;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,gBAAgB,IAAI,MAAM;CAG7B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import "../chunk-C6A6W6XS.js";
|
|
2
|
-
import { logger } from "../logger/index.js";
|
|
3
2
|
const MAX_COMMAND_LENGTH = 1e4;
|
|
4
3
|
const DANGEROUS_PATTERNS = [
|
|
5
4
|
// File system destruction
|
|
@@ -120,21 +119,13 @@ const DANGEROUS_PATTERNS = [
|
|
|
120
119
|
// Remove packages
|
|
121
120
|
];
|
|
122
121
|
const INJECTION_PATTERNS = [
|
|
123
|
-
// Command chaining with dangerous commands
|
|
122
|
+
// Command chaining with dangerous commands using semicolon (more suspicious)
|
|
124
123
|
/;\s*rm\s+-rf/,
|
|
125
124
|
// ; rm -rf
|
|
126
|
-
/&&\s*rm\s+-rf/,
|
|
127
|
-
// && rm -rf
|
|
128
|
-
/\|\s*rm\s+-rf/,
|
|
129
|
-
// | rm -rf
|
|
130
125
|
/;\s*chmod\s+777/,
|
|
131
126
|
// ; chmod 777
|
|
132
|
-
/&&\s*chmod\s+777/,
|
|
133
|
-
// && chmod 777
|
|
134
127
|
/;\s*chown\s+root/,
|
|
135
128
|
// ; chown root
|
|
136
|
-
/&&\s*chown\s+root/,
|
|
137
|
-
// && chown root
|
|
138
129
|
// Command substitution with dangerous commands
|
|
139
130
|
/`.*rm.*`/,
|
|
140
131
|
// backticks with rm
|
|
@@ -391,9 +382,13 @@ const WRITE_PATTERNS = [
|
|
|
391
382
|
];
|
|
392
383
|
class CommandValidator {
|
|
393
384
|
config;
|
|
394
|
-
|
|
385
|
+
logger;
|
|
386
|
+
constructor(config, logger) {
|
|
395
387
|
this.config = config;
|
|
396
|
-
logger
|
|
388
|
+
this.logger = logger;
|
|
389
|
+
this.logger.debug(
|
|
390
|
+
`CommandValidator initialized with security level: ${config.securityLevel}`
|
|
391
|
+
);
|
|
397
392
|
}
|
|
398
393
|
/**
|
|
399
394
|
* Validate a command for security and policy compliance
|
|
@@ -406,6 +401,12 @@ class CommandValidator {
|
|
|
406
401
|
};
|
|
407
402
|
}
|
|
408
403
|
const trimmedCommand = command.trim();
|
|
404
|
+
if (/&\s*$/.test(trimmedCommand)) {
|
|
405
|
+
return {
|
|
406
|
+
isValid: false,
|
|
407
|
+
error: "Commands ending with & (shell backgrounding) are not allowed. Use run_in_background parameter instead for proper process management."
|
|
408
|
+
};
|
|
409
|
+
}
|
|
409
410
|
if (trimmedCommand.length > MAX_COMMAND_LENGTH) {
|
|
410
411
|
return {
|
|
411
412
|
isValid: false,
|
|
@@ -482,18 +483,27 @@ class CommandValidator {
|
|
|
482
483
|
}
|
|
483
484
|
/**
|
|
484
485
|
* Determine if a command requires approval
|
|
486
|
+
* Handles compound commands (with &&, ||, ;) by checking each sub-command
|
|
485
487
|
*/
|
|
486
488
|
determineApprovalRequirement(command) {
|
|
487
|
-
|
|
488
|
-
|
|
489
|
+
const subCommands = command.split(/\s*(?:&&|\|\||;)\s*/).map((cmd) => cmd.trim());
|
|
490
|
+
for (const subCmd of subCommands) {
|
|
491
|
+
if (!subCmd) continue;
|
|
492
|
+
const normalizedSubCmd = subCmd.replace(/^(?:then|do|else)\b\s*/, "").replace(/^\{\s*/, "").trim();
|
|
493
|
+
if (!normalizedSubCmd) continue;
|
|
494
|
+
for (const pattern of REQUIRES_APPROVAL_PATTERNS) {
|
|
495
|
+
if (pattern.test(normalizedSubCmd)) {
|
|
496
|
+
return true;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
if (this.config.securityLevel === "strict") {
|
|
489
500
|
return true;
|
|
490
501
|
}
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
return WRITE_PATTERNS.some((pattern) => pattern.test(command));
|
|
502
|
+
if (this.config.securityLevel === "moderate") {
|
|
503
|
+
if (WRITE_PATTERNS.some((pattern) => pattern.test(normalizedSubCmd))) {
|
|
504
|
+
return true;
|
|
505
|
+
}
|
|
506
|
+
}
|
|
497
507
|
}
|
|
498
508
|
return false;
|
|
499
509
|
}
|
|
@@ -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
|
}
|
package/dist/prompts/index.cjs
CHANGED
|
@@ -19,12 +19,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var prompts_exports = {};
|
|
20
20
|
__export(prompts_exports, {
|
|
21
21
|
CustomPromptProvider: () => import_custom_prompt_provider.CustomPromptProvider,
|
|
22
|
-
|
|
22
|
+
FilePromptSchema: () => import_schemas.FilePromptSchema,
|
|
23
|
+
InlinePromptSchema: () => import_schemas.InlinePromptSchema,
|
|
23
24
|
MCPPromptProvider: () => import_mcp_prompt_provider.MCPPromptProvider,
|
|
24
25
|
PromptError: () => import_errors.PromptError,
|
|
25
26
|
PromptManager: () => import_prompt_manager.PromptManager,
|
|
26
|
-
|
|
27
|
-
StarterPromptsSchema: () => import_schemas.StarterPromptsSchema,
|
|
27
|
+
PromptsSchema: () => import_schemas.PromptsSchema,
|
|
28
28
|
appendContext: () => import_utils.appendContext,
|
|
29
29
|
flattenPromptResult: () => import_utils.flattenPromptResult,
|
|
30
30
|
normalizePromptArgs: () => import_utils.normalizePromptArgs
|
|
@@ -32,8 +32,6 @@ __export(prompts_exports, {
|
|
|
32
32
|
module.exports = __toCommonJS(prompts_exports);
|
|
33
33
|
var import_prompt_manager = require("./prompt-manager.js");
|
|
34
34
|
var import_mcp_prompt_provider = require("./providers/mcp-prompt-provider.js");
|
|
35
|
-
var import_file_prompt_provider = require("./providers/file-prompt-provider.js");
|
|
36
|
-
var import_starter_prompt_provider = require("./providers/starter-prompt-provider.js");
|
|
37
35
|
var import_custom_prompt_provider = require("./providers/custom-prompt-provider.js");
|
|
38
36
|
var import_errors = require("./errors.js");
|
|
39
37
|
var import_schemas = require("./schemas.js");
|
|
@@ -41,12 +39,12 @@ var import_utils = require("./utils.js");
|
|
|
41
39
|
// Annotate the CommonJS export names for ESM import in node:
|
|
42
40
|
0 && (module.exports = {
|
|
43
41
|
CustomPromptProvider,
|
|
44
|
-
|
|
42
|
+
FilePromptSchema,
|
|
43
|
+
InlinePromptSchema,
|
|
45
44
|
MCPPromptProvider,
|
|
46
45
|
PromptError,
|
|
47
46
|
PromptManager,
|
|
48
|
-
|
|
49
|
-
StarterPromptsSchema,
|
|
47
|
+
PromptsSchema,
|
|
50
48
|
appendContext,
|
|
51
49
|
flattenPromptResult,
|
|
52
50
|
normalizePromptArgs
|
package/dist/prompts/index.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
export { PromptManager } from './prompt-manager.js';
|
|
2
2
|
export { MCPPromptProvider } from './providers/mcp-prompt-provider.js';
|
|
3
|
-
export { FilePromptProvider } from './providers/file-prompt-provider.js';
|
|
4
|
-
export { StarterPromptProvider } from './providers/starter-prompt-provider.js';
|
|
5
3
|
export { CustomPromptProvider } from './providers/custom-prompt-provider.js';
|
|
6
4
|
export type { CreateCustomPromptInput } from './providers/custom-prompt-provider.js';
|
|
7
5
|
export { PromptError } from './errors.js';
|
|
8
|
-
export {
|
|
9
|
-
export type {
|
|
6
|
+
export { PromptsSchema, InlinePromptSchema, FilePromptSchema } from './schemas.js';
|
|
7
|
+
export type { ValidatedPromptsConfig, ValidatedInlinePrompt, ValidatedFilePrompt, ValidatedPrompt, PromptsConfig, } from './schemas.js';
|
|
10
8
|
export type { PromptInfo, PromptSet, PromptProvider, PromptArgument, PromptDefinition, } from './types.js';
|
|
11
9
|
export { flattenPromptResult, normalizePromptArgs, appendContext } from './utils.js';
|
|
12
10
|
export type { FlattenedPromptResult } from './utils.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,YAAY,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,YAAY,EACR,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,aAAa,GAChB,MAAM,cAAc,CAAC;AACtB,YAAY,EACR,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,gBAAgB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrF,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/prompts/index.js
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import "../chunk-C6A6W6XS.js";
|
|
2
2
|
import { PromptManager } from "./prompt-manager.js";
|
|
3
3
|
import { MCPPromptProvider } from "./providers/mcp-prompt-provider.js";
|
|
4
|
-
import { FilePromptProvider } from "./providers/file-prompt-provider.js";
|
|
5
|
-
import { StarterPromptProvider } from "./providers/starter-prompt-provider.js";
|
|
6
4
|
import { CustomPromptProvider } from "./providers/custom-prompt-provider.js";
|
|
7
5
|
import { PromptError } from "./errors.js";
|
|
8
|
-
import {
|
|
6
|
+
import { PromptsSchema, InlinePromptSchema, FilePromptSchema } from "./schemas.js";
|
|
9
7
|
import { flattenPromptResult, normalizePromptArgs, appendContext } from "./utils.js";
|
|
10
8
|
export {
|
|
11
9
|
CustomPromptProvider,
|
|
12
|
-
|
|
10
|
+
FilePromptSchema,
|
|
11
|
+
InlinePromptSchema,
|
|
13
12
|
MCPPromptProvider,
|
|
14
13
|
PromptError,
|
|
15
14
|
PromptManager,
|
|
16
|
-
|
|
17
|
-
StarterPromptsSchema,
|
|
15
|
+
PromptsSchema,
|
|
18
16
|
appendContext,
|
|
19
17
|
flattenPromptResult,
|
|
20
18
|
normalizePromptArgs
|