chainlesschain 0.166.130 → 0.166.132

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 (469) hide show
  1. package/README.md +30 -4
  2. package/package.json +2 -2
  3. package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
  4. package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
  5. package/src/assets/web-panel/.build-hash +1 -1
  6. package/src/assets/web-panel/assets/AIOps-CHItp4vg.js +1 -0
  7. package/src/assets/web-panel/assets/AIOps-Cchx1iXI.css +1 -0
  8. package/src/assets/web-panel/assets/{ActionButton-Dzv1ReHF.js → ActionButton-nhMNWW_d.js} +1 -1
  9. package/src/assets/web-panel/assets/Analytics-DRc81BBI.js +3 -0
  10. package/src/assets/web-panel/assets/Analytics-Dr-1kvaM.css +1 -0
  11. package/src/assets/web-panel/assets/AppLayout-BTBIIl1e.css +1 -0
  12. package/src/assets/web-panel/assets/AppLayout-CVt7HMkp.js +3 -0
  13. package/src/assets/web-panel/assets/Artifacts-BuJgG5jf.js +1 -0
  14. package/src/assets/web-panel/assets/Artifacts-Dohtjyfl.css +1 -0
  15. package/src/assets/web-panel/assets/Audit-DDnViLtj.css +1 -0
  16. package/src/assets/web-panel/assets/Audit-msNg0aH-.js +1 -0
  17. package/src/assets/web-panel/assets/BackgroundAgents-BpcV8yWC.js +1 -0
  18. package/src/assets/web-panel/assets/BackgroundAgents-CH3Uc9sF.css +1 -0
  19. package/src/assets/web-panel/assets/Backup-CYh10zO3.css +1 -0
  20. package/src/assets/web-panel/assets/Backup-P53DADwG.js +1 -0
  21. package/src/assets/web-panel/assets/BaseInput-DFxT2yWN.js +1 -0
  22. package/src/assets/web-panel/assets/Chat-B5JvvQJb.css +1 -0
  23. package/src/assets/web-panel/assets/Chat-BXoHisHW.js +7 -0
  24. package/src/assets/web-panel/assets/ChatBubbleRenderer-CO908iBt.css +1 -0
  25. package/src/assets/web-panel/assets/ChatBubbleRenderer-DMGtSdDx.js +1 -0
  26. package/src/assets/web-panel/assets/{Checkbox-B5uzaLLP.js → Checkbox-B4g_ckJq.js} +1 -1
  27. package/src/assets/web-panel/assets/Codegen-BLP7id2a.css +1 -0
  28. package/src/assets/web-panel/assets/Codegen-C6SSSOfp.js +1 -0
  29. package/src/assets/web-panel/assets/{Col-D3I2kUGu.js → Col-IO1NEUYL.js} +1 -1
  30. package/src/assets/web-panel/assets/Community-C2RejeOY.css +1 -0
  31. package/src/assets/web-panel/assets/Community-CdEBl93F.js +1 -0
  32. package/src/assets/web-panel/assets/{Compact-5GigOmb8.js → Compact-DYs0a9k7.js} +1 -1
  33. package/src/assets/web-panel/assets/Compliance-BPnk7948.js +1 -0
  34. package/src/assets/web-panel/assets/Compliance-DOys4Ov1.css +1 -0
  35. package/src/assets/web-panel/assets/Cowork-DsOst4XK.css +1 -0
  36. package/src/assets/web-panel/assets/Cowork-VLOTGbza.js +6 -0
  37. package/src/assets/web-panel/assets/Cron-_9GgQLJo.js +2 -0
  38. package/src/assets/web-panel/assets/Crosschain-B21yn0qy.js +1 -0
  39. package/src/assets/web-panel/assets/Crosschain-C7Le4Pte.css +1 -0
  40. package/src/assets/web-panel/assets/DID-BX6k3jZi.css +1 -0
  41. package/src/assets/web-panel/assets/DID-mBeDgRZ7.js +2 -0
  42. package/src/assets/web-panel/assets/Dashboard-BckYYzhP.js +3 -0
  43. package/src/assets/web-panel/assets/Dashboard-MFDcsVcM.css +1 -0
  44. package/src/assets/web-panel/assets/Dropdown-DEedqFiE.js +1 -0
  45. package/src/assets/web-panel/assets/EmailListRenderer-CMs0k9TB.js +1 -0
  46. package/src/assets/web-panel/assets/EmailListRenderer-CVJ1j3Ll.css +1 -0
  47. package/src/assets/web-panel/assets/EvolutionSettings-B00Qd0fN.js +1 -0
  48. package/src/assets/web-panel/assets/EvolutionSettings-BnQ91YHJ.css +1 -0
  49. package/src/assets/web-panel/assets/FamilyGuardDashboard-Df-D09Q4.css +1 -0
  50. package/src/assets/web-panel/assets/FamilyGuardDashboard-DxMTAMa8.js +1 -0
  51. package/src/assets/web-panel/assets/Federation-B-UZw0LO.js +1 -0
  52. package/src/assets/web-panel/assets/Federation-CgmfLbx1.css +1 -0
  53. package/src/assets/web-panel/assets/FormItemContext-CkafazEw.js +1 -0
  54. package/src/assets/web-panel/assets/GenericCardRenderer-DEUG25ZJ.js +1 -0
  55. package/src/assets/web-panel/assets/GenericCardRenderer-DtJFcJYl.css +1 -0
  56. package/src/assets/web-panel/assets/Git-D7dr9oz9.js +2 -0
  57. package/src/assets/web-panel/assets/{Git-BdHhxBWR.css → Git-DPuaGtg7.css} +1 -1
  58. package/src/assets/web-panel/assets/Governance-BoipmXaM.css +1 -0
  59. package/src/assets/web-panel/assets/Governance-DKlUJ1wg.js +1 -0
  60. package/src/assets/web-panel/assets/Inference-BJKqplap.js +1 -0
  61. package/src/assets/web-panel/assets/Inference-BWxYJF9-.css +1 -0
  62. package/src/assets/web-panel/assets/KnowledgeGraph-B78fB-bz.js +1 -0
  63. package/src/assets/web-panel/assets/KnowledgeGraph-CztPDA96.css +1 -0
  64. package/src/assets/web-panel/assets/Logs-DJGcHYH_.js +2 -0
  65. package/src/assets/web-panel/assets/Logs-Gf_Mv9Nx.css +1 -0
  66. package/src/assets/web-panel/assets/MarkdownRenderer-BAxj61I3.css +1 -0
  67. package/src/assets/web-panel/assets/MarkdownRenderer-DkcG_MxW.js +1 -0
  68. package/src/assets/web-panel/assets/Marketplace-Djp5q9dS.css +1 -0
  69. package/src/assets/web-panel/assets/Marketplace-ucTbwByD.js +1 -0
  70. package/src/assets/web-panel/assets/McpTools-Cu1xZYYk.js +2 -0
  71. package/src/assets/web-panel/assets/McpTools-DSGHWYS_.css +1 -0
  72. package/src/assets/web-panel/assets/Memory-Bcc2hxOA.css +1 -0
  73. package/src/assets/web-panel/assets/Memory-DCGpXmi-.js +2 -0
  74. package/src/assets/web-panel/assets/MobileBridge-BQ-Uwwg7.css +1 -0
  75. package/src/assets/web-panel/assets/MobileBridge-BnKr0aAS.js +1 -0
  76. package/src/assets/web-panel/assets/MobileProjects-C5UvYJTP.js +1 -0
  77. package/src/assets/web-panel/assets/MobileProjects-Ceaxrqzc.css +1 -0
  78. package/src/assets/web-panel/assets/Mtc-D1UUl4WH.js +6 -0
  79. package/src/assets/web-panel/assets/Mtc-DHwbdUqA.css +1 -0
  80. package/src/assets/web-panel/assets/MtcAudit-B0x8gahq.css +1 -0
  81. package/src/assets/web-panel/assets/MtcAudit-D3aa8XP4.js +19 -0
  82. package/src/assets/web-panel/assets/Multisig-DiXdfJjO.js +7 -0
  83. package/src/assets/web-panel/assets/Multisig-kwPDnXnl.css +1 -0
  84. package/src/assets/web-panel/assets/NLProgramming-CLOvy-35.css +1 -0
  85. package/src/assets/web-panel/assets/NLProgramming-DbWABgSE.js +1 -0
  86. package/src/assets/web-panel/assets/Notes-BP1DPl-R.js +7 -0
  87. package/src/assets/web-panel/assets/Notes-COE2q2gD.css +1 -0
  88. package/src/assets/web-panel/assets/NotificationSettings-Co0e0uEO.css +1 -0
  89. package/src/assets/web-panel/assets/NotificationSettings-xaB6ONe7.js +1 -0
  90. package/src/assets/web-panel/assets/OrderTableRenderer-BnOISpKI.css +1 -0
  91. package/src/assets/web-panel/assets/OrderTableRenderer-D1uNcz3b.js +1 -0
  92. package/src/assets/web-panel/assets/Organization-BM3Lh8Q8.css +1 -0
  93. package/src/assets/web-panel/assets/Organization-DMLDGaf1.js +4 -0
  94. package/src/assets/web-panel/assets/{Overflow-ky9UfGv4.js → Overflow-DH4QPEoI.js} +1 -1
  95. package/src/assets/web-panel/assets/{OverrideContext-C0w0P4A3.js → OverrideContext-DLR1AtLy.js} +1 -1
  96. package/src/assets/web-panel/assets/P2P-Bl4OS10o.js +2 -0
  97. package/src/assets/web-panel/assets/P2P-Cx88UaiD.css +1 -0
  98. package/src/assets/web-panel/assets/PdhVaultBrowser-B9ZGFpn4.css +1 -0
  99. package/src/assets/web-panel/assets/PdhVaultBrowser-D9XSE2YI.js +7 -0
  100. package/src/assets/web-panel/assets/Permissions-CUaPlr6d.js +4 -0
  101. package/src/assets/web-panel/assets/Permissions-Diejgkbs.css +1 -0
  102. package/src/assets/web-panel/assets/PersonalDataHub-Ba92dZk-.js +3 -0
  103. package/src/assets/web-panel/assets/PersonalDataHub-C_xhspRy.css +1 -0
  104. package/src/assets/web-panel/assets/Pipeline-Bh2okm-8.js +1 -0
  105. package/src/assets/web-panel/assets/Pipeline-DxkXqrH2.css +1 -0
  106. package/src/assets/web-panel/assets/Privacy-Bmq3p4gC.js +1 -0
  107. package/src/assets/web-panel/assets/Privacy-CrsfSFKd.css +1 -0
  108. package/src/assets/web-panel/assets/ProjectInit-BPu2fdKR.js +2 -0
  109. package/src/assets/web-panel/assets/ProjectInit-CteEo-wF.css +1 -0
  110. package/src/assets/web-panel/assets/ProjectSettings-D6ABLpmt.js +2 -0
  111. package/src/assets/web-panel/assets/ProjectSettings-pLSae-wy.css +1 -0
  112. package/src/assets/web-panel/assets/Projects-BX-SG9R4.css +1 -0
  113. package/src/assets/web-panel/assets/Projects-qWHEve0z.js +1 -0
  114. package/src/assets/web-panel/assets/Providers-CpAXh_6c.css +1 -0
  115. package/src/assets/web-panel/assets/Providers-D9DI-2hc.js +1 -0
  116. package/src/assets/web-panel/assets/{QrScannerModal-er_HkLCI.js → QrScannerModal-CxifoeD5.js} +1 -1
  117. package/src/assets/web-panel/assets/QrScannerModal-DFrn7rxS.css +1 -0
  118. package/src/assets/web-panel/assets/QuickAsk-DC1BvwR7.js +1 -0
  119. package/src/assets/web-panel/assets/Recommend-CH6wKzGo.css +1 -0
  120. package/src/assets/web-panel/assets/Recommend-CKqbMB5o.js +1 -0
  121. package/src/assets/web-panel/assets/RemoteSession-BGGzPdS5.js +5 -0
  122. package/src/assets/web-panel/assets/Reputation-D6VPNEd0.css +1 -0
  123. package/src/assets/web-panel/assets/Reputation-DH90O9-5.js +1 -0
  124. package/src/assets/web-panel/assets/Row-h7ovueJc.js +1 -0
  125. package/src/assets/web-panel/assets/RssFeed-Cze7YLaG.css +1 -0
  126. package/src/assets/web-panel/assets/RssFeed-DaHxXTZg.js +3 -0
  127. package/src/assets/web-panel/assets/Search-B6RalzTB.css +1 -0
  128. package/src/assets/web-panel/assets/Search-Bn6Nqpn4.js +1 -0
  129. package/src/assets/web-panel/assets/Security-13K57V_v.css +1 -0
  130. package/src/assets/web-panel/assets/Security-ClbBmPJi.js +4 -0
  131. package/src/assets/web-panel/assets/Services-C8Qs6KXv.css +1 -0
  132. package/src/assets/web-panel/assets/Services-ChHLQwRn.js +2 -0
  133. package/src/assets/web-panel/assets/{Skeleton-CrFs6rUL.js → Skeleton-DfN6BFzt.js} +1 -1
  134. package/src/assets/web-panel/assets/Skills-BdjRyorN.css +1 -0
  135. package/src/assets/web-panel/assets/Skills-C926wDev.js +1 -0
  136. package/src/assets/web-panel/assets/Sla-DJzi1l1M.js +1 -0
  137. package/src/assets/web-panel/assets/Sla-K19oOyQc.css +1 -0
  138. package/src/assets/web-panel/assets/SpeechSettings-DYPJTDKz.css +1 -0
  139. package/src/assets/web-panel/assets/SpeechSettings-_GSyVjm_.js +1 -0
  140. package/src/assets/web-panel/assets/SyncSettings-B67xnERe.js +1 -0
  141. package/src/assets/web-panel/assets/SyncSettings-C6cDrwDR.css +1 -0
  142. package/src/assets/web-panel/assets/Tasks-BJjN_YEm.css +1 -0
  143. package/src/assets/web-panel/assets/Tasks-BaYZadcG.js +1 -0
  144. package/src/assets/web-panel/assets/Templates-BsMmCdZI.css +1 -0
  145. package/src/assets/web-panel/assets/Templates-Bu8kN1Xt.js +1 -0
  146. package/src/assets/web-panel/assets/Tenant-BM9qufw1.js +1 -0
  147. package/src/assets/web-panel/assets/Tenant-D3zkSAV0.css +1 -0
  148. package/src/assets/web-panel/assets/Terminal-MEdd5DjB.js +3 -0
  149. package/src/assets/web-panel/assets/Terminal-qPp9MaPu.css +1 -0
  150. package/src/assets/web-panel/assets/TimelineRenderer-C27kL2oU.js +1 -0
  151. package/src/assets/web-panel/assets/TimelineRenderer-DmztdsbF.css +1 -0
  152. package/src/assets/web-panel/assets/Tokens-BBOdNRHQ.css +1 -0
  153. package/src/assets/web-panel/assets/Tokens-Cvjd98VC.js +1 -0
  154. package/src/assets/web-panel/assets/{Trigger-CXrW4Nry.js → Trigger-CLym84HI.js} +1 -1
  155. package/src/assets/web-panel/assets/Trust-Bv2JTaNN.js +1 -0
  156. package/src/assets/web-panel/assets/Trust-DeOo0xAh.css +1 -0
  157. package/src/assets/web-panel/assets/UkeySign-CSCkNbtm.js +1 -0
  158. package/src/assets/web-panel/assets/VideoEditing-BFDXB4xh.js +1 -0
  159. package/src/assets/web-panel/assets/VideoEditing-DksiizfS.css +1 -0
  160. package/src/assets/web-panel/assets/Wallet-CMEFrG_b.js +4 -0
  161. package/src/assets/web-panel/assets/Wallet-Dw8uV4Ug.css +1 -0
  162. package/src/assets/web-panel/assets/WebAuthn-DKx6xPPl.css +1 -0
  163. package/src/assets/web-panel/assets/WebAuthn-x4eO_Q4y.js +5 -0
  164. package/src/assets/web-panel/assets/WorkflowEditor-ClWEPgV1.js +1 -0
  165. package/src/assets/web-panel/assets/WorkflowEditor-IiwsD8Kh.css +1 -0
  166. package/src/assets/web-panel/assets/{_getTag-DnrRH4E6.js → _getTag-BVc6NQ_K.js} +1 -1
  167. package/src/assets/web-panel/assets/{chat-BpJsXlTK.js → chat-BdYOI4gM.js} +1 -1
  168. package/src/assets/web-panel/assets/{collapseMotion-CqM1QOwM.js → collapseMotion-B4IZiILV.js} +1 -1
  169. package/src/assets/web-panel/assets/{colors-CUNg0-fh.js → colors-DcTBrGvS.js} +1 -1
  170. package/src/assets/web-panel/assets/{compact-item-C3tFHnhu.js → compact-item-Dn2ktVuj.js} +1 -1
  171. package/src/assets/web-panel/assets/createContext-XTreuyqp.js +1 -0
  172. package/src/assets/web-panel/assets/{debounce-CFGTTtN3.js → debounce-D9xTw4Sx.js} +1 -1
  173. package/src/assets/web-panel/assets/devWarning-CNIS3FrJ.js +1 -0
  174. package/src/assets/web-panel/assets/echarts-CDp6K7pj.js +19 -0
  175. package/src/assets/web-panel/assets/{hasIn-CU6RIciB.js → hasIn-CFRNsYQd.js} +1 -1
  176. package/src/assets/web-panel/assets/{icons-DG5UD-6K.js → icons-DlxlFL4g.js} +4 -4
  177. package/src/assets/web-panel/assets/index-3RqDry-K.js +71 -0
  178. package/src/assets/web-panel/assets/{index-BPWJw4Ji.js → index-8METW_Wr.js} +1 -1
  179. package/src/assets/web-panel/assets/index-BBd64wj8.js +31 -0
  180. package/src/assets/web-panel/assets/index-BEyVNbNE.js +3 -0
  181. package/src/assets/web-panel/assets/index-BMLpP8QQ.js +1 -0
  182. package/src/assets/web-panel/assets/{index-BzhobTgZ.js → index-BSqydcDa.js} +1 -1
  183. package/src/assets/web-panel/assets/index-BV6LojRv.js +21 -0
  184. package/src/assets/web-panel/assets/index-BbMWvjLZ.js +1 -0
  185. package/src/assets/web-panel/assets/{index-KgR1f2Gq.js → index-Brc0BF-k.js} +2 -2
  186. package/src/assets/web-panel/assets/{index-D4njcYFw.js → index-CG9YLDmI.js} +1 -1
  187. package/src/assets/web-panel/assets/{index-6EwPIfXu.js → index-CNHWMMDX.js} +1 -1
  188. package/src/assets/web-panel/assets/{index-CEIoRm_c.js → index-COuEJdmr.js} +3 -3
  189. package/src/assets/web-panel/assets/{index-BG4zuFf0.js → index-CRW3AWdS.js} +1 -1
  190. package/src/assets/web-panel/assets/{index-BOlAutGy.js → index-CUT4h5JB.js} +2 -2
  191. package/src/assets/web-panel/assets/index-CXMa7Z-S.js +1 -0
  192. package/src/assets/web-panel/assets/index-CbaPXyNc.js +19 -0
  193. package/src/assets/web-panel/assets/{index-Cq93VfoF.css → index-CfX1DEtk.css} +1 -1
  194. package/src/assets/web-panel/assets/{index-X6e0cGRU.js → index-CjHA_Q7s.js} +1 -1
  195. package/src/assets/web-panel/assets/index-CsnYp4qF.js +1 -0
  196. package/src/assets/web-panel/assets/index-D45vulkq.js +12 -0
  197. package/src/assets/web-panel/assets/index-D9kPBEqD.js +55 -0
  198. package/src/assets/web-panel/assets/index-DDTSgpXz.js +1 -0
  199. package/src/assets/web-panel/assets/index-DFl_a0n5.js +1 -0
  200. package/src/assets/web-panel/assets/index-DNdiAymC.js +1 -0
  201. package/src/assets/web-panel/assets/{index-BJjEAoDb.js → index-DQEu7uW0.js} +1 -1
  202. package/src/assets/web-panel/assets/index-DW9XncMy.js +21 -0
  203. package/src/assets/web-panel/assets/index-Daa1yCt_.js +1 -0
  204. package/src/assets/web-panel/assets/index-DdVpoNEQ.js +12 -0
  205. package/src/assets/web-panel/assets/index-Dhi4Oybt.js +1 -0
  206. package/src/assets/web-panel/assets/index-DoVoNjtJ.js +1 -0
  207. package/src/assets/web-panel/assets/{index-111hR8WZ.js → index-Vo7A4aiN.js} +4 -4
  208. package/src/assets/web-panel/assets/{index-lo9rgpyj.js → index-XdlYkgCa.js} +1 -1
  209. package/src/assets/web-panel/assets/{index-1L0tt7G2.js → index-ir2ZwWz5.js} +2 -2
  210. package/src/assets/web-panel/assets/index-kzyCd8a0.js +3 -0
  211. package/src/assets/web-panel/assets/{index-CyyhilXV.js → index-lnTt0Jps.js} +2 -2
  212. package/src/assets/web-panel/assets/{index-CLQjdKmE.js → index-ma-rJkfE.js} +1 -1
  213. package/src/assets/web-panel/assets/index-oE4jTpHK.js +13 -0
  214. package/src/assets/web-panel/assets/{index-K2Uqqkr1.js → index-r5sNECM5.js} +1 -1
  215. package/src/assets/web-panel/assets/index-uT4fRDzU.js +1 -0
  216. package/src/assets/web-panel/assets/index-xlS8pDS2.js +1 -0
  217. package/src/assets/web-panel/assets/{initDefaultProps-FI8D7E2x.js → initDefaultProps-mdL0oeZa.js} +1 -1
  218. package/src/assets/web-panel/assets/{isPlainObject-BWRMT62c.js → isPlainObject-_gz-soRW.js} +1 -1
  219. package/src/assets/web-panel/assets/isSymbol-DAy2hlR5.js +1 -0
  220. package/src/assets/web-panel/assets/motion-ZgVCKcEX.js +11 -0
  221. package/src/assets/web-panel/assets/{move-Vl1vUReW.js → move-A_28O5T2.js} +1 -1
  222. package/src/assets/web-panel/assets/{mtc-parser-6Cu2aFME.js → mtc-parser-0zlMjabo.js} +1 -1
  223. package/src/assets/web-panel/assets/{omit-VRKL8iSO.js → omit-DF7mU3yG.js} +1 -1
  224. package/src/assets/web-panel/assets/{pickAttrs-DZfWsOe0.js → pickAttrs-Cmt8liJP.js} +1 -1
  225. package/src/assets/web-panel/assets/{placementArrow-qmcOUc4W.js → placementArrow-DaMDC57b.js} +1 -1
  226. package/src/assets/web-panel/assets/{responsiveObserve-BLB6SsSw.js → responsiveObserve-CHw_f2d3.js} +1 -1
  227. package/src/assets/web-panel/assets/{slide-41jdYeSH.js → slide-DJS9fFQq.js} +1 -1
  228. package/src/assets/web-panel/assets/{statusUtils-Yn8OQ5ey.js → statusUtils-Bk3XdZwh.js} +1 -1
  229. package/src/assets/web-panel/assets/{styleChecker-4CEwz9Zd.js → styleChecker-DMybAFsA.js} +1 -1
  230. package/src/assets/web-panel/assets/useFlexGapSupport-_tbIIFMu.js +1 -0
  231. package/src/assets/web-panel/assets/{useFs-Bugo8HuF.js → useFs-KPklVptS.js} +1 -1
  232. package/src/assets/web-panel/assets/{useMergedState-DXbJa_zE.js → useMergedState-d-EXs3xd.js} +1 -1
  233. package/src/assets/web-panel/assets/{usePersonalDataHub-B-q2ElB0.js → usePersonalDataHub-C7FrKDhD.js} +1 -1
  234. package/src/assets/web-panel/assets/{useRefs-BrCfMLMc.js → useRefs-DHeCQehi.js} +1 -1
  235. package/src/assets/web-panel/assets/{useState-CnxtbLoC.js → useState-Dlgl7fUg.js} +1 -1
  236. package/src/assets/web-panel/assets/vendor-BXcBOG8b.js +1 -0
  237. package/src/assets/web-panel/assets/vnode-DB3JBusp.js +1 -0
  238. package/src/assets/web-panel/assets/warning-Pq00owYb.js +1 -0
  239. package/src/assets/web-panel/assets/{zoom-DM1y_KKP.js → zoom-C8rAdf81.js} +1 -1
  240. package/src/assets/web-panel/index.html +4 -4
  241. package/src/command-help-index.json +1 -1
  242. package/src/commands/agent.js +1 -1
  243. package/src/commands/governed-skill-marketplace.js +24 -10
  244. package/src/commands/llm.js +4 -3
  245. package/src/data/changelog.json +27 -1
  246. package/src/harness/worktree-isolator.js +4 -1
  247. package/src/lib/compaction-host-provenance.js +24 -0
  248. package/src/lib/context-memory-kernel/durable-memory-port.js +46 -34
  249. package/src/lib/context-memory-kernel/live-compaction.js +12 -3
  250. package/src/lib/context-memory-kernel/memory-query-bundle.js +375 -0
  251. package/src/lib/context-memory-kernel/memory-query-control.js +28 -0
  252. package/src/lib/context-memory-kernel/memory-service.js +30 -16
  253. package/src/lib/context-memory-kernel/memory-shard-snapshots.js +63 -0
  254. package/src/lib/context-memory-kernel/message-adapter.js +27 -6
  255. package/src/lib/context-memory-kernel/provider-context.js +103 -27
  256. package/src/lib/context-memory-kernel/segmented-memory-port.js +347 -138
  257. package/src/lib/cost-budget.js +2 -0
  258. package/src/lib/ephemeral-worktree-scope.js +24 -0
  259. package/src/lib/evolution/evolution-deployment-loader.js +6 -4
  260. package/src/lib/evolution/governed-skill-marketplace-abort.js +14 -0
  261. package/src/lib/evolution/governed-skill-marketplace-candidate.js +10 -2
  262. package/src/lib/evolution/governed-skill-marketplace-cli-host.js +47 -20
  263. package/src/lib/evolution/governed-skill-marketplace.js +47 -24
  264. package/src/lib/goal-condition-engine.js +20 -3
  265. package/src/lib/goal-verification-command.js +221 -0
  266. package/src/lib/goal-verification-plan.js +372 -0
  267. package/src/lib/llm-connection-probe.js +12 -5
  268. package/src/lib/llm-onboarding-catalog.json +1 -1
  269. package/src/lib/llm-pricing.js +34 -8
  270. package/src/lib/mcp-tool-catalog-authority.js +244 -0
  271. package/src/lib/model-capabilities.js +6 -0
  272. package/src/lib/model-catalog-review.js +3 -0
  273. package/src/lib/model-context-catalog.js +44 -2
  274. package/src/lib/openai-responses.js +35 -6
  275. package/src/lib/sub-agent-context.js +12 -4
  276. package/src/lib/subagent-inheritance.js +162 -2
  277. package/src/lib/usage-pricing-context.js +34 -17
  278. package/src/repl/agent-repl.js +34 -2
  279. package/src/runtime/agent-core.js +335 -18
  280. package/src/runtime/compaction-host-context.js +72 -0
  281. package/src/runtime/headless-runner.js +133 -37
  282. package/src/runtime/headless-stream.js +38 -21
  283. package/src/runtime/mcp-agent-catalog.js +257 -0
  284. package/src/runtime/mcp-config.js +18 -69
  285. package/src/runtime/mcp-tool-search.js +16 -1
  286. package/src/runtime/message-roles.js +67 -3
  287. package/src/runtime/provider-stream-state.js +35 -1
  288. package/src/runtime/system-prompt.js +9 -0
  289. package/src/assets/web-panel/assets/AIOps-CSpp7iGY.css +0 -1
  290. package/src/assets/web-panel/assets/AIOps-o-rFKEYL.js +0 -1
  291. package/src/assets/web-panel/assets/Analytics-Bt7H_jrh.js +0 -3
  292. package/src/assets/web-panel/assets/Analytics-DJcHjy5J.css +0 -1
  293. package/src/assets/web-panel/assets/AppLayout-CgynsRFP.js +0 -9
  294. package/src/assets/web-panel/assets/AppLayout-VlanTjPw.css +0 -1
  295. package/src/assets/web-panel/assets/Artifacts-CTVt96zW.css +0 -1
  296. package/src/assets/web-panel/assets/Artifacts-gghOGDyE.js +0 -1
  297. package/src/assets/web-panel/assets/Audit-D8oxP0wr.css +0 -1
  298. package/src/assets/web-panel/assets/Audit-DBXn-AZ6.js +0 -1
  299. package/src/assets/web-panel/assets/BackgroundAgents--dxPftKa.js +0 -1
  300. package/src/assets/web-panel/assets/BackgroundAgents-Dq2340Kl.css +0 -1
  301. package/src/assets/web-panel/assets/Backup-D9Zf_2tH.js +0 -1
  302. package/src/assets/web-panel/assets/Backup-Wi9CaP3d.css +0 -1
  303. package/src/assets/web-panel/assets/BaseInput-DDTOjovq.js +0 -1
  304. package/src/assets/web-panel/assets/Chat-2ETqdBLn.js +0 -8
  305. package/src/assets/web-panel/assets/Chat-KSGPtU0L.css +0 -1
  306. package/src/assets/web-panel/assets/ChatBubbleRenderer-DSg2Xs8G.js +0 -1
  307. package/src/assets/web-panel/assets/ChatBubbleRenderer-gy5SDGw2.css +0 -1
  308. package/src/assets/web-panel/assets/Codegen-4ieEEIwt.js +0 -1
  309. package/src/assets/web-panel/assets/Codegen-BB08p1fn.css +0 -1
  310. package/src/assets/web-panel/assets/Community-Cbq1nrpo.css +0 -1
  311. package/src/assets/web-panel/assets/Community-DeYxFMJb.js +0 -1
  312. package/src/assets/web-panel/assets/Compliance-DLVjbVUh.js +0 -1
  313. package/src/assets/web-panel/assets/Compliance-NoXr2Vof.css +0 -1
  314. package/src/assets/web-panel/assets/Cowork-BlXJRu6L.css +0 -1
  315. package/src/assets/web-panel/assets/Cowork-DfUKa0T5.js +0 -6
  316. package/src/assets/web-panel/assets/Cron-_RpktpO5.js +0 -2
  317. package/src/assets/web-panel/assets/Crosschain-7x6xdbwH.js +0 -1
  318. package/src/assets/web-panel/assets/Crosschain-CgRAecoR.css +0 -1
  319. package/src/assets/web-panel/assets/DID-DVsYcgvs.css +0 -1
  320. package/src/assets/web-panel/assets/DID-ccVhToC1.js +0 -2
  321. package/src/assets/web-panel/assets/Dashboard-CAPSdFR4.css +0 -1
  322. package/src/assets/web-panel/assets/Dashboard-DhygcaoK.js +0 -3
  323. package/src/assets/web-panel/assets/Dropdown-DFplwXK7.js +0 -1
  324. package/src/assets/web-panel/assets/EmailListRenderer-Bm01soCN.js +0 -1
  325. package/src/assets/web-panel/assets/EmailListRenderer-DTPZPx_S.css +0 -1
  326. package/src/assets/web-panel/assets/EvolutionSettings-Bdw8ApoT.css +0 -1
  327. package/src/assets/web-panel/assets/EvolutionSettings-C4v--DkD.js +0 -1
  328. package/src/assets/web-panel/assets/FamilyGuardDashboard-ChQXDBA3.js +0 -1
  329. package/src/assets/web-panel/assets/FamilyGuardDashboard-nd3idUVb.css +0 -1
  330. package/src/assets/web-panel/assets/Federation-C0yomE-M.js +0 -1
  331. package/src/assets/web-panel/assets/Federation-fGN6iMX_.css +0 -1
  332. package/src/assets/web-panel/assets/FormItemContext-DtT3ZEZK.js +0 -2
  333. package/src/assets/web-panel/assets/GenericCardRenderer-DgITtFRv.js +0 -1
  334. package/src/assets/web-panel/assets/GenericCardRenderer-o85VDYQS.css +0 -1
  335. package/src/assets/web-panel/assets/Git-CCY42R8S.js +0 -2
  336. package/src/assets/web-panel/assets/Governance-DtCS4NDm.css +0 -1
  337. package/src/assets/web-panel/assets/Governance-N66Bwvqg.js +0 -1
  338. package/src/assets/web-panel/assets/Inference-BkbPuR_2.js +0 -1
  339. package/src/assets/web-panel/assets/Inference-t-w0NgIS.css +0 -1
  340. package/src/assets/web-panel/assets/KnowledgeGraph-4NU1S2Xm.css +0 -1
  341. package/src/assets/web-panel/assets/KnowledgeGraph-B3PibXdA.js +0 -1
  342. package/src/assets/web-panel/assets/Logs-CUtNB_N6.js +0 -2
  343. package/src/assets/web-panel/assets/Logs-DQbCaYhL.css +0 -1
  344. package/src/assets/web-panel/assets/MarkdownRenderer-D-V4dOe3.js +0 -1
  345. package/src/assets/web-panel/assets/MarkdownRenderer-DbzhFwvz.css +0 -1
  346. package/src/assets/web-panel/assets/Marketplace-Bvo5cuGa.css +0 -1
  347. package/src/assets/web-panel/assets/Marketplace-DLNJb6Nr.js +0 -1
  348. package/src/assets/web-panel/assets/McpTools-2zGjJb5K.js +0 -4
  349. package/src/assets/web-panel/assets/McpTools-534Q95Mx.css +0 -1
  350. package/src/assets/web-panel/assets/Memory-9rNZ1EvR.js +0 -2
  351. package/src/assets/web-panel/assets/Memory-CleW_R6V.css +0 -1
  352. package/src/assets/web-panel/assets/MobileBridge-Cw7sAAgn.js +0 -1
  353. package/src/assets/web-panel/assets/MobileBridge-D3Arxfeg.css +0 -1
  354. package/src/assets/web-panel/assets/MobileProjects-8XACrqqy.js +0 -1
  355. package/src/assets/web-panel/assets/MobileProjects-BD4alw6-.css +0 -1
  356. package/src/assets/web-panel/assets/Mtc-CXZGO9Sh.css +0 -1
  357. package/src/assets/web-panel/assets/Mtc-mg02JNy-.js +0 -6
  358. package/src/assets/web-panel/assets/MtcAudit-B1Vkhj2l.js +0 -19
  359. package/src/assets/web-panel/assets/MtcAudit-C1JM8esp.css +0 -1
  360. package/src/assets/web-panel/assets/Multisig-BQEeA7GG.js +0 -13
  361. package/src/assets/web-panel/assets/Multisig-BryR2Jpr.css +0 -1
  362. package/src/assets/web-panel/assets/NLProgramming-BIbkjZV3.js +0 -1
  363. package/src/assets/web-panel/assets/NLProgramming-DGDHq6Z9.css +0 -1
  364. package/src/assets/web-panel/assets/Notes-BKKmMtqV.css +0 -1
  365. package/src/assets/web-panel/assets/Notes-DIwhkZNY.js +0 -7
  366. package/src/assets/web-panel/assets/NotificationSettings-CG3Kfuef.css +0 -1
  367. package/src/assets/web-panel/assets/NotificationSettings-Cj9175ce.js +0 -1
  368. package/src/assets/web-panel/assets/OrderTableRenderer-CfrDjSHT.css +0 -1
  369. package/src/assets/web-panel/assets/OrderTableRenderer-IfNpXT2R.js +0 -1
  370. package/src/assets/web-panel/assets/Organization-DPFp6G9o.js +0 -4
  371. package/src/assets/web-panel/assets/Organization-LVvqwG0D.css +0 -1
  372. package/src/assets/web-panel/assets/P2P-DcFvP7F-.css +0 -1
  373. package/src/assets/web-panel/assets/P2P-tXck8GLq.js +0 -2
  374. package/src/assets/web-panel/assets/PdhVaultBrowser-DSvpQl9k.js +0 -7
  375. package/src/assets/web-panel/assets/PdhVaultBrowser-DZZrUOr1.css +0 -1
  376. package/src/assets/web-panel/assets/Permissions-CKPkdLj-.js +0 -4
  377. package/src/assets/web-panel/assets/Permissions-DsPE_IQy.css +0 -1
  378. package/src/assets/web-panel/assets/PersonalDataHub-BhpRlh9D.css +0 -1
  379. package/src/assets/web-panel/assets/PersonalDataHub-DnqXc12l.js +0 -9
  380. package/src/assets/web-panel/assets/Pipeline-BItr5CyP.css +0 -1
  381. package/src/assets/web-panel/assets/Pipeline-BKjFU_kd.js +0 -1
  382. package/src/assets/web-panel/assets/Privacy-ChC-J5Tn.js +0 -1
  383. package/src/assets/web-panel/assets/Privacy-F_ENsxZk.css +0 -1
  384. package/src/assets/web-panel/assets/ProjectInit-B86LEzDL.css +0 -1
  385. package/src/assets/web-panel/assets/ProjectInit-ByFZG9sY.js +0 -2
  386. package/src/assets/web-panel/assets/ProjectSettings-Bbv1Kiw-.js +0 -2
  387. package/src/assets/web-panel/assets/ProjectSettings-DK7KA_iX.css +0 -1
  388. package/src/assets/web-panel/assets/Projects-CmJeUDBW.css +0 -1
  389. package/src/assets/web-panel/assets/Projects-QYyGW31-.js +0 -1
  390. package/src/assets/web-panel/assets/Providers-C6q_fvea.css +0 -1
  391. package/src/assets/web-panel/assets/Providers-CJLnWw0r.js +0 -1
  392. package/src/assets/web-panel/assets/QrScannerModal-NwAHNfiJ.css +0 -1
  393. package/src/assets/web-panel/assets/QuickAsk-DoXU0np9.js +0 -1
  394. package/src/assets/web-panel/assets/Recommend-DCo_vuaf.js +0 -1
  395. package/src/assets/web-panel/assets/Recommend-D_bf91K6.css +0 -1
  396. package/src/assets/web-panel/assets/RemoteSession-CLuL925Z.js +0 -5
  397. package/src/assets/web-panel/assets/Reputation-CNNCA_-M.js +0 -1
  398. package/src/assets/web-panel/assets/Reputation-DiOsOleI.css +0 -1
  399. package/src/assets/web-panel/assets/Row-Vu4j631i.js +0 -1
  400. package/src/assets/web-panel/assets/RssFeed-C18B4xiy.js +0 -3
  401. package/src/assets/web-panel/assets/RssFeed-CjcbkyUb.css +0 -1
  402. package/src/assets/web-panel/assets/Search-DxiqccE2.js +0 -1
  403. package/src/assets/web-panel/assets/Search-Klk29S7C.css +0 -1
  404. package/src/assets/web-panel/assets/Security-BmrukMHn.css +0 -1
  405. package/src/assets/web-panel/assets/Security-Droe_hHI.js +0 -4
  406. package/src/assets/web-panel/assets/Services-CwmmyXzq.js +0 -2
  407. package/src/assets/web-panel/assets/Services-DAnVNhUG.css +0 -1
  408. package/src/assets/web-panel/assets/Skills-BUu9owbR.css +0 -1
  409. package/src/assets/web-panel/assets/Skills-Dp-d2miK.js +0 -1
  410. package/src/assets/web-panel/assets/Sla-2DFXVbK4.js +0 -1
  411. package/src/assets/web-panel/assets/Sla-sodqCU4a.css +0 -1
  412. package/src/assets/web-panel/assets/SpeechSettings-Cdd9lCoy.js +0 -1
  413. package/src/assets/web-panel/assets/SpeechSettings-CgB9nFyq.css +0 -1
  414. package/src/assets/web-panel/assets/SyncSettings-B3hJqmBP.css +0 -1
  415. package/src/assets/web-panel/assets/SyncSettings-CxQhcYSk.js +0 -2
  416. package/src/assets/web-panel/assets/Tasks-BHWVRfXx.js +0 -1
  417. package/src/assets/web-panel/assets/Tasks-nbTUVXvt.css +0 -1
  418. package/src/assets/web-panel/assets/Templates-CpFsKk_l.css +0 -1
  419. package/src/assets/web-panel/assets/Templates-DNFk3a5_.js +0 -1
  420. package/src/assets/web-panel/assets/Tenant-B6X6dPo8.js +0 -1
  421. package/src/assets/web-panel/assets/Tenant-MuPJnOjk.css +0 -1
  422. package/src/assets/web-panel/assets/Terminal-BuUNoLGM.js +0 -3
  423. package/src/assets/web-panel/assets/Terminal-DHoveJwj.css +0 -1
  424. package/src/assets/web-panel/assets/TimelineRenderer-BlTAtkOc.css +0 -1
  425. package/src/assets/web-panel/assets/TimelineRenderer-DThrBYj8.js +0 -1
  426. package/src/assets/web-panel/assets/Tokens-CA_u4Blu.js +0 -1
  427. package/src/assets/web-panel/assets/Tokens-CynVae-o.css +0 -1
  428. package/src/assets/web-panel/assets/Trust-C-WrW0Fj.css +0 -1
  429. package/src/assets/web-panel/assets/Trust-DHcLpNy3.js +0 -1
  430. package/src/assets/web-panel/assets/UkeySign-B_fni4C2.js +0 -1
  431. package/src/assets/web-panel/assets/VideoEditing-BDFghpzP.css +0 -1
  432. package/src/assets/web-panel/assets/VideoEditing-g9nf2EhS.js +0 -1
  433. package/src/assets/web-panel/assets/Wallet-C8pOjIve.js +0 -4
  434. package/src/assets/web-panel/assets/Wallet-DUbpTRcg.css +0 -1
  435. package/src/assets/web-panel/assets/WebAuthn-BaKNjxZt.js +0 -5
  436. package/src/assets/web-panel/assets/WebAuthn-CVAFRfCQ.css +0 -1
  437. package/src/assets/web-panel/assets/WorkflowEditor-429lPWYk.css +0 -1
  438. package/src/assets/web-panel/assets/WorkflowEditor-CX030Wb1.js +0 -1
  439. package/src/assets/web-panel/assets/createContext-B8rTvO61.js +0 -1
  440. package/src/assets/web-panel/assets/devWarning-B4_IVU_n.js +0 -1
  441. package/src/assets/web-panel/assets/echarts-C61Vn3mP.js +0 -25
  442. package/src/assets/web-panel/assets/index--6BUI55w.js +0 -1
  443. package/src/assets/web-panel/assets/index-5Q1bepcM.js +0 -1
  444. package/src/assets/web-panel/assets/index-B10Ia2KL.js +0 -21
  445. package/src/assets/web-panel/assets/index-B1SLBLli.js +0 -3
  446. package/src/assets/web-panel/assets/index-B8_VQAav.js +0 -1
  447. package/src/assets/web-panel/assets/index-BMuPJra-.js +0 -1
  448. package/src/assets/web-panel/assets/index-BOCjph-k.js +0 -12
  449. package/src/assets/web-panel/assets/index-BpBaOWmV.js +0 -1
  450. package/src/assets/web-panel/assets/index-CDlHvQtw.js +0 -1
  451. package/src/assets/web-panel/assets/index-CPF7Vqri.js +0 -55
  452. package/src/assets/web-panel/assets/index-CPmgKQcl.js +0 -1
  453. package/src/assets/web-panel/assets/index-CcpMHPWd.js +0 -21
  454. package/src/assets/web-panel/assets/index-Cyksnofp.js +0 -1
  455. package/src/assets/web-panel/assets/index-Dc9pcin6.js +0 -1
  456. package/src/assets/web-panel/assets/index-DfAC55QA.js +0 -19
  457. package/src/assets/web-panel/assets/index-DgNCfwvg.js +0 -1
  458. package/src/assets/web-panel/assets/index-DvfhIBNZ.js +0 -1
  459. package/src/assets/web-panel/assets/index-Hbzd9WeI.js +0 -1
  460. package/src/assets/web-panel/assets/index-IiS7WoUl.js +0 -13
  461. package/src/assets/web-panel/assets/index-Xa6TlaD7.js +0 -31
  462. package/src/assets/web-panel/assets/index-YczWc2_0.js +0 -12
  463. package/src/assets/web-panel/assets/index-h_ANnbR8.js +0 -3
  464. package/src/assets/web-panel/assets/index-k7QsBwyo.js +0 -75
  465. package/src/assets/web-panel/assets/isSymbol-S5WZT7lS.js +0 -1
  466. package/src/assets/web-panel/assets/motion-B1hpJYSD.js +0 -11
  467. package/src/assets/web-panel/assets/useFlexGapSupport-BClv53kR.js +0 -1
  468. package/src/assets/web-panel/assets/vendor-Bn1JzzAn.js +0 -42
  469. package/src/assets/web-panel/assets/vnode-ejVeFJ0x.js +0 -1
package/README.md CHANGED
@@ -2,13 +2,39 @@
2
2
 
3
3
  Command-line interface for installing, configuring, and managing [ChainlessChain](https://www.chainlesschain.com), including the coding agent, governed tools, sessions, memory, and IDE integrations.
4
4
 
5
- ## CLI 0.166.130 candidate - Goal budgets and current workspace evidence
5
+ ## Source candidate 0.166.132 (unreleased, 2026-10-30)
6
6
 
7
- This candidate shares model Goal review with the author run budgets, cancellation and output limits, and binds completion evidence to the current workspace bytes. Unknown usage, incomplete workspace coverage and external changes prevent a completion claim. It also repairs the digest-bound security test map without changing assertions or required gates. The candidate pairs with VS Code **0.37.168** and JetBrains **0.4.185**; child dependency pins remain unchanged. It is not yet published. Historical accepted deliverables remain **34/45**, with **11** unfinished; **NOT_PAID_READY / NOT_ADMITTED / HOLD** remain.
7
+ CLI **0.166.132** keeps Kernel **0.1.11** and pairs with Open VSX **0.37.170** / JetBrains **0.4.187** source candidates. The candidate CLI stops tools from running on a truncated response and can replan once when complete usage has been recorded and budget remains. Recovery keeps the original task available even in a small context window. Filtered responses, explicitly incomplete terminal responses, and missing task context now stop with a clear failure. Resuming a session preserves task identity when the built-in adapter combines message roles; custom callbacks and unverified metadata cannot claim that identity. After asynchronous recall, the CLI rechecks the task and its position before continuing. The readContext continuation now moves the same complete user message by its exact index, preserving metadata and avoiding duplicate task identity. The original four independent-process restart cases passed locally, and 16 host-continuation tests passed; the latest full combined validation passed 456 tests across 18 files and 10 real CLI tests across 3 files, with no skips (5 output-limit, 1 resume and 4 compaction-memory-restart). Source 7f8ef64b4bd8b429f97d2e121c440143ed7ddf3b was superseded before publication after CLI CI found four failures in each Ubuntu and Windows E2E shard 4 job (147 passed each). Its 452+6 local preparation and successful Strict Sandbox (6/6) and Kernel (3/3) checks remain historical; remaining CLI and IDE jobs were canceled, and no release tag was created. The earlier 417+5 result also remains historical. A new exact-source release matrix is required. This candidate is not published, and the original broker evaluation remains unresolved. Require complete exact-source Linux/Windows/macOS CLI CI and Strict Sandbox, OIDC publication and public readback before releasing the paired IDEs. The verified public versions and installation below remain **0.166.131 / 0.37.169 / 0.4.186**; PC/mobile remain independent **v5.0.3.143**.
8
8
 
9
- ## CLI 0.166.129 - change review and Codex compatibility (public, 2026-10-29)
9
+ ## CLI 0.166.131 — current public release (2026-10-29)
10
10
 
11
- Install the current public CLI with `npm i -g chainlesschain@0.166.129 --registry https://registry.npmjs.org`. It pairs with public Open VSX **0.37.167** and JetBrains **0.4.184**. This release adds isolated hermetic change-review context and an experimental Codex App Server support manifest with versioned three-platform probes. Child npm package pins are unchanged; experimental routing remains off by default. Historical task/native acceptance is separate: **34/45** accepted deliverables, **11** unfinished, **NOT_PAID_READY / NOT_ADMITTED / HOLD** retained.
11
+ Install: `npm i -g chainlesschain@0.166.131 --registry https://registry.npmjs.org`. Kernel **0.1.11** was published first. Restart the chat host, then run `cc --version` and `cc doctor`. Public Open VSX **0.37.169** / JetBrains **0.4.186** both recommend CLI **0.166.131**; their downloaded packages match the official CI payloads. Microsoft Marketplace is deferred.
12
+
13
+ This release includes explicit independent Goal `verify:` checks, Memory directory identity and cancellation fixes, MCP subtask and late-connection isolation, Skills download cancellation, rule refresh around compaction, temporary-worktree lifetime fixes and updated Terra capability/billing contracts. Exact-source three-OS CLI / Strict / Kernel checks passed. [OIDC publication](https://github.com/chainlesschain/chainlesschain/actions/runs/40862685540) and [independent public readback](https://github.com/chainlesschain/chainlesschain/actions/runs/40866417524) verified immutable package bytes and signed provenance. [Publication evidence](../../docs/research/cli/evidence/release131-public/publication.json).
14
+
15
+ Cumulative accepted tasks remain **34/45**, with **11** unfinished. Full Memory SLO, semantic quality and both IDE journeys remain separate acceptance work; the current native generation driver does not automatically use `verify:`. **NOT_PAID_READY / NOT_ADMITTED / HOLD** remain. PC/mobile retain their independent **v5.0.3.143** release. Older notes below retain their historical scope.
16
+
17
+ [.131 upgrade guide](https://docs.chainlesschain.com/chainlesschain/cli-ide-update-2026-10-29-131.html) · [Runtime design](https://design.chainlesschain.com/release-runtime-update-2026-10-29-131.html).
18
+
19
+ ## CLI 0.166.130 — previous public release (2026-10-29)
20
+
21
+ Install the verified public package with `npm i -g chainlesschain@0.166.130 --registry https://registry.npmjs.org`. Public Open VSX **0.37.168** and approved JetBrains **0.4.185** both recommend `.130`; restart the chat host and run `cc --version` and `cc doctor`. Microsoft Marketplace remains unpublished; use Open VSX or its versioned VSIX.
22
+
23
+ Model Goal review shares the author request budgets, cancellation and output limits, and binds completion evidence to current workspace bytes. Unknown usage, incomplete workspace coverage and external changes prevent a completion claim. The release also repairs the digest-bound security test map and audit checkout performance without changing assertions or required gates.
24
+
25
+ Immutable source `f3015e799624b81af564aaaa1b7701c0a5c70e26` passed complete Linux, Windows and macOS CLI CI (**72/72 jobs**) and Strict Sandbox. [OIDC publication](https://github.com/chainlesschain/chainlesschain/actions/runs/40798105505) and [independent public readback](https://github.com/chainlesschain/chainlesschain/actions/runs/40799988792) verified registry bytes against CI, signed provenance and ten direct child pins; all thirteen workflow-required child packages were verified public before publication. Both IDEs have successful tagged release gates and verified public downloads at the same source. [Publication evidence](../../docs/research/cli/evidence/release130-public/publication.json) · [Current upgrade guide](../../docs-site/docs/chainlesschain/agent-platform-release.md).
26
+
27
+ Public `.130` pins `@chainlesschain/context-memory-kernel@0.1.10`. Later main-branch kernel `0.1.11`, independent `verify:` Goal checks, Memory disk cancellation/cache changes and Terra capability/billing work are unreleased and require a separate release with child publication and fresh exact-source gates.
28
+
29
+ Historical cumulative accepted deliverables remain **34/45** (ordinary **27/36**, first-run **7/9**), with **11** unfinished. The frozen formal evaluation remains **NOT_RUN (0/36, 0/9)**. Publication and CI add no task acceptance; **NOT_PAID_READY / NOT_ADMITTED / HOLD** remain. [Actual completion table](../../docs/research/cli/verify01-36-plus-9-task-list.md). PC/mobile remain on the separate **v5.0.3.143** release. The versioned notes below retain their historical scope.
30
+
31
+ ## CLI 0.166.129 — change review and Codex compatibility (public, 2026-10-29)
32
+
33
+ This release adds isolated hermetic change-review context and a shared experimental Codex App Server support manifest with versioned three-platform probes. Install the verified public package with `npm i -g chainlesschain@0.166.129 --registry https://registry.npmjs.org`. Public Open VSX **0.37.167** and JetBrains **0.4.184** both recommend `.129`; restart the chat host and check `cc --version` and `cc doctor` after upgrading. Microsoft Marketplace is deferred and remains unpublished; use Open VSX or the versioned VSIX for VS Code.
34
+
35
+ Exact CLI source `fd8a21637ab188dae0c777442d312ae85d420a9b` passed complete Linux, Windows and macOS CLI CI and Strict Sandbox. [OIDC publication](https://github.com/chainlesschain/chainlesschain/actions/runs/40693655894) and [independent public readback](https://github.com/chainlesschain/chainlesschain/actions/runs/40723568902) verified registry bytes against the immutable CI artifact, signed provenance and ten direct child pins. Both IDEs have their own exact-source gates at `800e9cc99711f9f02eb3bbd78eb14600406bdba5` and verified public downloads; JetBrains is approved and listed. [Publication evidence](../../docs/research/cli/evidence/release129-public/publication.json).
36
+
37
+ Child pins are unchanged; experimental routing and `--review-changes` remain off by default. Cumulative accepted deliverables are **34/45**, with **11** unfinished (ordinary **27/36**, first-run **7/9**); this is not a `.129` single-version success rate. **NOT_PAID_READY / NOT_ADMITTED / HOLD** remain. Independent `verify:` Goal checks, the subsequent Memory disk/cache fixes and Terra profile/cache billing are main-branch work, not part of `.129`. PC/mobile remain on the separate **v5.0.3.143** release. [Historical .129 upgrade guide](../../docs-site/docs/chainlesschain/cli-ide-update-2026-10-29.md) · [Current task status](../../docs/research/cli-ide-codex-claude-gap-review-2026-10-27.md). The dated release notes below retain their historical scope.
12
38
 
13
39
  Read-only Git inspections such as `status`, `diff`, `log`, `show` and `rev-parse` now skip workspace snapshots in IDE and CLI agent sessions. Mutations and commands with explicit output files or external drivers retain checkpoints. Conversation persistence and permission checks remain active; end-to-end latency still depends on the repository, model and tools.
14
40
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chainlesschain",
3
- "version": "0.166.130",
3
+ "version": "0.166.132",
4
4
  "description": "CLI for ChainlessChain - install, configure, and manage your personal AI management system",
5
5
  "type": "module",
6
6
  "bin": {
@@ -100,7 +100,7 @@
100
100
  "homepage": "https://www.chainlesschain.com",
101
101
  "dependencies": {
102
102
  "@aws-sdk/client-s3": "^3.700.0",
103
- "@chainlesschain/context-memory-kernel": "0.1.10",
103
+ "@chainlesschain/context-memory-kernel": "0.1.11",
104
104
  "@chainlesschain/core-config": "0.1.2",
105
105
  "@chainlesschain/core-db": "0.1.5",
106
106
  "@chainlesschain/core-env": "0.1.2",
@@ -6,5 +6,5 @@
6
6
  "imageDigest": "sha256:6395a47a5bd9b038303e94a5e93754258c8480dab64635460f973eb93dc6f4d8",
7
7
  "bytes": 778808,
8
8
  "linkage": "static",
9
- "commit": "f3015e799624b81af564aaaa1b7701c0a5c70e26"
9
+ "commit": "772fcdbda85bcf91df95bfced5b476dcf4c74614"
10
10
  }
@@ -6,5 +6,5 @@
6
6
  "imageDigest": "sha256:f162e55ad3f3f72f8a52e9d7f12b5b8db44506c2ca66a14d7d62d5cd4f12498e",
7
7
  "bytes": 934160,
8
8
  "linkage": "static",
9
- "commit": "f3015e799624b81af564aaaa1b7701c0a5c70e26"
9
+ "commit": "772fcdbda85bcf91df95bfced5b476dcf4c74614"
10
10
  }
@@ -1 +1 @@
1
- 636ef9be4d326c555a90db472f7cd35d864ca40f4a7f52065ef95343282e5c4b
1
+ c2afd0e608bef3361de69280f464f07967ca5b7156a03c4b5f10c188fd3e8fcf
@@ -0,0 +1 @@
1
+ import{t as B,_ as Ye,u as We,b as Ze,d as m}from"./index-3RqDry-K.js";import{R as Ge,at as He,A as re,j as ue,aY as de,b3 as Xe,c as et,f as tt}from"./icons-DlxlFL4g.js";import at from"./index-Vo7A4aiN.js";import{o as ot,M as v,R as z,P as r,c as a,N as l,Q as C,S as y,K as b,r as x,L as d,O as c,u as k,F as R,Y as J,f as M,h as lt,a as H}from"./vendor-BXcBOG8b.js";import"./KeyCode-D63Tfrq7.js";import"./omit-DF7mU3yG.js";import"./pickAttrs-Cmt8liJP.js";import"./initDefaultProps-mdL0oeZa.js";import"./motion-ZgVCKcEX.js";import"./raf-Deuc0E8-.js";import"./index-ma-rJkfE.js";import"./index-CsnYp4qF.js";import"./isVisible-C7tPsqfj.js";import"./useState-Dlgl7fUg.js";import"./devWarning-CNIS3FrJ.js";import"./warning-Pq00owYb.js";import"./compact-item-Dn2ktVuj.js";import"./createContext-XTreuyqp.js";import"./Compact-DYs0a9k7.js";import"./_getTag-BVc6NQ_K.js";import"./styleChecker-DMybAFsA.js";import"./zoom-C8rAdf81.js";import"./ActionButton-nhMNWW_d.js";import"./vnode-DB3JBusp.js";const pe=Object.freeze(["P0","P1","P2","P3"]),st=Object.freeze(["open","acknowledged","resolved","closed"]);function g(i,n=0){return typeof i=="number"&&Number.isFinite(i)?i:n}function it(i,n=0){if(!i||typeof i!="object")return null;const t=i.id||"";return t?{key:t,id:t,anomalyMetric:i.anomalyMetric??i.anomaly_metric??"",severity:String(i.severity||"P3"),status:String(i.status||"open").toLowerCase(),description:String(i.description||""),anomalyData:i.anomalyData??i.anomaly_data??null,remediationId:i.remediationId??i.remediation_id??null,postmortem:i.postmortem||"",acknowledgedAt:i.acknowledgedAt??i.acknowledged_at??null,resolvedAt:i.resolvedAt??i.resolved_at??null,createdAt:i.createdAt??i.created_at??null,_idx:n}:null}function nt(i){const n=B(i);return Array.isArray(n)?n.map(it).filter(Boolean):[]}function rt(i,n=0){if(!i||typeof i!="object")return null;const t=i.id||"";if(!t)return null;const _=i.enabled;let S=!1;return _===!0||_===1||_==="1"?S=!0:_===!1||_===0||_==="0"?S=!1:S=!!_,{key:t,id:t,name:String(i.name||""),triggerCondition:i.triggerCondition??i.trigger_condition??"",steps:i.steps||"",enabled:S,successCount:g(i.successCount??i.success_count,0),failureCount:g(i.failureCount??i.failure_count,0),createdAt:i.createdAt??i.created_at??null,_idx:n}}function ut(i){const n=B(i);return Array.isArray(n)?n.map(rt).filter(Boolean):[]}function dt(i,n=0){if(!i||typeof i!="object")return null;const t=i.metricName??i.metric_name??"";return t?{key:t,metricName:t,mean:g(i.mean,0),stdDev:g(i.stdDev??i.std_dev,0),q1:g(i.q1,0),q3:g(i.q3,0),sampleCount:g(i.sampleCount??i.sample_count,0),updatedAt:i.updatedAt??i.updated_at??null,_idx:n}:null}function pt(i){const n=B(i);return Array.isArray(n)?n.map(dt).filter(Boolean):[]}function ct(i){const n=B(i);return!n||typeof n!="object"||Array.isArray(n)?null:{anomaly:!!n.anomaly,reason:n.reason||null,metricName:n.metricName??n.metric_name??"",value:g(n.value,0),algorithm:String(n.algorithm||""),score:g(n.score,0),threshold:g(n.threshold,0),baseline:n.baseline?{mean:g(n.baseline.mean,0),stdDev:g(n.baseline.stdDev??n.baseline.std_dev,0),q1:g(n.baseline.q1,0),q3:g(n.baseline.q3,0)}:null,incidentId:n.incidentId??n.incident_id??null,severity:n.severity||null}}const mt={incidents:{total:0,bySeverity:{P0:0,P1:0,P2:0,P3:0},byStatus:{open:0,acknowledged:0,resolved:0,closed:0},avgResolveMs:0},playbooks:{total:0,enabled:0,totalSuccess:0,totalFailure:0},baselines:{total:0,metrics:[]}};function yt(i){const n=JSON.parse(JSON.stringify(mt)),t=B(i);if(!t||typeof t!="object"||Array.isArray(t))return n;if(t.incidents&&typeof t.incidents=="object"){if(n.incidents.total=g(t.incidents.total,0),n.incidents.avgResolveMs=g(t.incidents.avgResolveMs??t.incidents.avg_resolve_ms,0),t.incidents.bySeverity&&typeof t.incidents.bySeverity=="object")for(const _ of Object.keys(n.incidents.bySeverity))n.incidents.bySeverity[_]=g(t.incidents.bySeverity[_],0);if(t.incidents.byStatus&&typeof t.incidents.byStatus=="object")for(const _ of Object.keys(n.incidents.byStatus))n.incidents.byStatus[_]=g(t.incidents.byStatus[_],0)}return t.playbooks&&typeof t.playbooks=="object"&&(n.playbooks.total=g(t.playbooks.total,0),n.playbooks.enabled=g(t.playbooks.enabled,0),n.playbooks.totalSuccess=g(t.playbooks.totalSuccess??t.playbooks.total_success,0),n.playbooks.totalFailure=g(t.playbooks.totalFailure??t.playbooks.total_failure,0)),t.baselines&&typeof t.baselines=="object"&&(n.baselines.total=g(t.baselines.total,0),Array.isArray(t.baselines.metrics)&&(n.baselines.metrics=[...t.baselines.metrics])),n}function ce(i){if(i==null||i==="")return"—";const n=typeof i=="number"?new Date(i):new Date(String(i));return isNaN(n.getTime())?String(i):n.toLocaleString("zh-CN",{hour12:!1})}const ft={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},vt={class:"page-title"},bt={class:"page-sub"},gt={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},kt={class:"filter-bar"},_t={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},$t={key:1,style:{color:"var(--text-muted)"}},ht={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Ct={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},xt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},St={style:{color:"var(--text-primary)","font-weight":"500"}},wt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px","font-family":"monospace"}},zt={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},At={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Ft={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},Pt={style:{color:"#1677ff"}},Rt={style:{color:"var(--text-secondary)","margin-left":"4px","font-size":"11px"}},jt={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},It={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Lt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Nt={key:0,style:{color:"var(--text-secondary)","font-size":"12px","margin-top":"8px"}},Ot={key:1,style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Tt={key:2,style:{"margin-top":"8px"}},Ut={__name:"AIOps",setup(i){const n=We(),{t}=Ze(),_=x(!1),S=x(!1),X=x(!1),me=x([]),ye=x([]),ee=x([]),A=x({incidents:{total:0,bySeverity:{P0:0,P1:0,P2:0,P3:0},byStatus:{open:0,acknowledged:0,resolved:0,closed:0},avgResolveMs:0},playbooks:{total:0,enabled:0,totalSuccess:0,totalFailure:0},baselines:{total:0,metrics:[]}}),K=x("incidents"),q=x(""),D=x(""),V=x(!1),Q=x(!1),Y=x(!1),te=x(!1),w=H({severity:"P3",metric:"",description:""}),$=H({name:"",triggerJson:"",stepsJson:""}),I=H({metric:"",values:""}),F=H({metric:"",value:null,algorithm:"z_score"}),h=x(null),xe=M(()=>[{title:t("aiops.incidentCols.severity"),key:"severity",width:"90px"},{title:t("aiops.incidentCols.metric"),key:"metric",width:"160px"},{title:t("aiops.incidentCols.description"),key:"description"},{title:t("aiops.incidentCols.status"),key:"status",width:"100px"},{title:t("aiops.incidentCols.createdAt"),key:"createdAt",width:"160px"},{title:t("aiops.incidentCols.action"),key:"action",width:"220px"}]),Se=M(()=>[{title:t("aiops.playbookCols.name"),key:"name"},{title:t("aiops.playbookCols.enabled"),key:"enabled",width:"80px"},{title:t("aiops.playbookCols.stats"),key:"stats",width:"180px"},{title:t("aiops.playbookCols.createdAt"),key:"createdAt",width:"160px"},{title:t("aiops.playbookCols.action"),key:"action",width:"160px"}]),we=M(()=>[{title:t("aiops.baselineCols.metric"),key:"metric"},{title:t("aiops.baselineCols.mean"),key:"mean",width:"180px"},{title:t("aiops.baselineCols.iqr"),key:"iqr",width:"180px"},{title:t("aiops.baselineCols.sampleCount"),key:"sampleCount",width:"90px"},{title:t("aiops.baselineCols.updatedAt"),key:"updatedAt",width:"160px"}]),ze=M(()=>A.value.incidents.byStatus.open+A.value.incidents.byStatus.acknowledged),Ae=M(()=>{let e=me.value;return q.value&&(e=e.filter(o=>o.severity===q.value)),D.value&&(e=e.filter(o=>o.status===D.value)),e});function fe(e){const o=`aiops.statusLabels.${e}`,u=t(o);return u===o?e:u}function Fe(e){return{open:"red",acknowledged:"orange",resolved:"cyan",closed:"default"}[e]||"default"}function ae(e){return{P0:"red",P1:"volcano",P2:"orange",P3:"gold"}[e]||"default"}function Pe(e){const o=`aiops.reasonLabels.${e}`,u=t(o);return u===o?e:u}function ve(e,o){return e?e.length>o?e.slice(0,o)+"...":e:""}function Re(e){return!e||e<=0?t("aiops.duration.none"):e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:e<36e5?`${(e/6e4).toFixed(1)}min`:`${(e/36e5).toFixed(1)}h`}function je({key:e}){e==="incident"?V.value=!0:e==="playbook"?Q.value=!0:e==="baseline"?Y.value=!0:e==="detect"&&(h.value=null,te.value=!0)}async function j(){_.value=!0;try{const[e,o,u,f]=await Promise.all([n.execute("ops incidents --limit 200 --json",1e4).catch(()=>({output:""})),n.execute("ops playbooks --limit 200 --json",1e4).catch(()=>({output:""})),n.execute("ops baselines --json",1e4).catch(()=>({output:""})),n.execute("ops stats --json",8e3).catch(()=>({output:""}))]);me.value=nt(e.output),ye.value=ut(o.output),ee.value=pt(u.output),A.value=yt(f.output)}catch(e){m.error(t("aiops.msg.loadFailed")+": "+(e?.message||e))}finally{_.value=!1}}async function Ie(){if(!w.description.trim()){m.warning(t("aiops.msg.descEmpty"));return}S.value=!0;try{const e=[`ops incident-create --severity ${w.severity}`];w.metric.trim()&&e.push(`--metric "${w.metric.trim().replace(/"/g,'\\"')}"`),e.push(`--description "${w.description.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:o}=await n.execute(e.join(" "),1e4);if(/error|失败/i.test(o)&&!/"incidentId"/.test(o)){m.error(t("aiops.msg.createFailed")+": "+o.slice(0,120));return}m.success(t("aiops.msg.incidentCreated")),V.value=!1,ge(),await j()}catch(e){m.error(t("aiops.msg.createFailed")+": "+(e?.message||e))}finally{S.value=!1}}async function Le(){if(!$.name.trim()){m.warning(t("aiops.msg.playbookNameEmpty"));return}for(const[e,o]of[[$.triggerJson,"triggerLabel"],[$.stepsJson,"stepsLabel"]])if(e.trim())try{JSON.parse(e)}catch{m.warning(t("aiops.msg.jsonInvalid",{label:t(`aiops.msg.${o}`)}));return}S.value=!0;try{const e=[`ops playbook-create --name "${$.name.trim().replace(/"/g,'\\"')}"`];$.triggerJson.trim()&&e.push(`--trigger '${$.triggerJson.trim().replace(/'/g,"'\\''")}'`),$.stepsJson.trim()&&e.push(`--steps '${$.stepsJson.trim().replace(/'/g,"'\\''")}'`),e.push("--json");const{output:o}=await n.execute(e.join(" "),1e4);if(/error|失败/i.test(o)&&!/"playbookId"/.test(o)){m.error(t("aiops.msg.createFailed")+": "+o.slice(0,120));return}m.success(t("aiops.msg.playbookCreated")),Q.value=!1,ke(),K.value="playbooks",await j()}catch(e){m.error(t("aiops.msg.createFailed")+": "+(e?.message||e))}finally{S.value=!1}}async function Ne(){const e=I.metric.trim();if(!e){m.warning(t("aiops.msg.metricEmpty"));return}const o=I.values.split(/[\s,]+/).map(u=>u.trim()).filter(Boolean).map(u=>Number(u));if(o.length===0||o.some(u=>!Number.isFinite(u))){m.warning(t("aiops.msg.valuesInvalid"));return}S.value=!0;try{const u=`ops baseline-update "${e.replace(/"/g,'\\"')}" --values ${o.join(",")} --json`,{output:f}=await n.execute(u,1e4);if(/error|失败/i.test(f)&&!/"updated"/.test(f)){m.error(t("aiops.msg.baselineUpdateFailed")+": "+f.slice(0,120));return}m.success(t("aiops.msg.baselineUpdated",{n:o.length})),Y.value=!1,_e(),K.value="baselines",await j()}catch(u){m.error(t("aiops.msg.baselineUpdateFailed")+": "+(u?.message||u))}finally{S.value=!1}}async function Oe(){if(!F.metric||F.value==null){m.warning(t("aiops.msg.detectFieldsEmpty"));return}X.value=!0,h.value=null;try{const e=`ops detect "${F.metric.replace(/"/g,'\\"')}" ${F.value} --algorithm ${F.algorithm} --json`,{output:o}=await n.execute(e,8e3),u=ct(o);if(!u){m.error(t("aiops.msg.detectFailed")+": "+o.slice(0,120));return}h.value=u,u.anomaly&&(m.warning(t("aiops.msg.detectAnomaly",{severity:u.severity||"P3"})),j())}catch(e){m.error(t("aiops.msg.detectFailed")+": "+(e?.message||e))}finally{X.value=!1}}async function Te(e){await oe(e,"incident-ack",t("aiops.msg.incidentAcked"))}async function Ue(e){await oe(e,"incident-resolve",t("aiops.msg.incidentResolved"))}async function qe(e){await oe(e,"incident-close",t("aiops.msg.incidentClosed"))}async function oe(e,o,u){try{const{output:f}=await n.execute(`ops ${o} ${e.id} --json`,8e3);if(/error|失败|invalid/i.test(f)&&!/"acknowledged"|"resolved"|"closed"/.test(f)){m.error(t("aiops.msg.incidentTransitionFailed")+": "+f.slice(0,120));return}m.success(u),await j()}catch(f){m.error(t("aiops.msg.incidentTransitionFailed")+": "+(f?.message||f))}}async function De(e){try{const{output:o}=await n.execute(`ops postmortem ${e.id}`,12e3);at.info({title:t("aiops.msg.postmortemTitle",{id:e.id.slice(0,8)}),width:720,content:()=>lt("pre",{style:"white-space: pre-wrap; max-height: 60vh; overflow: auto; font-size: 12px; padding: 8px; background: rgba(0,0,0,.04); border-radius: 4px;"},o||t("aiops.msg.postmortemEmpty"))})}catch(o){m.error(t("aiops.msg.postmortemFailed")+": "+(o?.message||o))}}async function Ee(e,o){const u=o?"on":"off";try{const{output:f}=await n.execute(`ops playbook-toggle ${e.id} ${u} --json`,8e3);if(/error|失败/i.test(f)&&!/"enabled"/.test(f)){m.error(t("aiops.msg.playbookToggleFailed")+": "+f.slice(0,120));return}m.success(t(o?"aiops.msg.playbookEnabled":"aiops.msg.playbookDisabled")),await j()}catch(f){m.error(t("aiops.msg.playbookToggleFailed")+": "+(f?.message||f))}}async function be(e,o){try{const{output:u}=await n.execute(`ops playbook-record ${e.id} ${o} --json`,8e3);if(/error|失败/i.test(u)&&!/"recorded"/.test(u)){m.error(t("aiops.msg.playbookRecordFailed")+": "+u.slice(0,120));return}m.success(t(o==="success"?"aiops.msg.playbookRecordSuccess":"aiops.msg.playbookRecordFailure")),await j()}catch(u){m.error(t("aiops.msg.playbookRecordFailed")+": "+(u?.message||u))}}function ge(){w.severity="P3",w.metric="",w.description=""}function ke(){$.name="",$.triggerJson="",$.stepsJson=""}function _e(){I.metric="",I.values=""}return ot(j),(e,o)=>{const u=b("a-button"),f=b("a-menu-item"),Je=b("a-menu"),Me=b("a-dropdown"),$e=b("a-space"),T=b("a-statistic"),L=b("a-card"),E=b("a-col"),Be=b("a-row"),N=b("a-tag"),U=b("a-radio-button"),le=b("a-radio-group"),se=b("a-table"),ie=b("a-tab-pane"),Ke=b("a-switch"),Ve=b("a-tabs"),he=b("a-select-option"),Ce=b("a-select"),P=b("a-form-item"),ne=b("a-input"),W=b("a-textarea"),Z=b("a-form"),G=b("a-modal"),Qe=b("a-input-number");return d(),v("div",null,[z("div",ft,[z("div",null,[z("h2",vt,r(e.$t("aiops.title")),1),z("p",bt,r(e.$t("aiops.subtitle")),1)]),a($e,null,{default:l(()=>[a(u,{loading:_.value,onClick:j},{icon:l(()=>[a(k(Ge))]),default:l(()=>[c(" "+r(e.$t("aiops.refresh")),1)]),_:1},8,["loading"]),a(Me,{trigger:["click"]},{overlay:l(()=>[a(Je,{onClick:je},{default:l(()=>[a(f,{key:"incident"},{default:l(()=>[a(k(re)),c(" "+r(e.$t("aiops.actions.incident")),1)]),_:1}),a(f,{key:"playbook"},{default:l(()=>[a(k(ue)),c(" "+r(e.$t("aiops.actions.playbook")),1)]),_:1}),a(f,{key:"baseline"},{default:l(()=>[a(k(de)),c(" "+r(e.$t("aiops.actions.baseline")),1)]),_:1}),a(f,{key:"detect"},{default:l(()=>[a(k(Xe)),c(" "+r(e.$t("aiops.actions.detect")),1)]),_:1})]),_:1})]),default:l(()=>[a(u,{type:"primary"},{icon:l(()=>[a(k(He))]),default:l(()=>[c(" "+r(e.$t("aiops.newDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Be,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(E,{xs:12,sm:8,lg:5},{default:l(()=>[a(L,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.incidents"),value:A.value.incidents.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(k(re))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(E,{xs:12,sm:8,lg:5},{default:l(()=>[a(L,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.pending"),value:A.value.incidents.byStatus.open+A.value.incidents.byStatus.acknowledged,"value-style":{color:ze.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(k(et))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(E,{xs:12,sm:8,lg:5},{default:l(()=>[a(L,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.playbooks"),value:A.value.playbooks.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(k(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(E,{xs:12,sm:8,lg:5},{default:l(()=>[a(L,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.enabled"),value:A.value.playbooks.enabled,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(k(tt))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(E,{xs:24,sm:8,lg:4},{default:l(()=>[a(L,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.baselines"),value:A.value.baselines.total,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(k(de))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),A.value.incidents.total>0?(d(),C(L,{key:0,title:e.$t("aiops.severityCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:l(()=>[a($e,{size:[12,8],wrap:""},{default:l(()=>[(d(!0),v(R,null,J(k(pe),s=>(d(),C(N,{key:s,color:ae(s),style:{"font-size":"13px",padding:"2px 10px"}},{default:l(()=>[c(r(s)+": "+r(A.value.incidents.bySeverity[s]||0),1)]),_:2},1032,["color"]))),128)),z("span",gt,r(e.$t("aiops.avgResolveLabel",{time:Re(A.value.incidents.avgResolveMs)})),1)]),_:1})]),_:1},8,["title"])):y("",!0),a(Ve,{activeKey:K.value,"onUpdate:activeKey":o[2]||(o[2]=s=>K.value=s),class:"aiops-tabs"},{default:l(()=>[a(ie,{key:"incidents",tab:e.$t("aiops.tabs.incidents")},{default:l(()=>[z("div",kt,[a(le,{value:q.value,"onUpdate:value":o[0]||(o[0]=s=>q.value=s),size:"small","button-style":"solid"},{default:l(()=>[a(U,{value:""},{default:l(()=>[c(r(e.$t("aiops.filter.all")),1)]),_:1}),(d(!0),v(R,null,J(k(pe),s=>(d(),C(U,{key:s,value:s},{default:l(()=>[c(r(s),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(le,{value:D.value,"onUpdate:value":o[1]||(o[1]=s=>D.value=s),size:"small"},{default:l(()=>[a(U,{value:""},{default:l(()=>[c(r(e.$t("aiops.filter.allStatuses")),1)]),_:1}),(d(!0),v(R,null,J(k(st),s=>(d(),C(U,{key:s,value:s},{default:l(()=>[c(r(fe(s)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(se,{columns:xe.value,"data-source":Ae.value,pagination:{pageSize:20,showTotal:s=>e.$t("aiops.table.totalSuffix",{n:s})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:s,record:p})=>[s.key==="severity"?(d(),C(N,{key:0,color:ae(p.severity),style:{"font-weight":"600"}},{default:l(()=>[c(r(p.severity),1)]),_:2},1032,["color"])):y("",!0),s.key==="metric"?(d(),v(R,{key:1},[p.anomalyMetric?(d(),v("span",_t,r(p.anomalyMetric),1)):(d(),v("span",$t,"—"))],64)):y("",!0),s.key==="description"?(d(),v("span",ht,r(ve(p.description,80)||"—"),1)):y("",!0),s.key==="status"?(d(),C(N,{key:3,color:Fe(p.status)},{default:l(()=>[c(r(fe(p.status)),1)]),_:2},1032,["color"])):y("",!0),s.key==="createdAt"?(d(),v("span",Ct,r(k(ce)(p.createdAt)),1)):y("",!0),s.key==="action"?(d(),v(R,{key:5},[p.status==="open"?(d(),C(u,{key:0,size:"small",type:"link",onClick:O=>Te(p)},{default:l(()=>[c(r(e.$t("aiops.incidentActions.ack")),1)]),_:1},8,["onClick"])):y("",!0),p.status==="open"||p.status==="acknowledged"?(d(),C(u,{key:1,size:"small",type:"link",onClick:O=>Ue(p)},{default:l(()=>[c(r(e.$t("aiops.incidentActions.resolve")),1)]),_:1},8,["onClick"])):y("",!0),p.status==="resolved"?(d(),C(u,{key:2,size:"small",type:"link",onClick:O=>qe(p)},{default:l(()=>[c(r(e.$t("aiops.incidentActions.close")),1)]),_:1},8,["onClick"])):y("",!0),p.status==="resolved"||p.status==="closed"?(d(),C(u,{key:3,size:"small",type:"link",onClick:O=>De(p)},{default:l(()=>[c(r(e.$t("aiops.incidentActions.postmortem")),1)]),_:1},8,["onClick"])):y("",!0)],64)):y("",!0)]),emptyText:l(()=>[z("div",xt,[a(k(re),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),c(" "+r(q.value||D.value?e.$t("aiops.table.incidentEmptyFiltered"):e.$t("aiops.table.incidentEmpty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ie,{key:"playbooks",tab:e.$t("aiops.tabs.playbooks")},{default:l(()=>[a(se,{columns:Se.value,"data-source":ye.value,pagination:{pageSize:20,showTotal:s=>e.$t("aiops.table.totalSuffix",{n:s})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:s,record:p})=>[s.key==="name"?(d(),v(R,{key:0},[z("span",St,r(p.name),1),p.triggerCondition?(d(),v("div",wt,r(ve(p.triggerCondition,80)),1)):y("",!0)],64)):y("",!0),s.key==="enabled"?(d(),C(Ke,{key:1,checked:p.enabled,size:"small",onChange:O=>Ee(p,O)},null,8,["checked","onChange"])):y("",!0),s.key==="stats"?(d(),v(R,{key:2},[a(N,{color:"green",style:{"font-size":"11px"}},{default:l(()=>[c(r(e.$t("aiops.table.successCount",{n:p.successCount})),1)]),_:2},1024),p.failureCount>0?(d(),C(N,{key:0,color:"red",style:{"font-size":"11px","margin-left":"4px"}},{default:l(()=>[c(r(e.$t("aiops.table.failureCount",{n:p.failureCount})),1)]),_:2},1024)):y("",!0)],64)):y("",!0),s.key==="createdAt"?(d(),v("span",zt,r(k(ce)(p.createdAt)),1)):y("",!0),s.key==="action"?(d(),v(R,{key:4},[a(u,{size:"small",type:"link",onClick:O=>be(p,"success")},{default:l(()=>[c(r(e.$t("aiops.playbookActions.success")),1)]),_:1},8,["onClick"]),a(u,{size:"small",type:"link",danger:"",onClick:O=>be(p,"failure")},{default:l(()=>[c(r(e.$t("aiops.playbookActions.failure")),1)]),_:1},8,["onClick"])],64)):y("",!0)]),emptyText:l(()=>[z("div",At,[a(k(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),c(" "+r(e.$t("aiops.table.playbookEmpty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ie,{key:"baselines",tab:e.$t("aiops.tabs.baselines")},{default:l(()=>[a(se,{columns:we.value,"data-source":ee.value,pagination:{pageSize:20,showTotal:s=>e.$t("aiops.table.totalSuffix",{n:s})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:s,record:p})=>[s.key==="metric"?(d(),v("span",Ft,r(p.metricName),1)):y("",!0),s.key==="mean"?(d(),v(R,{key:1},[z("span",Pt,r(p.mean),1),z("span",Rt,"σ "+r(p.stdDev),1)],64)):y("",!0),s.key==="iqr"?(d(),v("span",jt," Q1 "+r(p.q1)+" / Q3 "+r(p.q3),1)):y("",!0),s.key==="sampleCount"?(d(),C(N,{key:3,color:"blue",style:{"font-size":"11px"}},{default:l(()=>[c(r(p.sampleCount),1)]),_:2},1024)):y("",!0),s.key==="updatedAt"?(d(),v("span",It,r(k(ce)(p.updatedAt)),1)):y("",!0)]),emptyText:l(()=>[z("div",Lt,[a(k(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),c(" "+r(e.$t("aiops.table.baselineEmpty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(G,{open:V.value,"onUpdate:open":o[6]||(o[6]=s=>V.value=s),title:e.$t("aiops.incident_modal.title"),"confirm-loading":S.value,width:520,"ok-text":e.$t("aiops.incident_modal.ok"),"cancel-text":e.$t("aiops.incident_modal.cancel"),onOk:Ie,onCancel:ge},{default:l(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.incident_modal.severityLabel")},{default:l(()=>[a(Ce,{value:w.severity,"onUpdate:value":o[3]||(o[3]=s=>w.severity=s)},{default:l(()=>[(d(!0),v(R,null,J(k(pe),s=>(d(),C(he,{key:s,value:s},{default:l(()=>[c(r(s),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.incident_modal.metricLabel")},{default:l(()=>[a(ne,{value:w.metric,"onUpdate:value":o[4]||(o[4]=s=>w.metric=s),placeholder:e.$t("aiops.incident_modal.metricPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.incident_modal.descLabel"),required:""},{default:l(()=>[a(W,{value:w.description,"onUpdate:value":o[5]||(o[5]=s=>w.description=s),"auto-size":{minRows:3,maxRows:6}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(G,{open:Q.value,"onUpdate:open":o[10]||(o[10]=s=>Q.value=s),title:e.$t("aiops.playbook_modal.title"),"confirm-loading":S.value,width:540,"ok-text":e.$t("aiops.playbook_modal.ok"),"cancel-text":e.$t("aiops.playbook_modal.cancel"),onOk:Le,onCancel:ke},{default:l(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.playbook_modal.nameLabel"),required:""},{default:l(()=>[a(ne,{value:$.name,"onUpdate:value":o[7]||(o[7]=s=>$.name=s),placeholder:e.$t("aiops.playbook_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.playbook_modal.triggerLabel")},{default:l(()=>[a(W,{value:$.triggerJson,"onUpdate:value":o[8]||(o[8]=s=>$.triggerJson=s),placeholder:e.$t("aiops.playbook_modal.triggerPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.playbook_modal.stepsLabel")},{default:l(()=>[a(W,{value:$.stepsJson,"onUpdate:value":o[9]||(o[9]=s=>$.stepsJson=s),placeholder:e.$t("aiops.playbook_modal.stepsPlaceholder"),"auto-size":{minRows:3,maxRows:6}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(G,{open:Y.value,"onUpdate:open":o[13]||(o[13]=s=>Y.value=s),title:e.$t("aiops.baseline_modal.title"),"confirm-loading":S.value,width:500,"ok-text":e.$t("aiops.baseline_modal.ok"),"cancel-text":e.$t("aiops.baseline_modal.cancel"),onOk:Ne,onCancel:_e},{default:l(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.baseline_modal.metricLabel"),required:""},{default:l(()=>[a(ne,{value:I.metric,"onUpdate:value":o[11]||(o[11]=s=>I.metric=s),placeholder:e.$t("aiops.baseline_modal.metricPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.baseline_modal.valuesLabel"),required:""},{default:l(()=>[a(W,{value:I.values,"onUpdate:value":o[12]||(o[12]=s=>I.values=s),placeholder:e.$t("aiops.baseline_modal.valuesPlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(G,{open:te.value,"onUpdate:open":o[17]||(o[17]=s=>te.value=s),title:e.$t("aiops.detect_modal.title"),"confirm-loading":X.value,width:500,"ok-text":e.$t("aiops.detect_modal.ok"),"cancel-text":e.$t("aiops.detect_modal.cancel"),onOk:Oe},{default:l(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.detect_modal.metricLabel"),required:""},{default:l(()=>[a(Ce,{value:F.metric,"onUpdate:value":o[14]||(o[14]=s=>F.metric=s),"show-search":"",placeholder:e.$t("aiops.detect_modal.metricPlaceholder")},{default:l(()=>[(d(!0),v(R,null,J(ee.value,s=>(d(),C(he,{key:s.metricName,value:s.metricName},{default:l(()=>[c(r(e.$t("aiops.detect_modal.metricOptionLabel",{name:s.metricName,count:s.sampleCount})),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.detect_modal.valueLabel"),required:""},{default:l(()=>[a(Qe,{value:F.value,"onUpdate:value":o[15]||(o[15]=s=>F.value=s),style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.detect_modal.algorithmLabel")},{default:l(()=>[a(le,{value:F.algorithm,"onUpdate:value":o[16]||(o[16]=s=>F.algorithm=s)},{default:l(()=>[a(U,{value:"z_score"},{default:l(()=>[...o[18]||(o[18]=[c("Z-Score (3σ)",-1)])]),_:1}),a(U,{value:"iqr"},{default:l(()=>[...o[19]||(o[19]=[c("IQR (1.5×)",-1)])]),_:1})]),_:1},8,["value"])]),_:1},8,["label"])]),_:1}),h.value?(d(),C(L,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(T,{title:e.$t("aiops.detect_modal.resultTitle"),value:h.value.anomaly?e.$t("aiops.detect_modal.anomaly"):e.$t("aiops.detect_modal.normal"),"value-style":{color:h.value.anomaly?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),h.value.reason&&!h.value.anomaly?(d(),v("div",Nt,r(e.$t("aiops.detect_modal.reasonLine",{reason:Pe(h.value.reason)})),1)):y("",!0),h.value.baseline?(d(),v("div",Ot,[z("div",null,r(e.$t("aiops.detect_modal.scoreLine",{score:h.value.score,threshold:h.value.threshold})),1),z("div",null,r(e.$t("aiops.detect_modal.baselineLine",{mean:h.value.baseline.mean,stdDev:h.value.baseline.stdDev})),1)])):y("",!0),h.value.incidentId?(d(),v("div",Tt,[a(N,{color:ae(h.value.severity)},{default:l(()=>[c(r(e.$t("aiops.detect_modal.incidentCreated",{severity:h.value.severity})),1)]),_:1},8,["color"])])):y("",!0)]),_:1})):y("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},ua=Ye(Ut,[["__scopeId","data-v-ecfcab22"]]);export{ua as default};
@@ -0,0 +1 @@
1
+ .page-title[data-v-ecfcab22]{margin:0;color:var(--text-primary);font-size:22px;font-weight:600}.page-sub[data-v-ecfcab22]{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.aiops-tabs[data-v-ecfcab22] .ant-tabs-nav{margin-bottom:16px}.filter-bar[data-v-ecfcab22]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
@@ -1 +1 @@
1
- import{O as b,f as i,v as p}from"./index-k7QsBwyo.js";import{f as m,s as r,d as O,o as y,c as P}from"./vendor-Bn1JzzAn.js";import{B as R,c as x}from"./index-CLQjdKmE.js";const A=()=>{const n=r(!1);return m(()=>{n.value=!0}),n},D={type:{type:String},actionFn:Function,close:Function,autofocus:Boolean,prefixCls:String,buttonProps:p(),emitEvent:Boolean,quitOnNullishReturnValue:Boolean};function d(n){return!!(n&&n.then)}const j=O({compatConfig:{MODE:3},name:"ActionButton",props:D,setup(n,g){let{slots:B}=g;const l=r(!1),c=r(),a=r(!1);let f;const v=A();y(()=>{n.autofocus&&(f=setTimeout(()=>{var e,t;return(t=(e=b(c.value))===null||e===void 0?void 0:e.focus)===null||t===void 0?void 0:t.call(e)}))}),m(()=>{clearTimeout(f)});const u=function(){for(var e,t=arguments.length,o=new Array(t),s=0;s<t;s++)o[s]=arguments[s];(e=n.close)===null||e===void 0||e.call(n,...o)},h=e=>{d(e)&&(a.value=!0,e.then(function(){v.value||(a.value=!1),u(...arguments),l.value=!1},t=>(v.value||(a.value=!1),l.value=!1,Promise.reject(t))))},C=e=>{const{actionFn:t}=n;if(l.value)return;if(l.value=!0,!t){u();return}let o;if(n.emitEvent){if(o=t(e),n.quitOnNullishReturnValue&&!d(o)){l.value=!1,u(e);return}}else if(t.length)o=t(n.close),l.value=!1;else if(o=t(),!o){u();return}h(o)};return()=>{const{type:e,prefixCls:t,buttonProps:o}=n;return P(R,i(i(i({},x(e)),{},{onClick:C,loading:a.value,prefixCls:t},o),{},{ref:c}),B)}}});export{j as A};
1
+ import{O as b,f as i,v as p}from"./index-3RqDry-K.js";import{B as O,c as y}from"./index-ma-rJkfE.js";import{e as m,s as r,d as P,o as R,c as x}from"./vendor-BXcBOG8b.js";const A=()=>{const n=r(!1);return m(()=>{n.value=!0}),n},D={type:{type:String},actionFn:Function,close:Function,autofocus:Boolean,prefixCls:String,buttonProps:p(),emitEvent:Boolean,quitOnNullishReturnValue:Boolean};function d(n){return!!(n&&n.then)}const j=P({compatConfig:{MODE:3},name:"ActionButton",props:D,setup(n,g){let{slots:B}=g;const l=r(!1),c=r(),a=r(!1);let f;const v=A();R(()=>{n.autofocus&&(f=setTimeout(()=>{var e,t;return(t=(e=b(c.value))===null||e===void 0?void 0:e.focus)===null||t===void 0?void 0:t.call(e)}))}),m(()=>{clearTimeout(f)});const u=function(){for(var e,t=arguments.length,o=new Array(t),s=0;s<t;s++)o[s]=arguments[s];(e=n.close)===null||e===void 0||e.call(n,...o)},h=e=>{d(e)&&(a.value=!0,e.then(function(){v.value||(a.value=!1),u(...arguments),l.value=!1},t=>(v.value||(a.value=!1),l.value=!1,Promise.reject(t))))},C=e=>{const{actionFn:t}=n;if(l.value)return;if(l.value=!0,!t){u();return}let o;if(n.emitEvent){if(o=t(e),n.quitOnNullishReturnValue&&!d(o)){l.value=!1,u(e);return}}else if(t.length)o=t(n.close),l.value=!1;else if(o=t(),!o){u();return}h(o)};return()=>{const{type:e,prefixCls:t,buttonProps:o}=n;return x(O,i(i(i({},y(e)),{},{onClick:C,loading:a.value,prefixCls:t},o),{},{ref:c}),B)}}});export{j as A};
@@ -0,0 +1,3 @@
1
+ import{_ as fe,b as _e,u as ge,t as xe,d as I}from"./index-3RqDry-K.js";import{R as ee,a6 as te,i as ae,aD as Te,w as he,aR as oe}from"./icons-DlxlFL4g.js";import{w as be,o as we,M as v,R,P as r,u as n,c as a,N as o,r as g,K as x,a as Q,L as c,O as y,Q as z,S as T,F as Ce,f as W}from"./vendor-BXcBOG8b.js";const Se={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ie={class:"page-title"},ze={class:"page-sub"},Re={style:{display:"flex","align-items":"center",gap:"12px"}},Me={key:0,style:{"text-align":"center",padding:"60px"}},Oe={key:1,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},je={key:2,style:{color:"#faad14"}},Fe={key:3,style:{color:"var(--text-secondary)"}},Ne={key:0,style:{"text-align":"center",padding:"60px"}},Ue={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},Ae={key:2,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Be={key:3,style:{color:"#faad14"}},Le={key:4,style:{color:"var(--text-secondary)"}},De={key:0,style:{"text-align":"center",padding:"40px"}},Pe={key:1,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Je={key:0,style:{"text-align":"center",padding:"40px"}},$e={__name:"Analytics",setup(Ee){const{t:l}=_e(),C=ge(),M=g("all"),U=g(!1),A=g(!1),B=g(!1),L=g(!1),D=g(!1),P=g(!1),J=g(20),f=Q({totalCalls:0,totalTokens:0,totalCost:0,avgResponseTime:0}),O=g([]),j=g([]),_=Q({entries:0,hits:0,tokensSaved:0,expired:0}),F=g(!1),b=Q({totalCalls:0,inputTokens:0,outputTokens:0,totalTokens:0}),q=g([]),se=W(()=>[{title:"Provider",key:"provider",dataIndex:"provider",width:"120px"},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0},{title:l("analytics.sessionUsageColumns.calls"),key:"calls",dataIndex:"calls",width:"100px",sorter:(e,t)=>(e.calls||0)-(t.calls||0)},{title:"Input",key:"inputTokens",dataIndex:"inputTokens",width:"110px",sorter:(e,t)=>(e.inputTokens||0)-(t.inputTokens||0)},{title:"Output",key:"outputTokens",dataIndex:"outputTokens",width:"110px",sorter:(e,t)=>(e.outputTokens||0)-(t.outputTokens||0)},{title:"Total",key:"totalTokens",dataIndex:"totalTokens",width:"110px",sorter:(e,t)=>(e.totalTokens||0)-(t.totalTokens||0)}]),le=W(()=>[{title:"Provider",key:"provider",dataIndex:"provider",width:"120px",sorter:(e,t)=>(e.provider||"").localeCompare(t.provider||"")},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0,sorter:(e,t)=>(e.model||"").localeCompare(t.model||"")},{title:l("analytics.breakdownColumns.calls"),key:"calls",dataIndex:"calls",width:"100px",sorter:(e,t)=>(e.calls||0)-(t.calls||0)},{title:l("analytics.breakdownColumns.inputTokens"),key:"inputTokens",dataIndex:"inputTokens",width:"120px",sorter:(e,t)=>(e.inputTokens||0)-(t.inputTokens||0)},{title:l("analytics.breakdownColumns.outputTokens"),key:"outputTokens",dataIndex:"outputTokens",width:"130px",sorter:(e,t)=>(e.outputTokens||0)-(t.outputTokens||0)},{title:l("analytics.breakdownColumns.totalTokens"),key:"totalTokens",dataIndex:"totalTokens",width:"120px",sorter:(e,t)=>(e.totalTokens||0)-(t.totalTokens||0)},{title:l("analytics.breakdownColumns.cost"),key:"cost",dataIndex:"cost",width:"110px",sorter:(e,t)=>(e.cost||0)-(t.cost||0)},{title:l("analytics.breakdownColumns.avgResponseTime"),key:"avgResponseTime",dataIndex:"avgResponseTime",width:"110px",sorter:(e,t)=>(e.avgResponseTime||0)-(t.avgResponseTime||0)}]),ne=W(()=>[{title:l("analytics.recentColumns.timestamp"),key:"timestamp",dataIndex:"timestamp",width:"180px"},{title:"Provider",key:"provider",dataIndex:"provider",width:"110px"},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0},{title:l("analytics.recentColumns.input"),key:"inputTokens",dataIndex:"inputTokens",width:"90px"},{title:l("analytics.recentColumns.output"),key:"outputTokens",dataIndex:"outputTokens",width:"90px"},{title:l("analytics.recentColumns.cost"),key:"cost",dataIndex:"cost",width:"100px"},{title:l("analytics.recentColumns.responseTime"),key:"responseTime",dataIndex:"responseTime",width:"100px"}]);function w(e){return(e||"").replace(/,/g,"")}function S(e){return xe(e)}function re(e){const t=(e||"").split(`
2
+ `);for(const s of t){const u=s.trim(),h=u.match(/total\s*calls?\s*[::]\s*([\d,]+)/i);h&&(f.totalCalls=parseInt(w(h[1]),10)||0);const d=u.match(/total\s*tokens?\s*[::]\s*([\d,]+)/i);d&&(f.totalTokens=parseInt(w(d[1]),10)||0);const k=u.match(/cost\s*[::]\s*\$?([\d,.]+)/i);k&&(f.totalCost=parseFloat(w(k[1]))||0);const p=u.match(/(?:avg|average)\s*(?:response\s*)?time\s*[::]\s*([\d,.]+)/i);p&&(f.avgResponseTime=parseFloat(w(p[1]))||0)}}function ie(e){f.totalCalls=e.totalCalls??e.total_calls??e.calls??0,f.totalTokens=e.totalTokens??e.total_tokens??e.tokens??0,f.totalCost=e.totalCost??e.total_cost??e.cost??0,f.avgResponseTime=e.avgResponseTime??e.avg_response_time??e.avgTime??0}function ce(e){return(Array.isArray(e)?e:e.breakdown||e.providers||e.rows||[]).map((s,u)=>({key:u,provider:s.provider||"-",model:s.model||"-",calls:s.calls||s.count||0,inputTokens:s.inputTokens??s.input_tokens??0,outputTokens:s.outputTokens??s.output_tokens??0,totalTokens:s.totalTokens??s.total_tokens??(s.inputTokens??0)+(s.outputTokens??0),cost:s.cost??s.total_cost??0,avgResponseTime:s.avgResponseTime??s.avg_response_time??0}))}function ue(e){return(Array.isArray(e)?e:e.recent||e.records||e.rows||[]).map((s,u)=>({key:u,timestamp:s.timestamp||s.time||s.created_at||"-",provider:s.provider||"-",model:s.model||"-",inputTokens:s.inputTokens??s.input_tokens??0,outputTokens:s.outputTokens??s.output_tokens??0,cost:s.cost??0,responseTime:s.responseTime??s.response_time??0}))}function de(e){_.entries=e.entries??e.count??e.size??0,_.hits=e.hits??e.cacheHits??e.cache_hits??0,_.tokensSaved=e.tokensSaved??e.tokens_saved??0,_.expired=e.expired??e.expiredCount??e.expired_count??0}function pe(e){const t=(e||"").split(`
3
+ `);for(const s of t){const u=s.trim(),h=u.match(/entries?\s*[::]\s*([\d,]+)/i);h&&(_.entries=parseInt(w(h[1]),10)||0);const d=u.match(/hits?\s*[::]\s*([\d,]+)/i);d&&(_.hits=parseInt(w(d[1]),10)||0);const k=u.match(/(?:tokens?\s*)?saved\s*[::]\s*([\d,]+)/i);k&&(_.tokensSaved=parseInt(w(k[1]),10)||0);const p=u.match(/expired?\s*[::]\s*([\d,]+)/i);p&&(_.expired=parseInt(w(p[1]),10)||0)}}async function G(){U.value=!0;try{const{output:e}=await C.execute(`tokens show --period ${M.value} --json`,15e3),t=S(e);t?ie(t):re(e)}catch(e){console.error("loadSummary failed:",e)}finally{U.value=!1}}async function ye(){A.value=!0;try{const{output:e}=await C.execute("tokens breakdown --json",15e3),t=S(e);t?O.value=ce(t):O.value=[]}catch(e){console.error("loadBreakdown failed:",e),O.value=[]}finally{A.value=!1}}async function X(){B.value=!0;try{const{output:e}=await C.execute(`tokens recent --limit ${J.value} --json`,15e3),t=S(e);t?j.value=ue(t):j.value=[]}catch(e){console.error("loadRecent failed:",e),j.value=[]}finally{B.value=!1}}async function $(){L.value=!0;try{const{output:e}=await C.execute("tokens cache --json",15e3),t=S(e);t?de(t):pe(e)}catch(e){console.error("loadCache failed:",e)}finally{L.value=!1}}async function ke(){D.value=!0;try{const{output:e}=await C.execute("tokens cache --clear --json",15e3),t=S(e);t&&t.error?I.error(l("analytics.messages.cacheClearFailed",{err:t.error})):(I.success(l("analytics.messages.cacheClearOk")),await $())}catch(e){I.error(l("analytics.messages.cacheClearFailed",{err:e.message}))}finally{D.value=!1}}async function ve(){P.value=!0;try{const{output:e}=await C.execute("tokens cache --cleanup --json",15e3),t=S(e);t&&t.error?I.error(l("analytics.messages.cacheCleanupFailed",{err:t.error})):(I.success(l("analytics.messages.cacheCleanupOk")),await $())}catch(e){I.error(l("analytics.messages.cacheCleanupFailed",{err:e.message}))}finally{P.value=!1}}async function Y(){F.value=!0;try{const e=await C.sendRaw({type:"usage.global",limit:1e3},15e3);if(e.ok&&e.usage){const t=e.usage.total||{};b.totalCalls=t.calls??0,b.inputTokens=t.inputTokens??t.input_tokens??0,b.outputTokens=t.outputTokens??t.output_tokens??0,b.totalTokens=t.totalTokens??t.total_tokens??0,q.value=(e.usage.byModel||[]).map((s,u)=>({key:u,provider:s.provider||"-",model:s.model||"-",calls:s.calls??0,inputTokens:s.inputTokens??s.input_tokens??0,outputTokens:s.outputTokens??s.output_tokens??0,totalTokens:s.totalTokens??s.total_tokens??0}))}}catch(e){console.warn("loadSessionUsage failed (route may not be available):",e.message)}finally{F.value=!1}}async function Z(){await Promise.all([G(),ye(),X(),$(),Y()])}return be(M,()=>{G()}),we(Z),(e,t)=>{const s=x("a-radio-button"),u=x("a-radio-group"),h=x("a-button"),d=x("a-statistic"),k=x("a-card"),p=x("a-col"),E=x("a-row"),N=x("a-spin"),V=x("a-tag"),H=x("a-empty"),K=x("a-table"),me=x("a-space");return c(),v("div",null,[R("div",Se,[R("div",null,[R("h2",Ie,r(n(l)("analytics.title")),1),R("p",ze,r(n(l)("analytics.subtitle")),1)]),R("div",Re,[a(u,{value:M.value,"onUpdate:value":t[0]||(t[0]=i=>M.value=i),"button-style":"solid",size:"small"},{default:o(()=>[a(s,{value:"today"},{default:o(()=>[y(r(n(l)("analytics.period.today")),1)]),_:1}),a(s,{value:"week"},{default:o(()=>[y(r(n(l)("analytics.period.week")),1)]),_:1}),a(s,{value:"month"},{default:o(()=>[y(r(n(l)("analytics.period.month")),1)]),_:1}),a(s,{value:"all"},{default:o(()=>[y(r(n(l)("analytics.period.all")),1)]),_:1})]),_:1},8,["value"]),a(h,{type:"primary",ghost:"",loading:U.value,onClick:Z},{icon:o(()=>[a(n(ee))]),default:o(()=>[y(" "+r(n(l)("analytics.refresh")),1)]),_:1},8,["loading"])])]),a(E,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[a(p,{xs:24,sm:12,lg:6},{default:o(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(d,{title:n(l)("analytics.summary.totalCalls"),value:f.totalCalls,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[a(n(te))]),suffix:o(()=>[y(r(n(l)("analytics.summary.callsSuffix")),1)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:o(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(d,{title:n(l)("analytics.summary.totalTokens"),value:f.totalTokens,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[a(n(ae))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:o(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(d,{title:n(l)("analytics.summary.totalCost"),value:f.totalCost,precision:4,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[a(n(Te))]),suffix:o(()=>[...t[2]||(t[2]=[y("USD",-1)])]),_:1},8,["title","value"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:o(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(d,{title:n(l)("analytics.summary.avgResponseTime"),value:f.avgResponseTime,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[a(n(ae))]),suffix:o(()=>[...t[3]||(t[3]=[y("ms",-1)])]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),a(k,{title:n(l)("analytics.providerCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{default:o(()=>[A.value?(c(),v("div",Me,[a(N,{size:"large"})])):(c(),z(K,{key:1,columns:le.value,"data-source":O.value,pagination:{pageSize:20,showTotal:i=>n(l)("analytics.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"analytics-row"},{bodyCell:o(({column:i,record:m})=>[i.key==="provider"?(c(),z(V,{key:0,color:"blue"},{default:o(()=>[y(r(m.provider),1)]),_:2},1024)):T("",!0),i.key==="model"?(c(),v("span",Oe,r(m.model),1)):T("",!0),i.key==="cost"?(c(),v("span",je,"$"+r((m.cost||0).toFixed(4)),1)):T("",!0),i.key==="avgResponseTime"?(c(),v("span",Fe,r(m.avgResponseTime||0)+" ms",1)):T("",!0)]),emptyText:o(()=>[a(H,{description:n(l)("analytics.providerEmpty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"]))]),_:1},8,["title"]),a(k,{title:n(l)("analytics.recentCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:o(()=>[a(u,{value:J.value,"onUpdate:value":t[1]||(t[1]=i=>J.value=i),size:"small",onChange:X},{default:o(()=>[a(s,{value:10},{default:o(()=>[...t[4]||(t[4]=[y("10",-1)])]),_:1}),a(s,{value:20},{default:o(()=>[...t[5]||(t[5]=[y("20",-1)])]),_:1}),a(s,{value:50},{default:o(()=>[...t[6]||(t[6]=[y("50",-1)])]),_:1})]),_:1},8,["value"])]),default:o(()=>[B.value?(c(),v("div",Ne,[a(N,{size:"large"})])):(c(),z(K,{key:1,columns:ne.value,"data-source":j.value,pagination:{pageSize:20,showTotal:i=>n(l)("analytics.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"analytics-row"},{bodyCell:o(({column:i,record:m})=>[i.key==="timestamp"?(c(),v("span",Ue,r(m.timestamp),1)):T("",!0),i.key==="provider"?(c(),z(V,{key:1,color:"blue"},{default:o(()=>[y(r(m.provider),1)]),_:2},1024)):T("",!0),i.key==="model"?(c(),v("span",Ae,r(m.model),1)):T("",!0),i.key==="cost"?(c(),v("span",Be,"$"+r((m.cost||0).toFixed(4)),1)):T("",!0),i.key==="responseTime"?(c(),v("span",Le,r(m.responseTime||0)+" ms",1)):T("",!0)]),emptyText:o(()=>[a(H,{description:n(l)("analytics.recentEmpty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"]))]),_:1},8,["title"]),a(k,{title:n(l)("analytics.sessionCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:o(()=>[a(h,{size:"small",loading:F.value,onClick:Y,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[a(n(ee))]),default:o(()=>[y(" "+r(n(l)("analytics.refresh")),1)]),_:1},8,["loading"])]),default:o(()=>[F.value?(c(),v("div",De,[a(N)])):(c(),v(Ce,{key:1},[a(E,{gutter:[16,16],style:{"margin-bottom":"16px"}},{default:o(()=>[a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.sessionStats.totalCalls"),value:b.totalCalls,"value-style":{color:"#1677ff",fontSize:"18px"}},{prefix:o(()=>[a(n(te))]),_:1},8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.sessionStats.inputTokens"),value:b.inputTokens,"value-style":{color:"#52c41a",fontSize:"18px"}},null,8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.sessionStats.outputTokens"),value:b.outputTokens,"value-style":{color:"#faad14",fontSize:"18px"}},null,8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.sessionStats.totalTokens"),value:b.totalTokens,"value-style":{color:"#722ed1",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1}),a(K,{columns:se.value,"data-source":q.value,pagination:!1,size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"analytics-row"},{bodyCell:o(({column:i,record:m})=>[i.key==="provider"?(c(),z(V,{key:0,color:"blue"},{default:o(()=>[y(r(m.provider),1)]),_:2},1024)):T("",!0),i.key==="model"?(c(),v("span",Pe,r(m.model),1)):T("",!0)]),emptyText:o(()=>[a(H,{description:n(l)("analytics.sessionEmpty")},null,8,["description"])]),_:1},8,["columns","data-source"])],64))]),_:1},8,["title"]),a(k,{title:n(l)("analytics.cacheCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:o(()=>[a(me,null,{default:o(()=>[a(h,{size:"small",loading:P.value,onClick:ve,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[a(n(oe))]),default:o(()=>[y(" "+r(n(l)("analytics.cacheActions.cleanup")),1)]),_:1},8,["loading"]),a(h,{size:"small",danger:"",loading:D.value,onClick:ke,style:{"border-color":"var(--border-color)"}},{icon:o(()=>[a(n(oe))]),default:o(()=>[y(" "+r(n(l)("analytics.cacheActions.clear")),1)]),_:1},8,["loading"])]),_:1})]),default:o(()=>[L.value?(c(),v("div",Je,[a(N)])):(c(),z(E,{key:1,gutter:[16,16]},{default:o(()=>[a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.cacheStats.entries"),value:_.entries,"value-style":{color:"#1677ff",fontSize:"18px"}},{prefix:o(()=>[a(n(he))]),_:1},8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.cacheStats.hits"),value:_.hits,"value-style":{color:"#52c41a",fontSize:"18px"}},null,8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.cacheStats.tokensSaved"),value:_.tokensSaved,"value-style":{color:"#faad14",fontSize:"18px"}},null,8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.cacheStats.expired"),value:_.expired,"value-style":{color:"#ff4d4f",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1}))]),_:1},8,["title"])])}}},Qe=fe($e,[["__scopeId","data-v-c636a5e0"]]);export{Qe as default};
@@ -0,0 +1 @@
1
+ [data-v-c636a5e0] .analytics-row:hover td{background:var(--bg-card-hover)!important}[data-v-c636a5e0] .ant-card-head{border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-v-c636a5e0] .ant-radio-button-wrapper{background:var(--bg-card)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-v-c636a5e0] .ant-radio-button-wrapper-checked{background:#1677ff!important;border-color:#1677ff!important;color:#fff!important}
@@ -0,0 +1 @@
1
+ .notif-bell-btn[data-v-af539070]{width:32px;height:32px;border:none;background:transparent;border-radius:50%;cursor:pointer;color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;font-size:16px;transition:background .15s,transform .15s}.notif-bell-btn[data-v-af539070]:hover{background:var(--bg-card-hover);transform:scale(1.1)}.notif-toolbar[data-v-af539070]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-card)}.notif-body[data-v-af539070]{max-height:calc(100vh - 130px);overflow-y:auto}.notif-list[data-v-af539070]{list-style:none;margin:0;padding:0}.notif-item[data-v-af539070]{padding:12px 16px;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .15s}.notif-item[data-v-af539070]:hover{background:var(--bg-card-hover)}.notif-item.unread[data-v-af539070]{background:#1677ff14}.notif-row[data-v-af539070]{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.notif-title[data-v-af539070]{font-weight:500;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-time[data-v-af539070]{flex-shrink:0;font-size:11px;color:var(--text-muted)}.notif-message[data-v-af539070]{margin-top:4px;font-size:12px;color:var(--text-secondary);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mbh-btn[data-v-05eb475d]{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-card);color:var(--text-primary);font-size:11px;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.mbh-btn[data-v-05eb475d]:hover{background:var(--bg-card-hover);border-color:#52c41a;transform:scale(1.04)}.mbh-btn--active[data-v-05eb475d]{border-color:#52c41a99}.mbh-count[data-v-05eb475d]{line-height:1;font-weight:500;color:var(--text-secondary)}.app-root[data-v-563989a5]{height:100vh;background:var(--bg-base);overflow:hidden}.sidebar[data-v-563989a5]{background:var(--bg-sidebar)!important;border-right:1px solid var(--border-color);transition:background .25s;height:100vh}[data-v-563989a5] .ant-layout-sider-children{display:flex;flex-direction:column;overflow:hidden;height:100%}.main-area[data-v-563989a5]{background:var(--bg-base);height:100vh;display:flex;flex-direction:column}.logo[data-v-563989a5]{height:52px;display:flex;align-items:center;padding:0 18px;gap:10px;border-bottom:1px solid var(--border-color);overflow:hidden;white-space:nowrap;flex-shrink:0}.logo.collapsed[data-v-563989a5]{padding:0;justify-content:center}.logo-icon[data-v-563989a5]{width:24px;height:24px;flex-shrink:0;object-fit:contain}.logo-text[data-v-563989a5]{color:var(--logo-text);font-weight:700;font-size:14px;letter-spacing:.01em}.mode-banner[data-v-563989a5]{display:flex;align-items:center;gap:8px;padding:7px 10px;margin:8px 8px 4px;border-radius:7px;overflow:hidden}.mode-banner.project[data-v-563989a5]{background:#1677ff1a;border:1px solid rgba(22,119,255,.2)}.mode-banner.global[data-v-563989a5]{background:#722ed11a;border:1px solid rgba(114,46,209,.2)}.banner-icon[data-v-563989a5]{font-size:13px;flex-shrink:0;color:#1677ff}.mode-banner.global .banner-icon[data-v-563989a5]{color:#722ed1}.banner-info[data-v-563989a5]{flex:1;min-width:0}.banner-name[data-v-563989a5]{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.banner-sub[data-v-563989a5]{font-size:10px;color:#1677ff;margin-top:1px}.mode-banner.global .banner-name[data-v-563989a5]{color:#c084fc}.mode-icon-sm[data-v-563989a5]{display:flex;justify-content:center;padding:8px 0;font-size:14px}.side-menu[data-v-563989a5]{border:none!important;margin-top:2px;-webkit-user-select:none;user-select:none;background:transparent!important;flex:1;overflow-y:auto;overflow-x:hidden}.group-label[data-v-563989a5]{color:var(--group-title);font-size:10px;font-weight:700;letter-spacing:.12em;padding-left:6px}[data-v-563989a5] .ant-menu-item-group-title{padding:8px 16px 2px!important}[data-v-563989a5] .ant-menu-item{height:38px!important;line-height:38px!important;margin:1px 4px!important;border-radius:6px!important}.divider-sm[data-v-563989a5]{margin:4px 0!important}.sidebar-footer[data-v-563989a5]{flex-shrink:0;padding:8px 18px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--border-color)}.sidebar-footer.collapsed[data-v-563989a5]{justify-content:center;padding:8px 0}.footer-text[data-v-563989a5]{color:var(--text-secondary);font-size:11px}.app-header[data-v-563989a5]{background:var(--bg-header)!important;padding:0 20px!important;border-bottom:1px solid var(--border-color);height:50px!important;line-height:50px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;box-shadow:0 1px 4px #0000000f}.header-left[data-v-563989a5],.header-right[data-v-563989a5]{display:flex;align-items:center;gap:10px}.scope-tag[data-v-563989a5]{display:flex;align-items:center;gap:5px;padding:3px 10px;border-radius:5px;font-size:12px;font-weight:500}.scope-tag.project[data-v-563989a5]{background:#1677ff1a;color:#1677ff;border:1px solid rgba(22,119,255,.2)}.scope-tag.global[data-v-563989a5]{background:#722ed11a;color:#722ed1;border:1px solid rgba(114,46,209,.2)}.info-icon[data-v-563989a5]{opacity:.45;cursor:help;margin-left:2px}.theme-switcher[data-v-563989a5]{display:flex;align-items:center;gap:4px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;padding:3px 6px}.theme-btn[data-v-563989a5]{width:26px;height:26px;border:none;border-radius:50%;cursor:pointer;background:transparent;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s;opacity:.55}.theme-btn[data-v-563989a5]:hover{opacity:.9;transform:scale(1.15);background:var(--bg-card-hover)}.theme-btn.active[data-v-563989a5]{opacity:1;transform:scale(1.1);background:var(--bg-card-hover);outline:2px solid var(--text-secondary)}.version-tag[data-v-563989a5]{color:var(--text-muted);font-size:11px}.ws-tag[data-v-563989a5]{margin:0!important;font-size:11px}.lang-switch-btn[data-v-563989a5]{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 12px;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-card);color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s}.lang-switch-btn[data-v-563989a5]:hover{background:var(--bg-card-hover);color:#1677ff;border-color:#1677ff;transform:scale(1.04)}.lang-switch-icon[data-v-563989a5]{font-size:14px}.lang-switch-label[data-v-563989a5]{line-height:1}.shell-switch-btn[data-v-563989a5]{width:26px;height:26px;border:none;border-radius:50%;cursor:pointer;background:transparent;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:background .15s,transform .15s,color .15s;opacity:.6}.shell-switch-btn[data-v-563989a5]:hover{opacity:1;transform:scale(1.15);background:var(--bg-card-hover);color:var(--text-primary)}.page-content[data-v-563989a5]{padding:24px;overflow:auto;background:var(--bg-base);flex:1;min-height:0}
@@ -0,0 +1,3 @@
1
+ import{f as O,r as K,o as ge,x as ft,K as p,L as c,M as g,c as e,N as t,u as a,R as l,O as i,P as s,Q as C,F as V,Y as it,Z as J,S as M,I as lt,e as kt,_ as _t,w as gt,H as vt,$ as ht}from"./vendor-BXcBOG8b.js";import{u as ve,_ as he,E as bt,a as wt,b as Lt,T as $t,c as Ot,d as G}from"./index-3RqDry-K.js";import{u as q}from"./useShellMode-CgR0wCYM.js";import{B as _e,R as St,M as ye,F as Y,G as te,D as ae,h as we,i as oe,j as ne,k as se,A as Le,N as $e,l as Oe,m as Se,n as ie,o as Ce,p as Ee,S as Ae,q as Re,r as Ne,s as le,t as je,u as Te,v as Be,w as De,U as Me,x as Z,y as Pe,z as Ue,H as Ie,P as Ke,J as ze,K as re,O as ue,Q as I,V as Fe,W as Ve,X as qe,Y as We,Z as ce,_ as de,$ as He,a0 as Je,a1 as pe,a2 as Ge,a3 as Ye,a4 as Ze,a5 as Qe,a6 as Xe,a7 as xe,a8 as et,a9 as tt,aa as at,ab as ot,ac as Ct,ad as nt,e as Et}from"./icons-DlxlFL4g.js";import At from"./index-Vo7A4aiN.js";import"./KeyCode-D63Tfrq7.js";import"./omit-DF7mU3yG.js";import"./pickAttrs-Cmt8liJP.js";import"./initDefaultProps-mdL0oeZa.js";import"./motion-ZgVCKcEX.js";import"./raf-Deuc0E8-.js";import"./index-ma-rJkfE.js";import"./index-CsnYp4qF.js";import"./isVisible-C7tPsqfj.js";import"./useState-Dlgl7fUg.js";import"./devWarning-CNIS3FrJ.js";import"./warning-Pq00owYb.js";import"./compact-item-Dn2ktVuj.js";import"./createContext-XTreuyqp.js";import"./Compact-DYs0a9k7.js";import"./_getTag-BVc6NQ_K.js";import"./styleChecker-DMybAFsA.js";import"./zoom-C8rAdf81.js";import"./ActionButton-nhMNWW_d.js";import"./vnode-DB3JBusp.js";const Rt=""+new URL("logo-DBCYUiWP.png",import.meta.url).href,$={notifications:K([]),unreadCount:K(0)};function Q(h){if(h&&h.ok===!1)throw new Error(h.error||"notification handler failed");return h?.result??h}function Nt(){const h=ve();async function T({limit:u=50,offset:d=0,isRead:k}={}){if(!q().isEmbedded)return $.notifications.value=[],$.unreadCount.value=0,$.notifications.value;const y=await h.sendRaw({type:"notification.list",limit:u,offset:d,isRead:k},15e3),w=Q(y);if(w?.success===!1)throw new Error(w.error||"notification.list failed");return $.notifications.value=Array.isArray(w?.notifications)?w.notifications:[],await E(),$.notifications.value}async function E(){if(!q().isEmbedded)return $.unreadCount.value=0,0;const u=await h.sendRaw({type:"notification.unread-count"},1e4),d=Q(u);return $.unreadCount.value=Number(d?.count)||0,$.unreadCount.value}async function _(u){if(u==null||u==="")throw new Error("id is required");if(!q().isEmbedded)return;const d=await h.sendRaw({type:"notification.mark-read",id:u},1e4),k=Q(d);if(k?.success===!1)throw new Error(k.error||"notification.mark-read failed");const y=$.notifications.value.find(w=>w.id===u);y&&(y.is_read=1),await E()}async function S(){if(!q().isEmbedded)return;const u=await h.sendRaw({type:"notification.mark-all-read"},1e4),d=Q(u);if(d?.success===!1)throw new Error(d.error||"notification.mark-all-read failed");for(const k of $.notifications.value)k.is_read=1;$.unreadCount.value=0}async function b(u,d=""){if(!q().isEmbedded)throw new Error("桌面通知仅在嵌入式 web-shell 中可用");const k=await h.sendRaw({type:"notification.send-desktop",title:u,body:d},1e4),y=Q(k);if(y?.success===!1)throw new Error(y.error||"notification.send-desktop failed")}return{notifications:O(()=>$.notifications.value),unreadCount:O(()=>$.unreadCount.value),refresh:T,refreshUnreadCount:E,markRead:_,markAllRead:S,sendDesktop:b}}const jt={class:"notif-toolbar"},Tt={class:"notif-body"},Bt={key:2,class:"notif-list"},Dt=["onClick"],Mt={class:"notif-row"},Pt={class:"notif-title"},Ut={class:"notif-time"},It={key:0,class:"notif-message"},Kt={__name:"NotificationBell",setup(h){const T=K(!1),E=K("all"),_=K(!1),{notifications:S,unreadCount:b,refresh:u,markRead:d,markAllRead:k}=Nt();function y(){N()}ge(()=>{window.addEventListener("cc:open-notification-drawer",y)}),ft(()=>{window.removeEventListener("cc:open-notification-drawer",y)});const w=O(()=>E.value==="unread"?S.value.filter(m=>!m.is_read):S.value);async function A(){if(q().isEmbedded){_.value=!0;try{await u({limit:100})}catch{}finally{_.value=!1}}}async function N(){T.value=!0,await A()}async function j(m){if(!m.is_read)try{await d(m.id)}catch{}}async function L(){try{await k()}catch(m){console.warn("[NotificationBell] markAllRead failed:",m?.message||m)}}function R(m){if(!m)return"";const f=typeof m=="string"?Date.parse(m):Number(m);if(!Number.isFinite(f))return String(m);const B=Date.now()-f,z=6e4,P=60*z,W=24*P;return B<z?"刚刚":B<P?`${Math.floor(B/z)} 分钟前`:B<W?`${Math.floor(B/P)} 小时前`:new Date(f).toLocaleDateString()}return(m,f)=>{const B=p("a-badge"),z=p("a-tooltip"),P=p("a-radio-button"),W=p("a-radio-group"),H=p("a-space"),X=p("a-button"),me=p("a-empty"),fe=p("a-spin"),ke=p("a-drawer");return c(),g(V,null,[e(z,{title:"通知"},{default:t(()=>[e(B,{count:a(b),"overflow-count":99,offset:[-4,4]},{default:t(()=>[l("button",{type:"button",class:"notif-bell-btn","aria-label":"通知",onClick:N},[e(a(_e))])]),_:1},8,["count"])]),_:1}),e(ke,{open:T.value,"onUpdate:open":f[1]||(f[1]=v=>T.value=v),title:"通知中心",placement:"right",width:400,"body-style":{padding:0}},{default:t(()=>[l("div",jt,[e(H,null,{default:t(()=>[e(W,{value:E.value,"onUpdate:value":f[0]||(f[0]=v=>E.value=v),size:"small","button-style":"solid"},{default:t(()=>[e(P,{value:"all"},{default:t(()=>[i("全部 ("+s(a(S).length)+")",1)]),_:1}),e(P,{value:"unread"},{default:t(()=>[i("未读 ("+s(a(b))+")",1)]),_:1})]),_:1},8,["value"])]),_:1}),e(H,null,{default:t(()=>[e(X,{size:"small",loading:_.value,onClick:A},{icon:t(()=>[e(a(St))]),_:1},8,["loading"]),e(X,{size:"small",disabled:a(b)===0,onClick:L},{default:t(()=>[...f[2]||(f[2]=[i(" 全部已读 ",-1)])]),_:1},8,["disabled"])]),_:1})]),l("div",Tt,[!_.value&&w.value.length===0?(c(),C(me,{key:0,description:"暂无通知",image:a(bt).PRESENTED_IMAGE_SIMPLE,style:{padding:"60px 0"}},null,8,["image"])):_.value?(c(),C(fe,{key:1,style:{display:"block",padding:"60px"}})):(c(),g("ul",Bt,[(c(!0),g(V,null,it(w.value,v=>(c(),g("li",{key:v.id,class:J(["notif-item",{unread:!v.is_read}]),onClick:n=>j(v)},[l("div",Mt,[l("div",Pt,s(v.title||v.message||"(无标题)"),1),l("span",Ut,s(R(v.created_at)),1)]),v.message&&v.title?(c(),g("div",It,s(v.message),1)):M("",!0)],10,Dt))),128))]))])]),_:1},8,["open"])],64)}}},zt=he(Kt,[["__scopeId","data-v-af539070"]]),Ft={key:0,class:"mbh-count"},Vt={__name:"MobileBridgeHeaderStatus",setup(h){function T(A){if(!A)return[];try{return JSON.parse(A)}catch{}const N=String(A).split(`
2
+ `),j=N.findIndex(L=>{const R=L.trim();if(!R)return!1;const m=R[0];if(m!=="["&&m!=="{")return!1;if(R.length===1)return!0;const f=R[1];return!(f>="A"&&f<="Z"||f>="a"&&f<="z")});if(j<0)return[];for(let L=N.length-1;L>=j;L--){const R=N[L].trim();if(/^[\]\}]/.test(R)&&!/^[\]\}][A-Za-z]/.test(R))try{return JSON.parse(N.slice(j,L+1).join(`
3
+ `))}catch{return[]}}return[]}const E=lt(),_=ve(),S=K([]);let b=null;const u=O(()=>S.value.length),d=O(()=>u.value===0?"var(--text-muted, #999)":"#52c41a"),k=O(()=>u.value===0?"尚未配对任何手机 — 点击进入配对":`已配对 ${u.value} 台手机 — 点击进入管理`);async function y(){if(_.status==="connected")try{const{output:A}=await _.execute("p2p devices --type mobile --json",1e4);S.value=T(A)||[]}catch{}}function w(){E.push("/mobile-bridge")}return ge(()=>{y(),b=setInterval(y,5e3)}),kt(()=>{b&&(clearInterval(b),b=null)}),(A,N)=>{const j=p("a-badge"),L=p("a-tooltip");return c(),C(L,{title:k.value},{default:t(()=>[e(j,{count:u.value,"show-zero":!1,"overflow-count":9,offset:[-2,4]},{default:t(()=>[l("button",{type:"button",class:J(["mbh-btn",{"mbh-btn--active":u.value>0}]),onClick:w},[e(a(ye),{style:_t({color:d.value,fontSize:"14px"})},null,8,["style"]),u.value>0?(c(),g("span",Ft,s(u.value),1)):M("",!0)],2)]),_:1},8,["count"])]),_:1},8,["title"])}}},qt=he(Vt,[["__scopeId","data-v-05eb475d"]]),Wt=["src"],Ht={key:0,class:"logo-text"},Jt={key:0,class:"mode-banner project"},Gt={class:"banner-info"},Yt={class:"banner-name"},Zt={class:"banner-sub"},Qt={key:1,class:"mode-banner global"},Xt={class:"banner-name"},xt=["title"],ea={class:"group-label"},ta={class:"group-label"},aa={class:"group-label"},oa={class:"group-label"},na={class:"group-label"},sa={class:"group-label"},ia={class:"group-label"},la={class:"group-label"},ra={class:"group-label"},ua={key:0,class:"footer-text"},ca={class:"header-left"},da={class:"header-right"},pa={class:"theme-switcher"},ya=["data-theme-key","onClick"],ma=["data-locale"],fa={class:"lang-switch-label"},ka={class:"version-tag"},st="cc.web-panel.sidebar.openKeys",_a={__name:"AppLayout",setup(h){const T=lt(),E=vt(),_=ve(),S=wt(),{t:b}=Lt(),u=q(),d=K(!1),k=window.__CC_CONFIG__||{},y=O(()=>k.mode==="project"),w="v5.0.3.143",A=O(()=>S.current),N=O(()=>S.config.vars["--menu-mode"]),j=O(()=>{const n=E.name?.toLowerCase()||"dashboard";return[{mcptools:"mcp",quickask:"quick-ask",ukeysign:"ukey-sign"}[n]||n]}),L=["g-overview","g-config","g-data","g-advanced","g-enterprise","g-social","g-media","g-extension"];function R(){try{const n=localStorage.getItem(st);if(n){const r=JSON.parse(n);if(Array.isArray(r))return r.filter(o=>L.includes(o))}}catch{}return[...L]}const m=K(R());gt(m,n=>{try{localStorage.setItem(st,JSON.stringify(n))}catch{}},{deep:!0});const f=O(()=>_.status),B=O(()=>({connected:"success",connecting:"processing",error:"error",disconnected:"default"})[_.status]||"default"),z=O(()=>{const n=`appLayout.footerStatus.${_.status}`,r=b(n);return r===n?b("appLayout.footerStatus.unknown"):r});function P(n){S.setTheme(n)}const{current:W,supported:H,setLocale:X}=Ot();function me(){const n=H[(H.indexOf(W.value)+1)%H.length];X(n)}async function fe(n){try{const r=await _.sendRaw({type:"window.open",role:n},1e4);if(r?.ok===!1){G.error(`打开失败:${r.error||"未知"}`);return}const o=r?.result??r;o?.reason==="role_reserved"?G.warning("该窗口角色被保留"):o?.reason}catch(r){G.error(`打开桌面窗口失败:${r.message||r}`)}}async function ke(){At.confirm({title:"切换到桌面壳?",content:"回到 V5/V6 桌面壳。完整 electronAPI 表面(UKey 硬件 / 原生对话框 / 系统设置等)会重新可用,但失去 web-panel 的 SPA 体验。保存后需要重启应用才生效。",okText:"切换并重启",cancelText:"取消",centered:!0,async onOk(){try{const n=await _.sendRaw({type:"shell.switch",target:"desktop"},5e3);if(n?.ok===!1)throw new Error(n.error||"shell.switch returned failure");G.loading({content:"正在重启…",duration:0})}catch(n){const r=n instanceof Error?n.message:String(n);G.error("切换失败:"+r)}}})}function v({key:n}){if(typeof n=="string"&&n.startsWith("desktop:")){fe(n);return}T.push({mcp:"/mcp"}[n]||`/${n}`)}return ge(()=>_.connect()),(n,r)=>{const o=p("a-menu-item"),D=p("a-sub-menu"),F=p("a-menu-divider"),rt=p("a-menu"),ut=p("a-badge"),ct=p("a-layout-sider"),x=p("a-tooltip"),dt=p("a-tag"),pt=p("a-layout-header"),yt=p("router-view"),mt=p("a-layout-content"),be=p("a-layout");return c(),C(be,{class:"app-root"},{default:t(()=>[e(ct,{collapsed:d.value,"onUpdate:collapsed":r[2]||(r[2]=U=>d.value=U),collapsible:"","collapsed-width":56,width:216,class:"sidebar"},{default:t(()=>[l("div",{class:J(["logo",{collapsed:d.value}])},[l("img",{src:a(Rt),alt:"ChainlessChain",class:"logo-icon"},null,8,Wt),d.value?M("",!0):(c(),g("span",Ht,"ChainlessChain"))],2),d.value?(c(),g("div",{key:1,class:"mode-icon-sm",title:y.value?a(k).projectName:n.$t("appLayout.scope.global")},[y.value?(c(),C(a(Y),{key:0,style:{color:"#1677ff"}})):(c(),C(a(te),{key:1,style:{color:"#722ed1"}}))],8,xt)):(c(),g(V,{key:0},[y.value?(c(),g("div",Jt,[e(a(Y),{class:"banner-icon"}),l("div",Gt,[l("div",Yt,s(a(k).projectName||n.$t("appLayout.scope.fallbackProject")),1),l("div",Zt,s(n.$t("appLayout.scope.projectPanel")),1)])])):(c(),g("div",Qt,[e(a(te),{class:"banner-icon"}),l("span",Xt,s(n.$t("appLayout.scope.global")),1)]))],64)),e(rt,{selectedKeys:j.value,"onUpdate:selectedKeys":r[0]||(r[0]=U=>j.value=U),openKeys:m.value,"onUpdate:openKeys":r[1]||(r[1]=U=>m.value=U),theme:N.value,mode:"inline","inline-collapsed":d.value,class:"side-menu",onClick:v},{default:t(()=>[d.value?(c(),g(V,{key:1},[e(o,{key:"dashboard"},{icon:t(()=>[e(a(ae))]),_:1}),e(o,{key:"chat"},{icon:t(()=>[e(a(we))]),_:1}),e(o,{key:"quick-ask"},{icon:t(()=>[e(a(oe))]),_:1}),e(o,{key:"cowork"},{icon:t(()=>[e(a(ne))]),_:1}),e(o,{key:"services"},{icon:t(()=>[e(a(se))]),_:1}),e(o,{key:"aiops"},{icon:t(()=>[e(a(Le))]),_:1}),e(o,{key:"tokens"},{icon:t(()=>[e(a($e))]),_:1}),e(o,{key:"logs"},{icon:t(()=>[e(a(Oe))]),_:1}),e(F,{class:"divider-sm"}),e(o,{key:"skills"},{icon:t(()=>[e(a(Se))]),_:1}),e(o,{key:"evolution-settings"},{icon:t(()=>[e(a(ie))]),_:1}),e(o,{key:"providers"},{icon:t(()=>[e(a(Ce))]),_:1}),e(o,{key:"mcp"},{icon:t(()=>[e(a(Ee))]),_:1}),e(o,{key:"project-settings"},{icon:t(()=>[e(a(Y))]),_:1}),e(o,{key:"speech-settings"},{icon:t(()=>[e(a(Ae))]),_:1}),e(o,{key:"notification-settings"},{icon:t(()=>[e(a(_e))]),_:1}),e(o,{key:"sync-settings"},{icon:t(()=>[e(a(Re))]),_:1}),e(o,{key:"nlprog"},{icon:t(()=>[e(a(Ne))]),_:1}),e(o,{key:"codegen"},{icon:t(()=>[e(a(le))]),_:1}),e(F,{class:"divider-sm"}),e(o,{key:"notes"},{icon:t(()=>[e(a(je))]),_:1}),e(o,{key:"search"},{icon:t(()=>[e(a(Te))]),_:1}),e(o,{key:"memory"},{icon:t(()=>[e(a(ie))]),_:1}),e(o,{key:"knowledge"},{icon:t(()=>[e(a(Be))]),_:1}),e(o,{key:"personal-data-hub"},{icon:t(()=>[e(a(De))]),_:1}),e(o,{key:"personal-data-hub/browser"},{icon:t(()=>[e(a(Me))]),_:1}),e(o,{key:"marketplace"},{icon:t(()=>[e(a(Pe))]),_:1}),e(o,{key:"cron"},{icon:t(()=>[e(a(Ue))]),_:1}),e(o,{key:"workflow"},{icon:t(()=>[e(a(Ie))]),_:1}),e(o,{key:"pipeline"},{icon:t(()=>[e(a(Ke))]),_:1}),e(o,{key:"tasks"},{icon:t(()=>[e(a(oe))]),_:1}),e(o,{key:"background-agents"},{icon:t(()=>[e(a(ne))]),_:1}),e(o,{key:"artifacts"},{icon:t(()=>[e(a(ze))]),_:1}),e(F,{class:"divider-sm"}),e(o,{key:"security"},{icon:t(()=>[e(a(re))]),_:1}),e(o,{key:"ukey-sign"},{icon:t(()=>[e(a(ue))]),_:1}),e(o,{key:"trust"},{icon:t(()=>[e(a(I))]),_:1}),e(o,{key:"audit"},{icon:t(()=>[e(a(Fe))]),_:1}),e(o,{key:"mtc"},{icon:t(()=>[e(a(I))]),_:1}),e(o,{key:"mtc-audit"},{icon:t(()=>[e(a(I))]),_:1}),e(o,{key:"multisig"},{icon:t(()=>[e(a(Z))]),_:1}),e(o,{key:"did"},{icon:t(()=>[e(a(Ve))]),_:1}),e(o,{key:"permissions"},{icon:t(()=>[e(a(qe))]),_:1}),e(o,{key:"p2p"},{icon:t(()=>[e(a(We))]),_:1}),e(o,{key:"mobile-bridge"},{icon:t(()=>[e(a(ye))]),_:1}),e(o,{key:"terminal"},{icon:t(()=>[e(a(ce))]),_:1}),e(o,{key:"backup"},{icon:t(()=>[e(a(de))]),_:1}),e(o,{key:"git"},{icon:t(()=>[e(a(le))]),_:1}),e(o,{key:"projects"},{icon:t(()=>[e(a(He))]),_:1}),e(o,{key:"crosschain"},{icon:t(()=>[e(a(Je))]),_:1}),e(o,{key:"compliance"},{icon:t(()=>[e(a(I))]),_:1}),e(o,{key:"privacy"},{icon:t(()=>[e(a(pe))]),_:1}),e(o,{key:"inference"},{icon:t(()=>[e(a(Ge))]),_:1}),e(o,{key:"federation"},{icon:t(()=>[e(a(Ye))]),_:1}),e(F,{class:"divider-sm"}),e(o,{key:"wallet"},{icon:t(()=>[e(a(Ze))]),_:1}),e(o,{key:"organization"},{icon:t(()=>[e(a(Z))]),_:1}),e(o,{key:"tenant"},{icon:t(()=>[e(a(Qe))]),_:1}),e(o,{key:"sla"},{icon:t(()=>[e(a(ae))]),_:1}),e(o,{key:"analytics"},{icon:t(()=>[e(a(Xe))]),_:1}),e(o,{key:"templates"},{icon:t(()=>[e(a(xe))]),_:1}),e(F,{class:"divider-sm"}),e(o,{key:"community"},{icon:t(()=>[e(a(et))]),_:1}),e(o,{key:"governance"},{icon:t(()=>[e(a(tt))]),_:1}),e(o,{key:"reputation"},{icon:t(()=>[e(a(at))]),_:1}),e(o,{key:"recommend"},{icon:t(()=>[e(a(ot))]),_:1}),e(F,{class:"divider-sm"}),e(o,{key:"rssfeed"},{icon:t(()=>[e(a(nt))]),_:1}),e(o,{key:"webauthn"},{icon:t(()=>[e(a(ue))]),_:1}),a(u).isEmbedded?(c(),g(V,{key:0},[e(F,{class:"divider-sm"}),e(o,{key:"desktop:hardware-wallet"},{icon:t(()=>[e(a(re))]),_:1}),e(o,{key:"desktop:backup-dashboard"},{icon:t(()=>[e(a(de))]),_:1}),e(o,{key:"desktop:llm-test-chat"},{icon:t(()=>[e(a(pe))]),_:1}),e(o,{key:"desktop:settings"},{icon:t(()=>[e(a(se))]),_:1})],64)):M("",!0)],64)):(c(),g(V,{key:0},[e(D,{key:"g-overview"},{title:t(()=>[l("span",ea,s(n.$t("appLayout.groups.overview")),1)]),default:t(()=>[e(o,{key:"dashboard"},{icon:t(()=>[e(a(ae))]),default:t(()=>[i(s(n.$t("appLayout.items.dashboard")),1)]),_:1}),e(o,{key:"chat"},{icon:t(()=>[e(a(we))]),default:t(()=>[i(s(n.$t("appLayout.items.chat")),1)]),_:1}),e(o,{key:"quick-ask"},{icon:t(()=>[e(a(oe))]),default:t(()=>[i(s(n.$t("appLayout.items.quickAsk")),1)]),_:1}),e(o,{key:"cowork"},{icon:t(()=>[e(a(ne))]),default:t(()=>[i(s(n.$t("appLayout.items.cowork")),1)]),_:1}),e(o,{key:"services"},{icon:t(()=>[e(a(se))]),default:t(()=>[i(s(n.$t("appLayout.items.services")),1)]),_:1}),e(o,{key:"aiops"},{icon:t(()=>[e(a(Le))]),default:t(()=>[i(s(n.$t("appLayout.items.aiops")),1)]),_:1}),e(o,{key:"tokens"},{icon:t(()=>[e(a($e))]),default:t(()=>[i(s(n.$t("appLayout.items.tokens")),1)]),_:1}),e(o,{key:"logs"},{icon:t(()=>[e(a(Oe))]),default:t(()=>[i(s(n.$t("appLayout.items.logs")),1)]),_:1})]),_:1}),e(D,{key:"g-config"},{title:t(()=>[l("span",ta,s(n.$t("appLayout.groups.config")),1)]),default:t(()=>[e(o,{key:"skills"},{icon:t(()=>[e(a(Se))]),default:t(()=>[i(s(n.$t("appLayout.items.skills")),1)]),_:1}),e(o,{key:"evolution-settings"},{icon:t(()=>[e(a(ie))]),default:t(()=>[i(s(n.$t("appLayout.items.evolutionSettings")),1)]),_:1}),e(o,{key:"providers"},{icon:t(()=>[e(a(Ce))]),default:t(()=>[i(s(n.$t("appLayout.items.providers")),1)]),_:1}),e(o,{key:"mcp"},{icon:t(()=>[e(a(Ee))]),default:t(()=>[i(s(n.$t("appLayout.items.mcp")),1)]),_:1}),e(o,{key:"project-settings"},{icon:t(()=>[e(a(Y))]),default:t(()=>[i(s(n.$t("appLayout.items.projectSettings")),1)]),_:1}),e(o,{key:"speech-settings"},{icon:t(()=>[e(a(Ae))]),default:t(()=>[i(s(n.$t("appLayout.items.speechSettings")),1)]),_:1}),e(o,{key:"notification-settings"},{icon:t(()=>[e(a(_e))]),default:t(()=>[i(s(n.$t("appLayout.items.notificationSettings")),1)]),_:1}),e(o,{key:"sync-settings"},{icon:t(()=>[e(a(Re))]),default:t(()=>[i(s(n.$t("appLayout.items.syncSettings")),1)]),_:1}),e(o,{key:"nlprog"},{icon:t(()=>[e(a(Ne))]),default:t(()=>[i(s(n.$t("appLayout.items.nlprog")),1)]),_:1}),e(o,{key:"codegen"},{icon:t(()=>[e(a(le))]),default:t(()=>[i(s(n.$t("appLayout.items.codegen")),1)]),_:1})]),_:1}),e(D,{key:"g-data"},{title:t(()=>[l("span",aa,s(n.$t("appLayout.groups.data")),1)]),default:t(()=>[e(o,{key:"notes"},{icon:t(()=>[e(a(je))]),default:t(()=>[i(s(n.$t("appLayout.items.notes")),1)]),_:1}),e(o,{key:"search"},{icon:t(()=>[e(a(Te))]),default:t(()=>[i(s(n.$t("appLayout.items.search")),1)]),_:1}),e(o,{key:"memory"},{icon:t(()=>[e(a(ie))]),default:t(()=>[i(s(n.$t("appLayout.items.memory")),1)]),_:1}),e(o,{key:"knowledge"},{icon:t(()=>[e(a(Be))]),default:t(()=>[i(s(n.$t("appLayout.items.knowledge")),1)]),_:1}),e(o,{key:"personal-data-hub"},{icon:t(()=>[e(a(De))]),default:t(()=>[r[3]||(r[3]=i("个人数据中台",-1))]),_:1}),e(o,{key:"personal-data-hub/browser"},{icon:t(()=>[e(a(Me))]),default:t(()=>[r[4]||(r[4]=i("数据浏览器",-1))]),_:1}),e(o,{key:"family-guard"},{icon:t(()=>[e(a(Z))]),default:t(()=>[r[5]||(r[5]=i("家庭守护",-1))]),_:1}),e(o,{key:"marketplace"},{icon:t(()=>[e(a(Pe))]),default:t(()=>[i(s(n.$t("appLayout.items.marketplace")),1)]),_:1}),e(o,{key:"cron"},{icon:t(()=>[e(a(Ue))]),default:t(()=>[i(s(n.$t("appLayout.items.cron")),1)]),_:1}),e(o,{key:"workflow"},{icon:t(()=>[e(a(Ie))]),default:t(()=>[i(s(n.$t("appLayout.items.workflow")),1)]),_:1}),e(o,{key:"pipeline"},{icon:t(()=>[e(a(Ke))]),default:t(()=>[i(s(n.$t("appLayout.items.pipeline")),1)]),_:1}),e(o,{key:"tasks"},{icon:t(()=>[e(a(oe))]),default:t(()=>[i(s(n.$t("appLayout.items.tasks")),1)]),_:1}),e(o,{key:"background-agents"},{icon:t(()=>[e(a(ne))]),default:t(()=>[r[6]||(r[6]=i("后台 Agent",-1))]),_:1}),e(o,{key:"artifacts"},{icon:t(()=>[e(a(ze))]),default:t(()=>[r[7]||(r[7]=i("交付物",-1))]),_:1})]),_:1}),e(D,{key:"g-advanced"},{title:t(()=>[l("span",oa,s(n.$t("appLayout.groups.advanced")),1)]),default:t(()=>[e(o,{key:"security"},{icon:t(()=>[e(a(re))]),default:t(()=>[i(s(n.$t("appLayout.items.security")),1)]),_:1}),e(o,{key:"ukey-sign"},{icon:t(()=>[e(a(ue))]),default:t(()=>[i(s(n.$t("appLayout.items.ukeySign")),1)]),_:1}),e(o,{key:"trust"},{icon:t(()=>[e(a(I))]),default:t(()=>[i(s(n.$t("appLayout.items.trust")),1)]),_:1}),e(o,{key:"audit"},{icon:t(()=>[e(a(Fe))]),default:t(()=>[i(s(n.$t("appLayout.items.audit")),1)]),_:1}),e(o,{key:"mtc"},{icon:t(()=>[e(a(I))]),default:t(()=>[i(s(n.$t("appLayout.items.mtc")),1)]),_:1}),e(o,{key:"mtc-audit"},{icon:t(()=>[e(a(I))]),default:t(()=>[i(s(n.$t("appLayout.items.mtcAudit","MTC 审计")),1)]),_:1}),e(o,{key:"multisig"},{icon:t(()=>[e(a(Z))]),default:t(()=>[i(s(n.$t("appLayout.items.multisig","M-of-N 多签")),1)]),_:1}),e(o,{key:"did"},{icon:t(()=>[e(a(Ve))]),default:t(()=>[i(s(n.$t("appLayout.items.did")),1)]),_:1}),e(o,{key:"permissions"},{icon:t(()=>[e(a(qe))]),default:t(()=>[i(s(n.$t("appLayout.items.permissions")),1)]),_:1}),e(o,{key:"p2p"},{icon:t(()=>[e(a(We))]),default:t(()=>[i(s(n.$t("appLayout.items.p2p")),1)]),_:1}),e(o,{key:"mobile-bridge"},{icon:t(()=>[e(a(ye))]),default:t(()=>[i(s(n.$t("appLayout.items.mobileBridge","移动桥")),1)]),_:1}),e(o,{key:"remote-session"},{icon:t(()=>[e(a(ce))]),default:t(()=>[i(s(n.$t("appLayout.items.remoteSession","远程会话")),1)]),_:1}),e(o,{key:"mobile-projects"},{icon:t(()=>[e(a(ye))]),default:t(()=>[i(s(n.$t("appLayout.items.mobileProjects","手机项目 (v0.2)")),1)]),_:1}),e(o,{key:"terminal"},{icon:t(()=>[e(a(ce))]),default:t(()=>[i(s(n.$t("appLayout.items.terminal","远程终端")),1)]),_:1}),e(o,{key:"backup"},{icon:t(()=>[e(a(de))]),default:t(()=>[i(s(n.$t("appLayout.items.backup")),1)]),_:1}),e(o,{key:"git"},{icon:t(()=>[e(a(le))]),default:t(()=>[i(s(n.$t("appLayout.items.git")),1)]),_:1}),e(o,{key:"projects"},{icon:t(()=>[e(a(He))]),default:t(()=>[i(s(n.$t("appLayout.items.projects")),1)]),_:1}),e(o,{key:"crosschain"},{icon:t(()=>[e(a(Je))]),default:t(()=>[i(s(n.$t("appLayout.items.crosschain")),1)]),_:1}),e(o,{key:"compliance"},{icon:t(()=>[e(a(I))]),default:t(()=>[i(s(n.$t("appLayout.items.compliance")),1)]),_:1}),e(o,{key:"privacy"},{icon:t(()=>[e(a(pe))]),default:t(()=>[i(s(n.$t("appLayout.items.privacy")),1)]),_:1}),e(o,{key:"inference"},{icon:t(()=>[e(a(Ge))]),default:t(()=>[i(s(n.$t("appLayout.items.inference")),1)]),_:1}),e(o,{key:"federation"},{icon:t(()=>[e(a(Ye))]),default:t(()=>[i(s(n.$t("appLayout.items.federation")),1)]),_:1})]),_:1}),e(D,{key:"g-enterprise"},{title:t(()=>[l("span",na,s(n.$t("appLayout.groups.enterprise")),1)]),default:t(()=>[e(o,{key:"wallet"},{icon:t(()=>[e(a(Ze))]),default:t(()=>[i(s(n.$t("appLayout.items.wallet")),1)]),_:1}),e(o,{key:"organization"},{icon:t(()=>[e(a(Z))]),default:t(()=>[i(s(n.$t("appLayout.items.organization")),1)]),_:1}),e(o,{key:"tenant"},{icon:t(()=>[e(a(Qe))]),default:t(()=>[i(s(n.$t("appLayout.items.tenant")),1)]),_:1}),e(o,{key:"sla"},{icon:t(()=>[e(a(ae))]),default:t(()=>[i(s(n.$t("appLayout.items.sla")),1)]),_:1}),e(o,{key:"analytics"},{icon:t(()=>[e(a(Xe))]),default:t(()=>[i(s(n.$t("appLayout.items.analytics")),1)]),_:1}),e(o,{key:"templates"},{icon:t(()=>[e(a(xe))]),default:t(()=>[i(s(n.$t("appLayout.items.templates")),1)]),_:1})]),_:1}),e(D,{key:"g-social"},{title:t(()=>[l("span",sa,s(n.$t("appLayout.groups.social")),1)]),default:t(()=>[e(o,{key:"community"},{icon:t(()=>[e(a(et))]),default:t(()=>[i(s(n.$t("appLayout.items.community")),1)]),_:1}),e(o,{key:"governance"},{icon:t(()=>[e(a(tt))]),default:t(()=>[i(s(n.$t("appLayout.items.governance")),1)]),_:1}),e(o,{key:"reputation"},{icon:t(()=>[e(a(at))]),default:t(()=>[i(s(n.$t("appLayout.items.reputation")),1)]),_:1}),e(o,{key:"recommend"},{icon:t(()=>[e(a(ot))]),default:t(()=>[i(s(n.$t("appLayout.items.recommend")),1)]),_:1})]),_:1}),e(D,{key:"g-media"},{title:t(()=>[l("span",ia,s(n.$t("appLayout.groups.media")),1)]),default:t(()=>[e(o,{key:"video"},{icon:t(()=>[e(a(Ct))]),default:t(()=>[i(s(n.$t("appLayout.items.video")),1)]),_:1})]),_:1}),e(D,{key:"g-extension"},{title:t(()=>[l("span",la,s(n.$t("appLayout.groups.extension")),1)]),default:t(()=>[e(o,{key:"rssfeed"},{icon:t(()=>[e(a(nt))]),default:t(()=>[i(s(n.$t("appLayout.items.rssfeed")),1)]),_:1}),e(o,{key:"webauthn"},{icon:t(()=>[e(a(ue))]),default:t(()=>[i(s(n.$t("appLayout.items.webauthn")),1)]),_:1})]),_:1}),a(u).isEmbedded?(c(),C(D,{key:"g-desktop"},{title:t(()=>[l("span",ra,s(n.$t("appLayout.groups.desktop")),1)]),default:t(()=>[e(o,{key:"desktop:hardware-wallet"},{icon:t(()=>[e(a(re))]),default:t(()=>[i(s(n.$t("appLayout.items.desktopHardware")),1)]),_:1}),e(o,{key:"desktop:backup-dashboard"},{icon:t(()=>[e(a(de))]),default:t(()=>[i(s(n.$t("appLayout.items.desktopBackup")),1)]),_:1}),e(o,{key:"desktop:llm-test-chat"},{icon:t(()=>[e(a(pe))]),default:t(()=>[i(s(n.$t("appLayout.items.desktopLlmTest")),1)]),_:1}),e(o,{key:"desktop:settings"},{icon:t(()=>[e(a(se))]),default:t(()=>[i(s(n.$t("appLayout.items.desktopSettings")),1)]),_:1})]),_:1})):M("",!0)],64))]),_:1},8,["selectedKeys","openKeys","theme","inline-collapsed"]),l("div",{class:J(["sidebar-footer",{collapsed:d.value}])},[e(ut,{status:B.value},null,8,["status"]),d.value?M("",!0):(c(),g("span",ua,s(z.value),1))],2)]),_:1},8,["collapsed"]),e(be,{class:"main-area"},{default:t(()=>[e(pt,{class:"app-header"},{default:t(()=>[l("div",ca,[l("div",{class:J(["scope-tag",y.value?"project":"global"])},[(c(),C(ht(y.value?a(Y):a(te)))),l("span",null,s(y.value?a(k).projectName||n.$t("appLayout.scope.fallbackProject"):n.$t("appLayout.scope.global")),1),y.value&&a(k).projectRoot?(c(),C(x,{key:0,title:a(k).projectRoot},{default:t(()=>[e(a(Et),{class:"info-icon"})]),_:1},8,["title"])):M("",!0)],2)]),l("div",da,[l("div",pa,[(c(!0),g(V,null,it(a($t),(U,ee)=>(c(),C(x,{key:ee,title:U.label},{default:t(()=>[l("button",{class:J(["theme-btn",{active:A.value===ee}]),"data-theme-key":ee,onClick:ga=>P(ee)},s(U.icon),11,ya)]),_:2},1032,["title"]))),128))]),e(x,{title:n.$t("language.label")},{default:t(()=>[l("button",{class:"lang-switch-btn","data-locale":a(W),onClick:me},[e(a(te),{class:"lang-switch-icon"}),l("span",fa,s(n.$t("language.switch")),1)],8,ma)]),_:1},8,["title"]),e(qt),a(u).isEmbedded?(c(),C(zt,{key:0})):M("",!0),l("span",ka,s(a(w)),1),a(u).isEmbedded?(c(),C(x,{key:1,title:n.$t("appLayout.shellSwitch")},{default:t(()=>[l("button",{type:"button",class:"shell-switch-btn",onClick:ke},[e(a(ce))])]),_:1},8,["title"])):M("",!0),e(dt,{color:f.value==="connected"?"green":f.value==="connecting"?"orange":"red",class:"ws-tag"},{default:t(()=>[i(s(f.value==="connected"?n.$t("appLayout.wsStatus.connected"):f.value==="connecting"?n.$t("appLayout.wsStatus.connecting"):n.$t("appLayout.wsStatus.disconnected")),1)]),_:1},8,["color"])])]),_:1}),e(mt,{class:"page-content"},{default:t(()=>[e(yt)]),_:1})]),_:1})]),_:1})}}},qa=he(_a,[["__scopeId","data-v-563989a5"]]);export{qa as default};
@@ -0,0 +1 @@
1
+ import{M as D}from"./MarkdownRenderer-DkcG_MxW.js";import{E as K,r as _,f as B,o as G,e as Q,M as w,R as v,c as r,N as o,u as i,Q as x,S as z,K as m,L as c,O as d,P as f,F as V}from"./vendor-BXcBOG8b.js";import{u as S,_ as W,d as R}from"./index-3RqDry-K.js";import{R as q}from"./icons-DlxlFL4g.js";import"./markdown-Bq2x0XsR.js";import"./markdown-DUKxbhE4.js";const H=K("artifacts",()=>{const A=_([]),t=_(!1),g=_(""),b=_(""),u=_(null),C=_(!1),I=B(()=>[...new Set(A.value.map(a=>a.kind).filter(Boolean))].sort());async function l(){const e=S();t.value=!0;try{const a={type:"artifact-list"};g.value&&(a.kind=g.value),b.value&&(a.session=b.value);const s=await e.sendRaw(a);s&&Array.isArray(s.artifacts)&&(A.value=[...s.artifacts].reverse())}catch{}finally{t.value=!1}}async function n(e){const a=S();C.value=!0,u.value={entry:e,previewable:!1};try{const s=await a.sendRaw({type:"artifact-content",artifactId:e.id});u.value={entry:e,previewable:s?.previewable===!0,encoding:s?.encoding||null,content:s?.content||"",truncated:s?.truncated===!0,reason:s?.reason||null}}catch(s){u.value={entry:e,previewable:!1,reason:s?.message||"preview failed"}}finally{C.value=!1}}function F(){u.value=null}const p=B(()=>{const e=u.value;return!e?.previewable||e.encoding!=="base64"?null:`data:${e.entry?.mime||"image/png"};base64,${e.content}`}),$=B(()=>{const e=u.value;return e?.previewable===!0&&e.encoding==="utf8"&&String(e.entry?.mime||"").toLowerCase()==="text/markdown"});async function k(e,a={}){if(!e?.id)return!1;const s=a.fetch||globalThis.fetch,P=a.document||globalThis.document,T=a.URL||globalThis.URL,O=(a.config||globalThis.window?.__CC_CONFIG__)??{};try{const E=await s(`/api/artifacts/${e.id}/download`,{headers:O.wsToken?{Authorization:`Bearer ${O.wsToken}`}:{}});if(!E.ok)return!1;const j=await E.blob(),U=T.createObjectURL(j),h=P.createElement("a");return h.href=U,h.download=e.title||e.id,P.body.appendChild(h),h.click(),h.remove(),T.revokeObjectURL(U),!0}catch{return!1}}async function y(e){const a=S();if(!e)return!1;try{const s=await a.sendRaw({type:"artifact-remove",artifactId:e});return u.value?.entry?.id===e&&(u.value=null),await l(),s?.found===!0}catch{return!1}}async function M(){const e=S();try{const a=await e.sendRaw({type:"artifact-clean"});return await l(),Number(a?.removed)||0}catch{return 0}}function L(e){const a=Number(e)||0;return a<1024?`${a} B`:a<1024*1024?`${(a/1024).toFixed(1)} KB`:`${(a/(1024*1024)).toFixed(1)} MB`}function N(e){switch(e){case"report":return"blue";case"patch":return"purple";case"screenshot":return"cyan";case"log":return"default";case"data":return"green";default:return"default"}}return{artifacts:A,loading:t,kindFilter:g,sessionFilter:b,kinds:I,preview:u,previewLoading:C,previewImageSrc:p,previewIsMarkdown:$,fetchArtifacts:l,openPreview:n,closePreview:F,removeArtifact:y,cleanExpired:M,downloadArtifact:k,formatSize:L,kindColor:N}}),J={class:"page-header"},X=["onClick"],Y=["src"],Z={key:1,class:"preview-markdown"},ee={key:2,class:"preview-text"},te={class:"preview-meta"},ne={key:0},ae={__name:"Artifacts",setup(A){const t=H(),g=[{title:"标题",key:"title",dataIndex:"title",ellipsis:!0},{title:"类型",key:"kind",dataIndex:"kind",width:110},{title:"MIME",dataIndex:"mime",width:160,ellipsis:!0},{title:"大小",key:"size",dataIndex:"size",width:90},{title:"发布时间",key:"createdAt",dataIndex:"createdAt",width:170},{title:"会话",dataIndex:"sessionId",width:160,ellipsis:!0},{title:"操作",key:"actions",width:150}],b=B(()=>t.kinds.map(l=>({label:l,value:l})));async function u(l){await t.removeArtifact(l)?R.success("已删除"):R.error("删除失败")}async function C(){const l=await t.cleanExpired();R.info(l>0?`清理了 ${l} 个过期交付物`:"没有过期交付物")}async function I(l){await t.downloadArtifact(l)||R.error("下载失败")}return G(()=>{t.fetchArtifacts()}),Q(()=>{t.closePreview()}),(l,n)=>{const F=m("a-select"),p=m("a-button"),$=m("a-popconfirm"),k=m("a-space"),y=m("a-tag"),M=m("a-table"),L=m("a-empty"),N=m("a-card");return c(),w("div",null,[v("div",J,[n[7]||(n[7]=v("div",null,[v("h2",{class:"page-title"},"交付物"),v("p",{class:"page-sub"}," agent 用 publish_artifact 发布的交付物(报告 / patch / 截图 / 日志),在这里预览与管理(cc artifacts 同源)。 ")],-1)),r(k,null,{default:o(()=>[r(F,{value:i(t).kindFilter,"onUpdate:value":n[0]||(n[0]=e=>i(t).kindFilter=e),style:{"min-width":"120px"},placeholder:"全部类型","allow-clear":"",options:b.value,onChange:n[1]||(n[1]=e=>i(t).fetchArtifacts())},null,8,["value","options"]),r($,{title:"删除所有过期交付物?",onConfirm:C},{default:o(()=>[r(p,null,{default:o(()=>[...n[5]||(n[5]=[d("清理过期",-1)])]),_:1})]),_:1}),r(p,{ghost:"",loading:i(t).loading,onClick:n[2]||(n[2]=e=>i(t).fetchArtifacts())},{icon:o(()=>[r(i(q))]),default:o(()=>[n[6]||(n[6]=d(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),r(M,{"data-source":i(t).artifacts,columns:g,"row-key":"id",size:"small",pagination:{pageSize:10,hideOnSinglePage:!0}},{bodyCell:o(({column:e,record:a})=>[e.key==="title"?(c(),w("a",{key:0,onClick:s=>i(t).openPreview(a)},f(a.title),9,X)):e.key==="kind"?(c(),x(y,{key:1,color:i(t).kindColor(a.kind)},{default:o(()=>[d(f(a.kind),1)]),_:2},1032,["color"])):e.key==="size"?(c(),w(V,{key:2},[d(f(i(t).formatSize(a.size)),1)],64)):e.key==="createdAt"?(c(),w(V,{key:3},[d(f((a.createdAt||"").replace("T"," ").slice(0,19)),1)],64)):e.key==="actions"?(c(),x(k,{key:4},{default:o(()=>[r(p,{size:"small",onClick:s=>i(t).openPreview(a)},{default:o(()=>[...n[8]||(n[8]=[d("预览",-1)])]),_:1},8,["onClick"]),r(p,{size:"small",onClick:s=>I(a)},{default:o(()=>[...n[9]||(n[9]=[d("下载",-1)])]),_:1},8,["onClick"]),r($,{title:"删除该交付物?",onConfirm:s=>u(a.id)},{default:o(()=>[r(p,{size:"small",danger:""},{default:o(()=>[...n[10]||(n[10]=[d("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:2},1024)):z("",!0)]),_:1},8,["data-source"]),i(t).preview?(c(),x(N,{key:0,size:"small",class:"preview-card",loading:i(t).previewLoading},{title:o(()=>[r(k,null,{default:o(()=>[v("span",null,f(i(t).preview.entry?.title),1),r(y,{color:i(t).kindColor(i(t).preview.entry?.kind)},{default:o(()=>[d(f(i(t).preview.entry?.kind),1)]),_:1},8,["color"]),r(y,{color:"default"},{default:o(()=>[d(f(i(t).preview.entry?.mime),1)]),_:1}),i(t).preview.truncated?(c(),x(y,{key:0,color:"warning"},{default:o(()=>[...n[11]||(n[11]=[d("已截断预览",-1)])]),_:1})):z("",!0)]),_:1})]),extra:o(()=>[r(k,null,{default:o(()=>[r(p,{size:"small",onClick:n[3]||(n[3]=e=>I(i(t).preview.entry))},{default:o(()=>[...n[12]||(n[12]=[d("下载",-1)])]),_:1}),r(p,{size:"small",onClick:n[4]||(n[4]=e=>i(t).closePreview())},{default:o(()=>[...n[13]||(n[13]=[d("关闭",-1)])]),_:1})]),_:1})]),default:o(()=>[i(t).previewImageSrc?(c(),w("img",{key:0,src:i(t).previewImageSrc,class:"preview-image",alt:"artifact preview"},null,8,Y)):i(t).previewIsMarkdown?(c(),w("div",Z,[r(D,{content:i(t).preview.content||""},null,8,["content"])])):i(t).preview.previewable?(c(),w("pre",ee,f(i(t).preview.content||"(空文件)"),1)):(c(),x(L,{key:3,description:i(t).preview.reason||"该类型不支持在线预览,可在本机用 cc artifacts open <id> 打开"},null,8,["description"])),v("div",te,[v("span",null,f(i(t).preview.entry?.id),1),i(t).preview.entry?.sessionId?(c(),w("span",ne," · session "+f(i(t).preview.entry.sessionId),1)):z("",!0),v("span",null," · sha256 "+f((i(t).preview.entry?.sha256||"").slice(0,12))+"…",1)])]),_:1},8,["loading"])):z("",!0)])}}},de=W(ae,[["__scopeId","data-v-c5692fe9"]]);export{de as default};
@@ -0,0 +1 @@
1
+ .page-header[data-v-c5692fe9]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.preview-card[data-v-c5692fe9]{margin-top:16px}.preview-text[data-v-c5692fe9]{max-height:480px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12px;margin:0}.preview-markdown[data-v-c5692fe9]{max-height:480px;overflow:auto}.preview-image[data-v-c5692fe9]{max-width:100%;max-height:480px;display:block}.preview-meta[data-v-c5692fe9]{margin-top:8px;color:#808080cc;font-size:12px}
@@ -0,0 +1 @@
1
+ .page-title[data-v-42ba1d8d]{margin:0;color:var(--text-primary);font-size:22px;font-weight:600}.page-sub[data-v-42ba1d8d]{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.audit-tabs[data-v-42ba1d8d] .ant-tabs-nav{margin-bottom:16px}.filter-bar[data-v-42ba1d8d]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.type-pill[data-v-42ba1d8d]{padding:8px 10px;border-radius:6px;background:#1677ff0a;border:1px solid var(--border-color);border-left:3px solid #1677ff;height:100%;text-align:center}.type-name[data-v-42ba1d8d]{color:var(--text-primary);font-size:12px;margin-top:4px}.type-count[data-v-42ba1d8d]{color:var(--text-primary);font-size:18px;font-weight:600;margin-top:2px}.bd-row[data-v-42ba1d8d]{display:flex;align-items:center;margin-bottom:8px}.details-pre[data-v-42ba1d8d]{margin:0;padding:8px 10px;background:var(--bg-base);border:1px solid var(--border-color);border-radius:4px;font-size:11px;max-height:300px;overflow:auto;color:var(--text-primary)}
@@ -0,0 +1 @@
1
+ import{X as De,t as te,_ as Ne,b as Fe,u as je,d as R}from"./index-3RqDry-K.js";import{u as Be}from"./useFs-KPklVptS.js";import{R as Je,aA as $e,V as de,d as Ue,an as Ve,A as Ke,f as Pe}from"./icons-DlxlFL4g.js";import{o as He,M as p,R as g,P as r,u as s,c as l,N as t,Q as x,S as k,K as _,r as L,L as u,O as y,F as z,Y as D,_ as We,f as U}from"./vendor-BXcBOG8b.js";import"./useShellMode-CgR0wCYM.js";const V=Object.freeze(["auth","permission","data","system","file","did","crypto","api"]),ee=Object.freeze(["low","medium","high","critical"]);function G(i,e=0){return typeof i=="number"&&Number.isFinite(i)?i:e}function fe(i){if(!i)return{noDb:!1,error:""};const e=De(i),d=/Database not available/i.test(e);return{noDb:d,error:d?"Database not available":""}}function Ye(i,e=0){if(!i||typeof i!="object")return null;const d=i.id||"";if(!d)return null;let b=i.details;if(typeof b=="string"&&b)try{b=JSON.parse(b)}catch{}const h=typeof i.success=="boolean"?i.success:i.success===1||i.success==="1"||i.success===!0,N=i.audit_mtc_event_id??i.auditMtcEventId??null;return{key:d,id:d,eventType:String(i.event_type??i.eventType??"").toLowerCase(),operation:String(i.operation||""),actor:i.actor??"",target:i.target??"",details:b??null,riskLevel:String(i.risk_level??i.riskLevel??"low").toLowerCase(),ipAddress:i.ip_address??i.ipAddress??"",userAgent:i.user_agent??i.userAgent??"",success:h,errorMessage:i.error_message??i.errorMessage??"",createdAt:i.created_at??i.createdAt??"",auditMtcEventId:N,_idx:e}}function qe(i){const e=te(i);return Array.isArray(e)?e.map(Ye).filter(Boolean):[]}const Qe={total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}};function Xe(i){const e=JSON.parse(JSON.stringify(Qe));for(const b of V)e.byEventType[b]=0;for(const b of ee)e.byRiskLevel[b]=0;const d=te(i);if(!d||typeof d!="object"||Array.isArray(d))return e;if(e.total=G(d.total,0),e.failures=G(d.failures,0),e.highRisk=G(d.highRisk,0),d.byEventType&&typeof d.byEventType=="object")for(const[b,h]of Object.entries(d.byEventType))typeof h=="number"&&Number.isFinite(h)&&(e.byEventType[b]=h);if(d.byRiskLevel&&typeof d.byRiskLevel=="object")for(const[b,h]of Object.entries(d.byRiskLevel))typeof h=="number"&&Number.isFinite(h)&&(e.byRiskLevel[b]=h);return e}function Ze(i){return!i||!i.auditMtcEventId?"none":"tracked"}function pe(i){if(i==null||i==="")return"—";const e=String(i),d=e.includes(" ")&&!e.includes("T")?e.replace(" ","T")+"Z":e,b=new Date(d);return isNaN(b.getTime())?e:b.toLocaleString("zh-CN",{hour12:!1})}const Ge={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},et={class:"page-title"},tt={class:"page-sub"},at={class:"type-name"},lt={class:"type-count"},ot={class:"filter-bar"},st={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},nt={style:{color:"var(--text-primary)","font-weight":"500","font-family":"monospace","font-size":"12px"}},it={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"2px"}},rt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ut={key:1,style:{color:"var(--text-muted)"}},ct={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},dt={key:1,style:{color:"var(--text-muted)"}},ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},pt={key:0,style:{"padding-top":"8px"}},yt={style:{"font-family":"monospace","font-size":"12px"}},vt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},_t={style:{"font-family":"monospace"}},mt={key:0,style:{"font-family":"monospace","font-size":"12px"}},bt={key:1,style:{color:"var(--text-muted)"}},gt={key:0,style:{"font-family":"monospace","font-size":"12px"}},kt={key:1,style:{color:"var(--text-muted)"}},ht={style:{"font-family":"monospace","font-size":"12px"}},xt={style:{"font-family":"monospace","font-size":"11px"}},Lt={style:{color:"#ff4d4f"}},Tt={class:"details-pre"},Ct={__name:"Audit",setup(i){const{t:e}=Fe(),d=je(),b=Be(),h=L(!1),N=L([]),m=L({total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}}),K=L({noDb:!1,error:""}),ae=L("events"),F=L(""),w=L(""),I=L(""),M=L(""),j=L(!1),P=L(!1),f=L(null),ye=U(()=>[{title:e("audit.logColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("audit.logColumns.eventType"),key:"eventType",width:"110px"},{title:e("audit.logColumns.operation"),key:"operation"},{title:e("audit.logColumns.actor"),key:"actor",width:"140px"},{title:e("audit.logColumns.target"),key:"target",width:"180px"},{title:e("audit.logColumns.riskLevel"),key:"riskLevel",width:"90px"},{title:e("audit.logColumns.success"),key:"success",width:"80px"},{title:e("audit.logColumns.mtc"),key:"mtc",width:"110px"},{title:e("audit.logColumns.action"),key:"action",width:"80px"}]),H=L({});function W(a){return a.auditMtcEventId&&H.value[a.id]||null}function ve(a){const o=W(a);return o?o.state==="staging"?e("audit.mtc.stagingLabel"):o.state==="batched"?e("audit.mtc.batchedLabel",{batchId:o.batchId||"?"}):e("audit.mtc.unknownLabel"):e("audit.mtc.signedNotChecked")}function _e(a){const o=W(a);return o?o.state==="staging"?"orange":o.state==="batched"?"green":"default":"blue"}function me(a){if(!a.auditMtcEventId)return"";const o=W(a),c=e("audit.mtc.tooltipBase",{id:a.auditMtcEventId});return o?o.state==="staging"?e("audit.mtc.tooltipStaging",{base:c}):o.state==="batched"?e("audit.mtc.tooltipBatched",{base:c,batchId:o.batchId,treeHead:o.treeHeadId||""}):c:e("audit.mtc.tooltipNotChecked",{base:c})}async function be(a){if(!a.auditMtcEventId)return;const o=a.auditMtcEventId.replace(/"/g,'\\"');try{const c=await d.execute(`audit mtc reconcile-check "${o}" --json`,8e3),C=te(c.output);if(!C){R.warning(e("audit.mtc.noJson"));return}const X=C.found?{state:"batched",batchId:C.batchId,treeHeadId:C.treeHeadId}:C.staging?{state:"staging"}:{state:"unknown"};H.value={...H.value,[a.id]:X}}catch(c){R.error(e("audit.mtc.checkFailed",{err:c?.message||c}))}}const Y=U(()=>m.value.total?(m.value.total-m.value.failures)/m.value.total*100:100),ge=U(()=>!!(w.value||I.value||M.value||j.value)),ke=U(()=>{let a=N.value;if(I.value&&(a=a.filter(o=>o.eventType===I.value)),M.value&&(a=a.filter(o=>o.riskLevel===M.value)),j.value&&(a=a.filter(o=>!o.success)),w.value){const o=w.value.toLowerCase();a=a.filter(c=>(c.operation||"").toLowerCase().includes(o)||(c.actor||"").toLowerCase().includes(o)||(c.target||"").toLowerCase().includes(o))}return a});function q(a){const o=`audit.type.${a}`,c=e(o);return c===o?a:c}function B(a){return{auth:"blue",permission:"purple",data:"cyan",system:"default",file:"green",did:"gold",crypto:"magenta",api:"volcano"}[a]||"default"}function le(a){return{auth:"#1677ff",permission:"#722ed1",data:"#13c2c2",system:"#888",file:"#52c41a",did:"#faad14",crypto:"#eb2f96",api:"#fa541c"}[a]||"#888"}function J(a){const o=`audit.risk.${a}`,c=e(o);return c===o?a:c}function Q(a){return{low:"default",medium:"gold",high:"orange",critical:"red"}[a]||"default"}function he(a){return{low:"#888",medium:"#faad14",high:"#fa8c16",critical:"#ff4d4f"}[a]||"#888"}function oe(a,o){return o?Math.round(a/o*100):0}function xe(a,o){return a?a.length<=o?a:a.slice(0,o)+"…":""}function Le(a){if(typeof a=="string")return a;try{return JSON.stringify(a,null,2)}catch{return String(a)}}let se=null;function Te(){clearTimeout(se),se=setTimeout(()=>{w.value=F.value.trim()},300)}function Ce(){w.value=F.value.trim()}async function ne(){h.value=!0,K.value={noDb:!1,error:""};try{const[a,o]=await Promise.all([d.execute("audit log --json -n 200",12e3).catch(()=>({output:""})),d.execute("audit stats --json",8e3).catch(()=>({output:""}))]),c=[a,o].map(C=>fe(C.output)).find(C=>C.noDb);c&&(K.value=c),N.value=qe(a.output),m.value=Xe(o.output)}catch(a){R.error(e("audit.messages.loadFailed",{err:a?.message||a}))}finally{h.value=!1}}function Se(a){f.value=a,P.value=!0}async function ze(){try{const{output:a}=await d.execute("audit export -f json -n 10000",2e4);if(fe(a).noDb){R.error(e("audit.messages.needInit"));return}if(!a.trim().startsWith("[")){R.error(e("audit.messages.exportFailed",{err:a.slice(0,120)}));return}const c=await b.saveText(a.trim(),{defaultPath:`audit-${new Date().toISOString().slice(0,10)}.json`,filters:[{name:"JSON",extensions:["json"]}]});if(c.canceled)return;R.success(c.path?e("audit.messages.exportOk",{path:c.path}):e("audit.messages.exportOkDefault"))}catch(a){R.error(e("audit.messages.exportFailed",{err:a?.message||a}))}}return He(ne),(a,o)=>{const c=_("a-button"),C=_("a-space"),X=_("a-alert"),O=_("a-statistic"),A=_("a-card"),E=_("a-col"),Z=_("a-row"),S=_("a-tag"),Ae=_("a-input-search"),$=_("a-radio-button"),ie=_("a-radio-group"),Ee=_("a-checkbox"),re=_("a-tooltip"),Re=_("a-table"),ue=_("a-tab-pane"),ce=_("a-progress"),we=_("a-tabs"),T=_("a-descriptions-item"),Ie=_("a-descriptions"),Me=_("a-modal");return u(),p("div",null,[g("div",Ge,[g("div",null,[g("h2",et,r(s(e)("audit.title")),1),g("p",tt,r(s(e)("audit.subtitle")),1)]),l(C,null,{default:t(()=>[l(c,{loading:h.value,onClick:ne},{icon:t(()=>[l(s(Je))]),default:t(()=>[y(" "+r(s(e)("audit.refresh")),1)]),_:1},8,["loading"]),l(c,{onClick:ze},{icon:t(()=>[l(s($e))]),default:t(()=>[y(" "+r(s(e)("audit.exportJson")),1)]),_:1})]),_:1})]),K.value.noDb?(u(),x(X,{key:0,type:"info","show-icon":"",message:s(e)("audit.noDb.message"),description:s(e)("audit.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):k("",!0),l(Z,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.total"),value:m.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[l(s(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.failures"),value:m.value.failures,"value-style":{color:m.value.failures>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ue))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.highRisk"),value:m.value.highRisk,"value-style":{color:m.value.highRisk>0?"#fa8c16":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ve))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.critical"),value:m.value.byRiskLevel.critical||0,"value-style":{color:(m.value.byRiskLevel.critical||0)>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:t(()=>[l(s(Ke))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(E,{xs:24,sm:8,lg:4},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.successRate"),value:Y.value,suffix:"%",precision:1,"value-style":{color:Y.value>=95?"#52c41a":Y.value>=80?"#faad14":"#ff4d4f",fontSize:"20px"}},{prefix:t(()=>[l(s(Pe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),l(A,{title:s(e)("audit.typeCatalogueTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:t(()=>[l(Z,{gutter:[12,12]},{default:t(()=>[(u(!0),p(z,null,D(s(V),n=>(u(),x(E,{key:n,xs:12,sm:8,lg:3},{default:t(()=>[g("div",{class:"type-pill",style:We({borderLeftColor:le(n)})},[l(S,{color:B(n),style:{"font-family":"monospace","font-size":"11px"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),g("div",at,r(q(n)),1),g("div",lt,r(m.value.byEventType[n]||0),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),l(we,{activeKey:ae.value,"onUpdate:activeKey":o[4]||(o[4]=n=>ae.value=n),class:"audit-tabs"},{default:t(()=>[l(ue,{key:"events",tab:s(e)("audit.tabs.events")},{default:t(()=>[g("div",ot,[l(Ae,{value:F.value,"onUpdate:value":o[0]||(o[0]=n=>F.value=n),placeholder:s(e)("audit.filter.searchPlaceholder"),"allow-clear":"",style:{"max-width":"280px"},onSearch:Ce,onInput:Te},null,8,["value","placeholder"]),l(ie,{value:I.value,"onUpdate:value":o[1]||(o[1]=n=>I.value=n),size:"small","button-style":"solid"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allTypes")),1)]),_:1}),(u(!0),p(z,null,D(s(V),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(q(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(ie,{value:M.value,"onUpdate:value":o[2]||(o[2]=n=>M.value=n),size:"small"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allRisks")),1)]),_:1}),(u(!0),p(z,null,D(s(ee),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(J(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(Ee,{checked:j.value,"onUpdate:checked":o[3]||(o[3]=n=>j.value=n)},{default:t(()=>[y(r(s(e)("audit.filter.failuresOnly")),1)]),_:1},8,["checked"])]),l(Re,{columns:ye.value,"data-source":ke.value,pagination:{pageSize:20,showTotal:n=>s(e)("audit.totals.rows",{count:n})},size:"small",loading:h.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:n,record:v})=>[n.key==="createdAt"?(u(),p("span",st,r(s(pe)(v.createdAt)),1)):k("",!0),n.key==="eventType"?(u(),x(S,{key:1,color:B(v.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(v.eventType),1)]),_:2},1032,["color"])):k("",!0),n.key==="operation"?(u(),p(z,{key:2},[g("span",nt,r(v.operation),1),v.errorMessage?(u(),p("div",it,r(v.errorMessage),1)):k("",!0)],64)):k("",!0),n.key==="actor"?(u(),p(z,{key:3},[v.actor?(u(),p("span",rt,r(v.actor),1)):(u(),p("span",ut,"—"))],64)):k("",!0),n.key==="target"?(u(),p(z,{key:4},[v.target?(u(),p("span",ct,r(xe(v.target,32)),1)):(u(),p("span",dt,"—"))],64)):k("",!0),n.key==="riskLevel"?(u(),x(S,{key:5,color:Q(v.riskLevel)},{default:t(()=>[y(r(J(v.riskLevel)),1)]),_:2},1032,["color"])):k("",!0),n.key==="success"?(u(),x(S,{key:6,color:v.success?"green":"red"},{default:t(()=>[y(r(v.success?"OK":"FAIL"),1)]),_:2},1032,["color"])):k("",!0),n.key==="mtc"?(u(),p(z,{key:7},[s(Ze)(v)==="none"?(u(),x(re,{key:0,title:s(e)("audit.mtc.noneTooltip")},{default:t(()=>[l(S,{color:"default"},{default:t(()=>[...o[6]||(o[6]=[y("—",-1)])]),_:1})]),_:1},8,["title"])):(u(),x(re,{key:1,title:me(v)},{default:t(()=>[l(S,{color:_e(v),style:{cursor:"pointer"},onClick:Oe=>be(v)},{default:t(()=>[y(r(ve(v)),1)]),_:2},1032,["color","onClick"])]),_:2},1032,["title"]))],64)):k("",!0),n.key==="action"?(u(),x(c,{key:8,size:"small",type:"link",onClick:Oe=>Se(v)},{default:t(()=>[y(r(s(e)("audit.rowAction.details")),1)]),_:1},8,["onClick"])):k("",!0)]),emptyText:t(()=>[g("div",ft,[l(s(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),y(" "+r(ge.value?s(e)("audit.empty.filtered"):s(e)("audit.empty.noEvents")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(ue,{key:"breakdown",tab:s(e)("audit.tabs.breakdown")},{default:t(()=>[l(Z,{gutter:[16,16]},{default:t(()=>[l(E,{xs:24,lg:12},{default:t(()=>[l(A,{title:s(e)("audit.breakdown.byType"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,D(s(V),n=>(u(),p("div",{key:n,class:"bd-row"},[l(S,{color:B(n),style:{"min-width":"80px","text-align":"center","font-family":"monospace"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),l(ce,{percent:oe(m.value.byEventType[n]||0,m.value.total),"stroke-color":le(n),format:()=>`${m.value.byEventType[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),l(E,{xs:24,lg:12},{default:t(()=>[l(A,{title:s(e)("audit.breakdown.byRisk"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,D(s(ee),n=>(u(),p("div",{key:n,class:"bd-row"},[l(S,{color:Q(n),style:{"min-width":"80px","text-align":"center"}},{default:t(()=>[y(r(J(n)),1)]),_:2},1032,["color"]),l(ce,{percent:oe(m.value.byRiskLevel[n]||0,m.value.total),"stroke-color":he(n),format:()=>`${m.value.byRiskLevel[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),l(Me,{open:P.value,"onUpdate:open":o[5]||(o[5]=n=>P.value=n),title:s(e)("audit.details.title",{id:f.value?.id?.slice(0,8)||""}),width:720,footer:null},{default:t(()=>[f.value?(u(),p("div",pt,[l(Ie,{column:2,size:"small",bordered:""},{default:t(()=>[l(T,{label:s(e)("audit.details.id"),span:2},{default:t(()=>[g("span",yt,r(f.value.id),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.eventType")},{default:t(()=>[l(S,{color:B(f.value.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(f.value.eventType),1)]),_:1},8,["color"]),g("span",vt,r(q(f.value.eventType)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.riskLevel")},{default:t(()=>[l(S,{color:Q(f.value.riskLevel)},{default:t(()=>[y(r(J(f.value.riskLevel)),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.operation"),span:2},{default:t(()=>[g("span",_t,r(f.value.operation),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.status")},{default:t(()=>[l(S,{color:f.value.success?"green":"red"},{default:t(()=>[y(r(f.value.success?s(e)("audit.details.success"):s(e)("audit.details.failure")),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.time")},{default:t(()=>[y(r(s(pe)(f.value.createdAt)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.actor")},{default:t(()=>[f.value.actor?(u(),p("span",mt,r(f.value.actor),1)):(u(),p("span",bt,"—"))]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.target")},{default:t(()=>[f.value.target?(u(),p("span",gt,r(f.value.target),1)):(u(),p("span",kt,"—"))]),_:1},8,["label"]),f.value.ipAddress?(u(),x(T,{key:0,label:s(e)("audit.details.ip")},{default:t(()=>[g("span",ht,r(f.value.ipAddress),1)]),_:1},8,["label"])):k("",!0),f.value.userAgent?(u(),x(T,{key:1,label:s(e)("audit.details.userAgent")},{default:t(()=>[g("span",xt,r(f.value.userAgent),1)]),_:1},8,["label"])):k("",!0),f.value.errorMessage?(u(),x(T,{key:2,label:s(e)("audit.details.errorMessage"),span:2},{default:t(()=>[g("span",Lt,r(f.value.errorMessage),1)]),_:1},8,["label"])):k("",!0),f.value.details?(u(),x(T,{key:3,label:s(e)("audit.details.details"),span:2},{default:t(()=>[g("pre",Tt,r(Le(f.value.details)),1)]),_:1},8,["label"])):k("",!0)]),_:1})])):k("",!0)]),_:1},8,["open","title"])])}}},wt=Ne(Ct,[["__scopeId","data-v-42ba1d8d"]]);export{wt as default};
@@ -0,0 +1 @@
1
+ import{E as ee,r as c,f as Z,w as te,o as ne,e as ae,M as j,R as P,c as d,N as l,u,Q as M,S as x,K as _,L as g,O as m,F as W,P as h,n as se}from"./vendor-BXcBOG8b.js";import{u as b,_ as le,d as D}from"./index-3RqDry-K.js";import{R as oe}from"./icons-DlxlFL4g.js";function R(y,t={}){return{type:y,...t}}function ue(y){if(typeof y!="object"||y===null)return!1;const t=y;return(t.type==="bg-event"||t.type==="bg-log")&&typeof t.bgId=="string"}const J=200,Y=4e5,re=ee("backgroundAgents",()=>{const y=c([]),t=c(!1),C=c(!0),r=c(null),E=c(null),A=c(!1),$=c(""),S=c([]);let T=null,w=null;const H=Z(()=>y.value.filter(n=>n.status==="running"));async function v(){const n=b();t.value=!0;try{const a=await n.sendRaw(R("bg-list",{all:C.value}));a&&Array.isArray(a.sessions)&&(y.value=a.sessions)}catch{}finally{t.value=!1}}function F(n){S.value.push(n),S.value.length>J&&S.value.splice(0,S.value.length-J)}function G(n){$.value+=n,$.value.length>Y&&($.value=$.value.slice(-Y))}function L(){if(w)return;w=b().onMessage(a=>{!ue(a)||a.bgId!==r.value||(a.type==="bg-log"&&typeof a.chunk=="string"?G(a.chunk):a.type==="bg-event"&&a.event&&(F(a.event),a.event.type==="transport-closed"?(A.value=!0,v()):(a.event.type==="turn-started"||a.event.type==="turn-ended"||a.event.type==="idle")&&v()))})}async function B(n){const a=b();r.value&&r.value!==n&&await O();const o=await a.sendRaw(R("bg-attach",{bgId:n,lines:200}));return r.value=n,E.value=o?.hello||null,A.value=!1,o?.reattached||($.value=typeof o?.log=="string"?o.log:"",S.value=[]),L(),o}async function N(n){const a=b(),o=String(n||"").trim();return!r.value||!o?!1:(await a.sendRaw(R("bg-prompt",{bgId:r.value,text:o})),!0)}async function I(){const n=b();r.value&&await n.sendRaw(R("bg-stop-turn",{bgId:r.value}))}async function O(){const n=b(),a=r.value;if(r.value=null,E.value=null,A.value=!1,a)try{await n.sendRaw(R("bg-detach",{bgId:a}))}catch{}}async function K(n,a){const o=b(),p=String(a||"").trim();return!n||!p?!1:(await o.sendRaw(R("bg-rename",{bgId:n,title:p})),await v(),!0)}async function q(n,a){const o=b(),p=String(a||"").trim();if(!n||!p)return null;const X=await o.sendRaw(R("bg-resume",{bgId:n,text:p}));return await v(),X?.session||null}async function s(n){const a=b(),o=n||r.value;if(o)try{await a.sendRaw(R("bg-stop",{bgId:o}))}finally{r.value===o&&(r.value=null,E.value=null),await v()}}function e(n=5e3){V(),v(),T=setInterval(v,n)}function V(){T&&(clearInterval(T),T=null)}async function k(){V(),w&&(w(),w=null),await O()}function z(n){switch(n){case"running":return"processing";case"completed":return"success";case"failed":return"error";case"stopped":return"warning";case"lost":return"error";default:return"default"}}function U(n,a=Date.now()){const o=n?.endedAt||a,p=Math.max(0,o-(n?.startedAt||o));return p<6e4?`${Math.round(p/1e3)}s`:p<36e5?`${Math.floor(p/6e4)}m ${Math.round(p%6e4/1e3)}s`:`${Math.floor(p/36e5)}h ${Math.floor(p%36e5/6e4)}m`}return{sessions:y,loading:t,showAll:C,running:H,attachedId:r,attachedHello:E,transportClosed:A,logText:$,events:S,fetchSessions:v,attach:B,sendPrompt:N,stopTurn:I,detach:O,renameSession:K,resumeSession:q,stopSession:s,startPolling:e,stopPolling:V,teardown:k,getStatusColor:z,formatElapsed:U}}),ie={class:"page-header"},de={key:0,class:"event-line"},ce={class:"prompt-row"},pe={__name:"BackgroundAgents",setup(y){const t=re(),C=c(""),r=c(null),E=[{title:"ID",dataIndex:"id",key:"id",ellipsis:!0},{title:"状态",key:"status",width:160},{title:"标题",dataIndex:"title",key:"title",ellipsis:!0},{title:"轮次",dataIndex:"turnCount",key:"turnCount",width:70},{title:"耗时",key:"elapsed",width:100},{title:"操作",key:"actions",width:170}],A=Z(()=>t.events.length?t.events[t.events.length-1]:null);function $(s){switch(s.type){case"turn-started":return`第 ${s.turn} 轮开始${s.prompt?`:${s.prompt}`:""}`;case"turn-ended":return`第 ${s.turn} 轮结束(exit ${s.exitCode})`;case"idle":return"会话空闲,等待 follow-up prompt";case"accepted":return`prompt 已排队(#${s.queued})`;case"stopping":return"正在停止当前轮";case"transport-closed":return"会话已收尾,连接关闭";case"error":return`错误:${s.message}`;default:return s.type}}async function S(s){try{await t.attach(s)}catch(e){D.error(`接管失败:${e.message}`)}}async function T(){const s=C.value;if(s.trim())try{await t.sendPrompt(s),C.value=""}catch(e){D.error(`发送失败:${e.message}`)}}const w=c(!1),H=c(!1),v=c("");let F=null;function G(s){F=s.id,v.value=s.title||"",w.value=!0}async function L(){if(v.value.trim()){H.value=!0;try{await t.renameSession(F,v.value),w.value=!1}catch(s){D.error(`重命名失败:${s.message}`)}finally{H.value=!1}}}const B=c(!1),N=c(!1),I=c("");let O=null;function K(s){O=s.id,I.value="",B.value=!0}async function q(){if(I.value.trim()){N.value=!0;try{const s=await t.resumeSession(O,I.value);B.value=!1,s&&D.success(`已续跑为 ${s.id}`)}catch(s){D.error(`续跑失败:${s.message}`)}finally{N.value=!1}}}return te(()=>t.logText,async()=>{await se(),r.value&&(r.value.scrollTop=r.value.scrollHeight)}),ne(()=>t.startPolling(5e3)),ae(()=>t.teardown()),(s,e)=>{const V=_("a-switch"),k=_("a-button"),z=_("a-space"),U=_("a-tag"),n=_("a-popconfirm"),a=_("a-table"),o=_("a-input"),p=_("a-card"),X=_("a-modal");return g(),j("div",null,[P("div",ie,[e[11]||(e[11]=P("div",null,[P("h2",{class:"page-title"},"后台 Agent"),P("p",{class:"page-sub"}," 查看 cc agent --bg 后台会话,实时跟随日志并交互接管(follow-up prompt / 停止本轮)。 ")],-1)),d(z,null,{default:l(()=>[d(V,{checked:u(t).showAll,"onUpdate:checked":e[0]||(e[0]=i=>u(t).showAll=i),"checked-children":"全部","un-checked-children":"运行中",onChange:e[1]||(e[1]=i=>u(t).fetchSessions())},null,8,["checked"]),d(k,{ghost:"",loading:u(t).loading,onClick:e[2]||(e[2]=i=>u(t).fetchSessions())},{icon:l(()=>[d(u(oe))]),default:l(()=>[e[10]||(e[10]=m(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),d(a,{"data-source":u(t).sessions,columns:E,"row-key":"id",size:"small",pagination:{pageSize:8,hideOnSinglePage:!0},class:"bg-table"},{bodyCell:l(({column:i,record:f})=>[i.key==="status"?(g(),j(W,{key:0},[d(U,{color:u(t).getStatusColor(f.status)},{default:l(()=>[m(h(f.status),1)]),_:2},1032,["color"]),f.phase?(g(),M(U,{key:0,color:"default"},{default:l(()=>[m(h(f.phase),1)]),_:2},1024)):x("",!0)],64)):i.key==="elapsed"?(g(),j(W,{key:1},[m(h(u(t).formatElapsed(f)),1)],64)):i.key==="actions"?(g(),M(z,{key:2},{default:l(()=>[d(k,{size:"small",type:"primary",disabled:f.status!=="running"||!f.interactive,onClick:Q=>S(f.id)},{default:l(()=>[m(h(u(t).attachedId===f.id?"已连接":"接管"),1)]),_:2},1032,["disabled","onClick"]),d(k,{size:"small",onClick:Q=>G(f)},{default:l(()=>[...e[12]||(e[12]=[m("重命名",-1)])]),_:1},8,["onClick"]),f.status!=="running"&&f.sessionId?(g(),M(k,{key:0,size:"small",onClick:Q=>K(f)},{default:l(()=>[...e[13]||(e[13]=[m(" 续跑 ",-1)])]),_:1},8,["onClick"])):x("",!0),f.status==="running"?(g(),M(n,{key:1,title:"终止整个后台会话?",onConfirm:Q=>u(t).stopSession(f.id)},{default:l(()=>[d(k,{size:"small",danger:""},{default:l(()=>[...e[14]||(e[14]=[m("终止",-1)])]),_:1})]),_:1},8,["onConfirm"])):x("",!0)]),_:2},1024)):x("",!0)]),_:1},8,["data-source"]),u(t).attachedId?(g(),M(p,{key:0,size:"small",class:"attach-card"},{title:l(()=>[d(z,null,{default:l(()=>[P("span",null,h(u(t).attachedId),1),u(t).attachedHello?(g(),M(U,{key:0,color:"processing"},{default:l(()=>[m(" turn "+h(u(t).attachedHello.turn)+" · "+h(u(t).attachedHello.phase),1)]),_:1})):x("",!0),u(t).transportClosed?(g(),M(U,{key:1,color:"warning"},{default:l(()=>[...e[15]||(e[15]=[m("会话已结束",-1)])]),_:1})):x("",!0)]),_:1})]),extra:l(()=>[d(z,null,{default:l(()=>[d(k,{size:"small",disabled:u(t).transportClosed,onClick:e[3]||(e[3]=i=>u(t).stopTurn())},{default:l(()=>[...e[16]||(e[16]=[m("停止本轮",-1)])]),_:1},8,["disabled"]),d(k,{size:"small",onClick:e[4]||(e[4]=i=>u(t).detach())},{default:l(()=>[...e[17]||(e[17]=[m("断开",-1)])]),_:1})]),_:1})]),default:l(()=>[P("pre",{ref_key:"logPane",ref:r,class:"log-pane"},h(u(t).logText||"(暂无输出)"),513),A.value?(g(),j("div",de," — "+h($(A.value)),1)):x("",!0),P("div",ce,[d(o,{value:C.value,"onUpdate:value":e[5]||(e[5]=i=>C.value=i),placeholder:"输入 follow-up prompt,回车发送到该后台会话",disabled:u(t).transportClosed,onPressEnter:T},null,8,["value","disabled"]),d(k,{type:"primary",disabled:u(t).transportClosed||!C.value.trim(),onClick:T},{default:l(()=>[...e[18]||(e[18]=[m(" 发送 ",-1)])]),_:1},8,["disabled"])])]),_:1})):x("",!0),d(X,{open:w.value,"onUpdate:open":e[7]||(e[7]=i=>w.value=i),title:"重命名后台会话","confirm-loading":H.value,onOk:L},{default:l(()=>[d(o,{value:v.value,"onUpdate:value":e[6]||(e[6]=i=>v.value=i),placeholder:"新标题",onPressEnter:L},null,8,["value"])]),_:1},8,["open","confirm-loading"]),d(X,{open:B.value,"onUpdate:open":e[9]||(e[9]=i=>B.value=i),title:"续跑该会话(新的后台运行,续接同一对话)","confirm-loading":N.value,onOk:q},{default:l(()=>[d(o,{value:I.value,"onUpdate:value":e[8]||(e[8]=i=>I.value=i),placeholder:"输入要继续执行的 prompt",onPressEnter:q},null,8,["value"])]),_:1},8,["open","confirm-loading"])])}}},ge=le(pe,[["__scopeId","data-v-da096c10"]]);export{ge as default};
@@ -0,0 +1 @@
1
+ .bg-table[data-v-da096c10]{margin-bottom:16px}.attach-card[data-v-da096c10]{margin-top:8px}.log-pane[data-v-da096c10]{max-height:360px;overflow:auto;background:#0000000a;padding:8px 12px;border-radius:6px;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all}.event-line[data-v-da096c10]{color:#00000073;font-size:12px;margin:4px 0}.prompt-row[data-v-da096c10]{display:flex;gap:8px;margin-top:8px}
@@ -0,0 +1 @@
1
+ [data-v-9db8d2e8] .ant-table{background:transparent}[data-v-9db8d2e8] .ant-tabs-card>.ant-tabs-nav .ant-tabs-tab{background:var(--bg-card);border-color:var(--border-color)}[data-v-9db8d2e8] .ant-tabs-card>.ant-tabs-nav .ant-tabs-tab-active{background:var(--bg-card-hover);border-bottom-color:var(--bg-card-hover)}[data-v-9db8d2e8] .ant-select-selector{background:var(--bg-card)!important;border-color:var(--border-color)!important}
@@ -0,0 +1 @@
1
+ import{_ as Ue,b as Ke,u as Ve,t as Je,d as xe}from"./index-3RqDry-K.js";import{u as qe}from"./useFs-KPklVptS.js";import{R as Ge,aA as He,at as he,_ as re,q as I,aT as K,aR as Qe}from"./icons-DlxlFL4g.js";import{o as We,M as i,R as f,P as n,u as a,c as o,N as s,r as c,K as y,L as u,O as b,Q as _,S as r,F as Xe,f as pe}from"./vendor-BXcBOG8b.js";import"./useShellMode-CgR0wCYM.js";const de=["B","KB","MB","GB","TB","PB","EB"];function we(D){if(D==null||isNaN(D))return"-";const e=Number(D);if(e<0)return"-";if(e===0)return"0 B";let d=Math.floor(Math.log(e)/Math.log(1024));return d<0&&(d=0),d>=de.length&&(d=de.length-1),(e/Math.pow(1024,d)).toFixed(d>0?1:0)+" "+de[d]}const Ye={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ze={class:"page-title"},ea={class:"page-sub"},aa={key:0,style:{"text-align":"center",padding:"30px"}},ta={key:0,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},oa={key:1},sa={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},la={key:3,style:{"margin-top":"16px"}},na={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},ca={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},ua={key:4,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},ia={style:{color:"var(--text-secondary)"}},ra={key:0,style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px","margin-top":"8px"}},pa={style:{"font-family":"monospace"}},da={key:0},va={key:1,style:{"margin-top":"12px"}},fa={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},ya={key:0,style:{"text-align":"center",padding:"30px"}},ba={key:0,style:{"margin-bottom":"16px"}},ka={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},ga={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},ma={key:0,style:{"font-family":"monospace","font-size":"12px"}},_a={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},xa={key:0,style:{"text-align":"center",padding:"30px"}},ha={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},wa={key:0,style:{"text-align":"center",padding:"30px"}},za={key:0,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},Ca={key:1},Sa={key:2},Aa={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},Ba={key:3,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},La={style:{"margin-bottom":"12px",color:"var(--text-secondary)"}},Ma={key:0,style:{"margin-top":"12px"}},Oa={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},Pa={__name:"Backup",setup(D){const{t:e}=Ke(),d=Ve(),ze=qe(),V=c(!1),ve=c("backup"),J=c(!1),q=c(!1),G=c(!1),M=c(""),g=c([]),h=c(""),Ce=pe(()=>[{title:e("backup.backupColumns.id"),key:"id"},{title:e("backup.backupColumns.size"),key:"size",width:120},{title:e("backup.backupColumns.createdAt"),key:"createdAt"},{title:e("backup.backupColumns.action"),key:"action",width:100}]);async function fe(){q.value=!0,M.value="";try{const{output:t}=await d.execute("backup list --json",15e3),l=T(t);Array.isArray(l)?g.value=l:l&&Array.isArray(l.backups)?g.value=l.backups:(g.value=[],t&&t.trim()&&(h.value=t))}catch(t){M.value=e("backup.messages.loadBackupsFailed",{err:t.message})}finally{q.value=!1}}async function Se(){G.value=!0,h.value="",M.value="";try{const{output:t}=await d.execute("backup create --json",3e4);h.value=t||e("backup.backup.createDefaultMessage"),await fe()}catch(t){h.value=e("backup.messages.createBackupFailed",{err:t.message})}finally{G.value=!1}}const H=c(!1),Q=c(!1),w=c(null),z=c("");function Ae(t){w.value=t,z.value="",H.value=!0}async function Be(){if(w.value){Q.value=!0,z.value="";try{const{output:t}=await d.execute(`backup restore ${w.value.id}`,6e4);z.value=t||e("backup.backup.restoreDefaultMessage")}catch(t){z.value=e("backup.messages.restoreFailed",{err:t.message})}finally{Q.value=!1}}}const W=c(!1),R=c(""),O=c(!1),N=c(""),j=c(0),X=c(""),x=c(""),Y=c(!1),Z=c(!1),C=c([]),Le=pe(()=>[{title:e("backup.conflictColumns.path"),key:"path"},{title:e("backup.conflictColumns.type"),key:"type",width:120}]);async function ee(){W.value=!0,R.value="";try{const{output:t}=await d.execute("sync status --json",15e3),l=T(t);l?(O.value=l.online||l.synced||l.status==="online"||!1,N.value=O.value?e("backup.sync.synced"):e("backup.sync.notSynced"),j.value=l.pending??l.pendingChanges??0,X.value=l.lastSync||l.lastSyncTime||""):Me(t)}catch(t){R.value=e("backup.messages.loadSyncFailed",{err:t.message})}finally{W.value=!1}}function Me(t){if(!t){N.value=e("backup.sync.unknown");return}O.value=/synced|online|up.to.date/i.test(t),N.value=O.value?e("backup.sync.synced"):e("backup.sync.notSynced");const l=t.match(/pending[:\s]+(\d+)/i);j.value=l?parseInt(l[1]):0;const k=t.match(/last[:\s]+(.+)/i);k&&(X.value=k[1].trim())}async function Oe(){Y.value=!0,x.value="";try{const{output:t}=await d.execute("sync push",3e4);x.value=t||e("backup.sync.pushDefaultMessage"),await ee()}catch(t){x.value=e("backup.messages.pushFailed",{err:t.message})}finally{Y.value=!1}}async function Pe(){Z.value=!0,x.value="";try{const{output:t}=await d.execute("sync pull",3e4);x.value=t||e("backup.sync.pullDefaultMessage"),await ee()}catch(t){x.value=e("backup.messages.pullFailed",{err:t.message})}finally{Z.value=!1}}async function Fe(){try{const{output:t}=await d.execute("sync conflicts --json",15e3),l=T(t);Array.isArray(l)?C.value=l:l&&Array.isArray(l.conflicts)?C.value=l.conflicts:C.value=[]}catch{C.value=[]}}const ae=c(!1),E=c(""),S=c(!1),te=c(""),oe=c(!1),P=c(""),A=c([]),Te=pe(()=>[{title:e("backup.pinColumns.cid"),key:"cid"},{title:e("backup.pinColumns.name"),key:"name"},{title:e("backup.pinColumns.size"),key:"size",width:120},{title:e("backup.pinColumns.pinnedAt"),key:"pinnedAt"},{title:e("backup.pinColumns.action"),key:"action",width:120}]);async function Ie(){ae.value=!0,E.value="";try{const{output:t}=await d.execute("ipfs status --json",15e3),l=T(t);if(l)S.value=l.online||l.status==="online"||l.connected||!1,te.value=l.peerId||l.id||"";else{S.value=t?/online|connected|running/i.test(t):!1;const k=t?t.match(/(?:peer\s*id|id)[:\s]+(\S+)/i):null;te.value=k?k[1]:""}}catch(t){E.value=e("backup.messages.loadIpfsFailed",{err:t.message})}finally{ae.value=!1}}async function se(){oe.value=!0,P.value="";try{const{output:t}=await d.execute("ipfs pins --json",15e3),l=T(t);Array.isArray(l)?A.value=l:l&&Array.isArray(l.pins)?A.value=l.pins:A.value=[]}catch(t){P.value=e("backup.messages.loadPinsFailed",{err:t.message})}finally{oe.value=!1}}const le=c(!1),ne=c(!1),$=c(""),F=c("");async function ye(){if($.value.trim()){ne.value=!0,F.value="";try{const{output:t}=await d.execute(`ipfs pin "${$.value.trim()}"`,3e4);F.value=t||e("backup.ipfs.pinDefaultSuccess"),await se()}catch(t){F.value=e("backup.messages.pinFailed",{err:t.message})}finally{ne.value=!1}}}async function De(t){try{await d.execute(`ipfs unpin ${t.cid}`,15e3),await se()}catch(l){P.value=e("backup.messages.unpinFailed",{err:l.message})}}function T(t){return Je(t)}async function Re(){if(g.value.length){V.value=!0;try{const t=await ze.saveJson({schema:1,exportedAt:new Date().toISOString(),count:g.value.length,backups:g.value},{defaultPath:`backup-list-${new Date().toISOString().slice(0,10)}.json`});if(t.canceled)return;xe.success(t.path?e("backup.messages.exportOk",{count:g.value.length,path:t.path}):e("backup.messages.exportOkDefault"))}catch(t){xe.error(e("backup.messages.exportFailed",{err:t.message||t}))}finally{V.value=!1}}}async function be(){J.value=!0;try{await Promise.all([fe(),ee(),Fe(),Ie(),se()])}finally{J.value=!1}}return We(be),(t,l)=>{const k=y("a-button"),ce=y("a-space"),U=y("a-spin"),ke=y("a-empty"),ue=y("a-table"),m=y("a-card"),ge=y("a-modal"),ie=y("a-tab-pane"),B=y("a-statistic"),L=y("a-col"),me=y("a-row"),_e=y("a-tag"),Ne=y("a-popconfirm"),je=y("a-input"),Ee=y("a-tabs");return u(),i("div",null,[f("div",Ye,[f("div",null,[f("h2",Ze,n(a(e)("backup.title")),1),f("p",ea,n(a(e)("backup.subtitle")),1)]),o(k,{type:"primary",ghost:"",loading:J.value,onClick:be},{icon:s(()=>[o(a(Ge))]),default:s(()=>[b(" "+n(a(e)("backup.refresh")),1)]),_:1},8,["loading"])]),o(Ee,{activeKey:ve.value,"onUpdate:activeKey":l[4]||(l[4]=p=>ve.value=p),type:"card"},{default:s(()=>[o(ie,{key:"backup"},{tab:s(()=>[o(a(re)),b(" "+n(a(e)("backup.tabs.backup")),1)]),default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{title:s(()=>[o(ce,null,{default:s(()=>[o(a(re)),f("span",null,n(a(e)("backup.backup.cardTitle")),1)]),_:1})]),extra:s(()=>[o(ce,null,{default:s(()=>[o(k,{disabled:!g.value.length,loading:V.value,onClick:Re},{icon:s(()=>[o(a(He))]),default:s(()=>[b(" "+n(a(e)("backup.backup.exportButton")),1)]),_:1},8,["disabled","loading"]),o(k,{type:"primary",loading:G.value,onClick:Se},{icon:s(()=>[o(a(he))]),default:s(()=>[b(" "+n(a(e)("backup.backup.createButton")),1)]),_:1},8,["loading"])]),_:1})]),default:s(()=>[q.value?(u(),i("div",aa,[o(U)])):g.value.length===0&&!h.value?(u(),_(ke,{key:1,description:a(e)("backup.backup.emptyText")},null,8,["description"])):r("",!0),g.value.length>0?(u(),_(ue,{key:2,columns:Ce.value,"data-source":g.value,pagination:!1,size:"small","row-key":"id"},{bodyCell:s(({column:p,record:v})=>[p.key==="id"?(u(),i("span",ta,n(v.id.length>20?v.id.slice(0,20)+"...":v.id),1)):r("",!0),p.key==="size"?(u(),i("span",oa,n(a(we)(v.size)),1)):r("",!0),p.key==="createdAt"?(u(),i("span",sa,n(v.createdAt||"-"),1)):r("",!0),p.key==="action"?(u(),_(k,{key:3,size:"small",type:"link",onClick:$e=>Ae(v)},{default:s(()=>[b(n(a(e)("backup.backupColumns.restore")),1)]),_:1},8,["onClick"])):r("",!0)]),_:1},8,["columns","data-source"])):r("",!0),h.value?(u(),i("div",la,[f("div",na,n(a(e)("backup.backup.lastResultLabel")),1),f("pre",ca,n(h.value),1)])):r("",!0),M.value?(u(),i("div",ua,n(M.value),1)):r("",!0)]),_:1}),o(ge,{open:H.value,"onUpdate:open":l[0]||(l[0]=p=>H.value=p),title:a(e)("backup.backup.restoreTitle"),"ok-text":a(e)("backup.backup.restoreOk"),"cancel-text":a(e)("common.cancel"),"confirm-loading":Q.value,onOk:Be,"ok-type":"danger"},{default:s(()=>[f("p",ia,n(a(e)("backup.backup.restoreIntro")),1),w.value?(u(),i("div",ra,[f("div",null,[f("strong",null,n(a(e)("backup.backup.backupIdPrefix")),1),l[5]||(l[5]=b()),f("span",pa,n(w.value.id),1)]),w.value.createdAt?(u(),i("div",da,[f("strong",null,n(a(e)("backup.backup.createdAtPrefix")),1),b(" "+n(w.value.createdAt),1)])):r("",!0)])):r("",!0),z.value?(u(),i("div",va,[f("pre",fa,n(z.value),1)])):r("",!0)]),_:1},8,["open","title","ok-text","cancel-text","confirm-loading"])]),_:1}),o(ie,{key:"sync"},{tab:s(()=>[o(a(I)),b(" "+n(a(e)("backup.tabs.sync")),1)]),default:s(()=>[W.value?(u(),i("div",ya,[o(U)])):(u(),i(Xe,{key:1},[o(me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.sync.statusLabel"),value:N.value,"value-style":{color:O.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:s(()=>[o(a(I))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.sync.pendingLabel"),value:j.value,"value-style":{color:j.value>0?"#faad14":"#52c41a",fontSize:"16px"}},{prefix:s(()=>[o(a(I))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.sync.lastSyncLabel"),value:X.value||a(e)("backup.sync.noLastSync"),"value-style":{color:"var(--text-secondary)",fontSize:"16px"}},{prefix:s(()=>[o(a(I))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),o(ce,{style:{"margin-bottom":"16px"}},{default:s(()=>[o(k,{loading:Y.value,onClick:Oe,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(a(re))]),default:s(()=>[b(" "+n(a(e)("backup.sync.pushButton")),1)]),_:1},8,["loading"]),o(k,{loading:Z.value,onClick:Pe,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(a(I))]),default:s(()=>[b(" "+n(a(e)("backup.sync.pullButton")),1)]),_:1},8,["loading"])]),_:1}),x.value?(u(),i("div",ba,[f("div",ka,n(a(e)("backup.sync.outputLabel")),1),f("pre",ga,n(x.value),1)])):r("",!0),C.value.length>0?(u(),_(m,{key:1,title:a(e)("backup.sync.conflictsTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(ue,{columns:Le.value,"data-source":C.value,pagination:!1,size:"small","row-key":"path"},{bodyCell:s(({column:p,record:v})=>[p.key==="path"?(u(),i("span",ma,n(v.path),1)):r("",!0),p.key==="type"?(u(),_(_e,{key:1,color:"red"},{default:s(()=>[b(n(v.type||a(e)("backup.sync.conflictDefault")),1)]),_:2},1024)):r("",!0)]),_:1},8,["columns","data-source"])]),_:1},8,["title"])):r("",!0)],64)),R.value?(u(),i("div",_a,n(R.value),1)):r("",!0)]),_:1}),o(ie,{key:"ipfs"},{tab:s(()=>[o(a(K)),b(" "+n(a(e)("backup.tabs.ipfs")),1)]),default:s(()=>[o(m,{title:a(e)("backup.ipfs.statusCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:s(()=>[o(_e,{color:S.value?"green":"default"},{default:s(()=>[b(n(S.value?a(e)("backup.ipfs.online"):a(e)("backup.ipfs.offline")),1)]),_:1},8,["color"])]),default:s(()=>[ae.value?(u(),i("div",xa,[o(U)])):(u(),_(me,{key:1,gutter:[16,16]},{default:s(()=>[o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.ipfs.nodeStatusLabel"),value:S.value?a(e)("backup.ipfs.connected"):a(e)("backup.ipfs.disconnected"),"value-style":{color:S.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:s(()=>[o(a(K))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.ipfs.pinnedLabel"),value:A.value.length,"value-style":{fontSize:"16px"}},{prefix:s(()=>[o(a(K))]),_:1},8,["title","value"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.ipfs.peerIdLabel"),value:te.value||"-","value-style":{color:"var(--text-muted)",fontSize:"12px",fontFamily:"monospace"}},{prefix:s(()=>[o(a(K))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1})),E.value?(u(),i("div",ha,n(E.value),1)):r("",!0)]),_:1},8,["title"]),o(m,{title:a(e)("backup.ipfs.pinListTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:s(()=>[o(k,{size:"small",onClick:l[1]||(l[1]=p=>le.value=!0),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(a(he))]),default:s(()=>[b(" "+n(a(e)("backup.ipfs.pinFileButton")),1)]),_:1})]),default:s(()=>[oe.value?(u(),i("div",wa,[o(U)])):A.value.length===0?(u(),_(ke,{key:1,description:a(e)("backup.ipfs.pinEmptyText")},null,8,["description"])):(u(),_(ue,{key:2,columns:Te.value,"data-source":A.value,pagination:{pageSize:10},size:"small","row-key":"cid"},{bodyCell:s(({column:p,record:v})=>[p.key==="cid"?(u(),i("span",za,n(v.cid.length>24?v.cid.slice(0,24)+"...":v.cid),1)):r("",!0),p.key==="name"?(u(),i("span",Ca,n(v.name||"-"),1)):r("",!0),p.key==="size"?(u(),i("span",Sa,n(a(we)(v.size)),1)):r("",!0),p.key==="pinnedAt"?(u(),i("span",Aa,n(v.pinnedAt||"-"),1)):r("",!0),p.key==="action"?(u(),_(Ne,{key:4,title:a(e)("backup.ipfs.unpinConfirm"),"ok-text":a(e)("backup.ipfs.unpinOk"),"cancel-text":a(e)("common.cancel"),onConfirm:$e=>De(v)},{default:s(()=>[o(k,{size:"small",type:"link",danger:""},{default:s(()=>[o(a(Qe)),b(" "+n(a(e)("backup.ipfs.unpinAction")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):r("",!0)]),_:1},8,["columns","data-source"])),P.value?(u(),i("div",Ba,n(P.value),1)):r("",!0)]),_:1},8,["title"]),o(ge,{open:le.value,"onUpdate:open":l[3]||(l[3]=p=>le.value=p),title:a(e)("backup.ipfs.pinModalTitle"),"confirm-loading":ne.value,onOk:ye,"ok-text":a(e)("backup.ipfs.pinModalOk"),"cancel-text":a(e)("common.cancel")},{default:s(()=>[f("div",La,n(a(e)("backup.ipfs.pinModalIntro")),1),o(je,{value:$.value,"onUpdate:value":l[2]||(l[2]=p=>$.value=p),placeholder:a(e)("backup.ipfs.pinModalPlaceholder"),onPressEnter:ye},null,8,["value","placeholder"]),F.value?(u(),i("div",Ma,[f("pre",Oa,n(F.value),1)])):r("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}}},Na=Ue(Pa,[["__scopeId","data-v-9db8d2e8"]]);export{Na as default};
@@ -0,0 +1 @@
1
+ import{P as s,f}from"./index-3RqDry-K.js";import{d as w,c as O,s as h,w as k,f as b,r as S}from"./vendor-BXcBOG8b.js";var z=function(n,u){var o={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&u.indexOf(t)<0&&(o[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(n);r<t.length;r++)u.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(n,t[r])&&(o[t[r]]=n[t[r]]);return o};const K=w({compatConfig:{MODE:3},props:{disabled:s.looseBool,type:s.string,value:s.any,tag:{type:String,default:"input"},size:s.string,onChange:Function,onInput:Function,onBlur:Function,onFocus:Function,onKeydown:Function,onCompositionstart:Function,onCompositionend:Function,onKeyup:Function,onPaste:Function,onMousedown:Function},emits:["change","input","blur","keydown","focus","compositionstart","compositionend","keyup","paste","mousedown"],setup(n,u){let{expose:o}=u;const t=h(null);return o({focus:()=>{t.value&&t.value.focus()},blur:()=>{t.value&&t.value.blur()},input:t,setSelectionRange:(l,c,d)=>{var v;(v=t.value)===null||v===void 0||v.setSelectionRange(l,c,d)},select:()=>{var l;(l=t.value)===null||l===void 0||l.select()},getSelectionStart:()=>{var l;return(l=t.value)===null||l===void 0?void 0:l.selectionStart},getSelectionEnd:()=>{var l;return(l=t.value)===null||l===void 0?void 0:l.selectionEnd},getScrollTop:()=>{var l;return(l=t.value)===null||l===void 0?void 0:l.scrollTop}}),()=>{const{tag:l,value:c}=n,d=z(n,["tag","value"]);return O(l,f(f({},d),{},{ref:t,value:c}),null)}}});function D(n){const u=n.getBoundingClientRect(),o=document.documentElement;return{left:u.left+(window.scrollX||o.scrollLeft)-(o.clientLeft||document.body.clientLeft||0),top:u.top+(window.scrollY||o.scrollTop)-(o.clientTop||document.body.clientTop||0)}}function N(n){return Array.prototype.slice.apply(n).map(o=>`${o}: ${n.getPropertyValue(o)};`).join("")}function M(n){return Object.keys(n).reduce((u,o)=>{const t=n[o];return typeof t>"u"||t===null||(u+=`${o}: ${n[o]};`),u},"")}var $=function(n,u){var o={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&u.indexOf(t)<0&&(o[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(n);r<t.length;r++)u.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(n,t[r])&&(o[t[r]]=n[t[r]]);return o};const A=w({compatConfig:{MODE:3},inheritAttrs:!1,props:{disabled:s.looseBool,type:s.string,value:s.any,lazy:s.bool.def(!0),tag:{type:String,default:"input"},size:s.string,style:s.oneOfType([String,Object]),class:s.string},emits:["change","input","blur","keydown","focus","compositionstart","compositionend","keyup","paste","mousedown"],setup(n,u){let{emit:o,attrs:t,expose:r}=u;const a=h(null),y=S(),i=S(!1);k([()=>n.value,i],()=>{i.value||(y.value=n.value)},{immediate:!0});const l=e=>{o("change",e)},c=e=>{i.value=!0,e.target.composing=!0,o("compositionstart",e)},d=e=>{i.value=!1,e.target.composing=!1,o("compositionend",e);const p=document.createEvent("HTMLEvents");p.initEvent("input",!0,!0),e.target.dispatchEvent(p),l(e)},v=e=>{if(i.value&&n.lazy){y.value=e.target.value;return}o("input",e)},_=e=>{o("blur",e)},C=e=>{o("focus",e)},E=()=>{a.value&&a.value.focus()},P=()=>{a.value&&a.value.blur()},j=e=>{o("keydown",e)},F=e=>{o("keyup",e)},T=(e,p,g)=>{var m;(m=a.value)===null||m===void 0||m.setSelectionRange(e,p,g)},B=()=>{var e;(e=a.value)===null||e===void 0||e.select()};r({focus:E,blur:P,input:b(()=>{var e;return(e=a.value)===null||e===void 0?void 0:e.input}),setSelectionRange:T,select:B,getSelectionStart:()=>{var e;return(e=a.value)===null||e===void 0?void 0:e.getSelectionStart()},getSelectionEnd:()=>{var e;return(e=a.value)===null||e===void 0?void 0:e.getSelectionEnd()},getScrollTop:()=>{var e;return(e=a.value)===null||e===void 0?void 0:e.getScrollTop()}});const R=e=>{o("mousedown",e)},x=e=>{o("paste",e)},I=b(()=>n.style&&typeof n.style!="string"?M(n.style):n.style);return()=>{const{style:e,lazy:p}=n,g=$(n,["style","lazy"]);return O(K,f(f(f({},g),t),{},{style:I.value,onInput:v,onChange:l,onBlur:_,onFocus:C,ref:a,value:y.value,onCompositionstart:c,onCompositionend:d,onKeyup:F,onKeydown:j,onPaste:x,onMousedown:R}),null)}}});export{A as B,D as g,N as s};
@@ -0,0 +1 @@
1
+ .cb-action[data-v-cf5a0925]{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;background:var(--bg-card-hover);border:1px solid var(--border-color);color:var(--text-secondary);-webkit-user-select:none;user-select:none}.cb-action--expandable[data-v-cf5a0925]{cursor:pointer;transition:border-color .15s ease}.cb-action--expandable[data-v-cf5a0925]:hover{border-color:#1677ff40}.cb-action--open[data-v-cf5a0925]{border-color:#1677ff60}.cb-action__icon[data-v-cf5a0925]{display:inline-flex;align-items:center;justify-content:center;color:#52c41a;font-size:14px}.cb-action--running .cb-action__icon[data-v-cf5a0925]{color:#1677ff}.cb-action--pending .cb-action__icon[data-v-cf5a0925]{color:var(--text-muted)}.cb-action__label[data-v-cf5a0925]{font-weight:600;color:var(--text-primary);font-size:13px}.cb-action__detail[data-v-cf5a0925]{margin-left:auto;font-size:12px;color:var(--text-secondary);max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cb-action__caret[data-v-cf5a0925]{margin-left:6px;color:var(--text-muted);font-size:10px}.cb-action--open .cb-action__caret[data-v-cf5a0925]{color:#1677ff}.virtual-message-list[data-v-3c34170a]{height:100%;overflow-y:auto;overflow-x:hidden}.fallback-list[data-v-3c34170a]{width:100%}.virtual-message-list[data-v-3c34170a]::-webkit-scrollbar{width:6px}.virtual-message-list[data-v-3c34170a]::-webkit-scrollbar-track{background:transparent}.virtual-message-list[data-v-3c34170a]::-webkit-scrollbar-thumb{background:var(--border-color, #c1c1c1);border-radius:3px}.virtual-message-list[data-v-3c34170a]::-webkit-scrollbar-thumb:hover{background:var(--text-muted, #a8a8a8)}.intent-confirmation-message[data-v-ded139e5]{padding:16px;margin:12px 0;background:linear-gradient(135deg,#1890ff14,#1890ff05);border-left:4px solid #1890ff;border-radius:8px}.confirmation-header[data-v-ded139e5]{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(24,144,255,.2)}.header-icon[data-v-ded139e5]{font-size:20px}.header-text[data-v-ded139e5]{font-size:15px;font-weight:600;color:#1890ff}.understanding-content[data-v-ded139e5]{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.original-input[data-v-ded139e5],.corrected-input[data-v-ded139e5],.intent-section[data-v-ded139e5],.key-points-section[data-v-ded139e5],.correction-section[data-v-ded139e5]{display:flex;flex-direction:column;gap:6px}.label[data-v-ded139e5]{font-size:13px;font-weight:600;color:var(--text-secondary, #aaa)}.value[data-v-ded139e5]{font-size:14px;color:var(--text-primary, #ddd);line-height:1.6}.original-text[data-v-ded139e5]{padding:8px 12px;background:#ffffff0a;border-radius:6px;border:1px dashed var(--border-color, #555);text-decoration:line-through;color:var(--text-muted, #888)}.corrected-text[data-v-ded139e5]{padding:8px 12px;background:#52c41a14;border-radius:6px;border:1px solid #52c41a;font-weight:500}.correction-text[data-v-ded139e5]{padding:8px 12px;background:#faad1414;border-radius:6px;border:1px solid #faad14;font-weight:500}.key-points-list[data-v-ded139e5]{margin:0;padding-left:20px;list-style:disc}.key-points-list li[data-v-ded139e5]{margin:4px 0;font-size:14px;line-height:1.6}.action-buttons[data-v-ded139e5]{display:flex;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid rgba(24,144,255,.2)}.streaming-indicator[data-v-ded139e5]{display:flex;align-items:center;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid rgba(24,144,255,.2);font-size:13px;color:var(--text-secondary, #aaa)}.streaming-tokens[data-v-ded139e5]{font-size:11px;color:var(--text-muted, #888)}.correction-input-section[data-v-ded139e5]{margin-top:16px;padding-top:16px;border-top:1px solid rgba(24,144,255,.2)}.correction-actions[data-v-ded139e5]{display:flex;gap:8px;margin-top:12px}.session-item[data-v-22c90506]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s;margin-bottom:4px}.session-item[data-v-22c90506]:hover{background:var(--bg-card-hover)}.session-item.active[data-v-22c90506]{background:#1677ff20;border:1px solid #1677ff40}.session-icon[data-v-22c90506]{font-size:16px}.session-info[data-v-22c90506]{flex:1;min-width:0}.session-title[data-v-22c90506]{color:#ccc;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-meta[data-v-22c90506]{color:var(--text-muted);font-size:11px;margin-top:2px}.chat-header[data-v-22c90506]{display:flex;align-items:center;justify-content:flex-start;gap:16px;padding:10px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.chat-intent-toggle[data-v-22c90506]{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.chat-intent-toggle-label[data-v-22c90506]{font-size:12px;color:var(--text-muted)}.chat-area-body[data-v-22c90506]{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:16px 20px 0}.empty-hint[data-v-22c90506]{font-size:12px;color:var(--text-muted);margin-top:-4px}.chat-virtual-list[data-v-22c90506]{flex:1}.chat-empty-prompts[data-v-22c90506]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);gap:12px}.empty-icon[data-v-22c90506]{font-size:40px}.empty-title[data-v-22c90506]{font-size:14px;color:var(--text-secondary, #aaa)}.quick-prompts[data-v-22c90506]{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:480px;margin-top:8px}.quick-prompt-btn[data-v-22c90506]{font-size:12px}.message-row[data-v-22c90506]{margin-bottom:16px;padding:0 4px}.msg-with-avatar[data-v-22c90506]{display:flex;gap:10px;align-items:flex-start}.msg-with-avatar.user[data-v-22c90506]{flex-direction:row-reverse}.msg-with-avatar.user .msg-meta-row[data-v-22c90506]{justify-content:flex-end}.msg-with-avatar.user .msg-body[data-v-22c90506]{display:flex;flex-direction:column;align-items:flex-end}.msg-body[data-v-22c90506]{flex:1;min-width:0;max-width:calc(100% - 50px)}.msg-meta-row[data-v-22c90506]{display:flex;gap:6px;align-items:baseline;font-size:11px;color:var(--text-muted);margin-bottom:4px}.msg-role[data-v-22c90506]{color:var(--text-secondary, #aaa);font-weight:500}.msg-time[data-v-22c90506],.msg-tokens[data-v-22c90506]{font-size:10px}.bubble[data-v-22c90506]{padding:10px 14px;border-radius:12px;max-width:100%;line-height:1.6;font-size:14px;word-wrap:break-word}.bubble.user[data-v-22c90506]{background:#1677ff;color:var(--text-primary);border-bottom-right-radius:4px}.bubble.assistant[data-v-22c90506]{background:var(--bg-card-hover);color:var(--text-primary);border-bottom-left-radius:4px}.bubble.streaming[data-v-22c90506]:after{content:"▋";animation:blink-22c90506 .7s step-start infinite;color:#1677ff}@keyframes blink-22c90506{50%{opacity:0}}.system-banner[data-v-22c90506]{margin:8px 0;padding:10px 14px;background:var(--bg-card-hover);border-left:3px solid #722ed1;border-radius:6px;font-size:13px;color:var(--text-secondary, #aaa);white-space:pre-wrap}.tool-msg[data-v-22c90506]{margin:8px 0}.tool-detail[data-v-22c90506]{margin-top:6px;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-base)}.tool-detail__result[data-v-22c90506]{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color)}.tool-detail__pre[data-v-22c90506]{margin:0;font-size:11px;white-space:pre-wrap;word-break:break-all}.tool-detail__pre--input[data-v-22c90506]{color:#aaa}.tool-detail__pre--result[data-v-22c90506]{color:#52c41a}.question-card[data-v-22c90506]{background:var(--bg-card-hover);border:1px solid #1677ff40;border-radius:10px;padding:14px 16px;margin-top:8px}.question-text[data-v-22c90506]{color:#aaa;font-size:13px}[data-v-22c90506] .bubble.assistant pre{background:var(--bg-base);border-radius:6px;padding:12px;overflow-x:auto;font-size:12px}[data-v-22c90506] .bubble.assistant code:not(pre code){background:var(--bg-card-hover);padding:1px 5px;border-radius:3px;font-size:12px;color:#f0a500}[data-v-22c90506] .bubble.assistant p{margin:0 0 8px}[data-v-22c90506] .bubble.assistant p:last-child{margin:0}