chainlesschain 0.166.130 → 0.166.131

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 (466) hide show
  1. package/README.md +20 -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 +14 -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/provider-context.js +55 -24
  255. package/src/lib/context-memory-kernel/segmented-memory-port.js +347 -138
  256. package/src/lib/cost-budget.js +2 -0
  257. package/src/lib/ephemeral-worktree-scope.js +24 -0
  258. package/src/lib/evolution/evolution-deployment-loader.js +6 -4
  259. package/src/lib/evolution/governed-skill-marketplace-abort.js +14 -0
  260. package/src/lib/evolution/governed-skill-marketplace-candidate.js +10 -2
  261. package/src/lib/evolution/governed-skill-marketplace-cli-host.js +47 -20
  262. package/src/lib/evolution/governed-skill-marketplace.js +47 -24
  263. package/src/lib/goal-condition-engine.js +20 -3
  264. package/src/lib/goal-verification-command.js +221 -0
  265. package/src/lib/goal-verification-plan.js +372 -0
  266. package/src/lib/llm-connection-probe.js +12 -5
  267. package/src/lib/llm-onboarding-catalog.json +1 -1
  268. package/src/lib/llm-pricing.js +34 -8
  269. package/src/lib/mcp-tool-catalog-authority.js +244 -0
  270. package/src/lib/model-capabilities.js +6 -0
  271. package/src/lib/model-catalog-review.js +3 -0
  272. package/src/lib/model-context-catalog.js +44 -2
  273. package/src/lib/openai-responses.js +35 -6
  274. package/src/lib/sub-agent-context.js +12 -4
  275. package/src/lib/subagent-inheritance.js +162 -2
  276. package/src/lib/usage-pricing-context.js +34 -17
  277. package/src/repl/agent-repl.js +34 -2
  278. package/src/runtime/agent-core.js +199 -9
  279. package/src/runtime/compaction-host-context.js +72 -0
  280. package/src/runtime/headless-runner.js +133 -37
  281. package/src/runtime/headless-stream.js +38 -21
  282. package/src/runtime/mcp-agent-catalog.js +257 -0
  283. package/src/runtime/mcp-config.js +18 -69
  284. package/src/runtime/mcp-tool-search.js +16 -1
  285. package/src/runtime/system-prompt.js +9 -0
  286. package/src/assets/web-panel/assets/AIOps-CSpp7iGY.css +0 -1
  287. package/src/assets/web-panel/assets/AIOps-o-rFKEYL.js +0 -1
  288. package/src/assets/web-panel/assets/Analytics-Bt7H_jrh.js +0 -3
  289. package/src/assets/web-panel/assets/Analytics-DJcHjy5J.css +0 -1
  290. package/src/assets/web-panel/assets/AppLayout-CgynsRFP.js +0 -9
  291. package/src/assets/web-panel/assets/AppLayout-VlanTjPw.css +0 -1
  292. package/src/assets/web-panel/assets/Artifacts-CTVt96zW.css +0 -1
  293. package/src/assets/web-panel/assets/Artifacts-gghOGDyE.js +0 -1
  294. package/src/assets/web-panel/assets/Audit-D8oxP0wr.css +0 -1
  295. package/src/assets/web-panel/assets/Audit-DBXn-AZ6.js +0 -1
  296. package/src/assets/web-panel/assets/BackgroundAgents--dxPftKa.js +0 -1
  297. package/src/assets/web-panel/assets/BackgroundAgents-Dq2340Kl.css +0 -1
  298. package/src/assets/web-panel/assets/Backup-D9Zf_2tH.js +0 -1
  299. package/src/assets/web-panel/assets/Backup-Wi9CaP3d.css +0 -1
  300. package/src/assets/web-panel/assets/BaseInput-DDTOjovq.js +0 -1
  301. package/src/assets/web-panel/assets/Chat-2ETqdBLn.js +0 -8
  302. package/src/assets/web-panel/assets/Chat-KSGPtU0L.css +0 -1
  303. package/src/assets/web-panel/assets/ChatBubbleRenderer-DSg2Xs8G.js +0 -1
  304. package/src/assets/web-panel/assets/ChatBubbleRenderer-gy5SDGw2.css +0 -1
  305. package/src/assets/web-panel/assets/Codegen-4ieEEIwt.js +0 -1
  306. package/src/assets/web-panel/assets/Codegen-BB08p1fn.css +0 -1
  307. package/src/assets/web-panel/assets/Community-Cbq1nrpo.css +0 -1
  308. package/src/assets/web-panel/assets/Community-DeYxFMJb.js +0 -1
  309. package/src/assets/web-panel/assets/Compliance-DLVjbVUh.js +0 -1
  310. package/src/assets/web-panel/assets/Compliance-NoXr2Vof.css +0 -1
  311. package/src/assets/web-panel/assets/Cowork-BlXJRu6L.css +0 -1
  312. package/src/assets/web-panel/assets/Cowork-DfUKa0T5.js +0 -6
  313. package/src/assets/web-panel/assets/Cron-_RpktpO5.js +0 -2
  314. package/src/assets/web-panel/assets/Crosschain-7x6xdbwH.js +0 -1
  315. package/src/assets/web-panel/assets/Crosschain-CgRAecoR.css +0 -1
  316. package/src/assets/web-panel/assets/DID-DVsYcgvs.css +0 -1
  317. package/src/assets/web-panel/assets/DID-ccVhToC1.js +0 -2
  318. package/src/assets/web-panel/assets/Dashboard-CAPSdFR4.css +0 -1
  319. package/src/assets/web-panel/assets/Dashboard-DhygcaoK.js +0 -3
  320. package/src/assets/web-panel/assets/Dropdown-DFplwXK7.js +0 -1
  321. package/src/assets/web-panel/assets/EmailListRenderer-Bm01soCN.js +0 -1
  322. package/src/assets/web-panel/assets/EmailListRenderer-DTPZPx_S.css +0 -1
  323. package/src/assets/web-panel/assets/EvolutionSettings-Bdw8ApoT.css +0 -1
  324. package/src/assets/web-panel/assets/EvolutionSettings-C4v--DkD.js +0 -1
  325. package/src/assets/web-panel/assets/FamilyGuardDashboard-ChQXDBA3.js +0 -1
  326. package/src/assets/web-panel/assets/FamilyGuardDashboard-nd3idUVb.css +0 -1
  327. package/src/assets/web-panel/assets/Federation-C0yomE-M.js +0 -1
  328. package/src/assets/web-panel/assets/Federation-fGN6iMX_.css +0 -1
  329. package/src/assets/web-panel/assets/FormItemContext-DtT3ZEZK.js +0 -2
  330. package/src/assets/web-panel/assets/GenericCardRenderer-DgITtFRv.js +0 -1
  331. package/src/assets/web-panel/assets/GenericCardRenderer-o85VDYQS.css +0 -1
  332. package/src/assets/web-panel/assets/Git-CCY42R8S.js +0 -2
  333. package/src/assets/web-panel/assets/Governance-DtCS4NDm.css +0 -1
  334. package/src/assets/web-panel/assets/Governance-N66Bwvqg.js +0 -1
  335. package/src/assets/web-panel/assets/Inference-BkbPuR_2.js +0 -1
  336. package/src/assets/web-panel/assets/Inference-t-w0NgIS.css +0 -1
  337. package/src/assets/web-panel/assets/KnowledgeGraph-4NU1S2Xm.css +0 -1
  338. package/src/assets/web-panel/assets/KnowledgeGraph-B3PibXdA.js +0 -1
  339. package/src/assets/web-panel/assets/Logs-CUtNB_N6.js +0 -2
  340. package/src/assets/web-panel/assets/Logs-DQbCaYhL.css +0 -1
  341. package/src/assets/web-panel/assets/MarkdownRenderer-D-V4dOe3.js +0 -1
  342. package/src/assets/web-panel/assets/MarkdownRenderer-DbzhFwvz.css +0 -1
  343. package/src/assets/web-panel/assets/Marketplace-Bvo5cuGa.css +0 -1
  344. package/src/assets/web-panel/assets/Marketplace-DLNJb6Nr.js +0 -1
  345. package/src/assets/web-panel/assets/McpTools-2zGjJb5K.js +0 -4
  346. package/src/assets/web-panel/assets/McpTools-534Q95Mx.css +0 -1
  347. package/src/assets/web-panel/assets/Memory-9rNZ1EvR.js +0 -2
  348. package/src/assets/web-panel/assets/Memory-CleW_R6V.css +0 -1
  349. package/src/assets/web-panel/assets/MobileBridge-Cw7sAAgn.js +0 -1
  350. package/src/assets/web-panel/assets/MobileBridge-D3Arxfeg.css +0 -1
  351. package/src/assets/web-panel/assets/MobileProjects-8XACrqqy.js +0 -1
  352. package/src/assets/web-panel/assets/MobileProjects-BD4alw6-.css +0 -1
  353. package/src/assets/web-panel/assets/Mtc-CXZGO9Sh.css +0 -1
  354. package/src/assets/web-panel/assets/Mtc-mg02JNy-.js +0 -6
  355. package/src/assets/web-panel/assets/MtcAudit-B1Vkhj2l.js +0 -19
  356. package/src/assets/web-panel/assets/MtcAudit-C1JM8esp.css +0 -1
  357. package/src/assets/web-panel/assets/Multisig-BQEeA7GG.js +0 -13
  358. package/src/assets/web-panel/assets/Multisig-BryR2Jpr.css +0 -1
  359. package/src/assets/web-panel/assets/NLProgramming-BIbkjZV3.js +0 -1
  360. package/src/assets/web-panel/assets/NLProgramming-DGDHq6Z9.css +0 -1
  361. package/src/assets/web-panel/assets/Notes-BKKmMtqV.css +0 -1
  362. package/src/assets/web-panel/assets/Notes-DIwhkZNY.js +0 -7
  363. package/src/assets/web-panel/assets/NotificationSettings-CG3Kfuef.css +0 -1
  364. package/src/assets/web-panel/assets/NotificationSettings-Cj9175ce.js +0 -1
  365. package/src/assets/web-panel/assets/OrderTableRenderer-CfrDjSHT.css +0 -1
  366. package/src/assets/web-panel/assets/OrderTableRenderer-IfNpXT2R.js +0 -1
  367. package/src/assets/web-panel/assets/Organization-DPFp6G9o.js +0 -4
  368. package/src/assets/web-panel/assets/Organization-LVvqwG0D.css +0 -1
  369. package/src/assets/web-panel/assets/P2P-DcFvP7F-.css +0 -1
  370. package/src/assets/web-panel/assets/P2P-tXck8GLq.js +0 -2
  371. package/src/assets/web-panel/assets/PdhVaultBrowser-DSvpQl9k.js +0 -7
  372. package/src/assets/web-panel/assets/PdhVaultBrowser-DZZrUOr1.css +0 -1
  373. package/src/assets/web-panel/assets/Permissions-CKPkdLj-.js +0 -4
  374. package/src/assets/web-panel/assets/Permissions-DsPE_IQy.css +0 -1
  375. package/src/assets/web-panel/assets/PersonalDataHub-BhpRlh9D.css +0 -1
  376. package/src/assets/web-panel/assets/PersonalDataHub-DnqXc12l.js +0 -9
  377. package/src/assets/web-panel/assets/Pipeline-BItr5CyP.css +0 -1
  378. package/src/assets/web-panel/assets/Pipeline-BKjFU_kd.js +0 -1
  379. package/src/assets/web-panel/assets/Privacy-ChC-J5Tn.js +0 -1
  380. package/src/assets/web-panel/assets/Privacy-F_ENsxZk.css +0 -1
  381. package/src/assets/web-panel/assets/ProjectInit-B86LEzDL.css +0 -1
  382. package/src/assets/web-panel/assets/ProjectInit-ByFZG9sY.js +0 -2
  383. package/src/assets/web-panel/assets/ProjectSettings-Bbv1Kiw-.js +0 -2
  384. package/src/assets/web-panel/assets/ProjectSettings-DK7KA_iX.css +0 -1
  385. package/src/assets/web-panel/assets/Projects-CmJeUDBW.css +0 -1
  386. package/src/assets/web-panel/assets/Projects-QYyGW31-.js +0 -1
  387. package/src/assets/web-panel/assets/Providers-C6q_fvea.css +0 -1
  388. package/src/assets/web-panel/assets/Providers-CJLnWw0r.js +0 -1
  389. package/src/assets/web-panel/assets/QrScannerModal-NwAHNfiJ.css +0 -1
  390. package/src/assets/web-panel/assets/QuickAsk-DoXU0np9.js +0 -1
  391. package/src/assets/web-panel/assets/Recommend-DCo_vuaf.js +0 -1
  392. package/src/assets/web-panel/assets/Recommend-D_bf91K6.css +0 -1
  393. package/src/assets/web-panel/assets/RemoteSession-CLuL925Z.js +0 -5
  394. package/src/assets/web-panel/assets/Reputation-CNNCA_-M.js +0 -1
  395. package/src/assets/web-panel/assets/Reputation-DiOsOleI.css +0 -1
  396. package/src/assets/web-panel/assets/Row-Vu4j631i.js +0 -1
  397. package/src/assets/web-panel/assets/RssFeed-C18B4xiy.js +0 -3
  398. package/src/assets/web-panel/assets/RssFeed-CjcbkyUb.css +0 -1
  399. package/src/assets/web-panel/assets/Search-DxiqccE2.js +0 -1
  400. package/src/assets/web-panel/assets/Search-Klk29S7C.css +0 -1
  401. package/src/assets/web-panel/assets/Security-BmrukMHn.css +0 -1
  402. package/src/assets/web-panel/assets/Security-Droe_hHI.js +0 -4
  403. package/src/assets/web-panel/assets/Services-CwmmyXzq.js +0 -2
  404. package/src/assets/web-panel/assets/Services-DAnVNhUG.css +0 -1
  405. package/src/assets/web-panel/assets/Skills-BUu9owbR.css +0 -1
  406. package/src/assets/web-panel/assets/Skills-Dp-d2miK.js +0 -1
  407. package/src/assets/web-panel/assets/Sla-2DFXVbK4.js +0 -1
  408. package/src/assets/web-panel/assets/Sla-sodqCU4a.css +0 -1
  409. package/src/assets/web-panel/assets/SpeechSettings-Cdd9lCoy.js +0 -1
  410. package/src/assets/web-panel/assets/SpeechSettings-CgB9nFyq.css +0 -1
  411. package/src/assets/web-panel/assets/SyncSettings-B3hJqmBP.css +0 -1
  412. package/src/assets/web-panel/assets/SyncSettings-CxQhcYSk.js +0 -2
  413. package/src/assets/web-panel/assets/Tasks-BHWVRfXx.js +0 -1
  414. package/src/assets/web-panel/assets/Tasks-nbTUVXvt.css +0 -1
  415. package/src/assets/web-panel/assets/Templates-CpFsKk_l.css +0 -1
  416. package/src/assets/web-panel/assets/Templates-DNFk3a5_.js +0 -1
  417. package/src/assets/web-panel/assets/Tenant-B6X6dPo8.js +0 -1
  418. package/src/assets/web-panel/assets/Tenant-MuPJnOjk.css +0 -1
  419. package/src/assets/web-panel/assets/Terminal-BuUNoLGM.js +0 -3
  420. package/src/assets/web-panel/assets/Terminal-DHoveJwj.css +0 -1
  421. package/src/assets/web-panel/assets/TimelineRenderer-BlTAtkOc.css +0 -1
  422. package/src/assets/web-panel/assets/TimelineRenderer-DThrBYj8.js +0 -1
  423. package/src/assets/web-panel/assets/Tokens-CA_u4Blu.js +0 -1
  424. package/src/assets/web-panel/assets/Tokens-CynVae-o.css +0 -1
  425. package/src/assets/web-panel/assets/Trust-C-WrW0Fj.css +0 -1
  426. package/src/assets/web-panel/assets/Trust-DHcLpNy3.js +0 -1
  427. package/src/assets/web-panel/assets/UkeySign-B_fni4C2.js +0 -1
  428. package/src/assets/web-panel/assets/VideoEditing-BDFghpzP.css +0 -1
  429. package/src/assets/web-panel/assets/VideoEditing-g9nf2EhS.js +0 -1
  430. package/src/assets/web-panel/assets/Wallet-C8pOjIve.js +0 -4
  431. package/src/assets/web-panel/assets/Wallet-DUbpTRcg.css +0 -1
  432. package/src/assets/web-panel/assets/WebAuthn-BaKNjxZt.js +0 -5
  433. package/src/assets/web-panel/assets/WebAuthn-CVAFRfCQ.css +0 -1
  434. package/src/assets/web-panel/assets/WorkflowEditor-429lPWYk.css +0 -1
  435. package/src/assets/web-panel/assets/WorkflowEditor-CX030Wb1.js +0 -1
  436. package/src/assets/web-panel/assets/createContext-B8rTvO61.js +0 -1
  437. package/src/assets/web-panel/assets/devWarning-B4_IVU_n.js +0 -1
  438. package/src/assets/web-panel/assets/echarts-C61Vn3mP.js +0 -25
  439. package/src/assets/web-panel/assets/index--6BUI55w.js +0 -1
  440. package/src/assets/web-panel/assets/index-5Q1bepcM.js +0 -1
  441. package/src/assets/web-panel/assets/index-B10Ia2KL.js +0 -21
  442. package/src/assets/web-panel/assets/index-B1SLBLli.js +0 -3
  443. package/src/assets/web-panel/assets/index-B8_VQAav.js +0 -1
  444. package/src/assets/web-panel/assets/index-BMuPJra-.js +0 -1
  445. package/src/assets/web-panel/assets/index-BOCjph-k.js +0 -12
  446. package/src/assets/web-panel/assets/index-BpBaOWmV.js +0 -1
  447. package/src/assets/web-panel/assets/index-CDlHvQtw.js +0 -1
  448. package/src/assets/web-panel/assets/index-CPF7Vqri.js +0 -55
  449. package/src/assets/web-panel/assets/index-CPmgKQcl.js +0 -1
  450. package/src/assets/web-panel/assets/index-CcpMHPWd.js +0 -21
  451. package/src/assets/web-panel/assets/index-Cyksnofp.js +0 -1
  452. package/src/assets/web-panel/assets/index-Dc9pcin6.js +0 -1
  453. package/src/assets/web-panel/assets/index-DfAC55QA.js +0 -19
  454. package/src/assets/web-panel/assets/index-DgNCfwvg.js +0 -1
  455. package/src/assets/web-panel/assets/index-DvfhIBNZ.js +0 -1
  456. package/src/assets/web-panel/assets/index-Hbzd9WeI.js +0 -1
  457. package/src/assets/web-panel/assets/index-IiS7WoUl.js +0 -13
  458. package/src/assets/web-panel/assets/index-Xa6TlaD7.js +0 -31
  459. package/src/assets/web-panel/assets/index-YczWc2_0.js +0 -12
  460. package/src/assets/web-panel/assets/index-h_ANnbR8.js +0 -3
  461. package/src/assets/web-panel/assets/index-k7QsBwyo.js +0 -75
  462. package/src/assets/web-panel/assets/isSymbol-S5WZT7lS.js +0 -1
  463. package/src/assets/web-panel/assets/motion-B1hpJYSD.js +0 -11
  464. package/src/assets/web-panel/assets/useFlexGapSupport-BClv53kR.js +0 -1
  465. package/src/assets/web-panel/assets/vendor-Bn1JzzAn.js +0 -42
  466. package/src/assets/web-panel/assets/vnode-ejVeFJ0x.js +0 -1
@@ -0,0 +1 @@
1
+ import{t as te,_ as He,b as Ee,u as Ke,d as y}from"./index-3RqDry-K.js";import{R as Ve,at as Je,p as Z,i as ee,f as Ge,z as We}from"./icons-DlxlFL4g.js";import{o as Ye,M as m,R as z,P as r,u as o,c as a,N as n,Q as x,S as g,K as v,r as h,L as u,O as p,F as C,Y as I,_ as Qe,f as V,a as ge}from"./vendor-BXcBOG8b.js";const ve=Object.freeze(["online","offline","busy","degraded"]),Xe=Object.freeze(["queued","dispatched","running","complete","failed"]),_e=Object.freeze(["standard","encrypted","federated"]);function w(l,e=0){return typeof l=="number"&&Number.isFinite(l)?l:e}function Ze(l){if(Array.isArray(l))return l.filter(e=>typeof e=="string");if(typeof l=="string")try{const e=JSON.parse(l);if(Array.isArray(e))return e.filter(c=>typeof c=="string")}catch{}return[]}function et(l,e=0){if(!l||typeof l!="object")return null;const c=l.id||"";return c?{key:c,id:c,nodeId:l.nodeId??l.node_id??"",endpoint:l.endpoint||"",capabilities:Ze(l.capabilities),gpuMemoryMb:w(l.gpuMemoryMb??l.gpu_memory_mb,0),status:String(l.status||"offline").toLowerCase(),lastHeartbeat:l.lastHeartbeat??l.last_heartbeat??null,taskCount:w(l.taskCount??l.task_count,0),createdAt:l.createdAt??l.created_at??null,_idx:e}:null}function tt(l){const e=te(l);return Array.isArray(e)?e.map(et).filter(Boolean):[]}function nt(l,e=0){if(!l||typeof l!="object")return null;const c=l.id||"";return c?{key:c,id:c,model:String(l.model||""),input:l.input??"",output:l.output??"",privacyMode:String(l.privacyMode??l.privacy_mode??"standard").toLowerCase(),priority:w(l.priority,5),assignedNode:l.assignedNode??l.assigned_node??null,status:String(l.status||"queued").toLowerCase(),durationMs:l.durationMs??l.duration_ms??null,createdAt:l.createdAt??l.created_at??null,completedAt:l.completedAt??l.completed_at??null,_idx:e}:null}function at(l){const e=te(l);return Array.isArray(e)?e.map(nt).filter(Boolean):[]}const ot={nodes:{total:0,online:0,offline:0,busy:0},tasks:{total:0,queued:0,completed:0,failed:0,avgDurationMs:0}};function st(l){const e=JSON.parse(JSON.stringify(ot)),c=te(l);return!c||typeof c!="object"||Array.isArray(c)||(c.nodes&&typeof c.nodes=="object"&&(e.nodes.total=w(c.nodes.total,0),e.nodes.online=w(c.nodes.online,0),e.nodes.offline=w(c.nodes.offline,0),e.nodes.busy=w(c.nodes.busy,0)),c.tasks&&typeof c.tasks=="object"&&(e.tasks.total=w(c.tasks.total,0),e.tasks.queued=w(c.tasks.queued,0),e.tasks.completed=w(c.tasks.completed,0),e.tasks.failed=w(c.tasks.failed,0),e.tasks.avgDurationMs=w(c.tasks.avgDurationMs??c.tasks.avg_duration_ms,0))),e}function ke(l){if(l==null||l==="")return"—";const e=typeof l=="number"?new Date(l):new Date(String(l));return isNaN(e.getTime())?String(l):e.toLocaleString("zh-CN",{hour12:!1})}const it={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},lt={class:"page-title"},rt={class:"page-sub"},ut={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},ct={class:"filter-bar"},dt={style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},ft={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},pt={key:1,style:{color:"var(--text-muted)"}},mt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace"}},yt={key:1,style:{color:"var(--text-muted)"}},gt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},vt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},_t={class:"filter-bar"},kt={style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},bt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},xt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},ht={key:1,style:{color:"var(--text-muted)"}},Ct={key:0,style:{"font-family":"monospace",color:"var(--text-secondary)","font-size":"12px"}},St={key:1,style:{color:"var(--text-muted)"}},wt={key:6,style:{color:"var(--text-secondary)","font-size":"11px"}},zt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Mt={__name:"Inference",setup(l){const{t:e}=Ee(),c=Ke(),$=h(!1),J=h(!1),G=h(!1),W=h(""),Y=h(""),R=h([]),ne=h([]),b=h({nodes:{total:0,online:0,offline:0,busy:0},tasks:{total:0,queued:0,completed:0,failed:0,avgDurationMs:0}}),Q=h("nodes"),j=h(""),L=h(""),U=h(""),P=h(!1),B=h(!1),_=ge({nodeId:"",endpoint:"",capabilities:"",gpuMemory:null}),k=ge({model:"",input:"",priority:5,mode:"standard"}),be=V(()=>[{title:e("inference.nodeColumns.nodeId"),key:"nodeId"},{title:e("inference.nodeColumns.capabilities"),key:"capabilities",width:"220px"},{title:e("inference.nodeColumns.gpu"),key:"gpu",width:"100px"},{title:e("inference.nodeColumns.status"),key:"status",width:"100px"},{title:e("inference.nodeColumns.taskCount"),key:"taskCount",width:"90px"},{title:e("inference.nodeColumns.lastHeartbeat"),key:"lastHeartbeat",width:"160px"},{title:e("inference.nodeColumns.action"),key:"action",width:"210px"}]),xe=V(()=>[{title:e("inference.taskColumns.model"),key:"model"},{title:e("inference.taskColumns.privacyMode"),key:"privacyMode",width:"110px"},{title:e("inference.taskColumns.priority"),key:"priority",width:"80px"},{title:e("inference.taskColumns.assignedNode"),key:"assignedNode",width:"140px"},{title:e("inference.taskColumns.status"),key:"status",width:"110px"},{title:e("inference.taskColumns.duration"),key:"duration",width:"110px"},{title:e("inference.taskColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("inference.taskColumns.action"),key:"action",width:"140px"}]),he=V(()=>j.value?R.value.filter(s=>s.status===j.value):R.value),Ce=V(()=>{let s=ne.value;return L.value&&(s=s.filter(t=>t.status===L.value)),U.value&&(s=s.filter(t=>t.privacyMode===U.value)),s});function H(s){const t=`inference.nodeStatus.${s}`,f=e(t);return f===t?s:f}function Se(s){return{online:"green",offline:"default",busy:"orange",degraded:"red"}[s]||"default"}function ae(s){const t=`inference.taskStatus.${s}`,f=e(t);return f===t?s:f}function we(s){return{queued:"default",dispatched:"processing",running:"cyan",complete:"green",failed:"red"}[s]||"default"}function X(s){const t=`inference.privacy.${s}`,f=e(t);return f===t?s:f}function ze(s){return{standard:"default",encrypted:"purple",federated:"cyan"}[s]||"default"}function Me(s){return s>=8?"#ff4d4f":s>=5?"#faad14":"#52c41a"}function Ae(s){const t=R.value.find(f=>f.id===s);return t?t.nodeId:s.slice(0,8)}function oe(s,t){return s?s.length>t?s.slice(0,t)+"...":s:""}function Ne(s){return s>=1024?`${(s/1024).toFixed(1)} GB`:`${s} MB`}function Fe(s){return s.status==="queued"||s.status==="dispatched"||s.status==="running"}function Oe(s){return s.status!=="complete"&&s.status!=="failed"}function Te({key:s}){s==="register"?P.value=!0:s==="submit"&&(B.value=!0)}async function M(){$.value=!0;try{const[s,t,f]=await Promise.all([c.execute("inference nodes --limit 200 --json",1e4).catch(()=>({output:""})),c.execute("inference tasks --limit 200 --json",1e4).catch(()=>({output:""})),c.execute("inference stats --json",8e3).catch(()=>({output:""}))]);R.value=tt(s.output),ne.value=at(t.output),b.value=st(f.output)}catch(s){y.error(e("inference.messages.loadFailed",{err:s?.message||s}))}finally{$.value=!1}}async function Ie(){const s=_.nodeId.trim();if(!s){y.warning(e("inference.messages.nodeIdRequired"));return}J.value=!0;try{const t=[`inference register "${s.replace(/"/g,'\\"')}"`];if(_.endpoint.trim()&&t.push(`--endpoint "${_.endpoint.trim().replace(/"/g,'\\"')}"`),_.capabilities.trim()){const O=_.capabilities.split(/[,\s]+/).filter(Boolean).join(",");O&&t.push(`--capabilities "${O}"`)}_.gpuMemory!=null&&t.push(`--gpu ${_.gpuMemory}`),t.push("--json");const{output:f}=await c.execute(t.join(" "),1e4);if(/error|failed|失败/i.test(f)&&!/"nodeId"/.test(f)){y.error(e("inference.messages.registerFailed",{err:f.slice(0,120)}));return}y.success(e("inference.messages.registerOk")),P.value=!1,se(),await M()}catch(t){y.error(e("inference.messages.registerFailed",{err:t?.message||t}))}finally{J.value=!1}}async function $e(){const s=k.model.trim();if(!s){y.warning(e("inference.messages.modelRequired"));return}G.value=!0;try{const t=[`inference submit "${s.replace(/"/g,'\\"')}"`];k.input.trim()&&t.push(`--input "${k.input.trim().replace(/"/g,'\\"')}"`),k.priority!=null&&t.push(`--priority ${k.priority}`),t.push(`--mode ${k.mode}`),t.push("--json");const{output:f}=await c.execute(t.join(" "),12e3);if(/error|failed|失败/i.test(f)&&!/"taskId"/.test(f)){y.error(e("inference.messages.submitFailed",{err:f.slice(0,120)}));return}y.success(e("inference.messages.submitOk")),B.value=!1,ie(),Q.value="tasks",await M()}catch(t){y.error(e("inference.messages.submitFailed",{err:t?.message||t}))}finally{G.value=!1}}async function je(s){W.value=s.id;try{const{output:t}=await c.execute(`inference heartbeat ${s.id} --json`,8e3);if(/error/i.test(t)&&!/"updated"/.test(t)){y.error(e("inference.messages.heartbeatFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.heartbeatOk")),await M()}catch(t){y.error(e("inference.messages.heartbeatFailed",{err:t?.message||t}))}finally{W.value=""}}async function Le(s,t){if(t!==s.status)try{const{output:f}=await c.execute(`inference node-status ${s.id} ${t} --json`,8e3);if(/error|invalid/i.test(f)&&!/"updated"/.test(f)){y.error(e("inference.messages.statusFailed",{err:f.slice(0,120)}));return}y.success(e("inference.messages.statusOk",{status:H(t)})),await M()}catch(f){y.error(e("inference.messages.statusFailed",{err:f?.message||f}))}}async function Ue(s){try{const{output:t}=await c.execute(`inference unregister ${s.id} --json`,8e3);if(/error/i.test(t)&&!/"removed"/.test(t)){y.error(e("inference.messages.unregisterFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.unregisterOk")),await M()}catch(t){y.error(e("inference.messages.unregisterFailed",{err:t?.message||t}))}}async function qe(s){Y.value=s.id;try{const{output:t}=await c.execute(`inference complete ${s.id} --json`,1e4);if(/error|failed/i.test(t)&&!/"completed"/.test(t)){y.error(e("inference.messages.completeFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.completeOk")),await M()}catch(t){y.error(e("inference.messages.completeFailed",{err:t?.message||t}))}finally{Y.value=""}}async function De(s){try{const{output:t}=await c.execute(`inference fail-task ${s.id} --json`,8e3);if(/error/i.test(t)&&!/"failed"/.test(t)){y.error(e("inference.messages.failFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.failOk")),await M()}catch(t){y.error(e("inference.messages.failFailed",{err:t?.message||t}))}}function se(){_.nodeId="",_.endpoint="",_.capabilities="",_.gpuMemory=null}function ie(){k.model="",k.input="",k.priority=5,k.mode="standard"}return Ye(M),(s,t)=>{const f=v("a-button"),O=v("a-menu-item"),le=v("a-menu"),re=v("a-dropdown"),ue=v("a-space"),q=v("a-statistic"),T=v("a-card"),D=v("a-col"),Re=v("a-row"),A=v("a-tag"),F=v("a-radio-button"),E=v("a-radio-group"),ce=v("a-popconfirm"),de=v("a-table"),fe=v("a-tab-pane"),Pe=v("a-tabs"),K=v("a-input"),N=v("a-form-item"),pe=v("a-input-number"),me=v("a-form"),ye=v("a-modal"),Be=v("a-textarea");return u(),m("div",null,[z("div",it,[z("div",null,[z("h2",lt,r(o(e)("inference.title")),1),z("p",rt,r(o(e)("inference.subtitle")),1)]),a(ue,null,{default:n(()=>[a(f,{loading:$.value,onClick:M},{icon:n(()=>[a(o(Ve))]),default:n(()=>[p(" "+r(o(e)("inference.refresh")),1)]),_:1},8,["loading"]),a(re,{trigger:["click"]},{overlay:n(()=>[a(le,{onClick:Te},{default:n(()=>[a(O,{key:"register"},{default:n(()=>[a(o(Z)),p(" "+r(o(e)("inference.actions.register")),1)]),_:1}),a(O,{key:"submit"},{default:n(()=>[a(o(ee)),p(" "+r(o(e)("inference.actions.submit")),1)]),_:1})]),_:1})]),default:n(()=>[a(f,{type:"primary"},{icon:n(()=>[a(o(Je))]),default:n(()=>[p(" "+r(o(e)("inference.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Re,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.totalNodes"),value:b.value.nodes.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[a(o(Z))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.onlineNodes"),value:b.value.nodes.online,"value-style":{color:b.value.nodes.online>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:n(()=>[a(o(Ge))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.totalTasks"),value:b.value.tasks.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[a(o(ee))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.queued"),value:b.value.tasks.queued,"value-style":{color:b.value.tasks.queued>0?"#faad14":"#52c41a",fontSize:"20px"}},{prefix:n(()=>[a(o(We))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(D,{xs:24,sm:8,lg:4},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.avgDuration"),value:b.value.tasks.avgDurationMs,suffix:"ms","value-style":{color:"#13c2c2",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),b.value.nodes.total>0?(u(),x(T,{key:0,title:o(e)("inference.breakdown.title"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:n(()=>[a(ue,{size:[12,8],wrap:""},{default:n(()=>[a(A,{color:"green"},{default:n(()=>[p(r(o(e)("inference.breakdown.online",{count:b.value.nodes.online})),1)]),_:1}),a(A,{color:"orange"},{default:n(()=>[p(r(o(e)("inference.breakdown.busy",{count:b.value.nodes.busy})),1)]),_:1}),a(A,{color:"default"},{default:n(()=>[p(r(o(e)("inference.breakdown.offline",{count:b.value.nodes.offline})),1)]),_:1}),z("span",ut,r(o(e)("inference.breakdown.extra",{complete:b.value.tasks.completed,failed:b.value.tasks.failed})),1)]),_:1})]),_:1},8,["title"])):g("",!0),a(Pe,{activeKey:Q.value,"onUpdate:activeKey":t[3]||(t[3]=i=>Q.value=i),class:"inference-tabs"},{default:n(()=>[a(fe,{key:"nodes",tab:o(e)("inference.tabs.nodes")},{default:n(()=>[z("div",ct,[a(E,{value:j.value,"onUpdate:value":t[0]||(t[0]=i=>j.value=i),size:"small","button-style":"solid"},{default:n(()=>[a(F,{value:""},{default:n(()=>[p(r(o(e)("inference.filter.all")),1)]),_:1}),(u(!0),m(C,null,I(o(ve),i=>(u(),x(F,{key:i,value:i},{default:n(()=>[p(r(H(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(de,{columns:be.value,"data-source":he.value,pagination:{pageSize:20,showTotal:i=>o(e)("inference.totals.rows",{count:i})},size:"small",loading:$.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:i,record:d})=>[i.key==="nodeId"?(u(),m(C,{key:0},[z("span",dt,r(d.nodeId),1),d.endpoint?(u(),m("div",ft,r(oe(d.endpoint,50)),1)):g("",!0)],64)):g("",!0),i.key==="capabilities"?(u(),m(C,{key:1},[(u(!0),m(C,null,I(d.capabilities.slice(0,4),S=>(u(),x(A,{key:S,color:"blue",style:{"font-size":"10px",margin:"1px"}},{default:n(()=>[p(r(S),1)]),_:2},1024))),128)),d.capabilities.length>4?(u(),x(A,{key:0,color:"default",style:{"font-size":"10px"}},{default:n(()=>[p("+"+r(d.capabilities.length-4),1)]),_:2},1024)):g("",!0),d.capabilities.length?g("",!0):(u(),m("span",pt,"—"))],64)):g("",!0),i.key==="gpu"?(u(),m(C,{key:2},[d.gpuMemoryMb>0?(u(),m("span",mt,r(Ne(d.gpuMemoryMb)),1)):(u(),m("span",yt,"—"))],64)):g("",!0),i.key==="status"?(u(),x(A,{key:3,color:Se(d.status)},{default:n(()=>[p(r(H(d.status)),1)]),_:2},1032,["color"])):g("",!0),i.key==="taskCount"?(u(),x(A,{key:4,color:"purple",style:{"font-size":"11px"}},{default:n(()=>[p(r(d.taskCount),1)]),_:2},1024)):g("",!0),i.key==="lastHeartbeat"?(u(),m("span",gt,r(o(ke)(d.lastHeartbeat)),1)):g("",!0),i.key==="action"?(u(),m(C,{key:6},[a(f,{size:"small",type:"link",loading:W.value===d.id,onClick:S=>je(d)},{default:n(()=>[p(r(o(e)("inference.rowActions.heartbeat")),1)]),_:1},8,["loading","onClick"]),a(re,{trigger:["click"]},{overlay:n(()=>[a(le,{onClick:S=>Le(d,S.key)},{default:n(()=>[(u(!0),m(C,null,I(o(ve),S=>(u(),x(O,{key:S,disabled:S===d.status},{default:n(()=>[p(r(H(S)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:n(()=>[a(f,{size:"small",type:"link"},{default:n(()=>[p(r(o(e)("inference.rowActions.statusDropdown")),1)]),_:1})]),_:2},1024),a(ce,{title:o(e)("inference.rowActions.unregisterConfirm"),"ok-text":o(e)("inference.rowActions.unregisterOk"),"cancel-text":o(e)("common.cancel"),onConfirm:S=>Ue(d)},{default:n(()=>[a(f,{size:"small",type:"link",danger:""},{default:n(()=>[p(r(o(e)("inference.rowActions.unregister")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):g("",!0)]),emptyText:n(()=>[z("div",vt,[a(o(Z),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+r(j.value?o(e)("inference.empty.filteredNodes"):o(e)("inference.empty.noNodes")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(fe,{key:"tasks",tab:o(e)("inference.tabs.tasks")},{default:n(()=>[z("div",_t,[a(E,{value:L.value,"onUpdate:value":t[1]||(t[1]=i=>L.value=i),size:"small"},{default:n(()=>[a(F,{value:""},{default:n(()=>[p(r(o(e)("inference.filter.allStatuses")),1)]),_:1}),(u(!0),m(C,null,I(o(Xe),i=>(u(),x(F,{key:i,value:i},{default:n(()=>[p(r(ae(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(E,{value:U.value,"onUpdate:value":t[2]||(t[2]=i=>U.value=i),size:"small"},{default:n(()=>[a(F,{value:""},{default:n(()=>[p(r(o(e)("inference.filter.allModes")),1)]),_:1}),(u(!0),m(C,null,I(o(_e),i=>(u(),x(F,{key:i,value:i},{default:n(()=>[p(r(X(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(de,{columns:xe.value,"data-source":Ce.value,pagination:{pageSize:20,showTotal:i=>o(e)("inference.totals.rows",{count:i})},size:"small",loading:$.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:i,record:d})=>[i.key==="model"?(u(),m(C,{key:0},[z("span",kt,r(d.model),1),d.input?(u(),m("div",bt,r(oe(d.input,60)),1)):g("",!0)],64)):g("",!0),i.key==="privacyMode"?(u(),x(A,{key:1,color:ze(d.privacyMode)},{default:n(()=>[p(r(X(d.privacyMode)),1)]),_:2},1032,["color"])):g("",!0),i.key==="priority"?(u(),m("span",{key:2,style:Qe({color:Me(d.priority),fontWeight:500})},r(d.priority),5)):g("",!0),i.key==="assignedNode"?(u(),m(C,{key:3},[d.assignedNode?(u(),m("span",xt,r(Ae(d.assignedNode)),1)):(u(),m("span",ht,"—"))],64)):g("",!0),i.key==="status"?(u(),x(A,{key:4,color:we(d.status)},{default:n(()=>[p(r(ae(d.status)),1)]),_:2},1032,["color"])):g("",!0),i.key==="duration"?(u(),m(C,{key:5},[d.durationMs!=null?(u(),m("span",Ct,r(d.durationMs)+" ms ",1)):(u(),m("span",St,"—"))],64)):g("",!0),i.key==="createdAt"?(u(),m("span",wt,r(o(ke)(d.createdAt)),1)):g("",!0),i.key==="action"?(u(),m(C,{key:7},[Fe(d)?(u(),x(f,{key:0,size:"small",type:"link",loading:Y.value===d.id,onClick:S=>qe(d)},{default:n(()=>[p(r(o(e)("inference.rowActions.complete")),1)]),_:1},8,["loading","onClick"])):g("",!0),Oe(d)?(u(),x(ce,{key:1,title:o(e)("inference.rowActions.failConfirm"),"ok-text":o(e)("inference.rowActions.failOk"),"cancel-text":o(e)("common.cancel"),onConfirm:S=>De(d)},{default:n(()=>[a(f,{size:"small",type:"link",danger:""},{default:n(()=>[p(r(o(e)("inference.rowActions.fail")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):g("",!0)],64)):g("",!0)]),emptyText:n(()=>[z("div",zt,[a(o(ee),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+r(L.value||U.value?o(e)("inference.empty.filteredTasks"):o(e)("inference.empty.noTasks")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ye,{open:P.value,"onUpdate:open":t[8]||(t[8]=i=>P.value=i),title:o(e)("inference.register.title"),"confirm-loading":J.value,width:520,"ok-text":o(e)("inference.register.ok"),"cancel-text":o(e)("common.cancel"),onOk:Ie,onCancel:se},{default:n(()=>[a(me,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:n(()=>[a(N,{label:o(e)("inference.register.nodeIdLabel"),required:""},{default:n(()=>[a(K,{value:_.nodeId,"onUpdate:value":t[4]||(t[4]=i=>_.nodeId=i),placeholder:o(e)("inference.register.nodeIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.register.endpointLabel")},{default:n(()=>[a(K,{value:_.endpoint,"onUpdate:value":t[5]||(t[5]=i=>_.endpoint=i),placeholder:o(e)("inference.register.endpointPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.register.capabilitiesLabel")},{default:n(()=>[a(K,{value:_.capabilities,"onUpdate:value":t[6]||(t[6]=i=>_.capabilities=i),placeholder:o(e)("inference.register.capabilitiesPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.register.gpuLabel")},{default:n(()=>[a(pe,{value:_.gpuMemory,"onUpdate:value":t[7]||(t[7]=i=>_.gpuMemory=i),min:0,max:2e5,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ye,{open:B.value,"onUpdate:open":t[13]||(t[13]=i=>B.value=i),title:o(e)("inference.submit.title"),"confirm-loading":G.value,width:520,"ok-text":o(e)("inference.submit.ok"),"cancel-text":o(e)("common.cancel"),onOk:$e,onCancel:ie},{default:n(()=>[a(me,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:n(()=>[a(N,{label:o(e)("inference.submit.modelLabel"),required:""},{default:n(()=>[a(K,{value:k.model,"onUpdate:value":t[9]||(t[9]=i=>k.model=i),placeholder:o(e)("inference.submit.modelPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.submit.inputLabel")},{default:n(()=>[a(Be,{value:k.input,"onUpdate:value":t[10]||(t[10]=i=>k.input=i),"auto-size":{minRows:3,maxRows:6}},null,8,["value"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.submit.priorityLabel")},{default:n(()=>[a(pe,{value:k.priority,"onUpdate:value":t[11]||(t[11]=i=>k.priority=i),min:1,max:10,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.submit.modeLabel")},{default:n(()=>[a(E,{value:k.mode,"onUpdate:value":t[12]||(t[12]=i=>k.mode=i)},{default:n(()=>[(u(!0),m(C,null,I(o(_e),i=>(u(),x(F,{key:i,value:i},{default:n(()=>[p(r(X(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Ot=He(Mt,[["__scopeId","data-v-849fc966"]]);export{Ot as default};
@@ -0,0 +1 @@
1
+ .page-title[data-v-849fc966]{margin:0;color:var(--text-primary);font-size:22px;font-weight:600}.page-sub[data-v-849fc966]{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.inference-tabs[data-v-849fc966] .ant-tabs-nav{margin-bottom:16px}.filter-bar[data-v-849fc966]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
@@ -0,0 +1 @@
1
+ import{t as N,_ as Be,u as Pe,b as Me,d as h}from"./index-3RqDry-K.js";import{u as Ne,i as Ke,a as qe,b as Ve,c as Ye,d as Je,E as Qe}from"./echarts-CDp6K7pj.js";import{R as We,at as Ze,aC as le,a2 as ke,v as He,a6 as Xe}from"./icons-DlxlFL4g.js";import{o as et,M as m,R as $,P as s,c as t,N as a,Q as E,S as G,K as p,r as v,L as d,O as c,u as T,F as A,Y as L,f as U,a as re}from"./vendor-BXcBOG8b.js";function ie(r,i=0){if(!r||typeof r!="object")return null;const n=r.id||r.entity_id||"";if(!n)return null;const k=Array.isArray(r.tags)?r.tags:typeof r.tags=="string"&&r.tags.length>0?r.tags.split(",").map(_=>_.trim()).filter(Boolean):[];return{key:n,id:n,name:r.name||"",type:r.type||"",tags:k,properties:r.properties&&typeof r.properties=="object"?r.properties:null,createdAt:r.created_at||r.createdAt||"",updatedAt:r.updated_at||r.updatedAt||"",_idx:i}}function _e(r,i=0){if(!r||typeof r!="object")return null;const n=r.id||r.relation_id||"";if(!n)return null;const k=r.sourceId||r.source_id||"",_=r.targetId||r.target_id||"";if(!k||!_)return null;const R=typeof r.weight=="number"?r.weight:typeof r.weight=="string"?parseFloat(r.weight):1;return{key:n,id:n,sourceId:k,targetId:_,relationType:r.relationType||r.relation_type||"",weight:Number.isFinite(R)?R:1,properties:r.properties&&typeof r.properties=="object"?r.properties:null,createdAt:r.created_at||r.createdAt||"",_idx:i}}function tt(r){const i=N(r);return Array.isArray(i)?i.map(ie).filter(Boolean):i&&Array.isArray(i.entities)?i.entities.map(ie).filter(Boolean):[]}function at(r){const i=N(r);return Array.isArray(i)?i.map(_e).filter(Boolean):i&&Array.isArray(i.relations)?i.relations.map(_e).filter(Boolean):[]}function ot(r){const i=N(r);if(!i||typeof i!="object"||Array.isArray(i))return{entityCount:0,relationCount:0,avgDegree:0,density:0,typeDistribution:{},relationTypeDistribution:{}};const n=k=>{const _=typeof k=="number"?k:parseFloat(k);return Number.isFinite(_)?_:0};return{entityCount:n(i.entityCount??i.entity_count),relationCount:n(i.relationCount??i.relation_count),avgDegree:n(i.avgDegree??i.avg_degree),density:n(i.density),typeDistribution:i.typeDistribution||i.type_distribution||{},relationTypeDistribution:i.relationTypeDistribution||i.relation_type_distribution||{}}}function nt(r){const i=N(r);return Array.isArray(i)?i.map((n,k)=>{if(!n||typeof n!="object"||!n.entity)return null;const _=ie(n.entity,k);return _?{key:`${_.id}-${k}`,depth:typeof n.depth=="number"?n.depth:0,entity:_}:null}).filter(Boolean):[]}function lt(r){const i=N(r);return Array.isArray(i)?i.map(n=>!n||typeof n!="object"||!n.name?null:{name:String(n.name),description:String(n.description||"")}).filter(Boolean):[]}function rt(r,i){const n=new Map,k=[];for(const f of r)n.has(f.type)||(n.set(f.type,k.length),k.push({name:f.type||"unknown"}));const _=r.map(f=>({id:f.id,name:f.name||f.id.slice(0,8),category:n.get(f.type)??0,value:1,symbolSize:24})),R=new Set(r.map(f=>f.id)),j=[];for(const f of i)!R.has(f.sourceId)||!R.has(f.targetId)||j.push({source:f.sourceId,target:f.targetId,value:f.relationType,lineStyle:{width:Math.max(1,Math.min(6,f.weight*2))}});return{nodes:_,links:j,categories:k}}const it={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},st={class:"page-title"},dt={class:"page-sub"},ut={key:0,style:{padding:"60px","text-align":"center"}},pt={key:1,style:{height:"540px"}},ct={key:0,style:{color:"#888","font-family":"monospace","font-size":"11px"}},yt={key:1,style:{color:"var(--text-primary)"}},gt={key:0,style:{color:"var(--text-muted)"}},mt={key:0,style:{color:"#888","font-family":"monospace","font-size":"11px"}},ft={key:1,style:{color:"var(--text-muted)"}},ht={key:2,style:{color:"#888","font-family":"monospace","font-size":"11px"}},vt={key:4,style:{color:"var(--text-secondary)","font-family":"monospace"}},kt={key:0,style:{padding:"40px","text-align":"center",color:"var(--text-muted)"}},_t={style:{display:"flex","justify-content":"space-between","margin-bottom":"4px"}},bt={style:{color:"var(--text-secondary)","font-family":"monospace"}},wt={key:0,style:{padding:"40px","text-align":"center",color:"var(--text-muted)"}},Gt={style:{display:"flex","justify-content":"space-between","margin-bottom":"4px"}},$t={style:{color:"var(--text-secondary)","font-family":"monospace"}},xt={style:{color:"var(--text-muted)","font-size":"11px"}},Ct={key:0,style:{padding:"30px","text-align":"center",color:"var(--text-muted)"}},Tt={style:{"margin-left":"12px",color:"var(--text-primary)"}},Rt={style:{"margin-left":"8px",color:"#888","font-family":"monospace","font-size":"11px"}},Et={__name:"KnowledgeGraph",setup(r){Ne([Ke,qe,Ve,Ye,Je]);const i=Pe(),{t:n}=Me(),k=v(!1),_=v(!1),R=v(!1),j=v(!1),f=v(!1),Z=v(""),K=v(!1),se=v("graph"),x=v([]),B=v([]),H=v([]),I=v({entityCount:0,relationCount:0,avgDegree:0,density:0,typeDistribution:{},relationTypeDistribution:{}}),q=v(!1),V=v(!1),X=v(!1),b=re({name:"",type:"",tags:""}),y=re({sourceId:"",targetId:"",relationType:"",weight:1}),z=re({maxDepth:3,direction:"out"}),de=v(""),ue=v(""),P=v([]),be=U(()=>[{title:n("knowledgeGraph.entityCols.id"),key:"id",width:"120px"},{title:n("knowledgeGraph.entityCols.name"),key:"name",dataIndex:"name",ellipsis:!0},{title:n("knowledgeGraph.entityCols.type"),key:"type",dataIndex:"type",width:"140px"},{title:n("knowledgeGraph.entityCols.tags"),key:"tags",width:"200px"},{title:n("knowledgeGraph.entityCols.action"),key:"action",width:"160px"}]),we=U(()=>[{title:n("knowledgeGraph.relationCols.source"),key:"source",width:"120px"},{title:"",key:"arrow",width:"40px"},{title:n("knowledgeGraph.relationCols.target"),key:"target",width:"120px"},{title:n("knowledgeGraph.relationCols.relationType"),key:"relationType",width:"160px"},{title:n("knowledgeGraph.relationCols.weight"),key:"weight",width:"100px"}]),Ge={Person:"magenta",Organization:"blue",Project:"cyan",Technology:"geekblue",Document:"gold",Concept:"purple",Event:"volcano"};function ee(e){return Ge[e]||"default"}const $e=U(()=>{const e=new Map;for(const l of x.value)e.set(l.id,l.name||l.id.slice(0,8));return e});function pe(e){return $e.value.get(e)||e.slice(0,12)}function ce(e,l){return String(l?.children?.[0]?.children||"").toLowerCase().includes(String(e).toLowerCase())}const ye=U(()=>{const e=I.value.typeDistribution||{},l=Object.values(e).reduce((u,g)=>u+g,0)||1;return Object.entries(e).map(([u,g])=>({type:u,count:g,percent:Math.round(g/l*100)})).sort((u,g)=>g.count-u.count)}),ge=U(()=>{const e=I.value.relationTypeDistribution||{},l=Object.values(e).reduce((u,g)=>u+g,0)||1;return Object.entries(e).map(([u,g])=>({type:u,count:g,percent:Math.round(g/l*100)})).sort((u,g)=>g.count-u.count)}),xe=U(()=>{const{nodes:e,links:l,categories:u}=rt(x.value,B.value);return{tooltip:{show:!0},legend:[{data:u.map(g=>g.name),textStyle:{color:"#aaa"},bottom:0}],series:[{type:"graph",layout:"force",data:e,links:l,categories:u,roam:!0,label:{show:!0,position:"right",color:"#ddd",fontSize:11},lineStyle:{color:"source",curveness:.1,opacity:.6},emphasis:{focus:"adjacency",lineStyle:{width:4}},force:{repulsion:180,edgeLength:[60,140],gravity:.05}}]}});async function M(){_.value=!0;try{await Promise.all([Ce(),Te(),Re()])}finally{_.value=!1}}async function Ce(){try{const{output:e}=await i.execute("kg list --limit 500 --json",15e3);x.value=tt(e)}catch(e){h.error(n("knowledgeGraph.msg.loadEntitiesFailed")+": "+e.message),x.value=[]}}async function Te(){try{const{output:e}=await i.execute("kg relations --limit 1000 --json",15e3);B.value=at(e)}catch(e){h.error(n("knowledgeGraph.msg.loadRelationsFailed")+": "+e.message),B.value=[]}}async function Re(){try{const{output:e}=await i.execute("kg stats --json",1e4);I.value=ot(e)}catch(e){h.error(n("knowledgeGraph.msg.loadStatsFailed")+": "+e.message)}}async function Ee(){if(!(H.value.length>0)){R.value=!0;try{const{output:e}=await i.execute("kg entity-types --json",1e4);H.value=lt(e)}catch(e){h.error(n("knowledgeGraph.msg.loadEntityTypesFailed")+": "+e.message)}finally{R.value=!1}}}async function Ie(){if(!b.name.trim()||!b.type){h.warning(n("knowledgeGraph.msg.addEntityEmpty"));return}j.value=!0;try{let l=`kg add "${b.name.trim().replace(/"/g,'\\"')}" ${b.type} --json`;b.tags.trim()&&(l+=` --tags "${b.tags.trim().replace(/"/g,'\\"')}"`);const{output:u,exitCode:g}=await i.execute(l,15e3);g!==0||/error|失败/i.test(u)?h.error(n("knowledgeGraph.msg.addEntityFailed")+": "+u.slice(0,120)):(h.success(n("knowledgeGraph.msg.addEntitySuccess")),q.value=!1,b.name="",b.type="",b.tags="",await M())}catch(e){h.error(n("knowledgeGraph.msg.addEntityFailed")+": "+e.message)}finally{j.value=!1}}async function Se(){if(!y.sourceId||!y.targetId||!y.relationType.trim()){h.warning(n("knowledgeGraph.msg.addRelationEmpty"));return}if(y.sourceId===y.targetId){h.warning(n("knowledgeGraph.msg.addRelationSelfLoop"));return}f.value=!0;try{const e=y.relationType.trim().replace(/"/g,'\\"'),l=`kg add-relation ${y.sourceId} ${y.targetId} "${e}" --weight ${y.weight} --json`,{output:u,exitCode:g}=await i.execute(l,15e3);g!==0||/error|失败/i.test(u)?h.error(n("knowledgeGraph.msg.addRelationFailed")+": "+u.slice(0,120)):(h.success(n("knowledgeGraph.msg.addRelationSuccess")),V.value=!1,y.sourceId="",y.targetId="",y.relationType="",y.weight=1,await M())}catch(e){h.error(n("knowledgeGraph.msg.addRelationFailed")+": "+e.message)}finally{f.value=!1}}async function De(e){Z.value=e.id;try{const{output:l,exitCode:u}=await i.execute(`kg remove ${e.id}`,15e3);u!==0||/error|失败/i.test(l)?h.error(n("knowledgeGraph.msg.deleteFailed")+": "+l.slice(0,120)):(h.success(n("knowledgeGraph.msg.deleteSuccess")),await M())}catch(l){h.error(n("knowledgeGraph.msg.deleteFailed")+": "+l.message)}finally{Z.value=""}}function Ae(e){de.value=e.id,ue.value=e.name,P.value=[],X.value=!0}async function je(){K.value=!0;try{const e=`kg reason ${de.value} --max-depth ${z.maxDepth} --direction ${z.direction} --json`,{output:l}=await i.execute(e,15e3);P.value=nt(l),P.value.length===0&&h.info(n("knowledgeGraph.msg.reasonEmpty"))}catch(e){h.error(n("knowledgeGraph.msg.reasonFailed")+": "+e.message)}finally{K.value=!1}}return et(()=>{M(),Ee()}),(e,l)=>{const u=p("a-button"),g=p("a-space"),Y=p("a-statistic"),S=p("a-card"),O=p("a-col"),me=p("a-row"),ze=p("a-alert"),te=p("a-empty"),J=p("a-tab-pane"),D=p("a-tag"),Oe=p("a-popconfirm"),fe=p("a-table"),he=p("a-progress"),Fe=p("a-tabs"),ae=p("a-input"),C=p("a-form-item"),F=p("a-select-option"),Q=p("a-select"),oe=p("a-form"),ne=p("a-modal"),ve=p("a-input-number"),Le=p("a-list-item"),Ue=p("a-list");return d(),m("div",null,[$("div",it,[$("div",null,[$("h2",st,s(e.$t("knowledgeGraph.title")),1),$("p",dt,s(e.$t("knowledgeGraph.subtitle")),1)]),t(g,null,{default:a(()=>[t(u,{loading:_.value,onClick:M},{icon:a(()=>[t(T(We))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.refresh")),1)]),_:1},8,["loading"]),t(u,{type:"primary",onClick:l[0]||(l[0]=o=>q.value=!0)},{icon:a(()=>[t(T(Ze))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.addEntity")),1)]),_:1}),t(u,{onClick:l[1]||(l[1]=o=>V.value=!0),disabled:x.value.length<2},{icon:a(()=>[t(T(le))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.addRelation")),1)]),_:1},8,["disabled"])]),_:1})]),t(me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(O,{xs:24,sm:12,lg:6},{default:a(()=>[t(S,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(Y,{title:e.$t("knowledgeGraph.stats.entityCount"),value:I.value.entityCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(T(ke))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(O,{xs:24,sm:12,lg:6},{default:a(()=>[t(S,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(Y,{title:e.$t("knowledgeGraph.stats.relationCount"),value:I.value.relationCount,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(T(le))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(O,{xs:24,sm:12,lg:6},{default:a(()=>[t(S,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(Y,{title:e.$t("knowledgeGraph.stats.avgDegree"),value:I.value.avgDegree,precision:2,"value-style":{color:"#faad14",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),t(O,{xs:24,sm:12,lg:6},{default:a(()=>[t(S,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(Y,{title:e.$t("knowledgeGraph.stats.density"),value:I.value.density,precision:4,"value-style":{color:"#722ed1",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),k.value?G("",!0):(d(),E(ze,{key:0,message:e.$t("knowledgeGraph.webOnly.message"),description:e.$t("knowledgeGraph.webOnly.description"),type:"info","show-icon":"",closable:"",style:{"margin-bottom":"16px"}},null,8,["message","description"])),t(Fe,{activeKey:se.value,"onUpdate:activeKey":l[2]||(l[2]=o=>se.value=o),type:"card"},{default:a(()=>[t(J,{key:"graph"},{tab:a(()=>[t(T(He)),c(" "+s(e.$t("knowledgeGraph.tabs.graph")),1)]),default:a(()=>[t(S,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[x.value.length===0?(d(),m("div",ut,[t(te,{description:e.$t("knowledgeGraph.table.emptyGraph")},null,8,["description"])])):(d(),m("div",pt,[t(T(Qe),{option:xe.value,autoresize:""},null,8,["option"])]))]),_:1})]),_:1}),t(J,{key:"entities"},{tab:a(()=>[t(T(ke)),c(" "+s(e.$t("knowledgeGraph.tabs.entities",{n:x.value.length})),1)]),default:a(()=>[t(fe,{columns:be.value,"data-source":x.value,pagination:{pageSize:20,showTotal:o=>e.$t("knowledgeGraph.table.totalSuffix",{n:o})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"kg-row"},{bodyCell:a(({column:o,record:w})=>[o.key==="id"?(d(),m("span",ct,s(w.id.slice(0,12)),1)):G("",!0),o.key==="name"?(d(),m("span",yt,s(w.name),1)):G("",!0),o.key==="type"?(d(),E(D,{key:2,color:ee(w.type)},{default:a(()=>[c(s(w.type),1)]),_:2},1032,["color"])):G("",!0),o.key==="tags"?(d(),m(A,{key:3},[(d(!0),m(A,null,L(w.tags,W=>(d(),E(D,{key:W,color:"default"},{default:a(()=>[c(s(W),1)]),_:2},1024))),128)),w.tags.length===0?(d(),m("span",gt,"-")):G("",!0)],64)):G("",!0),o.key==="action"?(d(),E(g,{key:4,size:"small"},{default:a(()=>[t(u,{size:"small",type:"link",onClick:W=>Ae(w)},{default:a(()=>[c(s(e.$t("knowledgeGraph.actions.reason")),1)]),_:1},8,["onClick"]),t(Oe,{title:e.$t("knowledgeGraph.deleteConfirm.title"),"ok-text":e.$t("knowledgeGraph.deleteConfirm.ok"),"ok-type":"danger","cancel-text":e.$t("knowledgeGraph.deleteConfirm.cancel"),onConfirm:W=>De(w)},{default:a(()=>[t(u,{size:"small",type:"link",danger:"",loading:Z.value===w.id},{default:a(()=>[c(s(e.$t("knowledgeGraph.actions.delete")),1)]),_:1},8,["loading"])]),_:2},1032,["title","ok-text","cancel-text","onConfirm"])]),_:2},1024)):G("",!0)]),emptyText:a(()=>[t(te,{description:e.$t("knowledgeGraph.table.emptyEntities")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])]),_:1}),t(J,{key:"relations"},{tab:a(()=>[t(T(le)),c(" "+s(e.$t("knowledgeGraph.tabs.relations",{n:B.value.length})),1)]),default:a(()=>[t(fe,{columns:we.value,"data-source":B.value,pagination:{pageSize:20,showTotal:o=>e.$t("knowledgeGraph.table.totalSuffix",{n:o})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"kg-row"},{bodyCell:a(({column:o,record:w})=>[o.key==="source"?(d(),m("span",mt,s(pe(w.sourceId)),1)):G("",!0),o.key==="arrow"?(d(),m("span",ft,"→")):G("",!0),o.key==="target"?(d(),m("span",ht,s(pe(w.targetId)),1)):G("",!0),o.key==="relationType"?(d(),E(D,{key:3,color:"cyan"},{default:a(()=>[c(s(w.relationType),1)]),_:2},1024)):G("",!0),o.key==="weight"?(d(),m("span",vt,s(w.weight.toFixed(2)),1)):G("",!0)]),emptyText:a(()=>[t(te,{description:e.$t("knowledgeGraph.table.emptyRelations")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])]),_:1}),t(J,{key:"distribution"},{tab:a(()=>[t(T(Xe)),c(" "+s(e.$t("knowledgeGraph.tabs.distribution")),1)]),default:a(()=>[t(me,{gutter:[24,24]},{default:a(()=>[t(O,{xs:24,md:12},{default:a(()=>[t(S,{title:e.$t("knowledgeGraph.distribution.entityTypes"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[ye.value.length===0?(d(),m("div",kt,s(e.$t("knowledgeGraph.table.emptyData")),1)):G("",!0),(d(!0),m(A,null,L(ye.value,o=>(d(),m("div",{key:o.type,style:{"margin-bottom":"8px"}},[$("div",_t,[t(D,{color:ee(o.type)},{default:a(()=>[c(s(o.type),1)]),_:2},1032,["color"]),$("span",bt,s(o.count),1)]),t(he,{percent:o.percent,"show-info":!1,"stroke-color":"#1677ff"},null,8,["percent"])]))),128))]),_:1},8,["title"])]),_:1}),t(O,{xs:24,md:12},{default:a(()=>[t(S,{title:e.$t("knowledgeGraph.distribution.relationTypes"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[ge.value.length===0?(d(),m("div",wt,s(e.$t("knowledgeGraph.table.emptyData")),1)):G("",!0),(d(!0),m(A,null,L(ge.value,o=>(d(),m("div",{key:o.type,style:{"margin-bottom":"8px"}},[$("div",Gt,[t(D,{color:"cyan"},{default:a(()=>[c(s(o.type),1)]),_:2},1024),$("span",$t,s(o.count),1)]),t(he,{percent:o.percent,"show-info":!1,"stroke-color":"#52c41a"},null,8,["percent"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1})]),_:1},8,["activeKey"]),t(ne,{open:q.value,"onUpdate:open":l[6]||(l[6]=o=>q.value=o),title:e.$t("knowledgeGraph.addEntity_modal.title"),"confirm-loading":j.value,onOk:Ie,"ok-text":e.$t("knowledgeGraph.addEntity_modal.ok"),"cancel-text":e.$t("knowledgeGraph.addEntity_modal.cancel")},{default:a(()=>[t(oe,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:a(()=>[t(C,{label:e.$t("knowledgeGraph.addEntity_modal.nameLabel"),required:""},{default:a(()=>[t(ae,{value:b.name,"onUpdate:value":l[3]||(l[3]=o=>b.name=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addEntity_modal.typeLabel"),required:""},{default:a(()=>[t(Q,{value:b.type,"onUpdate:value":l[4]||(l[4]=o=>b.type=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.typePlaceholder"),loading:R.value},{default:a(()=>[(d(!0),m(A,null,L(H.value,o=>(d(),E(F,{key:o.name,value:o.name},{default:a(()=>[c(s(o.name)+" ",1),$("span",xt,"— "+s(o.description),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder","loading"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addEntity_modal.tagsLabel")},{default:a(()=>[t(ae,{value:b.tags,"onUpdate:value":l[5]||(l[5]=o=>b.tags=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.tagsPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(ne,{open:V.value,"onUpdate:open":l[11]||(l[11]=o=>V.value=o),title:e.$t("knowledgeGraph.addRelation_modal.title"),"confirm-loading":f.value,onOk:Se,"ok-text":e.$t("knowledgeGraph.addRelation_modal.ok"),"cancel-text":e.$t("knowledgeGraph.addRelation_modal.cancel")},{default:a(()=>[t(oe,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:a(()=>[t(C,{label:e.$t("knowledgeGraph.addRelation_modal.sourceLabel"),required:""},{default:a(()=>[t(Q,{value:y.sourceId,"onUpdate:value":l[7]||(l[7]=o=>y.sourceId=o),placeholder:e.$t("knowledgeGraph.addRelation_modal.sourcePlaceholder"),"show-search":"","filter-option":ce},{default:a(()=>[(d(!0),m(A,null,L(x.value,o=>(d(),E(F,{key:o.id,value:o.id},{default:a(()=>[c(s(o.name)+" ("+s(o.type)+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addRelation_modal.targetLabel"),required:""},{default:a(()=>[t(Q,{value:y.targetId,"onUpdate:value":l[8]||(l[8]=o=>y.targetId=o),placeholder:e.$t("knowledgeGraph.addRelation_modal.targetPlaceholder"),"show-search":"","filter-option":ce},{default:a(()=>[(d(!0),m(A,null,L(x.value,o=>(d(),E(F,{key:o.id,value:o.id,disabled:o.id===y.sourceId},{default:a(()=>[c(s(o.name)+" ("+s(o.type)+") ",1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addRelation_modal.relationTypeLabel"),required:""},{default:a(()=>[t(ae,{value:y.relationType,"onUpdate:value":l[9]||(l[9]=o=>y.relationType=o),placeholder:e.$t("knowledgeGraph.addRelation_modal.relationTypePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addRelation_modal.weightLabel")},{default:a(()=>[t(ve,{value:y.weight,"onUpdate:value":l[10]||(l[10]=o=>y.weight=o),min:.1,max:10,step:.1,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(ne,{open:X.value,"onUpdate:open":l[14]||(l[14]=o=>X.value=o),title:e.$t("knowledgeGraph.reason_modal.title",{name:ue.value}),width:640,footer:null},{default:a(()=>[t(oe,{layout:"inline",style:{"margin-bottom":"16px"}},{default:a(()=>[t(C,{label:e.$t("knowledgeGraph.reason_modal.maxDepth")},{default:a(()=>[t(ve,{value:z.maxDepth,"onUpdate:value":l[12]||(l[12]=o=>z.maxDepth=o),min:1,max:10},null,8,["value"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.reason_modal.direction")},{default:a(()=>[t(Q,{value:z.direction,"onUpdate:value":l[13]||(l[13]=o=>z.direction=o),style:{width:"100px"}},{default:a(()=>[t(F,{value:"out"},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.directionOut")),1)]),_:1}),t(F,{value:"in"},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.directionIn")),1)]),_:1}),t(F,{value:"both"},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.directionBoth")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),t(C,null,{default:a(()=>[t(u,{type:"primary",loading:K.value,onClick:je},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.run")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),P.value.length===0&&!K.value?(d(),m("div",Ct,s(e.$t("knowledgeGraph.reason_modal.hint")),1)):(d(),E(Ue,{key:1,"data-source":P.value,size:"small"},{renderItem:a(({item:o})=>[t(Le,null,{default:a(()=>[t(D,{color:"purple"},{default:a(()=>[c("depth="+s(o.depth),1)]),_:2},1024),t(D,{color:ee(o.entity.type),style:{"margin-left":"8px"}},{default:a(()=>[c(s(o.entity.type),1)]),_:2},1032,["color"]),$("span",Tt,s(o.entity.name),1),$("span",Rt,s(o.entity.id.slice(0,12)),1)]),_:2},1024)]),_:1},8,["data-source"]))]),_:1},8,["open","title"])])}}},jt=Be(Et,[["__scopeId","data-v-d675e73f"]]);export{jt as default};
@@ -0,0 +1 @@
1
+ [data-v-d675e73f] .kg-row:hover td{background:var(--bg-card-hover)!important}[data-v-d675e73f] .ant-tabs-tab{color:var(--text-secondary)!important}[data-v-d675e73f] .ant-tabs-tab-active .ant-tabs-tab-btn{color:#1677ff!important}[data-v-d675e73f] .ant-card-head{border-color:var(--border-color)!important;color:var(--text-primary)!important}
@@ -0,0 +1,2 @@
1
+ import{_ as E,u as U}from"./index-3RqDry-K.js";import{R as q}from"./icons-DlxlFL4g.js";import{w as z,o as A,M as i,R as o,c as a,N as d,Q as D,S as F,P as h,F as Q,Y as j,n as w,K as l,r,f as L,L as u,O as b,u as I,Z as P}from"./vendor-BXcBOG8b.js";const Y={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Z={style:{display:"flex",gap:"10px",margin:"12px 0"}},G={key:0,style:{"text-align":"center",padding:"40px",color:"var(--text-muted)"}},J={key:1,style:{"text-align":"center",padding:"40px",color:"var(--text-muted)"}},X={key:2},ee=["innerHTML"],te={__name:"Logs",setup(ae){const C=U(),k=r("status"),v=r(!1),g=r(""),_=r(""),c=r(""),m=r(!0),n=r(null),T={status:"status",doctor:"doctor","skill-sources":"skill sources","llm-providers":"llm providers"},f=L(()=>_.value.split(`
2
+ `)),p=L(()=>{if(!c.value)return f.value;const e=c.value.toLowerCase();return f.value.filter(t=>t.toLowerCase().includes(e))});function M(e){return e.includes("✖")||e.includes("error")||e.includes("Error")||e.includes("failed")?"line-error":e.includes("✔")||e.includes("✓")||e.includes("success")||e.includes("running")?"line-success":e.includes("warn")||e.includes("Warn")||e.includes("○")?"line-warn":e.startsWith(" ")||e.startsWith(" ")?"line-indent":""}function N(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function S(e){if(!c.value)return e;const t=c.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`(${t})`,"gi"),"<mark>$1</mark>")}async function x(){v.value=!0,g.value="",_.value="";const e=T[k.value]||"status";try{const{output:t}=await C.execute(e,3e4);_.value=t,m.value&&(await w(),n.value&&(n.value.scrollTop=n.value.scrollHeight))}catch(t){g.value=`执行失败: ${t.message}`,_.value=g.value}finally{v.value=!1}}return z(p,async()=>{m.value&&(await w(),n.value&&(n.value.scrollTop=n.value.scrollHeight))}),A(x),(e,t)=>{const B=l("a-checkbox"),H=l("a-button"),$=l("a-space"),y=l("a-tab-pane"),K=l("a-tabs"),O=l("a-input-search"),R=l("a-tag"),V=l("a-spin");return u(),i("div",null,[o("div",Y,[t[5]||(t[5]=o("div",null,[o("h2",{class:"page-title"},"日志查看"),o("p",{class:"page-sub"},"系统运行日志与诊断输出")],-1)),a($,null,{default:d(()=>[a(B,{checked:m.value,"onUpdate:checked":t[0]||(t[0]=s=>m.value=s)},{default:d(()=>[...t[3]||(t[3]=[b("自动滚动",-1)])]),_:1},8,["checked"]),a(H,{type:"primary",ghost:"",loading:v.value,onClick:x},{icon:d(()=>[a(I(q))]),default:d(()=>[t[4]||(t[4]=b(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),a(K,{activeKey:k.value,"onUpdate:activeKey":t[1]||(t[1]=s=>k.value=s),onChange:x,style:{"margin-bottom":"0"}},{default:d(()=>[a(y,{key:"status",tab:"系统状态"}),a(y,{key:"doctor",tab:"环境诊断"}),a(y,{key:"skill-sources",tab:"技能来源"}),a(y,{key:"llm-providers",tab:"LLM 提供商"})]),_:1},8,["activeKey"]),o("div",Z,[a(O,{value:c.value,"onUpdate:value":t[2]||(t[2]=s=>c.value=s),placeholder:"搜索日志内容...","allow-clear":"",style:{flex:"1"}},null,8,["value"]),p.value.length!==f.value.length?(u(),D(R,{key:0,color:"blue"},{default:d(()=>[b(h(p.value.length)+" / "+h(f.value.length)+" 行 ",1)]),_:1})):F("",!0)]),o("div",{ref_key:"logContainer",ref:n,class:"log-box"},[v.value?(u(),i("div",G,[a(V,{size:"large"}),t[6]||(t[6]=o("div",{style:{"margin-top":"10px"}},"加载中...",-1))])):p.value.length?(u(),i("div",X,[(u(!0),i(Q,null,j(p.value,(s,W)=>(u(),i("div",{key:W,class:P(["log-line",M(s)]),innerHTML:S(N(s))},null,10,ee))),128))])):(u(),i("div",J,h(g.value||"暂无日志内容,点击刷新加载"),1))],512)])}}},oe=E(te,[["__scopeId","data-v-b316ead3"]]);export{oe as default};
@@ -0,0 +1 @@
1
+ .log-box[data-v-b316ead3]{background:var(--bg-base);border:1px solid var(--border-color);border-radius:8px;padding:12px 16px;height:calc(100vh - 280px);min-height:300px;overflow-y:auto;font-family:Cascadia Code,JetBrains Mono,Consolas,monospace;font-size:12px;line-height:1.7}.log-line[data-v-b316ead3]{padding:1px 0;white-space:pre-wrap;word-break:break-all;color:var(--text-secondary)}.line-error[data-v-b316ead3]{color:#ff6b6b}.line-success[data-v-b316ead3]{color:#69db7c}.line-warn[data-v-b316ead3]{color:#fcc419}.line-indent[data-v-b316ead3]{color:var(--text-secondary)}[data-v-b316ead3] mark{background:#d4a017;color:#000;border-radius:2px;padding:0 2px}
@@ -0,0 +1 @@
1
+ .markdown-content[data-v-693ca57e] pre{background:var(--bg-base);border-radius:6px;padding:12px;overflow-x:auto;font-size:12px}.markdown-content[data-v-693ca57e] code:not(pre code){background:var(--bg-card-hover);padding:1px 5px;border-radius:3px;font-size:12px;color:#f0a500}.markdown-content[data-v-693ca57e] p{margin:0 0 8px}.markdown-content[data-v-693ca57e] p:last-child{margin:0}.markdown-content[data-v-693ca57e] table{border-collapse:collapse;width:100%;font-size:13px}.markdown-content[data-v-693ca57e] th,.markdown-content[data-v-693ca57e] td{border:1px solid #333;padding:6px 12px}.markdown-content[data-v-693ca57e] th{background:var(--bg-card-hover)}
@@ -0,0 +1 @@
1
+ import{r as o}from"./markdown-Bq2x0XsR.js";import{_ as t}from"./index-3RqDry-K.js";import{L as a,M as c,f as s}from"./vendor-BXcBOG8b.js";const d=["innerHTML"],p={__name:"MarkdownRenderer",props:{content:{type:String,default:""}},setup(e){const n=e,r=s(()=>o(n.content||""));return(_,m)=>(a(),c("div",{class:"markdown-content",innerHTML:r.value},null,8,d))}},u=t(p,[["__scopeId","data-v-693ca57e"]]);export{u as M};
@@ -0,0 +1 @@
1
+ .page-title[data-v-72a2b91d]{margin:0;color:var(--text-primary);font-size:22px;font-weight:600}.page-sub[data-v-72a2b91d]{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.market-tabs[data-v-72a2b91d] .ant-tabs-nav{margin-bottom:16px}.filter-bar[data-v-72a2b91d]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
@@ -0,0 +1 @@
1
+ import{t as X,_ as je,u as Oe,b as Ne,d as g}from"./index-3RqDry-K.js";import{R as Pe,_ as De,m as ie,f as Be,i as ue,b0 as Ee,z as Ve}from"./icons-DlxlFL4g.js";import{o as Ke,M as f,R as h,P as d,c as l,N as o,K as v,r as _,L as r,O as k,u as b,F as $,Y as P,Q as C,S as y,f as R,a as ce}from"./vendor-BXcBOG8b.js";const H=Object.freeze(["draft","published","deprecated","suspended"]),qe=Object.freeze(["pending","running","success","failed","timeout"]);function D(s,i=0){return typeof s=="number"&&Number.isFinite(s)?s:i}function Je(s,i=0){if(!s||typeof s!="object")return null;const n=s.id||"";return n?{key:n,id:n,name:String(s.name||""),version:String(s.version||""),description:String(s.description||""),endpoint:s.endpoint||"",pricing:s.pricing??null,status:String(s.status||"draft").toLowerCase(),owner:s.owner||"",invocationCount:D(s.invocationCount??s.invocation_count,0),createdAt:s.createdAt??s.created_at??null,updatedAt:s.updatedAt??s.updated_at??null,_idx:i}:null}function Qe(s){const i=X(s);return Array.isArray(i)?i.map(Je).filter(Boolean):[]}function We(s,i=0){if(!s||typeof s!="object")return null;const n=s.id||"";return n?{key:n,id:n,serviceId:s.serviceId||s.service_id||"",callerId:s.callerId||s.caller_id||"",input:s.input??null,output:s.output??null,status:String(s.status||"success").toLowerCase(),durationMs:s.durationMs??s.duration_ms??null,error:s.error||"",createdAt:s.createdAt??s.created_at??null,_idx:i}:null}function Ye(s){const i=X(s);return Array.isArray(i)?i.map(We).filter(Boolean):[]}function Ge(s){const i={total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null},n=X(s);if(!n||typeof n!="object"||Array.isArray(n))return i;i.total=D(n.total,0),i.successRate=D(n.successRate??n.success_rate,0),i.avgDurationMs=D(n.avgDurationMs??n.avg_duration_ms,0),i.scopedToService=n.scopedToService??n.scoped_to_service??null;const S=n.counts&&typeof n.counts=="object"?n.counts:{};for(const w of Object.keys(i.counts))i.counts[w]=D(S[w],0);return i}function de(s){if(s==null||s==="")return"—";const i=typeof s=="number"?new Date(s):new Date(String(s));return isNaN(i.getTime())?String(s):i.toLocaleString("zh-CN",{hour12:!1})}const He={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Xe={class:"page-title"},Ze={class:"page-sub"},et={class:"filter-bar"},tt={style:{color:"var(--text-primary)","font-weight":"500"}},at={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},lt={key:2,style:{color:"#722ed1","font-weight":"500"}},ot={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},st={key:1,style:{color:"var(--text-muted)"}},nt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},rt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},it={class:"filter-bar"},ut={style:{color:"var(--text-primary)"}},ct={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},dt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},pt={key:1,style:{color:"var(--text-muted)"}},mt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},vt={key:1,style:{color:"var(--text-muted)"}},ft={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},kt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={__name:"Marketplace",setup(s){const i=Oe(),{t:n}=Ne(),S=_(!1),w=_(!1),K=_(!1),z=_([]),q=_([]),I=_({total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null}),J=_("services"),L=_(""),T=_(""),B=_(null),E=_(!1),V=_(!1),c=ce({name:"",version:"",description:"",endpoint:"",owner:"",status:"published"}),u=ce({serviceId:"",caller:"",status:"success",durationMs:null,error:""}),Q=_(""),pe=R(()=>[{title:n("marketplace.serviceCols.name"),key:"name"},{title:n("marketplace.serviceCols.status"),key:"status",width:"120px"},{title:n("marketplace.serviceCols.invocationCount"),key:"invocationCount",width:"110px"},{title:n("marketplace.serviceCols.owner"),key:"owner",width:"180px"},{title:n("marketplace.serviceCols.createdAt"),key:"createdAt",width:"160px"},{title:n("marketplace.serviceCols.action"),key:"action",width:"180px"}]),me=R(()=>[{title:n("marketplace.invocationCols.service"),key:"service"},{title:n("marketplace.invocationCols.caller"),key:"caller",width:"180px"},{title:n("marketplace.invocationCols.status"),key:"status",width:"100px"},{title:n("marketplace.invocationCols.durationMs"),key:"durationMs",width:"110px"},{title:n("marketplace.invocationCols.createdAt"),key:"createdAt",width:"160px"}]),ve=R(()=>z.value.filter(e=>e.status==="published").length),fe=R(()=>I.value.successRate*100),ke=R(()=>{let e=z.value;if(L.value&&(e=e.filter(t=>t.status===L.value)),T.value){const t=T.value.toLowerCase();e=e.filter(p=>p.name.toLowerCase().includes(t))}return e}),be=R(()=>B.value?q.value.filter(e=>e.serviceId===B.value):q.value);function M(e){const t=`marketplace.serviceStatusLabels.${e}`,p=n(t);return p===t?e:p}function ye(e){return{draft:"default",published:"green",deprecated:"orange",suspended:"red"}[e]||"default"}function Z(e){const t=`marketplace.invocationStatusLabels.${e}`,p=n(t);return p===t?e:p}function _e(e){return{pending:"default",running:"processing",success:"green",failed:"red",timeout:"orange"}[e]||"default"}function ee(e){return e?e.length>28?e.slice(0,16)+"..."+e.slice(-8):e:""}function ge(e,t){return e?e.length>t?e.slice(0,t)+"...":e:""}function he(e){const t=z.value.find(p=>p.id===e);return t?t.name:n("marketplace.deletedService")}async function U(){S.value=!0;try{const[e,t,p]=await Promise.all([i.execute("marketplace list --limit 200 --json",1e4).catch(()=>({output:""})),i.execute("marketplace invocations --limit 200 --json",1e4).catch(()=>({output:""})),i.execute("marketplace stats --json",1e4).catch(()=>({output:""}))]);z.value=Qe(e.output),q.value=Ye(t.output),I.value=Ge(p.output)}catch(e){g.error(n("marketplace.msg.loadFailed")+": "+(e?.message||e))}finally{S.value=!1}}async function $e(){const e=c.name.trim();if(!e){g.warning(n("marketplace.msg.publishEmpty"));return}w.value=!0;try{const t=[`marketplace publish "${e.replace(/"/g,'\\"')}"`];c.version.trim()&&t.push(`--version "${c.version.trim().replace(/"/g,'\\"')}"`),c.description.trim()&&t.push(`--description "${c.description.trim().replace(/"/g,'\\"')}"`),c.endpoint.trim()&&t.push(`--endpoint "${c.endpoint.trim().replace(/"/g,'\\"')}"`),c.owner.trim()&&t.push(`--owner "${c.owner.trim().replace(/"/g,'\\"')}"`),t.push(`--status ${c.status}`),t.push("--json");const{output:p}=await i.execute(t.join(" "),15e3);if(/error|failed|失败/i.test(p)&&!/"id"/.test(p)){g.error(n("marketplace.msg.publishFailed")+": "+p.slice(0,120));return}g.success(n("marketplace.msg.publishSuccess")),E.value=!1,te(),await U()}catch(t){g.error(n("marketplace.msg.publishFailed")+": "+(t?.message||t))}finally{w.value=!1}}function xe(e){if(e.status!=="published"){g.warning(n("marketplace.msg.recordOnlyPublished"));return}u.serviceId=e.id,u.caller="",u.status="success",u.durationMs=null,u.error="",Q.value=e.name,V.value=!0}async function Ce(){K.value=!0;try{const e=[`marketplace record ${u.serviceId}`];u.caller.trim()&&e.push(`--caller "${u.caller.trim().replace(/"/g,'\\"')}"`),e.push(`--status ${u.status}`),u.durationMs!=null&&e.push(`--duration-ms ${u.durationMs}`),(u.status==="failed"||u.status==="timeout")&&u.error.trim()&&e.push(`--error "${u.error.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:t}=await i.execute(e.join(" "),15e3);if(/error|failed|失败/i.test(t)&&!/"id"/.test(t)){g.error(n("marketplace.msg.recordFailed")+": "+t.slice(0,120));return}g.success(n("marketplace.msg.recordSuccess")),V.value=!1,J.value="invocations",await U()}catch(e){g.error(n("marketplace.msg.recordFailed")+": "+(e?.message||e))}finally{K.value=!1}}async function Se(e,t){if(t!==e.status)try{const{output:p}=await i.execute(`marketplace status ${e.id} ${t} --json`,1e4);if(/error|invalid|失败/i.test(p)&&!/"status"/.test(p)){g.error(n("marketplace.msg.transitionFailed")+": "+p.slice(0,120));return}g.success(n("marketplace.msg.transitionSuccess",{label:M(t)})),await U()}catch(p){g.error(n("marketplace.msg.transitionFailed")+": "+(p?.message||p))}}function te(){c.name="",c.version="",c.description="",c.endpoint="",c.owner="",c.status="published"}function we(){u.serviceId="",u.caller="",u.status="success",u.durationMs=null,u.error="",Q.value=""}return Ke(U),(e,t)=>{const p=v("a-button"),ze=v("a-space"),F=v("a-statistic"),j=v("a-card"),O=v("a-col"),Me=v("a-row"),ae=v("a-radio-button"),Ae=v("a-radio-group"),Re=v("a-input-search"),W=v("a-tag"),Ie=v("a-menu-item"),Le=v("a-menu"),Te=v("a-dropdown"),le=v("a-table"),oe=v("a-tab-pane"),Y=v("a-select-option"),G=v("a-select"),Ue=v("a-tabs"),N=v("a-input"),x=v("a-form-item"),se=v("a-textarea"),ne=v("a-form"),re=v("a-modal"),Fe=v("a-input-number");return r(),f("div",null,[h("div",He,[h("div",null,[h("h2",Xe,d(e.$t("marketplace.title")),1),h("p",Ze,d(e.$t("marketplace.subtitle")),1)]),l(ze,null,{default:o(()=>[l(p,{loading:S.value,onClick:U},{icon:o(()=>[l(b(Pe))]),default:o(()=>[k(" "+d(e.$t("marketplace.refresh")),1)]),_:1},8,["loading"]),l(p,{type:"primary",onClick:t[0]||(t[0]=a=>E.value=!0)},{icon:o(()=>[l(b(De))]),default:o(()=>[k(" "+d(e.$t("marketplace.publish")),1)]),_:1})]),_:1})]),l(Me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[l(O,{xs:12,sm:8,lg:5},{default:o(()=>[l(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.total"),value:z.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[l(b(ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:o(()=>[l(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.published"),value:ve.value,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[l(b(Be))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:o(()=>[l(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.invocations"),value:I.value.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[l(b(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:o(()=>[l(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.successRate"),value:fe.value,suffix:"%",precision:1,"value-style":{color:I.value.successRate>=.9?"#52c41a":"#faad14",fontSize:"20px"}},{prefix:o(()=>[l(b(Ee))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:24,sm:8,lg:4},{default:o(()=>[l(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.avgDuration"),value:I.value.avgDurationMs,suffix:"ms","value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[l(b(Ve))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),l(Ue,{activeKey:J.value,"onUpdate:activeKey":t[4]||(t[4]=a=>J.value=a),class:"market-tabs"},{default:o(()=>[l(oe,{key:"services",tab:e.$t("marketplace.tabs.services")},{default:o(()=>[h("div",et,[l(Ae,{value:L.value,"onUpdate:value":t[1]||(t[1]=a=>L.value=a),size:"small","button-style":"solid"},{default:o(()=>[l(ae,{value:""},{default:o(()=>[k(d(e.$t("marketplace.filter.all")),1)]),_:1}),(r(!0),f($,null,P(b(H),a=>(r(),C(ae,{key:a,value:a},{default:o(()=>[k(d(M(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(Re,{value:T.value,"onUpdate:value":t[2]||(t[2]=a=>T.value=a),placeholder:e.$t("marketplace.filter.namePlaceholder"),"allow-clear":"",style:{"max-width":"280px"}},null,8,["value","placeholder"])]),l(le,{columns:pe.value,"data-source":ke.value,pagination:{pageSize:20,showTotal:a=>e.$t("marketplace.table.totalSuffix",{n:a})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:m})=>[a.key==="name"?(r(),f($,{key:0},[h("span",tt,d(m.name),1),m.version?(r(),C(W,{key:0,color:"blue",style:{"margin-left":"6px","font-size":"10px"}},{default:o(()=>[k(" v"+d(m.version),1)]),_:2},1024)):y("",!0),m.description?(r(),f("div",at,d(ge(m.description,80)),1)):y("",!0)],64)):y("",!0),a.key==="status"?(r(),C(W,{key:1,color:ye(m.status)},{default:o(()=>[k(d(M(m.status)),1)]),_:2},1032,["color"])):y("",!0),a.key==="invocationCount"?(r(),f("span",lt,d(m.invocationCount),1)):y("",!0),a.key==="owner"?(r(),f($,{key:3},[m.owner?(r(),f("span",ot,d(ee(m.owner)),1)):(r(),f("span",st,"—"))],64)):y("",!0),a.key==="createdAt"?(r(),f("span",nt,d(b(de)(m.createdAt)),1)):y("",!0),a.key==="action"?(r(),f($,{key:5},[l(p,{size:"small",type:"link",onClick:A=>xe(m)},{default:o(()=>[k(d(e.$t("marketplace.table.actionRecord")),1)]),_:1},8,["onClick"]),l(Te,{trigger:["click"]},{overlay:o(()=>[l(Le,{onClick:A=>Se(m,A.key)},{default:o(()=>[(r(!0),f($,null,P(b(H),A=>(r(),C(Ie,{key:A,disabled:A===m.status},{default:o(()=>[k(d(M(A)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:o(()=>[l(p,{size:"small",type:"link"},{default:o(()=>[k(d(e.$t("marketplace.table.statusDropdown")),1)]),_:1})]),_:2},1024)],64)):y("",!0)]),emptyText:o(()=>[h("div",rt,[l(b(ie),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),k(" "+d(L.value||T.value?e.$t("marketplace.table.emptyFiltered"):e.$t("marketplace.table.empty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(oe,{key:"invocations",tab:e.$t("marketplace.tabs.invocations")},{default:o(()=>[h("div",it,[l(G,{value:B.value,"onUpdate:value":t[3]||(t[3]=a=>B.value=a),placeholder:e.$t("marketplace.filter.byService"),"allow-clear":"",style:{width:"280px"},size:"small"},{default:o(()=>[(r(!0),f($,null,P(z.value,a=>(r(),C(Y,{key:a.id,value:a.id},{default:o(()=>[k(d(a.name)+" ("+d(M(a.status))+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),l(le,{columns:me.value,"data-source":be.value,pagination:{pageSize:20,showTotal:a=>e.$t("marketplace.table.totalSuffix",{n:a})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:m})=>[a.key==="service"?(r(),f($,{key:0},[h("span",ut,d(he(m.serviceId)),1),h("div",ct,d(m.serviceId.slice(0,8)),1)],64)):y("",!0),a.key==="caller"?(r(),f($,{key:1},[m.callerId?(r(),f("span",dt,d(ee(m.callerId)),1)):(r(),f("span",pt,"—"))],64)):y("",!0),a.key==="status"?(r(),C(W,{key:2,color:_e(m.status)},{default:o(()=>[k(d(Z(m.status)),1)]),_:2},1032,["color"])):y("",!0),a.key==="durationMs"?(r(),f($,{key:3},[m.durationMs!=null?(r(),f("span",mt,d(m.durationMs)+" ms ",1)):(r(),f("span",vt,"—"))],64)):y("",!0),a.key==="createdAt"?(r(),f("span",ft,d(b(de)(m.createdAt)),1)):y("",!0)]),emptyText:o(()=>[h("div",kt,[l(b(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),k(" "+d(e.$t("marketplace.table.emptyInvocations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),l(re,{open:E.value,"onUpdate:open":t[11]||(t[11]=a=>E.value=a),title:e.$t("marketplace.publish_modal.title"),"confirm-loading":w.value,width:560,"ok-text":e.$t("marketplace.publish_modal.ok"),"cancel-text":e.$t("marketplace.publish_modal.cancel"),onOk:$e,onCancel:te},{default:o(()=>[l(ne,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[l(x,{label:e.$t("marketplace.publish_modal.nameLabel"),required:""},{default:o(()=>[l(N,{value:c.name,"onUpdate:value":t[5]||(t[5]=a=>c.name=a),placeholder:e.$t("marketplace.publish_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.versionLabel")},{default:o(()=>[l(N,{value:c.version,"onUpdate:value":t[6]||(t[6]=a=>c.version=a),placeholder:e.$t("marketplace.publish_modal.versionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.descLabel")},{default:o(()=>[l(se,{value:c.description,"onUpdate:value":t[7]||(t[7]=a=>c.description=a),"auto-size":{minRows:2,maxRows:5}},null,8,["value"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.endpointLabel")},{default:o(()=>[l(N,{value:c.endpoint,"onUpdate:value":t[8]||(t[8]=a=>c.endpoint=a),placeholder:e.$t("marketplace.publish_modal.endpointPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.ownerLabel")},{default:o(()=>[l(N,{value:c.owner,"onUpdate:value":t[9]||(t[9]=a=>c.owner=a),placeholder:e.$t("marketplace.publish_modal.ownerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.statusLabel")},{default:o(()=>[l(G,{value:c.status,"onUpdate:value":t[10]||(t[10]=a=>c.status=a)},{default:o(()=>[(r(!0),f($,null,P(b(H),a=>(r(),C(Y,{key:a,value:a},{default:o(()=>[k(d(M(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),l(re,{open:V.value,"onUpdate:open":t[16]||(t[16]=a=>V.value=a),title:e.$t("marketplace.record_modal.title",{name:Q.value}),"confirm-loading":K.value,width:520,"ok-text":e.$t("marketplace.record_modal.ok"),"cancel-text":e.$t("marketplace.record_modal.cancel"),onOk:Ce,onCancel:we},{default:o(()=>[l(ne,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[l(x,{label:e.$t("marketplace.record_modal.callerLabel")},{default:o(()=>[l(N,{value:u.caller,"onUpdate:value":t[12]||(t[12]=a=>u.caller=a),placeholder:e.$t("marketplace.record_modal.callerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.record_modal.statusLabel")},{default:o(()=>[l(G,{value:u.status,"onUpdate:value":t[13]||(t[13]=a=>u.status=a)},{default:o(()=>[(r(!0),f($,null,P(b(qe),a=>(r(),C(Y,{key:a,value:a},{default:o(()=>[k(d(Z(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.record_modal.durationLabel")},{default:o(()=>[l(Fe,{value:u.durationMs,"onUpdate:value":t[14]||(t[14]=a=>u.durationMs=a),min:0,max:36e5,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),u.status==="failed"||u.status==="timeout"?(r(),C(x,{key:0,label:e.$t("marketplace.record_modal.errorLabel")},{default:o(()=>[l(se,{value:u.error,"onUpdate:value":t[15]||(t[15]=a=>u.error=a),"auto-size":{minRows:2,maxRows:4}},null,8,["value"])]),_:1},8,["label"])):y("",!0)]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},ht=je(bt,[["__scopeId","data-v-72a2b91d"]]);export{ht as default};
@@ -0,0 +1,2 @@
1
+ import{u as be,_ as Ee,b as Ie}from"./index-3RqDry-K.js";import{at as Ne,R as Pe,p as xe,af as qe,f as Fe,ar as Be,au as Je}from"./icons-DlxlFL4g.js";import{K as $,L as o,M as s,F as J,Y as ee,_ as He,P as l,S as b,R as y,c as v,N as p,O,Q as A,u,f as F,o as Ke,r as S}from"./vendor-BXcBOG8b.js";function se(t){if(t&&typeof t.ok=="boolean"&&!t.ok)throw new Error(t.error||"MCP call failed");return t?.result??t??null}function Ye(){const t=be();async function e(d){const i=await t.sendRaw(d?{type:"mcp.list_tools",serverName:d}:{type:"mcp.list_tools"},15e3);return se(i)}async function m(d,i,j={}){if(typeof d!="string"||!d)throw new Error("serverName is required");if(typeof i!="string"||!i)throw new Error("toolName is required");const k=await t.sendRaw({type:"mcp.call_tool",serverName:d,toolName:i,params:j},6e4);return se(k)}async function c(d){const i=await t.sendRaw(d?{type:"mcp.list_resources",serverName:d}:{type:"mcp.list_resources"},15e3);return se(i)}async function r(d,i){if(typeof d!="string"||!d)throw new Error("serverName is required");if(typeof i!="string"||!i)throw new Error("uri is required");const j=await t.sendRaw({type:"mcp.read_resource",serverName:d,uri:i},3e4);return se(j)}return{listTools:e,callTool:m,listResources:c,readResource:r}}function ie(t){return!t||typeof t!="object"?[]:t.type!=="object"||!t.properties||typeof t.properties!="object"?[]:pe(t,[])}function pe(t,e){const m=new Set(Array.isArray(t.required)?t.required:[]),c=[],r=t.properties||{};for(const[d,i]of Object.entries(r)){if(!i||typeof i!="object")continue;const j=[...e,d],k=m.has(d);if(de(i.type)==="object"&&i.properties&&typeof i.properties=="object"){const V=pe(i,j);V.length===0?c.push(he(j,i,k,"raw")):c.push(...V);continue}c.push(he(j,i,k))}return c}function he(t,e,m,c){const r=de(e.type),d=typeof e.description=="string"?e.description:"",i=t.join("."),j=e.title||t[t.length-1],k=Array.isArray(e.enum)&&e.enum.length>0;let T="raw",V=null,I;if(c)T=c;else if(k)T="select";else if(r==="string")T=De(e,d)?"textarea":"text";else if(r==="integer"||r==="number")T="number";else if(r==="boolean")T="boolean";else if(r==="array"){const N=e.items&&typeof e.items=="object"?e.items:null,x=N?de(N.type):null;x==="string"?(T="tags",V="string"):x==="object"&&N.properties&&typeof N.properties=="object"&&(T="objectList",I=pe(N,[]),I.length===0&&(T="raw",I=void 0))}return{name:i,path:t,type:r,widget:T,label:j,description:d,required:m,default:e.default,enum:k?e.enum.slice():void 0,itemsType:V,...I?{itemFields:I}:{}}}function de(t){return typeof t=="string"?t:Array.isArray(t)&&t.find(m=>m&&m!=="null")||"any"}function De(t,e){return t.format==="long-text"||t.format==="textarea"||typeof t.maxLength=="number"&&t.maxLength>200||e.length>120}function Qe(t){const e={};for(const m of t){if(m.default!==void 0){e[m.name]=me(m.default);continue}m.widget==="boolean"?e[m.name]=!1:m.widget==="tags"?e[m.name]=[]:m.widget==="number"?e[m.name]=null:m.widget==="raw"?e[m.name]="":m.widget==="objectList"?e[m.name]=[]:e[m.name]=""}return e}function me(t){if(Array.isArray(t))return t.map(me);if(t&&typeof t=="object"){const e={};for(const[m,c]of Object.entries(t))e[m]=me(c);return e}return t}function ke(t,e){const m={},c={};for(const r of t){const d=Array.isArray(r.path)?r.path:String(r.name).split("."),i=e?.[r.name];if(We(i,r.widget)){r.required&&(m[r.name]="必填");continue}if(r.widget==="number"){const k=typeof i=="number"?i:Number(i);if(Number.isNaN(k)){m[r.name]="必须是数字";continue}if(r.type==="integer"&&!Number.isInteger(k)){m[r.name]="必须是整数";continue}D(c,d,k);continue}if(r.widget==="boolean"){D(c,d,!!i);continue}if(r.widget==="tags"){const k=Array.isArray(i)?i:String(i).split(/[\n,]/).map(T=>T.trim()).filter(Boolean);D(c,d,k);continue}if(r.widget==="select"){if(Array.isArray(r.enum)&&!r.enum.includes(i)){m[r.name]="值不在允许的选项内";continue}D(c,d,i);continue}if(r.widget==="raw"){try{D(c,d,JSON.parse(i))}catch(k){m[r.name]=`JSON 解析失败:${k.message}`}continue}if(r.widget==="objectList"){if(!Array.isArray(i)){m[r.name]="必须是列表";continue}if(i.length===0)continue;const k=[];let T=!1;for(let V=0;V<i.length;V++){const I=i[V];if(!I||typeof I!="object"){m[`${r.name}[${V}]`]="必须是对象",T=!0;continue}const N=ke(r.itemFields||[],I);if(!N.ok){T=!0;for(const[x,w]of Object.entries(N.errors))m[`${r.name}[${V}].${x}`]=w;continue}k.push(N.params)}T||D(c,d,k);continue}D(c,d,i)}return Object.keys(m).length>0?{ok:!1,errors:m}:{ok:!0,params:c}}function D(t,e,m){if(e.length===1){t[e[0]]=m;return}let c=t;for(let r=0;r<e.length-1;r++){const d=e[r];(c[d]===void 0||typeof c[d]!="object"||Array.isArray(c[d]))&&(c[d]={}),c=c[d]}c[e[e.length-1]]=m}function We(t,e){return t==null?!0:e==="boolean"?!1:e==="number"?t===""||t===null:e==="tags"?Array.isArray(t)?t.length===0:String(t).trim()==="":e==="objectList"?t==null:typeof t=="string"?t.trim()==="":!1}const Ge={key:0,style:{color:"var(--text-muted)","font-size":"12px",padding:"8px 0"}},Xe={key:1,style:{display:"flex","flex-direction":"column",gap:"14px"}},Ze={key:0,style:{color:"var(--text-muted)","font-size":"10px","font-family":"monospace","margin-bottom":"4px"}},et={style:{"margin-bottom":"4px"}},tt={style:{"font-family":"monospace","font-size":"12px"}},ot={key:0,style:{color:"#ff4d4f","margin-left":"4px"}},nt={key:1,style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},at={key:8},lt={style:{display:"flex","justify-content":"space-between","align-items":"center","margin-bottom":"8px"}},rt={style:{color:"var(--text-muted)","font-size":"11px"}},st={style:{display:"flex","flex-direction":"column",gap:"10px"}},it={style:{"font-family":"monospace","font-size":"11px"}},ut={key:0,style:{color:"#ff4d4f","margin-left":"4px"}},ct={key:5,style:{color:"#ff4d4f","font-size":"11px"}},dt={key:10,style:{color:"#ff4d4f","font-size":"11px","margin-top":"4px"}},mt={__name:"McpToolForm",props:{schema:{type:Object,default:null},modelValue:{type:Object,default:()=>({})},errors:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(t,{expose:e,emit:m}){const c=t,r=m,d=F(()=>ie(c.schema));function i(x){const w=Math.max(0,(x.path?.length??1)-1);return w>0?`margin-left: ${w*16}px;`:""}let j=null;function k(x){const w=x.path||[x.name];if(w.length<=1)return j=null,"";const C=w.slice(0,-1).join(".");return C===j?"":(j=C,C)}function T(x,w){r("update:modelValue",{...c.modelValue,[x]:w})}function V(x,w,C,L){const B=Array.isArray(c.modelValue[x])?c.modelValue[x].slice():[];B[w]={...B[w]||{},[C]:L},r("update:modelValue",{...c.modelValue,[x]:B})}function I(x){const w=Array.isArray(c.modelValue[x.name])?c.modelValue[x.name].slice():[],C={};for(const L of x.itemFields||[])L.default!==void 0?C[L.name]=L.default:L.widget==="boolean"?C[L.name]=!1:L.widget==="number"?C[L.name]=null:C[L.name]="";w.push(C),r("update:modelValue",{...c.modelValue,[x.name]:w})}function N(x,w){const C=Array.isArray(c.modelValue[x])?c.modelValue[x].slice():[];C.splice(w,1),r("update:modelValue",{...c.modelValue,[x]:C})}return e({fields:d}),(x,w)=>{const C=$("a-tag"),L=$("a-input"),B=$("a-textarea"),te=$("a-input-number"),oe=$("a-switch"),H=$("a-select"),P=$("a-button");return d.value.length?(o(),s("div",Xe,[(o(!0),s(J,null,ee(d.value,a=>(o(),s("div",{key:a.name,style:He(i(a))},[k(a)!==""?(o(),s("div",Ze,l(k(a)),1)):b("",!0),y("div",et,[y("span",tt,l(a.label),1),a.required?(o(),s("span",ot,"*")):b("",!0),v(C,{size:"small",style:{"margin-left":"8px","font-size":"10px"}},{default:p(()=>[O(l(a.type)+l(a.itemsType?`<${a.itemsType}>`:""),1)]),_:2},1024)]),a.description?(o(),s("div",nt,l(a.description),1)):b("",!0),a.widget==="text"?(o(),A(L,{key:2,value:t.modelValue[a.name]??"",placeholder:a.default!==void 0?`默认 ${a.default}`:"",size:"small","onUpdate:value":h=>T(a.name,h)},null,8,["value","placeholder","onUpdate:value"])):a.widget==="textarea"?(o(),A(B,{key:3,value:t.modelValue[a.name]??"",rows:4,placeholder:a.default!==void 0?`默认 ${a.default}`:"","onUpdate:value":h=>T(a.name,h)},null,8,["value","placeholder","onUpdate:value"])):a.widget==="number"?(o(),A(te,{key:4,value:t.modelValue[a.name],size:"small",placeholder:a.default!==void 0?`默认 ${a.default}`:"",style:{width:"100%"},"onUpdate:value":h=>T(a.name,h)},null,8,["value","placeholder","onUpdate:value"])):a.widget==="boolean"?(o(),A(oe,{key:5,checked:!!t.modelValue[a.name],"onUpdate:checked":h=>T(a.name,h)},null,8,["checked","onUpdate:checked"])):a.widget==="select"?(o(),A(H,{key:6,value:t.modelValue[a.name]??void 0,options:(a.enum||[]).map(h=>({label:String(h),value:h})),size:"small",style:{width:"100%"},placeholder:a.default!==void 0?`默认 ${a.default}`:"请选择","onUpdate:value":h=>T(a.name,h)},null,8,["value","options","placeholder","onUpdate:value"])):a.widget==="tags"?(o(),A(H,{key:7,value:Array.isArray(t.modelValue[a.name])?t.modelValue[a.name]:[],mode:"tags",size:"small",style:{width:"100%"},placeholder:"输入后回车添加","token-separators":[",",`
2
+ `],"onUpdate:value":h=>T(a.name,h)},null,8,["value","onUpdate:value"])):a.widget==="objectList"?(o(),s("div",at,[(o(!0),s(J,null,ee(Array.isArray(t.modelValue[a.name])?t.modelValue[a.name]:[],(h,R)=>(o(),s("div",{key:R,style:{border:"1px dashed var(--border-color)",padding:"10px","border-radius":"4px","margin-bottom":"8px",background:"var(--bg-card-hover)"}},[y("div",lt,[y("span",rt,"#"+l(R+1),1),v(P,{size:"small",type:"link",danger:"",onClick:z=>N(a.name,R)},{default:p(()=>[...w[0]||(w[0]=[O(" 删除 ",-1)])]),_:1},8,["onClick"])]),y("div",st,[(o(!0),s(J,null,ee(a.itemFields||[],z=>(o(),s("div",{key:z.name,style:{display:"flex","flex-direction":"column",gap:"4px"}},[y("div",null,[y("span",it,l(z.label),1),z.required?(o(),s("span",ut,"*")):b("",!0),v(C,{size:"small",style:{"margin-left":"6px","font-size":"10px"}},{default:p(()=>[O(l(z.type),1)]),_:2},1024)]),z.widget==="text"?(o(),A(L,{key:0,value:h[z.name]??"",size:"small","onUpdate:value":E=>V(a.name,R,z.name,E)},null,8,["value","onUpdate:value"])):z.widget==="number"?(o(),A(te,{key:1,value:h[z.name],size:"small",style:{width:"100%"},"onUpdate:value":E=>V(a.name,R,z.name,E)},null,8,["value","onUpdate:value"])):z.widget==="boolean"?(o(),A(oe,{key:2,checked:!!h[z.name],"onUpdate:checked":E=>V(a.name,R,z.name,E)},null,8,["checked","onUpdate:checked"])):z.widget==="select"?(o(),A(H,{key:3,value:h[z.name]??void 0,options:(z.enum||[]).map(E=>({label:String(E),value:E})),size:"small",style:{width:"100%"},"onUpdate:value":E=>V(a.name,R,z.name,E)},null,8,["value","options","onUpdate:value"])):(o(),A(B,{key:4,value:typeof h[z.name]=="string"?h[z.name]:"",rows:2,placeholder:"复杂子字段 — 请用 JSON 模式",style:{"font-family":"monospace","font-size":"11px"},"onUpdate:value":E=>V(a.name,R,z.name,E)},null,8,["value","onUpdate:value"])),t.errors[`${a.name}[${R}].${z.name}`]?(o(),s("div",ct,l(t.errors[`${a.name}[${R}].${z.name}`]),1)):b("",!0)]))),128))])]))),128)),v(P,{size:"small",type:"dashed",block:"",onClick:h=>I(a)},{icon:p(()=>[v(u(Ne))]),default:p(()=>[w[1]||(w[1]=O(" 添加项 ",-1))]),_:1},8,["onClick"])])):(o(),A(B,{key:9,value:t.modelValue[a.name]??"",rows:3,placeholder:'复杂类型 — 请输入 JSON,如 {"key":"value"}',style:{"font-family":"monospace","font-size":"12px"},"onUpdate:value":h=>T(a.name,h)},null,8,["value","onUpdate:value"])),t.errors[a.name]?(o(),s("div",dt,l(t.errors[a.name]),1)):b("",!0)],4))),128))])):(o(),s("div",Ge," 此工具的 inputSchema 不是 type:object — 请用 JSON 模式编辑。 "))}}},pt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ft={class:"page-title"},yt={class:"page-sub"},vt={key:0,style:{"text-align":"center",padding:"30px"}},gt={key:1,style:{"text-align":"center",padding:"30px",color:"var(--text-muted)"}},_t={style:{background:"var(--bg-card-hover)",padding:"2px 6px","border-radius":"3px"}},xt={key:2,class:"servers-grid"},ht={style:{display:"flex","align-items":"center",gap:"10px","margin-bottom":"6px"}},bt={style:{color:"#e0e0e0","font-weight":"500","font-family":"monospace"}},kt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},wt={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"4px"}},Tt={key:0,style:{"text-align":"center",padding:"30px"}},zt={key:0,style:{color:"#91caff","font-family":"monospace","font-size":"12px"}},St={key:1,style:{color:"var(--text-muted)","font-size":"11px"}},At={style:{padding:"30px",color:"var(--text-muted)"}},Ct={key:0,style:{"text-align":"center",padding:"30px"}},$t={key:1,style:{"text-align":"center",padding:"30px",color:"var(--text-muted)"}},jt={key:0,style:{color:"#87d068","font-family":"monospace","font-size":"11px","word-break":"break-all"}},Vt={key:1,style:{color:"var(--text-muted)","font-size":"10px"}},Ut={style:{padding:"30px",color:"var(--text-muted)"}},Ot={key:0,style:{display:"flex","flex-direction":"column",gap:"12px"}},Lt={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},Rt={style:{"font-family":"monospace","font-size":"13px"}},Mt={style:{color:"#91caff"}},Et={key:0},It={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},Nt={style:{"font-size":"12px"}},Pt={key:1},qt={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},Ft={style:{background:"var(--bg-card-hover)",padding:"8px","border-radius":"4px","font-size":"11px","max-height":"140px",overflow:"auto",margin:"0"}},Bt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"4px"}},Jt={style:{color:"var(--text-muted)","font-size":"11px"}},Ht={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"4px"}},Kt={key:2,style:{background:"#2a1517",border:"1px solid #5c2426",padding:"8px","border-radius":"4px"}},Yt={style:{color:"#ff4d4f","font-size":"11px","font-weight":"500","margin-bottom":"4px"}},Dt={style:{color:"#ff7875","font-size":"11px",margin:"0","white-space":"pre-wrap"}},Qt={key:3},Wt={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},Gt={style:{background:"var(--bg-card-hover)",padding:"8px","border-radius":"4px","font-size":"11px","max-height":"240px",overflow:"auto",margin:"0","white-space":"pre-wrap"}},Xt={key:0,style:{display:"flex","flex-direction":"column",gap:"12px"}},Zt={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},eo={style:{"font-family":"monospace","font-size":"12px","word-break":"break-all"}},to={style:{color:"#87d068"}},oo={key:0},no={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},ao={style:{"font-size":"12px"}},lo={key:1,style:{"text-align":"center",padding:"20px"}},ro={key:2,style:{background:"#2a1517",border:"1px solid #5c2426",padding:"8px","border-radius":"4px"}},so={style:{color:"#ff4d4f","font-size":"11px","font-weight":"500","margin-bottom":"4px"}},io={style:{color:"#ff7875","font-size":"11px",margin:"0","white-space":"pre-wrap"}},uo={key:3},co={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},mo={style:{display:"flex",gap:"8px","align-items":"center","margin-bottom":"4px"}},po={key:1,style:{color:"var(--text-muted)","font-size":"10px","font-family":"monospace"}},fo={key:0,style:{background:"var(--bg-card-hover)",padding:"8px","border-radius":"4px","font-size":"11px","max-height":"360px",overflow:"auto",margin:"0","white-space":"pre-wrap","word-break":"break-all"}},yo={key:1,style:{"font-size":"11px",color:"var(--text-muted)","font-style":"italic"}},vo={key:2,style:{"font-size":"11px",color:"var(--text-muted)","font-style":"italic"}},go={__name:"McpTools",setup(t){const{t:e}=Ie(),m=be(),c=Ye(),r=S(!1),d=S([]),i=S([]),j=S(""),k=S(""),T=F(()=>d.value.filter(f=>["connected","ready"].includes(String(f.state||"").toLowerCase())).length);function V(f){const n=String(f||"").toLowerCase();return n==="connected"||n==="ready"?"success":n==="connecting"?"processing":n==="error"||n==="failed"?"error":"default"}const I=F(()=>{if(!j.value)return i.value;const f=j.value.toLowerCase();return i.value.filter(n=>n.name?.toLowerCase().includes(f)||n.description?.toLowerCase().includes(f))}),N=F(()=>[{title:e("mcpTools.toolColumns.name"),key:"name",dataIndex:"name",width:"28%"},{title:e("mcpTools.toolColumns.server"),key:"server",dataIndex:"server",width:"18%"},{title:e("mcpTools.toolColumns.description"),dataIndex:"description",ellipsis:!0},{title:e("mcpTools.toolColumns.action"),key:"action",width:110}]),x=S([]),w=S(""),C=S(!1),L=S(!1),B=F(()=>[{title:e("mcpTools.resourceColumns.uri"),key:"uri",dataIndex:"uri"},{title:e("mcpTools.resourceColumns.server"),key:"server",dataIndex:"server",width:"15%"},{title:e("mcpTools.resourceColumns.mime"),key:"mimeType",dataIndex:"mimeType",width:"15%"},{title:e("mcpTools.resourceColumns.action"),key:"action",width:90}]),te=F(()=>{if(!w.value)return x.value;const f=w.value.toLowerCase();return x.value.filter(n=>n.uri?.toLowerCase().includes(f)||n.name?.toLowerCase().includes(f)||n.description?.toLowerCase().includes(f))});async function oe(){if(!C.value){C.value=!0;try{const f=await c.listResources();if(!f||!Array.isArray(f.servers)){x.value=[];return}const n=[];for(const _ of f.servers)if(Array.isArray(_.resources))for(const M of _.resources)n.push({key:`${_.name}.${M.uri}`,uri:M.uri,name:M.name||"",description:M.description||"",mimeType:M.mimeType||null,server:_.name});x.value=n,L.value=!0}catch(f){console.error("listResources failed:",f),x.value=[]}finally{C.value=!1}}}const H=S(!1),P=S(null),a=S(!1),h=S([]),R=S(""),z=F(()=>P.value?e("mcpTools.read.modalTitle",{server:P.value.server}):e("mcpTools.read.fallbackTitle"));async function E(f){P.value=f,h.value=[],R.value="",H.value=!0,a.value=!0;try{const n=await c.readResource(f.server,f.uri);n&&Array.isArray(n.contents)?h.value=n.contents:h.value=n?[n]:[]}catch(n){R.value=n?.message||String(n)}finally{a.value=!1}}function we(){H.value=!1}const ue=S(!1),U=S(null),G=S("form"),ne=S({}),ae=S({}),le=S("{}"),X=S(!1),K=S(null),Z=S(""),Te=F(()=>ie(U.value?.inputSchema||null).length>0),ze=F(()=>U.value?e("mcpTools.run.modalTitle",{server:U.value.server,tool:U.value.name}):e("mcpTools.run.fallbackTitle")),Se=F(()=>{if(!U.value?.inputSchema)return"";try{return JSON.stringify(U.value.inputSchema,null,2)}catch{return String(U.value.inputSchema)}}),Ae=F(()=>{if(K.value===null)return"";try{return JSON.stringify(K.value,null,2)}catch{return String(K.value)}}),Q=S("");function Ce(f){U.value=f,le.value="{}",K.value=null,Z.value="",Q.value="",ae.value={};const n=ie(f?.inputSchema||null);G.value=n.length>0?"form":"json",ne.value=Qe(n),ue.value=!0}function $e(){ue.value=!1}async function je(){if(!U.value||X.value)return;Q.value="",ae.value={};let f={};if(G.value==="form"){const n=ie(U.value.inputSchema||null),_=ke(n,ne.value);if(!_.ok){ae.value=_.errors;return}f=_.params}else{const n=(le.value||"").trim();if(n){try{f=JSON.parse(n)}catch(_){Q.value=_.message||"invalid JSON";return}if(f===null||typeof f!="object"||Array.isArray(f)){Q.value=e("mcpTools.run.paramsMustBeObject");return}}}X.value=!0,Z.value="",K.value=null;try{const n=await c.callTool(U.value.server,U.value.name,f);K.value=n}catch(n){Z.value=n?.message||String(n)}finally{X.value=!1}}async function Ve(){const f=await c.listTools();if(!f||!Array.isArray(f.servers))return!1;d.value=f.servers.map(_=>({key:_.name,name:_.name,command:_.command||"",args:Array.isArray(_.args)?_.args:[],state:_.state||"disconnected",description:[_.configScope?`scope: ${_.configScope}`:"",_.autoConnect?"auto-connect":"",_.error?`error: ${_.error}`:""].filter(Boolean).join(" | "),error:_.error||null}));const n=[];for(const _ of f.servers)if(Array.isArray(_.tools))for(const M of _.tools)n.push({key:`${_.name}.${M.name}`,name:M.name,description:M.description||"",server:_.name,inputSchema:M.inputSchema||null});return i.value=n,!0}async function fe(){r.value=!0;try{try{if(await Ve()){k.value="topic";return}}catch(n){const _=n?.message||"";_.includes("mcp_unavailable")||_.includes("no_handler")||_.includes("UNKNOWN_TYPE")||_.includes("Unknown message type")||console.error("MCP topic load failed:",n)}const f=await m.executeJson("mcp servers --json",15e3);d.value=(Array.isArray(f)?f:[]).map(n=>({key:n.name,name:n.name,command:n.command||"",args:Array.isArray(n.args)?n.args:[],state:"disconnected",description:[n.configScope?`scope: ${n.configScope}`:"",n.autoConnect?"auto-connect (restart UI to connect)":""].filter(Boolean).join(" | "),error:null})),i.value=[],k.value="cli"}catch(f){console.error("MCP load failed:",f)}finally{r.value=!1,k.value==="topic"?oe():(x.value=[],L.value=!1)}}return Ke(fe),(f,n)=>{const _=$("a-button"),M=$("a-statistic"),Y=$("a-card"),ce=$("a-col"),Ue=$("a-row"),re=$("a-spin"),Oe=$("a-badge"),ye=$("a-input-search"),W=$("a-tag"),ve=$("a-table"),ge=$("a-radio-button"),Le=$("a-radio-group"),Re=$("a-textarea"),_e=$("a-modal");return o(),s("div",null,[y("div",pt,[y("div",null,[y("h2",ft,l(u(e)("mcpTools.title")),1),y("p",yt,l(u(e)("mcpTools.subtitle")),1)]),v(_,{type:"primary",ghost:"",loading:r.value,onClick:fe},{icon:p(()=>[v(u(Pe))]),default:p(()=>[O(" "+l(u(e)("mcpTools.refresh")),1)]),_:1},8,["loading"])]),v(Ue,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:p(()=>[v(ce,{xs:24,sm:8},{default:p(()=>[v(Y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:p(()=>[v(M,{title:u(e)("mcpTools.stats.servers"),value:d.value.length,"value-style":"color: #1677ff; font-size: 20px;"},{prefix:p(()=>[v(u(xe))]),_:1},8,["title","value"])]),_:1})]),_:1}),v(ce,{xs:24,sm:8},{default:p(()=>[v(Y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:p(()=>[v(M,{title:u(e)("mcpTools.stats.tools"),value:i.value.length,"value-style":"color: #52c41a; font-size: 20px;"},{prefix:p(()=>[v(u(qe))]),_:1},8,["title","value"])]),_:1})]),_:1}),v(ce,{xs:24,sm:8},{default:p(()=>[v(Y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:p(()=>[v(M,{title:u(e)("mcpTools.stats.running"),value:T.value,"value-style":"color: #52c41a; font-size: 20px;"},{prefix:p(()=>[v(u(Fe))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),v(Y,{title:u(e)("mcpTools.servers.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:p(()=>[r.value?(o(),s("div",vt,[v(re)])):d.value.length?(o(),s("div",xt,[(o(!0),s(J,null,ee(d.value,g=>(o(),A(Y,{key:g.name,size:"small",style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{default:p(()=>[y("div",ht,[v(u(xe),{style:{color:"#1677ff"}}),y("span",bt,l(g.name),1),v(Oe,{status:V(g.state),text:g.state||"unknown"},null,8,["status","text"])]),g.command?(o(),s("div",kt,l(g.command)+" "+l(g.args?.join(" ")),1)):b("",!0),g.description?(o(),s("div",wt,l(g.description),1)):b("",!0)]),_:2},1024))),128))])):(o(),s("div",gt,[O(l(u(e)("mcpTools.servers.emptyHintPrefix"))+" ",1),y("code",_t,l(u(e)("mcpTools.servers.emptyHintCommand")),1),O(" "+l(u(e)("mcpTools.servers.emptyHintSuffix")),1)]))]),_:1},8,["title"]),v(Y,{title:u(e)("mcpTools.tools.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:p(()=>[v(ye,{value:j.value,"onUpdate:value":n[0]||(n[0]=g=>j.value=g),placeholder:u(e)("mcpTools.tools.searchPlaceholder"),"allow-clear":"",size:"small",style:{width:"200px"}},null,8,["value","placeholder"])]),default:p(()=>[r.value?(o(),s("div",Tt,[v(re)])):(o(),A(ve,{key:1,columns:N.value,"data-source":I.value,pagination:{pageSize:15},size:"small"},{bodyCell:p(({column:g,record:q})=>[g.key==="name"?(o(),s("span",zt,l(q.name),1)):b("",!0),g.key==="server"?(o(),A(W,{key:1,color:"blue",style:{"font-size":"10px"}},{default:p(()=>[O(l(q.server),1)]),_:2},1024)):b("",!0),g.key==="action"?(o(),s(J,{key:2},[k.value==="topic"?(o(),A(_,{key:0,size:"small",type:"link",onClick:Me=>Ce(q)},{icon:p(()=>[v(u(Be))]),default:p(()=>[O(" "+l(u(e)("mcpTools.tools.runAction")),1)]),_:1},8,["onClick"])):(o(),s("span",St,l(u(e)("mcpTools.tools.desktopOnly")),1))],64)):b("",!0)]),emptyText:p(()=>[y("div",At,l(u(e)("mcpTools.tools.emptyText")),1)]),_:1},8,["columns","data-source"]))]),_:1},8,["title"]),k.value==="topic"?(o(),A(Y,{key:0,title:u(e)("mcpTools.resources.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{extra:p(()=>[v(ye,{value:w.value,"onUpdate:value":n[1]||(n[1]=g=>w.value=g),placeholder:u(e)("mcpTools.resources.searchPlaceholder"),"allow-clear":"",size:"small",style:{width:"200px"}},null,8,["value","placeholder"])]),default:p(()=>[C.value?(o(),s("div",Ct,[v(re)])):x.value.length?(o(),A(ve,{key:2,columns:B.value,"data-source":te.value,pagination:{pageSize:15},size:"small"},{bodyCell:p(({column:g,record:q})=>[g.key==="uri"?(o(),s("span",jt,l(q.uri),1)):b("",!0),g.key==="server"?(o(),A(W,{key:1,color:"blue",style:{"font-size":"10px"}},{default:p(()=>[O(l(q.server),1)]),_:2},1024)):b("",!0),g.key==="mimeType"?(o(),s(J,{key:2},[q.mimeType?(o(),A(W,{key:0,style:{"font-size":"10px"}},{default:p(()=>[O(l(q.mimeType),1)]),_:2},1024)):(o(),s("span",Vt,"—"))],64)):b("",!0),g.key==="action"?(o(),A(_,{key:3,size:"small",type:"link",onClick:Me=>E(q)},{icon:p(()=>[v(u(Je))]),default:p(()=>[O(" "+l(u(e)("mcpTools.resources.readAction")),1)]),_:1},8,["onClick"])):b("",!0)]),emptyText:p(()=>[y("div",Ut,l(u(e)("mcpTools.resources.emptyTable")),1)]),_:1},8,["columns","data-source"])):(o(),s("div",$t,l(u(e)("mcpTools.resources.emptyHint")),1))]),_:1},8,["title"])):b("",!0),v(_e,{open:ue.value,title:ze.value,width:640,"confirm-loading":X.value,"ok-text":X.value?u(e)("mcpTools.run.okRunning"):u(e)("mcpTools.run.okIdle"),"cancel-text":u(e)("mcpTools.run.cancel"),onOk:je,onCancel:$e},{default:p(()=>[U.value?(o(),s("div",Ot,[y("div",null,[y("div",Lt,l(u(e)("mcpTools.run.serverLabel")),1),y("div",Rt,[v(W,{color:"blue"},{default:p(()=>[O(l(U.value.server),1)]),_:1}),y("span",Mt,l(U.value.name),1)])]),U.value.description?(o(),s("div",Et,[y("div",It,l(u(e)("mcpTools.run.descriptionLabel")),1),y("div",Nt,l(U.value.description),1)])):b("",!0),U.value.inputSchema?(o(),s("div",Pt,[y("div",qt,l(u(e)("mcpTools.run.schemaLabel")),1),y("pre",Ft,l(Se.value),1)])):b("",!0),y("div",null,[y("div",Bt,[y("span",Jt,l(u(e)("mcpTools.run.paramsLabel")),1),v(Le,{value:G.value,"onUpdate:value":n[2]||(n[2]=g=>G.value=g),size:"small","button-style":"solid"},{default:p(()=>[v(ge,{value:"form",disabled:!Te.value},{default:p(()=>[O(l(u(e)("mcpTools.run.modeForm")),1)]),_:1},8,["disabled"]),v(ge,{value:"json"},{default:p(()=>[O(l(u(e)("mcpTools.run.modeJson")),1)]),_:1})]),_:1},8,["value"])]),G.value==="form"?(o(),A(mt,{key:0,modelValue:ne.value,"onUpdate:modelValue":n[3]||(n[3]=g=>ne.value=g),schema:U.value.inputSchema,errors:ae.value},null,8,["modelValue","schema","errors"])):(o(),s(J,{key:1},[v(Re,{value:le.value,"onUpdate:value":n[4]||(n[4]=g=>le.value=g),rows:6,placeholder:"{}",style:{"font-family":"monospace","font-size":"12px"}},null,8,["value"]),Q.value?(o(),s("div",Ht,l(u(e)("mcpTools.run.jsonParseFailed",{err:Q.value})),1)):b("",!0)],64))]),Z.value?(o(),s("div",Kt,[y("div",Yt,l(u(e)("mcpTools.run.errorTitle")),1),y("pre",Dt,l(Z.value),1)])):b("",!0),K.value!==null?(o(),s("div",Qt,[y("div",Wt,l(u(e)("mcpTools.run.resultLabel")),1),y("pre",Gt,l(Ae.value),1)])):b("",!0)])):b("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),v(_e,{open:H.value,title:z.value,width:720,footer:null,onCancel:we},{default:p(()=>[P.value?(o(),s("div",Xt,[y("div",null,[y("div",Zt,l(u(e)("mcpTools.read.serverLabel")),1),y("div",eo,[v(W,{color:"blue"},{default:p(()=>[O(l(P.value.server),1)]),_:1}),y("span",to,l(P.value.uri),1)])]),P.value.description?(o(),s("div",oo,[y("div",no,l(u(e)("mcpTools.read.descriptionLabel")),1),y("div",ao,l(P.value.description),1)])):b("",!0),a.value?(o(),s("div",lo,[v(re,{tip:u(e)("mcpTools.read.spinnerTip")},null,8,["tip"])])):b("",!0),R.value?(o(),s("div",ro,[y("div",so,l(u(e)("mcpTools.read.errorTitle")),1),y("pre",io,l(R.value),1)])):b("",!0),h.value.length?(o(),s("div",uo,[y("div",co,l(u(e)("mcpTools.read.contentsLabel",{count:h.value.length})),1),(o(!0),s(J,null,ee(h.value,(g,q)=>(o(),s("div",{key:q,style:{"margin-bottom":"12px"}},[y("div",mo,[g.mimeType?(o(),A(W,{key:0,size:"small",style:{"font-size":"10px"}},{default:p(()=>[O(l(g.mimeType),1)]),_:2},1024)):b("",!0),g.uri&&g.uri!==P.value.uri?(o(),s("span",po,l(g.uri),1)):b("",!0)]),g.text?(o(),s("pre",fo,l(g.text),1)):g.blob?(o(),s("div",yo,l(u(e)("mcpTools.read.binaryNote",{count:g.blob.length})),1)):(o(),s("div",vo,l(u(e)("mcpTools.read.emptyContent")),1))]))),128))])):b("",!0)])):b("",!0)]),_:1},8,["open","title"])])}}},bo=Ee(go,[["__scopeId","data-v-2d5fde16"]]);export{bo as default};
@@ -0,0 +1 @@
1
+ .servers-grid[data-v-2d5fde16]{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
@@ -0,0 +1 @@
1
+ .memory-list[data-v-a74b99b3]{display:flex;flex-direction:column;gap:10px;max-height:400px;overflow-y:auto}.memory-item[data-v-a74b99b3]{background:var(--bg-card-hover);border:1px solid var(--border-color);border-radius:6px;padding:10px 14px;transition:border-color .2s}.memory-item[data-v-a74b99b3]:hover{border-color:var(--text-muted)}
@@ -0,0 +1,2 @@
1
+ import{_ as X,b as Z,u as ee,d as C}from"./index-3RqDry-K.js";import{at as te,R as oe,i as ae,z as le,aB as re,q as ne}from"./icons-DlxlFL4g.js";import{o as se,M as _,R as i,P as s,u as l,c as t,N as a,K as c,r as p,L as f,O as g,F as ce,Y as ie,S as me,f as ue}from"./vendor-BXcBOG8b.js";const de={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},pe={class:"page-title"},ve={class:"page-sub"},ye={style:{"margin-top":"4px",color:"var(--text-secondary)","font-size":"11px"}},_e={style:{"margin-top":"4px",color:"var(--text-secondary)","font-size":"11px"}},fe={style:{"margin-top":"4px",color:"var(--text-secondary)","font-size":"11px"}},ge={style:{display:"flex","align-items":"center",gap:"12px"}},he={key:0,style:{"text-align":"center",padding:"30px"}},xe={key:1,style:{"text-align":"center",padding:"30px",color:"var(--text-muted)"}},be={key:2,class:"memory-list"},ke={style:{display:"flex","justify-content":"space-between","align-items":"flex-start","margin-bottom":"4px"}},we={style:{display:"flex",gap:"8px","align-items":"center"}},Ce={key:0,style:{color:"var(--text-secondary)","font-size":"11px"}},ze={style:{color:"var(--text-muted)","font-size":"11px"}},Te={style:{color:"#ccc","font-size":"13px","line-height":"1.6"}},Oe={__name:"Memory",setup(Le){const{t:o}=Z(),z=ee(),S=p(!1),h=p(!1),$=p(!1),M=p(!1),T=p(!1),x=p({shortTerm:0,longTerm:0,core:0}),b=p([]),m=p("short-term"),O=p(""),v=p({content:"",importance:.5}),U=ue(()=>({0:o("memory.modal.marks.low"),.5:o("memory.modal.marks.mid"),1:o("memory.modal.marks.high")}));function q(r){return{"short-term":"purple","long-term":"blue",core:"green"}[r]||"default"}function F(r){const e=`memory.layer.${r}`,u=o(e);return u===e?r:u}async function L(){S.value=!0;try{const{output:r}=await z.execute("hmemory stats",15e3);P(r)}catch(r){console.error("hmemory stats failed:",r)}finally{S.value=!1,await B()}}function P(r){const e=r.match(/short.?term[^\d]*(\d+)/i),u=r.match(/long.?term[^\d]*(\d+)/i),k=r.match(/core[^\d]*(\d+)/i);e&&(x.value.shortTerm=parseInt(e[1])),u&&(x.value.longTerm=parseInt(u[1])),k&&(x.value.core=parseInt(k[1]))}async function B(){h.value=!0;try{const r=m.value==="short-term"?"recent":m.value==="long-term"?"important":"core",{output:e}=await z.execute(`hmemory recall "${r}" --limit 20`,15e3);b.value=I(e)}catch{b.value=[]}finally{h.value=!1}}async function V(){if(!O.value.trim()){await B();return}h.value=!0;try{const{output:r}=await z.execute(`hmemory recall "${O.value}"`,15e3);b.value=I(r)}catch{b.value=[]}finally{h.value=!1}}function I(r){const e=[],u=r.split(`
2
+ `);for(const k of u){const d=k.trim();if(!d||d.startsWith("─")||d.startsWith("Recall"))continue;const y=d.match(/^[-●•\d.]+\s+(.+)/);if(y){const w=y[1].trim();w.length>5&&e.push({id:e.length,content:w,layer:m.value,importance:"",time:""})}else d.length>10&&!d.includes(":")&&e.length<30&&e.push({id:e.length,content:d,layer:m.value,importance:"",time:""})}return e.slice(0,20)}async function H(){if(!v.value.content.trim()){C.warning(o("memory.messages.contentRequired"));return}M.value=!0;try{const r=`hmemory store "${v.value.content.replace(/"/g,'\\"')}" --importance ${v.value.importance}`,{output:e}=await z.execute(r,15e3);e.toLowerCase().includes("stored")||e.includes("✔")?(C.success(o("memory.messages.storeOk")),T.value=!1,v.value={content:"",importance:.5},await L()):(C.warning(e.slice(0,100)||o("memory.messages.storeDefault")),T.value=!1)}catch(r){C.error(o("memory.messages.storeFailed",{err:r.message}))}finally{M.value=!1}}async function W(){$.value=!0;try{await z.execute("hmemory consolidate",2e4),C.success(o("memory.messages.consolidateOk")),await L()}catch(r){C.error(o("memory.messages.consolidateFailed",{err:r.message}))}finally{$.value=!1}}return se(L),(r,e)=>{const u=c("a-button"),k=c("a-space"),d=c("a-statistic"),y=c("a-card"),w=c("a-col"),j=c("a-row"),R=c("a-radio-button"),D=c("a-radio-group"),E=c("a-input-search"),K=c("a-spin"),Q=c("a-tag"),Y=c("a-textarea"),N=c("a-form-item"),A=c("a-slider"),G=c("a-form"),J=c("a-modal");return f(),_("div",null,[i("div",de,[i("div",null,[i("h2",pe,s(l(o)("memory.title")),1),i("p",ve,s(l(o)("memory.subtitle")),1)]),t(k,null,{default:a(()=>[t(u,{onClick:e[0]||(e[0]=n=>T.value=!0),type:"primary"},{icon:a(()=>[t(l(te))]),default:a(()=>[g(" "+s(l(o)("memory.storeButton")),1)]),_:1}),t(u,{ghost:"",loading:S.value,onClick:L},{icon:a(()=>[t(l(oe))]),default:a(()=>[g(" "+s(l(o)("memory.refresh")),1)]),_:1},8,["loading"])]),_:1})]),t(j,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(w,{xs:24,sm:8},{default:a(()=>[t(y,{style:{background:"rgba(114,46,209,.1)","border-color":"rgba(114,46,209,.35)",cursor:"pointer"},hoverable:"",onClick:e[1]||(e[1]=n=>m.value="short-term")},{default:a(()=>[t(d,{title:l(o)("memory.stats.shortTerm"),value:x.value.shortTerm||0,"value-style":"color: #c084fc; font-size: 20px;"},{prefix:a(()=>[t(l(ae))]),_:1},8,["title","value"]),i("div",ye,s(l(o)("memory.stats.shortTermHint")),1)]),_:1})]),_:1}),t(w,{xs:24,sm:8},{default:a(()=>[t(y,{style:{background:"rgba(22,119,255,.08)","border-color":"rgba(22,119,255,.3)",cursor:"pointer"},hoverable:"",onClick:e[2]||(e[2]=n=>m.value="long-term")},{default:a(()=>[t(d,{title:l(o)("memory.stats.longTerm"),value:x.value.longTerm||0,"value-style":"color: #91caff; font-size: 20px;"},{prefix:a(()=>[t(l(le))]),_:1},8,["title","value"]),i("div",_e,s(l(o)("memory.stats.longTermHint")),1)]),_:1})]),_:1}),t(w,{xs:24,sm:8},{default:a(()=>[t(y,{style:{background:"rgba(41,162,112,.08)","border-color":"rgba(41,162,112,.3)",cursor:"pointer"},hoverable:"",onClick:e[3]||(e[3]=n=>m.value="core")},{default:a(()=>[t(d,{title:l(o)("memory.stats.core"),value:x.value.core||0,"value-style":"color: #69db7c; font-size: 20px;"},{prefix:a(()=>[t(l(re))]),_:1},8,["title","value"]),i("div",fe,s(l(o)("memory.stats.coreHint")),1)]),_:1})]),_:1})]),_:1}),t(y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:a(()=>[i("div",ge,[i("span",null,s(l(o)("memory.card.title")),1),t(D,{value:m.value,"onUpdate:value":e[4]||(e[4]=n=>m.value=n),"button-style":"solid",size:"small",onChange:B},{default:a(()=>[t(R,{value:"short-term"},{default:a(()=>[g(s(l(o)("memory.card.tabs.short")),1)]),_:1}),t(R,{value:"long-term"},{default:a(()=>[g(s(l(o)("memory.card.tabs.long")),1)]),_:1}),t(R,{value:"core"},{default:a(()=>[g(s(l(o)("memory.card.tabs.core")),1)]),_:1})]),_:1},8,["value"])])]),extra:a(()=>[t(E,{value:O.value,"onUpdate:value":e[5]||(e[5]=n=>O.value=n),placeholder:l(o)("memory.card.searchPlaceholder"),"allow-clear":"",size:"small",style:{width:"220px"},loading:h.value,onSearch:V},null,8,["value","placeholder","loading"])]),default:a(()=>[h.value?(f(),_("div",he,[t(K)])):b.value.length?(f(),_("div",be,[(f(!0),_(ce,null,ie(b.value,n=>(f(),_("div",{key:n.id,class:"memory-item"},[i("div",ke,[i("div",we,[t(Q,{color:q(n.layer||m.value),style:{"font-size":"10px"}},{default:a(()=>[g(s(F(n.layer||m.value)),1)]),_:2},1032,["color"]),n.importance?(f(),_("span",Ce,s(l(o)("memory.card.importanceLabel",{value:n.importance})),1)):me("",!0)]),i("span",ze,s(n.time),1)]),i("div",Te,s(n.content),1)]))),128))])):(f(),_("div",xe,s(l(o)("memory.card.emptyText")),1))]),_:1}),t(u,{loading:$.value,onClick:W,style:{background:"var(--bg-card-hover)","border-color":"var(--text-muted)",width:"100%"}},{icon:a(()=>[t(l(ne))]),default:a(()=>[g(" "+s(l(o)("memory.consolidateButton")),1)]),_:1},8,["loading"]),t(J,{open:T.value,"onUpdate:open":e[8]||(e[8]=n=>T.value=n),title:l(o)("memory.modal.title"),"confirm-loading":M.value,onOk:H},{default:a(()=>[t(G,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[t(N,{label:l(o)("memory.modal.contentLabel"),required:""},{default:a(()=>[t(Y,{value:v.value.content,"onUpdate:value":e[6]||(e[6]=n=>v.value.content=n),rows:4,placeholder:l(o)("memory.modal.contentPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(N,{label:l(o)("memory.modal.importanceLabel")},{default:a(()=>[t(A,{value:v.value.importance,"onUpdate:value":e[7]||(e[7]=n=>v.value.importance=n),min:0,max:1,step:.1,marks:U.value},null,8,["value","marks"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"])])}}},Be=X(Oe,[["__scopeId","data-v-a74b99b3"]]);export{Be as default};
@@ -0,0 +1 @@
1
+ .page-title[data-v-da1ba8cb]{margin:0 0 4px}.page-sub[data-v-da1ba8cb]{color:var(--text-secondary);margin:0;font-size:13px}
@@ -0,0 +1 @@
1
+ import{_ as se,u as de,t as re,d as s}from"./index-3RqDry-K.js";import{u as ue}from"./useShellMode-CgR0wCYM.js";import{Q as ce}from"./QrScannerModal-CxifoeD5.js";import{R as pe,aj as ve,aJ as me,M as fe,aK as ye}from"./icons-DlxlFL4g.js";import{o as _e,x as ge,M as g,R as m,c as a,N as o,r as u,K as r,L as c,O as v,u as S,P as y,S as k,Q as D}from"./vendor-BXcBOG8b.js";import"./markdown-DUKxbhE4.js";const ke={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},be={style:{"text-align":"center"}},xe={key:0},we={key:1,style:{color:"#ff4d4f"}},Ie={style:{"margin-top":"12px"}},Qe={key:2},$e={style:{display:"inline-block",background:"#fff",padding:"16px","border-radius":"8px",border:"2px solid var(--border-color)"}},Ce={style:{"font-family":"monospace","font-size":"32px","font-weight":"bold","letter-spacing":"8px","margin-top":"4px"}},he={style:{"margin-top":"16px"}},Ne={key:0,style:{"text-align":"center",padding:"30px"}},Re={key:0,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},Se={key:3,style:{color:"var(--text-muted)","font-size":"12px"}},De={key:3,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},qe={__name:"MobileBridge",setup(Me){const _=de(),w=u([]),q=u(!1),M=u(""),P=u(""),O=u(!1),A=u("desktop-qr"),B=u(!1),I=u(""),Q=u(null),L=u(""),$=u({label:"等待手机扫描…",color:"blue"});let C=null;const h=u(!1),n=u({did:"",code:"",deviceId:"",deviceName:""});async function U(){B.value=!0,I.value="",Q.value=null,$.value={label:"等待手机扫描…",color:"blue"};try{const t=await _.sendRaw({type:"desktop.pair.generate-qr"},1e4),e=t?.result??t;e?.payload&&e?.payloadJson?(Q.value=e.payload,L.value=e.payloadJson,V()):I.value=t?.error||"生成失败:mobileBridge 未就绪?"}catch(t){I.value=`生成失败: ${t.message}`}finally{B.value=!1}}async function T(){b();try{await _.sendRaw({type:"desktop.pair.reset"},3e3)}catch{}await U()}function V(){b(),C=setInterval(async()=>{try{const t=await _.sendRaw({type:"desktop.pair.poll-ack"},3e3),e=t?.result??t;e?.status==="acked"?($.value={label:`手机已扫描确认 (${e.ack?.deviceInfo?.name||e.ack?.mobileDid?.slice(0,12)||""})`,color:"green"},b(),await W(e.ack),await N()):e?.status==="expired"&&($.value={label:"QR 已过期(5min),点重新生成",color:"orange"},b())}catch{}},2500)}async function W(t){if(!t||!t.pairingCode||!t.mobileDid||!t.deviceInfo?.deviceId){s.warning("配对成功但 ack 字段不全,无法写入设备表");return}const e={type:"device-pairing",code:t.pairingCode,did:t.mobileDid,deviceInfo:{deviceId:t.deviceInfo.deviceId,name:t.deviceInfo.name||"(unnamed)",platform:t.deviceInfo.platform||"android"},timestamp:Date.now()};try{const l=JSON.stringify(JSON.stringify(e)),{output:d}=await _.execute(`p2p pair-from-qr ${l} --json`,15e3),f=z(d);f?.success?s.success(`配对成功: ${f.deviceName||f.deviceId.slice(0,8)}`):f?.error?.includes?.("QR 已过期")?s.info("配对已确认,设备已写入数据库"):s.warning(`配对状态待确认: ${f?.error||"unknown"} — 列表刷新后即可见`)}catch(l){s.warning(`配对状态待确认: ${l.message} — 列表刷新后即可见`)}}function b(){C&&(clearInterval(C),C=null)}function G(t){t==="desktop-qr"?Q.value?C||V():U():b()}function E(){n.value={did:"",code:"",deviceId:"",deviceName:""}}async function X(){if(h.value)return;if(!/^\d{6}$/.test(n.value.code.trim())){s.error("配对码必须是 6 位数字");return}h.value=!0;const t={type:"device-pairing",code:n.value.code.trim(),did:n.value.did.trim(),deviceInfo:{deviceId:n.value.deviceId.trim(),name:n.value.deviceName.trim()||"(unnamed)",platform:"android"},timestamp:Date.now()};try{await F(JSON.stringify(t)),E()}finally{h.value=!1}}const Y=[{title:"设备 ID",key:"device_id",dataIndex:"device_id",width:280},{title:"设备名称",key:"device_name",dataIndex:"device_name"},{title:"状态",key:"status",dataIndex:"status",width:90},{title:"配对时间",key:"paired_at",dataIndex:"paired_at",width:180},{title:"操作",key:"action",width:130}];async function N(){q.value=!0,M.value="";try{const{output:t}=await _.execute("p2p devices --type mobile --json",15e3);w.value=z(t)||[]}catch(t){M.value=`加载失败: ${t.message}`,w.value=[]}finally{q.value=!1}}async function F(t){O.value=!1;let e=null;try{const d=JSON.stringify(t),{output:f}=await _.execute(`p2p pair-from-qr ${d} --json`,15e3),x=z(f);if(!x?.success){s.error(`配对失败: ${x?.error||"未知错误"}`);return}try{e=JSON.parse(t)}catch{}s.success(`已写入配对: ${x.deviceName||x.deviceId.slice(0,8)}`),await N()}catch(d){s.error(`配对失败: ${d.message}`);return}if(!e)return;const{isEmbedded:l}=ue();if(!l){s.info("CLI 模式下已写本地 paired_devices;手机端确认状态留 cc desktop");return}try{const d=await _.sendRaw({type:"mobile.pair.send-confirmation",qrPayload:e},1e4);d&&d.ok!==!1?s.success("已通知手机端完成握手"):s.warning(`desktop 已写库,但通知手机端失败: ${d?.error||"unknown"}`)}catch(d){s.warning(`通知手机端失败: ${d.message}(desktop 已写库)`)}}async function Z(t){P.value=t.device_id;try{const{output:e}=await _.execute(`p2p unpair ${t.device_id} --json`,15e3),l=z(e);l?.ok?(s.success("已解除配对"),await N()):s.error(`解除失败: ${l?.error||"未知错误"}`)}catch(e){s.error(`解除失败: ${e.message}`)}finally{P.value=""}}function z(t){return re(t)}function ee(t){if(!t)return"—";try{return new Date(t).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return t}}return _e(async()=>{await N(),A.value==="desktop-qr"&&U()}),ge(()=>{b()}),(t,e)=>{const l=r("a-button"),d=r("a-alert"),f=r("a-spin"),x=r("a-qrcode"),j=r("a-tag"),K=r("a-tab-pane"),J=r("a-input"),R=r("a-form-item"),te=r("a-form"),ae=r("a-tabs"),H=r("a-card"),oe=r("a-empty"),ne=r("a-space"),ie=r("a-popconfirm"),le=r("a-table");return c(),g("div",null,[m("div",ke,[e[8]||(e[8]=m("div",null,[m("h2",{class:"page-title"},"移动桥"),m("p",{class:"page-sub"},"已配对的 Android 设备 · QR pairing 完成后会出现在此")],-1)),a(l,{type:"primary",ghost:"",loading:q.value,onClick:N},{icon:o(()=>[a(S(pe))]),default:o(()=>[e[7]||(e[7]=v(" 刷新 ",-1))]),_:1},8,["loading"])]),a(H,{title:"新增配对",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:o(()=>[a(ae,{activeKey:A.value,"onUpdate:activeKey":e[5]||(e[5]=i=>A.value=i),onChange:G},{default:o(()=>[a(K,{key:"desktop-qr",tab:"桌面 QR(推荐)"},{default:o(()=>[a(d,{type:"info","show-icon":"",style:{"margin-bottom":"16px"},message:"在手机上 设置 → 扫描桌面 QR,对准下方二维码即可"}),m("div",be,[B.value?(c(),g("div",xe,[a(f),e[9]||(e[9]=v(" 生成 QR 中… ",-1))])):I.value?(c(),g("div",we,[v(y(I.value)+" ",1),m("div",Ie,[a(l,{onClick:T},{default:o(()=>[...e[10]||(e[10]=[v("重试",-1)])]),_:1})])])):Q.value?(c(),g("div",Qe,[m("div",$e,[a(x,{value:L.value,size:280,"error-level":"H"},null,8,["value"])]),e[12]||(e[12]=m("div",{style:{"margin-top":"16px",color:"var(--text-muted)","font-size":"12px"}}," 配对码(手机也可手输): ",-1)),m("div",Ce,y(Q.value.code),1),m("div",he,[a(j,{color:$.value.color},{default:o(()=>[v(y($.value.label),1)]),_:1},8,["color"]),a(l,{size:"small",type:"link",style:{"margin-left":"8px"},onClick:T},{default:o(()=>[...e[11]||(e[11]=[v(" 重新生成 ",-1)])]),_:1})])])):k("",!0)])]),_:1}),a(K,{key:"manual",tab:"手动输入"},{default:o(()=>[a(d,{type:"info","show-icon":"",style:{"margin-bottom":"16px"},message:"在手机上 设置 → 配对桌面 显示 QR 后,照着屏幕填写下方三个字段"}),a(te,{layout:"vertical",model:n.value},{default:o(()=>[a(R,{label:"DID",required:!0},{default:o(()=>[a(J,{value:n.value.did,"onUpdate:value":e[0]||(e[0]=i=>n.value.did=i),placeholder:"did:cc:...",style:{"font-family":"monospace"}},null,8,["value"])]),_:1}),a(R,{label:"配对码 (6 位数字)",required:!0},{default:o(()=>[a(J,{value:n.value.code,"onUpdate:value":e[1]||(e[1]=i=>n.value.code=i),placeholder:"123456",maxlength:"6",style:{"font-family":"monospace","font-size":"20px","letter-spacing":"4px","text-align":"center"}},null,8,["value"])]),_:1}),a(R,{label:"设备 ID",required:!0},{default:o(()=>[a(J,{value:n.value.deviceId,"onUpdate:value":e[2]||(e[2]=i=>n.value.deviceId=i),placeholder:"android-xxx-xxx",style:{"font-family":"monospace"}},null,8,["value"])]),_:1}),a(R,{label:"设备名(可选)"},{default:o(()=>[a(J,{value:n.value.deviceName,"onUpdate:value":e[3]||(e[3]=i=>n.value.deviceName=i),placeholder:"My Pixel 8"},null,8,["value"])]),_:1}),a(R,null,{default:o(()=>[a(l,{type:"primary",loading:h.value,disabled:!n.value.did||!n.value.code||!n.value.deviceId,onClick:X},{icon:o(()=>[a(S(ve))]),default:o(()=>[e[13]||(e[13]=v(" 提交配对 ",-1))]),_:1},8,["loading","disabled"]),a(l,{style:{"margin-left":"8px"},disabled:h.value,onClick:E},{default:o(()=>[...e[14]||(e[14]=[v(" 清空 ",-1)])]),_:1},8,["disabled"])]),_:1})]),_:1},8,["model"])]),_:1}),a(K,{key:"scan",tab:"扫描手机 QR(高级)"},{default:o(()=>[a(d,{type:"warning","show-icon":"",style:{"margin-bottom":"16px"},message:"需要桌面摄像头,对小屏 QR 识别率不稳定",description:"无摄像头或扫描失败请用 “手动输入” 标签页"}),a(l,{type:"primary",onClick:e[4]||(e[4]=i=>O.value=!0)},{icon:o(()=>[a(S(me))]),default:o(()=>[e[15]||(e[15]=v(" 打开摄像头扫描 ",-1))]),_:1})]),_:1})]),_:1},8,["activeKey"])]),_:1}),a(H,{title:"已配对设备",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:o(()=>[a(j,{color:"blue"},{default:o(()=>[v(y(w.value.length)+" 台",1)]),_:1})]),default:o(()=>[q.value?(c(),g("div",Ne,[a(f)])):w.value.length===0?(c(),D(oe,{key:1,description:"还未配对任何移动设备。在 Android 上:设置 → 配对桌面,生成 QR 后桌面端扫描。"})):(c(),D(le,{key:2,columns:Y,"data-source":w.value,pagination:!1,size:"small","row-key":"device_id"},{bodyCell:o(({column:i,record:p})=>[i.key==="device_id"?(c(),g("span",Re,y(p.device_id.length>24?p.device_id.slice(0,24)+"…":p.device_id),1)):k("",!0),i.key==="device_name"?(c(),D(ne,{key:1},{default:o(()=>[a(S(fe),{style:{color:"var(--text-muted)"}}),m("span",null,y(p.device_name||"(unnamed)"),1)]),_:2},1024)):k("",!0),i.key==="status"?(c(),D(j,{key:2,color:p.status==="active"?"green":"default"},{default:o(()=>[v(y(p.status==="active"?"已激活":p.status),1)]),_:2},1032,["color"])):k("",!0),i.key==="paired_at"?(c(),g("span",Se,y(ee(p.paired_at)),1)):k("",!0),i.key==="action"?(c(),D(ie,{key:4,title:`确定解除 ${p.device_name||p.device_id.slice(0,12)} 的配对?`,"ok-text":"解除","cancel-text":"取消","ok-type":"danger",onConfirm:Oe=>Z(p)},{default:o(()=>[a(l,{size:"small",type:"link",danger:"",loading:P.value===p.device_id},{default:o(()=>[a(S(ye)),e[16]||(e[16]=v(" 解除配对 ",-1))]),_:1},8,["loading"])]),_:2},1032,["title","onConfirm"])):k("",!0)]),_:1},8,["data-source"])),M.value?(c(),g("div",De,y(M.value),1)):k("",!0)]),_:1}),a(ce,{open:O.value,onScanned:F,onCancel:e[6]||(e[6]=i=>O.value=!1)},null,8,["open"])])}}},je=se(qe,[["__scopeId","data-v-da1ba8cb"]]);export{je as default};
@@ -0,0 +1 @@
1
+ import{M as P,c as l,N as c,K as n,I as j,L as h,R as t,P as s,u as e,O as i}from"./vendor-BXcBOG8b.js";import{_ as g,b as y}from"./index-3RqDry-K.js";import{F as v,M as _}from"./icons-DlxlFL4g.js";const B={class:"mobile-projects-placeholder"},x={class:"title"},M={class:"subtitle"},k={class:"explainer"},D={__name:"MobileProjects",setup(C){const r=j(),{t:o}=y();function p(){r.push("/projects")}function u(){r.push("/mobile-bridge")}return(N,T)=>{const m=n("a-alert"),a=n("a-button"),d=n("a-space"),b=n("a-empty"),f=n("a-card");return h(),P("div",B,[l(f,null,{default:c(()=>[l(b,{description:!1},{image:c(()=>[l(e(_),{style:{fontSize:"64px",color:"#bfbfbf"}})]),default:c(()=>[t("h2",x,s(e(o)("mobileProjects.title")),1),t("p",M,s(e(o)("mobileProjects.subtitle")),1),l(m,{message:e(o)("mobileProjects.v02Banner"),type:"info","show-icon":"",class:"banner"},null,8,["message"]),t("div",k,[t("h3",null,s(e(o)("mobileProjects.currentDirection")),1),t("p",null,s(e(o)("mobileProjects.currentDirectionBody")),1),t("ul",null,[t("li",null,s(e(o)("mobileProjects.stepPhone")),1),t("li",null,s(e(o)("mobileProjects.stepTap")),1),t("li",null,s(e(o)("mobileProjects.stepPull")),1)]),t("h3",null,s(e(o)("mobileProjects.reverseDirection")),1),t("p",null,s(e(o)("mobileProjects.reverseDirectionBody")),1)]),l(d,{class:"actions"},{default:c(()=>[l(a,{type:"primary",onClick:p},{default:c(()=>[l(e(v)),i(" "+s(e(o)("mobileProjects.viewLocalProjects")),1)]),_:1}),l(a,{onClick:u},{default:c(()=>[l(e(_)),i(" "+s(e(o)("mobileProjects.checkBridge")),1)]),_:1})]),_:1})]),_:1})]),_:1})])}}},V=g(D,[["__scopeId","data-v-c9f7e00a"]]);export{V as default};
@@ -0,0 +1 @@
1
+ .mobile-projects-placeholder[data-v-c9f7e00a]{padding:32px;max-width:720px;margin:0 auto}.title[data-v-c9f7e00a]{margin-top:16px;font-size:24px;font-weight:600}.subtitle[data-v-c9f7e00a]{color:#00000080;margin-bottom:24px}.banner[data-v-c9f7e00a]{margin:16px 0 24px;text-align:left}.explainer[data-v-c9f7e00a]{text-align:left;background:#00000005;padding:16px;border-radius:8px;margin:16px 0}.explainer h3[data-v-c9f7e00a]{font-size:16px;margin:12px 0 8px}.explainer p[data-v-c9f7e00a]{color:#000000b3;margin:4px 0}.explainer ul[data-v-c9f7e00a]{margin:8px 0;padding-left:24px}.actions[data-v-c9f7e00a]{margin-top:16px}
@@ -0,0 +1,6 @@
1
+ import{r as h,o as lt,x as ot,M,R as k,P as i,u as o,c as e,N as t,K as g,L as d,O as v,Q as m,$ as rt,a4 as nt,F as Ie,S as y,a1 as G,_ as st,Y as ut,f as te}from"./vendor-BXcBOG8b.js";import{_ as it,b as dt,u as ct,d as x}from"./index-3RqDry-K.js";import{u as de}from"./useShellMode-CgR0wCYM.js";import{a as ce,b as $e,f as Fe,c as Le,d as ae,p as vt}from"./mtc-parser-0zlMjabo.js";import{R as pt,f as ft,e as mt,z as je,b6 as bt,w as gt,N as yt,ap as _t,Q as ht}from"./icons-DlxlFL4g.js";const kt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},xt={class:"page-title"},wt={class:"page-sub"},St={style:{"font-family":"monospace"}},zt={style:{"font-family":"monospace"}},Ct={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},It={key:1,style:{color:"var(--text-muted)"}},$t={key:0,style:{"font-family":"monospace","font-size":"11px","word-break":"break-all"}},Ft={key:1,style:{color:"var(--text-muted)"}},Lt={key:1,style:{"font-family":"monospace","font-size":"11px"}},jt=["title"],Mt={style:{"font-family":"monospace"}},Dt={style:{"font-family":"monospace","font-size":"12px"}},Et={style:{"font-family":"monospace","font-size":"12px"}},Pt={class:"raw-pre"},Ot={style:{"font-family":"monospace"}},Ut={key:0,style:{"font-family":"monospace","font-size":"11px",color:"var(--text-tertiary)","margin-left":"8px"}},At={key:0},Nt={style:{"font-family":"monospace"}},Rt={style:{"font-family":"monospace",color:"var(--text-secondary)","font-size":"11px"}},Tt={style:{"font-family":"monospace"}},Bt={style:{"font-family":"monospace"}},qt={style:{"font-family":"monospace","font-size":"11px"}},Ht={key:0,style:{color:"#cf1322","margin-left":"8px"}},Zt={key:0,style:{"font-family":"monospace","font-size":"11px",color:"var(--text-secondary)","margin-left":"8px"}},Jt={class:"raw-pre",style:{margin:"0"}},Gt={__name:"Mtc",setup(Vt){const{t:r}=dt(),D=ct(),ve=h("status"),Y=h(!1),w=h(ce("")),X=h(""),le=h(!1),E=h($e("")),V=h(""),W=h(""),oe=h(!1),S=h(null),Me=te(()=>[{title:r("mtc.historyColumns.seq"),key:"seq",dataIndex:"seq",width:"90px"},{title:r("mtc.historyColumns.namespace"),key:"namespace",dataIndex:"namespace"},{title:r("mtc.historyColumns.treeSize"),key:"treeSize",dataIndex:"treeSize",width:"100px"},{title:r("mtc.historyColumns.treeHeadId"),key:"treeHeadId",dataIndex:"treeHeadId",width:"180px"},{title:r("mtc.historyColumns.publishedAt"),key:"publishedAt",dataIndex:"publishedAt",width:"140px"}]);function De(a,l){return a?a.length<=l?a:a.slice(0,l)+"…":""}async function pe(){Y.value=!0;try{if(de().isEmbedded){const a=await D.sendRaw({type:"mtc.audit-status"},3e4),l=a?.result;if(!a?.ok||!l?.success)throw new Error(l?.error||a?.error||"mtc.audit-status failed");w.value=ce(l.status)}else{const{output:a}=await D.execute("audit mtc status --json",3e4);w.value=ce(a)}}catch(a){x.error(r("mtc.messages.loadStatusFailed",{err:a?.message||a}))}finally{Y.value=!1}}async function Ee(){if(!X.value.trim()){x.warning(r("mtc.messages.stateFileRequired"));return}le.value=!0;try{const a=X.value.trim().replace(/"/g,'\\"'),{output:l}=await D.execute(`mtc publish-status "${a}" --json`,8e3);E.value=$e(l)}catch(a){x.error(r("mtc.messages.loadPublishFailed",{err:a?.message||a}))}finally{le.value=!1}}async function fe(){if(!V.value.trim()||!W.value.trim()){x.warning(r("mtc.messages.verifyPathsRequired"));return}oe.value=!0,S.value=null;try{const a=V.value.trim().replace(/"/g,'\\"'),l=W.value.trim().replace(/"/g,'\\"'),{output:u}=await D.execute(`mtc verify "${a}" --landmark "${l}" --json`,12e3);S.value=vt(u),S.value.raw||x.error(r("mtc.messages.verifyNoJson"))}catch(a){x.error(r("mtc.messages.verifyFailed",{err:a?.message||a}))}finally{oe.value=!1}}const $=h({config:{enabled:!1,mode:"independent",alg:"ed25519",batch_interval_seconds:60,issuer:""},trust_anchors:{chain_count:0,total:0,by_chain:{}},staging:{pending:0},batches:{total:0,latest:null}}),Pe=te(()=>{switch($.value.config.mode){case"federated":return"Federated";case"light-client":return"Light Client";default:return"Independent"}}),Oe=[{title:"chain",key:"chain",dataIndex:"chain",width:"120px"},{title:"锚数",key:"count",dataIndex:"count",width:"80px"}],Ue=te(()=>{const a=$.value.trust_anchors.by_chain||{};return Object.entries(a).map(([l,u])=>({key:l,chain:l,count:u}))});function me(a){return{config:{enabled:!1,mode:"independent",alg:"ed25519",batch_interval_seconds:60,issuer:"",...a?.config||{}},trust_anchors:{chain_count:0,total:0,by_chain:{},...a?.trust_anchors||{}},staging:{pending:0,...a?.staging||{}},batches:{total:0,latest:null,...a?.batches||{}}}}const N=h({});let re=null;function Ae(a){return a==="ok"?"#52c41a":a==="degraded"?"#faad14":a==="down"?"#ff4d4f":"#888"}async function be(){try{if(de().isEmbedded){const u=await D.sendRaw({type:"mtc.bridge-sla"},3e4),f=u?.result;u?.ok&&f?.success&&f.metrics&&typeof f.metrics.sla_status=="string"&&(N.value=f.metrics);return}const{output:a}=await D.execute("crosschain mtc-sla --json",3e4),l=a.split(/\r?\n/);for(let u=0;u<l.length;u++)if(l[u].trimStart().startsWith("{"))for(let f=l.length;f>u;f--)try{const s=JSON.parse(l.slice(u,f).join(`
2
+ `));if(s&&typeof s.sla_status=="string"){N.value=s;return}}catch{}}catch{}}async function Ne(){try{if(de().isEmbedded){const u=await D.sendRaw({type:"mtc.bridge-status"},3e4),f=u?.result;if(!u?.ok||!f?.success||!f.status)throw new Error(f?.error||u?.error||"mtc.bridge-status failed");const s=f.status;$.value=me({config:{enabled:s.enabled,mode:s.mode,alg:s.alg,batch_interval_seconds:s.batch_interval_seconds,issuer:s.issuer},trust_anchors:s.trust_anchors,staging:s.staging,batches:s.batches});return}const{output:a}=await D.execute("crosschain mtc-status --json",3e4),l=a.split(/\r?\n/);for(let u=0;u<l.length;u++)if(l[u].trimStart().startsWith("{"))for(let f=l.length;f>u;f--)try{const s=JSON.parse(l.slice(u,f).join(`
3
+ `));if(s&&s.config){$.value=me(s);return}}catch{}}catch(a){x.error("加载桥 MTC 状态失败: "+(a?.message||a))}}const J=h(""),ne=h(!1),P=h(null),_=h(null),ge=h("随 governance-log 加载刷新"),se=te(()=>{const a=P.value?.state;return a?Array.isArray(a.pending_thresholds)&&a.pending_thresholds.length>0?a.pending_thresholds:a.pending_threshold&&Number.isInteger(a.pending_threshold.target)?[a.pending_threshold]:[]:[]}),Re=[{title:"member_id",key:"member_id",dataIndex:"member_id"},{title:"status",key:"status",dataIndex:"status",width:"110px"},{title:"weight",key:"weight",dataIndex:"weight",width:"80px"},{title:"alg",key:"alg",dataIndex:"alg",width:"120px"}];function Te(a){switch(a){case"create":return"cyan";case"invite":case"vote":return"blue";case"leave":case"rotate-key":return"default";case"propose-revoke":case"propose-threshold":return"orange";case"confirm-revoke":case"confirm-threshold":return"gold";case"fork":case"merge":return"purple";case"dispute":case"wind-down":return"red";default:return"default"}}const L=h(!1),K=h(null),q=h({actor:"",candidate:"",pubkeyId:""}),H=h({actor:"",candidate:"",decision:"approve"}),Z=h({actor:"",newM:2}),R=h({actor:"",target:"",reason:"inactive"}),j=h({dropZone:"",verify:!1});function C(a){return String(a||"").replace(/"/g,"").replace(/[`$]/g,"")}async function O(a,l=!0){if(!J.value.trim()){x.warning("请先输入联邦 ID");return}L.value=!0,K.value=null;try{const u=C(J.value.trim()),f=`mtc federation ${a.replace("<FED>",`"${u}"`)} --json`,{output:s}=await D.execute(f,12e3),c=s.split(/\r?\n/);let p=null;for(let I=0;I<c.length;I++)if(c[I].trimStart().startsWith("{")){for(let U=c.length;U>I;U--)try{p=JSON.parse(c.slice(I,U).join(`
4
+ `));break}catch{}if(p)break}K.value=p||{raw:s},x.success("命令执行完成"),l&&await xe()}catch(u){x.error("CLI 执行失败: "+(u?.message||u)),K.value={error:u?.message||String(u)}}finally{L.value=!1}}function ye(){const a=q.value;if(!a.actor||!a.candidate||!a.pubkeyId){x.warning("actor / candidate / pubkey-id 都必填");return}return O(`invite <FED> "${C(a.candidate)}" --actor "${C(a.actor)}" --candidate-pubkey-id "${C(a.pubkeyId)}"`)}function _e(){const a=H.value;if(!a.actor||!a.candidate){x.warning("actor / candidate 必填");return}return O(`vote <FED> "${C(a.candidate)}" --actor "${C(a.actor)}" --decision ${a.decision}`)}function he(){const a=Z.value;if(!a.actor){x.warning("actor 必填");return}return O(`propose-threshold <FED> ${parseInt(a.newM)} --actor "${C(a.actor)}"`)}function Be(){const a=Z.value;if(!a.actor){x.warning("actor 必填");return}return O(`confirm-threshold <FED> --actor "${C(a.actor)}"`)}function qe(a){const l=(Z.value.actor||"").trim();if(!l){x.warning('请先在"改 threshold"子 tab 填 actor');return}if(!a){x.warning("proposal event_id 缺失");return}return O(`confirm-threshold <FED> --actor "${C(l)}" --proposal-event-id "${C(a)}"`)}function He(a){return a?a.length<=16?a:`${a.slice(0,8)}…${a.slice(-4)}`:"—"}function ke(){const a=R.value;if(!a.actor||!a.target){x.warning("actor / target 必填");return}return O(`propose-revoke <FED> "${C(a.target)}" --actor "${C(a.actor)}" --reason "${C(a.reason)}"`)}function Ze(){const a=R.value;if(!a.actor||!a.target){x.warning("actor / target 必填");return}return O(`confirm-revoke <FED> "${C(a.target)}" --actor "${C(a.actor)}"`)}function Je(){if(!j.value.dropZone){x.warning("drop-zone 必填");return}return O(`governance-publish <FED> --drop-zone "${C(j.value.dropZone)}"`,!1)}function Ge(){if(!j.value.dropZone){x.warning("drop-zone 必填");return}const a=j.value.verify?" --verify":"";return O(`governance-pull <FED> --drop-zone "${C(j.value.dropZone)}"${a}`)}function Ve(){if(!j.value.dropZone){x.warning("drop-zone 必填");return}const a=j.value.verify?" --verify":"";return O(`governance-sync-serve <FED> --drop-zone "${C(j.value.dropZone)}" --once${a}`)}async function xe(){if(!J.value.trim()){x.warning("请输入联邦 ID");return}ne.value=!0;try{const a=J.value.trim().replace(/"/g,""),{output:l}=await D.execute(`mtc federation governance-log "${a}" --json`,8e3),u=l.split(/\r?\n/);let f=!1;for(let s=0;s<u.length;s++)if(u[s].trimStart().startsWith("{")){for(let c=u.length;c>s;c--)try{const p=JSON.parse(u.slice(s,c).join(`
5
+ `));if(p&&p.state){P.value=p,f=!0;break}}catch{}if(f)break}if(!f){x.error("未能解析 governance-log 输出");return}await We(a)}catch(a){x.error("加载 governance.log 失败: "+(a?.message||a))}finally{ne.value=!1}}async function We(a){if(_.value=null,ge.value="随 governance-log 加载刷新",!!a)try{const l=String(a).replace(/"/g,""),{output:u}=await D.execute(`mtc federation governance-sync-stats "${l}" --json`,8e3),f=u.split(/\r?\n/);for(let s=0;s<f.length;s++)if(f[s].trimStart().startsWith("{"))for(let c=f.length;c>s;c--)try{const p=JSON.parse(f.slice(s,c).join(`
6
+ `));if(p&&(p.available!==void 0||p.mode!==void 0)){_.value=p.available===!1?null:p;return}}catch{}}catch{_.value=null}}return lt(()=>{pe(),Ne(),be(),re=setInterval(be,3e4)}),ot(()=>{re&&clearInterval(re)}),(a,l)=>{const u=g("a-button"),f=g("a-space"),s=g("a-statistic"),c=g("a-card"),p=g("a-col"),I=g("a-tag"),U=g("a-row"),z=g("a-descriptions-item"),ee=g("a-descriptions"),T=g("a-alert"),A=g("a-tab-pane"),F=g("a-input"),b=g("a-form-item"),B=g("a-form"),ue=g("a-table"),Ke=g("a-collapse-panel"),Qe=g("a-collapse"),ie=g("a-empty"),we=g("a-list-item"),Se=g("a-list"),Ye=g("a-timeline-item"),Xe=g("a-timeline"),ze=g("a-select-option"),et=g("a-select"),tt=g("a-input-number"),at=g("a-checkbox"),Ce=g("a-tabs");return d(),M("div",null,[k("div",kt,[k("div",null,[k("h2",xt,i(o(r)("mtc.title")),1),k("p",wt,i(o(r)("mtc.subtitle")),1)]),e(f,null,{default:t(()=>[e(u,{loading:Y.value,onClick:pe},{icon:t(()=>[e(o(pt))]),default:t(()=>[v(" "+i(o(r)("mtc.refresh")),1)]),_:1},8,["loading"])]),_:1})]),e(Ce,{activeKey:ve.value,"onUpdate:activeKey":l[17]||(l[17]=n=>ve.value=n),class:"mtc-tabs"},{default:t(()=>[e(A,{key:"status",tab:o(r)("mtc.tabs.status")},{default:t(()=>[e(U,{gutter:[16,16],style:{"margin-bottom":"16px"}},{default:t(()=>[e(p,{xs:24,sm:12,lg:6},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:o(r)("mtc.status.enabledLabel"),value:w.value.config.enabled?o(r)("mtc.status.enabled"):o(r)("mtc.status.disabled"),"value-style":{color:w.value.config.enabled?"#52c41a":"#888",fontSize:"20px"}},{prefix:t(()=>[(d(),m(rt(w.value.config.enabled?o(ft):o(mt))))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),e(p,{xs:24,sm:12,lg:6},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:o(r)("mtc.status.intervalLabel"),value:o(Fe)(w.value.config.batch_interval_seconds),"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[e(o(je))]),_:1},8,["title","value"])]),_:1})]),_:1}),e(p,{xs:24,sm:12,lg:6},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:o(r)("mtc.status.stagingLabel"),value:w.value.staging.count,"value-style":{color:w.value.staging.count>0?"#faad14":"#888",fontSize:"20px"}},nt({prefix:t(()=>[e(o(bt))]),_:2},[w.value.staging.malformed>0?{name:"suffix",fn:t(()=>[e(I,{color:"red",style:{"margin-left":"8px"}},{default:t(()=>[v(i(o(r)("mtc.status.stagingMalformed",{count:w.value.staging.malformed})),1)]),_:1})]),key:"0"}:void 0]),1032,["title","value","value-style"])]),_:1})]),_:1}),e(p,{xs:24,sm:12,lg:6},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:o(r)("mtc.status.totalBatches"),value:w.value.batches.count,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:t(()=>[e(o(gt))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),e(c,{title:o(r)("mtc.status.configCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[e(ee,{column:{xs:1,sm:2},size:"small"},{default:t(()=>[e(z,{label:"namespace"},{default:t(()=>[k("span",St,i(w.value.config.namespace_prefix||"—"),1)]),_:1}),e(z,{label:"issuer"},{default:t(()=>[k("span",zt,i(w.value.config.issuer||"—"),1)]),_:1}),e(z,{label:"oldest queued"},{default:t(()=>[v(i(o(Le)(w.value.staging.oldest_queued_at)),1)]),_:1}),e(z,{label:"last batch"},{default:t(()=>[w.value.batches.last_batch_id?(d(),M(Ie,{key:0},[e(I,{color:"cyan",style:{"font-family":"monospace"}},{default:t(()=>[v("#"+i(w.value.batches.last_batch_id),1)]),_:1}),k("span",Ct,i(o(r)("mtc.status.lastBatchSize",{size:w.value.batches.last_tree_size,time:o(ae)(w.value.batches.last_closed_at)})),1)],64)):(d(),M("span",It,i(o(r)("mtc.status.noBatches")),1))]),_:1}),e(z,{label:"last tree_head_id",span:2},{default:t(()=>[w.value.batches.last_tree_head_id?(d(),M("span",$t,i(w.value.batches.last_tree_head_id),1)):(d(),M("span",Ft,"—"))]),_:1})]),_:1})]),_:1},8,["title"]),!w.value.ok&&!Y.value?(d(),m(T,{key:0,type:"info","show-icon":"",message:o(r)("mtc.status.loadFailMessage"),description:o(r)("mtc.status.loadFailDescription")},null,8,["message","description"])):w.value.config.enabled?y("",!0):(d(),m(T,{key:1,type:"info","show-icon":"",message:o(r)("mtc.status.notEnabledMessage"),description:o(r)("mtc.status.notEnabledDescription")},null,8,["message","description"]))]),_:1},8,["tab"]),e(A,{key:"publisher",tab:o(r)("mtc.tabs.publisher")},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[e(B,{layout:"inline",onSubmit:G(Ee,["prevent"])},{default:t(()=>[e(b,{label:o(r)("mtc.publisher.stateFileLabel")},{default:t(()=>[e(F,{value:X.value,"onUpdate:value":l[0]||(l[0]=n=>X.value=n),placeholder:o(r)("mtc.publisher.stateFilePlaceholder"),style:{"min-width":"360px"},"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"]),e(b,null,{default:t(()=>[e(u,{loading:le.value,type:"primary","html-type":"submit"},{default:t(()=>[v(i(o(r)("mtc.publisher.queryButton")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),E.value.ok&&!E.value.exists?(d(),m(T,{key:0,type:"info","show-icon":"",message:o(r)("mtc.publisher.missingMessage"),description:o(r)("mtc.publisher.missingDescription",{path:E.value.stateFile}),style:{"margin-bottom":"16px"}},null,8,["message","description"])):y("",!0),E.value.exists?(d(),m(U,{key:1,gutter:[16,16],style:{"margin-bottom":"16px"}},{default:t(()=>[e(p,{xs:24,sm:12,lg:8},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:o(r)("mtc.publisher.lastSeq"),value:E.value.lastSeq,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[e(o(yt))]),_:1},8,["title","value"])]),_:1})]),_:1}),e(p,{xs:24,sm:12,lg:8},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:o(r)("mtc.publisher.historyEntries"),value:E.value.historyCount,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:t(()=>[e(o(_t))]),_:1},8,["title","value"])]),_:1})]),_:1}),e(p,{xs:24,sm:12,lg:8},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:o(r)("mtc.publisher.lastPublished"),value:o(ae)(E.value.lastPublishedAt),"value-style":{color:"#52c41a",fontSize:"16px"}},{prefix:t(()=>[e(o(je))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1})):y("",!0),E.value.exists&&E.value.history.length>0?(d(),m(ue,{key:2,"data-source":E.value.history,columns:Me.value,pagination:{pageSize:10},size:"small","row-key":"key"},{bodyCell:t(({column:n,record:Q})=>[n.key==="seq"?(d(),m(I,{key:0,color:"cyan",style:{"font-family":"monospace"}},{default:t(()=>[v("#"+i(Q.seq),1)]),_:2},1024)):n.key==="treeHeadId"?(d(),M("span",Lt,i(De(Q.treeHeadId,22)),1)):n.key==="publishedAt"?(d(),M("span",{key:2,title:Q.publishedAt},i(o(ae)(Q.publishedAt)),9,jt)):y("",!0)]),_:1},8,["data-source","columns"])):y("",!0)]),_:1},8,["tab"]),e(A,{key:"verify",tab:o(r)("mtc.tabs.verify")},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[e(T,{type:"info","show-icon":"",message:o(r)("mtc.verify.infoMessage"),description:o(r)("mtc.verify.infoDescription"),style:{"margin-bottom":"16px"}},null,8,["message","description"]),e(B,{layout:"vertical",onSubmit:G(fe,["prevent"])},{default:t(()=>[e(b,{label:o(r)("mtc.verify.envelopeLabel")},{default:t(()=>[e(F,{value:V.value,"onUpdate:value":l[1]||(l[1]=n=>V.value=n),placeholder:o(r)("mtc.verify.envelopePlaceholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"]),e(b,{label:o(r)("mtc.verify.landmarkLabel")},{default:t(()=>[e(F,{value:W.value,"onUpdate:value":l[2]||(l[2]=n=>W.value=n),placeholder:o(r)("mtc.verify.landmarkPlaceholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"]),e(b,null,{default:t(()=>[e(u,{loading:oe.value,type:"primary",disabled:!V.value||!W.value,onClick:fe},{icon:t(()=>[e(o(ht))]),default:t(()=>[v(" "+i(o(r)("mtc.verify.runButton")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1}),S.value?(d(),m(c,{key:0,title:S.value.ok?o(r)("mtc.verify.passTitle"):o(r)("mtc.verify.failTitle"),size:"small",style:st({background:"var(--bg-card)",borderColor:S.value.ok?"#52c41a":"#ff4d4f"})},{default:t(()=>[e(ee,{column:1,size:"small",bordered:""},{default:t(()=>[e(z,{label:o(r)("mtc.verify.resultLabel")},{default:t(()=>[e(I,{color:S.value.ok?"green":"red"},{default:t(()=>[v(i(S.value.ok?"PASS":"FAIL"),1)]),_:1},8,["color"])]),_:1},8,["label"]),S.value.ok?y("",!0):(d(),m(z,{key:0,label:o(r)("mtc.verify.errorCodeLabel")},{default:t(()=>[k("span",Mt,i(S.value.code||o(r)("mtc.verify.errorCodeNone")),1),S.value.recoverable?(d(),m(I,{key:0,color:"orange",style:{"margin-left":"8px"}},{default:t(()=>[v(i(o(r)("mtc.verify.recoverable")),1)]),_:1})):y("",!0)]),_:1},8,["label"])),S.value.leaf?(d(),m(z,{key:1,label:o(r)("mtc.verify.subjectLabel")},{default:t(()=>[k("span",Dt,i(S.value.leaf.subject||"—"),1)]),_:1},8,["label"])):y("",!0),S.value.leaf?(d(),m(z,{key:2,label:o(r)("mtc.verify.kindLabel")},{default:t(()=>[e(I,null,{default:t(()=>[v(i(S.value.leaf.kind||"—"),1)]),_:1})]),_:1},8,["label"])):y("",!0),S.value.treeHead?(d(),m(z,{key:3,label:o(r)("mtc.verify.treeSizeLabel")},{default:t(()=>[v(i(S.value.treeHead.tree_size),1)]),_:1},8,["label"])):y("",!0),S.value.treeHead?(d(),m(z,{key:4,label:o(r)("mtc.verify.issuerLabel")},{default:t(()=>[k("span",Et,i(S.value.treeHead.issuer||"—"),1)]),_:1},8,["label"])):y("",!0)]),_:1}),S.value.raw?(d(),m(Qe,{key:0,ghost:"",style:{"margin-top":"12px"}},{default:t(()=>[e(Ke,{key:"raw",header:o(r)("mtc.verify.rawHeader")},{default:t(()=>[k("pre",Pt,i(JSON.stringify(S.value.raw,null,2)),1)]),_:1},8,["header"])]),_:1})):y("",!0)]),_:1},8,["title","style"])):y("",!0)]),_:1},8,["tab"]),e(A,{key:"bridge",tab:"跨链桥 MTC"},{default:t(()=>[e(U,{gutter:[16,16],style:{"margin-bottom":"16px"}},{default:t(()=>[e(p,{xs:24,sm:8},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:"桥 MTC 集成",value:$.value.config.enabled?"已启用":"未启用","value-style":{color:$.value.config.enabled?"#52c41a":"#888",fontSize:"20px"}},null,8,["value","value-style"])]),_:1})]),_:1}),e(p,{xs:24,sm:8},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:"互信模式",value:Pe.value,"value-style":{color:"#1677ff",fontSize:"20px"}},null,8,["value"])]),_:1})]),_:1}),e(p,{xs:24,sm:8},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:"待批次关闭",value:$.value.staging.pending,"value-style":{color:$.value.staging.pending>0?"#faad14":"#888",fontSize:"20px"}},null,8,["value","value-style"])]),_:1})]),_:1})]),_:1}),e(c,{title:"配置",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[e(ee,{column:{xs:1,sm:2},size:"small",bordered:""},{default:t(()=>[e(z,{label:"算法"},{default:t(()=>[e(I,{color:$.value.config.alg==="slh-dsa-128f"?"purple":"blue"},{default:t(()=>[v(i($.value.config.alg||"—"),1)]),_:1},8,["color"])]),_:1}),e(z,{label:"batch interval"},{default:t(()=>[v(i(o(Fe)($.value.config.batch_interval_seconds)),1)]),_:1}),e(z,{label:"issuer"},{default:t(()=>[k("span",Ot,i($.value.config.issuer||"—"),1)]),_:1}),e(z,{label:"batches 总数"},{default:t(()=>[v(i($.value.batches.total)+" ",1),$.value.batches.latest?(d(),M("span",Ut," latest: "+i($.value.batches.latest),1)):y("",!0)]),_:1})]),_:1})]),_:1}),e(c,{title:"信任锚 (Independent 模式)",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[$.value.trust_anchors.total===0?(d(),m(ie,{key:0,description:"未配置信任锚"})):(d(),m(ue,{key:1,"data-source":Ue.value,columns:Oe,pagination:!1,size:"small","row-key":"key"},null,8,["data-source"])),l[18]||(l[18]=k("p",{style:{"margin-top":"8px","font-size":"12px",color:"var(--text-tertiary)"}},[v(" 添加:"),k("code",null,"cc crosschain mtc-trust-anchor add <chain> <pubkey-id> --alg --issuer")],-1))]),_:1}),e(c,{title:"SLA / Monitoring (v0.2)",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[e(U,{gutter:[12,12]},{default:t(()=>[e(p,{xs:24,sm:12,lg:6},{default:t(()=>[e(s,{title:"SLA Status",value:N.value.sla_status||"—","value-style":{color:Ae(N.value.sla_status),fontSize:"18px"}},null,8,["value","value-style"])]),_:1}),e(p,{xs:24,sm:12,lg:6},{default:t(()=>[e(s,{title:"Staged pending",value:N.value.staged_pending_count??0,"value-style":{fontSize:"18px"}},null,8,["value"])]),_:1}),e(p,{xs:24,sm:12,lg:6},{default:t(()=>[e(s,{title:"Batches / hour",value:N.value.batches_last_hour??0,"value-style":{fontSize:"18px"}},null,8,["value"])]),_:1}),e(p,{xs:24,sm:12,lg:6},{default:t(()=>[e(s,{title:"Last batch",value:N.value.seconds_since_last_batch!==null&&N.value.seconds_since_last_batch!==void 0?`${N.value.seconds_since_last_batch}s ago`:"—","value-style":{fontSize:"14px"}},null,8,["value"])]),_:1})]),_:1}),l[19]||(l[19]=k("p",{style:{"margin-top":"8px","font-size":"12px",color:"var(--text-tertiary)"}},[v(" 通过 "),k("code",null,"cc crosschain mtc-sla --json"),v(" 实时刷新(30s 自动 poll)。可纳入外部 Prometheus / Grafana。 ")],-1))]),_:1}),e(T,{type:"info","show-icon":"",message:"桥 MTC 仍 opt-in",description:"启用后 cc crosschain bridge|swap|send 加 --mtc 才会写 envelope;定期 cc crosschain mtc-batch 关 staging 为批次。完整指南见 docs.chainlesschain.com/guide/mtc-merkle-tree-certs。"})]),_:1}),e(A,{key:"governance",tab:"联邦治理"},{default:t(()=>[e(B,{layout:"inline",style:{"margin-bottom":"16px"}},{default:t(()=>[e(b,{label:"联邦 ID"},{default:t(()=>[e(F,{value:J.value,"onUpdate:value":l[3]||(l[3]=n=>J.value=n),placeholder:"e.g. fed-test",style:{width:"240px"},"allow-clear":""},null,8,["value"])]),_:1}),e(b,null,{default:t(()=>[e(u,{type:"primary",loading:ne.value,onClick:xe},{default:t(()=>[...l[20]||(l[20]=[v(" 加载 governance.log ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1}),P.value?(d(),M("div",At,[e(U,{gutter:[16,16],style:{"margin-bottom":"16px"}},{default:t(()=>[e(p,{xs:24,sm:8},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:"状态",value:P.value.state.status||"—","value-style":{fontSize:"20px"}},null,8,["value"])]),_:1})]),_:1}),e(p,{xs:24,sm:8},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:"Threshold",value:P.value.state.threshold||1,"value-style":{fontSize:"20px"}},null,8,["value"])]),_:1})]),_:1}),e(p,{xs:24,sm:8},{default:t(()=>[e(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(s,{title:"事件总数",value:(P.value.events||[]).length,"value-style":{fontSize:"20px"}},null,8,["value"])]),_:1})]),_:1})]),_:1}),e(c,{title:"成员",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[e(ue,{"data-source":P.value.state.members||[],columns:Re,pagination:!1,size:"small","row-key":"member_id"},null,8,["data-source"])]),_:1}),(P.value.state.pending_invites||[]).length?(d(),m(c,{key:0,title:"待投票邀请",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[e(Se,{"data-source":P.value.state.pending_invites,size:"small"},{renderItem:t(({item:n})=>[e(we,null,{default:t(()=>[k("span",Nt,i(n.member_id),1),e(I,{color:"blue"},{default:t(()=>[v("approve "+i(n.votes.approve.length)+"/"+i(n.required),1)]),_:2},1024),n.votes.reject.length?(d(),m(I,{key:0,color:"red"},{default:t(()=>[v("reject "+i(n.votes.reject.length),1)]),_:2},1024)):y("",!0)]),_:2},1024)]),_:1},8,["data-source"])]),_:1})):y("",!0),e(c,{title:"事件时间线",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[e(Xe,null,{default:t(()=>[(d(!0),M(Ie,null,ut(P.value.events||[],n=>(d(),m(Ye,{key:n.event_id},{default:t(()=>[k("span",Rt,i(n.issued_at),1),e(I,{color:Te(n.event_type),style:{"margin-left":"8px"}},{default:t(()=>[v(i(n.event_type),1)]),_:2},1032,["color"]),l[21]||(l[21]=v(" actor: ",-1)),k("span",Tt,i(n.actor_member_id),1)]),_:2},1024))),128))]),_:1})]),_:1}),se.value.length>0?(d(),m(c,{key:1,title:"待批 threshold proposals",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[se.value.length>1?(d(),m(T,{key:0,type:"warning","show-icon":"",message:"多 proposal 并发",description:"同一联邦同时存在多个待批 threshold proposal。下方每行可独立确认(CRDT-style 选择);不指定时 CLI 默认确认最新一条。",style:{"margin-bottom":"12px"}})):y("",!0),e(Se,{"data-source":se.value,size:"small"},{renderItem:t(({item:n})=>[e(we,null,{actions:t(()=>[e(u,{size:"small",type:"primary",loading:L.value,onClick:Q=>qe(n.event_id)},{default:t(()=>[...l[24]||(l[24]=[v(" 确认这个 ",-1)])]),_:1},8,["loading","onClick"])]),default:t(()=>[e(f,{wrap:""},{default:t(()=>[e(I,{color:"orange"},{default:t(()=>[v("target M = "+i(n.target),1)]),_:2},1024),l[22]||(l[22]=k("span",{style:{"font-size":"11px",color:"var(--text-secondary)"}},"by",-1)),k("span",Bt,i(n.proposer||"—"),1),l[23]||(l[23]=k("span",{style:{"font-size":"11px",color:"var(--text-secondary)"}},"at",-1)),k("span",qt,i(o(Le)(n.proposed_at)),1),e(I,{color:"cyan",style:{"font-family":"monospace"}},{default:t(()=>[v(i(He(n.event_id)),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1},8,["data-source"])]),_:1})):y("",!0),_.value?(d(),m(c,{key:2,title:"实时同步状态",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:t(()=>[e(U,{gutter:[12,12]},{default:t(()=>[e(p,{xs:24,sm:8},{default:t(()=>[e(s,{title:"模式",value:_.value.mode||"—","value-style":{fontSize:"16px",color:"#1677ff"}},null,8,["value"])]),_:1}),e(p,{xs:24,sm:8},{default:t(()=>[e(s,{title:"最近 tick",value:o(ae)(_.value.last_tick_at)||"—","value-style":{fontSize:"16px"}},null,8,["value"])]),_:1}),e(p,{xs:24,sm:8},{default:t(()=>[e(s,{title:"下次轮询",value:ge.value,"value-style":{fontSize:"14px",color:"var(--text-secondary)"}},null,8,["value"])]),_:1})]),_:1}),_.value.publish||_.value.pull||_.value.libp2p?(d(),m(ee,{key:0,column:{xs:1,sm:2},size:"small",style:{"margin-top":"12px"}},{default:t(()=>[_.value.publish?(d(),m(z,{key:0,label:"Publish"},{default:t(()=>[v(" last "+i(_.value.publish.last_published||0)+" / total "+i(_.value.publish.total_published||0),1)]),_:1})):y("",!0),_.value.pull?(d(),m(z,{key:1,label:"Pull"},{default:t(()=>[v(" last "+i(_.value.pull.last_appended||0)+" / total "+i(_.value.pull.total_appended||0)+" ",1),_.value.pull.last_invalid||_.value.pull.last_unknown?(d(),M("span",Ht," · invalid "+i(_.value.pull.last_invalid||0)+" / unknown "+i(_.value.pull.last_unknown||0),1)):y("",!0)]),_:1})):y("",!0),_.value.libp2p?(d(),m(z,{key:2,label:"libp2p wire",span:2},{default:t(()=>[v(" recv "+i(_.value.libp2p.wire_received||0)+" · appended "+i(_.value.libp2p.wire_appended||0)+" ",1),_.value.libp2p.topic?(d(),M("span",Zt," ("+i(_.value.libp2p.topic)+") ",1)):y("",!0)]),_:1})):y("",!0)]),_:1})):(d(),m(ie,{key:1,description:"daemon 还没写过 tick — 启动 governance-sync-serve 或 governance-sync-libp2p 后再加载"}))]),_:1})):y("",!0),e(c,{title:"操作型治理 (签名密钥仍 CLI-only)",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(T,{type:"warning","show-icon":"",message:"安全设计",description:"所有操作通过本机 CLI 子进程执行。私钥永远不进入 web 渲染进程 — 这里只是给 cc mtc federation * 命令拼参数。",style:{"margin-bottom":"12px"}}),e(Ce,{size:"small"},{default:t(()=>[e(A,{key:"invite",tab:"邀请"},{default:t(()=>[e(B,{layout:"inline",onSubmit:G(ye,["prevent"])},{default:t(()=>[e(b,{label:"actor"},{default:t(()=>[e(F,{value:q.value.actor,"onUpdate:value":l[4]||(l[4]=n=>q.value.actor=n),placeholder:"alice",style:{width:"120px"}},null,8,["value"])]),_:1}),e(b,{label:"candidate"},{default:t(()=>[e(F,{value:q.value.candidate,"onUpdate:value":l[5]||(l[5]=n=>q.value.candidate=n),placeholder:"bob",style:{width:"120px"}},null,8,["value"])]),_:1}),e(b,{label:"pubkey-id"},{default:t(()=>[e(F,{value:q.value.pubkeyId,"onUpdate:value":l[6]||(l[6]=n=>q.value.pubkeyId=n),placeholder:"sha256:...",style:{width:"200px"}},null,8,["value"])]),_:1}),e(b,null,{default:t(()=>[e(u,{type:"primary",loading:L.value,onClick:ye},{default:t(()=>[...l[25]||(l[25]=[v("invite",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),e(A,{key:"vote",tab:"投票"},{default:t(()=>[e(B,{layout:"inline",onSubmit:G(_e,["prevent"])},{default:t(()=>[e(b,{label:"actor"},{default:t(()=>[e(F,{value:H.value.actor,"onUpdate:value":l[7]||(l[7]=n=>H.value.actor=n),placeholder:"alice",style:{width:"120px"}},null,8,["value"])]),_:1}),e(b,{label:"candidate"},{default:t(()=>[e(F,{value:H.value.candidate,"onUpdate:value":l[8]||(l[8]=n=>H.value.candidate=n),placeholder:"bob",style:{width:"120px"}},null,8,["value"])]),_:1}),e(b,{label:"decision"},{default:t(()=>[e(et,{value:H.value.decision,"onUpdate:value":l[9]||(l[9]=n=>H.value.decision=n),style:{width:"110px"}},{default:t(()=>[e(ze,{value:"approve"},{default:t(()=>[...l[26]||(l[26]=[v("approve",-1)])]),_:1}),e(ze,{value:"reject"},{default:t(()=>[...l[27]||(l[27]=[v("reject",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),e(b,null,{default:t(()=>[e(u,{type:"primary",loading:L.value,onClick:_e},{default:t(()=>[...l[28]||(l[28]=[v("vote",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),e(A,{key:"threshold",tab:"改 threshold"},{default:t(()=>[e(B,{layout:"inline",onSubmit:G(he,["prevent"])},{default:t(()=>[e(b,{label:"actor"},{default:t(()=>[e(F,{value:Z.value.actor,"onUpdate:value":l[10]||(l[10]=n=>Z.value.actor=n),placeholder:"alice",style:{width:"120px"}},null,8,["value"])]),_:1}),e(b,{label:"新 M"},{default:t(()=>[e(tt,{value:Z.value.newM,"onUpdate:value":l[11]||(l[11]=n=>Z.value.newM=n),min:1,style:{width:"90px"}},null,8,["value"])]),_:1}),e(b,null,{default:t(()=>[e(u,{loading:L.value,onClick:he},{default:t(()=>[...l[29]||(l[29]=[v("propose",-1)])]),_:1},8,["loading"])]),_:1}),e(b,null,{default:t(()=>[e(u,{type:"primary",loading:L.value,onClick:Be},{default:t(()=>[...l[30]||(l[30]=[v("confirm",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),e(A,{key:"revoke",tab:"撤销"},{default:t(()=>[e(B,{layout:"inline",onSubmit:G(ke,["prevent"])},{default:t(()=>[e(b,{label:"actor"},{default:t(()=>[e(F,{value:R.value.actor,"onUpdate:value":l[12]||(l[12]=n=>R.value.actor=n),placeholder:"alice",style:{width:"120px"}},null,8,["value"])]),_:1}),e(b,{label:"target"},{default:t(()=>[e(F,{value:R.value.target,"onUpdate:value":l[13]||(l[13]=n=>R.value.target=n),placeholder:"bob",style:{width:"120px"}},null,8,["value"])]),_:1}),e(b,{label:"reason"},{default:t(()=>[e(F,{value:R.value.reason,"onUpdate:value":l[14]||(l[14]=n=>R.value.reason=n),placeholder:"inactive",style:{width:"160px"}},null,8,["value"])]),_:1}),e(b,null,{default:t(()=>[e(u,{loading:L.value,onClick:ke},{default:t(()=>[...l[31]||(l[31]=[v("propose-revoke",-1)])]),_:1},8,["loading"])]),_:1}),e(b,null,{default:t(()=>[e(u,{type:"primary",loading:L.value,onClick:Ze},{default:t(()=>[...l[32]||(l[32]=[v("confirm-revoke",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),e(A,{key:"sync",tab:"跨成员同步"},{default:t(()=>[e(B,{layout:"inline"},{default:t(()=>[e(b,{label:"drop-zone"},{default:t(()=>[e(F,{value:j.value.dropZone,"onUpdate:value":l[15]||(l[15]=n=>j.value.dropZone=n),placeholder:"/path/to/shared/dir",style:{width:"220px"}},null,8,["value"])]),_:1}),e(b,null,{default:t(()=>[e(at,{checked:j.value.verify,"onUpdate:checked":l[16]||(l[16]=n=>j.value.verify=n)},{default:t(()=>[...l[33]||(l[33]=[v("--verify",-1)])]),_:1},8,["checked"])]),_:1}),e(b,null,{default:t(()=>[e(u,{loading:L.value,onClick:Je},{default:t(()=>[...l[34]||(l[34]=[v("publish",-1)])]),_:1},8,["loading"])]),_:1}),e(b,null,{default:t(()=>[e(u,{type:"primary",loading:L.value,onClick:Ge},{default:t(()=>[...l[35]||(l[35]=[v("pull",-1)])]),_:1},8,["loading"])]),_:1}),e(b,null,{default:t(()=>[e(u,{loading:L.value,onClick:Ve},{default:t(()=>[...l[36]||(l[36]=[v("sync-once",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1})]),_:1}),K.value?(d(),m(c,{key:0,size:"small",style:{"margin-top":"12px",background:"var(--bg-hover)"}},{default:t(()=>[k("pre",Jt,i(JSON.stringify(K.value,null,2)),1)]),_:1})):y("",!0)]),_:1})])):(d(),m(ie,{key:1,description:"输入联邦 ID 加载 governance.log"})),e(T,{style:{"margin-top":"16px"},type:"info","show-icon":"",message:"跨成员同步",description:"cc mtc federation governance-publish/pull --drop-zone 文件系统通道;governance-sync-libp2p --listen 走 libp2p gossipsub 通道;governance-sync-serve 自动 daemon 化。事件签名 + dedupe by event_id 保证幂等。"})]),_:1})]),_:1},8,["activeKey"])])}}},ea=it(Gt,[["__scopeId","data-v-f251eb98"]]);export{ea as default};
@@ -0,0 +1 @@
1
+ .page-title[data-v-f251eb98]{margin:0;font-size:22px;color:var(--text-primary)}.page-sub[data-v-f251eb98]{margin:4px 0 0;font-size:13px;color:var(--text-secondary)}.mtc-tabs[data-v-f251eb98] .ant-tabs-tab{font-size:13px}.raw-pre[data-v-f251eb98]{margin:0;padding:8px 12px;background:var(--bg-hover);border-radius:4px;font-family:monospace;font-size:11px;line-height:1.5;max-height:320px;overflow:auto}
@@ -0,0 +1 @@
1
+ .mtc-audit-page[data-v-96ccb8cf]{padding:16px;max-width:1200px}.mtc-audit-page[data-v-96ccb8cf] .ant-card-head-title{font-size:13px}.mtc-audit-page pre[data-v-96ccb8cf]{background:var(--ant-color-fill-alter, #fafafa);padding:8px;border-radius:4px;margin:0}