cc-viewer 1.7.22 → 1.8.0

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 (939) hide show
  1. package/README.md +19 -0
  2. package/cli.js +92 -11
  3. package/concepts/ar/GlobalSettings.md +2 -2
  4. package/concepts/ar/Tool-Artifact.md +7 -0
  5. package/concepts/ar/Tool-EndConversation.md +35 -0
  6. package/concepts/ar/Tool-LSP.md +6 -1
  7. package/concepts/ar/Tool-ListAgents.md +35 -0
  8. package/concepts/ar/Tool-ListConnectors.md +34 -0
  9. package/concepts/ar/Tool-ListMcpResources.md +35 -0
  10. package/concepts/ar/Tool-ListPlugins.md +35 -0
  11. package/concepts/ar/Tool-ListSkills.md +37 -0
  12. package/concepts/ar/Tool-Monitor.md +7 -0
  13. package/concepts/ar/Tool-Projects.md +46 -0
  14. package/concepts/ar/Tool-ProposeGoal.md +43 -0
  15. package/concepts/ar/Tool-PushNotification.md +6 -0
  16. package/concepts/ar/Tool-REPL.md +47 -0
  17. package/concepts/ar/Tool-ReadMcpResource.md +32 -0
  18. package/concepts/ar/Tool-ReadMcpResourceDir.md +32 -0
  19. package/concepts/ar/Tool-ReadNotifications.md +27 -0
  20. package/concepts/ar/Tool-RemoteTrigger.md +7 -0
  21. package/concepts/ar/Tool-ScheduleWakeup.md +5 -0
  22. package/concepts/ar/Tool-SearchMcpRegistry.md +31 -0
  23. package/concepts/ar/Tool-SendFeedback.md +38 -0
  24. package/concepts/ar/Tool-SendFile.md +36 -0
  25. package/concepts/ar/Tool-SendMessage.md +5 -0
  26. package/concepts/ar/Tool-SendUserFile.md +38 -0
  27. package/concepts/ar/Tool-SendUserMessage.md +38 -0
  28. package/concepts/ar/Tool-SuggestConnectors.md +28 -0
  29. package/concepts/ar/Tool-SuggestPluginInstall.md +39 -0
  30. package/concepts/ar/Tool-SuggestSkills.md +33 -0
  31. package/concepts/ar/Tool-TaskCreate.md +6 -0
  32. package/concepts/ar/Tool-TaskGet.md +6 -0
  33. package/concepts/ar/Tool-TaskList.md +6 -0
  34. package/concepts/ar/Tool-TaskUpdate.md +6 -0
  35. package/concepts/ar/Tool-TodoWrite.md +43 -0
  36. package/concepts/ar/Tool-ToolSearch.md +5 -0
  37. package/concepts/ar/Tool-WebSearch.md +6 -0
  38. package/concepts/ar/Tools.md +26 -4
  39. package/concepts/da/GlobalSettings.md +2 -2
  40. package/concepts/da/Tool-Artifact.md +8 -1
  41. package/concepts/da/Tool-EndConversation.md +35 -0
  42. package/concepts/da/Tool-LSP.md +6 -1
  43. package/concepts/da/Tool-ListAgents.md +35 -0
  44. package/concepts/da/Tool-ListConnectors.md +34 -0
  45. package/concepts/da/Tool-ListMcpResources.md +35 -0
  46. package/concepts/da/Tool-ListPlugins.md +35 -0
  47. package/concepts/da/Tool-ListSkills.md +37 -0
  48. package/concepts/da/Tool-Monitor.md +7 -0
  49. package/concepts/da/Tool-Projects.md +46 -0
  50. package/concepts/da/Tool-ProposeGoal.md +43 -0
  51. package/concepts/da/Tool-PushNotification.md +6 -0
  52. package/concepts/da/Tool-REPL.md +47 -0
  53. package/concepts/da/Tool-ReadMcpResource.md +32 -0
  54. package/concepts/da/Tool-ReadMcpResourceDir.md +32 -0
  55. package/concepts/da/Tool-ReadNotifications.md +27 -0
  56. package/concepts/da/Tool-RemoteTrigger.md +7 -0
  57. package/concepts/da/Tool-ScheduleWakeup.md +5 -0
  58. package/concepts/da/Tool-SearchMcpRegistry.md +31 -0
  59. package/concepts/da/Tool-SendFeedback.md +38 -0
  60. package/concepts/da/Tool-SendFile.md +36 -0
  61. package/concepts/da/Tool-SendMessage.md +5 -0
  62. package/concepts/da/Tool-SendUserFile.md +38 -0
  63. package/concepts/da/Tool-SendUserMessage.md +38 -0
  64. package/concepts/da/Tool-SuggestConnectors.md +28 -0
  65. package/concepts/da/Tool-SuggestPluginInstall.md +39 -0
  66. package/concepts/da/Tool-SuggestSkills.md +33 -0
  67. package/concepts/da/Tool-TaskCreate.md +6 -0
  68. package/concepts/da/Tool-TaskGet.md +6 -0
  69. package/concepts/da/Tool-TaskList.md +6 -0
  70. package/concepts/da/Tool-TaskUpdate.md +6 -0
  71. package/concepts/da/Tool-TodoWrite.md +43 -0
  72. package/concepts/da/Tool-ToolSearch.md +5 -0
  73. package/concepts/da/Tool-WebSearch.md +6 -0
  74. package/concepts/da/Tools.md +26 -4
  75. package/concepts/de/GlobalSettings.md +2 -2
  76. package/concepts/de/Tool-Artifact.md +7 -0
  77. package/concepts/de/Tool-EndConversation.md +35 -0
  78. package/concepts/de/Tool-LSP.md +6 -1
  79. package/concepts/de/Tool-ListAgents.md +35 -0
  80. package/concepts/de/Tool-ListConnectors.md +34 -0
  81. package/concepts/de/Tool-ListMcpResources.md +35 -0
  82. package/concepts/de/Tool-ListPlugins.md +35 -0
  83. package/concepts/de/Tool-ListSkills.md +37 -0
  84. package/concepts/de/Tool-Monitor.md +7 -0
  85. package/concepts/de/Tool-Projects.md +46 -0
  86. package/concepts/de/Tool-ProposeGoal.md +43 -0
  87. package/concepts/de/Tool-PushNotification.md +6 -0
  88. package/concepts/de/Tool-REPL.md +47 -0
  89. package/concepts/de/Tool-ReadMcpResource.md +32 -0
  90. package/concepts/de/Tool-ReadMcpResourceDir.md +32 -0
  91. package/concepts/de/Tool-ReadNotifications.md +27 -0
  92. package/concepts/de/Tool-RemoteTrigger.md +7 -0
  93. package/concepts/de/Tool-ScheduleWakeup.md +5 -0
  94. package/concepts/de/Tool-SearchMcpRegistry.md +30 -0
  95. package/concepts/de/Tool-SendFeedback.md +38 -0
  96. package/concepts/de/Tool-SendFile.md +36 -0
  97. package/concepts/de/Tool-SendMessage.md +5 -0
  98. package/concepts/de/Tool-SendUserFile.md +38 -0
  99. package/concepts/de/Tool-SendUserMessage.md +38 -0
  100. package/concepts/de/Tool-SuggestConnectors.md +28 -0
  101. package/concepts/de/Tool-SuggestPluginInstall.md +39 -0
  102. package/concepts/de/Tool-SuggestSkills.md +33 -0
  103. package/concepts/de/Tool-TaskCreate.md +6 -0
  104. package/concepts/de/Tool-TaskGet.md +6 -0
  105. package/concepts/de/Tool-TaskList.md +6 -0
  106. package/concepts/de/Tool-TaskUpdate.md +6 -0
  107. package/concepts/de/Tool-TodoWrite.md +43 -0
  108. package/concepts/de/Tool-ToolSearch.md +5 -0
  109. package/concepts/de/Tool-WebSearch.md +6 -0
  110. package/concepts/de/Tools.md +26 -4
  111. package/concepts/en/GlobalSettings.md +2 -2
  112. package/concepts/en/Tool-Artifact.md +7 -0
  113. package/concepts/en/Tool-EndConversation.md +35 -0
  114. package/concepts/en/Tool-LSP.md +5 -0
  115. package/concepts/en/Tool-ListAgents.md +35 -0
  116. package/concepts/en/Tool-ListConnectors.md +34 -0
  117. package/concepts/en/Tool-ListMcpResources.md +35 -0
  118. package/concepts/en/Tool-ListPlugins.md +35 -0
  119. package/concepts/en/Tool-ListSkills.md +37 -0
  120. package/concepts/en/Tool-Monitor.md +7 -0
  121. package/concepts/en/Tool-Projects.md +46 -0
  122. package/concepts/en/Tool-ProposeGoal.md +43 -0
  123. package/concepts/en/Tool-PushNotification.md +6 -0
  124. package/concepts/en/Tool-REPL.md +47 -0
  125. package/concepts/en/Tool-ReadMcpResource.md +32 -0
  126. package/concepts/en/Tool-ReadMcpResourceDir.md +32 -0
  127. package/concepts/en/Tool-ReadNotifications.md +27 -0
  128. package/concepts/en/Tool-RemoteTrigger.md +7 -0
  129. package/concepts/en/Tool-ScheduleWakeup.md +5 -0
  130. package/concepts/en/Tool-SearchMcpRegistry.md +31 -0
  131. package/concepts/en/Tool-SendFeedback.md +38 -0
  132. package/concepts/en/Tool-SendFile.md +36 -0
  133. package/concepts/en/Tool-SendMessage.md +5 -0
  134. package/concepts/en/Tool-SendUserFile.md +38 -0
  135. package/concepts/en/Tool-SendUserMessage.md +38 -0
  136. package/concepts/en/Tool-SuggestConnectors.md +28 -0
  137. package/concepts/en/Tool-SuggestPluginInstall.md +39 -0
  138. package/concepts/en/Tool-SuggestSkills.md +33 -0
  139. package/concepts/en/Tool-TaskCreate.md +6 -0
  140. package/concepts/en/Tool-TaskGet.md +6 -0
  141. package/concepts/en/Tool-TaskList.md +6 -0
  142. package/concepts/en/Tool-TaskUpdate.md +6 -0
  143. package/concepts/en/Tool-TodoWrite.md +43 -0
  144. package/concepts/en/Tool-ToolSearch.md +5 -0
  145. package/concepts/en/Tool-WebSearch.md +6 -0
  146. package/concepts/en/Tools.md +26 -4
  147. package/concepts/es/GlobalSettings.md +2 -2
  148. package/concepts/es/Tool-Artifact.md +7 -0
  149. package/concepts/es/Tool-EndConversation.md +35 -0
  150. package/concepts/es/Tool-LSP.md +5 -0
  151. package/concepts/es/Tool-ListAgents.md +35 -0
  152. package/concepts/es/Tool-ListConnectors.md +34 -0
  153. package/concepts/es/Tool-ListMcpResources.md +35 -0
  154. package/concepts/es/Tool-ListPlugins.md +35 -0
  155. package/concepts/es/Tool-ListSkills.md +37 -0
  156. package/concepts/es/Tool-Monitor.md +7 -0
  157. package/concepts/es/Tool-Projects.md +46 -0
  158. package/concepts/es/Tool-ProposeGoal.md +43 -0
  159. package/concepts/es/Tool-PushNotification.md +6 -0
  160. package/concepts/es/Tool-REPL.md +47 -0
  161. package/concepts/es/Tool-ReadMcpResource.md +32 -0
  162. package/concepts/es/Tool-ReadMcpResourceDir.md +32 -0
  163. package/concepts/es/Tool-ReadNotifications.md +27 -0
  164. package/concepts/es/Tool-RemoteTrigger.md +7 -0
  165. package/concepts/es/Tool-ScheduleWakeup.md +5 -0
  166. package/concepts/es/Tool-SearchMcpRegistry.md +31 -0
  167. package/concepts/es/Tool-SendFeedback.md +38 -0
  168. package/concepts/es/Tool-SendFile.md +36 -0
  169. package/concepts/es/Tool-SendMessage.md +5 -0
  170. package/concepts/es/Tool-SendUserFile.md +38 -0
  171. package/concepts/es/Tool-SendUserMessage.md +38 -0
  172. package/concepts/es/Tool-SuggestConnectors.md +28 -0
  173. package/concepts/es/Tool-SuggestPluginInstall.md +39 -0
  174. package/concepts/es/Tool-SuggestSkills.md +33 -0
  175. package/concepts/es/Tool-TaskCreate.md +6 -0
  176. package/concepts/es/Tool-TaskGet.md +6 -0
  177. package/concepts/es/Tool-TaskList.md +6 -0
  178. package/concepts/es/Tool-TaskUpdate.md +6 -0
  179. package/concepts/es/Tool-TodoWrite.md +43 -0
  180. package/concepts/es/Tool-ToolSearch.md +5 -0
  181. package/concepts/es/Tool-WebSearch.md +6 -0
  182. package/concepts/es/Tools.md +26 -4
  183. package/concepts/fr/GlobalSettings.md +2 -2
  184. package/concepts/fr/Tool-Artifact.md +7 -0
  185. package/concepts/fr/Tool-EndConversation.md +35 -0
  186. package/concepts/fr/Tool-LSP.md +5 -0
  187. package/concepts/fr/Tool-ListAgents.md +35 -0
  188. package/concepts/fr/Tool-ListConnectors.md +34 -0
  189. package/concepts/fr/Tool-ListMcpResources.md +35 -0
  190. package/concepts/fr/Tool-ListPlugins.md +35 -0
  191. package/concepts/fr/Tool-ListSkills.md +37 -0
  192. package/concepts/fr/Tool-Monitor.md +7 -0
  193. package/concepts/fr/Tool-Projects.md +46 -0
  194. package/concepts/fr/Tool-ProposeGoal.md +43 -0
  195. package/concepts/fr/Tool-PushNotification.md +6 -0
  196. package/concepts/fr/Tool-REPL.md +47 -0
  197. package/concepts/fr/Tool-ReadMcpResource.md +32 -0
  198. package/concepts/fr/Tool-ReadMcpResourceDir.md +32 -0
  199. package/concepts/fr/Tool-ReadNotifications.md +27 -0
  200. package/concepts/fr/Tool-RemoteTrigger.md +7 -0
  201. package/concepts/fr/Tool-ScheduleWakeup.md +5 -0
  202. package/concepts/fr/Tool-SearchMcpRegistry.md +31 -0
  203. package/concepts/fr/Tool-SendFeedback.md +38 -0
  204. package/concepts/fr/Tool-SendFile.md +36 -0
  205. package/concepts/fr/Tool-SendMessage.md +5 -0
  206. package/concepts/fr/Tool-SendUserFile.md +38 -0
  207. package/concepts/fr/Tool-SendUserMessage.md +38 -0
  208. package/concepts/fr/Tool-SuggestConnectors.md +28 -0
  209. package/concepts/fr/Tool-SuggestPluginInstall.md +39 -0
  210. package/concepts/fr/Tool-SuggestSkills.md +33 -0
  211. package/concepts/fr/Tool-TaskCreate.md +6 -0
  212. package/concepts/fr/Tool-TaskGet.md +6 -0
  213. package/concepts/fr/Tool-TaskList.md +6 -0
  214. package/concepts/fr/Tool-TaskUpdate.md +6 -0
  215. package/concepts/fr/Tool-TodoWrite.md +43 -0
  216. package/concepts/fr/Tool-ToolSearch.md +5 -0
  217. package/concepts/fr/Tool-WebSearch.md +6 -0
  218. package/concepts/fr/Tools.md +26 -4
  219. package/concepts/it/GlobalSettings.md +2 -2
  220. package/concepts/it/Tool-Artifact.md +7 -0
  221. package/concepts/it/Tool-EndConversation.md +35 -0
  222. package/concepts/it/Tool-LSP.md +5 -0
  223. package/concepts/it/Tool-ListAgents.md +35 -0
  224. package/concepts/it/Tool-ListConnectors.md +34 -0
  225. package/concepts/it/Tool-ListMcpResources.md +35 -0
  226. package/concepts/it/Tool-ListPlugins.md +35 -0
  227. package/concepts/it/Tool-ListSkills.md +37 -0
  228. package/concepts/it/Tool-Monitor.md +7 -0
  229. package/concepts/it/Tool-Projects.md +46 -0
  230. package/concepts/it/Tool-ProposeGoal.md +43 -0
  231. package/concepts/it/Tool-PushNotification.md +6 -0
  232. package/concepts/it/Tool-REPL.md +47 -0
  233. package/concepts/it/Tool-ReadMcpResource.md +32 -0
  234. package/concepts/it/Tool-ReadMcpResourceDir.md +32 -0
  235. package/concepts/it/Tool-ReadNotifications.md +27 -0
  236. package/concepts/it/Tool-RemoteTrigger.md +7 -0
  237. package/concepts/it/Tool-ScheduleWakeup.md +5 -0
  238. package/concepts/it/Tool-SearchMcpRegistry.md +31 -0
  239. package/concepts/it/Tool-SendFeedback.md +38 -0
  240. package/concepts/it/Tool-SendFile.md +36 -0
  241. package/concepts/it/Tool-SendMessage.md +5 -0
  242. package/concepts/it/Tool-SendUserFile.md +38 -0
  243. package/concepts/it/Tool-SendUserMessage.md +38 -0
  244. package/concepts/it/Tool-SuggestConnectors.md +28 -0
  245. package/concepts/it/Tool-SuggestPluginInstall.md +39 -0
  246. package/concepts/it/Tool-SuggestSkills.md +33 -0
  247. package/concepts/it/Tool-TaskCreate.md +6 -0
  248. package/concepts/it/Tool-TaskGet.md +6 -0
  249. package/concepts/it/Tool-TaskList.md +6 -0
  250. package/concepts/it/Tool-TaskUpdate.md +6 -0
  251. package/concepts/it/Tool-TodoWrite.md +43 -0
  252. package/concepts/it/Tool-ToolSearch.md +5 -0
  253. package/concepts/it/Tool-WebSearch.md +6 -0
  254. package/concepts/it/Tools.md +26 -4
  255. package/concepts/ja/GlobalSettings.md +2 -2
  256. package/concepts/ja/Tool-Artifact.md +7 -0
  257. package/concepts/ja/Tool-EndConversation.md +35 -0
  258. package/concepts/ja/Tool-LSP.md +5 -0
  259. package/concepts/ja/Tool-ListAgents.md +35 -0
  260. package/concepts/ja/Tool-ListConnectors.md +34 -0
  261. package/concepts/ja/Tool-ListMcpResources.md +35 -0
  262. package/concepts/ja/Tool-ListPlugins.md +35 -0
  263. package/concepts/ja/Tool-ListSkills.md +37 -0
  264. package/concepts/ja/Tool-Monitor.md +7 -0
  265. package/concepts/ja/Tool-Projects.md +46 -0
  266. package/concepts/ja/Tool-ProposeGoal.md +43 -0
  267. package/concepts/ja/Tool-PushNotification.md +6 -0
  268. package/concepts/ja/Tool-REPL.md +47 -0
  269. package/concepts/ja/Tool-ReadMcpResource.md +32 -0
  270. package/concepts/ja/Tool-ReadMcpResourceDir.md +32 -0
  271. package/concepts/ja/Tool-ReadNotifications.md +27 -0
  272. package/concepts/ja/Tool-RemoteTrigger.md +7 -0
  273. package/concepts/ja/Tool-ScheduleWakeup.md +5 -0
  274. package/concepts/ja/Tool-SearchMcpRegistry.md +31 -0
  275. package/concepts/ja/Tool-SendFeedback.md +38 -0
  276. package/concepts/ja/Tool-SendFile.md +36 -0
  277. package/concepts/ja/Tool-SendMessage.md +5 -0
  278. package/concepts/ja/Tool-SendUserFile.md +38 -0
  279. package/concepts/ja/Tool-SendUserMessage.md +38 -0
  280. package/concepts/ja/Tool-SuggestConnectors.md +28 -0
  281. package/concepts/ja/Tool-SuggestPluginInstall.md +39 -0
  282. package/concepts/ja/Tool-SuggestSkills.md +33 -0
  283. package/concepts/ja/Tool-TaskCreate.md +6 -0
  284. package/concepts/ja/Tool-TaskGet.md +6 -0
  285. package/concepts/ja/Tool-TaskList.md +6 -0
  286. package/concepts/ja/Tool-TaskUpdate.md +6 -0
  287. package/concepts/ja/Tool-TodoWrite.md +43 -0
  288. package/concepts/ja/Tool-ToolSearch.md +5 -0
  289. package/concepts/ja/Tool-WebSearch.md +6 -0
  290. package/concepts/ja/Tools.md +26 -4
  291. package/concepts/ko/GlobalSettings.md +2 -2
  292. package/concepts/ko/Tool-Artifact.md +7 -0
  293. package/concepts/ko/Tool-EndConversation.md +35 -0
  294. package/concepts/ko/Tool-LSP.md +5 -0
  295. package/concepts/ko/Tool-ListAgents.md +35 -0
  296. package/concepts/ko/Tool-ListConnectors.md +34 -0
  297. package/concepts/ko/Tool-ListMcpResources.md +35 -0
  298. package/concepts/ko/Tool-ListPlugins.md +35 -0
  299. package/concepts/ko/Tool-ListSkills.md +37 -0
  300. package/concepts/ko/Tool-Monitor.md +7 -0
  301. package/concepts/ko/Tool-Projects.md +46 -0
  302. package/concepts/ko/Tool-ProposeGoal.md +43 -0
  303. package/concepts/ko/Tool-PushNotification.md +6 -0
  304. package/concepts/ko/Tool-REPL.md +47 -0
  305. package/concepts/ko/Tool-ReadMcpResource.md +32 -0
  306. package/concepts/ko/Tool-ReadMcpResourceDir.md +32 -0
  307. package/concepts/ko/Tool-ReadNotifications.md +27 -0
  308. package/concepts/ko/Tool-RemoteTrigger.md +7 -0
  309. package/concepts/ko/Tool-ScheduleWakeup.md +5 -0
  310. package/concepts/ko/Tool-SearchMcpRegistry.md +31 -0
  311. package/concepts/ko/Tool-SendFeedback.md +38 -0
  312. package/concepts/ko/Tool-SendFile.md +36 -0
  313. package/concepts/ko/Tool-SendMessage.md +5 -0
  314. package/concepts/ko/Tool-SendUserFile.md +38 -0
  315. package/concepts/ko/Tool-SendUserMessage.md +38 -0
  316. package/concepts/ko/Tool-SuggestConnectors.md +28 -0
  317. package/concepts/ko/Tool-SuggestPluginInstall.md +39 -0
  318. package/concepts/ko/Tool-SuggestSkills.md +33 -0
  319. package/concepts/ko/Tool-TaskCreate.md +6 -0
  320. package/concepts/ko/Tool-TaskGet.md +6 -0
  321. package/concepts/ko/Tool-TaskList.md +6 -0
  322. package/concepts/ko/Tool-TaskUpdate.md +6 -0
  323. package/concepts/ko/Tool-TodoWrite.md +43 -0
  324. package/concepts/ko/Tool-ToolSearch.md +5 -0
  325. package/concepts/ko/Tool-WebSearch.md +6 -0
  326. package/concepts/ko/Tools.md +26 -4
  327. package/concepts/no/GlobalSettings.md +2 -2
  328. package/concepts/no/Tool-Artifact.md +7 -0
  329. package/concepts/no/Tool-EndConversation.md +35 -0
  330. package/concepts/no/Tool-LSP.md +7 -2
  331. package/concepts/no/Tool-ListAgents.md +35 -0
  332. package/concepts/no/Tool-ListConnectors.md +34 -0
  333. package/concepts/no/Tool-ListMcpResources.md +35 -0
  334. package/concepts/no/Tool-ListPlugins.md +35 -0
  335. package/concepts/no/Tool-ListSkills.md +37 -0
  336. package/concepts/no/Tool-Monitor.md +7 -0
  337. package/concepts/no/Tool-Projects.md +46 -0
  338. package/concepts/no/Tool-ProposeGoal.md +43 -0
  339. package/concepts/no/Tool-PushNotification.md +6 -0
  340. package/concepts/no/Tool-REPL.md +47 -0
  341. package/concepts/no/Tool-ReadMcpResource.md +32 -0
  342. package/concepts/no/Tool-ReadMcpResourceDir.md +32 -0
  343. package/concepts/no/Tool-ReadNotifications.md +27 -0
  344. package/concepts/no/Tool-RemoteTrigger.md +7 -0
  345. package/concepts/no/Tool-ScheduleWakeup.md +5 -0
  346. package/concepts/no/Tool-SearchMcpRegistry.md +31 -0
  347. package/concepts/no/Tool-SendFeedback.md +38 -0
  348. package/concepts/no/Tool-SendFile.md +36 -0
  349. package/concepts/no/Tool-SendMessage.md +5 -0
  350. package/concepts/no/Tool-SendUserFile.md +38 -0
  351. package/concepts/no/Tool-SendUserMessage.md +38 -0
  352. package/concepts/no/Tool-SuggestConnectors.md +28 -0
  353. package/concepts/no/Tool-SuggestPluginInstall.md +39 -0
  354. package/concepts/no/Tool-SuggestSkills.md +33 -0
  355. package/concepts/no/Tool-TaskCreate.md +6 -0
  356. package/concepts/no/Tool-TaskGet.md +6 -0
  357. package/concepts/no/Tool-TaskList.md +6 -0
  358. package/concepts/no/Tool-TaskUpdate.md +6 -0
  359. package/concepts/no/Tool-TodoWrite.md +43 -0
  360. package/concepts/no/Tool-ToolSearch.md +5 -0
  361. package/concepts/no/Tool-WebSearch.md +6 -0
  362. package/concepts/no/Tools.md +26 -4
  363. package/concepts/pl/GlobalSettings.md +2 -2
  364. package/concepts/pl/Tool-Artifact.md +7 -0
  365. package/concepts/pl/Tool-EndConversation.md +35 -0
  366. package/concepts/pl/Tool-LSP.md +5 -0
  367. package/concepts/pl/Tool-ListAgents.md +35 -0
  368. package/concepts/pl/Tool-ListConnectors.md +34 -0
  369. package/concepts/pl/Tool-ListMcpResources.md +35 -0
  370. package/concepts/pl/Tool-ListPlugins.md +35 -0
  371. package/concepts/pl/Tool-ListSkills.md +37 -0
  372. package/concepts/pl/Tool-Monitor.md +7 -0
  373. package/concepts/pl/Tool-Projects.md +46 -0
  374. package/concepts/pl/Tool-ProposeGoal.md +43 -0
  375. package/concepts/pl/Tool-PushNotification.md +6 -0
  376. package/concepts/pl/Tool-REPL.md +47 -0
  377. package/concepts/pl/Tool-ReadMcpResource.md +32 -0
  378. package/concepts/pl/Tool-ReadMcpResourceDir.md +32 -0
  379. package/concepts/pl/Tool-ReadNotifications.md +27 -0
  380. package/concepts/pl/Tool-RemoteTrigger.md +7 -0
  381. package/concepts/pl/Tool-ScheduleWakeup.md +5 -0
  382. package/concepts/pl/Tool-SearchMcpRegistry.md +31 -0
  383. package/concepts/pl/Tool-SendFeedback.md +38 -0
  384. package/concepts/pl/Tool-SendFile.md +36 -0
  385. package/concepts/pl/Tool-SendMessage.md +5 -0
  386. package/concepts/pl/Tool-SendUserFile.md +38 -0
  387. package/concepts/pl/Tool-SendUserMessage.md +38 -0
  388. package/concepts/pl/Tool-SuggestConnectors.md +28 -0
  389. package/concepts/pl/Tool-SuggestPluginInstall.md +39 -0
  390. package/concepts/pl/Tool-SuggestSkills.md +33 -0
  391. package/concepts/pl/Tool-TaskCreate.md +6 -0
  392. package/concepts/pl/Tool-TaskGet.md +6 -0
  393. package/concepts/pl/Tool-TaskList.md +6 -0
  394. package/concepts/pl/Tool-TaskUpdate.md +6 -0
  395. package/concepts/pl/Tool-TodoWrite.md +43 -0
  396. package/concepts/pl/Tool-ToolSearch.md +5 -0
  397. package/concepts/pl/Tool-WebSearch.md +6 -0
  398. package/concepts/pl/Tools.md +26 -4
  399. package/concepts/pt-BR/GlobalSettings.md +2 -2
  400. package/concepts/pt-BR/Tool-Artifact.md +7 -0
  401. package/concepts/pt-BR/Tool-EndConversation.md +35 -0
  402. package/concepts/pt-BR/Tool-LSP.md +5 -0
  403. package/concepts/pt-BR/Tool-ListAgents.md +35 -0
  404. package/concepts/pt-BR/Tool-ListConnectors.md +34 -0
  405. package/concepts/pt-BR/Tool-ListMcpResources.md +35 -0
  406. package/concepts/pt-BR/Tool-ListPlugins.md +35 -0
  407. package/concepts/pt-BR/Tool-ListSkills.md +37 -0
  408. package/concepts/pt-BR/Tool-Monitor.md +7 -0
  409. package/concepts/pt-BR/Tool-Projects.md +46 -0
  410. package/concepts/pt-BR/Tool-ProposeGoal.md +43 -0
  411. package/concepts/pt-BR/Tool-PushNotification.md +6 -0
  412. package/concepts/pt-BR/Tool-REPL.md +47 -0
  413. package/concepts/pt-BR/Tool-ReadMcpResource.md +32 -0
  414. package/concepts/pt-BR/Tool-ReadMcpResourceDir.md +32 -0
  415. package/concepts/pt-BR/Tool-ReadNotifications.md +27 -0
  416. package/concepts/pt-BR/Tool-RemoteTrigger.md +7 -0
  417. package/concepts/pt-BR/Tool-ScheduleWakeup.md +5 -0
  418. package/concepts/pt-BR/Tool-SearchMcpRegistry.md +31 -0
  419. package/concepts/pt-BR/Tool-SendFeedback.md +38 -0
  420. package/concepts/pt-BR/Tool-SendFile.md +36 -0
  421. package/concepts/pt-BR/Tool-SendMessage.md +5 -0
  422. package/concepts/pt-BR/Tool-SendUserFile.md +38 -0
  423. package/concepts/pt-BR/Tool-SendUserMessage.md +38 -0
  424. package/concepts/pt-BR/Tool-SuggestConnectors.md +28 -0
  425. package/concepts/pt-BR/Tool-SuggestPluginInstall.md +39 -0
  426. package/concepts/pt-BR/Tool-SuggestSkills.md +33 -0
  427. package/concepts/pt-BR/Tool-TaskCreate.md +6 -0
  428. package/concepts/pt-BR/Tool-TaskGet.md +6 -0
  429. package/concepts/pt-BR/Tool-TaskList.md +6 -0
  430. package/concepts/pt-BR/Tool-TaskUpdate.md +6 -0
  431. package/concepts/pt-BR/Tool-TodoWrite.md +43 -0
  432. package/concepts/pt-BR/Tool-ToolSearch.md +5 -0
  433. package/concepts/pt-BR/Tool-WebSearch.md +6 -0
  434. package/concepts/pt-BR/Tools.md +26 -4
  435. package/concepts/ru/GlobalSettings.md +2 -2
  436. package/concepts/ru/Tool-Artifact.md +7 -0
  437. package/concepts/ru/Tool-EndConversation.md +35 -0
  438. package/concepts/ru/Tool-LSP.md +5 -0
  439. package/concepts/ru/Tool-ListAgents.md +35 -0
  440. package/concepts/ru/Tool-ListConnectors.md +34 -0
  441. package/concepts/ru/Tool-ListMcpResources.md +35 -0
  442. package/concepts/ru/Tool-ListPlugins.md +35 -0
  443. package/concepts/ru/Tool-ListSkills.md +37 -0
  444. package/concepts/ru/Tool-Monitor.md +7 -0
  445. package/concepts/ru/Tool-Projects.md +46 -0
  446. package/concepts/ru/Tool-ProposeGoal.md +43 -0
  447. package/concepts/ru/Tool-PushNotification.md +6 -0
  448. package/concepts/ru/Tool-REPL.md +47 -0
  449. package/concepts/ru/Tool-ReadMcpResource.md +32 -0
  450. package/concepts/ru/Tool-ReadMcpResourceDir.md +32 -0
  451. package/concepts/ru/Tool-ReadNotifications.md +27 -0
  452. package/concepts/ru/Tool-RemoteTrigger.md +7 -0
  453. package/concepts/ru/Tool-ScheduleWakeup.md +5 -0
  454. package/concepts/ru/Tool-SearchMcpRegistry.md +31 -0
  455. package/concepts/ru/Tool-SendFeedback.md +38 -0
  456. package/concepts/ru/Tool-SendFile.md +36 -0
  457. package/concepts/ru/Tool-SendMessage.md +5 -0
  458. package/concepts/ru/Tool-SendUserFile.md +38 -0
  459. package/concepts/ru/Tool-SendUserMessage.md +38 -0
  460. package/concepts/ru/Tool-SuggestConnectors.md +28 -0
  461. package/concepts/ru/Tool-SuggestPluginInstall.md +39 -0
  462. package/concepts/ru/Tool-SuggestSkills.md +33 -0
  463. package/concepts/ru/Tool-TaskCreate.md +6 -0
  464. package/concepts/ru/Tool-TaskGet.md +6 -0
  465. package/concepts/ru/Tool-TaskList.md +6 -0
  466. package/concepts/ru/Tool-TaskUpdate.md +6 -0
  467. package/concepts/ru/Tool-TodoWrite.md +43 -0
  468. package/concepts/ru/Tool-ToolSearch.md +5 -0
  469. package/concepts/ru/Tool-WebSearch.md +6 -0
  470. package/concepts/ru/Tools.md +26 -4
  471. package/concepts/th/GlobalSettings.md +2 -2
  472. package/concepts/th/Tool-Artifact.md +7 -0
  473. package/concepts/th/Tool-EndConversation.md +35 -0
  474. package/concepts/th/Tool-LSP.md +5 -0
  475. package/concepts/th/Tool-ListAgents.md +35 -0
  476. package/concepts/th/Tool-ListConnectors.md +34 -0
  477. package/concepts/th/Tool-ListMcpResources.md +35 -0
  478. package/concepts/th/Tool-ListPlugins.md +35 -0
  479. package/concepts/th/Tool-ListSkills.md +37 -0
  480. package/concepts/th/Tool-Monitor.md +7 -0
  481. package/concepts/th/Tool-Projects.md +46 -0
  482. package/concepts/th/Tool-ProposeGoal.md +43 -0
  483. package/concepts/th/Tool-PushNotification.md +6 -0
  484. package/concepts/th/Tool-REPL.md +47 -0
  485. package/concepts/th/Tool-ReadMcpResource.md +32 -0
  486. package/concepts/th/Tool-ReadMcpResourceDir.md +32 -0
  487. package/concepts/th/Tool-ReadNotifications.md +27 -0
  488. package/concepts/th/Tool-RemoteTrigger.md +7 -0
  489. package/concepts/th/Tool-ScheduleWakeup.md +5 -0
  490. package/concepts/th/Tool-SearchMcpRegistry.md +31 -0
  491. package/concepts/th/Tool-SendFeedback.md +38 -0
  492. package/concepts/th/Tool-SendFile.md +36 -0
  493. package/concepts/th/Tool-SendMessage.md +5 -0
  494. package/concepts/th/Tool-SendUserFile.md +38 -0
  495. package/concepts/th/Tool-SendUserMessage.md +38 -0
  496. package/concepts/th/Tool-SuggestConnectors.md +28 -0
  497. package/concepts/th/Tool-SuggestPluginInstall.md +39 -0
  498. package/concepts/th/Tool-SuggestSkills.md +33 -0
  499. package/concepts/th/Tool-TaskCreate.md +6 -0
  500. package/concepts/th/Tool-TaskGet.md +6 -0
  501. package/concepts/th/Tool-TaskList.md +6 -0
  502. package/concepts/th/Tool-TaskUpdate.md +6 -0
  503. package/concepts/th/Tool-TodoWrite.md +43 -0
  504. package/concepts/th/Tool-ToolSearch.md +5 -0
  505. package/concepts/th/Tool-WebSearch.md +13 -7
  506. package/concepts/th/Tools.md +26 -4
  507. package/concepts/tr/GlobalSettings.md +2 -2
  508. package/concepts/tr/Tool-Artifact.md +7 -0
  509. package/concepts/tr/Tool-EndConversation.md +35 -0
  510. package/concepts/tr/Tool-LSP.md +5 -0
  511. package/concepts/tr/Tool-ListAgents.md +35 -0
  512. package/concepts/tr/Tool-ListConnectors.md +34 -0
  513. package/concepts/tr/Tool-ListMcpResources.md +35 -0
  514. package/concepts/tr/Tool-ListPlugins.md +35 -0
  515. package/concepts/tr/Tool-ListSkills.md +37 -0
  516. package/concepts/tr/Tool-Monitor.md +7 -0
  517. package/concepts/tr/Tool-Projects.md +46 -0
  518. package/concepts/tr/Tool-ProposeGoal.md +43 -0
  519. package/concepts/tr/Tool-PushNotification.md +6 -0
  520. package/concepts/tr/Tool-REPL.md +47 -0
  521. package/concepts/tr/Tool-ReadMcpResource.md +32 -0
  522. package/concepts/tr/Tool-ReadMcpResourceDir.md +32 -0
  523. package/concepts/tr/Tool-ReadNotifications.md +27 -0
  524. package/concepts/tr/Tool-RemoteTrigger.md +7 -0
  525. package/concepts/tr/Tool-ScheduleWakeup.md +5 -0
  526. package/concepts/tr/Tool-SearchMcpRegistry.md +31 -0
  527. package/concepts/tr/Tool-SendFeedback.md +38 -0
  528. package/concepts/tr/Tool-SendFile.md +36 -0
  529. package/concepts/tr/Tool-SendMessage.md +5 -0
  530. package/concepts/tr/Tool-SendUserFile.md +38 -0
  531. package/concepts/tr/Tool-SendUserMessage.md +38 -0
  532. package/concepts/tr/Tool-SuggestConnectors.md +28 -0
  533. package/concepts/tr/Tool-SuggestPluginInstall.md +39 -0
  534. package/concepts/tr/Tool-SuggestSkills.md +33 -0
  535. package/concepts/tr/Tool-TaskCreate.md +6 -0
  536. package/concepts/tr/Tool-TaskGet.md +6 -0
  537. package/concepts/tr/Tool-TaskList.md +6 -0
  538. package/concepts/tr/Tool-TaskUpdate.md +6 -0
  539. package/concepts/tr/Tool-TodoWrite.md +43 -0
  540. package/concepts/tr/Tool-ToolSearch.md +5 -0
  541. package/concepts/tr/Tool-WebSearch.md +6 -0
  542. package/concepts/tr/Tools.md +26 -4
  543. package/concepts/uk/GlobalSettings.md +2 -2
  544. package/concepts/uk/Tool-Artifact.md +7 -0
  545. package/concepts/uk/Tool-EndConversation.md +35 -0
  546. package/concepts/uk/Tool-LSP.md +5 -0
  547. package/concepts/uk/Tool-ListAgents.md +35 -0
  548. package/concepts/uk/Tool-ListConnectors.md +34 -0
  549. package/concepts/uk/Tool-ListMcpResources.md +35 -0
  550. package/concepts/uk/Tool-ListPlugins.md +35 -0
  551. package/concepts/uk/Tool-ListSkills.md +37 -0
  552. package/concepts/uk/Tool-Monitor.md +7 -0
  553. package/concepts/uk/Tool-Projects.md +46 -0
  554. package/concepts/uk/Tool-ProposeGoal.md +43 -0
  555. package/concepts/uk/Tool-PushNotification.md +6 -0
  556. package/concepts/uk/Tool-REPL.md +47 -0
  557. package/concepts/uk/Tool-ReadMcpResource.md +32 -0
  558. package/concepts/uk/Tool-ReadMcpResourceDir.md +32 -0
  559. package/concepts/uk/Tool-ReadNotifications.md +27 -0
  560. package/concepts/uk/Tool-RemoteTrigger.md +7 -0
  561. package/concepts/uk/Tool-ScheduleWakeup.md +5 -0
  562. package/concepts/uk/Tool-SearchMcpRegistry.md +31 -0
  563. package/concepts/uk/Tool-SendFeedback.md +38 -0
  564. package/concepts/uk/Tool-SendFile.md +36 -0
  565. package/concepts/uk/Tool-SendMessage.md +5 -0
  566. package/concepts/uk/Tool-SendUserFile.md +38 -0
  567. package/concepts/uk/Tool-SendUserMessage.md +38 -0
  568. package/concepts/uk/Tool-SuggestConnectors.md +28 -0
  569. package/concepts/uk/Tool-SuggestPluginInstall.md +39 -0
  570. package/concepts/uk/Tool-SuggestSkills.md +33 -0
  571. package/concepts/uk/Tool-TaskCreate.md +6 -0
  572. package/concepts/uk/Tool-TaskGet.md +6 -0
  573. package/concepts/uk/Tool-TaskList.md +6 -0
  574. package/concepts/uk/Tool-TaskUpdate.md +6 -0
  575. package/concepts/uk/Tool-TodoWrite.md +43 -0
  576. package/concepts/uk/Tool-ToolSearch.md +5 -0
  577. package/concepts/uk/Tool-WebSearch.md +6 -0
  578. package/concepts/uk/Tools.md +26 -4
  579. package/concepts/zh/GlobalSettings.md +2 -2
  580. package/concepts/zh/Tool-Artifact.md +7 -0
  581. package/concepts/zh/Tool-EndConversation.md +35 -0
  582. package/concepts/zh/Tool-LSP.md +5 -0
  583. package/concepts/zh/Tool-ListAgents.md +35 -0
  584. package/concepts/zh/Tool-ListConnectors.md +34 -0
  585. package/concepts/zh/Tool-ListMcpResources.md +35 -0
  586. package/concepts/zh/Tool-ListPlugins.md +35 -0
  587. package/concepts/zh/Tool-ListSkills.md +37 -0
  588. package/concepts/zh/Tool-Monitor.md +7 -0
  589. package/concepts/zh/Tool-Projects.md +46 -0
  590. package/concepts/zh/Tool-ProposeGoal.md +43 -0
  591. package/concepts/zh/Tool-PushNotification.md +6 -0
  592. package/concepts/zh/Tool-REPL.md +47 -0
  593. package/concepts/zh/Tool-ReadMcpResource.md +32 -0
  594. package/concepts/zh/Tool-ReadMcpResourceDir.md +32 -0
  595. package/concepts/zh/Tool-ReadNotifications.md +27 -0
  596. package/concepts/zh/Tool-RemoteTrigger.md +7 -0
  597. package/concepts/zh/Tool-ScheduleWakeup.md +5 -0
  598. package/concepts/zh/Tool-SearchMcpRegistry.md +31 -0
  599. package/concepts/zh/Tool-SendFeedback.md +38 -0
  600. package/concepts/zh/Tool-SendFile.md +36 -0
  601. package/concepts/zh/Tool-SendMessage.md +5 -0
  602. package/concepts/zh/Tool-SendUserFile.md +38 -0
  603. package/concepts/zh/Tool-SendUserMessage.md +38 -0
  604. package/concepts/zh/Tool-SuggestConnectors.md +28 -0
  605. package/concepts/zh/Tool-SuggestPluginInstall.md +39 -0
  606. package/concepts/zh/Tool-SuggestSkills.md +33 -0
  607. package/concepts/zh/Tool-TaskCreate.md +6 -0
  608. package/concepts/zh/Tool-TaskGet.md +6 -0
  609. package/concepts/zh/Tool-TaskList.md +6 -0
  610. package/concepts/zh/Tool-TaskUpdate.md +6 -0
  611. package/concepts/zh/Tool-TodoWrite.md +43 -0
  612. package/concepts/zh/Tool-ToolSearch.md +5 -0
  613. package/concepts/zh/Tool-WebSearch.md +6 -0
  614. package/concepts/zh/Tools.md +26 -4
  615. package/concepts/zh-TW/GlobalSettings.md +2 -2
  616. package/concepts/zh-TW/Tool-Artifact.md +7 -0
  617. package/concepts/zh-TW/Tool-EndConversation.md +35 -0
  618. package/concepts/zh-TW/Tool-LSP.md +5 -0
  619. package/concepts/zh-TW/Tool-ListAgents.md +35 -0
  620. package/concepts/zh-TW/Tool-ListConnectors.md +34 -0
  621. package/concepts/zh-TW/Tool-ListMcpResources.md +35 -0
  622. package/concepts/zh-TW/Tool-ListPlugins.md +35 -0
  623. package/concepts/zh-TW/Tool-ListSkills.md +37 -0
  624. package/concepts/zh-TW/Tool-Monitor.md +7 -0
  625. package/concepts/zh-TW/Tool-Projects.md +46 -0
  626. package/concepts/zh-TW/Tool-ProposeGoal.md +43 -0
  627. package/concepts/zh-TW/Tool-PushNotification.md +6 -0
  628. package/concepts/zh-TW/Tool-REPL.md +47 -0
  629. package/concepts/zh-TW/Tool-ReadMcpResource.md +32 -0
  630. package/concepts/zh-TW/Tool-ReadMcpResourceDir.md +32 -0
  631. package/concepts/zh-TW/Tool-ReadNotifications.md +27 -0
  632. package/concepts/zh-TW/Tool-RemoteTrigger.md +7 -0
  633. package/concepts/zh-TW/Tool-ScheduleWakeup.md +5 -0
  634. package/concepts/zh-TW/Tool-SearchMcpRegistry.md +31 -0
  635. package/concepts/zh-TW/Tool-SendFeedback.md +38 -0
  636. package/concepts/zh-TW/Tool-SendFile.md +36 -0
  637. package/concepts/zh-TW/Tool-SendMessage.md +5 -0
  638. package/concepts/zh-TW/Tool-SendUserFile.md +38 -0
  639. package/concepts/zh-TW/Tool-SendUserMessage.md +38 -0
  640. package/concepts/zh-TW/Tool-SuggestConnectors.md +28 -0
  641. package/concepts/zh-TW/Tool-SuggestPluginInstall.md +39 -0
  642. package/concepts/zh-TW/Tool-SuggestSkills.md +33 -0
  643. package/concepts/zh-TW/Tool-TaskCreate.md +6 -0
  644. package/concepts/zh-TW/Tool-TaskGet.md +6 -0
  645. package/concepts/zh-TW/Tool-TaskList.md +6 -0
  646. package/concepts/zh-TW/Tool-TaskUpdate.md +6 -0
  647. package/concepts/zh-TW/Tool-TodoWrite.md +43 -0
  648. package/concepts/zh-TW/Tool-ToolSearch.md +5 -0
  649. package/concepts/zh-TW/Tool-WebSearch.md +6 -0
  650. package/concepts/zh-TW/Tools.md +26 -4
  651. package/dist/assets/{App-BaKGIW0-.js → App-CCu0y2Cq.js} +2 -2
  652. package/dist/assets/{MdxEditorPanel-DG-UE0PC.js → MdxEditorPanel-BBhgTmDk.js} +1 -1
  653. package/dist/assets/{Mobile-CQaUYdaf.js → Mobile-vN4lyiaz.js} +1 -1
  654. package/dist/assets/{ProxyStatsModal-j-Aty9Lu.js → ProxyStatsModal-BOflqr0R.js} +1 -1
  655. package/dist/assets/index-C3BRHDVF.js +2 -0
  656. package/dist/assets/seqResourceLoaders-DI0G5nu1.css +41 -0
  657. package/dist/assets/seqResourceLoaders-DpYqp6SP.js +2 -0
  658. package/dist/index.html +1 -1
  659. package/findcc.js +17 -8
  660. package/node_modules/@ccv/core/package.json +13 -0
  661. package/{server/lib → node_modules/@ccv/core/src}/approval-modal-prefs.js +1 -1
  662. package/node_modules/@ccv/core/src/clearCheckpoint.js +7 -0
  663. package/{src/utils → node_modules/@ccv/core/src}/contentFilter.js +207 -141
  664. package/{server/lib → node_modules/@ccv/core/src}/context-rules.js +2 -2
  665. package/{server/lib → node_modules/@ccv/core/src}/delta-reconstructor.js +60 -4
  666. package/{server/lib → node_modules/@ccv/core/src}/error-report.js +5 -4
  667. package/{server/lib → node_modules/@ccv/core/src}/session-boundary.js +3 -3
  668. package/{src/utils → node_modules/@ccv/core/src}/teammateDetector.js +9 -0
  669. package/{server/lib → node_modules/@ccv/core/src}/tools-xml-formatter.js +3 -3
  670. package/{server/lib → node_modules/@ccv/core/src}/v2-transcript-normalizer.js +1 -1
  671. package/{server/lib → node_modules/@ccv/core/src}/voice-pack-events.js +2 -2
  672. package/package.json +11 -96
  673. package/server/_paths.js +28 -7
  674. package/server/i18n.js +60 -0
  675. package/server/interceptor.js +36 -11
  676. package/server/lib/adapters/dingtalk-adapter.js +2 -2
  677. package/server/lib/adapters/discord-adapter.js +2 -2
  678. package/server/lib/adapters/feishu-adapter.js +2 -2
  679. package/server/lib/adapters/wecom-adapter.js +2 -2
  680. package/server/lib/approval-policy.js +29 -0
  681. package/server/lib/{ask-store.js → ask/ask-store.js} +3 -3
  682. package/server/lib/{perm-bridge.js → ask/perm-bridge.js} +5 -5
  683. package/server/lib/chat-queue.js +341 -0
  684. package/server/lib/cli-inject.js +1 -1
  685. package/server/lib/context-watcher.js +3 -3
  686. package/server/lib/create_system_prompt.js +0 -9
  687. package/server/lib/enrich-plan-input.js +1 -1
  688. package/server/lib/ensure-hooks.js +2 -2
  689. package/server/lib/file-access-policy.js +6 -1
  690. package/server/lib/file-api.js +17 -1
  691. package/server/lib/{dingtalk-bridge.js → im/dingtalk-bridge.js} +1 -1
  692. package/server/lib/{im-append-system.js → im/im-append-system.js} +5 -13
  693. package/server/lib/{im-bridge-core.js → im/im-bridge-core.js} +12 -6
  694. package/server/lib/{im-config.js → im/im-config.js} +1 -1
  695. package/server/lib/im/im-deny.js +4 -0
  696. package/server/lib/{im-lang.js → im/im-lang.js} +1 -1
  697. package/server/lib/{im-lock.js → im/im-lock.js} +2 -2
  698. package/server/lib/{im-process-manager.js → im/im-process-manager.js} +1 -1
  699. package/server/lib/{im-senders.js → im/im-senders.js} +1 -1
  700. package/server/lib/{im-skills.js → im/im-skills.js} +2 -2
  701. package/server/lib/interceptor-core.js +8 -5
  702. package/server/lib/kv-cache-analyzer.js +6 -5
  703. package/server/lib/launch-config.js +321 -0
  704. package/server/lib/log-file-utils.js +21 -0
  705. package/server/lib/log-management.js +6 -17
  706. package/server/lib/log-stream.js +1 -1
  707. package/server/lib/log-watcher.js +1 -1
  708. package/server/lib/model-system-prompts.js +1 -1
  709. package/server/lib/prefs-store.js +2 -2
  710. package/server/lib/project-prefs.js +6 -6
  711. package/server/lib/project-state.js +15 -0
  712. package/server/lib/{proxy-retry.js → proxy/proxy-retry.js} +2 -2
  713. package/server/lib/{proxy-stats.js → proxy/proxy-stats.js} +3 -3
  714. package/server/lib/sdk-adapter.js +6 -74
  715. package/server/lib/sdk-manager.js +383 -278
  716. package/server/lib/skills-api.js +1 -1
  717. package/server/lib/spawn-model-resolver.js +21 -6
  718. package/server/lib/stats-worker.js +2 -2
  719. package/server/lib/system-prompt-files.js +11 -10
  720. package/server/lib/system-prompt-render.js +23 -7
  721. package/server/lib/system-prompt-snapshots.js +452 -0
  722. package/server/lib/updater.js +63 -3
  723. package/server/lib/user-prompt-extract.js +5 -5
  724. package/server/lib/v2/adapter.js +3 -3
  725. package/server/lib/v2/conversation-store.js +1 -1
  726. package/server/lib/v2/convert.js +3 -3
  727. package/server/lib/v2/jsonl-read.js +1 -1
  728. package/server/lib/v2/live-feed.js +3 -3
  729. package/server/lib/v2/meta-rows.js +3 -3
  730. package/server/lib/v2/replay.js +1 -1
  731. package/server/lib/v2/session-list.js +1 -1
  732. package/server/lib/v2/session-owner.js +1 -1
  733. package/server/lib/v2/v2-writer.js +26 -1
  734. package/server/lib/v2/verify.js +1 -1
  735. package/server/lib/voice-pack-manager.js +4 -5
  736. package/server/lib/wire-compress.js +1 -1
  737. package/server/proxy.js +5 -5
  738. package/server/pty-manager.js +282 -184
  739. package/server/routes/ask-perm.js +1 -1
  740. package/server/routes/dingtalk.js +3 -3
  741. package/server/routes/events.js +2 -2
  742. package/server/routes/im.js +5 -5
  743. package/server/routes/preferences.js +3 -3
  744. package/server/routes/workspaces.js +1 -1
  745. package/server/server.js +207 -58
  746. package/server/system-prompt-templates/systemPromptModel.md +0 -8
  747. package/server/system-prompt-templates/systemPromptVariables.ar.md +0 -7
  748. package/server/system-prompt-templates/systemPromptVariables.da.md +0 -7
  749. package/server/system-prompt-templates/systemPromptVariables.de.md +0 -7
  750. package/server/system-prompt-templates/systemPromptVariables.es.md +0 -7
  751. package/server/system-prompt-templates/systemPromptVariables.fr.md +0 -7
  752. package/server/system-prompt-templates/systemPromptVariables.it.md +0 -7
  753. package/server/system-prompt-templates/systemPromptVariables.ja.md +0 -7
  754. package/server/system-prompt-templates/systemPromptVariables.ko.md +0 -7
  755. package/server/system-prompt-templates/systemPromptVariables.md +0 -7
  756. package/server/system-prompt-templates/systemPromptVariables.no.md +0 -7
  757. package/server/system-prompt-templates/systemPromptVariables.pl.md +0 -7
  758. package/server/system-prompt-templates/systemPromptVariables.pt-BR.md +0 -7
  759. package/server/system-prompt-templates/systemPromptVariables.ru.md +0 -7
  760. package/server/system-prompt-templates/systemPromptVariables.th.md +0 -7
  761. package/server/system-prompt-templates/systemPromptVariables.tr.md +0 -7
  762. package/server/system-prompt-templates/systemPromptVariables.uk.md +0 -7
  763. package/server/system-prompt-templates/systemPromptVariables.zh-TW.md +0 -7
  764. package/server/system-prompt-templates/systemPromptVariables.zh.md +0 -7
  765. package/concepts/ar/Tool-TeamCreate.md +0 -53
  766. package/concepts/ar/Tool-TeamDelete.md +0 -44
  767. package/concepts/ar/Tool-executeCode.md +0 -47
  768. package/concepts/ar/Tool-getDiagnostics.md +0 -44
  769. package/concepts/da/Tool-TeamCreate.md +0 -53
  770. package/concepts/da/Tool-TeamDelete.md +0 -44
  771. package/concepts/da/Tool-executeCode.md +0 -47
  772. package/concepts/da/Tool-getDiagnostics.md +0 -44
  773. package/concepts/de/Tool-TeamCreate.md +0 -53
  774. package/concepts/de/Tool-TeamDelete.md +0 -44
  775. package/concepts/de/Tool-executeCode.md +0 -47
  776. package/concepts/de/Tool-getDiagnostics.md +0 -44
  777. package/concepts/en/Tool-TeamCreate.md +0 -53
  778. package/concepts/en/Tool-TeamDelete.md +0 -44
  779. package/concepts/en/Tool-executeCode.md +0 -47
  780. package/concepts/en/Tool-getDiagnostics.md +0 -44
  781. package/concepts/es/Tool-TeamCreate.md +0 -53
  782. package/concepts/es/Tool-TeamDelete.md +0 -44
  783. package/concepts/es/Tool-executeCode.md +0 -47
  784. package/concepts/es/Tool-getDiagnostics.md +0 -44
  785. package/concepts/fr/Tool-TeamCreate.md +0 -53
  786. package/concepts/fr/Tool-TeamDelete.md +0 -44
  787. package/concepts/fr/Tool-executeCode.md +0 -47
  788. package/concepts/fr/Tool-getDiagnostics.md +0 -44
  789. package/concepts/it/Tool-TeamCreate.md +0 -53
  790. package/concepts/it/Tool-TeamDelete.md +0 -44
  791. package/concepts/it/Tool-executeCode.md +0 -47
  792. package/concepts/it/Tool-getDiagnostics.md +0 -44
  793. package/concepts/ja/Tool-TeamCreate.md +0 -53
  794. package/concepts/ja/Tool-TeamDelete.md +0 -44
  795. package/concepts/ja/Tool-executeCode.md +0 -47
  796. package/concepts/ja/Tool-getDiagnostics.md +0 -44
  797. package/concepts/ko/Tool-TeamCreate.md +0 -53
  798. package/concepts/ko/Tool-TeamDelete.md +0 -44
  799. package/concepts/ko/Tool-executeCode.md +0 -47
  800. package/concepts/ko/Tool-getDiagnostics.md +0 -44
  801. package/concepts/no/Tool-TeamCreate.md +0 -53
  802. package/concepts/no/Tool-TeamDelete.md +0 -44
  803. package/concepts/no/Tool-executeCode.md +0 -47
  804. package/concepts/no/Tool-getDiagnostics.md +0 -44
  805. package/concepts/pl/Tool-TeamCreate.md +0 -53
  806. package/concepts/pl/Tool-TeamDelete.md +0 -44
  807. package/concepts/pl/Tool-executeCode.md +0 -47
  808. package/concepts/pl/Tool-getDiagnostics.md +0 -44
  809. package/concepts/pt-BR/Tool-TeamCreate.md +0 -53
  810. package/concepts/pt-BR/Tool-TeamDelete.md +0 -44
  811. package/concepts/pt-BR/Tool-executeCode.md +0 -47
  812. package/concepts/pt-BR/Tool-getDiagnostics.md +0 -44
  813. package/concepts/ru/Tool-TeamCreate.md +0 -53
  814. package/concepts/ru/Tool-TeamDelete.md +0 -44
  815. package/concepts/ru/Tool-executeCode.md +0 -47
  816. package/concepts/ru/Tool-getDiagnostics.md +0 -44
  817. package/concepts/th/Tool-TeamCreate.md +0 -53
  818. package/concepts/th/Tool-TeamDelete.md +0 -44
  819. package/concepts/th/Tool-executeCode.md +0 -41
  820. package/concepts/th/Tool-getDiagnostics.md +0 -32
  821. package/concepts/tr/Tool-TeamCreate.md +0 -53
  822. package/concepts/tr/Tool-TeamDelete.md +0 -44
  823. package/concepts/tr/Tool-executeCode.md +0 -47
  824. package/concepts/tr/Tool-getDiagnostics.md +0 -44
  825. package/concepts/uk/Tool-TeamCreate.md +0 -53
  826. package/concepts/uk/Tool-TeamDelete.md +0 -44
  827. package/concepts/uk/Tool-executeCode.md +0 -47
  828. package/concepts/uk/Tool-getDiagnostics.md +0 -44
  829. package/concepts/zh/Tool-TeamCreate.md +0 -53
  830. package/concepts/zh/Tool-TeamDelete.md +0 -44
  831. package/concepts/zh/Tool-executeCode.md +0 -47
  832. package/concepts/zh/Tool-getDiagnostics.md +0 -44
  833. package/concepts/zh-TW/Tool-TeamCreate.md +0 -53
  834. package/concepts/zh-TW/Tool-TeamDelete.md +0 -44
  835. package/concepts/zh-TW/Tool-executeCode.md +0 -47
  836. package/concepts/zh-TW/Tool-getDiagnostics.md +0 -44
  837. package/dist/assets/index-CyiyzBfV.js +0 -2
  838. package/dist/assets/seqResourceLoaders-BgD_Rwvc.css +0 -41
  839. package/dist/assets/seqResourceLoaders-XMiEIVyV.js +0 -2
  840. package/src/utils/apiUrl.js +0 -26
  841. package/src/utils/askFallback.js +0 -21
  842. package/src/utils/askOptionDesc.js +0 -55
  843. package/src/utils/askPortalMatcher.js +0 -54
  844. package/src/utils/autoApproveOptions.js +0 -27
  845. package/src/utils/avatarAnimationPostPass.js +0 -49
  846. package/src/utils/builtinPresets.js +0 -18
  847. package/src/utils/clearCheckpoint.js +0 -7
  848. package/src/utils/commandValidator.js +0 -45
  849. package/src/utils/contextRaw.js +0 -18
  850. package/src/utils/contextSidebarNavigation.js +0 -16
  851. package/src/utils/contextTurns.js +0 -117
  852. package/src/utils/displayScaleHelper.js +0 -47
  853. package/src/utils/effectiveModel.js +0 -17
  854. package/src/utils/entry-slim.js +0 -563
  855. package/src/utils/entryCache.js +0 -144
  856. package/src/utils/errorReport.js +0 -6
  857. package/src/utils/fileExpandedPathsStorage.js +0 -70
  858. package/src/utils/fileIcons.jsx +0 -36
  859. package/src/utils/fileOpen.js +0 -37
  860. package/src/utils/formatters.js +0 -48
  861. package/src/utils/gitApi.js +0 -50
  862. package/src/utils/gitTreeBuilder.js +0 -19
  863. package/src/utils/helpers.js +0 -854
  864. package/src/utils/identityHeal.js +0 -108
  865. package/src/utils/imConnState.js +0 -59
  866. package/src/utils/imOrigin.js +0 -24
  867. package/src/utils/imTr.js +0 -7
  868. package/src/utils/imageCompress.js +0 -83
  869. package/src/utils/imageDownscale.js +0 -28
  870. package/src/utils/imageResize.js +0 -112
  871. package/src/utils/ingestPipeline.js +0 -47
  872. package/src/utils/isProxyMode.js +0 -11
  873. package/src/utils/lazyWithReload.js +0 -53
  874. package/src/utils/markdown.js +0 -30
  875. package/src/utils/markdownIncremental.js +0 -39
  876. package/src/utils/markdownProfiler.js +0 -113
  877. package/src/utils/mdExtensionDetect.js +0 -64
  878. package/src/utils/memoryLinkParser.js +0 -44
  879. package/src/utils/modalMask.js +0 -15
  880. package/src/utils/modelSuggestions.js +0 -48
  881. package/src/utils/monotime.js +0 -6
  882. package/src/utils/pinnedMenu.js +0 -55
  883. package/src/utils/presetShortcuts.js +0 -14
  884. package/src/utils/projectAlias.js +0 -135
  885. package/src/utils/promptClassifier.js +0 -112
  886. package/src/utils/promptDetect.js +0 -196
  887. package/src/utils/promptNav.js +0 -60
  888. package/src/utils/ptyChunkBuilder.js +0 -251
  889. package/src/utils/quickMenuHoverIntent.js +0 -35
  890. package/src/utils/rateLimitParser.js +0 -119
  891. package/src/utils/readResultPool.js +0 -106
  892. package/src/utils/refreshCachedItemProp.js +0 -30
  893. package/src/utils/resizeCalc.js +0 -21
  894. package/src/utils/resolveLocalized.js +0 -17
  895. package/src/utils/searchApi.js +0 -47
  896. package/src/utils/searchReplace.js +0 -51
  897. package/src/utils/seqResourceLoaders.js +0 -79
  898. package/src/utils/sessionManager.js +0 -482
  899. package/src/utils/sessionMerge.js +0 -239
  900. package/src/utils/skillModalController.js +0 -111
  901. package/src/utils/skillsParser.js +0 -116
  902. package/src/utils/slashCommandLabels.js +0 -80
  903. package/src/utils/splitDragCalc.js +0 -73
  904. package/src/utils/stickyBottomController.js +0 -643
  905. package/src/utils/svgSanitize.js +0 -48
  906. package/src/utils/systemTags.js +0 -47
  907. package/src/utils/tClaude.js +0 -20
  908. package/src/utils/teamModalBuilder.js +0 -351
  909. package/src/utils/teamSessionParser.js +0 -190
  910. package/src/utils/teammateAvatars.js +0 -194
  911. package/src/utils/termDiag.js +0 -114
  912. package/src/utils/terminalClipboard.js +0 -117
  913. package/src/utils/terminalWriteQueue.js +0 -398
  914. package/src/utils/thinkingMerge.js +0 -49
  915. package/src/utils/toolCatalog.js +0 -29
  916. package/src/utils/toolResultBuilder.js +0 -411
  917. package/src/utils/toolResultClassifier.js +0 -16
  918. package/src/utils/toolResultCore.js +0 -194
  919. package/src/utils/toolsDiff.js +0 -44
  920. package/src/utils/toolsXmlFormatter.js +0 -3
  921. package/src/utils/ultraplanController.js +0 -109
  922. package/src/utils/ultraplanExperts.js +0 -86
  923. package/src/utils/ultraplanTemplates.js +0 -154
  924. package/src/utils/userImageRefs.js +0 -49
  925. package/src/utils/v3Assembler.js +0 -125
  926. package/src/utils/v3Rows.js +0 -49
  927. package/src/utils/voicePackPlayer.js +0 -233
  928. package/src/utils/webSearchGrouping.js +0 -111
  929. package/src/utils/workflowFormat.js +0 -52
  930. package/src/utils/workflowRuns.js +0 -118
  931. package/src/utils/workflowStore.js +0 -94
  932. /package/{src/utils → node_modules/@ccv/core/src}/requestType.js +0 -0
  933. /package/server/lib/{ask-bridge.js → ask/ask-bridge.js} +0 -0
  934. /package/server/lib/{ask-constants.js → ask/ask-constants.js} +0 -0
  935. /package/server/lib/{ask-reaper.js → ask/ask-reaper.js} +0 -0
  936. /package/server/lib/{dingtalk-config.js → im/dingtalk-config.js} +0 -0
  937. /package/server/lib/{im-log-watcher.js → im/im-log-watcher.js} +0 -0
  938. /package/server/lib/{proxy-env.js → proxy/proxy-env.js} +0 -0
  939. /package/server/lib/{proxy-errors.js → proxy/proxy-errors.js} +0 -0
@@ -1,8 +1,8 @@
1
- // CLIENT-SAFE: no node deps. Imported by src/ do not add fs/process/node: imports.
1
+ // CLIENT-SAFE: no node deps. Home: @ccv/core (context-rules.js) — consumed by apps/web + packages/app. Do not add fs/process/node: imports.
2
2
  //
3
3
  // 上下文窗口规则唯一事实源(前后端同源):
4
4
  // - 服务端:server/lib/context-watcher.js、server/routes/events.js 直接 import
5
- // - 前端:src/utils/helpers.js thin re-export(经 Vite 跨目录打包,先例见 tools-xml-formatter.js)
5
+ // - 前端:apps/web/src/utils/helpers.js thin re-export(经 @ccv/core 跨包打包,先例见 tools-xml-formatter.js)
6
6
  // 此前规则散落三处(前端 MODEL_CONTEXT_SIZES / _classifyContextSize、服务端 getContextSizeForModel)
7
7
  // 且已漂移(服务端不认识 deepseek-v4),收编于此后任何档位变更只改这一个文件。
8
8
  //
@@ -1,4 +1,4 @@
1
- // CLIENT-SAFE: no node deps. Imported by src/ do not add fs/process/node: imports.
1
+ // CLIENT-SAFE: no node deps. Home: @ccv/core (delta-reconstructor.js) — consumed by apps/web + packages/app. Do not add fs/process/node: imports.
2
2
  /**
3
3
  * Delta Reconstructor — 增量日志重建模块
4
4
  *
@@ -204,6 +204,46 @@ function _stepReconstruct(entry, ctx) {
204
204
  return false;
205
205
  }
206
206
 
207
+ /**
208
+ * 孤儿占位符 checkpoint 的基线吸收 — 三个重建 API 共用。
209
+ *
210
+ * 被中断的请求(Esc/Stop/排队消息"立即追加")永远等不到 `done`,其占位符上的
211
+ * inProgress 标记永不消散。占位符 delta 必须继续排除在累积基线之外(completed 孪生
212
+ * 随时可能落地并重复投递同一切片);但占位符 **checkpoint** 携带的是权威全量状态:
213
+ * 不吸收它,基线就停留在旧长度,随后第一条 completed delta 的长度校验
214
+ * (vs `_totalMessageCount`)必然失配 → 毒化冻结 → 之后整段会话在离线视图里消失
215
+ * (实测:排队补发的 user prompt 连同后续回答全部不显示)。
216
+ *
217
+ * 刻意绕过 seq 守卫、且不推进 lastSeq:占位符与其 completed 孪生共享同一 _seq,
218
+ * 不推进才能保证孪生随后仍被正常应用(checkpoint 重复重置是幂等的)。
219
+ * 乱序占位符(同 epoch 且 seq <= lastSeq,镜像 _seqGuardCheck 的判定)不吸收——
220
+ * 旧全量状态不得回卷基线;不同 epoch(进程重启 seq 归零)的占位符无从判 stale,
221
+ * 与守卫一样按"新写进程"放行(同 §3.7 的盲信 epoch 语义)。
222
+ *
223
+ * 依赖的不变量(WIRE_FORMAT §3.7 形态冻结):占位符 checkpoint 的 completed 孪生
224
+ * 必然也是 checkpoint(同一条目对象的就地转化)——若孪生以 delta 形态携带已吸收
225
+ * 的切片落地,会造成重复拼接直至下一 checkpoint 自愈(有界,非污染)。
226
+ *
227
+ * @param {object} entry - inProgress 条目(调用方已判定)
228
+ * @param {{accumulated: Array, intState: {baselineSeen: boolean, poisoned: boolean},
229
+ * seqState: {lastSeq: number, lastEpoch: string|null}}} ctx
230
+ */
231
+ function _absorbOrphanCheckpoint(entry, ctx) {
232
+ if (!isDeltaEntry(entry)) return; // v1 旧格式全量占位符:completed 到达时按全量重置即可,维持旧行为
233
+ if (!isCheckpointEntry(entry)) return;
234
+ const msgs = entry.body?.messages;
235
+ if (!Array.isArray(msgs)) return;
236
+ const seq = entry._seq;
237
+ if (typeof seq === 'number') {
238
+ const epoch = entry._seqEpoch || null;
239
+ const st = ctx.seqState;
240
+ if (st.lastEpoch !== null && epoch === st.lastEpoch && seq <= st.lastSeq) return;
241
+ }
242
+ ctx.accumulated = [...msgs];
243
+ ctx.intState.baselineSeen = true;
244
+ ctx.intState.poisoned = false;
245
+ }
246
+
207
247
  /**
208
248
  * 批量重建 — 用于 readLogFile() 和 readLocalLog()。
209
249
  * 输入已去重的条目数组,输出重建后的条目数组(原地修改 body.messages)。
@@ -224,8 +264,14 @@ export function reconstructEntries(entries) {
224
264
  for (let i = 0; i < entries.length; i++) {
225
265
  const entry = entries[i];
226
266
  // 跳过 inProgress 条目:孤立的 inProgress(请求超时未完成)在 dedup 后残留,
227
- // 其 delta 与后续 completed 条目重复,双重累积会导致 accumulated 偏移
228
- if (entry.inProgress) continue;
267
+ // 其 delta 与后续 completed 条目重复,双重累积会导致 accumulated 偏移。
268
+ // 例外:占位符 checkpoint 携带权威全量状态 → 吸收进基线(见 _absorbOrphanCheckpoint),
269
+ // 否则被中断请求留下的纯占位符记录会让基线落后、随后 completed delta 的完整性校验
270
+ // 失配 → 毒化冻结 → 之后整段会话(含排队补发的 user prompt)在离线视图消失。
271
+ if (entry.inProgress) {
272
+ _absorbOrphanCheckpoint(entry, ctx);
273
+ continue;
274
+ }
229
275
  if (_stepReconstruct(entry, ctx)) broken.push(i);
230
276
  }
231
277
 
@@ -308,7 +354,12 @@ export function reconstructSegment(segment, nextCheckpoint, sharedSeqState) {
308
354
 
309
355
  for (let i = 0; i < segment.length; i++) {
310
356
  const entry = segment[i];
311
- if (entry.inProgress) continue;
357
+ // inProgress 跳过规则与 reconstructEntries 同源:delta 跳过;占位符 checkpoint
358
+ // 吸收进基线(防中断孤儿冻结后续条目,见 _absorbOrphanCheckpoint)。
359
+ if (entry.inProgress) {
360
+ _absorbOrphanCheckpoint(entry, ctx);
361
+ continue;
362
+ }
312
363
  if (_stepReconstruct(entry, ctx)) broken.push(i);
313
364
  }
314
365
 
@@ -353,12 +404,17 @@ export function createIncrementalReconstructor() {
353
404
  // 防 completed 被"同 seq 重发"规则误吞)。
354
405
  // 这样客户端收到完整 messages(避免 delta 闪烁),
355
406
  // 而后续 completed 条目仍能基于正确的 accumulated 重建。
407
+ // 例外:占位符 checkpoint 携带权威全量状态 → 吸收进基线(否则被中断请求的
408
+ // 占位符记录会让基线落后,后续 completed delta 完整性失配 → 毒化冻结,
409
+ // 见 _absorbOrphanCheckpoint);条目本身仍原样返回(展示语义不变)。
356
410
  if (entry.inProgress) {
357
411
  if (isDeltaEntry(entry) && !isCheckpointEntry(entry)) {
358
412
  const msgs = entry.body?.messages;
359
413
  if (Array.isArray(msgs)) {
360
414
  entry.body.messages = [...ctx.accumulated, ...msgs];
361
415
  }
416
+ } else {
417
+ _absorbOrphanCheckpoint(entry, ctx);
362
418
  }
363
419
  return entry;
364
420
  }
@@ -1,10 +1,11 @@
1
- // CLIENT-SAFE: no node deps. Imported by src/ do not add fs/process/node: imports.
1
+ // CLIENT-SAFE: no node deps. Home: @ccv/core (error-report.js) — consumed by apps/web + packages/app. Do not add fs/process/node: imports.
2
2
  /**
3
3
  * Error-reporting convention for swallowed catch blocks.
4
4
  *
5
- * Canonical home since wire-v2 S2 (moved verbatim from src/utils/errorReport.js,
6
- * which remains as a re-export shell): server/lib/v2/* writers follow the same
7
- * convention, and src/ is not shipped in the npm package.
5
+ * Canonical home since wire-v2 S2 (moved verbatim from the client-side
6
+ * errorReport.js; apps/web/src/utils/errorReport.js remains as a re-export
7
+ * shell): server/lib/v2/* writers follow the same convention. Lives in
8
+ * @ccv/core since the core extraction so both sides import one copy.
8
9
  *
9
10
  * The rule (see CLAUDE.md): a `catch` whose failure has diagnostic value —
10
11
  * anything where a throw means lost data or broken UI (SSE/WS event parsing,
@@ -1,10 +1,10 @@
1
- // CLIENT-SAFE: no node deps. Imported by src/ do not add fs/process/node: imports.
1
+ // CLIENT-SAFE: no node deps. Home: @ccv/core (session-boundary.js) — consumed by apps/web + packages/app. Do not add fs/process/node: imports.
2
2
  // (Same contract as delta-reconstructor.js.)
3
3
  //
4
4
  // Shared session-boundary + reverse-anchor module — single source of truth for
5
5
  // "where does a logical conversation start/align" used by BOTH sides:
6
- // - client: src/utils/clearCheckpoint.js (re-export shell), sessionMerge.js,
7
- // sessionManager.js, entry-slim.js, contentFilter.js
6
+ // - client: ./clearCheckpoint.js (sibling re-export shell), apps/web's
7
+ // sessionMerge.js, sessionManager.js, entry-slim.js, ./contentFilter.js
8
8
  // - server (wire-v2, S2+): conversation-store epoch routing and the read-side
9
9
  // materializer (docs/refactor/WIRE_FORMAT_V2.md §6/§9)
10
10
  //
@@ -53,6 +53,15 @@ export function isNativeTeammate(req) {
53
53
  return false;
54
54
  }
55
55
 
56
+ // SDK 主会话否决:ccv -SDK 主会话 system 同时含 "You are a Claude agent"(命中上面正则)
57
+ // 且 billing 标记 cc_entrypoint=sdk-ts,还被授予 SendMessage → 三条全中会被误判成 teammate
58
+ // (前端把每条 main 气泡双渲染成 main + teammate)。真 native teammate 经 Agent 工具启动、
59
+ // system 是 teammate 人格 + cc_entrypoint=cli(无 sdk-ts 主会话标记),不受此否决影响。
60
+ if (sysText.includes('cc_entrypoint=sdk-ts')) {
61
+ _cache.set(req, false);
62
+ return false;
63
+ }
64
+
56
65
  // SendMessage tool 是 teammate 间通信必需工具,普通 subagent 不会被授予。
57
66
  // 命中正则但没 SendMessage → 是通过 Agent tool 启动的 subagent,不是 teammate。
58
67
  const tools = req.body?.tools;
@@ -1,4 +1,4 @@
1
- // CLIENT-SAFE: no node deps. Imported by src/ do not add fs/process/node: imports.
1
+ // CLIENT-SAFE: no node deps. Home: @ccv/core (tools-xml-formatter.js) — consumed by apps/web + packages/app. Do not add fs/process/node: imports.
2
2
  /**
3
3
  * Serialize an Anthropic tool definition (name / description / input_schema)
4
4
  * into the XML-shaped text format the model sees on the server side.
@@ -7,8 +7,8 @@
7
7
  * publish their exact internal serialization, so this is a faithful
8
8
  * approximation useful for inspection, not a canonical wire format.
9
9
  *
10
- * Single source of truth: src/utils/toolsXmlFormatter.js re-exports from here,
11
- * server/lib/kv-cache-analyzer.js imports from here.
10
+ * Single source of truth: apps/web/src/utils/toolsXmlFormatter.js re-exports
11
+ * from here (via @ccv/core), server/lib/kv-cache-analyzer.js imports from here.
12
12
  *
13
13
  * Note: free-text fields (name / description / enum) are NOT XML-escaped.
14
14
  * parseCachedTools relies on first-match semantics — the tool-level <name>
@@ -1,4 +1,4 @@
1
- // CLIENT-SAFE: no node deps. Imported by src/ do not add fs/process/node: imports.
1
+ // CLIENT-SAFE: no node deps. Home: @ccv/core (v2-transcript-normalizer.js) — consumed by apps/web + packages/app. Do not add fs/process/node: imports.
2
2
  /**
3
3
  * V2 Transcript Normalizer — Claude Code 2.x JSONL → legacy-compatible entry
4
4
  *
@@ -1,4 +1,4 @@
1
- // CLIENT-SAFE: no node deps. Imported by src/ do not add fs/process/node: imports.
1
+ // CLIENT-SAFE: no node deps. Home: @ccv/core (voice-pack-events.js) — consumed by apps/web + packages/app. Do not add fs/process/node: imports.
2
2
  // Single source of truth for voice-pack event keys + their default bindings.
3
3
  //
4
4
  // Why a shared module: this list was previously duplicated across
@@ -13,7 +13,7 @@
13
13
 
14
14
  // 注:timeoutWarning5min / timeoutWarning60s 已删除。AskUserQuestion 实质 24h 无超时后
15
15
  // 倒计时不再渲染(AskTimeoutCountdown.jsx isInfiniteTimeout → null),剩余时间预警事件失去意义。
16
- // 老用户 preferences.json 含这两个 key 由 server/lib/approval-modal-prefs.js _filterEvents 白名单
16
+ // 老用户 preferences.json 含这两个 key 由 ./approval-modal-prefs.js(@ccv/core)_filterEvents 白名单
17
17
  // 自动 strip,零迁移工作量。孤儿 audio 文件留待 cleanup CLI(backlog)。
18
18
  export const EVENT_KEYS = [
19
19
  'planApproval',
package/package.json CHANGED
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "name": "cc-viewer",
3
- "version": "1.7.22",
3
+ "version": "1.8.0",
4
4
  "description": "Claude Code logging, visualization, and management toolkit — launch a web viewer alongside Claude Code with full request/response tracing, proxy, and mobile support",
5
5
  "license": "MIT",
6
6
  "main": "server.js",
7
7
  "type": "module",
8
- "packageManager": "npm@11.9.0",
9
8
  "exports": {
10
9
  ".": "./server.js",
11
10
  "./interceptor.js": "./server/interceptor.js"
@@ -15,25 +14,10 @@
15
14
  "ccv": "cli.js"
16
15
  },
17
16
  "scripts": {
18
- "dev": "vite",
19
- "build": "node build.js",
20
- "build:sourcemap": "CCV_SOURCEMAP=1 node build.js",
17
+ "assemble": "node scripts/assemble-dist.mjs",
18
+ "prepack": "node scripts/assemble-dist.mjs",
21
19
  "start": "node server.js",
22
- "lint:control-bytes": "node scripts/check-no-control-bytes.js",
23
- "verify:wire-v2": "node cli.js verify",
24
- "pretest": "npm run lint:control-bytes",
25
- "pretest:cli": "npm run lint:control-bytes",
26
- "pretest:coverage": "npm run lint:control-bytes",
27
- "pretest:coverage:html": "npm run lint:control-bytes",
28
- "test": "CCV_INSTANCE_ID= CCV_LOG_DIR=tmp CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 node --test --test-force-exit --test-timeout=120000",
29
- "test:cli": "CCV_TEST_CLI=1 CCV_INSTANCE_ID= CCV_LOG_DIR=tmp CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 node --test --test-force-exit --test-timeout=120000",
30
- "test:coverage": "CCV_TEST_CLI=1 CCV_INSTANCE_ID= CCV_LOG_DIR=tmp CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 node --test --test-force-exit --test-timeout=120000 --experimental-test-coverage --test-coverage-include='server/**/*.js' --test-coverage-include='src/utils/**/*.js' --test-coverage-include='*.js'",
31
- "test:coverage:html": "CCV_TEST_CLI=1 CCV_INSTANCE_ID= CCV_LOG_DIR=tmp CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 c8 --reporter=text-summary --reporter=html node --test --test-force-exit --test-timeout=120000",
32
- "prepublishOnly": "npm run build",
33
- "electron:dev": "electron electron/main.js",
34
- "electron:build": "npm run build && electron-builder",
35
- "electron:sign": "npm run electron:build && ./scripts/mac-sign.sh",
36
- "electron:check-sign": "./scripts/check-sign-config.sh"
20
+ "verify:wire-v2": "node cli.js verify"
37
21
  },
38
22
  "keywords": [
39
23
  "claude code",
@@ -56,7 +40,7 @@
56
40
  },
57
41
  "homepage": "https://github.com/weiesky/cc-viewer#readme",
58
42
  "engines": {
59
- "node": ">=20.14.0"
43
+ "node": ">=20.18.1"
60
44
  },
61
45
  "files": [
62
46
  "dist/",
@@ -66,64 +50,17 @@
66
50
  "findcc.js",
67
51
  "interceptor.js",
68
52
  "server/",
69
- "src/utils/",
70
53
  "plugins/",
71
54
  "concepts/",
72
55
  "ultraAgents/"
73
56
  ],
74
- "devDependencies": {
75
- "@ant-design/icons": "^5.6.1",
76
- "@codemirror/lang-cpp": "^6.0.3",
77
- "@codemirror/lang-css": "^6.3.1",
78
- "@codemirror/lang-go": "^6.0.1",
79
- "@codemirror/lang-java": "^6.0.2",
80
- "@codemirror/lang-javascript": "^6.2.5",
81
- "@codemirror/lang-json": "^6.0.2",
82
- "@codemirror/lang-markdown": "^6.5.0",
83
- "@codemirror/lang-php": "^6.0.2",
84
- "@codemirror/lang-python": "^6.2.1",
85
- "@codemirror/lang-rust": "^6.0.2",
86
- "@codemirror/lang-sql": "^6.10.0",
87
- "@codemirror/lang-xml": "^6.1.0",
88
- "@codemirror/lang-yaml": "^6.1.2",
89
- "@codemirror/language": "^6.12.3",
90
- "@codemirror/view": "^6.41.0",
91
- "@electron/notarize": "^3.1.1",
92
- "@lezer/highlight": "^1.2.3",
93
- "@mdxeditor/editor": "^3.55.0",
94
- "@replit/codemirror-minimap": "^0.5.2",
95
- "@uiw/react-codemirror": "^4.25.8",
96
- "@vitejs/plugin-react": "^4.5.2",
97
- "@xterm/addon-fit": "^0.11.0",
98
- "@xterm/addon-unicode11": "^0.9.0",
99
- "@xterm/addon-web-links": "^0.12.0",
100
- "@xterm/addon-webgl": "^0.19.0",
101
- "@xterm/xterm": "^6.0.0",
102
- "antd": "^5.29.2",
103
- "c8": "^11.0.0",
104
- "diff": "^8.0.3",
105
- "electron": "^42.0.1",
106
- "electron-builder": "^26.8.1",
107
- "highlight.js": "^11.11.1",
108
- "html2canvas": "^1.4.1",
109
- "jszip": "^3.10.1",
110
- "marked": "^17.0.2",
111
- "mermaid": "^11.13.0",
112
- "qrcode.react": "^4.2.0",
113
- "react": "^18.3.1",
114
- "react-dom": "^18.3.1",
115
- "react-json-view-lite": "^2.1.0",
116
- "react-virtuoso": "^4.18.3",
117
- "terser": "^5.48.0",
118
- "vite": "^6.3.5"
119
- },
120
57
  "dependencies": {
58
+ "@ccv/core": "0.0.0",
121
59
  "@larksuiteoapi/node-sdk": "1.66.0",
122
60
  "@wecom/aibot-node-sdk": "1.0.7",
123
- "adm-zip": "^0.5.17",
61
+ "adm-zip": "^0.6.0",
124
62
  "dingtalk-stream": "2.1.5",
125
63
  "discord.js": "14.26.4",
126
- "dompurify": "^3.3.3",
127
64
  "node-pty": "^1.1.0",
128
65
  "undici": "^7.22.0",
129
66
  "ws": "^8.21.0"
@@ -131,30 +68,8 @@
131
68
  "optionalDependencies": {
132
69
  "@anthropic-ai/claude-agent-sdk": "^0.2.91"
133
70
  },
134
- "overrides": {
135
- "axios": "^1.16.1",
136
- "qs": "^6.15.2",
137
- "node-gyp": "^12.1.0"
138
- },
139
- "c8": {
140
- "include": [
141
- "server/**/*.js",
142
- "src/utils/**/*.js",
143
- "*.js"
144
- ],
145
- "exclude": [
146
- "test/**",
147
- "dist/**",
148
- "node_modules/**",
149
- "build.js",
150
- "vite.config.js",
151
- "electron/**",
152
- "scripts/**",
153
- "coverage/**"
154
- ],
155
- "all": true,
156
- "report-dir": "coverage",
157
- "skip-full": false,
158
- "check-coverage": false
159
- }
71
+ "//bundledDependencies": "@ccv/core is the private workspace package (packages/core). npm pack follows the pnpm workspace symlink and ships it as real files inside the tarball — no registry publish, no import rewriting.",
72
+ "bundledDependencies": [
73
+ "@ccv/core"
74
+ ]
160
75
  }
package/server/_paths.js CHANGED
@@ -14,6 +14,7 @@
14
14
  // fallback, but this constant itself is not aware of those edge cases.
15
15
  import { fileURLToPath } from 'node:url';
16
16
  import { dirname, join, resolve } from 'node:path';
17
+ import { existsSync } from 'node:fs';
17
18
 
18
19
  const HERE = dirname(fileURLToPath(import.meta.url));
19
20
 
@@ -27,17 +28,37 @@ export const NODE_MODULES = resolve(HERE, '..', '..');
27
28
  export const SERVER_LIB = join(HERE, 'lib');
28
29
  /** Vite build output (dist/index.html + assets/*) */
29
30
  export const DIST_DIR = join(PACKAGE_ROOT, 'dist');
30
- /** Dev resources (public/voice-packs/* etc., copied to dist/ by vite) */
31
- export const PUBLIC_DIR = join(PACKAGE_ROOT, 'public');
32
- /** Multi-language concept docs (GlobalSettings.md / Tool-*.md etc.) */
33
- export const CONCEPTS_DIR = join(PACKAGE_ROOT, 'concepts');
31
+ /** Dev resources (public/voice-packs/* etc., copied to dist/ by vite).
32
+ * Monorepo: public/ lives in apps/web (vite build input); the published tarball
33
+ * ships no public/ at all (its contents reach dist/ via the web build). */
34
+ export const PUBLIC_DIR = existsSync(join(PACKAGE_ROOT, 'public'))
35
+ ? join(PACKAGE_ROOT, 'public')
36
+ : resolve(PACKAGE_ROOT, '..', '..', 'apps', 'web', 'public');
34
37
  /** Bundled plugin directory (scanned by plugin-loader at startup) */
35
38
  export const PLUGINS_DIR = join(PACKAGE_ROOT, 'plugins');
39
+
40
+ // Bundled content assets live in the @ccv/content workspace package (packages/content)
41
+ // and are copied back into packages/app at pack time (scripts/assemble-dist.mjs).
42
+ // Probe the content package FIRST so dev edits are live even when a stale assembled
43
+ // copy exists in packages/app; the installed tarball has no ../content sibling and
44
+ // falls back to the assembled in-package copy. Each probe checks a structural sentinel
45
+ // to avoid false hits on an unrelated sibling directory.
46
+ const CONTENT_PKG = resolve(PACKAGE_ROOT, '..', 'content');
47
+ /** Multi-language concept docs (GlobalSettings.md / Tool-*.md etc.) */
48
+ export const CONCEPTS_DIR = existsSync(join(CONTENT_PKG, 'concepts', 'en'))
49
+ ? join(CONTENT_PKG, 'concepts')
50
+ : join(PACKAGE_ROOT, 'concepts');
36
51
  /** Bundled ultraplan preset expert directory (ultraAgents/*.json, served by /api/ultra-agents) */
37
- export const ULTRA_AGENTS_DIR = join(PACKAGE_ROOT, 'ultraAgents');
52
+ export const ULTRA_AGENTS_DIR = existsSync(join(CONTENT_PKG, 'ultraAgents', 'code-expert.json'))
53
+ ? join(CONTENT_PKG, 'ultraAgents')
54
+ : join(PACKAGE_ROOT, 'ultraAgents');
38
55
  /** Bundled IM default skill source (server/imSkills/<lang>/<skill>/SKILL.md + scripts/*.mjs) */
39
- export const IM_SKILLS_DIR = join(SERVER_DIR, 'imSkills');
56
+ export const IM_SKILLS_DIR = existsSync(join(CONTENT_PKG, 'server', 'imSkills', 'scripts'))
57
+ ? join(CONTENT_PKG, 'server', 'imSkills')
58
+ : join(SERVER_DIR, 'imSkills');
40
59
  /** Bundled IM persona preset templates (server/imPreset/<lang>.md, {platform}/{id} substituted at runtime) */
41
- export const IM_PRESET_DIR = join(SERVER_DIR, 'imPreset');
60
+ export const IM_PRESET_DIR = existsSync(join(CONTENT_PKG, 'server', 'imPreset', 'en.md'))
61
+ ? join(CONTENT_PKG, 'server', 'imPreset')
62
+ : join(SERVER_DIR, 'imPreset');
42
63
  /** cc-viewer's own package.json (updater/server.js reads version) */
43
64
  export const PACKAGE_JSON = join(PACKAGE_ROOT, 'package.json');
package/server/i18n.js CHANGED
@@ -162,6 +162,46 @@ const i18nData = {
162
162
  "tr": "⚠️ Kullanıcının --settings değeri {value} yüklenemedi ({reason}); yalnızca CC Viewer'ın enjekte ettiği settings ile başlatılıyor",
163
163
  "uk": "⚠️ Не вдалося завантажити користувацьке значення --settings {value} ({reason}); запуск лише з налаштуваннями, впровадженими CC Viewer"
164
164
  },
165
+ "cli.systemPromptPinned": {
166
+ "zh": "已恢复会话:按原样重注入该会话原本的系统提示词({files}),不重渲染变量,保持上下文缓存",
167
+ "en": "Resumed session: re-injecting the session's original system prompt ({files}) verbatim — variables are not re-rendered, preserving the context cache",
168
+ "zh-TW": "已恢復工作階段:按原樣重新注入該工作階段原本的系統提示詞({files}),不重新渲染變數,保留上下文快取",
169
+ "ko": "재개된 세션: 세션의 원래 시스템 프롬프트({files})를 그대로 다시 주입합니다. 변수는 다시 렌더링되지 않으며 컨텍스트 캐시를 유지합니다",
170
+ "ja": "再開したセッション:セッション元のシステムプロンプト({files})をそのまま再注入します。変数は再レンダリングせず、コンテキストキャッシュを維持します",
171
+ "de": "Wiederaufgenommene Sitzung: Der ursprüngliche System-Prompt der Sitzung ({files}) wird unverändert erneut injiziert — Variablen werden nicht neu gerendert, der Kontext-Cache bleibt erhalten",
172
+ "es": "Sesión reanudada: se vuelve a inyectar el prompt del sistema original de la sesión ({files}) tal cual, sin volver a renderizar las variables, preservando la caché de contexto",
173
+ "fr": "Session reprise : réinjection à l'identique du prompt système d'origine de la session ({files}) — les variables ne sont pas re-rendues, le cache de contexte est préservé",
174
+ "it": "Sessione ripresa: reiniezione del prompt di sistema originale della sessione ({files}) così com'è — le variabili non vengono renderizzate nuovamente, preservando la cache di contesto",
175
+ "da": "Genoptaget session: sessionens oprindelige system prompt ({files}) indsættes igen uændret — variabler gengives ikke på ny, og kontekstcachen bevares",
176
+ "pl": "Wznowiona sesja: ponowne wstrzyknięcie oryginalnego promptu systemowego sesji ({files}) w niezmienionej formie — zmienne nie są ponownie renderowane, co zachowuje pamięć podręczną kontekstu",
177
+ "ru": "Возобновлённый сеанс: исходный системный промпт сеанса ({files}) повторно внедряется без изменений — переменные не подставляются заново, кэш контекста сохраняется",
178
+ "ar": "استُؤنفت الجلسة: إعادة حقن موجّه النظام الأصلي للجلسة ({files}) كما هو حرفيًا — لا تتم إعادة تصيير المتغيرات، مع الحفاظ على ذاكرة التخزين المؤقت للسياق",
179
+ "no": "Gjenopptatt økt: øktens opprinnelige system prompt ({files}) injiseres på nytt uendret — variabler rendres ikke på nytt, og kontekstbufferen bevares",
180
+ "pt-BR": "Sessão retomada: reinjetando o prompt de sistema original da sessão ({files}) sem alterações — as variáveis não são renderizadas novamente, preservando o cache de contexto",
181
+ "th": "เซสชันที่กลับมาทำต่อ: ฉีด system prompt เดิมของเซสชัน ({files}) กลับเข้าไปใหม่ตามต้นฉบับ — ไม่เรนเดอร์ตัวแปรใหม่ เพื่อรักษาแคชบริบท",
182
+ "tr": "Sürdürülen oturum: oturumun orijinal sistem istemi ({files}) olduğu gibi yeniden enjekte ediliyor — değişkenler yeniden render edilmez, bağlam önbelleği korunur",
183
+ "uk": "Відновлений сеанс: оригінальний системний промпт сеансу ({files}) повторно впроваджується без змін — змінні не підставляються заново, кеш контексту зберігається"
184
+ },
185
+ "cli.systemPromptResumeNoSnapshot": {
186
+ "zh": "恢复的会话没有已记录的系统提示词:本次不注入任何系统提示词,保持原有上下文不变",
187
+ "en": "No recorded system prompt for the resumed session: launching without any injected system prompt, leaving the original context untouched",
188
+ "zh-TW": "恢復的工作階段沒有已記錄的系統提示詞:本次不注入任何系統提示詞,保持原有上下文不變",
189
+ "ko": "재개된 세션에 기록된 시스템 프롬프트가 없습니다: 시스템 프롬프트를 주입하지 않고 시작하며 기존 컨텍스트를 그대로 유지합니다",
190
+ "ja": "再開したセッションには記録されたシステムプロンプトがありません:システムプロンプトを注入せずに起動し、元のコンテキストを変更しません",
191
+ "de": "Kein aufgezeichneter System-Prompt für die wiederaufgenommene Sitzung: Start ohne injizierten System-Prompt, der ursprüngliche Kontext bleibt unverändert",
192
+ "es": "No hay un prompt de sistema registrado para la sesión reanudada: se inicia sin inyectar ningún prompt de sistema, dejando el contexto original intacto",
193
+ "fr": "Aucun prompt système enregistré pour la session reprise : lancement sans injection de prompt système, le contexte d'origine reste intact",
194
+ "it": "Nessun prompt di sistema registrato per la sessione ripresa: avvio senza alcun prompt di sistema iniettato, lasciando intatto il contesto originale",
195
+ "da": "Ingen registreret system prompt for den genoptagede session: start uden nogen injiceret system prompt, så den oprindelige kontekst forbliver uændret",
196
+ "pl": "Brak zapisanego promptu systemowego dla wznowionej sesji: uruchamianie bez wstrzykiwania promptu systemowego, z pozostawieniem oryginalnego kontekstu bez zmian",
197
+ "ru": "Для возобновлённого сеанса нет записанного системного промпта: запуск без внедрения системного промпта, исходный контекст остаётся неизменным",
198
+ "ar": "لا يوجد موجّه نظام مسجّل للجلسة المستأنفة: التشغيل دون حقن أي موجّه نظام، مع ترك السياق الأصلي دون تغيير",
199
+ "no": "Ingen registrert system prompt for den gjenopptatte økten: starter uten å injisere noen system prompt, og etterlater den opprinnelige konteksten urørt",
200
+ "pt-BR": "Nenhum prompt de sistema registrado para a sessão retomada: iniciando sem injetar nenhum prompt de sistema, mantendo o contexto original intacto",
201
+ "th": "ไม่มี system prompt ที่บันทึกไว้สำหรับเซสชันที่กลับมาทำต่อ: จะเริ่มโดยไม่ฉีด system prompt ใด ๆ โดยคงบริบทเดิมไว้ไม่เปลี่ยนแปลง",
202
+ "tr": "Sürdürülen oturum için kayıtlı bir sistem istemi yok: hiçbir sistem istemi enjekte edilmeden başlatılıyor, orijinal bağlam olduğu gibi bırakılıyor",
203
+ "uk": "Для відновленого сеансу немає записаного системного промпту: запуск без впровадження будь-якого системного промпту, початковий контекст залишається незмінним"
204
+ },
165
205
  "cli.inject.notFound": {
166
206
  "zh": "❌ 找不到 Claude Code cli.js: {path}",
167
207
  "en": "❌ Claude Code cli.js not found: {path}",
@@ -843,6 +883,26 @@ const i18nData = {
843
883
  "tr": "Homebrew kurulumu algılandı, v{version} mevcut — çalıştırın: brew upgrade cc-viewer",
844
884
  "uk": "Виявлено встановлення Homebrew, доступна v{version} — виконайте: brew upgrade cc-viewer"
845
885
  },
886
+ "update.pnpmManaged": {
887
+ "zh": "检测到 pnpm 全局安装,新版本 v{version} 可用,请运行: pnpm add -g cc-viewer@{version}",
888
+ "en": "pnpm global install detected, v{version} available — run: pnpm add -g cc-viewer@{version}",
889
+ "zh-TW": "偵測到 pnpm 全域安裝,新版本 v{version} 可用,請執行: pnpm add -g cc-viewer@{version}",
890
+ "ko": "pnpm 전역 설치 감지됨, v{version} 사용 가능 — 실행: pnpm add -g cc-viewer@{version}",
891
+ "ja": "pnpm グローバルインストールを検出、v{version} が利用可能 — 実行: pnpm add -g cc-viewer@{version}",
892
+ "de": "pnpm-Globalinstallation erkannt, v{version} verfügbar — ausführen: pnpm add -g cc-viewer@{version}",
893
+ "es": "Instalación global de pnpm detectada, v{version} disponible — ejecutar: pnpm add -g cc-viewer@{version}",
894
+ "fr": "Installation globale pnpm détectée, v{version} disponible — exécuter : pnpm add -g cc-viewer@{version}",
895
+ "it": "Installazione globale pnpm rilevata, v{version} disponibile — eseguire: pnpm add -g cc-viewer@{version}",
896
+ "da": "pnpm-global installation registreret, v{version} tilgængelig — kør: pnpm add -g cc-viewer@{version}",
897
+ "pl": "Wykryto globalną instalację pnpm, v{version} dostępna — uruchom: pnpm add -g cc-viewer@{version}",
898
+ "ru": "Обнаружена глобальная установка pnpm, доступна v{version} — выполните: pnpm add -g cc-viewer@{version}",
899
+ "ar": "تم اكتشاف تثبيت pnpm العام، الإصدار v{version} متاح — قم بتشغيل: pnpm add -g cc-viewer@{version}",
900
+ "no": "pnpm-global installasjon oppdaget, v{version} tilgjengelig — kjør: pnpm add -g cc-viewer@{version}",
901
+ "pt-BR": "Instalação global pnpm detectada, v{version} disponível — execute: pnpm add -g cc-viewer@{version}",
902
+ "th": "ตรวจพบการติดตั้ง pnpm แบบ global, v{version} พร้อมใช้งาน — เรียกใช้: pnpm add -g cc-viewer@{version}",
903
+ "tr": "pnpm global kurulumu algılandı, v{version} mevcut — çalıştırın: pnpm add -g cc-viewer@{version}",
904
+ "uk": "Виявлено глобальне встановлення pnpm, доступна v{version} — виконайте: pnpm add -g cc-viewer@{version}"
905
+ },
846
906
  "update.failed": {
847
907
  "zh": "自动更新失败: {error}",
848
908
  "en": "Auto-update failed: {error}",
@@ -6,7 +6,7 @@
6
6
  const _ccvSkipArgs = ['--version', '-v', '--v', '--help', '-h', 'doctor', 'install', 'update', 'upgrade', 'auth', 'setup-token', 'agents', 'plugin', 'plugins', 'mcp'];
7
7
  const _ccvSkip = _ccvSkipArgs.includes(process.argv[2]);
8
8
 
9
- import './lib/proxy-env.js';
9
+ import './lib/proxy/proxy-env.js';
10
10
  import { mkdirSync, readFileSync, writeFileSync, existsSync, watchFile, unwatchFile, renameSync, rmSync } from 'node:fs';
11
11
  import http from 'node:http';
12
12
  import https from 'node:https';
@@ -16,10 +16,12 @@ import { dirname, join, basename } from 'node:path';
16
16
  import { LOG_DIR } from '../findcc.js';
17
17
  import { assembleStreamMessage, createStreamAssembler, isAnthropicApiPath, isMainAgentRequest, replaceTopLevelModel, injectOutputConfigEffort, resolveProfileModel, extractAgentSpawnPairs, classifyProxyRole, resolveRoleProfile, normalizeRoles, mergeActivePayload } from './lib/interceptor-core.js';
18
18
  import { V2Writer } from './lib/v2/v2-writer.js';
19
- import { reportSwallowed } from './lib/error-report.js';
19
+ import { reportSwallowed } from '@ccv/core/error-report';
20
20
  import { latestMainSessionDir, sessionHasCompletedMainTurn } from './lib/v2/session-select.js';
21
21
  import { sanitizePathComponent } from './lib/v2/layout.js';
22
- import { setRetryConfigPath, loadRetryConfig, DEFAULT_RETRY_CONFIG } from './lib/proxy-retry.js';
22
+ import { setRetryConfigPath, loadRetryConfig, DEFAULT_RETRY_CONFIG } from './lib/proxy/proxy-retry.js';
23
+ import { setProjectName } from './lib/project-state.js';
24
+ import { consumePendingForResume, writeSnapshot, projectKeyForCwd } from './lib/system-prompt-snapshots.js';
23
25
 
24
26
 
25
27
 
@@ -351,7 +353,7 @@ export { _activeProfile, _defaultConfig, _loadProxyProfile, PROFILE_PATH, setAct
351
353
  function resolveProjectBinding() {
352
354
  let cwd;
353
355
  try { cwd = process.cwd(); } catch { cwd = homedir(); }
354
- const projectName = basename(cwd).replace(/[^a-zA-Z0-9_\-\.]/g, '_');
356
+ const projectName = projectKeyForCwd(cwd);
355
357
  const dir = join(LOG_DIR, projectName);
356
358
  try { mkdirSync(dir, { recursive: true }); } catch { }
357
359
  return { dir, projectName };
@@ -392,6 +394,7 @@ if (process.env.CCV_WORKSPACE_MODE === '1') {
392
394
  } else {
393
395
  ({ dir: _logDir, projectName: _projectName } = resolveProjectBinding());
394
396
  }
397
+ setProjectName(_projectName); // mirror into the shared leaf (lib readers must not import this module)
395
398
  // Deprecated (1.7.0): the v1 log file no longer exists. The always-empty
396
399
  // export keeps legacy read fallbacks ("no file → empty stream") type-stable
397
400
  // until the last consumers are deleted with the continuity machinery (P3).
@@ -477,7 +480,12 @@ export function getLiveLogSource() {
477
480
  export function markSessionStart(payload) {
478
481
  try {
479
482
  const { source, sessionId, transcriptPath, cwd } = payload || {};
480
- if (source !== 'resume') return;
483
+ // 'resume' re-binds the writer AND feeds snapshot Bind B; 'fork' feeds only
484
+ // Bind B (a fork mints a fresh wire sid + the fork mark suppresses adoption,
485
+ // so the writer routes it correctly without a switch). Everything else is
486
+ // ignored (startup needs nothing; /clear has epoch machinery; teammate
487
+ // processes inherit CCVIEWER_PORT and fire startup events — dropped here).
488
+ if (source !== 'resume' && source !== 'fork') return;
481
489
  if (!transcriptPath || typeof transcriptPath !== 'string') {
482
490
  console.warn('[ccv session-start] resume signal without transcript_path — ignored');
483
491
  return;
@@ -487,17 +495,32 @@ export function markSessionStart(payload) {
487
495
  // enforced when both sides are known (workspace mode may leave
488
496
  // _projectName empty until bound).
489
497
  if (cwd && typeof cwd === 'string' && _projectName) {
490
- const cwdProject = basename(cwd).replace(/[^a-zA-Z0-9_\-\.]/g, '_');
498
+ const cwdProject = projectKeyForCwd(cwd);
491
499
  if (cwdProject !== _projectName) {
492
500
  console.warn(`[ccv session-start] resume signal from project "${cwdProject}" ignored (bound to "${_projectName}")`);
493
501
  return;
494
502
  }
495
503
  }
496
504
  const transcriptUuid = basename(transcriptPath, '.jsonl');
497
- _v2Writer.beginResumeSwitch({
498
- transcriptUuid,
499
- hookSid: (typeof sessionId === 'string' && sessionId) ? sessionId : null,
500
- });
505
+ if (source === 'resume') {
506
+ _v2Writer.beginResumeSwitch({
507
+ transcriptUuid,
508
+ hookSid: (typeof sessionId === 'string' && sessionId) ? sessionId : null,
509
+ });
510
+ }
511
+ // System-prompt snapshot, Bind B (system-prompt-snapshots.js): a process-level
512
+ // -c/-r launch queued a resumeExpected pending at spawn (pty-manager). The
513
+ // consume is identity-exact — source 'resume' matches on resolvedUuid, 'fork'
514
+ // on the fork flag — so a stolen in-terminal /resume hook or an out-of-order
515
+ // racing hook consumes nothing and poisons nothing; a mismatch only warns.
516
+ try {
517
+ const res = consumePendingForResume(cwd, transcriptUuid, source);
518
+ if (res && res.hit) {
519
+ writeSnapshot(cwd, transcriptUuid, { entries: res.hit.entries, model: res.hit.model, boundVia: 'hook' });
520
+ } else if (res && res.mismatch) {
521
+ console.warn(`[CC Viewer] -c/-r target mismatch (resolved ${res.mismatch}, actual ${transcriptUuid}) — system-prompt snapshot not bound`);
522
+ }
523
+ } catch (err) { reportSwallowed('session-start.sys-prompt-bind', err); }
501
524
  } catch (err) {
502
525
  reportSwallowed('session-start.mark', err);
503
526
  }
@@ -579,11 +602,12 @@ export { LOG_FILE, _initPromise, _projectName, _logDir };
579
602
  // forceNew 仅存于签名兼容(Electron multi-tab 传入):v2 下每个 claude 进程
580
603
  // 天然是新 session,无旧文件可复用。
581
604
  export function initForWorkspace(projectPath, { forceNew = false } = {}) { // eslint-disable-line no-unused-vars
582
- const projectName = basename(projectPath).replace(/[^a-zA-Z0-9_\-\.]/g, '_');
605
+ const projectName = projectKeyForCwd(projectPath);
583
606
  const dir = join(LOG_DIR, projectName);
584
607
  try { mkdirSync(dir, { recursive: true }); } catch {}
585
608
 
586
609
  _projectName = projectName;
610
+ setProjectName(projectName);
587
611
  _logDir = dir;
588
612
  // Fresh workspace context — no carried names apply; future requests must
589
613
  // create session dirs under the NEW project.
@@ -608,6 +632,7 @@ export function initForWorkspace(projectPath, { forceNew = false } = {}) { // es
608
632
  // 工作区模式:重置日志状态(返回工作区列表时调用)
609
633
  export function resetWorkspace() {
610
634
  _projectName = '';
635
+ setProjectName('');
611
636
  _logDir = '';
612
637
  // Workspace context gone: drop carried teammate names — the registry is
613
638
  // module-global, and without this a rotation in the NEXT workspace would
@@ -1,9 +1,9 @@
1
1
  // DingTalk adapter — the platform-specific half of the DingTalk bridge. The generic
2
2
  // orchestration (dedup, access control, queue, inject, chunk, turn-end reply) lives in
3
- // server/lib/im-bridge-core.js; this module only knows DingTalk's Stream client, ACK protocol,
3
+ // server/lib/im/im-bridge-core.js; this module only knows DingTalk's Stream client, ACK protocol,
4
4
  // inbound payload shape, access-token fetch, and proactive App API send endpoints.
5
5
  import { randomUUID } from 'node:crypto';
6
- import { registerAdapter } from '../im-bridge-core.js';
6
+ import { registerAdapter } from '../im/im-bridge-core.js';
7
7
  import { t } from '../../i18n.js';
8
8
 
9
9
  // ─── test seam: a fake Stream client factory (zero dingtalk-stream / network) ───