@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
|
@@ -1,376 +0,0 @@
|
|
|
1
|
-
import "../../chunk-C6A6W6XS.js";
|
|
2
|
-
import { expandPlaceholders } from "../utils.js";
|
|
3
|
-
import { assertValidPromptName } from "../name-validation.js";
|
|
4
|
-
import { logger } from "../../logger/index.js";
|
|
5
|
-
import { PromptError } from "../errors.js";
|
|
6
|
-
import { readFile, readdir, realpath } from "fs/promises";
|
|
7
|
-
import { join, extname, resolve, relative, sep } from "path";
|
|
8
|
-
import { existsSync } from "fs";
|
|
9
|
-
import { homedir } from "os";
|
|
10
|
-
import { findDextoProjectRoot, findDextoSourceRoot } from "../../utils/execution-context.js";
|
|
11
|
-
class FilePromptProvider {
|
|
12
|
-
// Multiple command directories (local project/repo and global user dir)
|
|
13
|
-
commandDirs;
|
|
14
|
-
resourceManager;
|
|
15
|
-
promptsCache = [];
|
|
16
|
-
cacheValid = false;
|
|
17
|
-
promptResources = /* @__PURE__ */ new Map();
|
|
18
|
-
inlineContent = /* @__PURE__ */ new Map();
|
|
19
|
-
constructor(options) {
|
|
20
|
-
this.commandDirs = this.resolveDefaultCommandDirs();
|
|
21
|
-
this.resourceManager = options.resourceManager;
|
|
22
|
-
}
|
|
23
|
-
getSource() {
|
|
24
|
-
return "file";
|
|
25
|
-
}
|
|
26
|
-
invalidateCache() {
|
|
27
|
-
this.cacheValid = false;
|
|
28
|
-
this.promptsCache = [];
|
|
29
|
-
this.promptResources.clear();
|
|
30
|
-
this.inlineContent.clear();
|
|
31
|
-
logger.debug("FilePromptProvider cache invalidated");
|
|
32
|
-
}
|
|
33
|
-
async getPrompt(name, args) {
|
|
34
|
-
if (!this.cacheValid) {
|
|
35
|
-
await this.buildPromptsCache();
|
|
36
|
-
}
|
|
37
|
-
const prompt = this.promptsCache.find((p) => p.name === name);
|
|
38
|
-
if (!prompt) {
|
|
39
|
-
throw PromptError.notFound(name);
|
|
40
|
-
}
|
|
41
|
-
const resourceUri = this.promptResources.get(name);
|
|
42
|
-
let text = this.inlineContent.get(name) ?? "";
|
|
43
|
-
if (resourceUri) {
|
|
44
|
-
try {
|
|
45
|
-
const result = await this.resourceManager.read(resourceUri);
|
|
46
|
-
const first = result.contents[0];
|
|
47
|
-
if (first?.text && typeof first.text === "string") {
|
|
48
|
-
text = first.text;
|
|
49
|
-
} else if (first?.blob && typeof first.blob === "string") {
|
|
50
|
-
text = Buffer.from(first.blob, "base64").toString("utf-8");
|
|
51
|
-
} else {
|
|
52
|
-
logger.warn(`Prompt ${name} resource ${resourceUri} did not contain text`);
|
|
53
|
-
}
|
|
54
|
-
} catch (error) {
|
|
55
|
-
logger.warn(
|
|
56
|
-
`Failed to load prompt resource ${resourceUri}: ${error instanceof Error ? error.message : String(error)}`
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if (!text) {
|
|
61
|
-
throw PromptError.missingText();
|
|
62
|
-
}
|
|
63
|
-
const resolved = this.applyArguments(text, args);
|
|
64
|
-
return {
|
|
65
|
-
description: prompt.description,
|
|
66
|
-
messages: [
|
|
67
|
-
{
|
|
68
|
-
role: "user",
|
|
69
|
-
content: {
|
|
70
|
-
type: "text",
|
|
71
|
-
text: resolved
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
]
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
async listPrompts(_cursor) {
|
|
78
|
-
if (!this.cacheValid) {
|
|
79
|
-
await this.buildPromptsCache();
|
|
80
|
-
}
|
|
81
|
-
return {
|
|
82
|
-
prompts: this.promptsCache
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
async getPromptDefinition(name) {
|
|
86
|
-
if (!this.cacheValid) {
|
|
87
|
-
await this.buildPromptsCache();
|
|
88
|
-
}
|
|
89
|
-
const promptInfo = this.promptsCache.find((p) => p.name === name);
|
|
90
|
-
if (!promptInfo) {
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
return {
|
|
94
|
-
name: promptInfo.name,
|
|
95
|
-
...promptInfo.title && { title: promptInfo.title },
|
|
96
|
-
...promptInfo.description && { description: promptInfo.description },
|
|
97
|
-
...promptInfo.arguments && { arguments: promptInfo.arguments }
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
async buildPromptsCache() {
|
|
101
|
-
const cache = [];
|
|
102
|
-
const resourceMap = /* @__PURE__ */ new Map();
|
|
103
|
-
const inlineMap = /* @__PURE__ */ new Map();
|
|
104
|
-
const seenNames = /* @__PURE__ */ new Set();
|
|
105
|
-
const scannedDirs = [];
|
|
106
|
-
for (const dir of this.commandDirs) {
|
|
107
|
-
if (!existsSync(dir)) {
|
|
108
|
-
continue;
|
|
109
|
-
}
|
|
110
|
-
try {
|
|
111
|
-
scannedDirs.push(dir);
|
|
112
|
-
const files = await readdir(dir);
|
|
113
|
-
const markdownFiles = files.filter((file) => extname(file).toLowerCase() === ".md");
|
|
114
|
-
for (const file of markdownFiles) {
|
|
115
|
-
try {
|
|
116
|
-
try {
|
|
117
|
-
const candidate = join(dir, file);
|
|
118
|
-
const resolvedDir = await realpath(dir);
|
|
119
|
-
const resolvedFile = await realpath(candidate);
|
|
120
|
-
const rel = relative(resolvedDir, resolvedFile);
|
|
121
|
-
if (rel.startsWith(".." + sep) || rel === "..") {
|
|
122
|
-
logger.warn(
|
|
123
|
-
`Skipping file '${file}' in '${dir}': path traversal attempt detected (resolved outside directory)`
|
|
124
|
-
);
|
|
125
|
-
continue;
|
|
126
|
-
}
|
|
127
|
-
} catch (realpathError) {
|
|
128
|
-
logger.warn(
|
|
129
|
-
`Skipping file '${file}' in '${dir}': unable to resolve path (${realpathError instanceof Error ? realpathError.message : String(realpathError)})`
|
|
130
|
-
);
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
const parsed = await this.parsePromptFile(file, dir);
|
|
134
|
-
if (seenNames.has(parsed.info.name)) {
|
|
135
|
-
logger.debug(
|
|
136
|
-
`Skipping duplicate prompt name '${parsed.info.name}' from ${join(
|
|
137
|
-
dir,
|
|
138
|
-
file
|
|
139
|
-
)}`
|
|
140
|
-
);
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
const storage = await this.storePromptContent(parsed.content, file);
|
|
144
|
-
if (storage.resourceUri) {
|
|
145
|
-
resourceMap.set(parsed.info.name, storage.resourceUri);
|
|
146
|
-
}
|
|
147
|
-
if (storage.inlineContent) {
|
|
148
|
-
inlineMap.set(parsed.info.name, storage.inlineContent);
|
|
149
|
-
}
|
|
150
|
-
if (storage.resourceUri || storage.inlineContent) {
|
|
151
|
-
const metadata = {
|
|
152
|
-
...parsed.info.metadata ?? {},
|
|
153
|
-
...storage.resourceUri && { resourceUri: storage.resourceUri }
|
|
154
|
-
// Security: Don't expose absolute sourceDir path
|
|
155
|
-
// The relative filePath in parsed.info.metadata is sufficient
|
|
156
|
-
};
|
|
157
|
-
if (Object.keys(metadata).length > 0) {
|
|
158
|
-
parsed.info = { ...parsed.info, metadata };
|
|
159
|
-
} else {
|
|
160
|
-
parsed.info = { ...parsed.info };
|
|
161
|
-
delete parsed.info.metadata;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
cache.push(parsed.info);
|
|
165
|
-
seenNames.add(parsed.info.name);
|
|
166
|
-
} catch (error) {
|
|
167
|
-
logger.warn(
|
|
168
|
-
`Failed to process prompt file '${file}' in '${dir}': ${error instanceof Error ? error.message : String(error)}`
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
} catch (error) {
|
|
173
|
-
logger.debug(
|
|
174
|
-
`Commands directory '${dir}' not accessible: ${error instanceof Error ? error.message : String(error)}`
|
|
175
|
-
);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
logger.debug(
|
|
179
|
-
`\u{1F4DD} Cached ${cache.length} file prompts from directories: ${scannedDirs.join(", ")}`
|
|
180
|
-
);
|
|
181
|
-
this.promptsCache = cache;
|
|
182
|
-
this.promptResources = resourceMap;
|
|
183
|
-
this.inlineContent = inlineMap;
|
|
184
|
-
this.cacheValid = true;
|
|
185
|
-
}
|
|
186
|
-
async parsePromptFile(fileName, baseDir) {
|
|
187
|
-
const promptName = fileName.replace(/\.md$/, "");
|
|
188
|
-
const filePath = join(baseDir, fileName);
|
|
189
|
-
const content = await readFile(filePath, "utf-8");
|
|
190
|
-
const lines = content.trim().split("\n");
|
|
191
|
-
let description = `File prompt: ${promptName}`;
|
|
192
|
-
let title = promptName;
|
|
193
|
-
let category;
|
|
194
|
-
let id;
|
|
195
|
-
let nameOverride;
|
|
196
|
-
let argumentHint;
|
|
197
|
-
let contentBody;
|
|
198
|
-
if (lines[0]?.trim() === "---") {
|
|
199
|
-
let inFrontmatter = false;
|
|
200
|
-
let frontmatterEnd = 0;
|
|
201
|
-
for (let i = 0; i < lines.length; i++) {
|
|
202
|
-
if (lines[i]?.trim() === "---") {
|
|
203
|
-
if (!inFrontmatter) {
|
|
204
|
-
inFrontmatter = true;
|
|
205
|
-
} else {
|
|
206
|
-
frontmatterEnd = i;
|
|
207
|
-
break;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
if (frontmatterEnd > 0) {
|
|
212
|
-
const frontmatterLines = lines.slice(1, frontmatterEnd);
|
|
213
|
-
contentBody = lines.slice(frontmatterEnd + 1).join("\n");
|
|
214
|
-
for (const line of frontmatterLines) {
|
|
215
|
-
if (line.includes("description:")) {
|
|
216
|
-
const descMatch = line.match(/description:\s*(?:['"](.+)['"]|(.+))/);
|
|
217
|
-
if (descMatch) {
|
|
218
|
-
description = (descMatch[1] || descMatch[2] || "").trim();
|
|
219
|
-
}
|
|
220
|
-
} else if (line.includes("id:")) {
|
|
221
|
-
const idMatch = line.match(/id:\s*(?:['"](.+)['"]|(.+))/);
|
|
222
|
-
if (idMatch) {
|
|
223
|
-
id = (idMatch[1] || idMatch[2] || "").trim();
|
|
224
|
-
}
|
|
225
|
-
} else if (line.includes("name:")) {
|
|
226
|
-
const nameMatch = line.match(/name:\s*(?:['"](.+)['"]|(.+))/);
|
|
227
|
-
if (nameMatch) {
|
|
228
|
-
nameOverride = (nameMatch[1] || nameMatch[2] || "").trim();
|
|
229
|
-
}
|
|
230
|
-
} else if (line.includes("category:")) {
|
|
231
|
-
const categoryMatch = line.match(/category:\s*(?:['"](.+)['"]|(.+))/);
|
|
232
|
-
if (categoryMatch) {
|
|
233
|
-
category = (categoryMatch[1] || categoryMatch[2] || "").trim();
|
|
234
|
-
}
|
|
235
|
-
} else if (line.includes("argument-hint:")) {
|
|
236
|
-
const hintMatch = line.match(/argument-hint:\s*(?:['"](.+)['"]|(.+))/);
|
|
237
|
-
if (hintMatch) {
|
|
238
|
-
argumentHint = (hintMatch[1] || hintMatch[2] || "").trim();
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
if (!contentBody) {
|
|
245
|
-
contentBody = content;
|
|
246
|
-
}
|
|
247
|
-
const bodyLines = contentBody.trim().split("\n");
|
|
248
|
-
for (const line of bodyLines) {
|
|
249
|
-
if (line.trim().startsWith("#")) {
|
|
250
|
-
title = line.trim().replace(/^#+\s*/, "");
|
|
251
|
-
break;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
const finalName = (nameOverride ?? promptName).trim();
|
|
255
|
-
assertValidPromptName(finalName, {
|
|
256
|
-
hint: "Use kebab-case in the 'name:' field or file name."
|
|
257
|
-
});
|
|
258
|
-
const parsedArguments = argumentHint ? this.parseArgumentHint(argumentHint) : void 0;
|
|
259
|
-
const relativePath = relative(baseDir, filePath);
|
|
260
|
-
const promptInfo = {
|
|
261
|
-
name: finalName,
|
|
262
|
-
title,
|
|
263
|
-
description,
|
|
264
|
-
source: "file",
|
|
265
|
-
...parsedArguments && { arguments: parsedArguments },
|
|
266
|
-
metadata: {
|
|
267
|
-
originalName: promptName,
|
|
268
|
-
fileName,
|
|
269
|
-
// Only include relative path within the commands directory (e.g., "my-command.md")
|
|
270
|
-
// not the full path which could expose ~/.dexto or project structure
|
|
271
|
-
...relativePath && { filePath: relativePath },
|
|
272
|
-
...id && { id },
|
|
273
|
-
...category && { category }
|
|
274
|
-
}
|
|
275
|
-
};
|
|
276
|
-
return { info: promptInfo, content: contentBody };
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Parse argument-hint string into structured argument definitions
|
|
280
|
-
* Format: "[style] [length?]" → [{name: "style", required: true}, {name: "length", required: false}]
|
|
281
|
-
*/
|
|
282
|
-
parseArgumentHint(hint) {
|
|
283
|
-
const args = [];
|
|
284
|
-
const argPattern = /\[([^\]]+)\]/g;
|
|
285
|
-
let match;
|
|
286
|
-
while ((match = argPattern.exec(hint)) !== null) {
|
|
287
|
-
const argText = match[1];
|
|
288
|
-
if (!argText) continue;
|
|
289
|
-
const isOptional = argText.endsWith("?");
|
|
290
|
-
const name = isOptional ? argText.slice(0, -1).trim() : argText.trim();
|
|
291
|
-
if (name) {
|
|
292
|
-
args.push({
|
|
293
|
-
name,
|
|
294
|
-
required: !isOptional
|
|
295
|
-
});
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
return args;
|
|
299
|
-
}
|
|
300
|
-
async storePromptContent(content, fileName) {
|
|
301
|
-
const blobService = this.resourceManager.getBlobStore();
|
|
302
|
-
if (!blobService) {
|
|
303
|
-
logger.warn("BlobService not available; storing prompt content in memory");
|
|
304
|
-
return { inlineContent: content };
|
|
305
|
-
}
|
|
306
|
-
const blobInput = Buffer.from(content, "utf-8");
|
|
307
|
-
const blob = await blobService.store(blobInput, {
|
|
308
|
-
mimeType: "text/markdown",
|
|
309
|
-
originalName: fileName,
|
|
310
|
-
source: "system"
|
|
311
|
-
});
|
|
312
|
-
return { resourceUri: blob.uri };
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
* Apply arguments to a file prompt's content.
|
|
316
|
-
*
|
|
317
|
-
* Behavior mirrors Claude Code-style file prompts:
|
|
318
|
-
* - Positional placeholders ($1..$9 and $ARGUMENTS) are expanded first.
|
|
319
|
-
* - If and only if the template contains explicit placeholders ($1..$9 or $ARGUMENTS),
|
|
320
|
-
* then we consider arguments "deconstructed in-template" and DO NOT append them again.
|
|
321
|
-
* - If the template contains no such placeholders, we append either:
|
|
322
|
-
* - `Context: <_context>` above the content when `_context` is provided, or
|
|
323
|
-
* - `Arguments: key: value, ...` below the content for plain named args.
|
|
324
|
-
*
|
|
325
|
-
* Notes:
|
|
326
|
-
* - The `$$` sequence is an escape for a literal dollar sign. It MUST NOT be
|
|
327
|
-
* treated as a placeholder indicator and should not suppress argument appending.
|
|
328
|
-
*/
|
|
329
|
-
applyArguments(content, args) {
|
|
330
|
-
const detectionTarget = content.replaceAll("$$", "");
|
|
331
|
-
const usesPositionalPlaceholders = /\$[1-9](?!\d)/.test(detectionTarget) || detectionTarget.includes("$ARGUMENTS");
|
|
332
|
-
const expanded = expandPlaceholders(content, args).trim();
|
|
333
|
-
if (!args || typeof args !== "object" || Object.keys(args).length === 0) {
|
|
334
|
-
return expanded;
|
|
335
|
-
}
|
|
336
|
-
if (!usesPositionalPlaceholders) {
|
|
337
|
-
if (args._context) {
|
|
338
|
-
const contextString = String(args._context);
|
|
339
|
-
return `${expanded}
|
|
340
|
-
|
|
341
|
-
Context: ${contextString}`;
|
|
342
|
-
}
|
|
343
|
-
const argEntries = Object.entries(args).filter(([key]) => !key.startsWith("_"));
|
|
344
|
-
if (argEntries.length > 0) {
|
|
345
|
-
const formattedArgs = argEntries.map(([key, value]) => `${key}: ${value}`).join(", ");
|
|
346
|
-
return `${expanded}
|
|
347
|
-
|
|
348
|
-
Arguments: ${formattedArgs}`;
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
return expanded;
|
|
352
|
-
}
|
|
353
|
-
// Determine default command/prompt directories based on execution context
|
|
354
|
-
resolveDefaultCommandDirs() {
|
|
355
|
-
const dirs = [];
|
|
356
|
-
const sourceRoot = findDextoSourceRoot();
|
|
357
|
-
const projectRoot = findDextoProjectRoot();
|
|
358
|
-
const localRoot = sourceRoot ?? projectRoot ?? null;
|
|
359
|
-
if (localRoot) {
|
|
360
|
-
const commandsDir = resolve(localRoot, "commands");
|
|
361
|
-
if (existsSync(commandsDir)) dirs.push(commandsDir);
|
|
362
|
-
}
|
|
363
|
-
const globalCommands = resolve(homedir(), ".dexto", "commands");
|
|
364
|
-
if (existsSync(globalCommands)) dirs.push(globalCommands);
|
|
365
|
-
if (dirs.length === 0) {
|
|
366
|
-
if (localRoot) {
|
|
367
|
-
dirs.push(resolve(localRoot, "commands"));
|
|
368
|
-
}
|
|
369
|
-
dirs.push(globalCommands);
|
|
370
|
-
}
|
|
371
|
-
return dirs;
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
export {
|
|
375
|
-
FilePromptProvider
|
|
376
|
-
};
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var starter_prompt_provider_exports = {};
|
|
20
|
-
__export(starter_prompt_provider_exports, {
|
|
21
|
-
StarterPromptProvider: () => StarterPromptProvider
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(starter_prompt_provider_exports);
|
|
24
|
-
var import_logger = require("../../logger/index.js");
|
|
25
|
-
var import_errors = require("../errors.js");
|
|
26
|
-
class StarterPromptProvider {
|
|
27
|
-
// Sourced from validated AgentConfig schema's starterPrompts
|
|
28
|
-
starterPrompts = [];
|
|
29
|
-
promptsCache = [];
|
|
30
|
-
cacheValid = false;
|
|
31
|
-
constructor(agentConfig) {
|
|
32
|
-
this.starterPrompts = agentConfig.starterPrompts;
|
|
33
|
-
this.buildPromptsCache();
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Get the source identifier for this provider
|
|
37
|
-
*/
|
|
38
|
-
getSource() {
|
|
39
|
-
return "starter";
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Invalidate the prompts cache
|
|
43
|
-
*/
|
|
44
|
-
invalidateCache() {
|
|
45
|
-
this.cacheValid = false;
|
|
46
|
-
this.promptsCache = [];
|
|
47
|
-
import_logger.logger.debug("StarterPromptProvider cache invalidated");
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Update starter prompts configuration
|
|
51
|
-
*/
|
|
52
|
-
updateConfig(agentConfig) {
|
|
53
|
-
this.starterPrompts = agentConfig.starterPrompts;
|
|
54
|
-
this.invalidateCache();
|
|
55
|
-
this.buildPromptsCache();
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Build the prompts cache from starter prompts configuration
|
|
59
|
-
*/
|
|
60
|
-
buildPromptsCache() {
|
|
61
|
-
const allPrompts = [];
|
|
62
|
-
this.starterPrompts.forEach((starterPrompt) => {
|
|
63
|
-
const promptName = `starter:${starterPrompt.id}`;
|
|
64
|
-
const promptInfo = {
|
|
65
|
-
name: promptName,
|
|
66
|
-
title: starterPrompt.title,
|
|
67
|
-
description: starterPrompt.description,
|
|
68
|
-
source: "starter",
|
|
69
|
-
metadata: {
|
|
70
|
-
prompt: starterPrompt.prompt,
|
|
71
|
-
category: starterPrompt.category,
|
|
72
|
-
priority: starterPrompt.priority,
|
|
73
|
-
originalId: starterPrompt.id
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
allPrompts.push(promptInfo);
|
|
77
|
-
});
|
|
78
|
-
const getPriority = (p) => {
|
|
79
|
-
const val = p.metadata?.priority;
|
|
80
|
-
return typeof val === "number" ? val : 0;
|
|
81
|
-
};
|
|
82
|
-
allPrompts.sort((a, b) => getPriority(b) - getPriority(a));
|
|
83
|
-
this.promptsCache = allPrompts;
|
|
84
|
-
this.cacheValid = true;
|
|
85
|
-
import_logger.logger.debug(`\u{1F4DD} Cached ${allPrompts.length} starter prompts`);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* List all available starter prompts
|
|
89
|
-
*/
|
|
90
|
-
async listPrompts(_cursor) {
|
|
91
|
-
if (!this.cacheValid) {
|
|
92
|
-
this.buildPromptsCache();
|
|
93
|
-
}
|
|
94
|
-
return {
|
|
95
|
-
prompts: this.promptsCache
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Get a specific starter prompt by name
|
|
100
|
-
*/
|
|
101
|
-
async getPrompt(name, args) {
|
|
102
|
-
if (!this.cacheValid) {
|
|
103
|
-
this.buildPromptsCache();
|
|
104
|
-
}
|
|
105
|
-
const promptInfo = this.promptsCache.find((p) => p.name === name);
|
|
106
|
-
if (!promptInfo) {
|
|
107
|
-
throw import_errors.PromptError.notFound(name);
|
|
108
|
-
}
|
|
109
|
-
const rawPrompt = promptInfo.metadata?.prompt;
|
|
110
|
-
if (typeof rawPrompt !== "string" || rawPrompt.trim().length === 0) {
|
|
111
|
-
throw import_errors.PromptError.missingText();
|
|
112
|
-
}
|
|
113
|
-
const promptText = rawPrompt;
|
|
114
|
-
import_logger.logger.debug(`\u{1F4DD} Reading starter prompt: ${name}`);
|
|
115
|
-
let content = promptText;
|
|
116
|
-
if (args && typeof args === "object") {
|
|
117
|
-
const hasPositionalPlaceholders = /\$[1-9]/.test(content) || content.includes("$ARGUMENTS");
|
|
118
|
-
if (!hasPositionalPlaceholders) {
|
|
119
|
-
if (args._context) {
|
|
120
|
-
const contextString = String(args._context);
|
|
121
|
-
content = `${content}
|
|
122
|
-
|
|
123
|
-
Context: ${contextString}`;
|
|
124
|
-
} else {
|
|
125
|
-
const argEntries = Object.entries(args).filter(([k]) => !k.startsWith("_"));
|
|
126
|
-
if (argEntries.length > 0) {
|
|
127
|
-
const argContext = argEntries.map(([k, v]) => `${k}: ${v}`).join(", ");
|
|
128
|
-
content = `${content}
|
|
129
|
-
|
|
130
|
-
Arguments: ${argContext}`;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return {
|
|
136
|
-
description: promptInfo.description,
|
|
137
|
-
messages: [
|
|
138
|
-
{
|
|
139
|
-
role: "user",
|
|
140
|
-
content: {
|
|
141
|
-
type: "text",
|
|
142
|
-
text: content
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
]
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Get prompt definition (metadata only)
|
|
150
|
-
*/
|
|
151
|
-
async getPromptDefinition(name) {
|
|
152
|
-
if (!this.cacheValid) {
|
|
153
|
-
this.buildPromptsCache();
|
|
154
|
-
}
|
|
155
|
-
const promptInfo = this.promptsCache.find((p) => p.name === name);
|
|
156
|
-
if (!promptInfo) {
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
return {
|
|
160
|
-
name: promptInfo.name,
|
|
161
|
-
...promptInfo.title && { title: promptInfo.title },
|
|
162
|
-
...promptInfo.description && { description: promptInfo.description },
|
|
163
|
-
...promptInfo.arguments && { arguments: promptInfo.arguments }
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
168
|
-
0 && (module.exports = {
|
|
169
|
-
StarterPromptProvider
|
|
170
|
-
});
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { PromptProvider, PromptDefinition, PromptListResult } from '../types.js';
|
|
2
|
-
import type { GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
-
import type { ValidatedAgentConfig } from '../../agent/schemas.js';
|
|
4
|
-
/**
|
|
5
|
-
* Starter Prompt Provider - Provides prompts from agent configuration starter prompts
|
|
6
|
-
*
|
|
7
|
-
* This provider exposes starter prompts defined in the agent configuration as regular prompts.
|
|
8
|
-
* Starter prompts are intended for quick access to common user workflows and are typically
|
|
9
|
-
* displayed prominently in the UI.
|
|
10
|
-
*/
|
|
11
|
-
export declare class StarterPromptProvider implements PromptProvider {
|
|
12
|
-
private starterPrompts;
|
|
13
|
-
private promptsCache;
|
|
14
|
-
private cacheValid;
|
|
15
|
-
constructor(agentConfig: ValidatedAgentConfig);
|
|
16
|
-
/**
|
|
17
|
-
* Get the source identifier for this provider
|
|
18
|
-
*/
|
|
19
|
-
getSource(): string;
|
|
20
|
-
/**
|
|
21
|
-
* Invalidate the prompts cache
|
|
22
|
-
*/
|
|
23
|
-
invalidateCache(): void;
|
|
24
|
-
/**
|
|
25
|
-
* Update starter prompts configuration
|
|
26
|
-
*/
|
|
27
|
-
updateConfig(agentConfig: ValidatedAgentConfig): void;
|
|
28
|
-
/**
|
|
29
|
-
* Build the prompts cache from starter prompts configuration
|
|
30
|
-
*/
|
|
31
|
-
private buildPromptsCache;
|
|
32
|
-
/**
|
|
33
|
-
* List all available starter prompts
|
|
34
|
-
*/
|
|
35
|
-
listPrompts(_cursor?: string): Promise<PromptListResult>;
|
|
36
|
-
/**
|
|
37
|
-
* Get a specific starter prompt by name
|
|
38
|
-
*/
|
|
39
|
-
getPrompt(name: string, args?: Record<string, unknown>): Promise<GetPromptResult>;
|
|
40
|
-
/**
|
|
41
|
-
* Get prompt definition (metadata only)
|
|
42
|
-
*/
|
|
43
|
-
getPromptDefinition(name: string): Promise<PromptDefinition | null>;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=starter-prompt-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"starter-prompt-provider.d.ts","sourceRoot":"","sources":["../../../src/prompts/providers/starter-prompt-provider.ts"],"names":[],"mappings":"AAAA,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,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAMnE;;;;;;GAMG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAExD,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAkB;gBAExB,WAAW,EAAE,oBAAoB;IAM7C;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,eAAe,IAAI,IAAI;IAMvB;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,oBAAoB,GAAG,IAAI;IAMrD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;OAEG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAU9D;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAmDvF;;OAEG;IACG,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAiB5E"}
|