@google/gemini-cli 0.3.0-nightly.20250822.15c62bad → 0.3.0-preview.1

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 (505) hide show
  1. package/dist/index.js +9 -0
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +7 -7
  4. package/dist/src/commands/extensions/disable.d.ts +14 -0
  5. package/dist/src/commands/extensions/disable.js +42 -0
  6. package/dist/src/commands/extensions/disable.js.map +1 -0
  7. package/dist/src/commands/extensions/enable.d.ts +14 -0
  8. package/dist/src/commands/extensions/enable.js +48 -0
  9. package/dist/src/commands/extensions/enable.js.map +1 -0
  10. package/dist/src/commands/extensions/install.d.ts +13 -0
  11. package/dist/src/commands/extensions/install.js +48 -0
  12. package/dist/src/commands/extensions/install.js.map +1 -0
  13. package/dist/src/commands/extensions/install.test.d.ts +6 -0
  14. package/dist/src/commands/extensions/install.test.js +19 -0
  15. package/dist/src/commands/extensions/install.test.js.map +1 -0
  16. package/dist/src/commands/extensions/list.d.ts +8 -0
  17. package/dist/src/commands/extensions/list.js +32 -0
  18. package/dist/src/commands/extensions/list.js.map +1 -0
  19. package/dist/src/commands/extensions/uninstall.d.ts +12 -0
  20. package/dist/src/commands/extensions/uninstall.js +38 -0
  21. package/dist/src/commands/extensions/uninstall.js.map +1 -0
  22. package/dist/src/commands/extensions/uninstall.test.d.ts +6 -0
  23. package/dist/src/commands/extensions/uninstall.test.js +15 -0
  24. package/dist/src/commands/extensions/uninstall.test.js.map +1 -0
  25. package/dist/src/commands/extensions/update.d.ts +12 -0
  26. package/dist/src/commands/extensions/update.js +38 -0
  27. package/dist/src/commands/extensions/update.js.map +1 -0
  28. package/dist/src/commands/extensions.d.ts +7 -0
  29. package/dist/src/commands/extensions.js +29 -0
  30. package/dist/src/commands/extensions.js.map +1 -0
  31. package/dist/src/commands/mcp/list.js +1 -1
  32. package/dist/src/commands/mcp/list.js.map +1 -1
  33. package/dist/src/config/config.d.ts +6 -6
  34. package/dist/src/config/config.js +65 -58
  35. package/dist/src/config/config.js.map +1 -1
  36. package/dist/src/config/extension.d.ts +40 -2
  37. package/dist/src/config/extension.js +267 -14
  38. package/dist/src/config/extension.js.map +1 -1
  39. package/dist/src/config/extensions/variableSchema.d.ts +28 -0
  40. package/dist/src/config/extensions/variableSchema.js +18 -0
  41. package/dist/src/config/extensions/variableSchema.js.map +1 -0
  42. package/dist/src/config/extensions/variables.d.ts +17 -0
  43. package/dist/src/config/extensions/variables.js +40 -0
  44. package/dist/src/config/extensions/variables.js.map +1 -0
  45. package/dist/src/config/extensions/variables.test.d.ts +6 -0
  46. package/dist/src/config/extensions/variables.test.js +17 -0
  47. package/dist/src/config/extensions/variables.test.js.map +1 -0
  48. package/dist/src/config/keyBindings.test.js +1 -1
  49. package/dist/src/config/keyBindings.test.js.map +1 -1
  50. package/dist/src/config/sandboxConfig.d.ts +2 -2
  51. package/dist/src/config/sandboxConfig.js +5 -7
  52. package/dist/src/config/sandboxConfig.js.map +1 -1
  53. package/dist/src/config/settings.d.ts +9 -4
  54. package/dist/src/config/settings.js +342 -80
  55. package/dist/src/config/settings.js.map +1 -1
  56. package/dist/src/config/settingsSchema.d.ts +633 -416
  57. package/dist/src/config/settingsSchema.js +628 -411
  58. package/dist/src/config/settingsSchema.js.map +1 -1
  59. package/dist/src/config/settingsSchema.test.js +87 -89
  60. package/dist/src/config/settingsSchema.test.js.map +1 -1
  61. package/dist/src/config/trustedFolders.d.ts +1 -1
  62. package/dist/src/config/trustedFolders.js +5 -5
  63. package/dist/src/config/trustedFolders.js.map +1 -1
  64. package/dist/src/config/trustedFolders.test.js +9 -5
  65. package/dist/src/config/trustedFolders.test.js.map +1 -1
  66. package/dist/src/gemini.d.ts +3 -1
  67. package/dist/src/gemini.js +51 -44
  68. package/dist/src/gemini.js.map +1 -1
  69. package/dist/src/gemini.test.js +78 -24
  70. package/dist/src/gemini.test.js.map +1 -1
  71. package/dist/src/generated/git-commit.d.ts +2 -2
  72. package/dist/src/generated/git-commit.js +2 -2
  73. package/dist/src/generated/git-commit.js.map +1 -1
  74. package/dist/src/nonInteractiveCli.d.ts +1 -1
  75. package/dist/src/nonInteractiveCli.js +5 -17
  76. package/dist/src/nonInteractiveCli.js.map +1 -1
  77. package/dist/src/services/BuiltinCommandLoader.d.ts +3 -3
  78. package/dist/src/services/CommandService.d.ts +2 -2
  79. package/dist/src/services/CommandService.test.js +1 -0
  80. package/dist/src/services/CommandService.test.js.map +1 -1
  81. package/dist/src/services/FileCommandLoader.d.ts +3 -3
  82. package/dist/src/services/FileCommandLoader.js +22 -13
  83. package/dist/src/services/FileCommandLoader.js.map +1 -1
  84. package/dist/src/services/McpPromptLoader.d.ts +14 -4
  85. package/dist/src/services/McpPromptLoader.js +44 -18
  86. package/dist/src/services/McpPromptLoader.js.map +1 -1
  87. package/dist/src/services/McpPromptLoader.test.d.ts +6 -0
  88. package/dist/src/services/McpPromptLoader.test.js +114 -0
  89. package/dist/src/services/McpPromptLoader.test.js.map +1 -0
  90. package/dist/src/services/prompt-processors/argumentProcessor.d.ts +3 -3
  91. package/dist/src/services/prompt-processors/argumentProcessor.js +3 -2
  92. package/dist/src/services/prompt-processors/argumentProcessor.js.map +1 -1
  93. package/dist/src/services/prompt-processors/atFileProcessor.d.ts +12 -0
  94. package/dist/src/services/prompt-processors/atFileProcessor.js +62 -0
  95. package/dist/src/services/prompt-processors/atFileProcessor.js.map +1 -0
  96. package/dist/src/services/prompt-processors/atFileProcessor.test.d.ts +6 -0
  97. package/dist/src/services/prompt-processors/atFileProcessor.test.js +174 -0
  98. package/dist/src/services/prompt-processors/atFileProcessor.test.js.map +1 -0
  99. package/dist/src/services/prompt-processors/injectionParser.d.ts +29 -0
  100. package/dist/src/services/prompt-processors/injectionParser.js +60 -0
  101. package/dist/src/services/prompt-processors/injectionParser.js.map +1 -0
  102. package/dist/src/services/prompt-processors/injectionParser.test.d.ts +6 -0
  103. package/dist/src/services/prompt-processors/injectionParser.test.js +189 -0
  104. package/dist/src/services/prompt-processors/injectionParser.test.js.map +1 -0
  105. package/dist/src/services/prompt-processors/shellProcessor.d.ts +4 -12
  106. package/dist/src/services/prompt-processors/shellProcessor.js +17 -58
  107. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  108. package/dist/src/services/prompt-processors/types.d.ts +13 -8
  109. package/dist/src/services/prompt-processors/types.js +4 -0
  110. package/dist/src/services/prompt-processors/types.js.map +1 -1
  111. package/dist/src/services/types.d.ts +1 -1
  112. package/dist/src/test-utils/customMatchers.js +0 -6
  113. package/dist/src/test-utils/customMatchers.js.map +1 -1
  114. package/dist/src/test-utils/mockCommandContext.d.ts +1 -1
  115. package/dist/src/test-utils/render.d.ts +1 -1
  116. package/dist/src/ui/App.d.ts +2 -2
  117. package/dist/src/ui/App.js +50 -26
  118. package/dist/src/ui/App.js.map +1 -1
  119. package/dist/src/ui/IdeIntegrationNudge.d.ts +1 -1
  120. package/dist/src/ui/IdeIntegrationNudge.js +2 -7
  121. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  122. package/dist/src/ui/colors.d.ts +1 -1
  123. package/dist/src/ui/commands/aboutCommand.d.ts +1 -1
  124. package/dist/src/ui/commands/aboutCommand.js +1 -1
  125. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  126. package/dist/src/ui/commands/authCommand.d.ts +1 -1
  127. package/dist/src/ui/commands/authCommand.js.map +1 -1
  128. package/dist/src/ui/commands/chatCommand.d.ts +1 -1
  129. package/dist/src/ui/commands/chatCommand.js +3 -3
  130. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  131. package/dist/src/ui/commands/clearCommand.d.ts +1 -1
  132. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  133. package/dist/src/ui/commands/compressCommand.d.ts +1 -1
  134. package/dist/src/ui/commands/compressCommand.js +2 -0
  135. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  136. package/dist/src/ui/commands/copyCommand.d.ts +1 -1
  137. package/dist/src/ui/commands/copyCommand.js +2 -2
  138. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  139. package/dist/src/ui/commands/directoryCommand.d.ts +1 -1
  140. package/dist/src/ui/commands/directoryCommand.js +5 -4
  141. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  142. package/dist/src/ui/commands/helpCommand.d.ts +1 -1
  143. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  144. package/dist/src/ui/commands/ideCommand.d.ts +2 -2
  145. package/dist/src/ui/commands/ideCommand.js +6 -8
  146. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  147. package/dist/src/ui/commands/initCommand.d.ts +1 -1
  148. package/dist/src/ui/commands/initCommand.js +3 -3
  149. package/dist/src/ui/commands/initCommand.js.map +1 -1
  150. package/dist/src/ui/commands/mcpCommand.d.ts +1 -1
  151. package/dist/src/ui/commands/mcpCommand.js +1 -1
  152. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  153. package/dist/src/ui/commands/memoryCommand.d.ts +1 -1
  154. package/dist/src/ui/commands/memoryCommand.js +4 -3
  155. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  156. package/dist/src/ui/commands/privacyCommand.d.ts +1 -1
  157. package/dist/src/ui/commands/privacyCommand.js.map +1 -1
  158. package/dist/src/ui/commands/restoreCommand.d.ts +1 -1
  159. package/dist/src/ui/commands/restoreCommand.js +2 -2
  160. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  161. package/dist/src/ui/commands/settingsCommand.d.ts +1 -1
  162. package/dist/src/ui/commands/settingsCommand.js.map +1 -1
  163. package/dist/src/ui/commands/setupGithubCommand.d.ts +2 -1
  164. package/dist/src/ui/commands/setupGithubCommand.js +10 -9
  165. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  166. package/dist/src/ui/commands/setupGithubCommand.test.js +2 -7
  167. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  168. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  169. package/dist/src/ui/commands/terminalSetupCommand.d.ts +1 -1
  170. package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
  171. package/dist/src/ui/commands/themeCommand.d.ts +1 -1
  172. package/dist/src/ui/commands/themeCommand.js.map +1 -1
  173. package/dist/src/ui/commands/toolsCommand.js +1 -1
  174. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  175. package/dist/src/ui/commands/types.d.ts +7 -8
  176. package/dist/src/ui/commands/types.js +1 -0
  177. package/dist/src/ui/commands/types.js.map +1 -1
  178. package/dist/src/ui/commands/vimCommand.d.ts +1 -1
  179. package/dist/src/ui/commands/vimCommand.js.map +1 -1
  180. package/dist/src/ui/components/AboutBox.d.ts +1 -1
  181. package/dist/src/ui/components/AuthDialog.d.ts +3 -2
  182. package/dist/src/ui/components/AuthDialog.js +3 -8
  183. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  184. package/dist/src/ui/components/AuthDialog.test.js +83 -49
  185. package/dist/src/ui/components/AuthDialog.test.js.map +1 -1
  186. package/dist/src/ui/components/AuthInProgress.d.ts +1 -1
  187. package/dist/src/ui/components/AuthInProgress.js +0 -5
  188. package/dist/src/ui/components/AuthInProgress.js.map +1 -1
  189. package/dist/src/ui/components/AutoAcceptIndicator.d.ts +1 -1
  190. package/dist/src/ui/components/ConsoleSummaryDisplay.d.ts +1 -1
  191. package/dist/src/ui/components/ContextSummaryDisplay.d.ts +1 -1
  192. package/dist/src/ui/components/ContextSummaryDisplay.js +1 -0
  193. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  194. package/dist/src/ui/components/DetailedMessagesDisplay.d.ts +2 -2
  195. package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
  196. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  197. package/dist/src/ui/components/EditorSettingsDialog.d.ts +4 -3
  198. package/dist/src/ui/components/EditorSettingsDialog.js +8 -11
  199. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  200. package/dist/src/ui/components/FolderTrustDialog.d.ts +1 -1
  201. package/dist/src/ui/components/FolderTrustDialog.js +2 -2
  202. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  203. package/dist/src/ui/components/FolderTrustDialog.test.js +1 -1
  204. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  205. package/dist/src/ui/components/Footer.d.ts +1 -1
  206. package/dist/src/ui/components/GeminiRespondingSpinner.d.ts +1 -1
  207. package/dist/src/ui/components/Header.d.ts +1 -1
  208. package/dist/src/ui/components/Help.d.ts +2 -2
  209. package/dist/src/ui/components/HistoryItemDisplay.d.ts +4 -4
  210. package/dist/src/ui/components/HistoryItemDisplay.test.js +2 -0
  211. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  212. package/dist/src/ui/components/InputPrompt.d.ts +5 -5
  213. package/dist/src/ui/components/InputPrompt.js +1 -7
  214. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  215. package/dist/src/ui/components/LoadingIndicator.d.ts +2 -2
  216. package/dist/src/ui/components/MemoryUsageDisplay.d.ts +1 -1
  217. package/dist/src/ui/components/MemoryUsageDisplay.js +0 -5
  218. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  219. package/dist/src/ui/components/ModelStatsDisplay.d.ts +1 -1
  220. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  221. package/dist/src/ui/components/PrepareLabel.d.ts +1 -1
  222. package/dist/src/ui/components/SessionSummaryDisplay.d.ts +1 -1
  223. package/dist/src/ui/components/SettingsDialog.d.ts +2 -1
  224. package/dist/src/ui/components/SettingsDialog.js +2 -2
  225. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  226. package/dist/src/ui/components/SettingsDialog.test.js +32 -14
  227. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  228. package/dist/src/ui/components/ShellConfirmationDialog.d.ts +1 -1
  229. package/dist/src/ui/components/ShellConfirmationDialog.js +1 -1
  230. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  231. package/dist/src/ui/components/ShellModeIndicator.d.ts +1 -1
  232. package/dist/src/ui/components/StatsDisplay.d.ts +1 -1
  233. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  234. package/dist/src/ui/components/SuggestionsDisplay.js +12 -4
  235. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  236. package/dist/src/ui/components/ThemeDialog.d.ts +3 -2
  237. package/dist/src/ui/components/ThemeDialog.js +5 -10
  238. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  239. package/dist/src/ui/components/Tips.d.ts +1 -1
  240. package/dist/src/ui/components/Tips.js +1 -0
  241. package/dist/src/ui/components/Tips.js.map +1 -1
  242. package/dist/src/ui/components/ToolStatsDisplay.d.ts +1 -1
  243. package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +11 -0
  244. package/dist/src/ui/components/WorkspaceMigrationDialog.js +42 -0
  245. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -0
  246. package/dist/src/ui/components/messages/CompressionMessage.d.ts +2 -2
  247. package/dist/src/ui/components/messages/DiffRenderer.d.ts +1 -1
  248. package/dist/src/ui/components/messages/DiffRenderer.js +1 -1
  249. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  250. package/dist/src/ui/components/messages/ErrorMessage.d.ts +1 -1
  251. package/dist/src/ui/components/messages/GeminiMessage.d.ts +1 -1
  252. package/dist/src/ui/components/messages/GeminiMessageContent.d.ts +1 -1
  253. package/dist/src/ui/components/messages/InfoMessage.d.ts +1 -1
  254. package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +3 -3
  255. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +41 -24
  256. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  257. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +87 -2
  258. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  259. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +4 -4
  260. package/dist/src/ui/components/messages/ToolGroupMessage.js +1 -6
  261. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  262. package/dist/src/ui/components/messages/ToolGroupMessage.test.d.ts +6 -0
  263. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +259 -0
  264. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -0
  265. package/dist/src/ui/components/messages/ToolMessage.d.ts +1 -1
  266. package/dist/src/ui/components/messages/ToolMessage.js +2 -1
  267. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  268. package/dist/src/ui/components/messages/ToolMessage.test.js +6 -6
  269. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  270. package/dist/src/ui/components/messages/UserMessage.d.ts +1 -1
  271. package/dist/src/ui/components/messages/UserMessage.js +2 -1
  272. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  273. package/dist/src/ui/components/messages/UserShellMessage.d.ts +1 -1
  274. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +1 -1
  275. package/dist/src/ui/components/shared/RadioButtonSelect.js +0 -5
  276. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  277. package/dist/src/ui/components/shared/text-buffer.js +4 -4
  278. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  279. package/dist/src/ui/components/shared/vim-buffer-actions.d.ts +1 -1
  280. package/dist/src/ui/components/shared/vim-buffer-actions.js.map +1 -1
  281. package/dist/src/ui/constants.d.ts +8 -0
  282. package/dist/src/ui/constants.js +9 -0
  283. package/dist/src/ui/constants.js.map +1 -1
  284. package/dist/src/ui/contexts/KeypressContext.d.ts +4 -3
  285. package/dist/src/ui/contexts/KeypressContext.js +34 -25
  286. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  287. package/dist/src/ui/contexts/KeypressContext.test.js +176 -10
  288. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  289. package/dist/src/ui/contexts/OverflowContext.d.ts +1 -1
  290. package/dist/src/ui/contexts/OverflowContext.js +0 -5
  291. package/dist/src/ui/contexts/OverflowContext.js.map +1 -1
  292. package/dist/src/ui/contexts/SessionContext.d.ts +2 -2
  293. package/dist/src/ui/contexts/SessionContext.js +1 -6
  294. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  295. package/dist/src/ui/contexts/SettingsContext.d.ts +1 -1
  296. package/dist/src/ui/contexts/StreamingContext.d.ts +1 -1
  297. package/dist/src/ui/contexts/VimModeContext.d.ts +1 -1
  298. package/dist/src/ui/contexts/VimModeContext.js +4 -4
  299. package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
  300. package/dist/src/ui/hooks/atCommandProcessor.d.ts +3 -3
  301. package/dist/src/ui/hooks/atCommandProcessor.js +3 -4
  302. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  303. package/dist/src/ui/hooks/atCommandProcessor.test.js +12 -4
  304. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  305. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +3 -3
  306. package/dist/src/ui/hooks/shellCommandProcessor.js +7 -6
  307. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  308. package/dist/src/ui/hooks/shellCommandProcessor.test.js +5 -4
  309. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  310. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +5 -4
  311. package/dist/src/ui/hooks/slashCommandProcessor.js +3 -1
  312. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  313. package/dist/src/ui/hooks/useAtCompletion.d.ts +2 -2
  314. package/dist/src/ui/hooks/useAtCompletion.js +3 -2
  315. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  316. package/dist/src/ui/hooks/useAuthCommand.d.ts +2 -2
  317. package/dist/src/ui/hooks/useAuthCommand.js +5 -4
  318. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  319. package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +3 -1
  320. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +13 -4
  321. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
  322. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +122 -2
  323. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  324. package/dist/src/ui/hooks/useCommandCompletion.d.ts +5 -5
  325. package/dist/src/ui/hooks/useCommandCompletion.js +2 -2
  326. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  327. package/dist/src/ui/hooks/useCompletion.d.ts +1 -1
  328. package/dist/src/ui/hooks/useCompletion.js +1 -1
  329. package/dist/src/ui/hooks/useCompletion.js.map +1 -1
  330. package/dist/src/ui/hooks/useConsoleMessages.d.ts +1 -1
  331. package/dist/src/ui/hooks/useEditorSettings.d.ts +2 -2
  332. package/dist/src/ui/hooks/useEditorSettings.js.map +1 -1
  333. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
  334. package/dist/src/ui/hooks/useFolderTrust.d.ts +1 -1
  335. package/dist/src/ui/hooks/useFolderTrust.js +3 -2
  336. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  337. package/dist/src/ui/hooks/useGeminiStream.d.ts +4 -4
  338. package/dist/src/ui/hooks/useGeminiStream.js +35 -37
  339. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  340. package/dist/src/ui/hooks/useGitBranchName.js +1 -1
  341. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  342. package/dist/src/ui/hooks/useGitBranchName.test.js +1 -1
  343. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  344. package/dist/src/ui/hooks/useHistoryManager.d.ts +1 -1
  345. package/dist/src/ui/hooks/useKeypress.d.ts +2 -2
  346. package/dist/src/ui/hooks/useKeypress.js +1 -1
  347. package/dist/src/ui/hooks/useKeypress.js.map +1 -1
  348. package/dist/src/ui/hooks/useLogger.d.ts +2 -1
  349. package/dist/src/ui/hooks/useLogger.js.map +1 -1
  350. package/dist/src/ui/hooks/usePrivacySettings.d.ts +1 -1
  351. package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
  352. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
  353. package/dist/src/ui/hooks/usePromptCompletion.d.ts +2 -2
  354. package/dist/src/ui/hooks/usePromptCompletion.js +3 -2
  355. package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
  356. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +2 -2
  357. package/dist/src/ui/hooks/useReactToolScheduler.js +2 -2
  358. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  359. package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +2 -2
  360. package/dist/src/ui/hooks/useShellHistory.js +2 -2
  361. package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
  362. package/dist/src/ui/hooks/useShellHistory.test.js +4 -4
  363. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  364. package/dist/src/ui/hooks/useShowMemoryCommand.d.ts +3 -3
  365. package/dist/src/ui/hooks/useShowMemoryCommand.js +1 -1
  366. package/dist/src/ui/hooks/useShowMemoryCommand.js.map +1 -1
  367. package/dist/src/ui/hooks/useSlashCompletion.d.ts +2 -2
  368. package/dist/src/ui/hooks/useThemeCommand.d.ts +1 -1
  369. package/dist/src/ui/hooks/useThemeCommand.js +8 -8
  370. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  371. package/dist/src/ui/hooks/useToolScheduler.test.js +41 -30
  372. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  373. package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +13 -0
  374. package/dist/src/ui/hooks/useWorkspaceMigration.js +53 -0
  375. package/dist/src/ui/hooks/useWorkspaceMigration.js.map +1 -0
  376. package/dist/src/ui/keyMatchers.d.ts +2 -1
  377. package/dist/src/ui/keyMatchers.js +1 -1
  378. package/dist/src/ui/keyMatchers.js.map +1 -1
  379. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  380. package/dist/src/ui/privacy/CloudFreePrivacyNotice.d.ts +1 -1
  381. package/dist/src/ui/semantic-colors.d.ts +1 -1
  382. package/dist/src/ui/themes/atom-one-dark.js +1 -2
  383. package/dist/src/ui/themes/atom-one-dark.js.map +1 -1
  384. package/dist/src/ui/themes/ayu-light.js +1 -2
  385. package/dist/src/ui/themes/ayu-light.js.map +1 -1
  386. package/dist/src/ui/themes/ayu.js +1 -2
  387. package/dist/src/ui/themes/ayu.js.map +1 -1
  388. package/dist/src/ui/themes/default-light.js +1 -2
  389. package/dist/src/ui/themes/default-light.js.map +1 -1
  390. package/dist/src/ui/themes/default.js +1 -2
  391. package/dist/src/ui/themes/default.js.map +1 -1
  392. package/dist/src/ui/themes/dracula.js +1 -2
  393. package/dist/src/ui/themes/dracula.js.map +1 -1
  394. package/dist/src/ui/themes/github-dark.js +1 -2
  395. package/dist/src/ui/themes/github-dark.js.map +1 -1
  396. package/dist/src/ui/themes/github-light.js +1 -2
  397. package/dist/src/ui/themes/github-light.js.map +1 -1
  398. package/dist/src/ui/themes/googlecode.js +2 -3
  399. package/dist/src/ui/themes/googlecode.js.map +1 -1
  400. package/dist/src/ui/themes/no-color.js.map +1 -1
  401. package/dist/src/ui/themes/shades-of-purple.js +1 -2
  402. package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
  403. package/dist/src/ui/themes/theme-manager.d.ts +4 -2
  404. package/dist/src/ui/themes/theme-manager.js +73 -6
  405. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  406. package/dist/src/ui/themes/theme-manager.test.js +60 -1
  407. package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
  408. package/dist/src/ui/themes/theme.d.ts +3 -3
  409. package/dist/src/ui/themes/theme.js +30 -2
  410. package/dist/src/ui/themes/theme.js.map +1 -1
  411. package/dist/src/ui/themes/xcode.js +1 -2
  412. package/dist/src/ui/themes/xcode.js.map +1 -1
  413. package/dist/src/ui/types.d.ts +4 -2
  414. package/dist/src/ui/types.js.map +1 -1
  415. package/dist/src/ui/utils/CodeColorizer.d.ts +2 -2
  416. package/dist/src/ui/utils/CodeColorizer.js +1 -1
  417. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  418. package/dist/src/ui/utils/ConsolePatcher.d.ts +1 -1
  419. package/dist/src/ui/utils/ConsolePatcher.js +1 -1
  420. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
  421. package/dist/src/ui/utils/MarkdownDisplay.js +2 -1
  422. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  423. package/dist/src/ui/utils/MarkdownDisplay.test.js +17 -16
  424. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  425. package/dist/src/ui/utils/clipboardUtils.js +4 -4
  426. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  427. package/dist/src/ui/utils/commandUtils.d.ts +1 -1
  428. package/dist/src/ui/utils/commandUtils.js +32 -6
  429. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  430. package/dist/src/ui/utils/commandUtils.test.js +67 -9
  431. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  432. package/dist/src/ui/utils/computeStats.d.ts +1 -1
  433. package/dist/src/ui/utils/platformConstants.d.ts +9 -0
  434. package/dist/src/ui/utils/platformConstants.js +9 -0
  435. package/dist/src/ui/utils/platformConstants.js.map +1 -1
  436. package/dist/src/ui/utils/terminalSetup.js +5 -5
  437. package/dist/src/ui/utils/terminalSetup.js.map +1 -1
  438. package/dist/src/ui/utils/textUtils.js +1 -1
  439. package/dist/src/ui/utils/textUtils.js.map +1 -1
  440. package/dist/src/ui/utils/updateCheck.d.ts +1 -1
  441. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  442. package/dist/src/utils/cleanup.js +2 -2
  443. package/dist/src/utils/cleanup.js.map +1 -1
  444. package/dist/src/utils/dialogScopeUtils.d.ts +2 -1
  445. package/dist/src/utils/dialogScopeUtils.js.map +1 -1
  446. package/dist/src/utils/errors.d.ts +6 -0
  447. package/dist/src/utils/errors.js +12 -0
  448. package/dist/src/utils/errors.js.map +1 -0
  449. package/dist/src/utils/events.d.ts +1 -1
  450. package/dist/src/utils/events.js +1 -1
  451. package/dist/src/utils/events.js.map +1 -1
  452. package/dist/src/utils/gitUtils.js +1 -1
  453. package/dist/src/utils/gitUtils.js.map +1 -1
  454. package/dist/src/utils/gitUtils.test.js +4 -4
  455. package/dist/src/utils/gitUtils.test.js.map +1 -1
  456. package/dist/src/utils/handleAutoUpdate.d.ts +4 -4
  457. package/dist/src/utils/handleAutoUpdate.js +4 -3
  458. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  459. package/dist/src/utils/installationInfo.js +3 -3
  460. package/dist/src/utils/installationInfo.js.map +1 -1
  461. package/dist/src/utils/installationInfo.test.js +3 -3
  462. package/dist/src/utils/installationInfo.test.js.map +1 -1
  463. package/dist/src/utils/package.js +2 -2
  464. package/dist/src/utils/package.js.map +1 -1
  465. package/dist/src/utils/readStdin.js +15 -0
  466. package/dist/src/utils/readStdin.js.map +1 -1
  467. package/dist/src/utils/readStdin.test.d.ts +6 -0
  468. package/dist/src/utils/readStdin.test.js +88 -0
  469. package/dist/src/utils/readStdin.test.js.map +1 -0
  470. package/dist/src/utils/resolvePath.js +2 -2
  471. package/dist/src/utils/resolvePath.js.map +1 -1
  472. package/dist/src/utils/sandbox.d.ts +1 -1
  473. package/dist/src/utils/sandbox.js +13 -21
  474. package/dist/src/utils/sandbox.js.map +1 -1
  475. package/dist/src/utils/settingsUtils.d.ts +2 -2
  476. package/dist/src/utils/settingsUtils.js +2 -8
  477. package/dist/src/utils/settingsUtils.js.map +1 -1
  478. package/dist/src/utils/settingsUtils.test.js +145 -148
  479. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  480. package/dist/src/utils/spawnWrapper.d.ts +1 -1
  481. package/dist/src/utils/spawnWrapper.js +1 -1
  482. package/dist/src/utils/spawnWrapper.js.map +1 -1
  483. package/dist/src/utils/startupWarnings.js +2 -2
  484. package/dist/src/utils/startupWarnings.js.map +1 -1
  485. package/dist/src/utils/updateEventEmitter.d.ts +1 -1
  486. package/dist/src/utils/updateEventEmitter.js +1 -1
  487. package/dist/src/utils/updateEventEmitter.js.map +1 -1
  488. package/dist/src/utils/userStartupWarnings.js +3 -3
  489. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  490. package/dist/src/utils/userStartupWarnings.test.js +3 -3
  491. package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
  492. package/dist/src/validateNonInterActiveAuth.d.ts +2 -1
  493. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  494. package/dist/src/zed-integration/acp.d.ts +1 -1
  495. package/dist/src/zed-integration/acp.js +2 -1
  496. package/dist/src/zed-integration/acp.js.map +1 -1
  497. package/dist/src/zed-integration/fileSystemService.d.ts +2 -2
  498. package/dist/src/zed-integration/schema.d.ts +422 -319
  499. package/dist/src/zed-integration/schema.js +7 -1
  500. package/dist/src/zed-integration/schema.js.map +1 -1
  501. package/dist/src/zed-integration/zedIntegration.d.ts +4 -4
  502. package/dist/src/zed-integration/zedIntegration.js +188 -152
  503. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  504. package/dist/tsconfig.tsbuildinfo +1 -1
  505. package/package.json +6 -6
@@ -3,9 +3,9 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Config } from '@google/gemini-cli-core';
7
- import { ICommandLoader } from './types.js';
8
- import { SlashCommand } from '../ui/commands/types.js';
6
+ import type { Config } from '@google/gemini-cli-core';
7
+ import type { ICommandLoader } from './types.js';
8
+ import type { SlashCommand } from '../ui/commands/types.js';
9
9
  /**
10
10
  * Discovers and loads custom slash commands from .toml files in both the
11
11
  * user's global config directory and the current project's directory.
@@ -3,16 +3,17 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { promises as fs } from 'fs';
7
- import path from 'path';
6
+ import { promises as fs } from 'node:fs';
7
+ import path from 'node:path';
8
8
  import toml from '@iarna/toml';
9
9
  import { glob } from 'glob';
10
10
  import { z } from 'zod';
11
11
  import { Storage } from '@google/gemini-cli-core';
12
- import { CommandKind, } from '../ui/commands/types.js';
12
+ import { CommandKind } from '../ui/commands/types.js';
13
13
  import { DefaultArgumentProcessor } from './prompt-processors/argumentProcessor.js';
14
- import { SHORTHAND_ARGS_PLACEHOLDER, SHELL_INJECTION_TRIGGER, } from './prompt-processors/types.js';
14
+ import { SHORTHAND_ARGS_PLACEHOLDER, SHELL_INJECTION_TRIGGER, AT_FILE_INJECTION_TRIGGER, } from './prompt-processors/types.js';
15
15
  import { ConfirmationRequiredError, ShellProcessor, } from './prompt-processors/shellProcessor.js';
16
+ import { AtFileProcessor } from './prompt-processors/atFileProcessor.js';
16
17
  /**
17
18
  * Defines the Zod schema for a command definition file. This serves as the
18
19
  * single source of truth for both validation and type inference.
@@ -155,14 +156,20 @@ export class FileCommandLoader {
155
156
  const processors = [];
156
157
  const usesArgs = validDef.prompt.includes(SHORTHAND_ARGS_PLACEHOLDER);
157
158
  const usesShellInjection = validDef.prompt.includes(SHELL_INJECTION_TRIGGER);
158
- // Interpolation (Shell Execution and Argument Injection)
159
- // If the prompt uses either shell injection OR argument placeholders,
160
- // we must use the ShellProcessor.
159
+ const usesAtFileInjection = validDef.prompt.includes(AT_FILE_INJECTION_TRIGGER);
160
+ // 1. @-File Injection (Security First).
161
+ // This runs first to ensure we're not executing shell commands that
162
+ // could dynamically generate malicious @-paths.
163
+ if (usesAtFileInjection) {
164
+ processors.push(new AtFileProcessor(baseCommandName));
165
+ }
166
+ // 2. Argument and Shell Injection.
167
+ // This runs after file content has been safely injected.
161
168
  if (usesShellInjection || usesArgs) {
162
169
  processors.push(new ShellProcessor(baseCommandName));
163
170
  }
164
- // Default Argument Handling
165
- // If NO explicit argument injection ({{args}}) was used, we append the raw invocation.
171
+ // 3. Default Argument Handling.
172
+ // Appends the raw invocation if no explicit {{args}} are used.
166
173
  if (!usesArgs) {
167
174
  processors.push(new DefaultArgumentProcessor());
168
175
  }
@@ -176,17 +183,19 @@ export class FileCommandLoader {
176
183
  console.error(`[FileCommandLoader] Critical error: Command '${baseCommandName}' was executed without invocation context.`);
177
184
  return {
178
185
  type: 'submit_prompt',
179
- content: validDef.prompt, // Fallback to unprocessed prompt
186
+ content: [{ text: validDef.prompt }], // Fallback to unprocessed prompt
180
187
  };
181
188
  }
182
189
  try {
183
- let processedPrompt = validDef.prompt;
190
+ let processedContent = [
191
+ { text: validDef.prompt },
192
+ ];
184
193
  for (const processor of processors) {
185
- processedPrompt = await processor.process(processedPrompt, context);
194
+ processedContent = await processor.process(processedContent, context);
186
195
  }
187
196
  return {
188
197
  type: 'submit_prompt',
189
- content: processedPrompt,
198
+ content: processedContent,
190
199
  };
191
200
  }
192
201
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"FileCommandLoader.js","sourceRoot":"","sources":["../../../src/services/FileCommandLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileCommandLoader.js","sourceRoot":"","sources":["../../../src/services/FileCommandLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAOlD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAKpF,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,yBAAyB,EACzB,cAAc,GACf,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAOzE;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,cAAc,EAAE,iCAAiC;QACjD,kBAAkB,EAAE,sCAAsC;KAC3D,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAiB;IAGC;IAFZ,WAAW,CAAS;IAErC,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,EAAE,cAAc,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,YAAY,CAAC,MAAmB;QACpC,MAAM,WAAW,GAAmB,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG;YAClB,KAAK,EAAE,IAAI;YACX,GAAG,EAAE,IAAI;YACT,MAAM;YACN,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,oCAAoC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACjD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;oBACpC,GAAG,WAAW;oBACd,GAAG,EAAE,OAAO,CAAC,IAAI;iBAClB,CAAC,CAAC;gBAEH,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,iBAAiB,CACpB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAC7B,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,aAAa,CACtB,CACF,CAAC;gBAEF,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAC1D,CAAC,GAAG,EAAuB,EAAE,CAAC,GAAG,KAAK,IAAI,CAC3C,CAAC;gBAEF,yCAAyC;gBACzC,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACvD,OAAO,CAAC,KAAK,CACX,mDAAmD,OAAO,CAAC,IAAI,GAAG,EAClE,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACK,qBAAqB;QAC3B,MAAM,IAAI,GAAuB,EAAE,CAAC;QAEpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEtE,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAElD,+CAA+C;QAC/C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAErD,iEAAiE;QACjE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM;iBACjC,aAAa,EAAE;iBACf,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;iBAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gDAAgD;YAEjG,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC1D,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;gBACrC,aAAa,EAAE,GAAG,CAAC,IAAI;aACxB,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,iBAAiB,CAC7B,QAAgB,EAChB,OAAe,EACf,aAAsB;QAEtB,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CACX,2CAA2C,QAAQ,GAAG,EACtD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CACX,iDAAiD,QAAQ,GAAG,EAC5D,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CACX,sDAAsD,QAAQ,sBAAsB,EACpF,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,CACjC,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAEvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAChD,CAAC,EACD,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAC/B,CAAC;QACF,MAAM,eAAe,GAAG,YAAY;aACjC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YAChB,oEAAoE;YACpE,kEAAkE;YAClE,8CAA8C;aAC7C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aAC9C,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,gDAAgD;QAChD,MAAM,kBAAkB,GAAG,uBAAuB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5E,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,kBAAkB,CAAC;QAC7D,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,GAAG,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;QACpD,CAAC;QAED,MAAM,UAAU,GAAuB,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QACtE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CACjD,uBAAuB,CACxB,CAAC;QACF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAClD,yBAAyB,CAC1B,CAAC;QAEF,wCAAwC;QACxC,oEAAoE;QACpE,gDAAgD;QAChD,IAAI,mBAAmB,EAAE,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,mCAAmC;QACnC,yDAAyD;QACzD,IAAI,kBAAkB,IAAI,QAAQ,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,gCAAgC;QAChC,+DAA+D;QAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,IAAI,wBAAwB,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,WAAW;YACX,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,aAAa;YACb,MAAM,EAAE,KAAK,EACX,OAAuB,EACvB,KAAa,EACsB,EAAE;gBACrC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CACX,gDAAgD,eAAe,4CAA4C,CAC5G,CAAC;oBACF,OAAO;wBACL,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,iCAAiC;qBACxE,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC;oBACH,IAAI,gBAAgB,GAA0B;wBAC5C,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE;qBAC1B,CAAC;oBACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,gBAAgB,GAAG,MAAM,SAAS,CAAC,OAAO,CACxC,gBAAgB,EAChB,OAAO,CACR,CAAC;oBACJ,CAAC;oBAED,OAAO;wBACL,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,gBAAgB;qBAC1B,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,wCAAwC;oBACxC,IAAI,CAAC,YAAY,yBAAyB,EAAE,CAAC;wBAC3C,mDAAmD;wBACnD,OAAO;4BACL,IAAI,EAAE,wBAAwB;4BAC9B,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;4BACtC,kBAAkB,EAAE;gCAClB,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG;6BAC5B;yBACF,CAAC;oBACJ,CAAC;oBACD,mEAAmE;oBACnE,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -3,9 +3,10 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Config } from '@google/gemini-cli-core';
7
- import { SlashCommand } from '../ui/commands/types.js';
8
- import { ICommandLoader } from './types.js';
6
+ import type { Config } from '@google/gemini-cli-core';
7
+ import type { SlashCommand } from '../ui/commands/types.js';
8
+ import type { ICommandLoader } from './types.js';
9
+ import type { PromptArgument } from '@modelcontextprotocol/sdk/types.js';
9
10
  /**
10
11
  * Discovers and loads executable slash commands from prompts exposed by
11
12
  * Model-Context-Protocol (MCP) servers.
@@ -21,5 +22,14 @@ export declare class McpPromptLoader implements ICommandLoader {
21
22
  * @returns A promise that resolves to an array of loaded SlashCommands.
22
23
  */
23
24
  loadCommands(_signal: AbortSignal): Promise<SlashCommand[]>;
24
- private parseArgs;
25
+ /**
26
+ * Parses the `userArgs` string representing the prompt arguments (all the text
27
+ * after the command) into a record matching the shape of the `promptArgs`.
28
+ *
29
+ * @param userArgs
30
+ * @param promptArgs
31
+ * @returns A record of the parsed arguments
32
+ * @visibleForTesting
33
+ */
34
+ parseArgs(userArgs: string, promptArgs: PromptArgument[] | undefined): Record<string, unknown> | Error;
25
35
  }
@@ -3,8 +3,8 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { getErrorMessage, getMCPServerPrompts, } from '@google/gemini-cli-core';
7
- import { CommandKind, } from '../ui/commands/types.js';
6
+ import { getErrorMessage, getMCPServerPrompts } from '@google/gemini-cli-core';
7
+ import { CommandKind } from '../ui/commands/types.js';
8
8
  /**
9
9
  * Discovers and loads executable slash commands from prompts exposed by
10
10
  * Model-Context-Protocol (MCP) servers.
@@ -141,29 +141,46 @@ export class McpPromptLoader {
141
141
  }
142
142
  return Promise.resolve(promptCommands);
143
143
  }
144
+ /**
145
+ * Parses the `userArgs` string representing the prompt arguments (all the text
146
+ * after the command) into a record matching the shape of the `promptArgs`.
147
+ *
148
+ * @param userArgs
149
+ * @param promptArgs
150
+ * @returns A record of the parsed arguments
151
+ * @visibleForTesting
152
+ */
144
153
  parseArgs(userArgs, promptArgs) {
145
154
  const argValues = {};
146
155
  const promptInputs = {};
147
156
  // arg parsing: --key="value" or --key=value
148
- const namedArgRegex = /--([^=]+)=(?:"((?:\\.|[^"\\])*)"|([^ ]*))/g;
157
+ const namedArgRegex = /--([^=]+)=(?:"((?:\\.|[^"\\])*)"|([^ ]+))/g;
149
158
  let match;
150
- const remainingArgs = [];
151
159
  let lastIndex = 0;
160
+ const positionalParts = [];
152
161
  while ((match = namedArgRegex.exec(userArgs)) !== null) {
153
162
  const key = match[1];
154
- const value = match[2] ?? match[3]; // Quoted or unquoted value
163
+ // Extract the quoted or unquoted argument and remove escape chars.
164
+ const value = (match[2] ?? match[3]).replace(/\\(.)/g, '$1');
155
165
  argValues[key] = value;
156
166
  // Capture text between matches as potential positional args
157
167
  if (match.index > lastIndex) {
158
- remainingArgs.push(userArgs.substring(lastIndex, match.index).trim());
168
+ positionalParts.push(userArgs.substring(lastIndex, match.index));
159
169
  }
160
170
  lastIndex = namedArgRegex.lastIndex;
161
171
  }
162
172
  // Capture any remaining text after the last named arg
163
173
  if (lastIndex < userArgs.length) {
164
- remainingArgs.push(userArgs.substring(lastIndex).trim());
174
+ positionalParts.push(userArgs.substring(lastIndex));
175
+ }
176
+ const positionalArgsString = positionalParts.join('').trim();
177
+ // extracts either quoted strings or non-quoted sequences of non-space characters.
178
+ const positionalArgRegex = /(?:"((?:\\.|[^"\\])*)"|([^ ]+))/g;
179
+ const positionalArgs = [];
180
+ while ((match = positionalArgRegex.exec(positionalArgsString)) !== null) {
181
+ // Extract the quoted or unquoted argument and remove escape chars.
182
+ positionalArgs.push((match[1] ?? match[2]).replace(/\\(.)/g, '$1'));
165
183
  }
166
- const positionalArgs = remainingArgs.join(' ').split(/ +/);
167
184
  if (!promptArgs) {
168
185
  return promptInputs;
169
186
  }
@@ -173,19 +190,28 @@ export class McpPromptLoader {
173
190
  }
174
191
  }
175
192
  const unfilledArgs = promptArgs.filter((arg) => arg.required && !promptInputs[arg.name]);
176
- const missingArgs = [];
177
- for (let i = 0; i < unfilledArgs.length; i++) {
178
- if (positionalArgs.length > i && positionalArgs[i]) {
179
- promptInputs[unfilledArgs[i].name] = positionalArgs[i];
193
+ if (unfilledArgs.length === 1) {
194
+ // If we have only one unfilled arg, we don't require quotes we just
195
+ // join all the given arguments together as if they were quoted.
196
+ promptInputs[unfilledArgs[0].name] = positionalArgs.join(' ');
197
+ }
198
+ else {
199
+ const missingArgs = [];
200
+ for (let i = 0; i < unfilledArgs.length; i++) {
201
+ if (positionalArgs.length > i) {
202
+ promptInputs[unfilledArgs[i].name] = positionalArgs[i];
203
+ }
204
+ else {
205
+ missingArgs.push(unfilledArgs[i].name);
206
+ }
180
207
  }
181
- else {
182
- missingArgs.push(unfilledArgs[i].name);
208
+ if (missingArgs.length > 0) {
209
+ const missingArgNames = missingArgs
210
+ .map((name) => `--${name}`)
211
+ .join(', ');
212
+ return new Error(`Missing required argument(s): ${missingArgNames}`);
183
213
  }
184
214
  }
185
- if (missingArgs.length > 0) {
186
- const missingArgNames = missingArgs.map((name) => `--${name}`).join(', ');
187
- return new Error(`Missing required argument(s): ${missingArgNames}`);
188
- }
189
215
  return promptInputs;
190
216
  }
191
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"McpPromptLoader.js","sourceRoot":"","sources":["../../../src/services/McpPromptLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"McpPromptLoader.js","sourceRoot":"","sources":["../../../src/services/McpPromptLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,114 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { McpPromptLoader } from './McpPromptLoader.js';
7
+ import { describe, it, expect } from 'vitest';
8
+ describe('McpPromptLoader', () => {
9
+ const mockConfig = {};
10
+ describe('parseArgs', () => {
11
+ it('should handle multi-word positional arguments', () => {
12
+ const loader = new McpPromptLoader(mockConfig);
13
+ const promptArgs = [
14
+ { name: 'arg1', required: true },
15
+ { name: 'arg2', required: true },
16
+ ];
17
+ const userArgs = 'hello world';
18
+ const result = loader.parseArgs(userArgs, promptArgs);
19
+ expect(result).toEqual({ arg1: 'hello', arg2: 'world' });
20
+ });
21
+ it('should handle quoted multi-word positional arguments', () => {
22
+ const loader = new McpPromptLoader(mockConfig);
23
+ const promptArgs = [
24
+ { name: 'arg1', required: true },
25
+ { name: 'arg2', required: true },
26
+ ];
27
+ const userArgs = '"hello world" foo';
28
+ const result = loader.parseArgs(userArgs, promptArgs);
29
+ expect(result).toEqual({ arg1: 'hello world', arg2: 'foo' });
30
+ });
31
+ it('should handle a single positional argument with multiple words', () => {
32
+ const loader = new McpPromptLoader(mockConfig);
33
+ const promptArgs = [{ name: 'arg1', required: true }];
34
+ const userArgs = 'hello world';
35
+ const result = loader.parseArgs(userArgs, promptArgs);
36
+ expect(result).toEqual({ arg1: 'hello world' });
37
+ });
38
+ it('should handle escaped quotes in positional arguments', () => {
39
+ const loader = new McpPromptLoader(mockConfig);
40
+ const promptArgs = [{ name: 'arg1', required: true }];
41
+ const userArgs = '"hello \\"world\\""';
42
+ const result = loader.parseArgs(userArgs, promptArgs);
43
+ expect(result).toEqual({ arg1: 'hello "world"' });
44
+ });
45
+ it('should handle escaped backslashes in positional arguments', () => {
46
+ const loader = new McpPromptLoader(mockConfig);
47
+ const promptArgs = [{ name: 'arg1', required: true }];
48
+ const userArgs = '"hello\\\\world"';
49
+ const result = loader.parseArgs(userArgs, promptArgs);
50
+ expect(result).toEqual({ arg1: 'hello\\world' });
51
+ });
52
+ it('should handle named args followed by positional args', () => {
53
+ const loader = new McpPromptLoader(mockConfig);
54
+ const promptArgs = [
55
+ { name: 'named', required: true },
56
+ { name: 'pos', required: true },
57
+ ];
58
+ const userArgs = '--named="value" positional';
59
+ const result = loader.parseArgs(userArgs, promptArgs);
60
+ expect(result).toEqual({ named: 'value', pos: 'positional' });
61
+ });
62
+ it('should handle positional args followed by named args', () => {
63
+ const loader = new McpPromptLoader(mockConfig);
64
+ const promptArgs = [
65
+ { name: 'pos', required: true },
66
+ { name: 'named', required: true },
67
+ ];
68
+ const userArgs = 'positional --named="value"';
69
+ const result = loader.parseArgs(userArgs, promptArgs);
70
+ expect(result).toEqual({ pos: 'positional', named: 'value' });
71
+ });
72
+ it('should handle positional args interspersed with named args', () => {
73
+ const loader = new McpPromptLoader(mockConfig);
74
+ const promptArgs = [
75
+ { name: 'pos1', required: true },
76
+ { name: 'named', required: true },
77
+ { name: 'pos2', required: true },
78
+ ];
79
+ const userArgs = 'p1 --named="value" p2';
80
+ const result = loader.parseArgs(userArgs, promptArgs);
81
+ expect(result).toEqual({ pos1: 'p1', named: 'value', pos2: 'p2' });
82
+ });
83
+ it('should treat an escaped quote at the start as a literal', () => {
84
+ const loader = new McpPromptLoader(mockConfig);
85
+ const promptArgs = [
86
+ { name: 'arg1', required: true },
87
+ { name: 'arg2', required: true },
88
+ ];
89
+ const userArgs = '\\"hello world';
90
+ const result = loader.parseArgs(userArgs, promptArgs);
91
+ expect(result).toEqual({ arg1: '"hello', arg2: 'world' });
92
+ });
93
+ it('should handle a complex mix of args', () => {
94
+ const loader = new McpPromptLoader(mockConfig);
95
+ const promptArgs = [
96
+ { name: 'pos1', required: true },
97
+ { name: 'named1', required: true },
98
+ { name: 'pos2', required: true },
99
+ { name: 'named2', required: true },
100
+ { name: 'pos3', required: true },
101
+ ];
102
+ const userArgs = 'p1 --named1="value 1" "p2 has spaces" --named2=value2 "p3 \\"with quotes\\""';
103
+ const result = loader.parseArgs(userArgs, promptArgs);
104
+ expect(result).toEqual({
105
+ pos1: 'p1',
106
+ named1: 'value 1',
107
+ pos2: 'p2 has spaces',
108
+ named2: 'value2',
109
+ pos3: 'p3 "with quotes"',
110
+ });
111
+ });
112
+ });
113
+ });
114
+ //# sourceMappingURL=McpPromptLoader.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpPromptLoader.test.js","sourceRoot":"","sources":["../../../src/services/McpPromptLoader.test.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { IPromptProcessor } from './types.js';
7
- import { CommandContext } from '../../ui/commands/types.js';
6
+ import type { IPromptProcessor, PromptPipelineContent } from './types.js';
7
+ import type { CommandContext } from '../../ui/commands/types.js';
8
8
  /**
9
9
  * Appends the user's full command invocation to the prompt if arguments are
10
10
  * provided, allowing the model to perform its own argument parsing.
@@ -12,5 +12,5 @@ import { CommandContext } from '../../ui/commands/types.js';
12
12
  * This processor is only used if the prompt does NOT contain {{args}}.
13
13
  */
14
14
  export declare class DefaultArgumentProcessor implements IPromptProcessor {
15
- process(prompt: string, context: CommandContext): Promise<string>;
15
+ process(prompt: PromptPipelineContent, context: CommandContext): Promise<PromptPipelineContent>;
16
16
  }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { appendToLastTextPart } from '@google/gemini-cli-core';
6
7
  /**
7
8
  * Appends the user's full command invocation to the prompt if arguments are
8
9
  * provided, allowing the model to perform its own argument parsing.
@@ -11,8 +12,8 @@
11
12
  */
12
13
  export class DefaultArgumentProcessor {
13
14
  async process(prompt, context) {
14
- if (context.invocation.args) {
15
- return `${prompt}\n\n${context.invocation.raw}`;
15
+ if (context.invocation?.args) {
16
+ return appendToLastTextPart(prompt, context.invocation.raw);
16
17
  }
17
18
  return prompt;
18
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"argumentProcessor.js","sourceRoot":"","sources":["../../../../src/services/prompt-processors/argumentProcessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;;;GAKG;AACH,MAAM,OAAO,wBAAwB;IACnC,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAuB;QACnD,IAAI,OAAO,CAAC,UAAW,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC,UAAW,CAAC,GAAG,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"argumentProcessor.js","sourceRoot":"","sources":["../../../../src/services/prompt-processors/argumentProcessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAI/D;;;;;GAKG;AACH,MAAM,OAAO,wBAAwB;IACnC,KAAK,CAAC,OAAO,CACX,MAA6B,EAC7B,OAAuB;QAEvB,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YAC7B,OAAO,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { CommandContext } from '../../ui/commands/types.js';
7
+ import { type IPromptProcessor, type PromptPipelineContent } from './types.js';
8
+ export declare class AtFileProcessor implements IPromptProcessor {
9
+ private readonly commandName?;
10
+ constructor(commandName?: string | undefined);
11
+ process(input: PromptPipelineContent, context: CommandContext): Promise<PromptPipelineContent>;
12
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { flatMapTextParts, readPathFromWorkspace, } from '@google/gemini-cli-core';
7
+ import { MessageType } from '../../ui/types.js';
8
+ import { AT_FILE_INJECTION_TRIGGER, } from './types.js';
9
+ import { extractInjections } from './injectionParser.js';
10
+ export class AtFileProcessor {
11
+ commandName;
12
+ constructor(commandName) {
13
+ this.commandName = commandName;
14
+ }
15
+ async process(input, context) {
16
+ const config = context.services.config;
17
+ if (!config) {
18
+ return input;
19
+ }
20
+ return flatMapTextParts(input, async (text) => {
21
+ if (!text.includes(AT_FILE_INJECTION_TRIGGER)) {
22
+ return [{ text }];
23
+ }
24
+ const injections = extractInjections(text, AT_FILE_INJECTION_TRIGGER, this.commandName);
25
+ if (injections.length === 0) {
26
+ return [{ text }];
27
+ }
28
+ const output = [];
29
+ let lastIndex = 0;
30
+ for (const injection of injections) {
31
+ const prefix = text.substring(lastIndex, injection.startIndex);
32
+ if (prefix) {
33
+ output.push({ text: prefix });
34
+ }
35
+ const pathStr = injection.content;
36
+ try {
37
+ const fileContentParts = await readPathFromWorkspace(pathStr, config);
38
+ if (fileContentParts.length === 0) {
39
+ const uiMessage = `File '@{${pathStr}}' was ignored by .gitignore or .geminiignore and was not included in the prompt.`;
40
+ context.ui.addItem({ type: MessageType.INFO, text: uiMessage }, Date.now());
41
+ }
42
+ output.push(...fileContentParts);
43
+ }
44
+ catch (error) {
45
+ const message = error instanceof Error ? error.message : String(error);
46
+ const uiMessage = `Failed to inject content for '@{${pathStr}}': ${message}`;
47
+ console.error(`[AtFileProcessor] ${uiMessage}. Leaving placeholder in prompt.`);
48
+ context.ui.addItem({ type: MessageType.ERROR, text: uiMessage }, Date.now());
49
+ const placeholder = text.substring(injection.startIndex, injection.endIndex);
50
+ output.push({ text: placeholder });
51
+ }
52
+ lastIndex = injection.endIndex;
53
+ }
54
+ const suffix = text.substring(lastIndex);
55
+ if (suffix) {
56
+ output.push({ text: suffix });
57
+ }
58
+ return output;
59
+ });
60
+ }
61
+ }
62
+ //# sourceMappingURL=atFileProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atFileProcessor.js","sourceRoot":"","sources":["../../../../src/services/prompt-processors/atFileProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};