snow-ai 0.4.16 → 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 -384
  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 -1519
  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,12 +0,0 @@
1
- import type { ToolCall } from './toolExecutor.js';
2
- /**
3
- * Format tool call display information for UI rendering
4
- */
5
- export declare function formatToolCallMessage(toolCall: ToolCall): {
6
- toolName: string;
7
- args: Array<{
8
- key: string;
9
- value: string;
10
- isLast: boolean;
11
- }>;
12
- };
@@ -1,115 +0,0 @@
1
- /**
2
- * Format tool call display information for UI rendering
3
- */
4
- export function formatToolCallMessage(toolCall) {
5
- try {
6
- const args = JSON.parse(toolCall.function.arguments);
7
- const argEntries = Object.entries(args);
8
- const formattedArgs = [];
9
- // Edit 工具的长内容参数列表
10
- const editToolLongContentParams = [
11
- 'searchContent',
12
- 'replaceContent',
13
- 'newContent',
14
- 'oldContent',
15
- 'content',
16
- 'completeOldContent',
17
- 'completeNewContent',
18
- ];
19
- // Edit 工具名称列表
20
- const editTools = [
21
- 'filesystem-edit',
22
- 'filesystem-edit_search',
23
- 'filesystem-create',
24
- ];
25
- const isEditTool = editTools.includes(toolCall.function.name);
26
- if (argEntries.length > 0) {
27
- argEntries.forEach(([key, value], idx, arr) => {
28
- let valueStr;
29
- // 对 edit 工具的长内容参数进行特殊处理
30
- if (isEditTool && editToolLongContentParams.includes(key)) {
31
- if (typeof value === 'string') {
32
- const lines = value.split('\n');
33
- const lineCount = lines.length;
34
- if (lineCount > 3) {
35
- // 多行内容:显示行数统计
36
- valueStr = `<${lineCount} lines>`;
37
- }
38
- else if (value.length > 60) {
39
- // 单行但很长:截断显示
40
- valueStr = `"${value.slice(0, 60)}..."`;
41
- }
42
- else {
43
- // 短内容:正常显示
44
- valueStr = `"${value}"`;
45
- }
46
- }
47
- else {
48
- valueStr = JSON.stringify(value);
49
- }
50
- }
51
- else {
52
- // 其他参数:智能处理不同类型
53
- if (typeof value === 'string') {
54
- // 字符串类型
55
- valueStr =
56
- value.length > 60 ? `"${value.slice(0, 60)}..."` : `"${value}"`;
57
- }
58
- else if (Array.isArray(value)) {
59
- // 数组类型:显示元素数量
60
- if (value.length === 0) {
61
- valueStr = '[]';
62
- }
63
- else if (value.length === 1) {
64
- // 单个元素:尝试简化显示
65
- const item = value[0];
66
- if (typeof item === 'object' && item !== null) {
67
- const keys = Object.keys(item);
68
- valueStr = `[{${keys.slice(0, 2).join(', ')}${keys.length > 2 ? ', ...' : ''}}]`;
69
- }
70
- else {
71
- valueStr = JSON.stringify(value);
72
- }
73
- }
74
- else {
75
- // 多个元素:显示数量
76
- valueStr = `<array with ${value.length} items>`;
77
- }
78
- }
79
- else if (typeof value === 'object' && value !== null) {
80
- // 对象类型:显示键名
81
- const keys = Object.keys(value);
82
- if (keys.length === 0) {
83
- valueStr = '{}';
84
- }
85
- else if (keys.length <= 3) {
86
- valueStr = `{${keys.join(', ')}}`;
87
- }
88
- else {
89
- valueStr = `{${keys.slice(0, 3).join(', ')}, ...}`;
90
- }
91
- }
92
- else {
93
- // 其他类型(数字、布尔等)
94
- valueStr = JSON.stringify(value);
95
- }
96
- }
97
- formattedArgs.push({
98
- key,
99
- value: valueStr,
100
- isLast: idx === arr.length - 1,
101
- });
102
- });
103
- }
104
- return {
105
- toolName: toolCall.function.name,
106
- args: formattedArgs,
107
- };
108
- }
109
- catch (e) {
110
- return {
111
- toolName: toolCall.function.name,
112
- args: [],
113
- };
114
- }
115
- }
@@ -1,59 +0,0 @@
1
- /**
2
- * 备忘录条目接口
3
- */
4
- export interface NotebookEntry {
5
- id: string;
6
- filePath: string;
7
- note: string;
8
- createdAt: string;
9
- updatedAt: string;
10
- }
11
- /**
12
- * 添加备忘录
13
- * @param filePath 文件路径
14
- * @param note 备忘说明
15
- * @returns 添加的备忘录条目
16
- */
17
- export declare function addNotebook(filePath: string, note: string): NotebookEntry;
18
- /**
19
- * 查询备忘录
20
- * @param filePathPattern 文件路径(支持模糊匹配)
21
- * @param topN 返回最新的N条记录(默认10)
22
- * @returns 匹配的备忘录条目列表
23
- */
24
- export declare function queryNotebook(filePathPattern?: string, topN?: number): NotebookEntry[];
25
- /**
26
- * 获取指定文件的所有备忘录
27
- * @param filePath 文件路径
28
- * @returns 该文件的所有备忘录
29
- */
30
- export declare function getNotebooksByFile(filePath: string): NotebookEntry[];
31
- /**
32
- * 更新备忘录内容
33
- * @param notebookId 备忘录ID
34
- * @param newNote 新的备忘说明
35
- * @returns 更新后的备忘录条目,如果未找到则返回null
36
- */
37
- export declare function updateNotebook(notebookId: string, newNote: string): NotebookEntry | null;
38
- /**
39
- * 删除备忘录
40
- * @param notebookId 备忘录ID
41
- * @returns 是否删除成功
42
- */
43
- export declare function deleteNotebook(notebookId: string): boolean;
44
- /**
45
- * 清空指定文件的所有备忘录
46
- * @param filePath 文件路径
47
- */
48
- export declare function clearNotebooksByFile(filePath: string): void;
49
- /**
50
- * 获取所有备忘录统计信息
51
- */
52
- export declare function getNotebookStats(): {
53
- totalFiles: number;
54
- totalEntries: number;
55
- files: Array<{
56
- path: string;
57
- count: number;
58
- }>;
59
- };
@@ -1,213 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- const MAX_ENTRIES_PER_FILE = 50;
4
- /**
5
- * 获取备忘录存储目录
6
- */
7
- function getNotebookDir() {
8
- const projectRoot = process.cwd();
9
- const notebookDir = path.join(projectRoot, '.snow', 'notebook');
10
- if (!fs.existsSync(notebookDir)) {
11
- fs.mkdirSync(notebookDir, { recursive: true });
12
- }
13
- return notebookDir;
14
- }
15
- /**
16
- * 获取当前项目的备忘录文件路径
17
- */
18
- function getNotebookFilePath() {
19
- const projectRoot = process.cwd();
20
- const projectName = path.basename(projectRoot);
21
- const notebookDir = getNotebookDir();
22
- return path.join(notebookDir, `${projectName}.json`);
23
- }
24
- /**
25
- * 读取备忘录数据
26
- */
27
- function readNotebookData() {
28
- const filePath = getNotebookFilePath();
29
- if (!fs.existsSync(filePath)) {
30
- return {};
31
- }
32
- try {
33
- const content = fs.readFileSync(filePath, 'utf-8');
34
- return JSON.parse(content);
35
- }
36
- catch (error) {
37
- console.error('Failed to read notebook data:', error);
38
- return {};
39
- }
40
- }
41
- /**
42
- * 保存备忘录数据
43
- */
44
- function saveNotebookData(data) {
45
- const filePath = getNotebookFilePath();
46
- try {
47
- fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf-8');
48
- }
49
- catch (error) {
50
- console.error('Failed to save notebook data:', error);
51
- throw error;
52
- }
53
- }
54
- /**
55
- * 规范化文件路径(转换为相对于项目根目录的路径)
56
- */
57
- function normalizePath(filePath) {
58
- const projectRoot = process.cwd();
59
- // 如果是绝对路径,转换为相对路径
60
- if (path.isAbsolute(filePath)) {
61
- return path.relative(projectRoot, filePath).replace(/\\/g, '/');
62
- }
63
- // 已经是相对路径,规范化斜杠并移除 ./ 前缀
64
- let normalized = filePath.replace(/\\/g, '/');
65
- // 移除开头的 ./ 前缀
66
- if (normalized.startsWith('./')) {
67
- normalized = normalized.substring(2);
68
- }
69
- return normalized;
70
- }
71
- /**
72
- * 添加备忘录
73
- * @param filePath 文件路径
74
- * @param note 备忘说明
75
- * @returns 添加的备忘录条目
76
- */
77
- export function addNotebook(filePath, note) {
78
- const normalizedPath = normalizePath(filePath);
79
- const data = readNotebookData();
80
- if (!data[normalizedPath]) {
81
- data[normalizedPath] = [];
82
- }
83
- // 创建新的备忘录条目(使用本地时间)
84
- const now = new Date();
85
- const localTimeStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}T${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')}.${String(now.getMilliseconds()).padStart(3, '0')}`;
86
- const entry = {
87
- id: `notebook-${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
88
- filePath: normalizedPath,
89
- note,
90
- createdAt: localTimeStr,
91
- updatedAt: localTimeStr,
92
- };
93
- // 添加到数组开头(最新的在前面)
94
- data[normalizedPath].unshift(entry);
95
- // 限制每个文件最多50条备忘录
96
- if (data[normalizedPath].length > MAX_ENTRIES_PER_FILE) {
97
- data[normalizedPath] = data[normalizedPath].slice(0, MAX_ENTRIES_PER_FILE);
98
- }
99
- saveNotebookData(data);
100
- return entry;
101
- }
102
- /**
103
- * 查询备忘录
104
- * @param filePathPattern 文件路径(支持模糊匹配)
105
- * @param topN 返回最新的N条记录(默认10)
106
- * @returns 匹配的备忘录条目列表
107
- */
108
- export function queryNotebook(filePathPattern = '', topN = 10) {
109
- const data = readNotebookData();
110
- const results = [];
111
- // 规范化搜索模式(移除 ./ 前缀等)
112
- const normalizedPattern = filePathPattern
113
- ? normalizePath(filePathPattern).toLowerCase()
114
- : '';
115
- // 遍历所有文件路径
116
- for (const [filePath, entries] of Object.entries(data)) {
117
- // 如果没有指定模式,或者文件路径包含模式
118
- if (!normalizedPattern ||
119
- filePath.toLowerCase().includes(normalizedPattern)) {
120
- results.push(...entries);
121
- }
122
- }
123
- // 按创建时间倒序排序(最新的在前)
124
- results.sort((a, b) => {
125
- return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
126
- });
127
- // 返回 TopN 条记录
128
- return results.slice(0, topN);
129
- }
130
- /**
131
- * 获取指定文件的所有备忘录
132
- * @param filePath 文件路径
133
- * @returns 该文件的所有备忘录
134
- */
135
- export function getNotebooksByFile(filePath) {
136
- const normalizedPath = normalizePath(filePath);
137
- const data = readNotebookData();
138
- return data[normalizedPath] || [];
139
- }
140
- /**
141
- * 更新备忘录内容
142
- * @param notebookId 备忘录ID
143
- * @param newNote 新的备忘说明
144
- * @returns 更新后的备忘录条目,如果未找到则返回null
145
- */
146
- export function updateNotebook(notebookId, newNote) {
147
- const data = readNotebookData();
148
- let updatedEntry = null;
149
- for (const [, entries] of Object.entries(data)) {
150
- const entry = entries.find(e => e.id === notebookId);
151
- if (entry) {
152
- // 更新笔记内容和更新时间
153
- entry.note = newNote;
154
- const now = new Date();
155
- entry.updatedAt = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}T${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')}.${String(now.getMilliseconds()).padStart(3, '0')}`;
156
- updatedEntry = entry;
157
- break;
158
- }
159
- }
160
- if (updatedEntry) {
161
- saveNotebookData(data);
162
- }
163
- return updatedEntry;
164
- }
165
- /**
166
- * 删除备忘录
167
- * @param notebookId 备忘录ID
168
- * @returns 是否删除成功
169
- */
170
- export function deleteNotebook(notebookId) {
171
- const data = readNotebookData();
172
- let found = false;
173
- for (const [, entries] of Object.entries(data)) {
174
- const index = entries.findIndex(entry => entry.id === notebookId);
175
- if (index !== -1) {
176
- entries.splice(index, 1);
177
- found = true;
178
- break;
179
- }
180
- }
181
- if (found) {
182
- saveNotebookData(data);
183
- }
184
- return found;
185
- }
186
- /**
187
- * 清空指定文件的所有备忘录
188
- * @param filePath 文件路径
189
- */
190
- export function clearNotebooksByFile(filePath) {
191
- const normalizedPath = normalizePath(filePath);
192
- const data = readNotebookData();
193
- if (data[normalizedPath]) {
194
- delete data[normalizedPath];
195
- saveNotebookData(data);
196
- }
197
- }
198
- /**
199
- * 获取所有备忘录统计信息
200
- */
201
- export function getNotebookStats() {
202
- const data = readNotebookData();
203
- const files = Object.entries(data).map(([path, entries]) => ({
204
- path,
205
- count: entries.length,
206
- }));
207
- const totalEntries = files.reduce((sum, file) => sum + file.count, 0);
208
- return {
209
- totalFiles: files.length,
210
- totalEntries,
211
- files: files.sort((a, b) => b.count - a.count),
212
- };
213
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Patch cli-highlight to gracefully handle unknown languages
3
- * This must be loaded BEFORE any modules that use cli-highlight
4
- */
5
- export {};
@@ -1,23 +0,0 @@
1
- /**
2
- * Patch cli-highlight to gracefully handle unknown languages
3
- * This must be loaded BEFORE any modules that use cli-highlight
4
- */
5
- import { createRequire } from 'node:module';
6
- const require = createRequire(import.meta.url);
7
- const cliHighlightModule = require('cli-highlight');
8
- const originalHighlight = cliHighlightModule.highlight;
9
- // Override the highlight function to handle unknown languages gracefully
10
- cliHighlightModule.highlight = function (code, options) {
11
- try {
12
- return originalHighlight(code, options);
13
- }
14
- catch (error) {
15
- // If the error is about an unknown language, return the original code without highlighting
16
- if (error?.message?.includes('Unknown language') ||
17
- error?.message?.includes('Could not find the language')) {
18
- return code;
19
- }
20
- // Re-throw other unexpected errors
21
- throw error;
22
- }
23
- };
@@ -1,27 +0,0 @@
1
- import { ChildProcess } from 'child_process';
2
- /**
3
- * Process Manager
4
- * Tracks and manages all child processes to ensure proper cleanup
5
- */
6
- declare class ProcessManager {
7
- private processes;
8
- private isShuttingDown;
9
- /**
10
- * Register a child process for tracking
11
- */
12
- register(process: ChildProcess): void;
13
- /**
14
- * Kill a specific process gracefully
15
- */
16
- private killProcess;
17
- /**
18
- * Kill all tracked processes
19
- */
20
- killAll(): void;
21
- /**
22
- * Get count of active processes
23
- */
24
- getActiveCount(): number;
25
- }
26
- export declare const processManager: ProcessManager;
27
- export {};
@@ -1,75 +0,0 @@
1
- /**
2
- * Process Manager
3
- * Tracks and manages all child processes to ensure proper cleanup
4
- */
5
- class ProcessManager {
6
- constructor() {
7
- Object.defineProperty(this, "processes", {
8
- enumerable: true,
9
- configurable: true,
10
- writable: true,
11
- value: new Set()
12
- });
13
- Object.defineProperty(this, "isShuttingDown", {
14
- enumerable: true,
15
- configurable: true,
16
- writable: true,
17
- value: false
18
- });
19
- }
20
- /**
21
- * Register a child process for tracking
22
- */
23
- register(process) {
24
- if (this.isShuttingDown) {
25
- // If we're already shutting down, kill immediately
26
- this.killProcess(process);
27
- return;
28
- }
29
- this.processes.add(process);
30
- // Auto-remove when process exits
31
- const cleanup = () => {
32
- this.processes.delete(process);
33
- };
34
- process.once('exit', cleanup);
35
- process.once('error', cleanup);
36
- }
37
- /**
38
- * Kill a specific process gracefully
39
- */
40
- killProcess(process) {
41
- try {
42
- if (process.pid && !process.killed) {
43
- // Try graceful termination first
44
- process.kill('SIGTERM');
45
- // Force kill after 1 second if still alive
46
- setTimeout(() => {
47
- if (process.pid && !process.killed) {
48
- process.kill('SIGKILL');
49
- }
50
- }, 1000);
51
- }
52
- }
53
- catch (error) {
54
- // Process might already be dead, ignore errors
55
- }
56
- }
57
- /**
58
- * Kill all tracked processes
59
- */
60
- killAll() {
61
- this.isShuttingDown = true;
62
- for (const process of this.processes) {
63
- this.killProcess(process);
64
- }
65
- this.processes.clear();
66
- }
67
- /**
68
- * Get count of active processes
69
- */
70
- getActiveCount() {
71
- return this.processes.size;
72
- }
73
- }
74
- // Export singleton instance
75
- export const processManager = new ProcessManager();
@@ -1,15 +0,0 @@
1
- import type { Agent as HttpAgent } from 'http';
2
- import type { Agent as HttpsAgent } from 'https';
3
- /**
4
- * 创建代理 Agent(如果启用了代理)
5
- * @param targetUrl - 目标 URL,用于判断是否使用 HTTPS
6
- * @returns HTTP/HTTPS Agent,如果未启用代理则返回 undefined
7
- */
8
- export declare function createProxyAgent(targetUrl: string): HttpAgent | HttpsAgent | undefined;
9
- /**
10
- * 为 fetch 请求添加代理支持
11
- * @param url - 请求 URL
12
- * @param options - fetch 选项
13
- * @returns 添加了代理支持的 fetch 选项
14
- */
15
- export declare function addProxyToFetchOptions(url: string, options?: RequestInit): RequestInit;
@@ -1,50 +0,0 @@
1
- import { getProxyConfig } from './apiConfig.js';
2
- import { HttpsProxyAgent } from 'https-proxy-agent';
3
- import { HttpProxyAgent } from 'http-proxy-agent';
4
- /**
5
- * 创建代理 Agent(如果启用了代理)
6
- * @param targetUrl - 目标 URL,用于判断是否使用 HTTPS
7
- * @returns HTTP/HTTPS Agent,如果未启用代理则返回 undefined
8
- */
9
- export function createProxyAgent(targetUrl) {
10
- const proxyConfig = getProxyConfig();
11
- // 如果代理未启用,直接返回 undefined
12
- if (!proxyConfig.enabled) {
13
- return undefined;
14
- }
15
- // 构建代理 URL
16
- const proxyUrl = `http://127.0.0.1:${proxyConfig.port}`;
17
- // 根据目标 URL 协议选择合适的代理 Agent
18
- try {
19
- const url = new URL(targetUrl);
20
- if (url.protocol === 'https:') {
21
- return new HttpsProxyAgent(proxyUrl);
22
- }
23
- else {
24
- return new HttpProxyAgent(proxyUrl);
25
- }
26
- }
27
- catch (error) {
28
- // URL 解析失败,默认使用 HTTPS
29
- return new HttpsProxyAgent(proxyUrl);
30
- }
31
- }
32
- /**
33
- * 为 fetch 请求添加代理支持
34
- * @param url - 请求 URL
35
- * @param options - fetch 选项
36
- * @returns 添加了代理支持的 fetch 选项
37
- */
38
- export function addProxyToFetchOptions(url, options = {}) {
39
- const agent = createProxyAgent(url);
40
- if (!agent) {
41
- return options;
42
- }
43
- // 添加 agent 到 fetch 选项
44
- // 注意:Node.js 的 fetch 支持 dispatcher 选项
45
- return {
46
- ...options,
47
- // @ts-ignore - Node.js fetch 支持 agent
48
- agent,
49
- };
50
- }
@@ -1,65 +0,0 @@
1
- /**
2
- * Resource Monitor - Track memory usage and potential leaks
3
- */
4
- interface ResourceStats {
5
- timestamp: number;
6
- memoryUsage: NodeJS.MemoryUsage;
7
- activeEncoders: number;
8
- activeMCPConnections: number;
9
- }
10
- declare class ResourceMonitor {
11
- private stats;
12
- private readonly maxStatsHistory;
13
- private activeEncoders;
14
- private activeMCPConnections;
15
- private monitoringInterval;
16
- /**
17
- * Start monitoring resources
18
- */
19
- startMonitoring(intervalMs?: number): void;
20
- /**
21
- * Stop monitoring resources
22
- */
23
- stopMonitoring(): void;
24
- /**
25
- * Collect current resource stats
26
- */
27
- private collectStats;
28
- /**
29
- * Track encoder creation
30
- */
31
- trackEncoderCreated(): void;
32
- /**
33
- * Track encoder freed
34
- */
35
- trackEncoderFreed(): void;
36
- /**
37
- * Track MCP connection opened
38
- */
39
- trackMCPConnectionOpened(serviceName: string): void;
40
- /**
41
- * Track MCP connection closed
42
- */
43
- trackMCPConnectionClosed(serviceName: string): void;
44
- /**
45
- * Get current stats
46
- */
47
- getCurrentStats(): ResourceStats | null;
48
- /**
49
- * Get stats history
50
- */
51
- getStatsHistory(): ResourceStats[];
52
- /**
53
- * Check if there are potential memory leaks
54
- */
55
- checkForLeaks(): {
56
- hasLeak: boolean;
57
- reasons: string[];
58
- };
59
- /**
60
- * Force garbage collection if available
61
- */
62
- forceGC(): void;
63
- }
64
- export declare const resourceMonitor: ResourceMonitor;
65
- export {};