@qwen-code/qwen-code 0.0.5-nightly.1 → 0.0.5-nightly.10

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 (153) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +53 -6
  3. package/dist/package.json +6 -5
  4. package/dist/qwen-code-qwen-code-0.0.4.tgz +0 -0
  5. package/dist/src/config/auth.js +5 -0
  6. package/dist/src/config/auth.js.map +1 -1
  7. package/dist/src/config/config.d.ts +3 -2
  8. package/dist/src/config/config.js +39 -18
  9. package/dist/src/config/config.js.map +1 -1
  10. package/dist/src/config/extension.d.ts +1 -0
  11. package/dist/src/config/extension.js +4 -0
  12. package/dist/src/config/extension.js.map +1 -1
  13. package/dist/src/config/settings.d.ts +13 -1
  14. package/dist/src/config/settings.js +84 -23
  15. package/dist/src/config/settings.js.map +1 -1
  16. package/dist/src/gemini.d.ts +2 -0
  17. package/dist/src/gemini.js +30 -3
  18. package/dist/src/gemini.js.map +1 -1
  19. package/dist/src/generated/git-commit.d.ts +1 -1
  20. package/dist/src/generated/git-commit.js +1 -1
  21. package/dist/src/nonInteractiveCli.js +15 -40
  22. package/dist/src/nonInteractiveCli.js.map +1 -1
  23. package/dist/src/services/BuiltinCommandLoader.js +8 -1
  24. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  25. package/dist/src/services/CommandService.d.ts +8 -4
  26. package/dist/src/services/CommandService.js +24 -8
  27. package/dist/src/services/CommandService.js.map +1 -1
  28. package/dist/src/services/FileCommandLoader.d.ts +15 -3
  29. package/dist/src/services/FileCommandLoader.js +64 -35
  30. package/dist/src/services/FileCommandLoader.js.map +1 -1
  31. package/dist/src/ui/App.js +65 -23
  32. package/dist/src/ui/App.js.map +1 -1
  33. package/dist/src/ui/commands/chatCommand.js +39 -1
  34. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  35. package/dist/src/ui/commands/directoryCommand.d.ts +8 -0
  36. package/dist/src/ui/commands/directoryCommand.js +116 -0
  37. package/dist/src/ui/commands/directoryCommand.js.map +1 -0
  38. package/dist/src/ui/commands/helpCommand.js +7 -6
  39. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  40. package/dist/src/ui/commands/ideCommand.js +113 -105
  41. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  42. package/dist/src/ui/commands/initCommand.d.ts +7 -0
  43. package/dist/src/ui/commands/initCommand.js +76 -0
  44. package/dist/src/ui/commands/initCommand.js.map +1 -0
  45. package/dist/src/ui/commands/mcpCommand.js +15 -20
  46. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  47. package/dist/src/ui/commands/memoryCommand.js +2 -1
  48. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  49. package/dist/src/ui/commands/setupGithubCommand.d.ts +7 -0
  50. package/dist/src/ui/commands/setupGithubCommand.js +48 -0
  51. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -0
  52. package/dist/src/ui/commands/types.d.ts +2 -1
  53. package/dist/src/ui/components/AuthDialog.js +7 -1
  54. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  55. package/dist/src/ui/components/ContextSummaryDisplay.d.ts +2 -2
  56. package/dist/src/ui/components/ContextSummaryDisplay.js +8 -8
  57. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  58. package/dist/src/ui/components/DebugProfiler.d.ts +6 -0
  59. package/dist/src/ui/components/DebugProfiler.js +26 -0
  60. package/dist/src/ui/components/DebugProfiler.js.map +1 -0
  61. package/dist/src/ui/components/Footer.js +3 -2
  62. package/dist/src/ui/components/Footer.js.map +1 -1
  63. package/dist/src/ui/components/Help.js +2 -2
  64. package/dist/src/ui/components/Help.js.map +1 -1
  65. package/dist/src/ui/components/HistoryItemDisplay.d.ts +2 -0
  66. package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
  67. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  68. package/dist/src/ui/components/IDEContextDetailDisplay.d.ts +4 -3
  69. package/dist/src/ui/components/IDEContextDetailDisplay.js +6 -13
  70. package/dist/src/ui/components/IDEContextDetailDisplay.js.map +1 -1
  71. package/dist/src/ui/components/InputPrompt.js +83 -7
  72. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  73. package/dist/src/ui/components/PrepareLabel.d.ts +15 -0
  74. package/dist/src/ui/components/PrepareLabel.js +16 -0
  75. package/dist/src/ui/components/PrepareLabel.js.map +1 -0
  76. package/dist/src/ui/components/QwenOAuthProgress.d.ts +16 -0
  77. package/dist/src/ui/components/QwenOAuthProgress.js +86 -0
  78. package/dist/src/ui/components/QwenOAuthProgress.js.map +1 -0
  79. package/dist/src/ui/components/SuggestionsDisplay.d.ts +1 -0
  80. package/dist/src/ui/components/SuggestionsDisplay.js +3 -3
  81. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  82. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +15 -4
  83. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  84. package/dist/src/ui/components/messages/UserMessage.js +4 -1
  85. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  86. package/dist/src/ui/components/shared/text-buffer.js +9 -14
  87. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  88. package/dist/src/ui/editors/editorSettingsManager.js +6 -13
  89. package/dist/src/ui/editors/editorSettingsManager.js.map +1 -1
  90. package/dist/src/ui/hooks/atCommandProcessor.js +67 -52
  91. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  92. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
  93. package/dist/src/ui/hooks/slashCommandProcessor.js +19 -7
  94. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  95. package/dist/src/ui/hooks/useCommandCompletion.d.ts +24 -0
  96. package/dist/src/ui/hooks/useCommandCompletion.js +453 -0
  97. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -0
  98. package/dist/src/ui/hooks/useCompletion.d.ts +5 -5
  99. package/dist/src/ui/hooks/useCompletion.js +7 -407
  100. package/dist/src/ui/hooks/useCompletion.js.map +1 -1
  101. package/dist/src/ui/hooks/useGeminiStream.d.ts +1 -1
  102. package/dist/src/ui/hooks/useGeminiStream.js +6 -5
  103. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  104. package/dist/src/ui/hooks/usePhraseCycler.js +1 -0
  105. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  106. package/dist/src/ui/hooks/useQwenAuth.d.ts +20 -0
  107. package/dist/src/ui/hooks/useQwenAuth.js +78 -0
  108. package/dist/src/ui/hooks/useQwenAuth.js.map +1 -0
  109. package/dist/src/ui/hooks/useReactToolScheduler.js +0 -1
  110. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  111. package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +19 -0
  112. package/dist/src/ui/hooks/useReverseSearchCompletion.js +54 -0
  113. package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -0
  114. package/dist/src/ui/hooks/useShellHistory.d.ts +1 -0
  115. package/dist/src/ui/hooks/useShellHistory.js +30 -7
  116. package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
  117. package/dist/src/ui/types.d.ts +10 -1
  118. package/dist/src/ui/types.js +1 -0
  119. package/dist/src/ui/types.js.map +1 -1
  120. package/dist/src/ui/utils/updateCheck.d.ts +7 -1
  121. package/dist/src/ui/utils/updateCheck.js +46 -8
  122. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  123. package/dist/src/utils/gitUtils.d.ts +10 -0
  124. package/dist/src/utils/gitUtils.js +24 -0
  125. package/dist/src/utils/gitUtils.js.map +1 -0
  126. package/dist/src/utils/handleAutoUpdate.d.ts +11 -0
  127. package/dist/src/utils/handleAutoUpdate.js +101 -0
  128. package/dist/src/utils/handleAutoUpdate.js.map +1 -0
  129. package/dist/src/utils/installationInfo.d.ts +23 -0
  130. package/dist/src/utils/installationInfo.js +154 -0
  131. package/dist/src/utils/installationInfo.js.map +1 -0
  132. package/dist/src/utils/sandbox-macos-permissive-closed.sb +6 -0
  133. package/dist/src/utils/sandbox-macos-permissive-open.sb +6 -0
  134. package/dist/src/utils/sandbox-macos-permissive-proxied.sb +6 -0
  135. package/dist/src/utils/sandbox-macos-restrictive-closed.sb +6 -0
  136. package/dist/src/utils/sandbox-macos-restrictive-open.sb +6 -0
  137. package/dist/src/utils/sandbox-macos-restrictive-proxied.sb +6 -0
  138. package/dist/src/utils/sandbox.d.ts +2 -2
  139. package/dist/src/utils/sandbox.js +35 -11
  140. package/dist/src/utils/sandbox.js.map +1 -1
  141. package/dist/src/utils/spawnWrapper.d.ts +7 -0
  142. package/dist/src/utils/spawnWrapper.js +8 -0
  143. package/dist/src/utils/spawnWrapper.js.map +1 -0
  144. package/dist/src/utils/startupWarnings.js +1 -1
  145. package/dist/src/utils/startupWarnings.js.map +1 -1
  146. package/dist/src/utils/updateEventEmitter.d.ts +11 -0
  147. package/dist/src/utils/updateEventEmitter.js +12 -0
  148. package/dist/src/utils/updateEventEmitter.js.map +1 -0
  149. package/dist/src/validateNonInterActiveAuth.d.ts +1 -1
  150. package/dist/src/validateNonInterActiveAuth.js +10 -5
  151. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  152. package/dist/tsconfig.tsbuildinfo +1 -1
  153. package/package.json +4 -3
package/LICENSE CHANGED
@@ -188,6 +188,7 @@
188
188
  identification within third-party archives.
189
189
 
190
190
  Copyright 2025 Google LLC
191
+ Copyright 2025 Qwen
191
192
 
192
193
  Licensed under the Apache License, Version 2.0 (the "License");
193
194
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -17,10 +17,27 @@
17
17
 
18
18
  Qwen Code is a powerful command-line AI workflow tool adapted from [**Gemini CLI**](https://github.com/google-gemini/gemini-cli) ([details](./README.gemini.md)), specifically optimized for [Qwen3-Coder](https://github.com/QwenLM/Qwen3-Coder) models. It enhances your development workflow with advanced code understanding, automated tasks, and intelligent assistance.
19
19
 
20
+ ## 💡 Free Options Available
21
+
22
+ Get started with Qwen Code at no cost using any of these free options:
23
+
24
+ ### 🔥 Qwen OAuth (Recommended)
25
+
26
+ - **2,000 requests per day** with no token limits
27
+ - **60 requests per minute** rate limit
28
+ - Simply run `qwen` and authenticate with your qwen.ai account
29
+ - Automatic credential management and refresh
30
+ - Use `/auth` command to switch to Qwen OAuth if you have initialized with OpenAI compatible mode
31
+
32
+ ### 🌏 Regional Free Tiers
33
+
34
+ - **Mainland China**: ModelScope offers **2,000 free API calls per day**
35
+ - **International**: OpenRouter provides **up to 1,000 free API calls per day** worldwide
36
+
37
+ For detailed setup instructions, see [Authorization](#authorization).
38
+
20
39
  > [!WARNING]
21
40
  > **Token Usage Notice**: Qwen Code may issue multiple API calls per cycle, resulting in higher token usage (similar to Claude Code). We're actively optimizing API efficiency.
22
- >
23
- > 💡 **Free Option**: ModelScope provides **2,000 free API calls per day** for users in mainland China. OpenRouter offers up to **1,000 free API calls per day** worldwide. For setup instructions, see [API Configuration](#api-configuration).
24
41
 
25
42
  ## Key Features
26
43
 
@@ -88,11 +105,39 @@ Create or edit `.qwen/settings.json` in your home directory:
88
105
 
89
106
  > 📝 **Note**: Session token limit applies to a single conversation, not cumulative API calls.
90
107
 
91
- ### API Configuration
108
+ ### Authorization
109
+
110
+ Choose your preferred authentication method based on your needs:
92
111
 
93
- Qwen Code supports multiple API providers. You can configure your API key through environment variables or a `.env` file in your project root.
112
+ #### 1. Qwen OAuth (🚀 Recommended - Start in 30 seconds)
94
113
 
95
- #### Configuration Methods
114
+ The easiest way to get started - completely free with generous quotas:
115
+
116
+ ```bash
117
+ # Just run this command and follow the browser authentication
118
+ qwen
119
+ ```
120
+
121
+ **What happens:**
122
+
123
+ 1. **Instant Setup**: CLI opens your browser automatically
124
+ 2. **One-Click Login**: Authenticate with your qwen.ai account
125
+ 3. **Automatic Management**: Credentials cached locally for future use
126
+ 4. **No Configuration**: Zero setup required - just start coding!
127
+
128
+ **Free Tier Benefits:**
129
+
130
+ - ✅ **2,000 requests/day** (no token counting needed)
131
+ - ✅ **60 requests/minute** rate limit
132
+ - ✅ **Automatic credential refresh**
133
+ - ✅ **Zero cost** for individual users
134
+ - ℹ️ **Note**: Model fallback may occur to maintain service quality
135
+
136
+ #### 2. OpenAI-Compatible API
137
+
138
+ Use API keys for OpenAI or other compatible providers:
139
+
140
+ **Configuration Methods:**
96
141
 
97
142
  1. **Environment Variables**
98
143
 
@@ -110,7 +155,7 @@ Qwen Code supports multiple API providers. You can configure your API key throug
110
155
  OPENAI_MODEL=your_model_choice
111
156
  ```
112
157
 
113
- #### API Provider Options
158
+ **API Provider Options**
114
159
 
115
160
  > ⚠️ **Regional Notice:**
116
161
  >
@@ -287,6 +332,8 @@ qwen
287
332
 
288
333
  See [CONTRIBUTING.md](./CONTRIBUTING.md) to learn how to contribute to the project.
289
334
 
335
+ For detailed authentication setup, see the [authentication guide](./docs/cli/authentication.md).
336
+
290
337
  ## Troubleshooting
291
338
 
292
339
  If you encounter issues, check the [troubleshooting guide](docs/troubleshooting.md).
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qwen-code/qwen-code",
3
- "version": "0.0.5-nightly.1",
3
+ "version": "0.0.5-nightly.10",
4
4
  "description": "Qwen Code",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,12 +25,12 @@
25
25
  "dist"
26
26
  ],
27
27
  "config": {
28
- "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.5-nightly.1"
28
+ "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.5-nightly.10"
29
29
  },
30
30
  "dependencies": {
31
- "@qwen-code/qwen-code-core": "file:../core",
32
31
  "@google/genai": "1.9.0",
33
32
  "@iarna/toml": "^2.2.5",
33
+ "@qwen-code/qwen-code-core": "file:../core",
34
34
  "@types/update-notifier": "^6.0.8",
35
35
  "command-exists": "^1.2.9",
36
36
  "diff": "^7.0.0",
@@ -46,16 +46,17 @@
46
46
  "lowlight": "^3.3.0",
47
47
  "mime-types": "^3.0.1",
48
48
  "open": "^10.1.2",
49
+ "qrcode-terminal": "^0.12.0",
49
50
  "react": "^19.1.0",
50
51
  "read-package-up": "^11.0.0",
51
52
  "shell-quote": "^1.8.3",
52
53
  "string-width": "^7.1.0",
53
54
  "strip-ansi": "^7.1.0",
54
55
  "strip-json-comments": "^3.1.1",
56
+ "tiktoken": "^1.0.21",
55
57
  "update-notifier": "^7.3.1",
56
58
  "yargs": "^17.7.2",
57
- "zod": "^3.23.8",
58
- "tiktoken": "^1.0.21"
59
+ "zod": "^3.23.8"
59
60
  },
60
61
  "devDependencies": {
61
62
  "@babel/runtime": "^7.27.6",
Binary file
@@ -34,6 +34,11 @@ export const validateAuthMethod = (authMethod) => {
34
34
  }
35
35
  return null;
36
36
  }
37
+ if (authMethod === AuthType.QWEN_OAUTH) {
38
+ // Qwen OAuth doesn't require any environment variables for basic setup
39
+ // The OAuth flow will handle authentication
40
+ return null;
41
+ }
37
42
  return 'Invalid auth method selected.';
38
43
  };
39
44
  export const setOpenAIApiKey = (apiKey) => {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/config/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,UAAkB,EAAiB,EAAE;IACtE,eAAe,EAAE,CAAC;IAClB,IACE,UAAU,KAAK,QAAQ,CAAC,iBAAiB;QACzC,UAAU,KAAK,QAAQ,CAAC,WAAW,EACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO,6HAA6H,CAAC;QACvI,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,8BAA8B,GAClC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAC5E,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACrD,IAAI,CAAC,8BAA8B,IAAI,CAAC,eAAe,EAAE,CAAC;YACxD,OAAO,CACL,kDAAkD;gBAClD,2EAA2E;gBAC3E,kEAAkE;gBAClE,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO,4GAA4G,CAAC;QACtH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,+BAA+B,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAc,EAAQ,EAAE;IACtD,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAQ,EAAE;IACxD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAQ,EAAE;IACpD,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AACnC,CAAC,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/config/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,UAAkB,EAAiB,EAAE;IACtE,eAAe,EAAE,CAAC;IAClB,IACE,UAAU,KAAK,QAAQ,CAAC,iBAAiB;QACzC,UAAU,KAAK,QAAQ,CAAC,WAAW,EACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO,6HAA6H,CAAC;QACvI,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,8BAA8B,GAClC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAC5E,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACrD,IAAI,CAAC,8BAA8B,IAAI,CAAC,eAAe,EAAE,CAAC;YACxD,OAAO,CACL,kDAAkD;gBAClD,2EAA2E;gBAC3E,kEAAkE;gBAClE,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAChC,OAAO,4GAA4G,CAAC;QACtH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,uEAAuE;QACvE,4CAA4C;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,+BAA+B,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAc,EAAQ,EAAE;IACtD,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAQ,EAAE;IACxD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAQ,EAAE;IACpD,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AACnC,CAAC,CAAC"}
@@ -28,14 +28,15 @@ export interface CliArgs {
28
28
  experimentalAcp: boolean | undefined;
29
29
  extensions: string[] | undefined;
30
30
  listExtensions: boolean | undefined;
31
- ideMode: boolean | undefined;
31
+ ideModeFeature: boolean | undefined;
32
32
  openaiLogging: boolean | undefined;
33
33
  openaiApiKey: string | undefined;
34
34
  openaiBaseUrl: string | undefined;
35
35
  proxy: string | undefined;
36
+ includeDirectories: string[] | undefined;
36
37
  }
37
38
  export declare function parseArguments(): Promise<CliArgs>;
38
- export declare function loadHierarchicalGeminiMemory(currentWorkingDirectory: string, debugMode: boolean, fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths?: string[], fileFilteringOptions?: FileFilteringOptions): Promise<{
39
+ export declare function loadHierarchicalGeminiMemory(currentWorkingDirectory: string, debugMode: boolean, fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths?: string[], memoryImportFormat?: 'flat' | 'tree', fileFilteringOptions?: FileFilteringOptions): Promise<{
39
40
  memoryContent: string;
40
41
  fileCount: number;
41
42
  }>;
@@ -3,6 +3,9 @@
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';
@@ -27,7 +30,7 @@ export async function parseArguments() {
27
30
  alias: 'm',
28
31
  type: 'string',
29
32
  description: `Model`,
30
- default: process.env.GEMINI_MODEL || DEFAULT_GEMINI_MODEL,
33
+ default: process.env.GEMINI_MODEL,
31
34
  })
32
35
  .option('prompt', {
33
36
  alias: 'p',
@@ -130,7 +133,7 @@ export async function parseArguments() {
130
133
  type: 'boolean',
131
134
  description: 'List all available extensions and exit.',
132
135
  })
133
- .option('ide-mode', {
136
+ .option('ide-mode-feature', {
134
137
  type: 'boolean',
135
138
  description: 'Run in IDE mode?',
136
139
  })
@@ -149,6 +152,14 @@ export async function parseArguments() {
149
152
  .option('proxy', {
150
153
  type: 'string',
151
154
  description: 'Proxy for gemini client, like schema://user:password@host:port',
155
+ })
156
+ .option('include-directories', {
157
+ type: 'array',
158
+ string: true,
159
+ description: 'Additional directories to include in the workspace (comma-separated or multiple --include-directories)',
160
+ coerce: (dirs) =>
161
+ // Handle comma-separated values
162
+ dirs.flatMap((dir) => dir.split(',').map((d) => d.trim())),
152
163
  })
153
164
  .version(await getCliVersion()) // This will enable the --version flag based on package.json
154
165
  .alias('v', 'version')
@@ -162,29 +173,37 @@ export async function parseArguments() {
162
173
  return true;
163
174
  });
164
175
  yargsInstance.wrap(yargsInstance.terminalWidth());
165
- return yargsInstance.argv;
176
+ const result = yargsInstance.parseSync();
177
+ // The import format is now only controlled by settings.memoryImportFormat
178
+ // We no longer accept it as a CLI argument
179
+ return result;
166
180
  }
167
181
  // This function is now a thin wrapper around the server's implementation.
168
182
  // It's kept in the CLI for now as App.tsx directly calls it for memory refresh.
169
183
  // TODO: Consider if App.tsx should get memory via a server call or if Config should refresh itself.
170
- export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, debugMode, fileService, settings, extensionContextFilePaths = [], fileFilteringOptions) {
184
+ export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, debugMode, fileService, settings, extensionContextFilePaths = [], memoryImportFormat = 'tree', fileFilteringOptions) {
185
+ // FIX: Use real, canonical paths for a reliable comparison to handle symlinks.
186
+ const realCwd = fs.realpathSync(path.resolve(currentWorkingDirectory));
187
+ const realHome = fs.realpathSync(path.resolve(homedir()));
188
+ const isHomeDirectory = realCwd === realHome;
189
+ // If it is the home directory, pass an empty string to the core memory
190
+ // function to signal that it should skip the workspace search.
191
+ const effectiveCwd = isHomeDirectory ? '' : currentWorkingDirectory;
171
192
  if (debugMode) {
172
- logger.debug(`CLI: Delegating hierarchical memory load to server for CWD: ${currentWorkingDirectory}`);
193
+ logger.debug(`CLI: Delegating hierarchical memory load to server for CWD: ${currentWorkingDirectory} (memoryImportFormat: ${memoryImportFormat})`);
173
194
  }
174
- // Directly call the server function.
175
- // The server function will use its own homedir() for the global path.
176
- return loadServerHierarchicalMemory(currentWorkingDirectory, debugMode, fileService, extensionContextFilePaths, fileFilteringOptions, settings.memoryDiscoveryMaxDirs);
195
+ // Directly call the server function with the corrected path.
196
+ return loadServerHierarchicalMemory(effectiveCwd, debugMode, fileService, extensionContextFilePaths, memoryImportFormat, fileFilteringOptions, settings.memoryDiscoveryMaxDirs);
177
197
  }
178
198
  export async function loadCliConfig(settings, extensions, sessionId, argv) {
179
199
  const debugMode = argv.debug ||
180
- [process.env.DEBUG, process.env.DEBUG_MODE].some((v) => v === 'true' || v === '1');
181
- const ideMode = (argv.ideMode ?? settings.ideMode ?? false) &&
182
- process.env.TERM_PROGRAM === 'vscode' &&
200
+ [process.env.DEBUG, process.env.DEBUG_MODE].some((v) => v === 'true' || v === '1') ||
201
+ false;
202
+ const memoryImportFormat = settings.memoryImportFormat || 'tree';
203
+ const ideMode = settings.ideMode ?? false;
204
+ const ideModeFeature = (argv.ideModeFeature ?? settings.ideModeFeature ?? false) &&
183
205
  !process.env.SANDBOX;
184
- let ideClient;
185
- if (ideMode) {
186
- ideClient = new IdeClient();
187
- }
206
+ const ideClient = IdeClient.getInstance(ideMode && ideModeFeature);
188
207
  const allExtensions = annotateActiveExtensions(extensions, argv.extensions || []);
189
208
  const activeExtensions = extensions.filter((_, i) => allExtensions[i].isActive);
190
209
  // Handle OpenAI API key from command line
@@ -213,7 +232,7 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
213
232
  ...settings.fileFiltering,
214
233
  };
215
234
  // Call the (now wrapper) loadHierarchicalGeminiMemory which calls the server's version
216
- const { memoryContent, fileCount } = await loadHierarchicalGeminiMemory(process.cwd(), debugMode, fileService, settings, extensionContextFilePaths, fileFiltering);
235
+ const { memoryContent, fileCount } = await loadHierarchicalGeminiMemory(process.cwd(), debugMode, fileService, settings, extensionContextFilePaths, memoryImportFormat, fileFiltering);
217
236
  let mcpServers = mergeMcpServers(settings, activeExtensions);
218
237
  const excludeTools = mergeExcludeTools(settings, activeExtensions);
219
238
  const blockedMcpServers = [];
@@ -259,6 +278,7 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
259
278
  embeddingModel: DEFAULT_GEMINI_EMBEDDING_MODEL,
260
279
  sandbox: sandboxConfig,
261
280
  targetDir: process.cwd(),
281
+ includeDirectories: argv.includeDirectories,
262
282
  debugMode,
263
283
  question: argv.promptInteractive || argv.prompt || '',
264
284
  fullContext: argv.allFiles || argv.all_files || false,
@@ -302,10 +322,10 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
302
322
  cwd: process.cwd(),
303
323
  fileDiscoveryService: fileService,
304
324
  bugCommand: settings.bugCommand,
305
- model: argv.model,
325
+ model: argv.model || settings.model || DEFAULT_GEMINI_MODEL,
306
326
  extensionContextFilePaths,
307
327
  maxSessionTurns: settings.maxSessionTurns ?? -1,
308
- sessionTokenLimit: settings.sessionTokenLimit ?? 32000,
328
+ sessionTokenLimit: settings.sessionTokenLimit ?? -1,
309
329
  maxFolderItems: settings.maxFolderItems ?? 20,
310
330
  experimentalAcp: argv.experimentalAcp || false,
311
331
  listExtensions: argv.listExtensions || false,
@@ -314,6 +334,7 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
314
334
  noBrowser: !!process.env.NO_BROWSER,
315
335
  summarizeToolOutput: settings.summarizeToolOutput,
316
336
  ideMode,
337
+ ideModeFeature,
317
338
  ideClient,
318
339
  enableOpenAILogging: (typeof argv.openaiLogging === 'undefined'
319
340
  ? settings.enableOpenAILogging
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
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 '@qwen-code/qwen-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;AAGH,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,OAAO,EAAE,YAAY,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAelE,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,MAAM,aAAa,GAAG;QACpB,GAAG,qBAAqB,CAAC,YAAY,CAAC;QACtC,GAAG,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;KACvC,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAqB,CAAC;IACtD,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;IAChE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEtD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,aAAa,CAAC,YAAoB;IACzC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CACX,4BAA4B,YAAY,2BAA2B,CACpE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;IAC3E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CACX,gCAAgC,YAAY,mCAAmC,cAAc,GAAG,CACjG,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAoB,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CACX,+BAA+B,cAAc,4BAA4B,CAC1E,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC;aAC7C,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;aAClE,MAAM,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;QAE/D,OAAO;YACL,MAAM;YACN,YAAY;SACb,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CACX,8CAA8C,cAAc,KAAK,CAAC,EAAE,CACrE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAuB;IAClD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,OAAO,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;SAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAAuB,EACvB,qBAA+B;IAE/B,MAAM,mBAAmB,GAAyB,EAAE,CAAC;IAErD,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI;YAC3B,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO;YACjC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,0BAA0B,GAAG,IAAI,GAAG,CACxC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CACzD,CAAC;IAEF,IACE,0BAA0B,CAAC,IAAI,KAAK,CAAC;QACrC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,EACtC,CAAC;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI;YAC3B,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO;YACjC,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAE1D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE/D,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;QAED,mBAAmB,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI;YAC3B,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO;YACjC,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,aAAa,IAAI,aAAa,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,wBAAwB,aAAa,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../src/config/extension.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,10 @@ import { CustomTheme } from '../ui/themes/theme.js';
8
8
  export declare const SETTINGS_DIRECTORY_NAME = ".qwen";
9
9
  export declare const USER_SETTINGS_DIR: string;
10
10
  export declare const USER_SETTINGS_PATH: string;
11
+ export declare const DEFAULT_EXCLUDED_ENV_VARS: string[];
11
12
  export declare function getSystemSettingsPath(): string;
13
+ export declare function getWorkspaceSettingsPath(workspaceDir: string): string;
14
+ export type DnsResolutionOrder = 'ipv4first' | 'verbatim';
12
15
  export declare enum SettingScope {
13
16
  User = "User",
14
17
  Workspace = "Workspace",
@@ -27,6 +30,7 @@ export interface Settings {
27
30
  theme?: string;
28
31
  customThemes?: Record<string, CustomTheme>;
29
32
  selectedAuthType?: AuthType;
33
+ useExternalAuth?: boolean;
30
34
  sandbox?: boolean | string;
31
35
  coreTools?: string[];
32
36
  excludeTools?: string[];
@@ -45,6 +49,8 @@ export interface Settings {
45
49
  bugCommand?: BugCommandSettings;
46
50
  checkpointing?: CheckpointingSettings;
47
51
  autoConfigureMaxOldSpaceSize?: boolean;
52
+ /** The model name to use (e.g 'gemini-9.0-pro') */
53
+ model?: string;
48
54
  enableOpenAILogging?: boolean;
49
55
  fileFiltering?: {
50
56
  respectGitIgnore?: boolean;
@@ -59,8 +65,14 @@ export interface Settings {
59
65
  maxFolderItems?: number;
60
66
  summarizeToolOutput?: Record<string, SummarizeToolOutputSettings>;
61
67
  vimMode?: boolean;
68
+ memoryImportFormat?: 'tree' | 'flat';
69
+ ideModeFeature?: boolean;
62
70
  ideMode?: boolean;
71
+ disableAutoUpdate?: boolean;
72
+ disableUpdateNag?: boolean;
63
73
  memoryDiscoveryMaxDirs?: number;
74
+ excludedProjectEnvVars?: string[];
75
+ dnsResolutionOrder?: DnsResolutionOrder;
64
76
  sampling_params?: Record<string, unknown>;
65
77
  systemPromptMappings?: Array<{
66
78
  baseUrls: string[];
@@ -93,7 +105,7 @@ export declare class LoadedSettings {
93
105
  setValue<K extends keyof Settings>(scope: SettingScope, key: K, value: Settings[K]): void;
94
106
  }
95
107
  export declare function setUpCloudShellEnvironment(envFilePath: string | null): void;
96
- export declare function loadEnvironment(): void;
108
+ export declare function loadEnvironment(settings?: Settings): void;
97
109
  /**
98
110
  * Loads settings from user and workspace directories.
99
111
  * Project settings override user settings.
@@ -14,6 +14,7 @@ import { DefaultDark } from '../ui/themes/default.js';
14
14
  export const SETTINGS_DIRECTORY_NAME = '.qwen';
15
15
  export const USER_SETTINGS_DIR = path.join(homedir(), SETTINGS_DIRECTORY_NAME);
16
16
  export const USER_SETTINGS_PATH = path.join(USER_SETTINGS_DIR, 'settings.json');
17
+ export const DEFAULT_EXCLUDED_ENV_VARS = ['DEBUG', 'DEBUG_MODE'];
17
18
  export function getSystemSettingsPath() {
18
19
  if (process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH) {
19
20
  return process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH;
@@ -28,6 +29,9 @@ export function getSystemSettingsPath() {
28
29
  return '/etc/qwen-code/settings.json';
29
30
  }
30
31
  }
32
+ export function getWorkspaceSettingsPath(workspaceDir) {
33
+ return path.join(workspaceDir, SETTINGS_DIRECTORY_NAME, 'settings.json');
34
+ }
31
35
  export var SettingScope;
32
36
  (function (SettingScope) {
33
37
  SettingScope["User"] = "User";
@@ -174,13 +178,51 @@ export function setUpCloudShellEnvironment(envFilePath) {
174
178
  process.env.GOOGLE_CLOUD_PROJECT = 'cloudshell-gca';
175
179
  }
176
180
  }
177
- export function loadEnvironment() {
181
+ export function loadEnvironment(settings) {
178
182
  const envFilePath = findEnvFile(process.cwd());
183
+ // Cloud Shell environment variable handling
179
184
  if (process.env.CLOUD_SHELL === 'true') {
180
185
  setUpCloudShellEnvironment(envFilePath);
181
186
  }
187
+ // If no settings provided, try to load workspace settings for exclusions
188
+ let resolvedSettings = settings;
189
+ if (!resolvedSettings) {
190
+ const workspaceSettingsPath = getWorkspaceSettingsPath(process.cwd());
191
+ try {
192
+ if (fs.existsSync(workspaceSettingsPath)) {
193
+ const workspaceContent = fs.readFileSync(workspaceSettingsPath, 'utf-8');
194
+ const parsedWorkspaceSettings = JSON.parse(stripJsonComments(workspaceContent));
195
+ resolvedSettings = resolveEnvVarsInObject(parsedWorkspaceSettings);
196
+ }
197
+ }
198
+ catch (_e) {
199
+ // Ignore errors loading workspace settings
200
+ }
201
+ }
182
202
  if (envFilePath) {
183
- dotenv.config({ path: envFilePath, quiet: true });
203
+ // Manually parse and load environment variables to handle exclusions correctly.
204
+ // This avoids modifying environment variables that were already set from the shell.
205
+ try {
206
+ const envFileContent = fs.readFileSync(envFilePath, 'utf-8');
207
+ const parsedEnv = dotenv.parse(envFileContent);
208
+ const excludedVars = resolvedSettings?.excludedProjectEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
209
+ const isProjectEnvFile = !envFilePath.includes(GEMINI_DIR);
210
+ for (const key in parsedEnv) {
211
+ if (Object.hasOwn(parsedEnv, key)) {
212
+ // If it's a project .env file, skip loading excluded variables.
213
+ if (isProjectEnvFile && excludedVars.includes(key)) {
214
+ continue;
215
+ }
216
+ // Load variable only if it's not already set in the environment.
217
+ if (!Object.hasOwn(process.env, key)) {
218
+ process.env[key] = parsedEnv[key];
219
+ }
220
+ }
221
+ }
222
+ }
223
+ catch (_e) {
224
+ // Errors are ignored to match the behavior of `dotenv.config({ quiet: true })`.
225
+ }
184
226
  }
185
227
  }
186
228
  /**
@@ -188,12 +230,25 @@ export function loadEnvironment() {
188
230
  * Project settings override user settings.
189
231
  */
190
232
  export function loadSettings(workspaceDir) {
191
- loadEnvironment();
192
233
  let systemSettings = {};
193
234
  let userSettings = {};
194
235
  let workspaceSettings = {};
195
236
  const settingsErrors = [];
196
237
  const systemSettingsPath = getSystemSettingsPath();
238
+ // FIX: Resolve paths to their canonical representation to handle symlinks
239
+ const resolvedWorkspaceDir = path.resolve(workspaceDir);
240
+ const resolvedHomeDir = path.resolve(homedir());
241
+ let realWorkspaceDir = resolvedWorkspaceDir;
242
+ try {
243
+ // fs.realpathSync gets the "true" path, resolving any symlinks
244
+ realWorkspaceDir = fs.realpathSync(resolvedWorkspaceDir);
245
+ }
246
+ catch (_e) {
247
+ // This is okay. The path might not exist yet, and that's a valid state.
248
+ }
249
+ // We expect homedir to always exist and be resolvable.
250
+ const realHomeDir = fs.realpathSync(resolvedHomeDir);
251
+ const workspaceSettingsPath = getWorkspaceSettingsPath(workspaceDir);
197
252
  // Load system settings
198
253
  try {
199
254
  if (fs.existsSync(systemSettingsPath)) {
@@ -229,29 +284,32 @@ export function loadSettings(workspaceDir) {
229
284
  path: USER_SETTINGS_PATH,
230
285
  });
231
286
  }
232
- const workspaceSettingsPath = path.join(workspaceDir, SETTINGS_DIRECTORY_NAME, 'settings.json');
233
- // Load workspace settings
234
- try {
235
- if (fs.existsSync(workspaceSettingsPath)) {
236
- const projectContent = fs.readFileSync(workspaceSettingsPath, 'utf-8');
237
- const parsedWorkspaceSettings = JSON.parse(stripJsonComments(projectContent));
238
- workspaceSettings = resolveEnvVarsInObject(parsedWorkspaceSettings);
239
- if (workspaceSettings.theme && workspaceSettings.theme === 'VS') {
240
- workspaceSettings.theme = DefaultLight.name;
241
- }
242
- else if (workspaceSettings.theme &&
243
- workspaceSettings.theme === 'VS2015') {
244
- workspaceSettings.theme = DefaultDark.name;
287
+ // This comparison is now much more reliable.
288
+ if (realWorkspaceDir !== realHomeDir) {
289
+ // Load workspace settings
290
+ try {
291
+ if (fs.existsSync(workspaceSettingsPath)) {
292
+ const projectContent = fs.readFileSync(workspaceSettingsPath, 'utf-8');
293
+ const parsedWorkspaceSettings = JSON.parse(stripJsonComments(projectContent));
294
+ workspaceSettings = resolveEnvVarsInObject(parsedWorkspaceSettings);
295
+ if (workspaceSettings.theme && workspaceSettings.theme === 'VS') {
296
+ workspaceSettings.theme = DefaultLight.name;
297
+ }
298
+ else if (workspaceSettings.theme &&
299
+ workspaceSettings.theme === 'VS2015') {
300
+ workspaceSettings.theme = DefaultDark.name;
301
+ }
245
302
  }
246
303
  }
304
+ catch (error) {
305
+ settingsErrors.push({
306
+ message: getErrorMessage(error),
307
+ path: workspaceSettingsPath,
308
+ });
309
+ }
247
310
  }
248
- catch (error) {
249
- settingsErrors.push({
250
- message: getErrorMessage(error),
251
- path: workspaceSettingsPath,
252
- });
253
- }
254
- return new LoadedSettings({
311
+ // Create LoadedSettings first
312
+ const loadedSettings = new LoadedSettings({
255
313
  path: systemSettingsPath,
256
314
  settings: systemSettings,
257
315
  }, {
@@ -261,6 +319,9 @@ export function loadSettings(workspaceDir) {
261
319
  path: workspaceSettingsPath,
262
320
  settings: workspaceSettings,
263
321
  }, settingsErrors);
322
+ // Load environment with merged settings
323
+ loadEnvironment(loadedSettings.merged);
324
+ return loadedSettings;
264
325
  }
265
326
  export function saveSettings(settingsFile) {
266
327
  try {