chainlesschain 0.161.9 → 0.161.10

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 (157) hide show
  1. package/package.json +1 -1
  2. package/src/assets/web-panel/.build-hash +1 -1
  3. package/src/assets/web-panel/assets/{AIOps-Cbnj25uU.js → AIOps-CmCGAwDv.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-DY69UkxV.js → ActionButton-eeaISbP3.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-DUzoL75H.js → Analytics-CJEX10hA.js} +2 -2
  6. package/src/assets/web-panel/assets/AppLayout-BpbfrB7k.css +1 -0
  7. package/src/assets/web-panel/assets/AppLayout-CrYEU1PZ.js +3 -0
  8. package/src/assets/web-panel/assets/{Audit-CFJh6huz.js → Audit-B4BUSPse.js} +1 -1
  9. package/src/assets/web-panel/assets/{Backup-CMTir4tV.js → Backup-DIDcWoL9.js} +1 -1
  10. package/src/assets/web-panel/assets/{BaseInput-BaWXBDdp.js → BaseInput-CuJjCIcU.js} +1 -1
  11. package/src/assets/web-panel/assets/{Chat-DjToexEx.js → Chat-D-yEkssi.js} +1 -1
  12. package/src/assets/web-panel/assets/{Checkbox-DJnhKXhi.js → Checkbox-Bww7tFNj.js} +1 -1
  13. package/src/assets/web-panel/assets/{Codegen-CgsgvRJX.js → Codegen-D9k-kRxr.js} +1 -1
  14. package/src/assets/web-panel/assets/{Col-MvMGDJAB.js → Col-CWhmQejT.js} +1 -1
  15. package/src/assets/web-panel/assets/{Community-q26VGOGu.js → Community-Ck1ojsb1.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compact-DyLYzWoX.js → Compact-CuDFE-4P.js} +1 -1
  17. package/src/assets/web-panel/assets/{Compliance-D_TF9eBc.js → Compliance-BSOLLyKA.js} +1 -1
  18. package/src/assets/web-panel/assets/{Cowork-B9bg988c.js → Cowork-BiOMErjG.js} +3 -3
  19. package/src/assets/web-panel/assets/{Cron-6k9vTFfd.js → Cron-DnVm70q-.js} +1 -1
  20. package/src/assets/web-panel/assets/{Crosschain-B7fk2aHi.js → Crosschain-CqIVrbR9.js} +1 -1
  21. package/src/assets/web-panel/assets/{DID-XhCfTFm2.js → DID-DS9MUwUx.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dashboard-Bqk7vtZM.js → Dashboard-BlrXX2bG.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dropdown-CDOOZGv7.js → Dropdown-CqBG_led.js} +1 -1
  24. package/src/assets/web-panel/assets/{Federation-NajN4oRO.js → Federation-DCBYjpOX.js} +1 -1
  25. package/src/assets/web-panel/assets/{FormItemContext-DgMHYlMB.js → FormItemContext-DQUjKw5j.js} +1 -1
  26. package/src/assets/web-panel/assets/{Git-CZC5n1Zu.js → Git-pitws4KW.js} +1 -1
  27. package/src/assets/web-panel/assets/{Governance-Br131eUW.js → Governance-BNG31zqe.js} +1 -1
  28. package/src/assets/web-panel/assets/{Inference-BHlUfcT-.js → Inference-W32jdXsU.js} +1 -1
  29. package/src/assets/web-panel/assets/{KnowledgeGraph-CByROhg-.js → KnowledgeGraph-_qBNRolE.js} +1 -1
  30. package/src/assets/web-panel/assets/{Logs-D8Ghzk4B.js → Logs-BnnANM_j.js} +1 -1
  31. package/src/assets/web-panel/assets/{Marketplace-CnjHPFm7.js → Marketplace-C6OwNTw7.js} +1 -1
  32. package/src/assets/web-panel/assets/{McpTools-C_vszCBU.js → McpTools-D7cbYTwR.js} +3 -3
  33. package/src/assets/web-panel/assets/{Memory-Cl5c_8In.js → Memory-7kL8dh9_.js} +1 -1
  34. package/src/assets/web-panel/assets/{MobileBridge-K3KwwCKl.js → MobileBridge-B5ZSxpt9.js} +2 -2
  35. package/src/assets/web-panel/assets/{Mtc-NfZ8xzyu.js → Mtc-DOm5jweE.js} +4 -4
  36. package/src/assets/web-panel/assets/{MtcAudit-BkktYSXj.js → MtcAudit-D9rDFqWR.js} +1 -1
  37. package/src/assets/web-panel/assets/Multisig-CVqb7ayL.js +1 -0
  38. package/src/assets/web-panel/assets/Multisig-D-IuEDLa.css +1 -0
  39. package/src/assets/web-panel/assets/{NLProgramming-BhFRuXyi.js → NLProgramming-BETAJaqD.js} +1 -1
  40. package/src/assets/web-panel/assets/{Notes-BpcAFy8i.js → Notes-CUJ1PDmG.js} +1 -1
  41. package/src/assets/web-panel/assets/{NotificationSettings-DKNtYYeo.js → NotificationSettings-BauSiotO.js} +1 -1
  42. package/src/assets/web-panel/assets/{Organization-C61VwQEW.js → Organization-B0T5PGg4.js} +4 -4
  43. package/src/assets/web-panel/assets/{Overflow-WBloac1x.js → Overflow-CHLIn241.js} +1 -1
  44. package/src/assets/web-panel/assets/{OverrideContext-DSwW21YS.js → OverrideContext-DYxbd09I.js} +1 -1
  45. package/src/assets/web-panel/assets/{P2P-DGm7EvDg.js → P2P-yqfDCE9U.js} +2 -2
  46. package/src/assets/web-panel/assets/{Permissions-KFPtoOV6.js → Permissions-DWu7ec_n.js} +4 -4
  47. package/src/assets/web-panel/assets/{Pipeline-CFjFtzZT.js → Pipeline-BPXGoHep.js} +1 -1
  48. package/src/assets/web-panel/assets/{Privacy-T_Kewe_f.js → Privacy-B2fRmhNs.js} +1 -1
  49. package/src/assets/web-panel/assets/ProjectInit-CteEo-wF.css +1 -0
  50. package/src/assets/web-panel/assets/{Projects-xGNn4Ov9.js → ProjectInit-dPr0sgSZ.js} +2 -2
  51. package/src/assets/web-panel/assets/{ProjectSettings-BQl8qTPQ.js → ProjectSettings-dKjwdfXX.js} +1 -1
  52. package/src/assets/web-panel/assets/Projects-C34BWmmy.css +1 -0
  53. package/src/assets/web-panel/assets/Projects-fRCTrULX.js +1 -0
  54. package/src/assets/web-panel/assets/{Providers-ByuUztXe.js → Providers-OpB_FLki.js} +1 -1
  55. package/src/assets/web-panel/assets/{QuickAsk-BwSXmXvL.js → QuickAsk-B0gFMvI8.js} +1 -1
  56. package/src/assets/web-panel/assets/{Recommend-Cp433_5Z.js → Recommend-C2NwxWiR.js} +1 -1
  57. package/src/assets/web-panel/assets/{Reputation-DE_JSjyi.js → Reputation-CTBtQ8Bi.js} +1 -1
  58. package/src/assets/web-panel/assets/{Row-DI36Fic1.js → Row-CQ36tMlO.js} +1 -1
  59. package/src/assets/web-panel/assets/{RssFeed-DswpSUiI.js → RssFeed-ChOug33H.js} +3 -3
  60. package/src/assets/web-panel/assets/{Search-Crs2UKhh.js → Search-DrlVYajZ.js} +1 -1
  61. package/src/assets/web-panel/assets/{Security-W8ViXXbq.js → Security-BxWm_HMW.js} +3 -3
  62. package/src/assets/web-panel/assets/{Services-BIQdyLJM.js → Services-Bq__zdi1.js} +1 -1
  63. package/src/assets/web-panel/assets/{Skeleton-DDiOevKX.js → Skeleton-D2BPihBx.js} +1 -1
  64. package/src/assets/web-panel/assets/{Skills-v-Vw_jGa.js → Skills-Q1ZtavwR.js} +1 -1
  65. package/src/assets/web-panel/assets/{Sla-B-ULmz5m.js → Sla-CyIKjjSg.js} +1 -1
  66. package/src/assets/web-panel/assets/{SpeechSettings--8IIPHri.js → SpeechSettings-DPddWDCV.js} +1 -1
  67. package/src/assets/web-panel/assets/{SyncSettings-D0QiEwJn.js → SyncSettings-CY-Fdii1.js} +1 -1
  68. package/src/assets/web-panel/assets/{Tasks-BNSR9FlM.js → Tasks-DAWxFePY.js} +1 -1
  69. package/src/assets/web-panel/assets/{Templates-CFVkaS-d.js → Templates-CuIQmfXP.js} +1 -1
  70. package/src/assets/web-panel/assets/{Tenant-quU-tldS.js → Tenant-CYsUC_mL.js} +1 -1
  71. package/src/assets/web-panel/assets/{Tokens-DTqFjS4k.js → Tokens-DpwM8qKh.js} +1 -1
  72. package/src/assets/web-panel/assets/{Trigger-ZWVirxhN.js → Trigger-CBHUHnc-.js} +1 -1
  73. package/src/assets/web-panel/assets/{Trust-DmaYf5tg.js → Trust-DfQZgxcX.js} +1 -1
  74. package/src/assets/web-panel/assets/{UkeySign-BeYyXtZW.js → UkeySign-BcOnuHWe.js} +1 -1
  75. package/src/assets/web-panel/assets/{VideoEditing-CRdDwD9C.js → VideoEditing-Ci-c6HHb.js} +1 -1
  76. package/src/assets/web-panel/assets/{Wallet-H-38f7Pv.js → Wallet-DBuVM9t_.js} +1 -1
  77. package/src/assets/web-panel/assets/{WebAuthn-CCQVzZ0W.js → WebAuthn-Dc3XC6-l.js} +4 -4
  78. package/src/assets/web-panel/assets/{WorkflowEditor-B1RFE2oN.js → WorkflowEditor-BFBZCgWB.js} +1 -1
  79. package/src/assets/web-panel/assets/{chat-Z4UoBAeF.js → chat-tqUunmHQ.js} +1 -1
  80. package/src/assets/web-panel/assets/{collapseMotion-6-_FbiKl.js → collapseMotion-CZQhO80h.js} +1 -1
  81. package/src/assets/web-panel/assets/{colors-AecMhEAZ.js → colors-7dfqj18R.js} +1 -1
  82. package/src/assets/web-panel/assets/{compact-item-Dfhm05kA.js → compact-item-_8YefjuR.js} +1 -1
  83. package/src/assets/web-panel/assets/{createContext-C7gBVuRm.js → createContext-CPZ59Zcw.js} +1 -1
  84. package/src/assets/web-panel/assets/{echarts-BrEnqXDv.js → echarts-TwhxblyG.js} +1 -1
  85. package/src/assets/web-panel/assets/{hasIn-DQarK3iI.js → hasIn-BidaS7SK.js} +1 -1
  86. package/src/assets/web-panel/assets/{icons-B2mcO3YM.js → icons-Q99MnhG8.js} +2 -2
  87. package/src/assets/web-panel/assets/{index-DdtxWGjo.js → index-51Z_iRMU.js} +1 -1
  88. package/src/assets/web-panel/assets/{index-B1XdBIuG.js → index-B3-Fdfqy.js} +1 -1
  89. package/src/assets/web-panel/assets/{index-78eTUfD9.js → index-BJmJfXGw.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-D841tepe.js → index-BUlPL2uR.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-DWbRHjgk.js → index-B_pQvbuN.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-BxjOmfVA.js → index-BqsvxElz.js} +4 -4
  93. package/src/assets/web-panel/assets/{index-C7nHW5ZW.js → index-BtBRkcWM.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-CxDBoEkf.js → index-C0MN4j0q.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-C0kyGID6.js → index-CAUH-6ta.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-YJxjR7t9.js → index-CG0swGFV.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-BLYMiBRw.js → index-CLceS3rm.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-DX4CKtlL.js → index-CW90j-dZ.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-CS7_x1br.js → index-Ca0EAS0W.js} +1 -1
  100. package/src/assets/web-panel/assets/index-Ca5Qc31r.js +1 -0
  101. package/src/assets/web-panel/assets/{index-Dkh_4r1F.js → index-CmCovo5r.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-aHqD7CZz.js → index-CvkR7sYL.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-QgJGoGAK.js → index-Cw1VkvZr.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-C-4d1ug2.js → index-Cxwyyzpd.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-DtrMx44i.js → index-Cxy6yDHf.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-OqY41c_z.js → index-CzARuKje.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-B52lOAOU.js → index-D7yjk-E8.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-Ch9ExDNs.js → index-D8upWkW0.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-DfA9S79c.js → index-D95E7B-a.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-1d6L3YWV.js → index-DJa3dvQf.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-Dy2fLm3i.js → index-DJfKgyA-.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-CCUfW7hO.js → index-DMRsx5W4.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-L6kKxFAO.js → index-DP7namG9.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-5I_kEh5L.js → index-DTmWBWkJ.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-D3Pxfwcc.js → index-DTwrQg1G.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-D4_1yL1c.js → index-DWSEcCO0.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-nqKLHlmq.js → index-D_vErh-N.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-5P_X26-m.js → index-DccwP9Op.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-DfAZSzZc.js → index-Dev3hWia.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-CiVezMja.js → index-DfHN8qWn.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-CuPmKar9.js → index-Ds3hIeDc.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-CFR1Scu8.js → index-DsykGbFs.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-d0Iy6r2J.js → index-OZ08PLpO.js} +1 -1
  124. package/src/assets/web-panel/assets/index-QVPLcn-I.js +1 -0
  125. package/src/assets/web-panel/assets/{index-Cy_80Fj7.js → index-Xg1JWxyg.js} +1 -1
  126. package/src/assets/web-panel/assets/{initDefaultProps-CDOGbz6v.js → initDefaultProps-DBQ94EVq.js} +1 -1
  127. package/src/assets/web-panel/assets/{motion-ChIpIzUN.js → motion-BAgV2nZt.js} +1 -1
  128. package/src/assets/web-panel/assets/{move-DbH3dyN8.js → move-CPhu8BHp.js} +1 -1
  129. package/src/assets/web-panel/assets/{omit-BJ1K-IDI.js → omit-BKpLUN0q.js} +1 -1
  130. package/src/assets/web-panel/assets/{pickAttrs-B0q7EpvV.js → pickAttrs-BicOrtU0.js} +1 -1
  131. package/src/assets/web-panel/assets/{placementArrow-D7XkOUjs.js → placementArrow-D2-Ct0PH.js} +1 -1
  132. package/src/assets/web-panel/assets/{responsiveObserve-efcdE4ju.js → responsiveObserve-DGFr293p.js} +1 -1
  133. package/src/assets/web-panel/assets/{slide-BgAktMzM.js → slide-C7zAHcKr.js} +1 -1
  134. package/src/assets/web-panel/assets/{statusUtils-CV83LVbI.js → statusUtils-ByfnDIgi.js} +1 -1
  135. package/src/assets/web-panel/assets/{styleChecker-D1npYi6G.js → styleChecker-C-ldcMcB.js} +1 -1
  136. package/src/assets/web-panel/assets/useFlexGapSupport-CKCvqfWX.js +1 -0
  137. package/src/assets/web-panel/assets/{useFs-BEvSw9aX.js → useFs-yX-MUKbZ.js} +1 -1
  138. package/src/assets/web-panel/assets/{useMergedState-n0f81Aew.js → useMergedState-D3PX36GT.js} +1 -1
  139. package/src/assets/web-panel/assets/{useRefs-CTh0C9xI.js → useRefs-opfcK7Pm.js} +1 -1
  140. package/src/assets/web-panel/assets/{useState-4T1Ntfpx.js → useState-Cp5WlLTS.js} +1 -1
  141. package/src/assets/web-panel/assets/{vendor-Ci2pTZ_t.js → vendor-BVLz_z7V.js} +1 -1
  142. package/src/assets/web-panel/assets/{vnode-Duw65sZ1.js → vnode-CW-Z-Xwr.js} +1 -1
  143. package/src/assets/web-panel/assets/{zoom-CLMtA8PG.js → zoom-DR60LSPO.js} +1 -1
  144. package/src/assets/web-panel/index.html +3 -3
  145. package/src/commands/mtc.js +1 -1
  146. package/src/commands/project.js +258 -0
  147. package/src/index.js +3 -0
  148. package/src/lib/audit-mtc.js +1 -1
  149. package/src/lib/project-runtime.js +171 -0
  150. package/src/assets/web-panel/assets/AppLayout-DATUppSv.js +0 -1
  151. package/src/assets/web-panel/assets/AppLayout-qr7ghxW7.css +0 -1
  152. package/src/assets/web-panel/assets/Multisig-BLRYDn7_.css +0 -1
  153. package/src/assets/web-panel/assets/Multisig-qP51bs1T.js +0 -1
  154. package/src/assets/web-panel/assets/Projects-B5IgXt-x.css +0 -1
  155. package/src/assets/web-panel/assets/index-Cp5G30tN.js +0 -1
  156. package/src/assets/web-panel/assets/index-eoNKQdFC.js +0 -1
  157. package/src/assets/web-panel/assets/useFlexGapSupport-DTH3yXTD.js +0 -1
@@ -1 +1 @@
1
- import{_ as He,b as Ee,u as Je,d as y}from"./index-BxjOmfVA.js";import{s as Ke}from"./community-parser-CO25nZFt.js";import{R as Ve,aq as Ge,n as Z,h as ee,f as We,w as Ye}from"./icons-B2mcO3YM.js";import{o as Qe,M as m,R as z,P as u,u as o,c as a,N as n,Q as x,S as g,K as v,r as h,L as c,O as p,F as C,Y as I,$ as Xe,f as K,a as ge}from"./vendor-Ci2pTZ_t.js";function te(l){const e=Ke(l);if(!e)return null;try{return JSON.parse(e)}catch{}const r=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!r)return null;try{return JSON.parse(r[0])}catch{return null}}const ve=Object.freeze(["online","offline","busy","degraded"]),Ze=Object.freeze(["queued","dispatched","running","complete","failed"]),ke=Object.freeze(["standard","encrypted","federated"]);function w(l,e=0){return typeof l=="number"&&Number.isFinite(l)?l:e}function et(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(r=>typeof r=="string")}catch{}return[]}function tt(l,e=0){if(!l||typeof l!="object")return null;const r=l.id||"";return r?{key:r,id:r,nodeId:l.nodeId??l.node_id??"",endpoint:l.endpoint||"",capabilities:et(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 nt(l){const e=te(l);return Array.isArray(e)?e.map(tt).filter(Boolean):[]}function at(l,e=0){if(!l||typeof l!="object")return null;const r=l.id||"";return r?{key:r,id:r,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 ot(l){const e=te(l);return Array.isArray(e)?e.map(at).filter(Boolean):[]}const st={nodes:{total:0,online:0,offline:0,busy:0},tasks:{total:0,queued:0,completed:0,failed:0,avgDurationMs:0}};function it(l){const e=JSON.parse(JSON.stringify(st)),r=te(l);return!r||typeof r!="object"||Array.isArray(r)||(r.nodes&&typeof r.nodes=="object"&&(e.nodes.total=w(r.nodes.total,0),e.nodes.online=w(r.nodes.online,0),e.nodes.offline=w(r.nodes.offline,0),e.nodes.busy=w(r.nodes.busy,0)),r.tasks&&typeof r.tasks=="object"&&(e.tasks.total=w(r.tasks.total,0),e.tasks.queued=w(r.tasks.queued,0),e.tasks.completed=w(r.tasks.completed,0),e.tasks.failed=w(r.tasks.failed,0),e.tasks.avgDurationMs=w(r.tasks.avgDurationMs??r.tasks.avg_duration_ms,0))),e}function _e(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 lt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},rt={class:"page-title"},ut={class:"page-sub"},ct={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},dt={class:"filter-bar"},ft={style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},pt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},mt={key:1,style:{color:"var(--text-muted)"}},yt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace"}},gt={key:1,style:{color:"var(--text-muted)"}},vt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},kt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},_t={class:"filter-bar"},bt={style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},xt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},ht={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Ct={key:1,style:{color:"var(--text-muted)"}},St={key:0,style:{"font-family":"monospace",color:"var(--text-secondary)","font-size":"12px"}},wt={key:1,style:{color:"var(--text-muted)"}},zt={key:6,style:{color:"var(--text-secondary)","font-size":"11px"}},Mt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},At={__name:"Inference",setup(l){const{t:e}=Ee(),r=Je(),$=h(!1),V=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),k=ge({nodeId:"",endpoint:"",capabilities:"",gpuMemory:null}),_=ge({model:"",input:"",priority:5,mode:"standard"}),be=K(()=>[{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=K(()=>[{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=K(()=>j.value?R.value.filter(s=>s.status===j.value):R.value),Ce=K(()=>{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([r.execute("inference nodes --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("inference tasks --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("inference stats --json",8e3).catch(()=>({output:""}))]);R.value=nt(s.output),ne.value=ot(t.output),b.value=it(f.output)}catch(s){y.error(e("inference.messages.loadFailed",{err:s?.message||s}))}finally{$.value=!1}}async function Ie(){const s=k.nodeId.trim();if(!s){y.warning(e("inference.messages.nodeIdRequired"));return}V.value=!0;try{const t=[`inference register "${s.replace(/"/g,'\\"')}"`];if(k.endpoint.trim()&&t.push(`--endpoint "${k.endpoint.trim().replace(/"/g,'\\"')}"`),k.capabilities.trim()){const O=k.capabilities.split(/[,\s]+/).filter(Boolean).join(",");O&&t.push(`--capabilities "${O}"`)}k.gpuMemory!=null&&t.push(`--gpu ${k.gpuMemory}`),t.push("--json");const{output:f}=await r.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{V.value=!1}}async function $e(){const s=_.model.trim();if(!s){y.warning(e("inference.messages.modelRequired"));return}G.value=!0;try{const t=[`inference submit "${s.replace(/"/g,'\\"')}"`];_.input.trim()&&t.push(`--input "${_.input.trim().replace(/"/g,'\\"')}"`),_.priority!=null&&t.push(`--priority ${_.priority}`),t.push(`--mode ${_.mode}`),t.push("--json");const{output:f}=await r.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 r.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 r.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 r.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 r.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 r.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(){k.nodeId="",k.endpoint="",k.capabilities="",k.gpuMemory=null}function ie(){_.model="",_.input="",_.priority=5,_.mode="standard"}return Qe(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"),J=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 c(),m("div",null,[z("div",lt,[z("div",null,[z("h2",rt,u(o(e)("inference.title")),1),z("p",ut,u(o(e)("inference.subtitle")),1)]),a(ue,null,{default:n(()=>[a(f,{loading:$.value,onClick:M},{icon:n(()=>[a(o(Ve))]),default:n(()=>[p(" "+u(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(" "+u(o(e)("inference.actions.register")),1)]),_:1}),a(O,{key:"submit"},{default:n(()=>[a(o(ee)),p(" "+u(o(e)("inference.actions.submit")),1)]),_:1})]),_:1})]),default:n(()=>[a(f,{type:"primary"},{icon:n(()=>[a(o(Ge))]),default:n(()=>[p(" "+u(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(We))]),_: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(Ye))]),_: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?(c(),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(u(o(e)("inference.breakdown.online",{count:b.value.nodes.online})),1)]),_:1}),a(A,{color:"orange"},{default:n(()=>[p(u(o(e)("inference.breakdown.busy",{count:b.value.nodes.busy})),1)]),_:1}),a(A,{color:"default"},{default:n(()=>[p(u(o(e)("inference.breakdown.offline",{count:b.value.nodes.offline})),1)]),_:1}),z("span",ct,u(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",dt,[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(u(o(e)("inference.filter.all")),1)]),_:1}),(c(!0),m(C,null,I(o(ve),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(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"?(c(),m(C,{key:0},[z("span",ft,u(d.nodeId),1),d.endpoint?(c(),m("div",pt,u(oe(d.endpoint,50)),1)):g("",!0)],64)):g("",!0),i.key==="capabilities"?(c(),m(C,{key:1},[(c(!0),m(C,null,I(d.capabilities.slice(0,4),S=>(c(),x(A,{key:S,color:"blue",style:{"font-size":"10px",margin:"1px"}},{default:n(()=>[p(u(S),1)]),_:2},1024))),128)),d.capabilities.length>4?(c(),x(A,{key:0,color:"default",style:{"font-size":"10px"}},{default:n(()=>[p("+"+u(d.capabilities.length-4),1)]),_:2},1024)):g("",!0),d.capabilities.length?g("",!0):(c(),m("span",mt,"—"))],64)):g("",!0),i.key==="gpu"?(c(),m(C,{key:2},[d.gpuMemoryMb>0?(c(),m("span",yt,u(Ne(d.gpuMemoryMb)),1)):(c(),m("span",gt,"—"))],64)):g("",!0),i.key==="status"?(c(),x(A,{key:3,color:Se(d.status)},{default:n(()=>[p(u(H(d.status)),1)]),_:2},1032,["color"])):g("",!0),i.key==="taskCount"?(c(),x(A,{key:4,color:"purple",style:{"font-size":"11px"}},{default:n(()=>[p(u(d.taskCount),1)]),_:2},1024)):g("",!0),i.key==="lastHeartbeat"?(c(),m("span",vt,u(o(_e)(d.lastHeartbeat)),1)):g("",!0),i.key==="action"?(c(),m(C,{key:6},[a(f,{size:"small",type:"link",loading:W.value===d.id,onClick:S=>je(d)},{default:n(()=>[p(u(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(()=>[(c(!0),m(C,null,I(o(ve),S=>(c(),x(O,{key:S,disabled:S===d.status},{default:n(()=>[p(u(H(S)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:n(()=>[a(f,{size:"small",type:"link"},{default:n(()=>[p(u(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(u(o(e)("inference.rowActions.unregister")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):g("",!0)]),emptyText:n(()=>[z("div",kt,[a(o(Z),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+u(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(u(o(e)("inference.filter.allStatuses")),1)]),_:1}),(c(!0),m(C,null,I(o(Ze),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(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(u(o(e)("inference.filter.allModes")),1)]),_:1}),(c(!0),m(C,null,I(o(ke),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(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"?(c(),m(C,{key:0},[z("span",bt,u(d.model),1),d.input?(c(),m("div",xt,u(oe(d.input,60)),1)):g("",!0)],64)):g("",!0),i.key==="privacyMode"?(c(),x(A,{key:1,color:ze(d.privacyMode)},{default:n(()=>[p(u(X(d.privacyMode)),1)]),_:2},1032,["color"])):g("",!0),i.key==="priority"?(c(),m("span",{key:2,style:Xe({color:Me(d.priority),fontWeight:500})},u(d.priority),5)):g("",!0),i.key==="assignedNode"?(c(),m(C,{key:3},[d.assignedNode?(c(),m("span",ht,u(Ae(d.assignedNode)),1)):(c(),m("span",Ct,"—"))],64)):g("",!0),i.key==="status"?(c(),x(A,{key:4,color:we(d.status)},{default:n(()=>[p(u(ae(d.status)),1)]),_:2},1032,["color"])):g("",!0),i.key==="duration"?(c(),m(C,{key:5},[d.durationMs!=null?(c(),m("span",St,u(d.durationMs)+" ms ",1)):(c(),m("span",wt,"—"))],64)):g("",!0),i.key==="createdAt"?(c(),m("span",zt,u(o(_e)(d.createdAt)),1)):g("",!0),i.key==="action"?(c(),m(C,{key:7},[Fe(d)?(c(),x(f,{key:0,size:"small",type:"link",loading:Y.value===d.id,onClick:S=>qe(d)},{default:n(()=>[p(u(o(e)("inference.rowActions.complete")),1)]),_:1},8,["loading","onClick"])):g("",!0),Oe(d)?(c(),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(u(o(e)("inference.rowActions.fail")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):g("",!0)],64)):g("",!0)]),emptyText:n(()=>[z("div",Mt,[a(o(ee),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+u(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":V.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(J,{value:k.nodeId,"onUpdate:value":t[4]||(t[4]=i=>k.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(J,{value:k.endpoint,"onUpdate:value":t[5]||(t[5]=i=>k.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(J,{value:k.capabilities,"onUpdate:value":t[6]||(t[6]=i=>k.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:k.gpuMemory,"onUpdate:value":t[7]||(t[7]=i=>k.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(J,{value:_.model,"onUpdate:value":t[9]||(t[9]=i=>_.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:_.input,"onUpdate:value":t[10]||(t[10]=i=>_.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:_.priority,"onUpdate:value":t[11]||(t[11]=i=>_.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:_.mode,"onUpdate:value":t[12]||(t[12]=i=>_.mode=i)},{default:n(()=>[(c(!0),m(C,null,I(o(ke),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(X(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},It=He(At,[["__scopeId","data-v-849fc966"]]);export{It as default};
1
+ import{_ as He,b as Ee,u as Je,d as y}from"./index-BqsvxElz.js";import{s as Ke}from"./community-parser-CO25nZFt.js";import{R as Ve,aq as Ge,o as Z,i as ee,f as We,x as Ye}from"./icons-Q99MnhG8.js";import{o as Qe,M as m,R as z,P as u,u as o,c as a,N as n,Q as x,S as g,K as v,r as h,L as c,O as p,F as C,Y as I,_ as Xe,f as K,a as ge}from"./vendor-BVLz_z7V.js";function te(l){const e=Ke(l);if(!e)return null;try{return JSON.parse(e)}catch{}const r=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!r)return null;try{return JSON.parse(r[0])}catch{return null}}const ve=Object.freeze(["online","offline","busy","degraded"]),Ze=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 et(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(r=>typeof r=="string")}catch{}return[]}function tt(l,e=0){if(!l||typeof l!="object")return null;const r=l.id||"";return r?{key:r,id:r,nodeId:l.nodeId??l.node_id??"",endpoint:l.endpoint||"",capabilities:et(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 nt(l){const e=te(l);return Array.isArray(e)?e.map(tt).filter(Boolean):[]}function at(l,e=0){if(!l||typeof l!="object")return null;const r=l.id||"";return r?{key:r,id:r,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 ot(l){const e=te(l);return Array.isArray(e)?e.map(at).filter(Boolean):[]}const st={nodes:{total:0,online:0,offline:0,busy:0},tasks:{total:0,queued:0,completed:0,failed:0,avgDurationMs:0}};function it(l){const e=JSON.parse(JSON.stringify(st)),r=te(l);return!r||typeof r!="object"||Array.isArray(r)||(r.nodes&&typeof r.nodes=="object"&&(e.nodes.total=w(r.nodes.total,0),e.nodes.online=w(r.nodes.online,0),e.nodes.offline=w(r.nodes.offline,0),e.nodes.busy=w(r.nodes.busy,0)),r.tasks&&typeof r.tasks=="object"&&(e.tasks.total=w(r.tasks.total,0),e.tasks.queued=w(r.tasks.queued,0),e.tasks.completed=w(r.tasks.completed,0),e.tasks.failed=w(r.tasks.failed,0),e.tasks.avgDurationMs=w(r.tasks.avgDurationMs??r.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 lt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},rt={class:"page-title"},ut={class:"page-sub"},ct={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},dt={class:"filter-bar"},ft={style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},pt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},mt={key:1,style:{color:"var(--text-muted)"}},yt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace"}},gt={key:1,style:{color:"var(--text-muted)"}},vt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},_t={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},kt={class:"filter-bar"},bt={style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},xt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},ht={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Ct={key:1,style:{color:"var(--text-muted)"}},St={key:0,style:{"font-family":"monospace",color:"var(--text-secondary)","font-size":"12px"}},wt={key:1,style:{color:"var(--text-muted)"}},zt={key:6,style:{color:"var(--text-secondary)","font-size":"11px"}},Mt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},At={__name:"Inference",setup(l){const{t:e}=Ee(),r=Je(),$=h(!1),V=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=K(()=>[{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=K(()=>[{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=K(()=>j.value?R.value.filter(s=>s.status===j.value):R.value),Ce=K(()=>{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([r.execute("inference nodes --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("inference tasks --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("inference stats --json",8e3).catch(()=>({output:""}))]);R.value=nt(s.output),ne.value=ot(t.output),b.value=it(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}V.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 r.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{V.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 r.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 r.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 r.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 r.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 r.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 r.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 Qe(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"),J=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 c(),m("div",null,[z("div",lt,[z("div",null,[z("h2",rt,u(o(e)("inference.title")),1),z("p",ut,u(o(e)("inference.subtitle")),1)]),a(ue,null,{default:n(()=>[a(f,{loading:$.value,onClick:M},{icon:n(()=>[a(o(Ve))]),default:n(()=>[p(" "+u(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(" "+u(o(e)("inference.actions.register")),1)]),_:1}),a(O,{key:"submit"},{default:n(()=>[a(o(ee)),p(" "+u(o(e)("inference.actions.submit")),1)]),_:1})]),_:1})]),default:n(()=>[a(f,{type:"primary"},{icon:n(()=>[a(o(Ge))]),default:n(()=>[p(" "+u(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(We))]),_: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(Ye))]),_: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?(c(),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(u(o(e)("inference.breakdown.online",{count:b.value.nodes.online})),1)]),_:1}),a(A,{color:"orange"},{default:n(()=>[p(u(o(e)("inference.breakdown.busy",{count:b.value.nodes.busy})),1)]),_:1}),a(A,{color:"default"},{default:n(()=>[p(u(o(e)("inference.breakdown.offline",{count:b.value.nodes.offline})),1)]),_:1}),z("span",ct,u(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",dt,[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(u(o(e)("inference.filter.all")),1)]),_:1}),(c(!0),m(C,null,I(o(ve),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(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"?(c(),m(C,{key:0},[z("span",ft,u(d.nodeId),1),d.endpoint?(c(),m("div",pt,u(oe(d.endpoint,50)),1)):g("",!0)],64)):g("",!0),i.key==="capabilities"?(c(),m(C,{key:1},[(c(!0),m(C,null,I(d.capabilities.slice(0,4),S=>(c(),x(A,{key:S,color:"blue",style:{"font-size":"10px",margin:"1px"}},{default:n(()=>[p(u(S),1)]),_:2},1024))),128)),d.capabilities.length>4?(c(),x(A,{key:0,color:"default",style:{"font-size":"10px"}},{default:n(()=>[p("+"+u(d.capabilities.length-4),1)]),_:2},1024)):g("",!0),d.capabilities.length?g("",!0):(c(),m("span",mt,"—"))],64)):g("",!0),i.key==="gpu"?(c(),m(C,{key:2},[d.gpuMemoryMb>0?(c(),m("span",yt,u(Ne(d.gpuMemoryMb)),1)):(c(),m("span",gt,"—"))],64)):g("",!0),i.key==="status"?(c(),x(A,{key:3,color:Se(d.status)},{default:n(()=>[p(u(H(d.status)),1)]),_:2},1032,["color"])):g("",!0),i.key==="taskCount"?(c(),x(A,{key:4,color:"purple",style:{"font-size":"11px"}},{default:n(()=>[p(u(d.taskCount),1)]),_:2},1024)):g("",!0),i.key==="lastHeartbeat"?(c(),m("span",vt,u(o(ke)(d.lastHeartbeat)),1)):g("",!0),i.key==="action"?(c(),m(C,{key:6},[a(f,{size:"small",type:"link",loading:W.value===d.id,onClick:S=>je(d)},{default:n(()=>[p(u(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(()=>[(c(!0),m(C,null,I(o(ve),S=>(c(),x(O,{key:S,disabled:S===d.status},{default:n(()=>[p(u(H(S)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:n(()=>[a(f,{size:"small",type:"link"},{default:n(()=>[p(u(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(u(o(e)("inference.rowActions.unregister")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):g("",!0)]),emptyText:n(()=>[z("div",_t,[a(o(Z),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+u(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",kt,[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(u(o(e)("inference.filter.allStatuses")),1)]),_:1}),(c(!0),m(C,null,I(o(Ze),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(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(u(o(e)("inference.filter.allModes")),1)]),_:1}),(c(!0),m(C,null,I(o(_e),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(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"?(c(),m(C,{key:0},[z("span",bt,u(d.model),1),d.input?(c(),m("div",xt,u(oe(d.input,60)),1)):g("",!0)],64)):g("",!0),i.key==="privacyMode"?(c(),x(A,{key:1,color:ze(d.privacyMode)},{default:n(()=>[p(u(X(d.privacyMode)),1)]),_:2},1032,["color"])):g("",!0),i.key==="priority"?(c(),m("span",{key:2,style:Xe({color:Me(d.priority),fontWeight:500})},u(d.priority),5)):g("",!0),i.key==="assignedNode"?(c(),m(C,{key:3},[d.assignedNode?(c(),m("span",ht,u(Ae(d.assignedNode)),1)):(c(),m("span",Ct,"—"))],64)):g("",!0),i.key==="status"?(c(),x(A,{key:4,color:we(d.status)},{default:n(()=>[p(u(ae(d.status)),1)]),_:2},1032,["color"])):g("",!0),i.key==="duration"?(c(),m(C,{key:5},[d.durationMs!=null?(c(),m("span",St,u(d.durationMs)+" ms ",1)):(c(),m("span",wt,"—"))],64)):g("",!0),i.key==="createdAt"?(c(),m("span",zt,u(o(ke)(d.createdAt)),1)):g("",!0),i.key==="action"?(c(),m(C,{key:7},[Fe(d)?(c(),x(f,{key:0,size:"small",type:"link",loading:Y.value===d.id,onClick:S=>qe(d)},{default:n(()=>[p(u(o(e)("inference.rowActions.complete")),1)]),_:1},8,["loading","onClick"])):g("",!0),Oe(d)?(c(),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(u(o(e)("inference.rowActions.fail")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):g("",!0)],64)):g("",!0)]),emptyText:n(()=>[z("div",Mt,[a(o(ee),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+u(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":V.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(J,{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(J,{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(J,{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(J,{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(()=>[(c(!0),m(C,null,I(o(_e),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(X(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},It=He(At,[["__scopeId","data-v-849fc966"]]);export{It as default};
@@ -1 +1 @@
1
- import{_ as Be,u as Pe,b as Me,d as h}from"./index-BxjOmfVA.js";import{u as Ne,i as qe,a as Ke,b as Ve,c as Je,d as Ye,E as Qe}from"./echarts-BrEnqXDv.js";import{R as We,aq as Ze,az as le,_ as ke,u as He,a2 as Xe}from"./icons-B2mcO3YM.js";import{o as et,M as m,R as $,P as s,c as t,N as a,Q as R,S as G,K as p,r as v,L as d,O as c,u as S,F as A,Y as L,f as U,a as re}from"./vendor-Ci2pTZ_t.js";function N(l){if(!l)return null;const i=l.trim();try{return JSON.parse(i)}catch{const n=i.match(/(\[[\s\S]*\]|\{[\s\S]*\})/);if(!n)return null;try{return JSON.parse(n[1])}catch{return null}}}function ie(l,i=0){if(!l||typeof l!="object")return null;const n=l.id||l.entity_id||"";if(!n)return null;const k=Array.isArray(l.tags)?l.tags:typeof l.tags=="string"&&l.tags.length>0?l.tags.split(",").map(_=>_.trim()).filter(Boolean):[];return{key:n,id:n,name:l.name||"",type:l.type||"",tags:k,properties:l.properties&&typeof l.properties=="object"?l.properties:null,createdAt:l.created_at||l.createdAt||"",updatedAt:l.updated_at||l.updatedAt||"",_idx:i}}function _e(l,i=0){if(!l||typeof l!="object")return null;const n=l.id||l.relation_id||"";if(!n)return null;const k=l.sourceId||l.source_id||"",_=l.targetId||l.target_id||"";if(!k||!_)return null;const T=typeof l.weight=="number"?l.weight:typeof l.weight=="string"?parseFloat(l.weight):1;return{key:n,id:n,sourceId:k,targetId:_,relationType:l.relationType||l.relation_type||"",weight:Number.isFinite(T)?T:1,properties:l.properties&&typeof l.properties=="object"?l.properties:null,createdAt:l.created_at||l.createdAt||"",_idx:i}}function tt(l){const i=N(l);return Array.isArray(i)?i.map(ie).filter(Boolean):i&&Array.isArray(i.entities)?i.entities.map(ie).filter(Boolean):[]}function at(l){const i=N(l);return Array.isArray(i)?i.map(_e).filter(Boolean):i&&Array.isArray(i.relations)?i.relations.map(_e).filter(Boolean):[]}function ot(l){const i=N(l);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(l){const i=N(l);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(l){const i=N(l);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(l,i){const n=new Map,k=[];for(const f of l)n.has(f.type)||(n.set(f.type,k.length),k.push({name:f.type||"unknown"}));const _=l.map(f=>({id:f.id,name:f.name||f.id.slice(0,8),category:n.get(f.type)??0,value:1,symbolSize:24})),T=new Set(l.map(f=>f.id)),O=[];for(const f of i)!T.has(f.sourceId)||!T.has(f.targetId)||O.push({source:f.sourceId,target:f.targetId,value:f.relationType,lineStyle:{width:Math.max(1,Math.min(6,f.weight*2))}});return{nodes:_,links:O,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)"}},St={style:{"margin-left":"12px",color:"var(--text-primary)"}},Tt={style:{"margin-left":"8px",color:"#888","font-family":"monospace","font-size":"11px"}},Rt={__name:"KnowledgeGraph",setup(l){Ne([qe,Ke,Ve,Je,Ye]);const i=Pe(),{t:n}=Me(),k=v(!1),_=v(!1),T=v(!1),O=v(!1),f=v(!1),Z=v(""),q=v(!1),se=v("graph"),x=v([]),B=v([]),H=v([]),E=v({entityCount:0,relationCount:0,avgDegree:0,density:0,typeDistribution:{},relationTypeDistribution:{}}),K=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 r of x.value)e.set(r.id,r.name||r.id.slice(0,8));return e});function pe(e){return $e.value.get(e)||e.slice(0,12)}function ce(e,r){return String(r?.children?.[0]?.children||"").toLowerCase().includes(String(e).toLowerCase())}const ye=U(()=>{const e=E.value.typeDistribution||{},r=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/r*100)})).sort((u,g)=>g.count-u.count)}),ge=U(()=>{const e=E.value.relationTypeDistribution||{},r=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/r*100)})).sort((u,g)=>g.count-u.count)}),xe=U(()=>{const{nodes:e,links:r,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:r,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(),Se(),Te()])}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 Se(){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 Te(){try{const{output:e}=await i.execute("kg stats --json",1e4);E.value=ot(e)}catch(e){h.error(n("knowledgeGraph.msg.loadStatsFailed")+": "+e.message)}}async function Re(){if(!(H.value.length>0)){T.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{T.value=!1}}}async function Ee(){if(!b.name.trim()||!b.type){h.warning(n("knowledgeGraph.msg.addEntityEmpty"));return}O.value=!0;try{let r=`kg add "${b.name.trim().replace(/"/g,'\\"')}" ${b.type} --json`;b.tags.trim()&&(r+=` --tags "${b.tags.trim().replace(/"/g,'\\"')}"`);const{output:u,exitCode:g}=await i.execute(r,15e3);g!==0||/error|失败/i.test(u)?h.error(n("knowledgeGraph.msg.addEntityFailed")+": "+u.slice(0,120)):(h.success(n("knowledgeGraph.msg.addEntitySuccess")),K.value=!1,b.name="",b.type="",b.tags="",await M())}catch(e){h.error(n("knowledgeGraph.msg.addEntityFailed")+": "+e.message)}finally{O.value=!1}}async function Ie(){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,'\\"'),r=`kg add-relation ${y.sourceId} ${y.targetId} "${e}" --weight ${y.weight} --json`,{output:u,exitCode:g}=await i.execute(r,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:r,exitCode:u}=await i.execute(`kg remove ${e.id}`,15e3);u!==0||/error|失败/i.test(r)?h.error(n("knowledgeGraph.msg.deleteFailed")+": "+r.slice(0,120)):(h.success(n("knowledgeGraph.msg.deleteSuccess")),await M())}catch(r){h.error(n("knowledgeGraph.msg.deleteFailed")+": "+r.message)}finally{Z.value=""}}function Ae(e){de.value=e.id,ue.value=e.name,P.value=[],X.value=!0}async function Oe(){q.value=!0;try{const e=`kg reason ${de.value} --max-depth ${z.maxDepth} --direction ${z.direction} --json`,{output:r}=await i.execute(e,15e3);P.value=nt(r),P.value.length===0&&h.info(n("knowledgeGraph.msg.reasonEmpty"))}catch(e){h.error(n("knowledgeGraph.msg.reasonFailed")+": "+e.message)}finally{q.value=!1}}return et(()=>{M(),Re()}),(e,r)=>{const u=p("a-button"),g=p("a-space"),J=p("a-statistic"),I=p("a-card"),j=p("a-col"),me=p("a-row"),ze=p("a-alert"),te=p("a-empty"),Y=p("a-tab-pane"),D=p("a-tag"),je=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(S(We))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.refresh")),1)]),_:1},8,["loading"]),t(u,{type:"primary",onClick:r[0]||(r[0]=o=>K.value=!0)},{icon:a(()=>[t(S(Ze))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.addEntity")),1)]),_:1}),t(u,{onClick:r[1]||(r[1]=o=>V.value=!0),disabled:x.value.length<2},{icon:a(()=>[t(S(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(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.entityCount"),value:E.value.entityCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(S(ke))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.relationCount"),value:E.value.relationCount,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(S(le))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.avgDegree"),value:E.value.avgDegree,precision:2,"value-style":{color:"#faad14",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),t(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.density"),value:E.value.density,precision:4,"value-style":{color:"#722ed1",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),k.value?G("",!0):(d(),R(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":r[2]||(r[2]=o=>se.value=o),type:"card"},{default:a(()=>[t(Y,{key:"graph"},{tab:a(()=>[t(S(He)),c(" "+s(e.$t("knowledgeGraph.tabs.graph")),1)]),default:a(()=>[t(I,{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(S(Qe),{option:xe.value,autoresize:""},null,8,["option"])]))]),_:1})]),_:1}),t(Y,{key:"entities"},{tab:a(()=>[t(S(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(),R(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(),R(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(),R(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(je,{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(Y,{key:"relations"},{tab:a(()=>[t(S(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(),R(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(Y,{key:"distribution"},{tab:a(()=>[t(S(Xe)),c(" "+s(e.$t("knowledgeGraph.tabs.distribution")),1)]),default:a(()=>[t(me,{gutter:[24,24]},{default:a(()=>[t(j,{xs:24,md:12},{default:a(()=>[t(I,{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(j,{xs:24,md:12},{default:a(()=>[t(I,{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:K.value,"onUpdate:open":r[6]||(r[6]=o=>K.value=o),title:e.$t("knowledgeGraph.addEntity_modal.title"),"confirm-loading":O.value,onOk:Ee,"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":r[3]||(r[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":r[4]||(r[4]=o=>b.type=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.typePlaceholder"),loading:T.value},{default:a(()=>[(d(!0),m(A,null,L(H.value,o=>(d(),R(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":r[5]||(r[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":r[11]||(r[11]=o=>V.value=o),title:e.$t("knowledgeGraph.addRelation_modal.title"),"confirm-loading":f.value,onOk:Ie,"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":r[7]||(r[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(),R(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":r[8]||(r[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(),R(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":r[9]||(r[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":r[10]||(r[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":r[14]||(r[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":r[12]||(r[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":r[13]||(r[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:q.value,onClick:Oe},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.run")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),P.value.length===0&&!q.value?(d(),m("div",Ct,s(e.$t("knowledgeGraph.reason_modal.hint")),1)):(d(),R(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",St,s(o.entity.name),1),$("span",Tt,s(o.entity.id.slice(0,12)),1)]),_:2},1024)]),_:1},8,["data-source"]))]),_:1},8,["open","title"])])}}},Ot=Be(Rt,[["__scopeId","data-v-d675e73f"]]);export{Ot as default};
1
+ import{_ as Be,u as Pe,b as Me,d as h}from"./index-BqsvxElz.js";import{u as Ne,i as qe,a as Ke,b as Ve,c as Je,d as Ye,E as Qe}from"./echarts-TwhxblyG.js";import{R as We,aq as Ze,az as le,_ as ke,v as He,a2 as Xe}from"./icons-Q99MnhG8.js";import{o as et,M as m,R as $,P as s,c as t,N as a,Q as R,S as G,K as p,r as v,L as d,O as c,u as S,F as A,Y as L,f as U,a as re}from"./vendor-BVLz_z7V.js";function N(l){if(!l)return null;const i=l.trim();try{return JSON.parse(i)}catch{const n=i.match(/(\[[\s\S]*\]|\{[\s\S]*\})/);if(!n)return null;try{return JSON.parse(n[1])}catch{return null}}}function ie(l,i=0){if(!l||typeof l!="object")return null;const n=l.id||l.entity_id||"";if(!n)return null;const k=Array.isArray(l.tags)?l.tags:typeof l.tags=="string"&&l.tags.length>0?l.tags.split(",").map(_=>_.trim()).filter(Boolean):[];return{key:n,id:n,name:l.name||"",type:l.type||"",tags:k,properties:l.properties&&typeof l.properties=="object"?l.properties:null,createdAt:l.created_at||l.createdAt||"",updatedAt:l.updated_at||l.updatedAt||"",_idx:i}}function _e(l,i=0){if(!l||typeof l!="object")return null;const n=l.id||l.relation_id||"";if(!n)return null;const k=l.sourceId||l.source_id||"",_=l.targetId||l.target_id||"";if(!k||!_)return null;const T=typeof l.weight=="number"?l.weight:typeof l.weight=="string"?parseFloat(l.weight):1;return{key:n,id:n,sourceId:k,targetId:_,relationType:l.relationType||l.relation_type||"",weight:Number.isFinite(T)?T:1,properties:l.properties&&typeof l.properties=="object"?l.properties:null,createdAt:l.created_at||l.createdAt||"",_idx:i}}function tt(l){const i=N(l);return Array.isArray(i)?i.map(ie).filter(Boolean):i&&Array.isArray(i.entities)?i.entities.map(ie).filter(Boolean):[]}function at(l){const i=N(l);return Array.isArray(i)?i.map(_e).filter(Boolean):i&&Array.isArray(i.relations)?i.relations.map(_e).filter(Boolean):[]}function ot(l){const i=N(l);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(l){const i=N(l);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(l){const i=N(l);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(l,i){const n=new Map,k=[];for(const f of l)n.has(f.type)||(n.set(f.type,k.length),k.push({name:f.type||"unknown"}));const _=l.map(f=>({id:f.id,name:f.name||f.id.slice(0,8),category:n.get(f.type)??0,value:1,symbolSize:24})),T=new Set(l.map(f=>f.id)),O=[];for(const f of i)!T.has(f.sourceId)||!T.has(f.targetId)||O.push({source:f.sourceId,target:f.targetId,value:f.relationType,lineStyle:{width:Math.max(1,Math.min(6,f.weight*2))}});return{nodes:_,links:O,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)"}},St={style:{"margin-left":"12px",color:"var(--text-primary)"}},Tt={style:{"margin-left":"8px",color:"#888","font-family":"monospace","font-size":"11px"}},Rt={__name:"KnowledgeGraph",setup(l){Ne([qe,Ke,Ve,Je,Ye]);const i=Pe(),{t:n}=Me(),k=v(!1),_=v(!1),T=v(!1),O=v(!1),f=v(!1),Z=v(""),q=v(!1),se=v("graph"),x=v([]),B=v([]),H=v([]),E=v({entityCount:0,relationCount:0,avgDegree:0,density:0,typeDistribution:{},relationTypeDistribution:{}}),K=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 r of x.value)e.set(r.id,r.name||r.id.slice(0,8));return e});function pe(e){return $e.value.get(e)||e.slice(0,12)}function ce(e,r){return String(r?.children?.[0]?.children||"").toLowerCase().includes(String(e).toLowerCase())}const ye=U(()=>{const e=E.value.typeDistribution||{},r=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/r*100)})).sort((u,g)=>g.count-u.count)}),ge=U(()=>{const e=E.value.relationTypeDistribution||{},r=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/r*100)})).sort((u,g)=>g.count-u.count)}),xe=U(()=>{const{nodes:e,links:r,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:r,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(),Se(),Te()])}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 Se(){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 Te(){try{const{output:e}=await i.execute("kg stats --json",1e4);E.value=ot(e)}catch(e){h.error(n("knowledgeGraph.msg.loadStatsFailed")+": "+e.message)}}async function Re(){if(!(H.value.length>0)){T.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{T.value=!1}}}async function Ee(){if(!b.name.trim()||!b.type){h.warning(n("knowledgeGraph.msg.addEntityEmpty"));return}O.value=!0;try{let r=`kg add "${b.name.trim().replace(/"/g,'\\"')}" ${b.type} --json`;b.tags.trim()&&(r+=` --tags "${b.tags.trim().replace(/"/g,'\\"')}"`);const{output:u,exitCode:g}=await i.execute(r,15e3);g!==0||/error|失败/i.test(u)?h.error(n("knowledgeGraph.msg.addEntityFailed")+": "+u.slice(0,120)):(h.success(n("knowledgeGraph.msg.addEntitySuccess")),K.value=!1,b.name="",b.type="",b.tags="",await M())}catch(e){h.error(n("knowledgeGraph.msg.addEntityFailed")+": "+e.message)}finally{O.value=!1}}async function Ie(){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,'\\"'),r=`kg add-relation ${y.sourceId} ${y.targetId} "${e}" --weight ${y.weight} --json`,{output:u,exitCode:g}=await i.execute(r,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:r,exitCode:u}=await i.execute(`kg remove ${e.id}`,15e3);u!==0||/error|失败/i.test(r)?h.error(n("knowledgeGraph.msg.deleteFailed")+": "+r.slice(0,120)):(h.success(n("knowledgeGraph.msg.deleteSuccess")),await M())}catch(r){h.error(n("knowledgeGraph.msg.deleteFailed")+": "+r.message)}finally{Z.value=""}}function Ae(e){de.value=e.id,ue.value=e.name,P.value=[],X.value=!0}async function Oe(){q.value=!0;try{const e=`kg reason ${de.value} --max-depth ${z.maxDepth} --direction ${z.direction} --json`,{output:r}=await i.execute(e,15e3);P.value=nt(r),P.value.length===0&&h.info(n("knowledgeGraph.msg.reasonEmpty"))}catch(e){h.error(n("knowledgeGraph.msg.reasonFailed")+": "+e.message)}finally{q.value=!1}}return et(()=>{M(),Re()}),(e,r)=>{const u=p("a-button"),g=p("a-space"),J=p("a-statistic"),I=p("a-card"),j=p("a-col"),me=p("a-row"),ze=p("a-alert"),te=p("a-empty"),Y=p("a-tab-pane"),D=p("a-tag"),je=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(S(We))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.refresh")),1)]),_:1},8,["loading"]),t(u,{type:"primary",onClick:r[0]||(r[0]=o=>K.value=!0)},{icon:a(()=>[t(S(Ze))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.addEntity")),1)]),_:1}),t(u,{onClick:r[1]||(r[1]=o=>V.value=!0),disabled:x.value.length<2},{icon:a(()=>[t(S(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(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.entityCount"),value:E.value.entityCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(S(ke))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.relationCount"),value:E.value.relationCount,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(S(le))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.avgDegree"),value:E.value.avgDegree,precision:2,"value-style":{color:"#faad14",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),t(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.density"),value:E.value.density,precision:4,"value-style":{color:"#722ed1",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),k.value?G("",!0):(d(),R(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":r[2]||(r[2]=o=>se.value=o),type:"card"},{default:a(()=>[t(Y,{key:"graph"},{tab:a(()=>[t(S(He)),c(" "+s(e.$t("knowledgeGraph.tabs.graph")),1)]),default:a(()=>[t(I,{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(S(Qe),{option:xe.value,autoresize:""},null,8,["option"])]))]),_:1})]),_:1}),t(Y,{key:"entities"},{tab:a(()=>[t(S(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(),R(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(),R(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(),R(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(je,{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(Y,{key:"relations"},{tab:a(()=>[t(S(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(),R(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(Y,{key:"distribution"},{tab:a(()=>[t(S(Xe)),c(" "+s(e.$t("knowledgeGraph.tabs.distribution")),1)]),default:a(()=>[t(me,{gutter:[24,24]},{default:a(()=>[t(j,{xs:24,md:12},{default:a(()=>[t(I,{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(j,{xs:24,md:12},{default:a(()=>[t(I,{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:K.value,"onUpdate:open":r[6]||(r[6]=o=>K.value=o),title:e.$t("knowledgeGraph.addEntity_modal.title"),"confirm-loading":O.value,onOk:Ee,"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":r[3]||(r[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":r[4]||(r[4]=o=>b.type=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.typePlaceholder"),loading:T.value},{default:a(()=>[(d(!0),m(A,null,L(H.value,o=>(d(),R(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":r[5]||(r[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":r[11]||(r[11]=o=>V.value=o),title:e.$t("knowledgeGraph.addRelation_modal.title"),"confirm-loading":f.value,onOk:Ie,"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":r[7]||(r[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(),R(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":r[8]||(r[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(),R(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":r[9]||(r[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":r[10]||(r[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":r[14]||(r[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":r[12]||(r[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":r[13]||(r[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:q.value,onClick:Oe},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.run")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),P.value.length===0&&!q.value?(d(),m("div",Ct,s(e.$t("knowledgeGraph.reason_modal.hint")),1)):(d(),R(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",St,s(o.entity.name),1),$("span",Tt,s(o.entity.id.slice(0,12)),1)]),_:2},1024)]),_:1},8,["data-source"]))]),_:1},8,["open","title"])])}}},Ot=Be(Rt,[["__scopeId","data-v-d675e73f"]]);export{Ot as default};
@@ -1,2 +1,2 @@
1
- import{_ as E,u as U}from"./index-BxjOmfVA.js";import{R as q}from"./icons-B2mcO3YM.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-Ci2pTZ_t.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(`
1
+ import{_ as E,u as U}from"./index-BqsvxElz.js";import{R as q}from"./icons-Q99MnhG8.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-BVLz_z7V.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
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};
@@ -1 +1 @@
1
- import{_ as Oe,u as je,b as Ne,d as g}from"./index-BxjOmfVA.js";import{s as Pe}from"./community-parser-CO25nZFt.js";import{R as De,V as Ve,l as ie,f as Be,h as ue,aT as Ee,w as Ke}from"./icons-B2mcO3YM.js";import{o as Je,M as f,R as h,P as d,c as l,N as o,K as v,r as _,L as i,O as k,u as y,F as $,Y as P,Q as S,S as b,f as R,a as ce}from"./vendor-Ci2pTZ_t.js";function X(n){const r=Pe(n);if(!r)return null;try{return JSON.parse(r)}catch{}const s=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!s)return null;try{return JSON.parse(s[0])}catch{return null}}const H=Object.freeze(["draft","published","deprecated","suspended"]),qe=Object.freeze(["pending","running","success","failed","timeout"]);function D(n,r=0){return typeof n=="number"&&Number.isFinite(n)?n:r}function Qe(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,name:String(n.name||""),version:String(n.version||""),description:String(n.description||""),endpoint:n.endpoint||"",pricing:n.pricing??null,status:String(n.status||"draft").toLowerCase(),owner:n.owner||"",invocationCount:D(n.invocationCount??n.invocation_count,0),createdAt:n.createdAt??n.created_at??null,updatedAt:n.updatedAt??n.updated_at??null,_idx:r}:null}function We(n){const r=X(n);return Array.isArray(r)?r.map(Qe).filter(Boolean):[]}function Ye(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,serviceId:n.serviceId||n.service_id||"",callerId:n.callerId||n.caller_id||"",input:n.input??null,output:n.output??null,status:String(n.status||"success").toLowerCase(),durationMs:n.durationMs??n.duration_ms??null,error:n.error||"",createdAt:n.createdAt??n.created_at??null,_idx:r}:null}function Ge(n){const r=X(n);return Array.isArray(r)?r.map(Ye).filter(Boolean):[]}function He(n){const r={total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null},s=X(n);if(!s||typeof s!="object"||Array.isArray(s))return r;r.total=D(s.total,0),r.successRate=D(s.successRate??s.success_rate,0),r.avgDurationMs=D(s.avgDurationMs??s.avg_duration_ms,0),r.scopedToService=s.scopedToService??s.scoped_to_service??null;const C=s.counts&&typeof s.counts=="object"?s.counts:{};for(const w of Object.keys(r.counts))r.counts[w]=D(C[w],0);return r}function de(n){if(n==null||n==="")return"—";const r=typeof n=="number"?new Date(n):new Date(String(n));return isNaN(r.getTime())?String(n):r.toLocaleString("zh-CN",{hour12:!1})}const Xe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ze={class:"page-title"},et={class:"page-sub"},tt={class:"filter-bar"},at={style:{color:"var(--text-primary)","font-weight":"500"}},lt={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},ot={key:2,style:{color:"#722ed1","font-weight":"500"}},nt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},st={key:1,style:{color:"var(--text-muted)"}},rt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},it={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ut={class:"filter-bar"},ct={style:{color:"var(--text-primary)"}},dt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},pt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},mt={key:1,style:{color:"var(--text-muted)"}},vt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ft={key:1,style:{color:"var(--text-muted)"}},kt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={__name:"Marketplace",setup(n){const r=je(),{t:s}=Ne(),C=_(!1),w=_(!1),K=_(!1),z=_([]),J=_([]),I=_({total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null}),q=_("services"),L=_(""),T=_(""),V=_(null),B=_(!1),E=_(!1),c=ce({name:"",version:"",description:"",endpoint:"",owner:"",status:"published"}),u=ce({serviceId:"",caller:"",status:"success",durationMs:null,error:""}),Q=_(""),pe=R(()=>[{title:s("marketplace.serviceCols.name"),key:"name"},{title:s("marketplace.serviceCols.status"),key:"status",width:"120px"},{title:s("marketplace.serviceCols.invocationCount"),key:"invocationCount",width:"110px"},{title:s("marketplace.serviceCols.owner"),key:"owner",width:"180px"},{title:s("marketplace.serviceCols.createdAt"),key:"createdAt",width:"160px"},{title:s("marketplace.serviceCols.action"),key:"action",width:"180px"}]),me=R(()=>[{title:s("marketplace.invocationCols.service"),key:"service"},{title:s("marketplace.invocationCols.caller"),key:"caller",width:"180px"},{title:s("marketplace.invocationCols.status"),key:"status",width:"100px"},{title:s("marketplace.invocationCols.durationMs"),key:"durationMs",width:"110px"},{title:s("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}),ye=R(()=>V.value?J.value.filter(e=>e.serviceId===V.value):J.value);function M(e){const t=`marketplace.serviceStatusLabels.${e}`,p=s(t);return p===t?e:p}function be(e){return{draft:"default",published:"green",deprecated:"orange",suspended:"red"}[e]||"default"}function Z(e){const t=`marketplace.invocationStatusLabels.${e}`,p=s(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:s("marketplace.deletedService")}async function U(){C.value=!0;try{const[e,t,p]=await Promise.all([r.execute("marketplace list --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("marketplace invocations --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("marketplace stats --json",1e4).catch(()=>({output:""}))]);z.value=We(e.output),J.value=Ge(t.output),I.value=He(p.output)}catch(e){g.error(s("marketplace.msg.loadFailed")+": "+(e?.message||e))}finally{C.value=!1}}async function $e(){const e=c.name.trim();if(!e){g.warning(s("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 r.execute(t.join(" "),15e3);if(/error|failed|失败/i.test(p)&&!/"id"/.test(p)){g.error(s("marketplace.msg.publishFailed")+": "+p.slice(0,120));return}g.success(s("marketplace.msg.publishSuccess")),B.value=!1,te(),await U()}catch(t){g.error(s("marketplace.msg.publishFailed")+": "+(t?.message||t))}finally{w.value=!1}}function xe(e){if(e.status!=="published"){g.warning(s("marketplace.msg.recordOnlyPublished"));return}u.serviceId=e.id,u.caller="",u.status="success",u.durationMs=null,u.error="",Q.value=e.name,E.value=!0}async function Se(){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 r.execute(e.join(" "),15e3);if(/error|failed|失败/i.test(t)&&!/"id"/.test(t)){g.error(s("marketplace.msg.recordFailed")+": "+t.slice(0,120));return}g.success(s("marketplace.msg.recordSuccess")),E.value=!1,q.value="invocations",await U()}catch(e){g.error(s("marketplace.msg.recordFailed")+": "+(e?.message||e))}finally{K.value=!1}}async function Ce(e,t){if(t!==e.status)try{const{output:p}=await r.execute(`marketplace status ${e.id} ${t} --json`,1e4);if(/error|invalid|失败/i.test(p)&&!/"status"/.test(p)){g.error(s("marketplace.msg.transitionFailed")+": "+p.slice(0,120));return}g.success(s("marketplace.msg.transitionSuccess",{label:M(t)})),await U()}catch(p){g.error(s("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 Je(U),(e,t)=>{const p=v("a-button"),ze=v("a-space"),F=v("a-statistic"),O=v("a-card"),j=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"),ne=v("a-textarea"),se=v("a-form"),re=v("a-modal"),Fe=v("a-input-number");return i(),f("div",null,[h("div",Xe,[h("div",null,[h("h2",Ze,d(e.$t("marketplace.title")),1),h("p",et,d(e.$t("marketplace.subtitle")),1)]),l(ze,null,{default:o(()=>[l(p,{loading:C.value,onClick:U},{icon:o(()=>[l(y(De))]),default:o(()=>[k(" "+d(e.$t("marketplace.refresh")),1)]),_:1},8,["loading"]),l(p,{type:"primary",onClick:t[0]||(t[0]=a=>B.value=!0)},{icon:o(()=>[l(y(Ve))]),default:o(()=>[k(" "+d(e.$t("marketplace.publish")),1)]),_:1})]),_:1})]),l(Me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{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(y(ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{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(y(Be))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{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(y(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{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(y(Ee))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(j,{xs:24,sm:8,lg:4},{default:o(()=>[l(O,{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(y(Ke))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),l(Ue,{activeKey:q.value,"onUpdate:activeKey":t[4]||(t[4]=a=>q.value=a),class:"market-tabs"},{default:o(()=>[l(oe,{key:"services",tab:e.$t("marketplace.tabs.services")},{default:o(()=>[h("div",tt,[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}),(i(!0),f($,null,P(y(H),a=>(i(),S(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:C.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:m})=>[a.key==="name"?(i(),f($,{key:0},[h("span",at,d(m.name),1),m.version?(i(),S(W,{key:0,color:"blue",style:{"margin-left":"6px","font-size":"10px"}},{default:o(()=>[k(" v"+d(m.version),1)]),_:2},1024)):b("",!0),m.description?(i(),f("div",lt,d(ge(m.description,80)),1)):b("",!0)],64)):b("",!0),a.key==="status"?(i(),S(W,{key:1,color:be(m.status)},{default:o(()=>[k(d(M(m.status)),1)]),_:2},1032,["color"])):b("",!0),a.key==="invocationCount"?(i(),f("span",ot,d(m.invocationCount),1)):b("",!0),a.key==="owner"?(i(),f($,{key:3},[m.owner?(i(),f("span",nt,d(ee(m.owner)),1)):(i(),f("span",st,"—"))],64)):b("",!0),a.key==="createdAt"?(i(),f("span",rt,d(y(de)(m.createdAt)),1)):b("",!0),a.key==="action"?(i(),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=>Ce(m,A.key)},{default:o(()=>[(i(!0),f($,null,P(y(H),A=>(i(),S(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)):b("",!0)]),emptyText:o(()=>[h("div",it,[l(y(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",ut,[l(G,{value:V.value,"onUpdate:value":t[3]||(t[3]=a=>V.value=a),placeholder:e.$t("marketplace.filter.byService"),"allow-clear":"",style:{width:"280px"},size:"small"},{default:o(()=>[(i(!0),f($,null,P(z.value,a=>(i(),S(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":ye.value,pagination:{pageSize:20,showTotal:a=>e.$t("marketplace.table.totalSuffix",{n:a})},size:"small",loading:C.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:m})=>[a.key==="service"?(i(),f($,{key:0},[h("span",ct,d(he(m.serviceId)),1),h("div",dt,d(m.serviceId.slice(0,8)),1)],64)):b("",!0),a.key==="caller"?(i(),f($,{key:1},[m.callerId?(i(),f("span",pt,d(ee(m.callerId)),1)):(i(),f("span",mt,"—"))],64)):b("",!0),a.key==="status"?(i(),S(W,{key:2,color:_e(m.status)},{default:o(()=>[k(d(Z(m.status)),1)]),_:2},1032,["color"])):b("",!0),a.key==="durationMs"?(i(),f($,{key:3},[m.durationMs!=null?(i(),f("span",vt,d(m.durationMs)+" ms ",1)):(i(),f("span",ft,"—"))],64)):b("",!0),a.key==="createdAt"?(i(),f("span",kt,d(y(de)(m.createdAt)),1)):b("",!0)]),emptyText:o(()=>[h("div",yt,[l(y(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:B.value,"onUpdate:open":t[11]||(t[11]=a=>B.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(se,{"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(ne,{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(()=>[(i(!0),f($,null,P(y(H),a=>(i(),S(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:E.value,"onUpdate:open":t[16]||(t[16]=a=>E.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:Se,onCancel:we},{default:o(()=>[l(se,{"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(()=>[(i(!0),f($,null,P(y(qe),a=>(i(),S(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"?(i(),S(x,{key:0,label:e.$t("marketplace.record_modal.errorLabel")},{default:o(()=>[l(ne,{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"])):b("",!0)]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},xt=Oe(bt,[["__scopeId","data-v-72a2b91d"]]);export{xt as default};
1
+ import{_ as Oe,u as je,b as Ne,d as g}from"./index-BqsvxElz.js";import{s as Pe}from"./community-parser-CO25nZFt.js";import{R as De,V as Ve,m as ie,f as Be,i as ue,aU as Ee,x as Ke}from"./icons-Q99MnhG8.js";import{o as Je,M as f,R as h,P as d,c as l,N as o,K as v,r as _,L as i,O as k,u as y,F as $,Y as P,Q as S,S as b,f as R,a as ce}from"./vendor-BVLz_z7V.js";function X(n){const r=Pe(n);if(!r)return null;try{return JSON.parse(r)}catch{}const s=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!s)return null;try{return JSON.parse(s[0])}catch{return null}}const H=Object.freeze(["draft","published","deprecated","suspended"]),qe=Object.freeze(["pending","running","success","failed","timeout"]);function D(n,r=0){return typeof n=="number"&&Number.isFinite(n)?n:r}function Qe(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,name:String(n.name||""),version:String(n.version||""),description:String(n.description||""),endpoint:n.endpoint||"",pricing:n.pricing??null,status:String(n.status||"draft").toLowerCase(),owner:n.owner||"",invocationCount:D(n.invocationCount??n.invocation_count,0),createdAt:n.createdAt??n.created_at??null,updatedAt:n.updatedAt??n.updated_at??null,_idx:r}:null}function We(n){const r=X(n);return Array.isArray(r)?r.map(Qe).filter(Boolean):[]}function Ye(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,serviceId:n.serviceId||n.service_id||"",callerId:n.callerId||n.caller_id||"",input:n.input??null,output:n.output??null,status:String(n.status||"success").toLowerCase(),durationMs:n.durationMs??n.duration_ms??null,error:n.error||"",createdAt:n.createdAt??n.created_at??null,_idx:r}:null}function Ge(n){const r=X(n);return Array.isArray(r)?r.map(Ye).filter(Boolean):[]}function He(n){const r={total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null},s=X(n);if(!s||typeof s!="object"||Array.isArray(s))return r;r.total=D(s.total,0),r.successRate=D(s.successRate??s.success_rate,0),r.avgDurationMs=D(s.avgDurationMs??s.avg_duration_ms,0),r.scopedToService=s.scopedToService??s.scoped_to_service??null;const C=s.counts&&typeof s.counts=="object"?s.counts:{};for(const w of Object.keys(r.counts))r.counts[w]=D(C[w],0);return r}function de(n){if(n==null||n==="")return"—";const r=typeof n=="number"?new Date(n):new Date(String(n));return isNaN(r.getTime())?String(n):r.toLocaleString("zh-CN",{hour12:!1})}const Xe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ze={class:"page-title"},et={class:"page-sub"},tt={class:"filter-bar"},at={style:{color:"var(--text-primary)","font-weight":"500"}},lt={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},ot={key:2,style:{color:"#722ed1","font-weight":"500"}},nt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},st={key:1,style:{color:"var(--text-muted)"}},rt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},it={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ut={class:"filter-bar"},ct={style:{color:"var(--text-primary)"}},dt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},pt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},mt={key:1,style:{color:"var(--text-muted)"}},vt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ft={key:1,style:{color:"var(--text-muted)"}},kt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={__name:"Marketplace",setup(n){const r=je(),{t:s}=Ne(),C=_(!1),w=_(!1),K=_(!1),z=_([]),J=_([]),I=_({total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null}),q=_("services"),L=_(""),U=_(""),V=_(null),B=_(!1),E=_(!1),c=ce({name:"",version:"",description:"",endpoint:"",owner:"",status:"published"}),u=ce({serviceId:"",caller:"",status:"success",durationMs:null,error:""}),Q=_(""),pe=R(()=>[{title:s("marketplace.serviceCols.name"),key:"name"},{title:s("marketplace.serviceCols.status"),key:"status",width:"120px"},{title:s("marketplace.serviceCols.invocationCount"),key:"invocationCount",width:"110px"},{title:s("marketplace.serviceCols.owner"),key:"owner",width:"180px"},{title:s("marketplace.serviceCols.createdAt"),key:"createdAt",width:"160px"},{title:s("marketplace.serviceCols.action"),key:"action",width:"180px"}]),me=R(()=>[{title:s("marketplace.invocationCols.service"),key:"service"},{title:s("marketplace.invocationCols.caller"),key:"caller",width:"180px"},{title:s("marketplace.invocationCols.status"),key:"status",width:"100px"},{title:s("marketplace.invocationCols.durationMs"),key:"durationMs",width:"110px"},{title:s("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)),U.value){const t=U.value.toLowerCase();e=e.filter(p=>p.name.toLowerCase().includes(t))}return e}),ye=R(()=>V.value?J.value.filter(e=>e.serviceId===V.value):J.value);function M(e){const t=`marketplace.serviceStatusLabels.${e}`,p=s(t);return p===t?e:p}function be(e){return{draft:"default",published:"green",deprecated:"orange",suspended:"red"}[e]||"default"}function Z(e){const t=`marketplace.invocationStatusLabels.${e}`,p=s(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:s("marketplace.deletedService")}async function T(){C.value=!0;try{const[e,t,p]=await Promise.all([r.execute("marketplace list --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("marketplace invocations --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("marketplace stats --json",1e4).catch(()=>({output:""}))]);z.value=We(e.output),J.value=Ge(t.output),I.value=He(p.output)}catch(e){g.error(s("marketplace.msg.loadFailed")+": "+(e?.message||e))}finally{C.value=!1}}async function $e(){const e=c.name.trim();if(!e){g.warning(s("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 r.execute(t.join(" "),15e3);if(/error|failed|失败/i.test(p)&&!/"id"/.test(p)){g.error(s("marketplace.msg.publishFailed")+": "+p.slice(0,120));return}g.success(s("marketplace.msg.publishSuccess")),B.value=!1,te(),await T()}catch(t){g.error(s("marketplace.msg.publishFailed")+": "+(t?.message||t))}finally{w.value=!1}}function xe(e){if(e.status!=="published"){g.warning(s("marketplace.msg.recordOnlyPublished"));return}u.serviceId=e.id,u.caller="",u.status="success",u.durationMs=null,u.error="",Q.value=e.name,E.value=!0}async function Se(){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 r.execute(e.join(" "),15e3);if(/error|failed|失败/i.test(t)&&!/"id"/.test(t)){g.error(s("marketplace.msg.recordFailed")+": "+t.slice(0,120));return}g.success(s("marketplace.msg.recordSuccess")),E.value=!1,q.value="invocations",await T()}catch(e){g.error(s("marketplace.msg.recordFailed")+": "+(e?.message||e))}finally{K.value=!1}}async function Ce(e,t){if(t!==e.status)try{const{output:p}=await r.execute(`marketplace status ${e.id} ${t} --json`,1e4);if(/error|invalid|失败/i.test(p)&&!/"status"/.test(p)){g.error(s("marketplace.msg.transitionFailed")+": "+p.slice(0,120));return}g.success(s("marketplace.msg.transitionSuccess",{label:M(t)})),await T()}catch(p){g.error(s("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 Je(T),(e,t)=>{const p=v("a-button"),ze=v("a-space"),F=v("a-statistic"),O=v("a-card"),j=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"),Ue=v("a-dropdown"),le=v("a-table"),oe=v("a-tab-pane"),Y=v("a-select-option"),G=v("a-select"),Te=v("a-tabs"),N=v("a-input"),x=v("a-form-item"),ne=v("a-textarea"),se=v("a-form"),re=v("a-modal"),Fe=v("a-input-number");return i(),f("div",null,[h("div",Xe,[h("div",null,[h("h2",Ze,d(e.$t("marketplace.title")),1),h("p",et,d(e.$t("marketplace.subtitle")),1)]),l(ze,null,{default:o(()=>[l(p,{loading:C.value,onClick:T},{icon:o(()=>[l(y(De))]),default:o(()=>[k(" "+d(e.$t("marketplace.refresh")),1)]),_:1},8,["loading"]),l(p,{type:"primary",onClick:t[0]||(t[0]=a=>B.value=!0)},{icon:o(()=>[l(y(Ve))]),default:o(()=>[k(" "+d(e.$t("marketplace.publish")),1)]),_:1})]),_:1})]),l(Me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{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(y(ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{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(y(Be))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{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(y(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{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(y(Ee))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(j,{xs:24,sm:8,lg:4},{default:o(()=>[l(O,{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(y(Ke))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),l(Te,{activeKey:q.value,"onUpdate:activeKey":t[4]||(t[4]=a=>q.value=a),class:"market-tabs"},{default:o(()=>[l(oe,{key:"services",tab:e.$t("marketplace.tabs.services")},{default:o(()=>[h("div",tt,[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}),(i(!0),f($,null,P(y(H),a=>(i(),S(ae,{key:a,value:a},{default:o(()=>[k(d(M(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(Re,{value:U.value,"onUpdate:value":t[2]||(t[2]=a=>U.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:C.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:m})=>[a.key==="name"?(i(),f($,{key:0},[h("span",at,d(m.name),1),m.version?(i(),S(W,{key:0,color:"blue",style:{"margin-left":"6px","font-size":"10px"}},{default:o(()=>[k(" v"+d(m.version),1)]),_:2},1024)):b("",!0),m.description?(i(),f("div",lt,d(ge(m.description,80)),1)):b("",!0)],64)):b("",!0),a.key==="status"?(i(),S(W,{key:1,color:be(m.status)},{default:o(()=>[k(d(M(m.status)),1)]),_:2},1032,["color"])):b("",!0),a.key==="invocationCount"?(i(),f("span",ot,d(m.invocationCount),1)):b("",!0),a.key==="owner"?(i(),f($,{key:3},[m.owner?(i(),f("span",nt,d(ee(m.owner)),1)):(i(),f("span",st,"—"))],64)):b("",!0),a.key==="createdAt"?(i(),f("span",rt,d(y(de)(m.createdAt)),1)):b("",!0),a.key==="action"?(i(),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(Ue,{trigger:["click"]},{overlay:o(()=>[l(Le,{onClick:A=>Ce(m,A.key)},{default:o(()=>[(i(!0),f($,null,P(y(H),A=>(i(),S(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)):b("",!0)]),emptyText:o(()=>[h("div",it,[l(y(ie),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),k(" "+d(L.value||U.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",ut,[l(G,{value:V.value,"onUpdate:value":t[3]||(t[3]=a=>V.value=a),placeholder:e.$t("marketplace.filter.byService"),"allow-clear":"",style:{width:"280px"},size:"small"},{default:o(()=>[(i(!0),f($,null,P(z.value,a=>(i(),S(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":ye.value,pagination:{pageSize:20,showTotal:a=>e.$t("marketplace.table.totalSuffix",{n:a})},size:"small",loading:C.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:m})=>[a.key==="service"?(i(),f($,{key:0},[h("span",ct,d(he(m.serviceId)),1),h("div",dt,d(m.serviceId.slice(0,8)),1)],64)):b("",!0),a.key==="caller"?(i(),f($,{key:1},[m.callerId?(i(),f("span",pt,d(ee(m.callerId)),1)):(i(),f("span",mt,"—"))],64)):b("",!0),a.key==="status"?(i(),S(W,{key:2,color:_e(m.status)},{default:o(()=>[k(d(Z(m.status)),1)]),_:2},1032,["color"])):b("",!0),a.key==="durationMs"?(i(),f($,{key:3},[m.durationMs!=null?(i(),f("span",vt,d(m.durationMs)+" ms ",1)):(i(),f("span",ft,"—"))],64)):b("",!0),a.key==="createdAt"?(i(),f("span",kt,d(y(de)(m.createdAt)),1)):b("",!0)]),emptyText:o(()=>[h("div",yt,[l(y(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:B.value,"onUpdate:open":t[11]||(t[11]=a=>B.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(se,{"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(ne,{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(()=>[(i(!0),f($,null,P(y(H),a=>(i(),S(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:E.value,"onUpdate:open":t[16]||(t[16]=a=>E.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:Se,onCancel:we},{default:o(()=>[l(se,{"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(()=>[(i(!0),f($,null,P(y(qe),a=>(i(),S(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"?(i(),S(x,{key:0,label:e.$t("marketplace.record_modal.errorLabel")},{default:o(()=>[l(ne,{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"])):b("",!0)]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},xt=Oe(bt,[["__scopeId","data-v-72a2b91d"]]);export{xt as default};