cx-viewer 1.0.2 → 1.0.4

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 (1440) hide show
  1. package/README.md +75 -28
  2. package/build.js +15 -0
  3. package/cli.js +108 -38
  4. package/concepts/ar/BodyDiffJSON.md +1 -1
  5. package/concepts/ar/BodyFields.md +30 -33
  6. package/concepts/ar/GlobalSettings.md +165 -167
  7. package/concepts/ar/MainAgent.md +3 -4
  8. package/concepts/ar/ProxySwitch.md +3 -3
  9. package/concepts/ar/QRCode.md +1 -1
  10. package/concepts/ar/ResponseFields.md +29 -41
  11. package/concepts/ar/SubAgent-Search.md +12 -12
  12. package/concepts/ar/Teammate.md +16 -16
  13. package/concepts/ar/ToolsFirst.md +42 -48
  14. package/concepts/ar/TranslateContextPollution.md +9 -9
  15. package/concepts/ar/UltraPlan.md +38 -38
  16. package/concepts/da/BodyDiffJSON.md +2 -2
  17. package/concepts/da/BodyFields.md +30 -33
  18. package/concepts/da/GlobalSettings.md +165 -167
  19. package/concepts/da/MainAgent.md +3 -4
  20. package/concepts/da/ProxySwitch.md +3 -3
  21. package/concepts/da/QRCode.md +1 -1
  22. package/concepts/da/ResponseFields.md +29 -41
  23. package/concepts/da/SubAgent-Search.md +11 -11
  24. package/concepts/da/Teammate.md +16 -16
  25. package/concepts/da/ToolsFirst.md +42 -48
  26. package/concepts/da/TranslateContextPollution.md +9 -9
  27. package/concepts/da/UltraPlan.md +38 -38
  28. package/concepts/de/BodyDiffJSON.md +2 -2
  29. package/concepts/de/BodyFields.md +30 -33
  30. package/concepts/de/GlobalSettings.md +165 -167
  31. package/concepts/de/MainAgent.md +3 -4
  32. package/concepts/de/ProxySwitch.md +3 -3
  33. package/concepts/de/QRCode.md +1 -1
  34. package/concepts/de/ResponseFields.md +29 -41
  35. package/concepts/de/SubAgent-Search.md +11 -11
  36. package/concepts/de/Teammate.md +15 -15
  37. package/concepts/de/ToolsFirst.md +41 -47
  38. package/concepts/de/TranslateContextPollution.md +9 -9
  39. package/concepts/de/UltraPlan.md +38 -38
  40. package/concepts/en/BodyDiffJSON.md +5 -5
  41. package/concepts/en/BodyFields.md +17 -20
  42. package/concepts/en/GlobalSettings.md +49 -51
  43. package/concepts/en/MainAgent.md +8 -8
  44. package/concepts/en/ProxySwitch.md +3 -3
  45. package/concepts/en/QRCode.md +6 -6
  46. package/concepts/en/ResponseFields.md +7 -19
  47. package/concepts/en/SubAgent-Search.md +2 -2
  48. package/concepts/en/Teammate.md +4 -4
  49. package/concepts/en/Tool-apply_patch.md +11 -0
  50. package/concepts/en/Tool-create_goal.md +8 -0
  51. package/concepts/en/Tool-exec.md +88 -0
  52. package/concepts/en/Tool-followup_task.md +10 -0
  53. package/concepts/en/Tool-get_goal.md +5 -0
  54. package/concepts/en/Tool-image_generation.md +5 -0
  55. package/concepts/en/Tool-interrupt_agent.md +9 -0
  56. package/concepts/en/Tool-list_agents.md +9 -0
  57. package/concepts/en/Tool-list_mcp_resource_templates.md +8 -0
  58. package/concepts/en/Tool-list_mcp_resources.md +8 -0
  59. package/concepts/en/Tool-read_mcp_resource.md +10 -0
  60. package/concepts/en/Tool-request_user_input.md +9 -0
  61. package/concepts/en/Tool-send_message.md +10 -0
  62. package/concepts/en/Tool-shell_command.md +12 -0
  63. package/concepts/en/Tool-spawn_agent.md +11 -0
  64. package/concepts/en/Tool-tool_search.md +12 -0
  65. package/concepts/en/Tool-update_goal.md +9 -0
  66. package/concepts/en/Tool-update_plan.md +9 -0
  67. package/concepts/en/Tool-view_image.md +10 -0
  68. package/concepts/en/Tool-wait.md +12 -0
  69. package/concepts/en/Tool-wait_agent.md +9 -0
  70. package/concepts/en/Tool-web_search.md +11 -0
  71. package/concepts/en/Tools.md +29 -58
  72. package/concepts/en/ToolsFirst.md +24 -30
  73. package/concepts/en/TranslateContextPollution.md +10 -38
  74. package/concepts/en/UltraPlan.md +7 -7
  75. package/concepts/es/BodyDiffJSON.md +1 -1
  76. package/concepts/es/BodyFields.md +35 -38
  77. package/concepts/es/GlobalSettings.md +165 -167
  78. package/concepts/es/MainAgent.md +3 -4
  79. package/concepts/es/ProxySwitch.md +3 -3
  80. package/concepts/es/QRCode.md +1 -1
  81. package/concepts/es/ResponseFields.md +28 -40
  82. package/concepts/es/SubAgent-Search.md +12 -12
  83. package/concepts/es/Teammate.md +17 -17
  84. package/concepts/es/ToolsFirst.md +41 -47
  85. package/concepts/es/TranslateContextPollution.md +9 -9
  86. package/concepts/es/UltraPlan.md +38 -38
  87. package/concepts/fr/BodyDiffJSON.md +2 -2
  88. package/concepts/fr/BodyFields.md +35 -38
  89. package/concepts/fr/GlobalSettings.md +165 -167
  90. package/concepts/fr/MainAgent.md +3 -4
  91. package/concepts/fr/ProxySwitch.md +3 -3
  92. package/concepts/fr/QRCode.md +1 -1
  93. package/concepts/fr/ResponseFields.md +25 -37
  94. package/concepts/fr/SubAgent-Search.md +12 -12
  95. package/concepts/fr/Teammate.md +16 -16
  96. package/concepts/fr/ToolsFirst.md +40 -46
  97. package/concepts/fr/TranslateContextPollution.md +9 -9
  98. package/concepts/fr/UltraPlan.md +38 -38
  99. package/concepts/it/BodyDiffJSON.md +2 -2
  100. package/concepts/it/BodyFields.md +35 -38
  101. package/concepts/it/GlobalSettings.md +165 -167
  102. package/concepts/it/MainAgent.md +3 -4
  103. package/concepts/it/ProxySwitch.md +3 -3
  104. package/concepts/it/QRCode.md +1 -1
  105. package/concepts/it/ResponseFields.md +28 -40
  106. package/concepts/it/SubAgent-Search.md +12 -12
  107. package/concepts/it/Teammate.md +17 -17
  108. package/concepts/it/ToolsFirst.md +41 -47
  109. package/concepts/it/TranslateContextPollution.md +9 -9
  110. package/concepts/it/UltraPlan.md +38 -38
  111. package/concepts/ja/BodyDiffJSON.md +1 -1
  112. package/concepts/ja/BodyFields.md +30 -33
  113. package/concepts/ja/GlobalSettings.md +165 -167
  114. package/concepts/ja/MainAgent.md +3 -4
  115. package/concepts/ja/ProxySwitch.md +3 -3
  116. package/concepts/ja/QRCode.md +1 -1
  117. package/concepts/ja/ResponseFields.md +29 -41
  118. package/concepts/ja/SubAgent-Search.md +12 -12
  119. package/concepts/ja/Teammate.md +17 -17
  120. package/concepts/ja/ToolsFirst.md +41 -47
  121. package/concepts/ja/TranslateContextPollution.md +9 -9
  122. package/concepts/ja/UltraPlan.md +38 -38
  123. package/concepts/ko/BodyDiffJSON.md +1 -1
  124. package/concepts/ko/BodyFields.md +30 -33
  125. package/concepts/ko/GlobalSettings.md +165 -167
  126. package/concepts/ko/MainAgent.md +3 -4
  127. package/concepts/ko/ProxySwitch.md +3 -3
  128. package/concepts/ko/QRCode.md +1 -1
  129. package/concepts/ko/ResponseFields.md +29 -41
  130. package/concepts/ko/SubAgent-Search.md +12 -12
  131. package/concepts/ko/Teammate.md +17 -17
  132. package/concepts/ko/ToolsFirst.md +41 -47
  133. package/concepts/ko/TranslateContextPollution.md +9 -9
  134. package/concepts/ko/UltraPlan.md +38 -38
  135. package/concepts/no/BodyDiffJSON.md +2 -2
  136. package/concepts/no/BodyFields.md +30 -33
  137. package/concepts/no/GlobalSettings.md +165 -167
  138. package/concepts/no/MainAgent.md +3 -4
  139. package/concepts/no/ProxySwitch.md +3 -3
  140. package/concepts/no/QRCode.md +1 -1
  141. package/concepts/no/ResponseFields.md +29 -41
  142. package/concepts/no/SubAgent-Search.md +12 -12
  143. package/concepts/no/Teammate.md +17 -17
  144. package/concepts/no/ToolsFirst.md +42 -48
  145. package/concepts/no/TranslateContextPollution.md +9 -9
  146. package/concepts/no/UltraPlan.md +38 -38
  147. package/concepts/pl/BodyDiffJSON.md +2 -2
  148. package/concepts/pl/BodyFields.md +30 -33
  149. package/concepts/pl/GlobalSettings.md +165 -167
  150. package/concepts/pl/MainAgent.md +3 -4
  151. package/concepts/pl/ProxySwitch.md +3 -3
  152. package/concepts/pl/QRCode.md +1 -1
  153. package/concepts/pl/ResponseFields.md +29 -41
  154. package/concepts/pl/SubAgent-Search.md +12 -12
  155. package/concepts/pl/Teammate.md +17 -17
  156. package/concepts/pl/ToolsFirst.md +42 -48
  157. package/concepts/pl/TranslateContextPollution.md +9 -9
  158. package/concepts/pl/UltraPlan.md +38 -38
  159. package/concepts/pt-BR/BodyDiffJSON.md +2 -2
  160. package/concepts/pt-BR/BodyFields.md +30 -33
  161. package/concepts/pt-BR/GlobalSettings.md +165 -167
  162. package/concepts/pt-BR/MainAgent.md +3 -4
  163. package/concepts/pt-BR/ProxySwitch.md +3 -3
  164. package/concepts/pt-BR/QRCode.md +1 -1
  165. package/concepts/pt-BR/ResponseFields.md +29 -41
  166. package/concepts/pt-BR/SubAgent-Search.md +12 -12
  167. package/concepts/pt-BR/Teammate.md +17 -17
  168. package/concepts/pt-BR/ToolsFirst.md +41 -47
  169. package/concepts/pt-BR/TranslateContextPollution.md +9 -9
  170. package/concepts/pt-BR/UltraPlan.md +38 -38
  171. package/concepts/ru/BodyDiffJSON.md +1 -1
  172. package/concepts/ru/BodyFields.md +30 -33
  173. package/concepts/ru/GlobalSettings.md +165 -167
  174. package/concepts/ru/MainAgent.md +3 -4
  175. package/concepts/ru/ProxySwitch.md +3 -3
  176. package/concepts/ru/QRCode.md +1 -1
  177. package/concepts/ru/ResponseFields.md +29 -41
  178. package/concepts/ru/SubAgent-Search.md +12 -12
  179. package/concepts/ru/Teammate.md +17 -17
  180. package/concepts/ru/ToolsFirst.md +41 -47
  181. package/concepts/ru/TranslateContextPollution.md +9 -9
  182. package/concepts/ru/UltraPlan.md +38 -38
  183. package/concepts/th/BodyDiffJSON.md +1 -1
  184. package/concepts/th/BodyFields.md +30 -33
  185. package/concepts/th/GlobalSettings.md +165 -167
  186. package/concepts/th/MainAgent.md +3 -4
  187. package/concepts/th/ProxySwitch.md +3 -3
  188. package/concepts/th/QRCode.md +1 -1
  189. package/concepts/th/ResponseFields.md +29 -41
  190. package/concepts/th/SubAgent-Search.md +12 -12
  191. package/concepts/th/Teammate.md +17 -17
  192. package/concepts/th/ToolsFirst.md +42 -48
  193. package/concepts/th/TranslateContextPollution.md +9 -9
  194. package/concepts/th/UltraPlan.md +38 -38
  195. package/concepts/tr/BodyDiffJSON.md +1 -1
  196. package/concepts/tr/BodyFields.md +30 -33
  197. package/concepts/tr/GlobalSettings.md +165 -167
  198. package/concepts/tr/MainAgent.md +3 -4
  199. package/concepts/tr/ProxySwitch.md +3 -3
  200. package/concepts/tr/QRCode.md +1 -1
  201. package/concepts/tr/ResponseFields.md +29 -41
  202. package/concepts/tr/SubAgent-Search.md +12 -12
  203. package/concepts/tr/Teammate.md +16 -16
  204. package/concepts/tr/ToolsFirst.md +42 -48
  205. package/concepts/tr/TranslateContextPollution.md +9 -9
  206. package/concepts/tr/UltraPlan.md +38 -38
  207. package/concepts/uk/BodyDiffJSON.md +1 -1
  208. package/concepts/uk/BodyFields.md +30 -33
  209. package/concepts/uk/GlobalSettings.md +165 -167
  210. package/concepts/uk/MainAgent.md +3 -4
  211. package/concepts/uk/ProxySwitch.md +3 -3
  212. package/concepts/uk/QRCode.md +1 -1
  213. package/concepts/uk/ResponseFields.md +29 -41
  214. package/concepts/uk/SubAgent-Search.md +12 -12
  215. package/concepts/uk/Teammate.md +17 -17
  216. package/concepts/uk/ToolsFirst.md +42 -48
  217. package/concepts/uk/TranslateContextPollution.md +9 -9
  218. package/concepts/uk/UltraPlan.md +38 -38
  219. package/concepts/zh/BodyDiffJSON.md +4 -4
  220. package/concepts/zh/BodyFields.md +17 -20
  221. package/concepts/zh/GlobalSettings.md +26 -28
  222. package/concepts/zh/MainAgent.md +6 -6
  223. package/concepts/zh/ProxySwitch.md +1 -1
  224. package/concepts/zh/ResponseFields.md +7 -18
  225. package/concepts/zh/SubAgent-Search.md +2 -2
  226. package/concepts/zh/Teammate.md +4 -4
  227. package/concepts/zh/Tool-apply_patch.md +11 -0
  228. package/concepts/zh/Tool-create_goal.md +8 -0
  229. package/concepts/zh/Tool-exec.md +88 -0
  230. package/concepts/zh/Tool-followup_task.md +10 -0
  231. package/concepts/zh/Tool-get_goal.md +5 -0
  232. package/concepts/zh/Tool-image_generation.md +5 -0
  233. package/concepts/zh/Tool-interrupt_agent.md +9 -0
  234. package/concepts/zh/Tool-list_agents.md +9 -0
  235. package/concepts/zh/Tool-list_mcp_resource_templates.md +8 -0
  236. package/concepts/zh/Tool-list_mcp_resources.md +8 -0
  237. package/concepts/zh/Tool-read_mcp_resource.md +10 -0
  238. package/concepts/zh/Tool-request_user_input.md +9 -0
  239. package/concepts/zh/Tool-send_message.md +10 -0
  240. package/concepts/zh/Tool-shell_command.md +12 -0
  241. package/concepts/zh/Tool-spawn_agent.md +11 -0
  242. package/concepts/zh/Tool-tool_search.md +12 -0
  243. package/concepts/zh/Tool-update_goal.md +9 -0
  244. package/concepts/zh/Tool-update_plan.md +9 -0
  245. package/concepts/zh/Tool-view_image.md +10 -0
  246. package/concepts/zh/Tool-wait.md +12 -0
  247. package/concepts/zh/Tool-wait_agent.md +9 -0
  248. package/concepts/zh/Tool-web_search.md +11 -0
  249. package/concepts/zh/Tools.md +29 -58
  250. package/concepts/zh/ToolsFirst.md +21 -27
  251. package/concepts/zh/TranslateContextPollution.md +10 -38
  252. package/concepts/zh/UltraPlan.md +7 -7
  253. package/concepts/zh-TW/BodyFields.md +27 -30
  254. package/concepts/zh-TW/GlobalSettings.md +26 -28
  255. package/concepts/zh-TW/MainAgent.md +0 -1
  256. package/concepts/zh-TW/ProxySwitch.md +22 -22
  257. package/concepts/zh-TW/ResponseFields.md +29 -40
  258. package/concepts/zh-TW/SubAgent-Search.md +12 -12
  259. package/concepts/zh-TW/Teammate.md +16 -16
  260. package/concepts/zh-TW/ToolsFirst.md +41 -47
  261. package/concepts/zh-TW/UltraPlan.md +38 -38
  262. package/dist/assets/App-BZ9oclBj.js +2 -0
  263. package/dist/assets/App-rWON7PuS.css +1 -0
  264. package/dist/assets/MdxEditorPanel-B4lZ7Z_A.js +1 -0
  265. package/dist/assets/MdxEditorPanel-Da_ceLFo.css +1 -0
  266. package/dist/assets/Mobile-B5V_-6Hc.css +1 -0
  267. package/dist/assets/Mobile-C7Hy-TIM.js +1 -0
  268. package/dist/assets/abnfDiagram-VRR7QNED-DYYppIQV.js +1 -0
  269. package/dist/assets/apl-B8ZmNFqK.js +1 -0
  270. package/dist/assets/arc-BT3um7r4.js +1 -0
  271. package/dist/assets/architectureDiagram-ZJ3FMSHR-uweBqnh-.js +1 -0
  272. package/dist/assets/asciiarmor-CIte6N-S.js +1 -0
  273. package/dist/assets/asn1-Ax1-z1nk.js +1 -0
  274. package/dist/assets/asterisk-CLHf-iRz.js +1 -0
  275. package/dist/assets/blockDiagram-677ZJIJ3-DzeI4GyV.js +1 -0
  276. package/dist/assets/brainfuck-CdLnmYpe.js +1 -0
  277. package/dist/assets/c4Diagram-LMCZKHZV-DBI0K7wS.js +1 -0
  278. package/dist/assets/channel-BrN6yx0e.js +1 -0
  279. package/dist/assets/chunk-2Q5K7J3B-DK9JA8Ct.js +1 -0
  280. package/dist/assets/chunk-32BRIVSS-VNg3Ylzs.js +1 -0
  281. package/dist/assets/chunk-5VM5RSS4-DFhufY9o.js +1 -0
  282. package/dist/assets/chunk-EX3LRPZG-B93MHNBT.js +1 -0
  283. package/dist/assets/chunk-JWPE2WC7-C54OW1iN.js +1 -0
  284. package/dist/assets/chunk-MOJQB5TN-lKhWWIDe.js +1 -0
  285. package/dist/assets/chunk-RYQCIY6F-BK2jDXwB.js +1 -0
  286. package/dist/assets/chunk-V7JOEXUC-aLHBmfOc.js +1 -0
  287. package/dist/assets/chunk-VR4S4FIN-Bomuor1h.js +1 -0
  288. package/dist/assets/chunk-XXDRQBXY-BPj05P7g.js +1 -0
  289. package/dist/assets/classDiagram-OUVF2IWQ-COm0X4uJ.js +1 -0
  290. package/dist/assets/classDiagram-v2-EOCWNBFH-COm0X4uJ.js +1 -0
  291. package/dist/assets/clike-BDgEuk0n.js +1 -0
  292. package/dist/assets/clojure-CrPxgQZl.js +1 -0
  293. package/dist/assets/cmake-BknZiLBu.js +1 -0
  294. package/dist/assets/cobol-DN1mHbgw.js +1 -0
  295. package/dist/assets/coffeescript-DTAwRC7M.js +1 -0
  296. package/dist/assets/commonlisp-B4DJ--Bo.js +1 -0
  297. package/dist/assets/cose-bilkent-JH36ORCC-DU44QHSb.js +1 -0
  298. package/dist/assets/crystal-DoipYOOv.js +1 -0
  299. package/dist/assets/css-BeQRP3p5.js +1 -0
  300. package/dist/assets/cynefin-VYW2F7L2-C0dowxsF.js +15 -0
  301. package/dist/assets/cynefinDiagram-TSTJHNR4-C6vNWPUV.js +1 -0
  302. package/dist/assets/cypher-BzELKutH.js +1 -0
  303. package/dist/assets/cytoscape.esm-D0POlJZ1.js +9 -0
  304. package/dist/assets/d-Mh2Rawoc.js +1 -0
  305. package/dist/assets/dagre-VKFMJZFB-aLG4uEb-.js +1 -0
  306. package/dist/assets/defaultLocale-DZ7E7S9R.js +1 -0
  307. package/dist/assets/diagram-FQU43EPY-D5C8GfdU.js +1 -0
  308. package/dist/assets/diagram-G47NLZAW-C9tRw_xi.js +1 -0
  309. package/dist/assets/diagram-NH7WQ7WH-AYxTxwJ2.js +1 -0
  310. package/dist/assets/diagram-OA4YK3LP-BuBE5n9n.js +1 -0
  311. package/dist/assets/diagram-WEI45ONY-Cda7zYeO.js +1 -0
  312. package/dist/assets/diff-B1OtBbfz.js +1 -0
  313. package/dist/assets/dockerfile-Du7niAGi.js +1 -0
  314. package/dist/assets/dtd-So5hjSa8.js +1 -0
  315. package/dist/assets/dylan-Co15g-RX.js +1 -0
  316. package/dist/assets/ebnf-DWrAnno4.js +1 -0
  317. package/dist/assets/ebnfDiagram-CCIWWBDH-DC_OGyoh.js +1 -0
  318. package/dist/assets/ecl-8tbf0rUT.js +1 -0
  319. package/dist/assets/eiffel-BXtlUtEg.js +1 -0
  320. package/dist/assets/elm-BwiUluiH.js +1 -0
  321. package/dist/assets/erDiagram-Q63AITRT-D2G21PVY.js +1 -0
  322. package/dist/assets/erlang-CrHBLi-m.js +1 -0
  323. package/dist/assets/factor-C7nC06Ta.js +1 -0
  324. package/dist/assets/fcl-DKWfryFT.js +1 -0
  325. package/dist/assets/flowDiagram-23GEKE2U-CEQPYHrk.js +1 -0
  326. package/dist/assets/forth-Cg8ASoTj.js +1 -0
  327. package/dist/assets/fortran-BHf_qfFx.js +1 -0
  328. package/dist/assets/ganttDiagram-NO4QXBWP-JStxUtFR.js +1 -0
  329. package/dist/assets/gas-cj_2N_z1.js +1 -0
  330. package/dist/assets/gherkin-BiuTaH40.js +1 -0
  331. package/dist/assets/gitGraphDiagram-IHSO6WYX-BiojPH-V.js +1 -0
  332. package/dist/assets/graph-CnJdn47S.js +1 -0
  333. package/dist/assets/groovy-Bq8cXYUU.js +1 -0
  334. package/dist/assets/haskell-1ANuaeie.js +1 -0
  335. package/dist/assets/haxe-BUNSvWf_.js +1 -0
  336. package/dist/assets/html2canvas.esm-HFdlUwfn.js +20 -0
  337. package/dist/assets/http-DPC2IRQA.js +1 -0
  338. package/dist/assets/idl-DDbIciu_.js +1 -0
  339. package/dist/assets/index-BEyKG3O5.css +1 -0
  340. package/dist/assets/index-BduJoLQ5.js +1 -0
  341. package/dist/assets/index-BqwR8F0v.js +1 -0
  342. package/dist/assets/index-BsycQyrv.js +1 -0
  343. package/dist/assets/index-CFSDxZyA.js +1 -0
  344. package/dist/assets/index-CunNLTHc.js +1 -0
  345. package/dist/assets/index-OGkDFNTK.js +1 -0
  346. package/dist/assets/index-oxOyrL07.js +2 -0
  347. package/dist/assets/index-wvaycTGT.js +1 -0
  348. package/dist/assets/infoDiagram-FWYZ7A6U-Csl_aBIC.js +1 -0
  349. package/dist/assets/init-DMZMl1PR.js +1 -0
  350. package/dist/assets/ishikawaDiagram-FXEZZL3T-CjgGuMwr.js +1 -0
  351. package/dist/assets/javascript-Cet1BUca.js +1 -0
  352. package/dist/assets/journeyDiagram-5HDEW3XC-DUOy1PCq.js +1 -0
  353. package/dist/assets/jszip.min-BxIXdRg4.js +12 -0
  354. package/dist/assets/julia-CdxLCr68.js +1 -0
  355. package/dist/assets/kanban-definition-HUTT4EX6-Cx7GSrSj.js +1 -0
  356. package/dist/assets/katex-CfXf84Fz.js +1 -0
  357. package/dist/assets/layout-CCUE9ZRw.js +1 -0
  358. package/dist/assets/linear-GeBi6jJp.js +1 -0
  359. package/dist/assets/livescript-Bw1Vw7Ae.js +1 -0
  360. package/dist/assets/lua-DM1wbcnc.js +1 -0
  361. package/dist/assets/map-DQeg2hXV.js +1 -0
  362. package/dist/assets/mathematica-BXSv1_O1.js +1 -0
  363. package/dist/assets/mbox-CWY0keg3.js +1 -0
  364. package/dist/assets/mermaid.core-Cy9iVxov.js +7 -0
  365. package/dist/assets/mindmap-definition-LN4V7U3C-CUVxVkK5.js +1 -0
  366. package/dist/assets/mirc-CMLrLVMT.js +1 -0
  367. package/dist/assets/mllike-naqhAFf1.js +1 -0
  368. package/dist/assets/modelica-BvadsaHY.js +1 -0
  369. package/dist/assets/mscgen-DOr-Q10p.js +1 -0
  370. package/dist/assets/mumps-DKTl5Nyj.js +1 -0
  371. package/dist/assets/nginx-DWR90-d1.js +1 -0
  372. package/dist/assets/nsis-ooFGduGn.js +1 -0
  373. package/dist/assets/ntriples-q5jkU4X1.js +1 -0
  374. package/dist/assets/octave-Deu9Ci7_.js +1 -0
  375. package/dist/assets/orbiting-BCD4Vuij.svg +7 -0
  376. package/dist/assets/ordinal-DA-_8pMy.js +1 -0
  377. package/dist/assets/oz-cTQm1aoB.js +1 -0
  378. package/dist/assets/pascal-Oh3VmczP.js +1 -0
  379. package/dist/assets/pegDiagram-2B236MQR-BCF1byLY.js +1 -0
  380. package/dist/assets/perl-BddWF1HQ.js +1 -0
  381. package/dist/assets/pieDiagram-ENE6RG2P-D2cZTo8-.js +1 -0
  382. package/dist/assets/pig-g5ZQNIDr.js +1 -0
  383. package/dist/assets/powershell-CNmQNFVJ.js +1 -0
  384. package/dist/assets/properties-B41DXfv6.js +1 -0
  385. package/dist/assets/protobuf-eEBl31OJ.js +1 -0
  386. package/dist/assets/pug-DRSo4eCK.js +1 -0
  387. package/dist/assets/puppet-ClfRubAD.js +1 -0
  388. package/dist/assets/python-BSflc812.js +1 -0
  389. package/dist/assets/q-BBDx3N9Y.js +1 -0
  390. package/dist/assets/quadrantDiagram-ABIIQ3AL-Bwsn2--F.js +1 -0
  391. package/dist/assets/r-CByC1eO8.js +1 -0
  392. package/dist/assets/railroadDiagram-RFXS5EU6-CLGLpWHs.js +1 -0
  393. package/dist/assets/requirementDiagram-TGXJPOKE-BfmBYwZl.js +1 -0
  394. package/dist/assets/rpm-8t935XkD.js +1 -0
  395. package/dist/assets/ruby-CAgbkLZh.js +1 -0
  396. package/dist/assets/sankeyDiagram-HTMAVEWB-CqZhbyFn.js +1 -0
  397. package/dist/assets/sas-C-JWcRvo.js +1 -0
  398. package/dist/assets/scheme-D7o9RjUX.js +1 -0
  399. package/dist/assets/seqResourceLoaders-Bkh2Rb9i.js +2 -0
  400. package/dist/assets/seqResourceLoaders-Do7Kqg3B.css +41 -0
  401. package/dist/assets/sequenceDiagram-DBY2YBRQ-CcOdXkN2.js +1 -0
  402. package/dist/assets/shell-BXA79DV6.js +1 -0
  403. package/dist/assets/shimmer-BBDejmDf.svg +7 -0
  404. package/dist/assets/sieve-DNwyl0rd.js +1 -0
  405. package/dist/assets/simple-mode-CoQRusFX.js +1 -0
  406. package/dist/assets/sizeCapture-X5ZJPWSS-B4OVmPqu.js +1 -0
  407. package/dist/assets/smalltalk-DggktV6S.js +1 -0
  408. package/dist/assets/solr-D7NRuIPM.js +1 -0
  409. package/dist/assets/sparql-Cr71deJQ.js +1 -0
  410. package/dist/assets/spreadsheet-BMD3tYqw.js +1 -0
  411. package/dist/assets/sql-CbOjXfBR.js +1 -0
  412. package/dist/assets/stateDiagram-2N3HPSRC-Dysun0oO.js +1 -0
  413. package/dist/assets/stateDiagram-v2-6OUMAXLB-BFet8xAz.js +1 -0
  414. package/dist/assets/stex-iDPIkRmr.js +1 -0
  415. package/dist/assets/stylus-nWZizI-c.js +1 -0
  416. package/dist/assets/swift-DOhLK5SG.js +1 -0
  417. package/dist/assets/swimlanes-5IMT3BWC-_30OXwXy.js +2 -0
  418. package/dist/assets/swimlanesDiagram-G3AALYLV-C19viY0G.js +1 -0
  419. package/dist/assets/tcl-CQhJd1WY.js +1 -0
  420. package/dist/assets/textile-D9XqfVtL.js +1 -0
  421. package/dist/assets/tiddlywiki-DfOYgVky.js +1 -0
  422. package/dist/assets/tiki-a0_YLWvV.js +1 -0
  423. package/dist/assets/timeline-definition-FHXFAJF6-X1Xk3onD.js +1 -0
  424. package/dist/assets/toml-ekl3F1YB.js +1 -0
  425. package/dist/assets/troff-Bh_pcXF1.js +1 -0
  426. package/dist/assets/ttcn-M6363IRW.js +1 -0
  427. package/dist/assets/ttcn-cfg-7I2DgJEN.js +1 -0
  428. package/dist/assets/turtle-B5jdxH6D.js +1 -0
  429. package/dist/assets/vb-DM-xPmVv.js +1 -0
  430. package/dist/assets/vbscript-B0qu41Yc.js +1 -0
  431. package/dist/assets/velocity-FCgsuVHf.js +1 -0
  432. package/dist/assets/vendor-antd-Bzi1WuBb.js +17 -0
  433. package/dist/assets/vendor-codemirror-CKTrJd47.js +1 -0
  434. package/dist/assets/vendor-highlight-IFTJ9nxW.js +1 -0
  435. package/dist/assets/vendor-markdown-BN3QLsBu.js +3 -0
  436. package/dist/assets/vendor-mdxeditor-4PbKH6K7.js +2 -0
  437. package/dist/assets/vendor-qrcode-Bnjm0rcu.js +6 -0
  438. package/dist/assets/vendor-react-l0sNRNKZ.js +1 -0
  439. package/dist/assets/vendor-virtuoso-2P4SowHC.js +1 -0
  440. package/dist/assets/vendor-xterm-DckPrCx1.js +37 -0
  441. package/dist/assets/vennDiagram-L72KCM5P-D3fQnGq7.js +1 -0
  442. package/dist/assets/verilog-nrfFvR12.js +1 -0
  443. package/dist/assets/vhdl-WlDXtV-W.js +1 -0
  444. package/dist/assets/wardleyDiagram-EHGQE667-CRhqI6-g.js +1 -0
  445. package/dist/assets/webidl-RIQoSXDx.js +1 -0
  446. package/dist/assets/xquery-BN45G3lJ.js +1 -0
  447. package/dist/assets/xychartDiagram-FW5EYKEG-Cmtgmmtg.js +1 -0
  448. package/dist/assets/yacas-U6gaIVhD.js +1 -0
  449. package/dist/assets/z80-CFe5BHbK.js +1 -0
  450. package/dist/index.html +25 -6
  451. package/dist/voice-packs/default/A_choice_for_your_consideration_sir.MP3 +0 -0
  452. package/dist/voice-packs/default/It_is_done_sir.MP3 +0 -0
  453. package/dist/voice-packs/default/The_plan_awaits_your_approval_sir.MP3 +0 -0
  454. package/dist/voice-packs/default/pack.json +24 -0
  455. package/dist/voice-packs/sanguo/ask.MP3 +0 -0
  456. package/dist/voice-packs/sanguo/end.MP3 +0 -0
  457. package/dist/voice-packs/sanguo/pack.json +24 -0
  458. package/dist/voice-packs/sanguo/plan.MP3 +0 -0
  459. package/electron/diag.js +110 -0
  460. package/electron/main.js +1432 -0
  461. package/electron/menu-model.js +107 -0
  462. package/electron/tab-bar.html +575 -0
  463. package/electron/tab-content-preload.js +66 -0
  464. package/electron/tab-preload.js +24 -0
  465. package/electron/tab-worker.js +142 -0
  466. package/electron/window-state.js +60 -0
  467. package/electron/workspace-preload.js +19 -0
  468. package/findcx.js +4 -0
  469. package/i18n.js +3 -423
  470. package/index.html +30 -0
  471. package/interceptor.js +144 -70
  472. package/jsconfig.json +25 -0
  473. package/lib/approval-reviewer.js +23 -0
  474. package/lib/appserver-bridge.js +1753 -237
  475. package/lib/ask-bridge.js +5 -5
  476. package/lib/cli-args.js +57 -0
  477. package/lib/codex-config.js +157 -18
  478. package/lib/context-watcher.js +6 -65
  479. package/lib/delta-reconstructor.js +74 -52
  480. package/lib/ensure-hooks.js +37 -30
  481. package/lib/interceptor-core.js +490 -43
  482. package/lib/log-watcher.js +3 -8
  483. package/lib/main-agent-entry.js +68 -0
  484. package/lib/openai-body.js +95 -0
  485. package/lib/otel-adapter.js +3 -2
  486. package/lib/otel-receiver.js +1 -2
  487. package/lib/perm-bridge.js +84 -44
  488. package/lib/proxy-env.js +45 -1
  489. package/lib/sdk-adapter.js +241 -51
  490. package/lib/sdk-manager.js +523 -370
  491. package/lib/skills-api.js +364 -0
  492. package/lib/stats-worker.js +21 -21
  493. package/lib/token-usage.js +29 -0
  494. package/lib/updater.js +3 -7
  495. package/package.json +27 -6
  496. package/plugins/.gitkeep +0 -0
  497. package/plugins/README.md +8 -0
  498. package/proxy.js +187 -241
  499. package/pty-manager.js +17 -1
  500. package/public/favicon.ico +0 -0
  501. package/public/voice-packs/default/A_choice_for_your_consideration_sir.MP3 +0 -0
  502. package/public/voice-packs/default/It_is_done_sir.MP3 +0 -0
  503. package/public/voice-packs/default/The_plan_awaits_your_approval_sir.MP3 +0 -0
  504. package/public/voice-packs/default/pack.json +24 -0
  505. package/public/voice-packs/sanguo/ask.MP3 +0 -0
  506. package/public/voice-packs/sanguo/end.MP3 +0 -0
  507. package/public/voice-packs/sanguo/pack.json +24 -0
  508. package/public/voice-packs/sanguo/plan.MP3 +0 -0
  509. package/scripts/check-no-control-bytes.js +130 -0
  510. package/scripts/check-sign-config.sh +85 -0
  511. package/scripts/gen-default-voicepack.js +176 -0
  512. package/scripts/mac-sign.sh +47 -0
  513. package/scripts/npm-pack-dry-run.mjs +20 -0
  514. package/server/lib/approval-modal-prefs.js +72 -0
  515. package/server/lib/context-rules.js +70 -0
  516. package/server/lib/delta-reconstructor.js +403 -0
  517. package/server/lib/tools-xml-formatter.js +91 -0
  518. package/server/lib/voice-pack-events.js +79 -0
  519. package/server.js +420 -86
  520. package/src/App.jsx +638 -0
  521. package/src/App.module.css +1088 -0
  522. package/src/AppBase.jsx +2803 -0
  523. package/src/Mobile.jsx +1348 -0
  524. package/src/components/approval/ApprovalModal.jsx +319 -0
  525. package/src/components/approval/ApprovalModal.module.css +160 -0
  526. package/src/components/approval/ToolApprovalPanel.jsx +111 -0
  527. package/src/components/approval/ToolApprovalPanel.module.css +250 -0
  528. package/src/components/chat/ApprovalPortalContext.js +26 -0
  529. package/src/components/chat/AskQuestionForm.jsx +279 -0
  530. package/src/components/chat/AskTimeoutCountdown.jsx +113 -0
  531. package/src/components/chat/ChatInputBar.jsx +584 -0
  532. package/src/components/chat/ChatInputBar.module.css +656 -0
  533. package/src/components/chat/ChatMessage.jsx +1587 -0
  534. package/src/components/chat/ChatMessage.module.css +1560 -0
  535. package/src/components/chat/ChatView.jsx +3533 -0
  536. package/src/components/chat/ChatView.module.css +418 -0
  537. package/src/components/chat/DiffView.jsx +111 -0
  538. package/src/components/chat/DiffView.module.css +141 -0
  539. package/src/components/chat/RoleFilterBar.jsx +35 -0
  540. package/src/components/chat/RoleFilterBar.module.css +62 -0
  541. package/src/components/chat/controllers/askFlowController.js +789 -0
  542. package/src/components/chat/controllers/permissionController.js +84 -0
  543. package/src/components/chat/controllers/ptyPromptController.js +166 -0
  544. package/src/components/chat/controllers/scrollHighlightController.js +50 -0
  545. package/src/components/chat/controllers/splitDragController.js +135 -0
  546. package/src/components/chat/controllers/toolFileChangeController.js +216 -0
  547. package/src/components/chat/interactionOwnership.js +106 -0
  548. package/src/components/chat/uploadDeferLogic.js +46 -0
  549. package/src/components/common/ConceptHelp.jsx +97 -0
  550. package/src/components/common/ConceptHelp.module.css +151 -0
  551. package/src/components/common/ConfirmRemoveButton.jsx +78 -0
  552. package/src/components/common/CountryFlag.jsx +105 -0
  553. package/src/components/common/CountryFlag.module.css +36 -0
  554. package/src/components/common/DingTalkIcon.jsx +20 -0
  555. package/src/components/common/DiscordIcon.jsx +21 -0
  556. package/src/components/common/FeishuIcon.jsx +23 -0
  557. package/src/components/common/HoverPreviewTip.jsx +62 -0
  558. package/src/components/common/HoverPreviewTip.module.css +21 -0
  559. package/src/components/common/ImageLightbox.jsx +244 -0
  560. package/src/components/common/ImageLightbox.module.css +120 -0
  561. package/src/components/common/MemoryDetailModal.jsx +75 -0
  562. package/src/components/common/OpenFolderIcon.jsx +53 -0
  563. package/src/components/common/OpenFolderIcon.module.css +7 -0
  564. package/src/components/common/PanelResizer.jsx +48 -0
  565. package/src/components/common/PanelResizer.module.css +11 -0
  566. package/src/components/common/QuickAutoApproveRows.jsx +66 -0
  567. package/src/components/common/RefreshIcon.jsx +50 -0
  568. package/src/components/common/RefreshIcon.module.css +26 -0
  569. package/src/components/common/SnapLineOverlay.jsx +47 -0
  570. package/src/components/common/SnapLineOverlay.module.css +31 -0
  571. package/src/components/common/ToolsHelp.jsx +113 -0
  572. package/src/components/common/ToolsHelp.module.css +85 -0
  573. package/src/components/common/WeComIcon.jsx +22 -0
  574. package/src/components/common/quickMenuIcons.jsx +99 -0
  575. package/src/components/common/sharedChrome.module.css +274 -0
  576. package/src/components/dashboard/AppHeader.jsx +2085 -0
  577. package/src/components/dashboard/AppHeader.module.css +676 -0
  578. package/src/components/dashboard/CachePopoverContent.jsx +538 -0
  579. package/src/components/dashboard/CachePopoverContent.module.css +191 -0
  580. package/src/components/dashboard/ContextTab.jsx +769 -0
  581. package/src/components/dashboard/ContextTab.module.css +565 -0
  582. package/src/components/dashboard/DetailPanel.jsx +813 -0
  583. package/src/components/dashboard/DetailPanel.module.css +513 -0
  584. package/src/components/dashboard/LiveTagPopover.jsx +89 -0
  585. package/src/components/dashboard/LiveTagPopover.module.css +67 -0
  586. package/src/components/dashboard/RequestList.jsx +146 -0
  587. package/src/components/dashboard/RequestList.module.css +146 -0
  588. package/src/components/dashboard/TeamSessionPanel.jsx +584 -0
  589. package/src/components/dashboard/TeamSessionPanel.module.css +457 -0
  590. package/src/components/dashboard/UsageWindowPill.jsx +166 -0
  591. package/src/components/dashboard/UsageWindowPill.module.css +140 -0
  592. package/src/components/dashboard/WorkflowRunsPanel.jsx +108 -0
  593. package/src/components/dashboard/WorkflowRunsPanel.module.css +72 -0
  594. package/src/components/dashboard/WorkspaceList.jsx +410 -0
  595. package/src/components/dashboard/WorkspaceList.module.css +254 -0
  596. package/src/components/files/FileContentView.jsx +1013 -0
  597. package/src/components/files/FileContentView.module.css +418 -0
  598. package/src/components/files/FileExplorer.jsx +937 -0
  599. package/src/components/files/FileExplorer.module.css +173 -0
  600. package/src/components/files/MdxEditorPanel.base.css +9 -0
  601. package/src/components/files/MdxEditorPanel.jsx +181 -0
  602. package/src/components/files/MdxEditorPanel.module.css +917 -0
  603. package/src/components/git/DiffMiniMap.jsx +98 -0
  604. package/src/components/git/DiffMiniMap.module.css +17 -0
  605. package/src/components/git/FullFileDiffView.jsx +265 -0
  606. package/src/components/git/FullFileDiffView.module.css +176 -0
  607. package/src/components/git/GitChanges.jsx +461 -0
  608. package/src/components/git/GitChanges.module.css +337 -0
  609. package/src/components/git/GitDiffView.jsx +161 -0
  610. package/src/components/git/GitDiffView.module.css +205 -0
  611. package/src/components/mobile/MobileDrawerCloseButton.jsx +18 -0
  612. package/src/components/mobile/MobileFileExplorer.jsx +231 -0
  613. package/src/components/mobile/MobileFileExplorer.module.css +171 -0
  614. package/src/components/mobile/MobileGitDiff.jsx +293 -0
  615. package/src/components/mobile/MobileGitDiff.module.css +317 -0
  616. package/src/components/mobile/MobileStats.jsx +211 -0
  617. package/src/components/mobile/MobileStats.module.css +75 -0
  618. package/src/components/settings/ImAppendSystemModal.jsx +104 -0
  619. package/src/components/settings/ImConversationModal.jsx +328 -0
  620. package/src/components/settings/ImConversationModal.module.css +49 -0
  621. package/src/components/settings/ImPlatformSettings.jsx +453 -0
  622. package/src/components/settings/ImPlatformSettings.module.css +110 -0
  623. package/src/components/settings/ImSkillsModal.jsx +94 -0
  624. package/src/components/settings/ImStatusChip.jsx +80 -0
  625. package/src/components/settings/ImStatusChip.module.css +36 -0
  626. package/src/components/settings/MessagingModal.jsx +65 -0
  627. package/src/components/settings/MessagingModal.module.css +95 -0
  628. package/src/components/settings/ModelPromptTabs.jsx +118 -0
  629. package/src/components/settings/PluginModal.jsx +423 -0
  630. package/src/components/settings/PluginModal.module.css +136 -0
  631. package/src/components/settings/PreferencesForm.jsx +104 -0
  632. package/src/components/settings/PreferencesForm.module.css +27 -0
  633. package/src/components/settings/ProcessModal.jsx +175 -0
  634. package/src/components/settings/ProcessModal.module.css +21 -0
  635. package/src/components/settings/ProjectAliasEditor.jsx +138 -0
  636. package/src/components/settings/ProjectAliasEditor.module.css +87 -0
  637. package/src/components/settings/ProjectPrefsManagerModal.jsx +123 -0
  638. package/src/components/settings/ProjectPrefsManagerModal.module.css +52 -0
  639. package/src/components/settings/ProxyModal.jsx +286 -0
  640. package/src/components/settings/ProxyModal.module.css +141 -0
  641. package/src/components/settings/SkillsManagerModal.jsx +143 -0
  642. package/src/components/settings/SkillsManagerModal.module.css +143 -0
  643. package/src/components/settings/SystemTextModal.jsx +312 -0
  644. package/src/components/settings/SystemTextModal.module.css +331 -0
  645. package/src/components/settings/VoicePackSettings.jsx +319 -0
  646. package/src/components/settings/VoicePackSettings.module.css +151 -0
  647. package/src/components/settings/imPlatforms.js +177 -0
  648. package/src/components/terminal/CustomUltraplanEditModal.jsx +227 -0
  649. package/src/components/terminal/CustomUltraplanEditModal.module.css +189 -0
  650. package/src/components/terminal/PresetExpertPickerModal.jsx +116 -0
  651. package/src/components/terminal/PresetExpertPickerModal.module.css +90 -0
  652. package/src/components/terminal/PresetModal.jsx +118 -0
  653. package/src/components/terminal/ScratchTerminal.jsx +359 -0
  654. package/src/components/terminal/TerminalPanel.jsx +2021 -0
  655. package/src/components/terminal/TerminalPanel.module.css +872 -0
  656. package/src/components/terminal/TerminalWsContext.jsx +226 -0
  657. package/src/components/terminal/UltraPlanModal.jsx +328 -0
  658. package/src/components/terminal/UltraPlanModal.module.css +527 -0
  659. package/src/components/terminal/UltraplanExpertManagerModal.jsx +114 -0
  660. package/src/components/terminal/UltraplanExpertManagerModal.module.css +91 -0
  661. package/src/components/terminal/UltraplanPanel.jsx +307 -0
  662. package/src/components/terminal/UltraplanPanel.module.css +540 -0
  663. package/src/components/terminal/terminalThemes.js +33 -0
  664. package/src/components/viewers/ImageViewer.jsx +288 -0
  665. package/src/components/viewers/ImageViewer.module.css +203 -0
  666. package/src/components/viewers/JsonViewer.jsx +40 -0
  667. package/src/components/viewers/JsonViewer.module.css +9 -0
  668. package/src/components/viewers/LogTable.jsx +131 -0
  669. package/src/components/viewers/MarkdownBlock.jsx +112 -0
  670. package/src/components/viewers/MarkdownBlock.module.css +157 -0
  671. package/src/components/viewers/ToolResultView.jsx +389 -0
  672. package/src/components/viewers/ToolResultView.module.css +108 -0
  673. package/src/components/viewers/WebResultsView.jsx +74 -0
  674. package/src/components/viewers/WebResultsView.module.css +85 -0
  675. package/src/components/viewers/WorkflowLiveHud.jsx +153 -0
  676. package/src/components/viewers/WorkflowLiveHud.module.css +256 -0
  677. package/src/components/viewers/WorkflowPanel.jsx +243 -0
  678. package/src/components/viewers/WorkflowPanel.module.css +265 -0
  679. package/src/components/viewers/WorkflowTimeline.jsx +83 -0
  680. package/src/components/viewers/WorkflowTimeline.module.css +116 -0
  681. package/src/contexts/SettingsContext.jsx +140 -0
  682. package/src/env.js +54 -0
  683. package/src/global.css +607 -0
  684. package/src/hooks/useMarkdownExport.js +146 -0
  685. package/src/hooks/useMermaidRender.js +193 -0
  686. package/src/hooks/useProjectAlias.js +29 -0
  687. package/src/hooks/useSessionStoragePersistedSet.js +41 -0
  688. package/src/i18n/mdxTranslations.js +472 -0
  689. package/src/i18n.js +12409 -0
  690. package/src/img/ccv-logo.png +0 -0
  691. package/src/img/codex/entrance.svg +7 -0
  692. package/src/img/codex/exit.svg +7 -0
  693. package/src/img/codex/orbiting.svg +7 -0
  694. package/src/img/codex/shimmer.svg +7 -0
  695. package/src/img/codex/thinking.svg +7 -0
  696. package/src/img/codex/tickle.svg +7 -0
  697. package/src/img/codex/waiting.svg +7 -0
  698. package/src/img/codex/writing.svg +7 -0
  699. package/src/img/default-avatar.svg +1 -0
  700. package/src/img/default-model-avatar.svg +1 -0
  701. package/src/img/loading-pet.gif +0 -0
  702. package/src/img/model-codex.svg +2 -0
  703. package/src/img/model-deepseek.svg +2 -0
  704. package/src/img/model-gemini.svg +2 -0
  705. package/src/img/model-glm.svg +2 -0
  706. package/src/img/model-kimi.svg +2 -0
  707. package/src/img/model-minimax.svg +2 -0
  708. package/src/img/model-openai.svg +2 -0
  709. package/src/img/model-qwen.svg +2 -0
  710. package/src/img/teammates/DESIGN.md +165 -0
  711. package/src/img/teammates/analyst.svg +32 -0
  712. package/src/img/teammates/auditor.svg +28 -0
  713. package/src/img/teammates/builder.svg +33 -0
  714. package/src/img/teammates/default.svg +25 -0
  715. package/src/img/teammates/designer.svg +25 -0
  716. package/src/img/teammates/executor.svg +31 -0
  717. package/src/img/teammates/expert.svg +30 -0
  718. package/src/img/teammates/explorer.svg +30 -0
  719. package/src/img/teammates/implementer.svg +34 -0
  720. package/src/img/teammates/investigator.svg +29 -0
  721. package/src/img/teammates/marvel/analyst.svg +26 -0
  722. package/src/img/teammates/marvel/auditor.svg +28 -0
  723. package/src/img/teammates/marvel/builder.svg +15 -0
  724. package/src/img/teammates/marvel/default.svg +25 -0
  725. package/src/img/teammates/marvel/designer.svg +21 -0
  726. package/src/img/teammates/marvel/executor.svg +25 -0
  727. package/src/img/teammates/marvel/expert.svg +31 -0
  728. package/src/img/teammates/marvel/explorer.svg +22 -0
  729. package/src/img/teammates/marvel/implementer.svg +30 -0
  730. package/src/img/teammates/marvel/investigator.svg +21 -0
  731. package/src/img/teammates/marvel/researcher.svg +30 -0
  732. package/src/img/teammates/marvel/reviewer.svg +21 -0
  733. package/src/img/teammates/marvel/scanner.svg +23 -0
  734. package/src/img/teammates/marvel/security.svg +30 -0
  735. package/src/img/teammates/marvel/tracer.svg +19 -0
  736. package/src/img/teammates/marvel/translator.svg +24 -0
  737. package/src/img/teammates/marvel/worker.svg +16 -0
  738. package/src/img/teammates/researcher.svg +35 -0
  739. package/src/img/teammates/reviewer.svg +23 -0
  740. package/src/img/teammates/scanner.svg +31 -0
  741. package/src/img/teammates/security.svg +31 -0
  742. package/src/img/teammates/tracer.svg +30 -0
  743. package/src/img/teammates/translator.svg +32 -0
  744. package/src/img/teammates/worker.svg +29 -0
  745. package/src/main.jsx +30 -0
  746. package/src/tokenInterceptor.js +60 -0
  747. package/src/utils/apiUrl.js +26 -0
  748. package/src/utils/approvalReviewerOptions.js +27 -0
  749. package/src/utils/askFallback.js +21 -0
  750. package/src/utils/askOptionDesc.js +55 -0
  751. package/src/utils/askPortalMatcher.js +54 -0
  752. package/src/utils/autoApproveOptions.js +23 -0
  753. package/src/utils/avatarAnimationPostPass.js +46 -0
  754. package/src/utils/builtinPresets.js +18 -0
  755. package/src/utils/clearCheckpoint.js +154 -0
  756. package/src/utils/commandValidator.js +45 -0
  757. package/src/utils/contentFilter.js +675 -0
  758. package/src/utils/contextRaw.js +17 -0
  759. package/src/utils/contextSidebarNavigation.js +16 -0
  760. package/src/utils/conversationEntryNormalize.js +497 -0
  761. package/src/utils/displayScaleHelper.js +47 -0
  762. package/src/utils/entry-slim.js +594 -0
  763. package/src/utils/entryCache.js +179 -0
  764. package/src/utils/errorReport.js +40 -0
  765. package/src/utils/fileExpandedPathsStorage.js +70 -0
  766. package/src/utils/fileIcons.jsx +36 -0
  767. package/src/utils/fileOpen.js +37 -0
  768. package/src/utils/formatters.js +48 -0
  769. package/src/utils/gitApi.js +50 -0
  770. package/src/utils/gitTreeBuilder.js +19 -0
  771. package/src/utils/helpers.js +462 -0
  772. package/src/utils/identityHeal.js +83 -0
  773. package/src/utils/imOrigin.js +24 -0
  774. package/src/utils/imTr.js +7 -0
  775. package/src/utils/imageCompress.js +83 -0
  776. package/src/utils/imageDownscale.js +28 -0
  777. package/src/utils/imageResize.js +112 -0
  778. package/src/utils/ingestPipeline.js +47 -0
  779. package/src/utils/lazyWithReload.js +53 -0
  780. package/src/utils/markdown.js +30 -0
  781. package/src/utils/markdownIncremental.js +39 -0
  782. package/src/utils/markdownProfiler.js +113 -0
  783. package/src/utils/mdExtensionDetect.js +64 -0
  784. package/src/utils/memoryLinkParser.js +44 -0
  785. package/src/utils/modalMask.js +15 -0
  786. package/src/utils/monotime.js +6 -0
  787. package/src/utils/pinnedMenu.js +55 -0
  788. package/src/utils/presetShortcuts.js +14 -0
  789. package/src/utils/projectAlias.js +135 -0
  790. package/src/utils/promptClassifier.js +111 -0
  791. package/src/utils/promptDetect.js +196 -0
  792. package/src/utils/promptNav.js +60 -0
  793. package/src/utils/ptyChunkBuilder.js +251 -0
  794. package/src/utils/quickMenuHoverIntent.js +35 -0
  795. package/src/utils/rateLimitParser.js +249 -0
  796. package/src/utils/readResultPool.js +106 -0
  797. package/src/utils/refreshCachedItemProp.js +32 -0
  798. package/src/utils/requestTools.js +19 -0
  799. package/src/utils/requestType.js +284 -0
  800. package/src/utils/resizeCalc.js +21 -0
  801. package/src/utils/resolveLocalized.js +17 -0
  802. package/src/utils/seqResourceLoaders.js +79 -0
  803. package/src/utils/sessionManager.js +694 -0
  804. package/src/utils/sessionMerge.js +290 -0
  805. package/src/utils/skillModalController.js +111 -0
  806. package/src/utils/skillsParser.js +116 -0
  807. package/src/utils/slashCommandLabels.js +80 -0
  808. package/src/utils/splitDragCalc.js +73 -0
  809. package/src/utils/stickyBottomController.js +643 -0
  810. package/src/utils/svgSanitize.js +48 -0
  811. package/src/utils/systemTags.js +47 -0
  812. package/src/utils/tCodex.js +20 -0
  813. package/src/utils/teamModalBuilder.js +347 -0
  814. package/src/utils/teamSessionParser.js +186 -0
  815. package/src/utils/teammateAvatars.js +194 -0
  816. package/src/utils/teammateDetector.js +106 -0
  817. package/src/utils/termDiag.js +114 -0
  818. package/src/utils/terminalClipboard.js +117 -0
  819. package/src/utils/terminalWriteQueue.js +398 -0
  820. package/src/utils/thinkingMerge.js +49 -0
  821. package/src/utils/tokenUsage.js +1 -0
  822. package/src/utils/toolCatalog.js +31 -0
  823. package/src/utils/toolNameAliases.js +13 -0
  824. package/src/utils/toolResultBuilder.js +312 -0
  825. package/src/utils/toolResultClassifier.js +16 -0
  826. package/src/utils/toolResultCore.js +161 -0
  827. package/src/utils/toolsDiff.js +44 -0
  828. package/src/utils/toolsXmlFormatter.js +3 -0
  829. package/src/utils/ultraplanController.js +109 -0
  830. package/src/utils/ultraplanExperts.js +86 -0
  831. package/src/utils/ultraplanTemplates.js +152 -0
  832. package/src/utils/userImageRefs.js +49 -0
  833. package/src/utils/voicePackPlayer.js +233 -0
  834. package/src/utils/webResultGrouping.js +111 -0
  835. package/src/utils/workflowFormat.js +52 -0
  836. package/src/utils/workflowRuns.js +118 -0
  837. package/src/utils/workflowStore.js +94 -0
  838. package/vite.config.js +106 -0
  839. package/concepts/ar/CacheRebuild.md +0 -36
  840. package/concepts/ar/KVCacheContent.md +0 -49
  841. package/concepts/ar/Tool-Agent.md +0 -125
  842. package/concepts/ar/Tool-AskUserQuestion.md +0 -75
  843. package/concepts/ar/Tool-Bash.md +0 -167
  844. package/concepts/ar/Tool-Edit.md +0 -46
  845. package/concepts/ar/Tool-EnterPlanMode.md +0 -128
  846. package/concepts/ar/Tool-EnterWorktree.md +0 -56
  847. package/concepts/ar/Tool-ExitPlanMode.md +0 -62
  848. package/concepts/ar/Tool-Glob.md +0 -39
  849. package/concepts/ar/Tool-Grep.md +0 -57
  850. package/concepts/ar/Tool-NotebookEdit.md +0 -33
  851. package/concepts/ar/Tool-Read.md +0 -56
  852. package/concepts/ar/Tool-SendMessage.md +0 -41
  853. package/concepts/ar/Tool-Skill.md +0 -56
  854. package/concepts/ar/Tool-Task.md +0 -51
  855. package/concepts/ar/Tool-TaskCreate.md +0 -78
  856. package/concepts/ar/Tool-TaskGet.md +0 -56
  857. package/concepts/ar/Tool-TaskList.md +0 -56
  858. package/concepts/ar/Tool-TaskOutput.md +0 -40
  859. package/concepts/ar/Tool-TaskStop.md +0 -32
  860. package/concepts/ar/Tool-TaskUpdate.md +0 -123
  861. package/concepts/ar/Tool-TeamCreate.md +0 -38
  862. package/concepts/ar/Tool-TeamDelete.md +0 -30
  863. package/concepts/ar/Tool-WebFetch.md +0 -55
  864. package/concepts/ar/Tool-WebSearch.md +0 -58
  865. package/concepts/ar/Tool-Write.md +0 -39
  866. package/concepts/ar/Tool-executeCode.md +0 -41
  867. package/concepts/ar/Tool-getDiagnostics.md +0 -32
  868. package/concepts/ar/Tools.md +0 -67
  869. package/concepts/da/CacheRebuild.md +0 -36
  870. package/concepts/da/KVCacheContent.md +0 -49
  871. package/concepts/da/Tool-Agent.md +0 -125
  872. package/concepts/da/Tool-AskUserQuestion.md +0 -75
  873. package/concepts/da/Tool-Bash.md +0 -167
  874. package/concepts/da/Tool-Edit.md +0 -46
  875. package/concepts/da/Tool-EnterPlanMode.md +0 -128
  876. package/concepts/da/Tool-EnterWorktree.md +0 -56
  877. package/concepts/da/Tool-ExitPlanMode.md +0 -62
  878. package/concepts/da/Tool-Glob.md +0 -39
  879. package/concepts/da/Tool-Grep.md +0 -57
  880. package/concepts/da/Tool-NotebookEdit.md +0 -33
  881. package/concepts/da/Tool-Read.md +0 -56
  882. package/concepts/da/Tool-SendMessage.md +0 -41
  883. package/concepts/da/Tool-Skill.md +0 -56
  884. package/concepts/da/Tool-Task.md +0 -51
  885. package/concepts/da/Tool-TaskCreate.md +0 -78
  886. package/concepts/da/Tool-TaskGet.md +0 -56
  887. package/concepts/da/Tool-TaskList.md +0 -56
  888. package/concepts/da/Tool-TaskOutput.md +0 -40
  889. package/concepts/da/Tool-TaskStop.md +0 -32
  890. package/concepts/da/Tool-TaskUpdate.md +0 -123
  891. package/concepts/da/Tool-TeamCreate.md +0 -38
  892. package/concepts/da/Tool-TeamDelete.md +0 -30
  893. package/concepts/da/Tool-WebFetch.md +0 -55
  894. package/concepts/da/Tool-WebSearch.md +0 -58
  895. package/concepts/da/Tool-Write.md +0 -39
  896. package/concepts/da/Tool-executeCode.md +0 -41
  897. package/concepts/da/Tool-getDiagnostics.md +0 -32
  898. package/concepts/da/Tools.md +0 -67
  899. package/concepts/de/CacheRebuild.md +0 -36
  900. package/concepts/de/KVCacheContent.md +0 -49
  901. package/concepts/de/Tool-Agent.md +0 -125
  902. package/concepts/de/Tool-AskUserQuestion.md +0 -75
  903. package/concepts/de/Tool-Bash.md +0 -167
  904. package/concepts/de/Tool-Edit.md +0 -46
  905. package/concepts/de/Tool-EnterPlanMode.md +0 -128
  906. package/concepts/de/Tool-EnterWorktree.md +0 -56
  907. package/concepts/de/Tool-ExitPlanMode.md +0 -62
  908. package/concepts/de/Tool-Glob.md +0 -39
  909. package/concepts/de/Tool-Grep.md +0 -57
  910. package/concepts/de/Tool-NotebookEdit.md +0 -33
  911. package/concepts/de/Tool-Read.md +0 -56
  912. package/concepts/de/Tool-SendMessage.md +0 -41
  913. package/concepts/de/Tool-Skill.md +0 -56
  914. package/concepts/de/Tool-Task.md +0 -51
  915. package/concepts/de/Tool-TaskCreate.md +0 -78
  916. package/concepts/de/Tool-TaskGet.md +0 -56
  917. package/concepts/de/Tool-TaskList.md +0 -56
  918. package/concepts/de/Tool-TaskOutput.md +0 -40
  919. package/concepts/de/Tool-TaskStop.md +0 -32
  920. package/concepts/de/Tool-TaskUpdate.md +0 -123
  921. package/concepts/de/Tool-TeamCreate.md +0 -38
  922. package/concepts/de/Tool-TeamDelete.md +0 -30
  923. package/concepts/de/Tool-WebFetch.md +0 -55
  924. package/concepts/de/Tool-WebSearch.md +0 -58
  925. package/concepts/de/Tool-Write.md +0 -39
  926. package/concepts/de/Tool-executeCode.md +0 -41
  927. package/concepts/de/Tool-getDiagnostics.md +0 -32
  928. package/concepts/de/Tools.md +0 -67
  929. package/concepts/en/CacheRebuild.md +0 -36
  930. package/concepts/en/KVCacheContent.md +0 -49
  931. package/concepts/en/Tool-Agent.md +0 -125
  932. package/concepts/en/Tool-AskUserQuestion.md +0 -75
  933. package/concepts/en/Tool-Bash.md +0 -167
  934. package/concepts/en/Tool-Edit.md +0 -46
  935. package/concepts/en/Tool-EnterPlanMode.md +0 -128
  936. package/concepts/en/Tool-EnterWorktree.md +0 -56
  937. package/concepts/en/Tool-ExitPlanMode.md +0 -62
  938. package/concepts/en/Tool-Glob.md +0 -39
  939. package/concepts/en/Tool-Grep.md +0 -57
  940. package/concepts/en/Tool-NotebookEdit.md +0 -33
  941. package/concepts/en/Tool-Read.md +0 -56
  942. package/concepts/en/Tool-SendMessage.md +0 -41
  943. package/concepts/en/Tool-Skill.md +0 -56
  944. package/concepts/en/Tool-Task.md +0 -51
  945. package/concepts/en/Tool-TaskCreate.md +0 -78
  946. package/concepts/en/Tool-TaskGet.md +0 -56
  947. package/concepts/en/Tool-TaskList.md +0 -56
  948. package/concepts/en/Tool-TaskOutput.md +0 -40
  949. package/concepts/en/Tool-TaskStop.md +0 -32
  950. package/concepts/en/Tool-TaskUpdate.md +0 -123
  951. package/concepts/en/Tool-TeamCreate.md +0 -38
  952. package/concepts/en/Tool-TeamDelete.md +0 -30
  953. package/concepts/en/Tool-WebFetch.md +0 -55
  954. package/concepts/en/Tool-WebSearch.md +0 -58
  955. package/concepts/en/Tool-Write.md +0 -39
  956. package/concepts/en/Tool-executeCode.md +0 -41
  957. package/concepts/en/Tool-getDiagnostics.md +0 -32
  958. package/concepts/es/CacheRebuild.md +0 -36
  959. package/concepts/es/KVCacheContent.md +0 -49
  960. package/concepts/es/Tool-Agent.md +0 -125
  961. package/concepts/es/Tool-AskUserQuestion.md +0 -75
  962. package/concepts/es/Tool-Bash.md +0 -167
  963. package/concepts/es/Tool-Edit.md +0 -46
  964. package/concepts/es/Tool-EnterPlanMode.md +0 -128
  965. package/concepts/es/Tool-EnterWorktree.md +0 -56
  966. package/concepts/es/Tool-ExitPlanMode.md +0 -62
  967. package/concepts/es/Tool-Glob.md +0 -39
  968. package/concepts/es/Tool-Grep.md +0 -57
  969. package/concepts/es/Tool-NotebookEdit.md +0 -33
  970. package/concepts/es/Tool-Read.md +0 -56
  971. package/concepts/es/Tool-SendMessage.md +0 -41
  972. package/concepts/es/Tool-Skill.md +0 -56
  973. package/concepts/es/Tool-Task.md +0 -51
  974. package/concepts/es/Tool-TaskCreate.md +0 -78
  975. package/concepts/es/Tool-TaskGet.md +0 -56
  976. package/concepts/es/Tool-TaskList.md +0 -56
  977. package/concepts/es/Tool-TaskOutput.md +0 -40
  978. package/concepts/es/Tool-TaskStop.md +0 -32
  979. package/concepts/es/Tool-TaskUpdate.md +0 -123
  980. package/concepts/es/Tool-TeamCreate.md +0 -38
  981. package/concepts/es/Tool-TeamDelete.md +0 -30
  982. package/concepts/es/Tool-WebFetch.md +0 -55
  983. package/concepts/es/Tool-WebSearch.md +0 -58
  984. package/concepts/es/Tool-Write.md +0 -39
  985. package/concepts/es/Tool-executeCode.md +0 -41
  986. package/concepts/es/Tool-getDiagnostics.md +0 -32
  987. package/concepts/es/Tools.md +0 -67
  988. package/concepts/fr/CacheRebuild.md +0 -36
  989. package/concepts/fr/KVCacheContent.md +0 -49
  990. package/concepts/fr/Tool-Agent.md +0 -125
  991. package/concepts/fr/Tool-AskUserQuestion.md +0 -75
  992. package/concepts/fr/Tool-Bash.md +0 -167
  993. package/concepts/fr/Tool-Edit.md +0 -46
  994. package/concepts/fr/Tool-EnterPlanMode.md +0 -128
  995. package/concepts/fr/Tool-EnterWorktree.md +0 -56
  996. package/concepts/fr/Tool-ExitPlanMode.md +0 -62
  997. package/concepts/fr/Tool-Glob.md +0 -39
  998. package/concepts/fr/Tool-Grep.md +0 -57
  999. package/concepts/fr/Tool-NotebookEdit.md +0 -33
  1000. package/concepts/fr/Tool-Read.md +0 -56
  1001. package/concepts/fr/Tool-SendMessage.md +0 -41
  1002. package/concepts/fr/Tool-Skill.md +0 -56
  1003. package/concepts/fr/Tool-Task.md +0 -51
  1004. package/concepts/fr/Tool-TaskCreate.md +0 -78
  1005. package/concepts/fr/Tool-TaskGet.md +0 -56
  1006. package/concepts/fr/Tool-TaskList.md +0 -56
  1007. package/concepts/fr/Tool-TaskOutput.md +0 -40
  1008. package/concepts/fr/Tool-TaskStop.md +0 -32
  1009. package/concepts/fr/Tool-TaskUpdate.md +0 -123
  1010. package/concepts/fr/Tool-TeamCreate.md +0 -38
  1011. package/concepts/fr/Tool-TeamDelete.md +0 -30
  1012. package/concepts/fr/Tool-WebFetch.md +0 -55
  1013. package/concepts/fr/Tool-WebSearch.md +0 -58
  1014. package/concepts/fr/Tool-Write.md +0 -39
  1015. package/concepts/fr/Tool-executeCode.md +0 -41
  1016. package/concepts/fr/Tool-getDiagnostics.md +0 -32
  1017. package/concepts/fr/Tools.md +0 -67
  1018. package/concepts/it/CacheRebuild.md +0 -36
  1019. package/concepts/it/KVCacheContent.md +0 -49
  1020. package/concepts/it/Tool-Agent.md +0 -125
  1021. package/concepts/it/Tool-AskUserQuestion.md +0 -75
  1022. package/concepts/it/Tool-Bash.md +0 -167
  1023. package/concepts/it/Tool-Edit.md +0 -46
  1024. package/concepts/it/Tool-EnterPlanMode.md +0 -128
  1025. package/concepts/it/Tool-EnterWorktree.md +0 -56
  1026. package/concepts/it/Tool-ExitPlanMode.md +0 -62
  1027. package/concepts/it/Tool-Glob.md +0 -39
  1028. package/concepts/it/Tool-Grep.md +0 -57
  1029. package/concepts/it/Tool-NotebookEdit.md +0 -33
  1030. package/concepts/it/Tool-Read.md +0 -56
  1031. package/concepts/it/Tool-SendMessage.md +0 -41
  1032. package/concepts/it/Tool-Skill.md +0 -56
  1033. package/concepts/it/Tool-Task.md +0 -51
  1034. package/concepts/it/Tool-TaskCreate.md +0 -78
  1035. package/concepts/it/Tool-TaskGet.md +0 -56
  1036. package/concepts/it/Tool-TaskList.md +0 -56
  1037. package/concepts/it/Tool-TaskOutput.md +0 -40
  1038. package/concepts/it/Tool-TaskStop.md +0 -32
  1039. package/concepts/it/Tool-TaskUpdate.md +0 -123
  1040. package/concepts/it/Tool-TeamCreate.md +0 -38
  1041. package/concepts/it/Tool-TeamDelete.md +0 -30
  1042. package/concepts/it/Tool-WebFetch.md +0 -55
  1043. package/concepts/it/Tool-WebSearch.md +0 -58
  1044. package/concepts/it/Tool-Write.md +0 -39
  1045. package/concepts/it/Tool-executeCode.md +0 -41
  1046. package/concepts/it/Tool-getDiagnostics.md +0 -32
  1047. package/concepts/it/Tools.md +0 -67
  1048. package/concepts/ja/CacheRebuild.md +0 -36
  1049. package/concepts/ja/KVCacheContent.md +0 -49
  1050. package/concepts/ja/Tool-Agent.md +0 -125
  1051. package/concepts/ja/Tool-AskUserQuestion.md +0 -75
  1052. package/concepts/ja/Tool-Bash.md +0 -167
  1053. package/concepts/ja/Tool-Edit.md +0 -46
  1054. package/concepts/ja/Tool-EnterPlanMode.md +0 -128
  1055. package/concepts/ja/Tool-EnterWorktree.md +0 -56
  1056. package/concepts/ja/Tool-ExitPlanMode.md +0 -62
  1057. package/concepts/ja/Tool-Glob.md +0 -39
  1058. package/concepts/ja/Tool-Grep.md +0 -57
  1059. package/concepts/ja/Tool-NotebookEdit.md +0 -33
  1060. package/concepts/ja/Tool-Read.md +0 -56
  1061. package/concepts/ja/Tool-SendMessage.md +0 -41
  1062. package/concepts/ja/Tool-Skill.md +0 -56
  1063. package/concepts/ja/Tool-Task.md +0 -51
  1064. package/concepts/ja/Tool-TaskCreate.md +0 -78
  1065. package/concepts/ja/Tool-TaskGet.md +0 -56
  1066. package/concepts/ja/Tool-TaskList.md +0 -56
  1067. package/concepts/ja/Tool-TaskOutput.md +0 -40
  1068. package/concepts/ja/Tool-TaskStop.md +0 -32
  1069. package/concepts/ja/Tool-TaskUpdate.md +0 -123
  1070. package/concepts/ja/Tool-TeamCreate.md +0 -38
  1071. package/concepts/ja/Tool-TeamDelete.md +0 -30
  1072. package/concepts/ja/Tool-WebFetch.md +0 -55
  1073. package/concepts/ja/Tool-WebSearch.md +0 -58
  1074. package/concepts/ja/Tool-Write.md +0 -39
  1075. package/concepts/ja/Tool-executeCode.md +0 -41
  1076. package/concepts/ja/Tool-getDiagnostics.md +0 -32
  1077. package/concepts/ja/Tools.md +0 -67
  1078. package/concepts/ko/CacheRebuild.md +0 -36
  1079. package/concepts/ko/KVCacheContent.md +0 -49
  1080. package/concepts/ko/Tool-Agent.md +0 -125
  1081. package/concepts/ko/Tool-AskUserQuestion.md +0 -75
  1082. package/concepts/ko/Tool-Bash.md +0 -167
  1083. package/concepts/ko/Tool-Edit.md +0 -46
  1084. package/concepts/ko/Tool-EnterPlanMode.md +0 -128
  1085. package/concepts/ko/Tool-EnterWorktree.md +0 -56
  1086. package/concepts/ko/Tool-ExitPlanMode.md +0 -62
  1087. package/concepts/ko/Tool-Glob.md +0 -39
  1088. package/concepts/ko/Tool-Grep.md +0 -57
  1089. package/concepts/ko/Tool-NotebookEdit.md +0 -33
  1090. package/concepts/ko/Tool-Read.md +0 -56
  1091. package/concepts/ko/Tool-SendMessage.md +0 -41
  1092. package/concepts/ko/Tool-Skill.md +0 -56
  1093. package/concepts/ko/Tool-Task.md +0 -51
  1094. package/concepts/ko/Tool-TaskCreate.md +0 -78
  1095. package/concepts/ko/Tool-TaskGet.md +0 -56
  1096. package/concepts/ko/Tool-TaskList.md +0 -56
  1097. package/concepts/ko/Tool-TaskOutput.md +0 -40
  1098. package/concepts/ko/Tool-TaskStop.md +0 -32
  1099. package/concepts/ko/Tool-TaskUpdate.md +0 -123
  1100. package/concepts/ko/Tool-TeamCreate.md +0 -38
  1101. package/concepts/ko/Tool-TeamDelete.md +0 -30
  1102. package/concepts/ko/Tool-WebFetch.md +0 -55
  1103. package/concepts/ko/Tool-WebSearch.md +0 -58
  1104. package/concepts/ko/Tool-Write.md +0 -39
  1105. package/concepts/ko/Tool-executeCode.md +0 -41
  1106. package/concepts/ko/Tool-getDiagnostics.md +0 -32
  1107. package/concepts/ko/Tools.md +0 -67
  1108. package/concepts/no/CacheRebuild.md +0 -36
  1109. package/concepts/no/KVCacheContent.md +0 -49
  1110. package/concepts/no/Tool-Agent.md +0 -125
  1111. package/concepts/no/Tool-AskUserQuestion.md +0 -75
  1112. package/concepts/no/Tool-Bash.md +0 -167
  1113. package/concepts/no/Tool-Edit.md +0 -46
  1114. package/concepts/no/Tool-EnterPlanMode.md +0 -128
  1115. package/concepts/no/Tool-EnterWorktree.md +0 -56
  1116. package/concepts/no/Tool-ExitPlanMode.md +0 -62
  1117. package/concepts/no/Tool-Glob.md +0 -39
  1118. package/concepts/no/Tool-Grep.md +0 -57
  1119. package/concepts/no/Tool-NotebookEdit.md +0 -33
  1120. package/concepts/no/Tool-Read.md +0 -56
  1121. package/concepts/no/Tool-SendMessage.md +0 -41
  1122. package/concepts/no/Tool-Skill.md +0 -56
  1123. package/concepts/no/Tool-Task.md +0 -51
  1124. package/concepts/no/Tool-TaskCreate.md +0 -78
  1125. package/concepts/no/Tool-TaskGet.md +0 -56
  1126. package/concepts/no/Tool-TaskList.md +0 -56
  1127. package/concepts/no/Tool-TaskOutput.md +0 -40
  1128. package/concepts/no/Tool-TaskStop.md +0 -32
  1129. package/concepts/no/Tool-TaskUpdate.md +0 -123
  1130. package/concepts/no/Tool-TeamCreate.md +0 -38
  1131. package/concepts/no/Tool-TeamDelete.md +0 -30
  1132. package/concepts/no/Tool-WebFetch.md +0 -55
  1133. package/concepts/no/Tool-WebSearch.md +0 -58
  1134. package/concepts/no/Tool-Write.md +0 -39
  1135. package/concepts/no/Tool-executeCode.md +0 -41
  1136. package/concepts/no/Tool-getDiagnostics.md +0 -32
  1137. package/concepts/no/Tools.md +0 -67
  1138. package/concepts/pl/CacheRebuild.md +0 -36
  1139. package/concepts/pl/KVCacheContent.md +0 -49
  1140. package/concepts/pl/Tool-Agent.md +0 -125
  1141. package/concepts/pl/Tool-AskUserQuestion.md +0 -75
  1142. package/concepts/pl/Tool-Bash.md +0 -167
  1143. package/concepts/pl/Tool-Edit.md +0 -46
  1144. package/concepts/pl/Tool-EnterPlanMode.md +0 -128
  1145. package/concepts/pl/Tool-EnterWorktree.md +0 -56
  1146. package/concepts/pl/Tool-ExitPlanMode.md +0 -62
  1147. package/concepts/pl/Tool-Glob.md +0 -39
  1148. package/concepts/pl/Tool-Grep.md +0 -57
  1149. package/concepts/pl/Tool-NotebookEdit.md +0 -33
  1150. package/concepts/pl/Tool-Read.md +0 -56
  1151. package/concepts/pl/Tool-SendMessage.md +0 -41
  1152. package/concepts/pl/Tool-Skill.md +0 -56
  1153. package/concepts/pl/Tool-Task.md +0 -51
  1154. package/concepts/pl/Tool-TaskCreate.md +0 -78
  1155. package/concepts/pl/Tool-TaskGet.md +0 -56
  1156. package/concepts/pl/Tool-TaskList.md +0 -56
  1157. package/concepts/pl/Tool-TaskOutput.md +0 -40
  1158. package/concepts/pl/Tool-TaskStop.md +0 -32
  1159. package/concepts/pl/Tool-TaskUpdate.md +0 -123
  1160. package/concepts/pl/Tool-TeamCreate.md +0 -38
  1161. package/concepts/pl/Tool-TeamDelete.md +0 -30
  1162. package/concepts/pl/Tool-WebFetch.md +0 -55
  1163. package/concepts/pl/Tool-WebSearch.md +0 -58
  1164. package/concepts/pl/Tool-Write.md +0 -39
  1165. package/concepts/pl/Tool-executeCode.md +0 -41
  1166. package/concepts/pl/Tool-getDiagnostics.md +0 -32
  1167. package/concepts/pl/Tools.md +0 -67
  1168. package/concepts/pt-BR/CacheRebuild.md +0 -36
  1169. package/concepts/pt-BR/KVCacheContent.md +0 -49
  1170. package/concepts/pt-BR/Tool-Agent.md +0 -125
  1171. package/concepts/pt-BR/Tool-AskUserQuestion.md +0 -75
  1172. package/concepts/pt-BR/Tool-Bash.md +0 -167
  1173. package/concepts/pt-BR/Tool-Edit.md +0 -46
  1174. package/concepts/pt-BR/Tool-EnterPlanMode.md +0 -128
  1175. package/concepts/pt-BR/Tool-EnterWorktree.md +0 -56
  1176. package/concepts/pt-BR/Tool-ExitPlanMode.md +0 -62
  1177. package/concepts/pt-BR/Tool-Glob.md +0 -39
  1178. package/concepts/pt-BR/Tool-Grep.md +0 -57
  1179. package/concepts/pt-BR/Tool-NotebookEdit.md +0 -33
  1180. package/concepts/pt-BR/Tool-Read.md +0 -56
  1181. package/concepts/pt-BR/Tool-SendMessage.md +0 -41
  1182. package/concepts/pt-BR/Tool-Skill.md +0 -56
  1183. package/concepts/pt-BR/Tool-Task.md +0 -51
  1184. package/concepts/pt-BR/Tool-TaskCreate.md +0 -78
  1185. package/concepts/pt-BR/Tool-TaskGet.md +0 -56
  1186. package/concepts/pt-BR/Tool-TaskList.md +0 -56
  1187. package/concepts/pt-BR/Tool-TaskOutput.md +0 -40
  1188. package/concepts/pt-BR/Tool-TaskStop.md +0 -32
  1189. package/concepts/pt-BR/Tool-TaskUpdate.md +0 -123
  1190. package/concepts/pt-BR/Tool-TeamCreate.md +0 -38
  1191. package/concepts/pt-BR/Tool-TeamDelete.md +0 -30
  1192. package/concepts/pt-BR/Tool-WebFetch.md +0 -55
  1193. package/concepts/pt-BR/Tool-WebSearch.md +0 -58
  1194. package/concepts/pt-BR/Tool-Write.md +0 -39
  1195. package/concepts/pt-BR/Tool-executeCode.md +0 -41
  1196. package/concepts/pt-BR/Tool-getDiagnostics.md +0 -32
  1197. package/concepts/pt-BR/Tools.md +0 -67
  1198. package/concepts/ru/CacheRebuild.md +0 -36
  1199. package/concepts/ru/KVCacheContent.md +0 -49
  1200. package/concepts/ru/Tool-Agent.md +0 -125
  1201. package/concepts/ru/Tool-AskUserQuestion.md +0 -75
  1202. package/concepts/ru/Tool-Bash.md +0 -167
  1203. package/concepts/ru/Tool-Edit.md +0 -46
  1204. package/concepts/ru/Tool-EnterPlanMode.md +0 -128
  1205. package/concepts/ru/Tool-EnterWorktree.md +0 -56
  1206. package/concepts/ru/Tool-ExitPlanMode.md +0 -62
  1207. package/concepts/ru/Tool-Glob.md +0 -39
  1208. package/concepts/ru/Tool-Grep.md +0 -57
  1209. package/concepts/ru/Tool-NotebookEdit.md +0 -33
  1210. package/concepts/ru/Tool-Read.md +0 -56
  1211. package/concepts/ru/Tool-SendMessage.md +0 -41
  1212. package/concepts/ru/Tool-Skill.md +0 -56
  1213. package/concepts/ru/Tool-Task.md +0 -51
  1214. package/concepts/ru/Tool-TaskCreate.md +0 -78
  1215. package/concepts/ru/Tool-TaskGet.md +0 -56
  1216. package/concepts/ru/Tool-TaskList.md +0 -56
  1217. package/concepts/ru/Tool-TaskOutput.md +0 -40
  1218. package/concepts/ru/Tool-TaskStop.md +0 -32
  1219. package/concepts/ru/Tool-TaskUpdate.md +0 -123
  1220. package/concepts/ru/Tool-TeamCreate.md +0 -38
  1221. package/concepts/ru/Tool-TeamDelete.md +0 -30
  1222. package/concepts/ru/Tool-WebFetch.md +0 -55
  1223. package/concepts/ru/Tool-WebSearch.md +0 -58
  1224. package/concepts/ru/Tool-Write.md +0 -39
  1225. package/concepts/ru/Tool-executeCode.md +0 -41
  1226. package/concepts/ru/Tool-getDiagnostics.md +0 -32
  1227. package/concepts/ru/Tools.md +0 -67
  1228. package/concepts/th/CacheRebuild.md +0 -36
  1229. package/concepts/th/KVCacheContent.md +0 -49
  1230. package/concepts/th/Tool-Agent.md +0 -125
  1231. package/concepts/th/Tool-AskUserQuestion.md +0 -75
  1232. package/concepts/th/Tool-Bash.md +0 -167
  1233. package/concepts/th/Tool-Edit.md +0 -46
  1234. package/concepts/th/Tool-EnterPlanMode.md +0 -128
  1235. package/concepts/th/Tool-EnterWorktree.md +0 -56
  1236. package/concepts/th/Tool-ExitPlanMode.md +0 -62
  1237. package/concepts/th/Tool-Glob.md +0 -39
  1238. package/concepts/th/Tool-Grep.md +0 -57
  1239. package/concepts/th/Tool-NotebookEdit.md +0 -33
  1240. package/concepts/th/Tool-Read.md +0 -56
  1241. package/concepts/th/Tool-SendMessage.md +0 -41
  1242. package/concepts/th/Tool-Skill.md +0 -56
  1243. package/concepts/th/Tool-Task.md +0 -51
  1244. package/concepts/th/Tool-TaskCreate.md +0 -78
  1245. package/concepts/th/Tool-TaskGet.md +0 -56
  1246. package/concepts/th/Tool-TaskList.md +0 -56
  1247. package/concepts/th/Tool-TaskOutput.md +0 -40
  1248. package/concepts/th/Tool-TaskStop.md +0 -32
  1249. package/concepts/th/Tool-TaskUpdate.md +0 -123
  1250. package/concepts/th/Tool-TeamCreate.md +0 -38
  1251. package/concepts/th/Tool-TeamDelete.md +0 -30
  1252. package/concepts/th/Tool-WebFetch.md +0 -55
  1253. package/concepts/th/Tool-WebSearch.md +0 -58
  1254. package/concepts/th/Tool-Write.md +0 -39
  1255. package/concepts/th/Tool-executeCode.md +0 -41
  1256. package/concepts/th/Tool-getDiagnostics.md +0 -32
  1257. package/concepts/th/Tools.md +0 -67
  1258. package/concepts/tr/CacheRebuild.md +0 -36
  1259. package/concepts/tr/KVCacheContent.md +0 -49
  1260. package/concepts/tr/Tool-Agent.md +0 -125
  1261. package/concepts/tr/Tool-AskUserQuestion.md +0 -75
  1262. package/concepts/tr/Tool-Bash.md +0 -167
  1263. package/concepts/tr/Tool-Edit.md +0 -46
  1264. package/concepts/tr/Tool-EnterPlanMode.md +0 -128
  1265. package/concepts/tr/Tool-EnterWorktree.md +0 -56
  1266. package/concepts/tr/Tool-ExitPlanMode.md +0 -62
  1267. package/concepts/tr/Tool-Glob.md +0 -39
  1268. package/concepts/tr/Tool-Grep.md +0 -57
  1269. package/concepts/tr/Tool-NotebookEdit.md +0 -33
  1270. package/concepts/tr/Tool-Read.md +0 -56
  1271. package/concepts/tr/Tool-SendMessage.md +0 -41
  1272. package/concepts/tr/Tool-Skill.md +0 -56
  1273. package/concepts/tr/Tool-Task.md +0 -51
  1274. package/concepts/tr/Tool-TaskCreate.md +0 -78
  1275. package/concepts/tr/Tool-TaskGet.md +0 -56
  1276. package/concepts/tr/Tool-TaskList.md +0 -56
  1277. package/concepts/tr/Tool-TaskOutput.md +0 -40
  1278. package/concepts/tr/Tool-TaskStop.md +0 -32
  1279. package/concepts/tr/Tool-TaskUpdate.md +0 -123
  1280. package/concepts/tr/Tool-TeamCreate.md +0 -38
  1281. package/concepts/tr/Tool-TeamDelete.md +0 -30
  1282. package/concepts/tr/Tool-WebFetch.md +0 -55
  1283. package/concepts/tr/Tool-WebSearch.md +0 -58
  1284. package/concepts/tr/Tool-Write.md +0 -39
  1285. package/concepts/tr/Tool-executeCode.md +0 -41
  1286. package/concepts/tr/Tool-getDiagnostics.md +0 -32
  1287. package/concepts/tr/Tools.md +0 -67
  1288. package/concepts/uk/CacheRebuild.md +0 -36
  1289. package/concepts/uk/KVCacheContent.md +0 -49
  1290. package/concepts/uk/Tool-Agent.md +0 -125
  1291. package/concepts/uk/Tool-AskUserQuestion.md +0 -75
  1292. package/concepts/uk/Tool-Bash.md +0 -167
  1293. package/concepts/uk/Tool-Edit.md +0 -46
  1294. package/concepts/uk/Tool-EnterPlanMode.md +0 -128
  1295. package/concepts/uk/Tool-EnterWorktree.md +0 -56
  1296. package/concepts/uk/Tool-ExitPlanMode.md +0 -62
  1297. package/concepts/uk/Tool-Glob.md +0 -39
  1298. package/concepts/uk/Tool-Grep.md +0 -57
  1299. package/concepts/uk/Tool-NotebookEdit.md +0 -33
  1300. package/concepts/uk/Tool-Read.md +0 -56
  1301. package/concepts/uk/Tool-SendMessage.md +0 -41
  1302. package/concepts/uk/Tool-Skill.md +0 -56
  1303. package/concepts/uk/Tool-Task.md +0 -51
  1304. package/concepts/uk/Tool-TaskCreate.md +0 -78
  1305. package/concepts/uk/Tool-TaskGet.md +0 -56
  1306. package/concepts/uk/Tool-TaskList.md +0 -56
  1307. package/concepts/uk/Tool-TaskOutput.md +0 -40
  1308. package/concepts/uk/Tool-TaskStop.md +0 -32
  1309. package/concepts/uk/Tool-TaskUpdate.md +0 -123
  1310. package/concepts/uk/Tool-TeamCreate.md +0 -38
  1311. package/concepts/uk/Tool-TeamDelete.md +0 -30
  1312. package/concepts/uk/Tool-WebFetch.md +0 -55
  1313. package/concepts/uk/Tool-WebSearch.md +0 -58
  1314. package/concepts/uk/Tool-Write.md +0 -39
  1315. package/concepts/uk/Tool-executeCode.md +0 -41
  1316. package/concepts/uk/Tool-getDiagnostics.md +0 -32
  1317. package/concepts/uk/Tools.md +0 -67
  1318. package/concepts/zh/CacheRebuild.md +0 -36
  1319. package/concepts/zh/KVCacheContent.md +0 -49
  1320. package/concepts/zh/Tool-Agent.md +0 -125
  1321. package/concepts/zh/Tool-AskUserQuestion.md +0 -75
  1322. package/concepts/zh/Tool-Bash.md +0 -167
  1323. package/concepts/zh/Tool-Edit.md +0 -46
  1324. package/concepts/zh/Tool-EnterPlanMode.md +0 -128
  1325. package/concepts/zh/Tool-EnterWorktree.md +0 -56
  1326. package/concepts/zh/Tool-ExitPlanMode.md +0 -62
  1327. package/concepts/zh/Tool-Glob.md +0 -39
  1328. package/concepts/zh/Tool-Grep.md +0 -57
  1329. package/concepts/zh/Tool-NotebookEdit.md +0 -33
  1330. package/concepts/zh/Tool-Read.md +0 -56
  1331. package/concepts/zh/Tool-SendMessage.md +0 -41
  1332. package/concepts/zh/Tool-Skill.md +0 -56
  1333. package/concepts/zh/Tool-Task.md +0 -51
  1334. package/concepts/zh/Tool-TaskCreate.md +0 -78
  1335. package/concepts/zh/Tool-TaskGet.md +0 -56
  1336. package/concepts/zh/Tool-TaskList.md +0 -56
  1337. package/concepts/zh/Tool-TaskOutput.md +0 -40
  1338. package/concepts/zh/Tool-TaskStop.md +0 -32
  1339. package/concepts/zh/Tool-TaskUpdate.md +0 -123
  1340. package/concepts/zh/Tool-TeamCreate.md +0 -38
  1341. package/concepts/zh/Tool-TeamDelete.md +0 -30
  1342. package/concepts/zh/Tool-WebFetch.md +0 -55
  1343. package/concepts/zh/Tool-WebSearch.md +0 -58
  1344. package/concepts/zh/Tool-Write.md +0 -39
  1345. package/concepts/zh/Tool-executeCode.md +0 -41
  1346. package/concepts/zh/Tool-getDiagnostics.md +0 -32
  1347. package/concepts/zh-TW/CacheRebuild.md +0 -36
  1348. package/concepts/zh-TW/KVCacheContent.md +0 -49
  1349. package/concepts/zh-TW/Tool-Agent.md +0 -125
  1350. package/concepts/zh-TW/Tool-AskUserQuestion.md +0 -75
  1351. package/concepts/zh-TW/Tool-Bash.md +0 -167
  1352. package/concepts/zh-TW/Tool-Edit.md +0 -46
  1353. package/concepts/zh-TW/Tool-EnterPlanMode.md +0 -128
  1354. package/concepts/zh-TW/Tool-EnterWorktree.md +0 -56
  1355. package/concepts/zh-TW/Tool-ExitPlanMode.md +0 -62
  1356. package/concepts/zh-TW/Tool-Glob.md +0 -39
  1357. package/concepts/zh-TW/Tool-Grep.md +0 -57
  1358. package/concepts/zh-TW/Tool-NotebookEdit.md +0 -33
  1359. package/concepts/zh-TW/Tool-Read.md +0 -56
  1360. package/concepts/zh-TW/Tool-SendMessage.md +0 -41
  1361. package/concepts/zh-TW/Tool-Skill.md +0 -56
  1362. package/concepts/zh-TW/Tool-Task.md +0 -51
  1363. package/concepts/zh-TW/Tool-TaskCreate.md +0 -78
  1364. package/concepts/zh-TW/Tool-TaskGet.md +0 -56
  1365. package/concepts/zh-TW/Tool-TaskList.md +0 -56
  1366. package/concepts/zh-TW/Tool-TaskOutput.md +0 -40
  1367. package/concepts/zh-TW/Tool-TaskStop.md +0 -32
  1368. package/concepts/zh-TW/Tool-TaskUpdate.md +0 -123
  1369. package/concepts/zh-TW/Tool-TeamCreate.md +0 -38
  1370. package/concepts/zh-TW/Tool-TeamDelete.md +0 -30
  1371. package/concepts/zh-TW/Tool-WebFetch.md +0 -55
  1372. package/concepts/zh-TW/Tool-WebSearch.md +0 -58
  1373. package/concepts/zh-TW/Tool-Write.md +0 -39
  1374. package/concepts/zh-TW/Tool-executeCode.md +0 -41
  1375. package/concepts/zh-TW/Tool-getDiagnostics.md +0 -32
  1376. package/concepts/zh-TW/Tools.md +0 -67
  1377. package/dist/assets/App-CF-qZ3B6.js +0 -41
  1378. package/dist/assets/App-fG2r3jFq.css +0 -1
  1379. package/dist/assets/AppHeader-BqUGBbBx.css +0 -41
  1380. package/dist/assets/AppHeader.module-BjoBBbCB.js +0 -1250
  1381. package/dist/assets/Mobile-BnDkLcBv.css +0 -1
  1382. package/dist/assets/Mobile-ByhBkyqb.js +0 -10
  1383. package/dist/assets/_baseUniq-5XIuSb_1.js +0 -1
  1384. package/dist/assets/arc-V3mJhKFJ.js +0 -1
  1385. package/dist/assets/architectureDiagram-Q4EWVU46-22bjxOE1.js +0 -36
  1386. package/dist/assets/blockDiagram-DXYQGD6D-Brshek1N.js +0 -132
  1387. package/dist/assets/c4Diagram-AHTNJAMY-DQHIuxkd.js +0 -10
  1388. package/dist/assets/channel-SmGaOM6g.js +0 -1
  1389. package/dist/assets/chunk-4BX2VUAB-BQE7pifU.js +0 -1
  1390. package/dist/assets/chunk-4TB4RGXK-DcZwv_PV.js +0 -206
  1391. package/dist/assets/chunk-55IACEB6-Gd_3-vV5.js +0 -1
  1392. package/dist/assets/chunk-EDXVE4YY-BbnYdg9M.js +0 -1
  1393. package/dist/assets/chunk-FMBD7UC4-NSh7z90L.js +0 -15
  1394. package/dist/assets/chunk-OYMX7WX6-DdFwjHsc.js +0 -231
  1395. package/dist/assets/chunk-QZHKN3VN-C-1z3DA3.js +0 -1
  1396. package/dist/assets/chunk-YZCP3GAM-w_NiY6dL.js +0 -1
  1397. package/dist/assets/classDiagram-6PBFFD2Q-Bu96zciS.js +0 -1
  1398. package/dist/assets/classDiagram-v2-HSJHXN6E-Bu96zciS.js +0 -1
  1399. package/dist/assets/clone-u2hQVO7u.js +0 -1
  1400. package/dist/assets/cose-bilkent-S5V4N54A-bHlM-ydV.js +0 -1
  1401. package/dist/assets/cytoscape.esm-DxGcaOPV.js +0 -331
  1402. package/dist/assets/dagre-KV5264BT-2cCXOuNw.js +0 -4
  1403. package/dist/assets/defaultLocale-DX6XiGOO.js +0 -1
  1404. package/dist/assets/diagram-5BDNPKRD-C70P_Nd1.js +0 -10
  1405. package/dist/assets/diagram-G4DWMVQ6-C2JvwT8U.js +0 -24
  1406. package/dist/assets/diagram-MMDJMWI5-C9ygMSLV.js +0 -43
  1407. package/dist/assets/diagram-TYMM5635-x-SMPmqb.js +0 -24
  1408. package/dist/assets/erDiagram-SMLLAGMA-BGIbL82W.js +0 -85
  1409. package/dist/assets/flowDiagram-DWJPFMVM-Dg0qwguE.js +0 -162
  1410. package/dist/assets/ganttDiagram-T4ZO3ILL-XX5qCwKD.js +0 -292
  1411. package/dist/assets/gitGraphDiagram-UUTBAWPF-DFil4bpA.js +0 -106
  1412. package/dist/assets/graph-DJ6egHOd.js +0 -1
  1413. package/dist/assets/html2canvas.esm-QH1iLAAe.js +0 -22
  1414. package/dist/assets/index-DCtZ2KSX.css +0 -1
  1415. package/dist/assets/index-DYIYWRaO.js +0 -41
  1416. package/dist/assets/infoDiagram-42DDH7IO-yB7VRrpO.js +0 -2
  1417. package/dist/assets/init-Gi6I4Gst.js +0 -1
  1418. package/dist/assets/ishikawaDiagram-UXIWVN3A-DZ_lPco0.js +0 -70
  1419. package/dist/assets/journeyDiagram-VCZTEJTY-B-FlPR2W.js +0 -139
  1420. package/dist/assets/kanban-definition-6JOO6SKY-mgJwVxKf.js +0 -89
  1421. package/dist/assets/katex-DkKDou_j.js +0 -257
  1422. package/dist/assets/layout-BjzpJ8ZU.js +0 -1
  1423. package/dist/assets/linear-CqOq1rA7.js +0 -1
  1424. package/dist/assets/mermaid.core-CZyQhtml.js +0 -308
  1425. package/dist/assets/min-B_tad8Qz.js +0 -1
  1426. package/dist/assets/mindmap-definition-QFDTVHPH-CgBeHk8K.js +0 -96
  1427. package/dist/assets/ordinal-Cboi1Yqb.js +0 -1
  1428. package/dist/assets/pieDiagram-DEJITSTG-CHENa0KJ.js +0 -30
  1429. package/dist/assets/quadrantDiagram-34T5L4WZ-BUwZwCpc.js +0 -7
  1430. package/dist/assets/requirementDiagram-MS252O5E-H7OaNjNn.js +0 -84
  1431. package/dist/assets/sankeyDiagram-XADWPNL6-6UqaFrBf.js +0 -10
  1432. package/dist/assets/sequenceDiagram-FGHM5R23-DBgpLSsr.js +0 -157
  1433. package/dist/assets/stateDiagram-FHFEXIEX-D_6TWlLl.js +0 -1
  1434. package/dist/assets/stateDiagram-v2-QKLJ7IA2-Cg06jbzN.js +0 -1
  1435. package/dist/assets/timeline-definition-GMOUNBTQ-9_saaHvl.js +0 -120
  1436. package/dist/assets/vennDiagram-DHZGUBPP-DMUS1fiT.js +0 -34
  1437. package/dist/assets/wardley-RL74JXVD-Y-_Nnpu2.js +0 -162
  1438. package/dist/assets/wardleyDiagram-NUSXRM2D-DIh62HY7.js +0 -20
  1439. package/dist/assets/xychartDiagram-5P7HB3ND-B_CLrnpt.js +0 -7
  1440. package/lib/kv-cache-analyzer.js +0 -164
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./jszip.min-BxIXdRg4.js","./vendor-antd-Bzi1WuBb.js"])))=>i.map(i=>d[i]);
2
+ var __defProp=Object.defineProperty,__publicField=(obj,key,value)=>((obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value:value}):obj[key]=value)(obj,"symbol"!=typeof key?key+"":key,value);import{j as jsxRuntimeExports}from"./vendor-codemirror-CKTrJd47.js";import{a as reactExports,I as Icon,b as _extends,v as Tag,P as Popover,w as Input,y as Segmented,h as Button,s as staticMethods,M as Modal,k as Spin,S as Switch,T as Tooltip,z as RefIcon$7,A as Popconfirm,D as RefIcon$8,E as RefIcon$b,F as RefIcon$c,l as RefIcon$d,G as Dropdown,H as RefIcon$e,m as Select,j as RefIcon$g,J as Drawer,K as Empty,R as React__default,L as RefIcon$j,N as RefIcon$k,O as Collapse,c as reactDomExports,Q as Space,U as RefIcon$l,o as RefIcon$m,V as Tabs,n as Radio,W as List,X as Typography,C as ConfigProvider,Y as Layout,Z as Alert,$ as Checkbox,i as RefIcon$o}from"./vendor-antd-Bzi1WuBb.js";import{L as CachePopoverContent,a3 as ConfirmRemoveButton,a4 as renderMarkdown,a1 as useProjectAlias,a5 as normalizeAlias,a6 as _internals,a7 as setProjectAlias,a8 as clearProjectAlias,S as SkillsManagerModal,a9 as skillKey,W as RefIcon$9,aa as RefIcon$a,ab as RefIcon$f,ac as BLUR_MASK_STYLE,ad as IM_PLATFORMS,ae as reconstructEntries,af as shouldExcludeFromConversation,ag as normalizeConversationEntry,x as isMainAgent,ah as mergeMainAgentSessions,ai as cachedBuildToolResultMap,w as classifyUserContent,aj as ChatMessage,t as extractDisplayText,ak as isSystemText,al as RefIcon$h,am as RefIcon$i,an as profileDisplayModel,m as loadFsSkills,q as loadProjectMemory,r as loadCodexMdList,v as parseImOrigin,d as computeTokenStats,e as computeToolUsageStats,g as computeSkillUsageStats,j as sharedChrome,k as formatTokenCount,T as ToolsHelp,C as ConceptHelp,ao as resolveTeammateNames,h as classifyRequest,B as sumUsageContextTokens,D as computeContextPercent,O as OPTIMISTIC_CLEAR_PERCENT,M as MemoryDetailModal,X as approvalReviewerSelectOptions,Y as autoApproveSelectOptions,a2 as PLAN_AUTO_APPROVE_OPTIONS,Z as VoicePackSettings,ap as DISPLAY_SCALE_PRESETS,N as PluginModal,Q as ProcessModal,U as ProxyModal,P as ProjectPrefsManagerModal,n as sortSkillsDefault,o as handleSkillToggle,p as handleSkillDelete,a0 as contextSeverityColor,aq as getModelShort,ar as getInputCacheUsage,as as formatRequestTag,at as stripPrivateKeys,au as getResponseTools,av as getResponseInstructions,aw as isResponseConfigInputItem,ax as restoreSlimmedEntry,ay as isCodexMdReminder,az as isSkillsReminder,aA as hasCodexMdReminder,aB as hasSkillsReminder,A as AppBase,aC as visibleRequests,aD as findPrevMainAgentTimestamp,E as TerminalWsProvider,G as ApprovalModal,y as styles$g,R as RefIcon$n,J as ChatView,V as OpenFolderIcon}from"./seqResourceLoaders-Bkh2Rb9i.js";import{t,a as apiUrl,S as SettingsContext,h as hasNativeZoom,d as isMac,L as LANG_OPTIONS,c as setLang,g as getLang,s as setViewMode,e as isMobile,f as isElectron}from"./index-oxOyrL07.js";import{Q as QRCodeCanvas}from"./vendor-qrcode-Bnjm0rcu.js";import{_ as __vitePreload}from"./vendor-mdxeditor-4PbKH6K7.js";import"./vendor-xterm-DckPrCx1.js";import"./vendor-markdown-BN3QLsBu.js";import"./vendor-highlight-IFTJ9nxW.js";import"./vendor-virtuoso-2P4SowHC.js";var BarChartOutlined$1={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z"}}]},name:"bar-chart",theme:"outlined"},BarChartOutlined=function(props,ref){return reactExports.createElement(Icon,_extends({},props,{ref:ref,icon:BarChartOutlined$1}))},RefIcon$6=reactExports.forwardRef(BarChartOutlined),CodeOutlined$1={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"},CodeOutlined=function(props,ref){return reactExports.createElement(Icon,_extends({},props,{ref:ref,icon:CodeOutlined$1}))},RefIcon$5=reactExports.forwardRef(CodeOutlined),ExportOutlined$1={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32zM770.87 199.13l-52.2-52.2a8.01 8.01 0 014.7-13.6l179.4-21c5.1-.6 9.5 3.7 8.9 8.9l-21 179.4c-.8 6.6-8.9 9.4-13.6 4.7l-52.4-52.4-256.2 256.2a8.03 8.03 0 01-11.3 0l-42.4-42.4a8.03 8.03 0 010-11.3l256.1-256.3z"}}]},name:"export",theme:"outlined"},ExportOutlined=function(props,ref){return reactExports.createElement(Icon,_extends({},props,{ref:ref,icon:ExportOutlined$1}))},RefIcon$4=reactExports.forwardRef(ExportOutlined),ImportOutlined$1={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32zM653.3 424.6l52.2 52.2a8.01 8.01 0 01-4.7 13.6l-179.4 21c-5.1.6-9.5-3.7-8.9-8.9l21-179.4c.8-6.6 8.9-9.4 13.6-4.7l52.4 52.4 256.2-256.2c3.1-3.1 8.2-3.1 11.3 0l42.4 42.4c3.1 3.1 3.1 8.2 0 11.3L653.3 424.6z"}}]},name:"import",theme:"outlined"},ImportOutlined=function(props,ref){return reactExports.createElement(Icon,_extends({},props,{ref:ref,icon:ImportOutlined$1}))},RefIcon$3=reactExports.forwardRef(ImportOutlined),MessageOutlined$1={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"}}]},name:"message",theme:"outlined"},MessageOutlined=function(props,ref){return reactExports.createElement(Icon,_extends({},props,{ref:ref,icon:MessageOutlined$1}))},RefIcon$2=reactExports.forwardRef(MessageOutlined),PushpinFilled$1={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 00-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z"}}]},name:"pushpin",theme:"filled"},PushpinFilled=function(props,ref){return reactExports.createElement(Icon,_extends({},props,{ref:ref,icon:PushpinFilled$1}))},RefIcon$1=reactExports.forwardRef(PushpinFilled),PushpinOutlined$1={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 00-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 00-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 01-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z"}}]},name:"pushpin",theme:"outlined"},PushpinOutlined=function(props,ref){return reactExports.createElement(Icon,_extends({},props,{ref:ref,icon:PushpinOutlined$1}))},RefIcon=reactExports.forwardRef(PushpinOutlined);function parsePinned(raw){if("string"!=typeof raw||""===raw)return[];let arr;try{arr=JSON.parse(raw)}catch{return[]}if(!Array.isArray(arr))return[];const seen=new Set,out=[];for(const item2 of arr)"string"==typeof item2&&""!==item2&&(seen.has(item2)||(seen.add(item2),out.push(item2)));return out}function togglePinned(arr,key){const list=function(arr){if(!Array.isArray(arr))return[];const seen=new Set,out=[];for(const item2 of arr)"string"==typeof item2&&""!==item2&&(seen.has(item2)||(seen.add(item2),out.push(item2)));return out}(arr);return"string"!=typeof key||""===key?list:list.includes(key)?list.filter(k=>k!==key):[...list,key]}const styles$f_liveTag="_liveTag_8g4c3_3",styles$f_liveTagFill="_liveTagFill_8g4c3_23",styles$f_liveTagContent="_liveTagContent_8g4c3_44",styles$f_liveTagHistory="_liveTagHistory_8g4c3_52",styles$f_liveTagText="_liveTagText_8g4c3_59",styles$f_cachePopoverPlaceholder="_cachePopoverPlaceholder_8g4c3_65",POPOVER_OVERLAY_STYLE$1={background:"var(--bg-elevated)",border:"1px solid var(--border-hover)",borderRadius:8,padding:"8px 8px"};const LiveTagPopover$1=reactExports.memo(function({isLocalLog:isLocalLog,localLogFile:localLogFile,cachePopoverOpen:cachePopoverOpen,onOpenChange:onOpenChange,requests:requests,contextPercent:contextPercent,contextTokens:contextTokens,ctxColor:ctxColor,onSkillImported:onSkillImported,fsSkills:fsSkills,memory:memory,memoryRefreshing:memoryRefreshing,codexMd:codexMd,onOpenMemoryDetail:onOpenMemoryDetail,onOpenCodexMd:onOpenCodexMd,onOpenSkillsModal:onOpenSkillsModal,onRefreshMemory:onRefreshMemory,onToolsCatalogOpenChange:onToolsCatalogOpenChange,projectName:projectName}){const triggerStyle=reactExports.useMemo(()=>({"--ctx-color":ctxColor,"--ctx-percent":`${contextPercent}%`}),[ctxColor,contextPercent]);return isLocalLog?jsxRuntimeExports.jsx(Tag,{className:`${styles$f_liveTag} ${styles$f_liveTagHistory}`,children:jsxRuntimeExports.jsx("span",{className:styles$f_liveTagText,children:t("ui.historyLog",{file:localLogFile})})}):jsxRuntimeExports.jsx(Popover,{content:cachePopoverOpen?jsxRuntimeExports.jsx(CachePopoverContent,{requests:requests,contextPercent:contextPercent,contextTokens:contextTokens,fsSkills:fsSkills,memory:memory,memoryRefreshing:memoryRefreshing,codexMd:codexMd,onOpenMemoryDetail:onOpenMemoryDetail,onOpenCodexMd:onOpenCodexMd,onOpenSkillsModal:onOpenSkillsModal,onSkillImported:onSkillImported,onRefreshMemory:onRefreshMemory,onToolsCatalogOpenChange:onToolsCatalogOpenChange}):jsxRuntimeExports.jsx("div",{className:styles$f_cachePopoverPlaceholder}),trigger:"hover",placement:"topRight",overlayInnerStyle:POPOVER_OVERLAY_STYLE$1,open:cachePopoverOpen,onOpenChange:onOpenChange,children:jsxRuntimeExports.jsxs("span",{className:styles$f_liveTag,style:triggerStyle,children:[jsxRuntimeExports.jsx("span",{className:styles$f_liveTagFill}),jsxRuntimeExports.jsx("span",{className:styles$f_liveTagContent,children:jsxRuntimeExports.jsx("span",{className:styles$f_liveTagText,children:contextTokens>0?`${(contextTokens/1e3).toFixed(1)}K (${contextPercent}%)`:`${contextPercent}%`})})]})})}),styles$e_modeRow="_modeRow_17j16_1",styles$e_modeLeft="_modeLeft_17j16_9",styles$e_modeRight="_modeRight_17j16_15",styles$e_overrideWarn="_overrideWarn_17j16_22",styles$e_previewLabel="_previewLabel_17j16_27",styles$e_previewBox="_previewBox_17j16_36",styles$e_previewEmpty="_previewEmpty_17j16_46",styles$e_hint="_hint_17j16_51",styles$e_dirLine="_dirLine_17j16_58",styles$e_warn="_warn_17j16_62",styles$e_tabRow="_tabRow_17j16_71",styles$e_tabBtn="_tabBtn_17j16_90",styles$e_tabActive="_tabActive_17j16_118",styles$e_tabWrap="_tabWrap_17j16_132",styles$e_editorBox="_editorBox_17j16_33",styles$e_tabTitle="_tabTitle_17j16_197",styles$e_tabDelete="_tabDelete_17j16_205",styles$e_addBtn="_addBtn_17j16_238",styles$e_scopeBadge="_scopeBadge_17j16_271",styles$e_dirtyDot="_dirtyDot_17j16_281",styles$e_titleRow="_titleRow_17j16_290",styles$e_helpBtn="_helpBtn_17j16_299",styles$e_addPopover="_addPopover_17j16_322",styles$e_addError="_addError_17j16_328";function ModelPromptTabs({entries:entries,activeKey:activeKey,dirtyKeys:dirtyKeys,workspaceEnabled:workspaceEnabled,disabled:disabled,onSelect:onSelect,onAdd:onAdd,onDelete:onDelete}){const[addOpen,setAddOpen]=reactExports.useState(!1),[addName,setAddName]=reactExports.useState(""),[addScope,setAddScope]=reactExports.useState("global"),[addError2,setAddError]=reactExports.useState(null),resetAdd=()=>{setAddName(""),setAddError(null)},handleAdd=()=>{const err=onAdd(addName.trim(),addScope);err?setAddError(err):(resetAdd(),setAddOpen(!1))},addContent=jsxRuntimeExports.jsxs("div",{className:styles$e_addPopover,children:[jsxRuntimeExports.jsx(Input,{size:"small",autoFocus:!0,value:addName,onChange:e=>{setAddName(e.target.value),setAddError(null)},onPressEnter:handleAdd,placeholder:t("ui.expert.systemText.addModelName")}),jsxRuntimeExports.jsx(Segmented,{size:"small",value:addScope,onChange:setAddScope,options:[{label:t("ui.expert.systemText.scopeGlobal"),value:"global"},{label:t("ui.expert.systemText.scopeWorkspace"),value:"workspace",disabled:!workspaceEnabled}]}),addError2&&jsxRuntimeExports.jsx("div",{className:styles$e_addError,children:addError2}),jsxRuntimeExports.jsx(Button,{size:"small",type:"primary",onClick:handleAdd,disabled:!addName.trim(),children:t("ui.expert.systemText.addModelConfirm")})]});return jsxRuntimeExports.jsxs("div",{className:styles$e_tabRow,children:[jsxRuntimeExports.jsxs("button",{type:"button",className:`${styles$e_tabBtn} ${"default"===activeKey?styles$e_tabActive:""}`,onClick:()=>onSelect("default"),children:[t("ui.expert.systemText.tabDefault"),dirtyKeys.includes("default")&&jsxRuntimeExports.jsx("span",{className:styles$e_dirtyDot})]}),entries.map(e=>{const key=(e=>`${e.scope}:${e.name}`)(e);return jsxRuntimeExports.jsxs("span",{className:styles$e_tabWrap,children:[jsxRuntimeExports.jsxs("button",{type:"button",className:`${styles$e_tabBtn} ${activeKey===key?styles$e_tabActive:""}`,onClick:()=>onSelect(key),title:e.name,children:[jsxRuntimeExports.jsx("span",{className:styles$e_tabTitle,children:e.name}),jsxRuntimeExports.jsx("span",{className:styles$e_scopeBadge,children:t("global"===e.scope?"ui.expert.systemText.scopeGlobal":"ui.expert.systemText.scopeWorkspace")}),dirtyKeys.includes(key)&&jsxRuntimeExports.jsx("span",{className:styles$e_dirtyDot})]}),jsxRuntimeExports.jsx(ConfirmRemoveButton,{tag:"span",className:styles$e_tabDelete,title:t("ui.expert.systemText.deleteTab",{name:e.name}),ariaLabel:t("ui.expert.systemText.deleteTab",{name:e.name}),onConfirm:()=>onDelete(e.name,e.scope),disabled:disabled,children:"×"})]},key)}),jsxRuntimeExports.jsx(Popover,{open:addOpen,onOpenChange:open=>{setAddOpen(open),open||resetAdd()},content:addContent,trigger:"click",placement:"bottom",children:jsxRuntimeExports.jsxs("button",{type:"button",className:styles$e_addBtn,disabled:disabled,children:["+ ",t("ui.expert.systemText.addModel")]})})]})}const MODEL_NAME_RE=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,EMPTY_DRAFT={text:"",mode:"append"},tabKeyOf=(scope,name)=>`${scope}:${name}`;function SystemTextModal({open:open,onClose:onClose}){const[loading,setLoading]=reactExports.useState(!1),[saving,setSaving]=reactExports.useState(!1),[preview,setPreview]=reactExports.useState(!1),[dir,setDir]=reactExports.useState(null),[active,setActive]=reactExports.useState(!0),[globalDir,setGlobalDir]=reactExports.useState(null),[entries,setEntries]=reactExports.useState([]),[snapshots,setSnapshots]=reactExports.useState({}),[drafts,setDrafts]=reactExports.useState({}),[persisted,setPersisted]=reactExports.useState({}),[activeKey,setActiveKey]=reactExports.useState("default"),textareaRef=reactExports.useRef(null);reactExports.useEffect(()=>{if(!open)return;let cancelled=!1;return setPreview(!1),setActiveKey("default"),setLoading(!0),Promise.allSettled([fetch(apiUrl("/api/expert/system-text")).then(r=>r.json()),fetch(apiUrl("/api/expert/model-prompts")).then(r=>r.json())]).then(([sysR,mpR])=>{if(cancelled)return;const snaps={},pers={},list=[];if("fulfilled"===sysR.status&&sysR.value&&!sysR.value.error){const d=sysR.value;snaps.default={text:d.text||"",mode:"override"===d.mode?"override":"append"},setDir(d.dir||null),setActive(!!d.active),pers.default=!0}else snaps.default={...EMPTY_DRAFT},setDir(null),setActive(!1),staticMethods.error(t("ui.expert.systemText.loadError"));if("fulfilled"===mpR.status&&mpR.value&&!mpR.value.error){const d=mpR.value;setGlobalDir(d.globalDir||null);for(const scope of["global","workspace"])for(const e of d[scope]||[]){const key=tabKeyOf(scope,e.name);list.push({name:e.name,scope:scope}),snaps[key]={text:e.text||"",mode:"override"===e.mode?"override":"append"},pers[key]=!0}}else setGlobalDir(null),staticMethods.error(t("ui.expert.systemText.loadError"));setEntries(list),setSnapshots(snaps),setDrafts(JSON.parse(JSON.stringify(snaps))),setPersisted(pers)}).finally(()=>{cancelled||(setLoading(!1),setTimeout(()=>{var _a,_b;return null==(_b=null==(_a=textareaRef.current)?void 0:_a.focus)?void 0:_b.call(_a)},0))}),()=>{cancelled=!0}},[open]);const draft=drafts[activeKey]||EMPTY_DRAFT,isDirty=reactExports.useCallback(key=>{const d=drafts[key],s=snapshots[key];return!(!d||!s)&&(d.text!==s.text||d.mode!==s.mode)},[drafts,snapshots]),dirtyKeys=["default",...entries.map(e=>tabKeyOf(e.scope,e.name))].filter(isDirty),editable=key=>"default"!==key&&!key.startsWith("workspace:")||active,saveableDirty=dirtyKeys.filter(editable),setDraft=patch=>{setDrafts(prev=>({...prev,[activeKey]:{...prev[activeKey]||EMPTY_DRAFT,...patch}}))},removeTabLocal=key=>{setEntries(prev=>prev.filter(e=>tabKeyOf(e.scope,e.name)!==key)),setSnapshots(prev=>{const n={...prev};return delete n[key],n}),setDrafts(prev=>{const n={...prev};return delete n[key],n}),setPersisted(prev=>{const n={...prev};return delete n[key],n}),setActiveKey(cur=>cur===key?"default":cur)},curEditable=editable(activeKey),isGlobalTab=activeKey.startsWith("global:");return jsxRuntimeExports.jsx(Modal,{title:jsxRuntimeExports.jsxs("span",{className:styles$e_titleRow,children:[t("ui.expert.systemText"),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.expert.systemText.modelHelp"),trigger:["hover","click"],placement:"bottomLeft",children:jsxRuntimeExports.jsx("span",{className:styles$e_helpBtn,"aria-label":t("ui.expert.systemText.modelHelp"),children:"?"})})]}),open:open,onCancel:()=>{saveableDirty.length?Modal.confirm({title:t("ui.expert.systemText.discardTitle"),okText:t("ui.common.confirmYes"),cancelText:t("ui.common.confirmCancel"),centered:!0,zIndex:1200,onOk:()=>{onClose&&onClose()}}):onClose&&onClose()},onOk:()=>{const ops=saveableDirty.filter(key=>{var _a;return!("default"!==key&&!persisted[key]&&!((null==(_a=drafts[key])?void 0:_a.text)||"").trim())}).map(key=>{const d=drafts[key]||EMPTY_DRAFT,body="default"===key?{mode:d.mode,text:d.text}:{scope:key.slice(0,key.indexOf(":")),name:key.slice(key.indexOf(":")+1),mode:d.mode,text:d.text};return fetch(apiUrl("default"===key?"/api/expert/system-text":"/api/expert/model-prompts"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(body)}).then(r=>r.json()).then(resp=>{if(resp&&resp.error)throw new Error(resp.error);return{key:key,resp:resp}})});ops.length?(setSaving(!0),Promise.allSettled(ops).then(results=>{let failed=0;const okOps=[];for(const r of results)"fulfilled"===r.status?okOps.push(r.value):failed+=1;for(const{key:key,resp:resp}of okOps)"default"!==key&&resp&&resp.cleared?removeTabLocal(key):(setSnapshots(prev=>({...prev,[key]:{...drafts[key]||EMPTY_DRAFT}})),setPersisted(prev=>({...prev,[key]:!("default"===key&&resp&&resp.cleared)})));failed?staticMethods.error(t("ui.expert.systemText.saveError")):(1===okOps.length&&okOps[0].resp&&okOps[0].resp.cleared?staticMethods.success(t("default"===okOps[0].key?"ui.expert.systemText.cleared":"ui.expert.systemText.deleted")):staticMethods.success(t("ui.expert.systemText.saved")),onClose&&onClose())}).finally(()=>setSaving(!1))):onClose&&onClose()},okText:t("ui.save"),cancelText:t("ui.cancel"),okButtonProps:{loading:saving,disabled:loading||0===saveableDirty.length},width:"min(900px, 92vw)",zIndex:1100,children:jsxRuntimeExports.jsxs(Spin,{spinning:loading,children:[jsxRuntimeExports.jsx(ModelPromptTabs,{entries:entries,activeKey:activeKey,dirtyKeys:dirtyKeys,workspaceEnabled:active,disabled:loading||saving,onSelect:key=>{setActiveKey(key),setPreview(!1)},onAdd:(name,scope)=>{if(!MODEL_NAME_RE.test(name)||/_APPEND$/i.test(name))return t("ui.expert.systemText.invalidName");if("default"===name.toLowerCase())return t("ui.expert.systemText.reservedName");const canonical=name.toUpperCase();if(entries.some(e=>e.scope===scope&&e.name.toUpperCase()===canonical))return t("ui.expert.systemText.duplicateName");if("workspace"===scope&&!active)return t("ui.expert.systemText.noWorkspace");const key=tabKeyOf(scope,canonical);return setEntries(prev=>[...prev,{name:canonical,scope:scope}]),setSnapshots(prev=>({...prev,[key]:{...EMPTY_DRAFT}})),setDrafts(prev=>({...prev,[key]:{...EMPTY_DRAFT}})),setActiveKey(key),setPreview(!1),setTimeout(()=>{var _a,_b;return null==(_b=null==(_a=textareaRef.current)?void 0:_a.focus)?void 0:_b.call(_a)},0),null},onDelete:(name,scope)=>{const key=tabKeyOf(scope,name);persisted[key]?fetch(apiUrl("/api/expert/model-prompts"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:scope,name:name,text:""})}).then(r=>r.json()).then(d=>{d&&d.error?staticMethods.error(t("ui.expert.systemText.deleteError")):(removeTabLocal(key),staticMethods.success(t("ui.expert.systemText.deleted")))}).catch(()=>staticMethods.error(t("ui.expert.systemText.deleteError"))):removeTabLocal(key)}}),jsxRuntimeExports.jsx("div",{className:styles$e_editorBox,children:preview?jsxRuntimeExports.jsx("div",{className:styles$e_previewBox,children:draft.text?jsxRuntimeExports.jsx("div",{className:"chat-md",dangerouslySetInnerHTML:{__html:renderMarkdown(draft.text)}}):jsxRuntimeExports.jsx("div",{className:styles$e_previewEmpty,children:t("ui.expert.systemText.placeholder")})}):jsxRuntimeExports.jsx(Input.TextArea,{ref:textareaRef,value:draft.text,onChange:e=>setDraft({text:e.target.value}),placeholder:t("ui.expert.systemText.placeholder"),autoSize:{minRows:14,maxRows:28},disabled:!curEditable})}),jsxRuntimeExports.jsxs("div",{className:styles$e_modeRow,children:[jsxRuntimeExports.jsxs("div",{className:styles$e_modeLeft,children:[jsxRuntimeExports.jsx(Switch,{checked:"override"===draft.mode,onChange:v=>setDraft({mode:v?"override":"append"}),checkedChildren:t("ui.expert.systemText.override"),unCheckedChildren:t("ui.expert.systemText.append"),disabled:!curEditable}),"override"===draft.mode&&jsxRuntimeExports.jsx("span",{className:styles$e_overrideWarn,children:t("ui.expert.systemText.overrideWarn")})]}),jsxRuntimeExports.jsxs("div",{className:styles$e_modeRight,children:[jsxRuntimeExports.jsx("span",{className:styles$e_previewLabel,children:t("ui.expert.systemText.preview")}),jsxRuntimeExports.jsx(Switch,{checked:preview,onChange:setPreview,disabled:!curEditable})]})]}),curEditable?jsxRuntimeExports.jsxs("div",{className:styles$e_hint,children:[jsxRuntimeExports.jsx("div",{className:styles$e_dirLine,children:isGlobalTab?t("ui.expert.systemText.dirHintGlobal",{dir:globalDir||""}):t("ui.expert.systemText.dirHint",{dir:"default"===activeKey?dir||"":`${dir||""}/system_prompt`})}),jsxRuntimeExports.jsx("div",{children:t("ui.expert.systemText.note")})]}):jsxRuntimeExports.jsx("div",{className:styles$e_warn,children:t("ui.expert.systemText.noWorkspace")})]})})}const styles$d_editButton="_editButton_1r9yr_10",styles$d_footer="_footer_1r9yr_55",styles$d_footerLeft="_footerLeft_1r9yr_61",styles$d_footerRight="_footerRight_1r9yr_65",styles$d_projectNameRow="_projectNameRow_1r9yr_70",styles$d_projectNameLabel="_projectNameLabel_1r9yr_80",styles$d_projectNameValue="_projectNameValue_1r9yr_83",ALIAS_MAX_LEN=_internals.MAX_LEN;function ProjectAliasEditor({projectName:projectName,isLocalLog:isLocalLog=!1}){const alias=useProjectAlias(projectName),[open,setOpen]=reactExports.useState(!1),[draft,setDraft]=reactExports.useState(""),[dirty,setDirty]=reactExports.useState(!1);if(reactExports.useEffect(()=>{open?dirty||setDraft(alias||""):setDirty(!1)},[open,alias,dirty]),!projectName||isLocalLog)return null;const valueDiffers=normalizeAlias(draft)!==(alias||""),handleSave=()=>{setProjectAlias(projectName,draft)?setOpen(!1):staticMethods.error(t("ui.projectAlias.saveFailed"))},tooltipLabel=t("ui.projectAlias.tooltip");return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Tooltip,{title:tooltipLabel,placement:"top",children:jsxRuntimeExports.jsx("button",{type:"button",className:styles$d_editButton,"aria-label":tooltipLabel,onClick:()=>setOpen(!0),"data-alias-edit-trigger":"",children:jsxRuntimeExports.jsx(RefIcon$7,{})})}),jsxRuntimeExports.jsxs(Modal,{title:t("ui.projectAlias.modalTitle"),open:open,onCancel:()=>setOpen(!1),destroyOnClose:!0,width:420,footer:jsxRuntimeExports.jsxs("div",{className:styles$d_footer,children:[jsxRuntimeExports.jsx("div",{className:styles$d_footerLeft,children:alias?jsxRuntimeExports.jsx(Button,{danger:!0,onClick:()=>{clearProjectAlias(projectName)?setOpen(!1):staticMethods.error(t("ui.projectAlias.saveFailed"))},children:t("ui.projectAlias.clear")}):null}),jsxRuntimeExports.jsxs("div",{className:styles$d_footerRight,children:[jsxRuntimeExports.jsx(Button,{onClick:()=>setOpen(!1),children:t("ui.projectAlias.cancel")}),jsxRuntimeExports.jsx(Button,{type:"primary",disabled:!valueDiffers,onClick:handleSave,children:t("ui.projectAlias.save")})]})]}),children:[jsxRuntimeExports.jsxs("div",{className:styles$d_projectNameRow,children:[jsxRuntimeExports.jsx("span",{className:styles$d_projectNameLabel,children:t("ui.projectAlias.projectLabel")}),jsxRuntimeExports.jsx("span",{className:styles$d_projectNameValue,children:projectName})]}),jsxRuntimeExports.jsx(Input,{autoFocus:!0,value:draft,onChange:e=>{setDraft(e.target.value),setDirty(!0)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),valueDiffers&&handleSave())},placeholder:t("ui.projectAlias.placeholder"),maxLength:ALIAS_MAX_LEN,showCount:!0,allowClear:!0})]})]})}const imTr=(key,params,fallback)=>{try{const r=t(key,params);return r&&r!==key?r:fallback}catch{return fallback}};function ImAppendSystemModal({open:open,platform:platform,onClose:onClose}){const[content2,setContent]=reactExports.useState(""),[loading,setLoading]=reactExports.useState(!1),[saving,setSaving]=reactExports.useState(!1),[restoring,setRestoring]=reactExports.useState(!1);reactExports.useEffect(()=>{if(!open||!platform)return;let cancelled=!1;return setLoading(!0),fetch(apiUrl(`/api/im/${encodeURIComponent(platform)}/append-system`)).then(r=>r.ok?r.json():Promise.reject(new Error("load failed"))).then(d=>{cancelled||setContent("string"==typeof d.content?d.content:"")}).catch(()=>{cancelled||staticMethods.error(imTr("ui.imRecord.loadFailed",null,"Load failed"))}).finally(()=>{cancelled||setLoading(!1)}),()=>{cancelled=!0}},[open,platform]);return jsxRuntimeExports.jsx(Modal,{open:open,onCancel:onClose,onOk:async()=>{setSaving(!0);try{const r=await fetch(apiUrl(`/api/im/${encodeURIComponent(platform)}/append-system`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:content2})});if(!r.ok){const j=await r.json().catch(()=>({}));throw new Error(j.error||`HTTP ${r.status}`)}staticMethods.success(imTr("ui.im.personaSaved",null,"Saved — takes effect after you restart this IM")),onClose()}catch(e){staticMethods.error(imTr("ui.im.saveFailed",null,"Save failed")+((null==e?void 0:e.message)?`: ${e.message}`:""))}finally{setSaving(!1)}},okText:imTr("ui.im.save",null,"Save"),cancelText:imTr("ui.cancel",null,"Cancel"),confirmLoading:saving,okButtonProps:{disabled:loading},width:680,destroyOnClose:!0,title:jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[jsxRuntimeExports.jsx("span",{children:imTr("ui.im.persona",null,"Model personality")}),jsxRuntimeExports.jsx(Popconfirm,{title:imTr("ui.im.restoreDefaultConfirm",null,"Replace the current text with the default preset? (takes effect after you save)"),okText:imTr("ui.ok",null,"OK"),cancelText:imTr("ui.cancel",null,"Cancel"),onConfirm:async()=>{setRestoring(!0);try{const r=await fetch(apiUrl(`/api/im/${encodeURIComponent(platform)}/append-system?default=1`));if(!r.ok){const j=await r.json().catch(()=>({}));throw new Error(j.error||`HTTP ${r.status}`)}const d=await r.json();setContent("string"==typeof d.content?d.content:""),staticMethods.success(imTr("ui.im.personaRestored",null,"Loaded the default preset — review and save"))}catch(e){staticMethods.error(imTr("ui.im.restoreFailed",null,"Restore failed")+((null==e?void 0:e.message)?`: ${e.message}`:""))}finally{setRestoring(!1)}},placement:"bottomLeft",disabled:saving||restoring||loading,children:jsxRuntimeExports.jsx(Button,{size:"small",type:"link",loading:restoring,disabled:saving||loading,style:{padding:0,height:"auto",fontWeight:400},children:imTr("ui.im.restoreDefault",null,"Restore default")})})]}),styles:{content:{background:"var(--bg-elevated)"},header:{background:"var(--bg-elevated)"}},children:loading?jsxRuntimeExports.jsx("div",{style:{textAlign:"center",padding:"40px 0"},children:jsxRuntimeExports.jsx(Spin,{})}):jsxRuntimeExports.jsx(Input.TextArea,{value:content2,onChange:e=>setContent(e.target.value),autoSize:{minRows:16,maxRows:28},spellCheck:!1,style:{fontFamily:"var(--font-mono)",fontSize:13}})})}function ImSkillsModal({open:open,platform:platform,reloadKey:reloadKey,onClose:onClose}){const[skills,setSkills]=reactExports.useState([]),[loading,setLoading]=reactExports.useState(!1),[error,setError]=reactExports.useState(null),[toggling,setToggling]=reactExports.useState(()=>new Set),reqIdRef=reactExports.useRef(0),reload=reactExports.useCallback(async(silent=!1)=>{if(!platform)return;const myId=++reqIdRef.current;silent||(setLoading(!0),setError(null));try{const r=await fetch(apiUrl(`/api/im/${encodeURIComponent(platform)}/skills`));if(!r.ok)throw new Error(`http:${r.status}`);const d=await r.json();if(reqIdRef.current!==myId)return;setSkills(Array.isArray(d.skills)?d.skills:[])}catch(e){if(reqIdRef.current!==myId)return;silent||setError(String((null==e?void 0:e.message)||"load_failed"))}finally{reqIdRef.current!==myId||silent||setLoading(!1)}},[platform]);reactExports.useEffect(()=>{open&&platform&&reload(!1)},[open,platform,reloadKey,reload]);return jsxRuntimeExports.jsx(SkillsManagerModal,{open:open,onClose:onClose,loading:loading,error:error,skills:skills,toggling:toggling,onToggle:async skill=>{const enable=!skill.enabled,key=skillKey(skill);if(toggling.has(key))return;const same=s=>skillKey(s)===key;setToggling(prev=>new Set(prev).add(key)),setSkills(prev=>prev.map(s=>same(s)?{...s,enabled:enable}:s));try{const r=await fetch(apiUrl(`/api/im/${encodeURIComponent(platform)}/skills/toggle`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:skill.source,name:skill.name,path:skill.path,enabled:skill.enabled,enable:enable})});if(!r.ok){const j=await r.json().catch(()=>({}));throw Object.assign(new Error(j.error||`http:${r.status}`),{code:j.code})}staticMethods.success(imTr("ui.im.skillsRestartHint",null,"Updated — takes effect after you restart this IM")),reload(!0)}catch(e){setSkills(prev=>prev.map(s=>same(s)?{...s,enabled:!enable}:s)),staticMethods.error("DUPLICATE"===(null==e?void 0:e.code)?imTr("ui.skillToggleDuplicate",{name:skill.name},"Same-named skill exists in both enabled and disabled dirs; remove one copy and retry"):imTr("ui.skillToggleFailed",{reason:(null==e?void 0:e.message)||""},"Toggle failed"))}finally{setToggling(prev=>{const n=new Set(prev);return n.delete(key),n})}},onDelete:async skill=>{const key=skillKey(skill);if(!toggling.has(key)){setToggling(prev=>new Set(prev).add(key));try{const r=await fetch(apiUrl(`/api/im/${encodeURIComponent(platform)}/skills/delete`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:skill.source,name:skill.name,path:skill.path,enabled:skill.enabled})});if(!r.ok){const j=await r.json().catch(()=>({}));throw Object.assign(new Error(j.error||`http:${r.status}`),{code:j.code})}setSkills(prev=>prev.filter(s=>skillKey(s)!==key)),staticMethods.success(imTr("ui.skillDeleteSuccess",{name:skill.name},"Permanently deleted")),reload(!0)}catch(e){staticMethods.error(imTr("ui.skillDeleteFailed",{reason:(null==e?void 0:e.message)||""},"Delete failed"))}finally{setToggling(prev=>{const n=new Set(prev);return n.delete(key),n})}}}})}const styles$c_panel="_panel_1nxl3_1",styles$c_required="_required_1nxl3_7",styles$c_optional="_optional_1nxl3_12",styles$c_row="_row_1nxl3_19",styles$c_label="_label_1nxl3_26",styles$c_control="_control_1nxl3_31",styles$c_field="_field_1nxl3_37",styles$c_fieldLabel="_fieldLabel_1nxl3_43",styles$c_warn="_warn_1nxl3_54",styles$c_hint="_hint_1nxl3_60",styles$c_helpIcon="_helpIcon_1nxl3_67",styles$c_detailsToggle="_detailsToggle_1nxl3_74",styles$c_details="_details_1nxl3_74",styles$c_actions="_actions_1nxl3_98",styles$c_testBtn="_testBtn_1nxl3_108",SUPPORTS_DIRECTORY_UPLOAD="undefined"!=typeof document&&"webkitdirectory"in document.createElement("input");function defaultValue(field2){var _a,_b;return"tags"===field2.type?[]:"switch"!==field2.type&&("select"===field2.type?field2.default??(null==(_b=null==(_a=field2.options)?void 0:_a[0])?void 0:_b.value)??"":"")}function ImPlatformSettings({descriptor:descriptor}){var _a;const initialValues=reactExports.useMemo(()=>{const v={};for(const f of descriptor.fields)v[f.key]=defaultValue(f);return v},[descriptor]),[enabled,setEnabled]=reactExports.useState(!1),[values,setValues]=reactExports.useState(initialValues),[hasSecret,setHasSecret]=reactExports.useState(!1),[connection,setConnection]=reactExports.useState(null),[proc,setProc]=reactExports.useState(null),[starting,setStarting]=reactExports.useState(!1),[stopping,setStopping]=reactExports.useState(!1),[testing,setTesting]=reactExports.useState(!1),[showDetails,setShowDetails]=reactExports.useState(!1),[personaOpen,setPersonaOpen]=reactExports.useState(!1),[skillsModalOpen,setSkillsModalOpen]=reactExports.useState(!1),[skillsReloadKey,setSkillsReloadKey]=reactExports.useState(0),skillFileInputRef=reactExports.useRef(null),skillFolderInputRef=reactExports.useRef(null),label2=(()=>{try{return imTr(descriptor.labelKey,null,descriptor.fallback)}catch{return descriptor.fallback}})(),postSkillImport=async file=>{try{const form=new FormData;form.append("file",file);const resp=await fetch(apiUrl(`/api/im/${encodeURIComponent(descriptor.id)}/skills/import`),{method:"POST",body:form}),data=await resp.json().catch(()=>({}));if(!resp.ok){let reason=data.error||resp.statusText;return"INVALID_TYPE"===data.code?reason=imTr("ui.skills.invalidType",null,"Only .zip or SKILL.md"):"MISSING_SKILL_MD"===data.code&&(reason=imTr("ui.skills.zipMissingSkillMd",null,"SKILL.md not found in the zip")),void staticMethods.error(imTr("ui.skills.uploadFailed",{reason:reason},`Failed to add skill: ${reason}`))}staticMethods.success(imTr("ui.im.skillsRestartHint",null,"Updated — takes effect after you restart this IM")),setSkillsReloadKey(k=>k+1)}catch(err){staticMethods.error(imTr("ui.skills.uploadFailed",{reason:(null==err?void 0:err.message)||"network"},"Failed to add skill"))}},skillAddMenu={items:[...SUPPORTS_DIRECTORY_UPLOAD?[{key:"folder",icon:jsxRuntimeExports.jsx(RefIcon$8,{}),label:imTr("ui.skills.addFolder",null,"Select folder"),onClick:()=>{var _a2;return null==(_a2=skillFolderInputRef.current)?void 0:_a2.click()}}]:[],{key:"zip",icon:jsxRuntimeExports.jsx(RefIcon$9,{}),label:imTr("ui.skills.addZip",null,"Upload .zip"),onClick:()=>{skillFileInputRef.current&&(skillFileInputRef.current.accept=".zip",skillFileInputRef.current.click())}},{key:"md",icon:jsxRuntimeExports.jsx(RefIcon$a,{}),label:imTr("ui.skills.addMd",null,"Upload SKILL.md"),onClick:()=>{skillFileInputRef.current&&(skillFileInputRef.current.accept=".md",skillFileInputRef.current.click())}}]},valuesRef=reactExports.useRef(initialValues),enabledRef=reactExports.useRef(!1),lastSavedSigRef=reactExports.useRef(null),mountedRef=reactExports.useRef(!0),busyRef=reactExports.useRef(!1),writeValues=next=>{valuesRef.current=next,setValues(next)},setField=(key,val)=>writeValues({...valuesRef.current,[key]:val}),fieldSig=reactExports.useCallback((vals,en)=>{const o={enabled:en};for(const f of descriptor.fields)"password"===f.type?vals[f.key]&&(o[f.key]=vals[f.key]):o[f.key]=vals[f.key];return JSON.stringify(o)},[descriptor]),buildBody=(vals,en,applyProcess)=>{const body={enabled:en,applyProcess:applyProcess};for(const f of descriptor.fields)"password"===f.type?vals[f.key]&&(body[f.key]=vals[f.key]):body[f.key]=vals[f.key];return body},postConfig=reactExports.useCallback(async body=>{try{const r=await fetch(apiUrl(descriptor.endpoints.config),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(body)});if(!r.ok){let detail="";try{const e=await r.json();detail=e.detail||e.error||""}catch{detail=`HTTP ${r.status}`}return{ok:!1,detail:detail}}return{ok:!0}}catch{return{ok:!1,detail:""}}},[descriptor]),fetchStatus=reactExports.useCallback(async full=>{let d=null,ok=!1;try{const r=await fetch(apiUrl(descriptor.endpoints.status));r.ok&&(d=await r.json(),ok=!0)}catch{}if(!mountedRef.current)return d;if(!ok)return setConnection({running:!1,connected:!1}),setProc(null),null;if(setConnection(d.connection||null),setProc(d.process||null),setEnabled(!!d.enabled),enabledRef.current=!!d.enabled,full){setHasSecret(!!d.hasSecret);const v={};for(const f of descriptor.fields){const incoming=d[f.key];"tags"===f.type?v[f.key]=Array.isArray(incoming)?incoming:[]:"switch"===f.type?v[f.key]=!!incoming:v[f.key]=incoming??defaultValue(f)}writeValues(v),lastSavedSigRef.current=fieldSig(v,!!d.enabled)}return d},[descriptor,fieldSig]);reactExports.useEffect(()=>{mountedRef.current=!0,fetchStatus(!0);const id=setInterval(()=>{busyRef.current||fetchStatus(!1)},5e3);return()=>{mountedRef.current=!1,clearInterval(id)}},[fetchStatus]);const commit=reactExports.useCallback(async()=>{const sig=fieldSig(valuesRef.current,enabledRef.current);if(sig===lastSavedSigRef.current)return;const{ok:ok,detail:detail}=await postConfig(buildBody(valuesRef.current,enabledRef.current,!1));ok?(lastSavedSigRef.current=sig,setHasSecret(prev=>prev||descriptor.fields.some(f=>"password"===f.type&&valuesRef.current[f.key]))):staticMethods.error(imTr("ui.im.saveFailed",null,"Save failed")+(detail?`: ${detail}`:""))},[descriptor,fieldSig,postConfig]),setFieldAndCommit=(key,val)=>{setField(key,val),commit()},allowlistField=descriptor.fields.find(f=>"tags"===f.type),procState=null==proc?void 0:proc.state,showStop=stopping||enabled&&!starting,renderField=f=>"switch"===f.type?jsxRuntimeExports.jsxs("div",{className:styles$c_row,children:[jsxRuntimeExports.jsxs("span",{className:styles$c_label,children:[imTr(f.labelKey,null,f.fallback),f.helpKey&&jsxRuntimeExports.jsx(Tooltip,{title:imTr(f.helpKey,null,f.helpFallback),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$c_helpIcon})})]}),jsxRuntimeExports.jsx("span",{className:styles$c_control,children:jsxRuntimeExports.jsx(Switch,{checked:!!values[f.key],onChange:v=>setFieldAndCommit(f.key,v)})})]},f.key):jsxRuntimeExports.jsxs("div",{className:styles$c_field,children:[jsxRuntimeExports.jsxs("label",{className:styles$c_fieldLabel,children:[imTr(f.labelKey,null,f.fallback),f.required&&jsxRuntimeExports.jsx("span",{className:styles$c_required,children:"*"}),f.helpKey?jsxRuntimeExports.jsx(Tooltip,{title:imTr(f.helpKey,null,f.helpFallback),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$c_helpIcon})}):f.optional?jsxRuntimeExports.jsx("span",{className:styles$c_optional,children:imTr("ui.im.optional",null,"Optional")}):null]}),"text"===f.type&&jsxRuntimeExports.jsx(Input,{value:values[f.key],onChange:e=>setField(f.key,e.target.value),onBlur:commit,placeholder:imTr(f.labelKey,null,f.fallback),autoComplete:"off"}),"password"===f.type&&jsxRuntimeExports.jsx(Input.Password,{value:values[f.key],onChange:e=>setField(f.key,e.target.value),onBlur:commit,placeholder:hasSecret?`•••••• ${imTr("ui.im.secretSaved",null,"Saved (leave blank to keep)")}`:imTr(f.labelKey,null,f.fallback),autoComplete:"new-password"}),"select"===f.type&&jsxRuntimeExports.jsx(Select,{value:values[f.key],onChange:v=>setFieldAndCommit(f.key,v),style:{width:"100%"},options:f.options.map(o=>({value:o.value,label:imTr(o.labelKey,null,o.fallback)}))}),"tags"===f.type&&jsxRuntimeExports.jsx(Select,{mode:"tags",value:values[f.key],onChange:v=>setFieldAndCommit(f.key,v),tokenSeparators:[","," "],placeholder:imTr(f.placeholderKey,null,f.placeholderFallback),style:{width:"100%"},open:!1})]},f.key),mainFields=descriptor.fields.filter(f=>"more"!==f.section),moreFields=descriptor.fields.filter(f=>"more"===f.section);return jsxRuntimeExports.jsxs("div",{className:styles$c_panel,children:[jsxRuntimeExports.jsxs("div",{className:styles$c_row,children:[jsxRuntimeExports.jsx("span",{className:styles$c_label,children:imTr(descriptor.enable.key,null,descriptor.enable.fallback)}),jsxRuntimeExports.jsx("span",{className:styles$c_control,children:(()=>{if(null==connection?void 0:connection.lastError)return jsxRuntimeExports.jsxs(Tag,{color:"error",children:[imTr("ui.im.statusError",null,"Error"),": ",connection.lastError]});const portSuffix=(null==proc?void 0:proc.port)?` :${proc.port}`:"";return procState?"ready"===procState?(null==connection?void 0:connection.connected)?jsxRuntimeExports.jsxs(Tag,{color:"success",children:[imTr("ui.im.statusConnected",null,"Connected"),portSuffix]}):jsxRuntimeExports.jsxs(Tag,{color:"processing",children:[imTr("ui.im.statusRunning",null,"Running, connecting…"),portSuffix]}):"booting"===procState?jsxRuntimeExports.jsx(Tag,{color:"processing",children:imTr("ui.im.statusBooting",null,"Starting…")}):"hung"===procState?jsxRuntimeExports.jsx(Tag,{color:"warning",children:imTr("ui.im.statusHung",null,"Not responding")}):jsxRuntimeExports.jsx(Tag,{children:imTr("ui.im.statusDisconnected",null,"Disconnected")}):connection?connection.connected?jsxRuntimeExports.jsx(Tag,{color:"success",children:imTr("ui.im.statusConnected",null,"Connected")}):connection.running?jsxRuntimeExports.jsx(Tag,{color:"processing",children:imTr("ui.im.statusRunning",null,"Running, connecting…")}):jsxRuntimeExports.jsx(Tag,{children:imTr("ui.im.statusDisconnected",null,"Disconnected")}):null})()})]}),mainFields.map(renderField),(moreFields.length>0||(null==(_a=descriptor.notes)?void 0:_a.length)>0)&&jsxRuntimeExports.jsxs("button",{type:"button",className:styles$c_detailsToggle,onClick:()=>setShowDetails(v=>!v),children:[showDetails?jsxRuntimeExports.jsx(RefIcon$b,{}):jsxRuntimeExports.jsx(RefIcon$c,{}),jsxRuntimeExports.jsx("span",{children:imTr("ui.im.moreSettings",null,"More settings")})]}),showDetails&&jsxRuntimeExports.jsxs("div",{className:styles$c_details,children:[moreFields.map(renderField),jsxRuntimeExports.jsxs("div",{className:styles$c_row,children:[jsxRuntimeExports.jsxs("span",{className:styles$c_label,children:[imTr("ui.im.persona",null,"Model personality"),jsxRuntimeExports.jsx(Tooltip,{title:imTr("ui.im.personaHelp",null,"Define the bot's personality and behavior; injected as a system prompt so it's harder to override. Takes effect after you restart this IM (requires a recent Codex build)."),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$c_helpIcon})})]}),jsxRuntimeExports.jsx("span",{className:styles$c_control,children:jsxRuntimeExports.jsx(Button,{size:"small",onClick:()=>setPersonaOpen(!0),children:imTr("ui.im.edit",null,"Edit")})})]}),jsxRuntimeExports.jsxs("div",{className:styles$c_row,children:[jsxRuntimeExports.jsxs("span",{className:styles$c_label,children:[label2," ",imTr("ui.im.skillsRow",null,"SKILL management")]}),jsxRuntimeExports.jsxs("span",{className:styles$c_control,style:{display:"inline-flex",gap:8},children:[jsxRuntimeExports.jsx(Dropdown,{trigger:["click"],menu:skillAddMenu,children:jsxRuntimeExports.jsx(Button,{size:"small",icon:jsxRuntimeExports.jsx(RefIcon$e,{}),children:imTr("ui.skills.add",null,"Add")})}),jsxRuntimeExports.jsx(Button,{size:"small",icon:jsxRuntimeExports.jsx(RefIcon$f,{}),onClick:()=>setSkillsModalOpen(!0),children:imTr("ui.skillManage",null,"Manage")})]})]}),(descriptor.notes||[]).map((n,i)=>jsxRuntimeExports.jsx("div",{className:"warn"===n.kind?styles$c_warn:styles$c_hint,children:imTr(n.key,null,n.fallback)},i))]}),jsxRuntimeExports.jsx(ImAppendSystemModal,{open:personaOpen,platform:descriptor.id,onClose:()=>setPersonaOpen(!1)}),jsxRuntimeExports.jsx(ImSkillsModal,{open:skillsModalOpen,platform:descriptor.id,reloadKey:skillsReloadKey,onClose:()=>setSkillsModalOpen(!1)}),jsxRuntimeExports.jsx("input",{type:"file",ref:skillFileInputRef,style:{display:"none"},accept:".zip,.md",onChange:async e=>{var _a2;const file=null==(_a2=e.target.files)?void 0:_a2[0];if(e.target.value="",!file)return;const lower=file.name.toLowerCase();lower.endsWith(".zip")||lower.endsWith(".md")?await postSkillImport(file):staticMethods.error(imTr("ui.skills.invalidType",null,"Only .zip or SKILL.md"))}}),SUPPORTS_DIRECTORY_UPLOAD&&jsxRuntimeExports.jsx("input",{type:"file",ref:skillFolderInputRef,style:{display:"none"},webkitdirectory:"",directory:"",onChange:async e=>{const fileList=e.target.files;if(e.target.value="",!fileList||0===fileList.length)return;const files=Array.from(fileList);if(files.some(f=>{const parts=(f.webkitRelativePath||"").split("/");return 2===parts.length&&"skill.md"===parts[1].toLowerCase()}))try{const zip=new(0,(await __vitePreload(async()=>{const{default:__vite_default__}=await import("./jszip.min-BxIXdRg4.js").then(n=>n.j);return{default:__vite_default__}},__vite__mapDeps([0,1]),import.meta.url)).default);for(const f of files){const rel=f.webkitRelativePath||f.name;rel&&!rel.includes("..")&&zip.file(rel,f)}const blob=await zip.generateAsync({type:"blob"}),rootName=(files[0].webkitRelativePath||"").split("/")[0]||"skill";await postSkillImport(new File([blob],`${rootName}.zip`,{type:"application/zip"}))}catch(err){staticMethods.error(imTr("ui.skills.uploadFailed",{reason:(null==err?void 0:err.message)||"pack failed"},"Failed to add skill"))}else staticMethods.error(imTr("ui.skills.folderMissingSkillMd",null,"SKILL.md not found at the folder root"))}}),jsxRuntimeExports.jsxs("div",{className:styles$c_actions,children:[jsxRuntimeExports.jsx(Button,{className:styles$c_testBtn,onClick:async()=>{setTesting(!0);try{const r=await fetch(apiUrl(descriptor.endpoints.test),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(buildBody(valuesRef.current,enabledRef.current,!1))}),d=await r.json();d.ok?staticMethods.success(imTr("ui.im.testOk",null,"Connection OK")):staticMethods.error(imTr("ui.im.testFail",null,"Connection failed")+(d.detail?`: ${d.detail}`:""))}catch{staticMethods.error(imTr("ui.im.testFail",null,"Connection failed"))}finally{setTesting(!1)}},loading:testing,children:imTr("ui.im.test",null,"Test connection")}),jsxRuntimeExports.jsx(Button,{type:showStop?"default":"primary",danger:showStop,loading:starting||stopping,onClick:showStop?async()=>{setStopping(!0),busyRef.current=!0;try{const{ok:ok,detail:detail}=await postConfig(buildBody(valuesRef.current,!1,!0));if(!ok)return void staticMethods.error(imTr("ui.im.saveFailed",null,"Save failed")+(detail?`: ${detail}`:""));setEnabled(!1),enabledRef.current=!1,lastSavedSigRef.current=fieldSig(valuesRef.current,!1)}finally{busyRef.current=!1,mountedRef.current&&(setStopping(!1),fetchStatus(!1))}}:async()=>{var _a2;setStarting(!0),busyRef.current=!0;try{const{ok:ok,detail:detail}=await postConfig(buildBody(valuesRef.current,!0,!0));if(!ok)return void staticMethods.error(imTr("ui.im.startFailed",null,"Start failed")+(detail?`: ${detail}`:""));setEnabled(!0),enabledRef.current=!0,lastSavedSigRef.current=fieldSig(valuesRef.current,!0),(()=>{if(!allowlistField)return!1;const v=valuesRef.current[allowlistField.key];return!Array.isArray(v)||0===v.length})()&&staticMethods.warning(imTr("ui.im.savedNoAllowlistWarn",null,"No sender allowlist set: the first conversation that messages the bot is bound and anyone in it can drive the local session with no approval. Add an allowlist under More settings."),8);const deadline=Date.now()+15e3;let ready=!1;for(;Date.now()<deadline;){if(await new Promise(res=>setTimeout(res,500)),!mountedRef.current)return;const d=await fetchStatus(!1);if("ready"===(null==(_a2=null==d?void 0:d.process)?void 0:_a2.state)){ready=!0;break}}if(!mountedRef.current)return;ready?staticMethods.success(imTr("ui.im.statusConnected",null,"Connected")):staticMethods.error(imTr("ui.im.startFailed",null,"Start failed: worker did not become ready in time"),6)}finally{busyRef.current=!1,mountedRef.current&&(setStarting(!1),fetchStatus(!1))}},children:showStop?imTr("ui.im.stop",null,"Stop"):imTr("ui.im.start",null,"Start")})]})]})}const styles$b_tabRow="_tabRow_1q32a_4",styles$b_tabBtn="_tabBtn_1q32a_24",styles$b_tabBtnActive="_tabBtnActive_1q32a_52",styles$b_toolBody="_toolBody_1q32a_8",TOOLS=IM_PLATFORMS.map(p=>({id:p.id,labelKey:p.labelKey,fallback:p.fallback,Icon:p.icon,color:p.color,render:()=>jsxRuntimeExports.jsx(ImPlatformSettings,{descriptor:p})}));function MessagingModal({open:open,onClose:onClose,initialTool:initialTool}){const[selected,setSelected]=reactExports.useState(initialTool||TOOLS[0].id);reactExports.useEffect(()=>{open&&initialTool&&setSelected(initialTool)},[open,initialTool]);const active=TOOLS.find(x=>x.id===selected)||TOOLS[0];return jsxRuntimeExports.jsxs(Modal,{open:open,onCancel:onClose,footer:null,width:680,destroyOnClose:!0,styles:{content:{background:"var(--bg-elevated)"},header:{background:"var(--bg-elevated)"},mask:BLUR_MASK_STYLE},title:jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx(RefIcon$2,{style:{marginInlineEnd:8}}),imTr("ui.messaging.title",null,"Messaging Integrations")]}),children:[jsxRuntimeExports.jsx("div",{className:styles$b_tabRow,children:TOOLS.map(tool=>{const isActive=selected===tool.id,Icon2=tool.Icon;return jsxRuntimeExports.jsxs("button",{type:"button",className:`${styles$b_tabBtn}${isActive?` ${styles$b_tabBtnActive}`:""}`,onClick:()=>setSelected(tool.id),children:[jsxRuntimeExports.jsx(Icon2,{size:16,style:{color:isActive?tool.color:"var(--text-tertiary, #999)"}}),jsxRuntimeExports.jsx("span",{style:isActive?{color:tool.color}:void 0,children:imTr(tool.labelKey,null,tool.fallback)})]},tool.id)})}),jsxRuntimeExports.jsx("div",{className:styles$b_toolBody,children:active.render()})]})}const styles$a_scrollBody="_scrollBody_riojj_1",styles$a_headerBar="_headerBar_riojj_15",styles$a_refreshBtn="_refreshBtn_riojj_21",styles$a_statusTag="_statusTag_riojj_27",styles$a_center="_center_riojj_36",styles$a_hint="_hint_riojj_46";function ImConversationModal({open:open,onClose:onClose,platform:platform,onOpenConfig:onOpenConfig}){const[sessions,setSessions]=reactExports.useState([]),[loading,setLoading]=reactExports.useState(!1),[error,setError]=reactExports.useState(null),[reloadKey,setReloadKey]=reactExports.useState(0),prevRef=reactExports.useRef({open:!1,platform:null}),sessionsRef=reactExports.useRef(sessions);sessionsRef.current=sessions;const bodyRef=reactExports.useRef(null),scrollMemRef=reactExports.useRef({}),positionedRef=reactExports.useRef(!1);reactExports.useEffect(()=>{positionedRef.current=!1},[open,platform]),reactExports.useLayoutEffect(()=>{if(!open||loading||positionedRef.current)return;const el=bodyRef.current;if(!el)return;const mem=scrollMemRef.current[platform];el.scrollTop=!mem||mem.atBottom?el.scrollHeight:Math.min(mem.top,el.scrollHeight),positionedRef.current=!0},[open,platform,loading,sessions]);const descriptor=IM_PLATFORMS.find(p=>p.id===platform)||null,label2=descriptor?(()=>{try{return t(descriptor.labelKey)}catch{return descriptor.fallback}})():"",[senderMap,setSenderMap]=reactExports.useState({});reactExports.useEffect(()=>{if(!open||!platform)return;let cancelled=!1;return fetch(apiUrl(`/api/im/${encodeURIComponent(platform)}/senders`)).then(r=>r.ok?r.json():null).then(d=>{cancelled||setSenderMap(d&&d.senders||{})}).catch(()=>{cancelled||setSenderMap({})}),()=>{cancelled=!0}},[open,platform,reloadKey]);const[imConn,setImConn]=reactExports.useState(null),[imProc,setImProc]=reactExports.useState(null);reactExports.useEffect(()=>{if(!open||!platform)return;let cancelled=!1;const poll=async()=>{try{const r=await fetch(apiUrl(`/api/im/${encodeURIComponent(platform)}/status`));if(!r.ok)return void(cancelled||(setImConn({running:!1,connected:!1}),setImProc(null)));const d=await r.json();cancelled||(setImConn(d.connection||null),setImProc(d.process||null))}catch{cancelled||(setImConn({running:!1,connected:!1}),setImProc(null))}};poll();const id=setInterval(poll,5e3);return()=>{cancelled=!0,clearInterval(id)}},[open,platform,reloadKey]);reactExports.useEffect(()=>{if(!open||!platform)return void(prevRef.current={open:open,platform:platform});const isPureRefresh=!0===prevRef.current.open&&prevRef.current.platform===platform;prevRef.current={open:open,platform:platform};let es=null,cancelled=!1;setLoading(!0),setError(null),isPureRefresh||setSessions([]);const reportError=e=>{setError(String((null==e?void 0:e.message)||e)||"load_failed"),sessionsRef.current.length>0&&staticMethods.error(t("ui.imRecord.loadFailed"))};return(async()=>{try{const r=await fetch(apiUrl(`/api/im/${encodeURIComponent(platform)}/logs`));if(!r.ok)throw new Error(`logs ${r.status}`);const{latest:latest}=await r.json();if(cancelled)return;if(!latest)return setSessions([]),void setLoading(!1);const entries=[];es=new EventSource(apiUrl(`/api/local-log?file=${encodeURIComponent(latest)}`)),es.addEventListener("load_chunk",ev=>{try{const chunk=JSON.parse(ev.data);if(Array.isArray(chunk))for(const e of chunk)entries.push(e)}catch{}}),es.addEventListener("load_end",()=>{if(es.close(),!cancelled){try{const reconstructed=reconstructEntries(entries);setSessions(function(entries){let sessions=[];for(const entry of entries){if(shouldExcludeFromConversation(entry))continue;const conversationEntry=normalizeConversationEntry(entry);isMainAgent(conversationEntry)&&conversationEntry.body&&Array.isArray(conversationEntry.body.input)&&!conversationEntry._slimmed&&(sessions=mergeMainAgentSessions(sessions,conversationEntry))}return sessions}(reconstructed))}catch(e){reportError(e)}setLoading(!1)}}),es.onerror=()=>{try{es.close()}catch{}cancelled||(reportError("load_failed"),setLoading(!1))}}catch(e){cancelled||(reportError(e),setLoading(!1))}})(),()=>{if(cancelled=!0,es)try{es.close()}catch{}}},[open,platform,reloadKey]),reactExports.useEffect(()=>{if(!open||!platform)return;const onUpdate=e=>{var _a;(null==(_a=null==e?void 0:e.detail)?void 0:_a.platform)===platform&&setReloadKey(k=>k+1)};return window.addEventListener("cxv:im-log-update",onUpdate),()=>window.removeEventListener("cxv:im-log-update",onUpdate)},[open,platform]);const items=function(sessions,senderMap,imAgent){const out=[];return sessions.forEach((session,si)=>{const messages=Array.isArray(session.messages)?session.messages:[];if(0===messages.length)return;const maps=cachedBuildToolResultMap(messages),kp=`s${si}`;messages.forEach((msg,mi)=>{if(!msg)return;const ts=msg._timestamp||null,content2=msg.content;if("user"===msg.role){if(Array.isArray(content2)){const{commands:commands,textBlocks:textBlocks,skillBlocks:skillBlocks}=classifyUserContent(content2);commands.forEach((cmd,ci)=>out.push(jsxRuntimeExports.jsx(ChatMessage,{role:"user",text:cmd,timestamp:ts,isHistoryLog:!0,imSenderMap:senderMap},`${kp}-cmd-${mi}-${ci}`))),skillBlocks.forEach((sb,ski)=>{const m=(sb.text||"").match(/^#\s+(.+)$/m);out.push(jsxRuntimeExports.jsx(ChatMessage,{role:"skill-loaded",text:sb.text,skillName:m?m[1]:"Skill",timestamp:ts,isHistoryLog:!0},`${kp}-skill-${mi}-${ski}`))}),textBlocks.forEach((tb,ti)=>{const isPlan=/Implement the following plan:/i.test(tb.text||"");out.push(jsxRuntimeExports.jsx(ChatMessage,{role:isPlan?"plan-prompt":"user",text:tb.text,timestamp:ts,isHistoryLog:!0,imSenderMap:senderMap},`${kp}-user-${mi}-${ti}`))})}else if("string"==typeof content2){const dispText=extractDisplayText(content2);if(dispText){const isPlan=/Implement the following plan:/i.test(dispText);out.push(jsxRuntimeExports.jsx(ChatMessage,{role:isPlan?"plan-prompt":"user",text:dispText,timestamp:ts,isHistoryLog:!0,imSenderMap:senderMap},`${kp}-user-${mi}`))}}}else if("assistant"===msg.role){let blocks=null;if(Array.isArray(content2))blocks=content2.filter(b=>"text"!==b.type||!isSystemText(b.text));else if("string"==typeof content2){const dispText=extractDisplayText(content2);dispText&&(blocks=[{type:"text",text:dispText}])}blocks&&blocks.length>0&&out.push(jsxRuntimeExports.jsx(ChatMessage,{role:"assistant",content:blocks,toolResultMap:maps.toolResultMap,readContentMap:maps.readContentMap,editSnapshotMap:maps.editSnapshotMap,askAnswerMap:maps.askAnswerMap,planApprovalMap:maps.planApprovalMap,latestPlanContent:maps.latestPlanContent,timestamp:ts,displayTs:msg._generatedTs,collapseToolResults:!0,isHistoryLog:!0,imAgent:imAgent},`${kp}-asst-${mi}`))}})}),out}(sessions,senderMap,reactExports.useMemo(()=>descriptor?{name:label2,Icon:descriptor.icon,color:descriptor.color}:null,[platform,label2])),title=jsxRuntimeExports.jsxs("div",{className:styles$a_headerBar,children:[jsxRuntimeExports.jsx("span",{children:t("ui.imRecord.title")}),onOpenConfig?jsxRuntimeExports.jsx(Tooltip,{title:t("ui.imRecord.config"),children:jsxRuntimeExports.jsx(Button,{type:"text",size:"small",icon:jsxRuntimeExports.jsx(RefIcon$f,{}),className:styles$a_refreshBtn,onClick:()=>onOpenConfig(platform)})}):null,jsxRuntimeExports.jsx(Tooltip,{title:t("ui.imRecord.refresh"),children:jsxRuntimeExports.jsx(Button,{type:"text",size:"small",icon:jsxRuntimeExports.jsx(RefIcon$g,{spin:loading}),className:styles$a_refreshBtn,disabled:loading,onClick:()=>setReloadKey(k=>k+1)})}),jsxRuntimeExports.jsx("span",{className:styles$a_statusTag,children:(()=>{if(null==imConn?void 0:imConn.lastError)return jsxRuntimeExports.jsxs(Tag,{color:"error",children:[t("ui.im.statusError"),": ",imConn.lastError]});const portSuffix=(null==imProc?void 0:imProc.port)?` :${imProc.port}`:"",st=null==imProc?void 0:imProc.state;return st?"ready"===st?(null==imConn?void 0:imConn.connected)?jsxRuntimeExports.jsxs(Tag,{color:"success",children:[t("ui.im.statusConnected"),portSuffix]}):jsxRuntimeExports.jsxs(Tag,{color:"processing",children:[t("ui.im.statusRunning"),portSuffix]}):"booting"===st?jsxRuntimeExports.jsx(Tag,{color:"processing",children:t("ui.im.statusBooting")}):"hung"===st?jsxRuntimeExports.jsx(Tag,{color:"warning",children:t("ui.im.statusHung")}):jsxRuntimeExports.jsx(Tag,{children:t("ui.im.statusDisconnected")}):imConn?imConn.connected?jsxRuntimeExports.jsx(Tag,{color:"success",children:t("ui.im.statusConnected")}):imConn.running?jsxRuntimeExports.jsx(Tag,{color:"processing",children:t("ui.im.statusRunning")}):jsxRuntimeExports.jsx(Tag,{children:t("ui.im.statusDisconnected")}):null})()})]});return jsxRuntimeExports.jsx(Drawer,{open:open,onClose:onClose,placement:"left",width:"min(760px, 92vw)",rootClassName:"cxvSideDrawer",destroyOnHidden:!0,title:title,styles:{body:{padding:0,overflow:"hidden",background:"var(--bg-elevated)"},header:{background:"var(--bg-elevated)"}},children:jsxRuntimeExports.jsx("div",{className:styles$a_scrollBody,ref:bodyRef,onScroll:e=>{if(!open||!platform)return;const el=e.currentTarget,atBottom=el.scrollHeight-el.scrollTop-el.clientHeight<=24;scrollMemRef.current[platform]={top:el.scrollTop,atBottom:atBottom}},children:items.length>0?items:loading?jsxRuntimeExports.jsxs("div",{className:styles$a_center,children:[jsxRuntimeExports.jsx(Spin,{}),jsxRuntimeExports.jsx("span",{className:styles$a_hint,children:t("ui.imRecord.loading")})]}):error?jsxRuntimeExports.jsxs("div",{className:styles$a_center,children:[jsxRuntimeExports.jsx(Empty,{description:t("ui.imRecord.loadFailed")}),jsxRuntimeExports.jsx(Button,{size:"small",onClick:()=>setReloadKey(k=>k+1),children:t("ui.imRecord.refresh")})]}):jsxRuntimeExports.jsx(Empty,{description:t("ui.imRecord.empty")})})})}const styles$9_chip="_chip_bvaji_4",styles$9_logo="_logo_bvaji_16",styles$9_connecting="_connecting_bvaji_22",styles$9_dotError="_dotError_bvaji_27";function ImStatusChip({descriptor:descriptor,onClick:onClick,onStatus:onStatus}){const[enabled,setEnabled]=reactExports.useState(!1),[connection,setConnection]=reactExports.useState(null),Icon2=descriptor.icon,fetchStatus=reactExports.useCallback(async()=>{try{const r=await fetch(apiUrl(descriptor.endpoints.status));if(!r.ok)return void setConnection({running:!1,connected:!1});const d=await r.json();setEnabled(!!d.enabled),setConnection(d.connection||null)}catch{setConnection({running:!1,connected:!1})}},[descriptor]);if(reactExports.useEffect(()=>{fetchStatus();const id=setInterval(fetchStatus,5e3);return()=>clearInterval(id)},[fetchStatus]),reactExports.useEffect(()=>{onStatus&&onStatus(descriptor.id,{enabled:enabled,running:!!(null==connection?void 0:connection.running),connected:!(!connection||!connection.connected||connection.lastError)})},[enabled,connection,onStatus,descriptor.id]),!enabled)return null;let state="stopped";(null==connection?void 0:connection.lastError)?state="error":(null==connection?void 0:connection.running)&&(null==connection?void 0:connection.connected)?state="connected":(null==connection?void 0:connection.running)&&(state="running");const statusLabel="connected"===state?imTr("ui.im.statusConnected",null,"Connected"):"running"===state?imTr("ui.im.statusRunning",null,"Running, connecting…"):"error"===state?`${imTr("ui.im.statusError",null,"Error")}: ${connection.lastError}`:imTr("ui.im.statusStopped",null,"Stopped"),label2=imTr(descriptor.labelKey,null,descriptor.fallback),color="connected"===state||"running"===state?descriptor.color:"var(--text-tertiary, #999)",iconClass="running"===state?`${styles$9_logo} ${styles$9_connecting}`:styles$9_logo;return jsxRuntimeExports.jsx(Tooltip,{title:`${label2} · ${statusLabel}`,children:jsxRuntimeExports.jsxs("span",{className:styles$9_chip,onClick:onClick,role:"button",tabIndex:0,"aria-label":`${label2} · ${statusLabel}`,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||null==onClick||onClick()},children:[jsxRuntimeExports.jsx(Icon2,{size:16,className:iconClass,style:{color:color}}),"error"===state?jsxRuntimeExports.jsx("span",{className:styles$9_dotError,"aria-hidden":"true"}):null]})})}const styles$8_headerBar="_headerBar_y6lh1_2",styles$8_logoWrap="_logoWrap_y6lh1_10",styles$8_logoWrapActive="_logoWrapActive_y6lh1_17",styles$8_logoImage="_logoImage_y6lh1_26",styles$8_logoImageActive="_logoImageActive_y6lh1_36",styles$8_compactBtn="_compactBtn_y6lh1_43",styles$8_headerProjectName="_headerProjectName_y6lh1_79",styles$8_qrcodePopover="_qrcodePopover_y6lh1_101",styles$8_qrcodeTitle="_qrcodeTitle_y6lh1_119",styles$8_qrcodeUrlInput="_qrcodeUrlInput_y6lh1_126",styles$8_qrcodeUrlCopy="_qrcodeUrlCopy_y6lh1_132",styles$8_authSection="_authSection_y6lh1_143",styles$8_authHeaderRow="_authHeaderRow_y6lh1_157",styles$8_authTitle="_authTitle_y6lh1_163",styles$8_authPasswordInput="_authPasswordInput_y6lh1_174",styles$8_authSaveBtn="_authSaveBtn_y6lh1_179",styles$8_authEmptyWarn="_authEmptyWarn_y6lh1_183",styles$8_settingsGroupBox="_settingsGroupBox_y6lh1_191",styles$8_settingsGroupTitle="_settingsGroupTitle_y6lh1_199",styles$8_settingsItem="_settingsItem_y6lh1_208",styles$8_settingsLabel="_settingsLabel_y6lh1_215",styles$8_settingsHelpIcon="_settingsHelpIcon_y6lh1_220",styles$8_settingsDivider="_settingsDivider_y6lh1_227",styles$8_logDirInput="_logDirInput_y6lh1_232",styles$8_tokenStatsEmpty="_tokenStatsEmpty_y6lh1_242",styles$8_tokenStatsContainer="_tokenStatsContainer_y6lh1_249",styles$8_tokenStatsColumn="_tokenStatsColumn_y6lh1_255",styles$8_toolStatsColumn="_toolStatsColumn_y6lh1_259",styles$8_modelCardSpaced="_modelCardSpaced_y6lh1_265 _modelCard_1vshv_3",styles$8_promptExportBar="_promptExportBar_y6lh1_283",styles$8_promptScrollArea="_promptScrollArea_y6lh1_287",styles$8_promptEmpty="_promptEmpty_y6lh1_292",styles$8_promptTimestamp="_promptTimestamp_y6lh1_298",styles$8_textPromptCard="_textPromptCard_y6lh1_306",styles$8_preText="_preText_y6lh1_315",styles$8_systemCollapse="_systemCollapse_y6lh1_325",styles$8_systemLabel="_systemLabel_y6lh1_332",styles$8_preSys="_preSys_y6lh1_337",styles$8_promptTextarea="_promptTextarea_y6lh1_347",styles$8_projectStatsCenter="_projectStatsCenter_y6lh1_363",styles$8_projectStatsEmpty="_projectStatsEmpty_y6lh1_369",styles$8_projectStatsContent="_projectStatsContent_y6lh1_376",styles$8_projectStatsUpdated="_projectStatsUpdated_y6lh1_382",styles$8_projectStatsSummary="_projectStatsSummary_y6lh1_388",styles$8_projectStatCard="_projectStatCard_y6lh1_394",styles$8_projectStatValue="_projectStatValue_y6lh1_402",styles$8_projectStatLabel="_projectStatLabel_y6lh1_410",styles$8_projectStatsSection="_projectStatsSection_y6lh1_416",styles$8_projectStatsSectionTitle="_projectStatsSectionTitle_y6lh1_422",styles$8_projectStatsModelCard="_projectStatsModelCard_y6lh1_430",styles$8_projectStatsModelHeader="_projectStatsModelHeader_y6lh1_437",styles$8_projectStatsModelName="_projectStatsModelName_y6lh1_446",styles$8_projectStatsModelCount="_projectStatsModelCount_y6lh1_452",styles$8_thLeft="_thLeft_y6lh1_463",styles$8_qrcodeIcon="_qrcodeIcon_y6lh1_482",styles$8_approvalBell="_approvalBell_y6lh1_508",styles$8_approvalBellBadge="_approvalBellBadge_y6lh1_533",styles$8_proxySwapIcon="_proxySwapIcon_y6lh1_550",styles$8_proxyProfileTag="_proxyProfileTag_y6lh1_556",styles$8_pinnedShortcut="_pinnedShortcut_y6lh1_572",styles$8_themeToggle="_themeToggle_y6lh1_601",styles$8_themeToggleIcon="_themeToggleIcon_y6lh1_627",styles$8_headerRightRow="_headerRightRow_y6lh1_632";function makeAuthState(over={}){return{enabled:!1,isAdmin:!1,password:null,scope:"global",hasProjectOverride:!1,projectDir:null,global:{enabled:!1,password:null},...over}}function HeaderProjectLabel({projectName:projectName,isLocalLog:isLocalLog,instanceId:instanceId}){const alias=useProjectAlias(projectName);return jsxRuntimeExports.jsxs("span",{className:styles$8_headerProjectName,children:[t("ui.liveMonitoring"),projectName?`:${projectName}`:"",instanceId?`(${instanceId})`:"",alias?` (${alias})`:"",jsxRuntimeExports.jsx(ProjectAliasEditor,{projectName:projectName,isLocalLog:isLocalLog})]})}const _AppHeader=class _AppHeader extends React__default.Component{constructor(props){super(props),__publicField(this,"togglePin",key=>{this.setState(s=>{const next=togglePinned(s.pinnedKeys,key);try{localStorage.setItem("cxv_pinnedMenuKeys",(arr=next,JSON.stringify(Array.isArray(arr)?arr:[])))}catch{}var arr;return{pinnedKeys:next}})}),__publicField(this,"_imStatus",{}),__publicField(this,"_onImStatus",(id,info)=>{const prev=this._imStatus[id];prev&&prev.enabled===info.enabled&&prev.connected===info.connected||(this._imStatus[id]=info,this._pushHeaderModel())}),__publicField(this,"_syncMenuBarState",()=>{var _a,_b;try{null==(_b=null==(_a=window.tabBridge)?void 0:_a.menuBarState)||_b.call(_a,!!this.state.electronMenuBar)}catch{}}),__publicField(this,"_closeMenuBar",()=>this.setState({electronMenuBar:null},this._syncMenuBarState)),__publicField(this,"_onQrOutsidePointer",e=>{if(!this.state.electronQrOpen)return;const tgt=e&&e.target;tgt&&"function"==typeof tgt.closest&&tgt.closest(".ant-popover")||this.setState({electronQrOpen:!1})}),__publicField(this,"_onQrKeyDown",e=>{e&&"Escape"===e.key&&this.state.electronQrOpen&&this.setState({electronQrOpen:!1})}),__publicField(this,"reloadFsSkills",async()=>loadFsSkills(this,{isLocalLog:this.props.isLocalLog})),__publicField(this,"postAuthConfig",async(body,opts={})=>{if(!this.state._authSaving){this.setState({_authSaving:!0});try{const post=async b=>{const r=await fetch(apiUrl("/api/auth/config"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!r.ok)throw new Error("auth-config "+r.status);return r.json()};let data=await post(body);opts.thenClearOverride&&(data=await post({clearOverride:!0})),this._applyAuthState(data),staticMethods.success(t("ui.auth.saved"))}catch{staticMethods.error(t("ui.auth.saveFailed"))}finally{this.setState({_authSaving:!1})}}}),__publicField(this,"loadMemory",async()=>loadProjectMemory(this)),__publicField(this,"handleRefreshMemory",async()=>{if(this.state._memoryRefreshing)return;this.setState({_memoryRefreshing:!0});const seq=++this._memorySeq;let ok=!1,stale=!1;try{const r=await fetch(apiUrl("/api/project-memory")),data=await r.json();seq!==this._memorySeq?stale=!0:r.ok?(this.setState({_memory:data}),ok=!0):this.setState({_memory:!1})}catch{seq!==this._memorySeq?stale=!0:this.setState({_memory:!1})}finally{stale||this.setState({_memoryRefreshing:!1})}stale||(ok?staticMethods.success(t("ui.memoryRefreshSuccess")):staticMethods.error(t("ui.memoryRefreshFailed"),5))}),__publicField(this,"_isCacheDetailModalOpen",()=>!!(this.state._memoryDetail||this.state._codexMdDetail||this.state._toolsCatalogOpen||this.state._skillsModal&&this.state._skillsModal.open)),__publicField(this,"_setToolsCatalogOpen",o=>this.setState({_toolsCatalogOpen:o})),__publicField(this,"handleCachePopoverOpenChange",open=>{!open&&this._isCacheDetailModalOpen()||(this.setState({_cachePopoverOpen:open}),open||(this._cacheScrollInited=!1),open&&null===this.state._fsSkills&&!this.props.isLocalLog&&this.reloadFsSkills(),open&&null===this.state._memory&&this.loadMemory(),open&&null===this.state._codexMd&&this.loadCodexMdList())}),__publicField(this,"loadCodexMdList",async()=>loadCodexMdList(this)),__publicField(this,"loadCodexMdDetail",async(id,tail,scope)=>{const seq=++this._codexMdDetailSeq,title=`${t("global"===scope?"ui.codexMdScopeGlobal":"ui.codexMdScopeProject")} · ${tail}`;this.setState({_codexMdDetail:{name:title,loading:!0}});try{const r=await fetch(apiUrl(`/api/codex-md?id=${encodeURIComponent(id)}`)),data=await r.json();if(seq!==this._codexMdDetailSeq)return;if(!r.ok)return void this.setState({_codexMdDetail:{name:title,error:data.error||`http:${r.status}`}});this.setState({_codexMdDetail:{name:title,content:data.content||""}})}catch(e){seq===this._codexMdDetailSeq&&this.setState({_codexMdDetail:{name:title,error:e.message||"network"}})}}),__publicField(this,"loadMemoryDetail",async name=>{const seq=++this._memoryDetailSeq;this.setState({_memoryDetail:{name:name,loading:!0}});try{const r=await fetch(apiUrl(`/api/project-memory?file=${encodeURIComponent(name)}`)),data=await r.json();if(seq!==this._memoryDetailSeq)return;if(!r.ok)return void this.setState({_memoryDetail:{name:name,error:data.error||`http:${r.status}`}});this.setState({_memoryDetail:{name:name,content:data.content||""}})}catch(e){seq===this._memoryDetailSeq&&this.setState({_memoryDetail:{name:name,error:e.message||"network"}})}}),__publicField(this,"handleShowPrompts",()=>{this.setState({promptModalVisible:!0,promptData:this.extractUserPrompts()})}),__publicField(this,"handleExportPromptsTxt",()=>{const prompts=this.state.promptData;if(!prompts||0===prompts.length)return;const blocks=[];for(const p of prompts){const lines=[],ts=p.timestamp?new Date(p.timestamp).toLocaleString():"";ts&&lines.push(`${ts}:\n`);const textParts=(p.segments||[]).filter(seg=>"text"===seg.type).map(seg=>seg.content);textParts.length>0&&lines.push(textParts.join("\n")),blocks.push(lines.join("\n"))}if(0===blocks.length)return;const blob=new Blob([blocks.join("\n\n\n\n")],{type:"text/plain;charset=utf-8"}),url=URL.createObjectURL(blob),a=document.createElement("a");a.href=url,a.download=`user-prompts-${(new Date).toISOString().slice(0,10)}.txt`,a.click(),URL.revokeObjectURL(url)}),__publicField(this,"handleShowProjectStats",()=>{this.setState({projectStatsVisible:!0,projectStatsLoading:!0}),fetch(apiUrl("/api/project-stats")).then(res=>{if(!res.ok)throw new Error("not found");return res.json()}).then(data=>this.setState({projectStats:data,projectStatsLoading:!1})).catch(()=>this.setState({projectStats:null,projectStatsLoading:!1}))}),__publicField(this,"handleShowPlugins",()=>this.setState({pluginModalVisible:!0})),__publicField(this,"handleShowProcesses",()=>this.setState({processModalVisible:!0})),__publicField(this,"handleOpenSkillsModal",async()=>{const cached=this.state._fsSkills,needFetch=!Array.isArray(cached);if(this.setState(prev=>{var _a;return{_skillsModal:{open:!0,loading:needFetch,skills:Array.isArray(cached)?sortSkillsDefault(cached):[],error:null,toggling:(null==(_a=prev._skillsModal)?void 0:_a.toggling)||new Set}}}),needFetch){const result=await this.reloadFsSkills();this.setState(prev=>({_skillsModal:{...prev._skillsModal,loading:!1,skills:result.ok?sortSkillsDefault(result.skills):[],error:result.ok?null:result.reason}}))}}),__publicField(this,"handleToggleSkill",skill=>handleSkillToggle(this,skill)),__publicField(this,"handleDeleteSkill",skill=>handleSkillDelete(this,skill)),this.state={promptModalVisible:!1,promptData:[],promptViewMode:"original",settingsDrawerVisible:!1,globalSettingsVisible:!1,projectStatsVisible:!1,projectStats:null,projectStatsLoading:!1,localUrl:"",pluginModalVisible:!1,processModalVisible:!1,logoDropdownOpen:!1,electronMenuOpen:!1,electronMenuBar:null,proxyModalVisible:!1,systemTextModalVisible:!1,messagingModalVisible:!1,messagingInitialTool:null,imRecordVisible:!1,imRecordPlatform:null,logDirDraft:null,qrPopoverOpen:!1,electronQrOpen:!1,electronQrAnchor:null,projectPrefsModalOpen:!1,_skillsModal:{open:!1,loading:!1,skills:[],error:null,toggling:new Set},_fsSkills:null,_memory:null,_memoryRefreshing:!1,_memoryDetail:null,_toolsCatalogOpen:!1,_codexMd:null,_codexMdDetail:null,authState:makeAuthState(),_authPasswordDraft:null,_authSaving:!1,_authScope:null,pinnedKeys:parsePinned("undefined"!=typeof localStorage?localStorage.getItem("cxv_pinnedMenuKeys"):null)},this._fsSkillsSeq=0,this._memorySeq=0,this._memoryDetailSeq=0,this._codexMdSeq=0,this._codexMdDetailSeq=0}_isElectronTab(){return"undefined"!=typeof window&&!(!window.tabBridge||!window.tabBridge.setHeaderModel)}_getMenuDescriptors(){const{viewMode:viewMode,onImportLocalLogs:onImportLocalLogs,isLocalLog:isLocalLog}=this.props;return[{key:"import-local",icon:jsxRuntimeExports.jsx(RefIcon$3,{}),label:t("ui.importLocalLogs"),onClick:onImportLocalLogs},{key:"export-prompts",icon:jsxRuntimeExports.jsx(RefIcon$4,{}),label:t("ui.exportPrompts"),onClick:this.handleShowPrompts},{key:"plugin-management",icon:jsxRuntimeExports.jsx(RefIcon$h,{}),label:t("ui.pluginManagement"),onClick:this.handleShowPlugins},{key:"process-management",icon:jsxRuntimeExports.jsx(RefIcon$i,{}),label:t("ui.processManagement"),onClick:this.handleShowProcesses},...isLocalLog?[]:[{key:"messaging",icon:jsxRuntimeExports.jsx(RefIcon$2,{}),label:t("ui.messaging.menu"),onClick:()=>this.setState({messagingModalVisible:!0,messagingInitialTool:null})}],{key:"proxy-switch",icon:jsxRuntimeExports.jsx(RefIcon$j,{}),label:t("ui.proxySwitch"),onClick:()=>this.setState({proxyModalVisible:!0}),dividerAfter:!0},{key:"project-stats",icon:jsxRuntimeExports.jsx(RefIcon$6,{}),label:t("ui.projectStats"),onClick:this.handleShowProjectStats},..."raw"===viewMode?[{key:"global-settings",icon:jsxRuntimeExports.jsx(RefIcon$f,{}),label:t("ui.globalSettings"),onClick:()=>this.setState({globalSettingsVisible:!0})}]:[],..."chat"===viewMode?[{key:"display-settings",icon:jsxRuntimeExports.jsx(RefIcon$f,{}),label:t("ui.settings"),onClick:()=>this.setState({settingsDrawerVisible:!0})}]:[]]}getMenuItems(){const pinned=new Set(this.state.pinnedKeys),items=[];for(const d of this._getMenuDescriptors()){const isPinned=pinned.has(d.key),pinTitle=t(isPinned?"ui.menuUnpin":"ui.menuPin");items.push({key:d.key,icon:d.icon,onClick:d.onClick,label:jsxRuntimeExports.jsxs("span",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[jsxRuntimeExports.jsx("span",{children:d.label}),jsxRuntimeExports.jsx("span",{"data-pin-trigger":!0,"data-pinned":isPinned?"true":"false",role:"button",tabIndex:0,"aria-label":pinTitle,title:pinTitle,style:{display:"inline-flex",alignItems:"center"},onClick:e=>{e.stopPropagation(),this.togglePin(d.key)},children:isPinned?jsxRuntimeExports.jsx(RefIcon$1,{}):jsxRuntimeExports.jsx(RefIcon,{})})]})}),d.dividerAfter&&items.push({type:"divider"})}return items}_buildApprovalInfo(){var _a,_b,_c,_d,_e,_f;const ag=this.props.approvalGlobal,adi=this.props.approvalDismissedIds,own=this.props.approvalOwnPending||{ask:0,ptyPlan:0};if(!ag||!this.props.onApprovalReopen)return null;let dismissedActive=0;null!=(null==(_b=null==(_a=ag.ask)?void 0:_a.ask)?void 0:_b.id)&&adi instanceof Set&&adi.has(`ask:${ag.ask.ask.id}`)&&dismissedActive++,null!=(null==(_d=null==(_c=ag.ptyPlan)?void 0:_c.ptyPlan)?void 0:_d.id)&&adi instanceof Set&&adi.has(`ptyPlan:${ag.ptyPlan.ptyPlan.id}`)&&dismissedActive++;const total=dismissedActive+(!(null==(_e=ag.ask)?void 0:_e.ask)&&!(null==(_f=ag.ptyPlan)?void 0:_f.ptyPlan)?(own.ask||0)+(own.ptyPlan||0):0);if(0===total)return null;return{count:total,title:((k,p,f)=>{try{const r=t(k,p);return r&&r!==k?r:f}catch{return f}})(dismissedActive>0?"ui.approval.bell.reopen":"ui.approval.bell.orphan",null,dismissedActive>0?"Reopen approval modal":"Server has pending approvals")}}_buildHeaderModel(){const{viewMode:viewMode,themeColor:themeColor,terminalVisible:terminalVisible,cliMode:cliMode,isLocalLog:isLocalLog,activeProxyId:activeProxyId,proxyProfiles:proxyProfiles}=this.props;let proxy=null;if(activeProxyId&&"max"!==activeProxyId){const p=(proxyProfiles||[]).find(x=>x.id===activeProxyId);p&&(proxy={label:`${p.name}${profileDisplayModel(p)?` · ${profileDisplayModel(p)}`:""}`})}const showThemeBlock="chat"===viewMode&&cliMode&&!isLocalLog&&!!this.state.localUrl,im=IM_PLATFORMS.filter(p=>this._imStatus[p.id]&&this._imStatus[p.id].enabled).map(p=>{const nm=t(p.labelKey);return{id:p.id,connected:!!this._imStatus[p.id].connected,name:nm&&nm!==p.labelKey?nm:p.fallback||p.id}}),descByKey=new Map(this._getMenuDescriptors().map(d=>[d.key,d])),pins=this.state.pinnedKeys.map(k=>descByKey.get(k)).filter(Boolean).map(d=>({key:d.key,name:d.label}));return{menu:{title:t("ui.menu")},deviceMode:{toIpad:t("ui.deviceMode.toIpad"),toPc:t("ui.deviceMode.toPc")},proxy:proxy,approval:this._buildApprovalInfo(),theme:showThemeBlock?{mode:"light"===themeColor?"light":"dark",title:t("light"===themeColor?"ui.themeColor.light":"ui.themeColor.dark")}:null,terminal:cliMode&&"chat"===viewMode&&!isLocalLog?{active:!!terminalVisible,label:t("ui.terminal")}:null,viewMode:{mode:viewMode,label:t("raw"===viewMode?"ui.chatMode":"ui.rawMode")},im:im,pins:pins,qr:showThemeBlock?{title:t("ui.scanToCoding")}:null}}_pushHeaderModel(){if(this._isElectronTab())try{const model=this._buildHeaderModel(),json=JSON.stringify(model);if(json===this._lastHeaderModelJson)return;this._lastHeaderModelJson=json,window.tabBridge.setHeaderModel(model)}catch{}}_setupHeaderBridge(){if(this._isElectronTab()){if(this._headerActionDispose){try{this._headerActionDispose()}catch{}this._headerActionDispose=null}try{this._headerActionDispose=window.tabBridge.onHeaderAction(payload=>this._handleHeaderAction(payload))}catch{}this._pushHeaderModel()}}_handleHeaderAction(payload){if(!payload||!payload.type)return;const{themeColor:themeColor,onThemeColorChange:onThemeColorChange,onToggleTerminal:onToggleTerminal,onToggleViewMode:onToggleViewMode,onApprovalReopen:onApprovalReopen}=this.props;switch(payload.type){case"menuOpen":this.setState(s=>({electronMenuOpen:!s.electronMenuOpen}));break;case"menuBarOpen":this.setState(s=>{const cur=s.electronMenuBar;return{electronMenuBar:cur&&cur.menuId===payload.menuId?null:{menuId:payload.menuId,x:payload.x||0,menus:payload.menus||cur&&cur.menus||[]}}},this._syncMenuBarState);break;case"theme":onThemeColorChange&&onThemeColorChange("light"===themeColor?"dark":"light");break;case"terminal":onToggleTerminal&&onToggleTerminal();break;case"viewMode":onToggleViewMode&&onToggleViewMode();break;case"approval":onApprovalReopen&&onApprovalReopen();break;case"proxy":this.setState({proxyModalVisible:!0});break;case"im":this.setState({imRecordVisible:!0,imRecordPlatform:payload.id});break;case"menuShortcut":{const d=this._getMenuDescriptors().find(x=>x.key===payload.key);d&&d.onClick&&d.onClick();break}case"qrOpen":this.setState(s=>({electronQrOpen:!s.electronQrOpen,electronQrAnchor:Number.isFinite(payload.rightOffset)?payload.rightOffset:s.electronQrAnchor}))}}_displayZoom(){let zoom=1;try{const n=Number(localStorage.getItem("cxv_displayScale"));Number.isFinite(n)&&n>=50&&n<=200&&(zoom=n/100)}catch{}return zoom}componentDidMount(){fetch(apiUrl("/api/local-url")).then(r=>r.json()).then(data=>{data.url&&this.setState({localUrl:data.url})}).catch(()=>{}),fetch(apiUrl("/api/auth/state")).then(r=>{if(!r.ok)throw new Error("auth-state "+r.status);return r.json()}).then(data=>{this._applyAuthState(data)}).catch(()=>{this.setState({authState:makeAuthState({enabled:!0,global:{enabled:!0,password:null}})})}),this.context._codexSettingsReady.then(data=>{data&&data.model&&this.setState({settingsModel:data.model})}),this.props.isLocalLog||this.reloadFsSkills(),this._setupHeaderBridge(),document.addEventListener("mousedown",this._onQrOutsidePointer),document.addEventListener("keydown",this._onQrKeyDown)}componentDidUpdate(prevProps){this._pushHeaderModel(),prevProps.projectName!==this.props.projectName&&(this._fsSkillsSeq++,this.setState({_fsSkills:null}),!this.props.isLocalLog&&this.props.projectName&&this.reloadFsSkills(),this._memorySeq++,this.setState({_memory:null,_memoryDetail:null,_memoryRefreshing:!1}),this._codexMdSeq++,this._codexMdDetailSeq++,this.setState({_codexMd:null,_codexMdDetail:null}))}_applyAuthState(data){this.setState({authState:makeAuthState({enabled:!!data.enabled,isAdmin:!!data.isAdmin,password:data.password??null,scope:"project"===data.scope?"project":"global",hasProjectOverride:!!data.hasProjectOverride,projectDir:data.projectDir||null,global:data.global&&"object"==typeof data.global?data.global:{enabled:!1,password:null}}),_authPasswordDraft:null})}shareUrl(){const{localUrl:localUrl,authState:authState}=this.state;if(!localUrl||!authState.enabled)return localUrl;const i=localUrl.indexOf("?");return-1===i?localUrl:localUrl.slice(0,i)}renderPasswordSection(){const{authState:authState,_authScope:_authScope,_authSaving:_authSaving}=this.state;if(!!!authState.projectDir)return authState.enabled?jsxRuntimeExports.jsxs("div",{className:styles$8_authSection,children:[jsxRuntimeExports.jsxs("div",{className:styles$8_authHeaderRow,children:[jsxRuntimeExports.jsx("span",{className:styles$8_authTitle,children:t("ui.auth.title")}),jsxRuntimeExports.jsx(Switch,{size:"small",checked:!0,loading:_authSaving,title:t("ui.auth.disable"),onChange:()=>this.postAuthConfig({scope:"global",enabled:!1})})]}),this.renderPasswordInput("global",{enabled:authState.enabled,password:authState.password})]}):jsxRuntimeExports.jsx("div",{className:styles$8_authSection,children:jsxRuntimeExports.jsx(Button,{size:"small",type:"primary",loading:_authSaving,onClick:()=>this.postAuthConfig({scope:"global",enabled:!0}),children:t("ui.auth.enableBtn")})});const protectedNow=authState.enabled,sourceTab=_authScope||authState.scope||"project",cfg="global"===sourceTab?authState.global||{enabled:!1,password:null}:{enabled:authState.enabled,password:authState.password};return jsxRuntimeExports.jsxs("div",{className:styles$8_authSection,children:[jsxRuntimeExports.jsxs("div",{className:styles$8_authHeaderRow,children:[jsxRuntimeExports.jsx("span",{className:styles$8_authTitle,children:t("ui.auth.title")}),jsxRuntimeExports.jsx(Switch,{size:"small",checked:protectedNow,loading:_authSaving,title:t(protectedNow?"ui.auth.disable":"ui.auth.enableBtn"),onChange:on=>{on?(this.setState({_authScope:"project"}),this.postAuthConfig({scope:"project",enabled:!0})):this.postAuthConfig({scope:"project",enabled:!1})}})]}),protectedNow&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Segmented,{size:"small",block:!0,value:sourceTab,onChange:v=>{this.setState({_authScope:v,_authPasswordDraft:null}),"global"===v?authState.global&&authState.global.enabled?this.postAuthConfig({clearOverride:!0}):this.postAuthConfig({scope:"global",enabled:!0},{thenClearOverride:!0}):this.postAuthConfig({scope:"project",enabled:!0})},options:[{label:t("ui.auth.scopeProject"),value:"project"},{label:t("ui.auth.scopeGlobal"),value:"global"}]}),this.renderPasswordInput(sourceTab,cfg)]})]})}renderPasswordInput(scope,cfg){const{_authPasswordDraft:_authPasswordDraft,_authSaving:_authSaving}=this.state,pw=(cfg.password??"").toUpperCase(),draft=null==_authPasswordDraft?pw:_authPasswordDraft,dirty=null!=_authPasswordDraft&&_authPasswordDraft!==pw;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Input,{value:draft,className:styles$8_authPasswordInput,onChange:e=>this.setState({_authPasswordDraft:e.target.value.toUpperCase()}),onPressEnter:()=>dirty&&this.postAuthConfig({scope:scope,password:draft}),suffix:jsxRuntimeExports.jsx(RefIcon$k,{className:styles$8_qrcodeUrlCopy,title:t("ui.auth.copy"),onClick:()=>{navigator.clipboard.writeText(pw).then(()=>staticMethods.success(t("ui.auth.copied"))).catch(()=>{})}})}),dirty&&jsxRuntimeExports.jsx(Button,{size:"small",type:"primary",loading:_authSaving,className:styles$8_authSaveBtn,onClick:()=>this.postAuthConfig({scope:scope,password:draft}),children:t("ui.auth.save")}),""===draft&&jsxRuntimeExports.jsx("div",{className:styles$8_authEmptyWarn,children:t("ui.auth.emptyWarning")})]})}shouldComponentUpdate(nextProps,nextState){return nextProps.requests!==this.props.requests||nextProps.requestCount!==this.props.requestCount||nextProps.viewMode!==this.props.viewMode||nextProps.isLocalLog!==this.props.isLocalLog||nextProps.localLogFile!==this.props.localLogFile||nextProps.projectName!==this.props.projectName||nextProps.instanceId!==this.props.instanceId||nextProps.filterIrrelevant!==this.props.filterIrrelevant||nextProps.logDir!==this.props.logDir||nextProps.cliMode!==this.props.cliMode||nextProps.sdkMode!==this.props.sdkMode||nextProps.terminalVisible!==this.props.terminalVisible||nextProps.contextWindow!==this.props.contextWindow||nextProps.contextBarOptimistic!==this.props.contextBarOptimistic||nextProps.contextBarLocked!==this.props.contextBarLocked||nextProps.contextBarSlot!==this.props.contextBarSlot||nextProps.resumeAutoChoice!==this.props.resumeAutoChoice||nextProps.themeColor!==this.props.themeColor||nextProps.displayScale!==this.props.displayScale||nextProps.approvalsReviewer!==this.props.approvalsReviewer||nextProps.proxyProfiles!==this.props.proxyProfiles||nextProps.activeProxyId!==this.props.activeProxyId||nextProps.defaultConfig!==this.props.defaultConfig||nextProps.approvalPrefs!==this.props.approvalPrefs||nextProps.approvalGlobal!==this.props.approvalGlobal||nextProps.approvalDismissedIds!==this.props.approvalDismissedIds||nextProps.approvalOwnPending!==this.props.approvalOwnPending||nextState!==this.state}componentWillUnmount(){if(this._headerActionDispose){try{this._headerActionDispose()}catch{}this._headerActionDispose=null}document.removeEventListener("mousedown",this._onQrOutsidePointer),document.removeEventListener("keydown",this._onQrKeyDown),this._fsSkillsSeq++,this._memorySeq++,this._memoryDetailSeq++,this._codexMdSeq++,this._codexMdDetailSeq++}static parseSegments(text){const segments=[],regex=/<([a-zA-Z_][\w-]*)(?:\s[^>]*)?>[\s\S]*?<\/\1>/g;let match,lastIndex=0;for(;null!==(match=regex.exec(text));){const before=text.slice(lastIndex,match.index).trim();before&&segments.push({type:"text",content:before});const tagName=match[1];if(lastIndex=match.index+match[0].length,_AppHeader.COMMAND_TAGS.has(tagName))continue;const innerRegex=new RegExp(`^<${tagName}(?:\\s[^>]*)?>([\\s\\S]*)<\\/${tagName}>$`),innerMatch=match[0].match(innerRegex),content2=innerMatch?innerMatch[1].trim():match[0].trim();segments.push({type:"system",content:content2,label:tagName})}const after=text.slice(lastIndex).trim();return after&&segments.push({type:"text",content:after}),segments}static extractUserTexts(messages){const userMsgs=[],fullTexts=[];let slashCmd=null;for(const msg of messages)if("user"===msg.role)if("string"==typeof msg.content){const text=extractDisplayText(parseImOrigin(msg.content).text);if(!text)continue;if(/Implement the following plan:/i.test(text))continue;userMsgs.push(text),fullTexts.push(text)}else if(Array.isArray(msg.content)){const{commands:commands,textBlocks:textBlocks}=classifyUserContent(msg.content);commands.length>0&&(slashCmd=commands[commands.length-1]);const userParts=[];for(const b of textBlocks)/Implement the following plan:/i.test((b.text||"").trim())||userParts.push(b.text.trim());const allParts=msg.content.filter(b=>{var _a;return"text"===b.type&&(null==(_a=b.text)?void 0:_a.trim())}).map(b=>b.text.trim());userParts.length>0&&(userMsgs.push(userParts.join("\n")),fullTexts.push(allParts.join("\n")))}return{userMsgs:userMsgs,fullTexts:fullTexts,slashCmd:slashCmd}}extractUserPrompts(){var _a;const{requests:requests=[]}=this.props,prompts=[],seen=new Set;let prevSlashCmd=null;const mainAgentRequests=requests.filter(r=>isMainAgent(r));for(let ri=0;ri<mainAgentRequests.length;ri++){const req=mainAgentRequests[ri],messages=(null==(_a=req.body)?void 0:_a.input)||[],timestamp=req.timestamp||"",{userMsgs:userMsgs,fullTexts:fullTexts,slashCmd:slashCmd}=_AppHeader.extractUserTexts(messages);slashCmd&&"/compact"!==slashCmd&&slashCmd!==prevSlashCmd&&prompts.push({type:"prompt",segments:[{type:"text",content:slashCmd}],timestamp:timestamp}),prevSlashCmd=slashCmd;for(let i=0;i<userMsgs.length;i++){const key=userMsgs[i];if(seen.has(key))continue;seen.add(key);const raw=fullTexts[i]||key;prompts.push({type:"prompt",segments:_AppHeader.parseSegments(raw),timestamp:timestamp})}}return prompts}renderTokenStats(closeParent){const{requests:requests=[]}=this.props;if(this._tokenStatsCache&&this._tokenStatsCacheReq===requests)return this._tokenStatsCache;const byModel=computeTokenStats(requests),models=Object.keys(byModel),toolStats=computeToolUsageStats(requests),skillStats=computeSkillUsageStats(requests);if(0===models.length&&0===toolStats.length)return jsxRuntimeExports.jsx("div",{className:styles$8_tokenStatsEmpty,children:"暂无 token 数据"});const tokenColumn=jsxRuntimeExports.jsx("div",{className:styles$8_tokenStatsColumn,children:models.map(model=>{const s=byModel[model];return jsxRuntimeExports.jsxs("div",{className:models.length>1?styles$8_modelCardSpaced:sharedChrome.modelCard,children:[jsxRuntimeExports.jsx("div",{className:sharedChrome.modelName,children:model}),jsxRuntimeExports.jsx("table",{className:sharedChrome.statsTable,children:jsxRuntimeExports.jsxs("tbody",{children:[jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label,children:t("ui.stats.token")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.input")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.output")})]}),jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rowBorder,children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:formatTokenCount(s.input)}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:formatTokenCount(s.output)})]}),jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label,children:t("ui.stats.cache")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.cacheRead")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.cacheWrite")})]}),jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rowBorder,children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:formatTokenCount(s.cacheRead)}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:formatTokenCount(s.cacheWrite)})]})]})})]},model)})}),agentStatsColumn=this.renderAgentActivityStats(),toolColumn=toolStats.length>0?jsxRuntimeExports.jsx("div",{className:styles$8_toolStatsColumn,children:jsxRuntimeExports.jsxs("div",{className:sharedChrome.modelCard,children:[jsxRuntimeExports.jsxs("div",{className:sharedChrome.modelName,children:[t("ui.toolUsageStats")," ",jsxRuntimeExports.jsx(ToolsHelp,{closeParent:closeParent})]}),jsxRuntimeExports.jsxs("table",{className:sharedChrome.statsTable,children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:`${sharedChrome.th} ${styles$8_thLeft}`,children:t("ui.stats.tool")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.count")})]})}),jsxRuntimeExports.jsxs("tbody",{children:[toolStats.map(([name,count])=>jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rowBorder,children:[jsxRuntimeExports.jsxs("td",{className:sharedChrome.label,children:[name," ",jsxRuntimeExports.jsx(ConceptHelp,{doc:`Tool-${name}`})]}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:count})]},name)),toolStats.length>1&&jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rebuildTotalRow,children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label,children:t("ui.stats.total")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:toolStats.reduce((s,e)=>s+e[1],0)})]})]})]})]})}):null,skillColumn=skillStats.length>0?jsxRuntimeExports.jsx("div",{className:styles$8_toolStatsColumn,children:jsxRuntimeExports.jsxs("div",{className:sharedChrome.modelCard,children:[jsxRuntimeExports.jsx("div",{className:sharedChrome.modelName,children:t("ui.skillUsageStats")}),jsxRuntimeExports.jsxs("table",{className:sharedChrome.statsTable,children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:`${sharedChrome.th} ${styles$8_thLeft}`,children:t("ui.stats.skill")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.count")})]})}),jsxRuntimeExports.jsxs("tbody",{children:[skillStats.map(([name,count])=>jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rowBorder,children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label,children:name}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:count})]},name)),skillStats.length>1&&jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rebuildTotalRow,children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label,children:t("ui.stats.total")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:skillStats.reduce((s,e)=>s+e[1],0)})]})]})]})]})}):null,result=jsxRuntimeExports.jsxs("div",{className:styles$8_tokenStatsContainer,children:[tokenColumn,agentStatsColumn,toolColumn,skillColumn]});return this._tokenStatsCache=result,this._tokenStatsCacheReq=requests,result}renderAgentActivityStats(){const{requests:requests=[]}=this.props;resolveTeammateNames(requests);const subAgentCounts={},teammateCounts={};for(let i=0;i<requests.length;i++){const cls=classifyRequest(requests[i],requests[i+1]);if("SubAgent"===cls.type){const label2=cls.subType||"Other";subAgentCounts[label2]=(subAgentCounts[label2]||0)+1}else if("Teammate"===cls.type){const label2=cls.subType||"Teammate";teammateCounts[label2]=(teammateCounts[label2]||0)+1}}const subAgentEntries=Object.entries(subAgentCounts).sort((a,b)=>b[1]-a[1]),teammateEntries=Object.entries(teammateCounts).sort((a,b)=>b[1]-a[1]),hasSubAgentStats=subAgentEntries.length>0,hasTeammateStats=teammateEntries.length>0;return hasSubAgentStats||hasTeammateStats?jsxRuntimeExports.jsxs("div",{className:styles$8_toolStatsColumn,children:[hasSubAgentStats&&jsxRuntimeExports.jsxs("div",{className:hasTeammateStats?styles$8_modelCardSpaced:sharedChrome.modelCard,children:[jsxRuntimeExports.jsx("div",{className:sharedChrome.modelName,children:t("ui.subAgentStats")}),jsxRuntimeExports.jsxs("table",{className:sharedChrome.statsTable,children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:`${sharedChrome.th} ${styles$8_thLeft}`,children:t("ui.stats.subAgent")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.count")})]})}),jsxRuntimeExports.jsxs("tbody",{children:[subAgentEntries.map(([name,count])=>jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rowBorder,children:[jsxRuntimeExports.jsxs("td",{className:sharedChrome.label,children:[name," ",jsxRuntimeExports.jsx(ConceptHelp,{doc:`SubAgent-${name}`})]}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:count})]},name)),subAgentEntries.length>1&&jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rebuildTotalRow,children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label,children:t("ui.stats.total")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:subAgentEntries.reduce((s,e)=>s+e[1],0)})]})]})]})]}),hasTeammateStats&&jsxRuntimeExports.jsxs("div",{className:sharedChrome.modelCard,children:[jsxRuntimeExports.jsxs("div",{className:sharedChrome.modelName,children:[t("ui.teammateStats.title"),jsxRuntimeExports.jsx(ConceptHelp,{doc:"Teammate"})]}),jsxRuntimeExports.jsxs("table",{className:sharedChrome.statsTable,children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:`${sharedChrome.th} ${styles$8_thLeft}`,children:t("ui.teammateStats.name")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.count")})]})}),jsxRuntimeExports.jsxs("tbody",{children:[teammateEntries.map(([name,count])=>jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rowBorder,children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label,children:name}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:count})]},name)),teammateEntries.length>1&&jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rebuildTotalRow,children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label,children:t("ui.stats.total")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:teammateEntries.reduce((s,e)=>s+e[1],0)})]})]})]})]})]}):null}renderTextPrompt(p){return jsxRuntimeExports.jsx("div",{className:styles$8_textPromptCard,children:p.segments.map((seg,j)=>"text"===seg.type?jsxRuntimeExports.jsx("pre",{className:styles$8_preText,children:seg.content},j):jsxRuntimeExports.jsx(Collapse,{size:"small",className:styles$8_systemCollapse,items:[{key:`sys-${j}`,label:jsxRuntimeExports.jsx("span",{className:styles$8_systemLabel,children:seg.label}),children:jsxRuntimeExports.jsx("pre",{className:styles$8_preSys,children:seg.content})}]},j))})}renderOriginalPrompt(p){const textSegments=p.segments.filter(seg=>"text"===seg.type);return 0===textSegments.length?null:jsxRuntimeExports.jsx("div",{className:styles$8_textPromptCard,children:textSegments.map((seg,j)=>jsxRuntimeExports.jsx("pre",{className:styles$8_preText,children:seg.content},j))})}buildTextModeContent(){const{promptData:promptData}=this.state,blocks=[];for(const p of promptData){const textParts=(p.segments||[]).filter(seg=>"text"===seg.type).map(seg=>seg.content);textParts.length>0&&blocks.push(textParts.join("\n"))}return blocks.join("\n\n\n")}renderProjectStatsContent(){const{projectStats:projectStats,projectStatsLoading:projectStatsLoading}=this.state;if(projectStatsLoading)return jsxRuntimeExports.jsx("div",{className:styles$8_projectStatsCenter,children:jsxRuntimeExports.jsx(Spin,{})});if(!projectStats)return jsxRuntimeExports.jsx("div",{className:styles$8_projectStatsEmpty,children:t("ui.projectStats.noData")});const{summary:summary,models:models,updatedAt:updatedAt}=projectStats;!models||Object.entries(models).sort((a,b)=>b[1]-a[1]);const modelTokens={};if(projectStats.files)for(const fStats of Object.values(projectStats.files))if(fStats.models)for(const[model,data]of Object.entries(fStats.models))modelTokens[model]||(modelTokens[model]={input:0,output:0,cacheRead:0,cacheWrite:0,count:0}),modelTokens[model].input+=data.input_tokens||0,modelTokens[model].output+=data.output_tokens||0,modelTokens[model].cacheRead+=data.cache_read_tokens||0,modelTokens[model].cacheWrite+=data.cache_write_tokens||0,modelTokens[model].count+=data.count||0;const modelTokenEntries=Object.entries(modelTokens).sort((a,b)=>b[1].count-a[1].count);return jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatsContent,children:[updatedAt&&jsxRuntimeExports.jsx("div",{className:styles$8_projectStatsUpdated,children:t("ui.projectStats.updatedAt",{time:new Date(updatedAt).toLocaleString()})}),jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatsSummary,children:[jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatCard,children:[jsxRuntimeExports.jsx("div",{className:styles$8_projectStatValue,children:(null==summary?void 0:summary.requestCount)??0}),jsxRuntimeExports.jsx("div",{className:styles$8_projectStatLabel,children:t("ui.projectStats.totalRequests")})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatCard,children:[jsxRuntimeExports.jsx("div",{className:styles$8_projectStatValue,children:(null==summary?void 0:summary.turnCount)??(null==summary?void 0:summary.sessionCount)??0}),jsxRuntimeExports.jsx("div",{className:styles$8_projectStatLabel,children:t("ui.projectStats.turnCount")})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatCard,children:[jsxRuntimeExports.jsx("div",{className:styles$8_projectStatValue,children:(null==summary?void 0:summary.fileCount)??0}),jsxRuntimeExports.jsx("div",{className:styles$8_projectStatLabel,children:t("ui.projectStats.totalFiles")})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatCard,children:[jsxRuntimeExports.jsx("div",{className:styles$8_projectStatValue,children:formatTokenCount(null==summary?void 0:summary.input_tokens)}),jsxRuntimeExports.jsx("div",{className:styles$8_projectStatLabel,children:t("ui.projectStats.inputTokens")})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatCard,children:[jsxRuntimeExports.jsx("div",{className:styles$8_projectStatValue,children:formatTokenCount(null==summary?void 0:summary.output_tokens)}),jsxRuntimeExports.jsx("div",{className:styles$8_projectStatLabel,children:t("ui.projectStats.outputTokens")})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatCard,children:[jsxRuntimeExports.jsx("div",{className:styles$8_projectStatValue,children:formatTokenCount(null==summary?void 0:summary.cache_read_tokens)}),jsxRuntimeExports.jsx("div",{className:styles$8_projectStatLabel,children:t("ui.stats.cacheRead")})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatCard,children:[jsxRuntimeExports.jsx("div",{className:styles$8_projectStatValue,children:formatTokenCount(null==summary?void 0:summary.cache_write_tokens)}),jsxRuntimeExports.jsx("div",{className:styles$8_projectStatLabel,children:t("ui.stats.cacheWrite")})]})]}),modelTokenEntries.length>0&&jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatsSection,children:[jsxRuntimeExports.jsx("div",{className:styles$8_projectStatsSectionTitle,children:t("ui.projectStats.modelUsage")}),modelTokenEntries.map(([model,data])=>jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatsModelCard,children:[jsxRuntimeExports.jsxs("div",{className:styles$8_projectStatsModelHeader,children:[jsxRuntimeExports.jsx("span",{className:styles$8_projectStatsModelName,children:model}),jsxRuntimeExports.jsxs("span",{className:styles$8_projectStatsModelCount,children:[data.count," reqs"]})]}),jsxRuntimeExports.jsx("table",{className:sharedChrome.statsTable,children:jsxRuntimeExports.jsxs("tbody",{children:[jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label,children:t("ui.stats.token")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.input")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.output")})]}),jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rowBorder,children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:formatTokenCount(data.input)}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:formatTokenCount(data.output)})]}),jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label,children:t("ui.stats.cache")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.cacheRead")}),jsxRuntimeExports.jsx("td",{className:sharedChrome.th,children:t("ui.stats.cacheWrite")})]}),jsxRuntimeExports.jsxs("tr",{className:sharedChrome.rowBorder,children:[jsxRuntimeExports.jsx("td",{className:sharedChrome.label}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:formatTokenCount(data.cacheRead)}),jsxRuntimeExports.jsx("td",{className:sharedChrome.td,children:formatTokenCount(data.cacheWrite)})]})]})})]},model))]})]})}renderContextBarPortal(){var _a,_b;const slot=this.props.contextBarSlot;if(!slot)return null;const{requests:requests=[],isLocalLog:isLocalLog,localLogFile:localLogFile,projectName:projectName,contextWindow:contextWindow,contextBarOptimistic:contextBarOptimistic,contextBarLocked:contextBarLocked}=this.props;let lastTotalTokens=0;if(!isLocalLog&&requests.length>0)for(let i=requests.length-1;i>=0;i--)if(isMainAgent(requests[i])&&(null==(_b=null==(_a=requests[i].response)?void 0:_a.body)?void 0:_b.usage)){const u=requests[i].response.body.usage;lastTotalTokens=sumUsageContextTokens(u);break}let contextPercent=isLocalLog?0:computeContextPercent({contextWindow:contextWindow,lastTotalTokens:lastTotalTokens});contextBarLocked?(this._lastContextPercent=0,contextPercent=0):(contextPercent>0&&(this._lastContextPercent=contextPercent),0===contextPercent&&this._lastContextPercent>0&&(contextPercent=this._lastContextPercent),contextBarOptimistic&&(contextPercent=OPTIMISTIC_CLEAR_PERCENT));const ctxColor=contextSeverityColor(contextPercent),contextTokens=contextBarLocked?0:lastTotalTokens;return reactDomExports.createPortal(jsxRuntimeExports.jsx(LiveTagPopover$1,{isLocalLog:isLocalLog,localLogFile:localLogFile,cachePopoverOpen:this.state._cachePopoverOpen,onOpenChange:this.handleCachePopoverOpenChange,requests:requests,contextPercent:contextPercent,contextTokens:contextTokens,ctxColor:ctxColor,onSkillImported:this.reloadFsSkills,fsSkills:this.state._fsSkills,memory:this.state._memory,memoryRefreshing:this.state._memoryRefreshing,codexMd:this.state._codexMd,onOpenMemoryDetail:this.loadMemoryDetail,onOpenCodexMd:this.loadCodexMdDetail,onOpenSkillsModal:this.handleOpenSkillsModal,onRefreshMemory:this.handleRefreshMemory,onToolsCatalogOpenChange:this._setToolsCatalogOpen,projectName:projectName}),slot)}render(){const{requestCount:requestCount,requests:requests=[],viewMode:viewMode,onToggleViewMode:onToggleViewMode,onImportLocalLogs:onImportLocalLogs,onLangChange:onLangChange,isLocalLog:isLocalLog,localLogFile:localLogFile,projectName:projectName,filterIrrelevant:filterIrrelevant,onFilterIrrelevantChange:onFilterIrrelevantChange,logDir:logDir,onLogDirChange:onLogDirChange,cliMode:cliMode,terminalVisible:terminalVisible,onToggleTerminal:onToggleTerminal,onReturnToWorkspaces:onReturnToWorkspaces,contextWindow:contextWindow,contextBarOptimistic:contextBarOptimistic,resumeAutoChoice:resumeAutoChoice,onResumeAutoChoiceToggle:onResumeAutoChoiceToggle,onResumeAutoChoiceChange:onResumeAutoChoiceChange,themeColor:themeColor,onThemeColorChange:onThemeColorChange,displayScale:displayScale,onDisplayScaleChange:onDisplayScaleChange,approvalsReviewer:approvalsReviewer,onApprovalsReviewerChange:onApprovalsReviewerChange}=this.props,_prefs=this.context&&this.context.preferences||{},collapseToolResults=_prefs.collapseToolResults??!0,expandThinking=!!_prefs.expandThinking,expandDiff=!!_prefs.expandDiff,showFullToolContent=!!_prefs.showFullToolContent,onlyCurrentSession=!!_prefs.onlyCurrentSession,menuItems=this.getMenuItems(),isElectronTab=this._isElectronTab();return jsxRuntimeExports.jsxs("div",{className:styles$8_headerBar,children:[jsxRuntimeExports.jsxs(Space,{size:"middle",align:"center",children:[!isElectronTab&&jsxRuntimeExports.jsx(Dropdown,{menu:{items:menuItems,className:"logo-dropdown-menu"},trigger:["hover"],onOpenChange:open=>this.setState({logoDropdownOpen:open}),align:{offset:[-4,0]},children:jsxRuntimeExports.jsx("span",{className:`${styles$8_logoWrap}${this.state.logoDropdownOpen?` ${styles$8_logoWrapActive}`:""}`,children:jsxRuntimeExports.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:`${styles$8_logoImage}${this.state.logoDropdownOpen?` ${styles$8_logoImageActive}`:""}`,children:[jsxRuntimeExports.jsx("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),jsxRuntimeExports.jsx("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),jsxRuntimeExports.jsx("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})})}),isElectronTab&&jsxRuntimeExports.jsx(Dropdown,{menu:{items:menuItems,className:"logo-dropdown-menu"},open:!!this.state.electronMenuOpen,onOpenChange:open=>this.setState({electronMenuOpen:open}),trigger:["click"],placement:"bottomLeft",getPopupContainer:()=>document.body,children:jsxRuntimeExports.jsx("span",{"aria-hidden":"true",style:{position:"fixed",top:4,left:74,width:1,height:1,pointerEvents:"none"}})}),isElectronTab&&this.state.electronMenuBar&&(()=>{const mb=this.state.electronMenuBar,menu=(mb.menus||[]).find(m=>m.id===mb.menuId);if(!menu)return null;const zoom=this._displayZoom(),items=(menu.items||[]).map((it,i)=>"separator"===it.type?{type:"divider",key:`sep-${i}`}:{key:it.id,label:jsxRuntimeExports.jsxs("span",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:24},children:[jsxRuntimeExports.jsx("span",{children:it.label}),it.accel?jsxRuntimeExports.jsx("span",{style:{opacity:.55,fontSize:12},children:it.accel}):null]})});return jsxRuntimeExports.jsx(Dropdown,{menu:{items:items,className:"logo-dropdown-menu",onClick:({key:key})=>{var _a,_b;try{null==(_b=null==(_a=window.tabBridge)?void 0:_a.menuCommand)||_b.call(_a,key)}catch{}this._closeMenuBar()}},open:!0,onOpenChange:open=>{open||this._closeMenuBar()},trigger:["click"],placement:"bottomLeft",getPopupContainer:()=>document.body,children:jsxRuntimeExports.jsx("span",{"aria-hidden":"true",style:{position:"fixed",top:4,left:Math.round((mb.x||0)/zoom),width:1,height:1,pointerEvents:"none"}})})})(),!isElectronTab&&(()=>{const descByKey=new Map(this._getMenuDescriptors().map(d=>[d.key,d])),pins=this.state.pinnedKeys.map(k=>descByKey.get(k)).filter(Boolean);return 0===pins.length?null:pins.map(d=>jsxRuntimeExports.jsx(Tooltip,{title:d.label,children:jsxRuntimeExports.jsx("span",{role:"button",tabIndex:0,"aria-label":d.label,className:styles$8_pinnedShortcut,onClick:d.onClick,children:d.icon})},d.key))})(),!isLocalLog&&IM_PLATFORMS.map(p=>jsxRuntimeExports.jsx(ImStatusChip,{descriptor:p,onStatus:this._onImStatus,onClick:()=>this.setState({imRecordVisible:!0,imRecordPlatform:p.id})},p.id)),isElectronTab&&(()=>{const anchorRight=null!=this.state.electronQrAnchor?Math.round(this.state.electronQrAnchor/this._displayZoom()):90;return jsxRuntimeExports.jsx(Popover,{content:jsxRuntimeExports.jsxs("div",{className:styles$8_qrcodePopover,onClick:e=>e.stopPropagation(),children:[jsxRuntimeExports.jsxs("div",{className:styles$8_qrcodeTitle,children:[t("ui.scanToCoding")," ",jsxRuntimeExports.jsx(ConceptHelp,{doc:"QRCode"})]}),jsxRuntimeExports.jsx(QRCodeCanvas,{value:this.shareUrl(),size:200,bgColor:"light"===themeColor?"#ffffff":"#141414",fgColor:"light"===themeColor?"#1a1a1a":"#d9d9d9",level:"M"}),jsxRuntimeExports.jsx(Input,{readOnly:!0,value:this.shareUrl(),className:styles$8_qrcodeUrlInput,suffix:jsxRuntimeExports.jsx(RefIcon$k,{className:styles$8_qrcodeUrlCopy,onClick:()=>{navigator.clipboard.writeText(this.shareUrl()).then(()=>{staticMethods.success(t("ui.copied"))}).catch(()=>{})}})}),this.state.authState.isAdmin&&this.renderPasswordSection()]}),trigger:[],open:!!this.state.electronQrOpen,onOpenChange:o=>this.setState({electronQrOpen:o}),placement:"bottomRight",getPopupContainer:()=>document.body,overlayInnerStyle:{background:"var(--bg-elevated)",border:"1px solid var(--border-hover)",borderRadius:8,padding:"8px 8px"},children:jsxRuntimeExports.jsx("span",{"aria-hidden":"true",style:{position:"fixed",top:4,right:anchorRight,width:1,height:1,pointerEvents:"none"}})})})(),!isElectronTab&&this.props.activeProxyId&&"max"!==this.props.activeProxyId&&(()=>{const p=(this.props.proxyProfiles||[]).find(x=>x.id===this.props.activeProxyId);return p?jsxRuntimeExports.jsxs(Tag,{className:styles$8_proxyProfileTag,onClick:()=>this.setState({proxyModalVisible:!0}),children:[jsxRuntimeExports.jsx(RefIcon$j,{className:styles$8_proxySwapIcon}),p.name,profileDisplayModel(p)?` · ${profileDisplayModel(p)}`:""]}):null})(),jsxRuntimeExports.jsx(HeaderProjectLabel,{projectName:projectName,isLocalLog:isLocalLog,instanceId:this.props.instanceId}),this.renderContextBarPortal()]}),jsxRuntimeExports.jsxs(Space,{size:12,align:"center",className:styles$8_headerRightRow,children:[(()=>{if(isElectronTab)return null;const info=this._buildApprovalInfo();return info?jsxRuntimeExports.jsxs("button",{type:"button",className:styles$8_approvalBell,"aria-label":info.title,title:info.title,onClick:()=>this.props.onApprovalReopen&&this.props.onApprovalReopen(),children:[jsxRuntimeExports.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[jsxRuntimeExports.jsx("path",{d:"M12 2a6 6 0 0 0-6 6v3.5L4.5 14a1 1 0 0 0 .8 1.6h13.4a1 1 0 0 0 .8-1.6L18 11.5V8a6 6 0 0 0-6-6z",stroke:"currentColor",strokeWidth:"1.6",strokeLinejoin:"round",fill:"none"}),jsxRuntimeExports.jsx("path",{d:"M10 18a2 2 0 0 0 4 0",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",fill:"none"})]}),info.count>0&&jsxRuntimeExports.jsx("span",{className:styles$8_approvalBellBadge,children:info.count})]}):null})(),!isElectronTab&&"chat"===viewMode&&cliMode&&!isLocalLog&&this.state.localUrl&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Popover,{content:jsxRuntimeExports.jsxs("div",{className:styles$8_qrcodePopover,onClick:e=>e.stopPropagation(),children:[jsxRuntimeExports.jsxs("div",{className:styles$8_qrcodeTitle,children:[t("ui.scanToCoding")," ",jsxRuntimeExports.jsx(ConceptHelp,{doc:"QRCode"})]}),jsxRuntimeExports.jsx(QRCodeCanvas,{value:this.shareUrl(),size:200,bgColor:"light"===themeColor?"#ffffff":"#141414",fgColor:"light"===themeColor?"#1a1a1a":"#d9d9d9",level:"M"}),jsxRuntimeExports.jsx(Input,{readOnly:!0,value:this.shareUrl(),className:styles$8_qrcodeUrlInput,suffix:jsxRuntimeExports.jsx(RefIcon$k,{className:styles$8_qrcodeUrlCopy,onClick:()=>{navigator.clipboard.writeText(this.shareUrl()).then(()=>{staticMethods.success(t("ui.copied"))}).catch(()=>{})}})}),this.state.authState.isAdmin&&this.renderPasswordSection()]}),trigger:["click"],open:this.state.qrPopoverOpen,onOpenChange:o=>this.setState({qrPopoverOpen:o}),placement:"bottomRight",overlayInnerStyle:{background:"var(--bg-elevated)",border:"1px solid var(--border-hover)",borderRadius:8,padding:"8px 8px"},children:jsxRuntimeExports.jsx("button",{type:"button",className:styles$8_qrcodeIcon,"aria-label":t("ui.scanToCoding"),children:jsxRuntimeExports.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:jsxRuntimeExports.jsx("path",{fillRule:"evenodd",d:"M0 0h10v10H0zM2 2v6h6V2zM3 3h4v4H3zM14 0h10v10H14zM16 2v6h6V2zM17 3h4v4H17zM0 14h10v10H0zM2 16v6h6v-6zM3 17h4v4H3zM14 14h3v3h-3zM20 14h3v3h-3zM17 17h3v3h-3zM14 20h3v3h-3zM20 20h3v3h-3z"})})})}),!isElectronTab&&jsxRuntimeExports.jsx("button",{type:"button",className:styles$8_themeToggle,title:t("light"===themeColor?"ui.themeColor.light":"ui.themeColor.dark"),"aria-label":t("light"===themeColor?"ui.themeColor.light":"ui.themeColor.dark"),onClick:()=>onThemeColorChange&&onThemeColorChange("light"===themeColor?"dark":"light"),children:"light"===themeColor?jsxRuntimeExports.jsxs("svg",{className:styles$8_themeToggleIcon,width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[jsxRuntimeExports.jsx("circle",{cx:"8",cy:"8",r:"2.8",fill:"currentColor"}),jsxRuntimeExports.jsxs("g",{stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",children:[jsxRuntimeExports.jsx("line",{x1:"8",y1:"1",x2:"8",y2:"2.6"}),jsxRuntimeExports.jsx("line",{x1:"8",y1:"13.4",x2:"8",y2:"15"}),jsxRuntimeExports.jsx("line",{x1:"1",y1:"8",x2:"2.6",y2:"8"}),jsxRuntimeExports.jsx("line",{x1:"13.4",y1:"8",x2:"15",y2:"8"}),jsxRuntimeExports.jsx("line",{x1:"2.95",y1:"2.95",x2:"4.1",y2:"4.1"}),jsxRuntimeExports.jsx("line",{x1:"11.9",y1:"11.9",x2:"13.05",y2:"13.05"}),jsxRuntimeExports.jsx("line",{x1:"2.95",y1:"13.05",x2:"4.1",y2:"11.9"}),jsxRuntimeExports.jsx("line",{x1:"11.9",y1:"4.1",x2:"13.05",y2:"2.95"})]})]}):jsxRuntimeExports.jsx("svg",{className:styles$8_themeToggleIcon,width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:jsxRuntimeExports.jsx("path",{d:"M8.4 2.5a5.9 5.9 0 1 0 5.1 8.55A4.8 4.8 0 0 1 8.4 2.5Z",fill:"currentColor"})})})]}),!isElectronTab&&cliMode&&"chat"===viewMode&&!isLocalLog&&jsxRuntimeExports.jsx(Button,{className:styles$8_compactBtn,type:terminalVisible?"primary":"default",ghost:terminalVisible,icon:jsxRuntimeExports.jsx(RefIcon$5,{}),onClick:onToggleTerminal,children:t("ui.terminal")}),!isElectronTab&&jsxRuntimeExports.jsx(Button,{className:styles$8_compactBtn,type:"raw"===viewMode?"primary":"default",icon:"raw"===viewMode?jsxRuntimeExports.jsx(RefIcon$2,{}):jsxRuntimeExports.jsx(RefIcon$l,{}),onClick:onToggleViewMode,children:t("raw"===viewMode?"ui.chatMode":"ui.rawMode")})]}),jsxRuntimeExports.jsx(MemoryDetailModal,{detail:this.state._memoryDetail,onClose:()=>this.setState({_memoryDetail:null}),onOpenMemoryDetail:this.loadMemoryDetail}),jsxRuntimeExports.jsx(MemoryDetailModal,{detail:this.state._codexMdDetail,onClose:()=>this.setState({_codexMdDetail:null}),linkMode:"passthrough"}),jsxRuntimeExports.jsxs(Modal,{title:`${t("ui.userPrompt")} (${this.state.promptData.length}${t("ui.promptCountUnit")})`,open:this.state.promptModalVisible,onCancel:()=>this.setState({promptModalVisible:!1}),footer:null,width:700,styles:{mask:BLUR_MASK_STYLE},children:[jsxRuntimeExports.jsx("div",{className:styles$8_promptExportBar,children:jsxRuntimeExports.jsx(Button,{icon:jsxRuntimeExports.jsx(RefIcon$m,{}),onClick:this.handleExportPromptsTxt,children:t("ui.exportPromptsTxt")})}),jsxRuntimeExports.jsx(Tabs,{activeKey:this.state.promptViewMode,onChange:key=>this.setState({promptViewMode:key}),size:"small",items:[{key:"original",label:t("ui.promptModeOriginal")},{key:"context",label:t("ui.promptModeContext")},{key:"text",label:t("ui.promptModeText")}]}),"text"===this.state.promptViewMode?jsxRuntimeExports.jsx("textarea",{readOnly:!0,className:styles$8_promptTextarea,value:this.buildTextModeContent()}):jsxRuntimeExports.jsxs("div",{className:styles$8_promptScrollArea,children:[0===this.state.promptData.length&&jsxRuntimeExports.jsx("div",{className:styles$8_promptEmpty,children:t("ui.noPrompt")}),this.state.promptData.map((p,i)=>{const ts=p.timestamp?new Date(p.timestamp).toLocaleString():t("ui.unknownTime");return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:styles$8_promptTimestamp,children:[ts,":"]}),"original"===this.state.promptViewMode?this.renderOriginalPrompt(p):this.renderTextPrompt(p)]},i)})]})]}),jsxRuntimeExports.jsxs(Drawer,{title:t("ui.settings"),placement:"left",rootClassName:"cxvSideDrawer",width:420,open:this.state.settingsDrawerVisible,onClose:()=>this.setState({settingsDrawerVisible:!1}),children:[jsxRuntimeExports.jsxs("div",{className:styles$8_settingsGroupBox,children:[jsxRuntimeExports.jsx("div",{className:styles$8_settingsGroupTitle,children:t("ui.chatDisplay")}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsxs("span",{className:styles$8_settingsLabel,children:[t("ui.permission.reviewer.setting"),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.permission.reviewer.help"),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$8_settingsHelpIcon})})]}),jsxRuntimeExports.jsx(Select,{size:"small",value:approvalsReviewer||"user",onChange:value=>onApprovalsReviewerChange&&onApprovalsReviewerChange(value),options:approvalReviewerSelectOptions(t),style:{width:150}})]}),this.props.approvalPrefs&&this.props.onApprovalPrefsChange&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsxs("span",{className:styles$8_settingsLabel,children:[t("ui.approval.settings.planAutoApprove"),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.approval.settings.planAutoApproveHelp"),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$8_settingsHelpIcon})})]}),jsxRuntimeExports.jsx(Select,{size:"small",value:this.props.approvalPrefs.planAutoApproveSeconds||0,onChange:value=>this.props.onApprovalPrefsChange({planAutoApproveSeconds:value}),options:autoApproveSelectOptions(PLAN_AUTO_APPROVE_OPTIONS,t),style:{width:100}})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsxs("span",{className:styles$8_settingsLabel,children:[t("ui.approval.settings.modalEnabled"),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.approval.settings.modalEnabled.help"),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$8_settingsHelpIcon})})]}),jsxRuntimeExports.jsx(Switch,{checked:!1!==this.props.approvalPrefs.modalEnabled,onChange:checked=>this.props.onApprovalPrefsChange({modalEnabled:checked})})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsxs("span",{className:styles$8_settingsLabel,children:[t("ui.approval.settings.soundEnabled"),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.approval.settings.soundEnabled.help"),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$8_settingsHelpIcon})})]}),jsxRuntimeExports.jsx(Switch,{checked:!!this.props.approvalPrefs.soundEnabled,onChange:checked=>this.props.onApprovalSoundToggle&&this.props.onApprovalSoundToggle(checked)})]}),"undefined"!=typeof window&&window.tabBridge&&jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsx("span",{className:styles$8_settingsLabel,children:t("ui.approval.settings.notifyOnlyWhenHidden")}),jsxRuntimeExports.jsx(Switch,{checked:!1!==this.props.approvalPrefs.notifyOnlyWhenHidden,onChange:checked=>this.props.onApprovalPrefsChange({notifyOnlyWhenHidden:checked})})]}),this.props.approvalPrefs.soundEnabled&&this.props.onVoicePackChange&&jsxRuntimeExports.jsx(VoicePackSettings,{prefs:this.props.approvalPrefs.voicePack,onChange:this.props.onVoicePackChange,embedded:!0})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsxs("span",{className:styles$8_settingsLabel,children:[t("ui.expandThinking"),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.expandThinking.help"),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$8_settingsHelpIcon})})]}),jsxRuntimeExports.jsx(Switch,{checked:!!expandThinking,onChange:checked=>this.context.updatePreferences({expandThinking:checked})})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsxs("span",{className:styles$8_settingsLabel,children:[t("ui.showFullToolContent"),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.showFullToolContent.help"),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$8_settingsHelpIcon})})]}),jsxRuntimeExports.jsx(Switch,{checked:!!showFullToolContent,onChange:checked=>this.context.updatePreferences({showFullToolContent:checked})})]}),showFullToolContent&&jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsx("span",{className:styles$8_settingsLabel,children:t("ui.collapseToolResults")}),jsxRuntimeExports.jsx(Switch,{checked:!!collapseToolResults,onChange:checked=>this.context.updatePreferences({collapseToolResults:checked})})]}),!this.props.isLocalLog&&jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsxs("span",{className:styles$8_settingsLabel,children:[t("ui.onlyCurrentSession"),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.onlyCurrentSession.help"),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$8_settingsHelpIcon})})]}),jsxRuntimeExports.jsx(Switch,{checked:!!onlyCurrentSession,onChange:checked=>this.context.updatePreferences({onlyCurrentSession:checked})})]})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsGroupBox,children:[jsxRuntimeExports.jsx("div",{className:styles$8_settingsGroupTitle,children:t("ui.logSettings")}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsx("span",{className:styles$8_settingsLabel,children:t("ui.resumeAutoChoice")}),jsxRuntimeExports.jsx(Switch,{checked:!!resumeAutoChoice,onChange:checked=>onResumeAutoChoiceToggle&&onResumeAutoChoiceToggle(checked)})]}),resumeAutoChoice&&jsxRuntimeExports.jsx("div",{className:styles$8_settingsItem,children:jsxRuntimeExports.jsxs(Radio.Group,{value:resumeAutoChoice,onChange:e=>onResumeAutoChoiceChange&&onResumeAutoChoiceChange(e.target.value),size:"small",children:[jsxRuntimeExports.jsx(Radio,{value:"continue",children:t("ui.resumeAutoChoice.continue")}),jsxRuntimeExports.jsx(Radio,{value:"new",children:t("ui.resumeAutoChoice.new")})]})})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsGroupBox,children:[jsxRuntimeExports.jsx("div",{className:styles$8_settingsGroupTitle,children:t("ui.themeStyle")}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsx("span",{className:styles$8_settingsLabel,children:t("ui.themeColor")}),jsxRuntimeExports.jsx(Select,{size:"small",value:themeColor||"light",onChange:value=>onThemeColorChange&&onThemeColorChange(value),options:[{label:t("ui.themeColor.dark"),value:"dark"},{label:t("ui.themeColor.light"),value:"light"}],style:{width:140}})]}),jsxRuntimeExports.jsx("div",{className:styles$8_settingsItem,children:hasNativeZoom?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Tooltip,{title:t("ui.displayScale.hint"),children:jsxRuntimeExports.jsx("span",{className:styles$8_settingsLabel,children:t("ui.displayScale")})}),jsxRuntimeExports.jsx(Select,{size:"small",value:displayScale||100,onChange:value=>onDisplayScaleChange&&onDisplayScaleChange(value),options:DISPLAY_SCALE_PRESETS.map(p=>({label:`${p}%`,value:p})),style:{width:140}})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{className:styles$8_settingsLabel,children:t("ui.displayScale")}),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.displayScale.browserHint",{mod:isMac?"⌘":"Ctrl"}),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$8_settingsHelpIcon})})]})}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsx("span",{className:styles$8_settingsLabel,children:t("ui.languageSettings")}),jsxRuntimeExports.jsx(Select,{size:"small",value:getLang(),onChange:value=>{setLang(value),onLangChange&&onLangChange()},options:LANG_OPTIONS.map(o=>({label:o.label,value:o.value})),style:{width:140}})]})]}),(()=>{const pp=this.props.preferences||{},showToggle=!isLocalLog&&!!pp._projectName&&!1===pp._isLocal,forkKeys=Array.isArray(pp._projectPrefsKeys)?pp._projectPrefsKeys:[],showManage=!0===pp._isLocal&&forkKeys.length>0;return showToggle||showManage?jsxRuntimeExports.jsxs("div",{className:styles$8_settingsGroupBox,children:[jsxRuntimeExports.jsx("div",{className:styles$8_settingsGroupTitle,children:t("ui.projectScopedPrefs.group")}),showToggle&&jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsxs("span",{className:styles$8_settingsLabel,children:[t("ui.projectScopedPrefs"),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.projectScopedPrefs.help"),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$8_settingsHelpIcon})})]}),jsxRuntimeExports.jsx(Switch,{"aria-label":t("ui.projectScopedPrefs"),checked:!!pp._projectScoped,onChange:checked=>this.props.onToggleProjectScoped&&this.props.onToggleProjectScoped(checked)})]}),showManage&&jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsx("span",{className:styles$8_settingsLabel,children:t("ui.projectPrefsManage")}),jsxRuntimeExports.jsx(Button,{size:"small",onClick:()=>this.setState({projectPrefsModalOpen:!0}),children:t("ui.projectPrefsManage.open",{count:forkKeys.length})})]})]}):null})(),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsGroupBox,children:[jsxRuntimeExports.jsx("div",{className:styles$8_settingsGroupTitle,children:t("ui.expert.title")}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsxs("span",{className:styles$8_settingsLabel,children:[t("ui.expert.systemText"),jsxRuntimeExports.jsx(Tooltip,{title:t("ui.expert.help"),children:jsxRuntimeExports.jsx(RefIcon$d,{className:styles$8_settingsHelpIcon})})]}),jsxRuntimeExports.jsx(Button,{size:"small",onClick:()=>this.setState({systemTextModalVisible:!0}),children:t("ui.expert.systemText.btn")})]})]})]}),jsxRuntimeExports.jsxs(Drawer,{title:jsxRuntimeExports.jsxs("span",{children:[t("ui.globalSettings")," ",jsxRuntimeExports.jsx(ConceptHelp,{doc:"GlobalSettings"})]}),placement:"left",rootClassName:"cxvSideDrawer",width:400,open:this.state.globalSettingsVisible,onClose:()=>this.setState({globalSettingsVisible:!1}),children:[jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsx("span",{className:styles$8_settingsLabel,children:t("ui.filterIrrelevant")}),jsxRuntimeExports.jsx(Switch,{checked:!!filterIrrelevant,onChange:checked=>onFilterIrrelevantChange&&onFilterIrrelevantChange(checked)})]}),jsxRuntimeExports.jsxs("div",{className:styles$8_settingsItem,children:[jsxRuntimeExports.jsx("span",{className:styles$8_settingsLabel,children:t("ui.expandDiff")}),jsxRuntimeExports.jsx(Switch,{checked:!!expandDiff,onChange:checked=>this.context.updatePreferences({expandDiff:checked})})]}),jsxRuntimeExports.jsx("div",{className:styles$8_settingsDivider}),jsxRuntimeExports.jsx("div",{className:styles$8_settingsLabel,children:t("ui.logDirTitle")}),jsxRuntimeExports.jsx(Input,{className:styles$8_logDirInput,value:this.state.logDirDraft??logDir,onChange:e=>this.setState({logDirDraft:e.target.value}),onBlur:()=>{const val=this.state.logDirDraft;null!=val&&val!==logDir&&(null==onLogDirChange||onLogDirChange(val)),this.setState({logDirDraft:null})},onPressEnter:()=>{const val=this.state.logDirDraft;null!=val&&val!==logDir&&(null==onLogDirChange||onLogDirChange(val)),this.setState({logDirDraft:null})},placeholder:"~/.codex/cx-viewer"})]}),jsxRuntimeExports.jsx(Drawer,{title:jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx(RefIcon$6,{className:sharedChrome.titleIcon}),t("ui.projectStats")]}),placement:"left",rootClassName:"cxvSideDrawer",width:400,open:this.state.projectStatsVisible,onClose:()=>this.setState({projectStatsVisible:!1}),children:this.renderProjectStatsContent()}),jsxRuntimeExports.jsx(PluginModal,{open:this.state.pluginModalVisible,onClose:()=>this.setState({pluginModalVisible:!1})}),jsxRuntimeExports.jsx(ProcessModal,{open:this.state.processModalVisible,onClose:()=>this.setState({processModalVisible:!1})}),jsxRuntimeExports.jsx(ProxyModal,{open:this.state.proxyModalVisible,onClose:()=>this.setState({proxyModalVisible:!1}),proxyProfiles:this.props.proxyProfiles,activeProxyId:this.props.activeProxyId,defaultConfig:this.props.defaultConfig,onProxyProfileChange:this.props.onProxyProfileChange}),jsxRuntimeExports.jsx(SystemTextModal,{open:this.state.systemTextModalVisible,onClose:()=>this.setState({systemTextModalVisible:!1})}),jsxRuntimeExports.jsx(MessagingModal,{open:this.state.messagingModalVisible,initialTool:this.state.messagingInitialTool,onClose:()=>this.setState({messagingModalVisible:!1})}),jsxRuntimeExports.jsx(ImConversationModal,{open:this.state.imRecordVisible,platform:this.state.imRecordPlatform,onClose:()=>this.setState({imRecordVisible:!1}),onOpenConfig:platform=>this.setState({messagingModalVisible:!0,messagingInitialTool:platform})}),this.renderSkillsManagerModal(),jsxRuntimeExports.jsx(ProjectPrefsManagerModal,{open:this.state.projectPrefsModalOpen,onClose:()=>this.setState({projectPrefsModalOpen:!1}),onChanged:this.props.onRefreshProjectPrefs})]})}renderSkillsManagerModal(){const modal=this.state._skillsModal||{};return jsxRuntimeExports.jsx(SkillsManagerModal,{open:modal.open||!1,loading:modal.loading||!1,error:modal.error||null,skills:modal.skills||[],toggling:modal.toggling,onToggle:s=>this.handleToggleSkill(s),onDelete:s=>this.handleDeleteSkill(s),onClose:()=>this.setState(prev=>({_skillsModal:{...prev._skillsModal,open:!1}}))})}};__publicField(_AppHeader,"contextType",SettingsContext),__publicField(_AppHeader,"COMMAND_TAGS",new Set(["command-name","command-message","command-args","local-command-caveat","local-command-stdout"]));let AppHeader=_AppHeader;const styles$7_centerEmpty="_centerEmpty_17d27_1",styles$7_scrollContainer="_scrollContainer_17d27_8",styles$7_listItem="_listItem_17d27_15",styles$7_listItemActive="_listItemActive_17d27_29",styles$7_itemContent="_itemContent_17d27_46",styles$7_itemHeader="_itemHeader_17d27_51",styles$7_tagNoMargin="_tagNoMargin_17d27_59",styles$7_modelName="_modelName_17d27_64",styles$7_modelNameMain="_modelNameMain_17d27_69",styles$7_time="_time_17d27_73",styles$7_detailRow="_detailRow_17d27_79",styles$7_urlText="_urlText_17d27_86",styles$7_duration="_duration_17d27_95",styles$7_statusOk="_statusOk_17d27_100",styles$7_statusErr="_statusErr_17d27_106",styles$7_statusDefault="_statusDefault_17d27_111",styles$7_usageBox="_usageBox_17d27_116",styles$7_tagMainAgent="_tagMainAgent_17d27_126",styles$7_tagPlan="_tagPlan_17d27_132",styles$7_tagMuted="_tagMuted_17d27_138";class RequestList extends React__default.Component{constructor(props){super(props),__publicField(this,"handleKeyDown",e=>{if("ArrowUp"!==e.key&&"ArrowDown"!==e.key)return;const{requests:requests,selectedIndex:selectedIndex,onSelect:onSelect}=this.props;if(!requests.length)return;e.preventDefault();const current=selectedIndex??0,next="ArrowUp"===e.key?Math.max(0,current-1):Math.min(requests.length-1,current+1);next!==current&&onSelect(next)}),this.activeItemRef=React__default.createRef()}componentDidMount(){this.scrollToSelected(!0)}shouldComponentUpdate(nextProps){return nextProps.requests!==this.props.requests||nextProps.selectedIndex!==this.props.selectedIndex||nextProps.scrollCenter!==this.props.scrollCenter}componentDidUpdate(prevProps){this.props.scrollCenter&&prevProps.selectedIndex!==this.props.selectedIndex?this.scrollToSelected(!0):prevProps.selectedIndex!==this.props.selectedIndex&&(this.scrollToSelected(!1),this.activeItemRef.current&&this.activeItemRef.current.focus({preventScroll:!0}))}scrollToSelected(center2){this.activeItemRef.current&&(this.activeItemRef.current.scrollIntoView({block:center2?"center":"nearest",behavior:"instant"}),center2&&this.props.onScrollDone&&this.props.onScrollDone())}render(){const{requests:requests,selectedIndex:selectedIndex,onSelect:onSelect}=this.props;return 0===requests.length?jsxRuntimeExports.jsx("div",{className:styles$7_centerEmpty,children:jsxRuntimeExports.jsx(Empty,{description:t("ui.waitingRequests")})}):jsxRuntimeExports.jsx("div",{className:styles$7_scrollContainer,onKeyDown:this.handleKeyDown,children:jsxRuntimeExports.jsx(List,{dataSource:requests,size:"small",split:!1,renderItem:(req,index)=>{var _a,_b,_c;const time2=new Date(req.timestamp).toLocaleTimeString("zh-CN"),isActive=index===selectedIndex,statusOk2=req.response&&req.response.status<400,statusErr2=req.response&&req.response.status>=400,model=getModelShort(null==(_a=req.body)?void 0:_a.model),nextReq=index+1<requests.length?requests[index+1]:null,{type:reqType,subType:subType}=classifyRequest(req,nextReq),usage=null==(_c=null==(_b=req.response)?void 0:_b.body)?void 0:_c.usage,inputTokens=usage?usage.input_tokens||0:null,outputTokens=(null==usage?void 0:usage.output_tokens)||null,cacheUsage=getInputCacheUsage(usage),displayUrl=req.proxyUrl||req.url;let urlShort=displayUrl;try{const u=new URL(displayUrl);urlShort=u.host+u.pathname}catch{}return jsxRuntimeExports.jsx(List.Item,{ref:isActive?this.activeItemRef:void 0,tabIndex:0,onClick:()=>onSelect(index),className:`${styles$7_listItem} ${isActive?styles$7_listItemActive:""}`,children:jsxRuntimeExports.jsxs("div",{className:styles$7_itemContent,children:[jsxRuntimeExports.jsxs("div",{className:styles$7_itemHeader,children:["MainAgent"===reqType?jsxRuntimeExports.jsx(Tag,{className:`${styles$7_tagNoMargin} ${styles$7_tagMainAgent}`,children:"MainAgent"}):"Plan"===reqType?jsxRuntimeExports.jsx(Tag,{className:`${styles$7_tagNoMargin} ${styles$7_tagPlan}`,children:formatRequestTag(reqType,subType)}):"Count"===reqType||"Preflight"===reqType||"Metadata"===reqType||"Responses"===reqType||"Synthetic"===reqType?jsxRuntimeExports.jsx(Tag,{className:`${styles$7_tagNoMargin} ${styles$7_tagMuted}`,children:formatRequestTag(reqType,subType)}):jsxRuntimeExports.jsx(Tag,{className:styles$7_tagNoMargin,children:formatRequestTag(reqType,subType)}),model&&jsxRuntimeExports.jsx("span",{className:`${styles$7_modelName} ${"MainAgent"===reqType?styles$7_modelNameMain:""}`,children:model}),jsxRuntimeExports.jsx("span",{className:styles$7_time,children:time2})]}),jsxRuntimeExports.jsxs("div",{className:styles$7_detailRow,children:[jsxRuntimeExports.jsx("span",{className:styles$7_urlText,title:displayUrl,children:urlShort}),req.duration&&jsxRuntimeExports.jsxs("span",{className:styles$7_duration,children:[req.duration,"ms"]}),req.response&&jsxRuntimeExports.jsx("span",{className:statusOk2?styles$7_statusOk:statusErr2?styles$7_statusErr:styles$7_statusDefault,children:req.response.status})]}),usage&&jsxRuntimeExports.jsxs("div",{className:styles$7_usageBox,children:[jsxRuntimeExports.jsxs("div",{children:["token: output:",formatTokenCount(outputTokens)||0,", input: ",formatTokenCount(inputTokens)||0]}),cacheUsage.hasCacheDetails&&jsxRuntimeExports.jsxs("div",{children:["cache: read:",formatTokenCount(cacheUsage.read),", write:",formatTokenCount(cacheUsage.write)]})]})]})})}})})}}const isDate=data=>!!data&&data instanceof Date,isObject=data=>"object"==typeof data&&null!==data,isFunction=data=>!!data&&data instanceof Object&&"function"==typeof data;function quoteString(value,quoted){return void 0===quoted&&(quoted=!1),!value||quoted?`"${value}"`:value}function ExpandableObject(_ref){let{field:field2,value:value,data:data,lastElement:lastElement,openBracket:openBracket,closeBracket:closeBracket,level:level,style:style,shouldExpandNode:shouldExpandNode,clickToExpandNode:clickToExpandNode,outerRef:outerRef,beforeExpandChange:beforeExpandChange}=_ref;const shouldExpandNodeCalledRef=reactExports.useRef(!1),[expanded,setExpanded]=reactExports.useState(()=>shouldExpandNode(level,value,field2)),expanderButtonRef=reactExports.useRef(null);reactExports.useEffect(()=>{shouldExpandNodeCalledRef.current?setExpanded(shouldExpandNode(level,value,field2)):shouldExpandNodeCalledRef.current=!0},[shouldExpandNode]);const contentsId=reactExports.useId();if(0===data.length)return function(_ref2){let{field:field2,openBracket:openBracket,closeBracket:closeBracket,lastElement:lastElement,style:style}=_ref2;return reactExports.createElement("div",{className:style.basicChildStyle,role:"treeitem","aria-selected":void 0},(field2||""===field2)&&reactExports.createElement("span",{className:style.label},quoteString(field2,style.quotesForFieldNames),":"),reactExports.createElement("span",{className:style.punctuation},openBracket),reactExports.createElement("span",{className:style.punctuation},closeBracket),!lastElement&&reactExports.createElement("span",{className:style.punctuation},","))}({field:field2,openBracket:openBracket,closeBracket:closeBracket,lastElement:lastElement,style:style});const expanderIconStyle=expanded?style.collapseIcon:style.expandIcon,ariaLabel=expanded?style.ariaLables.collapseJson:style.ariaLables.expandJson,childLevel=level+1,lastIndex=data.length-1,setExpandWithCallback=newExpandValue=>{expanded===newExpandValue||beforeExpandChange&&!beforeExpandChange({level:level,value:value,field:field2,newExpandValue:newExpandValue})||setExpanded(newExpandValue)},onKeyDown=e=>{if("ArrowRight"===e.key||"ArrowLeft"===e.key)e.preventDefault(),setExpandWithCallback("ArrowRight"===e.key);else if("ArrowUp"===e.key||"ArrowDown"===e.key){e.preventDefault();const direction="ArrowUp"===e.key?-1:1;if(!outerRef.current)return;const buttonElements=outerRef.current.querySelectorAll("[role=button]");let currentIndex=-1;for(let i=0;i<buttonElements.length;i++)if(0===buttonElements[i].tabIndex){currentIndex=i;break}if(currentIndex<0)return;const nextIndex=(currentIndex+direction+buttonElements.length)%buttonElements.length;buttonElements[currentIndex].tabIndex=-1,buttonElements[nextIndex].tabIndex=0,buttonElements[nextIndex].focus()}},onClick=()=>{var _outerRef$current;setExpandWithCallback(!expanded);const buttonElement=expanderButtonRef.current;if(!buttonElement)return;const prevButtonElement=null===(_outerRef$current=outerRef.current)||void 0===_outerRef$current?void 0:_outerRef$current.querySelector('[role=button][tabindex="0"]');prevButtonElement&&(prevButtonElement.tabIndex=-1),buttonElement.tabIndex=0,buttonElement.focus()};return reactExports.createElement("div",{className:style.basicChildStyle,role:"treeitem","aria-expanded":expanded,"aria-selected":void 0},reactExports.createElement("span",{className:expanderIconStyle,onClick:onClick,onKeyDown:onKeyDown,role:"button","aria-label":ariaLabel,"aria-expanded":expanded,"aria-controls":expanded?contentsId:void 0,ref:expanderButtonRef,tabIndex:0===level?0:-1}),(field2||""===field2)&&(clickToExpandNode?reactExports.createElement("span",{className:style.clickableLabel,onClick:onClick,onKeyDown:onKeyDown},quoteString(field2,style.quotesForFieldNames),":"):reactExports.createElement("span",{className:style.label},quoteString(field2,style.quotesForFieldNames),":")),reactExports.createElement("span",{className:style.punctuation},openBracket),expanded?reactExports.createElement("ul",{id:contentsId,role:"group",className:style.childFieldsContainer},data.map((dataElement,index)=>reactExports.createElement(DataRender,{key:dataElement[0]||index,field:dataElement[0],value:dataElement[1],style:style,lastElement:index===lastIndex,level:childLevel,shouldExpandNode:shouldExpandNode,clickToExpandNode:clickToExpandNode,beforeExpandChange:beforeExpandChange,outerRef:outerRef}))):reactExports.createElement("span",{className:style.collapsedContent,onClick:onClick,onKeyDown:onKeyDown}),reactExports.createElement("span",{className:style.punctuation},closeBracket),!lastElement&&reactExports.createElement("span",{className:style.punctuation},","))}function JsonObject(_ref3){let{field:field2,value:value,style:style,lastElement:lastElement,shouldExpandNode:shouldExpandNode,clickToExpandNode:clickToExpandNode,level:level,outerRef:outerRef,beforeExpandChange:beforeExpandChange}=_ref3;return ExpandableObject({field:field2,value:value,lastElement:lastElement||!1,level:level,openBracket:"{",closeBracket:"}",style:style,shouldExpandNode:shouldExpandNode,clickToExpandNode:clickToExpandNode,data:Object.keys(value).map(key=>[key,value[key]]),outerRef:outerRef,beforeExpandChange:beforeExpandChange})}function JsonArray(_ref4){let{field:field2,value:value,style:style,lastElement:lastElement,level:level,shouldExpandNode:shouldExpandNode,clickToExpandNode:clickToExpandNode,outerRef:outerRef,beforeExpandChange:beforeExpandChange}=_ref4;return ExpandableObject({field:field2,value:value,lastElement:lastElement||!1,level:level,openBracket:"[",closeBracket:"]",style:style,shouldExpandNode:shouldExpandNode,clickToExpandNode:clickToExpandNode,data:value.map(element=>[void 0,element]),outerRef:outerRef,beforeExpandChange:beforeExpandChange})}function JsonPrimitiveValue(_ref5){let stringValue,{field:field2,value:value,style:style,lastElement:lastElement}=_ref5,valueStyle=style.otherValue;var data;return null===value?(stringValue="null",valueStyle=style.nullValue):void 0===value?(stringValue="undefined",valueStyle=style.undefinedValue):"string"==typeof(data=value)||data instanceof String?(stringValue=function(value,quoted,stringify){return stringify?JSON.stringify(value):quoted?`"${value}"`:value}(value,!style.noQuotesForStringValues,style.stringifyStringValues),valueStyle=style.stringValue):(data=>"boolean"==typeof data||data instanceof Boolean)(value)?(stringValue=value?"true":"false",valueStyle=style.booleanValue):(data=>"number"==typeof data||data instanceof Number)(value)?(stringValue=value.toString(),valueStyle=style.numberValue):(data=>"bigint"==typeof data||data instanceof BigInt)(value)?(stringValue=`${value.toString()}n`,valueStyle=style.numberValue):stringValue=isDate(value)?value.toISOString():isFunction(value)?"function() { }":value.toString(),reactExports.createElement("div",{className:style.basicChildStyle,role:"treeitem","aria-selected":void 0},(field2||""===field2)&&reactExports.createElement("span",{className:style.label},quoteString(field2,style.quotesForFieldNames),":"),reactExports.createElement("span",{className:valueStyle},stringValue),!lastElement&&reactExports.createElement("span",{className:style.punctuation},","))}function DataRender(props){const value=props.value;return data=value,Array.isArray(data)?reactExports.createElement(JsonArray,Object.assign({},props)):!isObject(value)||isDate(value)||isFunction(value)?reactExports.createElement(JsonPrimitiveValue,Object.assign({},props)):reactExports.createElement(JsonObject,Object.assign({},props));var data}var styles$6_basic_element_style="_2bkNM",styles$6_child_fields_container="_1BXBN";const defaultAriaLables={collapseJson:"collapse JSON",expandJson:"expand JSON"},defaultStyles={container:"_2IvMF _GzYRV",basicChildStyle:styles$6_basic_element_style,childFieldsContainer:styles$6_child_fields_container,label:"_1MGIk",clickableLabel:"_2YKJg _1MGIk _1MFti",nullValue:"_2T6PJ",undefinedValue:"_1Gho6",stringValue:"_vGjyY",booleanValue:"_3zQKs",numberValue:"_1bQdo",otherValue:"_1xvuR",punctuation:"_3uHL6 _3eOF8",collapseIcon:"_oLqym _f10Tu _1MFti _1LId0",expandIcon:"_2AXVT _f10Tu _1MFti _1UmXx",collapsedContent:"_2KJWg _1pNG9 _1MFti",noQuotesForStringValues:!1,quotesForFieldNames:!1,ariaLables:defaultAriaLables,stringifyStringValues:!1},darkStyles={container:"_11RoI _GzYRV",basicChildStyle:styles$6_basic_element_style,childFieldsContainer:styles$6_child_fields_container,label:"_2bSDX",clickableLabel:"_1RQEj _2bSDX _1MFti",nullValue:"_LaAZe",undefinedValue:"_GTKgm",stringValue:"_Chy1W",booleanValue:"_2vRm-",numberValue:"_2bveF",otherValue:"_1prJR",punctuation:"_gsbQL _3eOF8",collapseIcon:"_3QHg2 _f10Tu _1MFti _1LId0",expandIcon:"_17H2C _f10Tu _1MFti _1UmXx",collapsedContent:"_3fDAz _1pNG9 _1MFti",noQuotesForStringValues:!1,quotesForFieldNames:!1,ariaLables:defaultAriaLables,stringifyStringValues:!1},allExpanded=()=>!0,JsonView=_ref=>{let{data:data,style:style=defaultStyles,shouldExpandNode:shouldExpandNode=allExpanded,clickToExpandNode:clickToExpandNode=!1,beforeExpandChange:beforeExpandChange,compactTopLevel:compactTopLevel,...ariaAttrs}=_ref;const outerRef=reactExports.useRef(null);return reactExports.createElement("div",Object.assign({"aria-label":"JSON view"},ariaAttrs,{className:style.container,ref:outerRef,role:"tree"}),compactTopLevel&&isObject(data)?Object.entries(data).map(_ref2=>{let[key,value]=_ref2;return reactExports.createElement(DataRender,{key:key,field:key,value:value,style:{...defaultStyles,...style},lastElement:!0,level:1,shouldExpandNode:shouldExpandNode,clickToExpandNode:clickToExpandNode,beforeExpandChange:beforeExpandChange,outerRef:outerRef})}):reactExports.createElement(DataRender,{value:data,style:{...defaultStyles,...style},lastElement:!0,level:0,shouldExpandNode:shouldExpandNode,clickToExpandNode:clickToExpandNode,outerRef:outerRef,beforeExpandChange:beforeExpandChange}))},styles$5_container="_container_b5r6a_1";class JsonViewer extends React__default.Component{shouldComponentUpdate(nextProps){return nextProps.data!==this.props.data||nextProps.defaultExpand!==this.props.defaultExpand||nextProps.expandNode!==this.props.expandNode}render(){const{data:data,defaultExpand:defaultExpand,expandNode:expandNode}=this.props,customStyles={..."undefined"!=typeof document&&"light"!==document.documentElement.getAttribute("data-theme")?darkStyles:defaultStyles,container:"rjv-container"};if(null==data)return null;const shouldExpandNode="function"==typeof expandNode?expandNode:"all"===defaultExpand?()=>!0:"root"===defaultExpand?level=>level<2:level=>level<1;return jsxRuntimeExports.jsx("div",{className:styles$5_container,children:jsxRuntimeExports.jsx(JsonView,{data:data,shouldExpandNode:shouldExpandNode,style:customStyles})})}}const styles$4={root:"_root_19ren_1",sidebar:"_sidebar_19ren_9",section:"_section_19ren_18",sectionHeader:"_sectionHeader_19ren_22",arrow:"_arrow_19ren_48",sectionTitle:"_sectionTitle_19ren_54",sectionCount:"_sectionCount_19ren_62",sectionBody:"_sectionBody_19ren_71",historyToggle:"_historyToggle_19ren_76",historyToggleLabel:"_historyToggleLabel_19ren_102",item:"_item_19ren_107",itemActive:"_itemActive_19ren_135",itemContent:"_itemContent_19ren_142",itemLabel:"_itemLabel_19ren_148",itemSublabel:"_itemSublabel_19ren_156",itemTime:"_itemTime_19ren_165",itemNested:"_itemNested_19ren_173",itemLead:"_itemLead_19ren_177",itemGroupArrow:"_itemGroupArrow_19ren_187",itemLeafMarker:"_itemLeafMarker_19ren_192",itemChildCount:"_itemChildCount_19ren_198",contentWrap:"_contentWrap_19ren_212",content:"_content_19ren_210",contentEmpty:"_contentEmpty_19ren_228",contentInner:"_contentInner_19ren_235",emptyWrap:"_emptyWrap_19ren_239",roleHeader:"_roleHeader_19ren_247",roleBadge:"_roleBadge_19ren_255",role_user:"_role_user_19ren_264",role_assistant:"_role_assistant_19ren_270",role_input:"_role_input_19ren_276",roleLabel:"_roleLabel_19ren_282",contentTime:"_contentTime_19ren_289",turnDivider:"_turnDivider_19ren_297",textBlock:"_textBlock_19ren_304",textBlockBar:"_textBlockBar_19ren_311",textBlockBody:"_textBlockBody_19ren_320",textBlockCompact:"_textBlockCompact_19ren_328",textBlockCompactFloat:"_textBlockCompactFloat_19ren_335",thinkingBlock:"_thinkingBlock_19ren_342",thinkingHeader:"_thinkingHeader_19ren_350",thinkingPreview:"_thinkingPreview_19ren_365",thinkingBody:"_thinkingBody_19ren_375",toolBlock:"_toolBlock_19ren_381",toolBlockResult:"_toolBlockResult_19ren_388",toolBlockError:"_toolBlockError_19ren_392",toolBlockHeader:"_toolBlockHeader_19ren_396",toolBlockBody:"_toolBlockBody_19ren_407",toolName:"_toolName_19ren_412",toolId:"_toolId_19ren_418",errorLabel:"_errorLabel_19ren_425",blockTag:"_blockTag_19ren_435",blockTagText:"_blockTagText_19ren_448",blockTagThinking:"_blockTagThinking_19ren_454",blockTagResult:"_blockTagResult_19ren_460",blockTagError:"_blockTagError_19ren_466",jsonBlock:"_jsonBlock_19ren_473",jsonBlockLabel:"_jsonBlockLabel_19ren_480",blockSeparator:"_blockSeparator_19ren_490",markdownBody:"_markdownBody_19ren_497",contentToolbar:"_contentToolbar_19ren_505",contentToolbarLabel:"_contentToolbarLabel_19ren_514",rawPre:"_rawPre_19ren_520",toolAdded:"_toolAdded_19ren_533",toolRemoved:"_toolRemoved_19ren_537",toolDiffTag:"_toolDiffTag_19ren_542",toolDiffSummary:"_toolDiffSummary_19ren_550",toolDiffSummaryAdd:"_toolDiffSummaryAdd_19ren_559",toolDiffSummaryRemove:"_toolDiffSummaryRemove_19ren_563"},{Text:Text$1}=Typography;function parseContentBlocks(content2){if(null==content2)return[];if("string"==typeof content2){const trimmed=content2.trim();return trimmed?[{type:"markdown",text:trimmed}]:[]}if(Array.isArray(content2)){const blocks=[];for(const block of content2)if(block)if("text"===block.type||"input_text"===block.type||"output_text"===block.type){const text=block.text??block.input_text??block.output_text??"",trimmed="string"==typeof text?text.trim():"";trimmed&&blocks.push({type:"markdown",text:trimmed,label:block.type})}else if("tool_use"===block.type)blocks.push({type:"tool_use",name:block.name||"unknown",id:block.id||"",input:block.input??{}});else if("tool_result"===block.type){const inner=parseResultContent(block.content);blocks.push({type:"tool_result",tool_use_id:block.tool_use_id||"",is_error:block.is_error,content:inner})}else if("thinking"===block.type){const text=block.thinking||"";text.trim()&&blocks.push({type:"thinking",text:text})}else"image"===block.type?blocks.push({type:"json",label:"image",data:block}):blocks.push({type:"json",label:block.type||"block",data:block});return blocks}return[{type:"json",label:"content",data:content2}]}function parseResultContent(content2){if(null==content2)return[];if("string"==typeof content2){const trimmed=content2.trim();return trimmed?[{type:"markdown",text:trimmed}]:[]}return Array.isArray(content2)?content2.flatMap(c=>{if(!c)return[];if("text"===c.type||"input_text"===c.type||"output_text"===c.type){const text=c.text??c.input_text??c.output_text??"",trimmed="string"==typeof text?text.trim():"";return trimmed?[{type:"markdown",text:trimmed,label:c.type}]:[]}return[{type:"json",label:c.type||"block",data:c}]}):[{type:"json",label:"content",data:content2}]}function parseToolBlocks(tool){const blocks=[],name=(null==tool?void 0:tool.name)||"unknown",desc=(null==tool?void 0:tool.description)||"";let md=`### ${name}\n\n`;desc&&(md+=`${desc}\n\n`),blocks.push({type:"markdown",text:md});const schema=(null==tool?void 0:tool.input_schema)||(null==tool?void 0:tool.parameters)||null;return schema&&blocks.push({type:"json",label:"Parameters",data:schema}),blocks}function extractPreviewText(content2){if("string"==typeof content2)return content2.slice(0,60).replace(/\n/g," ");if(Array.isArray(content2))for(const block of content2){const text=(null==block?void 0:block.text)??(null==block?void 0:block.input_text)??(null==block?void 0:block.output_text);if(("text"===(null==block?void 0:block.type)||"input_text"===(null==block?void 0:block.type)||"output_text"===(null==block?void 0:block.type))&&"string"==typeof text&&text.trim())return text.trim().slice(0,60).replace(/\n/g," ")}return""}function getInputItemType(item2){return item2&&"object"==typeof item2&&!Array.isArray(item2)?item2.type||(item2.role?"message":"input"):Array.isArray(item2)?"array":typeof item2}function parseMaybeJsonString(value){if("string"!=typeof value)return value??{};const trimmed=value.trim();if(!trimmed)return{};try{return JSON.parse(trimmed)}catch{return value}}function parseInputItemBlocks(item2){if(null==item2)return[];if("string"==typeof item2)return parseContentBlocks(item2);if(!item2||"object"!=typeof item2||Array.isArray(item2))return[{type:"json",label:getInputItemType(item2),data:item2}];if("function_call"===item2.type||"tool_use"===item2.type)return[{type:"tool_use",name:item2.name||"unknown",id:item2.call_id||item2.id||"",input:item2.input??parseMaybeJsonString(item2.arguments)}];if("function_call_output"===item2.type||"tool_result"===item2.type)return[{type:"tool_result",tool_use_id:item2.call_id||item2.tool_use_id||"",is_error:item2.is_error,content:parseResultContent(item2.output??item2.content)}];if(Object.prototype.hasOwnProperty.call(item2,"content")){const blocks=parseContentBlocks(item2.content);if(blocks.length>0)return blocks}if(Object.prototype.hasOwnProperty.call(item2,"output")){const blocks=parseResultContent(item2.output);if(blocks.length>0)return blocks}return[{type:"json",label:getInputItemType(item2),data:item2}]}function extractInputPreview(item2){if(null==item2)return"";if("string"==typeof item2)return extractPreviewText(item2);if(!item2||"object"!=typeof item2||Array.isArray(item2))return"";const fromContent=extractPreviewText(item2.content);return fromContent||("string"==typeof item2.output?item2.output.slice(0,60).replace(/\n/g," "):"string"==typeof item2.arguments?item2.arguments.slice(0,60).replace(/\n/g," "):item2.name||item2.type||"")}function formatTurnTime(isoStr){try{return new Date(isoStr).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}catch{return null}}function TranslatableMarkdown({text:text,label:label2="text",compact:compact}){const displayHtml=renderMarkdown(text);return compact?jsxRuntimeExports.jsx("div",{className:styles$4.textBlockCompact,children:jsxRuntimeExports.jsx("div",{className:`chat-md ${styles$4.markdownBody}`,dangerouslySetInnerHTML:{__html:displayHtml}})}):jsxRuntimeExports.jsxs("div",{className:styles$4.textBlock,children:[jsxRuntimeExports.jsx("div",{className:styles$4.textBlockBar,children:jsxRuntimeExports.jsx("span",{className:`${styles$4.blockTag} ${styles$4.blockTagText}`,children:label2})}),jsxRuntimeExports.jsx("div",{className:`chat-md ${styles$4.textBlockBody}`,dangerouslySetInnerHTML:{__html:displayHtml}})]})}function ThinkingBlock({block:block}){const[expanded,setExpanded]=reactExports.useState(!0),preview=block.text.length>60?block.text.slice(0,60).replace(/\n/g," ")+"…":block.text.replace(/\n/g," ");return jsxRuntimeExports.jsxs("div",{className:styles$4.thinkingBlock,children:[jsxRuntimeExports.jsxs("div",{className:styles$4.thinkingHeader,onClick:()=>setExpanded(v=>!v),children:[expanded?jsxRuntimeExports.jsx(RefIcon$b,{className:styles$4.arrow}):jsxRuntimeExports.jsx(RefIcon$c,{className:styles$4.arrow}),jsxRuntimeExports.jsx("span",{className:`${styles$4.blockTag} ${styles$4.blockTagThinking}`,children:"thinking"}),!expanded&&jsxRuntimeExports.jsx("span",{className:styles$4.thinkingPreview,children:preview})]}),expanded&&jsxRuntimeExports.jsx("div",{className:styles$4.thinkingBody,children:jsxRuntimeExports.jsx("div",{className:`chat-md ${styles$4.markdownBody}`,dangerouslySetInnerHTML:{__html:renderMarkdown(block.text)}})})]})}function RenderBlocks({blocks:blocks,compact:compact}){return blocks&&0!==blocks.length?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:blocks.map((block,i)=>jsxRuntimeExports.jsx(RenderBlock,{block:block,compact:compact},i))}):null}function RenderBlock({block:block,compact:compact}){var _a;return"separator"===block.type?jsxRuntimeExports.jsx("hr",{className:styles$4.blockSeparator}):"markdown"===block.type?(null==(_a=block.text)?void 0:_a.trim())?jsxRuntimeExports.jsx(TranslatableMarkdown,{text:block.text,label:block.label,compact:compact}):null:"thinking"===block.type?jsxRuntimeExports.jsx(ThinkingBlock,{block:block}):"tool_use"===block.type?jsxRuntimeExports.jsxs("div",{className:styles$4.toolBlock,children:[jsxRuntimeExports.jsxs("div",{className:styles$4.toolBlockHeader,children:[jsxRuntimeExports.jsx("span",{className:styles$4.blockTag,children:"tool_use"}),jsxRuntimeExports.jsx("span",{className:styles$4.toolName,children:block.name}),block.id&&jsxRuntimeExports.jsx("span",{className:styles$4.toolId,children:block.id})]}),jsxRuntimeExports.jsx("div",{className:styles$4.toolBlockBody,children:jsxRuntimeExports.jsx(JsonViewer,{data:block.input,defaultExpand:"root"})})]}):"tool_result"===block.type?jsxRuntimeExports.jsxs("div",{className:`${styles$4.toolBlock} ${block.is_error?styles$4.toolBlockError:styles$4.toolBlockResult}`,children:[jsxRuntimeExports.jsxs("div",{className:styles$4.toolBlockHeader,children:[jsxRuntimeExports.jsx("span",{className:`${styles$4.blockTag} ${block.is_error?styles$4.blockTagError:styles$4.blockTagResult}`,children:"tool_result"}),block.tool_use_id&&jsxRuntimeExports.jsx("span",{className:styles$4.toolId,children:block.tool_use_id}),block.is_error&&jsxRuntimeExports.jsx("span",{className:styles$4.errorLabel,children:"error"})]}),jsxRuntimeExports.jsx("div",{className:styles$4.toolBlockBody,children:jsxRuntimeExports.jsx(RenderBlocks,{blocks:block.content,compact:!0})})]}):"json"===block.type?jsxRuntimeExports.jsxs("div",{className:styles$4.jsonBlock,children:[block.label&&jsxRuntimeExports.jsx("div",{className:styles$4.jsonBlockLabel,children:block.label}),jsxRuntimeExports.jsx(JsonViewer,{data:block.data,defaultExpand:"root"})]}):null}function InputItemContent({item:item2}){const timeStr=item2.timestamp?formatTurnTime(item2.timestamp):null,badgeClass=item2.role&&styles$4[`role_${item2.role}`]||styles$4.role_input,badgeText=item2.role||item2.type||"input";return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:styles$4.roleHeader,children:[jsxRuntimeExports.jsx("span",{className:`${styles$4.roleBadge} ${badgeClass}`,children:badgeText}),jsxRuntimeExports.jsx("span",{className:styles$4.roleLabel,children:`input[${item2.inputIndex}]`}),timeStr&&jsxRuntimeExports.jsx("span",{className:styles$4.contentTime,children:timeStr})]}),jsxRuntimeExports.jsx(RenderBlocks,{blocks:item2.blocks})]})}function AccordionSection({sectionKey:sectionKey,title:title,items:items,historyItems:historyItems=[],onSelect:onSelect,onSelectById:onSelectById,selectedId:selectedId,sidebarRef:sidebarRef,countOverride:countOverride}){const[open,setOpen]=reactExports.useState("tools"!==sectionKey),[historyOpen,setHistoryOpen]=reactExports.useState(!1),[expandedItemIds,setExpandedItemIds]=reactExports.useState(()=>new Set),totalCount=null!=countOverride?countOverride:items.length+historyItems.length,historyToggleId=`${sectionKey}__history_toggle`;function handleControlKeyDown(event,controlId){var _a;const nextId=function({currentId:currentId,visibleIds:visibleIds=[],key:key}){if("ArrowUp"!==key&&"ArrowDown"!==key)return null;const currentIndex=visibleIds.findIndex(id=>id===currentId);return currentIndex>=0?visibleIds[currentIndex+("ArrowUp"===key?-1:1)]??null:null}({currentId:controlId,visibleIds:Array.from((null==(_a=sidebarRef.current)?void 0:_a.querySelectorAll("[data-context-sidebar-control]"))||[]).map(el=>el.dataset.contextSidebarControl).filter(Boolean),key:event.key});nextId&&(event.preventDefault(),"undefined"!=typeof window&&window.requestAnimationFrame(()=>{var _a2;!function(controlId){var _a;const el=null==(_a=sidebarRef.current)?void 0:_a.querySelector(`[data-context-sidebar-control="${controlId}"]`);el&&(el.focus(),el.scrollIntoView({block:"nearest"}))}(nextId);const nextEl=null==(_a2=sidebarRef.current)?void 0:_a2.querySelector(`[data-context-sidebar-control="${nextId}"]`);"item"===(null==nextEl?void 0:nextEl.dataset.controlType)&&onSelectById(nextId)}))}function renderItem(item2,depth=0){const active=selectedId===item2.id,hasChildren=Array.isArray(item2.children)&&item2.children.length>0,childrenOpen=hasChildren&&expandedItemIds.has(item2.id);return jsxRuntimeExports.jsxs(React__default.Fragment,{children:[jsxRuntimeExports.jsxs("button",{type:"button",className:`${styles$4.item} ${depth>0?styles$4.itemNested:""} ${hasChildren?styles$4.itemGroup:""} ${active?styles$4.itemActive:""}`,onClick:()=>{onSelect(item2),hasChildren&&setExpandedItemIds(prev=>{const next=new Set(prev);return next.has(item2.id)?next.delete(item2.id):next.add(item2.id),next})},onKeyDown:event=>handleControlKeyDown(event,item2.id),"aria-current":active?"true":void 0,"aria-expanded":hasChildren?childrenOpen:void 0,"data-context-sidebar-control":item2.id,"data-control-type":"item",children:[jsxRuntimeExports.jsx("span",{className:styles$4.itemLead,"aria-hidden":"true",children:hasChildren?childrenOpen?jsxRuntimeExports.jsx(RefIcon$b,{className:styles$4.itemGroupArrow}):jsxRuntimeExports.jsx(RefIcon$c,{className:styles$4.itemGroupArrow}):jsxRuntimeExports.jsx("span",{className:styles$4.itemLeafMarker,children:"•"})}),jsxRuntimeExports.jsxs("div",{className:styles$4.itemContent,children:[jsxRuntimeExports.jsx("span",{className:styles$4.itemLabel,children:item2.label}),item2.sublabel&&!active&&jsxRuntimeExports.jsx("div",{className:styles$4.itemSublabel,children:item2.sublabel})]}),hasChildren&&jsxRuntimeExports.jsx("span",{className:styles$4.itemChildCount,children:item2.children.length}),item2.time&&jsxRuntimeExports.jsx("span",{className:styles$4.itemTime,children:item2.time})]}),childrenOpen&&item2.children.map(child=>renderItem(child,depth+1))]},item2.id)}return jsxRuntimeExports.jsxs("div",{className:styles$4.section,children:[jsxRuntimeExports.jsxs("button",{type:"button",className:styles$4.sectionHeader,onClick:()=>setOpen(v=>!v),"aria-expanded":open,children:[open?jsxRuntimeExports.jsx(RefIcon$b,{className:styles$4.arrow}):jsxRuntimeExports.jsx(RefIcon$c,{className:styles$4.arrow}),jsxRuntimeExports.jsx("span",{className:styles$4.sectionTitle,children:title}),jsxRuntimeExports.jsx("span",{className:styles$4.sectionCount,children:totalCount})]}),open&&jsxRuntimeExports.jsxs("div",{className:styles$4.sectionBody,children:[historyItems.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("button",{type:"button",className:styles$4.historyToggle,onClick:()=>setHistoryOpen(v=>!v),onKeyDown:event=>handleControlKeyDown(event,historyToggleId),"aria-expanded":historyOpen,"data-context-sidebar-control":historyToggleId,"data-control-type":"toggle",children:[historyOpen?jsxRuntimeExports.jsx(RefIcon$b,{className:styles$4.arrow}):jsxRuntimeExports.jsx(RefIcon$c,{className:styles$4.arrow}),jsxRuntimeExports.jsxs("span",{className:styles$4.historyToggleLabel,children:[t("ui.context.history")," (",historyItems.length,")"]})]}),historyOpen&&historyItems.map(item2=>renderItem(item2,0))]}),items.map(item2=>renderItem(item2,0))]})]})}function ContextTab({body:body,prevTools:prevTools}){const[selectedItem,setSelectedItem]=reactExports.useState(null),[rawMode,setRawMode]=reactExports.useState(!1),sidebarRef=reactExports.useRef(null),contentRef=reactExports.useRef(null),inputItems=reactExports.useMemo(()=>Array.isArray(null==body?void 0:body.input)?body.input.flatMap((item2,index)=>{if(isResponseConfigInputItem(item2))return[];const timestamp=item2&&"object"==typeof item2&&(item2._timestamp||item2.timestamp)||null;return[{id:`input__${index}`,isInputItem:!0,inputIndex:index,role:item2&&"object"==typeof item2&&!Array.isArray(item2)?item2.role:null,type:getInputItemType(item2),timestamp:timestamp,blocks:parseInputItemBlocks(item2),raw:item2,preview:extractInputPreview(item2)}]}):[],[body]);reactExports.useEffect(()=>{inputItems.length>0?setSelectedItem(inputItems[inputItems.length-1]):setSelectedItem(null)},[body]);const currentSelectedItem=(null==selectedItem?void 0:selectedItem.isInputItem)?inputItems.find(item2=>item2.id===selectedItem.id)??null:selectedItem,rawText=reactExports.useMemo(()=>function(item2){if(!item2)return"";const raw=item2.isTurn?[item2.rawUser,item2.rawAssistant].filter(Boolean):item2.raw;if(null==raw)return"";const clean="object"==typeof raw?stripPrivateKeys(raw):raw;return"string"==typeof clean?clean:JSON.stringify(clean,null,2)}(currentSelectedItem),[currentSelectedItem]);if(!body||"object"!=typeof body)return jsxRuntimeExports.jsx("div",{className:styles$4.emptyWrap,children:jsxRuntimeExports.jsx(Empty,{description:t("ui.context.noData")})});const accordionSections=[],tools=getResponseTools(body),instructions=getResponseInstructions(body);if(tools.length>0){const diff=function(prevTools,curTools){const prevNameSet=Array.isArray(prevTools)?new Set(prevTools.map(t2=>null==t2?void 0:t2.name).filter(Boolean)):null,curNameSet=new Set((Array.isArray(curTools)?curTools:[]).map(t2=>null==t2?void 0:t2.name).filter(Boolean)),addedNames=prevNameSet?[...curNameSet].filter(n=>!prevNameSet.has(n)):[],removedNames=prevNameSet?[...prevNameSet].filter(n=>!curNameSet.has(n)):[];return{hasPrev:null!=prevNameSet,isAdded:name=>null!=prevNameSet&&!!name&&!prevNameSet.has(name),addedNames:addedNames,removedNames:removedNames,addedCount:addedNames.length,removedCount:removedNames.length,changed:addedNames.length>0||removedNames.length>0}}(prevTools,tools),toolItems=tools.map((tool,i)=>{const name=(null==tool?void 0:tool.name)||`Tool ${i}`,isAdded=diff.isAdded(null==tool?void 0:tool.name),namespaceChildren="namespace"===(null==tool?void 0:tool.type)&&Array.isArray(tool.tools)?tool.tools.map((child,childIndex)=>({id:`tool__${i}__child__${childIndex}`,label:(null==child?void 0:child.name)||`Tool ${childIndex}`,sublabel:(null==child?void 0:child.description)||void 0,blocks:parseToolBlocks(child),raw:child})):null,execChildren=function(tool,toolIndex){if("custom"!==(null==tool?void 0:tool.type)||"exec"!==(null==tool?void 0:tool.name)||"string"!=typeof tool.description)return[];const description=tool.description;return Array.from(description.matchAll(/^###\s+`([^`]+)`\s*$/gm)).map((match,childIndex)=>{var _a;const sectionStart=match.index+match[0].length,remaining=description.slice(sectionStart),nextHeading=remaining.search(/^#{2,3}\s+/m),section2=(nextHeading>=0?remaining.slice(0,nextHeading):remaining).trim(),declared={type:"exec_declared_tool",name:match[1],description:section2};return{id:`tool__${toolIndex}__child__${childIndex}`,label:declared.name,sublabel:(null==(_a=declared.description.split("\n").find(line=>line.trim()))?void 0:_a.trim())||void 0,blocks:parseToolBlocks(declared),raw:declared}})}(tool,i);return{id:`tool__${i}`,label:isAdded?jsxRuntimeExports.jsxs("span",{className:styles$4.toolAdded,children:[name,jsxRuntimeExports.jsx("span",{className:styles$4.toolDiffTag,children:t("ui.context.toolAdded")})]}):name,blocks:parseToolBlocks(tool),raw:tool,children:namespaceChildren||(execChildren.length>0?execChildren:null)}});diff.removedNames.forEach(name=>{toolItems.push({id:`tool_removed__${name}`,label:jsxRuntimeExports.jsxs("span",{className:styles$4.toolRemoved,children:[name,jsxRuntimeExports.jsx("span",{className:styles$4.toolDiffTag,children:t("ui.context.toolRemoved")})]}),blocks:[{type:"markdown",text:t("ui.context.toolRemovedNote")}],raw:{name:name,_removed:!0}})}),accordionSections.push({key:"tools",countOverride:tools.length,title:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[t("ui.context.tools")," ",jsxRuntimeExports.jsx(ConceptHelp,{doc:"ToolsFirst"}),diff.changed&&jsxRuntimeExports.jsxs("span",{className:styles$4.toolDiffSummary,children:[diff.addedCount>0&&jsxRuntimeExports.jsxs("span",{className:styles$4.toolDiffSummaryAdd,children:["+",diff.addedCount]}),diff.removedCount>0&&jsxRuntimeExports.jsxs("span",{className:styles$4.toolDiffSummaryRemove,children:["-",diff.removedCount]})]})]}),items:toolItems})}const instructionsBlocks=function(instructions){if(!instructions)return null;if("string"==typeof instructions)return[{type:"markdown",text:instructions}];if(Array.isArray(instructions)){const blocks=[];return instructions.forEach((item2,i)=>{if(i>0&&blocks.push({type:"separator"}),item2)if("string"==typeof item2)blocks.push({type:"markdown",text:item2});else if("text"===item2.type||"input_text"===item2.type||"output_text"===item2.type){const text=item2.text??item2.input_text??item2.output_text??"";blocks.push({type:"markdown",text:text,label:item2.type})}else blocks.push({type:"json",label:item2.type||"item",data:item2})}),blocks}return[{type:"json",label:"instructions",data:instructions}]}(instructions);if(null!=instructionsBlocks&&accordionSections.push({key:"instructions",title:t("ui.context.systemPrompt"),items:[{id:"instructions__0",label:t("ui.context.systemPrompt"),blocks:instructionsBlocks,raw:instructions}]}),inputItems.length>0){const toHistoryItem=item2=>({...item2,label:t("ui.context.historyTurnNoTime",{n:item2.inputIndex+1}),time:item2.timestamp?formatTurnTime(item2.timestamp):null,sublabel:item2.preview||item2.type||void 0}),toCurrentItem=item2=>({...item2,label:t("ui.context.currentTurn"),sublabel:item2.preview||item2.type||void 0}),historyInputs=inputItems.slice(0,-1).map(toHistoryItem),currentInput=toCurrentItem(inputItems[inputItems.length-1]);accordionSections.push({key:"input",title:t("ui.context.messages"),historyItems:historyInputs.length>0?historyInputs:void 0,items:[currentInput]})}if(0===accordionSections.length)return jsxRuntimeExports.jsx("div",{className:styles$4.emptyWrap,children:jsxRuntimeExports.jsx(Empty,{description:t("ui.context.noFields")})});const itemMap=new Map;return accordionSections.forEach(section2=>{(section2.historyItems||[]).forEach(item2=>itemMap.set(item2.id,item2)),section2.items.forEach(item2=>{itemMap.set(item2.id,item2),(item2.children||[]).forEach(child=>itemMap.set(child.id,child))})}),jsxRuntimeExports.jsxs("div",{className:styles$4.root,children:[jsxRuntimeExports.jsx("div",{ref:sidebarRef,className:styles$4.sidebar,children:accordionSections.map(sec=>jsxRuntimeExports.jsx(AccordionSection,{sectionKey:sec.key,title:sec.title,items:sec.items,historyItems:sec.historyItems,countOverride:sec.countOverride,selectedId:null==currentSelectedItem?void 0:currentSelectedItem.id,onSelect:item2=>setSelectedItem(item2),onSelectById:itemId=>{const nextItem=itemMap.get(itemId);nextItem&&setSelectedItem(nextItem)},sidebarRef:sidebarRef},sec.key))}),jsxRuntimeExports.jsxs("div",{className:styles$4.contentWrap,children:[null!=currentSelectedItem&&jsxRuntimeExports.jsxs("div",{className:styles$4.contentToolbar,children:[rawMode&&jsxRuntimeExports.jsx(Button,{size:"small",icon:jsxRuntimeExports.jsx(RefIcon$k,{}),onClick:()=>{navigator.clipboard&&navigator.clipboard.writeText(rawText).then(()=>staticMethods.success(t("ui.copySuccess"))).catch(()=>{})},children:t("ui.copy")}),jsxRuntimeExports.jsx("span",{className:styles$4.contentToolbarLabel,children:t("ui.context.viewRaw")}),jsxRuntimeExports.jsx(Switch,{size:"small",checked:rawMode,"aria-label":t("ui.context.viewRaw"),onChange:v=>{setRawMode(v),contentRef.current&&(contentRef.current.scrollTop=0)}})]}),jsxRuntimeExports.jsx("div",{className:styles$4.content,ref:contentRef,children:null==currentSelectedItem?jsxRuntimeExports.jsx("div",{className:styles$4.contentEmpty,children:jsxRuntimeExports.jsx(Text$1,{type:"secondary",children:t("ui.context.selectPrompt")})}):jsxRuntimeExports.jsx("div",{className:styles$4.contentInner,children:rawMode?jsxRuntimeExports.jsx("pre",{className:styles$4.rawPre,children:rawText}):currentSelectedItem.isInputItem?jsxRuntimeExports.jsx(InputItemContent,{item:currentSelectedItem}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[currentSelectedItem.role&&jsxRuntimeExports.jsxs("div",{className:styles$4.roleHeader,children:[jsxRuntimeExports.jsx("span",{className:`${styles$4.roleBadge} ${styles$4[`role_${currentSelectedItem.role}`]||""}`,children:currentSelectedItem.role}),jsxRuntimeExports.jsx("span",{className:styles$4.roleLabel,children:currentSelectedItem.label})]}),jsxRuntimeExports.jsx(RenderBlocks,{blocks:currentSelectedItem.blocks})]})},currentSelectedItem.id)})]})]})}const styles$3_container="_container_kee2j_1",styles$3_emptyState="_emptyState_kee2j_10",styles$3_urlSection="_urlSection_kee2j_17",styles$3_urlLeft="_urlLeft_kee2j_25",styles$3_tokenStatsBox="_tokenStatsBox_kee2j_30",styles$3_tokenGrid="_tokenGrid_kee2j_37",styles$3_tokenRows="_tokenRows_kee2j_47",styles$3_tokenRow="_tokenRow_kee2j_47",styles$3_tokenRowBorder="_tokenRowBorder_kee2j_55",styles$3_tokenLabel="_tokenLabel_kee2j_59",styles$3_tokenTd="_tokenTd_kee2j_68",styles$3_urlText="_urlText_kee2j_77",styles$3_metaText="_metaText_kee2j_84",styles$3_headersContainer="_headersContainer_kee2j_88",styles$3_headerRow="_headerRow_kee2j_92",styles$3_headerKey="_headerKey_kee2j_98",styles$3_headerValue="_headerValue_kee2j_103",styles$3_streamingBox="_streamingBox_kee2j_108",styles$3_rawTextPre="_rawTextPre_kee2j_121",styles$3_tabContent="_tabContent_kee2j_134",styles$3_bodyLabel="_bodyLabel_kee2j_146",styles$3_bodyHeader="_bodyHeader_kee2j_150",styles$3_diffSection="_diffSection_kee2j_157",styles$3_diffToggle="_diffToggle_kee2j_161",styles$3_diffIcon="_diffIcon_kee2j_167",styles$3_reminderSelect="_reminderSelect_kee2j_193",styles$3_diffHeaderRow="_diffHeaderRow_kee2j_212",styles$3_diffSpaceRight="_diffSpaceRight_kee2j_218",styles$3_metadataSection="_metadataSection_kee2j_222",styles$3_metadataHeader="_metadataHeader_kee2j_230",styles$3_metadataSubtle="_metadataSubtle_kee2j_238",styles$3_metadataGrid="_metadataGrid_kee2j_243",styles$3_metadataStat="_metadataStat_kee2j_250",styles$3_metadataStatLabel="_metadataStatLabel_kee2j_258",styles$3_metadataKey="_metadataKey_kee2j_259",styles$3_metadataStatValue="_metadataStatValue_kee2j_266",styles$3_metadataValue="_metadataValue_kee2j_267",styles$3_metadataKvList="_metadataKvList_kee2j_275",styles$3_metadataKvRow="_metadataKvRow_kee2j_282",styles$3_modelCatalogList="_modelCatalogList_kee2j_288",styles$3_modelCatalogListExpanded="_modelCatalogListExpanded_kee2j_296",styles$3_modelCatalogItem="_modelCatalogItem_kee2j_301",styles$3_modelCatalogRow="_modelCatalogRow_kee2j_309",styles$3_modelCatalogMain="_modelCatalogMain_kee2j_334",styles$3_modelCatalogId="_modelCatalogId_kee2j_338",styles$3_modelCatalogLabel="_modelCatalogLabel_kee2j_348",styles$3_modelCatalogDetail="_modelCatalogDetail_kee2j_358",styles$3_modelCatalogStatus="_modelCatalogStatus_kee2j_359",styles$3_modelCatalogChevron="_modelCatalogChevron_kee2j_372",styles$3_modelCatalogDetails="_modelCatalogDetails_kee2j_377",styles$3_metadataRaw="_metadataRaw_kee2j_388",styles$3_toolSection="_toolSection_kee2j_393",styles$3_toolSummaryGrid="_toolSummaryGrid_kee2j_401",styles$3_toolPayloadGrid="_toolPayloadGrid_kee2j_408",styles$3_toolPayload="_toolPayload_kee2j_408",styles$3_toolPayloadHeader="_toolPayloadHeader_kee2j_422",styles$3_toolPayloadBody="_toolPayloadBody_kee2j_430",styles$3_reminderFilterWrapper="_reminderFilterWrapper_kee2j_447",styles$3_reminderLabel="_reminderLabel_kee2j_453",styles$3_contextTabContent="_contextTabContent_kee2j_459",{Text:Text,Paragraph:Paragraph}=Typography;function firstValue(obj,keys){if(obj&&"object"==typeof obj)for(const key of keys)if(void 0!==obj[key]&&null!==obj[key]&&""!==obj[key])return obj[key]}function normalizeModelEntry(model,idx){if("string"==typeof model)return{id:model,label:"",detail:"",status:"",raw:model,key:`${model}-${idx}`};if(!model||"object"!=typeof model)return{id:String(model??`model-${idx+1}`),label:"",detail:"",status:"",raw:model,key:`model-${idx}`};const id=firstValue(model,["id","slug","model","model_id","modelId","name","value","key"])||`model-${idx+1}`,label2=firstValue(model,["display_name","displayName","title","label","description"])||"",context=firstValue(model,["context_window","contextWindow","context_length","contextLength","max_context_tokens","maxContextTokens"]),status=firstValue(model,["status","state"])||(!1===model.enabled||!1===model.available||!1===model.is_available?"unavailable":!0===model.enabled||!0===model.available||!0===model.is_available?"available":""),detail=context?`context ${formatTokenCount(context)}`:"";return{id:String(id),label:String(label2||""),detail:detail,status:String(status||""),raw:model,key:`${id}-${idx}`}}function renderMaybeJson(data,textClassName){return null==data||""===data?jsxRuntimeExports.jsx(Text,{type:"secondary",children:t("ui.noBody")}):"string"==typeof data?jsxRuntimeExports.jsx("pre",{className:textClassName,children:data}):jsxRuntimeExports.jsx(JsonViewer,{data:stripPrivateKeys(data),defaultExpand:"root"})}class DetailPanel extends React__default.Component{constructor(props){super(props),this.state={bodyViewMode:{request:"json",response:"json",diff:"json"},diffExpanded:!1,requestHeadersExpanded:!1,responseHeadersExpanded:!1,reminderFilters:null,modelCatalogExpanded:{}}}shouldComponentUpdate(nextProps,nextState){if(nextProps.request!==this.props.request){const isMA=isMainAgent(nextProps.request);this.setState({diffExpanded:isMA&&!!nextProps.expandDiff,requestHeadersExpanded:!1,responseHeadersExpanded:!1,reminderFilters:null,modelCatalogExpanded:{}})}return nextProps.request!==this.props.request||nextProps.currentTab!==this.props.currentTab||nextProps.onTabChange!==this.props.onTabChange||nextProps.selectedIndex!==this.props.selectedIndex||nextProps.expandDiff!==this.props.expandDiff||nextState.bodyViewMode!==this.state.bodyViewMode||nextState.diffExpanded!==this.state.diffExpanded||nextState.requestHeadersExpanded!==this.state.requestHeadersExpanded||nextState.responseHeadersExpanded!==this.state.responseHeadersExpanded||nextState.reminderFilters!==this.state.reminderFilters||nextState.modelCatalogExpanded!==this.state.modelCatalogExpanded}getCurrentRequest(){const{request:request,allRequests:allRequests,requests:requests}=this.props;return request?request._slimmed?restoreSlimmedEntry(request,allRequests||requests||[]):request:null}toggleBodyViewMode(type){this.setState(prev=>({bodyViewMode:{...prev.bodyViewMode,[type]:"json"===prev.bodyViewMode[type]?"text":"json"}}))}copyBody(type){var _a;const request=this.getCurrentRequest();if(!request)return;let data;if(data="diff"===type?this._lastDiffResult:"request"===type?request.body:null==(_a=request.response)?void 0:_a.body,null==data)return;const clean="object"==typeof data?stripPrivateKeys(data):data,text="string"==typeof clean?clean:JSON.stringify(clean,null,2);navigator.clipboard.writeText(text).then(()=>staticMethods.success(t("ui.copySuccess")))}renderHeaders(headers){return headers&&0!==Object.keys(headers).length?jsxRuntimeExports.jsx("div",{className:styles$3_headersContainer,children:Object.entries(headers).map(([key,value])=>jsxRuntimeExports.jsxs("div",{className:styles$3_headerRow,children:[jsxRuntimeExports.jsx(Text,{code:!0,className:styles$3_headerKey,children:key}),"authorization"===key&&jsxRuntimeExports.jsx(ConceptHelp,{doc:"TranslateContextPollution"}),jsxRuntimeExports.jsx(Text,{type:"secondary",className:styles$3_headerValue,children:String(value)})]},key))}):jsxRuntimeExports.jsx(Text,{type:"secondary",children:t("ui.noHeaders")})}getRequestExpandNode(data,type){if("request"!==type||!data||"object"!=typeof data)return;const{request:request,requests:requests,selectedIndex:selectedIndex}=this.props;if(!request)return;const nextReq=requests&&null!=selectedIndex?requests[selectedIndex+1]:null,{type:reqType}=classifyRequest(request,nextReq);let codexMdExpandSet=null;if("codexMd"===this.state.reminderFilters&&Array.isArray(data.input)){codexMdExpandSet=new Set,codexMdExpandSet.add(data.input);for(const msg of data.input){if(!msg||"object"!=typeof msg)continue;const content2=msg.content;if("string"==typeof content2)isCodexMdReminder(content2)&&codexMdExpandSet.add(msg);else if(Array.isArray(content2)){let hasMatch=!1;for(const block of content2)block&&"text"===block.type&&isCodexMdReminder(block.text)&&(codexMdExpandSet.add(block),hasMatch=!0);hasMatch&&(codexMdExpandSet.add(msg),codexMdExpandSet.add(content2))}}}let skillsExpandSet=null;if("skills"===this.state.reminderFilters&&Array.isArray(data.input)){skillsExpandSet=new Set,skillsExpandSet.add(data.input);for(const msg of data.input){if(!msg||"object"!=typeof msg)continue;const content2=msg.content;if("string"==typeof content2)isSkillsReminder(content2)&&skillsExpandSet.add(msg);else if(Array.isArray(content2)){let hasMatch=!1;for(const block of content2)block&&"text"===block.type&&isSkillsReminder(block.text)&&(skillsExpandSet.add(block),hasMatch=!0);hasMatch&&(skillsExpandSet.add(msg),skillsExpandSet.add(content2))}}}const filterExpandSet=codexMdExpandSet||skillsExpandSet;if("Preflight"===reqType){const expandRefs=new Set,collectAll=obj=>{obj&&"object"==typeof obj&&(expandRefs.add(obj),Array.isArray(obj)?obj.forEach(collectAll):Object.values(obj).forEach(collectAll))};return Array.isArray(data.input)&&collectAll(data.input),Array.isArray(data.instructions)&&data.instructions.length>=3&&collectAll(data.instructions[2]),(level,value,field2)=>level<2||(!!expandRefs.has(value)||(!(!filterExpandSet||!filterExpandSet.has(value))||1===level&&"instructions"===field2))}if("MainAgent"===reqType&&Array.isArray(data.input)&&1===data.input.length){const msg=data.input[0],contentArr=msg&&Array.isArray(msg.content)?msg.content:null,lastContent=contentArr&&contentArr.length>0?contentArr[contentArr.length-1]:null,expandRefs=new Set,collectAll=obj=>{obj&&"object"==typeof obj&&(expandRefs.add(obj),Array.isArray(obj)?obj.forEach(collectAll):Object.values(obj).forEach(collectAll))};return lastContent&&collectAll(lastContent),expandRefs.add(data.input),msg&&"object"==typeof msg&&expandRefs.add(msg),contentArr&&expandRefs.add(contentArr),(level,value,field2)=>level<2||(!!expandRefs.has(value)||!(!filterExpandSet||!filterExpandSet.has(value)))}return filterExpandSet?(level,value,field2)=>level<2||!!filterExpandSet.has(value):void 0}renderBody(data,type){const{bodyViewMode:bodyViewMode}=this.state;if(null==data)return jsxRuntimeExports.jsx(Text,{type:"secondary",children:t("ui.noBody")});if("string"==typeof data&&data.includes("Streaming Response"))return jsxRuntimeExports.jsx("div",{className:styles$3_streamingBox,children:jsxRuntimeExports.jsx(Text,{type:"secondary",children:t("ui.streamingResponse")})});const clean="object"==typeof data?stripPrivateKeys(data):data,isJsonMode="json"===bodyViewMode[type],expandNode=this.getRequestExpandNode(clean,type);return jsxRuntimeExports.jsx("div",{children:isJsonMode?jsxRuntimeExports.jsx(JsonViewer,{data:clean,defaultExpand:"response"===type?"all":"root",expandNode:expandNode}):jsxRuntimeExports.jsx("pre",{className:styles$3_rawTextPre,children:"string"==typeof clean?clean:JSON.stringify(clean,null,2)})})}getPrevMainAgentRequest(){const{requests:requests,selectedIndex:selectedIndex}=this.props;if(!requests||null==selectedIndex)return null;for(let i=selectedIndex-1;i>=0;i--)if(isMainAgent(requests[i])){const r=requests[i];return r._slimmed?restoreSlimmedEntry(r,this.props.allRequests||requests):r}return null}computeDiff(prev,curr){if(null==prev||null==curr)return null;if("object"!=typeof prev||"object"!=typeof curr)return null;const result={},allKeys=new Set([...Object.keys(prev),...Object.keys(curr)]);for(const key of allKeys)if(!key.startsWith("_"))if(key in prev){if(!(key in curr))continue;JSON.stringify(prev[key])!==JSON.stringify(curr[key])&&("messages"===key&&Array.isArray(prev[key])&&Array.isArray(curr[key])&&curr[key].length>prev[key].length?result[key]=curr[key].slice(prev[key].length):result[key]=curr[key])}else result[key]=curr[key];return Object.keys(result).length?result:null}renderMetadataOverview(request){var _a;if(!request)return null;const{host:host,path:path,query:query}=function(request){const displayUrl=function(request){return(null==request?void 0:request.proxyUrl)||(null==request?void 0:request.url)||""}(request);try{const url=new URL(displayUrl);return{host:url.host,path:url.pathname,query:Array.from(url.searchParams.entries())}}catch{return{host:"",path:displayUrl,query:[]}}}(request),body=null==(_a=request.response)?void 0:_a.body,modelArray=function(body){if(Array.isArray(body))return body;if(!body||"object"!=typeof body)return null;for(const key of["models","data","items"])if(Array.isArray(body[key]))return body[key];for(const[key,value]of Object.entries(body))if(/models?/i.test(key)&&Array.isArray(value))return value;return null}(body),models=modelArray?modelArray.map(normalizeModelEntry):[],hasExpandedModel=models.some(model=>!!this.state.modelCatalogExpanded[model.key]),defaultModel=firstValue(body,["default_model","defaultModel","default_model_slug","defaultModelSlug","preferred_model","preferredModel"]),queryItems=query.length>0?query:[];return jsxRuntimeExports.jsxs("div",{className:styles$3_metadataSection,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_metadataHeader,children:[jsxRuntimeExports.jsx(Text,{strong:!0,children:"Codex model catalog"}),jsxRuntimeExports.jsx(Text,{type:"secondary",className:styles$3_metadataSubtle,children:host||path})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_metadataGrid,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_metadataStat,children:[jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatLabel,children:"Path"}),jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatValue,children:path||"-"})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_metadataStat,children:[jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatLabel,children:"Models"}),jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatValue,children:models.length||"-"})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_metadataStat,children:[jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatLabel,children:"Default"}),jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatValue,children:defaultModel||"-"})]})]}),queryItems.length>0&&jsxRuntimeExports.jsx("div",{className:styles$3_metadataKvList,children:queryItems.map(([key,value],idx)=>jsxRuntimeExports.jsxs("div",{className:styles$3_metadataKvRow,children:[jsxRuntimeExports.jsx("span",{className:styles$3_metadataKey,children:key}),jsxRuntimeExports.jsx("span",{className:styles$3_metadataValue,children:value})]},`${key}-${idx}`))}),request.response?models.length>0?jsxRuntimeExports.jsx("div",{className:`${styles$3_modelCatalogList} ${hasExpandedModel?styles$3_modelCatalogListExpanded:""}`,children:models.map(model=>{const expanded=!!this.state.modelCatalogExpanded[model.key];return jsxRuntimeExports.jsxs("div",{className:styles$3_modelCatalogItem,children:[jsxRuntimeExports.jsxs("button",{type:"button",className:styles$3_modelCatalogRow,"aria-expanded":expanded,onClick:()=>this.setState(prev=>({modelCatalogExpanded:{...prev.modelCatalogExpanded,[model.key]:!prev.modelCatalogExpanded[model.key]}})),children:[jsxRuntimeExports.jsxs("div",{className:styles$3_modelCatalogMain,children:[jsxRuntimeExports.jsx("span",{className:styles$3_modelCatalogId,children:model.id}),model.label&&jsxRuntimeExports.jsx("span",{className:styles$3_modelCatalogLabel,children:model.label})]}),jsxRuntimeExports.jsxs("span",{className:styles$3_modelCatalogDetail,children:[expanded?jsxRuntimeExports.jsx(RefIcon$b,{className:styles$3_modelCatalogChevron}):jsxRuntimeExports.jsx(RefIcon$c,{className:styles$3_modelCatalogChevron}),model.detail||"details"]}),model.status&&jsxRuntimeExports.jsx("span",{className:styles$3_modelCatalogStatus,children:model.status})]}),expanded&&jsxRuntimeExports.jsx("div",{className:styles$3_modelCatalogDetails,children:"string"==typeof model.raw?jsxRuntimeExports.jsx("pre",{className:styles$3_rawTextPre,children:model.raw}):jsxRuntimeExports.jsx(JsonViewer,{data:stripPrivateKeys(model.raw),defaultExpand:"root"})})]},model.key)})}):null!=body?jsxRuntimeExports.jsx("div",{className:styles$3_metadataRaw,children:"string"==typeof body?jsxRuntimeExports.jsx("pre",{className:styles$3_rawTextPre,children:body}):jsxRuntimeExports.jsx(JsonViewer,{data:stripPrivateKeys(body),defaultExpand:"root"})}):jsxRuntimeExports.jsx(Text,{type:"secondary",children:t("ui.noBody")}):jsxRuntimeExports.jsx(Text,{type:"secondary",children:t("ui.responseNotCaptured")})]})}renderToolOverview(request){var _a,_b,_c;if(!request)return null;const body=request.body||{},name=body.tool_name||body.event_name||"tool",input=body.tool_input??body.event_input??{},output=function(request){var _a;const responseBody=null==(_a=null==request?void 0:request.response)?void 0:_a.body;return responseBody&&"object"==typeof responseBody?Object.prototype.hasOwnProperty.call(responseBody,"output")?responseBody.output:responseBody:responseBody??null}(request),status=body.status||(null==(_b=null==(_a=request.response)?void 0:_a.body)?void 0:_b.status)||(null==(_c=request.response)?void 0:_c.statusText)||"",callId=body._callId||body._itemId||"",threadId=body._threadId||request._agentThreadId||"",turnId=body._turnId||"",itemType=body._itemType||body.server_request_kind||request.method||"";return jsxRuntimeExports.jsxs("div",{className:styles$3_toolSection,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_metadataHeader,children:[jsxRuntimeExports.jsx(Text,{strong:!0,children:"Codex tool item"}),jsxRuntimeExports.jsx(Text,{type:"secondary",className:styles$3_metadataSubtle,children:request.url})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_toolSummaryGrid,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_metadataStat,children:[jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatLabel,children:"Tool"}),jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatValue,children:name})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_metadataStat,children:[jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatLabel,children:"Item type"}),jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatValue,children:itemType||"-"})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_metadataStat,children:[jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatLabel,children:"Status"}),jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatValue,children:status||"-"})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_metadataStat,children:[jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatLabel,children:"Call ID"}),jsxRuntimeExports.jsx("span",{className:styles$3_metadataStatValue,children:callId||"-"})]})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_metadataKvList,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_metadataKvRow,children:[jsxRuntimeExports.jsx("span",{className:styles$3_metadataKey,children:"Thread"}),jsxRuntimeExports.jsx("span",{className:styles$3_metadataValue,children:threadId||"-"})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_metadataKvRow,children:[jsxRuntimeExports.jsx("span",{className:styles$3_metadataKey,children:"Turn"}),jsxRuntimeExports.jsx("span",{className:styles$3_metadataValue,children:turnId||"-"})]})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_toolPayloadGrid,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_toolPayload,children:[jsxRuntimeExports.jsx("div",{className:styles$3_toolPayloadHeader,children:"Input"}),jsxRuntimeExports.jsx("div",{className:styles$3_toolPayloadBody,children:renderMaybeJson(input,styles$3_rawTextPre)})]}),jsxRuntimeExports.jsxs("div",{className:styles$3_toolPayload,children:[jsxRuntimeExports.jsx("div",{className:styles$3_toolPayloadHeader,children:"Output"}),jsxRuntimeExports.jsx("div",{className:styles$3_toolPayloadBody,children:request.response?renderMaybeJson(output,styles$3_rawTextPre):jsxRuntimeExports.jsx(Text,{type:"secondary",children:t("ui.responseNotCaptured")})})]})]})]})}render(){var _a,_b,_c;let request=this.getCurrentRequest();const{currentTab:currentTab,onTabChange:onTabChange}=this.props;if(!request)return jsxRuntimeExports.jsx("div",{className:styles$3_emptyState,children:jsxRuntimeExports.jsx(Empty,{description:"选择一个请求查看详情"})});const time2=new Date(request.timestamp).toLocaleString("zh-CN"),statusOk2=request.response&&request.response.status<400,nextReq=this.props.requests&&null!=this.props.selectedIndex?this.props.requests[this.props.selectedIndex+1]:null,requestClass=classifyRequest(request,nextReq),metadataOverview="Metadata"===requestClass.type&&"Models"===requestClass.subType?this.renderMetadataOverview(request):null,toolOverview="Tool"===requestClass.type?this.renderToolOverview(request):null,prevMainAgent=isMainAgent(request)?this.getPrevMainAgentRequest():null;let diffBlock=null;if(prevMainAgent){const prevRequest=prevMainAgent;if(prevRequest){if(JSON.stringify(request.body).length<JSON.stringify(prevRequest.body).length)diffBlock=jsxRuntimeExports.jsxs("div",{className:styles$3_diffSection,children:[jsxRuntimeExports.jsxs(Text,{strong:!0,className:styles$3_diffToggle,onClick:()=>this.setState(prev=>({diffExpanded:!prev.diffExpanded})),children:["Body Diff JSON ",jsxRuntimeExports.jsx(ConceptHelp,{doc:"BodyDiffJSON"})," ",this.state.diffExpanded?jsxRuntimeExports.jsx(RefIcon$b,{className:styles$3_diffIcon}):jsxRuntimeExports.jsx(RefIcon$c,{className:styles$3_diffIcon})]}),this.state.diffExpanded&&jsxRuntimeExports.jsx(Text,{type:"secondary",children:t("ui.diffSessionChanged")})]});else{const diffResult=stripPrivateKeys(this.computeDiff(prevRequest.body,request.body));diffResult&&(this._lastDiffResult=diffResult,diffBlock=jsxRuntimeExports.jsxs("div",{className:styles$3_diffSection,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_diffHeaderRow,children:[jsxRuntimeExports.jsxs(Text,{strong:!0,className:styles$3_diffToggle,onClick:()=>this.setState(prev=>({diffExpanded:!prev.diffExpanded})),children:["Body Diff JSON ",jsxRuntimeExports.jsx(ConceptHelp,{doc:"BodyDiffJSON"})," ",this.state.diffExpanded?jsxRuntimeExports.jsx(RefIcon$b,{className:styles$3_diffIcon}):jsxRuntimeExports.jsx(RefIcon$c,{className:styles$3_diffIcon})]}),this.state.diffExpanded&&jsxRuntimeExports.jsxs(Space,{size:"small",className:styles$3_diffSpaceRight,children:[jsxRuntimeExports.jsx(Button,{size:"small",icon:"json"===this.state.bodyViewMode.diff?jsxRuntimeExports.jsx(RefIcon$l,{}):jsxRuntimeExports.jsx(RefIcon$5,{}),onClick:()=>this.toggleBodyViewMode("diff"),children:"json"===this.state.bodyViewMode.diff?"Text":"JSON"}),jsxRuntimeExports.jsx(Button,{size:"small",icon:jsxRuntimeExports.jsx(RefIcon$k,{}),onClick:()=>this.copyBody("diff"),children:t("ui.copy")})]})]}),this.state.diffExpanded&&jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"json"===this.state.bodyViewMode.diff?jsxRuntimeExports.jsx(JsonViewer,{data:diffResult,defaultExpand:"all"}):jsxRuntimeExports.jsx("pre",{className:styles$3_rawTextPre,children:JSON.stringify(diffResult,null,2)})})]}))}}}const hasCodexMd=hasCodexMdReminder(request.body),hasSkills=hasSkillsReminder(request.body),tabItems=[{key:"request",label:"Request",children:jsxRuntimeExports.jsxs("div",{className:styles$3_tabContent,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_diffSection,children:[jsxRuntimeExports.jsxs(Text,{strong:!0,className:styles$3_diffToggle,onClick:()=>this.setState(prev=>({requestHeadersExpanded:!prev.requestHeadersExpanded})),children:["Headers ",this.state.requestHeadersExpanded?jsxRuntimeExports.jsx(RefIcon$b,{className:styles$3_diffIcon}):jsxRuntimeExports.jsx(RefIcon$c,{className:styles$3_diffIcon})]}),this.state.requestHeadersExpanded&&this.renderHeaders(request.headers)]}),diffBlock,toolOverview,jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:styles$3_bodyHeader,children:[jsxRuntimeExports.jsxs(Text,{strong:!0,className:styles$3_bodyLabel,children:["Body",jsxRuntimeExports.jsx(ConceptHelp,{doc:"BodyFields"})]}),jsxRuntimeExports.jsxs(Space,{size:"small",children:[(hasCodexMd||hasSkills)&&jsxRuntimeExports.jsxs("span",{className:styles$3_reminderFilterWrapper,children:[jsxRuntimeExports.jsx("span",{className:styles$3_reminderLabel,children:"system-reminder:"}),jsxRuntimeExports.jsx(Select,{size:"small",className:styles$3_reminderSelect,placeholder:t("ui.detail.filterPlaceholder"),value:this.state.reminderFilters||void 0,onChange:val=>this.setState({reminderFilters:val||null}),options:[{label:"AGENTS.md",value:"codexMd",disabled:!hasCodexMd},{label:"Skills",value:"skills",disabled:!hasSkills}],popupMatchSelectWidth:!1,allowClear:!0})]}),jsxRuntimeExports.jsx(Button,{size:"small",icon:"json"===this.state.bodyViewMode.request?jsxRuntimeExports.jsx(RefIcon$l,{}):jsxRuntimeExports.jsx(RefIcon$5,{}),onClick:()=>this.toggleBodyViewMode("request"),children:"json"===this.state.bodyViewMode.request?"Text":"JSON"}),jsxRuntimeExports.jsx(Button,{size:"small",icon:jsxRuntimeExports.jsx(RefIcon$k,{}),onClick:()=>this.copyBody("request"),children:t("ui.copy")})]})]}),this.renderBody(request.body,"request")]})]})},{key:"response",label:"Response",children:jsxRuntimeExports.jsx("div",{className:styles$3_tabContent,children:request.response?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:styles$3_diffSection,children:[jsxRuntimeExports.jsxs(Text,{strong:!0,className:styles$3_diffToggle,onClick:()=>this.setState(prev=>({responseHeadersExpanded:!prev.responseHeadersExpanded})),children:["Headers ",this.state.responseHeadersExpanded?jsxRuntimeExports.jsx(RefIcon$b,{className:styles$3_diffIcon}):jsxRuntimeExports.jsx(RefIcon$c,{className:styles$3_diffIcon})]}),this.state.responseHeadersExpanded&&this.renderHeaders(request.response.headers)]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:styles$3_bodyHeader,children:[jsxRuntimeExports.jsxs(Text,{strong:!0,className:styles$3_bodyLabel,children:["Body",jsxRuntimeExports.jsx(ConceptHelp,{doc:"ResponseFields"})]}),jsxRuntimeExports.jsxs(Space,{size:"small",children:[jsxRuntimeExports.jsx(Button,{size:"small",icon:"json"===this.state.bodyViewMode.response?jsxRuntimeExports.jsx(RefIcon$l,{}):jsxRuntimeExports.jsx(RefIcon$5,{}),onClick:()=>this.toggleBodyViewMode("response"),children:"json"===this.state.bodyViewMode.response?"Text":"JSON"}),jsxRuntimeExports.jsx(Button,{size:"small",icon:jsxRuntimeExports.jsx(RefIcon$k,{}),onClick:()=>this.copyBody("response"),children:t("ui.copy")})]})]}),this.renderBody(request.response.body,"response")]})]}):jsxRuntimeExports.jsx(Empty,{description:t("ui.responseNotCaptured")})})},{key:"context",label:toolOverview?"Tool":metadataOverview?"Content":"Context",children:jsxRuntimeExports.jsx("div",{className:`${styles$3_tabContent} ${styles$3_contextTabContent}`,children:toolOverview||metadataOverview||jsxRuntimeExports.jsx(ContextTab,{body:request.body,response:null==(_a=request.response)?void 0:_a.body,prevTools:getResponseTools(null==prevMainAgent?void 0:prevMainAgent.body)})})}],usage=null==(_c=null==(_b=request.response)?void 0:_b.body)?void 0:_c.usage,tokenStats=usage?(()=>{const input=usage.input_tokens||0,output=usage.output_tokens||0,cache=getInputCacheUsage(usage);return{input:input,output:output,cacheRead:cache.read,cacheWrite:cache.write,hasCacheDetails:cache.hasCacheDetails}})():null;return jsxRuntimeExports.jsxs("div",{className:styles$3_container,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_urlSection,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_urlLeft,children:[jsxRuntimeExports.jsx(Paragraph,{className:styles$3_urlText,ellipsis:{rows:2,expandable:!0},children:request.proxyUrl||request.url}),jsxRuntimeExports.jsxs(Space,{size:"small",wrap:!0,children:[jsxRuntimeExports.jsx(Tag,{color:"POST"===request.method?"blue":"green",children:request.method}),jsxRuntimeExports.jsxs(Text,{type:"secondary",className:styles$3_metaText,children:["🕐 ",time2]}),request.duration&&jsxRuntimeExports.jsxs(Text,{type:"secondary",className:styles$3_metaText,children:["⏱️ ",request.duration,"ms"]}),request.response&&jsxRuntimeExports.jsxs(Tag,{color:statusOk2?"success":"error",children:["HTTP ",request.response.status]})]})]}),tokenStats&&jsxRuntimeExports.jsx("div",{className:styles$3_tokenStatsBox,children:jsxRuntimeExports.jsx("div",{className:styles$3_tokenGrid,children:jsxRuntimeExports.jsxs("div",{className:styles$3_tokenRows,children:[jsxRuntimeExports.jsxs("div",{className:styles$3_tokenRow,children:[jsxRuntimeExports.jsx("span",{className:styles$3_tokenLabel,children:t("ui.stats.token")}),jsxRuntimeExports.jsxs("span",{className:styles$3_tokenTd,children:[t("ui.stats.input"),": ",formatTokenCount(tokenStats.input)]}),jsxRuntimeExports.jsxs("span",{className:styles$3_tokenTd,children:[t("ui.stats.output"),": ",formatTokenCount(tokenStats.output)]})]}),tokenStats.hasCacheDetails&&jsxRuntimeExports.jsxs("div",{className:`${styles$3_tokenRow} ${styles$3_tokenRowBorder}`,children:[jsxRuntimeExports.jsx("span",{className:styles$3_tokenLabel,children:t("ui.stats.cache")}),jsxRuntimeExports.jsxs("span",{className:styles$3_tokenTd,children:[t("ui.stats.cacheRead"),": ",formatTokenCount(tokenStats.cacheRead)]}),jsxRuntimeExports.jsxs("span",{className:styles$3_tokenTd,children:[t("ui.stats.cacheWrite"),": ",formatTokenCount(tokenStats.cacheWrite)]})]})]})})})]}),jsxRuntimeExports.jsx(Tabs,{activeKey:currentTab,onChange:onTabChange,items:tabItems,size:"small"})]})}}const styles$2_resizer="_resizer_pzn4b_1";class PanelResizer extends React__default.Component{constructor(props){super(props),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this)}handleMouseDown(e){e.preventDefault(),document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}handleMouseMove(e){this.props.onResize&&this.props.onResize(e.clientX)}handleMouseUp(){document.body.style.cursor="",document.body.style.userSelect="",document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp)}componentWillUnmount(){document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp)}render(){return jsxRuntimeExports.jsx("div",{onMouseDown:this.handleMouseDown,className:styles$2_resizer})}}const styles$1_flag="_flag_1q4ri_3",styles$1_popover="_popover_1q4ri_27",styles$1_meta="_meta_1q4ri_33";const GEO_SOURCES=[{url:"https://ipinfo.io/json",normalize:d=>({ip:d.ip,country:d.country,region:d.region,city:d.city,org:d.org})},{url:"https://ipwho.is/",normalize:d=>{var _a,_b;return!1===d.success?null:{ip:d.ip,country:d.country_code,region:d.region,city:d.city,org:(null==(_a=d.connection)?void 0:_a.org)||(null==(_b=d.connection)?void 0:_b.isp)}}},{url:"https://ipapi.co/json/",normalize:d=>({ip:d.ip,country:d.country_code||d.country,region:d.region,city:d.city,org:d.org})}];class CountryFlag extends React__default.Component{constructor(props){super(props),this.state={flag:null,info:null,popoverOpen:!1},this._aborted=!1}componentDidMount(){(async function(){var _a;for(const src of GEO_SOURCES)try{const r=await fetch(src.url,{signal:AbortSignal.timeout(5e3)});if(!r.ok)continue;const info=src.normalize(await r.json());if(2===(null==(_a=null==info?void 0:info.country)?void 0:_a.length))return info}catch{}return null})().then(info=>{var code;!this._aborted&&info&&this.setState({flag:(code=info.country,code&&2===code.length?code.toUpperCase().split("").map(c=>String.fromCodePoint(127462+c.charCodeAt(0)-65)).join(""):"🇨🇳"),info:info})})}componentWillUnmount(){this._aborted=!0}render(){const{flag:flag2,info:info}=this.state;if(!flag2||"CN"===(null==info?void 0:info.country))return null;const content2=jsxRuntimeExports.jsxs("div",{className:styles$1_popover,onClick:e=>e.stopPropagation(),children:[jsxRuntimeExports.jsxs("div",{children:[flag2," ",info.country]}),info.region&&jsxRuntimeExports.jsx("div",{children:info.region}),info.city&&jsxRuntimeExports.jsx("div",{children:info.city}),info.org&&jsxRuntimeExports.jsx("div",{className:styles$1_meta,children:info.org}),info.ip&&jsxRuntimeExports.jsx("div",{className:styles$1_meta,children:info.ip})]});return jsxRuntimeExports.jsx(Popover,{content:content2,trigger:["click"],open:this.state.popoverOpen,onOpenChange:o=>this.setState({popoverOpen:o}),placement:"topLeft",overlayInnerStyle:{background:"var(--bg-elevated)",border:"1px solid var(--border-hover)",borderRadius:8,padding:"8px 12px"},children:jsxRuntimeExports.jsx("button",{type:"button",className:styles$1_flag,"aria-label":`${info.country}${info.region?" · "+info.region:""}`,children:flag2})})}}const styles_usagePill="_usagePill_1no1y_4",styles_usageFill="_usageFill_1no1y_12",styles_usageContent="_usageContent_1no1y_40",styles_usageText="_usageText_1no1y_49",styles_muted="_muted_1no1y_58",styles_pop="_pop_1no1y_65",styles_popTitle="_popTitle_1no1y_71",styles_popTable="_popTable_1no1y_77",styles_tdName="_tdName_1no1y_82",styles_tdBar="_tdBar_1no1y_82",styles_tdReset="_tdReset_1no1y_100",styles_bar="_bar_1no1y_109",styles_barFill="_barFill_1no1y_123",styles_barText="_barText_1no1y_133",POPOVER_OVERLAY_STYLE={background:"var(--bg-elevated)",border:"1px solid var(--border-hover)",borderRadius:8,padding:"8px 8px"};function fmtPct(u){return null==u?"—":`${Math.round(100*u)}%`}function windowName(w){const id="string"==typeof w?w:null==w?void 0:w.id;return"7d"===id?t("ui.usage.weekly"):"5h"===id?t("ui.usage.fiveHour"):localizedWindowName(w)}function localizedWindowName(w,short=!1){const id="string"==typeof w?w:null==w?void 0:w.id,label2="object"==typeof w&&"string"==typeof(null==w?void 0:w.label)?w.label.trim():"",minutesLabel=function(w,short=!1){const minutes="object"==typeof w?Number(null==w?void 0:w.windowMinutes):NaN;return Number.isFinite(minutes)?300===minutes?short?"5h":t("ui.usage.fiveHour"):10080===minutes?t(short?"ui.usage.weeklyShort":"ui.usage.weekly"):null:null}(w,short),slot=function(w){const id="string"==typeof w?w:null==w?void 0:w.id,label2="object"==typeof w&&"string"==typeof(null==w?void 0:w.label)?w.label.trim():"",labelMatch=label2.match(/^(.*?)\s+(primary|secondary)$/i);if(labelMatch)return{name:labelMatch[1].trim(),slot:labelMatch[2].toLowerCase()};const idMatch=String(id||"").match(/(?:^|:)(primary|secondary)$/i);return idMatch?{name:label2,slot:idMatch[1].toLowerCase()}:null}(w);if(minutesLabel)return short||!(null==slot?void 0:slot.name)?minutesLabel:t("ui.usage.namedSlot",{name:slot.name,slot:minutesLabel});if(slot){const slotLabel=function(slot,short=!1){return"primary"===slot?t(short?"ui.usage.primaryShort":"ui.usage.primary"):"secondary"===slot?t(short?"ui.usage.secondaryShort":"ui.usage.secondary"):slot}(slot.slot,short);return short||!slot.name?slotLabel:t("ui.usage.namedSlot",{name:slot.name,slot:slotLabel})}return"requests"===id||/^requests$/i.test(label2)?t(short?"ui.usage.requestsShort":"ui.usage.requests"):"tokens"===id||/^tokens$/i.test(label2)?t(short?"ui.usage.tokensShort":"ui.usage.tokens"):label2||String(id||"")}const UsageWindowPill$1=reactExports.memo(function({planUsage:planUsage,authType:authType}){const windows=Array.isArray(null==planUsage?void 0:planUsage.windows)?planUsage.windows:[],summaryWindow=reactExports.useMemo(()=>windows[0]||null,[windows]),triggerStyle=reactExports.useMemo(()=>{const pct=summaryWindow&&null!=summaryWindow.utilization?Math.round(100*summaryWindow.utilization):0;return{"--usage-percent":`${Math.min(100,Math.max(0,pct))}%`}},[summaryWindow]);if(!planUsage)return"OAuth"===authType?jsxRuntimeExports.jsx(Popover,{content:jsxRuntimeExports.jsx("div",{className:styles_pop,children:t("ui.usage.waiting")}),trigger:"hover",placement:"top",overlayInnerStyle:POPOVER_OVERLAY_STYLE,children:jsxRuntimeExports.jsx("span",{className:`${styles_usagePill} ${styles_muted}`,role:"button",tabIndex:0,"aria-label":t("ui.usage.ariaLabel"),children:jsxRuntimeExports.jsx("span",{className:styles_usageContent,children:jsxRuntimeExports.jsx("span",{className:styles_usageText,children:"—"})})})}):null;const pillLabel=summaryWindow?`${function(w){const id="string"==typeof w?w:null==w?void 0:w.id;return"7d"===id?t("ui.usage.weeklyShort"):"5h"===id?"5h":localizedWindowName(w,!0)}(summaryWindow)} ${fmtPct(summaryWindow.utilization)}`:"—",popContent=jsxRuntimeExports.jsxs("div",{className:styles_pop,children:[jsxRuntimeExports.jsx("div",{className:styles_popTitle,children:t("ui.usage.title")}),jsxRuntimeExports.jsx("table",{className:styles_popTable,children:jsxRuntimeExports.jsx("tbody",{children:windows.map(w=>{const rt=function(resetAt){if(null==resetAt)return"";const diff=resetAt-Date.now();if(diff<=0)return t("ui.usage.resetting");const totalMin=Math.floor(diff/6e4),h=Math.floor(totalMin/60),m=totalMin%60;return h>0?t("ui.usage.resetsInHM",{h:h,m:m}):t("ui.usage.resetsInM",{m:m})}(w.resetAt),pct=null!=w.utilization?Math.min(100,Math.max(0,Math.round(100*w.utilization))):0;return jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:styles_tdName,children:windowName(w)}),jsxRuntimeExports.jsx("td",{className:styles_tdBar,children:jsxRuntimeExports.jsxs("span",{className:styles_bar,children:[jsxRuntimeExports.jsx("span",{className:styles_barFill,style:{width:`${pct}%`}}),jsxRuntimeExports.jsx("span",{className:styles_barText,children:fmtPct(w.utilization)})]})}),jsxRuntimeExports.jsx("td",{className:styles_tdReset,children:rt})]},w.id)})})})]});return jsxRuntimeExports.jsx(Popover,{content:popContent,trigger:"hover",placement:"topRight",overlayInnerStyle:POPOVER_OVERLAY_STYLE,children:jsxRuntimeExports.jsxs("span",{className:styles_usagePill,style:triggerStyle,role:"button",tabIndex:0,"aria-label":t("ui.usage.ariaLabel"),children:[jsxRuntimeExports.jsx("span",{className:styles_usageFill}),jsxRuntimeExports.jsx("span",{className:styles_usageContent,children:jsxRuntimeExports.jsx("span",{className:styles_usageText,children:pillLabel})})]})})}),LEGACY_PREFIX="anthropic-ratelimit-unified-";function toNum(v){if(null==v||""===v)return null;const n=Number(v);return Number.isFinite(n)?n:null}function parseLegacyWindow(map,id){const utilization=toNum(map[`${LEGACY_PREFIX}${id}-utilization`]),resetSec=toNum(map[`${LEGACY_PREFIX}${id}-reset`]),status=map[`${LEGACY_PREFIX}${id}-status`]||null;return null!=utilization||null!=resetSec||status?{id:id,utilization:utilization,status:status,resetAt:null!=resetSec?1e3*resetSec:null}:null}function parseCodexWindow(map,limitPrefix,slot,id,label2){const usedPercent=toNum(map[`${limitPrefix}-${slot}-used-percent`]),windowMinutes=toNum(map[`${limitPrefix}-${slot}-window-minutes`]),resetAt=function(value){const n=toNum(value);return null==n?null:1e3*n}(map[`${limitPrefix}-${slot}-reset-at`]);return null==usedPercent&&null==windowMinutes&&null==resetAt?null:{id:id,label:label2,utilization:null==usedPercent?null:usedPercent/100,status:null,resetAt:resetAt,windowMinutes:windowMinutes}}function headerNameToCodexLimitId(headerName){const suffix="-primary-used-percent";return headerName.startsWith("x-")&&headerName.endsWith(suffix)?(name=headerName.slice(2,-21),String(name||"codex").trim().toLowerCase().replace(/-/g,"_")):null;var name}function parseOpenAiWindow(map,id,label2,limitKey,remainingKey,resetKey){const limit=toNum(map[limitKey]),remaining=toNum(map[remainingKey]),resetAt=function(value){if(null==value||""===value)return null;const raw=String(value).trim().toLowerCase(),epoch=toNum(raw);if(null!=epoch)return epoch>1e12?epoch:1e3*epoch;const match=raw.match(/^(\d+(?:\.\d+)?)(ms|s|m|h|d)$/);if(!match)return null;const n=Number(match[1]),unit=match[2],mult="ms"===unit?1:"s"===unit?1e3:"m"===unit?6e4:"h"===unit?36e5:864e5;return Date.now()+n*mult}(map[resetKey]);if(null==limit&&null==remaining&&null==resetAt)return null;return{id:id,label:label2,utilization:null!=limit&&limit>0&&null!=remaining?Math.max(0,Math.min(1,(limit-remaining)/limit)):null,status:null,resetAt:resetAt,limit:limit,remaining:remaining}}function parseRateLimitHeaders(headers){if(!headers||"object"!=typeof headers)return null;const map=function(headers){const map={};for(const k of Object.keys(headers))map[k.toLowerCase()]=headers[k];return map}(headers);return function(map){const limitIds=new Set(["codex"]);for(const key of Object.keys(map)){const limitId=headerNameToCodexLimitId(key);limitId&&limitIds.add(limitId)}const windows=[];let limitName=null;for(const limitId of limitIds){const limitPrefix=`x-${limitId.replace(/_/g,"-")}`,name=map[`${limitPrefix}-limit-name`]||("codex"===limitId?"Codex":limitId),primary=parseCodexWindow(map,limitPrefix,"primary",`${limitId}:primary`,`${name} primary`),secondary=parseCodexWindow(map,limitPrefix,"secondary",`${limitId}:secondary`,`${name} secondary`);primary&&windows.push(primary),secondary&&windows.push(secondary),!primary&&!secondary||limitName||(limitName=name)}const hasCredits=null!=map["x-codex-credits-has-credits"]||null!=map["x-codex-credits-unlimited"]||null!=map["x-codex-credits-balance"];return 0!==windows.length||hasCredits?{source:"codex",windows:windows,overallStatus:map["x-codex-rate-limit-reached-type"]||null,representativeClaim:limitName,overage:{status:null,disabledReason:null},fallbackPercentage:null,credits:hasCredits?{hasCredits:map["x-codex-credits-has-credits"]??null,unlimited:map["x-codex-credits-unlimited"]??null,balance:map["x-codex-credits-balance"]??null}:null}:null}(map)||function(map){const windows=[parseOpenAiWindow(map,"requests","Requests","x-ratelimit-limit-requests","x-ratelimit-remaining-requests","x-ratelimit-reset-requests"),parseOpenAiWindow(map,"tokens","Tokens","x-ratelimit-limit-tokens","x-ratelimit-remaining-tokens","x-ratelimit-reset-tokens")].filter(Boolean);return 0===windows.length?null:{source:"openai",windows:windows,overallStatus:null,representativeClaim:null,overage:{status:null,disabledReason:null},fallbackPercentage:null}}(map)||function(map){if(!Object.keys(map).some(k=>k.startsWith(LEGACY_PREFIX)))return null;const windows=[parseLegacyWindow(map,"5h"),parseLegacyWindow(map,"7d")].filter(Boolean);return 0===windows.length?null:{source:"legacy-plan",windows:windows,overallStatus:map[`${LEGACY_PREFIX}status`]||null,representativeClaim:map[`${LEGACY_PREFIX}representative-claim`]||null,overage:{status:map[`${LEGACY_PREFIX}overage-status`]||null,disabledReason:map[`${LEGACY_PREFIX}overage-disabled-reason`]||null},fallbackPercentage:toNum(map[`${LEGACY_PREFIX}fallback-percentage`])}}(map)}class App extends AppBase{constructor(props){super(props),__publicField(this,"setContextBarSlot",el=>{el&&!el.isConnected||el!==this.state.contextBarSlot&&this.setState({contextBarSlot:el})}),__publicField(this,"renderUpdateInstructions",method=>{const codeStyle={display:"block",background:"var(--bg-code)",padding:"8px 12px",borderRadius:6,fontSize:13};return"electron"===method?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("p",{style:{marginTop:12},children:jsxRuntimeExports.jsx("strong",{children:t("ui.update.electron")})}),jsxRuntimeExports.jsx("p",{style:{color:"var(--text-tertiary)",fontSize:13},children:t("ui.update.electronDesc")}),jsxRuntimeExports.jsxs("ol",{style:{color:"var(--text-tertiary)",fontSize:13,paddingLeft:20,margin:"6px 0"},children:[jsxRuntimeExports.jsx("li",{children:t("ui.update.step1")}),jsxRuntimeExports.jsx("li",{children:t("ui.update.step2")}),jsxRuntimeExports.jsx("li",{children:t("ui.update.step3")})]})]}):"brew"===method?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("p",{style:{marginTop:12},children:jsxRuntimeExports.jsx("strong",{children:t("ui.update.brew")})}),jsxRuntimeExports.jsx("code",{style:codeStyle,children:"brew upgrade cx-viewer"})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("p",{style:{marginTop:12},children:jsxRuntimeExports.jsx("strong",{children:t("ui.update.npm")})}),jsxRuntimeExports.jsx("code",{style:codeStyle,children:"npm install -g cx-viewer --registry=https://registry.npmjs.org"})]})}),__publicField(this,"openUpdateModal",()=>{this.setState({updateModalVisible:!0}),null==this.state.installMethod&&fetch(apiUrl("/api/version-info")).then(r=>r.json()).then(d=>{d&&d.installMethod&&this.setState({installMethod:d.installMethod})}).catch(()=>{})}),__publicField(this,"handleViewRequest",index=>{this.setState({viewMode:"raw",selectedIndex:index,scrollCenter:!0})}),__publicField(this,"handleViewInChat",()=>{this.setState(prev=>{const selectedReq=visibleRequests(prev.requests,prev.showAll)[prev.selectedIndex];if(!selectedReq)return null;let targetTs=null;if(isMainAgent(selectedReq)&&selectedReq.timestamp)targetTs=selectedReq.timestamp;else{const cls=classifyRequest(selectedReq);if("SubAgent"!==cls.type&&"Teammate"!==cls.type||!selectedReq.timestamp){const idx=prev.requests.indexOf(selectedReq);idx>=0&&(targetTs=findPrevMainAgentTimestamp(prev.requests,idx))}else targetTs=selectedReq.timestamp;targetTs||staticMethods.info(t("ui.cannotMap"))}return{viewMode:"chat",chatScrollToTs:targetTs}})}),__publicField(this,"handleToggleViewMode",()=>{this.setState(prev=>{const newMode="raw"===prev.viewMode?"chat":"raw";if("raw"===newMode){if(null===prev.selectedIndex){const filtered2=visibleRequests(prev.requests,prev.showAll);return{viewMode:newMode,selectedIndex:filtered2.length>0?filtered2.length-1:null,scrollCenter:!0}}return{viewMode:newMode,scrollCenter:!0}}const filtered=visibleRequests(prev.requests,prev.showAll),selectedReq=null!=prev.selectedIndex?filtered[prev.selectedIndex]:null;if(selectedReq){let targetTs=null;if(isMainAgent(selectedReq)&&selectedReq.timestamp)targetTs=selectedReq.timestamp;else{const cls=classifyRequest(selectedReq);if("SubAgent"!==cls.type&&"Teammate"!==cls.type||!selectedReq.timestamp){const idx=prev.requests.indexOf(selectedReq);idx>=0&&(targetTs=findPrevMainAgentTimestamp(prev.requests,idx)),targetTs||staticMethods.info(t("ui.cannotMap"))}else targetTs=selectedReq.timestamp}return{viewMode:newMode,chatScrollToTs:targetTs}}return{viewMode:newMode,chatScrollToTs:null}},()=>{"chat"===this.state.viewMode&&this.state.terminalVisible&&this.state.cliMode&&!isMobile&&requestAnimationFrame(()=>{const ta=document.querySelector(".xterm-helper-textarea");ta&&ta.focus()})})}),__publicField(this,"handleTabChange",key=>{this.setState({currentTab:key})}),__publicField(this,"handleResize",clientX=>{const container2=this.mainContainerRef.current;if(!container2)return;const newWidth=clientX-container2.getBoundingClientRect().left;newWidth>=250&&newWidth<=800&&this.setState({leftPanelWidth:newWidth})}),__publicField(this,"handleLoadLocalJsonlFile",()=>{const input=document.createElement("input");input.type="file",input.accept=".jsonl",input.multiple=!0,input.onchange=e=>{const files=Array.from(e.target.files);if(0===files.length)return;if(files.reduce((s,f)=>s+f.size,0)>524288e3)return void staticMethods.error(t("ui.fileTooLarge"));this.setState({fileLoading:!0,fileLoadingCount:0});let readCount=0;const allEntries=[],fileNames=[];files.forEach(file=>{const reader=new FileReader;reader.onload=ev=>{try{const entries=ev.target.result.split("\n---\n").filter(line=>line.trim()).map(entry=>{try{return JSON.parse(entry)}catch{return null}}).filter(Boolean);allEntries.push(...entries),fileNames.push(file.name)}catch{}readCount++,readCount===files.length&&this._finishLocalLoad(allEntries,fileNames)},reader.readAsText(file)})},input.click()}),Object.assign(this.state,{leftPanelWidth:380,terminalVisible:!0,currentTab:"context",contextBarSlot:null,planUsage:null,installMethod:null}),this.appHeaderRef=React__default.createRef(),this._getTokenStatsContent=closeParent=>{var _a,_b;return(null==(_b=null==(_a=this.appHeaderRef.current)?void 0:_a.renderTokenStats)?void 0:_b.call(_a,closeParent))??null}}componentDidUpdate(prevProps,prevState){if(super.componentDidUpdate&&super.componentDidUpdate(prevProps,prevState),this._isLocalLog)return;const reqs=this.state.requests;if(!reqs||0===reqs.length)return;if(prevState&&prevState.requests===reqs&&this.state.planUsage)return;const pu=function(requests){if(!Array.isArray(requests))return null;for(let i=requests.length-1;i>=0;i--){const headers=requests[i]&&requests[i].response&&requests[i].response.headers;if(!headers)continue;const pu=parseRateLimitHeaders(headers);if(pu)return pu}return null}(reqs);if(!pu)return;const sig=JSON.stringify(pu);sig!==this._planUsageSig&&(this._planUsageSig=sig,this.setState({planUsage:pu}))}componentDidMount(){var _a,_b,_c,_d;super.componentDidMount();if("undefined"!=typeof window&&!!window.tabBridge)return this._onDeviceMode=on=>{const target=on?"pad":"pc";localStorage.getItem("cxv_viewMode")!==target&&setViewMode(target)},this._disposeDeviceMode=null==(_b=(_a=window.tabBridge).onDeviceModeChange)?void 0:_b.call(_a,this._onDeviceMode),void(null==(_d=(_c=window.tabBridge).requestDeviceMode)||_d.call(_c));this._mqlNarrow=window.matchMedia("(max-width: 600px)"),this._modeSwitchDialog=null,this._onNarrowChange=e=>{e.matches?this._modeSwitchDialog=Modal.confirm({title:t("ui.modeSwitchTitle"),content:t("ui.modeSwitchToSidebar"),okText:t("ui.ok"),onOk:()=>{this._modeSwitchDialog=null,setViewMode("pad")},onCancel:()=>{this._modeSwitchDialog=null}}):this._modeSwitchDialog&&(this._modeSwitchDialog.destroy(),this._modeSwitchDialog=null)},this._mqlNarrow.addEventListener("change",this._onNarrowChange)}componentWillUnmount(){this._disposeDeviceMode&&(this._disposeDeviceMode(),this._disposeDeviceMode=null),this._mqlNarrow&&this._mqlNarrow.removeEventListener("change",this._onNarrowChange),this._modeSwitchDialog&&(this._modeSwitchDialog.destroy(),this._modeSwitchDialog=null),super.componentWillUnmount()}render(){var _a,_b,_c,_d;const{filteredRequests:filteredRequests,selectedRequest:selectedRequest,fileLoading:fileLoading,fileLoadingCount:fileLoadingCount,mainAgentSessions:mainAgentSessions,viewMode:viewMode}=this.renderPrepare(),{sessions:displaySessions,upperBoundTs:sessionUpperBoundTs}=this._displaySessionsFor(mainAgentSessions),{selectedIndex:selectedIndex,leftPanelWidth:leftPanelWidth,currentTab:currentTab}=this.state,prefs=this._prefValues();if(this.state.workspaceMode)return this.renderWorkspaceMode();const wsOpen=!this._isLocalLog&&!this.state.sdkMode;return jsxRuntimeExports.jsx(ConfigProvider,{theme:this.themeConfig,children:jsxRuntimeExports.jsx(TerminalWsProvider,{open:wsOpen,children:jsxRuntimeExports.jsxs(ApprovalModal,{enabled:this.state.approvalPrefs.modalEnabled,soundEnabled:this.state.approvalPrefs.soundEnabled,voicePackPrefs:this.state.approvalPrefs.voicePack,approvalGlobal:this.state.approvalGlobal,dismissedIds:this.state.approvalDismissedIds,onDismiss:this.handleApprovalDismiss,onJumpTab:this.handleApprovalJumpTab,otherTabs:this.state.approvalOtherTabs,children:[fileLoading&&jsxRuntimeExports.jsx("div",{className:styles$g.loadingOverlay,children:jsxRuntimeExports.jsxs("div",{className:styles$g.loadingText,children:["Loading...(",fileLoadingCount,")"]})}),this.state.isDragging&&jsxRuntimeExports.jsx("div",{className:styles$g.dragOverlay,children:jsxRuntimeExports.jsxs("div",{className:styles$g.dragOverlayContent,children:[jsxRuntimeExports.jsx(RefIcon$n,{className:styles$g.dragIcon}),jsxRuntimeExports.jsx("p",{children:t("ui.dragDropHint")})]})}),jsxRuntimeExports.jsxs(Layout,{className:styles$g.layout,ref:this._layoutRef,onDragOver:this._onDragOver,onDragLeave:this._onDragLeave,onDrop:this._onDrop,children:[jsxRuntimeExports.jsx(Layout.Header,{className:styles$g.header,inert:"undefined"!=typeof window&&window.tabBridge?"":void 0,style:"undefined"!=typeof window&&window.tabBridge?{height:0,minHeight:0,padding:0,overflow:"hidden",border:"none",lineHeight:0}:void 0,children:jsxRuntimeExports.jsx(AppHeader,{ref:this.appHeaderRef,requestCount:filteredRequests.length,requests:filteredRequests,viewMode:viewMode,onToggleViewMode:this.handleToggleViewMode,onLangChange:this.handleLangChange,onImportLocalLogs:this.handleImportLocalLogs,isLocalLog:!!this._isLocalLog,localLogFile:this._localLogFile,projectName:this.state.projectName,instanceId:this.state.instanceId,filterIrrelevant:!this.state.showAll,onFilterIrrelevantChange:this.handleFilterIrrelevantChange,logDir:this.state.logDir,onLogDirChange:this.handleLogDirChange,cliMode:this.state.cliMode,sdkMode:this.state.sdkMode,terminalVisible:!this.state.sdkMode&&this.state.terminalVisible,onToggleTerminal:()=>this.setState(prev=>({terminalVisible:!prev.terminalVisible})),onReturnToWorkspaces:this.state.cliMode?this.handleReturnToWorkspaces:null,contextWindow:this.state.contextWindow,contextBarOptimistic:this.state.contextBarOptimistic,contextBarLocked:this.state.contextBarLocked,resumeAutoChoice:this.state.resumeAutoChoice,onResumeAutoChoiceToggle:this.handleResumeAutoChoiceToggle,onResumeAutoChoiceChange:this.handleResumeAutoChoiceChange,themeColor:this.state.themeColor,onThemeColorChange:this.handleThemeColorChange,displayScale:this.state.displayScale,onDisplayScaleChange:this.handleDisplayScaleChange,approvalsReviewer:this.state.approvalsReviewer,onApprovalsReviewerChange:this.handleApprovalsReviewerChange,approvalPrefs:this.state.approvalPrefs,onApprovalPrefsChange:this.handleApprovalPrefsChange,preferences:null==(_a=this.context)?void 0:_a.preferences,onToggleProjectScoped:this.handleToggleProjectScoped,onRefreshProjectPrefs:this.refreshAllPrefs,onVoicePackChange:this.handleVoicePackChange,onApprovalSoundToggle:this.handleApprovalSoundToggle,approvalGlobal:this.state.approvalGlobal,approvalDismissedIds:this.state.approvalDismissedIds,approvalOwnPending:this.state.approvalOwnPending,onApprovalReopen:this.handleApprovalReopen,proxyProfiles:this.state.proxyProfiles,activeProxyId:this.state.activeProxyId,defaultConfig:this.state.defaultConfig,onProxyProfileChange:this.handleProxyProfileChange,contextBarSlot:this.state.contextBarSlot,codexProjectModel:this.state.codexProjectModel})}),this.state.codexMissing&&jsxRuntimeExports.jsx(Alert,{type:"warning",showIcon:!0,banner:!0,message:t("ui.codexMissing.title"),description:jsxRuntimeExports.jsxs("span",{children:[t("ui.codexMissing.desc"),jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("code",{style:{background:"var(--bg-code)",padding:"2px 6px",borderRadius:3},children:"npm install -g @openai/codex"})," ",jsxRuntimeExports.jsx("span",{style:{color:"var(--text-muted)",margin:"0 4px"},children:t("ui.codexMissing.or")})," ",jsxRuntimeExports.jsx("a",{href:"https://developers.openai.com/codex",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--color-primary-light)"},children:t("ui.codexMissing.native")})]})}),jsxRuntimeExports.jsxs(Layout.Content,{className:styles$g.content,children:["raw"===viewMode&&(0===filteredRequests.length?jsxRuntimeExports.jsx("div",{className:styles$g.guideContainer,children:jsxRuntimeExports.jsxs("div",{className:styles$g.guideContent,children:[jsxRuntimeExports.jsx("h2",{className:styles$g.guideTitle,children:t("ui.guide.title")}),jsxRuntimeExports.jsxs("div",{className:styles$g.guideStep,children:[jsxRuntimeExports.jsx("div",{className:styles$g.guideStepNum,children:"1"}),jsxRuntimeExports.jsxs("div",{className:styles$g.guideStepBody,children:[jsxRuntimeExports.jsx("p",{className:styles$g.guideText,children:t("ui.guide.step1")}),jsxRuntimeExports.jsx("code",{className:styles$g.guideCode,children:t("ui.guide.exampleQuestion")})]})]}),jsxRuntimeExports.jsxs("div",{className:styles$g.guideStep,children:[jsxRuntimeExports.jsx("div",{className:styles$g.guideStepNum,children:"2"}),jsxRuntimeExports.jsxs("div",{className:styles$g.guideStepBody,children:[jsxRuntimeExports.jsx("p",{className:styles$g.guideText,children:t("ui.guide.step2")}),jsxRuntimeExports.jsx("code",{className:styles$g.guideCode,children:t("ui.guide.troubleshootCmd")})]})]}),jsxRuntimeExports.jsxs("div",{className:styles$g.guideStep,children:[jsxRuntimeExports.jsx("div",{className:styles$g.guideStepNum,children:"3"}),jsxRuntimeExports.jsxs("div",{className:styles$g.guideStepBody,children:[jsxRuntimeExports.jsx("p",{className:styles$g.guideText,children:t("ui.guide.step3")}),jsxRuntimeExports.jsx("code",{className:styles$g.guideCode,children:"npm install -g @openai/codex"})]})]})]})}):jsxRuntimeExports.jsxs("div",{ref:this.mainContainerRef,className:styles$g.mainContainer,children:[jsxRuntimeExports.jsxs("div",{className:styles$g.leftPanel,style:{width:leftPanelWidth},children:[jsxRuntimeExports.jsxs("div",{className:styles$g.leftPanelHeader,children:[jsxRuntimeExports.jsx("span",{children:t("ui.requestList")}),jsxRuntimeExports.jsx("span",{className:styles$g.leftPanelCount,children:t("ui.totalRequests",{count:filteredRequests.length})})]}),jsxRuntimeExports.jsx("div",{className:styles$g.leftPanelBody,children:jsxRuntimeExports.jsx(RequestList,{requests:filteredRequests,selectedIndex:selectedIndex,scrollCenter:this.state.scrollCenter,onSelect:this.handleSelectRequest,onScrollDone:this.handleScrollDone})})]}),jsxRuntimeExports.jsx(PanelResizer,{onResize:this.handleResize}),jsxRuntimeExports.jsx("div",{className:styles$g.rightPanel,children:jsxRuntimeExports.jsx(DetailPanel,{request:selectedRequest,requests:filteredRequests,allRequests:this.state.requests,selectedIndex:selectedIndex,currentTab:currentTab,onTabChange:this.handleTabChange,onViewInChat:this.handleViewInChat,expandDiff:prefs.expandDiff})})]})),jsxRuntimeExports.jsx("div",{className:styles$g.chatViewWrapper,style:{display:"chat"===viewMode?"flex":"none"},children:jsxRuntimeExports.jsx(ChatView,{...this._settingsProps(),getTokenStatsContent:this._getTokenStatsContent,requests:filteredRequests,mainAgentSessions:displaySessions,sessionUpperBoundTs:sessionUpperBoundTs,streamingLatest:this.state.streamingLatest,userProfile:this.state.userProfile,collapseToolResults:prefs.collapseToolResults,expandThinking:prefs.expandThinking,showFullToolContent:prefs.showFullToolContent,onlyCurrentSession:!this._isLocalLog&&prefs.onlyCurrentSession,isLocalLog:!!this._isLocalLog,showThinkingSummaries:prefs.showThinkingSummaries,onViewRequest:this.handleViewRequest,scrollToTimestamp:this.state.chatScrollToTs,onScrollTsDone:this.handleScrollTsDone,cliMode:!this._isLocalLog&&this.state.cliMode,sdkMode:!this._isLocalLog&&this.state.sdkMode,terminalVisible:!this._isLocalLog&&(!this.state.sdkMode&&this.state.terminalVisible),onToggleTerminal:()=>this.setState(prev=>({terminalVisible:!prev.terminalVisible})),pendingUploadPaths:this.state.pendingUploadPaths,onUploadPathsConsumed:this.handleUploadPathsConsumed,uploadingDrop:this.state.uploadingDrop,fileLoading:this.state.fileLoading,isStreaming:this.state.isStreaming,hasMoreHistory:this.state.hasMoreHistory,loadingMore:this.state.loadingMore,onLoadMoreHistory:()=>this.loadMoreHistory(),loadingSessionId:this.state.loadingSessionId,onLoadSession:sid=>this.loadSession(sid),lang:this.state.lang,approvalsReviewer:this.state.approvalsReviewer,onApprovalsReviewerChange:this.handleApprovalsReviewerChange,onApprovalsReviewerSynced:this.handleApprovalsReviewerSynced,planAutoApproveSeconds:null==(_b=this.state.approvalPrefs)?void 0:_b.planAutoApproveSeconds,onPlanAutoApproveChange:this.handlePlanAutoApproveChange,onClearContextOptimistic:this.handleClearContextOptimistic,onUserMessageSent:this.handleUserMessageSent,onPendingAsk:this.handleApprovalAsk,onPendingPtyPlan:this.handleApprovalPtyPlan,ownTabId:this.state.ownTabId,projectName:this.state.projectName,setContextBarSlot:this.setContextBarSlot})})]}),jsxRuntimeExports.jsxs("div",{className:styles$g.footer,children:[jsxRuntimeExports.jsx(CountryFlag,{}),!this._isLocalLog&&(this.state.planUsage||"OAuth"===(null==(_c=this.state.defaultConfig)?void 0:_c.authType))&&jsxRuntimeExports.jsx(UsageWindowPill$1,{planUsage:this.state.planUsage,authType:null==(_d=this.state.defaultConfig)?void 0:_d.authType}),jsxRuntimeExports.jsxs("div",{className:styles$g.footerRight,children:[jsxRuntimeExports.jsxs("a",{href:"https://github.com/weiesky/cx-viewer",target:"_blank",rel:"noopener noreferrer",className:styles$g.footerLink,children:[jsxRuntimeExports.jsx("svg",{className:styles$g.footerIcon,viewBox:"0 0 16 16",fill:"currentColor",children:jsxRuntimeExports.jsx("path",{d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"})}),"GitHub",null!=this.state.githubStars?` ★ ${this.state.githubStars}`:""]}),jsxRuntimeExports.jsx("span",{className:styles$g.footerSep,children:"|"}),jsxRuntimeExports.jsxs("span",{className:styles$g.footerVersion,onClick:this.openUpdateModal,style:{cursor:"pointer"},children:["v","1.0.4"]}),this.state.updateInfo&&jsxRuntimeExports.jsx(Tooltip,{title:t("ui.update.majorAvailable",{version:this.state.updateInfo.version}),placement:"top",children:jsxRuntimeExports.jsx("span",{className:styles$g.newBadgeText,onClick:this.openUpdateModal,children:t("ui.update.newBadge")})})]})]})]}),jsxRuntimeExports.jsx(Modal,{title:t("ui.update.title"),open:this.state.updateModalVisible,onCancel:()=>this.setState({updateModalVisible:!1}),footer:null,width:560,children:jsxRuntimeExports.jsxs("div",{style:{lineHeight:1.8},children:[jsxRuntimeExports.jsxs("p",{children:[jsxRuntimeExports.jsxs("strong",{children:[t("ui.update.current"),":"]})," v","1.0.4"]}),this.state.updateInfo&&jsxRuntimeExports.jsxs("p",{children:[jsxRuntimeExports.jsxs("strong",{children:[t("ui.update.latest"),":"]})," v",this.state.updateInfo.version]}),this.renderUpdateInstructions(isElectron?"electron":this.state.installMethod||"npm"),jsxRuntimeExports.jsx("div",{style:{marginTop:16,textAlign:"right"},children:jsxRuntimeExports.jsx(Button,{type:"primary",href:"https://github.com/weiesky/cx-viewer/releases",target:"_blank",rel:"noopener noreferrer",children:t("ui.update.goReleases")})})]})}),jsxRuntimeExports.jsx(Modal,{title:t("ui.resume.title"),open:this.state.resumeModalVisible,closable:!1,maskClosable:!1,keyboard:!1,footer:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:styles$g.resumeFooterRight,children:[jsxRuntimeExports.jsx(Button,{type:"primary",onClick:()=>this.handleResumeChoice("continue"),className:styles$g.btnMarginRight,children:t("ui.resume.continue")},"continue"),jsxRuntimeExports.jsx(Button,{onClick:()=>this.handleResumeChoice("new"),children:t("ui.resume.new")},"new")]}),jsxRuntimeExports.jsx("div",{className:styles$g.resumeFooterLeft,children:jsxRuntimeExports.jsx(Checkbox,{checked:this.state.resumeRememberChoice,onChange:e=>this.setState({resumeRememberChoice:e.target.checked}),className:styles$g.resumeCheckboxOpacity,children:jsxRuntimeExports.jsx("span",{className:styles$g.resumeCheckboxOpacity,children:t("ui.resume.remember")})})})]}),children:jsxRuntimeExports.jsx("p",{children:t("ui.resume.message",{file:this.state.resumeFileName})})}),jsxRuntimeExports.jsxs(Modal,{title:jsxRuntimeExports.jsxs("span",{className:styles$g.modalTitleInline,children:[jsxRuntimeExports.jsx(OpenFolderIcon,{apiEndpoint:apiUrl("/api/open-log-dir"),title:t("ui.openLogDir"),size:16}),t("ui.importLocalLogs")]}),open:this.state.importModalVisible,onCancel:this.handleCloseImportModal,footer:null,width:1e3,styles:{body:{overflow:"hidden"},mask:BLUR_MASK_STYLE},children:[jsxRuntimeExports.jsxs("div",{className:styles$g.modalActions,children:[jsxRuntimeExports.jsx(Button,{size:"small",icon:jsxRuntimeExports.jsx(RefIcon$n,{}),onClick:this.handleLoadLocalJsonlFile,children:t("ui.loadLocalJsonl")}),jsxRuntimeExports.jsx(Button,{size:"small",type:this.state.selectedLogs.size>1&&![...this.state.selectedLogs].some(f=>f.endsWith(".jsonl.zip"))?"primary":"default",disabled:this.state.selectedLogs.size<2||[...this.state.selectedLogs].some(f=>f.endsWith(".jsonl.zip")),onClick:this.handleMergeLogs,className:styles$g.btnMarginLeft,children:t("ui.mergeLogs")}),jsxRuntimeExports.jsx(Button,{size:"small",icon:jsxRuntimeExports.jsx(RefIcon$9,{}),disabled:![...this.state.selectedLogs].some(f=>f.endsWith(".jsonl")),onClick:this.handleArchiveLogs,className:styles$g.btnMarginLeft,children:t("ui.archiveLogs")}),jsxRuntimeExports.jsx(Button,{size:"small",danger:!0,icon:jsxRuntimeExports.jsx(RefIcon$o,{}),disabled:0===this.state.selectedLogs.size,onClick:this.handleDeleteLogs,className:styles$g.btnMarginLeft,children:t("ui.deleteLogs")}),jsxRuntimeExports.jsx(Button,{size:"small",icon:jsxRuntimeExports.jsx(RefIcon$g,{spin:this.state.refreshingStats}),loading:this.state.refreshingStats,onClick:this.handleRefreshStats,className:styles$g.btnMarginLeft,children:t("ui.refreshStats")}),jsxRuntimeExports.jsx(Checkbox,{className:styles$g.btnMarginLeft,checked:this.state.logShowAllInstances,onChange:this.handleToggleShowAllLogs,children:t("ui.showAllInstanceLogs")})]}),this.state.localLogsLoading?jsxRuntimeExports.jsx("div",{className:styles$g.spinCenter,children:jsxRuntimeExports.jsx(Spin,{})}):(()=>{const currentLogs=this.state.localLogs[this.state.currentProject];return currentLogs&&0!==currentLogs.length?jsxRuntimeExports.jsx("div",{className:styles$g.logListContainer,children:this.renderLogTable(currentLogs,!1)}):jsxRuntimeExports.jsx("div",{className:styles$g.emptyCenter,children:t("ui.noLogs")})})()]})]})})})}}export{App as default};