@vybestack/llxprt-code-core 0.1.15 → 0.1.16-hotfix1
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 +36 -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/mcp/oauth-utils.js +12 -4
- package/dist/src/mcp/oauth-utils.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.stateful.integration.test.js +1 -1
- package/dist/src/providers/openai/OpenAIProvider.stateful.integration.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 +32 -11
- 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
|
@@ -126,6 +126,21 @@ export class GemmaToolCallParser {
|
|
|
126
126
|
}
|
|
127
127
|
catch (error) {
|
|
128
128
|
if (typeof args === 'string') {
|
|
129
|
+
// Attempt targeted repair for common unescaped inner quotes in JSON strings
|
|
130
|
+
const repaired = this.tryRepairJson(args);
|
|
131
|
+
if (repaired) {
|
|
132
|
+
try {
|
|
133
|
+
const parsedArgs = JSON.parse(repaired);
|
|
134
|
+
toolCalls.push({
|
|
135
|
+
name: toolName,
|
|
136
|
+
arguments: parsedArgs,
|
|
137
|
+
});
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
catch (_ignored) {
|
|
141
|
+
// fall through to legacy fallback
|
|
142
|
+
}
|
|
143
|
+
}
|
|
129
144
|
// Try to extract a simpler JSON pattern if the full match fails
|
|
130
145
|
const simpleJsonMatch = args.match(/^{[^{]*}$/);
|
|
131
146
|
if (simpleJsonMatch) {
|
|
@@ -150,7 +165,7 @@ export class GemmaToolCallParser {
|
|
|
150
165
|
}
|
|
151
166
|
}
|
|
152
167
|
}
|
|
153
|
-
// Clean up
|
|
168
|
+
// Clean up stray markers that were not matched (best effort) but preserve original whitespace
|
|
154
169
|
cleanedContent = cleanedContent
|
|
155
170
|
.replace(/\[TOOL_REQUEST(?:_END)?]/g, '')
|
|
156
171
|
.replace(/<\|im_start\|>assistant/g, '')
|
|
@@ -162,14 +177,41 @@ export class GemmaToolCallParser {
|
|
|
162
177
|
// .replace(/<think>[\s\S]*?<\/think>/g, '') // Keep think tags visible by default
|
|
163
178
|
.replace(/<tool_call>\s*\{[^}]*$/gm, '') // Remove incomplete tool calls
|
|
164
179
|
.replace(/\{"name"\s*:\s*"[^"]*"\s*,?\s*"arguments"\s*:\s*\{[^}]*$/gm, '') // Remove incomplete JSON tool calls
|
|
165
|
-
.replace(/✦\s*<think>/g, '')
|
|
166
|
-
.
|
|
180
|
+
.replace(/✦\s*<think>/g, '')
|
|
181
|
+
.trim();
|
|
182
|
+
// Collapse multiple consecutive newlines/spaces after removing tool calls
|
|
183
|
+
cleanedContent = cleanedContent
|
|
184
|
+
.replace(/\n\s*\n/g, '\n')
|
|
185
|
+
.replace(/\n/g, ' ')
|
|
167
186
|
.trim();
|
|
168
187
|
return {
|
|
169
188
|
cleanedContent,
|
|
170
189
|
toolCalls,
|
|
171
190
|
};
|
|
172
191
|
}
|
|
192
|
+
// Best-effort repair for JSON with unescaped inner quotes in string values.
|
|
193
|
+
tryRepairJson(args) {
|
|
194
|
+
try {
|
|
195
|
+
JSON.parse(args);
|
|
196
|
+
return args; // already valid
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// Target only inner quotes within JSON string values, preserving multibyte and spacing
|
|
200
|
+
// e.g., { "command": "printf "ありがとう 世界"" } -> { "command": "printf \"ありがとう 世界\"" }
|
|
201
|
+
const repaired = args.replace(/:(\s)*"((?:\\.|[^"])*?)"(\s*)([,}])/gs, (_m, s1, val, s2, tail) => {
|
|
202
|
+
// Escape only unescaped quotes inside the value
|
|
203
|
+
const fixed = val.replace(/(?<!\\)"/g, '\\"');
|
|
204
|
+
return `:${s1}"${fixed}"${s2}${tail}`;
|
|
205
|
+
});
|
|
206
|
+
try {
|
|
207
|
+
JSON.parse(repaired);
|
|
208
|
+
return repaired;
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
173
215
|
parseKeyValuePairs(str) {
|
|
174
216
|
const args = {};
|
|
175
217
|
// Parse "key value key2 value2" format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextToolCallParser.js","sourceRoot":"","sources":["../../../src/parsers/TextToolCallParser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TextToolCallParser.js","sourceRoot":"","sources":["../../../src/parsers/TextToolCallParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Vybestack LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { describe, it, expect } from 'vitest';
|
|
17
|
+
import { GemmaToolCallParser } from './TextToolCallParser.js';
|
|
18
|
+
// Simulate a Hermes/text style tool call directive embedded in text
|
|
19
|
+
// We'll use the simplest recognized pattern: [TOOL_REQUEST] name {args} [TOOL_REQUEST_END]
|
|
20
|
+
// Where args is JSON.
|
|
21
|
+
describe('TextToolCallParser multibyte handling', () => {
|
|
22
|
+
it('preserves quoted spaces and multibyte chars in run_shell_command.command', () => {
|
|
23
|
+
const parser = new GemmaToolCallParser();
|
|
24
|
+
const commandValue = 'printf "ありがとう 世界"';
|
|
25
|
+
const jsonArgs = JSON.stringify({ command: commandValue }, null, 2);
|
|
26
|
+
const content = `Some text before
|
|
27
|
+
[TOOL_REQUEST] run_shell_command ${jsonArgs} [TOOL_REQUEST_END]
|
|
28
|
+
And after.`;
|
|
29
|
+
const { cleanedContent, toolCalls } = parser.parse(content);
|
|
30
|
+
expect(toolCalls.length).toBe(1);
|
|
31
|
+
expect(toolCalls[0].name).toBe('run_shell_command');
|
|
32
|
+
const args = toolCalls[0].arguments;
|
|
33
|
+
expect(args.command).toBe('printf "ありがとう 世界"');
|
|
34
|
+
// Ensure original content around tool call remains and spacing preserved
|
|
35
|
+
expect(cleanedContent).toContain('Some text before');
|
|
36
|
+
expect(cleanedContent).toContain('And after.');
|
|
37
|
+
// Ensure the exact multibyte phrase with space remains in surrounding text if present
|
|
38
|
+
// (cleanedContent should not collapse spaces globally)
|
|
39
|
+
expect(cleanedContent.includes('ありがとう 世界')).toBe(false); // tool call removed, not present in cleaned
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=TextToolCallParser.multibyte.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextToolCallParser.multibyte.test.js","sourceRoot":"","sources":["../../../src/parsers/TextToolCallParser.multibyte.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,oEAAoE;AACpE,2FAA2F;AAC3F,sBAAsB;AAEtB,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAEzC,MAAM,YAAY,GAAG,mBAAmB,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG;mCACe,QAAQ;WAChC,CAAC;QAER,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAoC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE/C,yEAAyE;QACzE,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC/C,sFAAsF;QACtF,uDAAuD;QACvD,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,4CAA4C;IACvG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TemplateVariables, TemplateProcessingOptions, PromptContext } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* TemplateEngine - Handles variable substitution in prompt templates
|
|
4
|
+
*
|
|
5
|
+
* Implements REQ-004: Template Processing requirements
|
|
6
|
+
* - Supports {{VARIABLE_NAME}} syntax
|
|
7
|
+
* - Substitutes TOOL_NAME, MODEL, and PROVIDER variables
|
|
8
|
+
* - Handles malformed templates gracefully
|
|
9
|
+
* - Logs substitutions when DEBUG=1 (REQ-010.4)
|
|
10
|
+
*/
|
|
11
|
+
export declare class TemplateEngine {
|
|
12
|
+
/**
|
|
13
|
+
* Process a template string with variable substitution
|
|
14
|
+
* @param content Template content with {{variables}}
|
|
15
|
+
* @param variables Map of variable names to values
|
|
16
|
+
* @param options Optional processing configuration
|
|
17
|
+
* @returns Processed content with variables substituted
|
|
18
|
+
*/
|
|
19
|
+
processTemplate(content: string, variables: TemplateVariables, options?: TemplateProcessingOptions): string;
|
|
20
|
+
/**
|
|
21
|
+
* Create template variables from runtime context
|
|
22
|
+
* @param context Runtime context with provider, model, tools, and environment
|
|
23
|
+
* @param currentTool Optional current tool being processed
|
|
24
|
+
* @returns Map of variable names to values
|
|
25
|
+
*/
|
|
26
|
+
createVariablesFromContext(context: PromptContext, currentTool?: string | null): TemplateVariables;
|
|
27
|
+
/**
|
|
28
|
+
* Log variable substitution for debugging (when DEBUG=1)
|
|
29
|
+
* @param variable Variable name being substituted
|
|
30
|
+
* @param value Value being substituted
|
|
31
|
+
* @param options Processing options
|
|
32
|
+
*/
|
|
33
|
+
private logSubstitution;
|
|
34
|
+
}
|
|
35
|
+
export default TemplateEngine;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TemplateEngine - Handles variable substitution in prompt templates
|
|
3
|
+
*
|
|
4
|
+
* Implements REQ-004: Template Processing requirements
|
|
5
|
+
* - Supports {{VARIABLE_NAME}} syntax
|
|
6
|
+
* - Substitutes TOOL_NAME, MODEL, and PROVIDER variables
|
|
7
|
+
* - Handles malformed templates gracefully
|
|
8
|
+
* - Logs substitutions when DEBUG=1 (REQ-010.4)
|
|
9
|
+
*/
|
|
10
|
+
export class TemplateEngine {
|
|
11
|
+
/**
|
|
12
|
+
* Process a template string with variable substitution
|
|
13
|
+
* @param content Template content with {{variables}}
|
|
14
|
+
* @param variables Map of variable names to values
|
|
15
|
+
* @param options Optional processing configuration
|
|
16
|
+
* @returns Processed content with variables substituted
|
|
17
|
+
*/
|
|
18
|
+
processTemplate(content, variables, options) {
|
|
19
|
+
// Step 1: Validate inputs
|
|
20
|
+
if (content === null || content === undefined) {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
if (typeof content !== 'string') {
|
|
24
|
+
return content;
|
|
25
|
+
}
|
|
26
|
+
const vars = variables || {};
|
|
27
|
+
// Step 2: Initialize processing state
|
|
28
|
+
let result = '';
|
|
29
|
+
let currentPosition = 0;
|
|
30
|
+
const contentLength = content.length;
|
|
31
|
+
// Step 3: Process template
|
|
32
|
+
while (currentPosition < contentLength) {
|
|
33
|
+
// Find position of next "{{"
|
|
34
|
+
const openBracketPos = content.indexOf('{{', currentPosition);
|
|
35
|
+
if (openBracketPos === -1) {
|
|
36
|
+
// No more variables, append rest and break
|
|
37
|
+
result += content.substring(currentPosition);
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
// Append content before "{{"
|
|
41
|
+
result += content.substring(currentPosition, openBracketPos);
|
|
42
|
+
// Find position of next "}}"
|
|
43
|
+
const closeBracketPos = content.indexOf('}}', openBracketPos + 2);
|
|
44
|
+
if (closeBracketPos === -1) {
|
|
45
|
+
// No closing brackets, append rest and break
|
|
46
|
+
result += content.substring(openBracketPos);
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
// Extract variable name and trim whitespace
|
|
50
|
+
const variableName = content
|
|
51
|
+
.substring(openBracketPos + 2, closeBracketPos)
|
|
52
|
+
.trim();
|
|
53
|
+
// Handle empty variable names - leave as-is
|
|
54
|
+
if (variableName === '') {
|
|
55
|
+
result += content.substring(openBracketPos, closeBracketPos + 2);
|
|
56
|
+
currentPosition = closeBracketPos + 2;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
// Check if variable name contains brackets (nested variables not supported)
|
|
60
|
+
if (variableName.includes('{{') || variableName.includes('}}')) {
|
|
61
|
+
// Leave the whole pattern as-is and move to next character
|
|
62
|
+
result += content.substring(openBracketPos, openBracketPos + 2);
|
|
63
|
+
currentPosition = openBracketPos + 2;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
// Perform substitution
|
|
67
|
+
if (variableName in vars) {
|
|
68
|
+
const variableValue = vars[variableName];
|
|
69
|
+
if (variableValue === null || variableValue === undefined) {
|
|
70
|
+
// Append empty string
|
|
71
|
+
result += '';
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
result += String(variableValue);
|
|
75
|
+
// Log substitution if debug is enabled
|
|
76
|
+
this.logSubstitution(variableName, String(variableValue), options);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// Variable not found, substitute with empty string
|
|
81
|
+
result += '';
|
|
82
|
+
this.logSubstitution(variableName, '', options);
|
|
83
|
+
}
|
|
84
|
+
// Update position to after "}}"
|
|
85
|
+
currentPosition = closeBracketPos + 2;
|
|
86
|
+
}
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Create template variables from runtime context
|
|
91
|
+
* @param context Runtime context with provider, model, tools, and environment
|
|
92
|
+
* @param currentTool Optional current tool being processed
|
|
93
|
+
* @returns Map of variable names to values
|
|
94
|
+
*/
|
|
95
|
+
createVariablesFromContext(context, currentTool = null) {
|
|
96
|
+
// Validate context - return minimal valid object if no context
|
|
97
|
+
if (!context) {
|
|
98
|
+
return {
|
|
99
|
+
MODEL: '',
|
|
100
|
+
PROVIDER: '',
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// Initialize variables map with required fields
|
|
104
|
+
const variables = {
|
|
105
|
+
MODEL: context.model || '',
|
|
106
|
+
PROVIDER: context.provider || '',
|
|
107
|
+
};
|
|
108
|
+
// Add tool-specific variable
|
|
109
|
+
if (currentTool && currentTool.trim()) {
|
|
110
|
+
variables['TOOL_NAME'] = currentTool;
|
|
111
|
+
}
|
|
112
|
+
// Add environment variables
|
|
113
|
+
if (context.environment) {
|
|
114
|
+
if (context.environment.isGitRepository === true) {
|
|
115
|
+
variables['IS_GIT_REPO'] = 'true';
|
|
116
|
+
}
|
|
117
|
+
if (context.environment.isSandboxed === true) {
|
|
118
|
+
variables['IS_SANDBOXED'] = 'true';
|
|
119
|
+
}
|
|
120
|
+
if (context.environment.hasIdeCompanion === true) {
|
|
121
|
+
variables['HAS_IDE'] = 'true';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Add derived variables
|
|
125
|
+
if (context.provider) {
|
|
126
|
+
variables['PROVIDER_UPPER'] = context.provider.toUpperCase();
|
|
127
|
+
}
|
|
128
|
+
if (context.model) {
|
|
129
|
+
variables['MODEL_SAFE'] = context.model.replace(/[^a-zA-Z0-9]/g, '_');
|
|
130
|
+
}
|
|
131
|
+
return variables;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Log variable substitution for debugging (when DEBUG=1)
|
|
135
|
+
* @param variable Variable name being substituted
|
|
136
|
+
* @param value Value being substituted
|
|
137
|
+
* @param options Processing options
|
|
138
|
+
*/
|
|
139
|
+
logSubstitution(variable, value, options) {
|
|
140
|
+
// Check if debug is enabled via environment variable or options
|
|
141
|
+
const debugEnabled = process.env.DEBUG === '1' || options?.debug === true;
|
|
142
|
+
if (debugEnabled) {
|
|
143
|
+
console.log(`Template substitution: ${variable} -> ${value}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Export the class as default for convenience
|
|
148
|
+
export default TemplateEngine;
|
|
149
|
+
//# sourceMappingURL=TemplateEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateEngine.js","sourceRoot":"","sources":["../../../src/prompt-config/TemplateEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|