@vybestack/llxprt-code-core 0.1.14 → 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 +90 -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/oauth2.test.d.ts +1 -1
- package/dist/src/code_assist/oauth2.test.js +15 -15
- package/dist/src/code_assist/oauth2.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 +37 -5
- package/dist/src/config/config.js +85 -15
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +33 -0
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/flashFallback.test.js +23 -47
- package/dist/src/config/flashFallback.test.js.map +1 -1
- package/dist/src/config/models.d.ts +1 -0
- package/dist/src/config/models.js +1 -0
- 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 +15 -1
- package/dist/src/core/client.js +161 -45
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +291 -42
- 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 +2 -7
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +6 -2
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +1 -3
- package/dist/src/core/coreToolScheduler.js +48 -19
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +90 -18
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.js +37 -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/googleGenAIWrapper.d.ts +21 -0
- package/dist/src/core/googleGenAIWrapper.js +36 -0
- package/dist/src/core/googleGenAIWrapper.js.map +1 -0
- package/dist/src/core/googleGenAIWrapper.test.d.ts +6 -0
- package/dist/src/core/googleGenAIWrapper.test.js +104 -0
- package/dist/src/core/googleGenAIWrapper.test.js.map +1 -0
- package/dist/src/core/logger.d.ts +1 -0
- package/dist/src/core/logger.js +22 -8
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/logger.test.js +60 -9
- package/dist/src/core/logger.test.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.js +19 -4
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +8 -3
- 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 +6 -1
- package/dist/src/core/tokenLimits.js.map +1 -1
- package/dist/src/core/turn.d.ts +5 -1
- package/dist/src/core/turn.js +7 -2
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +2 -2
- package/dist/src/core/turn.test.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 +19 -7
- package/dist/src/ide/ide-client.js +110 -37
- 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/ide/ideContext.d.ts +212 -107
- package/dist/src/ide/ideContext.js +45 -44
- package/dist/src/ide/ideContext.js.map +1 -1
- package/dist/src/ide/ideContext.test.js +254 -100
- package/dist/src/ide/ideContext.test.js.map +1 -1
- package/dist/src/index.d.ts +16 -0
- package/dist/src/index.js +20 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/{providers/IProviderConfig.js → integration-tests/todo-system.test.d.ts} +0 -1
- package/dist/src/integration-tests/todo-system.test.js +610 -0
- package/dist/src/integration-tests/todo-system.test.js.map +1 -0
- package/dist/src/mcp/oauth-provider.d.ts +5 -1
- package/dist/src/mcp/oauth-provider.js +39 -14
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +11 -10
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.d.ts +3 -1
- package/dist/src/mcp/oauth-token-storage.js +3 -1
- package/dist/src/mcp/oauth-token-storage.js.map +1 -1
- package/dist/src/mcp/oauth-utils.js +14 -6
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/oauth-utils.test.js +1 -1
- package/dist/src/mcp/oauth-utils.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/prompts/mcp-prompts.d.ts +8 -0
- package/dist/src/prompts/mcp-prompts.js +13 -0
- package/dist/src/prompts/mcp-prompts.js.map +1 -0
- package/dist/src/prompts/prompt-registry.d.ts +26 -0
- package/dist/src/prompts/prompt-registry.js +47 -0
- package/dist/src/prompts/prompt-registry.js.map +1 -0
- package/dist/src/providers/IProvider.d.ts +10 -0
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +24 -9
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +1 -1
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js +1 -1
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js.map +1 -1
- 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 +42 -25
- 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 +141 -24
- 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/complexity-analyzer.d.ts +92 -0
- package/dist/src/services/complexity-analyzer.js +287 -0
- package/dist/src/services/complexity-analyzer.js.map +1 -0
- package/dist/src/services/fileDiscoveryService.test.js +101 -60
- package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
- package/dist/src/services/gitService.test.d.ts +1 -1
- package/dist/src/services/gitService.test.js +65 -102
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/index.d.ts +9 -0
- package/dist/src/services/index.js +8 -0
- package/dist/src/services/index.js.map +1 -0
- package/dist/src/services/loopDetectionService.d.ts +12 -0
- package/dist/src/services/loopDetectionService.js +62 -12
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +90 -11
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.d.ts +34 -0
- package/dist/src/services/shellExecutionService.js +121 -0
- package/dist/src/services/shellExecutionService.js.map +1 -0
- package/dist/src/services/shellExecutionService.multibyte.test.d.ts +6 -0
- 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.d.ts +6 -0
- package/dist/src/services/shellExecutionService.test.js +264 -0
- package/dist/src/services/shellExecutionService.test.js.map +1 -0
- 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/services/todo-reminder-service.d.ts +42 -0
- package/dist/src/services/todo-reminder-service.js +77 -0
- package/dist/src/services/todo-reminder-service.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +4 -2
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +81 -34
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +6 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +19 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/constants.d.ts +2 -1
- package/dist/src/telemetry/constants.js +2 -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/index.d.ts +2 -2
- package/dist/src/telemetry/index.js +2 -2
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +3 -2
- package/dist/src/telemetry/loggers.js +30 -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 +13 -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 +19 -4
- package/dist/src/telemetry/types.js +30 -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 +29 -4
- 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 +32 -6
- 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 +76 -9
- 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.d.ts +26 -2
- package/dist/src/tools/mcp-client.js +96 -32
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +87 -1
- 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/modifiable-tool.test.js +51 -62
- package/dist/src/tools/modifiable-tool.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.d.ts +8 -3
- package/dist/src/tools/shell.js +185 -114
- 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.d.ts +1 -1
- package/dist/src/tools/shell.test.js +323 -138
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/todo-read.d.ts +4 -1
- package/dist/src/tools/todo-read.js +136 -20
- package/dist/src/tools/todo-read.js.map +1 -1
- package/dist/src/tools/todo-read.test.js +10 -6
- package/dist/src/tools/todo-read.test.js.map +1 -1
- package/dist/src/tools/todo-schemas.d.ts +4 -4
- package/dist/src/tools/todo-write.d.ts +3 -0
- package/dist/src/tools/todo-write.js +96 -9
- package/dist/src/tools/todo-write.js.map +1 -1
- package/dist/src/tools/todo-write.test.js +17 -13
- package/dist/src/tools/todo-write.test.js.map +1 -1
- package/dist/src/tools/tool-context.d.ts +14 -0
- package/dist/src/tools/tool-context.js +7 -0
- package/dist/src/tools/tool-context.js.map +1 -0
- 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.d.ts +4 -1
- package/dist/src/tools/tool-registry.js +14 -5
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +10 -2
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +16 -1
- package/dist/src/tools/tools.js +2 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +18 -4
- package/dist/src/tools/web-fetch.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.js +51 -27
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.test.js +59 -0
- 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/formatters.d.ts +6 -0
- package/dist/src/utils/formatters.js +16 -0
- package/dist/src/utils/formatters.js.map +1 -0
- 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 +12 -27
- package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
- package/dist/src/utils/nextSpeakerChecker.test.js +8 -4
- package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
- package/dist/src/utils/retry.d.ts +3 -0
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.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/shell-utils.d.ts +37 -3
- package/dist/src/utils/shell-utils.js +110 -47
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +146 -396
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/src/utils/summarizer.js +2 -2
- package/dist/src/utils/summarizer.js.map +1 -1
- package/dist/src/utils/textUtils.d.ts +13 -0
- package/dist/src/utils/textUtils.js +28 -0
- package/dist/src/utils/textUtils.js.map +1 -0
- 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 +3 -2
- package/dist/src/providers/IProviderConfig.d.ts +0 -31
- package/dist/src/providers/IProviderConfig.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -3,18 +3,26 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { describe, it, expect, beforeEach } from 'vitest';
|
|
6
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
7
7
|
import { Config } from './config.js';
|
|
8
8
|
import { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL } from './models.js';
|
|
9
|
+
import { IdeClient } from '../ide/ide-client.js';
|
|
10
|
+
import fs from 'node:fs';
|
|
11
|
+
vi.mock('node:fs');
|
|
9
12
|
describe('Flash Model Fallback Configuration', () => {
|
|
10
13
|
let config;
|
|
11
14
|
beforeEach(() => {
|
|
15
|
+
vi.mocked(fs.existsSync).mockReturnValue(true);
|
|
16
|
+
vi.mocked(fs.statSync).mockReturnValue({
|
|
17
|
+
isDirectory: () => true,
|
|
18
|
+
});
|
|
12
19
|
config = new Config({
|
|
13
20
|
sessionId: 'test-session',
|
|
14
21
|
targetDir: '/test',
|
|
15
22
|
debugMode: false,
|
|
16
23
|
cwd: '/test',
|
|
17
24
|
model: DEFAULT_GEMINI_MODEL,
|
|
25
|
+
ideClient: IdeClient.getInstance(false),
|
|
18
26
|
});
|
|
19
27
|
// Initialize contentGeneratorConfig for testing
|
|
20
28
|
config.contentGeneratorConfig = {
|
|
@@ -22,21 +30,11 @@ describe('Flash Model Fallback Configuration', () => {
|
|
|
22
30
|
authType: 'oauth-personal',
|
|
23
31
|
};
|
|
24
32
|
});
|
|
33
|
+
// These tests do not actually test fallback. isInFallbackMode() only returns true,
|
|
34
|
+
// when setFallbackMode is marked as true. This is to decouple setting a model
|
|
35
|
+
// with the fallback mechanism. This will be necessary we introduce more
|
|
36
|
+
// intelligent model routing.
|
|
25
37
|
describe('setModel', () => {
|
|
26
|
-
it('should update the model and mark as switched during session', () => {
|
|
27
|
-
expect(config.getModel()).toBe(DEFAULT_GEMINI_MODEL);
|
|
28
|
-
expect(config.isModelSwitchedDuringSession()).toBe(false);
|
|
29
|
-
config.setModel(DEFAULT_GEMINI_FLASH_MODEL);
|
|
30
|
-
expect(config.getModel()).toBe(DEFAULT_GEMINI_FLASH_MODEL);
|
|
31
|
-
expect(config.isModelSwitchedDuringSession()).toBe(true);
|
|
32
|
-
});
|
|
33
|
-
it('should handle multiple model switches during session', () => {
|
|
34
|
-
config.setModel(DEFAULT_GEMINI_FLASH_MODEL);
|
|
35
|
-
expect(config.isModelSwitchedDuringSession()).toBe(true);
|
|
36
|
-
config.setModel('gemini-1.5-pro');
|
|
37
|
-
expect(config.getModel()).toBe('gemini-1.5-pro');
|
|
38
|
-
expect(config.isModelSwitchedDuringSession()).toBe(true);
|
|
39
|
-
});
|
|
40
38
|
it('should only mark as switched if contentGeneratorConfig exists', () => {
|
|
41
39
|
// Create config without initializing contentGeneratorConfig
|
|
42
40
|
const newConfig = new Config({
|
|
@@ -45,10 +43,11 @@ describe('Flash Model Fallback Configuration', () => {
|
|
|
45
43
|
debugMode: false,
|
|
46
44
|
cwd: '/test',
|
|
47
45
|
model: DEFAULT_GEMINI_MODEL,
|
|
46
|
+
ideClient: IdeClient.getInstance(false),
|
|
48
47
|
});
|
|
49
48
|
// Should not crash when contentGeneratorConfig is undefined
|
|
50
49
|
newConfig.setModel(DEFAULT_GEMINI_FLASH_MODEL);
|
|
51
|
-
expect(newConfig.
|
|
50
|
+
expect(newConfig.isInFallbackMode()).toBe(false);
|
|
52
51
|
});
|
|
53
52
|
});
|
|
54
53
|
describe('getModel', () => {
|
|
@@ -65,50 +64,27 @@ describe('Flash Model Fallback Configuration', () => {
|
|
|
65
64
|
debugMode: false,
|
|
66
65
|
cwd: '/test',
|
|
67
66
|
model: 'custom-model',
|
|
67
|
+
ideClient: IdeClient.getInstance(false),
|
|
68
68
|
});
|
|
69
69
|
expect(newConfig.getModel()).toBe('custom-model');
|
|
70
70
|
});
|
|
71
71
|
});
|
|
72
|
-
describe('
|
|
72
|
+
describe('isInFallbackMode', () => {
|
|
73
73
|
it('should start as false for new session', () => {
|
|
74
|
-
expect(config.
|
|
74
|
+
expect(config.isInFallbackMode()).toBe(false);
|
|
75
75
|
});
|
|
76
76
|
it('should remain false if no model switch occurs', () => {
|
|
77
77
|
// Perform other operations that don't involve model switching
|
|
78
|
-
expect(config.
|
|
78
|
+
expect(config.isInFallbackMode()).toBe(false);
|
|
79
79
|
});
|
|
80
80
|
it('should persist switched state throughout session', () => {
|
|
81
81
|
config.setModel(DEFAULT_GEMINI_FLASH_MODEL);
|
|
82
|
-
|
|
82
|
+
// Setting state for fallback mode as is expected of clients
|
|
83
|
+
config.setFallbackMode(true);
|
|
84
|
+
expect(config.isInFallbackMode()).toBe(true);
|
|
83
85
|
// Should remain true even after getting model
|
|
84
86
|
config.getModel();
|
|
85
|
-
expect(config.
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
describe('resetModelToDefault', () => {
|
|
89
|
-
it('should reset model to default and clear session switch flag', () => {
|
|
90
|
-
// Switch to Flash first
|
|
91
|
-
config.setModel(DEFAULT_GEMINI_FLASH_MODEL);
|
|
92
|
-
expect(config.getModel()).toBe(DEFAULT_GEMINI_FLASH_MODEL);
|
|
93
|
-
expect(config.isModelSwitchedDuringSession()).toBe(true);
|
|
94
|
-
// Reset to default
|
|
95
|
-
config.resetModelToDefault();
|
|
96
|
-
// Should be back to default with flag cleared
|
|
97
|
-
expect(config.getModel()).toBe(DEFAULT_GEMINI_MODEL);
|
|
98
|
-
expect(config.isModelSwitchedDuringSession()).toBe(false);
|
|
99
|
-
});
|
|
100
|
-
it('should handle case where contentGeneratorConfig is not initialized', () => {
|
|
101
|
-
// Create config without initializing contentGeneratorConfig
|
|
102
|
-
const newConfig = new Config({
|
|
103
|
-
sessionId: 'test-session-2',
|
|
104
|
-
targetDir: '/test',
|
|
105
|
-
debugMode: false,
|
|
106
|
-
cwd: '/test',
|
|
107
|
-
model: DEFAULT_GEMINI_MODEL,
|
|
108
|
-
});
|
|
109
|
-
// Should not crash when contentGeneratorConfig is undefined
|
|
110
|
-
expect(() => newConfig.resetModelToDefault()).not.toThrow();
|
|
111
|
-
expect(newConfig.isModelSwitchedDuringSession()).toBe(false);
|
|
87
|
+
expect(config.isInFallbackMode()).toBe(true);
|
|
112
88
|
});
|
|
113
89
|
});
|
|
114
90
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flashFallback.test.js","sourceRoot":"","sources":["../../../src/config/flashFallback.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"flashFallback.test.js","sourceRoot":"","sources":["../../../src/config/flashFallback.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,5 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export declare const DEFAULT_GEMINI_MODEL = "gemini-2.5-pro";
|
|
7
7
|
export declare const DEFAULT_GEMINI_FLASH_MODEL = "gemini-2.5-flash";
|
|
8
|
+
export declare const DEFAULT_GEMINI_FLASH_LITE_MODEL = "gemini-2.5-flash-lite";
|
|
8
9
|
export declare const DEFAULT_GEMINI_EMBEDDING_MODEL = "gemini-embedding-001";
|
|
@@ -5,5 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export const DEFAULT_GEMINI_MODEL = 'gemini-2.5-pro';
|
|
7
7
|
export const DEFAULT_GEMINI_FLASH_MODEL = 'gemini-2.5-flash';
|
|
8
|
+
export const DEFAULT_GEMINI_FLASH_LITE_MODEL = 'gemini-2.5-flash-lite';
|
|
8
9
|
export const DEFAULT_GEMINI_EMBEDDING_MODEL = 'gemini-embedding-001';
|
|
9
10
|
//# sourceMappingURL=models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/config/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AAC7D,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/config/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AAC7D,MAAM,CAAC,MAAM,+BAA+B,GAAG,uBAAuB,CAAC;AAEvE,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Profile } from '../types/modelParams.js';
|
|
7
|
+
/**
|
|
8
|
+
* Manages saving and loading of configuration profiles.
|
|
9
|
+
* Profiles are stored in ~/.llxprt/profiles/<profileName>.json
|
|
10
|
+
*/
|
|
11
|
+
export declare class ProfileManager {
|
|
12
|
+
private profilesDir;
|
|
13
|
+
constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Save the current configuration to a profile.
|
|
16
|
+
* @param profileName The name of the profile to save
|
|
17
|
+
* @param profile The profile configuration to save
|
|
18
|
+
*/
|
|
19
|
+
saveProfile(profileName: string, profile: Profile): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Load a profile configuration.
|
|
22
|
+
* @param profileName The name of the profile to load
|
|
23
|
+
* @returns The loaded profile configuration
|
|
24
|
+
*/
|
|
25
|
+
loadProfile(profileName: string): Promise<Profile>;
|
|
26
|
+
/**
|
|
27
|
+
* List all available profile names.
|
|
28
|
+
* @returns Array of profile names (without .json extension)
|
|
29
|
+
*/
|
|
30
|
+
listProfiles(): Promise<string[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Delete a profile.
|
|
33
|
+
* @param _profileName The name of the profile to delete
|
|
34
|
+
*/
|
|
35
|
+
deleteProfile(_profileName: string): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Check if a profile exists.
|
|
38
|
+
* @param _profileName The name of the profile to check
|
|
39
|
+
* @returns True if the profile exists
|
|
40
|
+
*/
|
|
41
|
+
profileExists(_profileName: string): Promise<boolean>;
|
|
42
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'fs/promises';
|
|
7
|
+
import os from 'os';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
/**
|
|
10
|
+
* Manages saving and loading of configuration profiles.
|
|
11
|
+
* Profiles are stored in ~/.llxprt/profiles/<profileName>.json
|
|
12
|
+
*/
|
|
13
|
+
export class ProfileManager {
|
|
14
|
+
profilesDir;
|
|
15
|
+
constructor() {
|
|
16
|
+
this.profilesDir = path.join(os.homedir(), '.llxprt', 'profiles');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Save the current configuration to a profile.
|
|
20
|
+
* @param profileName The name of the profile to save
|
|
21
|
+
* @param profile The profile configuration to save
|
|
22
|
+
*/
|
|
23
|
+
async saveProfile(profileName, profile) {
|
|
24
|
+
// Ensure profiles directory exists
|
|
25
|
+
await fs.mkdir(this.profilesDir, { recursive: true });
|
|
26
|
+
// Construct the file path
|
|
27
|
+
const filePath = path.join(this.profilesDir, `${profileName}.json`);
|
|
28
|
+
// Write the profile to file with nice formatting
|
|
29
|
+
await fs.writeFile(filePath, JSON.stringify(profile, null, 2), 'utf8');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Load a profile configuration.
|
|
33
|
+
* @param profileName The name of the profile to load
|
|
34
|
+
* @returns The loaded profile configuration
|
|
35
|
+
*/
|
|
36
|
+
async loadProfile(profileName) {
|
|
37
|
+
// Construct the file path
|
|
38
|
+
const filePath = path.join(this.profilesDir, `${profileName}.json`);
|
|
39
|
+
try {
|
|
40
|
+
// Read the profile file
|
|
41
|
+
const content = await fs.readFile(filePath, 'utf8');
|
|
42
|
+
// Parse JSON
|
|
43
|
+
const profile = JSON.parse(content);
|
|
44
|
+
// Validate required fields
|
|
45
|
+
if (!profile.version ||
|
|
46
|
+
!profile.provider ||
|
|
47
|
+
!profile.model ||
|
|
48
|
+
!profile.modelParams ||
|
|
49
|
+
!profile.ephemeralSettings) {
|
|
50
|
+
throw new Error('missing required fields');
|
|
51
|
+
}
|
|
52
|
+
// Check version
|
|
53
|
+
if (profile.version !== 1) {
|
|
54
|
+
throw new Error('unsupported profile version');
|
|
55
|
+
}
|
|
56
|
+
return profile;
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
if (error instanceof Error && error.message.includes('ENOENT')) {
|
|
60
|
+
throw new Error(`Profile '${profileName}' not found`);
|
|
61
|
+
}
|
|
62
|
+
if (error instanceof SyntaxError) {
|
|
63
|
+
throw new Error(`Profile '${profileName}' is corrupted`);
|
|
64
|
+
}
|
|
65
|
+
if (error instanceof Error &&
|
|
66
|
+
error.message === 'missing required fields') {
|
|
67
|
+
throw new Error(`Profile '${profileName}' is invalid: missing required fields`);
|
|
68
|
+
}
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* List all available profile names.
|
|
74
|
+
* @returns Array of profile names (without .json extension)
|
|
75
|
+
*/
|
|
76
|
+
async listProfiles() {
|
|
77
|
+
try {
|
|
78
|
+
// Ensure profiles directory exists
|
|
79
|
+
await fs.mkdir(this.profilesDir, { recursive: true });
|
|
80
|
+
// Read all files in the profiles directory
|
|
81
|
+
const files = await fs.readdir(this.profilesDir);
|
|
82
|
+
// Filter for .json files and remove extension
|
|
83
|
+
const profileNames = files
|
|
84
|
+
.filter((file) => file.endsWith('.json'))
|
|
85
|
+
.map((file) => file.slice(0, -5)); // Remove .json extension
|
|
86
|
+
return profileNames;
|
|
87
|
+
}
|
|
88
|
+
catch (_error) {
|
|
89
|
+
// If directory doesn't exist or other error, return empty array
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Delete a profile.
|
|
95
|
+
* @param _profileName The name of the profile to delete
|
|
96
|
+
*/
|
|
97
|
+
async deleteProfile(_profileName) {
|
|
98
|
+
// TODO: Implement delete functionality
|
|
99
|
+
// 1. Check if profile exists
|
|
100
|
+
// 2. Delete the file
|
|
101
|
+
throw new Error('NotYetImplemented');
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Check if a profile exists.
|
|
105
|
+
* @param _profileName The name of the profile to check
|
|
106
|
+
* @returns True if the profile exists
|
|
107
|
+
*/
|
|
108
|
+
async profileExists(_profileName) {
|
|
109
|
+
// TODO: Implement existence check
|
|
110
|
+
// 1. Check if <profilesDir>/<profileName>.json exists
|
|
111
|
+
throw new Error('NotYetImplemented');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=profileManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profileManager.js","sourceRoot":"","sources":["../../../src/config/profileManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,15 +29,27 @@ export declare class GeminiClient {
|
|
|
29
29
|
* Threshold for compression token count as a fraction of the model's token limit.
|
|
30
30
|
* If the chat history exceeds this threshold, it will be compressed.
|
|
31
31
|
*/
|
|
32
|
-
private
|
|
32
|
+
private COMPRESSION_TOKEN_THRESHOLD;
|
|
33
33
|
/**
|
|
34
34
|
* The fraction of the latest chat history to keep. A value of 0.3
|
|
35
35
|
* means that only the last 30% of the chat history will be kept after compression.
|
|
36
36
|
*/
|
|
37
37
|
private readonly COMPRESSION_PRESERVE_THRESHOLD;
|
|
38
|
+
/**
|
|
39
|
+
* User-defined context limit override
|
|
40
|
+
*/
|
|
41
|
+
private userContextLimit?;
|
|
38
42
|
private readonly loopDetector;
|
|
39
43
|
private lastPromptId?;
|
|
44
|
+
private readonly complexityAnalyzer;
|
|
45
|
+
private readonly todoReminderService;
|
|
46
|
+
private lastComplexitySuggestionTime;
|
|
47
|
+
private readonly complexitySuggestionCooldown;
|
|
40
48
|
constructor(config: Config);
|
|
49
|
+
/**
|
|
50
|
+
* Set the compression threshold and context limit overrides
|
|
51
|
+
*/
|
|
52
|
+
setCompressionSettings(compressionThreshold?: number, contextLimit?: number): void;
|
|
41
53
|
initialize(contentGeneratorConfig: ContentGeneratorConfig): Promise<void>;
|
|
42
54
|
private lazyInitialize;
|
|
43
55
|
getContentGenerator(): ContentGenerator;
|
|
@@ -49,6 +61,8 @@ export declare class GeminiClient {
|
|
|
49
61
|
setHistory(history: Content[]): void;
|
|
50
62
|
setTools(): Promise<void>;
|
|
51
63
|
resetChat(): Promise<void>;
|
|
64
|
+
addDirectoryContext(): Promise<void>;
|
|
65
|
+
private getDirectoryContext;
|
|
52
66
|
private getEnvironment;
|
|
53
67
|
startChat(extraHistory?: Content[]): Promise<GeminiChat>;
|
|
54
68
|
sendMessageStream(request: PartListUnion, signal: AbortSignal, prompt_id: string, turns?: number, originalModel?: string): AsyncGenerator<ServerGeminiStreamEvent, Turn>;
|