@dexto/core 1.5.8 → 1.6.1
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 +19 -8
- package/dist/agent/DextoAgent.cjs +318 -159
- package/dist/agent/DextoAgent.d.ts +94 -56
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +315 -156
- package/dist/{context/compaction/provider.cjs → agent/agent-options.cjs} +2 -2
- package/dist/agent/agent-options.d.ts +53 -0
- package/dist/agent/agent-options.d.ts.map +1 -0
- package/dist/agent/agentCard.cjs +1 -1
- package/dist/agent/errors.cjs +2 -2
- package/dist/agent/errors.d.ts.map +1 -1
- package/dist/agent/index.cjs +1 -6
- package/dist/agent/index.d.ts +3 -2
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +1 -7
- package/dist/{storage/blob/provider.cjs → agent/runtime-config.cjs} +2 -2
- package/dist/agent/runtime-config.d.ts +53 -0
- package/dist/agent/runtime-config.d.ts.map +1 -0
- package/dist/agent/schemas.cjs +2 -104
- package/dist/agent/schemas.d.ts +8 -9197
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +1 -109
- package/dist/agent/state-manager.d.ts +5 -5
- package/dist/agent/state-manager.d.ts.map +1 -1
- package/dist/approval/error-codes.cjs +1 -1
- package/dist/approval/error-codes.d.ts +1 -1
- package/dist/approval/error-codes.d.ts.map +1 -1
- package/dist/approval/error-codes.js +1 -1
- package/dist/approval/errors.cjs +5 -5
- package/dist/approval/errors.d.ts +2 -2
- package/dist/approval/errors.d.ts.map +1 -1
- package/dist/approval/errors.js +5 -5
- package/dist/approval/index.cjs +8 -8
- package/dist/approval/index.d.ts +2 -2
- package/dist/approval/index.d.ts.map +1 -1
- package/dist/approval/index.js +8 -8
- package/dist/approval/manager.cjs +163 -83
- package/dist/approval/manager.d.ts +50 -43
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +161 -81
- package/dist/approval/schemas.cjs +47 -32
- package/dist/approval/schemas.d.ts +291 -97
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +43 -28
- package/dist/approval/types.cjs +1 -1
- package/dist/approval/types.d.ts +14 -14
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +1 -1
- package/dist/context/compaction/index.cjs +2 -23
- package/dist/context/compaction/index.d.ts +1 -7
- package/dist/context/compaction/index.d.ts.map +1 -1
- package/dist/context/compaction/index.js +1 -16
- package/dist/context/compaction/strategies/noop.cjs +19 -1
- package/dist/context/compaction/strategies/noop.d.ts +13 -3
- package/dist/context/compaction/strategies/noop.d.ts.map +1 -1
- package/dist/context/compaction/strategies/noop.js +19 -1
- package/dist/context/compaction/strategies/{reactive-overflow.cjs → reactive-overflow-compaction.cjs} +67 -64
- package/dist/context/compaction/strategies/{reactive-overflow.d.ts → reactive-overflow-compaction.d.ts} +19 -36
- package/dist/context/compaction/strategies/reactive-overflow-compaction.d.ts.map +1 -0
- package/dist/context/compaction/strategies/{reactive-overflow.js → reactive-overflow-compaction.js} +63 -60
- package/dist/context/compaction/types.d.ts +40 -8
- package/dist/context/compaction/types.d.ts.map +1 -1
- package/dist/context/manager.cjs +4 -2
- package/dist/context/manager.d.ts +5 -3
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +4 -2
- package/dist/context/types.d.ts +3 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/utils.cjs +2 -2
- package/dist/context/utils.d.ts +14 -14
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/errors/result-bridge.d.ts +2 -2
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/types.cjs +1 -1
- package/dist/errors/types.d.ts +3 -3
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +1 -1
- package/dist/events/index.cjs +11 -1
- package/dist/events/index.d.ts +48 -7
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +11 -1
- package/dist/{plugins → hooks}/builtins/content-policy.cjs +7 -6
- package/dist/hooks/builtins/content-policy.d.ts +24 -0
- package/dist/hooks/builtins/content-policy.d.ts.map +1 -0
- package/dist/{plugins → hooks}/builtins/content-policy.js +6 -5
- package/dist/{plugins → hooks}/builtins/response-sanitizer.cjs +3 -3
- package/dist/hooks/builtins/response-sanitizer.d.ts +22 -0
- package/dist/hooks/builtins/response-sanitizer.d.ts.map +1 -0
- package/dist/{plugins → hooks}/builtins/response-sanitizer.js +2 -2
- package/dist/hooks/error-codes.cjs +43 -0
- package/dist/hooks/error-codes.d.ts +34 -0
- package/dist/hooks/error-codes.d.ts.map +1 -0
- package/dist/hooks/error-codes.js +20 -0
- package/dist/{storage/cache/providers/memory.cjs → hooks/index.cjs} +15 -18
- package/dist/hooks/index.d.ts +14 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +11 -0
- package/dist/hooks/manager.cjs +354 -0
- package/dist/hooks/manager.d.ts +103 -0
- package/dist/hooks/manager.d.ts.map +1 -0
- package/dist/hooks/manager.js +331 -0
- package/dist/{plugins → hooks}/types.d.ts +26 -45
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/index.browser.cjs +13 -12
- package/dist/index.browser.d.ts +5 -5
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +8 -7
- package/dist/index.cjs +5 -7
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/llm/errors.cjs +1 -1
- package/dist/llm/executor/stream-processor.cjs +131 -11
- package/dist/llm/executor/stream-processor.d.ts +8 -5
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +131 -11
- package/dist/llm/executor/turn-executor.cjs +49 -54
- package/dist/llm/executor/turn-executor.d.ts +7 -8
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +49 -54
- package/dist/llm/formatters/vercel.cjs +2 -2
- package/dist/llm/formatters/vercel.d.ts +2 -2
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/providers/local/schemas.d.ts +12 -12
- package/dist/llm/registry/auto-update.d.ts +2 -2
- package/dist/llm/registry/auto-update.d.ts.map +1 -1
- package/dist/llm/registry/index.d.ts +3 -3
- package/dist/llm/registry/index.d.ts.map +1 -1
- package/dist/llm/resolver.cjs +2 -2
- package/dist/llm/resolver.d.ts +4 -4
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/schemas.cjs +67 -104
- package/dist/llm/schemas.d.ts +10 -149
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +64 -101
- package/dist/llm/services/factory.cjs +2 -3
- package/dist/llm/services/factory.d.ts +3 -4
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +2 -3
- package/dist/llm/services/vercel.cjs +8 -15
- package/dist/llm/services/vercel.d.ts +6 -7
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +8 -15
- package/dist/llm/validation.cjs +1 -1
- package/dist/llm/validation.d.ts +2 -2
- package/dist/llm/validation.d.ts.map +1 -1
- package/dist/logger/browser.cjs +4 -4
- package/dist/logger/browser.d.ts +4 -4
- package/dist/logger/browser.d.ts.map +1 -1
- package/dist/logger/browser.js +3 -3
- package/dist/{context/compaction/providers/noop-provider.cjs → logger/default-logger-factory.cjs} +16 -22
- package/dist/logger/default-logger-factory.d.ts +301 -0
- package/dist/logger/default-logger-factory.d.ts.map +1 -0
- package/dist/logger/default-logger-factory.js +18 -0
- package/dist/logger/factory.d.ts +2 -2
- package/dist/logger/factory.d.ts.map +1 -1
- package/dist/logger/index.cjs +7 -2
- package/dist/logger/index.d.ts +5 -3
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +8 -2
- package/dist/logger/logger.cjs +4 -4
- package/dist/logger/logger.d.ts +4 -4
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +3 -3
- package/dist/logger/v2/dexto-logger.cjs +35 -0
- package/dist/logger/v2/dexto-logger.d.ts +22 -3
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
- package/dist/logger/v2/dexto-logger.js +35 -0
- package/dist/logger/v2/schemas.d.ts +6 -6
- package/dist/logger/v2/test-utils.cjs +2 -0
- package/dist/logger/v2/test-utils.d.ts +5 -5
- package/dist/logger/v2/test-utils.d.ts.map +1 -1
- package/dist/logger/v2/test-utils.js +2 -0
- package/dist/logger/v2/transport-factory.d.ts +3 -3
- package/dist/logger/v2/transport-factory.d.ts.map +1 -1
- package/dist/logger/v2/transports/console-transport.d.ts +2 -2
- package/dist/logger/v2/transports/console-transport.d.ts.map +1 -1
- package/dist/logger/v2/transports/file-transport.d.ts +2 -2
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
- package/dist/logger/v2/transports/silent-transport.d.ts +2 -2
- package/dist/logger/v2/transports/silent-transport.d.ts.map +1 -1
- package/dist/logger/v2/types.cjs +1 -1
- package/dist/logger/v2/types.d.ts +22 -9
- package/dist/logger/v2/types.d.ts.map +1 -1
- package/dist/logger/v2/types.js +1 -1
- package/dist/mcp/errors.cjs +2 -2
- package/dist/mcp/errors.d.ts.map +1 -1
- package/dist/mcp/manager.cjs +16 -11
- package/dist/mcp/manager.d.ts +16 -13
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +17 -12
- package/dist/mcp/mcp-client.cjs +25 -20
- package/dist/mcp/mcp-client.d.ts +5 -5
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +20 -15
- package/dist/mcp/resolver.cjs +1 -1
- package/dist/mcp/schemas.cjs +5 -5
- package/dist/mcp/schemas.d.ts +19 -19
- package/dist/mcp/schemas.js +2 -2
- package/dist/mcp/types.d.ts +7 -7
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/memory/manager.d.ts +2 -2
- package/dist/memory/manager.d.ts.map +1 -1
- package/dist/memory/schemas.d.ts +2 -2
- package/dist/prompts/errors.cjs +3 -3
- package/dist/prompts/errors.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.d.ts +3 -3
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.cjs +15 -29
- package/dist/prompts/providers/config-prompt-provider.d.ts +3 -3
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.js +15 -29
- package/dist/prompts/providers/custom-prompt-provider.d.ts +2 -2
- package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.d.ts +2 -2
- package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/schemas.d.ts +7 -7
- package/dist/resources/{internal-provider.cjs → agent-resources-provider.cjs} +16 -16
- package/dist/resources/{internal-provider.d.ts → agent-resources-provider.d.ts} +6 -6
- package/dist/resources/agent-resources-provider.d.ts.map +1 -0
- package/dist/resources/{internal-provider.js → agent-resources-provider.js} +13 -13
- package/dist/resources/errors.cjs +2 -2
- package/dist/resources/errors.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.d.ts +2 -2
- package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
- package/dist/resources/handlers/factory.d.ts +3 -3
- package/dist/resources/handlers/factory.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.d.ts +2 -2
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/index.cjs +7 -9
- package/dist/resources/index.d.ts +3 -3
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +5 -10
- package/dist/resources/manager.cjs +77 -74
- package/dist/resources/manager.d.ts +16 -7
- package/dist/resources/manager.d.ts.map +1 -1
- package/dist/resources/manager.js +77 -74
- package/dist/resources/schemas.cjs +6 -26
- package/dist/resources/schemas.d.ts +8 -100
- package/dist/resources/schemas.d.ts.map +1 -1
- package/dist/resources/schemas.js +4 -23
- package/dist/search/search-service.d.ts +2 -2
- package/dist/search/search-service.d.ts.map +1 -1
- package/dist/session/chat-session.cjs +15 -25
- package/dist/session/chat-session.d.ts +7 -5
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +16 -26
- package/dist/session/errors.cjs +2 -2
- package/dist/session/errors.d.ts.map +1 -1
- package/dist/session/history/database.cjs +1 -1
- package/dist/session/history/database.d.ts +4 -4
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/factory.d.ts +3 -3
- package/dist/session/history/factory.d.ts.map +1 -1
- package/dist/session/history/memory.d.ts +4 -4
- package/dist/session/history/memory.d.ts.map +1 -1
- package/dist/session/history/types.d.ts +2 -2
- package/dist/session/history/types.d.ts.map +1 -1
- package/dist/session/index.cjs +3 -0
- package/dist/session/index.d.ts +2 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +2 -0
- package/dist/session/message-queue.d.ts +2 -2
- package/dist/session/message-queue.d.ts.map +1 -1
- package/dist/session/session-manager.cjs +67 -9
- package/dist/session/session-manager.d.ts +46 -7
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +67 -9
- package/dist/session/title-generator.cjs +2 -2
- package/dist/session/title-generator.d.ts +2 -2
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/storage/blob/index.cjs +0 -40
- package/dist/storage/blob/index.d.ts +2 -44
- package/dist/storage/blob/index.d.ts.map +1 -1
- package/dist/storage/blob/index.js +0 -30
- package/dist/storage/cache/index.cjs +0 -37
- package/dist/storage/cache/index.d.ts +0 -42
- package/dist/storage/cache/index.d.ts.map +1 -1
- package/dist/storage/cache/index.js +0 -28
- package/dist/storage/database/index.cjs +0 -42
- package/dist/storage/database/index.d.ts +0 -43
- package/dist/storage/database/index.d.ts.map +1 -1
- package/dist/storage/database/index.js +0 -37
- package/dist/storage/error-codes.cjs +1 -6
- package/dist/storage/error-codes.d.ts +2 -7
- package/dist/storage/error-codes.d.ts.map +1 -1
- package/dist/storage/error-codes.js +1 -6
- package/dist/storage/errors.cjs +18 -82
- package/dist/storage/errors.d.ts +4 -24
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +16 -80
- package/dist/storage/index.cjs +8 -69
- package/dist/storage/index.d.ts +11 -66
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +6 -50
- package/dist/storage/storage-manager.cjs +9 -25
- package/dist/storage/storage-manager.d.ts +11 -15
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +8 -23
- package/dist/storage/types.d.ts +0 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/systemPrompt/contributors.d.ts +4 -4
- package/dist/systemPrompt/contributors.d.ts.map +1 -1
- package/dist/systemPrompt/errors.cjs +2 -2
- package/dist/systemPrompt/errors.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.cjs +5 -5
- package/dist/systemPrompt/in-built-prompts.d.ts +1 -1
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +5 -5
- package/dist/systemPrompt/manager.cjs +1 -5
- package/dist/systemPrompt/manager.d.ts +2 -3
- package/dist/systemPrompt/manager.d.ts.map +1 -1
- package/dist/systemPrompt/manager.js +1 -5
- package/dist/systemPrompt/schemas.d.ts +5 -5
- package/dist/systemPrompt/types.d.ts +11 -0
- package/dist/systemPrompt/types.d.ts.map +1 -1
- package/dist/telemetry/index.cjs +3 -0
- package/dist/telemetry/index.d.ts +2 -0
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +2 -0
- package/dist/telemetry/utils.d.ts +4 -4
- package/dist/telemetry/utils.d.ts.map +1 -1
- package/dist/test-utils/in-memory-storage.cjs +288 -0
- package/dist/test-utils/in-memory-storage.js +252 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +3 -3
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +4 -4
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -1
- package/dist/tools/{internal-tools/constants.cjs → define-tool.cjs} +8 -13
- package/dist/tools/define-tool.d.ts +11 -0
- package/dist/tools/define-tool.d.ts.map +1 -0
- package/dist/tools/define-tool.js +7 -0
- package/dist/tools/display-types.d.ts +10 -0
- package/dist/tools/display-types.d.ts.map +1 -1
- package/dist/tools/error-codes.cjs +2 -2
- package/dist/tools/error-codes.d.ts +2 -2
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +2 -2
- package/dist/tools/errors.cjs +11 -23
- package/dist/tools/errors.d.ts +4 -10
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +9 -21
- package/dist/tools/index.cjs +6 -9
- package/dist/tools/index.d.ts +3 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -7
- package/dist/{storage/blob/providers/index.cjs → tools/pattern-utils.cjs} +11 -9
- package/dist/tools/pattern-utils.d.ts +20 -0
- package/dist/tools/pattern-utils.d.ts.map +1 -0
- package/dist/tools/pattern-utils.js +10 -0
- package/dist/{storage/cache/factory.cjs → tools/presentation.cjs} +26 -15
- package/dist/tools/presentation.d.ts +11 -0
- package/dist/tools/presentation.d.ts.map +1 -0
- package/dist/tools/presentation.js +24 -0
- package/dist/tools/schemas.cjs +14 -40
- package/dist/tools/schemas.d.ts +6 -50
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +11 -32
- package/dist/tools/tool-call-metadata.cjs +3 -3
- package/dist/tools/tool-call-metadata.d.ts +1 -1
- package/dist/tools/tool-call-metadata.d.ts.map +1 -1
- package/dist/tools/tool-call-metadata.js +3 -3
- package/dist/tools/tool-manager.cjs +608 -392
- package/dist/tools/tool-manager.d.ts +79 -98
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +608 -396
- package/dist/tools/types.d.ts +223 -45
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/error-conversion.d.ts +2 -2
- package/dist/utils/error-conversion.d.ts.map +1 -1
- package/dist/utils/path.cjs +10 -1
- package/dist/utils/path.d.ts +7 -4
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +10 -1
- package/dist/utils/result.cjs +1 -1
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/schema.cjs +9 -5
- package/dist/utils/schema.d.ts +4 -2
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +9 -5
- package/dist/utils/service-initializer.cjs +51 -56
- package/dist/utils/service-initializer.d.ts +17 -14
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +51 -56
- package/dist/{storage/cache/providers/index.cjs → workspace/error-codes.cjs} +8 -9
- package/dist/workspace/error-codes.d.ts +5 -0
- package/dist/workspace/error-codes.d.ts.map +1 -0
- package/dist/workspace/error-codes.js +7 -0
- package/dist/{storage/blob/factory.cjs → workspace/errors.cjs} +20 -14
- package/dist/workspace/errors.d.ts +5 -0
- package/dist/workspace/errors.d.ts.map +1 -0
- package/dist/workspace/errors.js +21 -0
- package/dist/{image → workspace}/index.cjs +12 -10
- package/dist/workspace/index.d.ts +5 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +9 -0
- package/dist/workspace/manager.cjs +113 -0
- package/dist/workspace/manager.d.ts +18 -0
- package/dist/workspace/manager.d.ts.map +1 -0
- package/dist/workspace/manager.js +90 -0
- package/dist/workspace/types.d.ts +14 -0
- package/dist/workspace/types.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/context/compaction/factory.cjs +0 -57
- package/dist/context/compaction/factory.d.ts +0 -17
- package/dist/context/compaction/factory.d.ts.map +0 -1
- package/dist/context/compaction/factory.js +0 -34
- package/dist/context/compaction/provider.d.ts +0 -48
- package/dist/context/compaction/provider.d.ts.map +0 -1
- package/dist/context/compaction/providers/noop-provider.d.ts +0 -24
- package/dist/context/compaction/providers/noop-provider.d.ts.map +0 -1
- package/dist/context/compaction/providers/noop-provider.js +0 -24
- package/dist/context/compaction/providers/reactive-overflow-provider.cjs +0 -76
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +0 -51
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +0 -1
- package/dist/context/compaction/providers/reactive-overflow-provider.js +0 -52
- package/dist/context/compaction/registry.cjs +0 -39
- package/dist/context/compaction/registry.d.ts +0 -19
- package/dist/context/compaction/registry.d.ts.map +0 -1
- package/dist/context/compaction/registry.js +0 -16
- package/dist/context/compaction/schemas.cjs +0 -58
- package/dist/context/compaction/schemas.d.ts +0 -69
- package/dist/context/compaction/schemas.d.ts.map +0 -1
- package/dist/context/compaction/schemas.js +0 -34
- package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +0 -1
- package/dist/image/define-image.cjs +0 -146
- package/dist/image/define-image.d.ts +0 -71
- package/dist/image/define-image.d.ts.map +0 -1
- package/dist/image/define-image.js +0 -121
- package/dist/image/index.d.ts +0 -53
- package/dist/image/index.d.ts.map +0 -1
- package/dist/image/index.js +0 -7
- package/dist/image/types.d.ts +0 -246
- package/dist/image/types.d.ts.map +0 -1
- package/dist/llm/services/test-utils.integration.cjs +0 -237
- package/dist/llm/services/test-utils.integration.d.ts +0 -48
- package/dist/llm/services/test-utils.integration.d.ts.map +0 -1
- package/dist/llm/services/test-utils.integration.js +0 -214
- package/dist/plugins/builtins/content-policy.d.ts +0 -26
- package/dist/plugins/builtins/content-policy.d.ts.map +0 -1
- package/dist/plugins/builtins/response-sanitizer.d.ts +0 -25
- package/dist/plugins/builtins/response-sanitizer.d.ts.map +0 -1
- package/dist/plugins/error-codes.cjs +0 -43
- package/dist/plugins/error-codes.d.ts +0 -34
- package/dist/plugins/error-codes.d.ts.map +0 -1
- package/dist/plugins/error-codes.js +0 -20
- package/dist/plugins/index.cjs +0 -61
- package/dist/plugins/index.d.ts +0 -21
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/index.js +0 -30
- package/dist/plugins/loader.cjs +0 -171
- package/dist/plugins/loader.d.ts +0 -30
- package/dist/plugins/loader.d.ts.map +0 -1
- package/dist/plugins/loader.js +0 -145
- package/dist/plugins/manager.cjs +0 -473
- package/dist/plugins/manager.d.ts +0 -106
- package/dist/plugins/manager.d.ts.map +0 -1
- package/dist/plugins/manager.js +0 -450
- package/dist/plugins/registrations/builtins.cjs +0 -51
- package/dist/plugins/registrations/builtins.d.ts +0 -17
- package/dist/plugins/registrations/builtins.d.ts.map +0 -1
- package/dist/plugins/registrations/builtins.js +0 -28
- package/dist/plugins/registry.cjs +0 -63
- package/dist/plugins/registry.d.ts +0 -101
- package/dist/plugins/registry.d.ts.map +0 -1
- package/dist/plugins/registry.js +0 -39
- package/dist/plugins/schemas.cjs +0 -73
- package/dist/plugins/schemas.d.ts +0 -195
- package/dist/plugins/schemas.d.ts.map +0 -1
- package/dist/plugins/schemas.js +0 -47
- package/dist/plugins/types.d.ts.map +0 -1
- package/dist/providers/base-registry.cjs +0 -147
- package/dist/providers/base-registry.d.ts +0 -147
- package/dist/providers/base-registry.d.ts.map +0 -1
- package/dist/providers/base-registry.js +0 -123
- package/dist/providers/discovery.cjs +0 -109
- package/dist/providers/discovery.d.ts +0 -96
- package/dist/providers/discovery.d.ts.map +0 -1
- package/dist/providers/discovery.js +0 -84
- package/dist/providers/index.cjs +0 -24
- package/dist/providers/index.d.ts +0 -32
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -2
- package/dist/resources/internal-provider.d.ts.map +0 -1
- package/dist/storage/blob/factory.d.ts +0 -37
- package/dist/storage/blob/factory.d.ts.map +0 -1
- package/dist/storage/blob/factory.js +0 -15
- package/dist/storage/blob/local-blob-store.cjs +0 -496
- package/dist/storage/blob/local-blob-store.d.ts +0 -58
- package/dist/storage/blob/local-blob-store.d.ts.map +0 -1
- package/dist/storage/blob/local-blob-store.js +0 -463
- package/dist/storage/blob/memory-blob-store.cjs +0 -326
- package/dist/storage/blob/memory-blob-store.d.ts +0 -66
- package/dist/storage/blob/memory-blob-store.d.ts.map +0 -1
- package/dist/storage/blob/memory-blob-store.js +0 -303
- package/dist/storage/blob/provider.d.ts +0 -50
- package/dist/storage/blob/provider.d.ts.map +0 -1
- package/dist/storage/blob/providers/index.d.ts +0 -8
- package/dist/storage/blob/providers/index.d.ts.map +0 -1
- package/dist/storage/blob/providers/index.js +0 -7
- package/dist/storage/blob/providers/local.cjs +0 -39
- package/dist/storage/blob/providers/local.d.ts +0 -17
- package/dist/storage/blob/providers/local.d.ts.map +0 -1
- package/dist/storage/blob/providers/local.js +0 -16
- package/dist/storage/blob/providers/memory.cjs +0 -39
- package/dist/storage/blob/providers/memory.d.ts +0 -17
- package/dist/storage/blob/providers/memory.d.ts.map +0 -1
- package/dist/storage/blob/providers/memory.js +0 -16
- package/dist/storage/blob/registry.cjs +0 -50
- package/dist/storage/blob/registry.d.ts +0 -42
- package/dist/storage/blob/registry.d.ts.map +0 -1
- package/dist/storage/blob/registry.js +0 -26
- package/dist/storage/blob/schemas.cjs +0 -52
- package/dist/storage/blob/schemas.d.ts +0 -85
- package/dist/storage/blob/schemas.d.ts.map +0 -1
- package/dist/storage/blob/schemas.js +0 -26
- package/dist/storage/cache/factory.d.ts +0 -37
- package/dist/storage/cache/factory.d.ts.map +0 -1
- package/dist/storage/cache/factory.js +0 -15
- package/dist/storage/cache/memory-cache-store.cjs +0 -107
- package/dist/storage/cache/memory-cache-store.d.ts +0 -26
- package/dist/storage/cache/memory-cache-store.d.ts.map +0 -1
- package/dist/storage/cache/memory-cache-store.js +0 -84
- package/dist/storage/cache/provider.cjs +0 -16
- package/dist/storage/cache/provider.d.ts +0 -56
- package/dist/storage/cache/provider.d.ts.map +0 -1
- package/dist/storage/cache/provider.js +0 -0
- package/dist/storage/cache/providers/index.d.ts +0 -8
- package/dist/storage/cache/providers/index.d.ts.map +0 -1
- package/dist/storage/cache/providers/index.js +0 -7
- package/dist/storage/cache/providers/memory.d.ts +0 -17
- package/dist/storage/cache/providers/memory.d.ts.map +0 -1
- package/dist/storage/cache/providers/memory.js +0 -17
- package/dist/storage/cache/providers/redis.cjs +0 -66
- package/dist/storage/cache/providers/redis.d.ts +0 -20
- package/dist/storage/cache/providers/redis.d.ts.map +0 -1
- package/dist/storage/cache/providers/redis.js +0 -33
- package/dist/storage/cache/redis-store.cjs +0 -173
- package/dist/storage/cache/redis-store.d.ts +0 -32
- package/dist/storage/cache/redis-store.d.ts.map +0 -1
- package/dist/storage/cache/redis-store.js +0 -150
- package/dist/storage/cache/registry.cjs +0 -50
- package/dist/storage/cache/registry.d.ts +0 -42
- package/dist/storage/cache/registry.d.ts.map +0 -1
- package/dist/storage/cache/registry.js +0 -26
- package/dist/storage/cache/schemas.cjs +0 -81
- package/dist/storage/cache/schemas.d.ts +0 -150
- package/dist/storage/cache/schemas.d.ts.map +0 -1
- package/dist/storage/cache/schemas.js +0 -55
- package/dist/storage/database/factory.cjs +0 -38
- package/dist/storage/database/factory.d.ts +0 -39
- package/dist/storage/database/factory.d.ts.map +0 -1
- package/dist/storage/database/factory.js +0 -15
- package/dist/storage/database/memory-database-store.cjs +0 -122
- package/dist/storage/database/memory-database-store.d.ts +0 -29
- package/dist/storage/database/memory-database-store.d.ts.map +0 -1
- package/dist/storage/database/memory-database-store.js +0 -99
- package/dist/storage/database/postgres-store.cjs +0 -342
- package/dist/storage/database/postgres-store.d.ts +0 -55
- package/dist/storage/database/postgres-store.d.ts.map +0 -1
- package/dist/storage/database/postgres-store.js +0 -319
- package/dist/storage/database/provider.cjs +0 -16
- package/dist/storage/database/provider.d.ts +0 -56
- package/dist/storage/database/provider.d.ts.map +0 -1
- package/dist/storage/database/provider.js +0 -0
- package/dist/storage/database/providers/index.cjs +0 -34
- package/dist/storage/database/providers/index.d.ts +0 -9
- package/dist/storage/database/providers/index.d.ts.map +0 -1
- package/dist/storage/database/providers/index.js +0 -9
- package/dist/storage/database/providers/memory.cjs +0 -40
- package/dist/storage/database/providers/memory.d.ts +0 -16
- package/dist/storage/database/providers/memory.d.ts.map +0 -1
- package/dist/storage/database/providers/memory.js +0 -17
- package/dist/storage/database/providers/postgres.cjs +0 -62
- package/dist/storage/database/providers/postgres.d.ts +0 -19
- package/dist/storage/database/providers/postgres.d.ts.map +0 -1
- package/dist/storage/database/providers/postgres.js +0 -29
- package/dist/storage/database/providers/sqlite.cjs +0 -66
- package/dist/storage/database/providers/sqlite.d.ts +0 -20
- package/dist/storage/database/providers/sqlite.d.ts.map +0 -1
- package/dist/storage/database/providers/sqlite.js +0 -33
- package/dist/storage/database/registry.cjs +0 -50
- package/dist/storage/database/registry.d.ts +0 -42
- package/dist/storage/database/registry.d.ts.map +0 -1
- package/dist/storage/database/registry.js +0 -26
- package/dist/storage/database/schemas.cjs +0 -97
- package/dist/storage/database/schemas.d.ts +0 -226
- package/dist/storage/database/schemas.d.ts.map +0 -1
- package/dist/storage/database/schemas.js +0 -70
- package/dist/storage/database/sqlite-store.cjs +0 -270
- package/dist/storage/database/sqlite-store.d.ts +0 -33
- package/dist/storage/database/sqlite-store.d.ts.map +0 -1
- package/dist/storage/database/sqlite-store.js +0 -237
- package/dist/storage/schemas.cjs +0 -57
- package/dist/storage/schemas.d.ts +0 -347
- package/dist/storage/schemas.d.ts.map +0 -1
- package/dist/storage/schemas.js +0 -37
- package/dist/tools/bash-pattern-utils.cjs +0 -91
- package/dist/tools/bash-pattern-utils.d.ts +0 -58
- package/dist/tools/bash-pattern-utils.d.ts.map +0 -1
- package/dist/tools/bash-pattern-utils.js +0 -64
- package/dist/tools/custom-tool-registry.cjs +0 -64
- package/dist/tools/custom-tool-registry.d.ts +0 -126
- package/dist/tools/custom-tool-registry.d.ts.map +0 -1
- package/dist/tools/custom-tool-registry.js +0 -40
- package/dist/tools/custom-tool-schema-registry.cjs +0 -164
- package/dist/tools/custom-tool-schema-registry.d.ts +0 -86
- package/dist/tools/custom-tool-schema-registry.d.ts.map +0 -1
- package/dist/tools/custom-tool-schema-registry.js +0 -140
- package/dist/tools/internal-tools/constants.d.ts +0 -12
- package/dist/tools/internal-tools/constants.d.ts.map +0 -1
- package/dist/tools/internal-tools/constants.js +0 -12
- package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +0 -57
- package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +0 -18
- package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/ask-user-tool.js +0 -34
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +0 -192
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +0 -33
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +0 -169
- package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +0 -113
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +0 -30
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/get-resource-tool.js +0 -90
- package/dist/tools/internal-tools/implementations/invoke-skill-tool.cjs +0 -140
- package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts +0 -24
- package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/invoke-skill-tool.js +0 -117
- package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +0 -91
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +0 -24
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/list-resources-tool.js +0 -68
- package/dist/tools/internal-tools/implementations/search-history-tool.cjs +0 -61
- package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +0 -7
- package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/search-history-tool.js +0 -38
- package/dist/tools/internal-tools/index.cjs +0 -26
- package/dist/tools/internal-tools/index.d.ts +0 -4
- package/dist/tools/internal-tools/index.d.ts.map +0 -1
- package/dist/tools/internal-tools/index.js +0 -3
- package/dist/tools/internal-tools/provider.cjs +0 -324
- package/dist/tools/internal-tools/provider.d.ts +0 -116
- package/dist/tools/internal-tools/provider.d.ts.map +0 -1
- package/dist/tools/internal-tools/provider.js +0 -301
- package/dist/tools/internal-tools/registry.cjs +0 -71
- package/dist/tools/internal-tools/registry.d.ts +0 -91
- package/dist/tools/internal-tools/registry.d.ts.map +0 -1
- package/dist/tools/internal-tools/registry.js +0 -47
- /package/dist/{context/compaction/provider.js → agent/agent-options.js} +0 -0
- /package/dist/{image/types.js → agent/runtime-config.js} +0 -0
- /package/dist/{image → hooks}/types.cjs +0 -0
- /package/dist/{plugins → hooks}/types.js +0 -0
- /package/dist/{plugins → workspace}/types.cjs +0 -0
- /package/dist/{storage/blob/provider.js → workspace/types.js} +0 -0
package/dist/approval/manager.js
CHANGED
|
@@ -1,20 +1,46 @@
|
|
|
1
1
|
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { realpathSync } from "node:fs";
|
|
3
4
|
import { ApprovalType, ApprovalStatus, DenialReason } from "./types.js";
|
|
4
5
|
import { createApprovalRequest } from "./factory.js";
|
|
5
6
|
import { DextoLogComponent } from "../logger/v2/types.js";
|
|
6
7
|
import { ApprovalError } from "./errors.js";
|
|
7
|
-
import { patternCovers } from "../tools/
|
|
8
|
+
import { patternCovers } from "../tools/pattern-utils.js";
|
|
9
|
+
function tryRealpathSync(targetPath) {
|
|
10
|
+
try {
|
|
11
|
+
return realpathSync(targetPath);
|
|
12
|
+
} catch {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function tryRealpathSyncWithExistingParent(resolvedPath) {
|
|
17
|
+
const direct = tryRealpathSync(resolvedPath);
|
|
18
|
+
if (direct) return direct;
|
|
19
|
+
let currentDir = path.dirname(resolvedPath);
|
|
20
|
+
while (true) {
|
|
21
|
+
const realDir = tryRealpathSync(currentDir);
|
|
22
|
+
if (realDir) {
|
|
23
|
+
const suffix = path.relative(currentDir, resolvedPath);
|
|
24
|
+
return path.join(realDir, suffix);
|
|
25
|
+
}
|
|
26
|
+
const parent = path.dirname(currentDir);
|
|
27
|
+
if (parent === currentDir) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
currentDir = parent;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
8
33
|
class ApprovalManager {
|
|
9
34
|
handler;
|
|
10
35
|
config;
|
|
11
36
|
logger;
|
|
12
37
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
38
|
+
* Tool approval patterns, keyed by tool id.
|
|
39
|
+
*
|
|
40
|
+
* Patterns use simple glob syntax (e.g. "git *", "npm install *") and are matched
|
|
41
|
+
* using pattern-to-pattern covering (see {@link patternCovers}).
|
|
16
42
|
*/
|
|
17
|
-
|
|
43
|
+
toolPatterns = /* @__PURE__ */ new Map();
|
|
18
44
|
/**
|
|
19
45
|
* Directories approved for file access for the current session.
|
|
20
46
|
* Stores normalized absolute paths mapped to their approval type:
|
|
@@ -27,36 +53,37 @@ class ApprovalManager {
|
|
|
27
53
|
this.config = config;
|
|
28
54
|
this.logger = logger.createChild(DextoLogComponent.APPROVAL);
|
|
29
55
|
this.logger.debug(
|
|
30
|
-
`ApprovalManager initialized with
|
|
56
|
+
`ApprovalManager initialized with permissions.mode: ${config.permissions.mode}, elicitation.enabled: ${config.elicitation.enabled}`
|
|
31
57
|
);
|
|
32
58
|
}
|
|
33
|
-
// ====================
|
|
59
|
+
// ==================== Pattern Methods ====================
|
|
60
|
+
getOrCreateToolPatternSet(toolName) {
|
|
61
|
+
const existing = this.toolPatterns.get(toolName);
|
|
62
|
+
if (existing) return existing;
|
|
63
|
+
const created = /* @__PURE__ */ new Set();
|
|
64
|
+
this.toolPatterns.set(toolName, created);
|
|
65
|
+
return created;
|
|
66
|
+
}
|
|
34
67
|
/**
|
|
35
|
-
* Add
|
|
36
|
-
* Patterns use simple glob syntax with * as wildcard.
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```typescript
|
|
40
|
-
* manager.addBashPattern("git *"); // Approves all git commands
|
|
41
|
-
* manager.addBashPattern("npm install *"); // Approves npm install with any package
|
|
42
|
-
* ```
|
|
68
|
+
* Add an approval pattern for a tool.
|
|
43
69
|
*/
|
|
44
|
-
|
|
45
|
-
this.
|
|
46
|
-
this.logger.debug(`Added
|
|
70
|
+
addPattern(toolName, pattern) {
|
|
71
|
+
this.getOrCreateToolPatternSet(toolName).add(pattern);
|
|
72
|
+
this.logger.debug(`Added pattern for '${toolName}': "${pattern}"`);
|
|
47
73
|
}
|
|
48
74
|
/**
|
|
49
|
-
* Check if a
|
|
50
|
-
* Uses pattern-to-pattern covering for broader pattern support.
|
|
75
|
+
* Check if a pattern key is covered by any approved pattern for a tool.
|
|
51
76
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
77
|
+
* Note: This expects a pattern key (e.g. "git push *"), not raw arguments.
|
|
78
|
+
* Tools are responsible for generating the key via `tool.approval.patternKey()`.
|
|
54
79
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
80
|
+
matchesPattern(toolName, patternKey) {
|
|
81
|
+
const patterns = this.toolPatterns.get(toolName);
|
|
82
|
+
if (!patterns || patterns.size === 0) return false;
|
|
83
|
+
for (const storedPattern of patterns) {
|
|
57
84
|
if (patternCovers(storedPattern, patternKey)) {
|
|
58
85
|
this.logger.debug(
|
|
59
|
-
`Pattern key "${patternKey}" is covered by approved pattern "${storedPattern}"`
|
|
86
|
+
`Pattern key "${patternKey}" is covered by approved pattern "${storedPattern}" (tool: ${toolName})`
|
|
60
87
|
);
|
|
61
88
|
return true;
|
|
62
89
|
}
|
|
@@ -64,23 +91,64 @@ class ApprovalManager {
|
|
|
64
91
|
return false;
|
|
65
92
|
}
|
|
66
93
|
/**
|
|
67
|
-
* Clear all
|
|
68
|
-
* Should be called when session ends.
|
|
94
|
+
* Clear all patterns for a tool (or all tools when omitted).
|
|
69
95
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
96
|
+
clearPatterns(toolName) {
|
|
97
|
+
if (toolName) {
|
|
98
|
+
const patterns = this.toolPatterns.get(toolName);
|
|
99
|
+
if (!patterns) return;
|
|
100
|
+
const count2 = patterns.size;
|
|
101
|
+
patterns.clear();
|
|
102
|
+
if (count2 > 0) {
|
|
103
|
+
this.logger.debug(`Cleared ${count2} pattern(s) for '${toolName}'`);
|
|
104
|
+
}
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const count = Array.from(this.toolPatterns.values()).reduce(
|
|
108
|
+
(sum, set) => sum + set.size,
|
|
109
|
+
0
|
|
110
|
+
);
|
|
111
|
+
this.toolPatterns.clear();
|
|
73
112
|
if (count > 0) {
|
|
74
|
-
this.logger.debug(`Cleared ${count}
|
|
113
|
+
this.logger.debug(`Cleared ${count} total tool pattern(s)`);
|
|
75
114
|
}
|
|
76
115
|
}
|
|
77
116
|
/**
|
|
78
|
-
* Get
|
|
117
|
+
* Get patterns for a tool (for debugging/display).
|
|
79
118
|
*/
|
|
80
|
-
|
|
81
|
-
return this.
|
|
119
|
+
getToolPatterns(toolName) {
|
|
120
|
+
return this.toolPatterns.get(toolName) ?? /* @__PURE__ */ new Set();
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get all tool patterns (for debugging/display).
|
|
124
|
+
*/
|
|
125
|
+
getAllToolPatterns() {
|
|
126
|
+
return this.toolPatterns;
|
|
82
127
|
}
|
|
83
128
|
// ==================== Directory Access Methods ====================
|
|
129
|
+
/**
|
|
130
|
+
* Resolve a directory path for use as an approval key.
|
|
131
|
+
*
|
|
132
|
+
* We store BOTH the resolved path and (when available) its realpath, so approvals
|
|
133
|
+
* continue to work even when other subsystems canonicalize paths via realpath
|
|
134
|
+
* (e.g. macOS /tmp -> /private/tmp or custom symlinked directories).
|
|
135
|
+
*/
|
|
136
|
+
getDirectoryApprovalKeys(directory) {
|
|
137
|
+
const resolved = path.resolve(directory);
|
|
138
|
+
const real = tryRealpathSyncWithExistingParent(resolved);
|
|
139
|
+
if (real && real !== resolved) {
|
|
140
|
+
return [resolved, real];
|
|
141
|
+
}
|
|
142
|
+
return [resolved];
|
|
143
|
+
}
|
|
144
|
+
getFileApprovalKeys(filePath) {
|
|
145
|
+
const resolved = path.resolve(filePath);
|
|
146
|
+
const real = tryRealpathSyncWithExistingParent(resolved);
|
|
147
|
+
if (real && real !== resolved) {
|
|
148
|
+
return [resolved, real];
|
|
149
|
+
}
|
|
150
|
+
return [resolved];
|
|
151
|
+
}
|
|
84
152
|
/**
|
|
85
153
|
* Initialize the working directory as a session-approved directory.
|
|
86
154
|
* This should be called once during setup to ensure the working directory
|
|
@@ -89,9 +157,7 @@ class ApprovalManager {
|
|
|
89
157
|
* @param workingDir The working directory path
|
|
90
158
|
*/
|
|
91
159
|
initializeWorkingDirectory(workingDir) {
|
|
92
|
-
|
|
93
|
-
this.approvedDirectories.set(normalized, "session");
|
|
94
|
-
this.logger.debug(`Initialized working directory as session-approved: "${normalized}"`);
|
|
160
|
+
this.addApprovedDirectory(workingDir, "session");
|
|
95
161
|
}
|
|
96
162
|
/**
|
|
97
163
|
* Add a directory to the approved list for this session.
|
|
@@ -111,16 +177,28 @@ class ApprovalManager {
|
|
|
111
177
|
* ```
|
|
112
178
|
*/
|
|
113
179
|
addApprovedDirectory(directory, type = "session") {
|
|
114
|
-
const
|
|
115
|
-
const
|
|
116
|
-
|
|
180
|
+
const keys = this.getDirectoryApprovalKeys(directory);
|
|
181
|
+
const existingTypes = keys.map((key) => this.approvedDirectories.get(key)).filter((value) => value !== void 0);
|
|
182
|
+
const hasSessionApproval = existingTypes.includes("session");
|
|
183
|
+
const effectiveType = type === "session" || hasSessionApproval ? "session" : "once";
|
|
184
|
+
for (const key of keys) {
|
|
185
|
+
const existing = this.approvedDirectories.get(key);
|
|
186
|
+
if (existing === "session") {
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
this.approvedDirectories.set(key, effectiveType);
|
|
190
|
+
}
|
|
191
|
+
const resolvedKey = keys[0];
|
|
192
|
+
if (effectiveType === "session" && type === "once" && hasSessionApproval) {
|
|
117
193
|
this.logger.debug(
|
|
118
|
-
`Directory "${
|
|
194
|
+
`Directory "${resolvedKey}" already approved as 'session', not downgrading to 'once'`
|
|
119
195
|
);
|
|
120
196
|
return;
|
|
121
197
|
}
|
|
122
|
-
|
|
123
|
-
this.logger.debug(
|
|
198
|
+
const realKey = keys.length > 1 ? keys[1] : null;
|
|
199
|
+
this.logger.debug(
|
|
200
|
+
`Added approved directory: "${resolvedKey}" (type: ${effectiveType})${realKey ? `, realpath: "${realKey}"` : ""}`
|
|
201
|
+
);
|
|
124
202
|
}
|
|
125
203
|
/**
|
|
126
204
|
* Check if a file path is within any session-approved directory.
|
|
@@ -131,15 +209,16 @@ class ApprovalManager {
|
|
|
131
209
|
* @returns true if the path is within a session-approved directory
|
|
132
210
|
*/
|
|
133
211
|
isDirectorySessionApproved(filePath) {
|
|
134
|
-
const normalized
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
212
|
+
for (const normalized of this.getFileApprovalKeys(filePath)) {
|
|
213
|
+
for (const [approvedDir, type] of this.approvedDirectories) {
|
|
214
|
+
if (type !== "session") continue;
|
|
215
|
+
const relative = path.relative(approvedDir, normalized);
|
|
216
|
+
if (!relative.startsWith("..") && !path.isAbsolute(relative)) {
|
|
217
|
+
this.logger.debug(
|
|
218
|
+
`Path "${normalized}" is within session-approved directory "${approvedDir}"`
|
|
219
|
+
);
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
143
222
|
}
|
|
144
223
|
}
|
|
145
224
|
return false;
|
|
@@ -153,14 +232,15 @@ class ApprovalManager {
|
|
|
153
232
|
* @returns true if the path is within any approved directory
|
|
154
233
|
*/
|
|
155
234
|
isDirectoryApproved(filePath) {
|
|
156
|
-
const normalized
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
235
|
+
for (const normalized of this.getFileApprovalKeys(filePath)) {
|
|
236
|
+
for (const [approvedDir] of this.approvedDirectories) {
|
|
237
|
+
const relative = path.relative(approvedDir, normalized);
|
|
238
|
+
if (!relative.startsWith("..") && !path.isAbsolute(relative)) {
|
|
239
|
+
this.logger.debug(
|
|
240
|
+
`Path "${normalized}" is within approved directory "${approvedDir}"`
|
|
241
|
+
);
|
|
242
|
+
return true;
|
|
243
|
+
}
|
|
164
244
|
}
|
|
165
245
|
}
|
|
166
246
|
return false;
|
|
@@ -189,11 +269,11 @@ class ApprovalManager {
|
|
|
189
269
|
return Array.from(this.approvedDirectories.keys());
|
|
190
270
|
}
|
|
191
271
|
/**
|
|
192
|
-
* Clear all session-scoped approvals (
|
|
272
|
+
* Clear all session-scoped approvals (tool patterns and directories).
|
|
193
273
|
* Convenience method for clearing all session state at once.
|
|
194
274
|
*/
|
|
195
275
|
clearSessionApprovals() {
|
|
196
|
-
this.
|
|
276
|
+
this.clearPatterns();
|
|
197
277
|
this.clearApprovedDirectories();
|
|
198
278
|
this.logger.debug("Cleared all session approvals");
|
|
199
279
|
}
|
|
@@ -217,7 +297,7 @@ class ApprovalManager {
|
|
|
217
297
|
const details = {
|
|
218
298
|
type: ApprovalType.DIRECTORY_ACCESS,
|
|
219
299
|
// Use provided timeout, fallback to config timeout, or undefined (no timeout)
|
|
220
|
-
timeout: timeout !== void 0 ? timeout : this.config.
|
|
300
|
+
timeout: timeout !== void 0 ? timeout : this.config.permissions.timeout,
|
|
221
301
|
metadata: directoryMetadata
|
|
222
302
|
};
|
|
223
303
|
if (sessionId !== void 0) {
|
|
@@ -238,7 +318,7 @@ class ApprovalManager {
|
|
|
238
318
|
return this.handleApproval(request);
|
|
239
319
|
}
|
|
240
320
|
/**
|
|
241
|
-
* Handle approval requests (tool
|
|
321
|
+
* Handle approval requests (tool approval, elicitation, command confirmation, directory access, custom)
|
|
242
322
|
* @private
|
|
243
323
|
*/
|
|
244
324
|
async handleApproval(request) {
|
|
@@ -249,7 +329,7 @@ class ApprovalManager {
|
|
|
249
329
|
);
|
|
250
330
|
return handler2(request);
|
|
251
331
|
}
|
|
252
|
-
const mode = this.config.
|
|
332
|
+
const mode = this.config.permissions.mode;
|
|
253
333
|
if (mode === "auto-approve") {
|
|
254
334
|
this.logger.info(
|
|
255
335
|
`Auto-approve approval '${request.type}', approvalId: ${request.approvalId}`
|
|
@@ -285,18 +365,18 @@ class ApprovalManager {
|
|
|
285
365
|
return handler(request);
|
|
286
366
|
}
|
|
287
367
|
/**
|
|
288
|
-
* Request tool
|
|
289
|
-
* Convenience method for tool execution
|
|
368
|
+
* Request tool approval
|
|
369
|
+
* Convenience method for tool execution approval
|
|
290
370
|
*
|
|
291
371
|
* TODO: Make sessionId required once all callers are updated to pass it
|
|
292
372
|
* Tool confirmations always happen in session context during LLM execution
|
|
293
373
|
*/
|
|
294
|
-
async
|
|
374
|
+
async requestToolApproval(metadata) {
|
|
295
375
|
const { sessionId, timeout, ...toolMetadata } = metadata;
|
|
296
376
|
const details = {
|
|
297
|
-
type: ApprovalType.
|
|
377
|
+
type: ApprovalType.TOOL_APPROVAL,
|
|
298
378
|
// Use provided timeout, fallback to config timeout, or undefined (no timeout)
|
|
299
|
-
timeout: timeout !== void 0 ? timeout : this.config.
|
|
379
|
+
timeout: timeout !== void 0 ? timeout : this.config.permissions.timeout,
|
|
300
380
|
metadata: toolMetadata
|
|
301
381
|
};
|
|
302
382
|
if (sessionId !== void 0) {
|
|
@@ -308,7 +388,7 @@ class ApprovalManager {
|
|
|
308
388
|
* Request command confirmation approval
|
|
309
389
|
* Convenience method for dangerous command execution within an already-approved tool
|
|
310
390
|
*
|
|
311
|
-
* This is different from tool
|
|
391
|
+
* This is different from tool approval - it's for per-command approval
|
|
312
392
|
* of dangerous operations (like rm, git push) within tools that are already approved.
|
|
313
393
|
*
|
|
314
394
|
* TODO: Make sessionId required once all callers are updated to pass it
|
|
@@ -330,7 +410,7 @@ class ApprovalManager {
|
|
|
330
410
|
const details = {
|
|
331
411
|
type: ApprovalType.COMMAND_CONFIRMATION,
|
|
332
412
|
// Use provided timeout, fallback to config timeout, or undefined (no timeout)
|
|
333
|
-
timeout: timeout !== void 0 ? timeout : this.config.
|
|
413
|
+
timeout: timeout !== void 0 ? timeout : this.config.permissions.timeout,
|
|
334
414
|
metadata: commandMetadata
|
|
335
415
|
};
|
|
336
416
|
if (sessionId !== void 0) {
|
|
@@ -359,15 +439,15 @@ class ApprovalManager {
|
|
|
359
439
|
return this.requestApproval(details);
|
|
360
440
|
}
|
|
361
441
|
/**
|
|
362
|
-
* Check if tool
|
|
442
|
+
* Check if tool approval was approved
|
|
363
443
|
* Throws appropriate error if denied
|
|
364
444
|
*/
|
|
365
|
-
async
|
|
366
|
-
const response = await this.
|
|
445
|
+
async checkToolApproval(metadata) {
|
|
446
|
+
const response = await this.requestToolApproval(metadata);
|
|
367
447
|
if (response.status === ApprovalStatus.APPROVED) {
|
|
368
448
|
return true;
|
|
369
449
|
} else if (response.status === ApprovalStatus.DENIED) {
|
|
370
|
-
throw ApprovalError.
|
|
450
|
+
throw ApprovalError.toolApprovalDenied(
|
|
371
451
|
metadata.toolName,
|
|
372
452
|
response.reason,
|
|
373
453
|
response.message,
|
|
@@ -376,7 +456,7 @@ class ApprovalManager {
|
|
|
376
456
|
} else {
|
|
377
457
|
throw ApprovalError.cancelled(
|
|
378
458
|
response.approvalId,
|
|
379
|
-
ApprovalType.
|
|
459
|
+
ApprovalType.TOOL_APPROVAL,
|
|
380
460
|
response.message ?? response.reason
|
|
381
461
|
);
|
|
382
462
|
}
|
|
@@ -457,11 +537,11 @@ class ApprovalManager {
|
|
|
457
537
|
* Set the approval handler for manual approval mode.
|
|
458
538
|
*
|
|
459
539
|
* The handler will be called for:
|
|
460
|
-
* - Tool confirmation requests when
|
|
461
|
-
* - All elicitation requests (when elicitation is enabled, regardless of
|
|
540
|
+
* - Tool confirmation requests when permissions.mode is 'manual'
|
|
541
|
+
* - All elicitation requests (when elicitation is enabled, regardless of permissions.mode)
|
|
462
542
|
*
|
|
463
543
|
* A handler must be set before processing requests if:
|
|
464
|
-
* -
|
|
544
|
+
* - permissions.mode is 'manual', or
|
|
465
545
|
* - elicitation is enabled (elicitation.enabled is true)
|
|
466
546
|
*
|
|
467
547
|
* @param handler The approval handler function, or null to clear
|
|
@@ -494,7 +574,7 @@ class ApprovalManager {
|
|
|
494
574
|
ensureHandler() {
|
|
495
575
|
if (!this.handler) {
|
|
496
576
|
throw ApprovalError.invalidConfig(
|
|
497
|
-
'An approval handler is required but not configured.\nHandlers are required for:\n \u2022 manual tool
|
|
577
|
+
'An approval handler is required but not configured.\nHandlers are required for:\n \u2022 manual tool approval mode\n \u2022 all elicitation requests (when elicitation is enabled)\nEither:\n \u2022 set permissions.mode to "auto-approve" or "auto-deny", or\n \u2022 disable elicitation (set elicitation.enabled: false), or\n \u2022 call agent.setApprovalHandler(...) before processing requests.'
|
|
498
578
|
);
|
|
499
579
|
}
|
|
500
580
|
return this.handler;
|
|
@@ -42,10 +42,10 @@ __export(schemas_exports, {
|
|
|
42
42
|
ElicitationRequestSchema: () => ElicitationRequestSchema,
|
|
43
43
|
ElicitationResponseDataSchema: () => ElicitationResponseDataSchema,
|
|
44
44
|
ElicitationResponseSchema: () => ElicitationResponseSchema,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
ToolApprovalMetadataSchema: () => ToolApprovalMetadataSchema,
|
|
46
|
+
ToolApprovalRequestSchema: () => ToolApprovalRequestSchema,
|
|
47
|
+
ToolApprovalResponseDataSchema: () => ToolApprovalResponseDataSchema,
|
|
48
|
+
ToolApprovalResponseSchema: () => ToolApprovalResponseSchema
|
|
49
49
|
});
|
|
50
50
|
module.exports = __toCommonJS(schemas_exports);
|
|
51
51
|
var import_zod = require("zod");
|
|
@@ -58,18 +58,36 @@ const DenialReasonSchema = import_zod.z.nativeEnum(import_types.DenialReason);
|
|
|
58
58
|
const ToolDisplayDataSchema = import_zod.z.custom((val) => (0, import_display_types.isValidDisplayData)(val), {
|
|
59
59
|
message: "Invalid ToolDisplayData"
|
|
60
60
|
});
|
|
61
|
-
const
|
|
61
|
+
const ToolPresentationSnapshotV1Schema = import_zod.z.custom(
|
|
62
|
+
(val) => typeof val === "object" && val !== null && val.version === 1,
|
|
63
|
+
{
|
|
64
|
+
message: "Invalid ToolPresentationSnapshotV1"
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
const DirectoryAccessMetadataSchema = import_zod.z.object({
|
|
68
|
+
path: import_zod.z.string().describe("Full path being accessed"),
|
|
69
|
+
parentDir: import_zod.z.string().describe("Parent directory (what gets approved for session)"),
|
|
70
|
+
operation: import_zod.z.enum(["read", "write", "edit"]).describe("Type of file operation"),
|
|
71
|
+
toolName: import_zod.z.string().describe("Name of the tool requesting access")
|
|
72
|
+
}).strict().describe("Directory access metadata");
|
|
73
|
+
const ToolApprovalMetadataSchema = import_zod.z.object({
|
|
62
74
|
toolName: import_zod.z.string().describe("Name of the tool to confirm"),
|
|
75
|
+
presentationSnapshot: ToolPresentationSnapshotV1Schema.optional().describe(
|
|
76
|
+
"Optional UI-agnostic presentation snapshot for the tool call. Clients MUST ignore unknown fields."
|
|
77
|
+
),
|
|
63
78
|
toolCallId: import_zod.z.string().describe("Unique tool call ID for tracking parallel tool calls"),
|
|
64
79
|
args: import_zod.z.record(import_zod.z.unknown()).describe("Arguments for the tool"),
|
|
65
80
|
description: import_zod.z.string().optional().describe("Description of the tool"),
|
|
66
81
|
displayPreview: ToolDisplayDataSchema.optional().describe(
|
|
67
82
|
"Preview display data for approval UI (e.g., diff preview)"
|
|
68
83
|
),
|
|
84
|
+
directoryAccess: DirectoryAccessMetadataSchema.optional().describe(
|
|
85
|
+
"Optional directory access metadata when the tool targets a path outside config-allowed roots"
|
|
86
|
+
),
|
|
69
87
|
suggestedPatterns: import_zod.z.array(import_zod.z.string()).optional().describe(
|
|
70
|
-
'Suggested patterns for session approval
|
|
88
|
+
'Suggested patterns for session approval. Tools may provide patterns to allow approving a broader subset of future calls (e.g., ["git push *", "git *"]).'
|
|
71
89
|
)
|
|
72
|
-
}).strict().describe("Tool
|
|
90
|
+
}).strict().describe("Tool approval metadata");
|
|
73
91
|
const CommandConfirmationMetadataSchema = import_zod.z.object({
|
|
74
92
|
toolName: import_zod.z.string().describe("Name of the tool executing the command"),
|
|
75
93
|
command: import_zod.z.string().describe("The normalized command to execute"),
|
|
@@ -77,17 +95,11 @@ const CommandConfirmationMetadataSchema = import_zod.z.object({
|
|
|
77
95
|
}).strict().describe("Command confirmation metadata");
|
|
78
96
|
const ElicitationMetadataSchema = import_zod.z.object({
|
|
79
97
|
schema: JsonSchema7Schema.describe("JSON Schema for the form"),
|
|
80
|
-
prompt: import_zod.z.string().describe("
|
|
98
|
+
prompt: import_zod.z.string().describe("High-level prompt/context for the form (clients may show it)"),
|
|
81
99
|
serverName: import_zod.z.string().describe("MCP server requesting input"),
|
|
82
100
|
context: import_zod.z.record(import_zod.z.unknown()).optional().describe("Additional context")
|
|
83
101
|
}).strict().describe("Elicitation metadata");
|
|
84
102
|
const CustomApprovalMetadataSchema = import_zod.z.record(import_zod.z.unknown()).describe("Custom metadata");
|
|
85
|
-
const DirectoryAccessMetadataSchema = import_zod.z.object({
|
|
86
|
-
path: import_zod.z.string().describe("Full path being accessed"),
|
|
87
|
-
parentDir: import_zod.z.string().describe("Parent directory (what gets approved for session)"),
|
|
88
|
-
operation: import_zod.z.enum(["read", "write", "edit"]).describe("Type of file operation"),
|
|
89
|
-
toolName: import_zod.z.string().describe("Name of the tool requesting access")
|
|
90
|
-
}).strict().describe("Directory access metadata");
|
|
91
103
|
const BaseApprovalRequestSchema = import_zod.z.object({
|
|
92
104
|
approvalId: import_zod.z.string().uuid().describe("Unique approval identifier"),
|
|
93
105
|
type: ApprovalTypeSchema.describe("Type of approval"),
|
|
@@ -95,9 +107,9 @@ const BaseApprovalRequestSchema = import_zod.z.object({
|
|
|
95
107
|
timeout: import_zod.z.number().int().positive().optional().describe("Timeout in milliseconds (optional - no timeout if not specified)"),
|
|
96
108
|
timestamp: import_zod.z.date().describe("When the request was created")
|
|
97
109
|
}).describe("Base approval request");
|
|
98
|
-
const
|
|
99
|
-
type: import_zod.z.literal(import_types.ApprovalType.
|
|
100
|
-
metadata:
|
|
110
|
+
const ToolApprovalRequestSchema = BaseApprovalRequestSchema.extend({
|
|
111
|
+
type: import_zod.z.literal(import_types.ApprovalType.TOOL_APPROVAL),
|
|
112
|
+
metadata: ToolApprovalMetadataSchema
|
|
101
113
|
}).strict();
|
|
102
114
|
const CommandConfirmationRequestSchema = BaseApprovalRequestSchema.extend({
|
|
103
115
|
type: import_zod.z.literal(import_types.ApprovalType.COMMAND_CONFIRMATION),
|
|
@@ -116,18 +128,21 @@ const DirectoryAccessRequestSchema = BaseApprovalRequestSchema.extend({
|
|
|
116
128
|
metadata: DirectoryAccessMetadataSchema
|
|
117
129
|
}).strict();
|
|
118
130
|
const ApprovalRequestSchema = import_zod.z.discriminatedUnion("type", [
|
|
119
|
-
|
|
131
|
+
ToolApprovalRequestSchema,
|
|
120
132
|
CommandConfirmationRequestSchema,
|
|
121
133
|
ElicitationRequestSchema,
|
|
122
134
|
CustomApprovalRequestSchema,
|
|
123
135
|
DirectoryAccessRequestSchema
|
|
124
136
|
]);
|
|
125
|
-
const
|
|
137
|
+
const ToolApprovalResponseDataSchema = import_zod.z.object({
|
|
126
138
|
rememberChoice: import_zod.z.boolean().optional().describe("Remember this tool for the session (approves ALL uses of this tool)"),
|
|
127
139
|
rememberPattern: import_zod.z.string().optional().describe(
|
|
128
|
-
'Remember
|
|
140
|
+
'Remember an approval pattern (e.g., "git *"). Only applicable when the tool provides pattern-based approval support.'
|
|
141
|
+
),
|
|
142
|
+
rememberDirectory: import_zod.z.boolean().optional().describe(
|
|
143
|
+
"Remember this directory for the session (allows future access without prompting again)"
|
|
129
144
|
)
|
|
130
|
-
}).strict().describe("Tool
|
|
145
|
+
}).strict().describe("Tool approval response data");
|
|
131
146
|
const CommandConfirmationResponseDataSchema = import_zod.z.object({
|
|
132
147
|
// Command confirmations don't have remember choice - they're per-command
|
|
133
148
|
// Could add command pattern remembering in future (e.g., "remember git push *")
|
|
@@ -149,8 +164,8 @@ const BaseApprovalResponseSchema = import_zod.z.object({
|
|
|
149
164
|
message: import_zod.z.string().optional().describe("Human-readable message explaining the denial/cancellation"),
|
|
150
165
|
timeoutMs: import_zod.z.number().int().positive().optional().describe("Timeout duration in milliseconds (present for timeout events)")
|
|
151
166
|
}).describe("Base approval response");
|
|
152
|
-
const
|
|
153
|
-
data:
|
|
167
|
+
const ToolApprovalResponseSchema = BaseApprovalResponseSchema.extend({
|
|
168
|
+
data: ToolApprovalResponseDataSchema.optional()
|
|
154
169
|
}).strict();
|
|
155
170
|
const CommandConfirmationResponseSchema = BaseApprovalResponseSchema.extend({
|
|
156
171
|
data: CommandConfirmationResponseDataSchema.optional()
|
|
@@ -165,7 +180,7 @@ const DirectoryAccessResponseSchema = BaseApprovalResponseSchema.extend({
|
|
|
165
180
|
data: DirectoryAccessResponseDataSchema.optional()
|
|
166
181
|
}).strict();
|
|
167
182
|
const ApprovalResponseSchema = import_zod.z.union([
|
|
168
|
-
|
|
183
|
+
ToolApprovalResponseSchema,
|
|
169
184
|
CommandConfirmationResponseSchema,
|
|
170
185
|
ElicitationResponseSchema,
|
|
171
186
|
CustomApprovalResponseSchema,
|
|
@@ -176,19 +191,19 @@ const ApprovalRequestDetailsSchema = import_zod.z.object({
|
|
|
176
191
|
sessionId: import_zod.z.string().optional(),
|
|
177
192
|
timeout: import_zod.z.number().int().positive().optional().describe("Timeout in milliseconds (optional - no timeout if not specified)"),
|
|
178
193
|
metadata: import_zod.z.union([
|
|
179
|
-
|
|
194
|
+
ToolApprovalMetadataSchema,
|
|
180
195
|
CommandConfirmationMetadataSchema,
|
|
181
196
|
ElicitationMetadataSchema,
|
|
182
197
|
CustomApprovalMetadataSchema,
|
|
183
198
|
DirectoryAccessMetadataSchema
|
|
184
199
|
])
|
|
185
200
|
}).superRefine((data, ctx) => {
|
|
186
|
-
if (data.type === import_types.ApprovalType.
|
|
187
|
-
const result =
|
|
201
|
+
if (data.type === import_types.ApprovalType.TOOL_APPROVAL) {
|
|
202
|
+
const result = ToolApprovalMetadataSchema.safeParse(data.metadata);
|
|
188
203
|
if (!result.success) {
|
|
189
204
|
ctx.addIssue({
|
|
190
205
|
code: import_zod.z.ZodIssueCode.custom,
|
|
191
|
-
message: "Metadata must match
|
|
206
|
+
message: "Metadata must match ToolApprovalMetadataSchema for TOOL_APPROVAL type",
|
|
192
207
|
path: ["metadata"]
|
|
193
208
|
});
|
|
194
209
|
}
|
|
@@ -256,8 +271,8 @@ const ApprovalRequestDetailsSchema = import_zod.z.object({
|
|
|
256
271
|
ElicitationRequestSchema,
|
|
257
272
|
ElicitationResponseDataSchema,
|
|
258
273
|
ElicitationResponseSchema,
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
274
|
+
ToolApprovalMetadataSchema,
|
|
275
|
+
ToolApprovalRequestSchema,
|
|
276
|
+
ToolApprovalResponseDataSchema,
|
|
277
|
+
ToolApprovalResponseSchema
|
|
263
278
|
});
|