@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
package/dist/agent/types.d.ts
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Re-uses existing types from context, llm/services, and events to avoid duplication.
|
|
5
5
|
*/
|
|
6
|
-
import type {
|
|
6
|
+
import type { ContentPart } from '../context/types.js';
|
|
7
7
|
import type { LLMTokenUsage } from '../llm/services/types.js';
|
|
8
8
|
/**
|
|
9
|
-
* Re-export
|
|
9
|
+
* Re-export content part types for API consumers
|
|
10
10
|
*/
|
|
11
|
-
export type {
|
|
11
|
+
export type { ContentPart, TextPart, ImagePart, FilePart, ImageData, FileData, } from '../context/types.js';
|
|
12
12
|
export type { LLMTokenUsage as TokenUsage } from '../llm/services/types.js';
|
|
13
13
|
/**
|
|
14
14
|
* Tool call information for agent streaming
|
|
@@ -24,13 +24,28 @@ export interface AgentToolCall {
|
|
|
24
24
|
} | undefined;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Content input for generate() and stream() methods.
|
|
28
|
+
* Can be a simple string (for text-only messages) or an array of ContentPart (for multimodal).
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // Simple text
|
|
33
|
+
* agent.generate('What is 2+2?', sessionId);
|
|
34
|
+
*
|
|
35
|
+
* // Multimodal with image
|
|
36
|
+
* agent.generate([
|
|
37
|
+
* { type: 'text', text: 'Describe this image' },
|
|
38
|
+
* { type: 'image', image: base64Data, mimeType: 'image/png' }
|
|
39
|
+
* ], sessionId);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export type ContentInput = string | ContentPart[];
|
|
43
|
+
/**
|
|
44
|
+
* Options for generate() and stream() methods
|
|
28
45
|
*/
|
|
29
46
|
export interface GenerateOptions {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
fileData?: FileData | undefined;
|
|
33
|
-
signal?: AbortSignal | undefined;
|
|
47
|
+
/** AbortSignal for cancellation */
|
|
48
|
+
signal?: AbortSignal;
|
|
34
49
|
}
|
|
35
50
|
/**
|
|
36
51
|
* Complete response from generate() method
|
|
@@ -48,6 +63,5 @@ export interface GenerateResponse {
|
|
|
48
63
|
* Note: stream() now returns core StreamingEvent types directly from the event system.
|
|
49
64
|
* See packages/core/src/events/index.ts for event definitions.
|
|
50
65
|
*/
|
|
51
|
-
export
|
|
52
|
-
}
|
|
66
|
+
export type StreamOptions = GenerateOptions;
|
|
53
67
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,YAAY,EACR,WAAW,EACX,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,GACX,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EACD;QACI,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,GAAG,CAAC;KACb,GACD,SAAS,CAAC;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,mCAAmC;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
var ApprovalErrorCode = /* @__PURE__ */ ((ApprovalErrorCode2) => {
|
|
3
3
|
ApprovalErrorCode2["APPROVAL_INVALID_REQUEST"] = "approval_invalid_request";
|
|
4
4
|
ApprovalErrorCode2["APPROVAL_INVALID_RESPONSE"] = "approval_invalid_response";
|
package/dist/approval/errors.js
CHANGED
package/dist/approval/factory.js
CHANGED
package/dist/approval/index.js
CHANGED
|
@@ -25,10 +25,17 @@ var import_types = require("./types.js");
|
|
|
25
25
|
var import_factory = require("./factory.js");
|
|
26
26
|
var import_types2 = require("../logger/v2/types.js");
|
|
27
27
|
var import_errors = require("./errors.js");
|
|
28
|
+
var import_bash_pattern_utils = require("../tools/bash-pattern-utils.js");
|
|
28
29
|
class ApprovalManager {
|
|
29
30
|
handler;
|
|
30
31
|
config;
|
|
31
32
|
logger;
|
|
33
|
+
/**
|
|
34
|
+
* Bash command patterns approved for the current session.
|
|
35
|
+
* Patterns use simple glob syntax (e.g., "git *", "npm install *").
|
|
36
|
+
* Cleared when session ends.
|
|
37
|
+
*/
|
|
38
|
+
bashPatterns = /* @__PURE__ */ new Set();
|
|
32
39
|
constructor(config, logger) {
|
|
33
40
|
this.config = config;
|
|
34
41
|
this.logger = logger.createChild(import_types2.DextoLogComponent.APPROVAL);
|
|
@@ -36,6 +43,56 @@ class ApprovalManager {
|
|
|
36
43
|
`ApprovalManager initialized with toolConfirmation.mode: ${config.toolConfirmation.mode}, elicitation.enabled: ${config.elicitation.enabled}`
|
|
37
44
|
);
|
|
38
45
|
}
|
|
46
|
+
// ==================== Bash Pattern Methods ====================
|
|
47
|
+
/**
|
|
48
|
+
* Add a bash command pattern to the approved list for this session.
|
|
49
|
+
* Patterns use simple glob syntax with * as wildcard.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* manager.addBashPattern("git *"); // Approves all git commands
|
|
54
|
+
* manager.addBashPattern("npm install *"); // Approves npm install with any package
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
addBashPattern(pattern) {
|
|
58
|
+
this.bashPatterns.add(pattern);
|
|
59
|
+
this.logger.debug(`Added bash pattern: "${pattern}"`);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if a bash pattern key is covered by any approved pattern.
|
|
63
|
+
* Uses pattern-to-pattern covering for broader pattern support.
|
|
64
|
+
*
|
|
65
|
+
* @param patternKey The pattern key generated from the command (e.g., "git push *")
|
|
66
|
+
* @returns true if the pattern key is covered by an approved pattern
|
|
67
|
+
*/
|
|
68
|
+
matchesBashPattern(patternKey) {
|
|
69
|
+
for (const storedPattern of this.bashPatterns) {
|
|
70
|
+
if ((0, import_bash_pattern_utils.patternCovers)(storedPattern, patternKey)) {
|
|
71
|
+
this.logger.debug(
|
|
72
|
+
`Pattern key "${patternKey}" is covered by approved pattern "${storedPattern}"`
|
|
73
|
+
);
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Clear all approved bash patterns.
|
|
81
|
+
* Should be called when session ends.
|
|
82
|
+
*/
|
|
83
|
+
clearBashPatterns() {
|
|
84
|
+
const count = this.bashPatterns.size;
|
|
85
|
+
this.bashPatterns.clear();
|
|
86
|
+
if (count > 0) {
|
|
87
|
+
this.logger.debug(`Cleared ${count} bash patterns`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get the current set of approved bash patterns (for debugging/display).
|
|
92
|
+
*/
|
|
93
|
+
getBashPatterns() {
|
|
94
|
+
return this.bashPatterns;
|
|
95
|
+
}
|
|
39
96
|
/**
|
|
40
97
|
* Request a generic approval
|
|
41
98
|
*/
|
|
@@ -106,7 +163,8 @@ class ApprovalManager {
|
|
|
106
163
|
const { sessionId, timeout, ...toolMetadata } = metadata;
|
|
107
164
|
const details = {
|
|
108
165
|
type: import_types.ApprovalType.TOOL_CONFIRMATION,
|
|
109
|
-
|
|
166
|
+
// Use provided timeout, fallback to config timeout, or undefined (no timeout)
|
|
167
|
+
timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
|
|
110
168
|
metadata: toolMetadata
|
|
111
169
|
};
|
|
112
170
|
if (sessionId !== void 0) {
|
|
@@ -139,7 +197,8 @@ class ApprovalManager {
|
|
|
139
197
|
const { sessionId, timeout, ...commandMetadata } = metadata;
|
|
140
198
|
const details = {
|
|
141
199
|
type: import_types.ApprovalType.COMMAND_CONFIRMATION,
|
|
142
|
-
|
|
200
|
+
// Use provided timeout, fallback to config timeout, or undefined (no timeout)
|
|
201
|
+
timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
|
|
143
202
|
metadata: commandMetadata
|
|
144
203
|
};
|
|
145
204
|
if (sessionId !== void 0) {
|
|
@@ -158,7 +217,8 @@ class ApprovalManager {
|
|
|
158
217
|
const { sessionId, timeout, ...elicitationMetadata } = metadata;
|
|
159
218
|
const details = {
|
|
160
219
|
type: import_types.ApprovalType.ELICITATION,
|
|
161
|
-
|
|
220
|
+
// Use provided timeout, fallback to config timeout, or undefined (no timeout)
|
|
221
|
+
timeout: timeout !== void 0 ? timeout : this.config.elicitation.timeout,
|
|
162
222
|
metadata: elicitationMetadata
|
|
163
223
|
};
|
|
164
224
|
if (sessionId !== void 0) {
|
|
@@ -233,6 +293,12 @@ class ApprovalManager {
|
|
|
233
293
|
getPendingApprovals() {
|
|
234
294
|
return this.handler?.getPending?.() ?? [];
|
|
235
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* Get full pending approval requests
|
|
298
|
+
*/
|
|
299
|
+
getPendingApprovalRequests() {
|
|
300
|
+
return this.handler?.getPendingRequests?.() ?? [];
|
|
301
|
+
}
|
|
236
302
|
/**
|
|
237
303
|
* Get current configuration
|
|
238
304
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApprovalHandler, ApprovalResponse, ApprovalRequestDetails, ToolConfirmationMetadata, CommandConfirmationMetadata, ElicitationMetadata } from './types.js';
|
|
1
|
+
import type { ApprovalHandler, ApprovalRequest, ApprovalResponse, ApprovalRequestDetails, ToolConfirmationMetadata, CommandConfirmationMetadata, ElicitationMetadata } from './types.js';
|
|
2
2
|
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Configuration for the approval manager
|
|
@@ -6,11 +6,11 @@ import type { IDextoLogger } from '../logger/v2/types.js';
|
|
|
6
6
|
export interface ApprovalManagerConfig {
|
|
7
7
|
toolConfirmation: {
|
|
8
8
|
mode: 'manual' | 'auto-approve' | 'auto-deny';
|
|
9
|
-
timeout
|
|
9
|
+
timeout?: number;
|
|
10
10
|
};
|
|
11
11
|
elicitation: {
|
|
12
12
|
enabled: boolean;
|
|
13
|
-
timeout
|
|
13
|
+
timeout?: number;
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
@@ -50,7 +50,41 @@ export declare class ApprovalManager {
|
|
|
50
50
|
private handler;
|
|
51
51
|
private config;
|
|
52
52
|
private logger;
|
|
53
|
+
/**
|
|
54
|
+
* Bash command patterns approved for the current session.
|
|
55
|
+
* Patterns use simple glob syntax (e.g., "git *", "npm install *").
|
|
56
|
+
* Cleared when session ends.
|
|
57
|
+
*/
|
|
58
|
+
private bashPatterns;
|
|
53
59
|
constructor(config: ApprovalManagerConfig, logger: IDextoLogger);
|
|
60
|
+
/**
|
|
61
|
+
* Add a bash command pattern to the approved list for this session.
|
|
62
|
+
* Patterns use simple glob syntax with * as wildcard.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* manager.addBashPattern("git *"); // Approves all git commands
|
|
67
|
+
* manager.addBashPattern("npm install *"); // Approves npm install with any package
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
addBashPattern(pattern: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* Check if a bash pattern key is covered by any approved pattern.
|
|
73
|
+
* Uses pattern-to-pattern covering for broader pattern support.
|
|
74
|
+
*
|
|
75
|
+
* @param patternKey The pattern key generated from the command (e.g., "git push *")
|
|
76
|
+
* @returns true if the pattern key is covered by an approved pattern
|
|
77
|
+
*/
|
|
78
|
+
matchesBashPattern(patternKey: string): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Clear all approved bash patterns.
|
|
81
|
+
* Should be called when session ends.
|
|
82
|
+
*/
|
|
83
|
+
clearBashPatterns(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Get the current set of approved bash patterns (for debugging/display).
|
|
86
|
+
*/
|
|
87
|
+
getBashPatterns(): ReadonlySet<string>;
|
|
54
88
|
/**
|
|
55
89
|
* Request a generic approval
|
|
56
90
|
*/
|
|
@@ -135,6 +169,10 @@ export declare class ApprovalManager {
|
|
|
135
169
|
* Get list of pending approval IDs
|
|
136
170
|
*/
|
|
137
171
|
getPendingApprovals(): string[];
|
|
172
|
+
/**
|
|
173
|
+
* Get full pending approval requests
|
|
174
|
+
*/
|
|
175
|
+
getPendingApprovalRequests(): ApprovalRequest[];
|
|
138
176
|
/**
|
|
139
177
|
* Get current configuration
|
|
140
178
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/approval/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/approval/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/approval/manager.js
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
import { ApprovalType, ApprovalStatus, DenialReason } from "./types.js";
|
|
3
3
|
import { createApprovalRequest } from "./factory.js";
|
|
4
4
|
import { DextoLogComponent } from "../logger/v2/types.js";
|
|
5
5
|
import { ApprovalError } from "./errors.js";
|
|
6
|
+
import { patternCovers } from "../tools/bash-pattern-utils.js";
|
|
6
7
|
class ApprovalManager {
|
|
7
8
|
handler;
|
|
8
9
|
config;
|
|
9
10
|
logger;
|
|
11
|
+
/**
|
|
12
|
+
* Bash command patterns approved for the current session.
|
|
13
|
+
* Patterns use simple glob syntax (e.g., "git *", "npm install *").
|
|
14
|
+
* Cleared when session ends.
|
|
15
|
+
*/
|
|
16
|
+
bashPatterns = /* @__PURE__ */ new Set();
|
|
10
17
|
constructor(config, logger) {
|
|
11
18
|
this.config = config;
|
|
12
19
|
this.logger = logger.createChild(DextoLogComponent.APPROVAL);
|
|
@@ -14,6 +21,56 @@ class ApprovalManager {
|
|
|
14
21
|
`ApprovalManager initialized with toolConfirmation.mode: ${config.toolConfirmation.mode}, elicitation.enabled: ${config.elicitation.enabled}`
|
|
15
22
|
);
|
|
16
23
|
}
|
|
24
|
+
// ==================== Bash Pattern Methods ====================
|
|
25
|
+
/**
|
|
26
|
+
* Add a bash command pattern to the approved list for this session.
|
|
27
|
+
* Patterns use simple glob syntax with * as wildcard.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* manager.addBashPattern("git *"); // Approves all git commands
|
|
32
|
+
* manager.addBashPattern("npm install *"); // Approves npm install with any package
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
addBashPattern(pattern) {
|
|
36
|
+
this.bashPatterns.add(pattern);
|
|
37
|
+
this.logger.debug(`Added bash pattern: "${pattern}"`);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if a bash pattern key is covered by any approved pattern.
|
|
41
|
+
* Uses pattern-to-pattern covering for broader pattern support.
|
|
42
|
+
*
|
|
43
|
+
* @param patternKey The pattern key generated from the command (e.g., "git push *")
|
|
44
|
+
* @returns true if the pattern key is covered by an approved pattern
|
|
45
|
+
*/
|
|
46
|
+
matchesBashPattern(patternKey) {
|
|
47
|
+
for (const storedPattern of this.bashPatterns) {
|
|
48
|
+
if (patternCovers(storedPattern, patternKey)) {
|
|
49
|
+
this.logger.debug(
|
|
50
|
+
`Pattern key "${patternKey}" is covered by approved pattern "${storedPattern}"`
|
|
51
|
+
);
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Clear all approved bash patterns.
|
|
59
|
+
* Should be called when session ends.
|
|
60
|
+
*/
|
|
61
|
+
clearBashPatterns() {
|
|
62
|
+
const count = this.bashPatterns.size;
|
|
63
|
+
this.bashPatterns.clear();
|
|
64
|
+
if (count > 0) {
|
|
65
|
+
this.logger.debug(`Cleared ${count} bash patterns`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get the current set of approved bash patterns (for debugging/display).
|
|
70
|
+
*/
|
|
71
|
+
getBashPatterns() {
|
|
72
|
+
return this.bashPatterns;
|
|
73
|
+
}
|
|
17
74
|
/**
|
|
18
75
|
* Request a generic approval
|
|
19
76
|
*/
|
|
@@ -84,7 +141,8 @@ class ApprovalManager {
|
|
|
84
141
|
const { sessionId, timeout, ...toolMetadata } = metadata;
|
|
85
142
|
const details = {
|
|
86
143
|
type: ApprovalType.TOOL_CONFIRMATION,
|
|
87
|
-
|
|
144
|
+
// Use provided timeout, fallback to config timeout, or undefined (no timeout)
|
|
145
|
+
timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
|
|
88
146
|
metadata: toolMetadata
|
|
89
147
|
};
|
|
90
148
|
if (sessionId !== void 0) {
|
|
@@ -117,7 +175,8 @@ class ApprovalManager {
|
|
|
117
175
|
const { sessionId, timeout, ...commandMetadata } = metadata;
|
|
118
176
|
const details = {
|
|
119
177
|
type: ApprovalType.COMMAND_CONFIRMATION,
|
|
120
|
-
|
|
178
|
+
// Use provided timeout, fallback to config timeout, or undefined (no timeout)
|
|
179
|
+
timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
|
|
121
180
|
metadata: commandMetadata
|
|
122
181
|
};
|
|
123
182
|
if (sessionId !== void 0) {
|
|
@@ -136,7 +195,8 @@ class ApprovalManager {
|
|
|
136
195
|
const { sessionId, timeout, ...elicitationMetadata } = metadata;
|
|
137
196
|
const details = {
|
|
138
197
|
type: ApprovalType.ELICITATION,
|
|
139
|
-
|
|
198
|
+
// Use provided timeout, fallback to config timeout, or undefined (no timeout)
|
|
199
|
+
timeout: timeout !== void 0 ? timeout : this.config.elicitation.timeout,
|
|
140
200
|
metadata: elicitationMetadata
|
|
141
201
|
};
|
|
142
202
|
if (sessionId !== void 0) {
|
|
@@ -211,6 +271,12 @@ class ApprovalManager {
|
|
|
211
271
|
getPendingApprovals() {
|
|
212
272
|
return this.handler?.getPending?.() ?? [];
|
|
213
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Get full pending approval requests
|
|
276
|
+
*/
|
|
277
|
+
getPendingApprovalRequests() {
|
|
278
|
+
return this.handler?.getPendingRequests?.() ?? [];
|
|
279
|
+
}
|
|
214
280
|
/**
|
|
215
281
|
* Get current configuration
|
|
216
282
|
*/
|
|
@@ -46,14 +46,25 @@ __export(schemas_exports, {
|
|
|
46
46
|
module.exports = __toCommonJS(schemas_exports);
|
|
47
47
|
var import_zod = require("zod");
|
|
48
48
|
var import_types = require("./types.js");
|
|
49
|
+
var import_display_types = require("../tools/display-types.js");
|
|
49
50
|
const JsonSchema7Schema = import_zod.z.record(import_zod.z.unknown());
|
|
50
51
|
const ApprovalTypeSchema = import_zod.z.nativeEnum(import_types.ApprovalType);
|
|
51
52
|
const ApprovalStatusSchema = import_zod.z.nativeEnum(import_types.ApprovalStatus);
|
|
52
53
|
const DenialReasonSchema = import_zod.z.nativeEnum(import_types.DenialReason);
|
|
54
|
+
const ToolDisplayDataSchema = import_zod.z.custom((val) => (0, import_display_types.isValidDisplayData)(val), {
|
|
55
|
+
message: "Invalid ToolDisplayData"
|
|
56
|
+
});
|
|
53
57
|
const ToolConfirmationMetadataSchema = import_zod.z.object({
|
|
54
58
|
toolName: import_zod.z.string().describe("Name of the tool to confirm"),
|
|
59
|
+
toolCallId: import_zod.z.string().describe("Unique tool call ID for tracking parallel tool calls"),
|
|
55
60
|
args: import_zod.z.record(import_zod.z.unknown()).describe("Arguments for the tool"),
|
|
56
|
-
description: import_zod.z.string().optional().describe("Description of the tool")
|
|
61
|
+
description: import_zod.z.string().optional().describe("Description of the tool"),
|
|
62
|
+
displayPreview: ToolDisplayDataSchema.optional().describe(
|
|
63
|
+
"Preview display data for approval UI (e.g., diff preview)"
|
|
64
|
+
),
|
|
65
|
+
suggestedPatterns: import_zod.z.array(import_zod.z.string()).optional().describe(
|
|
66
|
+
'Suggested patterns for session approval (for bash commands). E.g., ["git push *", "git *"] for command "git push origin main"'
|
|
67
|
+
)
|
|
57
68
|
}).strict().describe("Tool confirmation metadata");
|
|
58
69
|
const CommandConfirmationMetadataSchema = import_zod.z.object({
|
|
59
70
|
toolName: import_zod.z.string().describe("Name of the tool executing the command"),
|
|
@@ -71,7 +82,7 @@ const BaseApprovalRequestSchema = import_zod.z.object({
|
|
|
71
82
|
approvalId: import_zod.z.string().uuid().describe("Unique approval identifier"),
|
|
72
83
|
type: ApprovalTypeSchema.describe("Type of approval"),
|
|
73
84
|
sessionId: import_zod.z.string().optional().describe("Session identifier"),
|
|
74
|
-
timeout: import_zod.z.number().int().positive().describe("Timeout in milliseconds"),
|
|
85
|
+
timeout: import_zod.z.number().int().positive().optional().describe("Timeout in milliseconds (optional - no timeout if not specified)"),
|
|
75
86
|
timestamp: import_zod.z.date().describe("When the request was created")
|
|
76
87
|
}).describe("Base approval request");
|
|
77
88
|
const ToolConfirmationRequestSchema = BaseApprovalRequestSchema.extend({
|
|
@@ -97,7 +108,10 @@ const ApprovalRequestSchema = import_zod.z.discriminatedUnion("type", [
|
|
|
97
108
|
CustomApprovalRequestSchema
|
|
98
109
|
]);
|
|
99
110
|
const ToolConfirmationResponseDataSchema = import_zod.z.object({
|
|
100
|
-
rememberChoice: import_zod.z.boolean().optional().describe("Remember this
|
|
111
|
+
rememberChoice: import_zod.z.boolean().optional().describe("Remember this tool for the session (approves ALL uses of this tool)"),
|
|
112
|
+
rememberPattern: import_zod.z.string().optional().describe(
|
|
113
|
+
'Remember a command pattern for bash commands (e.g., "git *"). Only applicable for bash_exec tool approvals.'
|
|
114
|
+
)
|
|
101
115
|
}).strict().describe("Tool confirmation response data");
|
|
102
116
|
const CommandConfirmationResponseDataSchema = import_zod.z.object({
|
|
103
117
|
// Command confirmations don't have remember choice - they're per-command
|
|
@@ -138,7 +152,7 @@ const ApprovalResponseSchema = import_zod.z.union([
|
|
|
138
152
|
const ApprovalRequestDetailsSchema = import_zod.z.object({
|
|
139
153
|
type: ApprovalTypeSchema,
|
|
140
154
|
sessionId: import_zod.z.string().optional(),
|
|
141
|
-
timeout: import_zod.z.number().int().positive(),
|
|
155
|
+
timeout: import_zod.z.number().int().positive().optional().describe("Timeout in milliseconds (optional - no timeout if not specified)"),
|
|
142
156
|
metadata: import_zod.z.union([
|
|
143
157
|
ToolConfirmationMetadataSchema,
|
|
144
158
|
CommandConfirmationMetadataSchema,
|