@dexto/core 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -9
- package/dist/agent/DextoAgent.cjs +548 -207
- package/dist/agent/DextoAgent.d.ts +156 -33
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +545 -204
- package/dist/agent/agentCard.js +1 -1
- package/dist/agent/error-codes.cjs +1 -0
- package/dist/agent/error-codes.d.ts +2 -1
- package/dist/agent/error-codes.d.ts.map +1 -1
- package/dist/agent/error-codes.js +2 -1
- package/dist/agent/errors.cjs +13 -0
- package/dist/agent/errors.d.ts +4 -0
- package/dist/agent/errors.d.ts.map +1 -1
- package/dist/agent/errors.js +14 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/schemas.cjs +3 -0
- package/dist/agent/schemas.d.ts +92 -55
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +6 -2
- package/dist/agent/state-manager.cjs +5 -5
- package/dist/agent/state-manager.d.ts +4 -4
- package/dist/agent/state-manager.js +6 -6
- package/dist/agent/types.d.ts +24 -10
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/approval/error-codes.js +1 -1
- package/dist/approval/errors.js +1 -1
- package/dist/approval/factory.js +1 -1
- package/dist/approval/index.js +1 -1
- package/dist/approval/manager.cjs +69 -3
- package/dist/approval/manager.d.ts +41 -3
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +70 -4
- package/dist/approval/schemas.cjs +18 -4
- package/dist/approval/schemas.d.ts +106 -32
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +19 -5
- package/dist/approval/types.d.ts +6 -0
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +1 -1
- package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
- package/dist/{llm/tokenizer/default.cjs → context/compression/overflow.cjs} +20 -18
- package/dist/context/compression/overflow.d.ts +33 -0
- package/dist/context/compression/overflow.d.ts.map +1 -0
- package/dist/context/compression/overflow.js +19 -0
- package/dist/context/compression/reactive-overflow.cjs +201 -0
- package/dist/context/compression/reactive-overflow.d.ts +81 -0
- package/dist/context/compression/reactive-overflow.d.ts.map +1 -0
- package/dist/context/compression/reactive-overflow.js +178 -0
- package/dist/context/compression/types.d.ts +9 -7
- package/dist/context/compression/types.d.ts.map +1 -1
- package/dist/context/error-codes.cjs +3 -0
- package/dist/context/error-codes.d.ts +4 -1
- package/dist/context/error-codes.d.ts.map +1 -1
- package/dist/context/error-codes.js +4 -1
- package/dist/context/errors.cjs +28 -0
- package/dist/context/errors.d.ts +7 -0
- package/dist/context/errors.d.ts.map +1 -1
- package/dist/context/errors.js +29 -1
- package/dist/context/index.js +1 -1
- package/dist/context/manager.cjs +280 -323
- package/dist/context/manager.d.ts +65 -111
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +280 -328
- package/dist/context/media-helpers.js +1 -1
- package/dist/context/types.cjs +49 -0
- package/dist/context/types.d.ts +181 -72
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/types.js +35 -0
- package/dist/context/utils.cjs +266 -283
- package/dist/context/utils.d.ts +32 -18
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +266 -283
- package/dist/errors/DextoBaseError.js +1 -1
- package/dist/errors/DextoRuntimeError.js +1 -1
- package/dist/errors/DextoValidationError.js +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/result-bridge.js +1 -1
- package/dist/errors/types.js +1 -1
- package/dist/events/index.cjs +18 -1
- package/dist/events/index.d.ts +149 -12
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +19 -2
- package/dist/filesystem/error-codes.js +1 -1
- package/dist/filesystem/errors.js +1 -1
- package/dist/filesystem/filesystem-service.js +1 -1
- package/dist/filesystem/index.js +1 -1
- package/dist/filesystem/path-validator.js +1 -1
- package/dist/index.browser.cjs +23 -8
- package/dist/index.browser.d.ts +4 -3
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +20 -3
- package/dist/index.js +1 -1
- package/dist/llm/error-codes.cjs +0 -1
- package/dist/llm/error-codes.d.ts +0 -1
- package/dist/llm/error-codes.d.ts.map +1 -1
- package/dist/llm/error-codes.js +1 -2
- package/dist/llm/errors.cjs +10 -10
- package/dist/llm/errors.d.ts +5 -6
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +12 -12
- package/dist/llm/executor/stream-processor.cjs +367 -0
- package/dist/llm/executor/stream-processor.d.ts +55 -0
- package/dist/llm/executor/stream-processor.d.ts.map +1 -0
- package/dist/llm/executor/stream-processor.js +344 -0
- package/dist/llm/executor/tool-output-truncator.cjs +75 -0
- package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
- package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
- package/dist/llm/executor/tool-output-truncator.js +48 -0
- package/dist/llm/executor/turn-executor.cjs +753 -0
- package/dist/llm/executor/turn-executor.d.ts +166 -0
- package/dist/llm/executor/turn-executor.d.ts.map +1 -0
- package/dist/llm/executor/turn-executor.js +684 -0
- package/dist/llm/executor/types.d.ts +27 -0
- package/dist/llm/executor/types.d.ts.map +1 -0
- package/dist/llm/formatters/vercel.cjs +20 -186
- package/dist/llm/formatters/vercel.d.ts +2 -14
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +19 -185
- package/dist/llm/registry.cjs +36 -45
- package/dist/llm/registry.d.ts +53 -39
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +34 -42
- package/dist/llm/resolver.cjs +1 -31
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +2 -34
- package/dist/llm/schemas.cjs +2 -17
- package/dist/llm/schemas.d.ts +10 -23
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +5 -22
- package/dist/llm/services/factory.cjs +3 -92
- package/dist/llm/services/factory.d.ts +14 -4
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +4 -83
- package/dist/llm/services/test-utils.integration.cjs +6 -8
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +7 -9
- package/dist/llm/services/types.d.ts +1 -28
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +54 -468
- package/dist/llm/services/vercel.d.ts +38 -21
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +56 -475
- package/dist/llm/types.cjs +0 -3
- package/dist/llm/types.d.ts +8 -8
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +1 -3
- package/dist/llm/validation.js +1 -1
- package/dist/logger/browser.js +1 -1
- package/dist/logger/factory.js +1 -1
- package/dist/logger/index.js +1 -1
- package/dist/logger/logger.js +1 -1
- package/dist/logger/v2/dexto-logger.cjs +34 -6
- package/dist/logger/v2/dexto-logger.d.ts +20 -2
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
- package/dist/logger/v2/dexto-logger.js +35 -7
- package/dist/logger/v2/error-codes.js +1 -1
- package/dist/logger/v2/errors.js +1 -1
- package/dist/logger/v2/schemas.js +1 -1
- package/dist/logger/v2/test-utils.cjs +70 -0
- package/dist/logger/v2/test-utils.d.ts +17 -0
- package/dist/logger/v2/test-utils.d.ts.map +1 -0
- package/dist/logger/v2/test-utils.js +46 -0
- package/dist/logger/v2/transport-factory.js +1 -1
- package/dist/logger/v2/transports/console-transport.js +1 -1
- package/dist/logger/v2/transports/file-transport.cjs +6 -0
- package/dist/logger/v2/transports/file-transport.d.ts +4 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
- package/dist/logger/v2/transports/file-transport.js +7 -1
- package/dist/logger/v2/types.cjs +1 -0
- package/dist/logger/v2/types.d.ts +18 -2
- package/dist/logger/v2/types.d.ts.map +1 -1
- package/dist/logger/v2/types.js +2 -1
- package/dist/mcp/error-codes.cjs +1 -0
- package/dist/mcp/error-codes.d.ts +1 -0
- package/dist/mcp/error-codes.d.ts.map +1 -1
- package/dist/mcp/error-codes.js +2 -1
- package/dist/mcp/errors.cjs +13 -0
- package/dist/mcp/errors.d.ts +7 -0
- package/dist/mcp/errors.d.ts.map +1 -1
- package/dist/mcp/errors.js +14 -1
- package/dist/mcp/manager.cjs +4 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +5 -1
- package/dist/mcp/mcp-client.js +1 -1
- package/dist/mcp/resolver.js +1 -1
- package/dist/mcp/schemas.cjs +6 -0
- package/dist/mcp/schemas.d.ts +52 -0
- package/dist/mcp/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.js +6 -1
- package/dist/memory/error-codes.js +1 -1
- package/dist/memory/errors.js +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/memory/manager.js +1 -1
- package/dist/memory/schemas.d.ts +2 -2
- package/dist/memory/schemas.js +1 -1
- package/dist/plugins/builtins/content-policy.js +1 -1
- package/dist/plugins/builtins/response-sanitizer.js +1 -1
- package/dist/plugins/error-codes.js +1 -1
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/loader.js +1 -1
- package/dist/plugins/manager.js +1 -1
- package/dist/plugins/registrations/builtins.js +1 -1
- package/dist/plugins/schemas.d.ts +3 -3
- package/dist/plugins/schemas.js +1 -1
- package/dist/plugins/types.d.ts +0 -1
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.js +1 -1
- package/dist/process/error-codes.js +1 -1
- package/dist/process/errors.js +1 -1
- package/dist/process/index.js +1 -1
- package/dist/process/process-service.cjs +78 -26
- package/dist/process/process-service.d.ts +6 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +79 -27
- package/dist/process/types.d.ts +2 -2
- package/dist/process/types.d.ts.map +1 -1
- package/dist/prompts/error-codes.cjs +1 -0
- package/dist/prompts/error-codes.d.ts +2 -1
- package/dist/prompts/error-codes.d.ts.map +1 -1
- package/dist/prompts/error-codes.js +2 -1
- package/dist/prompts/errors.cjs +15 -0
- package/dist/prompts/errors.d.ts +4 -0
- package/dist/prompts/errors.d.ts.map +1 -1
- package/dist/prompts/errors.js +16 -1
- package/dist/prompts/index.js +1 -1
- package/dist/prompts/name-validation.js +1 -1
- package/dist/prompts/prompt-manager.cjs +13 -2
- package/dist/prompts/prompt-manager.d.ts +7 -0
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +14 -3
- package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
- package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.js +13 -4
- package/dist/prompts/providers/custom-prompt-provider.js +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
- package/dist/prompts/schemas.d.ts +12 -0
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +1 -1
- package/dist/prompts/types.d.ts +2 -0
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/prompts/utils.js +1 -1
- package/dist/resources/error-codes.js +1 -1
- package/dist/resources/errors.js +1 -1
- package/dist/resources/handlers/blob-handler.js +1 -1
- package/dist/resources/handlers/factory.js +1 -1
- package/dist/resources/handlers/filesystem-handler.js +1 -1
- package/dist/resources/index.js +1 -1
- package/dist/resources/internal-provider.js +1 -1
- package/dist/resources/manager.js +1 -1
- package/dist/resources/reference-parser.js +1 -1
- package/dist/resources/schemas.js +1 -1
- package/dist/search/index.js +1 -1
- package/dist/search/search-service.js +1 -1
- package/dist/session/chat-session.cjs +149 -51
- package/dist/session/chat-session.d.ts +69 -29
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +150 -52
- package/dist/session/error-codes.js +1 -1
- package/dist/session/errors.js +1 -1
- package/dist/session/history/database.cjs +134 -21
- package/dist/session/history/database.d.ts +37 -8
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +135 -22
- package/dist/session/history/factory.js +1 -1
- package/dist/session/history/memory.cjs +18 -0
- package/dist/session/history/memory.d.ts +8 -0
- package/dist/session/history/memory.d.ts.map +1 -1
- package/dist/session/history/memory.js +19 -1
- package/dist/session/history/types.d.ts +13 -1
- package/dist/session/history/types.d.ts.map +1 -1
- package/dist/session/index.cjs +3 -0
- package/dist/session/index.d.ts +3 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +3 -1
- package/dist/session/message-queue.cjs +201 -0
- package/dist/session/message-queue.d.ts +114 -0
- package/dist/session/message-queue.d.ts.map +1 -0
- package/dist/session/message-queue.js +178 -0
- package/dist/session/schemas.js +1 -1
- package/dist/session/session-manager.cjs +57 -7
- package/dist/session/session-manager.d.ts +18 -0
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +58 -8
- package/dist/session/title-generator.cjs +4 -8
- package/dist/session/title-generator.d.ts +1 -2
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +5 -9
- package/dist/session/types.cjs +16 -0
- package/dist/session/types.d.ts +14 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +0 -0
- package/dist/storage/blob/factory.js +1 -1
- package/dist/storage/blob/local-blob-store.js +1 -1
- package/dist/storage/blob/memory-blob-store.js +1 -1
- package/dist/storage/blob/schemas.js +1 -1
- package/dist/storage/cache/factory.js +1 -1
- package/dist/storage/cache/memory-cache-store.js +1 -1
- package/dist/storage/cache/redis-store.js +1 -1
- package/dist/storage/cache/schemas.js +1 -1
- package/dist/storage/database/factory.js +1 -1
- package/dist/storage/database/memory-database-store.js +1 -1
- package/dist/storage/database/postgres-store.cjs +12 -0
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +13 -1
- package/dist/storage/database/schemas.js +1 -1
- package/dist/storage/database/sqlite-store.js +1 -1
- package/dist/storage/error-codes.js +1 -1
- package/dist/storage/errors.js +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/schemas.js +1 -1
- package/dist/storage/storage-manager.js +1 -1
- package/dist/systemPrompt/contributors.js +1 -1
- package/dist/systemPrompt/error-codes.js +1 -1
- package/dist/systemPrompt/errors.js +1 -1
- package/dist/systemPrompt/in-built-prompts.js +1 -1
- package/dist/systemPrompt/index.js +1 -1
- package/dist/systemPrompt/manager.js +1 -1
- package/dist/systemPrompt/registry.js +1 -1
- package/dist/systemPrompt/schemas.d.ts +5 -5
- package/dist/systemPrompt/schemas.js +1 -1
- package/dist/telemetry/decorators.js +1 -1
- package/dist/telemetry/error-codes.js +1 -1
- package/dist/telemetry/errors.js +1 -1
- package/dist/telemetry/exporters.js +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/schemas.js +1 -1
- package/dist/telemetry/telemetry.js +1 -1
- package/dist/telemetry/utils.js +1 -1
- package/dist/tools/bash-pattern-utils.cjs +91 -0
- package/dist/tools/bash-pattern-utils.d.ts +58 -0
- package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
- package/dist/tools/bash-pattern-utils.js +64 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
- package/dist/tools/display-types.cjs +60 -0
- package/dist/tools/display-types.d.ts +133 -0
- package/dist/tools/display-types.d.ts.map +1 -0
- package/dist/tools/display-types.js +32 -0
- package/dist/tools/error-codes.cjs +2 -0
- package/dist/tools/error-codes.d.ts +3 -1
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +3 -1
- package/dist/tools/errors.cjs +30 -0
- package/dist/tools/errors.d.ts +16 -0
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +31 -1
- package/dist/tools/index.cjs +2 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -1
- package/dist/tools/internal-tools/constants.js +1 -1
- package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +42 -18
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +3 -3
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +43 -19
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +66 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +67 -2
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +14 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +15 -2
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +16 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +17 -2
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +9 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.js +10 -2
- package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +69 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.js +72 -2
- package/dist/tools/internal-tools/provider.cjs +27 -10
- package/dist/tools/internal-tools/provider.d.ts +8 -5
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +28 -11
- package/dist/tools/internal-tools/registry.cjs +4 -3
- package/dist/tools/internal-tools/registry.d.ts +28 -7
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +5 -4
- package/dist/tools/schemas.cjs +16 -6
- package/dist/tools/schemas.d.ts +31 -4
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +14 -6
- package/dist/tools/tool-manager.cjs +140 -18
- package/dist/tools/tool-manager.d.ts +23 -1
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +145 -19
- package/dist/tools/types.d.ts +20 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.js +1 -1
- package/dist/utils/async-context.js +1 -1
- package/dist/utils/debug.js +1 -1
- package/dist/{llm/tokenizer/types.cjs → utils/defer.cjs} +19 -10
- package/dist/utils/defer.d.ts +63 -0
- package/dist/utils/defer.d.ts.map +1 -0
- package/dist/utils/defer.js +19 -0
- package/dist/utils/env-file.js +1 -1
- package/dist/utils/error-conversion.js +1 -1
- package/dist/utils/execution-context.js +1 -1
- package/dist/utils/fs-walk.js +1 -1
- package/dist/utils/index.cjs +3 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/path.js +1 -1
- package/dist/utils/redactor.js +1 -1
- package/dist/utils/result.js +1 -1
- package/dist/utils/safe-stringify.js +1 -1
- package/dist/utils/schema-metadata.js +1 -1
- package/dist/utils/schema.js +1 -1
- package/dist/utils/service-initializer.cjs +6 -2
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +7 -3
- package/dist/utils/user-info.js +1 -1
- package/dist/utils/zod-schema-converter.js +1 -1
- package/package.json +6 -7
- package/dist/context/compression/middle-removal.cjs +0 -95
- package/dist/context/compression/middle-removal.d.ts +0 -47
- package/dist/context/compression/middle-removal.d.ts.map +0 -1
- package/dist/context/compression/middle-removal.js +0 -72
- package/dist/context/compression/oldest-removal.cjs +0 -83
- package/dist/context/compression/oldest-removal.d.ts +0 -42
- package/dist/context/compression/oldest-removal.d.ts.map +0 -1
- package/dist/context/compression/oldest-removal.js +0 -60
- package/dist/llm/formatters/anthropic.cjs +0 -257
- package/dist/llm/formatters/anthropic.d.ts +0 -46
- package/dist/llm/formatters/anthropic.d.ts.map +0 -1
- package/dist/llm/formatters/anthropic.js +0 -239
- package/dist/llm/formatters/factory.cjs +0 -50
- package/dist/llm/formatters/factory.d.ts +0 -10
- package/dist/llm/formatters/factory.d.ts.map +0 -1
- package/dist/llm/formatters/factory.js +0 -27
- package/dist/llm/formatters/openai.cjs +0 -203
- package/dist/llm/formatters/openai.d.ts +0 -39
- package/dist/llm/formatters/openai.d.ts.map +0 -1
- package/dist/llm/formatters/openai.js +0 -184
- package/dist/llm/formatters/types.d.ts +0 -41
- package/dist/llm/formatters/types.d.ts.map +0 -1
- package/dist/llm/services/anthropic.cjs +0 -511
- package/dist/llm/services/anthropic.d.ts +0 -48
- package/dist/llm/services/anthropic.d.ts.map +0 -1
- package/dist/llm/services/anthropic.js +0 -447
- package/dist/llm/services/openai.cjs +0 -611
- package/dist/llm/services/openai.d.ts +0 -48
- package/dist/llm/services/openai.d.ts.map +0 -1
- package/dist/llm/services/openai.js +0 -547
- package/dist/llm/tokenizer/anthropic.cjs +0 -43
- package/dist/llm/tokenizer/anthropic.d.ts +0 -19
- package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
- package/dist/llm/tokenizer/anthropic.js +0 -20
- package/dist/llm/tokenizer/default.d.ts +0 -14
- package/dist/llm/tokenizer/default.d.ts.map +0 -1
- package/dist/llm/tokenizer/default.js +0 -18
- package/dist/llm/tokenizer/factory.cjs +0 -44
- package/dist/llm/tokenizer/factory.d.ts +0 -12
- package/dist/llm/tokenizer/factory.d.ts.map +0 -1
- package/dist/llm/tokenizer/factory.js +0 -21
- package/dist/llm/tokenizer/google.cjs +0 -52
- package/dist/llm/tokenizer/google.d.ts +0 -29
- package/dist/llm/tokenizer/google.d.ts.map +0 -1
- package/dist/llm/tokenizer/google.js +0 -29
- package/dist/llm/tokenizer/openai.cjs +0 -115
- package/dist/llm/tokenizer/openai.d.ts +0 -41
- package/dist/llm/tokenizer/openai.d.ts.map +0 -1
- package/dist/llm/tokenizer/openai.js +0 -91
- package/dist/llm/tokenizer/types.d.ts +0 -18
- package/dist/llm/tokenizer/types.d.ts.map +0 -1
- package/dist/llm/tokenizer/types.js +0 -10
- /package/dist/llm/{formatters → executor}/types.cjs +0 -0
- /package/dist/llm/{formatters → executor}/types.js +0 -0
|
@@ -85,23 +85,6 @@ class ProcessService {
|
|
|
85
85
|
throw import_errors.ProcessError.invalidCommand(command, validation.error || "Unknown error");
|
|
86
86
|
}
|
|
87
87
|
const normalizedCommand = validation.normalizedCommand;
|
|
88
|
-
if (validation.requiresApproval) {
|
|
89
|
-
if (!options.approvalFunction) {
|
|
90
|
-
throw import_errors.ProcessError.approvalRequired(
|
|
91
|
-
normalizedCommand,
|
|
92
|
-
"Command requires approval but no approval mechanism provided"
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
this.logger.info(
|
|
96
|
-
`Command requires approval: ${normalizedCommand} - requesting user confirmation`
|
|
97
|
-
);
|
|
98
|
-
const approved = await options.approvalFunction(normalizedCommand);
|
|
99
|
-
if (!approved) {
|
|
100
|
-
this.logger.info(`Command approval denied: ${normalizedCommand}`);
|
|
101
|
-
throw import_errors.ProcessError.approvalDenied(normalizedCommand);
|
|
102
|
-
}
|
|
103
|
-
this.logger.info(`Command approved: ${normalizedCommand}`);
|
|
104
|
-
}
|
|
105
88
|
const rawTimeout = options.timeout !== void 0 && Number.isFinite(options.timeout) ? options.timeout : DEFAULT_TIMEOUT;
|
|
106
89
|
const timeout = Math.max(1, Math.min(rawTimeout, this.config.maxTimeout));
|
|
107
90
|
const cwd = this.resolveSafeCwd(options.cwd);
|
|
@@ -122,11 +105,41 @@ class ProcessService {
|
|
|
122
105
|
cwd,
|
|
123
106
|
timeout,
|
|
124
107
|
env,
|
|
125
|
-
...options.description !== void 0 && { description: options.description }
|
|
108
|
+
...options.description !== void 0 && { description: options.description },
|
|
109
|
+
...options.abortSignal !== void 0 && { abortSignal: options.abortSignal }
|
|
126
110
|
});
|
|
127
111
|
}
|
|
112
|
+
static SIGKILL_TIMEOUT_MS = 200;
|
|
113
|
+
/**
|
|
114
|
+
* Kill a process tree (process group on Unix, taskkill on Windows)
|
|
115
|
+
*/
|
|
116
|
+
async killProcessTree(pid, child) {
|
|
117
|
+
if (process.platform === "win32") {
|
|
118
|
+
await new Promise((resolve) => {
|
|
119
|
+
const killer = (0, import_node_child_process.spawn)("taskkill", ["/pid", String(pid), "/f", "/t"], {
|
|
120
|
+
stdio: "ignore"
|
|
121
|
+
});
|
|
122
|
+
killer.once("exit", () => resolve());
|
|
123
|
+
killer.once("error", () => resolve());
|
|
124
|
+
});
|
|
125
|
+
} else {
|
|
126
|
+
try {
|
|
127
|
+
process.kill(-pid, "SIGTERM");
|
|
128
|
+
await new Promise((res) => setTimeout(res, ProcessService.SIGKILL_TIMEOUT_MS));
|
|
129
|
+
if (child.exitCode === null) {
|
|
130
|
+
process.kill(-pid, "SIGKILL");
|
|
131
|
+
}
|
|
132
|
+
} catch {
|
|
133
|
+
child.kill("SIGTERM");
|
|
134
|
+
await new Promise((res) => setTimeout(res, ProcessService.SIGKILL_TIMEOUT_MS));
|
|
135
|
+
if (child.exitCode === null) {
|
|
136
|
+
child.kill("SIGKILL");
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
128
141
|
/**
|
|
129
|
-
* Execute command in foreground with timeout
|
|
142
|
+
* Execute command in foreground with timeout and abort support
|
|
130
143
|
*/
|
|
131
144
|
executeForeground(command, options) {
|
|
132
145
|
return new Promise((resolve, reject) => {
|
|
@@ -134,22 +147,47 @@ class ProcessService {
|
|
|
134
147
|
let stdout = "";
|
|
135
148
|
let stderr = "";
|
|
136
149
|
let killed = false;
|
|
150
|
+
let aborted = false;
|
|
137
151
|
let closed = false;
|
|
152
|
+
if (options.abortSignal?.aborted) {
|
|
153
|
+
this.logger.debug(`Command cancelled before execution: ${command}`);
|
|
154
|
+
resolve({
|
|
155
|
+
stdout: "",
|
|
156
|
+
stderr: "(Command was cancelled)",
|
|
157
|
+
exitCode: 130,
|
|
158
|
+
// Standard exit code for SIGINT
|
|
159
|
+
duration: 0
|
|
160
|
+
});
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
138
163
|
this.logger.debug(`Executing command: ${command}`);
|
|
139
164
|
const child = (0, import_node_child_process.spawn)(command, {
|
|
140
165
|
cwd: options.cwd,
|
|
141
166
|
env: options.env,
|
|
142
|
-
shell: true
|
|
167
|
+
shell: true,
|
|
168
|
+
detached: process.platform !== "win32"
|
|
169
|
+
// Create process group on Unix
|
|
143
170
|
});
|
|
144
171
|
const timeoutHandle = setTimeout(() => {
|
|
145
172
|
killed = true;
|
|
146
|
-
child.
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}, 5e3);
|
|
173
|
+
if (child.pid) {
|
|
174
|
+
void this.killProcessTree(child.pid, child);
|
|
175
|
+
} else {
|
|
176
|
+
child.kill("SIGTERM");
|
|
177
|
+
}
|
|
152
178
|
}, options.timeout);
|
|
179
|
+
const abortHandler = () => {
|
|
180
|
+
if (closed) return;
|
|
181
|
+
aborted = true;
|
|
182
|
+
this.logger.debug(`Command cancelled by user: ${command}`);
|
|
183
|
+
clearTimeout(timeoutHandle);
|
|
184
|
+
if (child.pid) {
|
|
185
|
+
void this.killProcessTree(child.pid, child);
|
|
186
|
+
} else {
|
|
187
|
+
child.kill("SIGTERM");
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
options.abortSignal?.addEventListener("abort", abortHandler, { once: true });
|
|
153
191
|
child.stdout?.on("data", (data) => {
|
|
154
192
|
stdout += data.toString();
|
|
155
193
|
});
|
|
@@ -159,7 +197,20 @@ class ProcessService {
|
|
|
159
197
|
child.on("close", (code, signal) => {
|
|
160
198
|
closed = true;
|
|
161
199
|
clearTimeout(timeoutHandle);
|
|
200
|
+
options.abortSignal?.removeEventListener("abort", abortHandler);
|
|
162
201
|
const duration = Date.now() - startTime;
|
|
202
|
+
if (aborted) {
|
|
203
|
+
stdout += "\n\n(Command was cancelled)";
|
|
204
|
+
this.logger.debug(`Command cancelled after ${duration}ms: ${command}`);
|
|
205
|
+
resolve({
|
|
206
|
+
stdout,
|
|
207
|
+
stderr,
|
|
208
|
+
exitCode: 130,
|
|
209
|
+
// Standard exit code for SIGINT
|
|
210
|
+
duration
|
|
211
|
+
});
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
163
214
|
if (killed) {
|
|
164
215
|
reject(import_errors.ProcessError.timeout(command, options.timeout));
|
|
165
216
|
return;
|
|
@@ -181,6 +232,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
181
232
|
});
|
|
182
233
|
child.on("error", (error) => {
|
|
183
234
|
clearTimeout(timeoutHandle);
|
|
235
|
+
options.abortSignal?.removeEventListener("abort", abortHandler);
|
|
184
236
|
if (error.code === "ENOENT") {
|
|
185
237
|
reject(import_errors.ProcessError.commandNotFound(command));
|
|
186
238
|
} else if (error.code === "EACCES") {
|
|
@@ -24,8 +24,13 @@ export declare class ProcessService {
|
|
|
24
24
|
* Execute a command
|
|
25
25
|
*/
|
|
26
26
|
executeCommand(command: string, options?: ExecuteOptions): Promise<ProcessResult | ProcessHandle>;
|
|
27
|
+
private static readonly SIGKILL_TIMEOUT_MS;
|
|
27
28
|
/**
|
|
28
|
-
*
|
|
29
|
+
* Kill a process tree (process group on Unix, taskkill on Windows)
|
|
30
|
+
*/
|
|
31
|
+
private killProcessTree;
|
|
32
|
+
/**
|
|
33
|
+
* Execute command in foreground with timeout and abort support
|
|
29
34
|
*/
|
|
30
35
|
private executeForeground;
|
|
31
36
|
/**
|
|
@@ -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;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;
|
|
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;IAuDzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IAEjD;;OAEG;YACW,eAAe;IA6B7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsIzB;;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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
import { spawn } from "node:child_process";
|
|
3
3
|
import * as crypto from "node:crypto";
|
|
4
4
|
import * as path from "node:path";
|
|
@@ -53,23 +53,6 @@ class ProcessService {
|
|
|
53
53
|
throw ProcessError.invalidCommand(command, validation.error || "Unknown error");
|
|
54
54
|
}
|
|
55
55
|
const normalizedCommand = validation.normalizedCommand;
|
|
56
|
-
if (validation.requiresApproval) {
|
|
57
|
-
if (!options.approvalFunction) {
|
|
58
|
-
throw ProcessError.approvalRequired(
|
|
59
|
-
normalizedCommand,
|
|
60
|
-
"Command requires approval but no approval mechanism provided"
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
this.logger.info(
|
|
64
|
-
`Command requires approval: ${normalizedCommand} - requesting user confirmation`
|
|
65
|
-
);
|
|
66
|
-
const approved = await options.approvalFunction(normalizedCommand);
|
|
67
|
-
if (!approved) {
|
|
68
|
-
this.logger.info(`Command approval denied: ${normalizedCommand}`);
|
|
69
|
-
throw ProcessError.approvalDenied(normalizedCommand);
|
|
70
|
-
}
|
|
71
|
-
this.logger.info(`Command approved: ${normalizedCommand}`);
|
|
72
|
-
}
|
|
73
56
|
const rawTimeout = options.timeout !== void 0 && Number.isFinite(options.timeout) ? options.timeout : DEFAULT_TIMEOUT;
|
|
74
57
|
const timeout = Math.max(1, Math.min(rawTimeout, this.config.maxTimeout));
|
|
75
58
|
const cwd = this.resolveSafeCwd(options.cwd);
|
|
@@ -90,11 +73,41 @@ class ProcessService {
|
|
|
90
73
|
cwd,
|
|
91
74
|
timeout,
|
|
92
75
|
env,
|
|
93
|
-
...options.description !== void 0 && { description: options.description }
|
|
76
|
+
...options.description !== void 0 && { description: options.description },
|
|
77
|
+
...options.abortSignal !== void 0 && { abortSignal: options.abortSignal }
|
|
94
78
|
});
|
|
95
79
|
}
|
|
80
|
+
static SIGKILL_TIMEOUT_MS = 200;
|
|
81
|
+
/**
|
|
82
|
+
* Kill a process tree (process group on Unix, taskkill on Windows)
|
|
83
|
+
*/
|
|
84
|
+
async killProcessTree(pid, child) {
|
|
85
|
+
if (process.platform === "win32") {
|
|
86
|
+
await new Promise((resolve) => {
|
|
87
|
+
const killer = spawn("taskkill", ["/pid", String(pid), "/f", "/t"], {
|
|
88
|
+
stdio: "ignore"
|
|
89
|
+
});
|
|
90
|
+
killer.once("exit", () => resolve());
|
|
91
|
+
killer.once("error", () => resolve());
|
|
92
|
+
});
|
|
93
|
+
} else {
|
|
94
|
+
try {
|
|
95
|
+
process.kill(-pid, "SIGTERM");
|
|
96
|
+
await new Promise((res) => setTimeout(res, ProcessService.SIGKILL_TIMEOUT_MS));
|
|
97
|
+
if (child.exitCode === null) {
|
|
98
|
+
process.kill(-pid, "SIGKILL");
|
|
99
|
+
}
|
|
100
|
+
} catch {
|
|
101
|
+
child.kill("SIGTERM");
|
|
102
|
+
await new Promise((res) => setTimeout(res, ProcessService.SIGKILL_TIMEOUT_MS));
|
|
103
|
+
if (child.exitCode === null) {
|
|
104
|
+
child.kill("SIGKILL");
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
96
109
|
/**
|
|
97
|
-
* Execute command in foreground with timeout
|
|
110
|
+
* Execute command in foreground with timeout and abort support
|
|
98
111
|
*/
|
|
99
112
|
executeForeground(command, options) {
|
|
100
113
|
return new Promise((resolve, reject) => {
|
|
@@ -102,22 +115,47 @@ class ProcessService {
|
|
|
102
115
|
let stdout = "";
|
|
103
116
|
let stderr = "";
|
|
104
117
|
let killed = false;
|
|
118
|
+
let aborted = false;
|
|
105
119
|
let closed = false;
|
|
120
|
+
if (options.abortSignal?.aborted) {
|
|
121
|
+
this.logger.debug(`Command cancelled before execution: ${command}`);
|
|
122
|
+
resolve({
|
|
123
|
+
stdout: "",
|
|
124
|
+
stderr: "(Command was cancelled)",
|
|
125
|
+
exitCode: 130,
|
|
126
|
+
// Standard exit code for SIGINT
|
|
127
|
+
duration: 0
|
|
128
|
+
});
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
106
131
|
this.logger.debug(`Executing command: ${command}`);
|
|
107
132
|
const child = spawn(command, {
|
|
108
133
|
cwd: options.cwd,
|
|
109
134
|
env: options.env,
|
|
110
|
-
shell: true
|
|
135
|
+
shell: true,
|
|
136
|
+
detached: process.platform !== "win32"
|
|
137
|
+
// Create process group on Unix
|
|
111
138
|
});
|
|
112
139
|
const timeoutHandle = setTimeout(() => {
|
|
113
140
|
killed = true;
|
|
114
|
-
child.
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}, 5e3);
|
|
141
|
+
if (child.pid) {
|
|
142
|
+
void this.killProcessTree(child.pid, child);
|
|
143
|
+
} else {
|
|
144
|
+
child.kill("SIGTERM");
|
|
145
|
+
}
|
|
120
146
|
}, options.timeout);
|
|
147
|
+
const abortHandler = () => {
|
|
148
|
+
if (closed) return;
|
|
149
|
+
aborted = true;
|
|
150
|
+
this.logger.debug(`Command cancelled by user: ${command}`);
|
|
151
|
+
clearTimeout(timeoutHandle);
|
|
152
|
+
if (child.pid) {
|
|
153
|
+
void this.killProcessTree(child.pid, child);
|
|
154
|
+
} else {
|
|
155
|
+
child.kill("SIGTERM");
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
options.abortSignal?.addEventListener("abort", abortHandler, { once: true });
|
|
121
159
|
child.stdout?.on("data", (data) => {
|
|
122
160
|
stdout += data.toString();
|
|
123
161
|
});
|
|
@@ -127,7 +165,20 @@ class ProcessService {
|
|
|
127
165
|
child.on("close", (code, signal) => {
|
|
128
166
|
closed = true;
|
|
129
167
|
clearTimeout(timeoutHandle);
|
|
168
|
+
options.abortSignal?.removeEventListener("abort", abortHandler);
|
|
130
169
|
const duration = Date.now() - startTime;
|
|
170
|
+
if (aborted) {
|
|
171
|
+
stdout += "\n\n(Command was cancelled)";
|
|
172
|
+
this.logger.debug(`Command cancelled after ${duration}ms: ${command}`);
|
|
173
|
+
resolve({
|
|
174
|
+
stdout,
|
|
175
|
+
stderr,
|
|
176
|
+
exitCode: 130,
|
|
177
|
+
// Standard exit code for SIGINT
|
|
178
|
+
duration
|
|
179
|
+
});
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
131
182
|
if (killed) {
|
|
132
183
|
reject(ProcessError.timeout(command, options.timeout));
|
|
133
184
|
return;
|
|
@@ -149,6 +200,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
|
|
|
149
200
|
});
|
|
150
201
|
child.on("error", (error) => {
|
|
151
202
|
clearTimeout(timeoutHandle);
|
|
203
|
+
options.abortSignal?.removeEventListener("abort", abortHandler);
|
|
152
204
|
if (error.code === "ENOENT") {
|
|
153
205
|
reject(ProcessError.commandNotFound(command));
|
|
154
206
|
} else if (error.code === "EACCES") {
|
package/dist/process/types.d.ts
CHANGED
|
@@ -17,8 +17,8 @@ export interface ExecuteOptions {
|
|
|
17
17
|
env?: Record<string, string> | undefined;
|
|
18
18
|
/** Description of what the command does (5-10 words) */
|
|
19
19
|
description?: string | undefined;
|
|
20
|
-
/**
|
|
21
|
-
|
|
20
|
+
/** Abort signal for cancellation support */
|
|
21
|
+
abortSignal?: AbortSignal | undefined;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Process execution result (foreground execution only)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/process/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gCAAgC;IAChC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzC,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/process/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gCAAgC;IAChC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzC,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,2CAA2C;IAC3C,aAAa,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;IACpD,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,+BAA+B;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB"}
|
|
@@ -30,6 +30,7 @@ var PromptErrorCode = /* @__PURE__ */ ((PromptErrorCode2) => {
|
|
|
30
30
|
PromptErrorCode2["PROMPT_MISSING_TEXT"] = "prompt_missing_text";
|
|
31
31
|
PromptErrorCode2["PROMPT_MISSING_REQUIRED_ARGUMENTS"] = "prompt_missing_required_arguments";
|
|
32
32
|
PromptErrorCode2["PROMPT_ALREADY_EXISTS"] = "prompt_already_exists";
|
|
33
|
+
PromptErrorCode2["PROMPT_CONFIG_INVALID"] = "prompt_config_invalid";
|
|
33
34
|
return PromptErrorCode2;
|
|
34
35
|
})(PromptErrorCode || {});
|
|
35
36
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -10,6 +10,7 @@ export declare enum PromptErrorCode {
|
|
|
10
10
|
PROMPT_INVALID_NAME = "prompt_invalid_name",
|
|
11
11
|
PROMPT_MISSING_TEXT = "prompt_missing_text",
|
|
12
12
|
PROMPT_MISSING_REQUIRED_ARGUMENTS = "prompt_missing_required_arguments",
|
|
13
|
-
PROMPT_ALREADY_EXISTS = "prompt_already_exists"
|
|
13
|
+
PROMPT_ALREADY_EXISTS = "prompt_already_exists",
|
|
14
|
+
PROMPT_CONFIG_INVALID = "prompt_config_invalid"
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=error-codes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/prompts/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IAEvB,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,yBAAyB,8BAA8B;IAGvD,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,iCAAiC,sCAAsC;IACvE,qBAAqB,0BAA0B;CAClD"}
|
|
1
|
+
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/prompts/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IAEvB,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,yBAAyB,8BAA8B;IAGvD,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,iCAAiC,sCAAsC;IACvE,qBAAqB,0BAA0B;IAC/C,qBAAqB,0BAA0B;CAClD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
var PromptErrorCode = /* @__PURE__ */ ((PromptErrorCode2) => {
|
|
3
3
|
PromptErrorCode2["PROMPT_NOT_FOUND"] = "prompt_not_found";
|
|
4
4
|
PromptErrorCode2["PROMPT_EMPTY_CONTENT"] = "prompt_empty_content";
|
|
@@ -8,6 +8,7 @@ var PromptErrorCode = /* @__PURE__ */ ((PromptErrorCode2) => {
|
|
|
8
8
|
PromptErrorCode2["PROMPT_MISSING_TEXT"] = "prompt_missing_text";
|
|
9
9
|
PromptErrorCode2["PROMPT_MISSING_REQUIRED_ARGUMENTS"] = "prompt_missing_required_arguments";
|
|
10
10
|
PromptErrorCode2["PROMPT_ALREADY_EXISTS"] = "prompt_already_exists";
|
|
11
|
+
PromptErrorCode2["PROMPT_CONFIG_INVALID"] = "prompt_config_invalid";
|
|
11
12
|
return PromptErrorCode2;
|
|
12
13
|
})(PromptErrorCode || {});
|
|
13
14
|
export {
|
package/dist/prompts/errors.cjs
CHANGED
|
@@ -137,6 +137,21 @@ class PromptError {
|
|
|
137
137
|
{ name }
|
|
138
138
|
);
|
|
139
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Prompts config validation failed
|
|
142
|
+
*/
|
|
143
|
+
static validationFailed(details) {
|
|
144
|
+
return new import_DextoValidationError.DextoValidationError([
|
|
145
|
+
{
|
|
146
|
+
code: import_error_codes.PromptErrorCode.PROMPT_CONFIG_INVALID,
|
|
147
|
+
message: `Invalid prompts configuration: ${details}`,
|
|
148
|
+
scope: import_types.ErrorScope.PROMPT,
|
|
149
|
+
type: import_types.ErrorType.USER,
|
|
150
|
+
severity: "error",
|
|
151
|
+
context: { details }
|
|
152
|
+
}
|
|
153
|
+
]);
|
|
154
|
+
}
|
|
140
155
|
}
|
|
141
156
|
// Annotate the CommonJS export names for ESM import in node:
|
|
142
157
|
0 && (module.exports = {
|
package/dist/prompts/errors.d.ts
CHANGED
|
@@ -41,5 +41,9 @@ export declare class PromptError {
|
|
|
41
41
|
static emptyResolvedContent(name: string): DextoRuntimeError<{
|
|
42
42
|
name: string;
|
|
43
43
|
}>;
|
|
44
|
+
/**
|
|
45
|
+
* Prompts config validation failed
|
|
46
|
+
*/
|
|
47
|
+
static validationFailed(details: string): DextoValidationError;
|
|
44
48
|
}
|
|
45
49
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/prompts/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAI5E;;;GAGG;AACH,qBAAa,WAAW;IACpB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;;;IAU5B;;OAEG;IACH,MAAM,CAAC,WAAW;IAalB;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE;IAatD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;IAUtC;;OAEG;IACH,MAAM,CAAC,YAAY;IAanB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAelF,6CAA6C;IAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAajC;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM;;;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/prompts/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAI5E;;;GAGG;AACH,qBAAa,WAAW;IACpB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;;;IAU5B;;OAEG;IACH,MAAM,CAAC,WAAW;IAalB;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE;IAatD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;IAUtC;;OAEG;IACH,MAAM,CAAC,YAAY;IAanB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAelF,6CAA6C;IAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAajC;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM;;;IAUxC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;CAY1C"}
|
package/dist/prompts/errors.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
import { DextoRuntimeError } from "../errors/DextoRuntimeError.js";
|
|
3
3
|
import { DextoValidationError } from "../errors/DextoValidationError.js";
|
|
4
4
|
import { ErrorScope, ErrorType } from "../errors/types.js";
|
|
@@ -115,6 +115,21 @@ class PromptError {
|
|
|
115
115
|
{ name }
|
|
116
116
|
);
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Prompts config validation failed
|
|
120
|
+
*/
|
|
121
|
+
static validationFailed(details) {
|
|
122
|
+
return new DextoValidationError([
|
|
123
|
+
{
|
|
124
|
+
code: PromptErrorCode.PROMPT_CONFIG_INVALID,
|
|
125
|
+
message: `Invalid prompts configuration: ${details}`,
|
|
126
|
+
scope: ErrorScope.PROMPT,
|
|
127
|
+
type: ErrorType.USER,
|
|
128
|
+
severity: "error",
|
|
129
|
+
context: { details }
|
|
130
|
+
}
|
|
131
|
+
]);
|
|
132
|
+
}
|
|
118
133
|
}
|
|
119
134
|
export {
|
|
120
135
|
PromptError
|
package/dist/prompts/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
import { PromptManager } from "./prompt-manager.js";
|
|
3
3
|
import { MCPPromptProvider } from "./providers/mcp-prompt-provider.js";
|
|
4
4
|
import { CustomPromptProvider } from "./providers/custom-prompt-provider.js";
|
|
@@ -32,8 +32,9 @@ class PromptManager {
|
|
|
32
32
|
this.eventBus = eventBus;
|
|
33
33
|
this.database = database;
|
|
34
34
|
this.logger = logger.createChild(import_types.DextoLogComponent.PROMPT);
|
|
35
|
+
this.configProvider = new import_config_prompt_provider.ConfigPromptProvider(agentConfig, this.logger);
|
|
35
36
|
this.providers.set("mcp", new import_mcp_prompt_provider.MCPPromptProvider(mcpManager, this.logger));
|
|
36
|
-
this.providers.set("config",
|
|
37
|
+
this.providers.set("config", this.configProvider);
|
|
37
38
|
this.providers.set(
|
|
38
39
|
"custom",
|
|
39
40
|
new import_custom_prompt_provider.CustomPromptProvider(this.database, resourceManager, this.logger)
|
|
@@ -64,6 +65,7 @@ class PromptManager {
|
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
providers = /* @__PURE__ */ new Map();
|
|
68
|
+
configProvider;
|
|
67
69
|
promptIndex;
|
|
68
70
|
aliasMap = /* @__PURE__ */ new Map();
|
|
69
71
|
buildPromise = null;
|
|
@@ -209,6 +211,16 @@ class PromptManager {
|
|
|
209
211
|
await this.ensureCache();
|
|
210
212
|
this.logger.info("PromptManager refreshed");
|
|
211
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Updates the config prompts at runtime.
|
|
216
|
+
* Call this after modifying the agent config file to reflect new prompts.
|
|
217
|
+
*/
|
|
218
|
+
updateConfigPrompts(prompts) {
|
|
219
|
+
this.configProvider.updatePrompts(prompts);
|
|
220
|
+
this.promptIndex = void 0;
|
|
221
|
+
this.aliasMap.clear();
|
|
222
|
+
this.logger.debug("Config prompts updated");
|
|
223
|
+
}
|
|
212
224
|
/**
|
|
213
225
|
* Surgically update prompts for a specific MCP server instead of full cache rebuild
|
|
214
226
|
*/
|
|
@@ -260,7 +272,6 @@ class PromptManager {
|
|
|
260
272
|
const metadata = { ...prompt.metadata ?? {} };
|
|
261
273
|
delete metadata.content;
|
|
262
274
|
delete metadata.prompt;
|
|
263
|
-
delete metadata.filePath;
|
|
264
275
|
delete metadata.messages;
|
|
265
276
|
if (!metadata.originalName) {
|
|
266
277
|
metadata.originalName = prompt.name;
|
|
@@ -2,6 +2,7 @@ import type { MCPManager } from '../mcp/manager.js';
|
|
|
2
2
|
import type { PromptSet, PromptInfo } from './types.js';
|
|
3
3
|
import type { GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
|
|
4
4
|
import type { ValidatedAgentConfig } from '../agent/schemas.js';
|
|
5
|
+
import type { PromptsConfig } from './schemas.js';
|
|
5
6
|
import type { AgentEventBus } from '../events/index.js';
|
|
6
7
|
import { type CreateCustomPromptInput } from './providers/custom-prompt-provider.js';
|
|
7
8
|
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
@@ -11,6 +12,7 @@ export declare class PromptManager {
|
|
|
11
12
|
private readonly eventBus;
|
|
12
13
|
private readonly database;
|
|
13
14
|
private providers;
|
|
15
|
+
private configProvider;
|
|
14
16
|
private promptIndex;
|
|
15
17
|
private aliasMap;
|
|
16
18
|
private buildPromise;
|
|
@@ -59,6 +61,11 @@ export declare class PromptManager {
|
|
|
59
61
|
resources: string[];
|
|
60
62
|
}>;
|
|
61
63
|
refresh(): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Updates the config prompts at runtime.
|
|
66
|
+
* Call this after modifying the agent config file to reflect new prompts.
|
|
67
|
+
*/
|
|
68
|
+
updateConfigPrompts(prompts: PromptsConfig): void;
|
|
62
69
|
/**
|
|
63
70
|
* Surgically update prompts for a specific MCP server instead of full cache rebuild
|
|
64
71
|
*/
|
|
@@ -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;AAGxD,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;
|
|
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,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,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;IAYlB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAZ7B,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,cAAc,CAAuB;IAC7C,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;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAOjD;;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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
import { MCPPromptProvider } from "./providers/mcp-prompt-provider.js";
|
|
3
3
|
import { ConfigPromptProvider } from "./providers/config-prompt-provider.js";
|
|
4
4
|
import {
|
|
@@ -12,8 +12,9 @@ class PromptManager {
|
|
|
12
12
|
this.eventBus = eventBus;
|
|
13
13
|
this.database = database;
|
|
14
14
|
this.logger = logger.createChild(DextoLogComponent.PROMPT);
|
|
15
|
+
this.configProvider = new ConfigPromptProvider(agentConfig, this.logger);
|
|
15
16
|
this.providers.set("mcp", new MCPPromptProvider(mcpManager, this.logger));
|
|
16
|
-
this.providers.set("config",
|
|
17
|
+
this.providers.set("config", this.configProvider);
|
|
17
18
|
this.providers.set(
|
|
18
19
|
"custom",
|
|
19
20
|
new CustomPromptProvider(this.database, resourceManager, this.logger)
|
|
@@ -44,6 +45,7 @@ class PromptManager {
|
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
47
|
providers = /* @__PURE__ */ new Map();
|
|
48
|
+
configProvider;
|
|
47
49
|
promptIndex;
|
|
48
50
|
aliasMap = /* @__PURE__ */ new Map();
|
|
49
51
|
buildPromise = null;
|
|
@@ -189,6 +191,16 @@ class PromptManager {
|
|
|
189
191
|
await this.ensureCache();
|
|
190
192
|
this.logger.info("PromptManager refreshed");
|
|
191
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* Updates the config prompts at runtime.
|
|
196
|
+
* Call this after modifying the agent config file to reflect new prompts.
|
|
197
|
+
*/
|
|
198
|
+
updateConfigPrompts(prompts) {
|
|
199
|
+
this.configProvider.updatePrompts(prompts);
|
|
200
|
+
this.promptIndex = void 0;
|
|
201
|
+
this.aliasMap.clear();
|
|
202
|
+
this.logger.debug("Config prompts updated");
|
|
203
|
+
}
|
|
192
204
|
/**
|
|
193
205
|
* Surgically update prompts for a specific MCP server instead of full cache rebuild
|
|
194
206
|
*/
|
|
@@ -240,7 +252,6 @@ class PromptManager {
|
|
|
240
252
|
const metadata = { ...prompt.metadata ?? {} };
|
|
241
253
|
delete metadata.content;
|
|
242
254
|
delete metadata.prompt;
|
|
243
|
-
delete metadata.filePath;
|
|
244
255
|
delete metadata.messages;
|
|
245
256
|
if (!metadata.originalName) {
|
|
246
257
|
metadata.originalName = prompt.name;
|
|
@@ -21,6 +21,7 @@ __export(config_prompt_provider_exports, {
|
|
|
21
21
|
ConfigPromptProvider: () => ConfigPromptProvider
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(config_prompt_provider_exports);
|
|
24
|
+
var import_schemas = require("../schemas.js");
|
|
24
25
|
var import_types = require("../../logger/v2/types.js");
|
|
25
26
|
var import_errors = require("../errors.js");
|
|
26
27
|
var import_utils = require("../utils.js");
|
|
@@ -48,8 +49,14 @@ class ConfigPromptProvider {
|
|
|
48
49
|
this.promptContent.clear();
|
|
49
50
|
this.logger.debug("ConfigPromptProvider cache invalidated");
|
|
50
51
|
}
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
updatePrompts(prompts) {
|
|
53
|
+
const result = import_schemas.PromptsSchema.safeParse(prompts);
|
|
54
|
+
if (!result.success) {
|
|
55
|
+
const errorMsg = result.error.issues.map((i) => i.message).join(", ");
|
|
56
|
+
this.logger.error(`Invalid prompts config: ${errorMsg}`);
|
|
57
|
+
throw import_errors.PromptError.validationFailed(errorMsg);
|
|
58
|
+
}
|
|
59
|
+
this.prompts = result.data;
|
|
53
60
|
this.invalidateCache();
|
|
54
61
|
this.buildPromptsCache();
|
|
55
62
|
}
|
|
@@ -105,7 +112,7 @@ class ConfigPromptProvider {
|
|
|
105
112
|
async buildPromptsCache() {
|
|
106
113
|
const cache = [];
|
|
107
114
|
const contentMap = /* @__PURE__ */ new Map();
|
|
108
|
-
for (const prompt of this.prompts) {
|
|
115
|
+
for (const prompt of this.prompts ?? []) {
|
|
109
116
|
try {
|
|
110
117
|
if (prompt.type === "inline") {
|
|
111
118
|
const { info, content } = this.processInlinePrompt(prompt);
|
|
@@ -138,6 +145,7 @@ class ConfigPromptProvider {
|
|
|
138
145
|
const promptName = `config:${prompt.id}`;
|
|
139
146
|
const promptInfo = {
|
|
140
147
|
name: promptName,
|
|
148
|
+
displayName: prompt.id,
|
|
141
149
|
title: prompt.title,
|
|
142
150
|
description: prompt.description,
|
|
143
151
|
source: "config",
|
|
@@ -189,6 +197,7 @@ class ConfigPromptProvider {
|
|
|
189
197
|
}
|
|
190
198
|
const promptInfo = {
|
|
191
199
|
name: `config:${parsed.id}`,
|
|
200
|
+
displayName: parsed.id,
|
|
192
201
|
title: parsed.title,
|
|
193
202
|
description: parsed.description,
|
|
194
203
|
source: "config",
|