@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,437 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, beforeEach } from 'vitest';
|
|
7
|
+
import { PromptCache } from './prompt-cache.js';
|
|
8
|
+
describe('PromptCache', () => {
|
|
9
|
+
let cache;
|
|
10
|
+
const createContext = (overrides = {}) => ({
|
|
11
|
+
provider: 'anthropic',
|
|
12
|
+
model: 'claude-3',
|
|
13
|
+
enabledTools: ['read', 'write'],
|
|
14
|
+
environment: {
|
|
15
|
+
isGitRepository: true,
|
|
16
|
+
isSandboxed: false,
|
|
17
|
+
hasIdeCompanion: true,
|
|
18
|
+
},
|
|
19
|
+
...overrides,
|
|
20
|
+
});
|
|
21
|
+
const createMetadata = (overrides = {}) => ({
|
|
22
|
+
files: ['test.txt'],
|
|
23
|
+
tokenCount: 100,
|
|
24
|
+
assemblyTimeMs: 50,
|
|
25
|
+
...overrides,
|
|
26
|
+
});
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
cache = new PromptCache(10); // 10MB cache
|
|
29
|
+
});
|
|
30
|
+
describe('constructor', () => {
|
|
31
|
+
it('should initialize with default size when no size provided', () => {
|
|
32
|
+
const defaultCache = new PromptCache();
|
|
33
|
+
const stats = defaultCache.getStats();
|
|
34
|
+
expect(stats.maxSizeMB).toBe(100); // Default 100MB
|
|
35
|
+
});
|
|
36
|
+
it('should enforce minimum size of 100MB for invalid sizes', () => {
|
|
37
|
+
const zeroCache = new PromptCache(0);
|
|
38
|
+
const stats = zeroCache.getStats();
|
|
39
|
+
expect(stats.maxSizeMB).toBe(100);
|
|
40
|
+
});
|
|
41
|
+
it('should enforce maximum size of 1000MB', () => {
|
|
42
|
+
const largeCache = new PromptCache(2000);
|
|
43
|
+
const stats = largeCache.getStats();
|
|
44
|
+
expect(stats.maxSizeMB).toBe(1000);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('generateKey', () => {
|
|
48
|
+
it('should generate consistent keys for same context', () => {
|
|
49
|
+
const context = createContext();
|
|
50
|
+
const key1 = cache.generateKey(context);
|
|
51
|
+
const key2 = cache.generateKey(context);
|
|
52
|
+
expect(key1).toBe(key2);
|
|
53
|
+
});
|
|
54
|
+
it('should include provider and model in key', () => {
|
|
55
|
+
const context = createContext({
|
|
56
|
+
provider: 'openai',
|
|
57
|
+
model: 'gpt-4',
|
|
58
|
+
});
|
|
59
|
+
const key = cache.generateKey(context);
|
|
60
|
+
expect(key).toContain('openai');
|
|
61
|
+
expect(key).toContain('gpt-4');
|
|
62
|
+
});
|
|
63
|
+
it('should include sorted tools in key', () => {
|
|
64
|
+
const context = createContext({
|
|
65
|
+
enabledTools: ['write', 'read', 'grep'],
|
|
66
|
+
});
|
|
67
|
+
const key = cache.generateKey(context);
|
|
68
|
+
// Tools should be sorted alphabetically
|
|
69
|
+
expect(key).toContain('grep');
|
|
70
|
+
expect(key).toContain('read');
|
|
71
|
+
expect(key).toContain('write');
|
|
72
|
+
});
|
|
73
|
+
it('should include environment flags in key', () => {
|
|
74
|
+
const context = createContext({
|
|
75
|
+
environment: {
|
|
76
|
+
isGitRepository: true,
|
|
77
|
+
isSandboxed: true,
|
|
78
|
+
hasIdeCompanion: false,
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
const key = cache.generateKey(context);
|
|
82
|
+
expect(key).toContain('git');
|
|
83
|
+
expect(key).toContain('sandbox');
|
|
84
|
+
expect(key).not.toContain('ide');
|
|
85
|
+
});
|
|
86
|
+
it('should handle null or undefined context', () => {
|
|
87
|
+
const key = cache.generateKey(null);
|
|
88
|
+
expect(key).toBe('');
|
|
89
|
+
});
|
|
90
|
+
it('should handle missing context properties with defaults', () => {
|
|
91
|
+
const partialContext = {
|
|
92
|
+
provider: 'test',
|
|
93
|
+
};
|
|
94
|
+
const key = cache.generateKey(partialContext);
|
|
95
|
+
expect(key).toContain('test');
|
|
96
|
+
expect(key).toContain('unknown'); // Default model
|
|
97
|
+
});
|
|
98
|
+
it('should generate different keys for different contexts', () => {
|
|
99
|
+
const context1 = createContext({ provider: 'openai' });
|
|
100
|
+
const context2 = createContext({ provider: 'anthropic' });
|
|
101
|
+
const key1 = cache.generateKey(context1);
|
|
102
|
+
const key2 = cache.generateKey(context2);
|
|
103
|
+
expect(key1).not.toBe(key2);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
describe('set and get operations', () => {
|
|
107
|
+
it('should store and retrieve a prompt', () => {
|
|
108
|
+
const context = createContext();
|
|
109
|
+
const prompt = 'Test prompt content';
|
|
110
|
+
const metadata = createMetadata();
|
|
111
|
+
cache.set(context, prompt, metadata);
|
|
112
|
+
const result = cache.get(context);
|
|
113
|
+
expect(result).not.toBeNull();
|
|
114
|
+
expect(result.assembledPrompt).toBe(prompt);
|
|
115
|
+
expect(result.metadata.files).toEqual(metadata.files);
|
|
116
|
+
expect(result.metadata.tokenCount).toBe(metadata.tokenCount);
|
|
117
|
+
expect(result.metadata.assemblyTimeMs).toBe(metadata.assemblyTimeMs);
|
|
118
|
+
});
|
|
119
|
+
it('should return null for non-existent entries', () => {
|
|
120
|
+
const context = createContext();
|
|
121
|
+
const result = cache.get(context);
|
|
122
|
+
expect(result).toBeNull();
|
|
123
|
+
});
|
|
124
|
+
it('should update access count and time on get', () => {
|
|
125
|
+
const context = createContext();
|
|
126
|
+
const prompt = 'Test prompt';
|
|
127
|
+
const metadata = createMetadata();
|
|
128
|
+
cache.set(context, prompt, metadata);
|
|
129
|
+
// First access
|
|
130
|
+
cache.get(context);
|
|
131
|
+
// Second access
|
|
132
|
+
cache.get(context);
|
|
133
|
+
const stats = cache.getStats();
|
|
134
|
+
expect(stats.totalAccesses).toBe(2);
|
|
135
|
+
});
|
|
136
|
+
it('should handle null or empty keys in set', () => {
|
|
137
|
+
const prompt = 'Test prompt';
|
|
138
|
+
const metadata = createMetadata();
|
|
139
|
+
// Should not throw, but operation should fail
|
|
140
|
+
cache.set(null, prompt, metadata);
|
|
141
|
+
expect(cache.size()).toBe(0);
|
|
142
|
+
});
|
|
143
|
+
it('should handle null content in set', () => {
|
|
144
|
+
const context = createContext();
|
|
145
|
+
const metadata = createMetadata();
|
|
146
|
+
cache.set(context, null, metadata);
|
|
147
|
+
expect(cache.has(context)).toBe(false);
|
|
148
|
+
});
|
|
149
|
+
it('should reject content larger than cache size', () => {
|
|
150
|
+
const context = createContext();
|
|
151
|
+
const largePrompt = 'x'.repeat(11 * 1024 * 1024); // 11MB
|
|
152
|
+
const metadata = createMetadata();
|
|
153
|
+
cache.set(context, largePrompt, metadata);
|
|
154
|
+
expect(cache.has(context)).toBe(false);
|
|
155
|
+
});
|
|
156
|
+
it('should overwrite existing entries', () => {
|
|
157
|
+
const context = createContext();
|
|
158
|
+
const prompt1 = 'First prompt';
|
|
159
|
+
const prompt2 = 'Second prompt';
|
|
160
|
+
const metadata = createMetadata();
|
|
161
|
+
cache.set(context, prompt1, metadata);
|
|
162
|
+
cache.set(context, prompt2, metadata);
|
|
163
|
+
const result = cache.get(context);
|
|
164
|
+
expect(result.assembledPrompt).toBe(prompt2);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
describe('has operation', () => {
|
|
168
|
+
it('should return true for existing entries', () => {
|
|
169
|
+
const context = createContext();
|
|
170
|
+
cache.set(context, 'Test prompt', createMetadata());
|
|
171
|
+
expect(cache.has(context)).toBe(true);
|
|
172
|
+
});
|
|
173
|
+
it('should return false for non-existent entries', () => {
|
|
174
|
+
const context = createContext();
|
|
175
|
+
expect(cache.has(context)).toBe(false);
|
|
176
|
+
});
|
|
177
|
+
it('should handle null or empty keys', () => {
|
|
178
|
+
expect(cache.has(null)).toBe(false);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
describe('LRU eviction', () => {
|
|
182
|
+
it('should evict least recently used entries when cache is full', () => {
|
|
183
|
+
const smallCache = new PromptCache(0.001); // 1KB cache
|
|
184
|
+
const context1 = createContext({ model: 'model1' });
|
|
185
|
+
const context2 = createContext({ model: 'model2' });
|
|
186
|
+
const context3 = createContext({ model: 'model3' });
|
|
187
|
+
// Each prompt is ~500 bytes
|
|
188
|
+
const prompt = 'x'.repeat(500);
|
|
189
|
+
const metadata = createMetadata();
|
|
190
|
+
// Add first two entries
|
|
191
|
+
smallCache.set(context1, prompt, metadata);
|
|
192
|
+
smallCache.set(context2, prompt, metadata);
|
|
193
|
+
// Access first entry to make it more recent
|
|
194
|
+
smallCache.get(context1);
|
|
195
|
+
// Add third entry - should evict context2
|
|
196
|
+
smallCache.set(context3, prompt, metadata);
|
|
197
|
+
expect(smallCache.has(context1)).toBe(true);
|
|
198
|
+
expect(smallCache.has(context2)).toBe(false); // Evicted
|
|
199
|
+
expect(smallCache.has(context3)).toBe(true);
|
|
200
|
+
});
|
|
201
|
+
it('should handle eviction of multiple entries to make room', () => {
|
|
202
|
+
const smallCache = new PromptCache(0.002); // 2KB cache
|
|
203
|
+
// Add several small entries
|
|
204
|
+
for (let i = 0; i < 10; i++) {
|
|
205
|
+
const context = createContext({ model: `model${i}` });
|
|
206
|
+
smallCache.set(context, 'x'.repeat(200), createMetadata());
|
|
207
|
+
}
|
|
208
|
+
// Add one large entry that requires evicting multiple entries
|
|
209
|
+
const largeContext = createContext({ model: 'large' });
|
|
210
|
+
smallCache.set(largeContext, 'x'.repeat(1500), createMetadata());
|
|
211
|
+
expect(smallCache.has(largeContext)).toBe(true);
|
|
212
|
+
expect(smallCache.size()).toBeLessThan(10); // Some entries were evicted
|
|
213
|
+
});
|
|
214
|
+
it('should update access order on get operations', () => {
|
|
215
|
+
const smallCache = new PromptCache(0.001); // 1KB cache
|
|
216
|
+
const context1 = createContext({ model: 'model1' });
|
|
217
|
+
const context2 = createContext({ model: 'model2' });
|
|
218
|
+
const context3 = createContext({ model: 'model3' });
|
|
219
|
+
const prompt = 'x'.repeat(400);
|
|
220
|
+
const metadata = createMetadata();
|
|
221
|
+
smallCache.set(context1, prompt, metadata);
|
|
222
|
+
smallCache.set(context2, prompt, metadata);
|
|
223
|
+
// Access context1 multiple times
|
|
224
|
+
smallCache.get(context1);
|
|
225
|
+
smallCache.get(context1);
|
|
226
|
+
// Add context3 - should evict context2, not context1
|
|
227
|
+
smallCache.set(context3, prompt, metadata);
|
|
228
|
+
expect(smallCache.has(context1)).toBe(true);
|
|
229
|
+
expect(smallCache.has(context2)).toBe(false);
|
|
230
|
+
expect(smallCache.has(context3)).toBe(true);
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
describe('remove operation', () => {
|
|
234
|
+
it('should remove existing entries', () => {
|
|
235
|
+
const context = createContext();
|
|
236
|
+
cache.set(context, 'Test prompt', createMetadata());
|
|
237
|
+
const key = cache.generateKey(context);
|
|
238
|
+
const removed = cache.remove(key);
|
|
239
|
+
expect(removed).toBe(true);
|
|
240
|
+
expect(cache.has(context)).toBe(false);
|
|
241
|
+
});
|
|
242
|
+
it('should return false for non-existent entries', () => {
|
|
243
|
+
const removed = cache.remove('non-existent-key');
|
|
244
|
+
expect(removed).toBe(false);
|
|
245
|
+
});
|
|
246
|
+
it('should handle null or empty keys', () => {
|
|
247
|
+
expect(cache.remove('')).toBe(false);
|
|
248
|
+
expect(cache.remove(null)).toBe(false);
|
|
249
|
+
});
|
|
250
|
+
it('should update cache size after removal', () => {
|
|
251
|
+
const context = createContext();
|
|
252
|
+
const prompt = 'x'.repeat(1000);
|
|
253
|
+
cache.set(context, prompt, createMetadata());
|
|
254
|
+
const statsBefore = cache.getStats();
|
|
255
|
+
expect(statsBefore.totalSizeMB).toBeGreaterThan(0);
|
|
256
|
+
const key = cache.generateKey(context);
|
|
257
|
+
cache.remove(key);
|
|
258
|
+
const statsAfter = cache.getStats();
|
|
259
|
+
expect(statsAfter.totalSizeMB).toBe(0);
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
describe('clear operation', () => {
|
|
263
|
+
it('should remove all entries', () => {
|
|
264
|
+
const context1 = createContext({ model: 'model1' });
|
|
265
|
+
const context2 = createContext({ model: 'model2' });
|
|
266
|
+
cache.set(context1, 'Prompt 1', createMetadata());
|
|
267
|
+
cache.set(context2, 'Prompt 2', createMetadata());
|
|
268
|
+
expect(cache.size()).toBe(2);
|
|
269
|
+
cache.clear();
|
|
270
|
+
expect(cache.size()).toBe(0);
|
|
271
|
+
expect(cache.has(context1)).toBe(false);
|
|
272
|
+
expect(cache.has(context2)).toBe(false);
|
|
273
|
+
});
|
|
274
|
+
it('should reset cache statistics', () => {
|
|
275
|
+
const context = createContext();
|
|
276
|
+
cache.set(context, 'Test prompt', createMetadata());
|
|
277
|
+
cache.get(context);
|
|
278
|
+
cache.clear();
|
|
279
|
+
const stats = cache.getStats();
|
|
280
|
+
expect(stats.entryCount).toBe(0);
|
|
281
|
+
expect(stats.totalSizeMB).toBe(0);
|
|
282
|
+
expect(stats.totalAccesses).toBe(0);
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
describe('size operation', () => {
|
|
286
|
+
it('should return correct entry count', () => {
|
|
287
|
+
expect(cache.size()).toBe(0);
|
|
288
|
+
const context1 = createContext({ model: 'model1' });
|
|
289
|
+
const context2 = createContext({ model: 'model2' });
|
|
290
|
+
cache.set(context1, 'Prompt 1', createMetadata());
|
|
291
|
+
expect(cache.size()).toBe(1);
|
|
292
|
+
cache.set(context2, 'Prompt 2', createMetadata());
|
|
293
|
+
expect(cache.size()).toBe(2);
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
describe('getStats operation', () => {
|
|
297
|
+
it('should return correct cache statistics', () => {
|
|
298
|
+
const stats = cache.getStats();
|
|
299
|
+
expect(stats.entryCount).toBe(0);
|
|
300
|
+
expect(stats.totalSizeMB).toBe(0);
|
|
301
|
+
expect(stats.maxSizeMB).toBe(10);
|
|
302
|
+
expect(stats.utilizationPercent).toBe(0);
|
|
303
|
+
expect(stats.averageEntrySizeKB).toBe(0);
|
|
304
|
+
expect(stats.totalAccesses).toBe(0);
|
|
305
|
+
expect(stats.mostAccessedKey).toBeNull();
|
|
306
|
+
expect(stats.mostAccessedCount).toBe(0);
|
|
307
|
+
});
|
|
308
|
+
it('should track access patterns correctly', () => {
|
|
309
|
+
const context1 = createContext({ model: 'model1' });
|
|
310
|
+
const context2 = createContext({ model: 'model2' });
|
|
311
|
+
cache.set(context1, 'Prompt 1', createMetadata());
|
|
312
|
+
cache.set(context2, 'Prompt 2', createMetadata());
|
|
313
|
+
// Access context1 more times
|
|
314
|
+
cache.get(context1);
|
|
315
|
+
cache.get(context1);
|
|
316
|
+
cache.get(context1);
|
|
317
|
+
cache.get(context2);
|
|
318
|
+
const stats = cache.getStats();
|
|
319
|
+
expect(stats.totalAccesses).toBe(4);
|
|
320
|
+
expect(stats.mostAccessedKey).toBe(cache.generateKey(context1));
|
|
321
|
+
expect(stats.mostAccessedCount).toBe(3);
|
|
322
|
+
});
|
|
323
|
+
it('should calculate utilization and average size correctly', () => {
|
|
324
|
+
const context1 = createContext({ model: 'model1' });
|
|
325
|
+
const context2 = createContext({ model: 'model2' });
|
|
326
|
+
const prompt1 = 'x'.repeat(1000); // 1KB
|
|
327
|
+
const prompt2 = 'x'.repeat(2000); // 2KB
|
|
328
|
+
cache.set(context1, prompt1, createMetadata());
|
|
329
|
+
cache.set(context2, prompt2, createMetadata());
|
|
330
|
+
const stats = cache.getStats();
|
|
331
|
+
expect(stats.entryCount).toBe(2);
|
|
332
|
+
expect(stats.totalSizeMB).toBeCloseTo(0.003, 3);
|
|
333
|
+
expect(stats.utilizationPercent).toBeCloseTo(0.03, 2);
|
|
334
|
+
expect(stats.averageEntrySizeKB).toBeCloseTo(1.5, 1);
|
|
335
|
+
});
|
|
336
|
+
});
|
|
337
|
+
describe('preload operation', () => {
|
|
338
|
+
it('should return count of contexts that would be cached', () => {
|
|
339
|
+
const contexts = [
|
|
340
|
+
createContext({ model: 'model1' }),
|
|
341
|
+
createContext({ model: 'model2' }),
|
|
342
|
+
createContext({ model: 'model3' }),
|
|
343
|
+
];
|
|
344
|
+
const count = cache.preload(contexts);
|
|
345
|
+
expect(count).toBe(3);
|
|
346
|
+
});
|
|
347
|
+
it('should skip already cached contexts', () => {
|
|
348
|
+
const context1 = createContext({ model: 'model1' });
|
|
349
|
+
const context2 = createContext({ model: 'model2' });
|
|
350
|
+
cache.set(context1, 'Already cached', createMetadata());
|
|
351
|
+
const contexts = [context1, context2];
|
|
352
|
+
const count = cache.preload(contexts);
|
|
353
|
+
expect(count).toBe(1); // Only context2 would be cached
|
|
354
|
+
});
|
|
355
|
+
it('should handle empty or null contexts array', () => {
|
|
356
|
+
expect(cache.preload([])).toBe(0);
|
|
357
|
+
expect(cache.preload(null)).toBe(0);
|
|
358
|
+
});
|
|
359
|
+
it('should skip contexts that generate empty keys', () => {
|
|
360
|
+
const contexts = [
|
|
361
|
+
createContext(),
|
|
362
|
+
null,
|
|
363
|
+
createContext({ model: 'model2' }),
|
|
364
|
+
];
|
|
365
|
+
const count = cache.preload(contexts);
|
|
366
|
+
expect(count).toBe(2); // Null context is skipped
|
|
367
|
+
});
|
|
368
|
+
});
|
|
369
|
+
describe('edge cases', () => {
|
|
370
|
+
it('should handle zero-size cache gracefully', () => {
|
|
371
|
+
const zeroCache = new PromptCache(0);
|
|
372
|
+
const context = createContext();
|
|
373
|
+
zeroCache.set(context, 'Test', createMetadata());
|
|
374
|
+
expect(zeroCache.has(context)).toBe(false);
|
|
375
|
+
expect(zeroCache.size()).toBe(0);
|
|
376
|
+
});
|
|
377
|
+
it('should handle single entry using entire cache', () => {
|
|
378
|
+
const smallCache = new PromptCache(0.001); // 1KB
|
|
379
|
+
const context = createContext();
|
|
380
|
+
const prompt = 'x'.repeat(900); // Just under 1KB
|
|
381
|
+
smallCache.set(context, prompt, createMetadata());
|
|
382
|
+
expect(smallCache.has(context)).toBe(true);
|
|
383
|
+
// Adding another entry should evict the first
|
|
384
|
+
const context2 = createContext({ model: 'model2' });
|
|
385
|
+
smallCache.set(context2, 'Small prompt', createMetadata());
|
|
386
|
+
expect(smallCache.has(context)).toBe(false);
|
|
387
|
+
expect(smallCache.has(context2)).toBe(true);
|
|
388
|
+
});
|
|
389
|
+
it('should handle rapid access pattern changes', () => {
|
|
390
|
+
const context1 = createContext({ model: 'model1' });
|
|
391
|
+
const context2 = createContext({ model: 'model2' });
|
|
392
|
+
const context3 = createContext({ model: 'model3' });
|
|
393
|
+
cache.set(context1, 'Prompt 1', createMetadata());
|
|
394
|
+
cache.set(context2, 'Prompt 2', createMetadata());
|
|
395
|
+
cache.set(context3, 'Prompt 3', createMetadata());
|
|
396
|
+
// Rapidly change access patterns
|
|
397
|
+
for (let i = 0; i < 10; i++) {
|
|
398
|
+
if (i % 3 === 0)
|
|
399
|
+
cache.get(context1);
|
|
400
|
+
else if (i % 3 === 1)
|
|
401
|
+
cache.get(context2);
|
|
402
|
+
else
|
|
403
|
+
cache.get(context3);
|
|
404
|
+
}
|
|
405
|
+
const stats = cache.getStats();
|
|
406
|
+
expect(stats.totalAccesses).toBe(10);
|
|
407
|
+
});
|
|
408
|
+
it('should maintain metadata immutability', () => {
|
|
409
|
+
const context = createContext();
|
|
410
|
+
const originalMetadata = createMetadata();
|
|
411
|
+
cache.set(context, 'Test prompt', originalMetadata);
|
|
412
|
+
// Modify original metadata
|
|
413
|
+
originalMetadata.files.push('another-file.txt');
|
|
414
|
+
originalMetadata.tokenCount = 999;
|
|
415
|
+
// Retrieved metadata should not be affected
|
|
416
|
+
const result = cache.get(context);
|
|
417
|
+
expect(result.metadata.files).toEqual(['test.txt']);
|
|
418
|
+
expect(result.metadata.tokenCount).toBe(100);
|
|
419
|
+
});
|
|
420
|
+
it('should handle concurrent-like access patterns', () => {
|
|
421
|
+
const contexts = Array.from({ length: 10 }, (_, i) => createContext({ model: `model${i}` }));
|
|
422
|
+
// Simulate concurrent-like access
|
|
423
|
+
contexts.forEach((ctx, i) => {
|
|
424
|
+
cache.set(ctx, `Prompt ${i}`, createMetadata());
|
|
425
|
+
});
|
|
426
|
+
// Random access pattern
|
|
427
|
+
for (let i = 0; i < 50; i++) {
|
|
428
|
+
const randomIndex = Math.floor(Math.random() * contexts.length);
|
|
429
|
+
cache.get(contexts[randomIndex]);
|
|
430
|
+
}
|
|
431
|
+
expect(cache.size()).toBe(10);
|
|
432
|
+
const stats = cache.getStats();
|
|
433
|
+
expect(stats.totalAccesses).toBe(50);
|
|
434
|
+
});
|
|
435
|
+
});
|
|
436
|
+
});
|
|
437
|
+
//# sourceMappingURL=prompt-cache.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-cache.test.js","sourceRoot":"","sources":["../../../src/prompt-config/prompt-cache.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Installer - Creates directory structure and installs default prompt files
|
|
3
|
+
* while preserving user customizations.
|
|
4
|
+
*
|
|
5
|
+
* This is a TDD stub implementation. All methods throw "Not implemented" errors.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
export declare const DEFAULT_BASE_DIR = "~/.llxprt/prompts";
|
|
9
|
+
export declare const REQUIRED_DIRECTORIES: readonly ["", "env", "tools", "providers"];
|
|
10
|
+
export interface InstallOptions {
|
|
11
|
+
force?: boolean;
|
|
12
|
+
dryRun?: boolean;
|
|
13
|
+
verbose?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface InstallResult {
|
|
16
|
+
success: boolean;
|
|
17
|
+
installed: string[];
|
|
18
|
+
skipped: string[];
|
|
19
|
+
errors: string[];
|
|
20
|
+
baseDir?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface UninstallOptions {
|
|
23
|
+
removeUserFiles?: boolean;
|
|
24
|
+
dryRun?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface UninstallResult {
|
|
27
|
+
success: boolean;
|
|
28
|
+
removed: string[];
|
|
29
|
+
errors: string[];
|
|
30
|
+
}
|
|
31
|
+
export interface ValidationResult {
|
|
32
|
+
isValid: boolean;
|
|
33
|
+
errors: string[];
|
|
34
|
+
warnings: string[];
|
|
35
|
+
missing: string[];
|
|
36
|
+
baseDir: string;
|
|
37
|
+
}
|
|
38
|
+
export interface RepairOptions {
|
|
39
|
+
verbose?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface RepairResult {
|
|
42
|
+
success: boolean;
|
|
43
|
+
repaired: string[];
|
|
44
|
+
errors: string[];
|
|
45
|
+
stillInvalid: string[];
|
|
46
|
+
}
|
|
47
|
+
export interface BackupResult {
|
|
48
|
+
success: boolean;
|
|
49
|
+
backupPath?: string;
|
|
50
|
+
fileCount?: number;
|
|
51
|
+
totalSize?: number;
|
|
52
|
+
error?: string;
|
|
53
|
+
}
|
|
54
|
+
export declare const DefaultsMapSchema: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
55
|
+
export type DefaultsMap = z.infer<typeof DefaultsMapSchema>;
|
|
56
|
+
/**
|
|
57
|
+
* PromptInstaller handles installation, validation, and maintenance of prompt files
|
|
58
|
+
*/
|
|
59
|
+
export declare class PromptInstaller {
|
|
60
|
+
/**
|
|
61
|
+
* Install default prompt files
|
|
62
|
+
* @param baseDir - Base directory for prompts (defaults to DEFAULT_BASE_DIR)
|
|
63
|
+
* @param defaults - Map of relative path to file content
|
|
64
|
+
* @param options - Installation options
|
|
65
|
+
* @returns Installation result with success status and details
|
|
66
|
+
*/
|
|
67
|
+
install(baseDir: string | null, defaults: DefaultsMap, options?: InstallOptions): Promise<InstallResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Uninstall prompt files
|
|
70
|
+
* @param baseDir - Base directory for prompts
|
|
71
|
+
* @param options - Uninstallation options
|
|
72
|
+
* @returns Uninstallation result with removed files
|
|
73
|
+
*/
|
|
74
|
+
uninstall(baseDir: string | null, options?: UninstallOptions): Promise<UninstallResult>;
|
|
75
|
+
/**
|
|
76
|
+
* Helper method to recursively collect all files in a directory
|
|
77
|
+
*/
|
|
78
|
+
private collectAllFiles;
|
|
79
|
+
/**
|
|
80
|
+
* Validate prompt installation
|
|
81
|
+
* @param baseDir - Base directory to validate
|
|
82
|
+
* @returns Validation result with issues found
|
|
83
|
+
*/
|
|
84
|
+
validate(baseDir: string | null): Promise<ValidationResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Repair prompt installation
|
|
87
|
+
* @param baseDir - Base directory to repair
|
|
88
|
+
* @param defaults - Map of default files to restore
|
|
89
|
+
* @param options - Repair options
|
|
90
|
+
* @returns Repair result with fixed issues
|
|
91
|
+
*/
|
|
92
|
+
repair(baseDir: string | null, defaults: DefaultsMap, options?: RepairOptions): Promise<RepairResult>;
|
|
93
|
+
/**
|
|
94
|
+
* Create backup of current prompts
|
|
95
|
+
* @param baseDir - Base directory to backup
|
|
96
|
+
* @param backupPath - Where to save backup
|
|
97
|
+
* @returns Backup result with location and stats
|
|
98
|
+
*/
|
|
99
|
+
backup(baseDir: string | null, backupPath: string): Promise<BackupResult>;
|
|
100
|
+
/**
|
|
101
|
+
* Helper method to copy a directory recursively
|
|
102
|
+
*/
|
|
103
|
+
private copyDirectory;
|
|
104
|
+
/**
|
|
105
|
+
* Helper method to count files in a directory
|
|
106
|
+
*/
|
|
107
|
+
private countFiles;
|
|
108
|
+
/**
|
|
109
|
+
* Helper method to fix file permissions recursively
|
|
110
|
+
*/
|
|
111
|
+
private fixFilePermissions;
|
|
112
|
+
/**
|
|
113
|
+
* Expand path with home directory and environment variables
|
|
114
|
+
* @param path - Path to expand
|
|
115
|
+
* @returns Expanded absolute path
|
|
116
|
+
*/
|
|
117
|
+
expandPath(inputPath: string): string;
|
|
118
|
+
}
|