@dexto/core 1.2.4 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -0
- package/dist/agent/DextoAgent.cjs +579 -345
- package/dist/agent/DextoAgent.d.ts +131 -83
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +573 -336
- package/dist/agent/agentCard.cjs +4 -2
- package/dist/agent/agentCard.d.ts +0 -1
- package/dist/agent/agentCard.d.ts.map +1 -1
- package/dist/agent/agentCard.js +4 -2
- package/dist/agent/index.cjs +3 -7
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +7 -6
- package/dist/agent/schemas.cjs +179 -75
- package/dist/agent/schemas.d.ts +2678 -586
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +172 -65
- package/dist/agent/state-manager.cjs +28 -23
- package/dist/agent/state-manager.d.ts +4 -1
- package/dist/agent/state-manager.d.ts.map +1 -1
- package/dist/agent/state-manager.js +28 -23
- package/dist/{preferences/constants.cjs → agent/types.cjs} +2 -14
- package/dist/agent/types.d.ts +54 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +0 -0
- package/dist/approval/errors.cjs +89 -8
- package/dist/approval/errors.d.ts +5 -3
- package/dist/approval/errors.d.ts.map +1 -1
- package/dist/approval/errors.js +89 -8
- package/dist/approval/{providers/factory.d.ts → factory.d.ts} +2 -2
- package/dist/approval/factory.d.ts.map +1 -0
- package/dist/approval/{providers/factory.js → factory.js} +1 -1
- package/dist/approval/index.cjs +4 -6
- package/dist/approval/index.d.ts +3 -5
- package/dist/approval/index.d.ts.map +1 -1
- package/dist/approval/index.js +4 -5
- package/dist/approval/manager.cjs +140 -37
- package/dist/approval/manager.d.ts +56 -17
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +141 -38
- package/dist/approval/schemas.cjs +9 -1
- package/dist/approval/schemas.d.ts +120 -35
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +9 -2
- package/dist/approval/types.cjs +14 -2
- package/dist/approval/types.d.ts +64 -12
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +12 -1
- package/dist/context/compression/middle-removal.cjs +11 -11
- package/dist/context/compression/middle-removal.d.ts +3 -1
- package/dist/context/compression/middle-removal.d.ts.map +1 -1
- package/dist/context/compression/middle-removal.js +11 -11
- package/dist/context/compression/oldest-removal.cjs +18 -5
- package/dist/context/compression/oldest-removal.d.ts +3 -1
- package/dist/context/compression/oldest-removal.d.ts.map +1 -1
- package/dist/context/compression/oldest-removal.js +18 -5
- package/dist/context/manager.cjs +94 -67
- package/dist/context/manager.d.ts +13 -10
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +94 -67
- package/dist/context/utils.cjs +79 -65
- package/dist/context/utils.d.ts +15 -12
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +45 -31
- package/dist/errors/DextoRuntimeError.d.ts +5 -5
- package/dist/errors/DextoRuntimeError.d.ts.map +1 -1
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts +5 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +1 -2
- package/dist/errors/types.cjs +1 -2
- package/dist/errors/types.d.ts +5 -8
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +1 -2
- package/dist/events/index.cjs +125 -55
- package/dist/events/index.d.ts +204 -97
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +123 -55
- package/dist/filesystem/filesystem-service.cjs +40 -30
- package/dist/filesystem/filesystem-service.d.ts +9 -1
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +40 -30
- package/dist/filesystem/path-validator.cjs +4 -3
- package/dist/filesystem/path-validator.d.ts +3 -1
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +4 -3
- package/dist/filesystem/types.d.ts +3 -3
- package/dist/filesystem/types.d.ts.map +1 -1
- package/dist/index.browser.cjs +7 -0
- package/dist/index.browser.d.ts +2 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +4 -0
- package/dist/index.cjs +0 -7
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/llm/formatters/anthropic.cjs +32 -21
- package/dist/llm/formatters/anthropic.d.ts +3 -0
- package/dist/llm/formatters/anthropic.d.ts.map +1 -1
- package/dist/llm/formatters/anthropic.js +32 -21
- package/dist/llm/formatters/factory.cjs +6 -7
- package/dist/llm/formatters/factory.d.ts +2 -1
- package/dist/llm/formatters/factory.d.ts.map +1 -1
- package/dist/llm/formatters/factory.js +4 -5
- package/dist/llm/formatters/openai.cjs +38 -9
- package/dist/llm/formatters/openai.d.ts +3 -0
- package/dist/llm/formatters/openai.d.ts.map +1 -1
- package/dist/llm/formatters/openai.js +38 -9
- package/dist/llm/formatters/vercel.cjs +49 -8
- package/dist/llm/formatters/vercel.d.ts +3 -0
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +49 -8
- package/dist/llm/registry.cjs +153 -17
- package/dist/llm/registry.d.ts +5 -2
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +143 -7
- package/dist/llm/resolver.cjs +4 -4
- package/dist/llm/resolver.d.ts +3 -2
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +4 -4
- package/dist/llm/schemas.cjs +6 -3
- package/dist/llm/schemas.d.ts +51 -17
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +5 -3
- package/dist/llm/services/anthropic.cjs +216 -183
- package/dist/llm/services/anthropic.d.ts +3 -1
- package/dist/llm/services/anthropic.d.ts.map +1 -1
- package/dist/llm/services/anthropic.js +217 -184
- package/dist/llm/services/factory.cjs +15 -9
- package/dist/llm/services/factory.d.ts +2 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +15 -9
- package/dist/llm/services/openai.cjs +262 -225
- package/dist/llm/services/openai.d.ts +3 -1
- package/dist/llm/services/openai.d.ts.map +1 -1
- package/dist/llm/services/openai.js +263 -226
- package/dist/llm/services/test-utils.integration.cjs +58 -12
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +58 -12
- package/dist/llm/services/types.d.ts +9 -0
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +163 -111
- package/dist/llm/services/vercel.d.ts +3 -1
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +157 -105
- package/dist/llm/tokenizer/factory.cjs +2 -2
- package/dist/llm/tokenizer/factory.d.ts +3 -1
- package/dist/llm/tokenizer/factory.d.ts.map +1 -1
- package/dist/llm/tokenizer/factory.js +2 -2
- package/dist/llm/tokenizer/openai.cjs +16 -9
- package/dist/llm/tokenizer/openai.d.ts +4 -1
- package/dist/llm/tokenizer/openai.d.ts.map +1 -1
- package/dist/llm/tokenizer/openai.js +16 -9
- package/dist/llm/validation.cjs +8 -9
- package/dist/llm/validation.d.ts +3 -1
- package/dist/llm/validation.d.ts.map +1 -1
- package/dist/llm/validation.js +5 -6
- package/dist/logger/factory.cjs +54 -0
- package/dist/logger/factory.d.ts +36 -0
- package/dist/logger/factory.d.ts.map +1 -0
- package/dist/logger/factory.js +31 -0
- package/dist/logger/index.cjs +42 -3
- package/dist/logger/index.d.ts +17 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +26 -1
- package/dist/logger/logger.cjs +30 -17
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +30 -17
- package/dist/logger/v2/dexto-logger.cjs +141 -0
- package/dist/logger/v2/dexto-logger.d.ts +54 -0
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -0
- package/dist/logger/v2/dexto-logger.js +118 -0
- package/dist/{preferences → logger/v2}/error-codes.cjs +11 -10
- package/dist/logger/v2/error-codes.d.ts +13 -0
- package/dist/logger/v2/error-codes.d.ts.map +1 -0
- package/dist/logger/v2/error-codes.js +13 -0
- package/dist/logger/v2/errors.cjs +107 -0
- package/dist/logger/v2/errors.d.ts +32 -0
- package/dist/logger/v2/errors.d.ts.map +1 -0
- package/dist/logger/v2/errors.js +84 -0
- package/dist/logger/v2/schemas.cjs +57 -0
- package/dist/logger/v2/schemas.d.ts +147 -0
- package/dist/logger/v2/schemas.d.ts.map +1 -0
- package/dist/logger/v2/schemas.js +33 -0
- package/dist/logger/v2/transport-factory.cjs +53 -0
- package/dist/logger/v2/transport-factory.d.ts +21 -0
- package/dist/logger/v2/transport-factory.d.ts.map +1 -0
- package/dist/logger/v2/transport-factory.js +29 -0
- package/dist/logger/v2/transports/console-transport.cjs +79 -0
- package/dist/logger/v2/transports/console-transport.d.ts +23 -0
- package/dist/logger/v2/transports/console-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/console-transport.js +46 -0
- package/dist/logger/v2/transports/file-transport.cjs +161 -0
- package/dist/logger/v2/transports/file-transport.d.ts +46 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/file-transport.js +128 -0
- package/dist/logger/v2/types.cjs +49 -0
- package/dist/logger/v2/types.d.ts +123 -0
- package/dist/logger/v2/types.d.ts.map +1 -0
- package/dist/logger/v2/types.js +26 -0
- package/dist/mcp/manager.cjs +88 -78
- package/dist/mcp/manager.d.ts +3 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +88 -78
- package/dist/mcp/mcp-client.cjs +109 -79
- package/dist/mcp/mcp-client.d.ts +3 -0
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +102 -72
- package/dist/memory/index.cjs +2 -0
- package/dist/memory/index.d.ts +1 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +3 -1
- package/dist/memory/manager.cjs +9 -7
- package/dist/memory/manager.d.ts +3 -1
- package/dist/memory/manager.d.ts.map +1 -1
- package/dist/memory/manager.js +9 -7
- package/dist/memory/schemas.cjs +10 -0
- package/dist/memory/schemas.d.ts +37 -8
- package/dist/memory/schemas.d.ts.map +1 -1
- package/dist/memory/schemas.js +9 -0
- package/dist/plugins/manager.cjs +21 -19
- package/dist/plugins/manager.d.ts +3 -1
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +21 -19
- package/dist/plugins/schemas.d.ts +9 -9
- package/dist/plugins/types.d.ts +2 -2
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.cjs +30 -20
- package/dist/process/command-validator.d.ts +4 -1
- package/dist/process/command-validator.d.ts.map +1 -1
- package/dist/process/command-validator.js +30 -20
- package/dist/process/process-service.cjs +23 -21
- package/dist/process/process-service.d.ts +3 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +23 -21
- package/dist/prompts/index.cjs +6 -8
- package/dist/prompts/index.d.ts +2 -4
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +4 -6
- package/dist/prompts/prompt-manager.cjs +25 -20
- package/dist/prompts/prompt-manager.d.ts +3 -1
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +25 -20
- package/dist/prompts/providers/config-prompt-provider.cjs +331 -0
- package/dist/prompts/providers/config-prompt-provider.d.ts +34 -0
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -0
- package/dist/prompts/providers/config-prompt-provider.js +308 -0
- package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
- package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/custom-prompt-provider.js +11 -7
- package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
- package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
- package/dist/prompts/schemas.cjs +42 -23
- package/dist/prompts/schemas.d.ts +123 -14
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +39 -22
- package/dist/prompts/types.d.ts +1 -1
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.cjs +15 -11
- package/dist/resources/handlers/blob-handler.d.ts +3 -1
- package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.js +15 -11
- package/dist/resources/handlers/factory.cjs +3 -3
- package/dist/resources/handlers/factory.d.ts +2 -1
- package/dist/resources/handlers/factory.d.ts.map +1 -1
- package/dist/resources/handlers/factory.js +3 -3
- package/dist/resources/handlers/filesystem-handler.cjs +10 -8
- package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +10 -8
- package/dist/resources/internal-provider.cjs +28 -20
- package/dist/resources/internal-provider.d.ts +3 -1
- package/dist/resources/internal-provider.d.ts.map +1 -1
- package/dist/resources/internal-provider.js +28 -20
- package/dist/resources/manager.cjs +34 -25
- package/dist/resources/manager.d.ts +3 -1
- package/dist/resources/manager.d.ts.map +1 -1
- package/dist/resources/manager.js +34 -25
- package/dist/resources/schemas.d.ts +6 -6
- package/dist/search/search-service.cjs +8 -6
- package/dist/search/search-service.d.ts +3 -1
- package/dist/search/search-service.d.ts.map +1 -1
- package/dist/search/search-service.js +8 -6
- package/dist/session/chat-session.cjs +40 -27
- package/dist/session/chat-session.d.ts +10 -7
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +40 -27
- package/dist/session/history/database.cjs +18 -11
- package/dist/session/history/database.d.ts +3 -1
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +18 -11
- package/dist/session/history/factory.cjs +2 -2
- package/dist/session/history/factory.d.ts +5 -1
- package/dist/session/history/factory.d.ts.map +1 -1
- package/dist/session/history/factory.js +2 -2
- package/dist/session/session-manager.cjs +37 -53
- package/dist/session/session-manager.d.ts +3 -17
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +37 -53
- package/dist/session/title-generator.cjs +3 -2
- package/dist/session/title-generator.d.ts +2 -1
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +3 -2
- package/dist/storage/blob/factory.cjs +9 -18
- package/dist/storage/blob/factory.d.ts +5 -4
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +8 -17
- package/dist/storage/blob/local-blob-store.cjs +25 -32
- package/dist/storage/blob/local-blob-store.d.ts +3 -2
- package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
- package/dist/storage/blob/local-blob-store.js +25 -32
- package/dist/storage/blob/memory-blob-store.cjs +326 -0
- package/dist/storage/blob/memory-blob-store.d.ts +66 -0
- package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
- package/dist/storage/blob/memory-blob-store.js +303 -0
- package/dist/storage/blob/schemas.cjs +3 -1
- package/dist/storage/blob/schemas.d.ts +6 -6
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +3 -1
- package/dist/storage/cache/factory.cjs +7 -8
- package/dist/storage/cache/factory.d.ts +4 -1
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +4 -5
- package/dist/storage/cache/redis-store.cjs +4 -1
- package/dist/storage/cache/redis-store.d.ts +3 -1
- package/dist/storage/cache/redis-store.d.ts.map +1 -1
- package/dist/storage/cache/redis-store.js +4 -1
- package/dist/storage/database/factory.cjs +13 -16
- package/dist/storage/database/factory.d.ts +5 -3
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +9 -12
- package/dist/storage/database/postgres-store.cjs +4 -1
- package/dist/storage/database/postgres-store.d.ts +3 -1
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +4 -1
- package/dist/storage/database/schemas.cjs +3 -4
- package/dist/storage/database/schemas.d.ts +8 -16
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +3 -4
- package/dist/storage/database/sqlite-store.cjs +17 -45
- package/dist/storage/database/sqlite-store.d.ts +3 -3
- package/dist/storage/database/sqlite-store.d.ts.map +1 -1
- package/dist/storage/database/sqlite-store.js +17 -45
- package/dist/storage/schemas.cjs +3 -1
- package/dist/storage/schemas.d.ts +16 -23
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +3 -1
- package/dist/storage/storage-manager.cjs +15 -15
- package/dist/storage/storage-manager.d.ts +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +15 -15
- package/dist/systemPrompt/contributors.cjs +15 -15
- package/dist/systemPrompt/contributors.d.ts +5 -3
- package/dist/systemPrompt/contributors.d.ts.map +1 -1
- package/dist/systemPrompt/contributors.js +15 -15
- package/dist/systemPrompt/in-built-prompts.cjs +0 -5
- package/dist/systemPrompt/in-built-prompts.d.ts +1 -2
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +0 -4
- package/dist/systemPrompt/manager.cjs +31 -23
- package/dist/systemPrompt/manager.d.ts +5 -3
- package/dist/systemPrompt/manager.d.ts.map +1 -1
- package/dist/systemPrompt/manager.js +31 -23
- package/dist/systemPrompt/registry.cjs +1 -2
- package/dist/systemPrompt/registry.d.ts +1 -1
- package/dist/systemPrompt/registry.d.ts.map +1 -1
- package/dist/systemPrompt/registry.js +1 -2
- package/dist/systemPrompt/schemas.cjs +24 -18
- package/dist/systemPrompt/schemas.d.ts +46 -222
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +14 -18
- package/dist/telemetry/decorators.cjs +54 -15
- package/dist/telemetry/decorators.d.ts.map +1 -1
- package/dist/telemetry/decorators.js +54 -15
- package/dist/telemetry/utils.cjs +21 -14
- package/dist/telemetry/utils.d.ts +7 -3
- package/dist/telemetry/utils.d.ts.map +1 -1
- package/dist/telemetry/utils.js +21 -14
- package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
- package/dist/tools/errors.cjs +2 -1
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +2 -1
- package/dist/tools/internal-tools/constants.cjs +2 -1
- package/dist/tools/internal-tools/constants.d.ts +1 -1
- package/dist/tools/internal-tools/constants.d.ts.map +1 -1
- package/dist/tools/internal-tools/constants.js +2 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
- package/dist/tools/internal-tools/provider.cjs +21 -17
- package/dist/tools/internal-tools/provider.d.ts +3 -1
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +21 -17
- package/dist/tools/internal-tools/registry.cjs +5 -0
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +5 -0
- package/dist/tools/schemas.cjs +16 -4
- package/dist/tools/schemas.d.ts +21 -9
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +15 -4
- package/dist/tools/tool-manager.cjs +64 -47
- package/dist/tools/tool-manager.d.ts +4 -2
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +61 -44
- package/dist/tools/types.d.ts +0 -4
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/env-file.cjs +118 -0
- package/dist/utils/env-file.d.ts +5 -0
- package/dist/utils/env-file.d.ts.map +1 -0
- package/dist/utils/env-file.js +85 -0
- package/dist/utils/error-conversion.cjs +23 -1
- package/dist/utils/error-conversion.d.ts +2 -1
- package/dist/utils/error-conversion.d.ts.map +1 -1
- package/dist/utils/error-conversion.js +23 -1
- package/dist/utils/execution-context.d.ts.map +1 -1
- package/dist/utils/fs-walk.d.ts.map +1 -1
- package/dist/utils/index.cjs +7 -9
- package/dist/utils/index.d.ts +3 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -4
- package/dist/utils/path.cjs +22 -57
- package/dist/utils/path.d.ts +8 -7
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +21 -54
- package/dist/utils/result.cjs +37 -14
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/result.js +37 -14
- package/dist/utils/schema.cjs +2 -3
- package/dist/utils/schema.d.ts +2 -1
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +1 -2
- package/dist/utils/service-initializer.cjs +88 -61
- package/dist/utils/service-initializer.d.ts +4 -2
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +70 -43
- package/package.json +7 -3
- package/dist/Dexto.cjs +0 -251
- package/dist/Dexto.d.ts +0 -191
- package/dist/Dexto.d.ts.map +0 -1
- package/dist/Dexto.js +0 -228
- package/dist/agent/registry/error-codes.cjs +0 -44
- package/dist/agent/registry/error-codes.d.ts +0 -21
- package/dist/agent/registry/error-codes.d.ts.map +0 -1
- package/dist/agent/registry/error-codes.js +0 -21
- package/dist/agent/registry/errors.cjs +0 -188
- package/dist/agent/registry/errors.d.ts +0 -63
- package/dist/agent/registry/errors.d.ts.map +0 -1
- package/dist/agent/registry/errors.js +0 -165
- package/dist/agent/registry/registry.cjs +0 -479
- package/dist/agent/registry/registry.d.ts +0 -130
- package/dist/agent/registry/registry.d.ts.map +0 -1
- package/dist/agent/registry/registry.js +0 -453
- package/dist/agent/registry/types.cjs +0 -74
- package/dist/agent/registry/types.d.ts +0 -142
- package/dist/agent/registry/types.d.ts.map +0 -1
- package/dist/agent/registry/types.js +0 -48
- package/dist/agent/registry/user-registry.cjs +0 -140
- package/dist/agent/registry/user-registry.d.ts +0 -34
- package/dist/agent/registry/user-registry.d.ts.map +0 -1
- package/dist/agent/registry/user-registry.js +0 -105
- package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
- package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
- package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/event-based-approval-provider.js +0 -133
- package/dist/approval/providers/factory.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.cjs +0 -54
- package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
- package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.js +0 -31
- package/dist/config/agent-resolver.cjs +0 -153
- package/dist/config/agent-resolver.d.ts +0 -14
- package/dist/config/agent-resolver.d.ts.map +0 -1
- package/dist/config/agent-resolver.js +0 -123
- package/dist/config/error-codes.cjs +0 -39
- package/dist/config/error-codes.d.ts +0 -16
- package/dist/config/error-codes.d.ts.map +0 -1
- package/dist/config/error-codes.js +0 -16
- package/dist/config/errors.cjs +0 -126
- package/dist/config/errors.d.ts +0 -34
- package/dist/config/errors.d.ts.map +0 -1
- package/dist/config/errors.js +0 -103
- package/dist/config/index.cjs +0 -26
- package/dist/config/index.d.ts +0 -4
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -3
- package/dist/config/loader.cjs +0 -119
- package/dist/config/loader.d.ts +0 -16
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -86
- package/dist/config/writer.cjs +0 -182
- package/dist/config/writer.d.ts +0 -35
- package/dist/config/writer.d.ts.map +0 -1
- package/dist/config/writer.js +0 -147
- package/dist/preferences/constants.d.ts +0 -2
- package/dist/preferences/constants.d.ts.map +0 -1
- package/dist/preferences/constants.js +0 -5
- package/dist/preferences/error-codes.d.ts +0 -8
- package/dist/preferences/error-codes.d.ts.map +0 -1
- package/dist/preferences/error-codes.js +0 -12
- package/dist/preferences/errors.cjs +0 -75
- package/dist/preferences/errors.d.ts +0 -18
- package/dist/preferences/errors.d.ts.map +0 -1
- package/dist/preferences/errors.js +0 -51
- package/dist/preferences/index.cjs +0 -55
- package/dist/preferences/index.d.ts +0 -6
- package/dist/preferences/index.d.ts.map +0 -1
- package/dist/preferences/index.js +0 -32
- package/dist/preferences/loader.cjs +0 -138
- package/dist/preferences/loader.d.ts +0 -51
- package/dist/preferences/loader.d.ts.map +0 -1
- package/dist/preferences/loader.js +0 -110
- package/dist/preferences/schemas.cjs +0 -75
- package/dist/preferences/schemas.d.ts +0 -110
- package/dist/preferences/schemas.d.ts.map +0 -1
- package/dist/preferences/schemas.js +0 -49
- package/dist/prompts/providers/file-prompt-provider.cjs +0 -399
- package/dist/prompts/providers/file-prompt-provider.d.ts +0 -47
- package/dist/prompts/providers/file-prompt-provider.d.ts.map +0 -1
- package/dist/prompts/providers/file-prompt-provider.js +0 -376
- package/dist/prompts/providers/starter-prompt-provider.cjs +0 -170
- package/dist/prompts/providers/starter-prompt-provider.d.ts +0 -45
- package/dist/prompts/providers/starter-prompt-provider.d.ts.map +0 -1
- package/dist/prompts/providers/starter-prompt-provider.js +0 -147
- package/dist/utils/api-key-store.cjs +0 -56
- package/dist/utils/api-key-store.d.ts +0 -24
- package/dist/utils/api-key-store.d.ts.map +0 -1
- package/dist/utils/api-key-store.js +0 -31
- package/dist/utils/env.cjs +0 -154
- package/dist/utils/env.d.ts +0 -28
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -119
- package/dist/utils/port-utils.cjs +0 -37
- package/dist/utils/port-utils.d.ts +0 -10
- package/dist/utils/port-utils.d.ts.map +0 -1
- package/dist/utils/port-utils.js +0 -14
- package/dist/utils/port-utils.spec.cjs +0 -26
- package/dist/utils/port-utils.spec.js +0 -25
- /package/dist/approval/{providers/factory.cjs → factory.cjs} +0 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import "../../chunk-C6A6W6XS.js";
|
|
2
|
+
import { DextoLogComponent } from "../../logger/v2/types.js";
|
|
3
|
+
import { PromptError } from "../errors.js";
|
|
4
|
+
import { expandPlaceholders } from "../utils.js";
|
|
5
|
+
import { assertValidPromptName } from "../name-validation.js";
|
|
6
|
+
import { readFile, realpath } from "fs/promises";
|
|
7
|
+
import { existsSync } from "fs";
|
|
8
|
+
import { dirname, relative, sep } from "path";
|
|
9
|
+
class ConfigPromptProvider {
|
|
10
|
+
prompts = [];
|
|
11
|
+
promptsCache = [];
|
|
12
|
+
promptContent = /* @__PURE__ */ new Map();
|
|
13
|
+
cacheValid = false;
|
|
14
|
+
logger;
|
|
15
|
+
constructor(agentConfig, logger) {
|
|
16
|
+
this.logger = logger.createChild(DextoLogComponent.PROMPT);
|
|
17
|
+
this.prompts = agentConfig.prompts;
|
|
18
|
+
this.buildPromptsCache();
|
|
19
|
+
}
|
|
20
|
+
getSource() {
|
|
21
|
+
return "config";
|
|
22
|
+
}
|
|
23
|
+
invalidateCache() {
|
|
24
|
+
this.cacheValid = false;
|
|
25
|
+
this.promptsCache = [];
|
|
26
|
+
this.promptContent.clear();
|
|
27
|
+
this.logger.debug("ConfigPromptProvider cache invalidated");
|
|
28
|
+
}
|
|
29
|
+
updateConfig(agentConfig) {
|
|
30
|
+
this.prompts = agentConfig.prompts;
|
|
31
|
+
this.invalidateCache();
|
|
32
|
+
this.buildPromptsCache();
|
|
33
|
+
}
|
|
34
|
+
async listPrompts(_cursor) {
|
|
35
|
+
if (!this.cacheValid) {
|
|
36
|
+
await this.buildPromptsCache();
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
prompts: this.promptsCache
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
async getPrompt(name, args) {
|
|
43
|
+
if (!this.cacheValid) {
|
|
44
|
+
await this.buildPromptsCache();
|
|
45
|
+
}
|
|
46
|
+
const promptInfo = this.promptsCache.find((p) => p.name === name);
|
|
47
|
+
if (!promptInfo) {
|
|
48
|
+
throw PromptError.notFound(name);
|
|
49
|
+
}
|
|
50
|
+
let content = this.promptContent.get(name);
|
|
51
|
+
if (!content) {
|
|
52
|
+
throw PromptError.missingText();
|
|
53
|
+
}
|
|
54
|
+
content = this.applyArguments(content, args);
|
|
55
|
+
return {
|
|
56
|
+
description: promptInfo.description,
|
|
57
|
+
messages: [
|
|
58
|
+
{
|
|
59
|
+
role: "user",
|
|
60
|
+
content: {
|
|
61
|
+
type: "text",
|
|
62
|
+
text: content
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
async getPromptDefinition(name) {
|
|
69
|
+
if (!this.cacheValid) {
|
|
70
|
+
await this.buildPromptsCache();
|
|
71
|
+
}
|
|
72
|
+
const promptInfo = this.promptsCache.find((p) => p.name === name);
|
|
73
|
+
if (!promptInfo) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
name: promptInfo.name,
|
|
78
|
+
...promptInfo.title && { title: promptInfo.title },
|
|
79
|
+
...promptInfo.description && { description: promptInfo.description },
|
|
80
|
+
...promptInfo.arguments && { arguments: promptInfo.arguments }
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
async buildPromptsCache() {
|
|
84
|
+
const cache = [];
|
|
85
|
+
const contentMap = /* @__PURE__ */ new Map();
|
|
86
|
+
for (const prompt of this.prompts) {
|
|
87
|
+
try {
|
|
88
|
+
if (prompt.type === "inline") {
|
|
89
|
+
const { info, content } = this.processInlinePrompt(prompt);
|
|
90
|
+
cache.push(info);
|
|
91
|
+
contentMap.set(info.name, content);
|
|
92
|
+
} else if (prompt.type === "file") {
|
|
93
|
+
const result = await this.processFilePrompt(prompt);
|
|
94
|
+
if (result) {
|
|
95
|
+
cache.push(result.info);
|
|
96
|
+
contentMap.set(result.info.name, result.content);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
} catch (error) {
|
|
100
|
+
this.logger.warn(
|
|
101
|
+
`Failed to process prompt: ${error instanceof Error ? error.message : String(error)}`
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
cache.sort((a, b) => {
|
|
106
|
+
const priorityA = a.metadata?.priority ?? 0;
|
|
107
|
+
const priorityB = b.metadata?.priority ?? 0;
|
|
108
|
+
return priorityB - priorityA;
|
|
109
|
+
});
|
|
110
|
+
this.promptsCache = cache;
|
|
111
|
+
this.promptContent = contentMap;
|
|
112
|
+
this.cacheValid = true;
|
|
113
|
+
this.logger.debug(`Cached ${cache.length} config prompts`);
|
|
114
|
+
}
|
|
115
|
+
processInlinePrompt(prompt) {
|
|
116
|
+
const promptName = `config:${prompt.id}`;
|
|
117
|
+
const promptInfo = {
|
|
118
|
+
name: promptName,
|
|
119
|
+
title: prompt.title,
|
|
120
|
+
description: prompt.description,
|
|
121
|
+
source: "config",
|
|
122
|
+
metadata: {
|
|
123
|
+
type: "inline",
|
|
124
|
+
category: prompt.category,
|
|
125
|
+
priority: prompt.priority,
|
|
126
|
+
showInStarters: prompt.showInStarters,
|
|
127
|
+
originalId: prompt.id
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
return { info: promptInfo, content: prompt.prompt };
|
|
131
|
+
}
|
|
132
|
+
async processFilePrompt(prompt) {
|
|
133
|
+
const filePath = prompt.file;
|
|
134
|
+
if (!existsSync(filePath)) {
|
|
135
|
+
this.logger.warn(`Prompt file not found: ${filePath}`);
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
try {
|
|
139
|
+
const resolvedDir = await realpath(dirname(filePath));
|
|
140
|
+
const resolvedFile = await realpath(filePath);
|
|
141
|
+
const rel = relative(resolvedDir, resolvedFile);
|
|
142
|
+
if (rel.startsWith(".." + sep) || rel === "..") {
|
|
143
|
+
this.logger.warn(
|
|
144
|
+
`Skipping prompt file '${filePath}': path traversal attempt detected (resolved outside directory)`
|
|
145
|
+
);
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
} catch (realpathError) {
|
|
149
|
+
this.logger.warn(
|
|
150
|
+
`Skipping prompt file '${filePath}': unable to resolve path (${realpathError instanceof Error ? realpathError.message : String(realpathError)})`
|
|
151
|
+
);
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
try {
|
|
155
|
+
const rawContent = await readFile(filePath, "utf-8");
|
|
156
|
+
const parsed = this.parseMarkdownPrompt(rawContent, filePath);
|
|
157
|
+
try {
|
|
158
|
+
assertValidPromptName(parsed.id, {
|
|
159
|
+
context: `file prompt '${filePath}'`,
|
|
160
|
+
hint: "Use kebab-case in the 'id:' frontmatter field or file name."
|
|
161
|
+
});
|
|
162
|
+
} catch (validationError) {
|
|
163
|
+
this.logger.warn(
|
|
164
|
+
`Invalid prompt name in '${filePath}': ${validationError instanceof Error ? validationError.message : String(validationError)}`
|
|
165
|
+
);
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
const promptInfo = {
|
|
169
|
+
name: `config:${parsed.id}`,
|
|
170
|
+
title: parsed.title,
|
|
171
|
+
description: parsed.description,
|
|
172
|
+
source: "config",
|
|
173
|
+
...parsed.arguments && { arguments: parsed.arguments },
|
|
174
|
+
metadata: {
|
|
175
|
+
type: "file",
|
|
176
|
+
filePath,
|
|
177
|
+
category: parsed.category,
|
|
178
|
+
priority: parsed.priority,
|
|
179
|
+
showInStarters: prompt.showInStarters,
|
|
180
|
+
originalId: parsed.id
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
return { info: promptInfo, content: parsed.content };
|
|
184
|
+
} catch (error) {
|
|
185
|
+
this.logger.warn(
|
|
186
|
+
`Failed to read prompt file ${filePath}: ${error instanceof Error ? error.message : String(error)}`
|
|
187
|
+
);
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
parseMarkdownPrompt(rawContent, filePath) {
|
|
192
|
+
const lines = rawContent.trim().split("\n");
|
|
193
|
+
const fileName = filePath.split("/").pop()?.replace(/\.md$/, "") ?? "unknown";
|
|
194
|
+
let id = fileName;
|
|
195
|
+
let title = fileName;
|
|
196
|
+
let description = `File prompt: ${fileName}`;
|
|
197
|
+
let category;
|
|
198
|
+
let priority;
|
|
199
|
+
let argumentHint;
|
|
200
|
+
let contentBody;
|
|
201
|
+
if (lines[0]?.trim() === "---") {
|
|
202
|
+
let frontmatterEnd = 0;
|
|
203
|
+
for (let i = 1; i < lines.length; i++) {
|
|
204
|
+
if (lines[i]?.trim() === "---") {
|
|
205
|
+
frontmatterEnd = i;
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (frontmatterEnd > 0) {
|
|
210
|
+
const frontmatterLines = lines.slice(1, frontmatterEnd);
|
|
211
|
+
contentBody = lines.slice(frontmatterEnd + 1).join("\n");
|
|
212
|
+
for (const line of frontmatterLines) {
|
|
213
|
+
const match = (key) => {
|
|
214
|
+
const regex = new RegExp(`${key}:\\s*(?:['"](.+)['"]|(.+))`);
|
|
215
|
+
const m = line.match(regex);
|
|
216
|
+
return m ? (m[1] || m[2] || "").trim() : null;
|
|
217
|
+
};
|
|
218
|
+
if (line.includes("id:")) {
|
|
219
|
+
const val = match("id");
|
|
220
|
+
if (val) id = val;
|
|
221
|
+
} else if (line.includes("title:")) {
|
|
222
|
+
const val = match("title");
|
|
223
|
+
if (val) title = val;
|
|
224
|
+
} else if (line.includes("description:")) {
|
|
225
|
+
const val = match("description");
|
|
226
|
+
if (val) description = val;
|
|
227
|
+
} else if (line.includes("category:")) {
|
|
228
|
+
const val = match("category");
|
|
229
|
+
if (val) category = val;
|
|
230
|
+
} else if (line.includes("priority:")) {
|
|
231
|
+
const val = match("priority");
|
|
232
|
+
if (val) priority = parseInt(val, 10);
|
|
233
|
+
} else if (line.includes("argument-hint:")) {
|
|
234
|
+
const val = match("argument-hint");
|
|
235
|
+
if (val) argumentHint = val;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
} else {
|
|
239
|
+
contentBody = rawContent;
|
|
240
|
+
}
|
|
241
|
+
} else {
|
|
242
|
+
contentBody = rawContent;
|
|
243
|
+
}
|
|
244
|
+
if (title === fileName) {
|
|
245
|
+
for (const line of contentBody.trim().split("\n")) {
|
|
246
|
+
if (line.trim().startsWith("#")) {
|
|
247
|
+
title = line.trim().replace(/^#+\s*/, "");
|
|
248
|
+
break;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
const parsedArguments = argumentHint ? this.parseArgumentHint(argumentHint) : void 0;
|
|
253
|
+
return {
|
|
254
|
+
id,
|
|
255
|
+
title,
|
|
256
|
+
description,
|
|
257
|
+
content: contentBody.trim(),
|
|
258
|
+
...category !== void 0 && { category },
|
|
259
|
+
...priority !== void 0 && { priority },
|
|
260
|
+
...parsedArguments !== void 0 && { arguments: parsedArguments }
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
parseArgumentHint(hint) {
|
|
264
|
+
const args = [];
|
|
265
|
+
const argPattern = /\[([^\]]+)\]/g;
|
|
266
|
+
let match;
|
|
267
|
+
while ((match = argPattern.exec(hint)) !== null) {
|
|
268
|
+
const argText = match[1];
|
|
269
|
+
if (!argText) continue;
|
|
270
|
+
const isOptional = argText.endsWith("?");
|
|
271
|
+
const name = isOptional ? argText.slice(0, -1).trim() : argText.trim();
|
|
272
|
+
if (name) {
|
|
273
|
+
args.push({
|
|
274
|
+
name,
|
|
275
|
+
required: !isOptional
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return args;
|
|
280
|
+
}
|
|
281
|
+
applyArguments(content, args) {
|
|
282
|
+
const detectionTarget = content.replaceAll("$$", "");
|
|
283
|
+
const usesPositionalPlaceholders = /\$[1-9](?!\d)/.test(detectionTarget) || detectionTarget.includes("$ARGUMENTS");
|
|
284
|
+
const expanded = expandPlaceholders(content, args).trim();
|
|
285
|
+
if (!args || typeof args !== "object" || Object.keys(args).length === 0) {
|
|
286
|
+
return expanded;
|
|
287
|
+
}
|
|
288
|
+
if (!usesPositionalPlaceholders) {
|
|
289
|
+
if (args._context) {
|
|
290
|
+
const contextString = String(args._context);
|
|
291
|
+
return `${expanded}
|
|
292
|
+
|
|
293
|
+
Context: ${contextString}`;
|
|
294
|
+
}
|
|
295
|
+
const argEntries = Object.entries(args).filter(([key]) => !key.startsWith("_"));
|
|
296
|
+
if (argEntries.length > 0) {
|
|
297
|
+
const formattedArgs = argEntries.map(([key, value]) => `${key}: ${value}`).join(", ");
|
|
298
|
+
return `${expanded}
|
|
299
|
+
|
|
300
|
+
Arguments: ${formattedArgs}`;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return expanded;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
export {
|
|
307
|
+
ConfigPromptProvider
|
|
308
|
+
};
|
|
@@ -21,18 +21,20 @@ __export(custom_prompt_provider_exports, {
|
|
|
21
21
|
CustomPromptProvider: () => CustomPromptProvider
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(custom_prompt_provider_exports);
|
|
24
|
-
var
|
|
24
|
+
var import_types = require("../../logger/v2/types.js");
|
|
25
25
|
var import_utils = require("../utils.js");
|
|
26
26
|
var import_errors = require("../errors.js");
|
|
27
27
|
const CUSTOM_PROMPT_KEY_PREFIX = "prompt:custom:";
|
|
28
28
|
class CustomPromptProvider {
|
|
29
|
-
constructor(database, resourceManager) {
|
|
29
|
+
constructor(database, resourceManager, logger) {
|
|
30
30
|
this.database = database;
|
|
31
31
|
this.resourceManager = resourceManager;
|
|
32
|
+
this.logger = logger.createChild(import_types.DextoLogComponent.PROMPT);
|
|
32
33
|
}
|
|
33
34
|
cacheValid = false;
|
|
34
35
|
promptsCache = [];
|
|
35
36
|
promptRecords = /* @__PURE__ */ new Map();
|
|
37
|
+
logger;
|
|
36
38
|
getSource() {
|
|
37
39
|
return "custom";
|
|
38
40
|
}
|
|
@@ -90,7 +92,7 @@ class CustomPromptProvider {
|
|
|
90
92
|
});
|
|
91
93
|
}
|
|
92
94
|
} catch (error) {
|
|
93
|
-
|
|
95
|
+
this.logger.warn(
|
|
94
96
|
`Failed to load blob resource for custom prompt ${name}: ${String(error)}`
|
|
95
97
|
);
|
|
96
98
|
}
|
|
@@ -149,7 +151,7 @@ class CustomPromptProvider {
|
|
|
149
151
|
}
|
|
150
152
|
resourceMetadata = Object.keys(meta).length > 0 ? meta : void 0;
|
|
151
153
|
} catch (error) {
|
|
152
|
-
|
|
154
|
+
this.logger.warn(`Failed to store custom prompt resource: ${String(error)}`);
|
|
153
155
|
}
|
|
154
156
|
}
|
|
155
157
|
const now = Date.now();
|
|
@@ -188,7 +190,9 @@ class CustomPromptProvider {
|
|
|
188
190
|
const blobService = this.resourceManager.getBlobStore();
|
|
189
191
|
await blobService.delete(record.resourceUri);
|
|
190
192
|
} catch (error) {
|
|
191
|
-
|
|
193
|
+
this.logger.warn(
|
|
194
|
+
`Failed to delete blob for custom prompt ${name}: ${String(error)}`
|
|
195
|
+
);
|
|
192
196
|
}
|
|
193
197
|
}
|
|
194
198
|
this.invalidateCache();
|
|
@@ -223,13 +227,13 @@ class CustomPromptProvider {
|
|
|
223
227
|
metadata
|
|
224
228
|
});
|
|
225
229
|
} catch (error) {
|
|
226
|
-
|
|
230
|
+
this.logger.warn(`Failed to load custom prompt from ${key}: ${String(error)}`);
|
|
227
231
|
}
|
|
228
232
|
}
|
|
229
233
|
this.promptsCache = prompts;
|
|
230
234
|
this.cacheValid = true;
|
|
231
235
|
} catch (error) {
|
|
232
|
-
|
|
236
|
+
this.logger.error(`Failed to build custom prompts cache: ${String(error)}`);
|
|
233
237
|
this.promptsCache = [];
|
|
234
238
|
this.cacheValid = false;
|
|
235
239
|
}
|
|
@@ -2,6 +2,7 @@ import type { PromptProvider, PromptInfo, PromptDefinition, PromptListResult, Pr
|
|
|
2
2
|
import type { GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
3
|
import type { Database } from '../../storage/database/types.js';
|
|
4
4
|
import type { ResourceManager } from '../../resources/manager.js';
|
|
5
|
+
import type { IDextoLogger } from '../../logger/v2/types.js';
|
|
5
6
|
export interface CreateCustomPromptInput {
|
|
6
7
|
name: string;
|
|
7
8
|
title?: string;
|
|
@@ -20,7 +21,8 @@ export declare class CustomPromptProvider implements PromptProvider {
|
|
|
20
21
|
private cacheValid;
|
|
21
22
|
private promptsCache;
|
|
22
23
|
private promptRecords;
|
|
23
|
-
|
|
24
|
+
private logger;
|
|
25
|
+
constructor(database: Database, resourceManager: ResourceManager, logger: IDextoLogger);
|
|
24
26
|
getSource(): string;
|
|
25
27
|
invalidateCache(): void;
|
|
26
28
|
listPrompts(_cursor?: string): Promise<PromptListResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-prompt-provider.d.ts","sourceRoot":"","sources":["../../../src/prompts/providers/custom-prompt-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-prompt-provider.d.ts","sourceRoot":"","sources":["../../../src/prompts/providers/custom-prompt-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAuB7D,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,qBAAa,oBAAqB,YAAW,cAAc;IAOnD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IAP3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,MAAM,CAAe;gBAGjB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EACxC,MAAM,EAAE,YAAY;IAKxB,SAAS,IAAI,MAAM;IAInB,eAAe,IAAI,IAAI;IAMjB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQxD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAiEjF,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAcnE,YAAY,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsEjE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAuBjC,UAAU;IAkDxB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,cAAc;CA4CzB"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import "../../chunk-C6A6W6XS.js";
|
|
2
|
-
import {
|
|
2
|
+
import { DextoLogComponent } from "../../logger/v2/types.js";
|
|
3
3
|
import { expandPlaceholders } from "../utils.js";
|
|
4
4
|
import { PromptError } from "../errors.js";
|
|
5
5
|
const CUSTOM_PROMPT_KEY_PREFIX = "prompt:custom:";
|
|
6
6
|
class CustomPromptProvider {
|
|
7
|
-
constructor(database, resourceManager) {
|
|
7
|
+
constructor(database, resourceManager, logger) {
|
|
8
8
|
this.database = database;
|
|
9
9
|
this.resourceManager = resourceManager;
|
|
10
|
+
this.logger = logger.createChild(DextoLogComponent.PROMPT);
|
|
10
11
|
}
|
|
11
12
|
cacheValid = false;
|
|
12
13
|
promptsCache = [];
|
|
13
14
|
promptRecords = /* @__PURE__ */ new Map();
|
|
15
|
+
logger;
|
|
14
16
|
getSource() {
|
|
15
17
|
return "custom";
|
|
16
18
|
}
|
|
@@ -68,7 +70,7 @@ class CustomPromptProvider {
|
|
|
68
70
|
});
|
|
69
71
|
}
|
|
70
72
|
} catch (error) {
|
|
71
|
-
logger.warn(
|
|
73
|
+
this.logger.warn(
|
|
72
74
|
`Failed to load blob resource for custom prompt ${name}: ${String(error)}`
|
|
73
75
|
);
|
|
74
76
|
}
|
|
@@ -127,7 +129,7 @@ class CustomPromptProvider {
|
|
|
127
129
|
}
|
|
128
130
|
resourceMetadata = Object.keys(meta).length > 0 ? meta : void 0;
|
|
129
131
|
} catch (error) {
|
|
130
|
-
logger.warn(`Failed to store custom prompt resource: ${String(error)}`);
|
|
132
|
+
this.logger.warn(`Failed to store custom prompt resource: ${String(error)}`);
|
|
131
133
|
}
|
|
132
134
|
}
|
|
133
135
|
const now = Date.now();
|
|
@@ -166,7 +168,9 @@ class CustomPromptProvider {
|
|
|
166
168
|
const blobService = this.resourceManager.getBlobStore();
|
|
167
169
|
await blobService.delete(record.resourceUri);
|
|
168
170
|
} catch (error) {
|
|
169
|
-
logger.warn(
|
|
171
|
+
this.logger.warn(
|
|
172
|
+
`Failed to delete blob for custom prompt ${name}: ${String(error)}`
|
|
173
|
+
);
|
|
170
174
|
}
|
|
171
175
|
}
|
|
172
176
|
this.invalidateCache();
|
|
@@ -201,13 +205,13 @@ class CustomPromptProvider {
|
|
|
201
205
|
metadata
|
|
202
206
|
});
|
|
203
207
|
} catch (error) {
|
|
204
|
-
logger.warn(`Failed to load custom prompt from ${key}: ${String(error)}`);
|
|
208
|
+
this.logger.warn(`Failed to load custom prompt from ${key}: ${String(error)}`);
|
|
205
209
|
}
|
|
206
210
|
}
|
|
207
211
|
this.promptsCache = prompts;
|
|
208
212
|
this.cacheValid = true;
|
|
209
213
|
} catch (error) {
|
|
210
|
-
logger.error(`Failed to build custom prompts cache: ${String(error)}`);
|
|
214
|
+
this.logger.error(`Failed to build custom prompts cache: ${String(error)}`);
|
|
211
215
|
this.promptsCache = [];
|
|
212
216
|
this.cacheValid = false;
|
|
213
217
|
}
|
|
@@ -21,11 +21,12 @@ __export(mcp_prompt_provider_exports, {
|
|
|
21
21
|
MCPPromptProvider: () => MCPPromptProvider
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(mcp_prompt_provider_exports);
|
|
24
|
-
var import_logger = require("../../logger/index.js");
|
|
25
24
|
class MCPPromptProvider {
|
|
26
25
|
mcpManager;
|
|
27
|
-
|
|
26
|
+
logger;
|
|
27
|
+
constructor(mcpManager, logger) {
|
|
28
28
|
this.mcpManager = mcpManager;
|
|
29
|
+
this.logger = logger;
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
32
|
* Get the source identifier for this provider
|
|
@@ -37,7 +38,7 @@ class MCPPromptProvider {
|
|
|
37
38
|
* Invalidate the prompts cache (no-op as MCPManager handles caching)
|
|
38
39
|
*/
|
|
39
40
|
invalidateCache() {
|
|
40
|
-
|
|
41
|
+
this.logger.debug("MCPPromptProvider cache invalidation (handled by MCPManager)");
|
|
41
42
|
}
|
|
42
43
|
/**
|
|
43
44
|
* List all available prompts from MCP servers using MCPManager's cache
|
|
@@ -61,7 +62,7 @@ class MCPPromptProvider {
|
|
|
61
62
|
return promptInfo;
|
|
62
63
|
}
|
|
63
64
|
);
|
|
64
|
-
|
|
65
|
+
this.logger.debug(`\u{1F4DD} Listed ${prompts.length} MCP prompts from cache`);
|
|
65
66
|
return {
|
|
66
67
|
prompts
|
|
67
68
|
};
|
|
@@ -70,7 +71,7 @@ class MCPPromptProvider {
|
|
|
70
71
|
* Get a specific prompt by name
|
|
71
72
|
*/
|
|
72
73
|
async getPrompt(name, args) {
|
|
73
|
-
|
|
74
|
+
this.logger.debug(`\u{1F4DD} Reading MCP prompt: ${name}`);
|
|
74
75
|
return await this.mcpManager.getPrompt(name, args);
|
|
75
76
|
}
|
|
76
77
|
/**
|
|
@@ -89,7 +90,7 @@ class MCPPromptProvider {
|
|
|
89
90
|
...definition.arguments && { arguments: definition.arguments }
|
|
90
91
|
};
|
|
91
92
|
} catch (error) {
|
|
92
|
-
|
|
93
|
+
this.logger.debug(
|
|
93
94
|
`Failed to get prompt definition for '${name}': ${error instanceof Error ? error.message : String(error)}`
|
|
94
95
|
);
|
|
95
96
|
return null;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { MCPManager } from '../../mcp/manager.js';
|
|
2
2
|
import type { PromptProvider, PromptDefinition, PromptListResult } from '../types.js';
|
|
3
3
|
import type { GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
|
|
4
|
+
import type { IDextoLogger } from '../../logger/v2/types.js';
|
|
4
5
|
/**
|
|
5
6
|
* MCP Prompt Provider - Provides prompts from connected MCP servers
|
|
6
7
|
*
|
|
@@ -10,7 +11,8 @@ import type { GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
|
|
|
10
11
|
*/
|
|
11
12
|
export declare class MCPPromptProvider implements PromptProvider {
|
|
12
13
|
private mcpManager;
|
|
13
|
-
|
|
14
|
+
private logger;
|
|
15
|
+
constructor(mcpManager: MCPManager, logger: IDextoLogger);
|
|
14
16
|
/**
|
|
15
17
|
* Get the source identifier for this provider
|
|
16
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-prompt-provider.d.ts","sourceRoot":"","sources":["../../../src/prompts/providers/mcp-prompt-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAc,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-prompt-provider.d.ts","sourceRoot":"","sources":["../../../src/prompts/providers/mcp-prompt-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAc,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACpD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAe;gBAEjB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY;IAKxD;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;OAEG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6B9D;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAKvF;;OAEG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAoB5E"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import "../../chunk-C6A6W6XS.js";
|
|
2
|
-
import { logger } from "../../logger/index.js";
|
|
3
2
|
class MCPPromptProvider {
|
|
4
3
|
mcpManager;
|
|
5
|
-
|
|
4
|
+
logger;
|
|
5
|
+
constructor(mcpManager, logger) {
|
|
6
6
|
this.mcpManager = mcpManager;
|
|
7
|
+
this.logger = logger;
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
9
10
|
* Get the source identifier for this provider
|
|
@@ -15,7 +16,7 @@ class MCPPromptProvider {
|
|
|
15
16
|
* Invalidate the prompts cache (no-op as MCPManager handles caching)
|
|
16
17
|
*/
|
|
17
18
|
invalidateCache() {
|
|
18
|
-
logger.debug("MCPPromptProvider cache invalidation (handled by MCPManager)");
|
|
19
|
+
this.logger.debug("MCPPromptProvider cache invalidation (handled by MCPManager)");
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* List all available prompts from MCP servers using MCPManager's cache
|
|
@@ -39,7 +40,7 @@ class MCPPromptProvider {
|
|
|
39
40
|
return promptInfo;
|
|
40
41
|
}
|
|
41
42
|
);
|
|
42
|
-
logger.debug(`\u{1F4DD} Listed ${prompts.length} MCP prompts from cache`);
|
|
43
|
+
this.logger.debug(`\u{1F4DD} Listed ${prompts.length} MCP prompts from cache`);
|
|
43
44
|
return {
|
|
44
45
|
prompts
|
|
45
46
|
};
|
|
@@ -48,7 +49,7 @@ class MCPPromptProvider {
|
|
|
48
49
|
* Get a specific prompt by name
|
|
49
50
|
*/
|
|
50
51
|
async getPrompt(name, args) {
|
|
51
|
-
logger.debug(`\u{1F4DD} Reading MCP prompt: ${name}`);
|
|
52
|
+
this.logger.debug(`\u{1F4DD} Reading MCP prompt: ${name}`);
|
|
52
53
|
return await this.mcpManager.getPrompt(name, args);
|
|
53
54
|
}
|
|
54
55
|
/**
|
|
@@ -67,7 +68,7 @@ class MCPPromptProvider {
|
|
|
67
68
|
...definition.arguments && { arguments: definition.arguments }
|
|
68
69
|
};
|
|
69
70
|
} catch (error) {
|
|
70
|
-
logger.debug(
|
|
71
|
+
this.logger.debug(
|
|
71
72
|
`Failed to get prompt definition for '${name}': ${error instanceof Error ? error.message : String(error)}`
|
|
72
73
|
);
|
|
73
74
|
return null;
|
package/dist/prompts/schemas.cjs
CHANGED
|
@@ -18,37 +18,56 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var schemas_exports = {};
|
|
20
20
|
__export(schemas_exports, {
|
|
21
|
-
|
|
21
|
+
FilePromptSchema: () => FilePromptSchema,
|
|
22
|
+
InlinePromptSchema: () => InlinePromptSchema,
|
|
23
|
+
PromptsSchema: () => PromptsSchema
|
|
22
24
|
});
|
|
23
25
|
module.exports = __toCommonJS(schemas_exports);
|
|
24
26
|
var import_zod = require("zod");
|
|
25
27
|
var import_name_validation = require("./name-validation.js");
|
|
26
|
-
const
|
|
27
|
-
import_zod.z.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
).
|
|
28
|
+
const InlinePromptSchema = import_zod.z.object({
|
|
29
|
+
type: import_zod.z.literal("inline").describe("Inline prompt type"),
|
|
30
|
+
id: import_zod.z.string().min(1).max(64).regex(import_name_validation.PROMPT_NAME_REGEX, `Prompt id must be ${import_name_validation.PROMPT_NAME_GUIDANCE}`).describe("Kebab-case slug id for the prompt (e.g., quick-start)"),
|
|
31
|
+
title: import_zod.z.string().optional().describe("Display title for the prompt"),
|
|
32
|
+
description: import_zod.z.string().optional().default("").describe("Description shown on hover or in the UI"),
|
|
33
|
+
prompt: import_zod.z.string().describe("The actual prompt text"),
|
|
34
|
+
category: import_zod.z.string().optional().default("general").describe("Category for organizing prompts (e.g., general, coding, analysis, tools)"),
|
|
35
|
+
priority: import_zod.z.number().optional().default(0).describe("Higher numbers appear first in the list"),
|
|
36
|
+
showInStarters: import_zod.z.boolean().optional().default(false).describe("Show as a clickable button in WebUI starter prompts")
|
|
37
|
+
}).strict().describe("Inline prompt with text defined directly in config");
|
|
38
|
+
const FilePromptSchema = import_zod.z.object({
|
|
39
|
+
type: import_zod.z.literal("file").describe("File-based prompt type"),
|
|
40
|
+
file: import_zod.z.string().describe(
|
|
41
|
+
"Path to markdown file containing prompt (supports ${{dexto.agent_dir}} template)"
|
|
42
|
+
),
|
|
43
|
+
showInStarters: import_zod.z.boolean().optional().default(false).describe("Show as a clickable button in WebUI starter prompts")
|
|
44
|
+
}).strict().describe("File-based prompt loaded from a markdown file");
|
|
45
|
+
const PromptsSchema = import_zod.z.array(import_zod.z.discriminatedUnion("type", [InlinePromptSchema, FilePromptSchema])).superRefine((arr, ctx) => {
|
|
38
46
|
const seen = /* @__PURE__ */ new Map();
|
|
39
47
|
arr.forEach((p, idx) => {
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
if (p.type === "inline") {
|
|
49
|
+
if (seen.has(p.id)) {
|
|
50
|
+
ctx.addIssue({
|
|
51
|
+
code: import_zod.z.ZodIssueCode.custom,
|
|
52
|
+
message: `Duplicate prompt id: ${p.id}`,
|
|
53
|
+
path: [idx, "id"]
|
|
54
|
+
});
|
|
55
|
+
} else {
|
|
56
|
+
seen.set(p.id, idx);
|
|
57
|
+
}
|
|
48
58
|
}
|
|
49
59
|
});
|
|
50
|
-
}).transform(
|
|
60
|
+
}).transform(
|
|
61
|
+
(arr) => arr.map((p) => {
|
|
62
|
+
if (p.type === "inline") {
|
|
63
|
+
return { ...p, title: p.title ?? p.id.replace(/-/g, " ") };
|
|
64
|
+
}
|
|
65
|
+
return p;
|
|
66
|
+
})
|
|
67
|
+
).default([]).describe("Agent prompts - inline text or file-based");
|
|
51
68
|
// Annotate the CommonJS export names for ESM import in node:
|
|
52
69
|
0 && (module.exports = {
|
|
53
|
-
|
|
70
|
+
FilePromptSchema,
|
|
71
|
+
InlinePromptSchema,
|
|
72
|
+
PromptsSchema
|
|
54
73
|
});
|