chainlesschain 0.162.2 → 0.162.7

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 (151) hide show
  1. package/package.json +2 -1
  2. package/src/assets/web-panel/.build-hash +1 -1
  3. package/src/assets/web-panel/assets/{AIOps-D69_XwQf.js → AIOps-BXQ92dvI.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-COVVHNnK.js → ActionButton-DjmolmAS.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-m0Cuoraq.js → Analytics-LUUOS78B.js} +2 -2
  6. package/src/assets/web-panel/assets/{AppLayout-BEZq_CS0.css → AppLayout-BLCe1k8m.css} +1 -1
  7. package/src/assets/web-panel/assets/AppLayout-DeAq-Waa.js +3 -0
  8. package/src/assets/web-panel/assets/{Audit-DB5RNs9K.js → Audit-De_86BpN.js} +1 -1
  9. package/src/assets/web-panel/assets/{Backup-DD9SgVtq.js → Backup-CAqIbrb5.js} +1 -1
  10. package/src/assets/web-panel/assets/{BaseInput-CS2Y4V0O.js → BaseInput-CwTVDavS.js} +1 -1
  11. package/src/assets/web-panel/assets/{Chat-Cvw48zqw.js → Chat-BnihAKiI.js} +1 -1
  12. package/src/assets/web-panel/assets/{Checkbox-DElRJpAL.js → Checkbox-BDrCuC9m.js} +1 -1
  13. package/src/assets/web-panel/assets/{Codegen-CHdMYssy.js → Codegen-DWqN0jpL.js} +1 -1
  14. package/src/assets/web-panel/assets/{Col-BDk4BXjN.js → Col-B7rIr4g3.js} +1 -1
  15. package/src/assets/web-panel/assets/{Community-ByDrN94M.js → Community-YYEO8SY3.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compact-D4E0roed.js → Compact-DZHWn-_j.js} +1 -1
  17. package/src/assets/web-panel/assets/Compliance-CCYzk_rt.js +1 -0
  18. package/src/assets/web-panel/assets/{Cowork-CMn6mzHv.js → Cowork-D9G6khOx.js} +3 -3
  19. package/src/assets/web-panel/assets/{Cron-CARdrrMM.js → Cron-IbwddEeZ.js} +2 -2
  20. package/src/assets/web-panel/assets/{Crosschain-2pnRIGVn.js → Crosschain-Bct133LN.js} +1 -1
  21. package/src/assets/web-panel/assets/{DID-BRo55XlY.js → DID-32J0mXoS.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dashboard-DfNjjw7V.js → Dashboard-TaPAK2WV.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dropdown-BDTTlG70.js → Dropdown-Df4hUeIm.js} +1 -1
  24. package/src/assets/web-panel/assets/{Federation-CKkeJ169.js → Federation-C0xfKoZr.js} +1 -1
  25. package/src/assets/web-panel/assets/{FormItemContext-C6DJ0oHT.js → FormItemContext-CoacTa1H.js} +1 -1
  26. package/src/assets/web-panel/assets/{Git-DDQd8pDl.js → Git-DZZF1lrY.js} +2 -2
  27. package/src/assets/web-panel/assets/{Governance-DZTuAASB.js → Governance-Bo-P_BP3.js} +1 -1
  28. package/src/assets/web-panel/assets/{Inference-CIbj0XmL.js → Inference-agx6qPl9.js} +1 -1
  29. package/src/assets/web-panel/assets/KnowledgeGraph-Dc8YZGiO.js +1 -0
  30. package/src/assets/web-panel/assets/{Logs-BrLBwq1m.js → Logs-njAOFc0W.js} +1 -1
  31. package/src/assets/web-panel/assets/{Marketplace-q9X5VK92.js → Marketplace-Yu-RUTN2.js} +1 -1
  32. package/src/assets/web-panel/assets/{McpTools-DfxuLN57.js → McpTools-BuzdmOwR.js} +1 -1
  33. package/src/assets/web-panel/assets/{Memory-DND9vjBx.js → Memory-DJyWxXM0.js} +2 -2
  34. package/src/assets/web-panel/assets/{MobileBridge-Ba2jSFl0.js → MobileBridge-CIKfLcfn.js} +1 -1
  35. package/src/assets/web-panel/assets/{MobileProjects-CdclN769.js → MobileProjects-B1OZ0_b1.js} +1 -1
  36. package/src/assets/web-panel/assets/{Mtc-BNKpFjlY.js → Mtc-CJHI9qG0.js} +4 -4
  37. package/src/assets/web-panel/assets/{MtcAudit-BlZJm1Tf.js → MtcAudit-cSrqcG3H.js} +1 -1
  38. package/src/assets/web-panel/assets/{Multisig-DcX0uBmT.js → Multisig-DTVo9GFR.js} +2 -2
  39. package/src/assets/web-panel/assets/{NLProgramming-dDIA3V_a.js → NLProgramming-NqfB2jLI.js} +1 -1
  40. package/src/assets/web-panel/assets/{Notes-BDsTuZ5O.js → Notes-MuMFfs67.js} +3 -3
  41. package/src/assets/web-panel/assets/{NotificationSettings-DzGuAAKt.js → NotificationSettings-B5ECNQNW.js} +1 -1
  42. package/src/assets/web-panel/assets/{Organization-DFfncYaU.js → Organization-Dn98sbrZ.js} +4 -4
  43. package/src/assets/web-panel/assets/{Overflow-O5JDtvyx.js → Overflow-Sl5FJV2c.js} +1 -1
  44. package/src/assets/web-panel/assets/{P2P-BTLl5rnf.js → P2P-58-TvQSE.js} +2 -2
  45. package/src/assets/web-panel/assets/{Permissions-M-jmJa1X.js → Permissions-BFtHCNck.js} +4 -4
  46. package/src/assets/web-panel/assets/PersonalDataHub-CVH9NAfL.css +1 -0
  47. package/src/assets/web-panel/assets/PersonalDataHub-Cu--XeWZ.js +1 -0
  48. package/src/assets/web-panel/assets/{Pipeline-DyXoKp_J.js → Pipeline-DWt_M98L.js} +1 -1
  49. package/src/assets/web-panel/assets/{Privacy-Cvv_9eBQ.js → Privacy-BUX3yRZc.js} +1 -1
  50. package/src/assets/web-panel/assets/{ProjectInit-BS2s_sxy.js → ProjectInit-wYWMWfxy.js} +2 -2
  51. package/src/assets/web-panel/assets/{ProjectSettings-CGfEpOL1.js → ProjectSettings-CIRbqu0F.js} +1 -1
  52. package/src/assets/web-panel/assets/{Projects-BkuTxL3o.js → Projects-CDFkiEL3.js} +1 -1
  53. package/src/assets/web-panel/assets/{Providers-CkhZ5eii.js → Providers-CnPu1q45.js} +1 -1
  54. package/src/assets/web-panel/assets/{QuickAsk-CvGT4zj2.js → QuickAsk-mwOI7Tc-.js} +1 -1
  55. package/src/assets/web-panel/assets/{Recommend-C-gDvXw6.js → Recommend-Ct6SM2HV.js} +1 -1
  56. package/src/assets/web-panel/assets/{Reputation-5zAdCzHT.js → Reputation-D7D6rp3d.js} +1 -1
  57. package/src/assets/web-panel/assets/{Row-BsuDvMpO.js → Row-CX03nw4D.js} +1 -1
  58. package/src/assets/web-panel/assets/{RssFeed-2QQb8p5X.js → RssFeed-BRyNIOp0.js} +3 -3
  59. package/src/assets/web-panel/assets/{Search-CFT_6Ljj.js → Search-Dh-jwNaq.js} +1 -1
  60. package/src/assets/web-panel/assets/{Security-BrK_KNJK.js → Security-C53OqK_S.js} +3 -3
  61. package/src/assets/web-panel/assets/Services-nXK7991F.js +2 -0
  62. package/src/assets/web-panel/assets/{Skeleton--WjfL2Ay.js → Skeleton-mVGGUSnx.js} +1 -1
  63. package/src/assets/web-panel/assets/{Skills-1GWFYMGg.js → Skills-AVICQyr7.js} +1 -1
  64. package/src/assets/web-panel/assets/{Sla-508cBkmT.js → Sla-BO-jiswJ.js} +1 -1
  65. package/src/assets/web-panel/assets/{SpeechSettings-DIeNRX6V.js → SpeechSettings-CQ73BtGw.js} +1 -1
  66. package/src/assets/web-panel/assets/{SyncSettings-BQDW6gsX.js → SyncSettings-ozTu_ihm.js} +1 -1
  67. package/src/assets/web-panel/assets/{Tasks-D39SBKyi.js → Tasks-CwTiFnau.js} +1 -1
  68. package/src/assets/web-panel/assets/{Templates-tsObCBe6.js → Templates-PJ-SYUEg.js} +1 -1
  69. package/src/assets/web-panel/assets/{Tenant-Ccpw-S6R.js → Tenant-DeckYbHe.js} +1 -1
  70. package/src/assets/web-panel/assets/Terminal-CIn4gdxj.js +3 -0
  71. package/src/assets/web-panel/assets/Tokens-Bc40cdFh.js +1 -0
  72. package/src/assets/web-panel/assets/{Trigger-D4yonKuU.js → Trigger-BERtmWcc.js} +1 -1
  73. package/src/assets/web-panel/assets/{Trust-DHDcLjma.js → Trust-_ktoDZt-.js} +1 -1
  74. package/src/assets/web-panel/assets/{UkeySign-DBpW0j1p.js → UkeySign-DecT3_Zy.js} +1 -1
  75. package/src/assets/web-panel/assets/{VideoEditing-BPr_46Py.js → VideoEditing-AqPQa7a7.js} +1 -1
  76. package/src/assets/web-panel/assets/{Wallet-4lfplIJV.js → Wallet-CL303fn9.js} +4 -4
  77. package/src/assets/web-panel/assets/{WebAuthn-DI13wkez.js → WebAuthn-Bwy0YO-u.js} +4 -4
  78. package/src/assets/web-panel/assets/{WorkflowEditor-CYbHpkQy.js → WorkflowEditor-Bbewn3S4.js} +1 -1
  79. package/src/assets/web-panel/assets/{chat-BOH4vNJ7.js → chat-CDIxA8Km.js} +1 -1
  80. package/src/assets/web-panel/assets/{colors-qxXJ45GU.js → colors-rQIxLS12.js} +1 -1
  81. package/src/assets/web-panel/assets/{compact-item-Cjb446yk.js → compact-item-1jZiKenx.js} +1 -1
  82. package/src/assets/web-panel/assets/{createContext-CulBut34.js → createContext-B3FjOuaT.js} +1 -1
  83. package/src/assets/web-panel/assets/{hasIn-DCnwRrNq.js → hasIn-dZ195iTN.js} +1 -1
  84. package/src/assets/web-panel/assets/{icons-DY9VpXfa.js → icons-BFHq5fEF.js} +1 -1
  85. package/src/assets/web-panel/assets/{index-C7reeGYU.js → index--NxZmEUk.js} +1 -1
  86. package/src/assets/web-panel/assets/{index-BAy0ks7N.js → index-19d37fVJ.js} +4 -4
  87. package/src/assets/web-panel/assets/{index-CRsnuDGC.js → index-AHCOz9NC.js} +1 -1
  88. package/src/assets/web-panel/assets/{index-CV_vlbaU.js → index-BByVZ5fI.js} +1 -1
  89. package/src/assets/web-panel/assets/{index-CjJUQvIU.js → index-BC6wcYy3.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-Bp4_7Kow.js → index-BDZd1181.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-DG1F9RZd.js → index-BOiuM69x.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-DpzjQM4w.js → index-Bq8fsYQ6.js} +1 -1
  93. package/src/assets/web-panel/assets/{index-DC38ymaH.js → index-Br6-EXdw.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-BA8bUOYK.js → index-BsUXzEb2.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-CW7a8O5w.js → index-BwIwGE8Y.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-D80IlXq1.js → index-Bx15E0JQ.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-BOFep_rA.js → index-BxnEM3za.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-C_029Hie.js → index-C0YzTiiB.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-BKNbteyC.js → index-C3SVypM3.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-D3bXm2aZ.js → index-C3rYUvdl.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-PP5MLidC.js → index-C4jmdcCs.js} +1 -1
  102. package/src/assets/web-panel/assets/index-C5Ifo5EH.js +1 -0
  103. package/src/assets/web-panel/assets/{index-Bb1KdW4J.js → index-C8IGQbfQ.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-BBWR20mC.js → index-CDL_WWYl.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-DQXojJvN.js → index-CDkCJPtr.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-hca2ku7U.js → index-D0DtKH7N.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-DkYY9W4x.js → index-D3QDmYBa.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-oGqObYfs.js → index-DP5rV4eS.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-BCr0xH2Q.js → index-DQXt91YA.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-Cv2hQG7c.js → index-DRIQpe4j.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-C3ImsNgP.js → index-DWJ5GzxU.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-BO-vFfxc.js → index-Dvg5ymRK.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-SHmkRPZ_.js → index-DxwYB7eB.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-Clxp_Rc0.js → index-U5Y4YNZC.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DNooejFX.js → index-XDvSQBl5.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-cP5FNe0q.js → index-aaHXeryL.js} +1 -1
  117. package/src/assets/web-panel/assets/index-efjrWv6y.js +1 -0
  118. package/src/assets/web-panel/assets/{index-DK5iJriy.js → index-hNSGbn-4.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-6xtj6SRQ.js → index-kg4NgBuP.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-Civlun-X.js → index-lSnZsO_d.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-XMsNvoaz.js → index-sygYO1j4.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-D6-3yvOU.js → index-uL0KmFyf.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-CFw2RtQ_.js → index-xKOyC0Cx.js} +1 -1
  124. package/src/assets/web-panel/assets/{initDefaultProps-Dp93Vlbv.js → initDefaultProps-GbvcoqYL.js} +1 -1
  125. package/src/assets/web-panel/assets/{motion-yBy7l6Td.js → motion-VM5YQ6Mf.js} +1 -1
  126. package/src/assets/web-panel/assets/{move-P6GgC8ZU.js → move-CJvGLYlg.js} +1 -1
  127. package/src/assets/web-panel/assets/{omit-BMF4_2X_.js → omit-3oHJWwWB.js} +1 -1
  128. package/src/assets/web-panel/assets/{pickAttrs-C1bUV-iL.js → pickAttrs-BWBtl13u.js} +1 -1
  129. package/src/assets/web-panel/assets/{placementArrow-CpNGMWxW.js → placementArrow-CVESPqrs.js} +1 -1
  130. package/src/assets/web-panel/assets/{responsiveObserve-Bt3UzGUn.js → responsiveObserve-BOvUPufq.js} +1 -1
  131. package/src/assets/web-panel/assets/{slide-B5t0Lgse.js → slide-W_P685Dw.js} +1 -1
  132. package/src/assets/web-panel/assets/{statusUtils-nHmUS8yg.js → statusUtils-BnIQmxwT.js} +1 -1
  133. package/src/assets/web-panel/assets/{styleChecker-DgazP1mu.js → styleChecker-BMXx5Ie5.js} +1 -1
  134. package/src/assets/web-panel/assets/{useFlexGapSupport-BQ4jJS_s.js → useFlexGapSupport-DSJ4Pl17.js} +1 -1
  135. package/src/assets/web-panel/assets/{useFs-C8aeIQfU.js → useFs-BPbHm7Yn.js} +1 -1
  136. package/src/assets/web-panel/assets/{vnode-DMH0ymoP.js → vnode-HDTJKu2B.js} +1 -1
  137. package/src/assets/web-panel/assets/{zoom-DRmMxFNC.js → zoom-BqKDJys9.js} +1 -1
  138. package/src/assets/web-panel/index.html +2 -2
  139. package/src/commands/ui.js +21 -3
  140. package/src/gateways/ws/message-dispatcher.js +68 -0
  141. package/src/gateways/ws/personal-data-hub-protocol.js +264 -0
  142. package/src/lib/personal-data-hub-wiring.js +425 -0
  143. package/src/runtime/agent-runtime.js +85 -11
  144. package/src/assets/web-panel/assets/AppLayout-BzzvYjpq.js +0 -3
  145. package/src/assets/web-panel/assets/Compliance-DCkF4hfd.js +0 -1
  146. package/src/assets/web-panel/assets/KnowledgeGraph-nTHxy0Fw.js +0 -1
  147. package/src/assets/web-panel/assets/Services-DAmjLm-1.js +0 -2
  148. package/src/assets/web-panel/assets/Terminal-CgFg09NA.js +0 -3
  149. package/src/assets/web-panel/assets/Tokens-BBWOiqLq.js +0 -1
  150. package/src/assets/web-panel/assets/index-B0YFQoW_.js +0 -1
  151. package/src/assets/web-panel/assets/index-BX7snsTz.js +0 -1
@@ -1 +0,0 @@
1
- import{_ as qe,u as Ee,b as Ie,d as v}from"./index-BAy0ks7N.js";import{s as Me}from"./community-parser-CO25nZFt.js";import{R as Pe,aq as De,a$ as Je,aJ as Ke,a_ as Ve,z as de,a4 as We,ai as me,ak as Ye,A as He}from"./icons-DY9VpXfa.js";import{o as Qe,M as p,R as b,P as r,c as a,N as l,Q as h,S as m,K as d,r as g,L as c,O as f,u as _,F,Y as M,_ as ye,f as w,a as le}from"./vendor-M5lGV-wr.js";function P(t){const i=Me(t);if(!i)return null;try{return JSON.parse(i)}catch{}const n=i.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!n)return null;try{return JSON.parse(n[0])}catch{return null}}const Ge=Object.freeze(["file-md5","file-sha1","file-sha256","file-sha512","ipv4","ipv6","domain","url","email"]);function S(t,i=0){return typeof t=="number"&&Number.isFinite(t)?t:i}function fe(t,i=0){if(!t||typeof t!="object")return null;const n=t.id||"";if(!n)return null;const z=Array.isArray(t.labels)?t.labels:[];return{key:n,id:n,type:String(t.type||""),value:String(t.value||""),labels:z,confidence:t.confidence!=null?S(t.confidence,null):null,sourceId:t.sourceId??t.source_id??null,sourceName:t.sourceName??t.source_name??null,validFrom:t.validFrom??t.valid_from??null,validUntil:t.validUntil??t.valid_until??null,firstSeenAt:t.firstSeenAt??t.first_seen_at??null,lastSeenAt:t.lastSeenAt??t.last_seen_at??null,_idx:i}}function Xe(t){const i=P(t);return Array.isArray(i)?i.map(fe).filter(Boolean):[]}function Ze(t){const i=P(t);return!i||typeof i!="object"||Array.isArray(i)?null:{matched:!!i.matched,type:String(i.type||"unknown"),indicator:i.indicator?fe(i.indicator):null}}function et(t){const i={total:0,byType:{}},n=P(t);if(!n||typeof n!="object"||Array.isArray(n))return i;if(i.total=S(n.total,0),n.byType&&typeof n.byType=="object")for(const[z,O]of Object.entries(n.byType))typeof O=="number"&&Number.isFinite(O)&&(i.byType[z]=O);return i}function tt(t,i=0){if(!t||typeof t!="object")return null;const n=t.entity||"";return n?{key:n,entity:n,eventCount:S(t.eventCount??t.event_count,0),failureRate:S(t.failureRate??t.failure_rate,0),uniqueResources:S(t.uniqueResources??t.unique_resources,0),uniqueActions:S(t.uniqueActions??t.unique_actions,0),burstiness:S(t.burstiness,0),riskScore:S(t.riskScore??t.risk_score,0),_idx:i}:null}function at(t){const i=P(t);return Array.isArray(i)?i.map(tt).filter(Boolean):[]}function lt(t,i=0){return!t||typeof t!="object"?null:{key:i,score:S(t.score,0),reasons:Array.isArray(t.reasons)?t.reasons:[],event:t.event&&typeof t.event=="object"?t.event:null,_idx:i}}function ot(t){const i=P(t);return Array.isArray(i)?i.map(lt).filter(Boolean):[]}function oe(t){if(!t)return{noAuditLog:!1,error:""};const i=/no such table:\s*audit_log/i.test(t),n=t.match(/Failed:\s*(.+?)(?:\r?\n|$)/i);return{noAuditLog:i,error:n?n[1].trim():""}}function nt(t){if(t==null||t==="")return"—";const i=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(i.getTime())?String(t):i.toLocaleString("zh-CN",{hour12:!1})}const it={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},st={class:"page-title"},rt={class:"page-sub"},ct={class:"filter-bar"},ut={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px","word-break":"break-all"}},pt={key:0,style:{color:"var(--text-muted)"}},dt={key:1,style:{color:"var(--text-muted)"}},mt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},yt={key:1,style:{color:"var(--text-muted)"}},ft={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},vt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={style:{color:"var(--text-primary)",margin:"16px 0 8px","font-size":"14px"}},gt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},ht={key:2,style:{color:"var(--text-secondary)"}},_t={key:5,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},kt={style:{padding:"30px",color:"var(--text-muted)","text-align":"center"}},xt={key:2,style:{color:"var(--text-primary)",margin:"24px 0 8px","font-size":"14px"}},$t={style:{flex:"1"}},zt={style:{display:"flex",gap:"8px","align-items":"center"}},St={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},At={key:1,style:{color:"var(--text-secondary)","font-size":"11px"}},Tt={key:0,style:{"margin-top":"4px"}},Ct={style:{"margin-top":"8px","font-size":"12px",color:"var(--text-secondary)"}},Ft={key:0,style:{"margin-top":"12px","font-size":"12px"}},Ot={style:{color:"var(--text-secondary)"}},Rt={style:{color:"var(--text-secondary)"}},jt={key:0,style:{"margin-top":"4px"}},Lt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Nt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},wt={__name:"Compliance",setup(t){const i=Ee(),{t:n}=Ie(),z=g(!1),O=g(!1),V=g(!1),W=g(!1),Y=g([]),U=g({total:0,byType:{}}),B=g([]),R=g([]),A=g({noAuditLog:!1,error:""}),D=g("threat"),J=g(""),H=g(!1),q=g(!1),E=g(!1),Q=le({observable:""}),k=g(null),T=le({entity:"",days:30}),x=le({entity:"",threshold:.7,days:1}),ve=w(()=>[{title:n("compliance.cols.type"),key:"type",width:"120px"},{title:n("compliance.cols.value"),key:"value"},{title:n("compliance.cols.labels"),key:"labels",width:"160px"},{title:n("compliance.cols.confidence"),key:"confidence",width:"90px"},{title:n("compliance.cols.source"),key:"source",width:"160px"},{title:n("compliance.cols.lastSeen"),key:"lastSeen",width:"160px"},{title:n("compliance.cols.action"),key:"action",width:"90px"}]),be=w(()=>[{title:n("compliance.cols.entity"),key:"entity",width:"180px"},{title:n("compliance.cols.riskScore"),key:"riskScore"},{title:n("compliance.cols.eventCount"),key:"eventCount",width:"90px"},{title:n("compliance.cols.failureRate"),key:"failureRate",width:"90px"},{title:n("compliance.cols.uniqueResources"),key:"uniqueResources",width:"90px"},{title:n("compliance.cols.burstiness"),key:"burstiness",width:"90px"}]),ge=w(()=>J.value?Y.value.filter(e=>e.type===J.value):Y.value),he=w(()=>Object.keys(U.value.byType).length),_e=w(()=>Object.entries(U.value.byType).sort((e,s)=>s[1]-e[1])),ne=w(()=>B.value.filter(e=>e.riskScore>=70).length),ke={ipv4:"blue",ipv6:"cyan",domain:"purple",url:"magenta",email:"gold","file-md5":"orange","file-sha1":"orange","file-sha256":"red","file-sha512":"red",unknown:"default"};function G(e){return ke[e]||"default"}function xe(e){return e>=80?"#ff4d4f":e>=50?"#faad14":"#52c41a"}function ie(e){return e>=70?"#ff4d4f":e>=40?"#faad14":"#52c41a"}function $e(e,s){return e?e.length>s?e.slice(0,s)+"...":e:""}function ze({key:e}){e==="match"?(k.value=null,H.value=!0):e==="ueba-build"?q.value=!0:e==="ueba-analyze"&&(E.value=!0)}async function K(){z.value=!0;try{const[e,s,y]=await Promise.all([i.execute("compliance threat-intel list --limit 200 --json",1e4).catch(()=>({output:""})),i.execute("compliance threat-intel stats --json",8e3).catch(()=>({output:""})),i.execute("compliance ueba top --top-k 20 --json",1e4).catch(()=>({output:""}))]);Y.value=Xe(e.output),U.value=et(s.output),A.value=oe(y.output),B.value=A.value.noAuditLog?[]:at(y.output)}catch(e){v.error(n("compliance.msg.loadFailed")+": "+(e?.message||e))}finally{z.value=!1}}async function Se(){const e=Q.observable.trim();if(!e){v.warning(n("compliance.msg.matchEmpty"));return}O.value=!0,k.value=null;try{const s=`compliance threat-intel match "${e.replace(/"/g,'\\"')}" --json`,{output:y}=await i.execute(s,8e3),$=Ze(y);if(!$){v.error(n("compliance.msg.matchFailed")+": "+y.slice(0,120));return}k.value=$,$.matched?v.warning(n("compliance.msg.matchHit",{type:$.type})):$.type==="unknown"?v.info(n("compliance.msg.matchUnknownType")):v.success(n("compliance.msg.matchMiss",{type:$.type}))}catch(s){v.error(n("compliance.msg.matchFailed")+": "+(s?.message||s))}finally{O.value=!1}}async function Ae(e){try{const s=`compliance threat-intel remove ${e.type} "${e.value.replace(/"/g,'\\"')}" --json`,{output:y}=await i.execute(s,8e3);if(/error|失败/i.test(y)&&!/"removed"/.test(y)){v.error(n("compliance.msg.deleteFailed")+": "+y.slice(0,120));return}v.success(n("compliance.msg.deleteSuccess")),await K()}catch(s){v.error(n("compliance.msg.deleteFailed")+": "+(s?.message||s))}}async function Te(){V.value=!0;try{const e=["compliance ueba baseline"];T.entity.trim()&&e.push(`--entity "${T.entity.trim().replace(/"/g,'\\"')}"`),T.days!=null&&e.push(`--days ${T.days}`),e.push("--json");const{output:s}=await i.execute(e.join(" "),3e4),y=oe(s);if(y.noAuditLog){A.value=y,v.warning(n("compliance.msg.auditEmptyBuild")),q.value=!1;return}if(y.error){v.error(n("compliance.msg.buildFailed")+": "+y.error);return}v.success(n("compliance.msg.buildSuccess")),q.value=!1,D.value="ueba",await K()}catch(e){v.error(n("compliance.msg.buildFailed")+": "+(e?.message||e))}finally{V.value=!1}}async function Ce(){W.value=!0;try{const e=["compliance ueba analyze"];x.entity.trim()&&e.push(`--entity "${x.entity.trim().replace(/"/g,'\\"')}"`),x.threshold!=null&&e.push(`--threshold ${x.threshold}`),x.days!=null&&e.push(`--days ${x.days}`),e.push("--json");const{output:s}=await i.execute(e.join(" "),3e4),y=oe(s);if(y.noAuditLog){A.value=y,v.warning(n("compliance.msg.auditEmptyAnalyze")),E.value=!1;return}if(y.error&&!s.includes("[")){v.error(n("compliance.msg.analyzeFailed")+": "+y.error);return}R.value=ot(s),v.success(n("compliance.msg.analyzeSuccess",{n:R.value.length})),E.value=!1,D.value="ueba"}catch(e){v.error(n("compliance.msg.analyzeFailed")+": "+(e?.message||e))}finally{W.value=!1}}return Qe(K),(e,s)=>{const y=d("a-button"),$=d("a-menu-item"),Fe=d("a-menu"),Oe=d("a-dropdown"),se=d("a-space"),L=d("a-statistic"),j=d("a-card"),I=d("a-col"),Re=d("a-row"),C=d("a-tag"),re=d("a-radio-button"),je=d("a-radio-group"),Le=d("a-popconfirm"),ce=d("a-table"),ue=d("a-tab-pane"),pe=d("a-alert"),Ne=d("a-progress"),we=d("a-list-item"),Ue=d("a-list"),Be=d("a-tabs"),X=d("a-input"),N=d("a-form-item"),Z=d("a-form"),ee=d("a-modal"),te=d("a-input-number");return c(),p("div",null,[b("div",it,[b("div",null,[b("h2",st,r(e.$t("compliance.title")),1),b("p",rt,r(e.$t("compliance.subtitle")),1)]),a(se,null,{default:l(()=>[a(y,{loading:z.value,onClick:K},{icon:l(()=>[a(_(Pe))]),default:l(()=>[f(" "+r(e.$t("compliance.refresh")),1)]),_:1},8,["loading"]),a(Oe,{trigger:["click"]},{overlay:l(()=>[a(Fe,{onClick:ze},{default:l(()=>[a($,{key:"match"},{default:l(()=>[a(_(Je)),f(" "+r(e.$t("compliance.actions.match")),1)]),_:1}),a($,{key:"ueba-build"},{default:l(()=>[a(_(Ke)),f(" "+r(e.$t("compliance.actions.uebaBuild")),1)]),_:1}),a($,{key:"ueba-analyze"},{default:l(()=>[a(_(Ve)),f(" "+r(e.$t("compliance.actions.uebaAnalyze")),1)]),_:1})]),_:1})]),default:l(()=>[a(y,{type:"primary"},{icon:l(()=>[a(_(De))]),default:l(()=>[f(" "+r(e.$t("compliance.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Re,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.iocTotal"),value:U.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(_(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.iocTypes"),value:he.value,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(_(We))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.riskEntities"),value:B.value.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(_(me))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.highRisk"),value:ne.value,"value-style":{color:ne.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(_(Ye))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(I,{xs:24,sm:8,lg:4},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.recentAnomalies"),value:R.value.length,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[a(_(He))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),U.value.total>0?(c(),h(j,{key:0,title:e.$t("compliance.typeBreakdown"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:l(()=>[a(se,{size:[12,8],wrap:""},{default:l(()=>[(c(!0),p(F,null,M(_e.value,([o,u])=>(c(),h(C,{key:o,color:G(o)},{default:l(()=>[f(r(o)+": "+r(u),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):m("",!0),a(Be,{activeKey:D.value,"onUpdate:activeKey":s[1]||(s[1]=o=>D.value=o),class:"compliance-tabs"},{default:l(()=>[a(ue,{key:"threat",tab:e.$t("compliance.tabs.threat")},{default:l(()=>[b("div",ct,[a(je,{value:J.value,"onUpdate:value":s[0]||(s[0]=o=>J.value=o),size:"small"},{default:l(()=>[a(re,{value:""},{default:l(()=>[f(r(e.$t("compliance.filter.all")),1)]),_:1}),(c(!0),p(F,null,M(_(Ge),o=>(c(),h(re,{key:o,value:o},{default:l(()=>[f(r(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(ce,{columns:ve.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:o=>e.$t("compliance.table.totalSuffix",{n:o})},size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="type"?(c(),h(C,{key:0,color:G(u.type),style:{"font-family":"monospace"}},{default:l(()=>[f(r(u.type),1)]),_:2},1032,["color"])):m("",!0),o.key==="value"?(c(),p("span",ut,r($e(u.value,64)),1)):m("",!0),o.key==="labels"?(c(),p(F,{key:2},[(c(!0),p(F,null,M(u.labels,ae=>(c(),h(C,{key:ae,color:"orange",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(ae),1)]),_:2},1024))),128)),u.labels.length?m("",!0):(c(),p("span",pt,"—"))],64)):m("",!0),o.key==="confidence"?(c(),p(F,{key:3},[u.confidence!=null?(c(),p("span",{key:0,style:ye({color:xe(u.confidence),fontWeight:500})},r(u.confidence),5)):(c(),p("span",dt,"—"))],64)):m("",!0),o.key==="source"?(c(),p(F,{key:4},[u.sourceName?(c(),p("span",mt,r(u.sourceName),1)):(c(),p("span",yt,"—"))],64)):m("",!0),o.key==="lastSeen"?(c(),p("span",ft,r(_(nt)(u.lastSeenAt)),1)):m("",!0),o.key==="action"?(c(),h(Le,{key:6,title:e.$t("compliance.table.deleteConfirm"),"ok-text":e.$t("compliance.table.deleteOk"),"cancel-text":e.$t("compliance.table.cancel"),onConfirm:ae=>Ae(u)},{default:l(()=>[a(y,{size:"small",type:"link",danger:""},{default:l(()=>[f(r(e.$t("compliance.table.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):m("",!0)]),emptyText:l(()=>[b("div",vt,[a(_(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+r(e.$t("compliance.table.emptyThreatsLine1"))+" ",1),s[11]||(s[11]=b("code",{style:{"font-size":"11px"}},"cc compliance threat-intel import <file.json>",-1))])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ue,{key:"ueba",tab:e.$t("compliance.tabs.ueba")},{default:l(()=>[A.value.noAuditLog?(c(),h(pe,{key:0,type:"info","show-icon":"",message:e.$t("compliance.ueba.noAuditLog"),description:e.$t("compliance.ueba.noAuditLogDesc"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):A.value.error?(c(),h(pe,{key:1,type:"error","show-icon":"",message:e.$t("compliance.ueba.errorMessage",{err:A.value.error}),style:{"margin-bottom":"16px"}},null,8,["message"])):m("",!0),b("h3",bt,r(e.$t("compliance.ueba.topRiskTitle",{count:B.value.length})),1),a(ce,{columns:be.value,"data-source":B.value,pagination:!1,size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="entity"?(c(),p("span",gt,r(u.entity),1)):m("",!0),o.key==="riskScore"?(c(),h(Ne,{key:1,percent:Math.min(u.riskScore,100),"stroke-color":ie(u.riskScore),size:"small",format:()=>u.riskScore.toFixed(1)},null,8,["percent","stroke-color","format"])):m("",!0),o.key==="eventCount"?(c(),p("span",ht,r(u.eventCount),1)):m("",!0),o.key==="failureRate"?(c(),p("span",{key:3,style:ye({color:u.failureRate>.3?"#ff4d4f":"var(--text-secondary)",fontFamily:"monospace"})},r((u.failureRate*100).toFixed(1))+"% ",5)):m("",!0),o.key==="uniqueResources"?(c(),h(C,{key:4,color:"cyan",style:{"font-size":"11px"}},{default:l(()=>[f(r(u.uniqueResources),1)]),_:2},1024)):m("",!0),o.key==="burstiness"?(c(),p("span",_t,r((u.burstiness*100).toFixed(0))+"% ",1)):m("",!0)]),emptyText:l(()=>[b("div",kt,[a(_(me),{style:{"font-size":"32px","margin-bottom":"8px",display:"block"}}),f(" "+r(A.value.noAuditLog?e.$t("compliance.table.emptyAuditEntities"):e.$t("compliance.table.emptyRiskEntities")),1)])]),_:1},8,["columns","data-source","loading"]),R.value.length?(c(),p("h3",xt,r(e.$t("compliance.ueba.anomalyTitle",{count:R.value.length})),1)):m("",!0),R.value.length?(c(),h(Ue,{key:3,size:"small","data-source":R.value,locale:{emptyText:e.$t("compliance.table.noAnomalies")}},{renderItem:l(({item:o})=>[a(we,{style:{background:"var(--bg-card)",padding:"10px 16px"}},{default:l(()=>[b("div",$t,[b("div",zt,[a(C,{color:ie(o.score*100)},{default:l(()=>[f("score "+r(o.score.toFixed(2)),1)]),_:2},1032,["color"]),o.event?.entity?(c(),p("span",St,r(o.event.entity),1)):m("",!0),o.event?.action?(c(),p("span",At," → "+r(o.event.action),1)):m("",!0)]),o.reasons.length?(c(),p("div",Tt,[(c(!0),p(F,null,M(o.reasons,u=>(c(),h(C,{key:u,color:"volcano",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(u),1)]),_:2},1024))),128))])):m("",!0)])]),_:2},1024)]),_:1},8,["data-source","locale"])):m("",!0)]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ee,{open:H.value,"onUpdate:open":s[3]||(s[3]=o=>H.value=o),title:e.$t("compliance.match.modalTitle"),"confirm-loading":O.value,width:500,"ok-text":e.$t("compliance.match.ok"),"cancel-text":e.$t("compliance.match.close"),onOk:Se},{default:l(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(N,{label:e.$t("compliance.match.label"),required:""},{default:l(()=>[a(X,{value:Q.observable,"onUpdate:value":s[2]||(s[2]=o=>Q.observable=o),placeholder:e.$t("compliance.match.placeholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),k.value?(c(),h(j,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(L,{title:e.$t("compliance.match.result"),value:k.value.matched?e.$t("compliance.match.hit"):e.$t("compliance.match.miss"),"value-style":{color:k.value.matched?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),b("div",Ct,[f(r(e.$t("compliance.match.detectType"))+" ",1),a(C,{color:G(k.value.type)},{default:l(()=>[f(r(k.value.type),1)]),_:1},8,["color"])]),k.value.indicator?(c(),p("div",Ft,[b("div",Ot,r(e.$t("compliance.match.sourcePrefix"))+" "+r(k.value.indicator.sourceName||"—"),1),b("div",Rt,r(e.$t("compliance.match.confidencePrefix"))+" "+r(k.value.indicator.confidence??"—"),1),k.value.indicator.labels.length?(c(),p("div",jt,[(c(!0),p(F,null,M(k.value.indicator.labels,o=>(c(),h(C,{key:o,color:"orange",style:{"font-size":"10px"}},{default:l(()=>[f(r(o),1)]),_:2},1024))),128))])):m("",!0)])):m("",!0)]),_:1})):m("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:q.value,"onUpdate:open":s[6]||(s[6]=o=>q.value=o),title:e.$t("compliance.build.modalTitle"),"confirm-loading":V.value,width:480,"ok-text":e.$t("compliance.build.ok"),"cancel-text":e.$t("compliance.build.cancel"),onOk:Te},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(N,{label:e.$t("compliance.build.entityLabel")},{default:l(()=>[a(X,{value:T.entity,"onUpdate:value":s[4]||(s[4]=o=>T.entity=o),placeholder:e.$t("compliance.build.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:e.$t("compliance.build.daysLabel")},{default:l(()=>[a(te,{value:T.days,"onUpdate:value":s[5]||(s[5]=o=>T.days=o),min:1,max:365,placeholder:e.$t("compliance.build.daysPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),b("p",Lt,r(e.$t("compliance.build.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:E.value,"onUpdate:open":s[10]||(s[10]=o=>E.value=o),title:e.$t("compliance.analyze.modalTitle"),"confirm-loading":W.value,width:480,"ok-text":e.$t("compliance.analyze.ok"),"cancel-text":e.$t("compliance.analyze.cancel"),onOk:Ce},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(N,{label:e.$t("compliance.analyze.entityLabel")},{default:l(()=>[a(X,{value:x.entity,"onUpdate:value":s[7]||(s[7]=o=>x.entity=o),placeholder:e.$t("compliance.analyze.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:e.$t("compliance.analyze.thresholdLabel")},{default:l(()=>[a(te,{value:x.threshold,"onUpdate:value":s[8]||(s[8]=o=>x.threshold=o),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(N,{label:e.$t("compliance.analyze.daysLabel")},{default:l(()=>[a(te,{value:x.days,"onUpdate:value":s[9]||(s[9]=o=>x.days=o),min:1,max:30,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),b("p",Nt,r(e.$t("compliance.analyze.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},It=qe(wt,[["__scopeId","data-v-81155fa8"]]);export{It as default};
@@ -1 +0,0 @@
1
- import{_ as Be,u as Pe,b as Me,d as h}from"./index-BAy0ks7N.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-Bq-n0MtJ.js";import{R as We,aq as Ze,az as le,$ as ke,v as He,a3 as Xe}from"./icons-DY9VpXfa.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-M5lGV-wr.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 +0,0 @@
1
- import{_ as K,u as Q}from"./index-BAy0ks7N.js";import{R as q,V as J,n as V,ab as U,f as X,ap as Y,l as Z}from"./icons-DY9VpXfa.js";import{o as ee,M as d,R as m,c as e,N as t,r,K as n,L as s,O as y,u as c,P as u,S as g,Q as $,f as te}from"./vendor-M5lGV-wr.js";const oe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ae={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},re={style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},le={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},se={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},ne={key:0,style:{"text-align":"center",padding:"30px"}},ce={key:1,style:{"font-family":"monospace",color:"#ccc"}},ie={key:0,style:{color:"var(--text-secondary)","font-size":"13px",padding:"8px 0"}},de={key:1,style:{color:"var(--text-muted)","font-size":"13px",padding:"8px 0"}},ue={key:0,style:{"margin-top":"16px"}},ve={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"300px","overflow-y":"auto","white-space":"pre-wrap"}},pe={__name:"Services",setup(fe){const S=Q(),N=window.__CC_CONFIG__||{},x=r(!1),C=r(!1),b=r(""),W=r(""),z=r(!1),L=r(""),k=r(""),D=r(""),M=r(!1),h=r(""),w=r(""),B=r([]),R=te(()=>S.status==="connected"),E=[{title:"服务",dataIndex:"name",key:"name"},{title:"端口",dataIndex:"port",key:"port"},{title:"状态",key:"status"}];async function I(){x.value=!0;try{const{output:o}=await S.execute("status",15e3);W.value=o,F(o)}catch(o){console.error("status failed:",o)}finally{x.value=!1}}function F(o){z.value=o.includes("Desktop app running")||o.includes("Running");const a=o.match(/Edition:\s+(\S+)/i);a&&(L.value=a[1]);const v=o.match(/LLM:\s+(\S+)\s+\(([^)]+)\)/i);if(v)k.value=v[1],D.value=v[2];else{const l=o.match(/LLM:\s+(\S+)/i);l&&(k.value=l[1])}M.value=o.includes("Setup completed");const p=o.match(/Setup completed \(([^)]+)\)/i);if(p)try{h.value=new Date(p[1]).toLocaleDateString("zh-CN")}catch{h.value=""}o.includes("docker-compose.yml not found")?w.value="未找到 docker-compose.yml":o.includes("Docker Services")&&(w.value="已检测到 Docker 配置");const i=o.split(`
2
- `).filter(l=>l.match(/[○●]\s+\w+:\s+\d+/));B.value=i.map(l=>{const f=l.match(/([○●])\s+(\w+):\s+(\d+)/);return f?{key:f[2],name:f[2],port:parseInt(f[3]),active:f[1]==="●"}:null}).filter(Boolean)}async function P(){C.value=!0,b.value="";try{const{output:o}=await S.execute("doctor",3e4);b.value=o}catch(o){b.value=`诊断失败: ${o.message}`}finally{C.value=!1}}return ee(I),(o,a)=>{const v=n("a-button"),p=n("a-statistic"),i=n("a-card"),l=n("a-col"),f=n("a-row"),T=n("a-tag"),j=n("a-spin"),A=n("a-badge"),G=n("a-table"),H=n("a-space");return s(),d("div",null,[m("div",oe,[a[3]||(a[3]=m("div",null,[m("h2",{class:"page-title"},"服务管理"),m("p",{class:"page-sub"},"ChainlessChain 运行状态与服务控制")],-1)),e(v,{type:"primary",ghost:"",loading:x.value,onClick:I},{icon:t(()=>[e(c(q))]),default:t(()=>[a[2]||(a[2]=y(" 刷新 ",-1))]),_:1},8,["loading"])]),e(f,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"应用状态",value:z.value?"运行中":"未运行","value-style":{color:z.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:t(()=>[e(c(J))]),_:1},8,["value","value-style"]),L.value?(s(),d("div",ae,"版本: "+u(L.value),1)):g("",!0)]),_:1})]),_:1}),e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"WebSocket 服务",value:"运行中","value-style":{color:"#52c41a",fontSize:"16px"}},{prefix:t(()=>[e(c(V))]),_:1}),m("div",re," 端口: "+u(c(N).wsPort||18800)+" · "+u(c(N).wsHost||"127.0.0.1"),1)]),_:1})]),_:1}),e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"LLM 提供商",value:k.value||"未配置","value-style":{color:k.value?"#1677ff":"#888",fontSize:"16px"}},{prefix:t(()=>[e(c(U))]),_:1},8,["value","value-style"]),D.value?(s(),d("div",le,u(D.value),1)):g("",!0)]),_:1})]),_:1}),e(l,{xs:24,sm:12,lg:6},{default:t(()=>[e(i,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(p,{title:"初始化",value:M.value?"已完成":"未完成","value-style":{color:M.value?"#52c41a":"#faad14",fontSize:"16px"}},{prefix:t(()=>[e(c(X))]),_:1},8,["value","value-style"]),h.value?(s(),d("div",se,u(h.value),1)):g("",!0)]),_:1})]),_:1})]),_:1}),e(i,{title:"端口状态",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:t(()=>[e(T,{color:R.value?"green":"red"},{default:t(()=>[y(" WS "+u(R.value?"已连接":"断开"),1)]),_:1},8,["color"])]),default:t(()=>[x.value?(s(),d("div",ne,[e(j)])):(s(),$(G,{key:1,columns:E,"data-source":B.value,pagination:!1,size:"small","row-class-name":_=>_.active?"port-active":""},{bodyCell:t(({column:_,record:O})=>[_.key==="status"?(s(),$(A,{key:0,status:O.active?"success":"default",text:O.active?"运行中":"未运行"},null,8,["status","text"])):g("",!0),_.key==="port"?(s(),d("span",ce,u(O.port),1)):g("",!0)]),_:1},8,["data-source","row-class-name"]))]),_:1}),e(i,{title:"Docker 服务",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{default:t(()=>[w.value?(s(),d("div",ie,u(w.value),1)):(s(),d("div",de,"未检测到 Docker 服务"))]),_:1}),e(i,{title:"快速操作",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e(H,{wrap:""},{default:t(()=>[e(v,{loading:C.value,onClick:P,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:t(()=>[e(c(Y))]),default:t(()=>[a[4]||(a[4]=y(" 环境诊断 ",-1))]),_:1},8,["loading"]),e(v,{onClick:a[0]||(a[0]=_=>o.$router.push("/logs")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:t(()=>[e(c(Z))]),default:t(()=>[a[5]||(a[5]=y(" 查看日志 ",-1))]),_:1}),e(v,{onClick:a[1]||(a[1]=_=>o.$router.push("/providers")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:t(()=>[e(c(V))]),default:t(()=>[a[6]||(a[6]=y(" LLM 配置 ",-1))]),_:1})]),_:1}),b.value?(s(),d("div",ue,[a[7]||(a[7]=m("div",{style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},"诊断结果",-1)),m("pre",ve,u(b.value),1)])):g("",!0)]),_:1})])}}},be=K(pe,[["__scopeId","data-v-13be6bfe"]]);export{be as default};
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./xterm-BZcWGsqw.js","./markdown-CsiA8-E5.js","./markdown-Dfs9RUU9.css","./addon-fit-CK6X9sAG.js","./xterm-DFuMZ0ql.css"])))=>i.map(i=>d[i]);
2
- import{u as le,_ as re,d as Q,e as V}from"./index-BAy0ks7N.js";import{o as ie,e as ce,w as de,M as S,R as h,O as L,Q as Z,N as M,S as q,c as T,F as j,Y as G,P as R,r as k,K as D,f as ue,n as N,L as w,u as U,Z as fe,a1 as ve,a2 as me,a3 as ye}from"./vendor-M5lGV-wr.js";import{aq as he,R as we,b as pe}from"./icons-DY9VpXfa.js";const C=new Map,A=new Map,$=new Set,F=new Set;let H=!1;function _e(u){H||(H=!0,u.onMessage(l=>{if(!(!l||typeof l.type!="string")){if(l.type==="terminal.stdout"){const{sessionId:n,data:s,seq:g}=l.payload||{};if(!n)return;let v;try{const i=atob(s||""),b=new Uint8Array(i.length);for(let t=0;t<i.length;t++)b[t]=i.charCodeAt(t);v=new TextDecoder("utf-8").decode(b)}catch{v=""}const m={sessionId:n,data:v,seq:g};C.get(n)?.forEach(i=>i(m)),$.forEach(i=>i(m))}else if(l.type==="terminal.exit"){const{sessionId:n,exitCode:s,signal:g}=l.payload||{};if(!n)return;const v={sessionId:n,exitCode:s,signal:g};A.get(n)?.forEach(m=>m(v)),F.forEach(m=>m(v))}}}))}function I(u){const l=new TextEncoder().encode(u);let n="";for(let s=0;s<l.length;s++)n+=String.fromCharCode(l[s]);return btoa(n)}function J(u){const l=atob(u||""),n=new Uint8Array(l.length);for(let s=0;s<l.length;s++)n[s]=l.charCodeAt(s);return new TextDecoder("utf-8").decode(n)}function ge(){const u=le();_e(u);async function l(t={}){const o=await u.sendRaw({type:"terminal.create",payload:{shell:t.shell,cwd:t.cwd,env:t.env,cols:t.cols,rows:t.rows}});if(o.ok===!1)throw new Error(o.error||"terminal_create_failed");return o.result??o}async function n(){const t=await u.sendRaw({type:"terminal.list",payload:{}});if(t.ok===!1)throw new Error(t.error||"terminal_list_failed");const o=t.result??t;return Array.isArray(o.sessions)?o.sessions:[]}async function s(t,o){const r=await u.sendRaw({type:"terminal.stdin",payload:{sessionId:t,data:I(String(o))}});if(r.ok===!1)throw new Error(r.error||"terminal_stdin_failed");return r.result??r}async function g(t,o,r){const x=await u.sendRaw({type:"terminal.resize",payload:{sessionId:t,cols:o,rows:r}});if(x.ok===!1)throw new Error(x.error||"terminal_resize_failed");return x.result??x}async function v(t){const o=await u.sendRaw({type:"terminal.close",payload:{sessionId:t}});if(o.ok===!1)throw new Error(o.error||"terminal_close_failed");return o.result??o}async function m(t,o=0){const r=await u.sendRaw({type:"terminal.history",payload:{sessionId:t,fromSeq:o}});if(r.ok===!1)throw new Error(r.error||"terminal_history_failed");const x=r.result??r;return{truncated:!!x.truncated,chunks:(x.chunks||[]).map(E=>({seq:E.seq,data:J(E.data)}))}}function i(t,o){return t?(C.has(t)||C.set(t,new Set),C.get(t).add(o),()=>{C.get(t)?.delete(o),C.get(t)?.size===0&&C.delete(t)}):($.add(o),()=>$.delete(o))}function b(t,o){return t?(A.has(t)||A.set(t,new Set),A.get(t).add(o),()=>{A.get(t)?.delete(o),A.get(t)?.size===0&&A.delete(t)}):(F.add(o),()=>F.delete(o))}return{create:l,list:n,stdin:s,resize:g,close:v,history:m,onStdout:i,onExit:b,_internal:{stdoutSubs:C,exitSubs:A,toBase64Utf8:I,fromBase64Utf8:J}}}const xe={class:"terminal-page"},Se={class:"terminal-header"},be={class:"page-sub"},ke={class:"terminal-body"},Ce={class:"session-tabs"},Ae=["onClick"],Ee={class:"session-shell"},Te={class:"session-id"},Re={key:0,class:"session-empty"},ze={class:"xterm-host"},Me=["data-session-id"],qe={key:0,class:"xterm-placeholder"},De={key:1,class:"terminal-footer"},Le={key:0,class:"footer-exit"},Oe={__name:"Terminal",setup(u){const l=ge(),n=k([]),s=k(null),g=k("pwsh"),v=k(!1),m=k(!1),i=k(""),b=k(""),t=k([]),o=[{value:"pwsh",label:"PowerShell"},{value:"cmd",label:"CMD"},{value:"bash",label:"Bash"},{value:"wsl",label:"WSL"}],r=ue(()=>n.value.find(e=>e.id===s.value));function x(e){return e?e.slice(0,8):""}let E=null,O=null;async function ee(){if(E)return{xtermMod:E,fitAddonMod:O};try{E=await V(()=>import("./xterm-BZcWGsqw.js").then(e=>e.x),__vite__mapDeps([0,1,2]),import.meta.url),O=await V(()=>import("./addon-fit-CK6X9sAG.js").then(e=>e.a),__vite__mapDeps([3,1,2]),import.meta.url),await V(()=>Promise.resolve({}),__vite__mapDeps([4]),import.meta.url)}catch(e){throw b.value="xterm 资源加载失败:"+(e?.message||"未知错误"),e}return{xtermMod:E,fitAddonMod:O}}async function W(e){await N();const{xtermMod:a,fitAddonMod:y}=await ee(),p=t.value.find(f=>f?.dataset?.sessionId===e.id);if(!p)return;const c=new a.Terminal({cursorBlink:!0,fontFamily:'Consolas, "Courier New", monospace',fontSize:13,theme:{background:"#1e1e1e",foreground:"#d4d4d4"},convertEol:!1}),z=new y.FitAddon;c.loadAddon(z),c.open(p);try{z.fit()}catch{}e.xterm=c,e.fitAddon=z;const B=c.onData(f=>{l.stdin(e.id,f).catch(_=>{String(_?.message||"").includes("dangerous_keyword_blocked")?Q.warning("该命令被桌面端拦截(高危关键字)"):Q.error("stdin 失败: "+(_?.message||_))})}),d=l.onStdout(e.id,({data:f,seq:_})=>{e.lastSeq=_,c.write(f)}),P=l.onExit(e.id,({exitCode:f,signal:_})=>{e.alive=!1,e.exitCode=f,e.signal=_,c.writeln(`\r
3
- \x1B[33m[session exited, code=${f}, signal=${_??"-"}]\x1B[0m`)});e.offs=()=>{try{B.dispose?.()}catch{}d(),P()};try{const{chunks:f,truncated:_}=await l.history(e.id,0);_&&c.writeln("\x1B[2m[history truncated — earlier output was evicted]\x1B[0m");for(const K of f)c.write(K.data),e.lastSeq=K.seq}catch(f){c.writeln(`\x1B[31m[history fetch failed: ${f?.message||f}]\x1B[0m`)}const Y=new ResizeObserver(()=>{try{z.fit(),l.resize(e.id,c.cols,c.rows).catch(()=>{})}catch{}});Y.observe(p);const se=e.offs;e.offs=()=>{try{Y.disconnect()}catch{}se()}}async function te(){v.value=!0,i.value="";try{const e=await l.create({shell:g.value,cols:80,rows:24}),a={id:e.sessionId,shell:e.shell,cwd:"",alive:!0,lastSeq:0,exitCode:null,xterm:null,fitAddon:null,offs:()=>{}};n.value.push(a),s.value=a.id,await W(a)}catch(e){i.value=e?.message||String(e)}finally{v.value=!1}}async function ae(e){try{await l.close(e)}catch(a){i.value=a?.message||String(a)}setTimeout(()=>ne(e),500)}function ne(e){const a=n.value.findIndex(p=>p.id===e);if(a===-1)return;const y=n.value[a];try{y.offs?.()}catch{}try{y.xterm?.dispose?.()}catch{}n.value.splice(a,1),s.value===e&&(s.value=n.value[0]?.id||null)}function oe(e){s.value=e,N(()=>{const a=n.value.find(y=>y.id===e);try{a?.fitAddon?.fit()}catch{}})}async function X(){m.value=!0,i.value="";try{const e=await l.list();for(const a of e){const y=n.value.find(c=>c.id===a.id);if(y){y.alive=a.alive,y.lastSeq=a.lastSeq;continue}const p={id:a.id,shell:a.shell,cwd:a.cwd,alive:a.alive,lastSeq:a.lastSeq,exitCode:null,xterm:null,fitAddon:null,offs:()=>{}};n.value.push(p),await W(p)}!s.value&&n.value.length>0&&(s.value=n.value[0].id)}catch(e){i.value=e?.message||String(e)}finally{m.value=!1}}return ie(async()=>{await X()}),ce(()=>{for(const e of n.value){try{e.offs?.()}catch{}try{e.xterm?.dispose?.()}catch{}}}),de(s,()=>{N(()=>{const e=r.value;try{e?.fitAddon?.fit()}catch{}})}),(e,a)=>{const y=D("a-tag"),p=D("a-select"),c=D("a-button"),z=D("a-space"),B=D("a-alert");return w(),S("div",xe,[h("div",Se,[h("div",null,[a[3]||(a[3]=h("h2",{class:"page-title"},"远程终端",-1)),h("p",be,[a[2]||(a[2]=L(" 桌面端托管的 PTY 会话;Android 端可远程操控同一通道 ",-1)),b.value?(w(),Z(y,{key:0,color:"orange",style:{"margin-left":"8px"}},{default:M(()=>[L(R(b.value),1)]),_:1})):q("",!0)])]),T(z,null,{default:M(()=>[T(p,{value:g.value,"onUpdate:value":a[0]||(a[0]=d=>g.value=d),style:{width:"130px"},size:"small",options:o},null,8,["value"]),T(c,{type:"primary",size:"small",loading:v.value,onClick:te},{icon:M(()=>[T(U(he))]),default:M(()=>[a[4]||(a[4]=L(" 新会话 ",-1))]),_:1},8,["loading"]),T(c,{size:"small",loading:m.value,onClick:X},{icon:M(()=>[T(U(we))]),default:M(()=>[a[5]||(a[5]=L(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),i.value?(w(),Z(B,{key:0,message:i.value,type:"error","show-icon":"",closable:"",style:{"margin-bottom":"12px"},onClose:a[1]||(a[1]=d=>i.value="")},null,8,["message"])):q("",!0),h("div",ke,[h("div",Ce,[(w(!0),S(j,null,G(n.value,d=>(w(),S("div",{key:d.id,class:fe(["session-tab",{active:d.id===s.value,dead:!d.alive}]),onClick:P=>oe(d.id)},[h("span",Ee,R(d.shell),1),h("span",Te,R(x(d.id)),1),T(U(pe),{class:"session-close",onClick:ve(P=>ae(d.id),["stop"])},null,8,["onClick"])],10,Ae))),128)),n.value.length===0?(w(),S("div",Re,' 点击 "新会话" 创建第一个终端 ')):q("",!0)]),h("div",ze,[(w(!0),S(j,null,G(n.value,d=>me((w(),S("div",{key:d.id,ref_for:!0,ref_key:"xtermContainers",ref:t,"data-session-id":d.id,class:"xterm-container"},null,8,Me)),[[ye,d.id===s.value]])),128)),n.value.length===0?(w(),S("div",qe,[...a[6]||(a[6]=[h("span",null,"无活跃会话",-1)])])):q("",!0)])]),r.value?(w(),S("div",De,[h("span",null,R(r.value.shell)+" · "+R(r.value.cwd||"(默认 cwd)")+" · seq "+R(r.value.lastSeq),1),r.value.alive?q("",!0):(w(),S("span",Le,"已退出 (code="+R(r.value.exitCode??"-")+")",1))])):q("",!0)])}}},Ne=re(Oe,[["__scopeId","data-v-2b31fd4d"]]);export{Ne as default};
@@ -1 +0,0 @@
1
- import{_ as zt,b as Bt,u as Ot,d as A}from"./index-BAy0ks7N.js";import{s as rt}from"./community-parser-CO25nZFt.js";import{R as At,n as Rt,N as ot,x as st,aJ as Ut,aK as at}from"./icons-DY9VpXfa.js";import{o as Et,M as y,R as m,P as c,u as a,c as o,N as n,Q as D,S as _,K as v,r as O,L as p,O as S,F as U,Y as K,f as G}from"./vendor-M5lGV-wr.js";function w(e){const t=rt(e);if(!t)return null;try{return JSON.parse(t)}catch{}const l=t.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!l)return null;try{return JSON.parse(l[0])}catch{return null}}const Mt=Object.freeze(["today","week","month","all"]),ct=Object.freeze(["planning","active","suspended","archived"]),ut=Object.freeze(["pending","recorded","billed","rejected","refunded"]);function i(e,t=0){return typeof e=="number"&&Number.isFinite(e)?e:t}function V(e){if(!e)return{noDb:!1,error:""};const t=rt(e),l=/Database not available/i.test(t);return{noDb:l,error:l?"Database not available":""}}const Y={totalCalls:0,totalInputTokens:0,totalOutputTokens:0,totalTokens:0,totalCostUsd:0,avgResponseTimeMs:0};function nt(e){const t={...Y};return!e||typeof e!="object"||Array.isArray(e)||(t.totalCalls=i(e.total_calls??e.totalCalls,0),t.totalInputTokens=i(e.total_input_tokens??e.totalInputTokens,0),t.totalOutputTokens=i(e.total_output_tokens??e.totalOutputTokens,0),t.totalTokens=i(e.total_tokens??e.totalTokens,0),t.totalCostUsd=i(e.total_cost_usd??e.totalCostUsd,0),t.avgResponseTimeMs=i(e.avg_response_time_ms??e.avgResponseTimeMs,0)),t}function lt(e){const t=w(e);return!t||typeof t!="object"||Array.isArray(t)?{stats:{...Y},today:{...Y}}:{stats:nt(t.stats),today:nt(t.today)}}function Dt(e,t=0){if(!e||typeof e!="object")return null;const l=e.provider||"",f=e.model||"";return!l&&!f?null:{key:`${l}/${f}/${t}`,provider:String(l),model:String(f),calls:i(e.calls,0),inputTokens:i(e.input_tokens??e.inputTokens,0),outputTokens:i(e.output_tokens??e.outputTokens,0),totalTokens:i(e.total_tokens??e.totalTokens,0),costUsd:i(e.cost_usd??e.costUsd,0),_idx:t}}function wt(e){const t=w(e);return Array.isArray(t)?t.map(Dt).filter(Boolean):[]}function jt(e,t=0){if(!e||typeof e!="object")return null;const l=e.id||"";return l?{key:l,id:l,provider:String(e.provider||""),model:String(e.model||""),inputTokens:i(e.input_tokens??e.inputTokens,0),outputTokens:i(e.output_tokens??e.outputTokens,0),totalTokens:i(e.total_tokens??e.totalTokens,0),costUsd:i(e.cost_usd??e.costUsd,0),responseTimeMs:i(e.response_time_ms??e.responseTimeMs,0),endpoint:String(e.endpoint||""),createdAt:e.created_at??e.createdAt??"",_idx:t}:null}function Nt(e){const t=w(e);return Array.isArray(t)?t.map(jt).filter(Boolean):[]}const It={totalEntries:0,totalHits:0,totalTokensSaved:0,expiredEntries:0};function Vt(e){const t={...It},l=w(e);return!l||typeof l!="object"||Array.isArray(l)||(t.totalEntries=i(l.total_entries??l.totalEntries,0),t.totalHits=i(l.total_hits??l.totalHits,0),t.totalTokensSaved=i(l.total_tokens_saved??l.totalTokensSaved,0),t.expiredEntries=i(l.expired_entries??l.expiredEntries,0)),t}const Pt={totalBudgetsV2:0,totalRecordsV2:0,maxActiveBudgetsPerOwner:0,maxPendingRecordsPerBudget:0,budgetIdleMs:0,recordStuckMs:0,budgetsByStatus:{},recordsByStatus:{}};function Ft(e){const t=JSON.parse(JSON.stringify(Pt));for(const f of ct)t.budgetsByStatus[f]=0;for(const f of ut)t.recordsByStatus[f]=0;const l=w(e);if(!l||typeof l!="object"||Array.isArray(l))return t;if(t.totalBudgetsV2=i(l.totalBudgetsV2,0),t.totalRecordsV2=i(l.totalRecordsV2,0),t.maxActiveBudgetsPerOwner=i(l.maxActiveBudgetsPerOwner,0),t.maxPendingRecordsPerBudget=i(l.maxPendingRecordsPerBudget,0),t.budgetIdleMs=i(l.budgetIdleMs,0),t.recordStuckMs=i(l.recordStuckMs,0),l.budgetsByStatus&&typeof l.budgetsByStatus=="object")for(const[f,b]of Object.entries(l.budgetsByStatus))typeof b=="number"&&Number.isFinite(b)&&(t.budgetsByStatus[f]=b);if(l.recordsByStatus&&typeof l.recordsByStatus=="object")for(const[f,b]of Object.entries(l.recordsByStatus))typeof b=="number"&&Number.isFinite(b)&&(t.recordsByStatus[f]=b);return t}function Lt(e){if(e==null||e==="")return"—";const t=String(e),l=t.includes(" ")&&!t.includes("T")?t.replace(" ","T")+"Z":t,f=typeof e=="number"?new Date(e):new Date(l);return isNaN(f.getTime())?t:f.toLocaleString("zh-CN",{hour12:!1})}function P(e){return typeof e!="number"||!Number.isFinite(e)?"$0":"$"+(Math.abs(e)<1?e.toFixed(4):e.toFixed(2))}const $t={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ht={class:"page-title"},Jt={class:"page-sub"},Kt={style:{display:"flex","align-items":"center",gap:"12px","flex-wrap":"wrap"}},Gt={style:{color:"var(--text-secondary)","font-size":"12px"}},Yt={class:"stat-sub"},Qt={class:"stat-sub"},Wt={class:"stat-sub"},Zt={class:"stat-sub"},qt={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Xt={key:2,style:{color:"var(--text-secondary)"}},te={style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ee={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},oe={style:{color:"#faad14","font-weight":"500","font-family":"monospace"}},se={key:5,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"12px"}},ae={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ne={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},le={key:2,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},re={style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ce={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},ue={key:4,style:{color:"#faad14","font-weight":"500","font-family":"monospace"}},ie={key:0,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},de={key:1,style:{color:"var(--text-muted)"}},pe={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},fe={style:{"font-size":"12px",color:"var(--text-secondary)",margin:"0 0 8px"}},ke={style:{"font-size":"12px",color:"var(--text-secondary)",margin:"0 0 8px"}},me={__name:"Tokens",setup(e){const{t}=Bt(),l=Ot(),f=O(!1),b=O("all"),g=O({stats:{totalCalls:0,totalInputTokens:0,totalOutputTokens:0,totalTokens:0,totalCostUsd:0,avgResponseTimeMs:0},today:{totalCalls:0,totalInputTokens:0,totalOutputTokens:0,totalTokens:0,totalCostUsd:0,avgResponseTimeMs:0}}),F=O([]),Q=O([]),h=O({totalEntries:0,totalHits:0,totalTokensSaved:0,expiredEntries:0}),R=O({totalBudgetsV2:0,totalRecordsV2:0,maxActiveBudgetsPerOwner:0,maxPendingRecordsPerBudget:0,budgetIdleMs:0,recordStuckMs:0,budgetsByStatus:{},recordsByStatus:{}}),j=O({noDb:!1,error:""}),W=O("breakdown"),it=G(()=>[{title:t("tokens.breakdownColumns.provider"),key:"provider",width:"130px"},{title:t("tokens.breakdownColumns.model"),key:"model"},{title:t("tokens.breakdownColumns.calls"),key:"calls",width:"90px"},{title:t("tokens.breakdownColumns.totalTokens"),key:"totalTokens",width:"180px"},{title:t("tokens.breakdownColumns.costUsd"),key:"costUsd",width:"180px"},{title:t("tokens.breakdownColumns.avgCost"),key:"avgCost",width:"110px"}]),dt=G(()=>[{title:t("tokens.recentColumns.createdAt"),key:"createdAt",width:"160px"},{title:t("tokens.recentColumns.provider"),key:"provider",width:"130px"},{title:t("tokens.recentColumns.model"),key:"model",width:"180px"},{title:t("tokens.recentColumns.tokens"),key:"tokens",width:"160px"},{title:t("tokens.recentColumns.costUsd"),key:"costUsd",width:"110px"},{title:t("tokens.recentColumns.responseTimeMs"),key:"responseTimeMs",width:"100px"},{title:t("tokens.recentColumns.endpoint"),key:"endpoint"}]),Z=G(()=>F.value.reduce((s,u)=>s+u.costUsd,0));function pt(s){const u=`tokens.period.${s}`,k=t(u);return k===u?s:k}function q(s){const u=["blue","green","purple","orange","cyan","magenta","gold","volcano"];let k=0;for(let z=0;z<(s||"").length;z++)k=k*31+s.charCodeAt(z)>>>0;return u[k%u.length]}function ft(s){return s<=500?"#52c41a":s<=1500?"#1677ff":s<=3e3?"#faad14":"#ff4d4f"}function kt(s){return s<=500?"green":s<=1500?"blue":s<=3e3?"gold":"red"}function C(s){return typeof s!="number"||!Number.isFinite(s)?"0":s.toLocaleString("en-US")}function mt(s){return!Z.value||s<=0?0:Math.min(100,Math.round(s/Z.value*100))}function X(s,u){return u?Math.round(s/u*100):0}function yt(s){const u=`tokens.budgetStatus.${s}`,k=t(u);return k===u?s:k}function vt(s){return{planning:"default",active:"green",suspended:"orange",archived:"default"}[s]||"default"}function _t(s){return{planning:"#888",active:"#52c41a",suspended:"#faad14",archived:"#666"}[s]||"#888"}function bt(s){const u=`tokens.recordStatus.${s}`,k=t(u);return k===u?s:k}function gt(s){return{pending:"default",recorded:"blue",billed:"green",rejected:"red",refunded:"orange"}[s]||"default"}function xt(s){return{pending:"#888",recorded:"#1677ff",billed:"#52c41a",rejected:"#ff4d4f",refunded:"#faad14"}[s]||"#888"}async function N(){f.value=!0,j.value={noDb:!1,error:""};try{const[s,u,k,z,L]=await Promise.all([l.execute(`tokens show --period ${b.value} --json`,8e3).catch(()=>({output:""})),l.execute("tokens breakdown --json",8e3).catch(()=>({output:""})),l.execute("tokens recent -n 100 --json",1e4).catch(()=>({output:""})),l.execute("tokens cache --json",6e3).catch(()=>({output:""})),l.execute("tokens stats-v2",6e3).catch(()=>({output:""}))]),I=[s,u,k,z].map(E=>V(E.output)).find(E=>E.noDb);I&&(j.value=I),g.value=lt(s.output),F.value=wt(u.output),Q.value=Nt(k.output),h.value=Vt(z.output),R.value=Ft(L.output)}catch(s){A.error(t("tokens.messages.loadFailed",{err:s?.message||s}))}finally{f.value=!1}}async function ht(){try{const{output:s}=await l.execute(`tokens show --period ${b.value} --json`,8e3),u=V(s);if(u.noDb){j.value=u;return}g.value=lt(s)}catch(s){A.error(t("tokens.messages.loadShowFailed",{err:s?.message||s}))}}async function Tt(){try{const{output:s}=await l.execute("tokens cache --cleanup",8e3);if(V(s).noDb){A.error(t("tokens.messages.needInit"));return}A.success(t("tokens.messages.cleanupOk")),await N()}catch(s){A.error(t("tokens.messages.cleanupFailed",{err:s?.message||s}))}}async function St(){try{const{output:s}=await l.execute("tokens cache --clear",8e3);if(V(s).noDb){A.error(t("tokens.messages.needInit"));return}A.success(t("tokens.messages.clearOk")),await N()}catch(s){A.error(t("tokens.messages.clearFailed",{err:s?.message||s}))}}return Et(N),(s,u)=>{const k=v("a-button"),z=v("a-space"),L=v("a-alert"),I=v("a-radio-button"),E=v("a-radio-group"),x=v("a-card"),B=v("a-statistic"),T=v("a-col"),$=v("a-row"),M=v("a-tag"),H=v("a-progress"),tt=v("a-table"),J=v("a-tab-pane"),et=v("a-popconfirm"),Ct=v("a-tabs");return p(),y("div",null,[m("div",$t,[m("div",null,[m("h2",Ht,c(a(t)("tokens.title")),1),m("p",Jt,c(a(t)("tokens.subtitle")),1)]),o(z,null,{default:n(()=>[o(k,{loading:f.value,onClick:N},{icon:n(()=>[o(a(At))]),default:n(()=>[S(" "+c(a(t)("tokens.refresh")),1)]),_:1},8,["loading"])]),_:1})]),j.value.noDb?(p(),D(L,{key:0,type:"info","show-icon":"",message:a(t)("tokens.noDb.message"),description:a(t)("tokens.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):_("",!0),o(x,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},"body-style":{padding:"10px 16px"}},{default:n(()=>[m("div",Kt,[m("span",Gt,c(a(t)("tokens.periodLabel")),1),o(E,{value:b.value,"onUpdate:value":u[0]||(u[0]=r=>b.value=r),size:"small","button-style":"solid",onChange:ht},{default:n(()=>[(p(!0),y(U,null,K(a(Mt),r=>(p(),D(I,{key:r,value:r},{default:n(()=>[S(c(pt(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1}),o($,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[o(T,{xs:12,sm:8,lg:5},{default:n(()=>[o(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(B,{title:a(t)("tokens.stats.calls"),value:g.value.stats.totalCalls,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[o(a(Rt))]),_:1},8,["title","value"]),m("div",Yt,c(a(t)("tokens.stats.callsToday",{count:g.value.today.totalCalls})),1)]),_:1})]),_:1}),o(T,{xs:12,sm:8,lg:5},{default:n(()=>[o(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(B,{title:a(t)("tokens.stats.totalTokens"),value:g.value.stats.totalTokens,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[o(a(ot))]),_:1},8,["title","value"]),m("div",Qt,c(a(t)("tokens.stats.tokensInOut",{inputs:C(g.value.stats.totalInputTokens),outputs:C(g.value.stats.totalOutputTokens)})),1)]),_:1})]),_:1}),o(T,{xs:12,sm:8,lg:5},{default:n(()=>[o(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(B,{title:a(t)("tokens.stats.totalCost"),value:g.value.stats.totalCostUsd,precision:g.value.stats.totalCostUsd<1?4:2,prefix:"$","value-style":{color:"#faad14",fontSize:"20px"}},null,8,["title","value","precision"]),m("div",Wt,c(a(t)("tokens.stats.costToday",{amount:a(P)(g.value.today.totalCostUsd)})),1)]),_:1})]),_:1}),o(T,{xs:12,sm:8,lg:5},{default:n(()=>[o(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(B,{title:a(t)("tokens.stats.avgResponse"),value:g.value.stats.avgResponseTimeMs,suffix:"ms",precision:0,"value-style":{color:ft(g.value.stats.avgResponseTimeMs),fontSize:"20px"}},{prefix:n(()=>[o(a(st))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(T,{xs:24,sm:8,lg:4},{default:n(()=>[o(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(B,{title:a(t)("tokens.stats.cacheHits"),value:h.value.totalHits,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:n(()=>[o(a(Ut))]),_:1},8,["title","value"]),m("div",Zt,c(a(t)("tokens.stats.cacheTokensSaved",{count:C(h.value.totalTokensSaved)})),1)]),_:1})]),_:1})]),_:1}),o(Ct,{activeKey:W.value,"onUpdate:activeKey":u[1]||(u[1]=r=>W.value=r),class:"tokens-tabs"},{default:n(()=>[o(J,{key:"breakdown",tab:a(t)("tokens.tabs.breakdown")},{default:n(()=>[o(tt,{columns:it.value,"data-source":F.value,pagination:{pageSize:20,showTotal:r=>a(t)("tokens.totals.models",{count:r})},size:"small",loading:f.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:d})=>[r.key==="provider"?(p(),D(M,{key:0,color:q(d.provider),style:{"font-family":"monospace"}},{default:n(()=>[S(c(d.provider),1)]),_:2},1032,["color"])):_("",!0),r.key==="model"?(p(),y("span",qt,c(d.model),1)):_("",!0),r.key==="calls"?(p(),y("span",Xt,c(C(d.calls)),1)):_("",!0),r.key==="totalTokens"?(p(),y(U,{key:3},[m("span",te,c(C(d.totalTokens)),1),m("div",ee,c(a(t)("tokens.breakdownDetails.tokensInOut",{inputs:C(d.inputTokens),outputs:C(d.outputTokens)})),1)],64)):_("",!0),r.key==="costUsd"?(p(),y(U,{key:4},[m("span",oe,c(a(P)(d.costUsd)),1),o(H,{percent:mt(d.costUsd),"show-info":!1,"stroke-color":"#faad14",size:"small",style:{"margin-top":"2px"}},null,8,["percent"])],64)):_("",!0),r.key==="avgCost"?(p(),y("span",se,c(d.calls>0?a(P)(d.costUsd/d.calls):"—"),1)):_("",!0)]),emptyText:n(()=>[m("div",ae,[o(a(ot),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),S(" "+c(a(t)("tokens.empty.breakdown")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),o(J,{key:"recent",tab:a(t)("tokens.tabs.recent")},{default:n(()=>[o(tt,{columns:dt.value,"data-source":Q.value,pagination:{pageSize:20,showTotal:r=>a(t)("tokens.totals.rows",{count:r})},size:"small",loading:f.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:d})=>[r.key==="createdAt"?(p(),y("span",ne,c(a(Lt)(d.createdAt)),1)):_("",!0),r.key==="provider"?(p(),D(M,{key:1,color:q(d.provider),style:{"font-family":"monospace"}},{default:n(()=>[S(c(d.provider),1)]),_:2},1032,["color"])):_("",!0),r.key==="model"?(p(),y("span",le,c(d.model),1)):_("",!0),r.key==="tokens"?(p(),y(U,{key:3},[m("span",re,c(C(d.totalTokens)),1),m("div",ce,c(C(d.inputTokens))+" / "+c(C(d.outputTokens)),1)],64)):_("",!0),r.key==="costUsd"?(p(),y("span",ue,c(a(P)(d.costUsd)),1)):_("",!0),r.key==="responseTimeMs"?(p(),D(M,{key:5,color:kt(d.responseTimeMs)},{default:n(()=>[S(c(d.responseTimeMs)+"ms",1)]),_:2},1032,["color"])):_("",!0),r.key==="endpoint"?(p(),y(U,{key:6},[d.endpoint?(p(),y("span",ie,c(d.endpoint),1)):(p(),y("span",de,"—"))],64)):_("",!0)]),emptyText:n(()=>[m("div",pe,[o(a(st),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),S(" "+c(a(t)("tokens.empty.recent")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),o(J,{key:"cache",tab:a(t)("tokens.tabs.cache")},{default:n(()=>[o($,{gutter:[16,16],style:{"margin-bottom":"16px"}},{default:n(()=>[o(T,{xs:12,sm:6},{default:n(()=>[o(x,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(B,{title:a(t)("tokens.cache.totalEntries"),value:h.value.totalEntries,"value-style":{color:"#1677ff",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1}),o(T,{xs:12,sm:6},{default:n(()=>[o(x,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(B,{title:a(t)("tokens.cache.totalHits"),value:h.value.totalHits,"value-style":{color:"#52c41a",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1}),o(T,{xs:12,sm:6},{default:n(()=>[o(x,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(B,{title:a(t)("tokens.cache.totalTokensSaved"),value:h.value.totalTokensSaved,"value-style":{color:"#13c2c2",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1}),o(T,{xs:12,sm:6},{default:n(()=>[o(x,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(B,{title:a(t)("tokens.cache.expiredEntries"),value:h.value.expiredEntries,"value-style":{color:h.value.expiredEntries>0?"#faad14":"#888",fontSize:"18px"}},null,8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),o(x,{title:a(t)("tokens.cache.maintenanceTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(z,null,{default:n(()=>[o(et,{title:a(t)("tokens.cache.cleanupConfirm"),"ok-text":a(t)("tokens.cache.cleanupOk"),"cancel-text":a(t)("common.cancel"),onConfirm:Tt},{default:n(()=>[o(k,{disabled:h.value.expiredEntries===0},{icon:n(()=>[o(a(at))]),default:n(()=>[S(" "+c(a(t)("tokens.cache.cleanupButton",{count:h.value.expiredEntries})),1)]),_:1},8,["disabled"])]),_:1},8,["title","ok-text","cancel-text"]),o(et,{title:a(t)("tokens.cache.clearConfirm"),"ok-text":a(t)("tokens.cache.clearOk"),"ok-type":"danger","cancel-text":a(t)("common.cancel"),onConfirm:St},{default:n(()=>[o(k,{danger:"",disabled:h.value.totalEntries===0},{icon:n(()=>[o(a(at))]),default:n(()=>[S(" "+c(a(t)("tokens.cache.clearButton")),1)]),_:1},8,["disabled"])]),_:1},8,["title","ok-text","cancel-text"])]),_:1})]),_:1},8,["title"]),o(x,{title:a(t)("tokens.v2.cardTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{default:n(()=>[o($,{gutter:[16,16]},{default:n(()=>[o(T,{xs:24,lg:12},{default:n(()=>[m("h5",fe,c(a(t)("tokens.v2.budgetsTitle")),1),(p(!0),y(U,null,K(a(ct),r=>(p(),y("div",{key:r,class:"bd-row"},[o(M,{color:vt(r),style:{"min-width":"80px","text-align":"center"}},{default:n(()=>[S(c(yt(r)),1)]),_:2},1032,["color"]),o(H,{percent:X(R.value.budgetsByStatus[r]||0,R.value.totalBudgetsV2),"stroke-color":_t(r),format:()=>`${R.value.budgetsByStatus[r]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1}),o(T,{xs:24,lg:12},{default:n(()=>[m("h5",ke,c(a(t)("tokens.v2.recordsTitle")),1),(p(!0),y(U,null,K(a(ut),r=>(p(),y("div",{key:r,class:"bd-row"},[o(M,{color:gt(r),style:{"min-width":"80px","text-align":"center"}},{default:n(()=>[S(c(bt(r)),1)]),_:2},1032,["color"]),o(H,{percent:X(R.value.recordsByStatus[r]||0,R.value.totalRecordsV2),"stroke-color":xt(r),format:()=>`${R.value.recordsByStatus[r]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1})]),_:1})]),_:1},8,["title"])]),_:1},8,["tab"])]),_:1},8,["activeKey"])])}}},ge=zt(me,[["__scopeId","data-v-605706da"]]);export{ge as default};
@@ -1 +0,0 @@
1
- import{A as o}from"./Row-BsuDvMpO.js";import{S as t}from"./index-BAy0ks7N.js";import"./responsiveObserve-Bt3UzGUn.js";import"./vendor-M5lGV-wr.js";import"./useFlexGapSupport-BQ4jJS_s.js";import"./styleChecker-DgazP1mu.js";import"./index-C3ImsNgP.js";import"./icons-DY9VpXfa.js";const l=t(o);export{l as default};
@@ -1 +0,0 @@
1
- import{C as o}from"./Col-BDk4BXjN.js";import{S as t}from"./index-BAy0ks7N.js";import"./index-C3ImsNgP.js";import"./vendor-M5lGV-wr.js";import"./icons-DY9VpXfa.js";const s=t(o);export{s as default};