@vybestack/llxprt-code-core 0.1.15 → 0.1.16
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 +37 -2
- package/dist/src/code_assist/converter.d.ts +2 -1
- package/dist/src/code_assist/converter.js +2 -1
- package/dist/src/code_assist/converter.js.map +1 -1
- package/dist/src/code_assist/converter.test.js +13 -10
- package/dist/src/code_assist/converter.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +2 -2
- package/dist/src/code_assist/server.js +4 -4
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +9 -9
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/setup.js +1 -1
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/code_assist/setup.test.js +2 -2
- package/dist/src/code_assist/setup.test.js.map +1 -1
- package/dist/src/config/config.d.ts +22 -4
- package/dist/src/config/config.js +58 -10
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +28 -0
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/flashFallback.test.js +11 -1
- package/dist/src/config/flashFallback.test.js.map +1 -1
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/profileManager.d.ts +42 -0
- package/dist/src/config/profileManager.js +114 -0
- package/dist/src/config/profileManager.js.map +1 -0
- package/dist/src/core/client.d.ts +11 -1
- package/dist/src/core/client.js +86 -30
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.d.ts +1 -1
- package/dist/src/core/client.test.js +95 -28
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +2 -2
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/coreToolScheduler.js +39 -15
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +14 -17
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +34 -2
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +2 -2
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.js +11 -3
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +5 -2
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts-async.test.d.ts +6 -0
- package/dist/src/core/prompts-async.test.js +115 -0
- package/dist/src/core/prompts-async.test.js.map +1 -0
- package/dist/src/core/prompts.d.ts +8 -1
- package/dist/src/core/prompts.js +97 -377
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +46 -192
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/tokenLimits.d.ts +1 -1
- package/dist/src/core/tokenLimits.js +5 -1
- package/dist/src/core/tokenLimits.js.map +1 -1
- package/dist/src/core/turn.d.ts +3 -0
- package/dist/src/core/turn.js +3 -0
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +10 -0
- package/dist/src/ide/detect-ide.js +24 -0
- package/dist/src/ide/detect-ide.js.map +1 -0
- package/dist/src/ide/ide-client.d.ts +11 -1
- package/dist/src/ide/ide-client.js +37 -1
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.d.ts +15 -0
- package/dist/src/ide/ide-installer.js +111 -0
- package/dist/src/ide/ide-installer.js.map +1 -0
- package/dist/src/ide/ide-installer.test.d.ts +6 -0
- package/dist/src/ide/ide-installer.test.js +78 -0
- package/dist/src/ide/ide-installer.test.js.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.js +11 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +3 -3
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +9 -8
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/parsers/TextToolCallParser.d.ts +1 -0
- package/dist/src/parsers/TextToolCallParser.js +45 -3
- package/dist/src/parsers/TextToolCallParser.js.map +1 -1
- package/dist/src/parsers/TextToolCallParser.multibyte.test.d.ts +1 -0
- package/dist/src/parsers/TextToolCallParser.multibyte.test.js +42 -0
- package/dist/src/parsers/TextToolCallParser.multibyte.test.js.map +1 -0
- package/dist/src/prompt-config/TemplateEngine.d.ts +35 -0
- package/dist/src/prompt-config/TemplateEngine.js +149 -0
- package/dist/src/prompt-config/TemplateEngine.js.map +1 -0
- package/dist/src/prompt-config/TemplateEngine.test.d.ts +1 -0
- package/dist/src/prompt-config/TemplateEngine.test.js +494 -0
- package/dist/src/prompt-config/TemplateEngine.test.js.map +1 -0
- package/dist/src/prompt-config/defaults/compression.md +58 -0
- package/dist/src/prompt-config/defaults/core-defaults.d.ts +5 -0
- package/dist/src/prompt-config/defaults/core-defaults.js +332 -0
- package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -0
- package/dist/src/prompt-config/defaults/core.md +267 -0
- package/dist/src/prompt-config/defaults/env/git-repository.md +15 -0
- package/dist/src/prompt-config/defaults/env/ide-mode.md +3 -0
- package/dist/src/prompt-config/defaults/env/macos-seatbelt.md +3 -0
- package/dist/src/prompt-config/defaults/env/outside-of-sandbox.md +3 -0
- package/dist/src/prompt-config/defaults/env/sandbox.md +3 -0
- package/dist/src/prompt-config/defaults/index.d.ts +14 -0
- package/dist/src/prompt-config/defaults/index.js +21 -0
- package/dist/src/prompt-config/defaults/index.js.map +1 -0
- package/dist/src/prompt-config/defaults/provider-defaults.d.ts +5 -0
- package/dist/src/prompt-config/defaults/provider-defaults.js +26 -0
- package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -0
- package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +10 -0
- package/dist/src/prompt-config/defaults/service-defaults.d.ts +5 -0
- package/dist/src/prompt-config/defaults/service-defaults.js +52 -0
- package/dist/src/prompt-config/defaults/service-defaults.js.map +1 -0
- package/dist/src/prompt-config/defaults/tool-defaults.d.ts +5 -0
- package/dist/src/prompt-config/defaults/tool-defaults.js +81 -0
- package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -0
- package/dist/src/prompt-config/defaults/tools/edit.md +2 -0
- package/dist/src/prompt-config/defaults/tools/glob.md +2 -0
- package/dist/src/prompt-config/defaults/tools/grep.md +2 -0
- package/dist/src/prompt-config/defaults/tools/ls.md +1 -0
- package/dist/src/prompt-config/defaults/tools/memory.md +1 -0
- package/dist/src/prompt-config/defaults/tools/read-file.md +4 -0
- package/dist/src/prompt-config/defaults/tools/read-many-files.md +2 -0
- package/dist/src/prompt-config/defaults/tools/shell.md +5 -0
- package/dist/src/prompt-config/defaults/tools/todo-read.md +3 -0
- package/dist/src/prompt-config/defaults/tools/todo-write.md +50 -0
- package/dist/src/prompt-config/defaults/tools/web-fetch.md +3 -0
- package/dist/src/prompt-config/defaults/tools/web-search.md +3 -0
- package/dist/src/prompt-config/defaults/tools/write-file.md +4 -0
- package/dist/src/prompt-config/index.d.ts +16 -0
- package/dist/src/prompt-config/index.js +11 -0
- package/dist/src/prompt-config/index.js.map +1 -0
- package/dist/src/prompt-config/prompt-cache.d.ts +72 -0
- package/dist/src/prompt-config/prompt-cache.js +271 -0
- package/dist/src/prompt-config/prompt-cache.js.map +1 -0
- package/dist/src/prompt-config/prompt-cache.test.d.ts +6 -0
- package/dist/src/prompt-config/prompt-cache.test.js +437 -0
- package/dist/src/prompt-config/prompt-cache.test.js.map +1 -0
- package/dist/src/prompt-config/prompt-installer.d.ts +118 -0
- package/dist/src/prompt-config/prompt-installer.js +723 -0
- package/dist/src/prompt-config/prompt-installer.js.map +1 -0
- package/dist/src/prompt-config/prompt-installer.test.d.ts +7 -0
- package/dist/src/prompt-config/prompt-installer.test.js +503 -0
- package/dist/src/prompt-config/prompt-installer.test.js.map +1 -0
- package/dist/src/prompt-config/prompt-loader.d.ts +49 -0
- package/dist/src/prompt-config/prompt-loader.js +331 -0
- package/dist/src/prompt-config/prompt-loader.js.map +1 -0
- package/dist/src/prompt-config/prompt-loader.test.d.ts +5 -0
- package/dist/src/prompt-config/prompt-loader.test.js +413 -0
- package/dist/src/prompt-config/prompt-loader.test.js.map +1 -0
- package/dist/src/prompt-config/prompt-resolver.d.ts +74 -0
- package/dist/src/prompt-config/prompt-resolver.js +600 -0
- package/dist/src/prompt-config/prompt-resolver.js.map +1 -0
- package/dist/src/prompt-config/prompt-resolver.test.d.ts +1 -0
- package/dist/src/prompt-config/prompt-resolver.test.js +529 -0
- package/dist/src/prompt-config/prompt-resolver.test.js.map +1 -0
- package/dist/src/prompt-config/prompt-service.d.ts +108 -0
- package/dist/src/prompt-config/prompt-service.js +435 -0
- package/dist/src/prompt-config/prompt-service.js.map +1 -0
- package/dist/src/prompt-config/prompt-service.test.d.ts +1 -0
- package/dist/src/prompt-config/prompt-service.test.js +811 -0
- package/dist/src/prompt-config/prompt-service.test.js.map +1 -0
- package/dist/src/prompt-config/types.d.ts +30 -0
- package/dist/src/prompt-config/types.js +10 -0
- package/dist/src/prompt-config/types.js.map +1 -0
- package/dist/src/providers/IProvider.d.ts +10 -0
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +14 -1
- package/dist/src/providers/anthropic/AnthropicProvider.js +28 -2
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.d.ts +1 -0
- package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js +48 -0
- package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js.map +1 -0
- package/dist/src/providers/anthropic/AnthropicProvider.test.js +2 -1
- package/dist/src/providers/anthropic/AnthropicProvider.test.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +11 -2
- package/dist/src/providers/gemini/GeminiProvider.integration.test.js +1 -1
- package/dist/src/providers/gemini/GeminiProvider.js +34 -9
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.d.ts +11 -0
- package/dist/src/providers/openai/OpenAIProvider.js +100 -31
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.responses.test.js +27 -3
- package/dist/src/providers/openai/OpenAIProvider.responses.test.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js +2 -1
- package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.test.js +307 -7
- package/dist/src/providers/openai/OpenAIProvider.test.js.map +1 -1
- package/dist/src/providers/openai/buildResponsesRequest.js +19 -2
- package/dist/src/providers/openai/buildResponsesRequest.js.map +1 -1
- package/dist/src/providers/test-utils/providerTestConfig.d.ts +21 -0
- package/dist/src/providers/test-utils/providerTestConfig.js +23 -0
- package/dist/src/providers/test-utils/providerTestConfig.js.map +1 -0
- package/dist/src/providers/types/IProviderConfig.d.ts +6 -0
- package/dist/src/services/loopDetectionService.d.ts +9 -0
- package/dist/src/services/loopDetectionService.js +44 -12
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +1 -37
- package/dist/src/services/shellExecutionService.js +24 -55
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/{providers/IProviderConfig.js → services/shellExecutionService.multibyte.test.d.ts} +0 -1
- package/dist/src/services/shellExecutionService.multibyte.test.js +72 -0
- package/dist/src/services/shellExecutionService.multibyte.test.js.map +1 -0
- package/dist/src/services/shellExecutionService.test.js +11 -5
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.windows.multibyte.test.d.ts +6 -0
- package/dist/src/services/shellExecutionService.windows.multibyte.test.js +98 -0
- package/dist/src/services/shellExecutionService.windows.multibyte.test.js.map +1 -0
- package/dist/src/services/shellExecutionService.windows.test.d.ts +6 -0
- package/dist/src/services/shellExecutionService.windows.test.js +79 -0
- package/dist/src/services/shellExecutionService.windows.test.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +3 -2
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +22 -3
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +4 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +12 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/constants.d.ts +1 -1
- package/dist/src/telemetry/constants.js +1 -1
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/file-exporters.d.ts +2 -2
- package/dist/src/telemetry/file-exporters.js +47 -20
- package/dist/src/telemetry/file-exporters.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +2 -2
- package/dist/src/telemetry/loggers.js +13 -6
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.circular.js +2 -0
- package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +8 -3
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/sdk.d.ts +1 -1
- package/dist/src/telemetry/sdk.js +71 -73
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/telemetry.test.js +7 -5
- package/dist/src/telemetry/telemetry.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +12 -4
- package/dist/src/telemetry/types.js +18 -4
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +3 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/test-utils/mockWorkspaceContext.d.ts +13 -0
- package/dist/src/test-utils/mockWorkspaceContext.js +24 -0
- package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -0
- package/dist/src/tools/edit.js +27 -3
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +104 -1
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.js +53 -17
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +25 -2
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.d.ts +1 -1
- package/dist/src/tools/grep.js +81 -29
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +72 -5
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.js +4 -3
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.d.ts +6 -0
- package/dist/src/tools/ls.test.js +356 -0
- package/dist/src/tools/ls.test.js.map +1 -0
- package/dist/src/tools/mcp-client.js +8 -3
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +34 -0
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +17 -2
- package/dist/src/tools/memoryTool.js +130 -13
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/memoryTool.test.js +88 -3
- package/dist/src/tools/memoryTool.test.js.map +1 -1
- package/dist/src/tools/read-file.js +8 -6
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +30 -2
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.js +22 -12
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +35 -2
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/shell.js +16 -0
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.multibyte.test.d.ts +6 -0
- package/dist/src/tools/shell.multibyte.test.js +74 -0
- package/dist/src/tools/shell.multibyte.test.js.map +1 -0
- package/dist/src/tools/shell.test.js +33 -1
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-error.d.ts +22 -0
- package/dist/src/tools/tool-error.js +27 -0
- package/dist/src/tools/tool-error.js.map +1 -0
- package/dist/src/tools/tool-registry.test.js +8 -0
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +8 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/write-file.js +5 -3
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +36 -2
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/types/modelParams.d.ts +62 -0
- package/dist/src/types/modelParams.js +7 -0
- package/dist/src/types/modelParams.js.map +1 -0
- package/dist/src/utils/bfsFileSearch.test.js +4 -2
- package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
- package/dist/src/utils/editCorrector.js +2 -2
- package/dist/src/utils/editCorrector.js.map +1 -1
- package/dist/src/utils/editor.d.ts +1 -1
- package/dist/src/utils/editor.js +9 -0
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +21 -1
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/fileUtils.js +12 -1
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +29 -1
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/flashFallback.integration.test.js +8 -0
- package/dist/src/utils/flashFallback.integration.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.d.ts +1 -1
- package/dist/src/utils/memoryDiscovery.js +61 -73
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +4 -3
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.d.ts +19 -12
- package/dist/src/utils/memoryImportProcessor.js +241 -82
- package/dist/src/utils/memoryImportProcessor.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.test.js +595 -50
- package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.js +10 -25
- package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.test.js +6 -2
- package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
- package/dist/src/utils/sanitization.d.ts +20 -0
- package/dist/src/utils/sanitization.js +66 -0
- package/dist/src/utils/sanitization.js.map +1 -0
- package/dist/src/utils/sanitization.test.d.ts +6 -0
- package/dist/src/utils/sanitization.test.js +81 -0
- package/dist/src/utils/sanitization.test.js.map +1 -0
- package/dist/src/utils/secure-browser-launcher.d.ts +23 -0
- package/dist/src/utils/secure-browser-launcher.js +164 -0
- package/dist/src/utils/secure-browser-launcher.js.map +1 -0
- package/dist/src/utils/secure-browser-launcher.test.d.ts +6 -0
- package/dist/src/utils/secure-browser-launcher.test.js +149 -0
- package/dist/src/utils/secure-browser-launcher.test.js.map +1 -0
- package/dist/src/utils/summarizer.js +2 -2
- package/dist/src/utils/summarizer.js.map +1 -1
- package/dist/src/utils/unicodeUtils.d.ts +44 -0
- package/dist/src/utils/unicodeUtils.js +93 -0
- package/dist/src/utils/unicodeUtils.js.map +1 -0
- package/dist/src/utils/unicodeUtils.test.d.ts +6 -0
- package/dist/src/utils/unicodeUtils.test.js +120 -0
- package/dist/src/utils/unicodeUtils.test.js.map +1 -0
- package/dist/src/utils/workspaceContext.d.ts +47 -0
- package/dist/src/utils/workspaceContext.js +106 -0
- package/dist/src/utils/workspaceContext.js.map +1 -0
- package/dist/src/utils/workspaceContext.test.d.ts +6 -0
- package/dist/src/utils/workspaceContext.test.js +209 -0
- package/dist/src/utils/workspaceContext.test.js.map +1 -0
- package/package.json +2 -1
- package/dist/src/providers/IProviderConfig.d.ts +0 -31
- package/dist/src/providers/IProviderConfig.js.map +0 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { type CacheStats } from './prompt-cache.js';
|
|
2
|
+
import type { PromptContext } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for PromptService
|
|
5
|
+
*/
|
|
6
|
+
export interface PromptServiceConfig {
|
|
7
|
+
/** Base directory for prompts (defaults to ~/.llxprt/prompts) */
|
|
8
|
+
baseDir?: string;
|
|
9
|
+
/** Maximum cache size in MB (defaults to 100) */
|
|
10
|
+
maxCacheSizeMB?: number;
|
|
11
|
+
/** Enable compression for loaded files (defaults to true) */
|
|
12
|
+
compressionEnabled?: boolean;
|
|
13
|
+
/** Enable debug mode for verbose logging */
|
|
14
|
+
debugMode?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Result of configuration validation
|
|
18
|
+
*/
|
|
19
|
+
export interface ValidationResult {
|
|
20
|
+
isValid: boolean;
|
|
21
|
+
errors: string[];
|
|
22
|
+
warnings: string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Main API that coordinates all prompt components
|
|
26
|
+
*/
|
|
27
|
+
export declare class PromptService {
|
|
28
|
+
private baseDir;
|
|
29
|
+
private cache;
|
|
30
|
+
private resolver;
|
|
31
|
+
private loader;
|
|
32
|
+
private templateEngine;
|
|
33
|
+
private installer;
|
|
34
|
+
private defaultContent;
|
|
35
|
+
private initialized;
|
|
36
|
+
private config;
|
|
37
|
+
private preloadedFiles;
|
|
38
|
+
private detectedEnvironment;
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new PromptService instance
|
|
41
|
+
* @param config Optional configuration settings
|
|
42
|
+
*/
|
|
43
|
+
constructor(config?: PromptServiceConfig);
|
|
44
|
+
/**
|
|
45
|
+
* Initialize the service, installing defaults and preloading files
|
|
46
|
+
* @throws Error if initialization fails
|
|
47
|
+
*/
|
|
48
|
+
initialize(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Get assembled prompt for the given context
|
|
51
|
+
* @param context Runtime context with provider, model, tools, and environment
|
|
52
|
+
* @param userMemory Optional user-specific content to include
|
|
53
|
+
* @returns Assembled prompt string
|
|
54
|
+
* @throws Error if context is invalid or core prompt is missing
|
|
55
|
+
*/
|
|
56
|
+
getPrompt(context: PromptContext, userMemory?: string | null): Promise<string>;
|
|
57
|
+
/**
|
|
58
|
+
* Load a specific prompt file by relative path
|
|
59
|
+
* @param relativePath Path relative to the prompts directory (e.g., 'services/loop-detection.md')
|
|
60
|
+
* @returns The prompt content
|
|
61
|
+
* @throws Error if file cannot be loaded
|
|
62
|
+
*/
|
|
63
|
+
loadPrompt(relativePath: string): Promise<string>;
|
|
64
|
+
/**
|
|
65
|
+
* Clear the prompt cache
|
|
66
|
+
*/
|
|
67
|
+
clearCache(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Get cache statistics
|
|
70
|
+
* @returns Cache statistics including size, count, and hit rate
|
|
71
|
+
*/
|
|
72
|
+
getCacheStats(): CacheStats & {
|
|
73
|
+
totalEntries: number;
|
|
74
|
+
hitRate: number;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Reload all files from disk and clear cache
|
|
78
|
+
* @throws Error if reloading fails
|
|
79
|
+
*/
|
|
80
|
+
reloadFiles(): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Validate a context configuration
|
|
83
|
+
* @param context Context to validate
|
|
84
|
+
* @returns Validation result with errors and warnings
|
|
85
|
+
*/
|
|
86
|
+
validateConfiguration(context: PromptContext): ValidationResult;
|
|
87
|
+
/**
|
|
88
|
+
* Get list of available tool prompts
|
|
89
|
+
* @returns Array of tool names in PascalCase
|
|
90
|
+
*/
|
|
91
|
+
getAvailableTools(): Promise<string[]>;
|
|
92
|
+
/**
|
|
93
|
+
* Helper method to expand tilde in paths
|
|
94
|
+
*/
|
|
95
|
+
private expandPath;
|
|
96
|
+
/**
|
|
97
|
+
* Helper method to load and process a file with template substitution
|
|
98
|
+
*/
|
|
99
|
+
private loadAndProcess;
|
|
100
|
+
/**
|
|
101
|
+
* Helper method to get all prompt files recursively
|
|
102
|
+
*/
|
|
103
|
+
private getAllPromptFiles;
|
|
104
|
+
/**
|
|
105
|
+
* Helper method to estimate tokens in text
|
|
106
|
+
*/
|
|
107
|
+
private estimateTokens;
|
|
108
|
+
}
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
import { PromptCache } from './prompt-cache.js';
|
|
2
|
+
import { PromptResolver } from './prompt-resolver.js';
|
|
3
|
+
import { PromptLoader } from './prompt-loader.js';
|
|
4
|
+
import { TemplateEngine } from './TemplateEngine.js';
|
|
5
|
+
import { PromptInstaller } from './prompt-installer.js';
|
|
6
|
+
import { ALL_DEFAULTS } from './defaults/index.js';
|
|
7
|
+
import * as path from 'node:path';
|
|
8
|
+
import * as os from 'node:os';
|
|
9
|
+
import * as fs from 'node:fs/promises';
|
|
10
|
+
import { existsSync } from 'node:fs';
|
|
11
|
+
/**
|
|
12
|
+
* Main API that coordinates all prompt components
|
|
13
|
+
*/
|
|
14
|
+
export class PromptService {
|
|
15
|
+
baseDir;
|
|
16
|
+
cache;
|
|
17
|
+
resolver;
|
|
18
|
+
loader;
|
|
19
|
+
templateEngine;
|
|
20
|
+
installer;
|
|
21
|
+
defaultContent;
|
|
22
|
+
initialized;
|
|
23
|
+
config;
|
|
24
|
+
preloadedFiles;
|
|
25
|
+
detectedEnvironment;
|
|
26
|
+
/**
|
|
27
|
+
* Creates a new PromptService instance
|
|
28
|
+
* @param config Optional configuration settings
|
|
29
|
+
*/
|
|
30
|
+
constructor(config) {
|
|
31
|
+
// Set default configuration
|
|
32
|
+
const defaultBaseDir = path.join(os.homedir(), '.llxprt', 'prompts');
|
|
33
|
+
this.baseDir = this.expandPath(config?.baseDir ?? defaultBaseDir);
|
|
34
|
+
this.config = {
|
|
35
|
+
baseDir: this.baseDir,
|
|
36
|
+
maxCacheSizeMB: config?.maxCacheSizeMB ?? 100,
|
|
37
|
+
compressionEnabled: config?.compressionEnabled !== false,
|
|
38
|
+
debugMode: config?.debugMode ?? false,
|
|
39
|
+
};
|
|
40
|
+
// Initialize components
|
|
41
|
+
this.cache = new PromptCache(this.config.maxCacheSizeMB);
|
|
42
|
+
this.resolver = new PromptResolver();
|
|
43
|
+
this.loader = new PromptLoader(this.baseDir);
|
|
44
|
+
this.templateEngine = new TemplateEngine();
|
|
45
|
+
this.installer = new PromptInstaller();
|
|
46
|
+
// Load default content
|
|
47
|
+
this.defaultContent = { ...ALL_DEFAULTS };
|
|
48
|
+
// Initialize state
|
|
49
|
+
this.initialized = false;
|
|
50
|
+
this.preloadedFiles = new Map();
|
|
51
|
+
this.detectedEnvironment = null;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Initialize the service, installing defaults and preloading files
|
|
55
|
+
* @throws Error if initialization fails
|
|
56
|
+
*/
|
|
57
|
+
async initialize() {
|
|
58
|
+
// Check if already initialized
|
|
59
|
+
if (this.initialized) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
// Validate environment
|
|
63
|
+
const baseDirParent = path.dirname(this.baseDir);
|
|
64
|
+
if (!existsSync(baseDirParent)) {
|
|
65
|
+
try {
|
|
66
|
+
await fs.mkdir(baseDirParent, { recursive: true });
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
throw new Error(`Cannot create base directory: ${error instanceof Error ? error.message : String(error)}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Run installation
|
|
73
|
+
const installResult = await this.installer.install(this.baseDir, this.defaultContent, {
|
|
74
|
+
force: false,
|
|
75
|
+
dryRun: false,
|
|
76
|
+
verbose: this.config.debugMode,
|
|
77
|
+
});
|
|
78
|
+
if (!installResult.success) {
|
|
79
|
+
throw new Error(`Installation failed: ${installResult.errors.join(', ')}`);
|
|
80
|
+
}
|
|
81
|
+
// Validate installation
|
|
82
|
+
const validation = await this.installer.validate(this.baseDir);
|
|
83
|
+
if (!validation.isValid && validation.errors.length > 0) {
|
|
84
|
+
// Check for critical errors
|
|
85
|
+
const criticalErrors = validation.errors.filter((e) => e.includes('core') || e.includes('missing'));
|
|
86
|
+
if (criticalErrors.length > 0) {
|
|
87
|
+
throw new Error(`Invalid installation: ${criticalErrors.join(', ')}`);
|
|
88
|
+
}
|
|
89
|
+
// Log warnings if debugMode
|
|
90
|
+
if (this.config.debugMode && validation.warnings.length > 0) {
|
|
91
|
+
console.warn('Installation warnings:', validation.warnings);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Preload all files into memory
|
|
95
|
+
const allFiles = await this.getAllPromptFiles(this.baseDir);
|
|
96
|
+
for (const file of allFiles) {
|
|
97
|
+
const loadResult = await this.loader.loadFile(file, this.config.compressionEnabled);
|
|
98
|
+
if (loadResult.success && loadResult.content) {
|
|
99
|
+
this.preloadedFiles.set(file, loadResult.content);
|
|
100
|
+
}
|
|
101
|
+
else if (this.config.debugMode) {
|
|
102
|
+
console.warn(`Failed to preload file ${file}:`, loadResult.error);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Detect environment
|
|
106
|
+
this.detectedEnvironment = await this.loader.detectEnvironment(process.cwd());
|
|
107
|
+
this.initialized = true;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get assembled prompt for the given context
|
|
111
|
+
* @param context Runtime context with provider, model, tools, and environment
|
|
112
|
+
* @param userMemory Optional user-specific content to include
|
|
113
|
+
* @returns Assembled prompt string
|
|
114
|
+
* @throws Error if context is invalid or core prompt is missing
|
|
115
|
+
*/
|
|
116
|
+
async getPrompt(context, userMemory) {
|
|
117
|
+
// Ensure initialized
|
|
118
|
+
if (!this.initialized) {
|
|
119
|
+
await this.initialize();
|
|
120
|
+
}
|
|
121
|
+
// Validate context
|
|
122
|
+
if (!context) {
|
|
123
|
+
throw new Error('Context is required');
|
|
124
|
+
}
|
|
125
|
+
if (!context.provider) {
|
|
126
|
+
throw new Error('Provider is required');
|
|
127
|
+
}
|
|
128
|
+
if (!context.model) {
|
|
129
|
+
throw new Error('Model is required');
|
|
130
|
+
}
|
|
131
|
+
// Check cache - we'll add user memory after cache retrieval if needed
|
|
132
|
+
const cached = this.cache.get(context);
|
|
133
|
+
if (cached) {
|
|
134
|
+
if (this.config.debugMode) {
|
|
135
|
+
const cacheKey = this.cache.generateKey(context);
|
|
136
|
+
console.log(`Cache hit: ${cacheKey}`);
|
|
137
|
+
}
|
|
138
|
+
// If we have user memory, append it to the cached base prompt
|
|
139
|
+
if (userMemory && userMemory.trim()) {
|
|
140
|
+
return cached.assembledPrompt + `\n\n---\n\n${userMemory.trim()}`;
|
|
141
|
+
}
|
|
142
|
+
return cached.assembledPrompt;
|
|
143
|
+
}
|
|
144
|
+
// Resolve files
|
|
145
|
+
const startTime = Date.now();
|
|
146
|
+
const resolvedFiles = await this.resolver.resolveAllFiles(this.baseDir, context);
|
|
147
|
+
if (this.config.debugMode) {
|
|
148
|
+
console.log('Resolved files:', resolvedFiles.map((f) => f.path));
|
|
149
|
+
}
|
|
150
|
+
// Load and process files
|
|
151
|
+
const processedParts = [];
|
|
152
|
+
const fileMetadata = [];
|
|
153
|
+
// Process core file
|
|
154
|
+
const coreFile = resolvedFiles.find((f) => f.type === 'core');
|
|
155
|
+
if (coreFile) {
|
|
156
|
+
const content = await this.loadAndProcess(coreFile.path, context, null);
|
|
157
|
+
if (content) {
|
|
158
|
+
processedParts.push(content);
|
|
159
|
+
fileMetadata.push(coreFile.path);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
throw new Error('Core prompt not found');
|
|
164
|
+
}
|
|
165
|
+
// Process environment files
|
|
166
|
+
const envFiles = resolvedFiles.filter((f) => f.type === 'env');
|
|
167
|
+
for (const file of envFiles) {
|
|
168
|
+
const content = await this.loadAndProcess(file.path, context, null);
|
|
169
|
+
if (content) {
|
|
170
|
+
processedParts.push(content);
|
|
171
|
+
fileMetadata.push(file.path);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// Process tool files
|
|
175
|
+
const toolFiles = resolvedFiles.filter((f) => f.type === 'tool');
|
|
176
|
+
for (const file of toolFiles) {
|
|
177
|
+
const content = await this.loadAndProcess(file.path, context, file.toolName || null);
|
|
178
|
+
if (content) {
|
|
179
|
+
processedParts.push(content);
|
|
180
|
+
fileMetadata.push(file.path);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// Assemble base prompt (without user memory)
|
|
184
|
+
const baseAssembled = processedParts.join('\n\n');
|
|
185
|
+
const assemblyTime = Date.now() - startTime;
|
|
186
|
+
// Cache the base result (without user memory)
|
|
187
|
+
const metadata = {
|
|
188
|
+
files: fileMetadata,
|
|
189
|
+
assemblyTimeMs: assemblyTime,
|
|
190
|
+
tokenCount: this.estimateTokens(baseAssembled),
|
|
191
|
+
};
|
|
192
|
+
this.cache.set(context, baseAssembled, metadata);
|
|
193
|
+
// Add user memory if provided
|
|
194
|
+
if (userMemory && userMemory.trim()) {
|
|
195
|
+
return baseAssembled + `\n\n---\n\n${userMemory.trim()}`;
|
|
196
|
+
}
|
|
197
|
+
return baseAssembled;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Load a specific prompt file by relative path
|
|
201
|
+
* @param relativePath Path relative to the prompts directory (e.g., 'services/loop-detection.md')
|
|
202
|
+
* @returns The prompt content
|
|
203
|
+
* @throws Error if file cannot be loaded
|
|
204
|
+
*/
|
|
205
|
+
async loadPrompt(relativePath) {
|
|
206
|
+
// Ensure initialized
|
|
207
|
+
if (!this.initialized) {
|
|
208
|
+
await this.initialize();
|
|
209
|
+
}
|
|
210
|
+
const fullPath = path.join(this.baseDir, relativePath);
|
|
211
|
+
const result = await this.loader.loadFile(fullPath, false);
|
|
212
|
+
if (!result.success) {
|
|
213
|
+
throw new Error(`Failed to load prompt ${relativePath}: ${result.error}`);
|
|
214
|
+
}
|
|
215
|
+
return result.content.trim();
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Clear the prompt cache
|
|
219
|
+
*/
|
|
220
|
+
clearCache() {
|
|
221
|
+
this.cache.clear();
|
|
222
|
+
if (this.config.debugMode) {
|
|
223
|
+
console.log('Cache cleared');
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Get cache statistics
|
|
228
|
+
* @returns Cache statistics including size, count, and hit rate
|
|
229
|
+
*/
|
|
230
|
+
getCacheStats() {
|
|
231
|
+
const stats = this.cache.getStats();
|
|
232
|
+
// Calculate hit rate: total accesses includes initial creation + subsequent hits
|
|
233
|
+
// So hits = totalAccesses (which counts cache hits only, not initial sets)
|
|
234
|
+
const totalRequests = stats.entryCount + stats.totalAccesses;
|
|
235
|
+
const hits = stats.totalAccesses;
|
|
236
|
+
const hitRate = totalRequests > 0 ? (hits / totalRequests) * 100 : 0;
|
|
237
|
+
// Add properties expected by tests
|
|
238
|
+
return {
|
|
239
|
+
...stats,
|
|
240
|
+
totalEntries: stats.entryCount,
|
|
241
|
+
hitRate,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Reload all files from disk and clear cache
|
|
246
|
+
* @throws Error if reloading fails
|
|
247
|
+
*/
|
|
248
|
+
async reloadFiles() {
|
|
249
|
+
// Clear the cache
|
|
250
|
+
this.clearCache();
|
|
251
|
+
// Clear memory cache of files
|
|
252
|
+
this.preloadedFiles.clear();
|
|
253
|
+
// Re-run initialization
|
|
254
|
+
this.initialized = false;
|
|
255
|
+
await this.initialize();
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Validate a context configuration
|
|
259
|
+
* @param context Context to validate
|
|
260
|
+
* @returns Validation result with errors and warnings
|
|
261
|
+
*/
|
|
262
|
+
validateConfiguration(context) {
|
|
263
|
+
const errors = [];
|
|
264
|
+
const warnings = [];
|
|
265
|
+
let isValid = true;
|
|
266
|
+
// Check required fields
|
|
267
|
+
if (!context.provider) {
|
|
268
|
+
errors.push('Provider is required');
|
|
269
|
+
isValid = false;
|
|
270
|
+
}
|
|
271
|
+
if (!context.model) {
|
|
272
|
+
errors.push('Model is required');
|
|
273
|
+
isValid = false;
|
|
274
|
+
}
|
|
275
|
+
// Check provider/model format
|
|
276
|
+
const invalidCharsRegex = /[^a-zA-Z0-9\-_.]/;
|
|
277
|
+
if (context.provider && invalidCharsRegex.test(context.provider)) {
|
|
278
|
+
warnings.push('Provider will be sanitized');
|
|
279
|
+
}
|
|
280
|
+
if (context.model && invalidCharsRegex.test(context.model)) {
|
|
281
|
+
warnings.push('Model will be sanitized');
|
|
282
|
+
}
|
|
283
|
+
// Check tools
|
|
284
|
+
if (context.enabledTools) {
|
|
285
|
+
for (const tool of context.enabledTools) {
|
|
286
|
+
if (typeof tool !== 'string') {
|
|
287
|
+
errors.push('Invalid tool: must be string');
|
|
288
|
+
isValid = false;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
// Check environment
|
|
293
|
+
if (context.environment) {
|
|
294
|
+
const booleanKeys = [
|
|
295
|
+
'isGitRepository',
|
|
296
|
+
'isSandboxed',
|
|
297
|
+
'hasIdeCompanion',
|
|
298
|
+
];
|
|
299
|
+
for (const key of booleanKeys) {
|
|
300
|
+
if (key in context.environment &&
|
|
301
|
+
typeof context.environment[key] !== 'boolean') {
|
|
302
|
+
warnings.push(`${key} should be boolean`);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
isValid,
|
|
308
|
+
errors,
|
|
309
|
+
warnings,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Get list of available tool prompts
|
|
314
|
+
* @returns Array of tool names in PascalCase
|
|
315
|
+
*/
|
|
316
|
+
async getAvailableTools() {
|
|
317
|
+
// Ensure initialized
|
|
318
|
+
if (!this.initialized) {
|
|
319
|
+
await this.initialize();
|
|
320
|
+
}
|
|
321
|
+
// List tool files
|
|
322
|
+
const toolsDir = path.join(this.baseDir, 'tools');
|
|
323
|
+
if (!existsSync(toolsDir)) {
|
|
324
|
+
return [];
|
|
325
|
+
}
|
|
326
|
+
try {
|
|
327
|
+
// Extract tool names
|
|
328
|
+
const toolNames = [];
|
|
329
|
+
const files = await fs.readdir(toolsDir);
|
|
330
|
+
for (const file of files) {
|
|
331
|
+
if (file.endsWith('.md')) {
|
|
332
|
+
// Remove .md extension
|
|
333
|
+
const baseName = file.slice(0, -3);
|
|
334
|
+
// Convert from kebab-case to PascalCase
|
|
335
|
+
const pascalCase = baseName
|
|
336
|
+
.split('-')
|
|
337
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
|
|
338
|
+
.join('');
|
|
339
|
+
toolNames.push(pascalCase);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
// Sort and return
|
|
343
|
+
return toolNames.sort();
|
|
344
|
+
}
|
|
345
|
+
catch (error) {
|
|
346
|
+
// Directory read fails: Return empty array
|
|
347
|
+
if (this.config.debugMode) {
|
|
348
|
+
console.error('Failed to read tools directory:', error);
|
|
349
|
+
}
|
|
350
|
+
return [];
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Helper method to expand tilde in paths
|
|
355
|
+
*/
|
|
356
|
+
expandPath(filePath) {
|
|
357
|
+
if (filePath.startsWith('~')) {
|
|
358
|
+
return path.join(os.homedir(), filePath.slice(1));
|
|
359
|
+
}
|
|
360
|
+
return filePath;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Helper method to load and process a file with template substitution
|
|
364
|
+
*/
|
|
365
|
+
async loadAndProcess(filePath, context, currentTool) {
|
|
366
|
+
// Read from memory cache
|
|
367
|
+
let content = this.preloadedFiles.get(filePath);
|
|
368
|
+
if (!content) {
|
|
369
|
+
// If not in memory, try loading directly
|
|
370
|
+
const loadResult = await this.loader.loadFile(filePath, this.config.compressionEnabled);
|
|
371
|
+
if (!loadResult.success || !loadResult.content) {
|
|
372
|
+
if (this.config.debugMode) {
|
|
373
|
+
console.error(`Failed to load file ${filePath}:`, loadResult.error);
|
|
374
|
+
}
|
|
375
|
+
return '';
|
|
376
|
+
}
|
|
377
|
+
content = loadResult.content;
|
|
378
|
+
}
|
|
379
|
+
// Create template variables
|
|
380
|
+
const variables = this.templateEngine.createVariablesFromContext(context, currentTool);
|
|
381
|
+
// Process template
|
|
382
|
+
try {
|
|
383
|
+
return this.templateEngine.processTemplate(content, variables);
|
|
384
|
+
}
|
|
385
|
+
catch (error) {
|
|
386
|
+
// Template processing fails: Return original content
|
|
387
|
+
if (this.config.debugMode) {
|
|
388
|
+
console.error(`Failed to process template for ${filePath}:`, error);
|
|
389
|
+
}
|
|
390
|
+
return content;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Helper method to get all prompt files recursively
|
|
395
|
+
*/
|
|
396
|
+
async getAllPromptFiles(baseDir) {
|
|
397
|
+
const files = [];
|
|
398
|
+
async function walkDir(dir) {
|
|
399
|
+
try {
|
|
400
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
401
|
+
for (const entry of entries) {
|
|
402
|
+
const fullPath = path.join(dir, entry.name);
|
|
403
|
+
if (entry.isDirectory() &&
|
|
404
|
+
entry.name !== '.' &&
|
|
405
|
+
entry.name !== '..') {
|
|
406
|
+
await walkDir(fullPath);
|
|
407
|
+
}
|
|
408
|
+
else if (entry.isFile() && entry.name.endsWith('.md')) {
|
|
409
|
+
files.push(fullPath);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
catch (_error) {
|
|
414
|
+
// Permission denied or invalid paths: Skip
|
|
415
|
+
// Silent failure as per pseudocode
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
await walkDir(baseDir);
|
|
419
|
+
return files;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Helper method to estimate tokens in text
|
|
423
|
+
*/
|
|
424
|
+
estimateTokens(text) {
|
|
425
|
+
if (!text) {
|
|
426
|
+
return 0;
|
|
427
|
+
}
|
|
428
|
+
// Basic estimation without tokenizer
|
|
429
|
+
const wordCount = text.split(/\s+/).length;
|
|
430
|
+
const characterCount = text.length;
|
|
431
|
+
const estimate = Math.max(wordCount * 1.3, characterCount / 4);
|
|
432
|
+
return Math.round(estimate);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
//# sourceMappingURL=prompt-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-service.js","sourceRoot":"","sources":["../../../src/prompt-config/prompt-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|