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,15 +0,0 @@
1
- /**
2
- * 检查 token 使用率是否达到阈值
3
- * @param percentage 当前上下文使用百分比(由 ChatInput 计算)
4
- * @param threshold 阈值百分比(默认80)
5
- * @returns 是否需要压缩
6
- */
7
- export declare function shouldAutoCompress(percentage: number, threshold?: number): boolean;
8
- /**
9
- * 执行自动压缩
10
- * @returns 压缩结果,如果失败返回null
11
- */
12
- export declare function performAutoCompression(): Promise<{
13
- uiMessages: import("../ui/components/MessageList.js").Message[];
14
- usage: import("../api/types.js").UsageInfo;
15
- } | null>;
@@ -1,24 +0,0 @@
1
- import { executeContextCompression } from '../hooks/useCommandHandler.js';
2
- /**
3
- * 检查 token 使用率是否达到阈值
4
- * @param percentage 当前上下文使用百分比(由 ChatInput 计算)
5
- * @param threshold 阈值百分比(默认80)
6
- * @returns 是否需要压缩
7
- */
8
- export function shouldAutoCompress(percentage, threshold = 80) {
9
- return percentage >= threshold;
10
- }
11
- /**
12
- * 执行自动压缩
13
- * @returns 压缩结果,如果失败返回null
14
- */
15
- export async function performAutoCompression() {
16
- try {
17
- const result = await executeContextCompression();
18
- return result;
19
- }
20
- catch (error) {
21
- console.error('Auto-compression failed:', error);
22
- return null;
23
- }
24
- }
@@ -1,9 +0,0 @@
1
- import type { Message } from '../ui/components/MessageList.js';
2
- /**
3
- * Format messages to plain text for export
4
- */
5
- export declare function formatMessagesAsText(messages: Message[]): string;
6
- /**
7
- * Export messages to a file
8
- */
9
- export declare function exportMessagesToFile(messages: Message[], filePath: string): Promise<void>;
@@ -1,118 +0,0 @@
1
- import * as fs from 'fs/promises';
2
- /**
3
- * Format messages to plain text for export
4
- */
5
- export function formatMessagesAsText(messages) {
6
- const lines = [];
7
- const timestamp = new Date().toISOString();
8
- // Add header
9
- lines.push('=====================================');
10
- lines.push('Snow AI - Chat Export');
11
- lines.push(`Exported at: ${new Date(timestamp).toLocaleString()}`);
12
- lines.push('=====================================');
13
- lines.push('');
14
- // Format each message
15
- for (const message of messages) {
16
- // Skip command messages
17
- if (message.role === 'command') {
18
- continue;
19
- }
20
- // Add role header
21
- let roleLabel = '';
22
- if (message.role === 'user') {
23
- roleLabel = 'USER';
24
- }
25
- else if (message.role === 'assistant') {
26
- roleLabel = 'ASSISTANT';
27
- }
28
- else if (message.role === 'subagent') {
29
- roleLabel = 'SUBAGENT';
30
- }
31
- else {
32
- roleLabel = 'UNKNOWN';
33
- }
34
- lines.push(`[${roleLabel}]`);
35
- lines.push('-'.repeat(40));
36
- // Add content (Message.content is always string based on the type definition)
37
- lines.push(message.content);
38
- // Add tool call information if present
39
- if (message.toolCall) {
40
- lines.push('');
41
- lines.push(`[TOOL CALL: ${message.toolCall.name}]`);
42
- try {
43
- const argsStr = typeof message.toolCall.arguments === 'string'
44
- ? message.toolCall.arguments
45
- : JSON.stringify(message.toolCall.arguments, null, 2);
46
- lines.push(argsStr);
47
- }
48
- catch {
49
- lines.push(String(message.toolCall.arguments));
50
- }
51
- }
52
- // Add tool display information if present
53
- if (message.toolDisplay) {
54
- lines.push('');
55
- lines.push(`[TOOL: ${message.toolDisplay.toolName}]`);
56
- for (const arg of message.toolDisplay.args) {
57
- lines.push(` ${arg.key}: ${arg.value}`);
58
- }
59
- }
60
- // Add tool result if present
61
- if (message.toolResult) {
62
- lines.push('');
63
- lines.push('[TOOL RESULT]');
64
- try {
65
- const result = JSON.parse(message.toolResult);
66
- lines.push(JSON.stringify(result, null, 2));
67
- }
68
- catch {
69
- lines.push(message.toolResult);
70
- }
71
- }
72
- // Add terminal result if present
73
- if (message.terminalResult) {
74
- lines.push('');
75
- if (message.terminalResult.command) {
76
- lines.push(`[COMMAND: ${message.terminalResult.command}]`);
77
- }
78
- if (message.terminalResult.stdout) {
79
- lines.push('[STDOUT]');
80
- lines.push(message.terminalResult.stdout);
81
- }
82
- if (message.terminalResult.stderr) {
83
- lines.push('[STDERR]');
84
- lines.push(message.terminalResult.stderr);
85
- }
86
- if (message.terminalResult.exitCode !== undefined) {
87
- lines.push(`[EXIT CODE: ${message.terminalResult.exitCode}]`);
88
- }
89
- }
90
- // Add images information if present
91
- if (message.images && message.images.length > 0) {
92
- lines.push('');
93
- lines.push(`[${message.images.length} image(s) attached]`);
94
- }
95
- // Add files information if present
96
- if (message.files && message.files.length > 0) {
97
- lines.push('');
98
- lines.push(`[${message.files.length} file(s) referenced]`);
99
- for (const file of message.files) {
100
- lines.push(` - ${file.path}`);
101
- }
102
- }
103
- lines.push('');
104
- lines.push('');
105
- }
106
- // Add footer
107
- lines.push('=====================================');
108
- lines.push('End of Chat Export');
109
- lines.push('=====================================');
110
- return lines.join('\n');
111
- }
112
- /**
113
- * Export messages to a file
114
- */
115
- export async function exportMessagesToFile(messages, filePath) {
116
- const textContent = formatMessagesAsText(messages);
117
- await fs.writeFile(filePath, textContent, 'utf-8');
118
- }
@@ -1,74 +0,0 @@
1
- /**
2
- * File checkpoint data structure
3
- */
4
- export interface FileCheckpoint {
5
- path: string;
6
- content: string;
7
- timestamp: number;
8
- exists: boolean;
9
- }
10
- /**
11
- * Conversation checkpoint data structure
12
- */
13
- export interface ConversationCheckpoint {
14
- sessionId: string;
15
- messageCount: number;
16
- fileSnapshots: FileCheckpoint[];
17
- timestamp: number;
18
- }
19
- /**
20
- * Checkpoint Manager
21
- * Manages file snapshots for rollback on ESC interrupt
22
- */
23
- declare class CheckpointManager {
24
- private readonly checkpointsDir;
25
- private activeCheckpoint;
26
- constructor();
27
- /**
28
- * Ensure checkpoints directory exists
29
- */
30
- private ensureCheckpointsDir;
31
- /**
32
- * Get checkpoint file path for a session
33
- */
34
- private getCheckpointPath;
35
- /**
36
- * Create a new checkpoint before AI response
37
- * @param sessionId - Current session ID
38
- * @param messageCount - Number of messages before AI response
39
- */
40
- createCheckpoint(sessionId: string, messageCount: number): Promise<void>;
41
- /**
42
- * Record a file snapshot before modification
43
- * @param filePath - Absolute path to the file
44
- */
45
- recordFileSnapshot(filePath: string): Promise<void>;
46
- /**
47
- * Save current checkpoint to disk
48
- */
49
- private saveCheckpoint;
50
- /**
51
- * Load checkpoint from disk
52
- */
53
- loadCheckpoint(sessionId: string): Promise<ConversationCheckpoint | null>;
54
- /**
55
- * Rollback files to checkpoint state
56
- * @param sessionId - Session ID to rollback
57
- * @returns Number of messages to rollback to, or null if no checkpoint
58
- */
59
- rollback(sessionId: string): Promise<number | null>;
60
- /**
61
- * Clear checkpoint for a session
62
- */
63
- clearCheckpoint(sessionId: string): Promise<void>;
64
- /**
65
- * Get active checkpoint
66
- */
67
- getActiveCheckpoint(): ConversationCheckpoint | null;
68
- /**
69
- * Clear active checkpoint (used when conversation completes successfully)
70
- */
71
- commitCheckpoint(): Promise<void>;
72
- }
73
- export declare const checkpointManager: CheckpointManager;
74
- export {};
@@ -1,181 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import os from 'os';
4
- /**
5
- * Checkpoint Manager
6
- * Manages file snapshots for rollback on ESC interrupt
7
- */
8
- class CheckpointManager {
9
- constructor() {
10
- Object.defineProperty(this, "checkpointsDir", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: void 0
15
- });
16
- Object.defineProperty(this, "activeCheckpoint", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: null
21
- });
22
- this.checkpointsDir = path.join(os.homedir(), '.snow', 'checkpoints');
23
- }
24
- /**
25
- * Ensure checkpoints directory exists
26
- */
27
- async ensureCheckpointsDir() {
28
- try {
29
- await fs.mkdir(this.checkpointsDir, { recursive: true });
30
- }
31
- catch (error) {
32
- // Directory already exists or other error
33
- }
34
- }
35
- /**
36
- * Get checkpoint file path for a session
37
- */
38
- getCheckpointPath(sessionId) {
39
- return path.join(this.checkpointsDir, `${sessionId}.json`);
40
- }
41
- /**
42
- * Create a new checkpoint before AI response
43
- * @param sessionId - Current session ID
44
- * @param messageCount - Number of messages before AI response
45
- */
46
- async createCheckpoint(sessionId, messageCount) {
47
- await this.ensureCheckpointsDir();
48
- this.activeCheckpoint = {
49
- sessionId,
50
- messageCount,
51
- fileSnapshots: [],
52
- timestamp: Date.now()
53
- };
54
- // Save checkpoint immediately (will be updated as files are modified)
55
- await this.saveCheckpoint();
56
- }
57
- /**
58
- * Record a file snapshot before modification
59
- * @param filePath - Absolute path to the file
60
- */
61
- async recordFileSnapshot(filePath) {
62
- if (!this.activeCheckpoint) {
63
- return; // No active checkpoint, skip
64
- }
65
- // Check if this file already has a snapshot
66
- const existingSnapshot = this.activeCheckpoint.fileSnapshots.find(snapshot => snapshot.path === filePath);
67
- if (existingSnapshot) {
68
- return; // Already recorded, skip
69
- }
70
- try {
71
- // Try to read existing file content
72
- const content = await fs.readFile(filePath, 'utf-8');
73
- this.activeCheckpoint.fileSnapshots.push({
74
- path: filePath,
75
- content,
76
- timestamp: Date.now(),
77
- exists: true
78
- });
79
- }
80
- catch (error) {
81
- // File doesn't exist, record as non-existent
82
- this.activeCheckpoint.fileSnapshots.push({
83
- path: filePath,
84
- content: '',
85
- timestamp: Date.now(),
86
- exists: false
87
- });
88
- }
89
- // Update checkpoint file
90
- await this.saveCheckpoint();
91
- }
92
- /**
93
- * Save current checkpoint to disk
94
- */
95
- async saveCheckpoint() {
96
- if (!this.activeCheckpoint) {
97
- return;
98
- }
99
- await this.ensureCheckpointsDir();
100
- const checkpointPath = this.getCheckpointPath(this.activeCheckpoint.sessionId);
101
- await fs.writeFile(checkpointPath, JSON.stringify(this.activeCheckpoint, null, 2));
102
- }
103
- /**
104
- * Load checkpoint from disk
105
- */
106
- async loadCheckpoint(sessionId) {
107
- try {
108
- const checkpointPath = this.getCheckpointPath(sessionId);
109
- const data = await fs.readFile(checkpointPath, 'utf-8');
110
- return JSON.parse(data);
111
- }
112
- catch (error) {
113
- return null;
114
- }
115
- }
116
- /**
117
- * Rollback files to checkpoint state
118
- * @param sessionId - Session ID to rollback
119
- * @returns Number of messages to rollback to, or null if no checkpoint
120
- */
121
- async rollback(sessionId) {
122
- const checkpoint = await this.loadCheckpoint(sessionId);
123
- if (!checkpoint) {
124
- return null;
125
- }
126
- // Rollback all file snapshots
127
- for (const snapshot of checkpoint.fileSnapshots) {
128
- try {
129
- if (snapshot.exists) {
130
- // Restore original file content
131
- await fs.writeFile(snapshot.path, snapshot.content, 'utf-8');
132
- }
133
- else {
134
- // Delete file that was created
135
- try {
136
- await fs.unlink(snapshot.path);
137
- }
138
- catch (error) {
139
- // File may already be deleted, ignore
140
- }
141
- }
142
- }
143
- catch (error) {
144
- console.error(`Failed to rollback file ${snapshot.path}:`, error);
145
- }
146
- }
147
- // Clear checkpoint after rollback
148
- await this.clearCheckpoint(sessionId);
149
- return checkpoint.messageCount;
150
- }
151
- /**
152
- * Clear checkpoint for a session
153
- */
154
- async clearCheckpoint(sessionId) {
155
- try {
156
- const checkpointPath = this.getCheckpointPath(sessionId);
157
- await fs.unlink(checkpointPath);
158
- }
159
- catch (error) {
160
- // Checkpoint may not exist, ignore
161
- }
162
- if (this.activeCheckpoint?.sessionId === sessionId) {
163
- this.activeCheckpoint = null;
164
- }
165
- }
166
- /**
167
- * Get active checkpoint
168
- */
169
- getActiveCheckpoint() {
170
- return this.activeCheckpoint;
171
- }
172
- /**
173
- * Clear active checkpoint (used when conversation completes successfully)
174
- */
175
- async commitCheckpoint() {
176
- if (this.activeCheckpoint) {
177
- await this.clearCheckpoint(this.activeCheckpoint.sessionId);
178
- }
179
- }
180
- }
181
- export const checkpointManager = new CheckpointManager();
@@ -1,16 +0,0 @@
1
- export interface CodebaseConfig {
2
- enabled: boolean;
3
- enableAgentReview: boolean;
4
- embedding: {
5
- modelName: string;
6
- baseUrl: string;
7
- apiKey: string;
8
- dimensions: number;
9
- };
10
- batch: {
11
- maxLines: number;
12
- concurrency: number;
13
- };
14
- }
15
- export declare const loadCodebaseConfig: () => CodebaseConfig;
16
- export declare const saveCodebaseConfig: (config: CodebaseConfig) => void;
@@ -1,67 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import os from 'os';
4
- const DEFAULT_CONFIG = {
5
- enabled: false,
6
- enableAgentReview: true,
7
- embedding: {
8
- modelName: '',
9
- baseUrl: '',
10
- apiKey: '',
11
- dimensions: 1536,
12
- },
13
- batch: {
14
- maxLines: 10,
15
- concurrency: 3,
16
- },
17
- };
18
- const getConfigDir = () => {
19
- const homeDir = os.homedir();
20
- const configDir = path.join(homeDir, '.snow');
21
- if (!fs.existsSync(configDir)) {
22
- fs.mkdirSync(configDir, { recursive: true });
23
- }
24
- return configDir;
25
- };
26
- const getConfigPath = () => {
27
- return path.join(getConfigDir(), 'codebase.json');
28
- };
29
- export const loadCodebaseConfig = () => {
30
- try {
31
- const configPath = getConfigPath();
32
- if (!fs.existsSync(configPath)) {
33
- return { ...DEFAULT_CONFIG };
34
- }
35
- const configContent = fs.readFileSync(configPath, 'utf-8');
36
- const config = JSON.parse(configContent);
37
- // Merge with defaults to ensure all fields exist
38
- return {
39
- enabled: config.enabled ?? DEFAULT_CONFIG.enabled,
40
- enableAgentReview: config.enableAgentReview ?? DEFAULT_CONFIG.enableAgentReview,
41
- embedding: {
42
- modelName: config.embedding?.modelName ?? DEFAULT_CONFIG.embedding.modelName,
43
- baseUrl: config.embedding?.baseUrl ?? DEFAULT_CONFIG.embedding.baseUrl,
44
- apiKey: config.embedding?.apiKey ?? DEFAULT_CONFIG.embedding.apiKey,
45
- dimensions: config.embedding?.dimensions ?? DEFAULT_CONFIG.embedding.dimensions,
46
- },
47
- batch: {
48
- maxLines: config.batch?.maxLines ?? DEFAULT_CONFIG.batch.maxLines,
49
- concurrency: config.batch?.concurrency ?? DEFAULT_CONFIG.batch.concurrency,
50
- },
51
- };
52
- }
53
- catch (error) {
54
- console.error('Failed to load codebase config:', error);
55
- return { ...DEFAULT_CONFIG };
56
- }
57
- };
58
- export const saveCodebaseConfig = (config) => {
59
- try {
60
- const configPath = getConfigPath();
61
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
62
- }
63
- catch (error) {
64
- console.error('Failed to save codebase config:', error);
65
- throw error;
66
- }
67
- };
@@ -1,102 +0,0 @@
1
- /**
2
- * Code chunk with embedding
3
- */
4
- export interface CodeChunk {
5
- id?: number;
6
- filePath: string;
7
- content: string;
8
- startLine: number;
9
- endLine: number;
10
- embedding: number[];
11
- fileHash: string;
12
- createdAt: number;
13
- updatedAt: number;
14
- }
15
- /**
16
- * Indexing progress record
17
- */
18
- export interface IndexProgress {
19
- totalFiles: number;
20
- processedFiles: number;
21
- totalChunks: number;
22
- status: 'idle' | 'indexing' | 'completed' | 'error';
23
- lastError?: string;
24
- lastProcessedFile?: string;
25
- startedAt?: number;
26
- completedAt?: number;
27
- }
28
- /**
29
- * Codebase SQLite database manager
30
- * Handles embedding storage with vector support
31
- */
32
- export declare class CodebaseDatabase {
33
- private db;
34
- private dbPath;
35
- private initialized;
36
- constructor(projectRoot: string);
37
- /**
38
- * Initialize database and create tables
39
- */
40
- initialize(): void;
41
- /**
42
- * Create database tables
43
- */
44
- private createTables;
45
- /**
46
- * Insert or update code chunks (batch operation)
47
- */
48
- insertChunks(chunks: CodeChunk[]): void;
49
- /**
50
- * Delete chunks by file path
51
- */
52
- deleteChunksByFile(filePath: string): void;
53
- /**
54
- * Get chunks by file path
55
- */
56
- getChunksByFile(filePath: string): CodeChunk[];
57
- /**
58
- * Check if file has been indexed by hash
59
- */
60
- hasFileHash(fileHash: string): boolean;
61
- /**
62
- * Get total chunks count
63
- */
64
- getTotalChunks(): number;
65
- /**
66
- * Search similar code chunks by embedding
67
- * Uses cosine similarity
68
- */
69
- searchSimilar(queryEmbedding: number[], limit?: number): CodeChunk[];
70
- /**
71
- * Update indexing progress
72
- */
73
- updateProgress(progress: Partial<IndexProgress>): void;
74
- /**
75
- * Get current indexing progress
76
- */
77
- getProgress(): IndexProgress;
78
- /**
79
- * Set watcher enabled status
80
- */
81
- setWatcherEnabled(enabled: boolean): void;
82
- /**
83
- * Get watcher enabled status
84
- */
85
- isWatcherEnabled(): boolean;
86
- /**
87
- * Clear all chunks and reset progress
88
- */
89
- clear(): void;
90
- /**
91
- * Close database connection
92
- */
93
- close(): void;
94
- /**
95
- * Convert database row to CodeChunk
96
- */
97
- private rowToChunk;
98
- /**
99
- * Calculate cosine similarity between two vectors
100
- */
101
- private cosineSimilarity;
102
- }