@vybestack/llxprt-code 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/package.json +4 -5
- package/dist/src/config/config.d.ts +4 -1
- package/dist/src/config/config.js +151 -54
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/extension.d.ts +1 -0
- package/dist/src/config/extension.js +4 -0
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/settings.d.ts +13 -3
- package/dist/src/config/settings.js +84 -23
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/gemini.d.ts +3 -0
- package/dist/src/gemini.js +212 -36
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/integration-tests/GITHUB_ACTIONS_README.md +41 -0
- package/dist/src/integration-tests/test-utils.d.ts +68 -0
- package/dist/src/integration-tests/test-utils.js +167 -0
- package/dist/src/integration-tests/test-utils.js.map +1 -0
- package/dist/src/nonInteractiveCli.js +24 -66
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/providers/IFileSystem.d.ts +42 -0
- package/dist/src/providers/IFileSystem.js +46 -0
- package/dist/src/providers/IFileSystem.js.map +1 -0
- package/dist/src/providers/providerConfigUtils.d.ts +0 -4
- package/dist/src/providers/providerConfigUtils.js +21 -52
- package/dist/src/providers/providerConfigUtils.js.map +1 -1
- package/dist/src/providers/providerManagerInstance.d.ts +6 -1
- package/dist/src/providers/providerManagerInstance.js +117 -82
- package/dist/src/providers/providerManagerInstance.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +13 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/CommandService.d.ts +8 -4
- package/dist/src/services/CommandService.js +24 -8
- package/dist/src/services/CommandService.js.map +1 -1
- package/dist/src/services/FileCommandLoader.d.ts +15 -3
- package/dist/src/services/FileCommandLoader.js +94 -42
- package/dist/src/services/FileCommandLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.d.ts +25 -0
- package/dist/src/services/McpPromptLoader.js +192 -0
- package/dist/src/services/McpPromptLoader.js.map +1 -0
- package/dist/src/services/prompt-processors/shellProcessor.d.ts +32 -0
- package/dist/src/services/prompt-processors/shellProcessor.js +77 -0
- package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -0
- package/dist/src/services/prompt-processors/types.d.ts +4 -0
- package/dist/src/services/prompt-processors/types.js +4 -0
- package/dist/src/services/prompt-processors/types.js.map +1 -1
- package/dist/src/ui/App.js +325 -195
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +2 -5
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/baseurlCommand.js +54 -9
- package/dist/src/ui/commands/baseurlCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.js +39 -1
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/diagnosticsCommand.d.ts +10 -0
- package/dist/src/ui/commands/diagnosticsCommand.js +122 -0
- package/dist/src/ui/commands/diagnosticsCommand.js.map +1 -0
- package/dist/src/ui/commands/directoryCommand.d.ts +8 -0
- package/dist/src/ui/commands/directoryCommand.js +116 -0
- package/dist/src/ui/commands/directoryCommand.js.map +1 -0
- package/dist/src/ui/commands/ideCommand.js +101 -105
- package/dist/src/ui/commands/ideCommand.js.map +1 -1
- package/dist/src/ui/commands/initCommand.d.ts +7 -0
- package/dist/src/ui/commands/initCommand.js +108 -0
- package/dist/src/ui/commands/initCommand.js.map +1 -0
- package/dist/src/ui/commands/keyCommand.js +75 -11
- package/dist/src/ui/commands/keyCommand.js.map +1 -1
- package/dist/src/ui/commands/keyfileCommand.js +54 -13
- package/dist/src/ui/commands/keyfileCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +53 -8
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +2 -1
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.js +2 -5
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/profileCommand.d.ts +10 -0
- package/dist/src/ui/commands/profileCommand.js +592 -0
- package/dist/src/ui/commands/profileCommand.js.map +1 -0
- package/dist/src/ui/commands/providerCommand.js +46 -3
- package/dist/src/ui/commands/providerCommand.js.map +1 -1
- package/dist/src/ui/commands/setCommand.d.ts +7 -0
- package/dist/src/ui/commands/setCommand.js +431 -0
- package/dist/src/ui/commands/setCommand.js.map +1 -0
- package/dist/src/ui/commands/setupGithubCommand.d.ts +7 -0
- package/dist/src/ui/commands/setupGithubCommand.js +49 -0
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +23 -4
- package/dist/src/ui/commands/types.js +1 -0
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/commands/vimCommand.js +0 -7
- package/dist/src/ui/commands/vimCommand.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.d.ts +3 -3
- package/dist/src/ui/components/ContextSummaryDisplay.js +8 -8
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/DebugProfiler.d.ts +6 -0
- package/dist/src/ui/components/DebugProfiler.js +26 -0
- package/dist/src/ui/components/DebugProfiler.js.map +1 -0
- package/dist/src/ui/components/Footer.d.ts +2 -0
- package/dist/src/ui/components/Footer.js +5 -4
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Header.js +1 -1
- package/dist/src/ui/components/Header.js.map +1 -1
- package/dist/src/ui/components/Help.js +2 -2
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/IDEContextDetailDisplay.d.ts +5 -4
- package/dist/src/ui/components/IDEContextDetailDisplay.js +6 -8
- package/dist/src/ui/components/IDEContextDetailDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.d.ts +2 -0
- package/dist/src/ui/components/InputPrompt.js +128 -13
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/LoadProfileDialog.d.ts +13 -0
- package/dist/src/ui/components/LoadProfileDialog.js +57 -0
- package/dist/src/ui/components/LoadProfileDialog.js.map +1 -0
- package/dist/src/ui/components/PrepareLabel.d.ts +15 -0
- package/dist/src/ui/components/PrepareLabel.js +16 -0
- package/dist/src/ui/components/PrepareLabel.js.map +1 -0
- package/dist/src/ui/components/ProviderModelDialog.js +75 -28
- package/dist/src/ui/components/ProviderModelDialog.js.map +1 -1
- package/dist/src/ui/components/SecureKeyInput.d.ts +15 -0
- package/dist/src/ui/components/SecureKeyInput.js +58 -0
- package/dist/src/ui/components/SecureKeyInput.js.map +1 -0
- package/dist/src/ui/components/ShellConfirmationDialog.d.ts +15 -0
- package/dist/src/ui/components/ShellConfirmationDialog.js +45 -0
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -0
- package/dist/src/ui/components/SuggestionsDisplay.d.ts +1 -0
- package/dist/src/ui/components/SuggestionsDisplay.js +3 -3
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/Tips.js +1 -1
- package/dist/src/ui/components/Tips.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +15 -4
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/UserMessage.js +4 -1
- package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.d.ts +270 -2
- package/dist/src/ui/components/shared/text-buffer.js +410 -70
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/vim-buffer-actions.d.ts +72 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.js +565 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.js.map +1 -0
- package/dist/src/ui/containers/SessionController.js +14 -15
- package/dist/src/ui/containers/SessionController.js.map +1 -1
- package/dist/src/ui/contexts/VimModeContext.js +2 -2
- package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
- package/dist/src/ui/editors/editorSettingsManager.js +2 -0
- package/dist/src/ui/editors/editorSettingsManager.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +56 -48
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.d.ts +1 -0
- package/dist/src/ui/hooks/shellCommandProcessor.js +139 -200
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +7 -3
- package/dist/src/ui/hooks/slashCommandProcessor.js +219 -130
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAuthCommand.js +9 -0
- package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
- package/dist/src/ui/hooks/useCompletion.d.ts +5 -5
- package/dist/src/ui/hooks/useCompletion.js +7 -402
- package/dist/src/ui/hooks/useCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.js +53 -37
- package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +75 -12
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useKeypress.js +5 -2
- package/dist/src/ui/hooks/useKeypress.js.map +1 -1
- package/dist/src/ui/hooks/useLoadProfileDialog.d.ts +27 -0
- package/dist/src/ui/hooks/useLoadProfileDialog.js +138 -0
- package/dist/src/ui/hooks/useLoadProfileDialog.js.map +1 -0
- package/dist/src/ui/hooks/useReactToolScheduler.js +0 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +19 -0
- package/dist/src/ui/hooks/useReverseSearchCompletion.js +54 -0
- package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -0
- package/dist/src/ui/hooks/useShellHistory.d.ts +1 -0
- package/dist/src/ui/hooks/useShellHistory.js +30 -7
- package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.d.ts +24 -0
- package/dist/src/ui/hooks/useSlashCompletion.js +451 -0
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -0
- package/dist/src/ui/hooks/vim.d.ts +28 -0
- package/dist/src/ui/hooks/vim.js +630 -0
- package/dist/src/ui/hooks/vim.js.map +1 -0
- package/dist/src/ui/reducers/appReducer.d.ts +3 -2
- package/dist/src/ui/reducers/appReducer.js +1 -0
- package/dist/src/ui/reducers/appReducer.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.js +10 -1
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +1 -0
- package/dist/src/ui/themes/theme.js +19 -4
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/utils/renderLoopDetector.js +3 -3
- package/dist/src/ui/utils/renderLoopDetector.js.map +1 -1
- package/dist/src/ui/utils/secureInputHandler.d.ts +46 -0
- package/dist/src/ui/utils/secureInputHandler.js +128 -0
- package/dist/src/ui/utils/secureInputHandler.js.map +1 -0
- package/dist/src/ui/utils/textUtils.d.ts +0 -8
- package/dist/src/ui/utils/textUtils.js +0 -22
- package/dist/src/ui/utils/textUtils.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.d.ts +7 -1
- package/dist/src/ui/utils/updateCheck.js +59 -25
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/utils/events.d.ts +11 -0
- package/dist/src/utils/events.js +13 -0
- package/dist/src/utils/events.js.map +1 -0
- package/dist/src/utils/gitUtils.d.ts +10 -0
- package/dist/src/utils/gitUtils.js +24 -0
- package/dist/src/utils/gitUtils.js.map +1 -0
- package/dist/src/utils/handleAutoUpdate.d.ts +11 -0
- package/dist/src/utils/handleAutoUpdate.js +101 -0
- package/dist/src/utils/handleAutoUpdate.js.map +1 -0
- package/dist/src/utils/installationInfo.d.ts +23 -0
- package/dist/src/utils/installationInfo.js +154 -0
- package/dist/src/utils/installationInfo.js.map +1 -0
- package/dist/src/utils/sandbox-macos-permissive-closed.sb +6 -0
- package/dist/src/utils/sandbox-macos-permissive-open.sb +6 -0
- package/dist/src/utils/sandbox-macos-permissive-proxied.sb +6 -0
- package/dist/src/utils/sandbox-macos-restrictive-closed.sb +6 -0
- package/dist/src/utils/sandbox-macos-restrictive-open.sb +6 -0
- package/dist/src/utils/sandbox-macos-restrictive-proxied.sb +6 -0
- package/dist/src/utils/sandbox.d.ts +2 -2
- package/dist/src/utils/sandbox.js +35 -11
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/spawnWrapper.d.ts +7 -0
- package/dist/src/utils/spawnWrapper.js +8 -0
- package/dist/src/utils/spawnWrapper.js.map +1 -0
- package/dist/src/utils/updateEventEmitter.d.ts +11 -0
- package/dist/src/utils/updateEventEmitter.js +12 -0
- package/dist/src/utils/updateEventEmitter.js.map +1 -0
- package/dist/src/validateNonInterActiveAuth.d.ts +2 -1
- package/dist/src/validateNonInterActiveAuth.js +31 -5
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -5
- package/dist/src/providers/enhanceConfigWithProviders.d.ts +0 -12
- package/dist/src/providers/enhanceConfigWithProviders.js +0 -16
- package/dist/src/providers/enhanceConfigWithProviders.js.map +0 -1
package/README.md
CHANGED
@@ -13,6 +13,7 @@ LLxprt Code is a powerful fork of [Google's Gemini CLI](https://github.com/googl
|
|
13
13
|
- **Full Gemini CLI Compatibility**: All original features work seamlessly, including Google authentication via `/auth`
|
14
14
|
- **Local Model Support**: Run models locally with LM Studio, llama.cpp, or any OpenAI-compatible server
|
15
15
|
- **Flexible Configuration**: Switch providers, models, and API keys on the fly
|
16
|
+
- **Advanced Settings & Profiles**: Fine-tune model parameters, manage ephemeral settings, and save configurations for reuse. [Learn more →](./docs/settings-and-profiles.md)
|
16
17
|
|
17
18
|
With LLxprt Code you can:
|
18
19
|
|
@@ -138,8 +139,9 @@ Access 100+ models through OpenRouter:
|
|
138
139
|
```
|
139
140
|
/provider openai
|
140
141
|
/baseurl https://openrouter.ai/api/v1/
|
141
|
-
/
|
142
|
-
/model
|
142
|
+
/keyfile ~/.openrouter_key
|
143
|
+
/model qwen/qwen3-coder
|
144
|
+
/profile save qwen3-coder
|
143
145
|
```
|
144
146
|
|
145
147
|
### Using Fireworks
|
@@ -155,6 +157,31 @@ For fast inference with popular open models:
|
|
155
157
|
/model accounts/fireworks/models/llama-v3p3-70b-instruct
|
156
158
|
```
|
157
159
|
|
160
|
+
### Using xAI (Grok)
|
161
|
+
|
162
|
+
Access Grok models through xAI's API:
|
163
|
+
|
164
|
+
1. Get your API key from [xAI](https://x.ai/)
|
165
|
+
2. Configure using command line:
|
166
|
+
|
167
|
+
```bash
|
168
|
+
llxprt --provider openai --baseurl https://api.x.ai/v1/ --model grok-3 --keyfile ~/.mh_key
|
169
|
+
```
|
170
|
+
|
171
|
+
Or configure interactively:
|
172
|
+
|
173
|
+
```
|
174
|
+
/provider openai
|
175
|
+
/baseurl https://api.x.ai/v1/
|
176
|
+
/model grok-3
|
177
|
+
/keyfile ~/.mh_key
|
178
|
+
```
|
179
|
+
|
180
|
+
3. List available Grok models:
|
181
|
+
```
|
182
|
+
/model
|
183
|
+
```
|
184
|
+
|
158
185
|
### Using Google Gemini
|
159
186
|
|
160
187
|
You can still use Google's services:
|
@@ -201,6 +228,39 @@ llxprt
|
|
201
228
|
> Review this code for security vulnerabilities
|
202
229
|
```
|
203
230
|
|
231
|
+
## Control and Shortcuts: Settings and Profiles
|
232
|
+
|
233
|
+
LLxprt Code provides powerful configuration options through model parameters and profiles:
|
234
|
+
|
235
|
+
```bash
|
236
|
+
# Fine-tune model behavior
|
237
|
+
/set modelparam temperature 0.8
|
238
|
+
/set modelparam max_tokens 4096
|
239
|
+
|
240
|
+
# Configure context handling
|
241
|
+
/set context-limit 100000
|
242
|
+
/set compression-threshold 0.7
|
243
|
+
|
244
|
+
# Save your configuration
|
245
|
+
/profile save my-assistant
|
246
|
+
|
247
|
+
# Load it later
|
248
|
+
llxprt --profile-load my-assistant
|
249
|
+
```
|
250
|
+
|
251
|
+
See the [complete settings documentation](./docs/settings-and-profiles.md) for all configuration options.
|
252
|
+
|
253
|
+
## Customizing AI Behavior with Prompts
|
254
|
+
|
255
|
+
LLxprt Code features a sophisticated prompt configuration system that allows you to customize the AI's behavior for different providers, models, and use cases. You can:
|
256
|
+
|
257
|
+
- Create custom system prompts for specific tasks
|
258
|
+
- Override provider-specific behaviors
|
259
|
+
- Add environment-aware instructions
|
260
|
+
- Customize tool usage guidelines
|
261
|
+
|
262
|
+
Learn more in the [Prompt Configuration Guide](./docs/prompt-configuration.md).
|
263
|
+
|
204
264
|
### Next steps
|
205
265
|
|
206
266
|
- Learn how to [contribute to or build from the source](./CONTRIBUTING.md).
|
@@ -237,6 +297,34 @@ Start by `cd`ing into an existing or newly-cloned repository and running `llxprt
|
|
237
297
|
> What security mechanisms are in place?
|
238
298
|
```
|
239
299
|
|
300
|
+
```text
|
301
|
+
> Provide a step-by-step dev onboarding doc for developers new to the codebase.
|
302
|
+
```
|
303
|
+
|
304
|
+
```text
|
305
|
+
> Summarize this codebase and highlight the most interesting patterns or techniques I could learn from.
|
306
|
+
```
|
307
|
+
|
308
|
+
```text
|
309
|
+
> Identify potential areas for improvement or refactoring in this codebase, highlighting parts that appear fragile, complex, or hard to maintain.
|
310
|
+
```
|
311
|
+
|
312
|
+
```text
|
313
|
+
> Which parts of this codebase might be challenging to scale or debug?
|
314
|
+
```
|
315
|
+
|
316
|
+
```text
|
317
|
+
> Generate a README section for the [module name] module explaining what it does and how to use it.
|
318
|
+
```
|
319
|
+
|
320
|
+
```text
|
321
|
+
> What kind of error handling and logging strategies does the project use?
|
322
|
+
```
|
323
|
+
|
324
|
+
```text
|
325
|
+
> Which tools, libraries, and dependencies are used in this project?
|
326
|
+
```
|
327
|
+
|
240
328
|
### Work with your existing code
|
241
329
|
|
242
330
|
```text
|
package/dist/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vybestack/llxprt-code",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.16-hotfix1",
|
4
4
|
"description": "LLxprt Code",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -33,7 +33,7 @@
|
|
33
33
|
"dist"
|
34
34
|
],
|
35
35
|
"config": {
|
36
|
-
"sandboxImageUri": "ghcr.io/acoliver/llxprt-code/sandbox:0.1.
|
36
|
+
"sandboxImageUri": "ghcr.io/acoliver/llxprt-code/sandbox:0.1.16-hotfix1"
|
37
37
|
},
|
38
38
|
"dependencies": {
|
39
39
|
"@anthropic-ai/sdk": "^0.55.1",
|
@@ -41,7 +41,7 @@
|
|
41
41
|
"@google/genai": "1.9.0",
|
42
42
|
"@iarna/toml": "^2.2.5",
|
43
43
|
"@types/update-notifier": "^6.0.8",
|
44
|
-
"@vybestack/llxprt-code-core": "0.1.
|
44
|
+
"@vybestack/llxprt-code-core": "0.1.16-hotfix1",
|
45
45
|
"chalk": "^5.3.0",
|
46
46
|
"command-exists": "^1.2.9",
|
47
47
|
"diff": "^7.0.0",
|
@@ -80,8 +80,7 @@
|
|
80
80
|
"@types/react-dom": "^19.1.6",
|
81
81
|
"@types/semver": "^7.7.0",
|
82
82
|
"@types/shell-quote": "^1.7.5",
|
83
|
-
"@types/yargs": "^17.0.
|
84
|
-
"@vitest/coverage-istanbul": "^3.2.4",
|
83
|
+
"@types/yargs": "^17.0.33",
|
85
84
|
"dom-accessibility-api": "^0.5.16",
|
86
85
|
"ink-testing-library": "^4.0.0",
|
87
86
|
"jsdom": "^26.1.0",
|
@@ -30,13 +30,16 @@ export interface CliArgs {
|
|
30
30
|
listExtensions: boolean | undefined;
|
31
31
|
provider: string | undefined;
|
32
32
|
ideMode: boolean | undefined;
|
33
|
+
ideModeFeature: boolean | undefined;
|
33
34
|
key: string | undefined;
|
34
35
|
keyfile: string | undefined;
|
35
36
|
baseurl: string | undefined;
|
36
37
|
proxy: string | undefined;
|
38
|
+
includeDirectories: string[] | undefined;
|
39
|
+
profileLoad: string | undefined;
|
37
40
|
}
|
38
41
|
export declare function parseArguments(): Promise<CliArgs>;
|
39
|
-
export declare function loadHierarchicalLlxprtMemory(currentWorkingDirectory: string, debugMode: boolean, fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths?: string[], fileFilteringOptions?: FileFilteringOptions): Promise<{
|
42
|
+
export declare function loadHierarchicalLlxprtMemory(currentWorkingDirectory: string, debugMode: boolean, fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths?: string[], memoryImportFormat?: 'flat' | 'tree', fileFilteringOptions?: FileFilteringOptions): Promise<{
|
40
43
|
memoryContent: string;
|
41
44
|
fileCount: number;
|
42
45
|
}>;
|
@@ -3,17 +3,17 @@
|
|
3
3
|
* Copyright 2025 Google LLC
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
|
+
import * as fs from 'fs';
|
7
|
+
import * as path from 'path';
|
8
|
+
import { homedir } from 'node:os';
|
6
9
|
import yargs from 'yargs/yargs';
|
7
10
|
import { hideBin } from 'yargs/helpers';
|
8
11
|
import process from 'node:process';
|
9
|
-
import { Config, loadServerHierarchicalMemory, setLlxprtMdFilename as setServerGeminiMdFilename, getCurrentLlxprtMdFilename, ApprovalMode, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, FileDiscoveryService, IdeClient, } from '@vybestack/llxprt-code-core';
|
12
|
+
import { Config, loadServerHierarchicalMemory, setLlxprtMdFilename as setServerGeminiMdFilename, getCurrentLlxprtMdFilename, ApprovalMode, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, FileDiscoveryService, IdeClient, ProfileManager, } from '@vybestack/llxprt-code-core';
|
10
13
|
import { annotateActiveExtensions } from './extension.js';
|
11
14
|
import { getCliVersion } from '../utils/version.js';
|
12
15
|
import { loadSandboxConfig } from './sandboxConfig.js';
|
13
|
-
import { enhanceConfigWithProviders } from '../providers/enhanceConfigWithProviders.js';
|
14
16
|
import * as dotenv from 'dotenv';
|
15
|
-
import * as path from 'node:path';
|
16
|
-
import * as fs from 'node:fs';
|
17
17
|
import * as os from 'node:os';
|
18
18
|
const LLXPRT_DIR = '.llxprt';
|
19
19
|
// Simple console logger for now - replace with actual logger if available
|
@@ -30,9 +30,7 @@ export async function parseArguments() {
|
|
30
30
|
alias: 'm',
|
31
31
|
type: 'string',
|
32
32
|
description: `Model`,
|
33
|
-
default
|
34
|
-
process.env.GEMINI_MODEL ||
|
35
|
-
DEFAULT_GEMINI_MODEL,
|
33
|
+
// Don't set default here, handle it in loadCliConfig
|
36
34
|
})
|
37
35
|
.option('prompt', {
|
38
36
|
alias: 'p',
|
@@ -138,11 +136,15 @@ export async function parseArguments() {
|
|
138
136
|
.option('provider', {
|
139
137
|
type: 'string',
|
140
138
|
description: 'The provider to use.',
|
141
|
-
default
|
139
|
+
// Don't set default here, handle it in loadCliConfig
|
142
140
|
})
|
143
141
|
.option('ide-mode', {
|
144
142
|
type: 'boolean',
|
145
143
|
description: 'Run in IDE mode?',
|
144
|
+
})
|
145
|
+
.option('ide-mode-feature', {
|
146
|
+
type: 'boolean',
|
147
|
+
description: 'Enable IDE mode feature flag?',
|
146
148
|
})
|
147
149
|
.option('key', {
|
148
150
|
type: 'string',
|
@@ -159,6 +161,18 @@ export async function parseArguments() {
|
|
159
161
|
.option('proxy', {
|
160
162
|
type: 'string',
|
161
163
|
description: 'Proxy for gemini client, like schema://user:password@host:port',
|
164
|
+
})
|
165
|
+
.option('include-directories', {
|
166
|
+
type: 'array',
|
167
|
+
string: true,
|
168
|
+
description: 'Additional directories to include in the workspace (comma-separated or multiple --include-directories)',
|
169
|
+
coerce: (dirs) =>
|
170
|
+
// Handle comma-separated values
|
171
|
+
dirs.flatMap((dir) => dir.split(',').map((d) => d.trim())),
|
172
|
+
})
|
173
|
+
.option('profile-load', {
|
174
|
+
type: 'string',
|
175
|
+
description: 'Load a saved profile configuration on startup',
|
162
176
|
})
|
163
177
|
.version(await getCliVersion()) // This will enable the --version flag based on package.json
|
164
178
|
.alias('v', 'version')
|
@@ -172,37 +186,81 @@ export async function parseArguments() {
|
|
172
186
|
return true;
|
173
187
|
});
|
174
188
|
yargsInstance.wrap(yargsInstance.terminalWidth());
|
175
|
-
|
189
|
+
const result = yargsInstance.parseSync();
|
190
|
+
// The import format is now only controlled by settings.memoryImportFormat
|
191
|
+
// We no longer accept it as a CLI argument
|
192
|
+
return result;
|
176
193
|
}
|
177
194
|
// This function is now a thin wrapper around the server's implementation.
|
178
195
|
// It's kept in the CLI for now as App.tsx directly calls it for memory refresh.
|
179
196
|
// TODO: Consider if App.tsx should get memory via a server call or if Config should refresh itself.
|
180
|
-
export async function loadHierarchicalLlxprtMemory(currentWorkingDirectory, debugMode, fileService, settings, extensionContextFilePaths = [], fileFilteringOptions) {
|
197
|
+
export async function loadHierarchicalLlxprtMemory(currentWorkingDirectory, debugMode, fileService, settings, extensionContextFilePaths = [], memoryImportFormat = 'tree', fileFilteringOptions) {
|
198
|
+
// FIX: Use real, canonical paths for a reliable comparison to handle symlinks.
|
199
|
+
const realCwd = fs.realpathSync(path.resolve(currentWorkingDirectory));
|
200
|
+
const realHome = fs.realpathSync(path.resolve(homedir()));
|
201
|
+
const isHomeDirectory = realCwd === realHome;
|
202
|
+
// If it is the home directory, pass an empty string to the core memory
|
203
|
+
// function to signal that it should skip the workspace search.
|
204
|
+
const effectiveCwd = isHomeDirectory ? '' : currentWorkingDirectory;
|
181
205
|
if (debugMode) {
|
182
|
-
logger.debug(`CLI: Delegating hierarchical memory load to server for CWD: ${currentWorkingDirectory}`);
|
206
|
+
logger.debug(`CLI: Delegating hierarchical memory load to server for CWD: ${currentWorkingDirectory} (memoryImportFormat: ${memoryImportFormat})`);
|
183
207
|
}
|
184
|
-
// Directly call the server function.
|
185
|
-
|
186
|
-
return loadServerHierarchicalMemory(currentWorkingDirectory, debugMode, fileService, extensionContextFilePaths, fileFilteringOptions, settings.memoryDiscoveryMaxDirs);
|
208
|
+
// Directly call the server function with the corrected path.
|
209
|
+
return loadServerHierarchicalMemory(effectiveCwd, debugMode, fileService, extensionContextFilePaths, memoryImportFormat, fileFilteringOptions, settings.memoryDiscoveryMaxDirs);
|
187
210
|
}
|
188
211
|
export async function loadCliConfig(settings, extensions, sessionId, argv) {
|
212
|
+
// Handle --load flag early to apply profile settings
|
213
|
+
let effectiveSettings = settings;
|
214
|
+
let profileModel;
|
215
|
+
let profileProvider;
|
216
|
+
let profileModelParams;
|
217
|
+
// Check for profile to load - either from CLI arg or default profile setting
|
218
|
+
const profileToLoad = argv.profileLoad || settings.defaultProfile;
|
219
|
+
if (profileToLoad) {
|
220
|
+
try {
|
221
|
+
const profileManager = new ProfileManager();
|
222
|
+
const profile = await profileManager.loadProfile(profileToLoad);
|
223
|
+
// Store profile values to apply after Config creation
|
224
|
+
// Only use profile provider/model if --provider is not specified
|
225
|
+
profileProvider = argv.provider ? undefined : profile.provider;
|
226
|
+
profileModel = argv.provider ? undefined : profile.model;
|
227
|
+
profileModelParams = profile.modelParams;
|
228
|
+
// Merge ephemeral settings into the settings object
|
229
|
+
effectiveSettings = {
|
230
|
+
...settings,
|
231
|
+
...profile.ephemeralSettings,
|
232
|
+
};
|
233
|
+
const tempDebugMode = argv.debug ||
|
234
|
+
[process.env.DEBUG, process.env.DEBUG_MODE].some((v) => v === 'true' || v === '1') ||
|
235
|
+
false;
|
236
|
+
if (tempDebugMode) {
|
237
|
+
logger.debug(`Loaded profile '${profileToLoad}' with provider: ${profileProvider}, model: ${profileModel}`);
|
238
|
+
}
|
239
|
+
}
|
240
|
+
catch (error) {
|
241
|
+
logger.error(`Failed to load profile '${profileToLoad}': ${error}`);
|
242
|
+
// Continue without the profile settings
|
243
|
+
}
|
244
|
+
}
|
245
|
+
// Calculate debugMode after profile settings have been applied
|
189
246
|
const debugMode = argv.debug ||
|
190
|
-
[process.env.DEBUG, process.env.DEBUG_MODE].some((v) => v === 'true' || v === '1')
|
191
|
-
|
247
|
+
[process.env.DEBUG, process.env.DEBUG_MODE].some((v) => v === 'true' || v === '1') ||
|
248
|
+
false;
|
249
|
+
const memoryImportFormat = effectiveSettings.memoryImportFormat || 'tree';
|
250
|
+
const ideMode = (argv.ideMode ?? effectiveSettings.ideMode ?? false) &&
|
192
251
|
process.env.TERM_PROGRAM === 'vscode' &&
|
193
252
|
!process.env.SANDBOX;
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
}
|
253
|
+
const ideModeFeature = (argv.ideModeFeature ?? effectiveSettings.ideModeFeature ?? false) &&
|
254
|
+
!process.env.SANDBOX;
|
255
|
+
const ideClient = IdeClient.getInstance(ideMode && ideModeFeature);
|
198
256
|
const allExtensions = annotateActiveExtensions(extensions, argv.extensions || []);
|
199
257
|
const activeExtensions = extensions.filter((_, i) => allExtensions[i].isActive);
|
200
258
|
// Set the context filename in the server's memoryTool module BEFORE loading memory
|
201
259
|
// TODO(b/343434939): This is a bit of a hack. The contextFileName should ideally be passed
|
202
260
|
// directly to the Config constructor in core, and have core handle setLlxprtMdFilename.
|
203
261
|
// However, loadHierarchicalLlxprtMemory is called *before* createServerConfig.
|
204
|
-
if (
|
205
|
-
setServerGeminiMdFilename(
|
262
|
+
if (effectiveSettings.contextFileName) {
|
263
|
+
setServerGeminiMdFilename(effectiveSettings.contextFileName);
|
206
264
|
}
|
207
265
|
else {
|
208
266
|
// Reset to default if not provided in settings.
|
@@ -212,22 +270,22 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
|
|
212
270
|
const fileService = new FileDiscoveryService(process.cwd());
|
213
271
|
const fileFiltering = {
|
214
272
|
...DEFAULT_MEMORY_FILE_FILTERING_OPTIONS,
|
215
|
-
...
|
273
|
+
...effectiveSettings.fileFiltering,
|
216
274
|
};
|
217
275
|
// Call the (now wrapper) loadHierarchicalLlxprtMemory which calls the server's version
|
218
|
-
const { memoryContent, fileCount } = await loadHierarchicalLlxprtMemory(process.cwd(), debugMode, fileService,
|
219
|
-
let mcpServers = mergeMcpServers(
|
220
|
-
const excludeTools = mergeExcludeTools(
|
276
|
+
const { memoryContent, fileCount } = await loadHierarchicalLlxprtMemory(process.cwd(), debugMode, fileService, effectiveSettings, extensionContextFilePaths, memoryImportFormat, fileFiltering);
|
277
|
+
let mcpServers = mergeMcpServers(effectiveSettings, activeExtensions);
|
278
|
+
const excludeTools = mergeExcludeTools(effectiveSettings, activeExtensions);
|
221
279
|
const blockedMcpServers = [];
|
222
280
|
if (!argv.allowedMcpServerNames) {
|
223
|
-
if (
|
224
|
-
const allowedNames = new Set(
|
281
|
+
if (effectiveSettings.allowMCPServers) {
|
282
|
+
const allowedNames = new Set(effectiveSettings.allowMCPServers.filter(Boolean));
|
225
283
|
if (allowedNames.size > 0) {
|
226
284
|
mcpServers = Object.fromEntries(Object.entries(mcpServers).filter(([key]) => allowedNames.has(key)));
|
227
285
|
}
|
228
286
|
}
|
229
|
-
if (
|
230
|
-
const excludedNames = new Set(
|
287
|
+
if (effectiveSettings.excludeMCPServers) {
|
288
|
+
const excludedNames = new Set(effectiveSettings.excludeMCPServers.filter(Boolean));
|
231
289
|
if (excludedNames.size > 0) {
|
232
290
|
mcpServers = Object.fromEntries(Object.entries(mcpServers).filter(([key]) => !excludedNames.has(key)));
|
233
291
|
}
|
@@ -255,47 +313,59 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
|
|
255
313
|
mcpServers = {};
|
256
314
|
}
|
257
315
|
}
|
258
|
-
const sandboxConfig = await loadSandboxConfig(
|
316
|
+
const sandboxConfig = await loadSandboxConfig(effectiveSettings, argv);
|
317
|
+
// Handle model selection with proper precedence
|
318
|
+
const finalModel = argv.model ||
|
319
|
+
profileModel ||
|
320
|
+
process.env.LLXPRT_DEFAULT_MODEL ||
|
321
|
+
process.env.GEMINI_MODEL ||
|
322
|
+
DEFAULT_GEMINI_MODEL;
|
323
|
+
// Handle provider selection with proper precedence
|
324
|
+
const finalProvider = argv.provider ||
|
325
|
+
profileProvider ||
|
326
|
+
process.env.LLXPRT_DEFAULT_PROVIDER ||
|
327
|
+
'gemini';
|
259
328
|
const config = new Config({
|
260
329
|
sessionId,
|
261
330
|
embeddingModel: DEFAULT_GEMINI_EMBEDDING_MODEL,
|
262
331
|
sandbox: sandboxConfig,
|
263
332
|
targetDir: process.cwd(),
|
333
|
+
includeDirectories: argv.includeDirectories,
|
264
334
|
debugMode,
|
265
335
|
question: argv.promptInteractive || argv.prompt || '',
|
266
336
|
fullContext: argv.allFiles || argv.all_files || false,
|
267
|
-
coreTools:
|
337
|
+
coreTools: effectiveSettings.coreTools || undefined,
|
268
338
|
excludeTools,
|
269
|
-
toolDiscoveryCommand:
|
270
|
-
toolCallCommand:
|
271
|
-
mcpServerCommand:
|
339
|
+
toolDiscoveryCommand: effectiveSettings.toolDiscoveryCommand,
|
340
|
+
toolCallCommand: effectiveSettings.toolCallCommand,
|
341
|
+
mcpServerCommand: effectiveSettings.mcpServerCommand,
|
272
342
|
mcpServers,
|
273
343
|
userMemory: memoryContent,
|
274
344
|
llxprtMdFileCount: fileCount,
|
275
345
|
approvalMode: argv.yolo ? ApprovalMode.YOLO : ApprovalMode.DEFAULT,
|
276
346
|
showMemoryUsage: argv.showMemoryUsage ||
|
277
347
|
argv.show_memory_usage ||
|
278
|
-
|
348
|
+
effectiveSettings.showMemoryUsage ||
|
279
349
|
false,
|
280
|
-
accessibility:
|
350
|
+
accessibility: effectiveSettings.accessibility,
|
281
351
|
telemetry: {
|
282
|
-
enabled: argv.telemetry ??
|
352
|
+
enabled: argv.telemetry ?? effectiveSettings.telemetry?.enabled,
|
283
353
|
target: (argv.telemetryTarget ??
|
284
|
-
|
354
|
+
effectiveSettings.telemetry?.target),
|
285
355
|
otlpEndpoint: argv.telemetryOtlpEndpoint ??
|
286
356
|
process.env.OTEL_EXPORTER_OTLP_ENDPOINT ??
|
287
|
-
|
288
|
-
logPrompts: argv.telemetryLogPrompts ??
|
289
|
-
outfile: argv.telemetryOutfile ??
|
357
|
+
effectiveSettings.telemetry?.otlpEndpoint,
|
358
|
+
logPrompts: argv.telemetryLogPrompts ?? effectiveSettings.telemetry?.logPrompts,
|
359
|
+
outfile: argv.telemetryOutfile ?? effectiveSettings.telemetry?.outfile,
|
290
360
|
},
|
291
|
-
usageStatisticsEnabled:
|
361
|
+
usageStatisticsEnabled: effectiveSettings.usageStatisticsEnabled ?? true,
|
292
362
|
// Git-aware file filtering settings
|
293
363
|
fileFiltering: {
|
294
|
-
respectGitIgnore:
|
295
|
-
respectLlxprtIgnore:
|
296
|
-
enableRecursiveFileSearch:
|
364
|
+
respectGitIgnore: effectiveSettings.fileFiltering?.respectGitIgnore,
|
365
|
+
respectLlxprtIgnore: effectiveSettings.fileFiltering?.respectLlxprtIgnore,
|
366
|
+
enableRecursiveFileSearch: effectiveSettings.fileFiltering?.enableRecursiveFileSearch,
|
297
367
|
},
|
298
|
-
checkpointing: argv.checkpointing ||
|
368
|
+
checkpointing: argv.checkpointing || effectiveSettings.checkpointing?.enabled,
|
299
369
|
proxy: argv.proxy ||
|
300
370
|
process.env.HTTPS_PROXY ||
|
301
371
|
process.env.https_proxy ||
|
@@ -303,26 +373,53 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
|
|
303
373
|
process.env.http_proxy,
|
304
374
|
cwd: process.cwd(),
|
305
375
|
fileDiscoveryService: fileService,
|
306
|
-
bugCommand:
|
307
|
-
model:
|
376
|
+
bugCommand: effectiveSettings.bugCommand,
|
377
|
+
model: finalModel,
|
308
378
|
extensionContextFilePaths,
|
309
|
-
maxSessionTurns:
|
379
|
+
maxSessionTurns: effectiveSettings.maxSessionTurns ?? -1,
|
310
380
|
experimentalAcp: argv.experimentalAcp || false,
|
311
381
|
listExtensions: argv.listExtensions || false,
|
312
382
|
activeExtensions: activeExtensions.map((e) => ({
|
313
383
|
name: e.config.name,
|
314
384
|
version: e.config.version,
|
315
385
|
})),
|
316
|
-
provider:
|
386
|
+
provider: finalProvider,
|
317
387
|
extensions: allExtensions,
|
318
388
|
blockedMcpServers,
|
319
389
|
noBrowser: !!process.env.NO_BROWSER,
|
320
|
-
summarizeToolOutput:
|
390
|
+
summarizeToolOutput: effectiveSettings.summarizeToolOutput,
|
321
391
|
ideMode,
|
392
|
+
ideModeFeature,
|
322
393
|
ideClient,
|
323
394
|
});
|
324
|
-
|
325
|
-
|
395
|
+
const enhancedConfig = config;
|
396
|
+
// Apply ephemeral settings from profile if loaded
|
397
|
+
if (profileToLoad && effectiveSettings) {
|
398
|
+
// Extract ephemeral settings that were merged from the profile
|
399
|
+
const ephemeralKeys = [
|
400
|
+
'auth-key',
|
401
|
+
'auth-keyfile',
|
402
|
+
'context-limit',
|
403
|
+
'compression-threshold',
|
404
|
+
'base-url',
|
405
|
+
'tool-format',
|
406
|
+
'api-version',
|
407
|
+
'custom-headers',
|
408
|
+
];
|
409
|
+
for (const key of ephemeralKeys) {
|
410
|
+
const value = effectiveSettings[key];
|
411
|
+
if (value !== undefined) {
|
412
|
+
enhancedConfig.setEphemeralSetting(key, value);
|
413
|
+
}
|
414
|
+
}
|
415
|
+
}
|
416
|
+
// Store profile model params on the config for later application
|
417
|
+
if (profileModelParams) {
|
418
|
+
// Attach profile params to config object with proper typing
|
419
|
+
const configWithProfile = enhancedConfig;
|
420
|
+
configWithProfile._profileModelParams = profileModelParams;
|
421
|
+
}
|
422
|
+
return enhancedConfig;
|
326
423
|
}
|
327
424
|
function mergeMcpServers(settings, extensions) {
|
328
425
|
const mcpServers = { ...(settings.mcpServers || {}) };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EACL,MAAM,EACN,4BAA4B,EAC5B,mBAAmB,IAAI,yBAAyB,EAChD,0BAA0B,EAC1B,YAAY,EACZ,oBAAoB,EACpB,8BAA8B,EAC9B,qCAAqC,EACrC,oBAAoB,EAGpB,SAAS,GACV,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAa,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,GAAG,SAAS,CAAC;AAE7B,0EAA0E;AAC1E,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;IAChE,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC7D,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;CACjE,CAAC;AAgCF,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/C,UAAU,CAAC,QAAQ,CAAC;SACpB,KAAK,CACJ,cAAc,EACd,kFAAkF,CACnF;SACA,MAAM,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,OAAO;QACpB,OAAO,EACL,OAAO,CAAC,GAAG,CAAC,oBAAoB;YAChC,OAAO,CAAC,GAAG,CAAC,YAAY;YACxB,oBAAoB;KACvB,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8CAA8C;KAC5D,CAAC;SACD,MAAM,CAAC,oBAAoB,EAAE;QAC5B,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,8DAA8D;KACjE,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,iBAAiB;KAC/B,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oBAAoB;KAClC,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,KAAK,EAAE,CAAC,GAAG,CAAC;QACZ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,KAAK;KACf,CAAC;SACD,eAAe,CACd,WAAW,EACX,+EAA+E,CAChF;SACA,MAAM,CAAC,mBAAmB,EAAE;QAC3B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,mBAAmB,EAAE;QAC3B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,KAAK;KACf,CAAC;SACD,eAAe,CACd,mBAAmB,EACnB,+FAA+F,CAChG;SACA,MAAM,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EACT,qHAAqH;QACvH,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,iKAAiK;KACpK,CAAC;SACD,MAAM,CAAC,kBAAkB,EAAE;QAC1B,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;QACzB,WAAW,EACT,oEAAoE;KACvE,CAAC;SACD,MAAM,CAAC,yBAAyB,EAAE;QACjC,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,0FAA0F;KAC7F,CAAC;SACD,MAAM,CAAC,uBAAuB,EAAE;QAC/B,IAAI,EAAE,SAAS;QACf,WAAW,EACT,oFAAoF;KACvF,CAAC;SACD,MAAM,CAAC,mBAAmB,EAAE;QAC3B,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sDAAsD;KACpE,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,kBAAkB,EAAE;QAC1B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,8BAA8B;KAC5C,CAAC;SACD,MAAM,CAAC,0BAA0B,EAAE;QAClC,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,0BAA0B;KACxC,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EACT,wEAAwE;KAC3E,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QACzB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,yCAAyC;KACvD,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,QAAQ;KACzD,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,kBAAkB;KAChC,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kCAAkC;KAChD,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,0DAA0D;KACxE,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,mCAAmC;KACjD,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,gEAAgE;KACnE,CAAC;SACD,OAAO,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,4DAA4D;SAC3F,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SACrB,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;SAClB,MAAM,EAAE;SACR,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEL,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;IAClD,OAAO,aAAa,CAAC,IAAI,CAAC;AAC5B,CAAC;AAED,0EAA0E;AAC1E,gFAAgF;AAChF,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,uBAA+B,EAC/B,SAAkB,EAClB,WAAiC,EACjC,QAAkB,EAClB,4BAAsC,EAAE,EACxC,oBAA2C;IAE3C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,KAAK,CACV,+DAA+D,uBAAuB,EAAE,CACzF,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,sEAAsE;IACtE,OAAO,4BAA4B,CACjC,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,yBAAyB,EACzB,oBAAoB,EACpB,QAAQ,CAAC,sBAAsB,CAChC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAkB,EAClB,UAAuB,EACvB,SAAiB,EACjB,IAAa;IAEb,MAAM,SAAS,GACb,IAAI,CAAC,KAAK;QACV,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,GAAG,CACjC,CAAC;IAEJ,MAAM,OAAO,GACX,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,QAAQ;QACrC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IAEvB,IAAI,SAAgC,CAAC;IACrC,IAAI,OAAO,EAAE,CAAC;QACZ,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,aAAa,GAAG,wBAAwB,CAC5C,UAAU,EACV,IAAI,CAAC,UAAU,IAAI,EAAE,CACtB,CAAC;IAEF,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CACpC,CAAC;IAEF,mFAAmF;IACnF,2FAA2F;IAC3F,wFAAwF;IACxF,+EAA+E;IAC/E,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC7B,yBAAyB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,gDAAgD;QAChD,yBAAyB,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,OAAO,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CACtB,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE5D,MAAM,aAAa,GAAG;QACpB,GAAG,qCAAqC;QACxC,GAAG,QAAQ,CAAC,aAAa;KAC1B,CAAC;IAEF,uFAAuF;IACvF,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,4BAA4B,CACrE,OAAO,CAAC,GAAG,EAAE,EACb,SAAS,EACT,WAAW,EACX,QAAQ,EACR,yBAAyB,EACzB,aAAa,CACd,CAAC;IAEF,IAAI,UAAU,GAAG,eAAe,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAmD,EAAE,CAAC;IAE7E,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAChC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACvE,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC1B,UAAU,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1E,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC3B,UAAU,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACtE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC1B,UAAU,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;gBAClD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,iBAAiB,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,GAAG;wBACT,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;qBAC1C,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,IAAI,CACpB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,EAAE,GAAG;gBACT,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;aAC1C,CAAC,CAAC,CACJ,CAAC;YACF,UAAU,GAAG,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,SAAS;QACT,cAAc,EAAE,8BAA8B;QAC9C,OAAO,EAAE,aAAa;QACtB,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;QACxB,SAAS;QACT,QAAQ,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE;QACrD,WAAW,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK;QACrD,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,SAAS;QAC1C,YAAY;QACZ,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,UAAU;QACV,UAAU,EAAE,aAAa;QACzB,iBAAiB,EAAE,SAAS;QAC5B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO;QAClE,eAAe,EACb,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,iBAAiB;YACtB,QAAQ,CAAC,eAAe;YACxB,KAAK;QACP,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,SAAS,EAAE;YACT,OAAO,EAAE,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,EAAE,OAAO;YACtD,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe;gBAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAoB;YAChD,YAAY,EACV,IAAI,CAAC,qBAAqB;gBAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B;gBACvC,QAAQ,CAAC,SAAS,EAAE,YAAY;YAClC,UAAU,EAAE,IAAI,CAAC,mBAAmB,IAAI,QAAQ,CAAC,SAAS,EAAE,UAAU;YACtE,OAAO,EAAE,IAAI,CAAC,gBAAgB,IAAI,QAAQ,CAAC,SAAS,EAAE,OAAO;SAC9D;QACD,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB,IAAI,IAAI;QAC/D,oCAAoC;QACpC,aAAa,EAAE;YACb,gBAAgB,EAAE,QAAQ,CAAC,aAAa,EAAE,gBAAgB;YAC1D,mBAAmB,EAAE,QAAQ,CAAC,aAAa,EAAE,mBAAmB;YAChE,yBAAyB,EACvB,QAAQ,CAAC,aAAa,EAAE,yBAAyB;SACpD;QACD,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,EAAE,OAAO;QACpE,KAAK,EACH,IAAI,CAAC,KAAK;YACV,OAAO,CAAC,GAAG,CAAC,WAAW;YACvB,OAAO,CAAC,GAAG,CAAC,WAAW;YACvB,OAAO,CAAC,GAAG,CAAC,UAAU;YACtB,OAAO,CAAC,GAAG,CAAC,UAAU;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,oBAAoB,EAAE,WAAW;QACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,IAAI,oBAAoB;QAClE,yBAAyB;QACzB,eAAe,EAAE,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC;QAC/C,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,KAAK;QAC9C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK;QAC5C,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;YACnB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;SAC1B,CAAC,CAAC;QACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,aAAa;QACzB,iBAAiB;QACjB,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;QACnC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,OAAO;QACP,SAAS;KACV,CAAC,CAAC;IAEH,2CAA2C;IAC3C,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,QAAkB,EAAE,UAAuB;IAClE,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;IACtD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CACvD,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;YAChB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CACT,sDAAsD,GAAG,yBAAyB,CACnF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,GAAG;gBAChB,GAAG,MAAM;gBACT,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI;aACrC,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAkB,EAClB,UAAuB;IAEvB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC7D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YACvD,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,IAAI,EAAE,CAAC;QACZ,+CAA+C;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,2EAA2E;YAC3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACtE,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrC,OAAO,iBAAiB,CAAC;YAC3B,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;YACpD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
|
@@ -7,6 +7,7 @@ import { MCPServerConfig, GeminiCLIExtension } from '@vybestack/llxprt-code-core
|
|
7
7
|
export declare const EXTENSIONS_DIRECTORY_NAME: string;
|
8
8
|
export declare const EXTENSIONS_CONFIG_FILENAME = "gemini-extension.json";
|
9
9
|
export interface Extension {
|
10
|
+
path: string;
|
10
11
|
config: ExtensionConfig;
|
11
12
|
contextFiles: string[];
|
12
13
|
}
|
@@ -57,6 +57,7 @@ function loadExtension(extensionDir) {
|
|
57
57
|
.map((contextFileName) => path.join(extensionDir, contextFileName))
|
58
58
|
.filter((contextFilePath) => fs.existsSync(contextFilePath));
|
59
59
|
return {
|
60
|
+
path: extensionDir,
|
60
61
|
config,
|
61
62
|
contextFiles,
|
62
63
|
};
|
@@ -82,6 +83,7 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames) {
|
|
82
83
|
name: extension.config.name,
|
83
84
|
version: extension.config.version,
|
84
85
|
isActive: true,
|
86
|
+
path: extension.path,
|
85
87
|
}));
|
86
88
|
}
|
87
89
|
const lowerCaseEnabledExtensions = new Set(enabledExtensionNames.map((e) => e.trim().toLowerCase()));
|
@@ -91,6 +93,7 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames) {
|
|
91
93
|
name: extension.config.name,
|
92
94
|
version: extension.config.version,
|
93
95
|
isActive: false,
|
96
|
+
path: extension.path,
|
94
97
|
}));
|
95
98
|
}
|
96
99
|
const notFoundNames = new Set(lowerCaseEnabledExtensions);
|
@@ -104,6 +107,7 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames) {
|
|
104
107
|
name: extension.config.name,
|
105
108
|
version: extension.config.version,
|
106
109
|
isActive,
|
110
|
+
path: extension.path,
|
107
111
|
});
|
108
112
|
}
|
109
113
|
for (const requestedName of notFoundNames) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../src/config/extension.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../src/config/extension.ts"],"names":[],"mappings":"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"}
|