snow-ai 0.4.15 → 0.4.17

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 (351) hide show
  1. package/bundle/cli.mjs +477445 -0
  2. package/bundle/sql-wasm.wasm +0 -0
  3. package/package.json +31 -26
  4. package/dist/agents/codebaseIndexAgent.d.ts +0 -102
  5. package/dist/agents/codebaseIndexAgent.js +0 -641
  6. package/dist/agents/codebaseReviewAgent.d.ts +0 -61
  7. package/dist/agents/codebaseReviewAgent.js +0 -301
  8. package/dist/agents/compactAgent.d.ts +0 -55
  9. package/dist/agents/compactAgent.js +0 -306
  10. package/dist/agents/promptOptimizeAgent.d.ts +0 -54
  11. package/dist/agents/promptOptimizeAgent.js +0 -268
  12. package/dist/agents/reviewAgent.d.ts +0 -50
  13. package/dist/agents/reviewAgent.js +0 -265
  14. package/dist/agents/summaryAgent.d.ts +0 -57
  15. package/dist/agents/summaryAgent.js +0 -260
  16. package/dist/api/anthropic.d.ts +0 -44
  17. package/dist/api/anthropic.js +0 -598
  18. package/dist/api/chat.d.ts +0 -73
  19. package/dist/api/chat.js +0 -386
  20. package/dist/api/embedding.d.ts +0 -34
  21. package/dist/api/embedding.js +0 -80
  22. package/dist/api/gemini.d.ts +0 -31
  23. package/dist/api/gemini.js +0 -445
  24. package/dist/api/models.d.ts +0 -15
  25. package/dist/api/models.js +0 -139
  26. package/dist/api/responses.d.ts +0 -38
  27. package/dist/api/responses.js +0 -515
  28. package/dist/api/systemPrompt.d.ts +0 -4
  29. package/dist/api/systemPrompt.js +0 -408
  30. package/dist/api/types.d.ts +0 -53
  31. package/dist/api/types.js +0 -4
  32. package/dist/app.d.ts +0 -8
  33. package/dist/app.js +0 -112
  34. package/dist/cli.d.ts +0 -2
  35. package/dist/cli.js +0 -199
  36. package/dist/hooks/useAgentPicker.d.ts +0 -14
  37. package/dist/hooks/useAgentPicker.js +0 -119
  38. package/dist/hooks/useClipboard.d.ts +0 -4
  39. package/dist/hooks/useClipboard.js +0 -175
  40. package/dist/hooks/useCommandHandler.d.ts +0 -35
  41. package/dist/hooks/useCommandHandler.js +0 -346
  42. package/dist/hooks/useCommandPanel.d.ts +0 -17
  43. package/dist/hooks/useCommandPanel.js +0 -114
  44. package/dist/hooks/useConversation.d.ts +0 -49
  45. package/dist/hooks/useConversation.js +0 -1052
  46. package/dist/hooks/useFilePicker.d.ts +0 -18
  47. package/dist/hooks/useFilePicker.js +0 -224
  48. package/dist/hooks/useGlobalExit.d.ts +0 -5
  49. package/dist/hooks/useGlobalExit.js +0 -34
  50. package/dist/hooks/useGlobalNavigation.d.ts +0 -6
  51. package/dist/hooks/useGlobalNavigation.js +0 -17
  52. package/dist/hooks/useHistoryNavigation.d.ts +0 -35
  53. package/dist/hooks/useHistoryNavigation.js +0 -133
  54. package/dist/hooks/useInputBuffer.d.ts +0 -6
  55. package/dist/hooks/useInputBuffer.js +0 -45
  56. package/dist/hooks/useKeyboardInput.d.ts +0 -80
  57. package/dist/hooks/useKeyboardInput.js +0 -608
  58. package/dist/hooks/useSessionManagement.d.ts +0 -10
  59. package/dist/hooks/useSessionManagement.js +0 -43
  60. package/dist/hooks/useSessionSave.d.ts +0 -8
  61. package/dist/hooks/useSessionSave.js +0 -63
  62. package/dist/hooks/useSnapshotState.d.ts +0 -26
  63. package/dist/hooks/useSnapshotState.js +0 -28
  64. package/dist/hooks/useStreamingState.d.ts +0 -33
  65. package/dist/hooks/useStreamingState.js +0 -105
  66. package/dist/hooks/useTerminalFocus.d.ts +0 -28
  67. package/dist/hooks/useTerminalFocus.js +0 -87
  68. package/dist/hooks/useTerminalSize.d.ts +0 -4
  69. package/dist/hooks/useTerminalSize.js +0 -20
  70. package/dist/hooks/useTodoPicker.d.ts +0 -16
  71. package/dist/hooks/useTodoPicker.js +0 -94
  72. package/dist/hooks/useToolConfirmation.d.ts +0 -19
  73. package/dist/hooks/useToolConfirmation.js +0 -61
  74. package/dist/hooks/useVSCodeState.d.ts +0 -8
  75. package/dist/hooks/useVSCodeState.js +0 -81
  76. package/dist/i18n/I18nContext.d.ts +0 -14
  77. package/dist/i18n/I18nContext.js +0 -24
  78. package/dist/i18n/index.d.ts +0 -3
  79. package/dist/i18n/index.js +0 -2
  80. package/dist/i18n/lang/en.d.ts +0 -2
  81. package/dist/i18n/lang/en.js +0 -502
  82. package/dist/i18n/lang/es.d.ts +0 -2
  83. package/dist/i18n/lang/es.js +0 -502
  84. package/dist/i18n/lang/ja.d.ts +0 -2
  85. package/dist/i18n/lang/ja.js +0 -502
  86. package/dist/i18n/lang/ko.d.ts +0 -2
  87. package/dist/i18n/lang/ko.js +0 -502
  88. package/dist/i18n/lang/zh-TW.d.ts +0 -2
  89. package/dist/i18n/lang/zh-TW.js +0 -502
  90. package/dist/i18n/lang/zh.d.ts +0 -2
  91. package/dist/i18n/lang/zh.js +0 -502
  92. package/dist/i18n/translations.d.ts +0 -2
  93. package/dist/i18n/translations.js +0 -14
  94. package/dist/i18n/types.d.ts +0 -478
  95. package/dist/i18n/types.js +0 -1
  96. package/dist/mcp/aceCodeSearch.d.ts +0 -247
  97. package/dist/mcp/aceCodeSearch.js +0 -1058
  98. package/dist/mcp/bash.d.ts +0 -50
  99. package/dist/mcp/bash.js +0 -153
  100. package/dist/mcp/codebaseSearch.d.ts +0 -44
  101. package/dist/mcp/codebaseSearch.js +0 -275
  102. package/dist/mcp/filesystem.d.ts +0 -392
  103. package/dist/mcp/filesystem.js +0 -1445
  104. package/dist/mcp/ideDiagnostics.d.ts +0 -36
  105. package/dist/mcp/ideDiagnostics.js +0 -90
  106. package/dist/mcp/notebook.d.ts +0 -10
  107. package/dist/mcp/notebook.js +0 -367
  108. package/dist/mcp/subagent.d.ts +0 -37
  109. package/dist/mcp/subagent.js +0 -113
  110. package/dist/mcp/todo.d.ts +0 -46
  111. package/dist/mcp/todo.js +0 -511
  112. package/dist/mcp/types/aceCodeSearch.types.d.ts +0 -92
  113. package/dist/mcp/types/aceCodeSearch.types.js +0 -4
  114. package/dist/mcp/types/bash.types.d.ts +0 -13
  115. package/dist/mcp/types/bash.types.js +0 -4
  116. package/dist/mcp/types/filesystem.types.d.ts +0 -210
  117. package/dist/mcp/types/filesystem.types.js +0 -27
  118. package/dist/mcp/types/todo.types.d.ts +0 -27
  119. package/dist/mcp/types/todo.types.js +0 -4
  120. package/dist/mcp/types/websearch.types.d.ts +0 -30
  121. package/dist/mcp/types/websearch.types.js +0 -4
  122. package/dist/mcp/utils/aceCodeSearch/filesystem.utils.d.ts +0 -34
  123. package/dist/mcp/utils/aceCodeSearch/filesystem.utils.js +0 -146
  124. package/dist/mcp/utils/aceCodeSearch/language.utils.d.ts +0 -14
  125. package/dist/mcp/utils/aceCodeSearch/language.utils.js +0 -418
  126. package/dist/mcp/utils/aceCodeSearch/search.utils.d.ts +0 -31
  127. package/dist/mcp/utils/aceCodeSearch/search.utils.js +0 -136
  128. package/dist/mcp/utils/aceCodeSearch/symbol.utils.d.ts +0 -20
  129. package/dist/mcp/utils/aceCodeSearch/symbol.utils.js +0 -141
  130. package/dist/mcp/utils/bash/security.utils.d.ts +0 -20
  131. package/dist/mcp/utils/bash/security.utils.js +0 -34
  132. package/dist/mcp/utils/filesystem/batch-operations.utils.d.ts +0 -39
  133. package/dist/mcp/utils/filesystem/batch-operations.utils.js +0 -182
  134. package/dist/mcp/utils/filesystem/code-analysis.utils.d.ts +0 -18
  135. package/dist/mcp/utils/filesystem/code-analysis.utils.js +0 -165
  136. package/dist/mcp/utils/filesystem/match-finder.utils.d.ts +0 -16
  137. package/dist/mcp/utils/filesystem/match-finder.utils.js +0 -85
  138. package/dist/mcp/utils/filesystem/office-parser.utils.d.ts +0 -43
  139. package/dist/mcp/utils/filesystem/office-parser.utils.js +0 -163
  140. package/dist/mcp/utils/filesystem/path-fixer.utils.d.ts +0 -7
  141. package/dist/mcp/utils/filesystem/path-fixer.utils.js +0 -60
  142. package/dist/mcp/utils/filesystem/similarity.utils.d.ts +0 -22
  143. package/dist/mcp/utils/filesystem/similarity.utils.js +0 -75
  144. package/dist/mcp/utils/todo/date.utils.d.ts +0 -9
  145. package/dist/mcp/utils/todo/date.utils.js +0 -14
  146. package/dist/mcp/utils/websearch/browser.utils.d.ts +0 -8
  147. package/dist/mcp/utils/websearch/browser.utils.js +0 -58
  148. package/dist/mcp/utils/websearch/text.utils.d.ts +0 -16
  149. package/dist/mcp/utils/websearch/text.utils.js +0 -39
  150. package/dist/mcp/websearch.d.ts +0 -88
  151. package/dist/mcp/websearch.js +0 -375
  152. package/dist/test/logger-test.d.ts +0 -1
  153. package/dist/test/logger-test.js +0 -7
  154. package/dist/types/index.d.ts +0 -15
  155. package/dist/types/index.js +0 -1
  156. package/dist/ui/components/AgentPickerPanel.d.ts +0 -10
  157. package/dist/ui/components/AgentPickerPanel.js +0 -74
  158. package/dist/ui/components/ChatInput.d.ts +0 -46
  159. package/dist/ui/components/ChatInput.js +0 -379
  160. package/dist/ui/components/CommandPanel.d.ts +0 -15
  161. package/dist/ui/components/CommandPanel.js +0 -80
  162. package/dist/ui/components/DiffViewer.d.ts +0 -11
  163. package/dist/ui/components/DiffViewer.js +0 -178
  164. package/dist/ui/components/FileList.d.ts +0 -15
  165. package/dist/ui/components/FileList.js +0 -360
  166. package/dist/ui/components/FileRollbackConfirmation.d.ts +0 -8
  167. package/dist/ui/components/FileRollbackConfirmation.js +0 -108
  168. package/dist/ui/components/HelpPanel.d.ts +0 -2
  169. package/dist/ui/components/HelpPanel.js +0 -67
  170. package/dist/ui/components/MCPInfoPanel.d.ts +0 -2
  171. package/dist/ui/components/MCPInfoPanel.js +0 -108
  172. package/dist/ui/components/MCPInfoScreen.d.ts +0 -7
  173. package/dist/ui/components/MCPInfoScreen.js +0 -115
  174. package/dist/ui/components/MarkdownRenderer.d.ts +0 -6
  175. package/dist/ui/components/MarkdownRenderer.js +0 -70
  176. package/dist/ui/components/Menu.d.ts +0 -17
  177. package/dist/ui/components/Menu.js +0 -88
  178. package/dist/ui/components/MessageList.d.ts +0 -56
  179. package/dist/ui/components/MessageList.js +0 -97
  180. package/dist/ui/components/PendingMessages.d.ts +0 -13
  181. package/dist/ui/components/PendingMessages.js +0 -29
  182. package/dist/ui/components/PendingToolCalls.d.ts +0 -11
  183. package/dist/ui/components/PendingToolCalls.js +0 -35
  184. package/dist/ui/components/ScrollableSelectInput.d.ts +0 -29
  185. package/dist/ui/components/ScrollableSelectInput.js +0 -157
  186. package/dist/ui/components/SessionListPanel.d.ts +0 -7
  187. package/dist/ui/components/SessionListPanel.js +0 -175
  188. package/dist/ui/components/SessionListScreen.d.ts +0 -7
  189. package/dist/ui/components/SessionListScreen.js +0 -217
  190. package/dist/ui/components/SessionListScreenWrapper.d.ts +0 -7
  191. package/dist/ui/components/SessionListScreenWrapper.js +0 -14
  192. package/dist/ui/components/ShimmerText.d.ts +0 -9
  193. package/dist/ui/components/ShimmerText.js +0 -30
  194. package/dist/ui/components/TodoPickerPanel.d.ts +0 -14
  195. package/dist/ui/components/TodoPickerPanel.js +0 -119
  196. package/dist/ui/components/TodoTree.d.ts +0 -15
  197. package/dist/ui/components/TodoTree.js +0 -60
  198. package/dist/ui/components/ToolConfirmation.d.ts +0 -21
  199. package/dist/ui/components/ToolConfirmation.js +0 -204
  200. package/dist/ui/components/ToolResultPreview.d.ts +0 -13
  201. package/dist/ui/components/ToolResultPreview.js +0 -337
  202. package/dist/ui/components/UsagePanel.d.ts +0 -2
  203. package/dist/ui/components/UsagePanel.js +0 -394
  204. package/dist/ui/contexts/ThemeContext.d.ts +0 -13
  205. package/dist/ui/contexts/ThemeContext.js +0 -28
  206. package/dist/ui/pages/ChatScreen.d.ts +0 -6
  207. package/dist/ui/pages/ChatScreen.js +0 -1495
  208. package/dist/ui/pages/CodeBaseConfigScreen.d.ts +0 -8
  209. package/dist/ui/pages/CodeBaseConfigScreen.js +0 -350
  210. package/dist/ui/pages/ConfigScreen.d.ts +0 -8
  211. package/dist/ui/pages/ConfigScreen.js +0 -1101
  212. package/dist/ui/pages/CustomHeadersScreen.d.ts +0 -6
  213. package/dist/ui/pages/CustomHeadersScreen.js +0 -502
  214. package/dist/ui/pages/HeadlessModeScreen.d.ts +0 -7
  215. package/dist/ui/pages/HeadlessModeScreen.js +0 -381
  216. package/dist/ui/pages/LanguageSettingsScreen.d.ts +0 -7
  217. package/dist/ui/pages/LanguageSettingsScreen.js +0 -91
  218. package/dist/ui/pages/MCPConfigScreen.d.ts +0 -6
  219. package/dist/ui/pages/MCPConfigScreen.js +0 -55
  220. package/dist/ui/pages/ProxyConfigScreen.d.ts +0 -8
  221. package/dist/ui/pages/ProxyConfigScreen.js +0 -149
  222. package/dist/ui/pages/SensitiveCommandConfigScreen.d.ts +0 -7
  223. package/dist/ui/pages/SensitiveCommandConfigScreen.js +0 -271
  224. package/dist/ui/pages/SubAgentConfigScreen.d.ts +0 -9
  225. package/dist/ui/pages/SubAgentConfigScreen.js +0 -435
  226. package/dist/ui/pages/SubAgentListScreen.d.ts +0 -9
  227. package/dist/ui/pages/SubAgentListScreen.js +0 -131
  228. package/dist/ui/pages/SystemPromptConfigScreen.d.ts +0 -6
  229. package/dist/ui/pages/SystemPromptConfigScreen.js +0 -326
  230. package/dist/ui/pages/ThemeSettingsScreen.d.ts +0 -7
  231. package/dist/ui/pages/ThemeSettingsScreen.js +0 -106
  232. package/dist/ui/pages/WelcomeScreen.d.ts +0 -7
  233. package/dist/ui/pages/WelcomeScreen.js +0 -217
  234. package/dist/ui/themes/index.d.ts +0 -23
  235. package/dist/ui/themes/index.js +0 -140
  236. package/dist/utils/apiConfig.d.ts +0 -126
  237. package/dist/utils/apiConfig.js +0 -423
  238. package/dist/utils/autoCompress.d.ts +0 -15
  239. package/dist/utils/autoCompress.js +0 -24
  240. package/dist/utils/chatExporter.d.ts +0 -9
  241. package/dist/utils/chatExporter.js +0 -118
  242. package/dist/utils/checkpointManager.d.ts +0 -74
  243. package/dist/utils/checkpointManager.js +0 -181
  244. package/dist/utils/codebaseConfig.d.ts +0 -16
  245. package/dist/utils/codebaseConfig.js +0 -67
  246. package/dist/utils/codebaseDatabase.d.ts +0 -102
  247. package/dist/utils/codebaseDatabase.js +0 -333
  248. package/dist/utils/codebaseSearchEvents.d.ts +0 -16
  249. package/dist/utils/codebaseSearchEvents.js +0 -13
  250. package/dist/utils/commandExecutor.d.ts +0 -13
  251. package/dist/utils/commandExecutor.js +0 -26
  252. package/dist/utils/commands/agent.d.ts +0 -2
  253. package/dist/utils/commands/agent.js +0 -12
  254. package/dist/utils/commands/clear.d.ts +0 -2
  255. package/dist/utils/commands/clear.js +0 -12
  256. package/dist/utils/commands/compact.d.ts +0 -2
  257. package/dist/utils/commands/compact.js +0 -12
  258. package/dist/utils/commands/export.d.ts +0 -2
  259. package/dist/utils/commands/export.js +0 -12
  260. package/dist/utils/commands/help.d.ts +0 -2
  261. package/dist/utils/commands/help.js +0 -11
  262. package/dist/utils/commands/home.d.ts +0 -2
  263. package/dist/utils/commands/home.js +0 -34
  264. package/dist/utils/commands/ide.d.ts +0 -2
  265. package/dist/utils/commands/ide.js +0 -32
  266. package/dist/utils/commands/init.d.ts +0 -2
  267. package/dist/utils/commands/init.js +0 -93
  268. package/dist/utils/commands/mcp.d.ts +0 -2
  269. package/dist/utils/commands/mcp.js +0 -12
  270. package/dist/utils/commands/resume.d.ts +0 -2
  271. package/dist/utils/commands/resume.js +0 -12
  272. package/dist/utils/commands/review.d.ts +0 -2
  273. package/dist/utils/commands/review.js +0 -81
  274. package/dist/utils/commands/role.d.ts +0 -2
  275. package/dist/utils/commands/role.js +0 -37
  276. package/dist/utils/commands/todoPicker.d.ts +0 -2
  277. package/dist/utils/commands/todoPicker.js +0 -12
  278. package/dist/utils/commands/usage.d.ts +0 -2
  279. package/dist/utils/commands/usage.js +0 -12
  280. package/dist/utils/commands/yolo.d.ts +0 -2
  281. package/dist/utils/commands/yolo.js +0 -12
  282. package/dist/utils/configManager.d.ts +0 -45
  283. package/dist/utils/configManager.js +0 -303
  284. package/dist/utils/contextCompressor.d.ts +0 -16
  285. package/dist/utils/contextCompressor.js +0 -334
  286. package/dist/utils/devMode.d.ts +0 -13
  287. package/dist/utils/devMode.js +0 -54
  288. package/dist/utils/escapeHandler.d.ts +0 -79
  289. package/dist/utils/escapeHandler.js +0 -153
  290. package/dist/utils/fileDialog.d.ts +0 -9
  291. package/dist/utils/fileDialog.js +0 -74
  292. package/dist/utils/fileUtils.d.ts +0 -40
  293. package/dist/utils/fileUtils.js +0 -185
  294. package/dist/utils/historyManager.d.ts +0 -45
  295. package/dist/utils/historyManager.js +0 -159
  296. package/dist/utils/incrementalSnapshot.d.ts +0 -109
  297. package/dist/utils/incrementalSnapshot.js +0 -383
  298. package/dist/utils/index.d.ts +0 -11
  299. package/dist/utils/index.js +0 -18
  300. package/dist/utils/languageConfig.d.ts +0 -21
  301. package/dist/utils/languageConfig.js +0 -61
  302. package/dist/utils/logger.d.ts +0 -37
  303. package/dist/utils/logger.js +0 -122
  304. package/dist/utils/mcpToolsManager.d.ts +0 -52
  305. package/dist/utils/mcpToolsManager.js +0 -878
  306. package/dist/utils/messageFormatter.d.ts +0 -12
  307. package/dist/utils/messageFormatter.js +0 -115
  308. package/dist/utils/notebookManager.d.ts +0 -59
  309. package/dist/utils/notebookManager.js +0 -213
  310. package/dist/utils/patch-highlight.d.ts +0 -5
  311. package/dist/utils/patch-highlight.js +0 -23
  312. package/dist/utils/processManager.d.ts +0 -27
  313. package/dist/utils/processManager.js +0 -75
  314. package/dist/utils/proxyUtils.d.ts +0 -15
  315. package/dist/utils/proxyUtils.js +0 -50
  316. package/dist/utils/resourceMonitor.d.ts +0 -65
  317. package/dist/utils/resourceMonitor.js +0 -175
  318. package/dist/utils/retryUtils.d.ts +0 -49
  319. package/dist/utils/retryUtils.js +0 -303
  320. package/dist/utils/sensitiveCommandManager.d.ts +0 -53
  321. package/dist/utils/sensitiveCommandManager.js +0 -308
  322. package/dist/utils/sessionConverter.d.ts +0 -7
  323. package/dist/utils/sessionConverter.js +0 -306
  324. package/dist/utils/sessionManager.d.ts +0 -53
  325. package/dist/utils/sessionManager.js +0 -371
  326. package/dist/utils/subAgentConfig.d.ts +0 -50
  327. package/dist/utils/subAgentConfig.js +0 -221
  328. package/dist/utils/subAgentExecutor.d.ts +0 -40
  329. package/dist/utils/subAgentExecutor.js +0 -434
  330. package/dist/utils/terminal.d.ts +0 -5
  331. package/dist/utils/terminal.js +0 -13
  332. package/dist/utils/textBuffer.d.ts +0 -99
  333. package/dist/utils/textBuffer.js +0 -547
  334. package/dist/utils/textUtils.d.ts +0 -37
  335. package/dist/utils/textUtils.js +0 -102
  336. package/dist/utils/themeConfig.d.ts +0 -21
  337. package/dist/utils/themeConfig.js +0 -61
  338. package/dist/utils/todoPreprocessor.d.ts +0 -5
  339. package/dist/utils/todoPreprocessor.js +0 -18
  340. package/dist/utils/todoScanner.d.ts +0 -8
  341. package/dist/utils/todoScanner.js +0 -148
  342. package/dist/utils/toolDisplayConfig.d.ts +0 -16
  343. package/dist/utils/toolDisplayConfig.js +0 -47
  344. package/dist/utils/toolExecutor.d.ts +0 -37
  345. package/dist/utils/toolExecutor.js +0 -224
  346. package/dist/utils/usageLogger.d.ts +0 -11
  347. package/dist/utils/usageLogger.js +0 -114
  348. package/dist/utils/vscodeConnection.d.ts +0 -76
  349. package/dist/utils/vscodeConnection.js +0 -430
  350. package/dist/utils/workspaceSnapshot.d.ts +0 -63
  351. 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
- }