fss-link 1.0.27 → 1.0.29

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 (879) hide show
  1. package/README.md +25 -8
  2. package/bundle/fss-link.js +27930 -0
  3. package/package.json +100 -47
  4. package/dist/.last_build +0 -0
  5. package/dist/index.d.ts +0 -7
  6. package/dist/index.js +0 -20
  7. package/dist/index.js.map +0 -1
  8. package/dist/package.json +0 -90
  9. package/dist/src/commands/mcp/add.d.ts +0 -7
  10. package/dist/src/commands/mcp/add.js +0 -166
  11. package/dist/src/commands/mcp/add.js.map +0 -1
  12. package/dist/src/commands/mcp/list.d.ts +0 -8
  13. package/dist/src/commands/mcp/list.js +0 -110
  14. package/dist/src/commands/mcp/list.js.map +0 -1
  15. package/dist/src/commands/mcp/remove.d.ts +0 -7
  16. package/dist/src/commands/mcp/remove.js +0 -44
  17. package/dist/src/commands/mcp/remove.js.map +0 -1
  18. package/dist/src/commands/mcp.d.ts +0 -7
  19. package/dist/src/commands/mcp.js +0 -23
  20. package/dist/src/commands/mcp.js.map +0 -1
  21. package/dist/src/config/auth.d.ts +0 -13
  22. package/dist/src/config/auth.js +0 -78
  23. package/dist/src/config/auth.js.map +0 -1
  24. package/dist/src/config/auth.test.d.ts +0 -6
  25. package/dist/src/config/auth.test.js +0 -61
  26. package/dist/src/config/auth.test.js.map +0 -1
  27. package/dist/src/config/config.d.ts +0 -45
  28. package/dist/src/config/config.js +0 -490
  29. package/dist/src/config/config.js.map +0 -1
  30. package/dist/src/config/database.d.ts +0 -101
  31. package/dist/src/config/database.js +0 -345
  32. package/dist/src/config/database.js.map +0 -1
  33. package/dist/src/config/extension.d.ts +0 -23
  34. package/dist/src/config/extension.js +0 -126
  35. package/dist/src/config/extension.js.map +0 -1
  36. package/dist/src/config/keyBindings.d.ts +0 -66
  37. package/dist/src/config/keyBindings.js +0 -141
  38. package/dist/src/config/keyBindings.js.map +0 -1
  39. package/dist/src/config/keyBindings.test.d.ts +0 -6
  40. package/dist/src/config/keyBindings.test.js +0 -51
  41. package/dist/src/config/keyBindings.test.js.map +0 -1
  42. package/dist/src/config/modelManager.d.ts +0 -84
  43. package/dist/src/config/modelManager.js +0 -234
  44. package/dist/src/config/modelManager.js.map +0 -1
  45. package/dist/src/config/sandboxConfig.d.ts +0 -13
  46. package/dist/src/config/sandboxConfig.js +0 -75
  47. package/dist/src/config/sandboxConfig.js.map +0 -1
  48. package/dist/src/config/settings.d.ts +0 -56
  49. package/dist/src/config/settings.js +0 -407
  50. package/dist/src/config/settings.js.map +0 -1
  51. package/dist/src/config/settingsSchema.d.ts +0 -694
  52. package/dist/src/config/settingsSchema.js +0 -670
  53. package/dist/src/config/settingsSchema.js.map +0 -1
  54. package/dist/src/config/settingsSchema.test.d.ts +0 -6
  55. package/dist/src/config/settingsSchema.test.js +0 -195
  56. package/dist/src/config/settingsSchema.test.js.map +0 -1
  57. package/dist/src/config/trustedFolders.d.ts +0 -37
  58. package/dist/src/config/trustedFolders.js +0 -118
  59. package/dist/src/config/trustedFolders.js.map +0 -1
  60. package/dist/src/config/trustedFolders.test.d.ts +0 -6
  61. package/dist/src/config/trustedFolders.test.js +0 -160
  62. package/dist/src/config/trustedFolders.test.js.map +0 -1
  63. package/dist/src/gemini.d.ts +0 -9
  64. package/dist/src/gemini.js +0 -263
  65. package/dist/src/gemini.js.map +0 -1
  66. package/dist/src/gemini.test.d.ts +0 -6
  67. package/dist/src/gemini.test.js +0 -193
  68. package/dist/src/gemini.test.js.map +0 -1
  69. package/dist/src/generated/git-commit.d.ts +0 -7
  70. package/dist/src/generated/git-commit.js +0 -10
  71. package/dist/src/generated/git-commit.js.map +0 -1
  72. package/dist/src/nonInteractiveCli.d.ts +0 -7
  73. package/dist/src/nonInteractiveCli.js +0 -103
  74. package/dist/src/nonInteractiveCli.js.map +0 -1
  75. package/dist/src/patches/is-in-ci.d.ts +0 -7
  76. package/dist/src/patches/is-in-ci.js +0 -15
  77. package/dist/src/patches/is-in-ci.js.map +0 -1
  78. package/dist/src/services/BuiltinCommandLoader.d.ts +0 -24
  79. package/dist/src/services/BuiltinCommandLoader.js +0 -90
  80. package/dist/src/services/BuiltinCommandLoader.js.map +0 -1
  81. package/dist/src/services/BuiltinCommandLoader.test.d.ts +0 -6
  82. package/dist/src/services/BuiltinCommandLoader.test.js +0 -108
  83. package/dist/src/services/BuiltinCommandLoader.test.js.map +0 -1
  84. package/dist/src/services/CommandService.d.ts +0 -55
  85. package/dist/src/services/CommandService.js +0 -90
  86. package/dist/src/services/CommandService.js.map +0 -1
  87. package/dist/src/services/CommandService.test.d.ts +0 -6
  88. package/dist/src/services/CommandService.test.js +0 -232
  89. package/dist/src/services/CommandService.test.js.map +0 -1
  90. package/dist/src/services/FileCommandLoader.d.ts +0 -49
  91. package/dist/src/services/FileCommandLoader.js +0 -210
  92. package/dist/src/services/FileCommandLoader.js.map +0 -1
  93. package/dist/src/services/McpPromptLoader.d.ts +0 -25
  94. package/dist/src/services/McpPromptLoader.js +0 -192
  95. package/dist/src/services/McpPromptLoader.js.map +0 -1
  96. package/dist/src/services/SearchEngineConfigProvider.d.ts +0 -33
  97. package/dist/src/services/SearchEngineConfigProvider.js +0 -82
  98. package/dist/src/services/SearchEngineConfigProvider.js.map +0 -1
  99. package/dist/src/services/prompt-processors/argumentProcessor.d.ts +0 -16
  100. package/dist/src/services/prompt-processors/argumentProcessor.js +0 -20
  101. package/dist/src/services/prompt-processors/argumentProcessor.js.map +0 -1
  102. package/dist/src/services/prompt-processors/shellProcessor.d.ts +0 -35
  103. package/dist/src/services/prompt-processors/shellProcessor.js +0 -162
  104. package/dist/src/services/prompt-processors/shellProcessor.js.map +0 -1
  105. package/dist/src/services/prompt-processors/types.d.ts +0 -40
  106. package/dist/src/services/prompt-processors/types.js +0 -16
  107. package/dist/src/services/prompt-processors/types.js.map +0 -1
  108. package/dist/src/services/types.d.ts +0 -22
  109. package/dist/src/services/types.js +0 -7
  110. package/dist/src/services/types.js.map +0 -1
  111. package/dist/src/test-utils/customMatchers.d.ts +0 -14
  112. package/dist/src/test-utils/customMatchers.js +0 -46
  113. package/dist/src/test-utils/customMatchers.js.map +0 -1
  114. package/dist/src/test-utils/mockCommandContext.d.ts +0 -18
  115. package/dist/src/test-utils/mockCommandContext.js +0 -87
  116. package/dist/src/test-utils/mockCommandContext.js.map +0 -1
  117. package/dist/src/test-utils/mockCommandContext.test.d.ts +0 -6
  118. package/dist/src/test-utils/mockCommandContext.test.js +0 -51
  119. package/dist/src/test-utils/mockCommandContext.test.js.map +0 -1
  120. package/dist/src/test-utils/render.d.ts +0 -8
  121. package/dist/src/test-utils/render.js +0 -10
  122. package/dist/src/test-utils/render.js.map +0 -1
  123. package/dist/src/ui/App.d.ts +0 -15
  124. package/dist/src/ui/App.js +0 -703
  125. package/dist/src/ui/App.js.map +0 -1
  126. package/dist/src/ui/IdeIntegrationNudge.d.ts +0 -16
  127. package/dist/src/ui/IdeIntegrationNudge.js +0 -52
  128. package/dist/src/ui/IdeIntegrationNudge.js.map +0 -1
  129. package/dist/src/ui/colors.d.ts +0 -7
  130. package/dist/src/ui/colors.js +0 -54
  131. package/dist/src/ui/colors.js.map +0 -1
  132. package/dist/src/ui/commands/aboutCommand.d.ts +0 -7
  133. package/dist/src/ui/commands/aboutCommand.js +0 -43
  134. package/dist/src/ui/commands/aboutCommand.js.map +0 -1
  135. package/dist/src/ui/commands/authCommand.d.ts +0 -7
  136. package/dist/src/ui/commands/authCommand.js +0 -16
  137. package/dist/src/ui/commands/authCommand.js.map +0 -1
  138. package/dist/src/ui/commands/bugCommand.d.ts +0 -7
  139. package/dist/src/ui/commands/bugCommand.js +0 -71
  140. package/dist/src/ui/commands/bugCommand.js.map +0 -1
  141. package/dist/src/ui/commands/chatCommand.d.ts +0 -7
  142. package/dist/src/ui/commands/chatCommand.js +0 -234
  143. package/dist/src/ui/commands/chatCommand.js.map +0 -1
  144. package/dist/src/ui/commands/clearCommand.d.ts +0 -7
  145. package/dist/src/ui/commands/clearCommand.js +0 -27
  146. package/dist/src/ui/commands/clearCommand.js.map +0 -1
  147. package/dist/src/ui/commands/compressCommand.d.ts +0 -7
  148. package/dist/src/ui/commands/compressCommand.js +0 -64
  149. package/dist/src/ui/commands/compressCommand.js.map +0 -1
  150. package/dist/src/ui/commands/copyCommand.d.ts +0 -7
  151. package/dist/src/ui/commands/copyCommand.js +0 -59
  152. package/dist/src/ui/commands/copyCommand.js.map +0 -1
  153. package/dist/src/ui/commands/corgiCommand.d.ts +0 -7
  154. package/dist/src/ui/commands/corgiCommand.js +0 -15
  155. package/dist/src/ui/commands/corgiCommand.js.map +0 -1
  156. package/dist/src/ui/commands/directoryCommand.d.ts +0 -8
  157. package/dist/src/ui/commands/directoryCommand.js +0 -133
  158. package/dist/src/ui/commands/directoryCommand.js.map +0 -1
  159. package/dist/src/ui/commands/docsCommand.d.ts +0 -7
  160. package/dist/src/ui/commands/docsCommand.js +0 -31
  161. package/dist/src/ui/commands/docsCommand.js.map +0 -1
  162. package/dist/src/ui/commands/editorCommand.d.ts +0 -7
  163. package/dist/src/ui/commands/editorCommand.js +0 -16
  164. package/dist/src/ui/commands/editorCommand.js.map +0 -1
  165. package/dist/src/ui/commands/extensionsCommand.d.ts +0 -7
  166. package/dist/src/ui/commands/extensionsCommand.js +0 -31
  167. package/dist/src/ui/commands/extensionsCommand.js.map +0 -1
  168. package/dist/src/ui/commands/helpCommand.d.ts +0 -7
  169. package/dist/src/ui/commands/helpCommand.js +0 -21
  170. package/dist/src/ui/commands/helpCommand.js.map +0 -1
  171. package/dist/src/ui/commands/ideCommand.d.ts +0 -8
  172. package/dist/src/ui/commands/ideCommand.js +0 -218
  173. package/dist/src/ui/commands/ideCommand.js.map +0 -1
  174. package/dist/src/ui/commands/initCommand.d.ts +0 -7
  175. package/dist/src/ui/commands/initCommand.js +0 -105
  176. package/dist/src/ui/commands/initCommand.js.map +0 -1
  177. package/dist/src/ui/commands/mcpCommand.d.ts +0 -7
  178. package/dist/src/ui/commands/mcpCommand.js +0 -424
  179. package/dist/src/ui/commands/mcpCommand.js.map +0 -1
  180. package/dist/src/ui/commands/memoryCommand.d.ts +0 -7
  181. package/dist/src/ui/commands/memoryCommand.js +0 -224
  182. package/dist/src/ui/commands/memoryCommand.js.map +0 -1
  183. package/dist/src/ui/commands/privacyCommand.d.ts +0 -7
  184. package/dist/src/ui/commands/privacyCommand.js +0 -16
  185. package/dist/src/ui/commands/privacyCommand.js.map +0 -1
  186. package/dist/src/ui/commands/quitCommand.d.ts +0 -7
  187. package/dist/src/ui/commands/quitCommand.js +0 -34
  188. package/dist/src/ui/commands/quitCommand.js.map +0 -1
  189. package/dist/src/ui/commands/restoreCommand.d.ts +0 -8
  190. package/dist/src/ui/commands/restoreCommand.js +0 -128
  191. package/dist/src/ui/commands/restoreCommand.js.map +0 -1
  192. package/dist/src/ui/commands/searchEngineSetupCommand.d.ts +0 -7
  193. package/dist/src/ui/commands/searchEngineSetupCommand.js +0 -17
  194. package/dist/src/ui/commands/searchEngineSetupCommand.js.map +0 -1
  195. package/dist/src/ui/commands/settingsCommand.d.ts +0 -7
  196. package/dist/src/ui/commands/settingsCommand.js +0 -16
  197. package/dist/src/ui/commands/settingsCommand.js.map +0 -1
  198. package/dist/src/ui/commands/setupGithubCommand.d.ts +0 -9
  199. package/dist/src/ui/commands/setupGithubCommand.js +0 -154
  200. package/dist/src/ui/commands/setupGithubCommand.js.map +0 -1
  201. package/dist/src/ui/commands/setupGithubCommand.test.d.ts +0 -6
  202. package/dist/src/ui/commands/setupGithubCommand.test.js +0 -167
  203. package/dist/src/ui/commands/setupGithubCommand.test.js.map +0 -1
  204. package/dist/src/ui/commands/speakCommand.d.ts +0 -7
  205. package/dist/src/ui/commands/speakCommand.js +0 -136
  206. package/dist/src/ui/commands/speakCommand.js.map +0 -1
  207. package/dist/src/ui/commands/statsCommand.d.ts +0 -7
  208. package/dist/src/ui/commands/statsCommand.js +0 -54
  209. package/dist/src/ui/commands/statsCommand.js.map +0 -1
  210. package/dist/src/ui/commands/terminalSetupCommand.d.ts +0 -13
  211. package/dist/src/ui/commands/terminalSetupCommand.js +0 -41
  212. package/dist/src/ui/commands/terminalSetupCommand.js.map +0 -1
  213. package/dist/src/ui/commands/themeCommand.d.ts +0 -7
  214. package/dist/src/ui/commands/themeCommand.js +0 -16
  215. package/dist/src/ui/commands/themeCommand.js.map +0 -1
  216. package/dist/src/ui/commands/toolsCommand.d.ts +0 -7
  217. package/dist/src/ui/commands/toolsCommand.js +0 -56
  218. package/dist/src/ui/commands/toolsCommand.js.map +0 -1
  219. package/dist/src/ui/commands/ttsCommand.d.ts +0 -7
  220. package/dist/src/ui/commands/ttsCommand.js +0 -122
  221. package/dist/src/ui/commands/ttsCommand.js.map +0 -1
  222. package/dist/src/ui/commands/types.d.ts +0 -157
  223. package/dist/src/ui/commands/types.js +0 -12
  224. package/dist/src/ui/commands/types.js.map +0 -1
  225. package/dist/src/ui/commands/vimCommand.d.ts +0 -7
  226. package/dist/src/ui/commands/vimCommand.js +0 -23
  227. package/dist/src/ui/commands/vimCommand.js.map +0 -1
  228. package/dist/src/ui/commands/voiceCommand.d.ts +0 -7
  229. package/dist/src/ui/commands/voiceCommand.js +0 -95
  230. package/dist/src/ui/commands/voiceCommand.js.map +0 -1
  231. package/dist/src/ui/components/AboutBox.d.ts +0 -17
  232. package/dist/src/ui/components/AboutBox.js +0 -6
  233. package/dist/src/ui/components/AboutBox.js.map +0 -1
  234. package/dist/src/ui/components/AsciiArt.d.ts +0 -8
  235. package/dist/src/ui/components/AsciiArt.js +0 -53
  236. package/dist/src/ui/components/AsciiArt.js.map +0 -1
  237. package/dist/src/ui/components/AuthDialog.d.ts +0 -15
  238. package/dist/src/ui/components/AuthDialog.js +0 -151
  239. package/dist/src/ui/components/AuthDialog.js.map +0 -1
  240. package/dist/src/ui/components/AuthDialog.test.d.ts +0 -6
  241. package/dist/src/ui/components/AuthDialog.test.js +0 -220
  242. package/dist/src/ui/components/AuthDialog.test.js.map +0 -1
  243. package/dist/src/ui/components/AuthInProgress.d.ts +0 -11
  244. package/dist/src/ui/components/AuthInProgress.js +0 -28
  245. package/dist/src/ui/components/AuthInProgress.js.map +0 -1
  246. package/dist/src/ui/components/AutoAcceptIndicator.d.ts +0 -12
  247. package/dist/src/ui/components/AutoAcceptIndicator.js +0 -26
  248. package/dist/src/ui/components/AutoAcceptIndicator.js.map +0 -1
  249. package/dist/src/ui/components/ConsoleSummaryDisplay.d.ts +0 -11
  250. package/dist/src/ui/components/ConsoleSummaryDisplay.js +0 -11
  251. package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +0 -1
  252. package/dist/src/ui/components/ContextSummaryDisplay.d.ts +0 -20
  253. package/dist/src/ui/components/ContextSummaryDisplay.js +0 -65
  254. package/dist/src/ui/components/ContextSummaryDisplay.js.map +0 -1
  255. package/dist/src/ui/components/ContextUsageDisplay.d.ts +0 -9
  256. package/dist/src/ui/components/ContextUsageDisplay.js +0 -14
  257. package/dist/src/ui/components/ContextUsageDisplay.js.map +0 -1
  258. package/dist/src/ui/components/DebugProfiler.d.ts +0 -6
  259. package/dist/src/ui/components/DebugProfiler.js +0 -27
  260. package/dist/src/ui/components/DebugProfiler.js.map +0 -1
  261. package/dist/src/ui/components/DetailedMessagesDisplay.d.ts +0 -14
  262. package/dist/src/ui/components/DetailedMessagesDisplay.js +0 -34
  263. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +0 -1
  264. package/dist/src/ui/components/EditorSettingsDialog.d.ts +0 -15
  265. package/dist/src/ui/components/EditorSettingsDialog.js +0 -74
  266. package/dist/src/ui/components/EditorSettingsDialog.js.map +0 -1
  267. package/dist/src/ui/components/FolderTrustDialog.d.ts +0 -16
  268. package/dist/src/ui/components/FolderTrustDialog.js +0 -39
  269. package/dist/src/ui/components/FolderTrustDialog.js.map +0 -1
  270. package/dist/src/ui/components/FolderTrustDialog.test.d.ts +0 -6
  271. package/dist/src/ui/components/FolderTrustDialog.test.js +0 -26
  272. package/dist/src/ui/components/FolderTrustDialog.test.js.map +0 -1
  273. package/dist/src/ui/components/Footer.d.ts +0 -23
  274. package/dist/src/ui/components/Footer.js +0 -25
  275. package/dist/src/ui/components/Footer.js.map +0 -1
  276. package/dist/src/ui/components/GeminiRespondingSpinner.d.ts +0 -17
  277. package/dist/src/ui/components/GeminiRespondingSpinner.js +0 -16
  278. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +0 -1
  279. package/dist/src/ui/components/Header.d.ts +0 -13
  280. package/dist/src/ui/components/Header.js +0 -28
  281. package/dist/src/ui/components/Header.js.map +0 -1
  282. package/dist/src/ui/components/Header.test.d.ts +0 -6
  283. package/dist/src/ui/components/Header.test.js +0 -37
  284. package/dist/src/ui/components/Header.test.js.map +0 -1
  285. package/dist/src/ui/components/Help.d.ts +0 -12
  286. package/dist/src/ui/components/Help.js +0 -10
  287. package/dist/src/ui/components/Help.js.map +0 -1
  288. package/dist/src/ui/components/HistoryItemDisplay.d.ts +0 -20
  289. package/dist/src/ui/components/HistoryItemDisplay.js +0 -18
  290. package/dist/src/ui/components/HistoryItemDisplay.js.map +0 -1
  291. package/dist/src/ui/components/HistoryItemDisplay.test.d.ts +0 -6
  292. package/dist/src/ui/components/HistoryItemDisplay.test.js +0 -91
  293. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +0 -1
  294. package/dist/src/ui/components/InputPrompt.d.ts +0 -28
  295. package/dist/src/ui/components/InputPrompt.js +0 -440
  296. package/dist/src/ui/components/InputPrompt.js.map +0 -1
  297. package/dist/src/ui/components/LMStudioModelPrompt.d.ts +0 -12
  298. package/dist/src/ui/components/LMStudioModelPrompt.js +0 -100
  299. package/dist/src/ui/components/LMStudioModelPrompt.js.map +0 -1
  300. package/dist/src/ui/components/LoadingIndicator.d.ts +0 -15
  301. package/dist/src/ui/components/LoadingIndicator.js +0 -25
  302. package/dist/src/ui/components/LoadingIndicator.js.map +0 -1
  303. package/dist/src/ui/components/LoadingIndicator.test.d.ts +0 -6
  304. package/dist/src/ui/components/LoadingIndicator.test.js +0 -190
  305. package/dist/src/ui/components/LoadingIndicator.test.js.map +0 -1
  306. package/dist/src/ui/components/MemoryUsageDisplay.d.ts +0 -7
  307. package/dist/src/ui/components/MemoryUsageDisplay.js +0 -27
  308. package/dist/src/ui/components/MemoryUsageDisplay.js.map +0 -1
  309. package/dist/src/ui/components/ModelStatsDisplay.d.ts +0 -7
  310. package/dist/src/ui/components/ModelStatsDisplay.js +0 -33
  311. package/dist/src/ui/components/ModelStatsDisplay.js.map +0 -1
  312. package/dist/src/ui/components/OllamaModelPrompt.d.ts +0 -12
  313. package/dist/src/ui/components/OllamaModelPrompt.js +0 -94
  314. package/dist/src/ui/components/OllamaModelPrompt.js.map +0 -1
  315. package/dist/src/ui/components/OpenAIKeyPrompt.d.ts +0 -12
  316. package/dist/src/ui/components/OpenAIKeyPrompt.js +0 -118
  317. package/dist/src/ui/components/OpenAIKeyPrompt.js.map +0 -1
  318. package/dist/src/ui/components/OpenAIKeyPrompt.test.d.ts +0 -6
  319. package/dist/src/ui/components/OpenAIKeyPrompt.test.js +0 -44
  320. package/dist/src/ui/components/OpenAIKeyPrompt.test.js.map +0 -1
  321. package/dist/src/ui/components/PrepareLabel.d.ts +0 -15
  322. package/dist/src/ui/components/PrepareLabel.js +0 -16
  323. package/dist/src/ui/components/PrepareLabel.js.map +0 -1
  324. package/dist/src/ui/components/QwenOAuthProgress.d.ts +0 -16
  325. package/dist/src/ui/components/QwenOAuthProgress.js +0 -108
  326. package/dist/src/ui/components/QwenOAuthProgress.js.map +0 -1
  327. package/dist/src/ui/components/QwenOAuthProgress.test.d.ts +0 -6
  328. package/dist/src/ui/components/QwenOAuthProgress.test.js +0 -290
  329. package/dist/src/ui/components/QwenOAuthProgress.test.js.map +0 -1
  330. package/dist/src/ui/components/SearchEngineConfigDialog.d.ts +0 -18
  331. package/dist/src/ui/components/SearchEngineConfigDialog.js +0 -148
  332. package/dist/src/ui/components/SearchEngineConfigDialog.js.map +0 -1
  333. package/dist/src/ui/components/SessionSummaryDisplay.d.ts +0 -11
  334. package/dist/src/ui/components/SessionSummaryDisplay.js +0 -4
  335. package/dist/src/ui/components/SessionSummaryDisplay.js.map +0 -1
  336. package/dist/src/ui/components/SettingsDialog.d.ts +0 -14
  337. package/dist/src/ui/components/SettingsDialog.js +0 -519
  338. package/dist/src/ui/components/SettingsDialog.js.map +0 -1
  339. package/dist/src/ui/components/SettingsDialog.test.d.ts +0 -6
  340. package/dist/src/ui/components/SettingsDialog.test.js +0 -568
  341. package/dist/src/ui/components/SettingsDialog.test.js.map +0 -1
  342. package/dist/src/ui/components/ShellConfirmationDialog.d.ts +0 -15
  343. package/dist/src/ui/components/ShellConfirmationDialog.js +0 -46
  344. package/dist/src/ui/components/ShellConfirmationDialog.js.map +0 -1
  345. package/dist/src/ui/components/ShellConfirmationDialog.test.d.ts +0 -6
  346. package/dist/src/ui/components/ShellConfirmationDialog.test.js +0 -40
  347. package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +0 -1
  348. package/dist/src/ui/components/ShellModeIndicator.d.ts +0 -7
  349. package/dist/src/ui/components/ShellModeIndicator.js +0 -5
  350. package/dist/src/ui/components/ShellModeIndicator.js.map +0 -1
  351. package/dist/src/ui/components/ShowMoreLines.d.ts +0 -10
  352. package/dist/src/ui/components/ShowMoreLines.js +0 -24
  353. package/dist/src/ui/components/ShowMoreLines.js.map +0 -1
  354. package/dist/src/ui/components/StatsDisplay.d.ts +0 -12
  355. package/dist/src/ui/components/StatsDisplay.js +0 -43
  356. package/dist/src/ui/components/StatsDisplay.js.map +0 -1
  357. package/dist/src/ui/components/SuggestionsDisplay.d.ts +0 -22
  358. package/dist/src/ui/components/SuggestionsDisplay.js +0 -32
  359. package/dist/src/ui/components/SuggestionsDisplay.js.map +0 -1
  360. package/dist/src/ui/components/ThemeDialog.d.ts +0 -19
  361. package/dist/src/ui/components/ThemeDialog.js +0 -143
  362. package/dist/src/ui/components/ThemeDialog.js.map +0 -1
  363. package/dist/src/ui/components/Tips.d.ts +0 -12
  364. package/dist/src/ui/components/Tips.js +0 -8
  365. package/dist/src/ui/components/Tips.js.map +0 -1
  366. package/dist/src/ui/components/TodoDisplay.d.ts +0 -16
  367. package/dist/src/ui/components/TodoDisplay.js +0 -27
  368. package/dist/src/ui/components/TodoDisplay.js.map +0 -1
  369. package/dist/src/ui/components/TodoDisplay.test.d.ts +0 -6
  370. package/dist/src/ui/components/TodoDisplay.test.js +0 -77
  371. package/dist/src/ui/components/TodoDisplay.test.js.map +0 -1
  372. package/dist/src/ui/components/ToolStatsDisplay.d.ts +0 -7
  373. package/dist/src/ui/components/ToolStatsDisplay.js +0 -41
  374. package/dist/src/ui/components/ToolStatsDisplay.js.map +0 -1
  375. package/dist/src/ui/components/UpdateNotification.d.ts +0 -10
  376. package/dist/src/ui/components/UpdateNotification.js +0 -10
  377. package/dist/src/ui/components/UpdateNotification.js.map +0 -1
  378. package/dist/src/ui/components/messages/CompressionMessage.d.ts +0 -11
  379. package/dist/src/ui/components/messages/CompressionMessage.js +0 -16
  380. package/dist/src/ui/components/messages/CompressionMessage.js.map +0 -1
  381. package/dist/src/ui/components/messages/DiffRenderer.d.ts +0 -16
  382. package/dist/src/ui/components/messages/DiffRenderer.js +0 -222
  383. package/dist/src/ui/components/messages/DiffRenderer.js.map +0 -1
  384. package/dist/src/ui/components/messages/DiffRenderer.test.d.ts +0 -6
  385. package/dist/src/ui/components/messages/DiffRenderer.test.js +0 -239
  386. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +0 -1
  387. package/dist/src/ui/components/messages/ErrorMessage.d.ts +0 -11
  388. package/dist/src/ui/components/messages/ErrorMessage.js +0 -9
  389. package/dist/src/ui/components/messages/ErrorMessage.js.map +0 -1
  390. package/dist/src/ui/components/messages/GeminiMessage.d.ts +0 -14
  391. package/dist/src/ui/components/messages/GeminiMessage.js +0 -10
  392. package/dist/src/ui/components/messages/GeminiMessage.js.map +0 -1
  393. package/dist/src/ui/components/messages/GeminiMessageContent.d.ts +0 -14
  394. package/dist/src/ui/components/messages/GeminiMessageContent.js +0 -15
  395. package/dist/src/ui/components/messages/GeminiMessageContent.js.map +0 -1
  396. package/dist/src/ui/components/messages/InfoMessage.d.ts +0 -11
  397. package/dist/src/ui/components/messages/InfoMessage.js +0 -10
  398. package/dist/src/ui/components/messages/InfoMessage.js.map +0 -1
  399. package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +0 -15
  400. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +0 -145
  401. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +0 -1
  402. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.d.ts +0 -6
  403. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -37
  404. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +0 -1
  405. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +0 -18
  406. package/dist/src/ui/components/messages/ToolGroupMessage.js +0 -55
  407. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +0 -1
  408. package/dist/src/ui/components/messages/ToolMessage.d.ts +0 -15
  409. package/dist/src/ui/components/messages/ToolMessage.js +0 -111
  410. package/dist/src/ui/components/messages/ToolMessage.js.map +0 -1
  411. package/dist/src/ui/components/messages/ToolMessage.test.d.ts +0 -6
  412. package/dist/src/ui/components/messages/ToolMessage.test.js +0 -118
  413. package/dist/src/ui/components/messages/ToolMessage.test.js.map +0 -1
  414. package/dist/src/ui/components/messages/UserMessage.d.ts +0 -11
  415. package/dist/src/ui/components/messages/UserMessage.js +0 -12
  416. package/dist/src/ui/components/messages/UserMessage.js.map +0 -1
  417. package/dist/src/ui/components/messages/UserShellMessage.d.ts +0 -11
  418. package/dist/src/ui/components/messages/UserShellMessage.js +0 -9
  419. package/dist/src/ui/components/messages/UserShellMessage.js.map +0 -1
  420. package/dist/src/ui/components/shared/MaxSizedBox.d.ts +0 -61
  421. package/dist/src/ui/components/shared/MaxSizedBox.js +0 -451
  422. package/dist/src/ui/components/shared/MaxSizedBox.js.map +0 -1
  423. package/dist/src/ui/components/shared/MaxSizedBox.test.d.ts +0 -6
  424. package/dist/src/ui/components/shared/MaxSizedBox.test.js +0 -154
  425. package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +0 -1
  426. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +0 -46
  427. package/dist/src/ui/components/shared/RadioButtonSelect.js +0 -121
  428. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +0 -1
  429. package/dist/src/ui/components/shared/RadioButtonSelect.test.d.ts +0 -6
  430. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +0 -111
  431. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +0 -1
  432. package/dist/src/ui/components/shared/text-buffer.d.ts +0 -467
  433. package/dist/src/ui/components/shared/text-buffer.js +0 -1533
  434. package/dist/src/ui/components/shared/text-buffer.js.map +0 -1
  435. package/dist/src/ui/components/shared/vim-buffer-actions.d.ts +0 -72
  436. package/dist/src/ui/components/shared/vim-buffer-actions.js +0 -552
  437. package/dist/src/ui/components/shared/vim-buffer-actions.js.map +0 -1
  438. package/dist/src/ui/constants.d.ts +0 -9
  439. package/dist/src/ui/constants.js +0 -13
  440. package/dist/src/ui/constants.js.map +0 -1
  441. package/dist/src/ui/contexts/KeypressContext.d.ts +0 -30
  442. package/dist/src/ui/contexts/KeypressContext.js +0 -331
  443. package/dist/src/ui/contexts/KeypressContext.js.map +0 -1
  444. package/dist/src/ui/contexts/KeypressContext.test.d.ts +0 -6
  445. package/dist/src/ui/contexts/KeypressContext.test.js +0 -275
  446. package/dist/src/ui/contexts/KeypressContext.test.js.map +0 -1
  447. package/dist/src/ui/contexts/OverflowContext.d.ts +0 -19
  448. package/dist/src/ui/contexts/OverflowContext.js +0 -43
  449. package/dist/src/ui/contexts/OverflowContext.js.map +0 -1
  450. package/dist/src/ui/contexts/SessionContext.d.ts +0 -39
  451. package/dist/src/ui/contexts/SessionContext.js +0 -60
  452. package/dist/src/ui/contexts/SessionContext.js.map +0 -1
  453. package/dist/src/ui/contexts/SettingsContext.d.ts +0 -9
  454. package/dist/src/ui/contexts/SettingsContext.js +0 -15
  455. package/dist/src/ui/contexts/SettingsContext.js.map +0 -1
  456. package/dist/src/ui/contexts/StreamingContext.d.ts +0 -9
  457. package/dist/src/ui/contexts/StreamingContext.js +0 -15
  458. package/dist/src/ui/contexts/StreamingContext.js.map +0 -1
  459. package/dist/src/ui/contexts/VimModeContext.d.ts +0 -19
  460. package/dist/src/ui/contexts/VimModeContext.js +0 -48
  461. package/dist/src/ui/contexts/VimModeContext.js.map +0 -1
  462. package/dist/src/ui/editors/editorSettingsManager.d.ts +0 -19
  463. package/dist/src/ui/editors/editorSettingsManager.js +0 -47
  464. package/dist/src/ui/editors/editorSettingsManager.js.map +0 -1
  465. package/dist/src/ui/hooks/atCommandProcessor.d.ts +0 -31
  466. package/dist/src/ui/hooks/atCommandProcessor.js +0 -365
  467. package/dist/src/ui/hooks/atCommandProcessor.js.map +0 -1
  468. package/dist/src/ui/hooks/atCommandProcessor.test.d.ts +0 -6
  469. package/dist/src/ui/hooks/atCommandProcessor.test.js +0 -824
  470. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +0 -1
  471. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +0 -17
  472. package/dist/src/ui/hooks/shellCommandProcessor.js +0 -233
  473. package/dist/src/ui/hooks/shellCommandProcessor.js.map +0 -1
  474. package/dist/src/ui/hooks/shellCommandProcessor.test.d.ts +0 -6
  475. package/dist/src/ui/hooks/shellCommandProcessor.test.js +0 -328
  476. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +0 -1
  477. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +0 -28
  478. package/dist/src/ui/hooks/slashCommandProcessor.js +0 -459
  479. package/dist/src/ui/hooks/slashCommandProcessor.js.map +0 -1
  480. package/dist/src/ui/hooks/useAtCompletion.d.ts +0 -23
  481. package/dist/src/ui/hooks/useAtCompletion.js +0 -179
  482. package/dist/src/ui/hooks/useAtCompletion.js.map +0 -1
  483. package/dist/src/ui/hooks/useAuthCommand.d.ts +0 -14
  484. package/dist/src/ui/hooks/useAuthCommand.js +0 -100
  485. package/dist/src/ui/hooks/useAuthCommand.js.map +0 -1
  486. package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +0 -10
  487. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +0 -37
  488. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +0 -1
  489. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.d.ts +0 -6
  490. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +0 -190
  491. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +0 -1
  492. package/dist/src/ui/hooks/useBracketedPaste.d.ts +0 -12
  493. package/dist/src/ui/hooks/useBracketedPaste.js +0 -32
  494. package/dist/src/ui/hooks/useBracketedPaste.js.map +0 -1
  495. package/dist/src/ui/hooks/useCommandCompletion.d.ts +0 -29
  496. package/dist/src/ui/hooks/useCommandCompletion.js +0 -165
  497. package/dist/src/ui/hooks/useCommandCompletion.js.map +0 -1
  498. package/dist/src/ui/hooks/useCompletion.d.ts +0 -24
  499. package/dist/src/ui/hooks/useCompletion.js +0 -88
  500. package/dist/src/ui/hooks/useCompletion.js.map +0 -1
  501. package/dist/src/ui/hooks/useConsoleMessages.d.ts +0 -12
  502. package/dist/src/ui/hooks/useConsoleMessages.js +0 -76
  503. package/dist/src/ui/hooks/useConsoleMessages.js.map +0 -1
  504. package/dist/src/ui/hooks/useEditorSettings.d.ts +0 -16
  505. package/dist/src/ui/hooks/useEditorSettings.js +0 -43
  506. package/dist/src/ui/hooks/useEditorSettings.js.map +0 -1
  507. package/dist/src/ui/hooks/useEditorSettings.test.d.ts +0 -6
  508. package/dist/src/ui/hooks/useEditorSettings.test.js +0 -164
  509. package/dist/src/ui/hooks/useEditorSettings.test.js.map +0 -1
  510. package/dist/src/ui/hooks/useFocus.d.ts +0 -10
  511. package/dist/src/ui/hooks/useFocus.js +0 -41
  512. package/dist/src/ui/hooks/useFocus.js.map +0 -1
  513. package/dist/src/ui/hooks/useFolderTrust.d.ts +0 -12
  514. package/dist/src/ui/hooks/useFolderTrust.js +0 -55
  515. package/dist/src/ui/hooks/useFolderTrust.js.map +0 -1
  516. package/dist/src/ui/hooks/useGeminiStream.d.ts +0 -24
  517. package/dist/src/ui/hooks/useGeminiStream.js +0 -653
  518. package/dist/src/ui/hooks/useGeminiStream.js.map +0 -1
  519. package/dist/src/ui/hooks/useGitBranchName.d.ts +0 -6
  520. package/dist/src/ui/hooks/useGitBranchName.js +0 -61
  521. package/dist/src/ui/hooks/useGitBranchName.js.map +0 -1
  522. package/dist/src/ui/hooks/useGitBranchName.test.d.ts +0 -6
  523. package/dist/src/ui/hooks/useGitBranchName.test.js +0 -215
  524. package/dist/src/ui/hooks/useGitBranchName.test.js.map +0 -1
  525. package/dist/src/ui/hooks/useHistoryManager.d.ts +0 -22
  526. package/dist/src/ui/hooks/useHistoryManager.js +0 -72
  527. package/dist/src/ui/hooks/useHistoryManager.js.map +0 -1
  528. package/dist/src/ui/hooks/useHistoryManager.test.d.ts +0 -6
  529. package/dist/src/ui/hooks/useHistoryManager.test.js +0 -171
  530. package/dist/src/ui/hooks/useHistoryManager.test.js.map +0 -1
  531. package/dist/src/ui/hooks/useInputHistory.d.ts +0 -19
  532. package/dist/src/ui/hooks/useInputHistory.js +0 -84
  533. package/dist/src/ui/hooks/useInputHistory.js.map +0 -1
  534. package/dist/src/ui/hooks/useInputHistory.test.d.ts +0 -6
  535. package/dist/src/ui/hooks/useInputHistory.test.js +0 -207
  536. package/dist/src/ui/hooks/useInputHistory.test.js.map +0 -1
  537. package/dist/src/ui/hooks/useKeypress.d.ts +0 -17
  538. package/dist/src/ui/hooks/useKeypress.js +0 -27
  539. package/dist/src/ui/hooks/useKeypress.js.map +0 -1
  540. package/dist/src/ui/hooks/useKittyKeyboardProtocol.d.ts +0 -15
  541. package/dist/src/ui/hooks/useKittyKeyboardProtocol.js +0 -20
  542. package/dist/src/ui/hooks/useKittyKeyboardProtocol.js.map +0 -1
  543. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +0 -10
  544. package/dist/src/ui/hooks/useLoadingIndicator.js +0 -44
  545. package/dist/src/ui/hooks/useLoadingIndicator.js.map +0 -1
  546. package/dist/src/ui/hooks/useLoadingIndicator.test.d.ts +0 -6
  547. package/dist/src/ui/hooks/useLoadingIndicator.test.js +0 -91
  548. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +0 -1
  549. package/dist/src/ui/hooks/useLogger.d.ts +0 -10
  550. package/dist/src/ui/hooks/useLogger.js +0 -29
  551. package/dist/src/ui/hooks/useLogger.js.map +0 -1
  552. package/dist/src/ui/hooks/useMessageQueue.d.ts +0 -22
  553. package/dist/src/ui/hooks/useMessageQueue.js +0 -49
  554. package/dist/src/ui/hooks/useMessageQueue.js.map +0 -1
  555. package/dist/src/ui/hooks/useMessageQueue.test.d.ts +0 -6
  556. package/dist/src/ui/hooks/useMessageQueue.test.js +0 -158
  557. package/dist/src/ui/hooks/useMessageQueue.test.js.map +0 -1
  558. package/dist/src/ui/hooks/usePhraseCycler.d.ts +0 -14
  559. package/dist/src/ui/hooks/usePhraseCycler.js +0 -187
  560. package/dist/src/ui/hooks/usePhraseCycler.js.map +0 -1
  561. package/dist/src/ui/hooks/usePrivacySettings.d.ts +0 -16
  562. package/dist/src/ui/hooks/usePrivacySettings.js +0 -119
  563. package/dist/src/ui/hooks/usePrivacySettings.js.map +0 -1
  564. package/dist/src/ui/hooks/usePrivacySettings.test.d.ts +0 -6
  565. package/dist/src/ui/hooks/usePrivacySettings.test.js +0 -154
  566. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +0 -1
  567. package/dist/src/ui/hooks/useQwenAuth.d.ts +0 -20
  568. package/dist/src/ui/hooks/useQwenAuth.js +0 -78
  569. package/dist/src/ui/hooks/useQwenAuth.js.map +0 -1
  570. package/dist/src/ui/hooks/useQwenAuth.test.d.ts +0 -6
  571. package/dist/src/ui/hooks/useQwenAuth.test.js +0 -288
  572. package/dist/src/ui/hooks/useQwenAuth.test.js.map +0 -1
  573. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +0 -33
  574. package/dist/src/ui/hooks/useReactToolScheduler.js +0 -187
  575. package/dist/src/ui/hooks/useReactToolScheduler.js.map +0 -1
  576. package/dist/src/ui/hooks/useRefreshMemoryCommand.d.ts +0 -6
  577. package/dist/src/ui/hooks/useRefreshMemoryCommand.js +0 -7
  578. package/dist/src/ui/hooks/useRefreshMemoryCommand.js.map +0 -1
  579. package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +0 -19
  580. package/dist/src/ui/hooks/useReverseSearchCompletion.js +0 -56
  581. package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +0 -1
  582. package/dist/src/ui/hooks/useReverseSearchCompletion.test.d.ts +0 -6
  583. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +0 -163
  584. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +0 -1
  585. package/dist/src/ui/hooks/useSettingsCommand.d.ts +0 -10
  586. package/dist/src/ui/hooks/useSettingsCommand.js +0 -21
  587. package/dist/src/ui/hooks/useSettingsCommand.js.map +0 -1
  588. package/dist/src/ui/hooks/useShellHistory.d.ts +0 -13
  589. package/dist/src/ui/hooks/useShellHistory.js +0 -112
  590. package/dist/src/ui/hooks/useShellHistory.js.map +0 -1
  591. package/dist/src/ui/hooks/useShellHistory.test.d.ts +0 -6
  592. package/dist/src/ui/hooks/useShellHistory.test.js +0 -162
  593. package/dist/src/ui/hooks/useShellHistory.test.js.map +0 -1
  594. package/dist/src/ui/hooks/useShowMemoryCommand.d.ts +0 -9
  595. package/dist/src/ui/hooks/useShowMemoryCommand.js +0 -58
  596. package/dist/src/ui/hooks/useShowMemoryCommand.js.map +0 -1
  597. package/dist/src/ui/hooks/useSlashCompletion.d.ts +0 -20
  598. package/dist/src/ui/hooks/useSlashCompletion.js +0 -135
  599. package/dist/src/ui/hooks/useSlashCompletion.js.map +0 -1
  600. package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +0 -6
  601. package/dist/src/ui/hooks/useSlashCompletion.test.js +0 -272
  602. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +0 -1
  603. package/dist/src/ui/hooks/useStateAndRef.d.ts +0 -7
  604. package/dist/src/ui/hooks/useStateAndRef.js +0 -26
  605. package/dist/src/ui/hooks/useStateAndRef.js.map +0 -1
  606. package/dist/src/ui/hooks/useTerminalSize.d.ts +0 -9
  607. package/dist/src/ui/hooks/useTerminalSize.js +0 -27
  608. package/dist/src/ui/hooks/useTerminalSize.js.map +0 -1
  609. package/dist/src/ui/hooks/useThemeCommand.d.ts +0 -15
  610. package/dist/src/ui/hooks/useThemeCommand.js +0 -79
  611. package/dist/src/ui/hooks/useThemeCommand.js.map +0 -1
  612. package/dist/src/ui/hooks/useTimer.d.ts +0 -12
  613. package/dist/src/ui/hooks/useTimer.js +0 -58
  614. package/dist/src/ui/hooks/useTimer.js.map +0 -1
  615. package/dist/src/ui/hooks/useTimer.test.d.ts +0 -6
  616. package/dist/src/ui/hooks/useTimer.test.js +0 -90
  617. package/dist/src/ui/hooks/useTimer.test.js.map +0 -1
  618. package/dist/src/ui/hooks/useToolScheduler.test.d.ts +0 -6
  619. package/dist/src/ui/hooks/useToolScheduler.test.js +0 -845
  620. package/dist/src/ui/hooks/useToolScheduler.test.js.map +0 -1
  621. package/dist/src/ui/hooks/vim.d.ts +0 -28
  622. package/dist/src/ui/hooks/vim.js +0 -639
  623. package/dist/src/ui/hooks/vim.js.map +0 -1
  624. package/dist/src/ui/keyMatchers.d.ts +0 -26
  625. package/dist/src/ui/keyMatchers.js +0 -68
  626. package/dist/src/ui/keyMatchers.js.map +0 -1
  627. package/dist/src/ui/keyMatchers.test.d.ts +0 -6
  628. package/dist/src/ui/keyMatchers.test.js +0 -276
  629. package/dist/src/ui/keyMatchers.test.js.map +0 -1
  630. package/dist/src/ui/privacy/CloudFreePrivacyNotice.d.ts +0 -12
  631. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +0 -41
  632. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +0 -1
  633. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.d.ts +0 -10
  634. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js +0 -18
  635. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js.map +0 -1
  636. package/dist/src/ui/privacy/GeminiPrivacyNotice.d.ts +0 -10
  637. package/dist/src/ui/privacy/GeminiPrivacyNotice.js +0 -18
  638. package/dist/src/ui/privacy/GeminiPrivacyNotice.js.map +0 -1
  639. package/dist/src/ui/privacy/PrivacyNotice.d.ts +0 -12
  640. package/dist/src/ui/privacy/PrivacyNotice.js +0 -25
  641. package/dist/src/ui/privacy/PrivacyNotice.js.map +0 -1
  642. package/dist/src/ui/semantic-colors.d.ts +0 -7
  643. package/dist/src/ui/semantic-colors.js +0 -24
  644. package/dist/src/ui/semantic-colors.js.map +0 -1
  645. package/dist/src/ui/themes/ansi-light.d.ts +0 -7
  646. package/dist/src/ui/themes/ansi-light.js +0 -142
  647. package/dist/src/ui/themes/ansi-light.js.map +0 -1
  648. package/dist/src/ui/themes/ansi.d.ts +0 -7
  649. package/dist/src/ui/themes/ansi.js +0 -152
  650. package/dist/src/ui/themes/ansi.js.map +0 -1
  651. package/dist/src/ui/themes/atom-one-dark.d.ts +0 -7
  652. package/dist/src/ui/themes/atom-one-dark.js +0 -139
  653. package/dist/src/ui/themes/atom-one-dark.js.map +0 -1
  654. package/dist/src/ui/themes/ayu-light.d.ts +0 -7
  655. package/dist/src/ui/themes/ayu-light.js +0 -131
  656. package/dist/src/ui/themes/ayu-light.js.map +0 -1
  657. package/dist/src/ui/themes/ayu.d.ts +0 -7
  658. package/dist/src/ui/themes/ayu.js +0 -105
  659. package/dist/src/ui/themes/ayu.js.map +0 -1
  660. package/dist/src/ui/themes/color-utils.d.ts +0 -21
  661. package/dist/src/ui/themes/color-utils.js +0 -221
  662. package/dist/src/ui/themes/color-utils.js.map +0 -1
  663. package/dist/src/ui/themes/color-utils.test.d.ts +0 -6
  664. package/dist/src/ui/themes/color-utils.test.js +0 -197
  665. package/dist/src/ui/themes/color-utils.test.js.map +0 -1
  666. package/dist/src/ui/themes/default-light.d.ts +0 -7
  667. package/dist/src/ui/themes/default-light.js +0 -101
  668. package/dist/src/ui/themes/default-light.js.map +0 -1
  669. package/dist/src/ui/themes/default.d.ts +0 -7
  670. package/dist/src/ui/themes/default.js +0 -144
  671. package/dist/src/ui/themes/default.js.map +0 -1
  672. package/dist/src/ui/themes/dracula.d.ts +0 -7
  673. package/dist/src/ui/themes/dracula.js +0 -116
  674. package/dist/src/ui/themes/dracula.js.map +0 -1
  675. package/dist/src/ui/themes/fss-code-dark.d.ts +0 -7
  676. package/dist/src/ui/themes/fss-code-dark.js +0 -148
  677. package/dist/src/ui/themes/fss-code-dark.js.map +0 -1
  678. package/dist/src/ui/themes/fss-dark.d.ts +0 -7
  679. package/dist/src/ui/themes/fss-dark.js +0 -105
  680. package/dist/src/ui/themes/fss-dark.js.map +0 -1
  681. package/dist/src/ui/themes/fss-light.d.ts +0 -7
  682. package/dist/src/ui/themes/fss-light.js +0 -131
  683. package/dist/src/ui/themes/fss-light.js.map +0 -1
  684. package/dist/src/ui/themes/github-dark.d.ts +0 -7
  685. package/dist/src/ui/themes/github-dark.js +0 -139
  686. package/dist/src/ui/themes/github-dark.js.map +0 -1
  687. package/dist/src/ui/themes/github-light.d.ts +0 -7
  688. package/dist/src/ui/themes/github-light.js +0 -141
  689. package/dist/src/ui/themes/github-light.js.map +0 -1
  690. package/dist/src/ui/themes/googlecode.d.ts +0 -7
  691. package/dist/src/ui/themes/googlecode.js +0 -138
  692. package/dist/src/ui/themes/googlecode.js.map +0 -1
  693. package/dist/src/ui/themes/no-color.d.ts +0 -7
  694. package/dist/src/ui/themes/no-color.js +0 -115
  695. package/dist/src/ui/themes/no-color.js.map +0 -1
  696. package/dist/src/ui/themes/qwen-dark.d.ts +0 -7
  697. package/dist/src/ui/themes/qwen-dark.js +0 -105
  698. package/dist/src/ui/themes/qwen-dark.js.map +0 -1
  699. package/dist/src/ui/themes/qwen-light.d.ts +0 -7
  700. package/dist/src/ui/themes/qwen-light.js +0 -131
  701. package/dist/src/ui/themes/qwen-light.js.map +0 -1
  702. package/dist/src/ui/themes/semantic-tokens.d.ts +0 -37
  703. package/dist/src/ui/themes/semantic-tokens.js +0 -94
  704. package/dist/src/ui/themes/semantic-tokens.js.map +0 -1
  705. package/dist/src/ui/themes/shades-of-purple.d.ts +0 -11
  706. package/dist/src/ui/themes/shades-of-purple.js +0 -305
  707. package/dist/src/ui/themes/shades-of-purple.js.map +0 -1
  708. package/dist/src/ui/themes/theme-manager.d.ts +0 -64
  709. package/dist/src/ui/themes/theme-manager.js +0 -209
  710. package/dist/src/ui/themes/theme-manager.js.map +0 -1
  711. package/dist/src/ui/themes/theme-manager.test.d.ts +0 -6
  712. package/dist/src/ui/themes/theme-manager.test.js +0 -83
  713. package/dist/src/ui/themes/theme-manager.test.js.map +0 -1
  714. package/dist/src/ui/themes/theme.d.ts +0 -130
  715. package/dist/src/ui/themes/theme.js +0 -351
  716. package/dist/src/ui/themes/theme.js.map +0 -1
  717. package/dist/src/ui/themes/xcode.d.ts +0 -7
  718. package/dist/src/ui/themes/xcode.js +0 -146
  719. package/dist/src/ui/themes/xcode.js.map +0 -1
  720. package/dist/src/ui/types.d.ts +0 -191
  721. package/dist/src/ui/types.js +0 -44
  722. package/dist/src/ui/types.js.map +0 -1
  723. package/dist/src/ui/utils/CodeColorizer.d.ts +0 -17
  724. package/dist/src/ui/utils/CodeColorizer.js +0 -110
  725. package/dist/src/ui/utils/CodeColorizer.js.map +0 -1
  726. package/dist/src/ui/utils/ConsolePatcher.d.ts +0 -25
  727. package/dist/src/ui/utils/ConsolePatcher.js +0 -52
  728. package/dist/src/ui/utils/ConsolePatcher.js.map +0 -1
  729. package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +0 -16
  730. package/dist/src/ui/utils/InlineMarkdownRenderer.js +0 -111
  731. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +0 -1
  732. package/dist/src/ui/utils/MarkdownDisplay.d.ts +0 -14
  733. package/dist/src/ui/utils/MarkdownDisplay.js +0 -207
  734. package/dist/src/ui/utils/MarkdownDisplay.js.map +0 -1
  735. package/dist/src/ui/utils/MarkdownDisplay.test.d.ts +0 -6
  736. package/dist/src/ui/utils/MarkdownDisplay.test.js +0 -151
  737. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +0 -1
  738. package/dist/src/ui/utils/TableRenderer.d.ts +0 -17
  739. package/dist/src/ui/utils/TableRenderer.js +0 -84
  740. package/dist/src/ui/utils/TableRenderer.js.map +0 -1
  741. package/dist/src/ui/utils/clipboardUtils.d.ts +0 -22
  742. package/dist/src/ui/utils/clipboardUtils.js +0 -127
  743. package/dist/src/ui/utils/clipboardUtils.js.map +0 -1
  744. package/dist/src/ui/utils/clipboardUtils.test.d.ts +0 -6
  745. package/dist/src/ui/utils/clipboardUtils.test.js +0 -65
  746. package/dist/src/ui/utils/clipboardUtils.test.js.map +0 -1
  747. package/dist/src/ui/utils/commandUtils.d.ts +0 -24
  748. package/dist/src/ui/utils/commandUtils.js +0 -93
  749. package/dist/src/ui/utils/commandUtils.js.map +0 -1
  750. package/dist/src/ui/utils/commandUtils.test.d.ts +0 -6
  751. package/dist/src/ui/utils/commandUtils.test.js +0 -294
  752. package/dist/src/ui/utils/commandUtils.test.js.map +0 -1
  753. package/dist/src/ui/utils/computeStats.d.ts +0 -10
  754. package/dist/src/ui/utils/computeStats.js +0 -57
  755. package/dist/src/ui/utils/computeStats.js.map +0 -1
  756. package/dist/src/ui/utils/displayUtils.d.ts +0 -17
  757. package/dist/src/ui/utils/displayUtils.js +0 -24
  758. package/dist/src/ui/utils/displayUtils.js.map +0 -1
  759. package/dist/src/ui/utils/displayUtils.test.d.ts +0 -6
  760. package/dist/src/ui/utils/displayUtils.test.js +0 -42
  761. package/dist/src/ui/utils/displayUtils.test.js.map +0 -1
  762. package/dist/src/ui/utils/formatters.d.ts +0 -13
  763. package/dist/src/ui/utils/formatters.js +0 -56
  764. package/dist/src/ui/utils/formatters.js.map +0 -1
  765. package/dist/src/ui/utils/formatters.test.d.ts +0 -6
  766. package/dist/src/ui/utils/formatters.test.js +0 -56
  767. package/dist/src/ui/utils/formatters.test.js.map +0 -1
  768. package/dist/src/ui/utils/isNarrowWidth.d.ts +0 -6
  769. package/dist/src/ui/utils/isNarrowWidth.js +0 -9
  770. package/dist/src/ui/utils/isNarrowWidth.js.map +0 -1
  771. package/dist/src/ui/utils/kittyProtocolDetector.d.ts +0 -13
  772. package/dist/src/ui/utils/kittyProtocolDetector.js +0 -88
  773. package/dist/src/ui/utils/kittyProtocolDetector.js.map +0 -1
  774. package/dist/src/ui/utils/markdownUtilities.d.ts +0 -6
  775. package/dist/src/ui/utils/markdownUtilities.js +0 -110
  776. package/dist/src/ui/utils/markdownUtilities.js.map +0 -1
  777. package/dist/src/ui/utils/markdownUtilities.test.d.ts +0 -6
  778. package/dist/src/ui/utils/markdownUtilities.test.js +0 -42
  779. package/dist/src/ui/utils/markdownUtilities.test.js.map +0 -1
  780. package/dist/src/ui/utils/platformConstants.d.ts +0 -45
  781. package/dist/src/ui/utils/platformConstants.js +0 -46
  782. package/dist/src/ui/utils/platformConstants.js.map +0 -1
  783. package/dist/src/ui/utils/terminalSetup.d.ts +0 -30
  784. package/dist/src/ui/utils/terminalSetup.js +0 -281
  785. package/dist/src/ui/utils/terminalSetup.js.map +0 -1
  786. package/dist/src/ui/utils/textUtils.d.ts +0 -14
  787. package/dist/src/ui/utils/textUtils.js +0 -36
  788. package/dist/src/ui/utils/textUtils.js.map +0 -1
  789. package/dist/src/ui/utils/updateCheck.d.ts +0 -12
  790. package/dist/src/ui/utils/updateCheck.js +0 -78
  791. package/dist/src/ui/utils/updateCheck.js.map +0 -1
  792. package/dist/src/ui/utils/updateCheck.test.d.ts +0 -6
  793. package/dist/src/ui/utils/updateCheck.test.js +0 -145
  794. package/dist/src/ui/utils/updateCheck.test.js.map +0 -1
  795. package/dist/src/utils/checks.d.ts +0 -19
  796. package/dist/src/utils/checks.js +0 -24
  797. package/dist/src/utils/checks.js.map +0 -1
  798. package/dist/src/utils/cleanup.d.ts +0 -8
  799. package/dist/src/utils/cleanup.js +0 -34
  800. package/dist/src/utils/cleanup.js.map +0 -1
  801. package/dist/src/utils/dialogScopeUtils.d.ts +0 -31
  802. package/dist/src/utils/dialogScopeUtils.js +0 -48
  803. package/dist/src/utils/dialogScopeUtils.js.map +0 -1
  804. package/dist/src/utils/events.d.ts +0 -11
  805. package/dist/src/utils/events.js +0 -13
  806. package/dist/src/utils/events.js.map +0 -1
  807. package/dist/src/utils/gitUtils.d.ts +0 -30
  808. package/dist/src/utils/gitUtils.js +0 -89
  809. package/dist/src/utils/gitUtils.js.map +0 -1
  810. package/dist/src/utils/gitUtils.test.d.ts +0 -6
  811. package/dist/src/utils/gitUtils.test.js +0 -113
  812. package/dist/src/utils/gitUtils.test.js.map +0 -1
  813. package/dist/src/utils/handleAutoUpdate.d.ts +0 -11
  814. package/dist/src/utils/handleAutoUpdate.js +0 -101
  815. package/dist/src/utils/handleAutoUpdate.js.map +0 -1
  816. package/dist/src/utils/installationInfo.d.ts +0 -23
  817. package/dist/src/utils/installationInfo.js +0 -153
  818. package/dist/src/utils/installationInfo.js.map +0 -1
  819. package/dist/src/utils/installationInfo.test.d.ts +0 -6
  820. package/dist/src/utils/installationInfo.test.js +0 -242
  821. package/dist/src/utils/installationInfo.test.js.map +0 -1
  822. package/dist/src/utils/package.d.ts +0 -12
  823. package/dist/src/utils/package.js +0 -24
  824. package/dist/src/utils/package.js.map +0 -1
  825. package/dist/src/utils/readStdin.d.ts +0 -6
  826. package/dist/src/utils/readStdin.js +0 -44
  827. package/dist/src/utils/readStdin.js.map +0 -1
  828. package/dist/src/utils/resolvePath.d.ts +0 -6
  829. package/dist/src/utils/resolvePath.js +0 -21
  830. package/dist/src/utils/resolvePath.js.map +0 -1
  831. package/dist/src/utils/sandbox.d.ts +0 -7
  832. package/dist/src/utils/sandbox.js +0 -745
  833. package/dist/src/utils/sandbox.js.map +0 -1
  834. package/dist/src/utils/settingsUtils.d.ts +0 -134
  835. package/dist/src/utils/settingsUtils.js +0 -336
  836. package/dist/src/utils/settingsUtils.js.map +0 -1
  837. package/dist/src/utils/settingsUtils.test.d.ts +0 -6
  838. package/dist/src/utils/settingsUtils.test.js +0 -514
  839. package/dist/src/utils/settingsUtils.test.js.map +0 -1
  840. package/dist/src/utils/spawnWrapper.d.ts +0 -7
  841. package/dist/src/utils/spawnWrapper.js +0 -8
  842. package/dist/src/utils/spawnWrapper.js.map +0 -1
  843. package/dist/src/utils/startupWarnings.d.ts +0 -6
  844. package/dist/src/utils/startupWarnings.js +0 -40
  845. package/dist/src/utils/startupWarnings.js.map +0 -1
  846. package/dist/src/utils/updateEventEmitter.d.ts +0 -11
  847. package/dist/src/utils/updateEventEmitter.js +0 -12
  848. package/dist/src/utils/updateEventEmitter.js.map +0 -1
  849. package/dist/src/utils/userStartupWarnings.d.ts +0 -6
  850. package/dist/src/utils/userStartupWarnings.js +0 -54
  851. package/dist/src/utils/userStartupWarnings.js.map +0 -1
  852. package/dist/src/utils/userStartupWarnings.test.d.ts +0 -6
  853. package/dist/src/utils/userStartupWarnings.test.js +0 -67
  854. package/dist/src/utils/userStartupWarnings.test.js.map +0 -1
  855. package/dist/src/utils/version.d.ts +0 -6
  856. package/dist/src/utils/version.js +0 -11
  857. package/dist/src/utils/version.js.map +0 -1
  858. package/dist/src/validateNonInterActiveAuth.d.ts +0 -7
  859. package/dist/src/validateNonInterActiveAuth.js +0 -40
  860. package/dist/src/validateNonInterActiveAuth.js.map +0 -1
  861. package/dist/src/zed-integration/acp.d.ts +0 -63
  862. package/dist/src/zed-integration/acp.js +0 -225
  863. package/dist/src/zed-integration/acp.js.map +0 -1
  864. package/dist/src/zed-integration/fileSystemService.d.ts +0 -19
  865. package/dist/src/zed-integration/fileSystemService.js +0 -43
  866. package/dist/src/zed-integration/fileSystemService.js.map +0 -1
  867. package/dist/src/zed-integration/schema.d.ts +0 -11782
  868. package/dist/src/zed-integration/schema.js +0 -311
  869. package/dist/src/zed-integration/schema.js.map +0 -1
  870. package/dist/src/zed-integration/zedIntegration.d.ts +0 -10
  871. package/dist/src/zed-integration/zedIntegration.js +0 -765
  872. package/dist/src/zed-integration/zedIntegration.js.map +0 -1
  873. package/dist/tsconfig.tsbuildinfo +0 -1
  874. /package/{dist/src/utils → bundle}/sandbox-macos-permissive-closed.sb +0 -0
  875. /package/{dist/src/utils → bundle}/sandbox-macos-permissive-open.sb +0 -0
  876. /package/{dist/src/utils → bundle}/sandbox-macos-permissive-proxied.sb +0 -0
  877. /package/{dist/src/utils → bundle}/sandbox-macos-restrictive-closed.sb +0 -0
  878. /package/{dist/src/utils → bundle}/sandbox-macos-restrictive-open.sb +0 -0
  879. /package/{dist/src/utils → bundle}/sandbox-macos-restrictive-proxied.sb +0 -0
@@ -1,824 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
- import { handleAtCommand } from './atCommandProcessor.js';
8
- import { FileDiscoveryService, GlobTool, ReadManyFilesTool, StandardFileSystemService, ToolRegistry, } from '@fsscoding/fss-link-core';
9
- import * as os from 'os';
10
- import { ToolCallStatus } from '../types.js';
11
- import * as fsPromises from 'fs/promises';
12
- import * as path from 'path';
13
- describe('handleAtCommand', () => {
14
- let testRootDir;
15
- let mockConfig;
16
- const mockAddItem = vi.fn();
17
- const mockOnDebugMessage = vi.fn();
18
- let abortController;
19
- async function createTestFile(fullPath, fileContents) {
20
- await fsPromises.mkdir(path.dirname(fullPath), { recursive: true });
21
- await fsPromises.writeFile(fullPath, fileContents);
22
- return path.resolve(testRootDir, fullPath);
23
- }
24
- beforeEach(async () => {
25
- vi.resetAllMocks();
26
- testRootDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), 'folder-structure-test-'));
27
- abortController = new AbortController();
28
- const getToolRegistry = vi.fn();
29
- mockConfig = {
30
- getToolRegistry,
31
- getTargetDir: () => testRootDir,
32
- isSandboxed: () => false,
33
- getFileService: () => new FileDiscoveryService(testRootDir),
34
- getFileFilteringRespectGitIgnore: () => true,
35
- getFileFilteringRespectGeminiIgnore: () => true,
36
- getFileFilteringOptions: () => ({
37
- respectGitIgnore: true,
38
- respectFssLinkIgnore: true,
39
- }),
40
- getFileSystemService: () => new StandardFileSystemService(),
41
- getEnableRecursiveFileSearch: vi.fn(() => true),
42
- getWorkspaceContext: () => ({
43
- isPathWithinWorkspace: () => true,
44
- getDirectories: () => [testRootDir],
45
- }),
46
- getMcpServers: () => ({}),
47
- getMcpServerCommand: () => undefined,
48
- getPromptRegistry: () => ({
49
- getPromptsByServer: () => [],
50
- }),
51
- getDebugMode: () => false,
52
- };
53
- const registry = new ToolRegistry(mockConfig);
54
- registry.registerTool(new ReadManyFilesTool(mockConfig));
55
- registry.registerTool(new GlobTool(mockConfig));
56
- getToolRegistry.mockReturnValue(registry);
57
- });
58
- afterEach(async () => {
59
- abortController.abort();
60
- await fsPromises.rm(testRootDir, { recursive: true, force: true });
61
- });
62
- it('should pass through query if no @ command is present', async () => {
63
- const query = 'regular user query';
64
- const result = await handleAtCommand({
65
- query,
66
- config: mockConfig,
67
- addItem: mockAddItem,
68
- onDebugMessage: mockOnDebugMessage,
69
- messageId: 123,
70
- signal: abortController.signal,
71
- });
72
- expect(result).toEqual({
73
- processedQuery: [{ text: query }],
74
- shouldProceed: true,
75
- });
76
- });
77
- it('should pass through original query if only a lone @ symbol is present', async () => {
78
- const queryWithSpaces = ' @ ';
79
- const result = await handleAtCommand({
80
- query: queryWithSpaces,
81
- config: mockConfig,
82
- addItem: mockAddItem,
83
- onDebugMessage: mockOnDebugMessage,
84
- messageId: 124,
85
- signal: abortController.signal,
86
- });
87
- expect(result).toEqual({
88
- processedQuery: [{ text: queryWithSpaces }],
89
- shouldProceed: true,
90
- });
91
- expect(mockOnDebugMessage).toHaveBeenCalledWith('Lone @ detected, will be treated as text in the modified query.');
92
- });
93
- it('should process a valid text file path', async () => {
94
- const fileContent = 'This is the file content.';
95
- const filePath = await createTestFile(path.join(testRootDir, 'path', 'to', 'file.txt'), fileContent);
96
- const query = `@${filePath}`;
97
- const result = await handleAtCommand({
98
- query,
99
- config: mockConfig,
100
- addItem: mockAddItem,
101
- onDebugMessage: mockOnDebugMessage,
102
- messageId: 125,
103
- signal: abortController.signal,
104
- });
105
- expect(result).toEqual({
106
- processedQuery: [
107
- { text: `@${filePath}` },
108
- { text: '\n--- Content from referenced files ---' },
109
- { text: `\nContent from @${filePath}:\n` },
110
- { text: fileContent },
111
- { text: '\n--- End of content ---' },
112
- ],
113
- shouldProceed: true,
114
- });
115
- expect(mockAddItem).toHaveBeenCalledWith(expect.objectContaining({
116
- type: 'tool_group',
117
- tools: [expect.objectContaining({ status: ToolCallStatus.Success })],
118
- }), 125);
119
- });
120
- it('should process a valid directory path and convert to glob', async () => {
121
- const fileContent = 'This is the file content.';
122
- const filePath = await createTestFile(path.join(testRootDir, 'path', 'to', 'file.txt'), fileContent);
123
- const dirPath = path.dirname(filePath);
124
- const query = `@${dirPath}`;
125
- const resolvedGlob = `${dirPath}/**`;
126
- const result = await handleAtCommand({
127
- query,
128
- config: mockConfig,
129
- addItem: mockAddItem,
130
- onDebugMessage: mockOnDebugMessage,
131
- messageId: 126,
132
- signal: abortController.signal,
133
- });
134
- expect(result).toEqual({
135
- processedQuery: [
136
- { text: `@${resolvedGlob}` },
137
- { text: '\n--- Content from referenced files ---' },
138
- { text: `\nContent from @${filePath}:\n` },
139
- { text: fileContent },
140
- { text: '\n--- End of content ---' },
141
- ],
142
- shouldProceed: true,
143
- });
144
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${dirPath} resolved to directory, using glob: ${resolvedGlob}`);
145
- });
146
- it('should handle query with text before and after @command', async () => {
147
- const fileContent = 'Markdown content.';
148
- const filePath = await createTestFile(path.join(testRootDir, 'doc.md'), fileContent);
149
- const textBefore = 'Explain this: ';
150
- const textAfter = ' in detail.';
151
- const query = `${textBefore}@${filePath}${textAfter}`;
152
- const result = await handleAtCommand({
153
- query,
154
- config: mockConfig,
155
- addItem: mockAddItem,
156
- onDebugMessage: mockOnDebugMessage,
157
- messageId: 128,
158
- signal: abortController.signal,
159
- });
160
- expect(result).toEqual({
161
- processedQuery: [
162
- { text: `${textBefore}@${filePath}${textAfter}` },
163
- { text: '\n--- Content from referenced files ---' },
164
- { text: `\nContent from @${filePath}:\n` },
165
- { text: fileContent },
166
- { text: '\n--- End of content ---' },
167
- ],
168
- shouldProceed: true,
169
- });
170
- });
171
- it('should correctly unescape paths with escaped spaces', async () => {
172
- const fileContent = 'This is the file content.';
173
- const filePath = await createTestFile(path.join(testRootDir, 'path', 'to', 'my file.txt'), fileContent);
174
- const escapedpath = path.join(testRootDir, 'path', 'to', 'my\\ file.txt');
175
- const query = `@${escapedpath}`;
176
- const result = await handleAtCommand({
177
- query,
178
- config: mockConfig,
179
- addItem: mockAddItem,
180
- onDebugMessage: mockOnDebugMessage,
181
- messageId: 125,
182
- signal: abortController.signal,
183
- });
184
- expect(result).toEqual({
185
- processedQuery: [
186
- { text: `@${filePath}` },
187
- { text: '\n--- Content from referenced files ---' },
188
- { text: `\nContent from @${filePath}:\n` },
189
- { text: fileContent },
190
- { text: '\n--- End of content ---' },
191
- ],
192
- shouldProceed: true,
193
- });
194
- expect(mockAddItem).toHaveBeenCalledWith(expect.objectContaining({
195
- type: 'tool_group',
196
- tools: [expect.objectContaining({ status: ToolCallStatus.Success })],
197
- }), 125);
198
- });
199
- it('should handle multiple @file references', async () => {
200
- const content1 = 'Content file1';
201
- const file1Path = await createTestFile(path.join(testRootDir, 'file1.txt'), content1);
202
- const content2 = 'Content file2';
203
- const file2Path = await createTestFile(path.join(testRootDir, 'file2.md'), content2);
204
- const query = `@${file1Path} @${file2Path}`;
205
- const result = await handleAtCommand({
206
- query,
207
- config: mockConfig,
208
- addItem: mockAddItem,
209
- onDebugMessage: mockOnDebugMessage,
210
- messageId: 130,
211
- signal: abortController.signal,
212
- });
213
- expect(result).toEqual({
214
- processedQuery: [
215
- { text: query },
216
- { text: '\n--- Content from referenced files ---' },
217
- { text: `\nContent from @${file1Path}:\n` },
218
- { text: content1 },
219
- { text: `\nContent from @${file2Path}:\n` },
220
- { text: content2 },
221
- { text: '\n--- End of content ---' },
222
- ],
223
- shouldProceed: true,
224
- });
225
- });
226
- it('should handle multiple @file references with interleaved text', async () => {
227
- const text1 = 'Check ';
228
- const content1 = 'C1';
229
- const file1Path = await createTestFile(path.join(testRootDir, 'f1.txt'), content1);
230
- const text2 = ' and ';
231
- const content2 = 'C2';
232
- const file2Path = await createTestFile(path.join(testRootDir, 'f2.md'), content2);
233
- const text3 = ' please.';
234
- const query = `${text1}@${file1Path}${text2}@${file2Path}${text3}`;
235
- const result = await handleAtCommand({
236
- query,
237
- config: mockConfig,
238
- addItem: mockAddItem,
239
- onDebugMessage: mockOnDebugMessage,
240
- messageId: 131,
241
- signal: abortController.signal,
242
- });
243
- expect(result).toEqual({
244
- processedQuery: [
245
- { text: query },
246
- { text: '\n--- Content from referenced files ---' },
247
- { text: `\nContent from @${file1Path}:\n` },
248
- { text: content1 },
249
- { text: `\nContent from @${file2Path}:\n` },
250
- { text: content2 },
251
- { text: '\n--- End of content ---' },
252
- ],
253
- shouldProceed: true,
254
- });
255
- });
256
- it('should handle a mix of valid, invalid, and lone @ references', async () => {
257
- const content1 = 'Valid content 1';
258
- const file1Path = await createTestFile(path.join(testRootDir, 'valid1.txt'), content1);
259
- const invalidFile = 'nonexistent.txt';
260
- const content2 = 'Globbed content';
261
- const file2Path = await createTestFile(path.join(testRootDir, 'resolved', 'valid2.actual'), content2);
262
- const query = `Look at @${file1Path} then @${invalidFile} and also just @ symbol, then @${file2Path}`;
263
- const result = await handleAtCommand({
264
- query,
265
- config: mockConfig,
266
- addItem: mockAddItem,
267
- onDebugMessage: mockOnDebugMessage,
268
- messageId: 132,
269
- signal: abortController.signal,
270
- });
271
- expect(result).toEqual({
272
- processedQuery: [
273
- {
274
- text: `Look at @${file1Path} then @${invalidFile} and also just @ symbol, then @${file2Path}`,
275
- },
276
- { text: '\n--- Content from referenced files ---' },
277
- { text: `\nContent from @${file2Path}:\n` },
278
- { text: content2 },
279
- { text: `\nContent from @${file1Path}:\n` },
280
- { text: content1 },
281
- { text: '\n--- End of content ---' },
282
- ],
283
- shouldProceed: true,
284
- });
285
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${invalidFile} not found directly, attempting glob search.`);
286
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Glob search for '**/*${invalidFile}*' found no files or an error. Path ${invalidFile} will be skipped.`);
287
- expect(mockOnDebugMessage).toHaveBeenCalledWith('Lone @ detected, will be treated as text in the modified query.');
288
- });
289
- it('should return original query if all @paths are invalid or lone @', async () => {
290
- const query = 'Check @nonexistent.txt and @ also';
291
- const result = await handleAtCommand({
292
- query,
293
- config: mockConfig,
294
- addItem: mockAddItem,
295
- onDebugMessage: mockOnDebugMessage,
296
- messageId: 133,
297
- signal: abortController.signal,
298
- });
299
- expect(result).toEqual({
300
- processedQuery: [{ text: 'Check @nonexistent.txt and @ also' }],
301
- shouldProceed: true,
302
- });
303
- });
304
- describe('git-aware filtering', () => {
305
- beforeEach(async () => {
306
- await fsPromises.mkdir(path.join(testRootDir, '.git'), {
307
- recursive: true,
308
- });
309
- });
310
- it('should skip git-ignored files in @ commands', async () => {
311
- await createTestFile(path.join(testRootDir, '.gitignore'), 'node_modules/package.json');
312
- const gitIgnoredFile = await createTestFile(path.join(testRootDir, 'node_modules', 'package.json'), 'the file contents');
313
- const query = `@${gitIgnoredFile}`;
314
- const result = await handleAtCommand({
315
- query,
316
- config: mockConfig,
317
- addItem: mockAddItem,
318
- onDebugMessage: mockOnDebugMessage,
319
- messageId: 200,
320
- signal: abortController.signal,
321
- });
322
- expect(result).toEqual({
323
- processedQuery: [{ text: query }],
324
- shouldProceed: true,
325
- });
326
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${gitIgnoredFile} is git-ignored and will be skipped.`);
327
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Ignored 1 files:\nGit-ignored: ${gitIgnoredFile}`);
328
- });
329
- it('should process non-git-ignored files normally', async () => {
330
- await createTestFile(path.join(testRootDir, '.gitignore'), 'node_modules/package.json');
331
- const validFile = await createTestFile(path.join(testRootDir, 'src', 'index.ts'), 'console.log("Hello world");');
332
- const query = `@${validFile}`;
333
- const result = await handleAtCommand({
334
- query,
335
- config: mockConfig,
336
- addItem: mockAddItem,
337
- onDebugMessage: mockOnDebugMessage,
338
- messageId: 201,
339
- signal: abortController.signal,
340
- });
341
- expect(result).toEqual({
342
- processedQuery: [
343
- { text: `@${validFile}` },
344
- { text: '\n--- Content from referenced files ---' },
345
- { text: `\nContent from @${validFile}:\n` },
346
- { text: 'console.log("Hello world");' },
347
- { text: '\n--- End of content ---' },
348
- ],
349
- shouldProceed: true,
350
- });
351
- });
352
- it('should handle mixed git-ignored and valid files', async () => {
353
- await createTestFile(path.join(testRootDir, '.gitignore'), '.env');
354
- const validFile = await createTestFile(path.join(testRootDir, 'README.md'), '# Project README');
355
- const gitIgnoredFile = await createTestFile(path.join(testRootDir, '.env'), 'SECRET=123');
356
- const query = `@${validFile} @${gitIgnoredFile}`;
357
- const result = await handleAtCommand({
358
- query,
359
- config: mockConfig,
360
- addItem: mockAddItem,
361
- onDebugMessage: mockOnDebugMessage,
362
- messageId: 202,
363
- signal: abortController.signal,
364
- });
365
- expect(result).toEqual({
366
- processedQuery: [
367
- { text: `@${validFile} @${gitIgnoredFile}` },
368
- { text: '\n--- Content from referenced files ---' },
369
- { text: `\nContent from @${validFile}:\n` },
370
- { text: '# Project README' },
371
- { text: '\n--- End of content ---' },
372
- ],
373
- shouldProceed: true,
374
- });
375
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${gitIgnoredFile} is git-ignored and will be skipped.`);
376
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Ignored 1 files:\nGit-ignored: ${gitIgnoredFile}`);
377
- });
378
- it('should always ignore .git directory files', async () => {
379
- const gitFile = await createTestFile(path.join(testRootDir, '.git', 'config'), '[core]\n\trepositoryformatversion = 0\n');
380
- const query = `@${gitFile}`;
381
- const result = await handleAtCommand({
382
- query,
383
- config: mockConfig,
384
- addItem: mockAddItem,
385
- onDebugMessage: mockOnDebugMessage,
386
- messageId: 203,
387
- signal: abortController.signal,
388
- });
389
- expect(result).toEqual({
390
- processedQuery: [{ text: query }],
391
- shouldProceed: true,
392
- });
393
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${gitFile} is git-ignored and will be skipped.`);
394
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Ignored 1 files:\nGit-ignored: ${gitFile}`);
395
- });
396
- });
397
- describe('when recursive file search is disabled', () => {
398
- beforeEach(() => {
399
- vi.mocked(mockConfig.getEnableRecursiveFileSearch).mockReturnValue(false);
400
- });
401
- it('should not use glob search for a nonexistent file', async () => {
402
- const invalidFile = 'nonexistent.txt';
403
- const query = `@${invalidFile}`;
404
- const result = await handleAtCommand({
405
- query,
406
- config: mockConfig,
407
- addItem: mockAddItem,
408
- onDebugMessage: mockOnDebugMessage,
409
- messageId: 300,
410
- signal: abortController.signal,
411
- });
412
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Glob tool not found. Path ${invalidFile} will be skipped.`);
413
- expect(result.processedQuery).toEqual([{ text: query }]);
414
- expect(result.shouldProceed).toBe(true);
415
- });
416
- });
417
- describe('fss-link-ignore filtering', () => {
418
- it('should skip fss-link-ignored files in @ commands', async () => {
419
- await createTestFile(path.join(testRootDir, '.fss-linkignore'), 'build/output.js');
420
- const fssLinkIgnoredFile = await createTestFile(path.join(testRootDir, 'build', 'output.js'), 'console.log("Hello");');
421
- const query = `@${fssLinkIgnoredFile}`;
422
- const result = await handleAtCommand({
423
- query,
424
- config: mockConfig,
425
- addItem: mockAddItem,
426
- onDebugMessage: mockOnDebugMessage,
427
- messageId: 204,
428
- signal: abortController.signal,
429
- });
430
- expect(result).toEqual({
431
- processedQuery: [{ text: query }],
432
- shouldProceed: true,
433
- });
434
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${fssLinkIgnoredFile} is fss-link-ignored and will be skipped.`);
435
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Ignored 1 files:\nFss-Link-ignored: ${fssLinkIgnoredFile}`);
436
- });
437
- });
438
- it('should process non-ignored files when .fss-linkignore is present', async () => {
439
- await createTestFile(path.join(testRootDir, '.geminiignore'), 'build/output.js');
440
- const validFile = await createTestFile(path.join(testRootDir, 'src', 'index.ts'), 'console.log("Hello world");');
441
- const query = `@${validFile}`;
442
- const result = await handleAtCommand({
443
- query,
444
- config: mockConfig,
445
- addItem: mockAddItem,
446
- onDebugMessage: mockOnDebugMessage,
447
- messageId: 205,
448
- signal: abortController.signal,
449
- });
450
- expect(result).toEqual({
451
- processedQuery: [
452
- { text: `@${validFile}` },
453
- { text: '\n--- Content from referenced files ---' },
454
- { text: `\nContent from @${validFile}:\n` },
455
- { text: 'console.log("Hello world");' },
456
- { text: '\n--- End of content ---' },
457
- ],
458
- shouldProceed: true,
459
- });
460
- });
461
- it('should handle mixed gemini-ignored and valid files', async () => {
462
- await createTestFile(path.join(testRootDir, '.fss-linkignore'), 'dist/bundle.js');
463
- const validFile = await createTestFile(path.join(testRootDir, 'src', 'main.ts'), '// Main application entry');
464
- const fssLinkIgnoredFile = await createTestFile(path.join(testRootDir, 'dist', 'bundle.js'), 'console.log("bundle");');
465
- const query = `@${validFile} @${fssLinkIgnoredFile}`;
466
- const result = await handleAtCommand({
467
- query,
468
- config: mockConfig,
469
- addItem: mockAddItem,
470
- onDebugMessage: mockOnDebugMessage,
471
- messageId: 206,
472
- signal: abortController.signal,
473
- });
474
- expect(result).toEqual({
475
- processedQuery: [
476
- { text: `@${validFile} @${fssLinkIgnoredFile}` },
477
- { text: '\n--- Content from referenced files ---' },
478
- { text: `\nContent from @${validFile}:\n` },
479
- { text: '// Main application entry' },
480
- { text: '\n--- End of content ---' },
481
- ],
482
- shouldProceed: true,
483
- });
484
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${fssLinkIgnoredFile} is fss-link-ignored and will be skipped.`);
485
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Ignored 1 files:\nFss-Link-ignored: ${fssLinkIgnoredFile}`);
486
- });
487
- describe('punctuation termination in @ commands', () => {
488
- const punctuationTestCases = [
489
- {
490
- name: 'comma',
491
- fileName: 'test.txt',
492
- fileContent: 'File content here',
493
- queryTemplate: (filePath) => `Look at @${filePath}, then explain it.`,
494
- messageId: 400,
495
- },
496
- {
497
- name: 'period',
498
- fileName: 'readme.md',
499
- fileContent: 'File content here',
500
- queryTemplate: (filePath) => `Check @${filePath}. What does it say?`,
501
- messageId: 401,
502
- },
503
- {
504
- name: 'semicolon',
505
- fileName: 'example.js',
506
- fileContent: 'Code example',
507
- queryTemplate: (filePath) => `Review @${filePath}; check for bugs.`,
508
- messageId: 402,
509
- },
510
- {
511
- name: 'exclamation mark',
512
- fileName: 'important.txt',
513
- fileContent: 'Important content',
514
- queryTemplate: (filePath) => `Look at @${filePath}! This is critical.`,
515
- messageId: 403,
516
- },
517
- {
518
- name: 'question mark',
519
- fileName: 'config.json',
520
- fileContent: 'Config settings',
521
- queryTemplate: (filePath) => `What is in @${filePath}? Please explain.`,
522
- messageId: 404,
523
- },
524
- {
525
- name: 'opening parenthesis',
526
- fileName: 'func.ts',
527
- fileContent: 'Function definition',
528
- queryTemplate: (filePath) => `Analyze @${filePath}(the main function).`,
529
- messageId: 405,
530
- },
531
- {
532
- name: 'closing parenthesis',
533
- fileName: 'data.json',
534
- fileContent: 'Test data',
535
- queryTemplate: (filePath) => `Use data from @${filePath}) for testing.`,
536
- messageId: 406,
537
- },
538
- {
539
- name: 'opening square bracket',
540
- fileName: 'array.js',
541
- fileContent: 'Array data',
542
- queryTemplate: (filePath) => `Check @${filePath}[0] for the first element.`,
543
- messageId: 407,
544
- },
545
- {
546
- name: 'closing square bracket',
547
- fileName: 'list.md',
548
- fileContent: 'List content',
549
- queryTemplate: (filePath) => `Review item @${filePath}] from the list.`,
550
- messageId: 408,
551
- },
552
- {
553
- name: 'opening curly brace',
554
- fileName: 'object.ts',
555
- fileContent: 'Object definition',
556
- queryTemplate: (filePath) => `Parse @${filePath}{prop1: value1}.`,
557
- messageId: 409,
558
- },
559
- {
560
- name: 'closing curly brace',
561
- fileName: 'config.yaml',
562
- fileContent: 'Configuration',
563
- queryTemplate: (filePath) => `Use settings from @${filePath}} for deployment.`,
564
- messageId: 410,
565
- },
566
- ];
567
- it.each(punctuationTestCases)('should terminate @path at $name', async ({ fileName, fileContent, queryTemplate, messageId }) => {
568
- const filePath = await createTestFile(path.join(testRootDir, fileName), fileContent);
569
- const query = queryTemplate(filePath);
570
- const result = await handleAtCommand({
571
- query,
572
- config: mockConfig,
573
- addItem: mockAddItem,
574
- onDebugMessage: mockOnDebugMessage,
575
- messageId,
576
- signal: abortController.signal,
577
- });
578
- expect(result).toEqual({
579
- processedQuery: [
580
- { text: query },
581
- { text: '\n--- Content from referenced files ---' },
582
- { text: `\nContent from @${filePath}:\n` },
583
- { text: fileContent },
584
- { text: '\n--- End of content ---' },
585
- ],
586
- shouldProceed: true,
587
- });
588
- });
589
- it('should handle multiple @paths terminated by different punctuation', async () => {
590
- const content1 = 'First file';
591
- const file1Path = await createTestFile(path.join(testRootDir, 'first.txt'), content1);
592
- const content2 = 'Second file';
593
- const file2Path = await createTestFile(path.join(testRootDir, 'second.txt'), content2);
594
- const query = `Compare @${file1Path}, @${file2Path}; what's different?`;
595
- const result = await handleAtCommand({
596
- query,
597
- config: mockConfig,
598
- addItem: mockAddItem,
599
- onDebugMessage: mockOnDebugMessage,
600
- messageId: 411,
601
- signal: abortController.signal,
602
- });
603
- expect(result).toEqual({
604
- processedQuery: [
605
- { text: `Compare @${file1Path}, @${file2Path}; what's different?` },
606
- { text: '\n--- Content from referenced files ---' },
607
- { text: `\nContent from @${file1Path}:\n` },
608
- { text: content1 },
609
- { text: `\nContent from @${file2Path}:\n` },
610
- { text: content2 },
611
- { text: '\n--- End of content ---' },
612
- ],
613
- shouldProceed: true,
614
- });
615
- });
616
- it('should still handle escaped spaces in paths before punctuation', async () => {
617
- const fileContent = 'Spaced file content';
618
- const filePath = await createTestFile(path.join(testRootDir, 'spaced file.txt'), fileContent);
619
- const escapedPath = path.join(testRootDir, 'spaced\\ file.txt');
620
- const query = `Check @${escapedPath}, it has spaces.`;
621
- const result = await handleAtCommand({
622
- query,
623
- config: mockConfig,
624
- addItem: mockAddItem,
625
- onDebugMessage: mockOnDebugMessage,
626
- messageId: 412,
627
- signal: abortController.signal,
628
- });
629
- expect(result).toEqual({
630
- processedQuery: [
631
- { text: `Check @${filePath}, it has spaces.` },
632
- { text: '\n--- Content from referenced files ---' },
633
- { text: `\nContent from @${filePath}:\n` },
634
- { text: fileContent },
635
- { text: '\n--- End of content ---' },
636
- ],
637
- shouldProceed: true,
638
- });
639
- });
640
- it('should not break file paths with periods in extensions', async () => {
641
- const fileContent = 'TypeScript content';
642
- const filePath = await createTestFile(path.join(testRootDir, 'example.d.ts'), fileContent);
643
- const query = `Analyze @${filePath} for type definitions.`;
644
- const result = await handleAtCommand({
645
- query,
646
- config: mockConfig,
647
- addItem: mockAddItem,
648
- onDebugMessage: mockOnDebugMessage,
649
- messageId: 413,
650
- signal: abortController.signal,
651
- });
652
- expect(result).toEqual({
653
- processedQuery: [
654
- { text: `Analyze @${filePath} for type definitions.` },
655
- { text: '\n--- Content from referenced files ---' },
656
- { text: `\nContent from @${filePath}:\n` },
657
- { text: fileContent },
658
- { text: '\n--- End of content ---' },
659
- ],
660
- shouldProceed: true,
661
- });
662
- });
663
- it('should handle file paths ending with period followed by space', async () => {
664
- const fileContent = 'Config content';
665
- const filePath = await createTestFile(path.join(testRootDir, 'config.json'), fileContent);
666
- const query = `Check @${filePath}. This file contains settings.`;
667
- const result = await handleAtCommand({
668
- query,
669
- config: mockConfig,
670
- addItem: mockAddItem,
671
- onDebugMessage: mockOnDebugMessage,
672
- messageId: 414,
673
- signal: abortController.signal,
674
- });
675
- expect(result).toEqual({
676
- processedQuery: [
677
- { text: `Check @${filePath}. This file contains settings.` },
678
- { text: '\n--- Content from referenced files ---' },
679
- { text: `\nContent from @${filePath}:\n` },
680
- { text: fileContent },
681
- { text: '\n--- End of content ---' },
682
- ],
683
- shouldProceed: true,
684
- });
685
- });
686
- it('should handle comma termination with complex file paths', async () => {
687
- const fileContent = 'Package info';
688
- const filePath = await createTestFile(path.join(testRootDir, 'package.json'), fileContent);
689
- const query = `Review @${filePath}, then check dependencies.`;
690
- const result = await handleAtCommand({
691
- query,
692
- config: mockConfig,
693
- addItem: mockAddItem,
694
- onDebugMessage: mockOnDebugMessage,
695
- messageId: 415,
696
- signal: abortController.signal,
697
- });
698
- expect(result).toEqual({
699
- processedQuery: [
700
- { text: `Review @${filePath}, then check dependencies.` },
701
- { text: '\n--- Content from referenced files ---' },
702
- { text: `\nContent from @${filePath}:\n` },
703
- { text: fileContent },
704
- { text: '\n--- End of content ---' },
705
- ],
706
- shouldProceed: true,
707
- });
708
- });
709
- it('should not terminate at period within file name', async () => {
710
- const fileContent = 'Version info';
711
- const filePath = await createTestFile(path.join(testRootDir, 'version.1.2.3.txt'), fileContent);
712
- const query = `Check @${filePath} contains version information.`;
713
- const result = await handleAtCommand({
714
- query,
715
- config: mockConfig,
716
- addItem: mockAddItem,
717
- onDebugMessage: mockOnDebugMessage,
718
- messageId: 416,
719
- signal: abortController.signal,
720
- });
721
- expect(result).toEqual({
722
- processedQuery: [
723
- { text: `Check @${filePath} contains version information.` },
724
- { text: '\n--- Content from referenced files ---' },
725
- { text: `\nContent from @${filePath}:\n` },
726
- { text: fileContent },
727
- { text: '\n--- End of content ---' },
728
- ],
729
- shouldProceed: true,
730
- });
731
- });
732
- it('should handle end of string termination for period and comma', async () => {
733
- const fileContent = 'End file content';
734
- const filePath = await createTestFile(path.join(testRootDir, 'end.txt'), fileContent);
735
- const query = `Show me @${filePath}.`;
736
- const result = await handleAtCommand({
737
- query,
738
- config: mockConfig,
739
- addItem: mockAddItem,
740
- onDebugMessage: mockOnDebugMessage,
741
- messageId: 417,
742
- signal: abortController.signal,
743
- });
744
- expect(result).toEqual({
745
- processedQuery: [
746
- { text: `Show me @${filePath}.` },
747
- { text: '\n--- Content from referenced files ---' },
748
- { text: `\nContent from @${filePath}:\n` },
749
- { text: fileContent },
750
- { text: '\n--- End of content ---' },
751
- ],
752
- shouldProceed: true,
753
- });
754
- });
755
- it('should handle files with special characters in names', async () => {
756
- const fileContent = 'File with special chars content';
757
- const filePath = await createTestFile(path.join(testRootDir, 'file$with&special#chars.txt'), fileContent);
758
- const query = `Check @${filePath} for content.`;
759
- const result = await handleAtCommand({
760
- query,
761
- config: mockConfig,
762
- addItem: mockAddItem,
763
- onDebugMessage: mockOnDebugMessage,
764
- messageId: 418,
765
- signal: abortController.signal,
766
- });
767
- expect(result).toEqual({
768
- processedQuery: [
769
- { text: `Check @${filePath} for content.` },
770
- { text: '\n--- Content from referenced files ---' },
771
- { text: `\nContent from @${filePath}:\n` },
772
- { text: fileContent },
773
- { text: '\n--- End of content ---' },
774
- ],
775
- shouldProceed: true,
776
- });
777
- });
778
- it('should handle basic file names without special characters', async () => {
779
- const fileContent = 'Basic file content';
780
- const filePath = await createTestFile(path.join(testRootDir, 'basicfile.txt'), fileContent);
781
- const query = `Check @${filePath} please.`;
782
- const result = await handleAtCommand({
783
- query,
784
- config: mockConfig,
785
- addItem: mockAddItem,
786
- onDebugMessage: mockOnDebugMessage,
787
- messageId: 421,
788
- signal: abortController.signal,
789
- });
790
- expect(result).toEqual({
791
- processedQuery: [
792
- { text: `Check @${filePath} please.` },
793
- { text: '\n--- Content from referenced files ---' },
794
- { text: `\nContent from @${filePath}:\n` },
795
- { text: fileContent },
796
- { text: '\n--- End of content ---' },
797
- ],
798
- shouldProceed: true,
799
- });
800
- });
801
- });
802
- it("should not add the user's turn to history, as that is the caller's responsibility", async () => {
803
- // Arrange
804
- const fileContent = 'This is the file content.';
805
- const filePath = await createTestFile(path.join(testRootDir, 'path', 'to', 'another-file.txt'), fileContent);
806
- const query = `A query with @${filePath}`;
807
- // Act
808
- await handleAtCommand({
809
- query,
810
- config: mockConfig,
811
- addItem: mockAddItem,
812
- onDebugMessage: mockOnDebugMessage,
813
- messageId: 999,
814
- signal: abortController.signal,
815
- });
816
- // Assert
817
- // It SHOULD be called for the tool_group
818
- expect(mockAddItem).toHaveBeenCalledWith(expect.objectContaining({ type: 'tool_group' }), 999);
819
- // It should NOT have been called for the user turn
820
- const userTurnCalls = mockAddItem.mock.calls.filter((call) => call[0].type === 'user');
821
- expect(userTurnCalls).toHaveLength(0);
822
- });
823
- });
824
- //# sourceMappingURL=atCommandProcessor.test.js.map