snow-ai 0.4.16 → 0.4.18

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 (352) hide show
  1. package/bundle/cli.mjs +477445 -0
  2. package/bundle/sql-wasm.wasm +0 -0
  3. package/bundle/tiktoken_bg.wasm +0 -0
  4. package/package.json +31 -26
  5. package/dist/agents/codebaseIndexAgent.d.ts +0 -102
  6. package/dist/agents/codebaseIndexAgent.js +0 -641
  7. package/dist/agents/codebaseReviewAgent.d.ts +0 -61
  8. package/dist/agents/codebaseReviewAgent.js +0 -301
  9. package/dist/agents/compactAgent.d.ts +0 -55
  10. package/dist/agents/compactAgent.js +0 -306
  11. package/dist/agents/promptOptimizeAgent.d.ts +0 -54
  12. package/dist/agents/promptOptimizeAgent.js +0 -268
  13. package/dist/agents/reviewAgent.d.ts +0 -50
  14. package/dist/agents/reviewAgent.js +0 -265
  15. package/dist/agents/summaryAgent.d.ts +0 -57
  16. package/dist/agents/summaryAgent.js +0 -260
  17. package/dist/api/anthropic.d.ts +0 -44
  18. package/dist/api/anthropic.js +0 -598
  19. package/dist/api/chat.d.ts +0 -73
  20. package/dist/api/chat.js +0 -386
  21. package/dist/api/embedding.d.ts +0 -34
  22. package/dist/api/embedding.js +0 -80
  23. package/dist/api/gemini.d.ts +0 -31
  24. package/dist/api/gemini.js +0 -445
  25. package/dist/api/models.d.ts +0 -15
  26. package/dist/api/models.js +0 -139
  27. package/dist/api/responses.d.ts +0 -38
  28. package/dist/api/responses.js +0 -515
  29. package/dist/api/systemPrompt.d.ts +0 -4
  30. package/dist/api/systemPrompt.js +0 -408
  31. package/dist/api/types.d.ts +0 -53
  32. package/dist/api/types.js +0 -4
  33. package/dist/app.d.ts +0 -8
  34. package/dist/app.js +0 -112
  35. package/dist/cli.d.ts +0 -2
  36. package/dist/cli.js +0 -199
  37. package/dist/hooks/useAgentPicker.d.ts +0 -14
  38. package/dist/hooks/useAgentPicker.js +0 -119
  39. package/dist/hooks/useClipboard.d.ts +0 -4
  40. package/dist/hooks/useClipboard.js +0 -175
  41. package/dist/hooks/useCommandHandler.d.ts +0 -35
  42. package/dist/hooks/useCommandHandler.js +0 -346
  43. package/dist/hooks/useCommandPanel.d.ts +0 -17
  44. package/dist/hooks/useCommandPanel.js +0 -114
  45. package/dist/hooks/useConversation.d.ts +0 -49
  46. package/dist/hooks/useConversation.js +0 -1052
  47. package/dist/hooks/useFilePicker.d.ts +0 -18
  48. package/dist/hooks/useFilePicker.js +0 -224
  49. package/dist/hooks/useGlobalExit.d.ts +0 -5
  50. package/dist/hooks/useGlobalExit.js +0 -34
  51. package/dist/hooks/useGlobalNavigation.d.ts +0 -6
  52. package/dist/hooks/useGlobalNavigation.js +0 -17
  53. package/dist/hooks/useHistoryNavigation.d.ts +0 -35
  54. package/dist/hooks/useHistoryNavigation.js +0 -133
  55. package/dist/hooks/useInputBuffer.d.ts +0 -6
  56. package/dist/hooks/useInputBuffer.js +0 -45
  57. package/dist/hooks/useKeyboardInput.d.ts +0 -80
  58. package/dist/hooks/useKeyboardInput.js +0 -608
  59. package/dist/hooks/useSessionManagement.d.ts +0 -10
  60. package/dist/hooks/useSessionManagement.js +0 -43
  61. package/dist/hooks/useSessionSave.d.ts +0 -8
  62. package/dist/hooks/useSessionSave.js +0 -63
  63. package/dist/hooks/useSnapshotState.d.ts +0 -26
  64. package/dist/hooks/useSnapshotState.js +0 -28
  65. package/dist/hooks/useStreamingState.d.ts +0 -33
  66. package/dist/hooks/useStreamingState.js +0 -105
  67. package/dist/hooks/useTerminalFocus.d.ts +0 -28
  68. package/dist/hooks/useTerminalFocus.js +0 -87
  69. package/dist/hooks/useTerminalSize.d.ts +0 -4
  70. package/dist/hooks/useTerminalSize.js +0 -20
  71. package/dist/hooks/useTodoPicker.d.ts +0 -16
  72. package/dist/hooks/useTodoPicker.js +0 -94
  73. package/dist/hooks/useToolConfirmation.d.ts +0 -19
  74. package/dist/hooks/useToolConfirmation.js +0 -61
  75. package/dist/hooks/useVSCodeState.d.ts +0 -8
  76. package/dist/hooks/useVSCodeState.js +0 -81
  77. package/dist/i18n/I18nContext.d.ts +0 -14
  78. package/dist/i18n/I18nContext.js +0 -24
  79. package/dist/i18n/index.d.ts +0 -3
  80. package/dist/i18n/index.js +0 -2
  81. package/dist/i18n/lang/en.d.ts +0 -2
  82. package/dist/i18n/lang/en.js +0 -502
  83. package/dist/i18n/lang/es.d.ts +0 -2
  84. package/dist/i18n/lang/es.js +0 -502
  85. package/dist/i18n/lang/ja.d.ts +0 -2
  86. package/dist/i18n/lang/ja.js +0 -502
  87. package/dist/i18n/lang/ko.d.ts +0 -2
  88. package/dist/i18n/lang/ko.js +0 -502
  89. package/dist/i18n/lang/zh-TW.d.ts +0 -2
  90. package/dist/i18n/lang/zh-TW.js +0 -502
  91. package/dist/i18n/lang/zh.d.ts +0 -2
  92. package/dist/i18n/lang/zh.js +0 -502
  93. package/dist/i18n/translations.d.ts +0 -2
  94. package/dist/i18n/translations.js +0 -14
  95. package/dist/i18n/types.d.ts +0 -478
  96. package/dist/i18n/types.js +0 -1
  97. package/dist/mcp/aceCodeSearch.d.ts +0 -247
  98. package/dist/mcp/aceCodeSearch.js +0 -1058
  99. package/dist/mcp/bash.d.ts +0 -50
  100. package/dist/mcp/bash.js +0 -153
  101. package/dist/mcp/codebaseSearch.d.ts +0 -44
  102. package/dist/mcp/codebaseSearch.js +0 -275
  103. package/dist/mcp/filesystem.d.ts +0 -392
  104. package/dist/mcp/filesystem.js +0 -1445
  105. package/dist/mcp/ideDiagnostics.d.ts +0 -36
  106. package/dist/mcp/ideDiagnostics.js +0 -90
  107. package/dist/mcp/notebook.d.ts +0 -10
  108. package/dist/mcp/notebook.js +0 -367
  109. package/dist/mcp/subagent.d.ts +0 -37
  110. package/dist/mcp/subagent.js +0 -113
  111. package/dist/mcp/todo.d.ts +0 -46
  112. package/dist/mcp/todo.js +0 -511
  113. package/dist/mcp/types/aceCodeSearch.types.d.ts +0 -92
  114. package/dist/mcp/types/aceCodeSearch.types.js +0 -4
  115. package/dist/mcp/types/bash.types.d.ts +0 -13
  116. package/dist/mcp/types/bash.types.js +0 -4
  117. package/dist/mcp/types/filesystem.types.d.ts +0 -210
  118. package/dist/mcp/types/filesystem.types.js +0 -27
  119. package/dist/mcp/types/todo.types.d.ts +0 -27
  120. package/dist/mcp/types/todo.types.js +0 -4
  121. package/dist/mcp/types/websearch.types.d.ts +0 -30
  122. package/dist/mcp/types/websearch.types.js +0 -4
  123. package/dist/mcp/utils/aceCodeSearch/filesystem.utils.d.ts +0 -34
  124. package/dist/mcp/utils/aceCodeSearch/filesystem.utils.js +0 -146
  125. package/dist/mcp/utils/aceCodeSearch/language.utils.d.ts +0 -14
  126. package/dist/mcp/utils/aceCodeSearch/language.utils.js +0 -418
  127. package/dist/mcp/utils/aceCodeSearch/search.utils.d.ts +0 -31
  128. package/dist/mcp/utils/aceCodeSearch/search.utils.js +0 -136
  129. package/dist/mcp/utils/aceCodeSearch/symbol.utils.d.ts +0 -20
  130. package/dist/mcp/utils/aceCodeSearch/symbol.utils.js +0 -141
  131. package/dist/mcp/utils/bash/security.utils.d.ts +0 -20
  132. package/dist/mcp/utils/bash/security.utils.js +0 -34
  133. package/dist/mcp/utils/filesystem/batch-operations.utils.d.ts +0 -39
  134. package/dist/mcp/utils/filesystem/batch-operations.utils.js +0 -182
  135. package/dist/mcp/utils/filesystem/code-analysis.utils.d.ts +0 -18
  136. package/dist/mcp/utils/filesystem/code-analysis.utils.js +0 -165
  137. package/dist/mcp/utils/filesystem/match-finder.utils.d.ts +0 -16
  138. package/dist/mcp/utils/filesystem/match-finder.utils.js +0 -85
  139. package/dist/mcp/utils/filesystem/office-parser.utils.d.ts +0 -43
  140. package/dist/mcp/utils/filesystem/office-parser.utils.js +0 -163
  141. package/dist/mcp/utils/filesystem/path-fixer.utils.d.ts +0 -7
  142. package/dist/mcp/utils/filesystem/path-fixer.utils.js +0 -60
  143. package/dist/mcp/utils/filesystem/similarity.utils.d.ts +0 -22
  144. package/dist/mcp/utils/filesystem/similarity.utils.js +0 -75
  145. package/dist/mcp/utils/todo/date.utils.d.ts +0 -9
  146. package/dist/mcp/utils/todo/date.utils.js +0 -14
  147. package/dist/mcp/utils/websearch/browser.utils.d.ts +0 -8
  148. package/dist/mcp/utils/websearch/browser.utils.js +0 -58
  149. package/dist/mcp/utils/websearch/text.utils.d.ts +0 -16
  150. package/dist/mcp/utils/websearch/text.utils.js +0 -39
  151. package/dist/mcp/websearch.d.ts +0 -88
  152. package/dist/mcp/websearch.js +0 -375
  153. package/dist/test/logger-test.d.ts +0 -1
  154. package/dist/test/logger-test.js +0 -7
  155. package/dist/types/index.d.ts +0 -15
  156. package/dist/types/index.js +0 -1
  157. package/dist/ui/components/AgentPickerPanel.d.ts +0 -10
  158. package/dist/ui/components/AgentPickerPanel.js +0 -74
  159. package/dist/ui/components/ChatInput.d.ts +0 -46
  160. package/dist/ui/components/ChatInput.js +0 -384
  161. package/dist/ui/components/CommandPanel.d.ts +0 -15
  162. package/dist/ui/components/CommandPanel.js +0 -80
  163. package/dist/ui/components/DiffViewer.d.ts +0 -11
  164. package/dist/ui/components/DiffViewer.js +0 -178
  165. package/dist/ui/components/FileList.d.ts +0 -15
  166. package/dist/ui/components/FileList.js +0 -360
  167. package/dist/ui/components/FileRollbackConfirmation.d.ts +0 -8
  168. package/dist/ui/components/FileRollbackConfirmation.js +0 -108
  169. package/dist/ui/components/HelpPanel.d.ts +0 -2
  170. package/dist/ui/components/HelpPanel.js +0 -67
  171. package/dist/ui/components/MCPInfoPanel.d.ts +0 -2
  172. package/dist/ui/components/MCPInfoPanel.js +0 -108
  173. package/dist/ui/components/MCPInfoScreen.d.ts +0 -7
  174. package/dist/ui/components/MCPInfoScreen.js +0 -115
  175. package/dist/ui/components/MarkdownRenderer.d.ts +0 -6
  176. package/dist/ui/components/MarkdownRenderer.js +0 -70
  177. package/dist/ui/components/Menu.d.ts +0 -17
  178. package/dist/ui/components/Menu.js +0 -88
  179. package/dist/ui/components/MessageList.d.ts +0 -56
  180. package/dist/ui/components/MessageList.js +0 -97
  181. package/dist/ui/components/PendingMessages.d.ts +0 -13
  182. package/dist/ui/components/PendingMessages.js +0 -29
  183. package/dist/ui/components/PendingToolCalls.d.ts +0 -11
  184. package/dist/ui/components/PendingToolCalls.js +0 -35
  185. package/dist/ui/components/ScrollableSelectInput.d.ts +0 -29
  186. package/dist/ui/components/ScrollableSelectInput.js +0 -157
  187. package/dist/ui/components/SessionListPanel.d.ts +0 -7
  188. package/dist/ui/components/SessionListPanel.js +0 -175
  189. package/dist/ui/components/SessionListScreen.d.ts +0 -7
  190. package/dist/ui/components/SessionListScreen.js +0 -217
  191. package/dist/ui/components/SessionListScreenWrapper.d.ts +0 -7
  192. package/dist/ui/components/SessionListScreenWrapper.js +0 -14
  193. package/dist/ui/components/ShimmerText.d.ts +0 -9
  194. package/dist/ui/components/ShimmerText.js +0 -30
  195. package/dist/ui/components/TodoPickerPanel.d.ts +0 -14
  196. package/dist/ui/components/TodoPickerPanel.js +0 -119
  197. package/dist/ui/components/TodoTree.d.ts +0 -15
  198. package/dist/ui/components/TodoTree.js +0 -60
  199. package/dist/ui/components/ToolConfirmation.d.ts +0 -21
  200. package/dist/ui/components/ToolConfirmation.js +0 -204
  201. package/dist/ui/components/ToolResultPreview.d.ts +0 -13
  202. package/dist/ui/components/ToolResultPreview.js +0 -337
  203. package/dist/ui/components/UsagePanel.d.ts +0 -2
  204. package/dist/ui/components/UsagePanel.js +0 -394
  205. package/dist/ui/contexts/ThemeContext.d.ts +0 -13
  206. package/dist/ui/contexts/ThemeContext.js +0 -28
  207. package/dist/ui/pages/ChatScreen.d.ts +0 -6
  208. package/dist/ui/pages/ChatScreen.js +0 -1519
  209. package/dist/ui/pages/CodeBaseConfigScreen.d.ts +0 -8
  210. package/dist/ui/pages/CodeBaseConfigScreen.js +0 -350
  211. package/dist/ui/pages/ConfigScreen.d.ts +0 -8
  212. package/dist/ui/pages/ConfigScreen.js +0 -1101
  213. package/dist/ui/pages/CustomHeadersScreen.d.ts +0 -6
  214. package/dist/ui/pages/CustomHeadersScreen.js +0 -502
  215. package/dist/ui/pages/HeadlessModeScreen.d.ts +0 -7
  216. package/dist/ui/pages/HeadlessModeScreen.js +0 -381
  217. package/dist/ui/pages/LanguageSettingsScreen.d.ts +0 -7
  218. package/dist/ui/pages/LanguageSettingsScreen.js +0 -91
  219. package/dist/ui/pages/MCPConfigScreen.d.ts +0 -6
  220. package/dist/ui/pages/MCPConfigScreen.js +0 -55
  221. package/dist/ui/pages/ProxyConfigScreen.d.ts +0 -8
  222. package/dist/ui/pages/ProxyConfigScreen.js +0 -149
  223. package/dist/ui/pages/SensitiveCommandConfigScreen.d.ts +0 -7
  224. package/dist/ui/pages/SensitiveCommandConfigScreen.js +0 -271
  225. package/dist/ui/pages/SubAgentConfigScreen.d.ts +0 -9
  226. package/dist/ui/pages/SubAgentConfigScreen.js +0 -435
  227. package/dist/ui/pages/SubAgentListScreen.d.ts +0 -9
  228. package/dist/ui/pages/SubAgentListScreen.js +0 -131
  229. package/dist/ui/pages/SystemPromptConfigScreen.d.ts +0 -6
  230. package/dist/ui/pages/SystemPromptConfigScreen.js +0 -326
  231. package/dist/ui/pages/ThemeSettingsScreen.d.ts +0 -7
  232. package/dist/ui/pages/ThemeSettingsScreen.js +0 -106
  233. package/dist/ui/pages/WelcomeScreen.d.ts +0 -7
  234. package/dist/ui/pages/WelcomeScreen.js +0 -217
  235. package/dist/ui/themes/index.d.ts +0 -23
  236. package/dist/ui/themes/index.js +0 -140
  237. package/dist/utils/apiConfig.d.ts +0 -126
  238. package/dist/utils/apiConfig.js +0 -423
  239. package/dist/utils/autoCompress.d.ts +0 -15
  240. package/dist/utils/autoCompress.js +0 -24
  241. package/dist/utils/chatExporter.d.ts +0 -9
  242. package/dist/utils/chatExporter.js +0 -118
  243. package/dist/utils/checkpointManager.d.ts +0 -74
  244. package/dist/utils/checkpointManager.js +0 -181
  245. package/dist/utils/codebaseConfig.d.ts +0 -16
  246. package/dist/utils/codebaseConfig.js +0 -67
  247. package/dist/utils/codebaseDatabase.d.ts +0 -102
  248. package/dist/utils/codebaseDatabase.js +0 -333
  249. package/dist/utils/codebaseSearchEvents.d.ts +0 -16
  250. package/dist/utils/codebaseSearchEvents.js +0 -13
  251. package/dist/utils/commandExecutor.d.ts +0 -13
  252. package/dist/utils/commandExecutor.js +0 -26
  253. package/dist/utils/commands/agent.d.ts +0 -2
  254. package/dist/utils/commands/agent.js +0 -12
  255. package/dist/utils/commands/clear.d.ts +0 -2
  256. package/dist/utils/commands/clear.js +0 -12
  257. package/dist/utils/commands/compact.d.ts +0 -2
  258. package/dist/utils/commands/compact.js +0 -12
  259. package/dist/utils/commands/export.d.ts +0 -2
  260. package/dist/utils/commands/export.js +0 -12
  261. package/dist/utils/commands/help.d.ts +0 -2
  262. package/dist/utils/commands/help.js +0 -11
  263. package/dist/utils/commands/home.d.ts +0 -2
  264. package/dist/utils/commands/home.js +0 -34
  265. package/dist/utils/commands/ide.d.ts +0 -2
  266. package/dist/utils/commands/ide.js +0 -32
  267. package/dist/utils/commands/init.d.ts +0 -2
  268. package/dist/utils/commands/init.js +0 -93
  269. package/dist/utils/commands/mcp.d.ts +0 -2
  270. package/dist/utils/commands/mcp.js +0 -12
  271. package/dist/utils/commands/resume.d.ts +0 -2
  272. package/dist/utils/commands/resume.js +0 -12
  273. package/dist/utils/commands/review.d.ts +0 -2
  274. package/dist/utils/commands/review.js +0 -81
  275. package/dist/utils/commands/role.d.ts +0 -2
  276. package/dist/utils/commands/role.js +0 -37
  277. package/dist/utils/commands/todoPicker.d.ts +0 -2
  278. package/dist/utils/commands/todoPicker.js +0 -12
  279. package/dist/utils/commands/usage.d.ts +0 -2
  280. package/dist/utils/commands/usage.js +0 -12
  281. package/dist/utils/commands/yolo.d.ts +0 -2
  282. package/dist/utils/commands/yolo.js +0 -12
  283. package/dist/utils/configManager.d.ts +0 -45
  284. package/dist/utils/configManager.js +0 -303
  285. package/dist/utils/contextCompressor.d.ts +0 -16
  286. package/dist/utils/contextCompressor.js +0 -334
  287. package/dist/utils/devMode.d.ts +0 -13
  288. package/dist/utils/devMode.js +0 -54
  289. package/dist/utils/escapeHandler.d.ts +0 -79
  290. package/dist/utils/escapeHandler.js +0 -153
  291. package/dist/utils/fileDialog.d.ts +0 -9
  292. package/dist/utils/fileDialog.js +0 -74
  293. package/dist/utils/fileUtils.d.ts +0 -40
  294. package/dist/utils/fileUtils.js +0 -185
  295. package/dist/utils/historyManager.d.ts +0 -45
  296. package/dist/utils/historyManager.js +0 -159
  297. package/dist/utils/incrementalSnapshot.d.ts +0 -109
  298. package/dist/utils/incrementalSnapshot.js +0 -383
  299. package/dist/utils/index.d.ts +0 -11
  300. package/dist/utils/index.js +0 -18
  301. package/dist/utils/languageConfig.d.ts +0 -21
  302. package/dist/utils/languageConfig.js +0 -61
  303. package/dist/utils/logger.d.ts +0 -37
  304. package/dist/utils/logger.js +0 -122
  305. package/dist/utils/mcpToolsManager.d.ts +0 -52
  306. package/dist/utils/mcpToolsManager.js +0 -878
  307. package/dist/utils/messageFormatter.d.ts +0 -12
  308. package/dist/utils/messageFormatter.js +0 -115
  309. package/dist/utils/notebookManager.d.ts +0 -59
  310. package/dist/utils/notebookManager.js +0 -213
  311. package/dist/utils/patch-highlight.d.ts +0 -5
  312. package/dist/utils/patch-highlight.js +0 -23
  313. package/dist/utils/processManager.d.ts +0 -27
  314. package/dist/utils/processManager.js +0 -75
  315. package/dist/utils/proxyUtils.d.ts +0 -15
  316. package/dist/utils/proxyUtils.js +0 -50
  317. package/dist/utils/resourceMonitor.d.ts +0 -65
  318. package/dist/utils/resourceMonitor.js +0 -175
  319. package/dist/utils/retryUtils.d.ts +0 -49
  320. package/dist/utils/retryUtils.js +0 -303
  321. package/dist/utils/sensitiveCommandManager.d.ts +0 -53
  322. package/dist/utils/sensitiveCommandManager.js +0 -308
  323. package/dist/utils/sessionConverter.d.ts +0 -7
  324. package/dist/utils/sessionConverter.js +0 -306
  325. package/dist/utils/sessionManager.d.ts +0 -53
  326. package/dist/utils/sessionManager.js +0 -371
  327. package/dist/utils/subAgentConfig.d.ts +0 -50
  328. package/dist/utils/subAgentConfig.js +0 -221
  329. package/dist/utils/subAgentExecutor.d.ts +0 -40
  330. package/dist/utils/subAgentExecutor.js +0 -434
  331. package/dist/utils/terminal.d.ts +0 -5
  332. package/dist/utils/terminal.js +0 -13
  333. package/dist/utils/textBuffer.d.ts +0 -99
  334. package/dist/utils/textBuffer.js +0 -547
  335. package/dist/utils/textUtils.d.ts +0 -37
  336. package/dist/utils/textUtils.js +0 -102
  337. package/dist/utils/themeConfig.d.ts +0 -21
  338. package/dist/utils/themeConfig.js +0 -61
  339. package/dist/utils/todoPreprocessor.d.ts +0 -5
  340. package/dist/utils/todoPreprocessor.js +0 -18
  341. package/dist/utils/todoScanner.d.ts +0 -8
  342. package/dist/utils/todoScanner.js +0 -148
  343. package/dist/utils/toolDisplayConfig.d.ts +0 -16
  344. package/dist/utils/toolDisplayConfig.js +0 -47
  345. package/dist/utils/toolExecutor.d.ts +0 -37
  346. package/dist/utils/toolExecutor.js +0 -224
  347. package/dist/utils/usageLogger.d.ts +0 -11
  348. package/dist/utils/usageLogger.js +0 -114
  349. package/dist/utils/vscodeConnection.d.ts +0 -76
  350. package/dist/utils/vscodeConnection.js +0 -430
  351. package/dist/utils/workspaceSnapshot.d.ts +0 -63
  352. package/dist/utils/workspaceSnapshot.js +0 -300
@@ -1,2 +0,0 @@
1
- declare const _default: {};
2
- export default _default;
@@ -1,12 +0,0 @@
1
- import { registerCommand } from '../commandExecutor.js';
2
- // Resume command handler - shows session panel instead of navigating to new page
3
- registerCommand('resume', {
4
- execute: () => {
5
- return {
6
- success: true,
7
- action: 'showSessionPanel',
8
- message: 'Opening session panel'
9
- };
10
- }
11
- });
12
- export default {};
@@ -1,2 +0,0 @@
1
- declare const _default: {};
2
- export default _default;
@@ -1,81 +0,0 @@
1
- import { registerCommand } from '../commandExecutor.js';
2
- import { reviewAgent } from '../../agents/reviewAgent.js';
3
- // Review command handler - review git changes
4
- registerCommand('review', {
5
- execute: async (args) => {
6
- try {
7
- // Check if git repository exists
8
- const gitCheck = reviewAgent.checkGitRepository();
9
- if (!gitCheck.isGitRepo) {
10
- return {
11
- success: false,
12
- message: gitCheck.error || 'Not a git repository',
13
- };
14
- }
15
- // Get git diff
16
- const gitDiff = reviewAgent.getGitDiff(gitCheck.gitRoot);
17
- if (gitDiff === 'No changes detected in the repository.') {
18
- return {
19
- success: false,
20
- message: 'No changes detected. Please make some changes before running code review.',
21
- };
22
- }
23
- // Parse additional message from args (format: [message])
24
- let additionalMessage = '';
25
- if (args) {
26
- const match = args.match(/\[([^\]]+)\]/);
27
- if (match && match[1]) {
28
- additionalMessage = match[1].trim();
29
- }
30
- }
31
- // Generate review prompt
32
- let reviewPrompt = `You are a senior code reviewer. Please review the following git changes and provide feedback.
33
-
34
- **Your task:**
35
- 1. Identify potential bugs, security issues, or logic errors
36
- 2. Suggest performance optimizations
37
- 3. Point out code quality issues (readability, maintainability)
38
- 4. Check for best practices violations
39
- 5. Highlight any breaking changes or compatibility issues
40
-
41
- **Important:**
42
- - DO NOT modify the code yourself
43
- - Focus on finding issues and suggesting improvements
44
- - Ask the user if they want to fix any issues you find
45
- - Be constructive and specific in your feedback
46
- - Prioritize critical issues over minor style preferences`;
47
- // Add additional message if provided
48
- if (additionalMessage) {
49
- reviewPrompt += `
50
-
51
- **User's Additional Notes:**
52
- ${additionalMessage}`;
53
- }
54
- reviewPrompt += `
55
-
56
- **Git Changes:**
57
-
58
- \`\`\`diff
59
- ${gitDiff}
60
- \`\`\`
61
-
62
- Please provide your review in a clear, structured format.`;
63
- // Return success with review action and prompt
64
- return {
65
- success: true,
66
- action: 'review',
67
- prompt: reviewPrompt,
68
- message: 'Starting code review...',
69
- };
70
- }
71
- catch (error) {
72
- return {
73
- success: false,
74
- message: error instanceof Error
75
- ? error.message
76
- : 'Failed to start code review',
77
- };
78
- }
79
- },
80
- });
81
- export default {};
@@ -1,2 +0,0 @@
1
- declare const _default: {};
2
- export default _default;
@@ -1,37 +0,0 @@
1
- import { registerCommand } from '../commandExecutor.js';
2
- import fs from 'fs/promises';
3
- import path from 'path';
4
- // Role command handler - create ROLE.md file in project root
5
- registerCommand('role', {
6
- execute: async () => {
7
- try {
8
- const cwd = process.cwd();
9
- const roleFilePath = path.join(cwd, 'ROLE.md');
10
- // Check if ROLE.md exists
11
- let fileExists = false;
12
- try {
13
- await fs.access(roleFilePath);
14
- fileExists = true;
15
- }
16
- catch {
17
- // File doesn't exist, create it
18
- await fs.writeFile(roleFilePath, '', 'utf-8');
19
- }
20
- return {
21
- success: true,
22
- message: fileExists
23
- ? `ROLE.md already exists at: ${roleFilePath}`
24
- : `Created ROLE.md at: ${roleFilePath}`,
25
- };
26
- }
27
- catch (error) {
28
- return {
29
- success: false,
30
- message: error instanceof Error
31
- ? error.message
32
- : 'Failed to handle ROLE.md file',
33
- };
34
- }
35
- },
36
- });
37
- export default {};
@@ -1,2 +0,0 @@
1
- declare const _default: {};
2
- export default _default;
@@ -1,12 +0,0 @@
1
- import { registerCommand } from '../commandExecutor.js';
2
- // Todo picker command handler - shows todo selection panel
3
- registerCommand('todo-', {
4
- execute: () => {
5
- return {
6
- success: true,
7
- action: 'showTodoPicker',
8
- message: 'Showing TODO comment selection panel',
9
- };
10
- },
11
- });
12
- export default {};
@@ -1,2 +0,0 @@
1
- declare const _default: {};
2
- export default _default;
@@ -1,12 +0,0 @@
1
- import { registerCommand } from '../commandExecutor.js';
2
- // Usage command handler - shows usage statistics panel
3
- registerCommand('usage', {
4
- execute: () => {
5
- return {
6
- success: true,
7
- action: 'showUsagePanel',
8
- message: 'Showing usage statistics'
9
- };
10
- }
11
- });
12
- export default {};
@@ -1,2 +0,0 @@
1
- declare const _default: {};
2
- export default _default;
@@ -1,12 +0,0 @@
1
- import { registerCommand } from '../commandExecutor.js';
2
- // YOLO command handler - toggles unattended mode
3
- registerCommand('yolo', {
4
- execute: () => {
5
- return {
6
- success: true,
7
- action: 'toggleYolo',
8
- message: 'Toggling YOLO mode'
9
- };
10
- }
11
- });
12
- export default {};
@@ -1,45 +0,0 @@
1
- import { type AppConfig } from './apiConfig.js';
2
- export interface ConfigProfile {
3
- name: string;
4
- displayName: string;
5
- isActive: boolean;
6
- config: AppConfig;
7
- }
8
- /**
9
- * Get the current active profile name
10
- */
11
- export declare function getActiveProfileName(): string;
12
- /**
13
- * Load a specific profile
14
- */
15
- export declare function loadProfile(profileName: string): AppConfig | undefined;
16
- /**
17
- * Save a profile
18
- */
19
- export declare function saveProfile(profileName: string, config: AppConfig): void;
20
- /**
21
- * Get all available profiles
22
- */
23
- export declare function getAllProfiles(): ConfigProfile[];
24
- /**
25
- * Switch to a different profile
26
- * This copies the profile config to config.json and updates the active profile
27
- */
28
- export declare function switchProfile(profileName: string): void;
29
- /**
30
- * Create a new profile
31
- */
32
- export declare function createProfile(profileName: string, config?: AppConfig): void;
33
- /**
34
- * Delete a profile
35
- */
36
- export declare function deleteProfile(profileName: string): void;
37
- /**
38
- * Rename a profile
39
- */
40
- export declare function renameProfile(oldName: string, newName: string): void;
41
- /**
42
- * Initialize profiles system
43
- * This should be called on app startup to ensure profiles are set up
44
- */
45
- export declare function initializeProfiles(): void;
@@ -1,303 +0,0 @@
1
- import { homedir } from 'os';
2
- import { join } from 'path';
3
- import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, unlinkSync, } from 'fs';
4
- import { loadConfig, saveConfig } from './apiConfig.js';
5
- const CONFIG_DIR = join(homedir(), '.snow');
6
- const PROFILES_DIR = join(CONFIG_DIR, 'profiles');
7
- const ACTIVE_PROFILE_FILE = join(CONFIG_DIR, 'active-profile.json');
8
- const LEGACY_ACTIVE_PROFILE_FILE = join(CONFIG_DIR, 'active-profile.txt');
9
- const LEGACY_CONFIG_FILE = join(CONFIG_DIR, 'config.json');
10
- /**
11
- * Ensure the profiles directory exists
12
- */
13
- function ensureProfilesDirectory() {
14
- if (!existsSync(CONFIG_DIR)) {
15
- mkdirSync(CONFIG_DIR, { recursive: true });
16
- }
17
- if (!existsSync(PROFILES_DIR)) {
18
- mkdirSync(PROFILES_DIR, { recursive: true });
19
- }
20
- }
21
- /**
22
- * Get the current active profile name
23
- */
24
- export function getActiveProfileName() {
25
- ensureProfilesDirectory();
26
- // Auto-migrate from legacy .txt format to new .json format
27
- if (!existsSync(ACTIVE_PROFILE_FILE) &&
28
- existsSync(LEGACY_ACTIVE_PROFILE_FILE)) {
29
- try {
30
- const legacyProfileName = readFileSync(LEGACY_ACTIVE_PROFILE_FILE, 'utf8').trim();
31
- const profileName = legacyProfileName || 'default';
32
- // Save in new JSON format
33
- setActiveProfileName(profileName);
34
- // Delete old .txt file
35
- unlinkSync(LEGACY_ACTIVE_PROFILE_FILE);
36
- return profileName;
37
- }
38
- catch {
39
- // If migration fails, continue with default
40
- }
41
- }
42
- if (!existsSync(ACTIVE_PROFILE_FILE)) {
43
- return 'default';
44
- }
45
- try {
46
- const fileContent = readFileSync(ACTIVE_PROFILE_FILE, 'utf8').trim();
47
- const data = JSON.parse(fileContent);
48
- return data.activeProfile || 'default';
49
- }
50
- catch {
51
- return 'default';
52
- }
53
- }
54
- /**
55
- * Set the active profile
56
- */
57
- function setActiveProfileName(profileName) {
58
- ensureProfilesDirectory();
59
- try {
60
- const data = { activeProfile: profileName };
61
- writeFileSync(ACTIVE_PROFILE_FILE, JSON.stringify(data, null, 2), 'utf8');
62
- }
63
- catch (error) {
64
- throw new Error(`Failed to set active profile: ${error}`);
65
- }
66
- }
67
- /**
68
- * Get the path to a profile file
69
- */
70
- function getProfilePath(profileName) {
71
- return join(PROFILES_DIR, `${profileName}.json`);
72
- }
73
- /**
74
- * Migrate legacy config.json to profiles/default.json
75
- * This ensures backward compatibility with existing installations
76
- */
77
- function migrateLegacyConfig() {
78
- ensureProfilesDirectory();
79
- const defaultProfilePath = getProfilePath('default');
80
- // If default profile already exists, no migration needed
81
- if (existsSync(defaultProfilePath)) {
82
- return;
83
- }
84
- // If legacy config exists, migrate it
85
- if (existsSync(LEGACY_CONFIG_FILE)) {
86
- try {
87
- const legacyConfig = readFileSync(LEGACY_CONFIG_FILE, 'utf8');
88
- writeFileSync(defaultProfilePath, legacyConfig, 'utf8');
89
- // Set default as active profile
90
- setActiveProfileName('default');
91
- }
92
- catch (error) {
93
- // If migration fails, we'll create a default profile later
94
- console.error('Failed to migrate legacy config:', error);
95
- }
96
- }
97
- }
98
- /**
99
- * Load a specific profile
100
- */
101
- export function loadProfile(profileName) {
102
- ensureProfilesDirectory();
103
- migrateLegacyConfig();
104
- const profilePath = getProfilePath(profileName);
105
- if (!existsSync(profilePath)) {
106
- return undefined;
107
- }
108
- try {
109
- const configData = readFileSync(profilePath, 'utf8');
110
- return JSON.parse(configData);
111
- }
112
- catch {
113
- return undefined;
114
- }
115
- }
116
- /**
117
- * Save a profile
118
- */
119
- export function saveProfile(profileName, config) {
120
- ensureProfilesDirectory();
121
- const profilePath = getProfilePath(profileName);
122
- try {
123
- // Remove openai field for backward compatibility
124
- const { openai, ...configWithoutOpenai } = config;
125
- const configData = JSON.stringify(configWithoutOpenai, null, 2);
126
- writeFileSync(profilePath, configData, 'utf8');
127
- }
128
- catch (error) {
129
- throw new Error(`Failed to save profile: ${error}`);
130
- }
131
- }
132
- /**
133
- * Get all available profiles
134
- */
135
- export function getAllProfiles() {
136
- ensureProfilesDirectory();
137
- migrateLegacyConfig();
138
- const activeProfile = getActiveProfileName();
139
- const profiles = [];
140
- try {
141
- const files = readdirSync(PROFILES_DIR);
142
- for (const file of files) {
143
- if (file.endsWith('.json')) {
144
- const profileName = file.replace('.json', '');
145
- const config = loadProfile(profileName);
146
- if (config) {
147
- profiles.push({
148
- name: profileName,
149
- displayName: getProfileDisplayName(profileName),
150
- isActive: profileName === activeProfile,
151
- config,
152
- });
153
- }
154
- }
155
- }
156
- }
157
- catch {
158
- // If reading fails, return empty array
159
- }
160
- // Ensure at least a default profile exists
161
- if (profiles.length === 0) {
162
- const defaultConfig = loadConfig();
163
- saveProfile('default', defaultConfig);
164
- profiles.push({
165
- name: 'default',
166
- displayName: 'Default',
167
- isActive: true,
168
- config: defaultConfig,
169
- });
170
- setActiveProfileName('default');
171
- }
172
- return profiles.sort((a, b) => a.name.localeCompare(b.name));
173
- }
174
- /**
175
- * Get a user-friendly display name for a profile
176
- */
177
- function getProfileDisplayName(profileName) {
178
- // Capitalize first letter
179
- return profileName.charAt(0).toUpperCase() + profileName.slice(1);
180
- }
181
- /**
182
- * Switch to a different profile
183
- * This copies the profile config to config.json and updates the active profile
184
- */
185
- export function switchProfile(profileName) {
186
- ensureProfilesDirectory();
187
- const profileConfig = loadProfile(profileName);
188
- if (!profileConfig) {
189
- throw new Error(`Profile "${profileName}" not found`);
190
- }
191
- // Save the profile config to the main config.json (for backward compatibility)
192
- saveConfig(profileConfig);
193
- // Update the active profile marker
194
- setActiveProfileName(profileName);
195
- }
196
- /**
197
- * Create a new profile
198
- */
199
- export function createProfile(profileName, config) {
200
- ensureProfilesDirectory();
201
- // Validate profile name
202
- if (!profileName.trim() ||
203
- profileName.includes('/') ||
204
- profileName.includes('\\')) {
205
- throw new Error('Invalid profile name');
206
- }
207
- const profilePath = getProfilePath(profileName);
208
- if (existsSync(profilePath)) {
209
- throw new Error(`Profile "${profileName}" already exists`);
210
- }
211
- // If no config provided, use the current config
212
- const profileConfig = config || loadConfig();
213
- saveProfile(profileName, profileConfig);
214
- }
215
- /**
216
- * Delete a profile
217
- */
218
- export function deleteProfile(profileName) {
219
- ensureProfilesDirectory();
220
- // Don't allow deleting the default profile
221
- if (profileName === 'default') {
222
- throw new Error('Cannot delete the default profile');
223
- }
224
- const profilePath = getProfilePath(profileName);
225
- if (!existsSync(profilePath)) {
226
- throw new Error(`Profile "${profileName}" not found`);
227
- }
228
- // If this is the active profile, switch to default first
229
- if (getActiveProfileName() === profileName) {
230
- switchProfile('default');
231
- }
232
- try {
233
- unlinkSync(profilePath);
234
- }
235
- catch (error) {
236
- throw new Error(`Failed to delete profile: ${error}`);
237
- }
238
- }
239
- /**
240
- * Rename a profile
241
- */
242
- export function renameProfile(oldName, newName) {
243
- ensureProfilesDirectory();
244
- // Validate new name
245
- if (!newName.trim() || newName.includes('/') || newName.includes('\\')) {
246
- throw new Error('Invalid profile name');
247
- }
248
- if (oldName === newName) {
249
- return;
250
- }
251
- const oldPath = getProfilePath(oldName);
252
- const newPath = getProfilePath(newName);
253
- if (!existsSync(oldPath)) {
254
- throw new Error(`Profile "${oldName}" not found`);
255
- }
256
- if (existsSync(newPath)) {
257
- throw new Error(`Profile "${newName}" already exists`);
258
- }
259
- try {
260
- const config = loadProfile(oldName);
261
- if (!config) {
262
- throw new Error(`Failed to load profile "${oldName}"`);
263
- }
264
- // Save with new name
265
- saveProfile(newName, config);
266
- // Update active profile if necessary
267
- if (getActiveProfileName() === oldName) {
268
- setActiveProfileName(newName);
269
- }
270
- // Delete old profile
271
- unlinkSync(oldPath);
272
- }
273
- catch (error) {
274
- throw new Error(`Failed to rename profile: ${error}`);
275
- }
276
- }
277
- /**
278
- * Initialize profiles system
279
- * This should be called on app startup to ensure profiles are set up
280
- */
281
- export function initializeProfiles() {
282
- ensureProfilesDirectory();
283
- migrateLegacyConfig();
284
- // Ensure the active profile exists and is loaded to config.json
285
- const activeProfile = getActiveProfileName();
286
- let profileConfig = loadProfile(activeProfile);
287
- if (profileConfig) {
288
- // Sync the active profile to config.json
289
- saveConfig(profileConfig);
290
- }
291
- else {
292
- // If active profile doesn't exist, create it first
293
- // This is especially important for first-time installations
294
- const defaultConfig = loadConfig();
295
- saveProfile(activeProfile, defaultConfig);
296
- setActiveProfileName(activeProfile);
297
- // Now load and sync the newly created profile
298
- profileConfig = loadProfile(activeProfile);
299
- if (profileConfig) {
300
- saveConfig(profileConfig);
301
- }
302
- }
303
- }
@@ -1,16 +0,0 @@
1
- import type { ChatMessage } from '../api/types.js';
2
- export interface CompressionResult {
3
- summary: string;
4
- usage: {
5
- prompt_tokens: number;
6
- completion_tokens: number;
7
- total_tokens: number;
8
- };
9
- preservedMessages?: ChatMessage[];
10
- }
11
- /**
12
- * Compress conversation history using the compact model
13
- * @param messages - Array of messages to compress
14
- * @returns Compressed summary and token usage information, or null if compression should be skipped
15
- */
16
- export declare function compressContext(messages: ChatMessage[]): Promise<CompressionResult | null>;