@vybestack/llxprt-code 0.1.15 → 0.1.16-hotfix1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/README.md +37 -2
  2. package/dist/package.json +3 -3
  3. package/dist/src/config/config.d.ts +4 -1
  4. package/dist/src/config/config.js +151 -54
  5. package/dist/src/config/config.js.map +1 -1
  6. package/dist/src/config/settings.d.ts +11 -2
  7. package/dist/src/config/settings.js +84 -23
  8. package/dist/src/config/settings.js.map +1 -1
  9. package/dist/src/gemini.d.ts +2 -0
  10. package/dist/src/gemini.js +177 -21
  11. package/dist/src/gemini.js.map +1 -1
  12. package/dist/src/generated/git-commit.d.ts +1 -1
  13. package/dist/src/generated/git-commit.js +1 -1
  14. package/dist/src/generated/git-commit.js.map +1 -1
  15. package/dist/src/integration-tests/GITHUB_ACTIONS_README.md +41 -0
  16. package/dist/src/integration-tests/test-utils.d.ts +68 -0
  17. package/dist/src/integration-tests/test-utils.js +167 -0
  18. package/dist/src/integration-tests/test-utils.js.map +1 -0
  19. package/dist/src/nonInteractiveCli.js +24 -66
  20. package/dist/src/nonInteractiveCli.js.map +1 -1
  21. package/dist/src/providers/IFileSystem.d.ts +42 -0
  22. package/dist/src/providers/IFileSystem.js +46 -0
  23. package/dist/src/providers/IFileSystem.js.map +1 -0
  24. package/dist/src/providers/providerConfigUtils.d.ts +0 -4
  25. package/dist/src/providers/providerConfigUtils.js +21 -52
  26. package/dist/src/providers/providerConfigUtils.js.map +1 -1
  27. package/dist/src/providers/providerManagerInstance.d.ts +6 -1
  28. package/dist/src/providers/providerManagerInstance.js +117 -82
  29. package/dist/src/providers/providerManagerInstance.js.map +1 -1
  30. package/dist/src/services/BuiltinCommandLoader.js +11 -0
  31. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  32. package/dist/src/ui/App.js +61 -48
  33. package/dist/src/ui/App.js.map +1 -1
  34. package/dist/src/ui/commands/aboutCommand.js +2 -5
  35. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  36. package/dist/src/ui/commands/baseurlCommand.js +54 -9
  37. package/dist/src/ui/commands/baseurlCommand.js.map +1 -1
  38. package/dist/src/ui/commands/diagnosticsCommand.d.ts +10 -0
  39. package/dist/src/ui/commands/diagnosticsCommand.js +122 -0
  40. package/dist/src/ui/commands/diagnosticsCommand.js.map +1 -0
  41. package/dist/src/ui/commands/directoryCommand.d.ts +8 -0
  42. package/dist/src/ui/commands/directoryCommand.js +116 -0
  43. package/dist/src/ui/commands/directoryCommand.js.map +1 -0
  44. package/dist/src/ui/commands/ideCommand.js +101 -105
  45. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  46. package/dist/src/ui/commands/initCommand.js +63 -31
  47. package/dist/src/ui/commands/initCommand.js.map +1 -1
  48. package/dist/src/ui/commands/keyCommand.js +75 -11
  49. package/dist/src/ui/commands/keyCommand.js.map +1 -1
  50. package/dist/src/ui/commands/keyfileCommand.js +54 -13
  51. package/dist/src/ui/commands/keyfileCommand.js.map +1 -1
  52. package/dist/src/ui/commands/memoryCommand.js +2 -1
  53. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  54. package/dist/src/ui/commands/modelCommand.js +2 -5
  55. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  56. package/dist/src/ui/commands/profileCommand.d.ts +10 -0
  57. package/dist/src/ui/commands/profileCommand.js +592 -0
  58. package/dist/src/ui/commands/profileCommand.js.map +1 -0
  59. package/dist/src/ui/commands/providerCommand.js +46 -3
  60. package/dist/src/ui/commands/providerCommand.js.map +1 -1
  61. package/dist/src/ui/commands/setCommand.d.ts +7 -0
  62. package/dist/src/ui/commands/setCommand.js +431 -0
  63. package/dist/src/ui/commands/setCommand.js.map +1 -0
  64. package/dist/src/ui/commands/setupGithubCommand.d.ts +7 -0
  65. package/dist/src/ui/commands/setupGithubCommand.js +49 -0
  66. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -0
  67. package/dist/src/ui/commands/types.d.ts +1 -1
  68. package/dist/src/ui/commands/types.js.map +1 -1
  69. package/dist/src/ui/components/DebugProfiler.d.ts +6 -0
  70. package/dist/src/ui/components/DebugProfiler.js +26 -0
  71. package/dist/src/ui/components/DebugProfiler.js.map +1 -0
  72. package/dist/src/ui/components/Footer.d.ts +1 -0
  73. package/dist/src/ui/components/Footer.js +5 -4
  74. package/dist/src/ui/components/Footer.js.map +1 -1
  75. package/dist/src/ui/components/IDEContextDetailDisplay.d.ts +2 -1
  76. package/dist/src/ui/components/IDEContextDetailDisplay.js +3 -3
  77. package/dist/src/ui/components/IDEContextDetailDisplay.js.map +1 -1
  78. package/dist/src/ui/components/InputPrompt.js +123 -12
  79. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  80. package/dist/src/ui/components/LoadProfileDialog.d.ts +13 -0
  81. package/dist/src/ui/components/LoadProfileDialog.js +57 -0
  82. package/dist/src/ui/components/LoadProfileDialog.js.map +1 -0
  83. package/dist/src/ui/components/PrepareLabel.d.ts +15 -0
  84. package/dist/src/ui/components/PrepareLabel.js +16 -0
  85. package/dist/src/ui/components/PrepareLabel.js.map +1 -0
  86. package/dist/src/ui/components/ProviderModelDialog.js +75 -28
  87. package/dist/src/ui/components/ProviderModelDialog.js.map +1 -1
  88. package/dist/src/ui/components/SecureKeyInput.d.ts +15 -0
  89. package/dist/src/ui/components/SecureKeyInput.js +58 -0
  90. package/dist/src/ui/components/SecureKeyInput.js.map +1 -0
  91. package/dist/src/ui/components/SuggestionsDisplay.d.ts +1 -0
  92. package/dist/src/ui/components/SuggestionsDisplay.js +3 -3
  93. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  94. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +15 -4
  95. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  96. package/dist/src/ui/components/messages/UserMessage.js +4 -1
  97. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  98. package/dist/src/ui/components/shared/text-buffer.js +9 -14
  99. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  100. package/dist/src/ui/containers/SessionController.js +14 -15
  101. package/dist/src/ui/containers/SessionController.js.map +1 -1
  102. package/dist/src/ui/editors/editorSettingsManager.js +2 -0
  103. package/dist/src/ui/editors/editorSettingsManager.js.map +1 -1
  104. package/dist/src/ui/hooks/atCommandProcessor.js +56 -48
  105. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  106. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
  107. package/dist/src/ui/hooks/slashCommandProcessor.js +13 -3
  108. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  109. package/dist/src/ui/hooks/useAuthCommand.js +9 -0
  110. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  111. package/dist/src/ui/hooks/useCompletion.d.ts +5 -5
  112. package/dist/src/ui/hooks/useCompletion.js +7 -407
  113. package/dist/src/ui/hooks/useCompletion.js.map +1 -1
  114. package/dist/src/ui/hooks/useGeminiStream.js +61 -10
  115. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  116. package/dist/src/ui/hooks/useLoadProfileDialog.d.ts +27 -0
  117. package/dist/src/ui/hooks/useLoadProfileDialog.js +138 -0
  118. package/dist/src/ui/hooks/useLoadProfileDialog.js.map +1 -0
  119. package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +19 -0
  120. package/dist/src/ui/hooks/useReverseSearchCompletion.js +54 -0
  121. package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -0
  122. package/dist/src/ui/hooks/useShellHistory.d.ts +1 -0
  123. package/dist/src/ui/hooks/useShellHistory.js +30 -7
  124. package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
  125. package/dist/src/ui/hooks/useSlashCompletion.d.ts +24 -0
  126. package/dist/src/ui/hooks/useSlashCompletion.js +451 -0
  127. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -0
  128. package/dist/src/ui/reducers/appReducer.d.ts +3 -2
  129. package/dist/src/ui/reducers/appReducer.js +1 -0
  130. package/dist/src/ui/reducers/appReducer.js.map +1 -1
  131. package/dist/src/ui/utils/renderLoopDetector.js +3 -3
  132. package/dist/src/ui/utils/renderLoopDetector.js.map +1 -1
  133. package/dist/src/ui/utils/secureInputHandler.d.ts +46 -0
  134. package/dist/src/ui/utils/secureInputHandler.js +128 -0
  135. package/dist/src/ui/utils/secureInputHandler.js.map +1 -0
  136. package/dist/src/ui/utils/updateCheck.js +57 -12
  137. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  138. package/dist/src/utils/gitUtils.d.ts +10 -0
  139. package/dist/src/utils/gitUtils.js +24 -0
  140. package/dist/src/utils/gitUtils.js.map +1 -0
  141. package/dist/src/utils/handleAutoUpdate.d.ts +2 -1
  142. package/dist/src/utils/handleAutoUpdate.js +8 -4
  143. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  144. package/dist/src/utils/sandbox-macos-permissive-closed.sb +6 -0
  145. package/dist/src/utils/sandbox-macos-permissive-open.sb +6 -0
  146. package/dist/src/utils/sandbox-macos-permissive-proxied.sb +6 -0
  147. package/dist/src/utils/sandbox-macos-restrictive-closed.sb +6 -0
  148. package/dist/src/utils/sandbox-macos-restrictive-open.sb +6 -0
  149. package/dist/src/utils/sandbox-macos-restrictive-proxied.sb +6 -0
  150. package/dist/src/utils/sandbox.d.ts +2 -2
  151. package/dist/src/utils/sandbox.js +35 -11
  152. package/dist/src/utils/sandbox.js.map +1 -1
  153. package/dist/src/utils/spawnWrapper.d.ts +7 -0
  154. package/dist/src/utils/spawnWrapper.js +8 -0
  155. package/dist/src/utils/spawnWrapper.js.map +1 -0
  156. package/dist/src/validateNonInterActiveAuth.d.ts +2 -1
  157. package/dist/src/validateNonInterActiveAuth.js +31 -5
  158. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  159. package/dist/tsconfig.tsbuildinfo +1 -1
  160. package/package.json +3 -3
  161. package/dist/src/providers/enhanceConfigWithProviders.d.ts +0 -12
  162. package/dist/src/providers/enhanceConfigWithProviders.js +0 -16
  163. package/dist/src/providers/enhanceConfigWithProviders.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { spawn } from 'child_process';
7
+ export declare const spawnWrapper: typeof spawn;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { spawn } from 'child_process';
7
+ export const spawnWrapper = spawn;
8
+ //# sourceMappingURL=spawnWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawnWrapper.js","sourceRoot":"","sources":["../../../src/utils/spawnWrapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC"}
@@ -4,4 +4,5 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { AuthType, Config } from '@vybestack/llxprt-code-core';
7
- export declare function validateNonInteractiveAuth(configuredAuthType: AuthType | undefined, nonInteractiveConfig: Config): Promise<Config>;
7
+ import { LoadedSettings } from './config/settings.js';
8
+ export declare function validateNonInteractiveAuth(configuredAuthType: AuthType | undefined, useExternalAuth: boolean | undefined, nonInteractiveConfig: Config, settings?: LoadedSettings): Promise<Config>;
@@ -20,13 +20,25 @@ function getAuthTypeFromEnv() {
20
20
  }
21
21
  return undefined;
22
22
  }
23
- export async function validateNonInteractiveAuth(configuredAuthType, nonInteractiveConfig) {
23
+ export async function validateNonInteractiveAuth(configuredAuthType, useExternalAuth, nonInteractiveConfig, settings) {
24
24
  // Check if a provider is already configured via command line
25
25
  const providerManager = nonInteractiveConfig.getProviderManager?.();
26
26
  const configProvider = nonInteractiveConfig.getProvider?.();
27
27
  if (configProvider && providerManager?.hasActiveProvider?.()) {
28
28
  // Provider is configured, but we still need to call refreshAuth to initialize content generator
29
29
  await nonInteractiveConfig.refreshAuth(AuthType.USE_PROVIDER);
30
+ // Apply compression settings after authentication
31
+ if (settings) {
32
+ const merged = settings.merged;
33
+ const contextLimit = merged['context-limit'];
34
+ const compressionThreshold = merged['compression-threshold'];
35
+ if (contextLimit || compressionThreshold) {
36
+ const geminiClient = nonInteractiveConfig.getGeminiClient();
37
+ if (geminiClient) {
38
+ geminiClient.setCompressionSettings(compressionThreshold, contextLimit);
39
+ }
40
+ }
41
+ }
30
42
  // Ensure serverToolsProvider (Gemini) has config set if it's not the active provider
31
43
  const serverToolsProvider = providerManager.getServerToolsProvider?.();
32
44
  if (serverToolsProvider &&
@@ -41,12 +53,26 @@ export async function validateNonInteractiveAuth(configuredAuthType, nonInteract
41
53
  console.error(`Please set an Auth method in your ${USER_SETTINGS_PATH} or specify one of the following environment variables before running: GEMINI_API_KEY, LLXPRT_API_KEY, GOOGLE_GENAI_USE_VERTEXAI, GOOGLE_GENAI_USE_GCA, OPENAI_API_KEY, ANTHROPIC_API_KEY`);
42
54
  process.exit(1);
43
55
  }
44
- const err = validateAuthMethod(effectiveAuthType);
45
- if (err != null) {
46
- console.error(err);
47
- process.exit(1);
56
+ if (!useExternalAuth) {
57
+ const err = validateAuthMethod(effectiveAuthType);
58
+ if (err != null) {
59
+ console.error(err);
60
+ process.exit(1);
61
+ }
48
62
  }
49
63
  await nonInteractiveConfig.refreshAuth(effectiveAuthType);
64
+ // Apply compression settings after authentication
65
+ if (settings) {
66
+ const merged = settings.merged;
67
+ const contextLimit = merged['context-limit'];
68
+ const compressionThreshold = merged['compression-threshold'];
69
+ if (contextLimit || compressionThreshold) {
70
+ const geminiClient = nonInteractiveConfig.getGeminiClient();
71
+ if (geminiClient) {
72
+ geminiClient.setCompressionSettings(compressionThreshold, contextLimit);
73
+ }
74
+ }
75
+ }
50
76
  // Ensure serverToolsProvider (Gemini) has config set if it's not the active provider
51
77
  if (providerManager) {
52
78
  const serverToolsProvider = providerManager.getServerToolsProvider?.();
@@ -1 +1 @@
1
- {"version":3,"file":"validateNonInterActiveAuth.js","sourceRoot":"","sources":["../../src/validateNonInterActiveAuth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAU,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,SAAS,kBAAkB;IACzB,8EAA8E;IAC9E,0FAA0F;IAC1F,gFAAgF;IAChF,IACE,OAAO,CAAC,GAAG,CAAC,cAAc;QAC1B,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM;QAC3C,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,MAAM;QAChD,OAAO,CAAC,GAAG,CAAC,cAAc;QAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAC1B,CAAC;QACD,OAAO,QAAQ,CAAC,YAAY,CAAC;IAC/B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,kBAAwC,EACxC,oBAA4B;IAE5B,6DAA6D;IAC7D,MAAM,eAAe,GAAG,oBAAoB,CAAC,kBAAkB,EAAE,EAAE,CAAC;IACpE,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,EAAE,EAAE,CAAC;IAE5D,IAAI,cAAc,IAAI,eAAe,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;QAC7D,gGAAgG;QAChG,MAAM,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE9D,qFAAqF;QACrF,MAAM,mBAAmB,GAAG,eAAe,CAAC,sBAAsB,EAAE,EAAE,CAAC;QACvE,IACE,mBAAmB;YACnB,mBAAmB,CAAC,IAAI,KAAK,QAAQ;YACrC,mBAAmB,CAAC,SAAS,EAC7B,CAAC;YACD,mBAAmB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,iBAAiB,GAAG,kBAAkB,IAAI,kBAAkB,EAAE,CAAC;IAErE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CACX,qCAAqC,kBAAkB,2LAA2L,CACnP,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAE1D,qFAAqF;IACrF,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,mBAAmB,GAAG,eAAe,CAAC,sBAAsB,EAAE,EAAE,CAAC;QACvE,IACE,mBAAmB;YACnB,mBAAmB,CAAC,IAAI,KAAK,QAAQ;YACrC,mBAAmB,CAAC,SAAS,EAC7B,CAAC;YACD,mBAAmB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"validateNonInterActiveAuth.js","sourceRoot":"","sources":["../../src/validateNonInterActiveAuth.ts"],"names":[],"mappings":"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"}