cx-viewer 1.0.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 (864) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +221 -0
  3. package/cli.js +735 -0
  4. package/concepts/ar/BodyDiffJSON.md +32 -0
  5. package/concepts/ar/BodyFields.md +42 -0
  6. package/concepts/ar/CacheRebuild.md +36 -0
  7. package/concepts/ar/GlobalSettings.md +232 -0
  8. package/concepts/ar/KVCacheContent.md +49 -0
  9. package/concepts/ar/MainAgent.md +23 -0
  10. package/concepts/ar/ProxySwitch.md +50 -0
  11. package/concepts/ar/QRCode.md +25 -0
  12. package/concepts/ar/ResponseFields.md +50 -0
  13. package/concepts/ar/SubAgent-Search.md +20 -0
  14. package/concepts/ar/Teammate.md +26 -0
  15. package/concepts/ar/Tool-Agent.md +125 -0
  16. package/concepts/ar/Tool-AskUserQuestion.md +75 -0
  17. package/concepts/ar/Tool-Bash.md +167 -0
  18. package/concepts/ar/Tool-Edit.md +46 -0
  19. package/concepts/ar/Tool-EnterPlanMode.md +128 -0
  20. package/concepts/ar/Tool-EnterWorktree.md +56 -0
  21. package/concepts/ar/Tool-ExitPlanMode.md +62 -0
  22. package/concepts/ar/Tool-Glob.md +39 -0
  23. package/concepts/ar/Tool-Grep.md +57 -0
  24. package/concepts/ar/Tool-NotebookEdit.md +33 -0
  25. package/concepts/ar/Tool-Read.md +56 -0
  26. package/concepts/ar/Tool-SendMessage.md +41 -0
  27. package/concepts/ar/Tool-Skill.md +56 -0
  28. package/concepts/ar/Tool-Task.md +51 -0
  29. package/concepts/ar/Tool-TaskCreate.md +78 -0
  30. package/concepts/ar/Tool-TaskGet.md +56 -0
  31. package/concepts/ar/Tool-TaskList.md +56 -0
  32. package/concepts/ar/Tool-TaskOutput.md +40 -0
  33. package/concepts/ar/Tool-TaskStop.md +32 -0
  34. package/concepts/ar/Tool-TaskUpdate.md +123 -0
  35. package/concepts/ar/Tool-TeamCreate.md +38 -0
  36. package/concepts/ar/Tool-TeamDelete.md +30 -0
  37. package/concepts/ar/Tool-WebFetch.md +55 -0
  38. package/concepts/ar/Tool-WebSearch.md +58 -0
  39. package/concepts/ar/Tool-Write.md +39 -0
  40. package/concepts/ar/Tool-executeCode.md +41 -0
  41. package/concepts/ar/Tool-getDiagnostics.md +32 -0
  42. package/concepts/ar/Tools.md +67 -0
  43. package/concepts/ar/ToolsFirst.md +77 -0
  44. package/concepts/ar/TranslateContextPollution.md +46 -0
  45. package/concepts/ar/UltraPlan.md +55 -0
  46. package/concepts/da/BodyDiffJSON.md +32 -0
  47. package/concepts/da/BodyFields.md +42 -0
  48. package/concepts/da/CacheRebuild.md +36 -0
  49. package/concepts/da/GlobalSettings.md +232 -0
  50. package/concepts/da/KVCacheContent.md +49 -0
  51. package/concepts/da/MainAgent.md +23 -0
  52. package/concepts/da/ProxySwitch.md +50 -0
  53. package/concepts/da/QRCode.md +25 -0
  54. package/concepts/da/ResponseFields.md +50 -0
  55. package/concepts/da/SubAgent-Search.md +20 -0
  56. package/concepts/da/Teammate.md +26 -0
  57. package/concepts/da/Tool-Agent.md +125 -0
  58. package/concepts/da/Tool-AskUserQuestion.md +75 -0
  59. package/concepts/da/Tool-Bash.md +167 -0
  60. package/concepts/da/Tool-Edit.md +46 -0
  61. package/concepts/da/Tool-EnterPlanMode.md +128 -0
  62. package/concepts/da/Tool-EnterWorktree.md +56 -0
  63. package/concepts/da/Tool-ExitPlanMode.md +62 -0
  64. package/concepts/da/Tool-Glob.md +39 -0
  65. package/concepts/da/Tool-Grep.md +57 -0
  66. package/concepts/da/Tool-NotebookEdit.md +33 -0
  67. package/concepts/da/Tool-Read.md +56 -0
  68. package/concepts/da/Tool-SendMessage.md +41 -0
  69. package/concepts/da/Tool-Skill.md +56 -0
  70. package/concepts/da/Tool-Task.md +51 -0
  71. package/concepts/da/Tool-TaskCreate.md +78 -0
  72. package/concepts/da/Tool-TaskGet.md +56 -0
  73. package/concepts/da/Tool-TaskList.md +56 -0
  74. package/concepts/da/Tool-TaskOutput.md +40 -0
  75. package/concepts/da/Tool-TaskStop.md +32 -0
  76. package/concepts/da/Tool-TaskUpdate.md +123 -0
  77. package/concepts/da/Tool-TeamCreate.md +38 -0
  78. package/concepts/da/Tool-TeamDelete.md +30 -0
  79. package/concepts/da/Tool-WebFetch.md +55 -0
  80. package/concepts/da/Tool-WebSearch.md +58 -0
  81. package/concepts/da/Tool-Write.md +39 -0
  82. package/concepts/da/Tool-executeCode.md +41 -0
  83. package/concepts/da/Tool-getDiagnostics.md +32 -0
  84. package/concepts/da/Tools.md +67 -0
  85. package/concepts/da/ToolsFirst.md +77 -0
  86. package/concepts/da/TranslateContextPollution.md +46 -0
  87. package/concepts/da/UltraPlan.md +55 -0
  88. package/concepts/de/BodyDiffJSON.md +32 -0
  89. package/concepts/de/BodyFields.md +42 -0
  90. package/concepts/de/CacheRebuild.md +36 -0
  91. package/concepts/de/GlobalSettings.md +232 -0
  92. package/concepts/de/KVCacheContent.md +49 -0
  93. package/concepts/de/MainAgent.md +23 -0
  94. package/concepts/de/ProxySwitch.md +50 -0
  95. package/concepts/de/QRCode.md +25 -0
  96. package/concepts/de/ResponseFields.md +50 -0
  97. package/concepts/de/SubAgent-Search.md +20 -0
  98. package/concepts/de/Teammate.md +26 -0
  99. package/concepts/de/Tool-Agent.md +125 -0
  100. package/concepts/de/Tool-AskUserQuestion.md +75 -0
  101. package/concepts/de/Tool-Bash.md +167 -0
  102. package/concepts/de/Tool-Edit.md +46 -0
  103. package/concepts/de/Tool-EnterPlanMode.md +128 -0
  104. package/concepts/de/Tool-EnterWorktree.md +56 -0
  105. package/concepts/de/Tool-ExitPlanMode.md +62 -0
  106. package/concepts/de/Tool-Glob.md +39 -0
  107. package/concepts/de/Tool-Grep.md +57 -0
  108. package/concepts/de/Tool-NotebookEdit.md +33 -0
  109. package/concepts/de/Tool-Read.md +56 -0
  110. package/concepts/de/Tool-SendMessage.md +41 -0
  111. package/concepts/de/Tool-Skill.md +56 -0
  112. package/concepts/de/Tool-Task.md +51 -0
  113. package/concepts/de/Tool-TaskCreate.md +78 -0
  114. package/concepts/de/Tool-TaskGet.md +56 -0
  115. package/concepts/de/Tool-TaskList.md +56 -0
  116. package/concepts/de/Tool-TaskOutput.md +40 -0
  117. package/concepts/de/Tool-TaskStop.md +32 -0
  118. package/concepts/de/Tool-TaskUpdate.md +123 -0
  119. package/concepts/de/Tool-TeamCreate.md +38 -0
  120. package/concepts/de/Tool-TeamDelete.md +30 -0
  121. package/concepts/de/Tool-WebFetch.md +55 -0
  122. package/concepts/de/Tool-WebSearch.md +58 -0
  123. package/concepts/de/Tool-Write.md +39 -0
  124. package/concepts/de/Tool-executeCode.md +41 -0
  125. package/concepts/de/Tool-getDiagnostics.md +32 -0
  126. package/concepts/de/Tools.md +67 -0
  127. package/concepts/de/ToolsFirst.md +77 -0
  128. package/concepts/de/TranslateContextPollution.md +46 -0
  129. package/concepts/de/UltraPlan.md +55 -0
  130. package/concepts/en/BodyDiffJSON.md +32 -0
  131. package/concepts/en/BodyFields.md +42 -0
  132. package/concepts/en/CacheRebuild.md +36 -0
  133. package/concepts/en/GlobalSettings.md +232 -0
  134. package/concepts/en/KVCacheContent.md +49 -0
  135. package/concepts/en/MainAgent.md +23 -0
  136. package/concepts/en/ProxySwitch.md +50 -0
  137. package/concepts/en/QRCode.md +29 -0
  138. package/concepts/en/ResponseFields.md +50 -0
  139. package/concepts/en/SubAgent-Search.md +20 -0
  140. package/concepts/en/Teammate.md +26 -0
  141. package/concepts/en/Tool-Agent.md +125 -0
  142. package/concepts/en/Tool-AskUserQuestion.md +75 -0
  143. package/concepts/en/Tool-Bash.md +167 -0
  144. package/concepts/en/Tool-Edit.md +46 -0
  145. package/concepts/en/Tool-EnterPlanMode.md +128 -0
  146. package/concepts/en/Tool-EnterWorktree.md +56 -0
  147. package/concepts/en/Tool-ExitPlanMode.md +62 -0
  148. package/concepts/en/Tool-Glob.md +39 -0
  149. package/concepts/en/Tool-Grep.md +57 -0
  150. package/concepts/en/Tool-NotebookEdit.md +33 -0
  151. package/concepts/en/Tool-Read.md +56 -0
  152. package/concepts/en/Tool-SendMessage.md +41 -0
  153. package/concepts/en/Tool-Skill.md +56 -0
  154. package/concepts/en/Tool-Task.md +51 -0
  155. package/concepts/en/Tool-TaskCreate.md +78 -0
  156. package/concepts/en/Tool-TaskGet.md +56 -0
  157. package/concepts/en/Tool-TaskList.md +56 -0
  158. package/concepts/en/Tool-TaskOutput.md +40 -0
  159. package/concepts/en/Tool-TaskStop.md +32 -0
  160. package/concepts/en/Tool-TaskUpdate.md +123 -0
  161. package/concepts/en/Tool-TeamCreate.md +38 -0
  162. package/concepts/en/Tool-TeamDelete.md +30 -0
  163. package/concepts/en/Tool-WebFetch.md +55 -0
  164. package/concepts/en/Tool-WebSearch.md +58 -0
  165. package/concepts/en/Tool-Write.md +39 -0
  166. package/concepts/en/Tool-executeCode.md +41 -0
  167. package/concepts/en/Tool-getDiagnostics.md +32 -0
  168. package/concepts/en/Tools.md +67 -0
  169. package/concepts/en/ToolsFirst.md +77 -0
  170. package/concepts/en/TranslateContextPollution.md +46 -0
  171. package/concepts/en/UltraPlan.md +55 -0
  172. package/concepts/es/BodyDiffJSON.md +32 -0
  173. package/concepts/es/BodyFields.md +42 -0
  174. package/concepts/es/CacheRebuild.md +36 -0
  175. package/concepts/es/GlobalSettings.md +232 -0
  176. package/concepts/es/KVCacheContent.md +49 -0
  177. package/concepts/es/MainAgent.md +23 -0
  178. package/concepts/es/ProxySwitch.md +50 -0
  179. package/concepts/es/QRCode.md +25 -0
  180. package/concepts/es/ResponseFields.md +50 -0
  181. package/concepts/es/SubAgent-Search.md +20 -0
  182. package/concepts/es/Teammate.md +26 -0
  183. package/concepts/es/Tool-Agent.md +125 -0
  184. package/concepts/es/Tool-AskUserQuestion.md +75 -0
  185. package/concepts/es/Tool-Bash.md +167 -0
  186. package/concepts/es/Tool-Edit.md +46 -0
  187. package/concepts/es/Tool-EnterPlanMode.md +128 -0
  188. package/concepts/es/Tool-EnterWorktree.md +56 -0
  189. package/concepts/es/Tool-ExitPlanMode.md +62 -0
  190. package/concepts/es/Tool-Glob.md +39 -0
  191. package/concepts/es/Tool-Grep.md +57 -0
  192. package/concepts/es/Tool-NotebookEdit.md +33 -0
  193. package/concepts/es/Tool-Read.md +56 -0
  194. package/concepts/es/Tool-SendMessage.md +41 -0
  195. package/concepts/es/Tool-Skill.md +56 -0
  196. package/concepts/es/Tool-Task.md +51 -0
  197. package/concepts/es/Tool-TaskCreate.md +78 -0
  198. package/concepts/es/Tool-TaskGet.md +56 -0
  199. package/concepts/es/Tool-TaskList.md +56 -0
  200. package/concepts/es/Tool-TaskOutput.md +40 -0
  201. package/concepts/es/Tool-TaskStop.md +32 -0
  202. package/concepts/es/Tool-TaskUpdate.md +123 -0
  203. package/concepts/es/Tool-TeamCreate.md +38 -0
  204. package/concepts/es/Tool-TeamDelete.md +30 -0
  205. package/concepts/es/Tool-WebFetch.md +55 -0
  206. package/concepts/es/Tool-WebSearch.md +58 -0
  207. package/concepts/es/Tool-Write.md +39 -0
  208. package/concepts/es/Tool-executeCode.md +41 -0
  209. package/concepts/es/Tool-getDiagnostics.md +32 -0
  210. package/concepts/es/Tools.md +67 -0
  211. package/concepts/es/ToolsFirst.md +77 -0
  212. package/concepts/es/TranslateContextPollution.md +46 -0
  213. package/concepts/es/UltraPlan.md +55 -0
  214. package/concepts/fr/BodyDiffJSON.md +32 -0
  215. package/concepts/fr/BodyFields.md +42 -0
  216. package/concepts/fr/CacheRebuild.md +36 -0
  217. package/concepts/fr/GlobalSettings.md +232 -0
  218. package/concepts/fr/KVCacheContent.md +49 -0
  219. package/concepts/fr/MainAgent.md +23 -0
  220. package/concepts/fr/ProxySwitch.md +50 -0
  221. package/concepts/fr/QRCode.md +25 -0
  222. package/concepts/fr/ResponseFields.md +50 -0
  223. package/concepts/fr/SubAgent-Search.md +20 -0
  224. package/concepts/fr/Teammate.md +26 -0
  225. package/concepts/fr/Tool-Agent.md +125 -0
  226. package/concepts/fr/Tool-AskUserQuestion.md +75 -0
  227. package/concepts/fr/Tool-Bash.md +167 -0
  228. package/concepts/fr/Tool-Edit.md +46 -0
  229. package/concepts/fr/Tool-EnterPlanMode.md +128 -0
  230. package/concepts/fr/Tool-EnterWorktree.md +56 -0
  231. package/concepts/fr/Tool-ExitPlanMode.md +62 -0
  232. package/concepts/fr/Tool-Glob.md +39 -0
  233. package/concepts/fr/Tool-Grep.md +57 -0
  234. package/concepts/fr/Tool-NotebookEdit.md +33 -0
  235. package/concepts/fr/Tool-Read.md +56 -0
  236. package/concepts/fr/Tool-SendMessage.md +41 -0
  237. package/concepts/fr/Tool-Skill.md +56 -0
  238. package/concepts/fr/Tool-Task.md +51 -0
  239. package/concepts/fr/Tool-TaskCreate.md +78 -0
  240. package/concepts/fr/Tool-TaskGet.md +56 -0
  241. package/concepts/fr/Tool-TaskList.md +56 -0
  242. package/concepts/fr/Tool-TaskOutput.md +40 -0
  243. package/concepts/fr/Tool-TaskStop.md +32 -0
  244. package/concepts/fr/Tool-TaskUpdate.md +123 -0
  245. package/concepts/fr/Tool-TeamCreate.md +38 -0
  246. package/concepts/fr/Tool-TeamDelete.md +30 -0
  247. package/concepts/fr/Tool-WebFetch.md +55 -0
  248. package/concepts/fr/Tool-WebSearch.md +58 -0
  249. package/concepts/fr/Tool-Write.md +39 -0
  250. package/concepts/fr/Tool-executeCode.md +41 -0
  251. package/concepts/fr/Tool-getDiagnostics.md +32 -0
  252. package/concepts/fr/Tools.md +67 -0
  253. package/concepts/fr/ToolsFirst.md +77 -0
  254. package/concepts/fr/TranslateContextPollution.md +46 -0
  255. package/concepts/fr/UltraPlan.md +55 -0
  256. package/concepts/it/BodyDiffJSON.md +32 -0
  257. package/concepts/it/BodyFields.md +42 -0
  258. package/concepts/it/CacheRebuild.md +36 -0
  259. package/concepts/it/GlobalSettings.md +232 -0
  260. package/concepts/it/KVCacheContent.md +49 -0
  261. package/concepts/it/MainAgent.md +23 -0
  262. package/concepts/it/ProxySwitch.md +50 -0
  263. package/concepts/it/QRCode.md +25 -0
  264. package/concepts/it/ResponseFields.md +50 -0
  265. package/concepts/it/SubAgent-Search.md +20 -0
  266. package/concepts/it/Teammate.md +26 -0
  267. package/concepts/it/Tool-Agent.md +125 -0
  268. package/concepts/it/Tool-AskUserQuestion.md +75 -0
  269. package/concepts/it/Tool-Bash.md +167 -0
  270. package/concepts/it/Tool-Edit.md +46 -0
  271. package/concepts/it/Tool-EnterPlanMode.md +128 -0
  272. package/concepts/it/Tool-EnterWorktree.md +56 -0
  273. package/concepts/it/Tool-ExitPlanMode.md +62 -0
  274. package/concepts/it/Tool-Glob.md +39 -0
  275. package/concepts/it/Tool-Grep.md +57 -0
  276. package/concepts/it/Tool-NotebookEdit.md +33 -0
  277. package/concepts/it/Tool-Read.md +56 -0
  278. package/concepts/it/Tool-SendMessage.md +41 -0
  279. package/concepts/it/Tool-Skill.md +56 -0
  280. package/concepts/it/Tool-Task.md +51 -0
  281. package/concepts/it/Tool-TaskCreate.md +78 -0
  282. package/concepts/it/Tool-TaskGet.md +56 -0
  283. package/concepts/it/Tool-TaskList.md +56 -0
  284. package/concepts/it/Tool-TaskOutput.md +40 -0
  285. package/concepts/it/Tool-TaskStop.md +32 -0
  286. package/concepts/it/Tool-TaskUpdate.md +123 -0
  287. package/concepts/it/Tool-TeamCreate.md +38 -0
  288. package/concepts/it/Tool-TeamDelete.md +30 -0
  289. package/concepts/it/Tool-WebFetch.md +55 -0
  290. package/concepts/it/Tool-WebSearch.md +58 -0
  291. package/concepts/it/Tool-Write.md +39 -0
  292. package/concepts/it/Tool-executeCode.md +41 -0
  293. package/concepts/it/Tool-getDiagnostics.md +32 -0
  294. package/concepts/it/Tools.md +67 -0
  295. package/concepts/it/ToolsFirst.md +77 -0
  296. package/concepts/it/TranslateContextPollution.md +46 -0
  297. package/concepts/it/UltraPlan.md +55 -0
  298. package/concepts/ja/BodyDiffJSON.md +32 -0
  299. package/concepts/ja/BodyFields.md +42 -0
  300. package/concepts/ja/CacheRebuild.md +36 -0
  301. package/concepts/ja/GlobalSettings.md +232 -0
  302. package/concepts/ja/KVCacheContent.md +49 -0
  303. package/concepts/ja/MainAgent.md +23 -0
  304. package/concepts/ja/ProxySwitch.md +50 -0
  305. package/concepts/ja/QRCode.md +25 -0
  306. package/concepts/ja/ResponseFields.md +50 -0
  307. package/concepts/ja/SubAgent-Search.md +20 -0
  308. package/concepts/ja/Teammate.md +26 -0
  309. package/concepts/ja/Tool-Agent.md +125 -0
  310. package/concepts/ja/Tool-AskUserQuestion.md +75 -0
  311. package/concepts/ja/Tool-Bash.md +167 -0
  312. package/concepts/ja/Tool-Edit.md +46 -0
  313. package/concepts/ja/Tool-EnterPlanMode.md +128 -0
  314. package/concepts/ja/Tool-EnterWorktree.md +56 -0
  315. package/concepts/ja/Tool-ExitPlanMode.md +62 -0
  316. package/concepts/ja/Tool-Glob.md +39 -0
  317. package/concepts/ja/Tool-Grep.md +57 -0
  318. package/concepts/ja/Tool-NotebookEdit.md +33 -0
  319. package/concepts/ja/Tool-Read.md +56 -0
  320. package/concepts/ja/Tool-SendMessage.md +41 -0
  321. package/concepts/ja/Tool-Skill.md +56 -0
  322. package/concepts/ja/Tool-Task.md +51 -0
  323. package/concepts/ja/Tool-TaskCreate.md +78 -0
  324. package/concepts/ja/Tool-TaskGet.md +56 -0
  325. package/concepts/ja/Tool-TaskList.md +56 -0
  326. package/concepts/ja/Tool-TaskOutput.md +40 -0
  327. package/concepts/ja/Tool-TaskStop.md +32 -0
  328. package/concepts/ja/Tool-TaskUpdate.md +123 -0
  329. package/concepts/ja/Tool-TeamCreate.md +38 -0
  330. package/concepts/ja/Tool-TeamDelete.md +30 -0
  331. package/concepts/ja/Tool-WebFetch.md +55 -0
  332. package/concepts/ja/Tool-WebSearch.md +58 -0
  333. package/concepts/ja/Tool-Write.md +39 -0
  334. package/concepts/ja/Tool-executeCode.md +41 -0
  335. package/concepts/ja/Tool-getDiagnostics.md +32 -0
  336. package/concepts/ja/Tools.md +67 -0
  337. package/concepts/ja/ToolsFirst.md +77 -0
  338. package/concepts/ja/TranslateContextPollution.md +46 -0
  339. package/concepts/ja/UltraPlan.md +55 -0
  340. package/concepts/ko/BodyDiffJSON.md +32 -0
  341. package/concepts/ko/BodyFields.md +42 -0
  342. package/concepts/ko/CacheRebuild.md +36 -0
  343. package/concepts/ko/GlobalSettings.md +232 -0
  344. package/concepts/ko/KVCacheContent.md +49 -0
  345. package/concepts/ko/MainAgent.md +23 -0
  346. package/concepts/ko/ProxySwitch.md +50 -0
  347. package/concepts/ko/QRCode.md +25 -0
  348. package/concepts/ko/ResponseFields.md +50 -0
  349. package/concepts/ko/SubAgent-Search.md +20 -0
  350. package/concepts/ko/Teammate.md +26 -0
  351. package/concepts/ko/Tool-Agent.md +125 -0
  352. package/concepts/ko/Tool-AskUserQuestion.md +75 -0
  353. package/concepts/ko/Tool-Bash.md +167 -0
  354. package/concepts/ko/Tool-Edit.md +46 -0
  355. package/concepts/ko/Tool-EnterPlanMode.md +128 -0
  356. package/concepts/ko/Tool-EnterWorktree.md +56 -0
  357. package/concepts/ko/Tool-ExitPlanMode.md +62 -0
  358. package/concepts/ko/Tool-Glob.md +39 -0
  359. package/concepts/ko/Tool-Grep.md +57 -0
  360. package/concepts/ko/Tool-NotebookEdit.md +33 -0
  361. package/concepts/ko/Tool-Read.md +56 -0
  362. package/concepts/ko/Tool-SendMessage.md +41 -0
  363. package/concepts/ko/Tool-Skill.md +56 -0
  364. package/concepts/ko/Tool-Task.md +51 -0
  365. package/concepts/ko/Tool-TaskCreate.md +78 -0
  366. package/concepts/ko/Tool-TaskGet.md +56 -0
  367. package/concepts/ko/Tool-TaskList.md +56 -0
  368. package/concepts/ko/Tool-TaskOutput.md +40 -0
  369. package/concepts/ko/Tool-TaskStop.md +32 -0
  370. package/concepts/ko/Tool-TaskUpdate.md +123 -0
  371. package/concepts/ko/Tool-TeamCreate.md +38 -0
  372. package/concepts/ko/Tool-TeamDelete.md +30 -0
  373. package/concepts/ko/Tool-WebFetch.md +55 -0
  374. package/concepts/ko/Tool-WebSearch.md +58 -0
  375. package/concepts/ko/Tool-Write.md +39 -0
  376. package/concepts/ko/Tool-executeCode.md +41 -0
  377. package/concepts/ko/Tool-getDiagnostics.md +32 -0
  378. package/concepts/ko/Tools.md +67 -0
  379. package/concepts/ko/ToolsFirst.md +77 -0
  380. package/concepts/ko/TranslateContextPollution.md +46 -0
  381. package/concepts/ko/UltraPlan.md +55 -0
  382. package/concepts/no/BodyDiffJSON.md +32 -0
  383. package/concepts/no/BodyFields.md +42 -0
  384. package/concepts/no/CacheRebuild.md +36 -0
  385. package/concepts/no/GlobalSettings.md +232 -0
  386. package/concepts/no/KVCacheContent.md +49 -0
  387. package/concepts/no/MainAgent.md +23 -0
  388. package/concepts/no/ProxySwitch.md +50 -0
  389. package/concepts/no/QRCode.md +25 -0
  390. package/concepts/no/ResponseFields.md +50 -0
  391. package/concepts/no/SubAgent-Search.md +20 -0
  392. package/concepts/no/Teammate.md +26 -0
  393. package/concepts/no/Tool-Agent.md +125 -0
  394. package/concepts/no/Tool-AskUserQuestion.md +75 -0
  395. package/concepts/no/Tool-Bash.md +167 -0
  396. package/concepts/no/Tool-Edit.md +46 -0
  397. package/concepts/no/Tool-EnterPlanMode.md +128 -0
  398. package/concepts/no/Tool-EnterWorktree.md +56 -0
  399. package/concepts/no/Tool-ExitPlanMode.md +62 -0
  400. package/concepts/no/Tool-Glob.md +39 -0
  401. package/concepts/no/Tool-Grep.md +57 -0
  402. package/concepts/no/Tool-NotebookEdit.md +33 -0
  403. package/concepts/no/Tool-Read.md +56 -0
  404. package/concepts/no/Tool-SendMessage.md +41 -0
  405. package/concepts/no/Tool-Skill.md +56 -0
  406. package/concepts/no/Tool-Task.md +51 -0
  407. package/concepts/no/Tool-TaskCreate.md +78 -0
  408. package/concepts/no/Tool-TaskGet.md +56 -0
  409. package/concepts/no/Tool-TaskList.md +56 -0
  410. package/concepts/no/Tool-TaskOutput.md +40 -0
  411. package/concepts/no/Tool-TaskStop.md +32 -0
  412. package/concepts/no/Tool-TaskUpdate.md +123 -0
  413. package/concepts/no/Tool-TeamCreate.md +38 -0
  414. package/concepts/no/Tool-TeamDelete.md +30 -0
  415. package/concepts/no/Tool-WebFetch.md +55 -0
  416. package/concepts/no/Tool-WebSearch.md +58 -0
  417. package/concepts/no/Tool-Write.md +39 -0
  418. package/concepts/no/Tool-executeCode.md +41 -0
  419. package/concepts/no/Tool-getDiagnostics.md +32 -0
  420. package/concepts/no/Tools.md +67 -0
  421. package/concepts/no/ToolsFirst.md +77 -0
  422. package/concepts/no/TranslateContextPollution.md +46 -0
  423. package/concepts/no/UltraPlan.md +55 -0
  424. package/concepts/pl/BodyDiffJSON.md +32 -0
  425. package/concepts/pl/BodyFields.md +42 -0
  426. package/concepts/pl/CacheRebuild.md +36 -0
  427. package/concepts/pl/GlobalSettings.md +232 -0
  428. package/concepts/pl/KVCacheContent.md +49 -0
  429. package/concepts/pl/MainAgent.md +23 -0
  430. package/concepts/pl/ProxySwitch.md +50 -0
  431. package/concepts/pl/QRCode.md +25 -0
  432. package/concepts/pl/ResponseFields.md +50 -0
  433. package/concepts/pl/SubAgent-Search.md +20 -0
  434. package/concepts/pl/Teammate.md +26 -0
  435. package/concepts/pl/Tool-Agent.md +125 -0
  436. package/concepts/pl/Tool-AskUserQuestion.md +75 -0
  437. package/concepts/pl/Tool-Bash.md +167 -0
  438. package/concepts/pl/Tool-Edit.md +46 -0
  439. package/concepts/pl/Tool-EnterPlanMode.md +128 -0
  440. package/concepts/pl/Tool-EnterWorktree.md +56 -0
  441. package/concepts/pl/Tool-ExitPlanMode.md +62 -0
  442. package/concepts/pl/Tool-Glob.md +39 -0
  443. package/concepts/pl/Tool-Grep.md +57 -0
  444. package/concepts/pl/Tool-NotebookEdit.md +33 -0
  445. package/concepts/pl/Tool-Read.md +56 -0
  446. package/concepts/pl/Tool-SendMessage.md +41 -0
  447. package/concepts/pl/Tool-Skill.md +56 -0
  448. package/concepts/pl/Tool-Task.md +51 -0
  449. package/concepts/pl/Tool-TaskCreate.md +78 -0
  450. package/concepts/pl/Tool-TaskGet.md +56 -0
  451. package/concepts/pl/Tool-TaskList.md +56 -0
  452. package/concepts/pl/Tool-TaskOutput.md +40 -0
  453. package/concepts/pl/Tool-TaskStop.md +32 -0
  454. package/concepts/pl/Tool-TaskUpdate.md +123 -0
  455. package/concepts/pl/Tool-TeamCreate.md +38 -0
  456. package/concepts/pl/Tool-TeamDelete.md +30 -0
  457. package/concepts/pl/Tool-WebFetch.md +55 -0
  458. package/concepts/pl/Tool-WebSearch.md +58 -0
  459. package/concepts/pl/Tool-Write.md +39 -0
  460. package/concepts/pl/Tool-executeCode.md +41 -0
  461. package/concepts/pl/Tool-getDiagnostics.md +32 -0
  462. package/concepts/pl/Tools.md +67 -0
  463. package/concepts/pl/ToolsFirst.md +77 -0
  464. package/concepts/pl/TranslateContextPollution.md +46 -0
  465. package/concepts/pl/UltraPlan.md +55 -0
  466. package/concepts/pt-BR/BodyDiffJSON.md +32 -0
  467. package/concepts/pt-BR/BodyFields.md +42 -0
  468. package/concepts/pt-BR/CacheRebuild.md +36 -0
  469. package/concepts/pt-BR/GlobalSettings.md +232 -0
  470. package/concepts/pt-BR/KVCacheContent.md +49 -0
  471. package/concepts/pt-BR/MainAgent.md +23 -0
  472. package/concepts/pt-BR/ProxySwitch.md +50 -0
  473. package/concepts/pt-BR/QRCode.md +25 -0
  474. package/concepts/pt-BR/ResponseFields.md +50 -0
  475. package/concepts/pt-BR/SubAgent-Search.md +20 -0
  476. package/concepts/pt-BR/Teammate.md +26 -0
  477. package/concepts/pt-BR/Tool-Agent.md +125 -0
  478. package/concepts/pt-BR/Tool-AskUserQuestion.md +75 -0
  479. package/concepts/pt-BR/Tool-Bash.md +167 -0
  480. package/concepts/pt-BR/Tool-Edit.md +46 -0
  481. package/concepts/pt-BR/Tool-EnterPlanMode.md +128 -0
  482. package/concepts/pt-BR/Tool-EnterWorktree.md +56 -0
  483. package/concepts/pt-BR/Tool-ExitPlanMode.md +62 -0
  484. package/concepts/pt-BR/Tool-Glob.md +39 -0
  485. package/concepts/pt-BR/Tool-Grep.md +57 -0
  486. package/concepts/pt-BR/Tool-NotebookEdit.md +33 -0
  487. package/concepts/pt-BR/Tool-Read.md +56 -0
  488. package/concepts/pt-BR/Tool-SendMessage.md +41 -0
  489. package/concepts/pt-BR/Tool-Skill.md +56 -0
  490. package/concepts/pt-BR/Tool-Task.md +51 -0
  491. package/concepts/pt-BR/Tool-TaskCreate.md +78 -0
  492. package/concepts/pt-BR/Tool-TaskGet.md +56 -0
  493. package/concepts/pt-BR/Tool-TaskList.md +56 -0
  494. package/concepts/pt-BR/Tool-TaskOutput.md +40 -0
  495. package/concepts/pt-BR/Tool-TaskStop.md +32 -0
  496. package/concepts/pt-BR/Tool-TaskUpdate.md +123 -0
  497. package/concepts/pt-BR/Tool-TeamCreate.md +38 -0
  498. package/concepts/pt-BR/Tool-TeamDelete.md +30 -0
  499. package/concepts/pt-BR/Tool-WebFetch.md +55 -0
  500. package/concepts/pt-BR/Tool-WebSearch.md +58 -0
  501. package/concepts/pt-BR/Tool-Write.md +39 -0
  502. package/concepts/pt-BR/Tool-executeCode.md +41 -0
  503. package/concepts/pt-BR/Tool-getDiagnostics.md +32 -0
  504. package/concepts/pt-BR/Tools.md +67 -0
  505. package/concepts/pt-BR/ToolsFirst.md +77 -0
  506. package/concepts/pt-BR/TranslateContextPollution.md +46 -0
  507. package/concepts/pt-BR/UltraPlan.md +55 -0
  508. package/concepts/ru/BodyDiffJSON.md +32 -0
  509. package/concepts/ru/BodyFields.md +42 -0
  510. package/concepts/ru/CacheRebuild.md +36 -0
  511. package/concepts/ru/GlobalSettings.md +232 -0
  512. package/concepts/ru/KVCacheContent.md +49 -0
  513. package/concepts/ru/MainAgent.md +23 -0
  514. package/concepts/ru/ProxySwitch.md +50 -0
  515. package/concepts/ru/QRCode.md +25 -0
  516. package/concepts/ru/ResponseFields.md +50 -0
  517. package/concepts/ru/SubAgent-Search.md +20 -0
  518. package/concepts/ru/Teammate.md +26 -0
  519. package/concepts/ru/Tool-Agent.md +125 -0
  520. package/concepts/ru/Tool-AskUserQuestion.md +75 -0
  521. package/concepts/ru/Tool-Bash.md +167 -0
  522. package/concepts/ru/Tool-Edit.md +46 -0
  523. package/concepts/ru/Tool-EnterPlanMode.md +128 -0
  524. package/concepts/ru/Tool-EnterWorktree.md +56 -0
  525. package/concepts/ru/Tool-ExitPlanMode.md +62 -0
  526. package/concepts/ru/Tool-Glob.md +39 -0
  527. package/concepts/ru/Tool-Grep.md +57 -0
  528. package/concepts/ru/Tool-NotebookEdit.md +33 -0
  529. package/concepts/ru/Tool-Read.md +56 -0
  530. package/concepts/ru/Tool-SendMessage.md +41 -0
  531. package/concepts/ru/Tool-Skill.md +56 -0
  532. package/concepts/ru/Tool-Task.md +51 -0
  533. package/concepts/ru/Tool-TaskCreate.md +78 -0
  534. package/concepts/ru/Tool-TaskGet.md +56 -0
  535. package/concepts/ru/Tool-TaskList.md +56 -0
  536. package/concepts/ru/Tool-TaskOutput.md +40 -0
  537. package/concepts/ru/Tool-TaskStop.md +32 -0
  538. package/concepts/ru/Tool-TaskUpdate.md +123 -0
  539. package/concepts/ru/Tool-TeamCreate.md +38 -0
  540. package/concepts/ru/Tool-TeamDelete.md +30 -0
  541. package/concepts/ru/Tool-WebFetch.md +55 -0
  542. package/concepts/ru/Tool-WebSearch.md +58 -0
  543. package/concepts/ru/Tool-Write.md +39 -0
  544. package/concepts/ru/Tool-executeCode.md +41 -0
  545. package/concepts/ru/Tool-getDiagnostics.md +32 -0
  546. package/concepts/ru/Tools.md +67 -0
  547. package/concepts/ru/ToolsFirst.md +77 -0
  548. package/concepts/ru/TranslateContextPollution.md +46 -0
  549. package/concepts/ru/UltraPlan.md +55 -0
  550. package/concepts/th/BodyDiffJSON.md +32 -0
  551. package/concepts/th/BodyFields.md +42 -0
  552. package/concepts/th/CacheRebuild.md +36 -0
  553. package/concepts/th/GlobalSettings.md +232 -0
  554. package/concepts/th/KVCacheContent.md +49 -0
  555. package/concepts/th/MainAgent.md +23 -0
  556. package/concepts/th/ProxySwitch.md +50 -0
  557. package/concepts/th/QRCode.md +25 -0
  558. package/concepts/th/ResponseFields.md +50 -0
  559. package/concepts/th/SubAgent-Search.md +20 -0
  560. package/concepts/th/Teammate.md +26 -0
  561. package/concepts/th/Tool-Agent.md +125 -0
  562. package/concepts/th/Tool-AskUserQuestion.md +75 -0
  563. package/concepts/th/Tool-Bash.md +167 -0
  564. package/concepts/th/Tool-Edit.md +46 -0
  565. package/concepts/th/Tool-EnterPlanMode.md +128 -0
  566. package/concepts/th/Tool-EnterWorktree.md +56 -0
  567. package/concepts/th/Tool-ExitPlanMode.md +62 -0
  568. package/concepts/th/Tool-Glob.md +39 -0
  569. package/concepts/th/Tool-Grep.md +57 -0
  570. package/concepts/th/Tool-NotebookEdit.md +33 -0
  571. package/concepts/th/Tool-Read.md +56 -0
  572. package/concepts/th/Tool-SendMessage.md +41 -0
  573. package/concepts/th/Tool-Skill.md +56 -0
  574. package/concepts/th/Tool-Task.md +51 -0
  575. package/concepts/th/Tool-TaskCreate.md +78 -0
  576. package/concepts/th/Tool-TaskGet.md +56 -0
  577. package/concepts/th/Tool-TaskList.md +56 -0
  578. package/concepts/th/Tool-TaskOutput.md +40 -0
  579. package/concepts/th/Tool-TaskStop.md +32 -0
  580. package/concepts/th/Tool-TaskUpdate.md +123 -0
  581. package/concepts/th/Tool-TeamCreate.md +38 -0
  582. package/concepts/th/Tool-TeamDelete.md +30 -0
  583. package/concepts/th/Tool-WebFetch.md +55 -0
  584. package/concepts/th/Tool-WebSearch.md +58 -0
  585. package/concepts/th/Tool-Write.md +39 -0
  586. package/concepts/th/Tool-executeCode.md +41 -0
  587. package/concepts/th/Tool-getDiagnostics.md +32 -0
  588. package/concepts/th/Tools.md +67 -0
  589. package/concepts/th/ToolsFirst.md +77 -0
  590. package/concepts/th/TranslateContextPollution.md +46 -0
  591. package/concepts/th/UltraPlan.md +55 -0
  592. package/concepts/tr/BodyDiffJSON.md +32 -0
  593. package/concepts/tr/BodyFields.md +42 -0
  594. package/concepts/tr/CacheRebuild.md +36 -0
  595. package/concepts/tr/GlobalSettings.md +232 -0
  596. package/concepts/tr/KVCacheContent.md +49 -0
  597. package/concepts/tr/MainAgent.md +23 -0
  598. package/concepts/tr/ProxySwitch.md +50 -0
  599. package/concepts/tr/QRCode.md +25 -0
  600. package/concepts/tr/ResponseFields.md +50 -0
  601. package/concepts/tr/SubAgent-Search.md +20 -0
  602. package/concepts/tr/Teammate.md +26 -0
  603. package/concepts/tr/Tool-Agent.md +125 -0
  604. package/concepts/tr/Tool-AskUserQuestion.md +75 -0
  605. package/concepts/tr/Tool-Bash.md +167 -0
  606. package/concepts/tr/Tool-Edit.md +46 -0
  607. package/concepts/tr/Tool-EnterPlanMode.md +128 -0
  608. package/concepts/tr/Tool-EnterWorktree.md +56 -0
  609. package/concepts/tr/Tool-ExitPlanMode.md +62 -0
  610. package/concepts/tr/Tool-Glob.md +39 -0
  611. package/concepts/tr/Tool-Grep.md +57 -0
  612. package/concepts/tr/Tool-NotebookEdit.md +33 -0
  613. package/concepts/tr/Tool-Read.md +56 -0
  614. package/concepts/tr/Tool-SendMessage.md +41 -0
  615. package/concepts/tr/Tool-Skill.md +56 -0
  616. package/concepts/tr/Tool-Task.md +51 -0
  617. package/concepts/tr/Tool-TaskCreate.md +78 -0
  618. package/concepts/tr/Tool-TaskGet.md +56 -0
  619. package/concepts/tr/Tool-TaskList.md +56 -0
  620. package/concepts/tr/Tool-TaskOutput.md +40 -0
  621. package/concepts/tr/Tool-TaskStop.md +32 -0
  622. package/concepts/tr/Tool-TaskUpdate.md +123 -0
  623. package/concepts/tr/Tool-TeamCreate.md +38 -0
  624. package/concepts/tr/Tool-TeamDelete.md +30 -0
  625. package/concepts/tr/Tool-WebFetch.md +55 -0
  626. package/concepts/tr/Tool-WebSearch.md +58 -0
  627. package/concepts/tr/Tool-Write.md +39 -0
  628. package/concepts/tr/Tool-executeCode.md +41 -0
  629. package/concepts/tr/Tool-getDiagnostics.md +32 -0
  630. package/concepts/tr/Tools.md +67 -0
  631. package/concepts/tr/ToolsFirst.md +77 -0
  632. package/concepts/tr/TranslateContextPollution.md +46 -0
  633. package/concepts/tr/UltraPlan.md +55 -0
  634. package/concepts/uk/BodyDiffJSON.md +32 -0
  635. package/concepts/uk/BodyFields.md +42 -0
  636. package/concepts/uk/CacheRebuild.md +36 -0
  637. package/concepts/uk/GlobalSettings.md +232 -0
  638. package/concepts/uk/KVCacheContent.md +49 -0
  639. package/concepts/uk/MainAgent.md +23 -0
  640. package/concepts/uk/ProxySwitch.md +50 -0
  641. package/concepts/uk/QRCode.md +25 -0
  642. package/concepts/uk/ResponseFields.md +50 -0
  643. package/concepts/uk/SubAgent-Search.md +20 -0
  644. package/concepts/uk/Teammate.md +26 -0
  645. package/concepts/uk/Tool-Agent.md +125 -0
  646. package/concepts/uk/Tool-AskUserQuestion.md +75 -0
  647. package/concepts/uk/Tool-Bash.md +167 -0
  648. package/concepts/uk/Tool-Edit.md +46 -0
  649. package/concepts/uk/Tool-EnterPlanMode.md +128 -0
  650. package/concepts/uk/Tool-EnterWorktree.md +56 -0
  651. package/concepts/uk/Tool-ExitPlanMode.md +62 -0
  652. package/concepts/uk/Tool-Glob.md +39 -0
  653. package/concepts/uk/Tool-Grep.md +57 -0
  654. package/concepts/uk/Tool-NotebookEdit.md +33 -0
  655. package/concepts/uk/Tool-Read.md +56 -0
  656. package/concepts/uk/Tool-SendMessage.md +41 -0
  657. package/concepts/uk/Tool-Skill.md +56 -0
  658. package/concepts/uk/Tool-Task.md +51 -0
  659. package/concepts/uk/Tool-TaskCreate.md +78 -0
  660. package/concepts/uk/Tool-TaskGet.md +56 -0
  661. package/concepts/uk/Tool-TaskList.md +56 -0
  662. package/concepts/uk/Tool-TaskOutput.md +40 -0
  663. package/concepts/uk/Tool-TaskStop.md +32 -0
  664. package/concepts/uk/Tool-TaskUpdate.md +123 -0
  665. package/concepts/uk/Tool-TeamCreate.md +38 -0
  666. package/concepts/uk/Tool-TeamDelete.md +30 -0
  667. package/concepts/uk/Tool-WebFetch.md +55 -0
  668. package/concepts/uk/Tool-WebSearch.md +58 -0
  669. package/concepts/uk/Tool-Write.md +39 -0
  670. package/concepts/uk/Tool-executeCode.md +41 -0
  671. package/concepts/uk/Tool-getDiagnostics.md +32 -0
  672. package/concepts/uk/Tools.md +67 -0
  673. package/concepts/uk/ToolsFirst.md +77 -0
  674. package/concepts/uk/TranslateContextPollution.md +46 -0
  675. package/concepts/uk/UltraPlan.md +55 -0
  676. package/concepts/zh/BodyDiffJSON.md +32 -0
  677. package/concepts/zh/BodyFields.md +42 -0
  678. package/concepts/zh/CacheRebuild.md +36 -0
  679. package/concepts/zh/GlobalSettings.md +232 -0
  680. package/concepts/zh/KVCacheContent.md +49 -0
  681. package/concepts/zh/MainAgent.md +23 -0
  682. package/concepts/zh/ProxySwitch.md +50 -0
  683. package/concepts/zh/QRCode.md +29 -0
  684. package/concepts/zh/ResponseFields.md +50 -0
  685. package/concepts/zh/SubAgent-Search.md +20 -0
  686. package/concepts/zh/Teammate.md +26 -0
  687. package/concepts/zh/Tool-Agent.md +125 -0
  688. package/concepts/zh/Tool-AskUserQuestion.md +75 -0
  689. package/concepts/zh/Tool-Bash.md +167 -0
  690. package/concepts/zh/Tool-Edit.md +46 -0
  691. package/concepts/zh/Tool-EnterPlanMode.md +128 -0
  692. package/concepts/zh/Tool-EnterWorktree.md +56 -0
  693. package/concepts/zh/Tool-ExitPlanMode.md +62 -0
  694. package/concepts/zh/Tool-Glob.md +39 -0
  695. package/concepts/zh/Tool-Grep.md +57 -0
  696. package/concepts/zh/Tool-NotebookEdit.md +33 -0
  697. package/concepts/zh/Tool-Read.md +56 -0
  698. package/concepts/zh/Tool-SendMessage.md +41 -0
  699. package/concepts/zh/Tool-Skill.md +56 -0
  700. package/concepts/zh/Tool-Task.md +51 -0
  701. package/concepts/zh/Tool-TaskCreate.md +78 -0
  702. package/concepts/zh/Tool-TaskGet.md +56 -0
  703. package/concepts/zh/Tool-TaskList.md +56 -0
  704. package/concepts/zh/Tool-TaskOutput.md +40 -0
  705. package/concepts/zh/Tool-TaskStop.md +32 -0
  706. package/concepts/zh/Tool-TaskUpdate.md +123 -0
  707. package/concepts/zh/Tool-TeamCreate.md +38 -0
  708. package/concepts/zh/Tool-TeamDelete.md +30 -0
  709. package/concepts/zh/Tool-WebFetch.md +55 -0
  710. package/concepts/zh/Tool-WebSearch.md +58 -0
  711. package/concepts/zh/Tool-Write.md +39 -0
  712. package/concepts/zh/Tool-executeCode.md +41 -0
  713. package/concepts/zh/Tool-getDiagnostics.md +32 -0
  714. package/concepts/zh/Tools.md +67 -0
  715. package/concepts/zh/ToolsFirst.md +77 -0
  716. package/concepts/zh/TranslateContextPollution.md +46 -0
  717. package/concepts/zh/UltraPlan.md +55 -0
  718. package/concepts/zh-TW/BodyDiffJSON.md +32 -0
  719. package/concepts/zh-TW/BodyFields.md +42 -0
  720. package/concepts/zh-TW/CacheRebuild.md +36 -0
  721. package/concepts/zh-TW/GlobalSettings.md +232 -0
  722. package/concepts/zh-TW/KVCacheContent.md +49 -0
  723. package/concepts/zh-TW/MainAgent.md +23 -0
  724. package/concepts/zh-TW/ProxySwitch.md +50 -0
  725. package/concepts/zh-TW/QRCode.md +25 -0
  726. package/concepts/zh-TW/ResponseFields.md +50 -0
  727. package/concepts/zh-TW/SubAgent-Search.md +20 -0
  728. package/concepts/zh-TW/Teammate.md +26 -0
  729. package/concepts/zh-TW/Tool-Agent.md +125 -0
  730. package/concepts/zh-TW/Tool-AskUserQuestion.md +75 -0
  731. package/concepts/zh-TW/Tool-Bash.md +167 -0
  732. package/concepts/zh-TW/Tool-Edit.md +46 -0
  733. package/concepts/zh-TW/Tool-EnterPlanMode.md +128 -0
  734. package/concepts/zh-TW/Tool-EnterWorktree.md +56 -0
  735. package/concepts/zh-TW/Tool-ExitPlanMode.md +62 -0
  736. package/concepts/zh-TW/Tool-Glob.md +39 -0
  737. package/concepts/zh-TW/Tool-Grep.md +57 -0
  738. package/concepts/zh-TW/Tool-NotebookEdit.md +33 -0
  739. package/concepts/zh-TW/Tool-Read.md +56 -0
  740. package/concepts/zh-TW/Tool-SendMessage.md +41 -0
  741. package/concepts/zh-TW/Tool-Skill.md +56 -0
  742. package/concepts/zh-TW/Tool-Task.md +51 -0
  743. package/concepts/zh-TW/Tool-TaskCreate.md +78 -0
  744. package/concepts/zh-TW/Tool-TaskGet.md +56 -0
  745. package/concepts/zh-TW/Tool-TaskList.md +56 -0
  746. package/concepts/zh-TW/Tool-TaskOutput.md +40 -0
  747. package/concepts/zh-TW/Tool-TaskStop.md +32 -0
  748. package/concepts/zh-TW/Tool-TaskUpdate.md +123 -0
  749. package/concepts/zh-TW/Tool-TeamCreate.md +38 -0
  750. package/concepts/zh-TW/Tool-TeamDelete.md +30 -0
  751. package/concepts/zh-TW/Tool-WebFetch.md +55 -0
  752. package/concepts/zh-TW/Tool-WebSearch.md +58 -0
  753. package/concepts/zh-TW/Tool-Write.md +39 -0
  754. package/concepts/zh-TW/Tool-executeCode.md +41 -0
  755. package/concepts/zh-TW/Tool-getDiagnostics.md +32 -0
  756. package/concepts/zh-TW/Tools.md +67 -0
  757. package/concepts/zh-TW/ToolsFirst.md +77 -0
  758. package/concepts/zh-TW/TranslateContextPollution.md +46 -0
  759. package/concepts/zh-TW/UltraPlan.md +55 -0
  760. package/dist/assets/App-BzrN42Qt.js +41 -0
  761. package/dist/assets/App-fG2r3jFq.css +1 -0
  762. package/dist/assets/AppHeader-B3hrnZr-.css +41 -0
  763. package/dist/assets/AppHeader.module-BMU2vyC4.js +1246 -0
  764. package/dist/assets/Mobile-BnDkLcBv.css +1 -0
  765. package/dist/assets/Mobile-C9wxQTXV.js +10 -0
  766. package/dist/assets/_baseUniq-CXWHShmB.js +1 -0
  767. package/dist/assets/arc-qbol0NJo.js +1 -0
  768. package/dist/assets/architectureDiagram-Q4EWVU46-COZebb1N.js +36 -0
  769. package/dist/assets/blockDiagram-DXYQGD6D-COCgzPKy.js +132 -0
  770. package/dist/assets/c4Diagram-AHTNJAMY-Bs5XvLEo.js +10 -0
  771. package/dist/assets/channel-DvLUZ3Xf.js +1 -0
  772. package/dist/assets/chunk-4BX2VUAB-CyGriz9d.js +1 -0
  773. package/dist/assets/chunk-4TB4RGXK-DlT_q-fl.js +206 -0
  774. package/dist/assets/chunk-55IACEB6-NHN99ZNC.js +1 -0
  775. package/dist/assets/chunk-EDXVE4YY-fK4f9Na9.js +1 -0
  776. package/dist/assets/chunk-FMBD7UC4-DL-dQIq1.js +15 -0
  777. package/dist/assets/chunk-OYMX7WX6-6uruB4VY.js +231 -0
  778. package/dist/assets/chunk-QZHKN3VN-CCWIqLO8.js +1 -0
  779. package/dist/assets/chunk-YZCP3GAM-Cu84DMJo.js +1 -0
  780. package/dist/assets/classDiagram-6PBFFD2Q-ByKhp2Tk.js +1 -0
  781. package/dist/assets/classDiagram-v2-HSJHXN6E-ByKhp2Tk.js +1 -0
  782. package/dist/assets/clone-DZHpE494.js +1 -0
  783. package/dist/assets/cose-bilkent-S5V4N54A-Dqi4iU3-.js +1 -0
  784. package/dist/assets/cytoscape.esm-DxGcaOPV.js +331 -0
  785. package/dist/assets/dagre-KV5264BT-Dl-EJ9rb.js +4 -0
  786. package/dist/assets/default-avatar-CT9tlZjd.svg +1 -0
  787. package/dist/assets/default-model-avatar-DlbUPjyv.svg +1 -0
  788. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  789. package/dist/assets/diagram-5BDNPKRD-BYtyzF0D.js +10 -0
  790. package/dist/assets/diagram-G4DWMVQ6-BuETHFNU.js +24 -0
  791. package/dist/assets/diagram-MMDJMWI5-Z02oZp6I.js +43 -0
  792. package/dist/assets/diagram-TYMM5635-BpGlKv8l.js +24 -0
  793. package/dist/assets/erDiagram-SMLLAGMA-C4YngeQh.js +85 -0
  794. package/dist/assets/flowDiagram-DWJPFMVM-BWddFffg.js +162 -0
  795. package/dist/assets/ganttDiagram-T4ZO3ILL-Bg0jOD4m.js +292 -0
  796. package/dist/assets/gitGraphDiagram-UUTBAWPF-Bz-3sTXZ.js +106 -0
  797. package/dist/assets/graph-XiH8DkIu.js +1 -0
  798. package/dist/assets/html2canvas.esm-QH1iLAAe.js +22 -0
  799. package/dist/assets/index-BuUsWKGZ.js +41 -0
  800. package/dist/assets/index-DCtZ2KSX.css +1 -0
  801. package/dist/assets/infoDiagram-42DDH7IO-DLo-lOCE.js +2 -0
  802. package/dist/assets/init-Gi6I4Gst.js +1 -0
  803. package/dist/assets/ishikawaDiagram-UXIWVN3A-BsIzT5eO.js +70 -0
  804. package/dist/assets/journeyDiagram-VCZTEJTY-C3bOkKqv.js +139 -0
  805. package/dist/assets/kanban-definition-6JOO6SKY-D-rJRNbp.js +89 -0
  806. package/dist/assets/katex-DkKDou_j.js +257 -0
  807. package/dist/assets/layout-Bqp8Hh1c.js +1 -0
  808. package/dist/assets/linear-BWRSipGb.js +1 -0
  809. package/dist/assets/loading-pet-12a9GTQC.gif +0 -0
  810. package/dist/assets/mermaid.core-CJa7klhs.js +308 -0
  811. package/dist/assets/min-CQ_VyzMd.js +1 -0
  812. package/dist/assets/mindmap-definition-QFDTVHPH-Bnj7DDSx.js +96 -0
  813. package/dist/assets/model-deepseek-LDuqTN2N.svg +2 -0
  814. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  815. package/dist/assets/pieDiagram-DEJITSTG-CC8a7Ylw.js +30 -0
  816. package/dist/assets/quadrantDiagram-34T5L4WZ-CrmL1WUV.js +7 -0
  817. package/dist/assets/requirementDiagram-MS252O5E-TfkX4u_6.js +84 -0
  818. package/dist/assets/sankeyDiagram-XADWPNL6-DMwBbND7.js +10 -0
  819. package/dist/assets/sequenceDiagram-FGHM5R23-CFghMYsm.js +157 -0
  820. package/dist/assets/stateDiagram-FHFEXIEX-1H6JIM7l.js +1 -0
  821. package/dist/assets/stateDiagram-v2-QKLJ7IA2-CtXMaKcb.js +1 -0
  822. package/dist/assets/timeline-definition-GMOUNBTQ-DnLMBlVa.js +120 -0
  823. package/dist/assets/vennDiagram-DHZGUBPP-DoIkY_KL.js +34 -0
  824. package/dist/assets/wardley-RL74JXVD-3n5XmOD5.js +162 -0
  825. package/dist/assets/wardleyDiagram-NUSXRM2D-UMOq3ofC.js +20 -0
  826. package/dist/assets/xychartDiagram-5P7HB3ND-CNDuQ5Cg.js +7 -0
  827. package/dist/favicon.ico +0 -0
  828. package/dist/index.html +15 -0
  829. package/findcx.js +204 -0
  830. package/i18n.js +2413 -0
  831. package/interceptor.js +698 -0
  832. package/lib/appserver-bridge.js +584 -0
  833. package/lib/ask-bridge.js +126 -0
  834. package/lib/codex-config.js +146 -0
  835. package/lib/constants.js +26 -0
  836. package/lib/context-watcher.js +85 -0
  837. package/lib/cxv-editor.js +73 -0
  838. package/lib/delta-reconstructor.js +256 -0
  839. package/lib/ensure-hooks.js +88 -0
  840. package/lib/extract-plugin-name.mjs +18 -0
  841. package/lib/file-api.js +128 -0
  842. package/lib/git-diff.js +89 -0
  843. package/lib/interceptor-core.js +270 -0
  844. package/lib/kv-cache-analyzer.js +164 -0
  845. package/lib/log-management.js +198 -0
  846. package/lib/log-stream.js +310 -0
  847. package/lib/log-watcher.js +245 -0
  848. package/lib/otel-adapter.js +251 -0
  849. package/lib/otel-receiver.js +198 -0
  850. package/lib/perm-bridge.js +142 -0
  851. package/lib/plugin-loader.js +161 -0
  852. package/lib/plugin-manager.js +118 -0
  853. package/lib/proxy-env.js +23 -0
  854. package/lib/proxy-errors.js +18 -0
  855. package/lib/sdk-adapter.js +77 -0
  856. package/lib/sdk-manager.js +464 -0
  857. package/lib/stats-worker.js +384 -0
  858. package/lib/updater.js +123 -0
  859. package/lib/user-profile.js +43 -0
  860. package/package.json +115 -0
  861. package/proxy.js +369 -0
  862. package/pty-manager.js +407 -0
  863. package/server.js +3226 -0
  864. package/workspace-registry.js +151 -0
@@ -0,0 +1,384 @@
1
+ // Stats Worker — 后台线程,扫描 JSONL 日志生成项目级统计 JSON
2
+ import { parentPort } from 'node:worker_threads';
3
+ import { readFileSync, writeFileSync, existsSync, readdirSync, statSync } from 'node:fs';
4
+ import { join, basename } from 'node:path';
5
+
6
+ // 统计 schema 版本号,新增统计字段时递增,强制旧缓存失效重新解析
7
+ const STATS_VERSION = 8;
8
+
9
+ /**
10
+ * 判断文本是否为系统注入文本(与 src/utils/contentFilter.js:isSystemText 保持同步)
11
+ */
12
+ function isSystemText(text) {
13
+ if (!text) return true;
14
+ const trimmed = text.trim();
15
+ if (!trimmed) return true;
16
+ // 包含 plan 内容的文本块不应被过滤(即使开头有系统标签)
17
+ if (/Implement the following plan:/i.test(trimmed)) return false;
18
+ if (/^<[a-zA-Z_][\w-]*[\s>]/i.test(trimmed)) return true;
19
+ if (/^\[SUGGESTION MODE:/i.test(trimmed)) return true;
20
+ if (/^Your response was cut off because it exceeded the output token limit/i.test(trimmed)) return true;
21
+ if (/^Base directory for this skill:/i.test(trimmed)) return true;
22
+ return false;
23
+ }
24
+
25
+ /**
26
+ * 剥离系统注入标签,保留标签外的用户文本(仅用于 string 类型 content 的混合内容场景)
27
+ */
28
+ function stripSystemTags(text) {
29
+ return text.replace(/<(system-reminder|local-command-caveat|project-reminder|important-instruction-reminders|file-modified-reminder|todo-reminder|user-prompt-submit-hook|local-command-stdout|command-name|task-notification|environment_details|context)\b[^>]*>[\s\S]*?<\/\1>/gi, '').trim();
30
+ }
31
+
32
+ /**
33
+ * 从 messages 数组中提取用户 prompt 文本列表
34
+ * (与 src/App.jsx:extractUserTexts + src/utils/contentFilter.js:classifyUserContent 保持同步)
35
+ */
36
+ function extractUserTexts(messages) {
37
+ const texts = [];
38
+ for (const msg of messages) {
39
+ if (msg.role !== 'user') continue;
40
+ if (typeof msg.content === 'string') {
41
+ // string content 可能混合系统标签与用户文本,先剥离标签再判断
42
+ const text = stripSystemTags(msg.content).trim();
43
+ if (text && !isSystemText(text)) {
44
+ if (/^Implement the following plan:/i.test(text)) continue;
45
+ texts.push(text);
46
+ }
47
+ } else if (Array.isArray(msg.content)) {
48
+ const hasCommand = msg.content.some(b => b.type === 'text' && /<command-message>/i.test(b.text || ''));
49
+ const userParts = [];
50
+ for (const b of msg.content) {
51
+ if (b.type !== 'text') continue;
52
+ const text = (b.text || '').trim();
53
+ if (!text || isSystemText(text)) continue;
54
+ if (hasCommand && /<command-message>/i.test(text)) continue;
55
+ if (/^Implement the following plan:/i.test(text)) continue;
56
+ userParts.push(text);
57
+ }
58
+ if (userParts.length > 0) {
59
+ texts.push(userParts.join(' '));
60
+ }
61
+ }
62
+ }
63
+ return texts;
64
+ }
65
+
66
+ /**
67
+ * 检测请求是否为 SUGGESTION MODE(预测用户下一步输入)
68
+ */
69
+ function isSuggestionMode(messages) {
70
+ if (!Array.isArray(messages) || messages.length === 0) return false;
71
+ const last = messages[messages.length - 1];
72
+ if (last?.role !== 'user') return false;
73
+ const content = last.content;
74
+ if (Array.isArray(content)) {
75
+ return content.some(b => b.type === 'text' && /^\[SUGGESTION MODE:/i.test((b.text || '').trim()));
76
+ }
77
+ if (typeof content === 'string') return /^\[SUGGESTION MODE:/im.test(content.trim());
78
+ return false;
79
+ }
80
+
81
+ /**
82
+ * 解析单个 JSONL 文件,提取模型使用次数和 token 统计
83
+ * @param {string} filePath JSONL 文件绝对路径
84
+ * @returns {{ models: Object, summary: Object }}
85
+ */
86
+ function parseJsonlFile(filePath) {
87
+ const models = {};
88
+ let requestCount = 0;
89
+ let sessionCount = 0;
90
+ let turnCount = 0;
91
+ let maxMsgLen = 0;
92
+ let totalInput = 0;
93
+ let totalOutput = 0;
94
+ let totalCacheRead = 0;
95
+ let totalCacheCreation = 0;
96
+ const preview = [];
97
+ let prevTextCount = 0;
98
+ let lastCollectedSig = ''; // 上次收集的 prompt 签名,用于去重同轮重复请求
99
+
100
+ try {
101
+ const content = readFileSync(filePath, 'utf-8');
102
+ if (!content.trim()) return { models, summary: { requestCount: 0, sessionCount: 0, turnCount: 0, input_tokens: 0, output_tokens: 0, cache_read_input_tokens: 0, cache_creation_input_tokens: 0 }, preview: [] };
103
+
104
+ const entries = content.split('\n---\n').filter(p => p.trim());
105
+ for (const raw of entries) {
106
+ try {
107
+ const entry = JSON.parse(raw);
108
+ requestCount++;
109
+
110
+ // 会话轮次统计(仅 MainAgent,排除 SUGGESTION MODE)
111
+ if (entry.mainAgent && Array.isArray(entry.body?.messages)) {
112
+ const msgs = entry.body.messages;
113
+ // Delta storage: 使用 _totalMessageCount(delta 条目)或 msgs.length(旧格式)
114
+ const len = entry._totalMessageCount || msgs.length;
115
+ if (!isSuggestionMode(msgs)) {
116
+ // messages 数量大幅缩减:新会话(/clear 等),重置追踪
117
+ if (len < maxMsgLen * 0.5 && (maxMsgLen - len) > 4) {
118
+ maxMsgLen = 0;
119
+ prevTextCount = 0;
120
+ }
121
+ const isNewTurn = len > maxMsgLen;
122
+ if (isNewTurn) {
123
+ maxMsgLen = len;
124
+ turnCount++;
125
+ }
126
+ // 收集用户 prompt:新轮次 或 新会话(len===1 且非首次)
127
+ // 用内容签名去重,避免同一轮的重复请求重复收集
128
+ if (isNewTurn || (len === 1 && sessionCount > 0)) {
129
+ if (len === 1 && !isNewTurn) {
130
+ // 新会话但未触发 shrink 检测(上一会话较短),重置基线
131
+ prevTextCount = 0;
132
+ maxMsgLen = len;
133
+ }
134
+ const texts = extractUserTexts(msgs);
135
+ // Delta storage: delta 条目的 msgs 只有新增部分,prevTextCount 不适用,从 0 开始收集
136
+ const textStart = entry._deltaFormat ? 0 : prevTextCount;
137
+ // 生成本次 prompt 签名,用于跳过同轮重复请求
138
+ const sig = texts.join('\x00');
139
+ if (sig === lastCollectedSig && !isNewTurn) {
140
+ // 同一轮的重复请求(内容完全相同),跳过
141
+ } else {
142
+ for (let ti = textStart; ti < texts.length; ti++) {
143
+ const flat = texts[ti].replace(/[\r\n]+/g, ' ').trim();
144
+ if (flat) preview.push(flat.slice(0, 100));
145
+ }
146
+ prevTextCount = texts.length;
147
+ lastCollectedSig = sig;
148
+ }
149
+ }
150
+ if (len === 1) sessionCount++;
151
+ }
152
+ }
153
+
154
+ // 提取模型名:优先 body.model,其次 response.body.model
155
+ const model = entry.body?.model || entry.response?.body?.model;
156
+ if (!model) continue;
157
+
158
+ if (!models[model]) {
159
+ models[model] = { count: 0, input_tokens: 0, output_tokens: 0, cache_read_input_tokens: 0, cache_creation_input_tokens: 0 };
160
+ }
161
+ models[model].count++;
162
+
163
+ // 提取 usage — 可能在 response.body.usage
164
+ const usage = entry.response?.body?.usage;
165
+ if (usage) {
166
+ const inp = usage.input_tokens || 0;
167
+ const out = usage.output_tokens || 0;
168
+ const cacheRead = usage.cache_read_input_tokens || usage.cache_creation_input_tokens ? (usage.cache_read_input_tokens || 0) : 0;
169
+ const cacheCreate = usage.cache_creation_input_tokens || 0;
170
+
171
+ models[model].input_tokens += inp;
172
+ models[model].output_tokens += out;
173
+ models[model].cache_read_input_tokens += cacheRead;
174
+ models[model].cache_creation_input_tokens += cacheCreate;
175
+
176
+ totalInput += inp;
177
+ totalOutput += out;
178
+ totalCacheRead += cacheRead;
179
+ totalCacheCreation += cacheCreate;
180
+ }
181
+ } catch {
182
+ // 跳过无法解析的条目
183
+ }
184
+ }
185
+ } catch {
186
+ // 文件读取失败
187
+ }
188
+
189
+ // 去重 preview:保留首次出现顺序,移除重复文本
190
+ const seenPreview = new Set();
191
+ const uniquePreview = [];
192
+ for (const p of preview) {
193
+ if (!seenPreview.has(p)) {
194
+ seenPreview.add(p);
195
+ uniquePreview.push(p);
196
+ }
197
+ }
198
+
199
+ return {
200
+ models,
201
+ summary: {
202
+ requestCount,
203
+ sessionCount,
204
+ turnCount,
205
+ input_tokens: totalInput,
206
+ output_tokens: totalOutput,
207
+ cache_read_input_tokens: totalCacheRead,
208
+ cache_creation_input_tokens: totalCacheCreation,
209
+ },
210
+ preview: uniquePreview,
211
+ };
212
+ }
213
+
214
+ /**
215
+ * 为单个项目生成或增量更新统计 JSON
216
+ * @param {string} projectDir 项目日志目录
217
+ * @param {string} projectName 项目名
218
+ * @param {string|null} onlyFile 仅更新此文件(增量),null 表示智能增量
219
+ */
220
+ function generateProjectStats(projectDir, projectName, onlyFile) {
221
+ const statsFile = join(projectDir, `${projectName}.json`);
222
+
223
+ // 读取已有统计(用于增量更新)
224
+ let existing = null;
225
+ try {
226
+ if (existsSync(statsFile)) {
227
+ existing = JSON.parse(readFileSync(statsFile, 'utf-8'));
228
+ }
229
+ } catch {
230
+ existing = null;
231
+ }
232
+
233
+ // 列出所有 JSONL 文件(排除 _temp.jsonl)
234
+ let jsonlFiles;
235
+ try {
236
+ jsonlFiles = readdirSync(projectDir)
237
+ .filter(f => f.endsWith('.jsonl') && !f.endsWith('_temp.jsonl'))
238
+ .sort();
239
+ } catch {
240
+ return;
241
+ }
242
+
243
+ if (jsonlFiles.length === 0) return;
244
+
245
+ const filesStats = {};
246
+ const topModels = {};
247
+
248
+ for (const f of jsonlFiles) {
249
+ const filePath = join(projectDir, f);
250
+ let stat;
251
+ try {
252
+ stat = statSync(filePath);
253
+ } catch {
254
+ continue;
255
+ }
256
+
257
+ const size = stat.size;
258
+ const lastModified = stat.mtime.toISOString();
259
+
260
+ // 增量优化:如果有已有统计且文件未变化且 schema 版本一致,直接复用
261
+ if (existing?._v === STATS_VERSION
262
+ && existing?.files?.[f] && existing.files[f].size === size && existing.files[f].lastModified === lastModified) {
263
+ // 如果指定了 onlyFile 且不是此文件,跳过重新解析
264
+ if (!onlyFile || onlyFile !== f) {
265
+ filesStats[f] = existing.files[f];
266
+ // 汇总模型
267
+ if (filesStats[f].models) {
268
+ for (const [model, data] of Object.entries(filesStats[f].models)) {
269
+ if (!topModels[model]) topModels[model] = 0;
270
+ topModels[model] += data.count;
271
+ }
272
+ }
273
+ continue;
274
+ }
275
+ }
276
+
277
+ // 需要重新解析
278
+ const parsed = parseJsonlFile(filePath);
279
+ filesStats[f] = {
280
+ models: parsed.models,
281
+ summary: parsed.summary,
282
+ preview: parsed.preview,
283
+ size,
284
+ lastModified,
285
+ };
286
+
287
+ // 汇总模型使用次数
288
+ for (const [model, data] of Object.entries(parsed.models)) {
289
+ if (!topModels[model]) topModels[model] = 0;
290
+ topModels[model] += data.count;
291
+ }
292
+ }
293
+
294
+ // 计算全局汇总
295
+ let totalRequests = 0;
296
+ let totalSessions = 0;
297
+ let totalTurns = 0;
298
+ let totalInput = 0;
299
+ let totalOutput = 0;
300
+ let totalCacheRead = 0;
301
+ let totalCacheCreation = 0;
302
+
303
+ for (const f of Object.values(filesStats)) {
304
+ totalRequests += f.summary.requestCount;
305
+ totalSessions += f.summary.sessionCount || 0;
306
+ totalTurns += f.summary.turnCount || 0;
307
+ totalInput += f.summary.input_tokens;
308
+ totalOutput += f.summary.output_tokens;
309
+ totalCacheRead += f.summary.cache_read_input_tokens;
310
+ totalCacheCreation += f.summary.cache_creation_input_tokens;
311
+ }
312
+
313
+ const stats = {
314
+ _v: STATS_VERSION,
315
+ project: projectName,
316
+ updatedAt: new Date().toISOString(),
317
+ models: topModels,
318
+ files: filesStats,
319
+ summary: {
320
+ requestCount: totalRequests,
321
+ sessionCount: totalSessions,
322
+ turnCount: totalTurns,
323
+ fileCount: jsonlFiles.length,
324
+ input_tokens: totalInput,
325
+ output_tokens: totalOutput,
326
+ cache_read_input_tokens: totalCacheRead,
327
+ cache_creation_input_tokens: totalCacheCreation,
328
+ },
329
+ };
330
+
331
+ try {
332
+ writeFileSync(statsFile, JSON.stringify(stats, null, 2));
333
+ } catch (err) {
334
+ parentPort?.postMessage({ type: 'error', message: `Failed to write stats: ${err.message}` });
335
+ }
336
+ }
337
+
338
+ /**
339
+ * 扫描 logDir 下所有项目目录,逐个生成统计
340
+ */
341
+ function scanAllProjects(logDir) {
342
+ try {
343
+ const entries = readdirSync(logDir, { withFileTypes: true });
344
+ for (const entry of entries) {
345
+ if (!entry.isDirectory()) continue;
346
+ const projectDir = join(logDir, entry.name);
347
+ generateProjectStats(projectDir, entry.name, null);
348
+ }
349
+ parentPort?.postMessage({ type: 'scan-all-done' });
350
+ } catch (err) {
351
+ parentPort?.postMessage({ type: 'error', message: `scan-all failed: ${err.message}` });
352
+ parentPort?.postMessage({ type: 'scan-all-done' });
353
+ }
354
+ }
355
+
356
+ // Worker 消息处理
357
+ parentPort?.on('message', (msg) => {
358
+ switch (msg.type) {
359
+ case 'init': {
360
+ const { logDir, projectName } = msg;
361
+ const projectDir = join(logDir, projectName);
362
+ if (existsSync(projectDir)) {
363
+ generateProjectStats(projectDir, projectName, null);
364
+ parentPort?.postMessage({ type: 'init-done', projectName });
365
+ }
366
+ break;
367
+ }
368
+ case 'update': {
369
+ const { logDir, projectName, logFile } = msg;
370
+ const projectDir = join(logDir, projectName);
371
+ const fileName = basename(logFile);
372
+ if (existsSync(projectDir)) {
373
+ generateProjectStats(projectDir, projectName, fileName);
374
+ parentPort?.postMessage({ type: 'update-done', projectName, logFile: fileName });
375
+ }
376
+ break;
377
+ }
378
+ case 'scan-all': {
379
+ const { logDir } = msg;
380
+ scanAllProjects(logDir);
381
+ break;
382
+ }
383
+ }
384
+ });
package/lib/updater.js ADDED
@@ -0,0 +1,123 @@
1
+ import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
2
+ import { execSync } from 'node:child_process';
3
+ import { join } from 'node:path';
4
+ import { homedir } from 'node:os';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { dirname } from 'node:path';
7
+ import { t } from '../i18n.js';
8
+
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = dirname(__filename);
11
+
12
+ const CHECK_INTERVAL = 4 * 60 * 60 * 1000; // 4 hours
13
+ const CACHE_DIR = join(homedir(), '.codex', 'cx-viewer');
14
+ const CACHE_FILE = join(CACHE_DIR, 'update-check.json');
15
+ const CC_SETTINGS_FILE = join(homedir(), '.codex', 'settings.json');
16
+
17
+ function getCurrentVersion() {
18
+ const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
19
+ return pkg.version;
20
+ }
21
+
22
+ function parseVersion(ver) {
23
+ const [major, minor, patch] = ver.split('.').map(Number);
24
+ return { major, minor, patch };
25
+ }
26
+
27
+ function isNewer(remote, current) {
28
+ const r = parseVersion(remote);
29
+ const c = parseVersion(current);
30
+ if (r.major !== c.major) return r.major > c.major;
31
+ if (r.minor !== c.minor) return r.minor > c.minor;
32
+ return r.patch > c.patch;
33
+ }
34
+
35
+ // 读取 Codex 全局配置,判断是否允许自更新
36
+ function isAutoUpdateEnabled() {
37
+ // 环境变量禁用
38
+ if (process.env.CODEX_DISABLE_NONESSENTIAL_TRAFFIC) return false;
39
+
40
+ try {
41
+ if (!existsSync(CC_SETTINGS_FILE)) return true; // 默认启用
42
+ const settings = JSON.parse(readFileSync(CC_SETTINGS_FILE, 'utf-8'));
43
+ // Codex 用 autoUpdates: false 显式禁用
44
+ if (settings.autoUpdates === false) return false;
45
+ } catch { }
46
+
47
+ return true; // 默认启用
48
+ }
49
+
50
+ function shouldCheck() {
51
+ try {
52
+ if (!existsSync(CACHE_FILE)) return true;
53
+ const data = JSON.parse(readFileSync(CACHE_FILE, 'utf-8'));
54
+ return Date.now() - data.lastCheck > CHECK_INTERVAL;
55
+ } catch {
56
+ return true;
57
+ }
58
+ }
59
+
60
+ function saveCheckTime() {
61
+ try {
62
+ if (!existsSync(CACHE_DIR)) mkdirSync(CACHE_DIR, { recursive: true });
63
+ writeFileSync(CACHE_FILE, JSON.stringify({ lastCheck: Date.now() }));
64
+ } catch { }
65
+ }
66
+
67
+ export async function checkAndUpdate(options = {}) {
68
+ const fetchImpl = options.fetchImpl || fetch;
69
+ const execImpl = options.execImpl || execSync;
70
+ const dryRun = options.dryRun === true;
71
+ const currentVersion = getCurrentVersion();
72
+
73
+ // 跟随 Codex 全局配置
74
+ if (!isAutoUpdateEnabled()) {
75
+ return { status: 'disabled', currentVersion, remoteVersion: null };
76
+ }
77
+
78
+ if (!shouldCheck()) {
79
+ return { status: 'skipped', currentVersion, remoteVersion: null };
80
+ }
81
+
82
+ try {
83
+ const res = await fetchImpl('https://registry.npmjs.org/cx-viewer');
84
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
85
+ const data = await res.json();
86
+ const remoteVersion = data['dist-tags']?.latest;
87
+
88
+ saveCheckTime();
89
+
90
+ if (!remoteVersion) {
91
+ return { status: 'error', currentVersion, remoteVersion: null, error: 'No version found' };
92
+ }
93
+
94
+ if (!isNewer(remoteVersion, currentVersion)) {
95
+ return { status: 'latest', currentVersion, remoteVersion };
96
+ }
97
+
98
+ const remote = parseVersion(remoteVersion);
99
+ const current = parseVersion(currentVersion);
100
+
101
+ // 跨大版本:仅提示
102
+ if (remote.major !== current.major) {
103
+ console.error(`[CX Viewer] ${t('update.majorAvailable', { version: remoteVersion })}`);
104
+ return { status: 'major_available', currentVersion, remoteVersion };
105
+ }
106
+
107
+ // 同大版本:自动更新
108
+ console.error(`[CX Viewer] ${t('update.updating', { version: remoteVersion })}`);
109
+ try {
110
+ if (!dryRun) {
111
+ execImpl(`npm install -g cx-viewer@${remoteVersion}`, { stdio: 'pipe', timeout: 60000 });
112
+ }
113
+ console.error(`[CX Viewer] ${t('update.completed', { version: remoteVersion })}`);
114
+ return { status: 'updated', currentVersion, remoteVersion };
115
+ } catch (err) {
116
+ console.error(`[CX Viewer] ${t('update.failed', { error: err.message })}`);
117
+ return { status: 'error', currentVersion, remoteVersion, error: err.message };
118
+ }
119
+ } catch (err) {
120
+ saveCheckTime();
121
+ return { status: 'error', currentVersion, remoteVersion: null, error: err.message };
122
+ }
123
+ }
@@ -0,0 +1,43 @@
1
+ import { userInfo, platform } from 'node:os';
2
+ import { execFile, exec } from 'node:child_process';
3
+ import { promisify } from 'node:util';
4
+
5
+ const execFileAsync = promisify(execFile);
6
+ const execAsync = promisify(exec);
7
+
8
+ // macOS user profile (avatar + display name), cached once
9
+ let _userProfile = null;
10
+ let _userProfilePromise = null;
11
+
12
+ export async function getUserProfile() {
13
+ if (_userProfile) return _userProfile;
14
+ if (_userProfilePromise) return _userProfilePromise;
15
+ _userProfilePromise = _getUserProfileImpl();
16
+ _userProfile = await _userProfilePromise;
17
+ _userProfilePromise = null;
18
+ return _userProfile;
19
+ }
20
+
21
+ async function _getUserProfileImpl() {
22
+ const info = userInfo();
23
+ const name = info.username || 'User';
24
+ let displayName = name;
25
+ let avatarBase64 = null;
26
+
27
+ if (platform() === 'darwin') {
28
+ try {
29
+ const { stdout: rn } = await execFileAsync('dscl', ['.', '-read', `/Users/${name}`, 'RealName'], { encoding: 'utf-8', timeout: 3000 });
30
+ const match = rn.match(/RealName:\n?\s*(.+)/);
31
+ if (match && match[1].trim()) displayName = match[1].trim();
32
+ } catch { }
33
+
34
+ try {
35
+ const { stdout } = await execAsync(`dscl . -read /Users/${name} JPEGPhoto | tail -1 | xxd -r -p`, { timeout: 5000, maxBuffer: 1024 * 1024, encoding: 'buffer' });
36
+ if (stdout && stdout.length > 100) {
37
+ avatarBase64 = `data:image/jpeg;base64,${stdout.toString('base64')}`;
38
+ }
39
+ } catch { }
40
+ }
41
+
42
+ return { name: displayName, avatar: avatarBase64 };
43
+ }
package/package.json ADDED
@@ -0,0 +1,115 @@
1
+ {
2
+ "name": "cx-viewer",
3
+ "version": "1.0.0",
4
+ "description": "Codex Logger visualization management tool",
5
+ "license": "MIT",
6
+ "main": "server.js",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": "./server.js",
10
+ "./server.js": "./server.js",
11
+ "./interceptor.js": "./interceptor.js"
12
+ },
13
+ "author": "tian1024527726",
14
+ "bin": {
15
+ "cxv": "cli.js"
16
+ },
17
+ "scripts": {
18
+ "dev": "vite",
19
+ "build": "node build.js",
20
+ "start": "node server.js",
21
+ "test": "CXV_LOG_DIR=tmp node --test",
22
+ "test:coverage": "CXV_LOG_DIR=tmp node --test --experimental-test-coverage --test-coverage-include='lib/*.js' --test-coverage-include='*.js'",
23
+ "prepublishOnly": "npm run build",
24
+ "electron:dev": "electron electron/main.js",
25
+ "electron:build": "npm run build && electron-builder",
26
+ "electron:sign": "npm run electron:build && ./scripts/mac-sign.sh",
27
+ "electron:check-sign": "./scripts/check-sign-config.sh"
28
+ },
29
+ "keywords": [
30
+ "codex"
31
+ ],
32
+ "contributors": [
33
+ {
34
+ "name": "tian1024527726",
35
+ "email": "18868814352@163.com"
36
+ }
37
+ ],
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/tian1024527726/cx-viewer.git"
41
+ },
42
+ "bugs": {
43
+ "url": "https://github.com/tian1024527726/cx-viewer/issues"
44
+ },
45
+ "homepage": "https://github.com/tian1024527726/cx-viewer#readme",
46
+ "engines": {
47
+ "node": ">=20"
48
+ },
49
+ "files": [
50
+ "dist/",
51
+ "server.js",
52
+ "cli.js",
53
+ "proxy.js",
54
+ "interceptor.js",
55
+ "i18n.js",
56
+ "findcx.js",
57
+ "lib/",
58
+ "pty-manager.js",
59
+ "workspace-registry.js",
60
+ "concepts/"
61
+ ],
62
+ "devDependencies": {
63
+ "@ant-design/icons": "^5.6.1",
64
+ "@codemirror/lang-cpp": "^6.0.3",
65
+ "@codemirror/lang-css": "^6.3.1",
66
+ "@codemirror/lang-go": "^6.0.1",
67
+ "@codemirror/lang-java": "^6.0.2",
68
+ "@codemirror/lang-javascript": "^6.2.5",
69
+ "@codemirror/lang-json": "^6.0.2",
70
+ "@codemirror/lang-markdown": "^6.5.0",
71
+ "@codemirror/lang-php": "^6.0.2",
72
+ "@codemirror/lang-python": "^6.2.1",
73
+ "@codemirror/lang-rust": "^6.0.2",
74
+ "@codemirror/lang-sql": "^6.10.0",
75
+ "@codemirror/lang-xml": "^6.1.0",
76
+ "@codemirror/lang-yaml": "^6.1.2",
77
+ "@codemirror/language": "^6.12.3",
78
+ "@codemirror/view": "^6.41.0",
79
+ "@electron/notarize": "^3.1.1",
80
+ "@lezer/highlight": "^1.2.3",
81
+ "@replit/codemirror-minimap": "^0.5.2",
82
+ "@uiw/react-codemirror": "^4.25.8",
83
+ "@vitejs/plugin-react": "^4.5.2",
84
+ "@xterm/addon-fit": "^0.11.0",
85
+ "@xterm/addon-unicode11": "^0.9.0",
86
+ "@xterm/addon-web-links": "^0.12.0",
87
+ "@xterm/addon-webgl": "^0.19.0",
88
+ "@xterm/xterm": "^6.0.0",
89
+ "antd": "^5.29.2",
90
+ "diff": "^8.0.3",
91
+ "electron": "^35.1.2",
92
+ "electron-builder": "^26.0.12",
93
+ "highlight.js": "^11.11.1",
94
+ "html2canvas": "^1.4.1",
95
+ "marked": "^17.0.2",
96
+ "mermaid": "^11.13.0",
97
+ "qrcode.react": "^4.2.0",
98
+ "react": "^18.3.1",
99
+ "react-dom": "^18.3.1",
100
+ "react-json-view-lite": "^2.1.0",
101
+ "react-virtuoso": "^4.18.3",
102
+ "vite": "^6.3.5"
103
+ },
104
+ "dependencies": {
105
+ "@opentelemetry/api": "^1.9.1",
106
+ "@opentelemetry/exporter-trace-otlp-http": "^0.214.0",
107
+ "@opentelemetry/resources": "^2.6.1",
108
+ "@opentelemetry/sdk-node": "^0.214.0",
109
+ "@opentelemetry/semantic-conventions": "^1.40.0",
110
+ "dompurify": "^3.3.3",
111
+ "node-pty": "^1.1.0",
112
+ "undici": "^7.22.0",
113
+ "ws": "^8.19.0"
114
+ }
115
+ }