chainlesschain 0.162.38 → 0.162.40

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 (166) hide show
  1. package/README.md +368 -1
  2. package/package.json +2 -2
  3. package/src/assets/web-panel/assets/{AIOps-DV0Q9zKL.js → AIOps-CPmKv82o.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-C6vH8rhL.js → ActionButton-BNDYY7Qd.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-BvPDc2ui.js → Analytics-BgCMCOsk.js} +3 -3
  6. package/src/assets/web-panel/assets/{AppLayout-CWnyqTqY.js → AppLayout-Dv4oJcqS.js} +5 -5
  7. package/src/assets/web-panel/assets/{Audit-BzenidV4.js → Audit-5iV3yrGa.js} +1 -1
  8. package/src/assets/web-panel/assets/{Backup-CSl7bNwK.js → Backup-CHDhnbzF.js} +1 -1
  9. package/src/assets/web-panel/assets/{BaseInput-DAY3iHIq.js → BaseInput-B6reFkra.js} +1 -1
  10. package/src/assets/web-panel/assets/{Chat-Jyhm9fgk.js → Chat-DwS5YyE2.js} +6 -6
  11. package/src/assets/web-panel/assets/{ChatBubbleRenderer-CwlAnVjy.js → ChatBubbleRenderer-CqXa87Hw.js} +1 -1
  12. package/src/assets/web-panel/assets/{Checkbox-D4rwURAi.js → Checkbox-yiW0M4RE.js} +1 -1
  13. package/src/assets/web-panel/assets/{Codegen-DYdjTEfC.js → Codegen-DoiVuD_g.js} +1 -1
  14. package/src/assets/web-panel/assets/{Col-DsVyZ_fS.js → Col-BVASLexk.js} +1 -1
  15. package/src/assets/web-panel/assets/{Community-CjCpl27Q.js → Community-D6KQ7JoU.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compact-kt18dsjm.js → Compact-Bl9Uhb6v.js} +1 -1
  17. package/src/assets/web-panel/assets/{Compliance-BV5urquU.js → Compliance-MM31-dba.js} +1 -1
  18. package/src/assets/web-panel/assets/{Cowork-C4SovPWC.js → Cowork-PjU_1ieD.js} +2 -2
  19. package/src/assets/web-panel/assets/{Cron-uuNs_xzA.js → Cron-DorNtPZL.js} +2 -2
  20. package/src/assets/web-panel/assets/{Crosschain-DR5a65tR.js → Crosschain-Bm5ts2Kw.js} +1 -1
  21. package/src/assets/web-panel/assets/{DID-B1KTf2-5.js → DID-7Y3jlFdY.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dashboard-Dkj7XgED.js → Dashboard-1oE532bG.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dropdown-BhXCuJ19.js → Dropdown-hJlOPs0s.js} +1 -1
  24. package/src/assets/web-panel/assets/{EmailListRenderer-DG8365Iv.js → EmailListRenderer-BEqJxKaO.js} +1 -1
  25. package/src/assets/web-panel/assets/{FamilyGuardDashboard-BdHGPu39.js → FamilyGuardDashboard-BvCGwB6X.js} +1 -1
  26. package/src/assets/web-panel/assets/{Federation-Dwvxl0zR.js → Federation-CsXI72e5.js} +1 -1
  27. package/src/assets/web-panel/assets/{FormItemContext-BVmhCVWU.js → FormItemContext-Dh9SMul-.js} +1 -1
  28. package/src/assets/web-panel/assets/{GenericCardRenderer-DDPjvF2s.js → GenericCardRenderer-9edWzrtG.js} +1 -1
  29. package/src/assets/web-panel/assets/{Git-foK6WTSr.js → Git-ZYhNL8Xk.js} +2 -2
  30. package/src/assets/web-panel/assets/{Governance-CfqMdu6Y.js → Governance-BwAdp8QA.js} +1 -1
  31. package/src/assets/web-panel/assets/{Inference-BKrLO4GO.js → Inference-5C-M1XsH.js} +1 -1
  32. package/src/assets/web-panel/assets/{KnowledgeGraph-6o6Q-mmF.js → KnowledgeGraph-zFAi-zCi.js} +1 -1
  33. package/src/assets/web-panel/assets/Logs-BZsEdbgE.js +2 -0
  34. package/src/assets/web-panel/assets/{Marketplace-BWkfEocP.js → Marketplace-BP6gErRK.js} +1 -1
  35. package/src/assets/web-panel/assets/{McpTools-BPebQbWU.js → McpTools-CXVzoLrd.js} +4 -4
  36. package/src/assets/web-panel/assets/{Memory-C0Dq-X3C.js → Memory-BIpChb4-.js} +2 -2
  37. package/src/assets/web-panel/assets/{MobileBridge-DRBoutTY.js → MobileBridge-B4O7wDT8.js} +2 -2
  38. package/src/assets/web-panel/assets/MobileProjects-7VPMoHus.js +1 -0
  39. package/src/assets/web-panel/assets/{Mtc-Cj3QPM9p.js → Mtc-BTmEyTM5.js} +6 -6
  40. package/src/assets/web-panel/assets/{MtcAudit-rBQYbfQR.js → MtcAudit-CsbG9LlV.js} +2 -2
  41. package/src/assets/web-panel/assets/{Multisig-Dbuy4OY4.js → Multisig-CL8yoGon.js} +3 -3
  42. package/src/assets/web-panel/assets/{NLProgramming-CMnt1se-.js → NLProgramming-C2cIlIp_.js} +1 -1
  43. package/src/assets/web-panel/assets/{Notes-BX9tSCiF.js → Notes-7aBk_n_M.js} +4 -4
  44. package/src/assets/web-panel/assets/{NotificationSettings-BFeirVRq.js → NotificationSettings-BuhQk4rJ.js} +1 -1
  45. package/src/assets/web-panel/assets/{OrderTableRenderer-ybiMlKQW.js → OrderTableRenderer-mqMFZu0x.js} +1 -1
  46. package/src/assets/web-panel/assets/{Organization-kTfRxKqk.js → Organization-CAdq-170.js} +4 -4
  47. package/src/assets/web-panel/assets/{Overflow-CtuCAzwV.js → Overflow--Xn0E787.js} +1 -1
  48. package/src/assets/web-panel/assets/{P2P-KfbciaP3.js → P2P-DYt3YAXI.js} +2 -2
  49. package/src/assets/web-panel/assets/{PdhVaultBrowser-bqEUFhgC.js → PdhVaultBrowser-Bgb_v8WN.js} +5 -5
  50. package/src/assets/web-panel/assets/{Permissions-BgMypz-z.js → Permissions-DoFlmoaW.js} +3 -3
  51. package/src/assets/web-panel/assets/{PersonalDataHub-C3zUE-1z.js → PersonalDataHub-C-FJB3a0.js} +2 -2
  52. package/src/assets/web-panel/assets/{Pipeline-iX-pYHpC.js → Pipeline-3bL2RzzL.js} +1 -1
  53. package/src/assets/web-panel/assets/{Privacy-B01uzeFM.js → Privacy-c4igYUCF.js} +1 -1
  54. package/src/assets/web-panel/assets/{ProjectInit-TsfbzJp7.js → ProjectInit-C0QS1UPR.js} +2 -2
  55. package/src/assets/web-panel/assets/{ProjectSettings-iGvMp8sM.js → ProjectSettings-CkYC0xkE.js} +2 -2
  56. package/src/assets/web-panel/assets/{Projects-Be9k29iQ.js → Projects-Di17SYft.js} +1 -1
  57. package/src/assets/web-panel/assets/{Providers-C9Pc8dqo.js → Providers-41NySsLt.js} +1 -1
  58. package/src/assets/web-panel/assets/{QuickAsk-DN_yFiVO.js → QuickAsk-DHq9pD7z.js} +1 -1
  59. package/src/assets/web-panel/assets/{Recommend-CvSNgl7H.js → Recommend-CLjgFPLv.js} +1 -1
  60. package/src/assets/web-panel/assets/{Reputation-S6BCz8xH.js → Reputation-EIrgErm3.js} +1 -1
  61. package/src/assets/web-panel/assets/{Row-CTRYCaqP.js → Row-GAvKzKH7.js} +1 -1
  62. package/src/assets/web-panel/assets/{RssFeed-Cu8_P5ll.js → RssFeed-CYCNsVmD.js} +3 -3
  63. package/src/assets/web-panel/assets/{Search-rZ1Xza_U.js → Search-DWOE32k8.js} +1 -1
  64. package/src/assets/web-panel/assets/{Security-CF43IJHX.js → Security-Dgh8Jevn.js} +4 -4
  65. package/src/assets/web-panel/assets/{Services-BobNHzne.js → Services-BxdgP67N.js} +2 -2
  66. package/src/assets/web-panel/assets/{Skeleton-DWJ2kfuI.js → Skeleton-D-xT4ZkA.js} +1 -1
  67. package/src/assets/web-panel/assets/{Skills-AmEZgHYr.js → Skills-BKN4lfSa.js} +1 -1
  68. package/src/assets/web-panel/assets/{Sla-DTS-fBiY.js → Sla--N1TudpS.js} +1 -1
  69. package/src/assets/web-panel/assets/{SpeechSettings-DEr6MHRU.js → SpeechSettings-B0vfJpEh.js} +1 -1
  70. package/src/assets/web-panel/assets/{SyncSettings-CVs9alv_.js → SyncSettings-BuBAbPAh.js} +2 -2
  71. package/src/assets/web-panel/assets/Tasks-4XugjJ87.js +1 -0
  72. package/src/assets/web-panel/assets/{Templates-CTNjZRKA.js → Templates-DI2giLgc.js} +1 -1
  73. package/src/assets/web-panel/assets/{Tenant-DPbXg0Pg.js → Tenant-BiTWvm0g.js} +1 -1
  74. package/src/assets/web-panel/assets/{Terminal-DhKXcPw2.js → Terminal-vV6AWGDi.js} +2 -2
  75. package/src/assets/web-panel/assets/{TimelineRenderer-B0DMZOpk.js → TimelineRenderer-BmgzKdAp.js} +1 -1
  76. package/src/assets/web-panel/assets/{Tokens-RvWuBXgg.js → Tokens-Nvupdm6p.js} +1 -1
  77. package/src/assets/web-panel/assets/{Trigger-2O-BaTQG.js → Trigger-DRfR77WJ.js} +1 -1
  78. package/src/assets/web-panel/assets/{Trust-6qY35L-C.js → Trust-De0Jal_6.js} +1 -1
  79. package/src/assets/web-panel/assets/{UkeySign-DhV1wYtQ.js → UkeySign-Dzo4-VAM.js} +1 -1
  80. package/src/assets/web-panel/assets/{VideoEditing-DgqA5UZm.js → VideoEditing-hg2ytiJB.js} +1 -1
  81. package/src/assets/web-panel/assets/{Wallet-DJRYdUAK.js → Wallet--bU5-gRh.js} +4 -4
  82. package/src/assets/web-panel/assets/{WebAuthn-C2W-x0cg.js → WebAuthn-DZptt-PV.js} +5 -5
  83. package/src/assets/web-panel/assets/{WorkflowEditor-BP2tkDHe.js → WorkflowEditor-Dy9223bY.js} +1 -1
  84. package/src/assets/web-panel/assets/{chat-CGVfeoTn.js → chat-DaxGeI9w.js} +1 -1
  85. package/src/assets/web-panel/assets/{colors-BmjRolM1.js → colors-Cu2VEci3.js} +1 -1
  86. package/src/assets/web-panel/assets/{compact-item-BvJJkjZE.js → compact-item-CGolhyJq.js} +1 -1
  87. package/src/assets/web-panel/assets/{createContext-DyhlvRYs.js → createContext-DY7EFhkD.js} +1 -1
  88. package/src/assets/web-panel/assets/devWarning-DV2BNd59.js +1 -0
  89. package/src/assets/web-panel/assets/{hasIn-BoBMR89s.js → hasIn-Bpc-NoFN.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-CSgbOGaP.js → index-1D4sfByw.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-C1t-r7yV.js → index-8h9y5S6X.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-FKFT-QTk.js → index-BP9P6chP.js} +1 -1
  93. package/src/assets/web-panel/assets/{index-CIaGw7vl.js → index-BQ2z6Ky5.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-CQJVedQ3.js → index-BRAgl2J_.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-BycpeGfj.js → index-BTvwiqJE.js} +1 -1
  96. package/src/assets/web-panel/assets/index-BZqtTmyG.js +1 -0
  97. package/src/assets/web-panel/assets/{index-D0YToIi_.js → index-BjfxHEmX.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-BT1SQ9nj.js → index-BlHq81Ow.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-DyS4I4L-.js → index-Bn5gM9Oy.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-81tWFqfN.js → index-Bz83ngs0.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-xZdOioVg.js → index-C-Hkl_2G.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-Cbh-lCxq.js → index-C0_zeYnx.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-xPSzUoWT.js → index-C2RpsAiO.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-n-N19np-.js → index-CBSk_VrT.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-VXVukhBA.js → index-CFAnEzRW.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-DtKdCXHW.js → index-CGqeHu_F.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-Beh7jDbS.js → index-CJFYF8F9.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-BvvNnWXe.js → index-CLNqZF55.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-DeeLHcMY.js → index-CaKXhpEu.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-BuQrONgf.js → index-Ciw5-X1B.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-CDPMHKQi.js → index-D0GN5tdM.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-Bm_MmdwP.js → index-D63ObMdQ.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-DIPZ6hbJ.js → index-DAov-rJR.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-39VDXdn6.js → index-DElatOQ0.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DwTgvhOL.js → index-DNX81oSR.js} +1 -1
  116. package/src/assets/web-panel/assets/index-DUpwdJt9.js +1 -0
  117. package/src/assets/web-panel/assets/{index-DgbWSwr5.js → index-DZ4Vm8dQ.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-D-93XwJd.js → index-DexYD87j.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-C0xn6hOr.js → index-DfKmAEtE.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-ZNIms1nA.js → index-DldaToUA.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-wLAjVpmJ.js → index-DpRSzAFl.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-Te0ruvY_.js → index-DxXkr-NS.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-Czsbrn75.js → index-RumxOD0S.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-vF1pR00A.js → index-VBRPxZeE.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-BqGNmoKy.js → index-eF9RV_4c.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-CzDVBBcg.js → index-lfP8sdzB.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-Y1b8i0NV.js → index-oJQgRCrR.js} +3 -3
  128. package/src/assets/web-panel/assets/{index-ByWpNjTj.js → index-rkm7dHwG.js} +1 -1
  129. package/src/assets/web-panel/assets/{initDefaultProps-BLKSE8he.js → initDefaultProps-CkJZfCo8.js} +1 -1
  130. package/src/assets/web-panel/assets/{motion-Bb59qqLK.js → motion-BerbusV1.js} +1 -1
  131. package/src/assets/web-panel/assets/{move-CB3pYCk6.js → move-DyRzKPD4.js} +1 -1
  132. package/src/assets/web-panel/assets/{omit-iImQWuU7.js → omit-CCdrTUAs.js} +1 -1
  133. package/src/assets/web-panel/assets/{pickAttrs-DRP2Chqo.js → pickAttrs-mVDeZx2m.js} +1 -1
  134. package/src/assets/web-panel/assets/{placementArrow-BrlfD4tF.js → placementArrow-Bb_-Fs_o.js} +1 -1
  135. package/src/assets/web-panel/assets/{responsiveObserve-Cqxkuh5H.js → responsiveObserve-C6TMj1R_.js} +1 -1
  136. package/src/assets/web-panel/assets/{slide-nxKEuLMj.js → slide-CdCNsy1J.js} +1 -1
  137. package/src/assets/web-panel/assets/{statusUtils-30E47KSk.js → statusUtils-Ccxd1rFd.js} +1 -1
  138. package/src/assets/web-panel/assets/{styleChecker-Dn2_-5bn.js → styleChecker-3IL-yw1V.js} +1 -1
  139. package/src/assets/web-panel/assets/{useFlexGapSupport-DkZ00X6F.js → useFlexGapSupport-CH8DjUHl.js} +1 -1
  140. package/src/assets/web-panel/assets/{useFs-ByrwSCOr.js → useFs-Cn9nE2sp.js} +1 -1
  141. package/src/assets/web-panel/assets/{usePersonalDataHub-BDY6jtUD.js → usePersonalDataHub-BPyT0HO7.js} +1 -1
  142. package/src/assets/web-panel/assets/{vnode-BL2q5BLv.js → vnode-Mfm7vy07.js} +1 -1
  143. package/src/assets/web-panel/assets/{zoom-BSkPKE42.js → zoom-CTpAiAE9.js} +1 -1
  144. package/src/assets/web-panel/index.html +1 -1
  145. package/src/commands/init.js +84 -2
  146. package/src/commands/session.js +36 -12
  147. package/src/index.js +10 -0
  148. package/src/lib/agent-session-export.js +124 -0
  149. package/src/lib/ide-context.js +333 -0
  150. package/src/lib/project-instructions.js +275 -0
  151. package/src/lib/project-inventory.js +355 -0
  152. package/src/lib/repl-bang-memorize.js +142 -0
  153. package/src/lib/repl-completer.js +154 -0
  154. package/src/lib/update-notice-refresh.mjs +10 -0
  155. package/src/lib/update-notice.js +154 -0
  156. package/src/repl/agent-repl.js +154 -0
  157. package/src/runtime/agent-core.js +195 -0
  158. package/src/runtime/headless-runner.js +19 -0
  159. package/src/runtime/headless-stream.js +19 -9
  160. package/src/runtime/system-prompt.js +21 -1
  161. package/src/assets/web-panel/assets/Logs-L5ZIW0Dz.js +0 -2
  162. package/src/assets/web-panel/assets/MobileProjects-BMP6eLp1.js +0 -1
  163. package/src/assets/web-panel/assets/Tasks-BcVDAxdi.js +0 -1
  164. package/src/assets/web-panel/assets/devWarning-CetO0WH0.js +0 -1
  165. package/src/assets/web-panel/assets/index-BZVz-WfV.js +0 -1
  166. package/src/assets/web-panel/assets/index-D0-bvFy3.js +0 -1
@@ -1 +1 @@
1
- import{I as h,J as I,U as w,R as s,c as a,K as n,V as A,o as me,b as O,a as re,r as v,P as f,Q as m,F as ee,Z as te,S as T}from"./vendor-BvqAck49.js";import{_ as je,b as he,u as ke,E as ye,d as k}from"./index-Y1b8i0NV.js";import{s as Ue}from"./community-parser-CO25nZFt.js";import{k as Be,f as qe,am as Ne,a8 as De,aE as Ge,j as Je,as as Ke,R as Ve}from"./icons-DP3uiYxy.js";function E(l){const t=Ue(l);if(!t)return null;try{return JSON.parse(t)}catch{}const o=t.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!o)return null;try{return JSON.parse(o[0])}catch{return null}}const xe=Object.freeze(["closed","open","half_open"]),Ie=Object.freeze(["healthy","degraded","unhealthy","unknown"]),We=Object.freeze(["heartbeat","latency","success_rate","cpu_usage","memory_usage"]);function y(l,t=0){return typeof l=="number"&&Number.isFinite(l)?l:t}function Ye(l,t=0){if(!l||typeof l!="object")return null;const o=l.node_id??l.nodeId??"";if(!o)return null;const e=String(l.state||"closed").toLowerCase();return{key:o,nodeId:o,state:e,failureCount:y(l.failure_count??l.failureCount,0),successCount:y(l.success_count??l.successCount,0),failureThreshold:y(l.failure_threshold??l.failureThreshold,0),successThreshold:y(l.success_threshold??l.successThreshold,0),openTimeout:y(l.open_timeout??l.openTimeout,0),lastFailureTime:l.last_failure_time??l.lastFailureTime??null,lastSuccessTime:l.last_success_time??l.lastSuccessTime??null,stateChangedAt:l.state_changed_at??l.stateChangedAt??null,metadata:l.metadata??null,createdAt:l.created_at??l.createdAt??null,updatedAt:l.updated_at??l.updatedAt??null,_idx:t}}function ge(l){const t=E(l);return Array.isArray(t)?t.map(Ye).filter(Boolean):[]}function Qe(l,t=0){if(!l||typeof l!="object")return null;const o=l.check_id??l.checkId??"";return o?{key:o,checkId:o,nodeId:l.node_id??l.nodeId??"",checkType:String(l.check_type??l.checkType??"").toLowerCase(),status:String(l.status||"unknown").toLowerCase(),metrics:l.metrics??null,checkedAt:l.checked_at??l.checkedAt??null,_idx:t}:null}function _e(l){const t=E(l);return Array.isArray(t)?t.map(Qe).filter(Boolean):[]}function Ze(l,t=0){if(!l||typeof l!="object")return null;const o=l.nodeId??l.node_id??"";return o?{key:o,nodeId:o,minConnections:y(l.minConnections,0),maxConnections:y(l.maxConnections,0),idleTimeout:y(l.idleTimeout,0),activeConnections:y(l.activeConnections,0),idleConnections:y(l.idleConnections,0),totalCreated:y(l.totalCreated,0),totalDestroyed:y(l.totalDestroyed,0),waitingRequests:y(l.waitingRequests,0),createdAt:l.createdAt??null,_idx:t}:null}function be(l){const t=E(l);return Array.isArray(t)?t.map(Ze).filter(Boolean):[]}function pe(l){const t=E(l);if(!t||typeof t!="object"||Array.isArray(t))return{nodeId:"",status:"unknown",checks:0,latestChecks:[]};const e=(Array.isArray(t.latestChecks)?t.latestChecks:[]).filter(g=>g&&typeof g=="object").map(g=>({checkType:String(g.checkType??g.check_type??"").toLowerCase(),status:String(g.status||"unknown").toLowerCase(),checkedAt:g.checkedAt??g.checked_at??null}));return{nodeId:t.nodeId??t.node_id??"",status:String(t.status||"unknown").toLowerCase(),checks:y(t.checks,0),latestChecks:e}}function le(l){const t=E(l);if(!t||typeof t!="object"||Array.isArray(t))return{ok:!1,id:null,reason:""};const o=!!(t.registered||t.recorded||t.initialized),e=t.nodeId??t.checkId??null;return{ok:o,id:e?String(e):null,reason:t.reason?String(t.reason):""}}function ve(l){const t=E(l);return!t||typeof t!="object"||Array.isArray(t)?{ok:!1,state:"",previousState:"",failureCount:0,successCount:0,remainingMs:0,reason:""}:{ok:!!(t.updated||t.reset),state:String(t.state||""),previousState:String(t.previousState||""),failureCount:y(t.failureCount,0),successCount:y(t.successCount,0),remainingMs:y(t.remainingMs,0),reason:t.reason?String(t.reason):""}}function Ce(l){const t=E(l);return!t||typeof t!="object"||Array.isArray(t)?{ok:!1,active:0,idle:0,waiting:0,reason:""}:{ok:!!(t.acquired||t.released||t.destroyed),active:y(t.active,0),idle:y(t.idle,0),waiting:y(t.waiting,0),reason:t.reason?String(t.reason):""}}function Te(l){const t=E(l);return!t||typeof t!="object"||Array.isArray(t)?{ok:!1,reason:""}:{ok:!!t.removed,reason:t.reason?String(t.reason):""}}const Xe={circuitBreakers:{total:0,byState:{}},healthChecks:{total:0,byStatus:{}},connectionPools:{total:0,totalActive:0,totalIdle:0,totalConnections:0}};function Se(l){const t=JSON.parse(JSON.stringify(Xe));for(const e of xe)t.circuitBreakers.byState[e]=0;for(const e of Ie)t.healthChecks.byStatus[e]=0;const o=E(l);if(!o||typeof o!="object"||Array.isArray(o))return t;if(o.circuitBreakers&&typeof o.circuitBreakers=="object"&&(t.circuitBreakers.total=y(o.circuitBreakers.total,0),o.circuitBreakers.byState&&typeof o.circuitBreakers.byState=="object"))for(const[e,g]of Object.entries(o.circuitBreakers.byState))typeof g=="number"&&Number.isFinite(g)&&(t.circuitBreakers.byState[e]=g);if(o.healthChecks&&typeof o.healthChecks=="object"&&(t.healthChecks.total=y(o.healthChecks.total,0),o.healthChecks.byStatus&&typeof o.healthChecks.byStatus=="object"))for(const[e,g]of Object.entries(o.healthChecks.byStatus))typeof g=="number"&&Number.isFinite(g)&&(t.healthChecks.byStatus[e]=g);return o.connectionPools&&typeof o.connectionPools=="object"&&(t.connectionPools.total=y(o.connectionPools.total,0),t.connectionPools.totalActive=y(o.connectionPools.totalActive,0),t.connectionPools.totalIdle=y(o.connectionPools.totalIdle,0),t.connectionPools.totalConnections=y(o.connectionPools.totalConnections,0)),t}function $e(l){if(l==null||l==="")return"—";const t=typeof l=="number"?new Date(l):new Date(String(l));return isNaN(t.getTime())?String(l):t.toLocaleString("zh-CN",{hour12:!1})}const et={__name:"Federation",setup(l,{expose:t}){t();const{t:o}=he(),e=ke(),g=ye.PRESENTED_IMAGE_SIMPLE,oe=v(!1),_=v(!1),B=v(!1),D=v([]),J=v([]),q=v([]),F=v({circuitBreakers:{total:0,byState:{closed:0,open:0,half_open:0}},healthChecks:{total:0,byStatus:{healthy:0,degraded:0,unhealthy:0,unknown:0}},connectionPools:{total:0,totalActive:0,totalIdle:0,totalConnections:0}}),M=v("breakers"),P=v(""),K=v(""),R=v(""),G=v(!1),L=v(!1),V=v(!1),b=re({nodeId:"",failureThreshold:5,successThreshold:2,openTimeout:6e4}),C=re({nodeId:"",checkType:"heartbeat",status:"healthy",metrics:""}),p=re({nodeId:"",min:5,max:50,idleTimeout:3e5}),W=v(""),N=v(null),Y=O(()=>[{title:o("federation.breakerColumns.node"),key:"nodeId",dataIndex:"nodeId",width:"200px"},{title:o("federation.breakerColumns.state"),key:"state",width:"100px"},{title:o("federation.breakerColumns.failure"),key:"failure",width:"120px"},{title:o("federation.breakerColumns.success"),key:"success",width:"120px"},{title:o("federation.breakerColumns.openTimeout"),key:"openTimeout",dataIndex:"openTimeout",width:"110px"},{title:o("federation.breakerColumns.updatedAt"),key:"updatedAt",width:"170px"},{title:o("federation.breakerColumns.action"),key:"action",width:"340px"}]),ie=O(()=>[{title:o("federation.checkColumns.id"),key:"checkId",width:"130px"},{title:o("federation.checkColumns.node"),key:"nodeId",dataIndex:"nodeId",width:"180px"},{title:o("federation.checkColumns.metric"),key:"checkType",width:"120px"},{title:o("federation.checkColumns.status"),key:"status",width:"100px"},{title:o("federation.checkColumns.metrics"),key:"metrics"},{title:o("federation.checkColumns.checkedAt"),key:"checkedAt",width:"170px"}]),se=O(()=>[{title:o("federation.poolColumns.node"),key:"nodeId",dataIndex:"nodeId",width:"200px"},{title:o("federation.poolColumns.active"),key:"activeConnections",dataIndex:"activeConnections",width:"90px"},{title:o("federation.poolColumns.idle"),key:"idleConnections",dataIndex:"idleConnections",width:"90px"},{title:o("federation.poolColumns.max"),key:"maxConnections",dataIndex:"maxConnections",width:"90px"},{title:o("federation.poolColumns.utilization"),key:"utilization",width:"160px"},{title:o("federation.poolColumns.waiting"),key:"waitingRequests",dataIndex:"waitingRequests",width:"90px"},{title:o("federation.poolColumns.totalCreated"),key:"totalCreated",dataIndex:"totalCreated",width:"90px"},{title:o("federation.poolColumns.createdAt"),key:"createdAt",width:"170px"},{title:o("federation.poolColumns.action"),key:"action",width:"240px"}]),x=O(()=>[{title:o("federation.latestColumns.metric"),key:"checkType",width:"160px"},{title:o("federation.latestColumns.status"),key:"status",width:"120px"},{title:o("federation.latestColumns.checkedAt"),key:"checkedAt"}]),j=O(()=>P.value?D.value.filter(i=>i.state===P.value):D.value),Q=O(()=>{let i=J.value;return K.value&&(i=i.filter(d=>d.checkType===K.value)),R.value&&(i=i.filter(d=>d.status===R.value)),i}),Z=O(()=>(F.value.circuitBreakers.byState.open||0)+(F.value.circuitBreakers.byState.half_open||0)),ae=O(()=>{const i=F.value.circuitBreakers.total;return i?(F.value.circuitBreakers.byState.closed||0)/i*100:100});function ne(i){return i.maxConnections?Math.round(i.activeConnections/i.maxConnections*100):0}function X(i){const d=`federation.state.${i}`,c=o(d);return c===d?i:c}function r(i){return{closed:"green",open:"red",half_open:"gold"}[i]||"default"}function u(i){const d=`federation.metric.${i}`,c=o(d);return c===d?i:c}function H(i){const d=`federation.health.${i}`,c=o(d);return c===d?i:c}function Ae(i){return{healthy:"green",degraded:"gold",unhealthy:"red",unknown:"default"}[i]||"default"}function we(i){return i>=95?"#52c41a":i>=80?"#1677ff":i>=60?"#faad14":"#ff4d4f"}function Fe(i,d){return i?i.length<=d?i:i.slice(0,d)+"…":""}function z(i){return`"${String(i).replace(/"/g,'\\"')}"`}async function U(){oe.value=!0;try{const[i,d,c,$]=await Promise.all([e.execute("federation breakers --limit 200 --json",1e4).catch(()=>({output:""})),e.execute("federation checks --limit 200 --json",1e4).catch(()=>({output:""})),e.execute("federation pools --json",8e3).catch(()=>({output:""})),e.execute("federation stats --json",8e3).catch(()=>({output:""}))]);D.value=ge(i.output),J.value=_e(d.output),q.value=be(c.output),F.value=Se($.output)}catch(i){k.error(o("federation.messages.loadFailed",{err:i?.message||i}))}finally{oe.value=!1}}async function Re(){if(!b.nodeId.trim()){k.warning(o("federation.messages.nodeIdRequired"));return}_.value=!0;try{const i=[`federation register ${z(b.nodeId.trim())}`];b.failureThreshold&&i.push(`-f ${b.failureThreshold}`),b.successThreshold&&i.push(`-s ${b.successThreshold}`),b.openTimeout&&i.push(`-t ${b.openTimeout}`),i.push("--json");const{output:d}=await e.execute(i.join(" "),1e4),c=le(d);if(!c.ok){k.error(o("federation.messages.registerFailed",{err:c.reason||d.slice(0,120)}));return}k.success(o("federation.messages.registerOk",{id:c.id})),G.value=!1,de(),await U()}catch(i){k.error(o("federation.messages.registerFailed",{err:i?.message||i}))}finally{_.value=!1}}async function Me(){if(!C.nodeId.trim()){k.warning(o("federation.messages.nodeIdRequired"));return}_.value=!0;try{const i=[`federation check ${z(C.nodeId.trim())}`];i.push(`-t ${C.checkType}`),i.push(`-s ${C.status}`),C.metrics.trim()&&i.push(`-m ${z(C.metrics.trim())}`),i.push("--json");const{output:d}=await e.execute(i.join(" "),1e4),c=le(d);if(!c.ok){k.error(o("federation.messages.checkFailed",{err:c.reason||d.slice(0,120)}));return}k.success(o("federation.messages.checkOk",{id:c.id?.slice(0,8)})),L.value=!1,ce(),await U()}catch(i){k.error(o("federation.messages.checkFailed",{err:i?.message||i}))}finally{_.value=!1}}async function Pe(){if(!p.nodeId.trim()){k.warning(o("federation.messages.nodeIdRequired"));return}_.value=!0;try{const i=[`federation pool-init ${z(p.nodeId.trim())}`];p.min&&i.push(`--min ${p.min}`),p.max&&i.push(`--max ${p.max}`),p.idleTimeout&&i.push(`--idle-timeout ${p.idleTimeout}`),i.push("--json");const{output:d}=await e.execute(i.join(" "),1e4),c=le(d);if(!c.ok){k.error(o("federation.messages.poolFailed",{err:c.reason||d.slice(0,120)}));return}k.success(o("federation.messages.poolOk",{id:c.id})),V.value=!1,ue(),await U()}catch(i){k.error(o("federation.messages.poolFailed",{err:i?.message||i}))}finally{_.value=!1}}async function Le(i,d){try{const c=`federation ${d} ${z(i.nodeId)} --json`,{output:$}=await e.execute(c,8e3),S=ve($);if(!S.ok){k.warning(S.remainingMs?o("federation.messages.operationCooldown",{ms:S.remainingMs}):S.reason||o("federation.messages.operationNoEffect"));return}S.previousState&&S.state&&S.previousState!==S.state?k.success(o("federation.messages.transitionMsg",{from:X(S.previousState),to:X(S.state)})):k.success(o(d==="reset"?"federation.messages.resetMsg":"federation.messages.recordedMsg")),await U()}catch(c){k.error(o("federation.messages.operationFailed",{err:c?.message||c}))}}async function He(i){try{const{output:d}=await e.execute(`federation remove ${z(i.nodeId)} --json`,8e3),c=Te(d);if(!c.ok){k.error(o("federation.messages.removeFailed",{err:c.reason||d.slice(0,120)}));return}k.success(o("federation.messages.removeOk")),await U()}catch(d){k.error(o("federation.messages.removeFailed",{err:d?.message||d}))}}async function ze(i,d){try{const c={acquire:"pool-acquire",release:"pool-release",destroy:"pool-destroy"}[d],{output:$}=await e.execute(`federation ${c} ${z(i.nodeId)} --json`,8e3),S=Ce($);if(!S.ok){k.warning(S.reason||o("federation.messages.operationNoEffect"));return}if(d==="destroy")k.success(o("federation.messages.destroyMsg"));else{const Ee=d==="acquire"?"federation.messages.acquireMsg":"federation.messages.releaseMsg";k.success(o(Ee,{active:S.active,idle:S.idle}))}await U()}catch(c){k.error(o("federation.messages.operationFailed",{err:c?.message||c}))}}async function Oe(){if(!W.value.trim()){k.warning(o("federation.messages.nodeIdRequired"));return}B.value=!0;try{const{output:i}=await e.execute(`federation node-health ${z(W.value.trim())} --json`,8e3);N.value=pe(i)}catch(i){k.error(o("federation.messages.queryFailed",{err:i?.message||i}))}finally{B.value=!1}}function de(){b.nodeId="",b.failureThreshold=5,b.successThreshold=2,b.openTimeout=6e4}function ce(){C.nodeId="",C.checkType="heartbeat",C.status="healthy",C.metrics=""}function ue(){p.nodeId="",p.min=5,p.max=50,p.idleTimeout=3e5}me(U);const fe={t:o,ws:e,EMPTY_IMG:g,loading:oe,creating:_,queryingHealth:B,breakers:D,checks:J,pools:q,stats:F,activeTab:M,stateFilter:P,metricFilter:K,healthStatusFilter:R,showRegisterModal:G,showCheckModal:L,showPoolModal:V,registerForm:b,checkForm:C,poolForm:p,nodeHealthInput:W,nodeHealth:N,breakerColumns:Y,checkColumns:ie,poolColumns:se,latestChecksColumns:x,filteredBreakers:j,filteredChecks:Q,degradedCount:Z,availabilityRate:ae,poolUtilization:ne,stateLabel:X,stateColor:r,metricLabel:u,healthLabel:H,healthColor:Ae,rateColor:we,truncate:Fe,shellQuote:z,loadAll:U,submitRegister:Re,submitCheck:Me,submitPool:Pe,recordTransition:Le,removeNode:He,poolAction:ze,queryNodeHealth:Oe,resetRegisterForm:de,resetCheckForm:ce,resetPoolForm:ue,ref:v,reactive:re,computed:O,onMounted:me,get useI18n(){return he},get ReloadOutlined(){return Ve},get PlusOutlined(){return Ke},get ClusterOutlined(){return Je},get HeartOutlined(){return Ge},get ApiOutlined(){return De},get WarningOutlined(){return Ne},get CheckCircleOutlined(){return qe},get SearchOutlined(){return Be},get message(){return k},get Empty(){return ye},get useWsStore(){return ke},get parseBreakers(){return ge},get parseChecks(){return _e},get parsePools(){return be},get parseNodeHealth(){return pe},get parseRegisterResult(){return le},get parseTransitionResult(){return ve},get parsePoolActionResult(){return Ce},get parseRemoveResult(){return Te},get parseStats(){return Se},get formatFedTime(){return $e},get CIRCUIT_STATES(){return xe},get HEALTH_STATUSES(){return Ie},get HEALTH_METRICS(){return We}};return Object.defineProperty(fe,"__isScriptSetup",{enumerable:!1,value:!0}),fe}},tt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ot={class:"page-title"},at={class:"page-sub"},nt={class:"stat-sub"},rt={class:"stat-sub"},lt={class:"stat-sub"},it={class:"stat-sub"},st={class:"filter-bar"},dt={key:1},ct={key:2},ut={key:3,class:"muted"},ft={class:"filter-bar"},mt={key:0,style:{"font-family":"monospace","font-size":"12px"}},ht={key:3,class:"muted",style:{"font-family":"monospace","font-size":"11px"}},kt={key:4,class:"muted"},yt={key:1,class:"muted"},gt={style:{"font-family":"monospace"}},_t={style:{"margin-top":"16px"}},bt={style:{color:"var(--text-primary)","margin-bottom":"8px"}},pt={key:2,class:"muted"};function vt(l,t,o,e,g,oe){const _=h("a-button"),B=h("a-menu-item"),D=h("a-menu"),J=h("a-dropdown"),q=h("a-space"),F=h("a-statistic"),M=h("a-card"),P=h("a-col"),K=h("a-row"),R=h("a-radio-button"),G=h("a-radio-group"),L=h("a-tag"),V=h("a-popconfirm"),b=h("a-empty"),C=h("a-table"),p=h("a-tab-pane"),W=h("a-progress"),N=h("a-input"),Y=h("a-descriptions-item"),ie=h("a-descriptions"),se=h("a-tabs"),x=h("a-form-item"),j=h("a-input-number"),Q=h("a-form"),Z=h("a-modal"),ae=h("a-select-option"),ne=h("a-select"),X=h("a-textarea");return f(),I("div",null,[w("div",tt,[w("div",null,[w("h2",ot,s(e.t("federation.title")),1),w("p",at,s(e.t("federation.subtitle")),1)]),a(q,null,{default:n(()=>[a(_,{loading:e.loading,onClick:e.loadAll},{icon:n(()=>[a(e.ReloadOutlined)]),default:n(()=>[m(" "+s(e.t("federation.refresh")),1)]),_:1},8,["loading"]),a(J,null,{overlay:n(()=>[a(D,null,{default:n(()=>[a(B,{key:"register",onClick:t[0]||(t[0]=r=>e.showRegisterModal=!0)},{default:n(()=>[m(s(e.t("federation.newMenu.register")),1)]),_:1}),a(B,{key:"check",onClick:t[1]||(t[1]=r=>e.showCheckModal=!0)},{default:n(()=>[m(s(e.t("federation.newMenu.check")),1)]),_:1}),a(B,{key:"pool",onClick:t[2]||(t[2]=r=>e.showPoolModal=!0)},{default:n(()=>[m(s(e.t("federation.newMenu.pool")),1)]),_:1})]),_:1})]),default:n(()=>[a(_,{type:"primary"},{icon:n(()=>[a(e.PlusOutlined)]),default:n(()=>[m(" "+s(e.t("federation.newDropdown")),1)]),_:1})]),_:1})]),_:1})]),A(" Stat cards "),a(K,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(P,{xs:12,sm:8,lg:5},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(F,{title:e.t("federation.stats.breakers"),value:e.stats.circuitBreakers.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[a(e.ClusterOutlined)]),_:1},8,["title","value"]),w("div",nt,s(e.t("federation.stats.breakerSub",{closed:e.stats.circuitBreakers.byState.closed||0,open:e.stats.circuitBreakers.byState.open||0})),1)]),_:1})]),_:1}),a(P,{xs:12,sm:8,lg:5},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(F,{title:e.t("federation.stats.checks"),value:e.stats.healthChecks.total,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:n(()=>[a(e.HeartOutlined)]),_:1},8,["title","value"]),w("div",rt,s(e.t("federation.stats.checkSub",{healthy:e.stats.healthChecks.byStatus.healthy||0,unhealthy:e.stats.healthChecks.byStatus.unhealthy||0})),1)]),_:1})]),_:1}),a(P,{xs:12,sm:8,lg:5},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(F,{title:e.t("federation.stats.pools"),value:e.stats.connectionPools.total,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:n(()=>[a(e.ApiOutlined)]),_:1},8,["title","value"]),w("div",lt,s(e.t("federation.stats.poolSub",{active:e.stats.connectionPools.totalActive,idle:e.stats.connectionPools.totalIdle})),1)]),_:1})]),_:1}),a(P,{xs:12,sm:8,lg:5},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(F,{title:e.t("federation.stats.degraded"),value:e.degradedCount,"value-style":{color:e.degradedCount>0?"#faad14":"#8c8c8c",fontSize:"20px"}},{prefix:n(()=>[a(e.WarningOutlined)]),_:1},8,["title","value","value-style"]),w("div",it,s(e.t("federation.stats.degradedSub",{halfOpen:e.stats.circuitBreakers.byState.half_open||0})),1)]),_:1})]),_:1}),a(P,{xs:24,sm:8,lg:4},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(F,{title:e.t("federation.stats.availability"),value:e.availabilityRate,suffix:"%",precision:0,"value-style":{color:e.rateColor(e.availabilityRate),fontSize:"20px"}},{prefix:n(()=>[a(e.CheckCircleOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),A(" Tabs (4 surfaces) "),a(se,{activeKey:e.activeTab,"onUpdate:activeKey":t[7]||(t[7]=r=>e.activeTab=r),class:"fed-tabs"},{default:n(()=>[A(" ── Circuit breakers ──────────────────────────── "),a(p,{key:"breakers",tab:e.t("federation.tabs.breakers")},{default:n(()=>[w("div",st,[a(G,{value:e.stateFilter,"onUpdate:value":t[3]||(t[3]=r=>e.stateFilter=r),size:"small","button-style":"solid"},{default:n(()=>[a(R,{value:""},{default:n(()=>[m(s(e.t("federation.filter.allStates")),1)]),_:1}),(f(!0),I(ee,null,te(e.CIRCUIT_STATES,r=>(f(),T(R,{key:r,value:r},{default:n(()=>[m(s(e.stateLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(C,{columns:e.breakerColumns,"data-source":e.filteredBreakers,pagination:{pageSize:20,showTotal:r=>e.t("federation.totals.rows",{count:r})},size:"small",loading:e.loading,"row-key":"key",style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:u})=>[r.key==="state"?(f(),T(L,{key:0,color:e.stateColor(u.state)},{default:n(()=>[m(s(e.stateLabel(u.state)),1)]),_:2},1032,["color"])):r.key==="failure"?(f(),I("span",dt,s(u.failureCount)+" / "+s(u.failureThreshold),1)):r.key==="success"?(f(),I("span",ct,s(u.successCount)+" / "+s(u.successThreshold),1)):r.key==="updatedAt"?(f(),I("span",ut,s(e.formatFedTime(u.updatedAt)),1)):r.key==="action"?(f(),T(q,{key:4,size:4},{default:n(()=>[a(_,{size:"small",danger:"",onClick:H=>e.recordTransition(u,"failure")},{default:n(()=>[m(s(e.t("federation.breakerActions.failure")),1)]),_:1},8,["onClick"]),a(_,{size:"small",onClick:H=>e.recordTransition(u,"success")},{default:n(()=>[m(s(e.t("federation.breakerActions.success")),1)]),_:1},8,["onClick"]),a(_,{size:"small",type:"dashed",onClick:H=>e.recordTransition(u,"half-open")},{default:n(()=>[m(s(e.t("federation.breakerActions.halfOpen")),1)]),_:1},8,["onClick"]),a(_,{size:"small",onClick:H=>e.recordTransition(u,"reset")},{default:n(()=>[m(s(e.t("federation.breakerActions.reset")),1)]),_:1},8,["onClick"]),a(V,{title:e.t("federation.breakerActions.removeConfirm"),onConfirm:H=>e.removeNode(u)},{default:n(()=>[a(_,{size:"small",danger:"",type:"text"},{default:n(()=>[m(s(e.t("federation.breakerActions.remove")),1)]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):A("v-if",!0)]),emptyText:n(()=>[a(b,{image:e.EMPTY_IMG,description:e.t("federation.empty.breakers")},null,8,["image","description"])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),A(" ── Health checks ─────────────────────────────── "),a(p,{key:"checks",tab:e.t("federation.tabs.checks")},{default:n(()=>[w("div",ft,[a(G,{value:e.metricFilter,"onUpdate:value":t[4]||(t[4]=r=>e.metricFilter=r),size:"small","button-style":"solid"},{default:n(()=>[a(R,{value:""},{default:n(()=>[m(s(e.t("federation.filter.allMetrics")),1)]),_:1}),(f(!0),I(ee,null,te(e.HEALTH_METRICS,r=>(f(),T(R,{key:r,value:r},{default:n(()=>[m(s(e.metricLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(G,{value:e.healthStatusFilter,"onUpdate:value":t[5]||(t[5]=r=>e.healthStatusFilter=r),size:"small"},{default:n(()=>[a(R,{value:""},{default:n(()=>[m(s(e.t("federation.filter.allStates")),1)]),_:1}),(f(!0),I(ee,null,te(e.HEALTH_STATUSES,r=>(f(),T(R,{key:r,value:r},{default:n(()=>[m(s(e.healthLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(C,{columns:e.checkColumns,"data-source":e.filteredChecks,pagination:{pageSize:20,showTotal:r=>e.t("federation.totals.rows",{count:r})},size:"small",loading:e.loading,"row-key":"key",style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:u})=>[r.key==="checkId"?(f(),I("span",mt,s(u.checkId.slice(0,12)),1)):r.key==="checkType"?(f(),T(L,{key:1,color:"blue"},{default:n(()=>[m(s(e.metricLabel(u.checkType)),1)]),_:2},1024)):r.key==="status"?(f(),T(L,{key:2,color:e.healthColor(u.status)},{default:n(()=>[m(s(e.healthLabel(u.status)),1)]),_:2},1032,["color"])):r.key==="metrics"?(f(),I("span",ht,s(e.truncate(u.metrics||"",50)),1)):r.key==="checkedAt"?(f(),I("span",kt,s(e.formatFedTime(u.checkedAt)),1)):A("v-if",!0)]),emptyText:n(()=>[a(b,{image:e.EMPTY_IMG,description:e.t("federation.empty.checks")},null,8,["image","description"])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),A(" ── Connection pools ──────────────────────────── "),a(p,{key:"pools",tab:e.t("federation.tabs.pools")},{default:n(()=>[a(C,{columns:e.poolColumns,"data-source":e.pools,pagination:{pageSize:20,showTotal:r=>e.t("federation.totals.rows",{count:r})},size:"small",loading:e.loading,"row-key":"key",style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:u})=>[r.key==="utilization"?(f(),T(W,{key:0,percent:e.poolUtilization(u),"stroke-color":e.rateColor(e.poolUtilization(u)),size:"small"},null,8,["percent","stroke-color"])):r.key==="createdAt"?(f(),I("span",yt,s(e.formatFedTime(u.createdAt)),1)):r.key==="action"?(f(),T(q,{key:2,size:4},{default:n(()=>[a(_,{size:"small",type:"primary",onClick:H=>e.poolAction(u,"acquire")},{default:n(()=>[m(s(e.t("federation.poolActions.acquire")),1)]),_:1},8,["onClick"]),a(_,{size:"small",onClick:H=>e.poolAction(u,"release")},{default:n(()=>[m(s(e.t("federation.poolActions.release")),1)]),_:1},8,["onClick"]),a(V,{title:e.t("federation.poolActions.destroyConfirm"),onConfirm:H=>e.poolAction(u,"destroy")},{default:n(()=>[a(_,{size:"small",danger:"",type:"text"},{default:n(()=>[m(s(e.t("federation.poolActions.destroy")),1)]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):A("v-if",!0)]),emptyText:n(()=>[a(b,{image:e.EMPTY_IMG,description:e.t("federation.empty.pools")},null,8,["image","description"])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),A(" ── Node health aggregate ────────────────────── "),a(p,{key:"node-health",tab:e.t("federation.tabs.nodeHealth")},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:n(()=>[a(q,null,{default:n(()=>[a(N,{value:e.nodeHealthInput,"onUpdate:value":t[6]||(t[6]=r=>e.nodeHealthInput=r),placeholder:e.t("federation.nodeHealth.inputPlaceholder"),style:{width:"240px"},"allow-clear":"",onPressEnter:e.queryNodeHealth},null,8,["value","placeholder"]),a(_,{type:"primary",loading:e.queryingHealth,onClick:e.queryNodeHealth},{icon:n(()=>[a(e.SearchOutlined)]),default:n(()=>[m(" "+s(e.t("federation.nodeHealth.query")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),e.nodeHealth?(f(),T(M,{key:0,style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(ie,{column:3,size:"small",bordered:""},{default:n(()=>[a(Y,{label:e.t("federation.nodeHealth.node")},{default:n(()=>[w("span",gt,s(e.nodeHealth.nodeId),1)]),_:1},8,["label"]),a(Y,{label:e.t("federation.nodeHealth.status")},{default:n(()=>[a(L,{color:e.healthColor(e.nodeHealth.status)},{default:n(()=>[m(s(e.healthLabel(e.nodeHealth.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(Y,{label:e.t("federation.nodeHealth.checkCount")},{default:n(()=>[m(s(e.nodeHealth.checks),1)]),_:1},8,["label"])]),_:1}),w("div",_t,[w("h4",bt,s(e.t("federation.nodeHealth.latestTitle")),1),e.nodeHealth.latestChecks.length?(f(),T(C,{key:1,columns:e.latestChecksColumns,"data-source":e.nodeHealth.latestChecks,pagination:!1,size:"small","row-key":"checkType",style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:u})=>[r.key==="checkType"?(f(),T(L,{key:0,color:"blue"},{default:n(()=>[m(s(e.metricLabel(u.checkType)),1)]),_:2},1024)):r.key==="status"?(f(),T(L,{key:1,color:e.healthColor(u.status)},{default:n(()=>[m(s(e.healthLabel(u.status)),1)]),_:2},1032,["color"])):r.key==="checkedAt"?(f(),I("span",pt,s(e.formatFedTime(u.checkedAt)),1)):A("v-if",!0)]),_:1},8,["columns","data-source"])):(f(),T(b,{key:0,image:e.EMPTY_IMG,description:e.t("federation.empty.noLatest")},null,8,["image","description"]))])]),_:1})):A("v-if",!0)]),_:1},8,["tab"])]),_:1},8,["activeKey"]),A(" Modal: register node "),a(Z,{open:e.showRegisterModal,"onUpdate:open":t[12]||(t[12]=r=>e.showRegisterModal=r),title:e.t("federation.register.title"),"confirm-loading":e.creating,onOk:e.submitRegister},{default:n(()=>[a(Q,{layout:"vertical"},{default:n(()=>[a(x,{label:e.t("federation.register.nodeIdLabel"),required:""},{default:n(()=>[a(N,{value:e.registerForm.nodeId,"onUpdate:value":t[8]||(t[8]=r=>e.registerForm.nodeId=r),placeholder:e.t("federation.register.nodeIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.t("federation.register.failureThresholdLabel")},{default:n(()=>[a(j,{value:e.registerForm.failureThreshold,"onUpdate:value":t[9]||(t[9]=r=>e.registerForm.failureThreshold=r),min:1,max:100,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.register.successThresholdLabel")},{default:n(()=>[a(j,{value:e.registerForm.successThreshold,"onUpdate:value":t[10]||(t[10]=r=>e.registerForm.successThreshold=r),min:1,max:100,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.register.openTimeoutLabel")},{default:n(()=>[a(j,{value:e.registerForm.openTimeout,"onUpdate:value":t[11]||(t[11]=r=>e.registerForm.openTimeout=r),min:1e3,step:1e3,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"]),A(" Modal: record health check "),a(Z,{open:e.showCheckModal,"onUpdate:open":t[17]||(t[17]=r=>e.showCheckModal=r),title:e.t("federation.check.title"),"confirm-loading":e.creating,onOk:e.submitCheck},{default:n(()=>[a(Q,{layout:"vertical"},{default:n(()=>[a(x,{label:e.t("federation.check.nodeIdLabel"),required:""},{default:n(()=>[a(N,{value:e.checkForm.nodeId,"onUpdate:value":t[13]||(t[13]=r=>e.checkForm.nodeId=r),placeholder:e.t("federation.check.nodeIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.t("federation.check.metricLabel"),required:""},{default:n(()=>[a(ne,{value:e.checkForm.checkType,"onUpdate:value":t[14]||(t[14]=r=>e.checkForm.checkType=r)},{default:n(()=>[(f(!0),I(ee,null,te(e.HEALTH_METRICS,r=>(f(),T(ae,{key:r,value:r},{default:n(()=>[m(s(e.metricLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.check.statusLabel"),required:""},{default:n(()=>[a(ne,{value:e.checkForm.status,"onUpdate:value":t[15]||(t[15]=r=>e.checkForm.status=r)},{default:n(()=>[(f(!0),I(ee,null,te(e.HEALTH_STATUSES,r=>(f(),T(ae,{key:r,value:r},{default:n(()=>[m(s(e.healthLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.check.metricsLabel")},{default:n(()=>[a(X,{value:e.checkForm.metrics,"onUpdate:value":t[16]||(t[16]=r=>e.checkForm.metrics=r),rows:3,placeholder:e.t("federation.check.metricsPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"]),A(" Modal: init pool "),a(Z,{open:e.showPoolModal,"onUpdate:open":t[22]||(t[22]=r=>e.showPoolModal=r),title:e.t("federation.pool.title"),"confirm-loading":e.creating,onOk:e.submitPool},{default:n(()=>[a(Q,{layout:"vertical"},{default:n(()=>[a(x,{label:e.t("federation.pool.nodeIdLabel"),required:""},{default:n(()=>[a(N,{value:e.poolForm.nodeId,"onUpdate:value":t[18]||(t[18]=r=>e.poolForm.nodeId=r),placeholder:e.t("federation.pool.nodeIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.t("federation.pool.minLabel")},{default:n(()=>[a(j,{value:e.poolForm.min,"onUpdate:value":t[19]||(t[19]=r=>e.poolForm.min=r),min:1,max:500,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.pool.maxLabel")},{default:n(()=>[a(j,{value:e.poolForm.max,"onUpdate:value":t[20]||(t[20]=r=>e.poolForm.max=r),min:1,max:500,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.pool.idleTimeoutLabel")},{default:n(()=>[a(j,{value:e.poolForm.idleTimeout,"onUpdate:value":t[21]||(t[21]=r=>e.poolForm.idleTimeout=r),min:1e3,step:1e3,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"])])}const It=je(et,[["render",vt],["__scopeId","data-v-5c4035e7"],["__file","/tmp/cc-web-panel-aLcItP/repo/packages/web-panel/src/views/Federation.vue"]]);export{It as default};
1
+ import{I as h,J as A,U as w,R as s,c as a,K as n,V as I,o as me,b as O,a as re,r as v,P as f,Q as m,F as ee,Z as te,S as T}from"./vendor-BvqAck49.js";import{_ as je,b as he,u as ke,E as ye,d as k}from"./index-oJQgRCrR.js";import{s as Be}from"./community-parser-CO25nZFt.js";import{k as Ue,f as qe,am as Ne,a8 as De,aE as Je,j as Ge,as as Ke,R as Ve}from"./icons-DP3uiYxy.js";function E(l){const t=Be(l);if(!t)return null;try{return JSON.parse(t)}catch{}const o=t.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!o)return null;try{return JSON.parse(o[0])}catch{return null}}const xe=Object.freeze(["closed","open","half_open"]),Ae=Object.freeze(["healthy","degraded","unhealthy","unknown"]),We=Object.freeze(["heartbeat","latency","success_rate","cpu_usage","memory_usage"]);function y(l,t=0){return typeof l=="number"&&Number.isFinite(l)?l:t}function Ye(l,t=0){if(!l||typeof l!="object")return null;const o=l.node_id??l.nodeId??"";if(!o)return null;const e=String(l.state||"closed").toLowerCase();return{key:o,nodeId:o,state:e,failureCount:y(l.failure_count??l.failureCount,0),successCount:y(l.success_count??l.successCount,0),failureThreshold:y(l.failure_threshold??l.failureThreshold,0),successThreshold:y(l.success_threshold??l.successThreshold,0),openTimeout:y(l.open_timeout??l.openTimeout,0),lastFailureTime:l.last_failure_time??l.lastFailureTime??null,lastSuccessTime:l.last_success_time??l.lastSuccessTime??null,stateChangedAt:l.state_changed_at??l.stateChangedAt??null,metadata:l.metadata??null,createdAt:l.created_at??l.createdAt??null,updatedAt:l.updated_at??l.updatedAt??null,_idx:t}}function ge(l){const t=E(l);return Array.isArray(t)?t.map(Ye).filter(Boolean):[]}function Qe(l,t=0){if(!l||typeof l!="object")return null;const o=l.check_id??l.checkId??"";return o?{key:o,checkId:o,nodeId:l.node_id??l.nodeId??"",checkType:String(l.check_type??l.checkType??"").toLowerCase(),status:String(l.status||"unknown").toLowerCase(),metrics:l.metrics??null,checkedAt:l.checked_at??l.checkedAt??null,_idx:t}:null}function _e(l){const t=E(l);return Array.isArray(t)?t.map(Qe).filter(Boolean):[]}function Ze(l,t=0){if(!l||typeof l!="object")return null;const o=l.nodeId??l.node_id??"";return o?{key:o,nodeId:o,minConnections:y(l.minConnections,0),maxConnections:y(l.maxConnections,0),idleTimeout:y(l.idleTimeout,0),activeConnections:y(l.activeConnections,0),idleConnections:y(l.idleConnections,0),totalCreated:y(l.totalCreated,0),totalDestroyed:y(l.totalDestroyed,0),waitingRequests:y(l.waitingRequests,0),createdAt:l.createdAt??null,_idx:t}:null}function be(l){const t=E(l);return Array.isArray(t)?t.map(Ze).filter(Boolean):[]}function pe(l){const t=E(l);if(!t||typeof t!="object"||Array.isArray(t))return{nodeId:"",status:"unknown",checks:0,latestChecks:[]};const e=(Array.isArray(t.latestChecks)?t.latestChecks:[]).filter(g=>g&&typeof g=="object").map(g=>({checkType:String(g.checkType??g.check_type??"").toLowerCase(),status:String(g.status||"unknown").toLowerCase(),checkedAt:g.checkedAt??g.checked_at??null}));return{nodeId:t.nodeId??t.node_id??"",status:String(t.status||"unknown").toLowerCase(),checks:y(t.checks,0),latestChecks:e}}function le(l){const t=E(l);if(!t||typeof t!="object"||Array.isArray(t))return{ok:!1,id:null,reason:""};const o=!!(t.registered||t.recorded||t.initialized),e=t.nodeId??t.checkId??null;return{ok:o,id:e?String(e):null,reason:t.reason?String(t.reason):""}}function ve(l){const t=E(l);return!t||typeof t!="object"||Array.isArray(t)?{ok:!1,state:"",previousState:"",failureCount:0,successCount:0,remainingMs:0,reason:""}:{ok:!!(t.updated||t.reset),state:String(t.state||""),previousState:String(t.previousState||""),failureCount:y(t.failureCount,0),successCount:y(t.successCount,0),remainingMs:y(t.remainingMs,0),reason:t.reason?String(t.reason):""}}function Ce(l){const t=E(l);return!t||typeof t!="object"||Array.isArray(t)?{ok:!1,active:0,idle:0,waiting:0,reason:""}:{ok:!!(t.acquired||t.released||t.destroyed),active:y(t.active,0),idle:y(t.idle,0),waiting:y(t.waiting,0),reason:t.reason?String(t.reason):""}}function Te(l){const t=E(l);return!t||typeof t!="object"||Array.isArray(t)?{ok:!1,reason:""}:{ok:!!t.removed,reason:t.reason?String(t.reason):""}}const Xe={circuitBreakers:{total:0,byState:{}},healthChecks:{total:0,byStatus:{}},connectionPools:{total:0,totalActive:0,totalIdle:0,totalConnections:0}};function Se(l){const t=JSON.parse(JSON.stringify(Xe));for(const e of xe)t.circuitBreakers.byState[e]=0;for(const e of Ae)t.healthChecks.byStatus[e]=0;const o=E(l);if(!o||typeof o!="object"||Array.isArray(o))return t;if(o.circuitBreakers&&typeof o.circuitBreakers=="object"&&(t.circuitBreakers.total=y(o.circuitBreakers.total,0),o.circuitBreakers.byState&&typeof o.circuitBreakers.byState=="object"))for(const[e,g]of Object.entries(o.circuitBreakers.byState))typeof g=="number"&&Number.isFinite(g)&&(t.circuitBreakers.byState[e]=g);if(o.healthChecks&&typeof o.healthChecks=="object"&&(t.healthChecks.total=y(o.healthChecks.total,0),o.healthChecks.byStatus&&typeof o.healthChecks.byStatus=="object"))for(const[e,g]of Object.entries(o.healthChecks.byStatus))typeof g=="number"&&Number.isFinite(g)&&(t.healthChecks.byStatus[e]=g);return o.connectionPools&&typeof o.connectionPools=="object"&&(t.connectionPools.total=y(o.connectionPools.total,0),t.connectionPools.totalActive=y(o.connectionPools.totalActive,0),t.connectionPools.totalIdle=y(o.connectionPools.totalIdle,0),t.connectionPools.totalConnections=y(o.connectionPools.totalConnections,0)),t}function $e(l){if(l==null||l==="")return"—";const t=typeof l=="number"?new Date(l):new Date(String(l));return isNaN(t.getTime())?String(l):t.toLocaleString("zh-CN",{hour12:!1})}const et={__name:"Federation",setup(l,{expose:t}){t();const{t:o}=he(),e=ke(),g=ye.PRESENTED_IMAGE_SIMPLE,oe=v(!1),_=v(!1),U=v(!1),D=v([]),G=v([]),q=v([]),F=v({circuitBreakers:{total:0,byState:{closed:0,open:0,half_open:0}},healthChecks:{total:0,byStatus:{healthy:0,degraded:0,unhealthy:0,unknown:0}},connectionPools:{total:0,totalActive:0,totalIdle:0,totalConnections:0}}),M=v("breakers"),P=v(""),K=v(""),R=v(""),J=v(!1),H=v(!1),V=v(!1),b=re({nodeId:"",failureThreshold:5,successThreshold:2,openTimeout:6e4}),C=re({nodeId:"",checkType:"heartbeat",status:"healthy",metrics:""}),p=re({nodeId:"",min:5,max:50,idleTimeout:3e5}),W=v(""),N=v(null),Y=O(()=>[{title:o("federation.breakerColumns.node"),key:"nodeId",dataIndex:"nodeId",width:"200px"},{title:o("federation.breakerColumns.state"),key:"state",width:"100px"},{title:o("federation.breakerColumns.failure"),key:"failure",width:"120px"},{title:o("federation.breakerColumns.success"),key:"success",width:"120px"},{title:o("federation.breakerColumns.openTimeout"),key:"openTimeout",dataIndex:"openTimeout",width:"110px"},{title:o("federation.breakerColumns.updatedAt"),key:"updatedAt",width:"170px"},{title:o("federation.breakerColumns.action"),key:"action",width:"340px"}]),ie=O(()=>[{title:o("federation.checkColumns.id"),key:"checkId",width:"130px"},{title:o("federation.checkColumns.node"),key:"nodeId",dataIndex:"nodeId",width:"180px"},{title:o("federation.checkColumns.metric"),key:"checkType",width:"120px"},{title:o("federation.checkColumns.status"),key:"status",width:"100px"},{title:o("federation.checkColumns.metrics"),key:"metrics"},{title:o("federation.checkColumns.checkedAt"),key:"checkedAt",width:"170px"}]),se=O(()=>[{title:o("federation.poolColumns.node"),key:"nodeId",dataIndex:"nodeId",width:"200px"},{title:o("federation.poolColumns.active"),key:"activeConnections",dataIndex:"activeConnections",width:"90px"},{title:o("federation.poolColumns.idle"),key:"idleConnections",dataIndex:"idleConnections",width:"90px"},{title:o("federation.poolColumns.max"),key:"maxConnections",dataIndex:"maxConnections",width:"90px"},{title:o("federation.poolColumns.utilization"),key:"utilization",width:"160px"},{title:o("federation.poolColumns.waiting"),key:"waitingRequests",dataIndex:"waitingRequests",width:"90px"},{title:o("federation.poolColumns.totalCreated"),key:"totalCreated",dataIndex:"totalCreated",width:"90px"},{title:o("federation.poolColumns.createdAt"),key:"createdAt",width:"170px"},{title:o("federation.poolColumns.action"),key:"action",width:"240px"}]),x=O(()=>[{title:o("federation.latestColumns.metric"),key:"checkType",width:"160px"},{title:o("federation.latestColumns.status"),key:"status",width:"120px"},{title:o("federation.latestColumns.checkedAt"),key:"checkedAt"}]),j=O(()=>P.value?D.value.filter(i=>i.state===P.value):D.value),Q=O(()=>{let i=G.value;return K.value&&(i=i.filter(d=>d.checkType===K.value)),R.value&&(i=i.filter(d=>d.status===R.value)),i}),Z=O(()=>(F.value.circuitBreakers.byState.open||0)+(F.value.circuitBreakers.byState.half_open||0)),ae=O(()=>{const i=F.value.circuitBreakers.total;return i?(F.value.circuitBreakers.byState.closed||0)/i*100:100});function ne(i){return i.maxConnections?Math.round(i.activeConnections/i.maxConnections*100):0}function X(i){const d=`federation.state.${i}`,c=o(d);return c===d?i:c}function r(i){return{closed:"green",open:"red",half_open:"gold"}[i]||"default"}function u(i){const d=`federation.metric.${i}`,c=o(d);return c===d?i:c}function L(i){const d=`federation.health.${i}`,c=o(d);return c===d?i:c}function Ie(i){return{healthy:"green",degraded:"gold",unhealthy:"red",unknown:"default"}[i]||"default"}function we(i){return i>=95?"#52c41a":i>=80?"#1677ff":i>=60?"#faad14":"#ff4d4f"}function Fe(i,d){return i?i.length<=d?i:i.slice(0,d)+"…":""}function z(i){return`"${String(i).replace(/"/g,'\\"')}"`}async function B(){oe.value=!0;try{const[i,d,c,$]=await Promise.all([e.execute("federation breakers --limit 200 --json",1e4).catch(()=>({output:""})),e.execute("federation checks --limit 200 --json",1e4).catch(()=>({output:""})),e.execute("federation pools --json",8e3).catch(()=>({output:""})),e.execute("federation stats --json",8e3).catch(()=>({output:""}))]);D.value=ge(i.output),G.value=_e(d.output),q.value=be(c.output),F.value=Se($.output)}catch(i){k.error(o("federation.messages.loadFailed",{err:i?.message||i}))}finally{oe.value=!1}}async function Re(){if(!b.nodeId.trim()){k.warning(o("federation.messages.nodeIdRequired"));return}_.value=!0;try{const i=[`federation register ${z(b.nodeId.trim())}`];b.failureThreshold&&i.push(`-f ${b.failureThreshold}`),b.successThreshold&&i.push(`-s ${b.successThreshold}`),b.openTimeout&&i.push(`-t ${b.openTimeout}`),i.push("--json");const{output:d}=await e.execute(i.join(" "),1e4),c=le(d);if(!c.ok){k.error(o("federation.messages.registerFailed",{err:c.reason||d.slice(0,120)}));return}k.success(o("federation.messages.registerOk",{id:c.id})),J.value=!1,de(),await B()}catch(i){k.error(o("federation.messages.registerFailed",{err:i?.message||i}))}finally{_.value=!1}}async function Me(){if(!C.nodeId.trim()){k.warning(o("federation.messages.nodeIdRequired"));return}_.value=!0;try{const i=[`federation check ${z(C.nodeId.trim())}`];i.push(`-t ${C.checkType}`),i.push(`-s ${C.status}`),C.metrics.trim()&&i.push(`-m ${z(C.metrics.trim())}`),i.push("--json");const{output:d}=await e.execute(i.join(" "),1e4),c=le(d);if(!c.ok){k.error(o("federation.messages.checkFailed",{err:c.reason||d.slice(0,120)}));return}k.success(o("federation.messages.checkOk",{id:c.id?.slice(0,8)})),H.value=!1,ce(),await B()}catch(i){k.error(o("federation.messages.checkFailed",{err:i?.message||i}))}finally{_.value=!1}}async function Pe(){if(!p.nodeId.trim()){k.warning(o("federation.messages.nodeIdRequired"));return}_.value=!0;try{const i=[`federation pool-init ${z(p.nodeId.trim())}`];p.min&&i.push(`--min ${p.min}`),p.max&&i.push(`--max ${p.max}`),p.idleTimeout&&i.push(`--idle-timeout ${p.idleTimeout}`),i.push("--json");const{output:d}=await e.execute(i.join(" "),1e4),c=le(d);if(!c.ok){k.error(o("federation.messages.poolFailed",{err:c.reason||d.slice(0,120)}));return}k.success(o("federation.messages.poolOk",{id:c.id})),V.value=!1,ue(),await B()}catch(i){k.error(o("federation.messages.poolFailed",{err:i?.message||i}))}finally{_.value=!1}}async function He(i,d){try{const c=`federation ${d} ${z(i.nodeId)} --json`,{output:$}=await e.execute(c,8e3),S=ve($);if(!S.ok){k.warning(S.remainingMs?o("federation.messages.operationCooldown",{ms:S.remainingMs}):S.reason||o("federation.messages.operationNoEffect"));return}S.previousState&&S.state&&S.previousState!==S.state?k.success(o("federation.messages.transitionMsg",{from:X(S.previousState),to:X(S.state)})):k.success(o(d==="reset"?"federation.messages.resetMsg":"federation.messages.recordedMsg")),await B()}catch(c){k.error(o("federation.messages.operationFailed",{err:c?.message||c}))}}async function Le(i){try{const{output:d}=await e.execute(`federation remove ${z(i.nodeId)} --json`,8e3),c=Te(d);if(!c.ok){k.error(o("federation.messages.removeFailed",{err:c.reason||d.slice(0,120)}));return}k.success(o("federation.messages.removeOk")),await B()}catch(d){k.error(o("federation.messages.removeFailed",{err:d?.message||d}))}}async function ze(i,d){try{const c={acquire:"pool-acquire",release:"pool-release",destroy:"pool-destroy"}[d],{output:$}=await e.execute(`federation ${c} ${z(i.nodeId)} --json`,8e3),S=Ce($);if(!S.ok){k.warning(S.reason||o("federation.messages.operationNoEffect"));return}if(d==="destroy")k.success(o("federation.messages.destroyMsg"));else{const Ee=d==="acquire"?"federation.messages.acquireMsg":"federation.messages.releaseMsg";k.success(o(Ee,{active:S.active,idle:S.idle}))}await B()}catch(c){k.error(o("federation.messages.operationFailed",{err:c?.message||c}))}}async function Oe(){if(!W.value.trim()){k.warning(o("federation.messages.nodeIdRequired"));return}U.value=!0;try{const{output:i}=await e.execute(`federation node-health ${z(W.value.trim())} --json`,8e3);N.value=pe(i)}catch(i){k.error(o("federation.messages.queryFailed",{err:i?.message||i}))}finally{U.value=!1}}function de(){b.nodeId="",b.failureThreshold=5,b.successThreshold=2,b.openTimeout=6e4}function ce(){C.nodeId="",C.checkType="heartbeat",C.status="healthy",C.metrics=""}function ue(){p.nodeId="",p.min=5,p.max=50,p.idleTimeout=3e5}me(B);const fe={t:o,ws:e,EMPTY_IMG:g,loading:oe,creating:_,queryingHealth:U,breakers:D,checks:G,pools:q,stats:F,activeTab:M,stateFilter:P,metricFilter:K,healthStatusFilter:R,showRegisterModal:J,showCheckModal:H,showPoolModal:V,registerForm:b,checkForm:C,poolForm:p,nodeHealthInput:W,nodeHealth:N,breakerColumns:Y,checkColumns:ie,poolColumns:se,latestChecksColumns:x,filteredBreakers:j,filteredChecks:Q,degradedCount:Z,availabilityRate:ae,poolUtilization:ne,stateLabel:X,stateColor:r,metricLabel:u,healthLabel:L,healthColor:Ie,rateColor:we,truncate:Fe,shellQuote:z,loadAll:B,submitRegister:Re,submitCheck:Me,submitPool:Pe,recordTransition:He,removeNode:Le,poolAction:ze,queryNodeHealth:Oe,resetRegisterForm:de,resetCheckForm:ce,resetPoolForm:ue,ref:v,reactive:re,computed:O,onMounted:me,get useI18n(){return he},get ReloadOutlined(){return Ve},get PlusOutlined(){return Ke},get ClusterOutlined(){return Ge},get HeartOutlined(){return Je},get ApiOutlined(){return De},get WarningOutlined(){return Ne},get CheckCircleOutlined(){return qe},get SearchOutlined(){return Ue},get message(){return k},get Empty(){return ye},get useWsStore(){return ke},get parseBreakers(){return ge},get parseChecks(){return _e},get parsePools(){return be},get parseNodeHealth(){return pe},get parseRegisterResult(){return le},get parseTransitionResult(){return ve},get parsePoolActionResult(){return Ce},get parseRemoveResult(){return Te},get parseStats(){return Se},get formatFedTime(){return $e},get CIRCUIT_STATES(){return xe},get HEALTH_STATUSES(){return Ae},get HEALTH_METRICS(){return We}};return Object.defineProperty(fe,"__isScriptSetup",{enumerable:!1,value:!0}),fe}},tt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ot={class:"page-title"},at={class:"page-sub"},nt={class:"stat-sub"},rt={class:"stat-sub"},lt={class:"stat-sub"},it={class:"stat-sub"},st={class:"filter-bar"},dt={key:1},ct={key:2},ut={key:3,class:"muted"},ft={class:"filter-bar"},mt={key:0,style:{"font-family":"monospace","font-size":"12px"}},ht={key:3,class:"muted",style:{"font-family":"monospace","font-size":"11px"}},kt={key:4,class:"muted"},yt={key:1,class:"muted"},gt={style:{"font-family":"monospace"}},_t={style:{"margin-top":"16px"}},bt={style:{color:"var(--text-primary)","margin-bottom":"8px"}},pt={key:2,class:"muted"};function vt(l,t,o,e,g,oe){const _=h("a-button"),U=h("a-menu-item"),D=h("a-menu"),G=h("a-dropdown"),q=h("a-space"),F=h("a-statistic"),M=h("a-card"),P=h("a-col"),K=h("a-row"),R=h("a-radio-button"),J=h("a-radio-group"),H=h("a-tag"),V=h("a-popconfirm"),b=h("a-empty"),C=h("a-table"),p=h("a-tab-pane"),W=h("a-progress"),N=h("a-input"),Y=h("a-descriptions-item"),ie=h("a-descriptions"),se=h("a-tabs"),x=h("a-form-item"),j=h("a-input-number"),Q=h("a-form"),Z=h("a-modal"),ae=h("a-select-option"),ne=h("a-select"),X=h("a-textarea");return f(),A("div",null,[w("div",tt,[w("div",null,[w("h2",ot,s(e.t("federation.title")),1),w("p",at,s(e.t("federation.subtitle")),1)]),a(q,null,{default:n(()=>[a(_,{loading:e.loading,onClick:e.loadAll},{icon:n(()=>[a(e.ReloadOutlined)]),default:n(()=>[m(" "+s(e.t("federation.refresh")),1)]),_:1},8,["loading"]),a(G,null,{overlay:n(()=>[a(D,null,{default:n(()=>[a(U,{key:"register",onClick:t[0]||(t[0]=r=>e.showRegisterModal=!0)},{default:n(()=>[m(s(e.t("federation.newMenu.register")),1)]),_:1}),a(U,{key:"check",onClick:t[1]||(t[1]=r=>e.showCheckModal=!0)},{default:n(()=>[m(s(e.t("federation.newMenu.check")),1)]),_:1}),a(U,{key:"pool",onClick:t[2]||(t[2]=r=>e.showPoolModal=!0)},{default:n(()=>[m(s(e.t("federation.newMenu.pool")),1)]),_:1})]),_:1})]),default:n(()=>[a(_,{type:"primary"},{icon:n(()=>[a(e.PlusOutlined)]),default:n(()=>[m(" "+s(e.t("federation.newDropdown")),1)]),_:1})]),_:1})]),_:1})]),I(" Stat cards "),a(K,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(P,{xs:12,sm:8,lg:5},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(F,{title:e.t("federation.stats.breakers"),value:e.stats.circuitBreakers.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[a(e.ClusterOutlined)]),_:1},8,["title","value"]),w("div",nt,s(e.t("federation.stats.breakerSub",{closed:e.stats.circuitBreakers.byState.closed||0,open:e.stats.circuitBreakers.byState.open||0})),1)]),_:1})]),_:1}),a(P,{xs:12,sm:8,lg:5},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(F,{title:e.t("federation.stats.checks"),value:e.stats.healthChecks.total,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:n(()=>[a(e.HeartOutlined)]),_:1},8,["title","value"]),w("div",rt,s(e.t("federation.stats.checkSub",{healthy:e.stats.healthChecks.byStatus.healthy||0,unhealthy:e.stats.healthChecks.byStatus.unhealthy||0})),1)]),_:1})]),_:1}),a(P,{xs:12,sm:8,lg:5},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(F,{title:e.t("federation.stats.pools"),value:e.stats.connectionPools.total,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:n(()=>[a(e.ApiOutlined)]),_:1},8,["title","value"]),w("div",lt,s(e.t("federation.stats.poolSub",{active:e.stats.connectionPools.totalActive,idle:e.stats.connectionPools.totalIdle})),1)]),_:1})]),_:1}),a(P,{xs:12,sm:8,lg:5},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(F,{title:e.t("federation.stats.degraded"),value:e.degradedCount,"value-style":{color:e.degradedCount>0?"#faad14":"#8c8c8c",fontSize:"20px"}},{prefix:n(()=>[a(e.WarningOutlined)]),_:1},8,["title","value","value-style"]),w("div",it,s(e.t("federation.stats.degradedSub",{halfOpen:e.stats.circuitBreakers.byState.half_open||0})),1)]),_:1})]),_:1}),a(P,{xs:24,sm:8,lg:4},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(F,{title:e.t("federation.stats.availability"),value:e.availabilityRate,suffix:"%",precision:0,"value-style":{color:e.rateColor(e.availabilityRate),fontSize:"20px"}},{prefix:n(()=>[a(e.CheckCircleOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),I(" Tabs (4 surfaces) "),a(se,{activeKey:e.activeTab,"onUpdate:activeKey":t[7]||(t[7]=r=>e.activeTab=r),class:"fed-tabs"},{default:n(()=>[I(" ── Circuit breakers ──────────────────────────── "),a(p,{key:"breakers",tab:e.t("federation.tabs.breakers")},{default:n(()=>[w("div",st,[a(J,{value:e.stateFilter,"onUpdate:value":t[3]||(t[3]=r=>e.stateFilter=r),size:"small","button-style":"solid"},{default:n(()=>[a(R,{value:""},{default:n(()=>[m(s(e.t("federation.filter.allStates")),1)]),_:1}),(f(!0),A(ee,null,te(e.CIRCUIT_STATES,r=>(f(),T(R,{key:r,value:r},{default:n(()=>[m(s(e.stateLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(C,{columns:e.breakerColumns,"data-source":e.filteredBreakers,pagination:{pageSize:20,showTotal:r=>e.t("federation.totals.rows",{count:r})},size:"small",loading:e.loading,"row-key":"key",style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:u})=>[r.key==="state"?(f(),T(H,{key:0,color:e.stateColor(u.state)},{default:n(()=>[m(s(e.stateLabel(u.state)),1)]),_:2},1032,["color"])):r.key==="failure"?(f(),A("span",dt,s(u.failureCount)+" / "+s(u.failureThreshold),1)):r.key==="success"?(f(),A("span",ct,s(u.successCount)+" / "+s(u.successThreshold),1)):r.key==="updatedAt"?(f(),A("span",ut,s(e.formatFedTime(u.updatedAt)),1)):r.key==="action"?(f(),T(q,{key:4,size:4},{default:n(()=>[a(_,{size:"small",danger:"",onClick:L=>e.recordTransition(u,"failure")},{default:n(()=>[m(s(e.t("federation.breakerActions.failure")),1)]),_:1},8,["onClick"]),a(_,{size:"small",onClick:L=>e.recordTransition(u,"success")},{default:n(()=>[m(s(e.t("federation.breakerActions.success")),1)]),_:1},8,["onClick"]),a(_,{size:"small",type:"dashed",onClick:L=>e.recordTransition(u,"half-open")},{default:n(()=>[m(s(e.t("federation.breakerActions.halfOpen")),1)]),_:1},8,["onClick"]),a(_,{size:"small",onClick:L=>e.recordTransition(u,"reset")},{default:n(()=>[m(s(e.t("federation.breakerActions.reset")),1)]),_:1},8,["onClick"]),a(V,{title:e.t("federation.breakerActions.removeConfirm"),onConfirm:L=>e.removeNode(u)},{default:n(()=>[a(_,{size:"small",danger:"",type:"text"},{default:n(()=>[m(s(e.t("federation.breakerActions.remove")),1)]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):I("v-if",!0)]),emptyText:n(()=>[a(b,{image:e.EMPTY_IMG,description:e.t("federation.empty.breakers")},null,8,["image","description"])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),I(" ── Health checks ─────────────────────────────── "),a(p,{key:"checks",tab:e.t("federation.tabs.checks")},{default:n(()=>[w("div",ft,[a(J,{value:e.metricFilter,"onUpdate:value":t[4]||(t[4]=r=>e.metricFilter=r),size:"small","button-style":"solid"},{default:n(()=>[a(R,{value:""},{default:n(()=>[m(s(e.t("federation.filter.allMetrics")),1)]),_:1}),(f(!0),A(ee,null,te(e.HEALTH_METRICS,r=>(f(),T(R,{key:r,value:r},{default:n(()=>[m(s(e.metricLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(J,{value:e.healthStatusFilter,"onUpdate:value":t[5]||(t[5]=r=>e.healthStatusFilter=r),size:"small"},{default:n(()=>[a(R,{value:""},{default:n(()=>[m(s(e.t("federation.filter.allStates")),1)]),_:1}),(f(!0),A(ee,null,te(e.HEALTH_STATUSES,r=>(f(),T(R,{key:r,value:r},{default:n(()=>[m(s(e.healthLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(C,{columns:e.checkColumns,"data-source":e.filteredChecks,pagination:{pageSize:20,showTotal:r=>e.t("federation.totals.rows",{count:r})},size:"small",loading:e.loading,"row-key":"key",style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:u})=>[r.key==="checkId"?(f(),A("span",mt,s(u.checkId.slice(0,12)),1)):r.key==="checkType"?(f(),T(H,{key:1,color:"blue"},{default:n(()=>[m(s(e.metricLabel(u.checkType)),1)]),_:2},1024)):r.key==="status"?(f(),T(H,{key:2,color:e.healthColor(u.status)},{default:n(()=>[m(s(e.healthLabel(u.status)),1)]),_:2},1032,["color"])):r.key==="metrics"?(f(),A("span",ht,s(e.truncate(u.metrics||"",50)),1)):r.key==="checkedAt"?(f(),A("span",kt,s(e.formatFedTime(u.checkedAt)),1)):I("v-if",!0)]),emptyText:n(()=>[a(b,{image:e.EMPTY_IMG,description:e.t("federation.empty.checks")},null,8,["image","description"])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),I(" ── Connection pools ──────────────────────────── "),a(p,{key:"pools",tab:e.t("federation.tabs.pools")},{default:n(()=>[a(C,{columns:e.poolColumns,"data-source":e.pools,pagination:{pageSize:20,showTotal:r=>e.t("federation.totals.rows",{count:r})},size:"small",loading:e.loading,"row-key":"key",style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:u})=>[r.key==="utilization"?(f(),T(W,{key:0,percent:e.poolUtilization(u),"stroke-color":e.rateColor(e.poolUtilization(u)),size:"small"},null,8,["percent","stroke-color"])):r.key==="createdAt"?(f(),A("span",yt,s(e.formatFedTime(u.createdAt)),1)):r.key==="action"?(f(),T(q,{key:2,size:4},{default:n(()=>[a(_,{size:"small",type:"primary",onClick:L=>e.poolAction(u,"acquire")},{default:n(()=>[m(s(e.t("federation.poolActions.acquire")),1)]),_:1},8,["onClick"]),a(_,{size:"small",onClick:L=>e.poolAction(u,"release")},{default:n(()=>[m(s(e.t("federation.poolActions.release")),1)]),_:1},8,["onClick"]),a(V,{title:e.t("federation.poolActions.destroyConfirm"),onConfirm:L=>e.poolAction(u,"destroy")},{default:n(()=>[a(_,{size:"small",danger:"",type:"text"},{default:n(()=>[m(s(e.t("federation.poolActions.destroy")),1)]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):I("v-if",!0)]),emptyText:n(()=>[a(b,{image:e.EMPTY_IMG,description:e.t("federation.empty.pools")},null,8,["image","description"])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),I(" ── Node health aggregate ────────────────────── "),a(p,{key:"node-health",tab:e.t("federation.tabs.nodeHealth")},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:n(()=>[a(q,null,{default:n(()=>[a(N,{value:e.nodeHealthInput,"onUpdate:value":t[6]||(t[6]=r=>e.nodeHealthInput=r),placeholder:e.t("federation.nodeHealth.inputPlaceholder"),style:{width:"240px"},"allow-clear":"",onPressEnter:e.queryNodeHealth},null,8,["value","placeholder"]),a(_,{type:"primary",loading:e.queryingHealth,onClick:e.queryNodeHealth},{icon:n(()=>[a(e.SearchOutlined)]),default:n(()=>[m(" "+s(e.t("federation.nodeHealth.query")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),e.nodeHealth?(f(),T(M,{key:0,style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(ie,{column:3,size:"small",bordered:""},{default:n(()=>[a(Y,{label:e.t("federation.nodeHealth.node")},{default:n(()=>[w("span",gt,s(e.nodeHealth.nodeId),1)]),_:1},8,["label"]),a(Y,{label:e.t("federation.nodeHealth.status")},{default:n(()=>[a(H,{color:e.healthColor(e.nodeHealth.status)},{default:n(()=>[m(s(e.healthLabel(e.nodeHealth.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(Y,{label:e.t("federation.nodeHealth.checkCount")},{default:n(()=>[m(s(e.nodeHealth.checks),1)]),_:1},8,["label"])]),_:1}),w("div",_t,[w("h4",bt,s(e.t("federation.nodeHealth.latestTitle")),1),e.nodeHealth.latestChecks.length?(f(),T(C,{key:1,columns:e.latestChecksColumns,"data-source":e.nodeHealth.latestChecks,pagination:!1,size:"small","row-key":"checkType",style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:u})=>[r.key==="checkType"?(f(),T(H,{key:0,color:"blue"},{default:n(()=>[m(s(e.metricLabel(u.checkType)),1)]),_:2},1024)):r.key==="status"?(f(),T(H,{key:1,color:e.healthColor(u.status)},{default:n(()=>[m(s(e.healthLabel(u.status)),1)]),_:2},1032,["color"])):r.key==="checkedAt"?(f(),A("span",pt,s(e.formatFedTime(u.checkedAt)),1)):I("v-if",!0)]),_:1},8,["columns","data-source"])):(f(),T(b,{key:0,image:e.EMPTY_IMG,description:e.t("federation.empty.noLatest")},null,8,["image","description"]))])]),_:1})):I("v-if",!0)]),_:1},8,["tab"])]),_:1},8,["activeKey"]),I(" Modal: register node "),a(Z,{open:e.showRegisterModal,"onUpdate:open":t[12]||(t[12]=r=>e.showRegisterModal=r),title:e.t("federation.register.title"),"confirm-loading":e.creating,onOk:e.submitRegister},{default:n(()=>[a(Q,{layout:"vertical"},{default:n(()=>[a(x,{label:e.t("federation.register.nodeIdLabel"),required:""},{default:n(()=>[a(N,{value:e.registerForm.nodeId,"onUpdate:value":t[8]||(t[8]=r=>e.registerForm.nodeId=r),placeholder:e.t("federation.register.nodeIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.t("federation.register.failureThresholdLabel")},{default:n(()=>[a(j,{value:e.registerForm.failureThreshold,"onUpdate:value":t[9]||(t[9]=r=>e.registerForm.failureThreshold=r),min:1,max:100,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.register.successThresholdLabel")},{default:n(()=>[a(j,{value:e.registerForm.successThreshold,"onUpdate:value":t[10]||(t[10]=r=>e.registerForm.successThreshold=r),min:1,max:100,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.register.openTimeoutLabel")},{default:n(()=>[a(j,{value:e.registerForm.openTimeout,"onUpdate:value":t[11]||(t[11]=r=>e.registerForm.openTimeout=r),min:1e3,step:1e3,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"]),I(" Modal: record health check "),a(Z,{open:e.showCheckModal,"onUpdate:open":t[17]||(t[17]=r=>e.showCheckModal=r),title:e.t("federation.check.title"),"confirm-loading":e.creating,onOk:e.submitCheck},{default:n(()=>[a(Q,{layout:"vertical"},{default:n(()=>[a(x,{label:e.t("federation.check.nodeIdLabel"),required:""},{default:n(()=>[a(N,{value:e.checkForm.nodeId,"onUpdate:value":t[13]||(t[13]=r=>e.checkForm.nodeId=r),placeholder:e.t("federation.check.nodeIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.t("federation.check.metricLabel"),required:""},{default:n(()=>[a(ne,{value:e.checkForm.checkType,"onUpdate:value":t[14]||(t[14]=r=>e.checkForm.checkType=r)},{default:n(()=>[(f(!0),A(ee,null,te(e.HEALTH_METRICS,r=>(f(),T(ae,{key:r,value:r},{default:n(()=>[m(s(e.metricLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.check.statusLabel"),required:""},{default:n(()=>[a(ne,{value:e.checkForm.status,"onUpdate:value":t[15]||(t[15]=r=>e.checkForm.status=r)},{default:n(()=>[(f(!0),A(ee,null,te(e.HEALTH_STATUSES,r=>(f(),T(ae,{key:r,value:r},{default:n(()=>[m(s(e.healthLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.check.metricsLabel")},{default:n(()=>[a(X,{value:e.checkForm.metrics,"onUpdate:value":t[16]||(t[16]=r=>e.checkForm.metrics=r),rows:3,placeholder:e.t("federation.check.metricsPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"]),I(" Modal: init pool "),a(Z,{open:e.showPoolModal,"onUpdate:open":t[22]||(t[22]=r=>e.showPoolModal=r),title:e.t("federation.pool.title"),"confirm-loading":e.creating,onOk:e.submitPool},{default:n(()=>[a(Q,{layout:"vertical"},{default:n(()=>[a(x,{label:e.t("federation.pool.nodeIdLabel"),required:""},{default:n(()=>[a(N,{value:e.poolForm.nodeId,"onUpdate:value":t[18]||(t[18]=r=>e.poolForm.nodeId=r),placeholder:e.t("federation.pool.nodeIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.t("federation.pool.minLabel")},{default:n(()=>[a(j,{value:e.poolForm.min,"onUpdate:value":t[19]||(t[19]=r=>e.poolForm.min=r),min:1,max:500,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.pool.maxLabel")},{default:n(()=>[a(j,{value:e.poolForm.max,"onUpdate:value":t[20]||(t[20]=r=>e.poolForm.max=r),min:1,max:500,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.t("federation.pool.idleTimeoutLabel")},{default:n(()=>[a(j,{value:e.poolForm.idleTimeout,"onUpdate:value":t[21]||(t[21]=r=>e.poolForm.idleTimeout=r),min:1e3,step:1e3,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"])])}const At=je(et,[["render",vt],["__scopeId","data-v-5c4035e7"],["__file","/tmp/cc-web-panel-RrTzBJ/repo/packages/web-panel/src/views/Federation.vue"]]);export{At as default};
@@ -1,2 +1,2 @@
1
- import{i as u,f,p as r,d as c,b as F,w as C,g as v,r as x}from"./vendor-BvqAck49.js";import{d as y}from"./devWarning-CetO0WH0.js";import{c as g}from"./createContext-DyhlvRYs.js";const s=Symbol("ContextProps"),l=Symbol("InternalContextProps"),K=function(a){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:F(()=>!0);const e=x(new Map),o=(n,m)=>{e.value.set(n,m),e.value=new Map(e.value)},p=n=>{e.value.delete(n),e.value=new Map(e.value)},I=v();C([t,e],()=>{if(t.value&&e.value.size>1){y(!1,"Form.Item",`FormItem can only collect one field item, you haved set ${[...e.value.values()].map(m=>`\`${m.name}\``).join(", ")} ${e.value.size} field items.
1
+ import{i as u,f,p as r,d as c,b as F,w as C,g as v,r as x}from"./vendor-BvqAck49.js";import{d as y}from"./devWarning-DV2BNd59.js";import{c as g}from"./createContext-DY7EFhkD.js";const s=Symbol("ContextProps"),l=Symbol("InternalContextProps"),K=function(a){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:F(()=>!0);const e=x(new Map),o=(n,m)=>{e.value.set(n,m),e.value=new Map(e.value)},p=n=>{e.value.delete(n),e.value=new Map(e.value)},I=v();C([t,e],()=>{if(t.value&&e.value.size>1){y(!1,"Form.Item",`FormItem can only collect one field item, you haved set ${[...e.value.values()].map(m=>`\`${m.name}\``).join(", ")} ${e.value.size} field items.
2
2
  You can set not need to be collected fields into \`a-form-item-rest\``);let n=I;for(;n.parent;)console.warn("at",n.type),n=n.parent}}),r(s,a),r(l,{addFormItemField:o,removeFormItemField:p})},i={id:F(()=>{}),onFieldBlur:()=>{},onFieldChange:()=>{},clearValidate:()=>{}},d={addFormItemField:()=>{},removeFormItemField:()=>{}},M=()=>{const a=u(l,d),t=Symbol("FormItemFieldKey"),e=v();return a.addFormItemField(t,e.type),f(()=>{a.removeFormItemField(t)}),r(l,d),r(s,i),u(s,i)},P=c({compatConfig:{MODE:3},name:"AFormItemRest",setup(a,t){let{slots:e}=t;return r(l,d),r(s,i),()=>{var o;return(o=e.default)===null||o===void 0?void 0:o.call(e)}}}),w=g({}),_=c({name:"NoFormStatus",setup(a,t){let{slots:e}=t;return w.useProvide({}),()=>{var o;return(o=e.default)===null||o===void 0?void 0:o.call(e)}}});export{w as F,_ as N,K as a,P as b,M as u};
@@ -1 +1 @@
1
- import{I as S,P as s,J as i,U as l,R as n,c as g,K as u,Q as _,V as m,F as C,Z as N,S as T,b as p}from"./vendor-BvqAck49.js";import{_ as V}from"./index-Y1b8i0NV.js";import"./icons-DP3uiYxy.js";const w={__name:"GenericCardRenderer",props:{event:{type:Object,required:!0}},setup(v,{expose:f}){f();const t=v,o=p(()=>{if(!t.event.occurredAt)return"";try{const e=new Date(t.event.occurredAt),c=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),k=String(e.getDate()).padStart(2,"0"),b=String(e.getHours()).padStart(2,"0"),x=String(e.getMinutes()).padStart(2,"0");return`${c}-${r}-${k} ${b}:${x}`}catch{return""}}),h=p(()=>{const e=t.event.content||{};return e.text||e.title||e.subject||e.name||e.prompt||JSON.stringify(e).slice(0,200)}),y=p(()=>{const e=t.event.content||{};return e.body||e.snippet||e.description||e.from||e.counterparty||null}),d=p(()=>{const e=t.event.content||{},c=t.event.extra||{},r=[];return e.amount!=null&&r.push({k:"金额",v:e.amount,color:"gold"}),c.merchant&&r.push({k:"商户",v:c.merchant,color:"green"}),c.orderNo&&r.push({k:"订单",v:c.orderNo,color:"purple"}),e.from&&e.to&&r.push({k:"路线",v:`${e.from} → ${e.to}`,color:"cyan"}),e.trainNo&&r.push({k:"车次",v:e.trainNo,color:"cyan"}),e.model&&r.push({k:"模型",v:e.model,color:"magenta"}),t.event.place&&r.push({k:"地点",v:t.event.place,color:"geekblue"}),r}),a={props:t,formattedTime:o,primaryText:h,secondaryText:y,metaChips:d,computed:p};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}},B={class:"event-card"},R={class:"card-head"},j={class:"time"},D={key:0,class:"actor"},F={class:"card-body"},G={class:"primary"},I={key:0,class:"secondary"},O={key:0,class:"card-meta"},P={class:"meta-k"};function A(v,f,t,o,h,y){const d=S("a-tag");return s(),i("div",B,[l("div",R,[l("span",j,n(o.formattedTime),1),g(d,{color:"blue",class:"adapter"},{default:u(()=>[_(n(t.event.source.adapter),1)]),_:1}),g(d,{class:"subtype"},{default:u(()=>[_(n(t.event.subtype),1)]),_:1}),t.event.actor?(s(),i("span",D,"@"+n(t.event.actor),1)):m("v-if",!0)]),l("div",F,[l("div",G,n(o.primaryText),1),o.secondaryText?(s(),i("div",I,n(o.secondaryText),1)):m("v-if",!0)]),o.metaChips.length>0?(s(),i("div",O,[(s(!0),i(C,null,N(o.metaChips,a=>(s(),T(d,{key:a.k,color:a.color},{default:u(()=>[l("span",P,n(a.k)+":",1),_(" "+n(a.v),1)]),_:2},1032,["color"]))),128))])):m("v-if",!0)])}const q=V(w,[["render",A],["__scopeId","data-v-c52d08ab"],["__file","/tmp/cc-web-panel-aLcItP/repo/packages/web-panel/src/components/pdh/renderers/GenericCardRenderer.vue"]]);export{q as default};
1
+ import{I as S,P as s,J as i,U as l,R as n,c as g,K as u,Q as _,V as m,F as C,Z as N,S as T,b as p}from"./vendor-BvqAck49.js";import{_ as B}from"./index-oJQgRCrR.js";import"./icons-DP3uiYxy.js";const R={__name:"GenericCardRenderer",props:{event:{type:Object,required:!0}},setup(v,{expose:f}){f();const t=v,o=p(()=>{if(!t.event.occurredAt)return"";try{const e=new Date(t.event.occurredAt),c=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),k=String(e.getDate()).padStart(2,"0"),b=String(e.getHours()).padStart(2,"0"),x=String(e.getMinutes()).padStart(2,"0");return`${c}-${r}-${k} ${b}:${x}`}catch{return""}}),h=p(()=>{const e=t.event.content||{};return e.text||e.title||e.subject||e.name||e.prompt||JSON.stringify(e).slice(0,200)}),y=p(()=>{const e=t.event.content||{};return e.body||e.snippet||e.description||e.from||e.counterparty||null}),d=p(()=>{const e=t.event.content||{},c=t.event.extra||{},r=[];return e.amount!=null&&r.push({k:"金额",v:e.amount,color:"gold"}),c.merchant&&r.push({k:"商户",v:c.merchant,color:"green"}),c.orderNo&&r.push({k:"订单",v:c.orderNo,color:"purple"}),e.from&&e.to&&r.push({k:"路线",v:`${e.from} → ${e.to}`,color:"cyan"}),e.trainNo&&r.push({k:"车次",v:e.trainNo,color:"cyan"}),e.model&&r.push({k:"模型",v:e.model,color:"magenta"}),t.event.place&&r.push({k:"地点",v:t.event.place,color:"geekblue"}),r}),a={props:t,formattedTime:o,primaryText:h,secondaryText:y,metaChips:d,computed:p};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}},V={class:"event-card"},w={class:"card-head"},j={class:"time"},D={key:0,class:"actor"},F={class:"card-body"},G={class:"primary"},J={key:0,class:"secondary"},O={key:0,class:"card-meta"},A={class:"meta-k"};function I(v,f,t,o,h,y){const d=S("a-tag");return s(),i("div",V,[l("div",w,[l("span",j,n(o.formattedTime),1),g(d,{color:"blue",class:"adapter"},{default:u(()=>[_(n(t.event.source.adapter),1)]),_:1}),g(d,{class:"subtype"},{default:u(()=>[_(n(t.event.subtype),1)]),_:1}),t.event.actor?(s(),i("span",D,"@"+n(t.event.actor),1)):m("v-if",!0)]),l("div",F,[l("div",G,n(o.primaryText),1),o.secondaryText?(s(),i("div",J,n(o.secondaryText),1)):m("v-if",!0)]),o.metaChips.length>0?(s(),i("div",O,[(s(!0),i(C,null,N(o.metaChips,a=>(s(),T(d,{key:a.k,color:a.color},{default:u(()=>[l("span",A,n(a.k)+":",1),_(" "+n(a.v),1)]),_:2},1032,["color"]))),128))])):m("v-if",!0)])}const z=B(R,[["render",I],["__scopeId","data-v-c52d08ab"],["__file","/tmp/cc-web-panel-RrTzBJ/repo/packages/web-panel/src/components/pdh/renderers/GenericCardRenderer.vue"]]);export{z as default};
@@ -1,2 +1,2 @@
1
- import{I as u,J as G,U as c,R as l,c as o,K as e,V as f,r as s,P as v,Q as d,S as y}from"./vendor-BvqAck49.js";import{_ as Q,b as K,u as N,d as _}from"./index-Y1b8i0NV.js";import{aj as X,R as Y,aK as Z,aL as $,a1 as tt}from"./icons-DP3uiYxy.js";const et={__name:"Git",setup(j,{expose:a}){a();const{t:r}=K(),t=N(),T=s("git"),A=s(!1),b=s(""),L=s(""),C=s(0),x=s(!1),k=s(""),h=s(!1),w=s(!1),R=s(""),O=s("markdown"),P=s(!1),B=s("./site"),S=s(!1),i=s(""),I=s(!1),F=s("");function D(n){const m=n.split(`
2
- `);let p="",g=0;for(const E of m){const V=E.match(/On branch\s+(.+)/)||E.match(/分支\s+(.+)/);V&&(p=V[1].trim());const z=E.trim();/^(M|A|D|R|C|U|\?\?|MM|AM|AD)\s/.test(z)&&g++,/^(modified|new file|deleted|renamed):/i.test(z)&&g++}return{branch:p,changed:g}}async function M(){A.value=!0;try{const{output:n}=await t.execute("git status",15e3);b.value=n;const m=D(n);L.value=m.branch,C.value=m.changed}catch(n){_.error(r("git.messages.statusFailed",{err:n.message})),b.value=""}finally{A.value=!1}}function q(){w.value=!0}async function W(){w.value=!1,x.value=!0,k.value="";try{const{output:n}=await t.execute("git auto-commit",3e4);k.value=n,h.value=!n.includes("✖")&&!n.toLowerCase().includes("error"),h.value&&_.success(r("git.messages.commitOk")),await M()}catch(n){k.value=r("git.messages.commitFailedDetail",{err:n.message}),h.value=!1,_.error(r("git.messages.commitFailedToast"))}finally{x.value=!1}}async function H(){const n=R.value.trim();if(!n){_.warning(r("git.messages.importPathRequired"));return}P.value=!0,i.value="",F.value="";try{const m=`import ${O.value} ${n}`,{output:p}=await t.execute(m,6e4);F.value=p;const g=p.includes("✖")||p.toLowerCase().includes("error");I.value=!g,i.value=r(g?"git.io.importIssue":"git.io.importDone"),g||_.success(r("git.messages.importOk"))}catch(m){i.value=r("git.messages.importFailedDetail",{err:m.message}),I.value=!1,_.error(r("git.messages.importFailed"))}finally{P.value=!1}}async function J(){const n=B.value.trim();if(!n){_.warning(r("git.messages.exportPathRequired"));return}S.value=!0,i.value="",F.value="";try{const m=`export site -o ${n}`,{output:p}=await t.execute(m,6e4);F.value=p;const g=p.includes("✖")||p.toLowerCase().includes("error");I.value=!g,i.value=r(g?"git.io.exportIssue":"git.io.exportDone"),g||_.success(r("git.messages.exportOk"))}catch(m){i.value=r("git.messages.exportFailedDetail",{err:m.message}),I.value=!1,_.error(r("git.messages.exportFailed"))}finally{S.value=!1}}const U={t:r,ws:t,activeTab:T,statusLoading:A,statusOutput:b,gitBranch:L,changedCount:C,commitLoading:x,commitResult:k,commitSuccess:h,showCommitConfirm:w,importPath:R,importFormat:O,importLoading:P,exportPath:B,exportLoading:S,ioResult:i,ioSuccess:I,ioOutput:F,parseGitStatus:D,refreshStatus:M,confirmAutoCommit:q,doAutoCommit:W,doImport:H,doExport:J,ref:s,get useI18n(){return K},get BranchesOutlined(){return tt},get ImportOutlined(){return $},get ExportOutlined(){return Z},get ReloadOutlined(){return Y},get CheckOutlined(){return X},get message(){return _},get useWsStore(){return N}};return Object.defineProperty(U,"__isScriptSetup",{enumerable:!1,value:!0}),U}},ot={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},at={class:"page-title"},it={class:"page-sub"},rt={key:0,style:{"margin-bottom":"16px"}},nt={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-primary)","font-family":"'Cascadia Code', 'Fira Code', Consolas, monospace","font-size":"13px","line-height":"1.7",margin:"0"}},lt={style:{display:"flex",gap:"12px","align-items":"flex-end","flex-wrap":"wrap"}},st={style:{flex:"1","min-width":"200px"}},ct={style:{display:"block","margin-bottom":"6px",color:"var(--text-secondary)","font-size":"13px"}},dt={style:{"min-width":"140px"}},mt={style:{display:"block","margin-bottom":"6px",color:"var(--text-secondary)","font-size":"13px"}},ut={style:{display:"flex",gap:"12px","align-items":"flex-end","flex-wrap":"wrap"}},gt={style:{flex:"1","min-width":"200px"}},pt={style:{display:"block","margin-bottom":"6px",color:"var(--text-secondary)","font-size":"13px"}},ft={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-primary)","font-family":"'Cascadia Code', 'Fira Code', Consolas, monospace","font-size":"13px","line-height":"1.7",margin:"0"}},vt={style:{color:"var(--text-secondary)"}};function _t(j,a,r,t,T,A){const b=u("a-button"),L=u("a-space"),C=u("a-tag"),x=u("a-card"),k=u("a-empty"),h=u("a-alert"),w=u("a-tab-pane"),R=u("a-input"),O=u("a-select-option"),P=u("a-select"),B=u("a-tabs"),S=u("a-modal");return v(),G("div",null,[c("div",ot,[c("div",null,[c("h2",at,l(t.t("git.title")),1),c("p",it,l(t.t("git.subtitle")),1)])]),o(B,{activeKey:t.activeTab,"onUpdate:activeKey":a[5]||(a[5]=i=>t.activeTab=i),type:"card"},{default:e(()=>[f(" Git Tab "),o(w,{key:"git"},{tab:e(()=>[o(t.BranchesOutlined),d(" "+l(t.t("git.tabs.git")),1)]),default:e(()=>[o(L,{style:{"margin-bottom":"16px"}},{default:e(()=>[o(b,{type:"primary",loading:t.statusLoading,onClick:t.refreshStatus},{icon:e(()=>[o(t.ReloadOutlined)]),default:e(()=>[d(" "+l(t.t("git.actions.refresh")),1)]),_:1},8,["loading"]),o(b,{loading:t.commitLoading,onClick:t.confirmAutoCommit},{icon:e(()=>[o(t.CheckOutlined)]),default:e(()=>[d(" "+l(t.t("git.actions.autoCommit")),1)]),_:1},8,["loading"])]),_:1}),t.gitBranch||t.changedCount>0?(v(),G("div",rt,[o(L,null,{default:e(()=>[t.gitBranch?(v(),y(C,{key:0,color:"blue"},{default:e(()=>[o(t.BranchesOutlined),d(" "+l(t.gitBranch),1)]),_:1})):f("v-if",!0),t.changedCount>0?(v(),y(C,{key:1,color:"orange"},{default:e(()=>[d(l(t.t("git.status.changedCount",{count:t.changedCount})),1)]),_:1})):t.statusOutput&&t.changedCount===0?(v(),y(C,{key:2,color:"green"},{default:e(()=>[d(l(t.t("git.status.clean")),1)]),_:1})):f("v-if",!0)]),_:1})])):f("v-if",!0),t.statusOutput?(v(),y(x,{key:1,bordered:!1,style:{background:"var(--bg-base)",border:"1px solid var(--border-color)"}},{default:e(()=>[c("pre",nt,l(t.statusOutput),1)]),_:1})):t.statusLoading?f("v-if",!0):(v(),y(k,{key:2,description:t.t("git.status.emptyHint"),style:{padding:"60px 0"}},null,8,["description"])),t.commitResult?(v(),y(h,{key:3,message:t.commitSuccess?t.t("git.status.commitSuccessAlert"):t.t("git.status.commitResultAlert"),description:t.commitResult,type:t.commitSuccess?"success":"info","show-icon":"",closable:"",style:{"margin-top":"16px"},onClose:a[0]||(a[0]=i=>t.commitResult="")},null,8,["message","description","type"])):f("v-if",!0)]),_:1}),f(" Import/Export Tab "),o(w,{key:"io"},{tab:e(()=>[o(t.ImportOutlined),d(" "+l(t.t("git.tabs.io")),1)]),default:e(()=>[o(x,{title:t.t("git.import.cardTitle"),bordered:!1,style:{background:"var(--bg-card)",border:"1px solid var(--border-color)","margin-bottom":"16px"}},{default:e(()=>[c("div",lt,[c("div",st,[c("label",ct,l(t.t("git.import.pathLabel")),1),o(R,{value:t.importPath,"onUpdate:value":a[1]||(a[1]=i=>t.importPath=i),placeholder:t.t("git.import.pathPlaceholder"),"allow-clear":""},null,8,["value","placeholder"])]),c("div",dt,[c("label",mt,l(t.t("git.import.formatLabel")),1),o(P,{value:t.importFormat,"onUpdate:value":a[2]||(a[2]=i=>t.importFormat=i),style:{width:"140px"}},{default:e(()=>[o(O,{value:"markdown"},{default:e(()=>[...a[7]||(a[7]=[d("Markdown",-1)])]),_:1}),o(O,{value:"pdf"},{default:e(()=>[...a[8]||(a[8]=[d("PDF",-1)])]),_:1}),o(O,{value:"evernote"},{default:e(()=>[...a[9]||(a[9]=[d("Evernote",-1)])]),_:1})]),_:1},8,["value"])]),o(b,{type:"primary",loading:t.importLoading,disabled:!t.importPath.trim(),onClick:t.doImport},{icon:e(()=>[o(t.ImportOutlined)]),default:e(()=>[d(" "+l(t.t("git.import.submit")),1)]),_:1},8,["loading","disabled"])])]),_:1},8,["title"]),o(x,{title:t.t("git.export.cardTitle"),bordered:!1,style:{background:"var(--bg-card)",border:"1px solid var(--border-color)","margin-bottom":"16px"}},{default:e(()=>[c("div",ut,[c("div",gt,[c("label",pt,l(t.t("git.export.pathLabel")),1),o(R,{value:t.exportPath,"onUpdate:value":a[3]||(a[3]=i=>t.exportPath=i),placeholder:t.t("git.export.pathPlaceholder"),"allow-clear":""},null,8,["value","placeholder"])]),o(b,{type:"primary",loading:t.exportLoading,disabled:!t.exportPath.trim(),onClick:t.doExport},{icon:e(()=>[o(t.ExportOutlined)]),default:e(()=>[d(" "+l(t.t("git.export.submit")),1)]),_:1},8,["loading","disabled"])])]),_:1},8,["title"]),t.ioResult?(v(),y(h,{key:0,message:t.ioSuccess?t.t("git.io.successAlert"):t.t("git.io.resultAlert"),description:t.ioResult,type:t.ioSuccess?"success":"info","show-icon":"",closable:"",style:{"margin-top":"16px"},onClose:a[4]||(a[4]=i=>t.ioResult="")},null,8,["message","description","type"])):f("v-if",!0),t.ioOutput?(v(),y(x,{key:1,title:t.t("git.io.outputCardTitle"),bordered:!1,style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","margin-top":"16px"}},{default:e(()=>[c("pre",ft,l(t.ioOutput),1)]),_:1},8,["title"])):f("v-if",!0)]),_:1})]),_:1},8,["activeKey"]),f(" Auto Commit Confirmation Modal "),o(S,{open:t.showCommitConfirm,"onUpdate:open":a[6]||(a[6]=i=>t.showCommitConfirm=i),title:t.t("git.confirm.title"),"ok-text":t.t("git.confirm.ok"),"cancel-text":t.t("common.cancel"),"confirm-loading":t.commitLoading,onOk:t.doAutoCommit},{default:e(()=>[c("p",vt,[d(l(t.t("git.confirm.intro1"))+" ",1),a[10]||(a[10]=c("code",null,"git auto-commit",-1)),d(" "+l(t.t("git.confirm.intro2")),1)])]),_:1},8,["open","title","ok-text","cancel-text","confirm-loading"])])}const ht=Q(et,[["render",_t],["__scopeId","data-v-9446ce38"],["__file","/tmp/cc-web-panel-aLcItP/repo/packages/web-panel/src/views/Git.vue"]]);export{ht as default};
1
+ import{I as u,J as G,U as c,R as l,c as o,K as e,V as f,r as s,P as v,Q as d,S as y}from"./vendor-BvqAck49.js";import{_ as Q,b as K,u as N,d as _}from"./index-oJQgRCrR.js";import{aj as X,R as Y,aK as Z,aL as $,a1 as tt}from"./icons-DP3uiYxy.js";const et={__name:"Git",setup(j,{expose:a}){a();const{t:r}=K(),t=N(),E=s("git"),I=s(!1),b=s(""),R=s(""),C=s(0),x=s(!1),k=s(""),h=s(!1),w=s(!1),L=s(""),O=s("markdown"),S=s(!1),A=s("./site"),P=s(!1),i=s(""),B=s(!1),F=s("");function D(n){const m=n.split(`
2
+ `);let p="",g=0;for(const T of m){const V=T.match(/On branch\s+(.+)/)||T.match(/分支\s+(.+)/);V&&(p=V[1].trim());const z=T.trim();/^(M|A|D|R|C|U|\?\?|MM|AM|AD)\s/.test(z)&&g++,/^(modified|new file|deleted|renamed):/i.test(z)&&g++}return{branch:p,changed:g}}async function M(){I.value=!0;try{const{output:n}=await t.execute("git status",15e3);b.value=n;const m=D(n);R.value=m.branch,C.value=m.changed}catch(n){_.error(r("git.messages.statusFailed",{err:n.message})),b.value=""}finally{I.value=!1}}function q(){w.value=!0}async function J(){w.value=!1,x.value=!0,k.value="";try{const{output:n}=await t.execute("git auto-commit",3e4);k.value=n,h.value=!n.includes("✖")&&!n.toLowerCase().includes("error"),h.value&&_.success(r("git.messages.commitOk")),await M()}catch(n){k.value=r("git.messages.commitFailedDetail",{err:n.message}),h.value=!1,_.error(r("git.messages.commitFailedToast"))}finally{x.value=!1}}async function W(){const n=L.value.trim();if(!n){_.warning(r("git.messages.importPathRequired"));return}S.value=!0,i.value="",F.value="";try{const m=`import ${O.value} ${n}`,{output:p}=await t.execute(m,6e4);F.value=p;const g=p.includes("✖")||p.toLowerCase().includes("error");B.value=!g,i.value=r(g?"git.io.importIssue":"git.io.importDone"),g||_.success(r("git.messages.importOk"))}catch(m){i.value=r("git.messages.importFailedDetail",{err:m.message}),B.value=!1,_.error(r("git.messages.importFailed"))}finally{S.value=!1}}async function H(){const n=A.value.trim();if(!n){_.warning(r("git.messages.exportPathRequired"));return}P.value=!0,i.value="",F.value="";try{const m=`export site -o ${n}`,{output:p}=await t.execute(m,6e4);F.value=p;const g=p.includes("✖")||p.toLowerCase().includes("error");B.value=!g,i.value=r(g?"git.io.exportIssue":"git.io.exportDone"),g||_.success(r("git.messages.exportOk"))}catch(m){i.value=r("git.messages.exportFailedDetail",{err:m.message}),B.value=!1,_.error(r("git.messages.exportFailed"))}finally{P.value=!1}}const U={t:r,ws:t,activeTab:E,statusLoading:I,statusOutput:b,gitBranch:R,changedCount:C,commitLoading:x,commitResult:k,commitSuccess:h,showCommitConfirm:w,importPath:L,importFormat:O,importLoading:S,exportPath:A,exportLoading:P,ioResult:i,ioSuccess:B,ioOutput:F,parseGitStatus:D,refreshStatus:M,confirmAutoCommit:q,doAutoCommit:J,doImport:W,doExport:H,ref:s,get useI18n(){return K},get BranchesOutlined(){return tt},get ImportOutlined(){return $},get ExportOutlined(){return Z},get ReloadOutlined(){return Y},get CheckOutlined(){return X},get message(){return _},get useWsStore(){return N}};return Object.defineProperty(U,"__isScriptSetup",{enumerable:!1,value:!0}),U}},ot={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},at={class:"page-title"},it={class:"page-sub"},rt={key:0,style:{"margin-bottom":"16px"}},nt={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-primary)","font-family":"'Cascadia Code', 'Fira Code', Consolas, monospace","font-size":"13px","line-height":"1.7",margin:"0"}},lt={style:{display:"flex",gap:"12px","align-items":"flex-end","flex-wrap":"wrap"}},st={style:{flex:"1","min-width":"200px"}},ct={style:{display:"block","margin-bottom":"6px",color:"var(--text-secondary)","font-size":"13px"}},dt={style:{"min-width":"140px"}},mt={style:{display:"block","margin-bottom":"6px",color:"var(--text-secondary)","font-size":"13px"}},ut={style:{display:"flex",gap:"12px","align-items":"flex-end","flex-wrap":"wrap"}},gt={style:{flex:"1","min-width":"200px"}},pt={style:{display:"block","margin-bottom":"6px",color:"var(--text-secondary)","font-size":"13px"}},ft={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-primary)","font-family":"'Cascadia Code', 'Fira Code', Consolas, monospace","font-size":"13px","line-height":"1.7",margin:"0"}},vt={style:{color:"var(--text-secondary)"}};function _t(j,a,r,t,E,I){const b=u("a-button"),R=u("a-space"),C=u("a-tag"),x=u("a-card"),k=u("a-empty"),h=u("a-alert"),w=u("a-tab-pane"),L=u("a-input"),O=u("a-select-option"),S=u("a-select"),A=u("a-tabs"),P=u("a-modal");return v(),G("div",null,[c("div",ot,[c("div",null,[c("h2",at,l(t.t("git.title")),1),c("p",it,l(t.t("git.subtitle")),1)])]),o(A,{activeKey:t.activeTab,"onUpdate:activeKey":a[5]||(a[5]=i=>t.activeTab=i),type:"card"},{default:e(()=>[f(" Git Tab "),o(w,{key:"git"},{tab:e(()=>[o(t.BranchesOutlined),d(" "+l(t.t("git.tabs.git")),1)]),default:e(()=>[o(R,{style:{"margin-bottom":"16px"}},{default:e(()=>[o(b,{type:"primary",loading:t.statusLoading,onClick:t.refreshStatus},{icon:e(()=>[o(t.ReloadOutlined)]),default:e(()=>[d(" "+l(t.t("git.actions.refresh")),1)]),_:1},8,["loading"]),o(b,{loading:t.commitLoading,onClick:t.confirmAutoCommit},{icon:e(()=>[o(t.CheckOutlined)]),default:e(()=>[d(" "+l(t.t("git.actions.autoCommit")),1)]),_:1},8,["loading"])]),_:1}),t.gitBranch||t.changedCount>0?(v(),G("div",rt,[o(R,null,{default:e(()=>[t.gitBranch?(v(),y(C,{key:0,color:"blue"},{default:e(()=>[o(t.BranchesOutlined),d(" "+l(t.gitBranch),1)]),_:1})):f("v-if",!0),t.changedCount>0?(v(),y(C,{key:1,color:"orange"},{default:e(()=>[d(l(t.t("git.status.changedCount",{count:t.changedCount})),1)]),_:1})):t.statusOutput&&t.changedCount===0?(v(),y(C,{key:2,color:"green"},{default:e(()=>[d(l(t.t("git.status.clean")),1)]),_:1})):f("v-if",!0)]),_:1})])):f("v-if",!0),t.statusOutput?(v(),y(x,{key:1,bordered:!1,style:{background:"var(--bg-base)",border:"1px solid var(--border-color)"}},{default:e(()=>[c("pre",nt,l(t.statusOutput),1)]),_:1})):t.statusLoading?f("v-if",!0):(v(),y(k,{key:2,description:t.t("git.status.emptyHint"),style:{padding:"60px 0"}},null,8,["description"])),t.commitResult?(v(),y(h,{key:3,message:t.commitSuccess?t.t("git.status.commitSuccessAlert"):t.t("git.status.commitResultAlert"),description:t.commitResult,type:t.commitSuccess?"success":"info","show-icon":"",closable:"",style:{"margin-top":"16px"},onClose:a[0]||(a[0]=i=>t.commitResult="")},null,8,["message","description","type"])):f("v-if",!0)]),_:1}),f(" Import/Export Tab "),o(w,{key:"io"},{tab:e(()=>[o(t.ImportOutlined),d(" "+l(t.t("git.tabs.io")),1)]),default:e(()=>[o(x,{title:t.t("git.import.cardTitle"),bordered:!1,style:{background:"var(--bg-card)",border:"1px solid var(--border-color)","margin-bottom":"16px"}},{default:e(()=>[c("div",lt,[c("div",st,[c("label",ct,l(t.t("git.import.pathLabel")),1),o(L,{value:t.importPath,"onUpdate:value":a[1]||(a[1]=i=>t.importPath=i),placeholder:t.t("git.import.pathPlaceholder"),"allow-clear":""},null,8,["value","placeholder"])]),c("div",dt,[c("label",mt,l(t.t("git.import.formatLabel")),1),o(S,{value:t.importFormat,"onUpdate:value":a[2]||(a[2]=i=>t.importFormat=i),style:{width:"140px"}},{default:e(()=>[o(O,{value:"markdown"},{default:e(()=>[...a[7]||(a[7]=[d("Markdown",-1)])]),_:1}),o(O,{value:"pdf"},{default:e(()=>[...a[8]||(a[8]=[d("PDF",-1)])]),_:1}),o(O,{value:"evernote"},{default:e(()=>[...a[9]||(a[9]=[d("Evernote",-1)])]),_:1})]),_:1},8,["value"])]),o(b,{type:"primary",loading:t.importLoading,disabled:!t.importPath.trim(),onClick:t.doImport},{icon:e(()=>[o(t.ImportOutlined)]),default:e(()=>[d(" "+l(t.t("git.import.submit")),1)]),_:1},8,["loading","disabled"])])]),_:1},8,["title"]),o(x,{title:t.t("git.export.cardTitle"),bordered:!1,style:{background:"var(--bg-card)",border:"1px solid var(--border-color)","margin-bottom":"16px"}},{default:e(()=>[c("div",ut,[c("div",gt,[c("label",pt,l(t.t("git.export.pathLabel")),1),o(L,{value:t.exportPath,"onUpdate:value":a[3]||(a[3]=i=>t.exportPath=i),placeholder:t.t("git.export.pathPlaceholder"),"allow-clear":""},null,8,["value","placeholder"])]),o(b,{type:"primary",loading:t.exportLoading,disabled:!t.exportPath.trim(),onClick:t.doExport},{icon:e(()=>[o(t.ExportOutlined)]),default:e(()=>[d(" "+l(t.t("git.export.submit")),1)]),_:1},8,["loading","disabled"])])]),_:1},8,["title"]),t.ioResult?(v(),y(h,{key:0,message:t.ioSuccess?t.t("git.io.successAlert"):t.t("git.io.resultAlert"),description:t.ioResult,type:t.ioSuccess?"success":"info","show-icon":"",closable:"",style:{"margin-top":"16px"},onClose:a[4]||(a[4]=i=>t.ioResult="")},null,8,["message","description","type"])):f("v-if",!0),t.ioOutput?(v(),y(x,{key:1,title:t.t("git.io.outputCardTitle"),bordered:!1,style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","margin-top":"16px"}},{default:e(()=>[c("pre",ft,l(t.ioOutput),1)]),_:1},8,["title"])):f("v-if",!0)]),_:1})]),_:1},8,["activeKey"]),f(" Auto Commit Confirmation Modal "),o(P,{open:t.showCommitConfirm,"onUpdate:open":a[6]||(a[6]=i=>t.showCommitConfirm=i),title:t.t("git.confirm.title"),"ok-text":t.t("git.confirm.ok"),"cancel-text":t.t("common.cancel"),"confirm-loading":t.commitLoading,onOk:t.doAutoCommit},{default:e(()=>[c("p",vt,[d(l(t.t("git.confirm.intro1"))+" ",1),a[10]||(a[10]=c("code",null,"git auto-commit",-1)),d(" "+l(t.t("git.confirm.intro2")),1)])]),_:1},8,["open","title","ok-text","cancel-text","confirm-loading"])])}const ht=Q(et,[["render",_t],["__scopeId","data-v-9446ce38"],["__file","/tmp/cc-web-panel-RrTzBJ/repo/packages/web-panel/src/views/Git.vue"]]);export{ht as default};
@@ -1 +1 @@
1
- import{I as y,J as g,U as f,R as s,c as o,K as a,V as p,S as k,o as ue,a as se,b as ie,r as P,P as d,Q as u,F,Z as I,$ as Ie}from"./vendor-BvqAck49.js";import{_ as Ue,u as pe,b as ve,E as fe,d as b}from"./index-Y1b8i0NV.js";import{s as Pe}from"./community-parser-CO25nZFt.js";import{aU as Ne,aT as Ve,d as Ye,f as Ge,ap as Be,a4 as qe,as as Je,R as Ke}from"./icons-DP3uiYxy.js";function B(t){const n=Pe(t);if(!n)return null;try{return JSON.parse(n)}catch{}const c=n.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!c)return null;try{return JSON.parse(c[0])}catch{return null}}const Se=Object.freeze(["draft","active","passed","rejected","expired"]),he=Object.freeze(["parameter_change","feature_request","policy_update","budget_allocation"]),He=Object.freeze(["yes","no","abstain"]);function L(t,n=0){return typeof t=="number"&&Number.isFinite(t)?t:n}function U(t){if(!t)return{noDb:!1,error:""};const n=Pe(t),c=/Database not available/i.test(n);return{noDb:c,error:c?"Database not available":""}}function We(t,n=0){if(!t||typeof t!="object")return null;const c=t.id||"";return c?{key:c,id:c,name:String(t.name||""),description:String(t.description||""),_idx:n}:null}function me(t){const n=B(t);return Array.isArray(n)?n.map(We).filter(Boolean):[]}function Qe(t,n=0){if(!t||typeof t!="object")return null;const c=t.id||"";return c?{key:c,id:c,title:String(t.title||""),description:t.description??"",type:String(t.type||"feature_request"),proposerDid:t.proposerDid??"",status:String(t.status||"draft").toLowerCase(),impactLevel:t.impactLevel??"",impactAnalysis:t.impactAnalysis??null,voteYes:L(t.voteYes,0),voteNo:L(t.voteNo,0),voteAbstain:L(t.voteAbstain,0),votingStartsAt:t.votingStartsAt??null,votingEndsAt:t.votingEndsAt??null,metadata:t.metadata??null,createdAt:t.createdAt??null,_idx:n}:null}function ye(t){const n=B(t);return Array.isArray(n)?n.map(Qe).filter(Boolean):[]}function Ze(t,n=0){if(!t||typeof t!="object")return null;const c=t.id||"";if(!c)return null;const e=String(t.vote||"").toLowerCase();return{key:c,id:c,proposalId:String(t.proposalId||""),voterDid:String(t.voterDid||""),vote:(He.includes(e),e),reason:t.reason??"",weight:L(t.weight,1),createdAt:t.createdAt??null,_idx:n}}function ge(t){const n=B(t);return Array.isArray(n)?n.map(Ze).filter(Boolean):[]}function be(t){const n=B(t);return!n||typeof n!="object"||Array.isArray(n)?null:{impactLevel:String(n.impactLevel||""),affectedComponents:Array.isArray(n.affectedComponents)?n.affectedComponents.filter(c=>typeof c=="string"):[],riskScore:L(n.riskScore,0),benefitScore:L(n.benefitScore,0),estimatedEffort:String(n.estimatedEffort||""),communitySentiment:String(n.communitySentiment||""),recommendations:Array.isArray(n.recommendations)?n.recommendations.filter(c=>typeof c=="string"):[],analyzedAt:n.analyzedAt??null}}function _e(t){const n=B(t);return!n||typeof n!="object"||Array.isArray(n)?null:{proposalId:String(n.proposalId||""),predictedOutcome:String(n.predictedOutcome||""),confidence:L(n.confidence,0),yesProb:L(n.yesProb,0),noProb:L(n.noProb,0),abstainProb:L(n.abstainProb,0),basedOn:String(n.basedOn||""),sampleSize:L(n.sampleSize,0)}}const Xe={proposalCount:0,voteCount:0,byStatus:{},byType:{}};function ke(t){const n=JSON.parse(JSON.stringify(Xe));for(const e of Se)n.byStatus[e]=0;for(const e of he)n.byType[e]=0;const c=B(t);if(!c||typeof c!="object"||Array.isArray(c))return n;if(n.proposalCount=L(c.proposalCount,0),n.voteCount=L(c.voteCount,0),c.byStatus&&typeof c.byStatus=="object")for(const[e,D]of Object.entries(c.byStatus))typeof D=="number"&&Number.isFinite(D)&&(n.byStatus[e]=D);if(c.byType&&typeof c.byType=="object")for(const[e,D]of Object.entries(c.byType))typeof D=="number"&&Number.isFinite(D)&&(n.byType[e]=D);return n}function $e(t){if(t==null||t==="")return"—";const n=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(n.getTime())?String(t):n.toLocaleString("zh-CN",{hour12:!1})}const et={__name:"Governance",setup(t,{expose:n}){n();const c=pe(),{t:e}=ve(),D=fe.PRESENTED_IMAGE_SIMPLE,Q=P(!1),w=P(!1),N=P(!1),q=P([]),T=P([]),O=P({proposalCount:0,voteCount:0,byStatus:{},byType:{}}),C=P({noDb:!1,error:""}),V=P("proposals"),_=P(""),x=P(""),Y=P(!1),E=P(!1),Z=P(!1),X=P(!1),J=P(!1),z=se({title:"",type:"feature_request",proposerDid:"",description:""}),A=se({voterDid:"",value:"yes",weight:1,reason:""}),h=P(null),K=P([]),H=P(null),G=P(null),$=ie(()=>[{title:e("governance.cols.title"),key:"title"},{title:e("governance.cols.type"),key:"type",width:"130px"},{title:e("governance.cols.status"),key:"status",width:"100px"},{title:e("governance.cols.tally"),key:"tally",width:"180px"},{title:e("governance.cols.impact"),key:"impact",width:"100px"},{title:e("governance.cols.createdAt"),key:"createdAt",width:"160px"},{title:e("governance.cols.action"),key:"action",width:"320px"}]),M=ie(()=>{let l=q.value;return _.value&&(l=l.filter(i=>i.status===_.value)),x.value&&(l=l.filter(i=>i.type===x.value)),l});function ae(l){const i=`governance.statusLabels.${l}`,v=e(i);return v===i?l:v}function S(l){return{draft:"default",active:"processing",passed:"green",rejected:"red",expired:"default"}[l]||"default"}function ee(l){return{draft:"#888",active:"#1677ff",passed:"#52c41a",rejected:"#ff4d4f",expired:"#888"}[l]||"#888"}function ne(l){const i=`governance.typeLabels.${l}`,v=e(i);return v===i?l:v}function te(l){return{parameter_change:"cyan",feature_request:"blue",policy_update:"purple",budget_allocation:"gold"}[l]||"default"}function oe(l){return{parameter_change:"#13c2c2",feature_request:"#1677ff",policy_update:"#722ed1",budget_allocation:"#faad14"}[l]||"#888"}function r(l){const i=`governance.impactLabels.${l}`,v=e(i);return v===i?l:v}function m(l){return{low:"default",medium:"blue",high:"orange",critical:"red"}[l]||"default"}function R(l){return{low:"#888",medium:"#1677ff",high:"#faad14",critical:"#ff4d4f"}[l]||"#888"}function Ce(l){const i=`governance.voteLabels.${l}`,v=e(i);return v===i?l:v}function Ae(l){return{yes:"green",no:"red",abstain:"default"}[l]||"default"}function Oe(l){if(!l)return"—";const i=`governance.effortLabels.${l}`,v=e(i);return v===i?l:v}function ze(l){if(!l)return"—";const i=`governance.sentimentLabels.${l}`,v=e(i);return v===i?l:v}function Le(l){const i=l.voteYes+l.voteNo;return i?Math.round(l.voteYes/i*100):0}function we(l,i){return i?Math.round(l/i*100):0}async function W(){Q.value=!0,C.value={noDb:!1,error:""};try{const[l,i,v]=await Promise.all([c.execute("governance types --json",8e3).catch(()=>({output:""})),c.execute("governance list --json",1e4).catch(()=>({output:""})),c.execute("governance stats --json",8e3).catch(()=>({output:""}))]),j=[i,v].map(le=>U(le.output)).find(le=>le.noDb);j&&(C.value=j),T.value=me(l.output),q.value=ye(i.output),O.value=ke(v.output)}catch(l){b.error(e("governance.msg.loadFailed")+": "+(l?.message||l))}finally{Q.value=!1}}async function Te(){if(!z.title.trim()){b.warning(e("governance.msg.titleEmpty"));return}w.value=!0;try{const l=[`governance create "${z.title.trim().replace(/"/g,'\\"')}"`];l.push(`-t ${z.type}`),z.proposerDid.trim()&&l.push(`-p "${z.proposerDid.trim().replace(/"/g,'\\"')}"`),z.description.trim()&&l.push(`-d "${z.description.trim().replace(/"/g,'\\"')}"`),l.push("--json");const{output:i}=await c.execute(l.join(" "),1e4);if(U(i).noDb){b.error(e("governance.msg.needCcInit"));return}if(!/"id"/.test(i)){b.error(e("governance.msg.createFailed")+": "+i.slice(0,120));return}b.success(e("governance.msg.createSuccess")),Y.value=!1,ce(),await W()}catch(l){b.error(e("governance.msg.createFailed")+": "+(l?.message||l))}finally{w.value=!1}}async function xe(l){await re(`governance activate ${l.id} --json`,e("governance.msg.activated"))}async function Fe(l){await re(`governance close ${l.id} --json`,e("governance.msg.closed"))}async function re(l,i){try{const{output:v}=await c.execute(l,1e4);if(U(v).noDb){b.error(e("governance.msg.needCcInit"));return}if(!/"id"|"proposalId"|"passed"/.test(v)){b.error(e("governance.msg.actionFailed")+": "+v.slice(0,120));return}b.success(i),await W()}catch(v){b.error(e("governance.msg.actionFailed")+": "+(v?.message||v))}}function De(l){h.value=l,A.voterDid="",A.value="yes",A.weight=1,A.reason="",E.value=!0}async function Ee(){if(h.value){if(!A.voterDid.trim()){b.warning(e("governance.msg.voterEmpty"));return}N.value=!0;try{const l=[`governance vote ${h.value.id}`,`"${A.voterDid.trim().replace(/"/g,'\\"')}"`,A.value,`-w ${A.weight}`];A.reason.trim()&&l.push(`-r "${A.reason.trim().replace(/"/g,'\\"')}"`),l.push("--json");const{output:i}=await c.execute(l.join(" "),8e3);if(U(i).noDb){b.error(e("governance.msg.needCcInit"));return}if(!/"id"/.test(i)){b.error(e("governance.msg.voteFailed")+": "+i.slice(0,120));return}b.success(e("governance.msg.voteSuccess")),E.value=!1,await W()}catch(l){b.error(e("governance.msg.voteFailed")+": "+(l?.message||l))}finally{N.value=!1}}}async function je(l){h.value=l,K.value=[],Z.value=!0;try{const{output:i}=await c.execute(`governance votes ${l.id} --json`,8e3);K.value=ge(i)}catch{}}async function Me(l){h.value=l,H.value=null;try{const{output:i}=await c.execute(`governance analyze ${l.id} --json`,8e3);if(U(i).noDb){b.error(e("governance.msg.needCcInit"));return}const j=be(i);if(!j){b.error(e("governance.msg.analyzeFailed")+": "+i.slice(0,120));return}H.value=j,X.value=!0}catch(i){b.error(e("governance.msg.analyzeFailed")+": "+(i?.message||i))}}async function Re(l){h.value=l,G.value=null;try{const{output:i}=await c.execute(`governance predict ${l.id} --json`,8e3);if(U(i).noDb){b.error(e("governance.msg.needCcInit"));return}const j=_e(i);if(!j){b.error(e("governance.msg.predictFailed")+": "+i.slice(0,120));return}G.value=j,J.value=!0}catch(i){b.error(e("governance.msg.predictFailed")+": "+(i?.message||i))}}function ce(){z.title="",z.type="feature_request",z.proposerDid="",z.description=""}ue(W);const de={ws:c,t:e,EMPTY_IMG:D,loading:Q,creating:w,voting:N,proposals:q,proposalTypes:T,stats:O,errorState:C,activeTab:V,statusFilter:_,typeFilter:x,showCreateModal:Y,showVoteModal:E,showDetailsModal:Z,showAnalysisModal:X,showPredictionModal:J,createForm:z,voteForm:A,currentProposal:h,detailVotes:K,currentAnalysis:H,currentPrediction:G,proposalColumns:$,filteredProposals:M,statusLabel:ae,statusColor:S,statusBarColor:ee,typeLabel:ne,typeColor:te,typeBarColor:oe,impactLabel:r,impactColor:m,impactBarColor:R,voteLabel:Ce,voteColor:Ae,effortLabel:Oe,sentimentLabel:ze,yesPct:Le,pctOfTotal:we,loadAll:W,createProposal:Te,activateProposal:xe,closeProposal:Fe,runProposalAction:re,openVoteModal:De,submitVote:Ee,viewProposalDetails:je,runAnalyze:Me,runPredict:Re,resetCreateForm:ce,ref:P,computed:ie,onMounted:ue,reactive:se,get ReloadOutlined(){return Ke},get PlusOutlined(){return Je},get FileTextOutlined(){return qe},get PlayCircleOutlined(){return Be},get CheckCircleOutlined(){return Ge},get CloseCircleOutlined(){return Ye},get LikeOutlined(){return Ve},get ArrowRightOutlined(){return Ne},get message(){return b},get Empty(){return fe},get useI18n(){return ve},get useWsStore(){return pe},get parseTypes(){return me},get parseProposals(){return ye},get parseVotes(){return ge},get parseAnalysis(){return be},get parsePrediction(){return _e},get parseStats(){return ke},get detectGovernanceError(){return U},get formatGovernanceTime(){return $e},get PROPOSAL_STATUSES(){return Se},get PROPOSAL_TYPE_IDS(){return he}};return Object.defineProperty(de,"__isScriptSetup",{enumerable:!1,value:!0}),de}},tt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ot={class:"page-title"},at={class:"page-sub"},nt={class:"type-head"},rt={class:"type-count"},lt={class:"type-name"},st={class:"type-desc"},it={class:"filter-bar"},ct={style:{color:"var(--text-primary)","font-weight":"500"}},dt={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},ut={style:{"font-family":"monospace","font-size":"12px"}},pt={style:{color:"#52c41a"}},vt={style:{color:"#ff4d4f"}},ft={style:{color:"var(--text-muted)"}},mt={key:1,style:{color:"var(--text-muted)"}},yt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},gt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},_t={key:0,style:{"padding-top":"8px"}},kt={style:{"font-family":"monospace","font-size":"12px"}},Pt={key:0,style:{"font-family":"monospace","font-size":"12px"}},St={key:1,style:{color:"var(--text-muted)"}},ht={key:0,style:{"white-space":"pre-wrap"}},Ct={key:1,style:{color:"var(--text-muted)"}},At={style:{color:"var(--text-primary)","font-size":"13px",margin:"20px 0 10px"}},Ot={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"11px"}},zt={style:{"margin-left":"8px","font-family":"monospace","font-size":"11px",color:"var(--text-secondary)"}},Lt={key:0,style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},wt={style:{"margin-left":"auto",color:"var(--text-muted)","font-size":"11px"}},Tt={key:0,style:{"padding-top":"8px"}},xt={style:{"margin-bottom":"8px"}},Ft={style:{color:"var(--text-secondary)","font-size":"12px"}},Dt={style:{color:"var(--text-secondary)","font-size":"12px"}},Et={key:0,style:{"padding-top":"8px"}},jt={style:{"text-align":"center","margin-bottom":"20px"}},Mt={style:{color:"#52c41a"}},Rt={style:{color:"#ff4d4f"}},It={style:{color:"var(--text-muted)"}};function Ut(t,n,c,e,D,Q){const w=y("a-button"),N=y("a-space"),q=y("a-alert"),T=y("a-statistic"),O=y("a-card"),C=y("a-col"),V=y("a-row"),_=y("a-tag"),x=y("a-radio-button"),Y=y("a-radio-group"),E=y("a-progress"),Z=y("a-popconfirm"),X=y("a-table"),J=y("a-tab-pane"),z=y("a-tabs"),A=y("a-input"),h=y("a-form-item"),K=y("a-select-option"),H=y("a-select"),G=y("a-textarea"),$=y("a-form"),M=y("a-modal"),ae=y("a-input-number"),S=y("a-descriptions-item"),ee=y("a-descriptions"),ne=y("a-empty"),te=y("a-list-item"),oe=y("a-list");return d(),g("div",null,[f("div",tt,[f("div",null,[f("h2",ot,s(t.$t("governance.title")),1),f("p",at,s(t.$t("governance.subtitle")),1)]),o(N,null,{default:a(()=>[o(w,{loading:e.loading,onClick:e.loadAll},{icon:a(()=>[o(e.ReloadOutlined)]),default:a(()=>[u(" "+s(t.$t("governance.refresh")),1)]),_:1},8,["loading"]),o(w,{type:"primary",onClick:n[0]||(n[0]=r=>e.showCreateModal=!0)},{icon:a(()=>[o(e.PlusOutlined)]),default:a(()=>[u(" "+s(t.$t("governance.create")),1)]),_:1})]),_:1})]),p(" noDb banner "),e.errorState.noDb?(d(),k(q,{key:0,type:"info","show-icon":"",message:t.$t("governance.noDb.message"),description:t.$t("governance.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):p("v-if",!0),p(" Stat cards "),o(V,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[o(C,{xs:12,sm:8,lg:5},{default:a(()=>[o(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[o(T,{title:t.$t("governance.stats.total"),value:e.stats.proposalCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[o(e.FileTextOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(C,{xs:12,sm:8,lg:5},{default:a(()=>[o(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[o(T,{title:t.$t("governance.stats.active"),value:e.stats.byStatus.active||0,"value-style":{color:(e.stats.byStatus.active||0)>0?"#1677ff":"#888",fontSize:"20px"}},{prefix:a(()=>[o(e.PlayCircleOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(C,{xs:12,sm:8,lg:5},{default:a(()=>[o(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[o(T,{title:t.$t("governance.stats.passed"),value:e.stats.byStatus.passed||0,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[o(e.CheckCircleOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(C,{xs:12,sm:8,lg:5},{default:a(()=>[o(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[o(T,{title:t.$t("governance.stats.rejected"),value:e.stats.byStatus.rejected||0,"value-style":{color:"#ff4d4f",fontSize:"20px"}},{prefix:a(()=>[o(e.CloseCircleOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(C,{xs:24,sm:8,lg:4},{default:a(()=>[o(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[o(T,{title:t.$t("governance.stats.votes"),value:e.stats.voteCount,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[o(e.LikeOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),p(" Type catalogue "),o(O,{title:t.$t("governance.typesCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[o(V,{gutter:[12,12]},{default:a(()=>[(d(!0),g(F,null,I(e.proposalTypes,r=>(d(),k(C,{key:r.id,xs:12,sm:12,lg:6},{default:a(()=>[f("div",{class:"type-pill",style:Ie({borderLeftColor:e.typeColor(r.id)})},[f("div",nt,[o(_,{color:e.typeColor(r.id),style:{"font-family":"monospace"}},{default:a(()=>[u(s(r.id),1)]),_:2},1032,["color"]),f("span",rt,s(e.stats.byType[r.id]||0),1)]),f("div",lt,s(r.name),1),f("div",st,s(r.description),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),p(" Tabs "),o(z,{activeKey:e.activeTab,"onUpdate:activeKey":n[3]||(n[3]=r=>e.activeTab=r),class:"governance-tabs"},{default:a(()=>[p(" ── Proposals tab ────────────────────────────────────────── "),o(J,{key:"proposals",tab:t.$t("governance.tabs.proposals")},{default:a(()=>[f("div",it,[o(Y,{value:e.statusFilter,"onUpdate:value":n[1]||(n[1]=r=>e.statusFilter=r),size:"small","button-style":"solid"},{default:a(()=>[o(x,{value:""},{default:a(()=>[u(s(t.$t("governance.filter.allStatuses")),1)]),_:1}),(d(!0),g(F,null,I(e.PROPOSAL_STATUSES,r=>(d(),k(x,{key:r,value:r},{default:a(()=>[u(s(e.statusLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),o(Y,{value:e.typeFilter,"onUpdate:value":n[2]||(n[2]=r=>e.typeFilter=r),size:"small"},{default:a(()=>[o(x,{value:""},{default:a(()=>[u(s(t.$t("governance.filter.allTypes")),1)]),_:1}),(d(!0),g(F,null,I(e.PROPOSAL_TYPE_IDS,r=>(d(),k(x,{key:r,value:r},{default:a(()=>[u(s(e.typeLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),o(X,{columns:e.proposalColumns,"data-source":e.filteredProposals,pagination:{pageSize:20,showTotal:r=>t.$t("governance.table.totalSuffix",{n:r})},size:"small",loading:e.loading,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:r,record:m})=>[r.key==="title"?(d(),g(F,{key:0},[f("span",ct,s(m.title||t.$t("governance.table.unnamed")),1),f("div",dt,s(m.id.slice(0,16)),1)],64)):p("v-if",!0),r.key==="type"?(d(),k(_,{key:1,color:e.typeColor(m.type),style:{"font-family":"monospace"}},{default:a(()=>[u(s(e.typeLabel(m.type)),1)]),_:2},1032,["color"])):p("v-if",!0),r.key==="status"?(d(),k(_,{key:2,color:e.statusColor(m.status)},{default:a(()=>[u(s(e.statusLabel(m.status)),1)]),_:2},1032,["color"])):p("v-if",!0),r.key==="tally"?(d(),g(F,{key:3},[f("span",ut,[f("span",pt,"+"+s(m.voteYes),1),n[17]||(n[17]=u(" / ",-1)),f("span",vt,"-"+s(m.voteNo),1),n[18]||(n[18]=u(" / ",-1)),f("span",ft,"~"+s(m.voteAbstain),1)]),m.voteYes+m.voteNo>0?(d(),k(E,{key:0,percent:e.yesPct(m),size:"small","show-info":!1,"stroke-color":m.voteYes>=m.voteNo?"#52c41a":"#ff4d4f",style:{"margin-top":"4px"}},null,8,["percent","stroke-color"])):p("v-if",!0)],64)):p("v-if",!0),r.key==="impact"?(d(),g(F,{key:4},[m.impactLevel?(d(),k(_,{key:0,color:e.impactColor(m.impactLevel)},{default:a(()=>[u(s(e.impactLabel(m.impactLevel)),1)]),_:2},1032,["color"])):(d(),g("span",mt,"—"))],64)):p("v-if",!0),r.key==="createdAt"?(d(),g("span",yt,s(e.formatGovernanceTime(m.createdAt)),1)):p("v-if",!0),r.key==="action"?(d(),g(F,{key:6},[o(w,{size:"small",type:"link",onClick:R=>e.viewProposalDetails(m)},{default:a(()=>[u(s(t.$t("governance.actions.details")),1)]),_:1},8,["onClick"]),m.status==="draft"?(d(),k(w,{key:0,size:"small",type:"link",onClick:R=>e.activateProposal(m)},{default:a(()=>[u(s(t.$t("governance.actions.activate")),1)]),_:1},8,["onClick"])):p("v-if",!0),m.status==="active"?(d(),k(w,{key:1,size:"small",type:"link",style:{color:"#52c41a"},onClick:R=>e.openVoteModal(m)},{default:a(()=>[u(s(t.$t("governance.actions.vote")),1)]),_:1},8,["onClick"])):p("v-if",!0),m.status==="active"?(d(),k(Z,{key:2,title:t.$t("governance.closeConfirm.title"),"ok-text":t.$t("governance.closeConfirm.ok"),"cancel-text":t.$t("governance.closeConfirm.cancel"),onConfirm:R=>e.closeProposal(m)},{default:a(()=>[o(w,{size:"small",type:"link",danger:""},{default:a(()=>[u(s(t.$t("governance.actions.close")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):p("v-if",!0),o(w,{size:"small",type:"link",onClick:R=>e.runAnalyze(m)},{default:a(()=>[u(s(t.$t("governance.actions.analyze")),1)]),_:1},8,["onClick"]),o(w,{size:"small",type:"link",onClick:R=>e.runPredict(m)},{default:a(()=>[u(s(t.$t("governance.actions.predict")),1)]),_:1},8,["onClick"])],64)):p("v-if",!0)]),emptyText:a(()=>[f("div",gt,[o(e.FileTextOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),u(" "+s(e.statusFilter||e.typeFilter?t.$t("governance.table.emptyFiltered"):t.$t("governance.table.empty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),p(" ── Status & type breakdown tab ──────────────────────────── "),o(J,{key:"breakdown",tab:t.$t("governance.tabs.breakdown")},{default:a(()=>[o(V,{gutter:[16,16]},{default:a(()=>[o(C,{xs:24,lg:12},{default:a(()=>[o(O,{title:t.$t("governance.breakdown.byStatus"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[(d(!0),g(F,null,I(e.PROPOSAL_STATUSES,r=>(d(),g("div",{key:r,class:"bd-row"},[o(_,{color:e.statusColor(r),style:{"min-width":"60px","text-align":"center"}},{default:a(()=>[u(s(e.statusLabel(r)),1)]),_:2},1032,["color"]),o(E,{percent:e.pctOfTotal(e.stats.byStatus[r]||0,e.stats.proposalCount),"stroke-color":e.statusBarColor(r),format:()=>`${e.stats.byStatus[r]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),o(C,{xs:24,lg:12},{default:a(()=>[o(O,{title:t.$t("governance.breakdown.byType"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[(d(!0),g(F,null,I(e.PROPOSAL_TYPE_IDS,r=>(d(),g("div",{key:r,class:"bd-row"},[o(_,{color:e.typeColor(r),style:{"min-width":"90px","text-align":"center"}},{default:a(()=>[u(s(e.typeLabel(r)),1)]),_:2},1032,["color"]),o(E,{percent:e.pctOfTotal(e.stats.byType[r]||0,e.stats.proposalCount),"stroke-color":e.typeBarColor(r),format:()=>`${e.stats.byType[r]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),p(" ── Create proposal modal ───────────────────────────────── "),o(M,{open:e.showCreateModal,"onUpdate:open":n[8]||(n[8]=r=>e.showCreateModal=r),title:t.$t("governance.create_modal.title"),"confirm-loading":e.creating,width:560,"ok-text":t.$t("governance.create_modal.ok"),"cancel-text":t.$t("governance.create_modal.cancel"),onOk:e.createProposal,onCancel:e.resetCreateForm},{default:a(()=>[o($,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[o(h,{label:t.$t("governance.create_modal.titleLabel"),required:""},{default:a(()=>[o(A,{value:e.createForm.title,"onUpdate:value":n[4]||(n[4]=r=>e.createForm.title=r),placeholder:t.$t("governance.create_modal.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(h,{label:t.$t("governance.create_modal.typeLabel"),required:""},{default:a(()=>[o(H,{value:e.createForm.type,"onUpdate:value":n[5]||(n[5]=r=>e.createForm.type=r)},{default:a(()=>[(d(!0),g(F,null,I(e.PROPOSAL_TYPE_IDS,r=>(d(),k(K,{key:r,value:r},{default:a(()=>[u(s(e.typeLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(h,{label:t.$t("governance.create_modal.proposerLabel")},{default:a(()=>[o(A,{value:e.createForm.proposerDid,"onUpdate:value":n[6]||(n[6]=r=>e.createForm.proposerDid=r),placeholder:t.$t("governance.create_modal.proposerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(h,{label:t.$t("governance.create_modal.descLabel")},{default:a(()=>[o(G,{value:e.createForm.description,"onUpdate:value":n[7]||(n[7]=r=>e.createForm.description=r),placeholder:t.$t("governance.create_modal.descPlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" ── Vote modal ───────────────────────────────────────────── "),o(M,{open:e.showVoteModal,"onUpdate:open":n[13]||(n[13]=r=>e.showVoteModal=r),title:t.$t("governance.vote_modal.title",{title:e.currentProposal?.title||""}),"confirm-loading":e.voting,width:540,"ok-text":t.$t("governance.vote_modal.ok"),"cancel-text":t.$t("governance.vote_modal.cancel"),onOk:e.submitVote},{default:a(()=>[o($,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[o(h,{label:t.$t("governance.vote_modal.voterLabel"),required:""},{default:a(()=>[o(A,{value:e.voteForm.voterDid,"onUpdate:value":n[9]||(n[9]=r=>e.voteForm.voterDid=r),placeholder:"did:key:..."},null,8,["value"])]),_:1},8,["label"]),o(h,{label:t.$t("governance.vote_modal.valueLabel"),required:""},{default:a(()=>[o(Y,{value:e.voteForm.value,"onUpdate:value":n[10]||(n[10]=r=>e.voteForm.value=r),"button-style":"solid"},{default:a(()=>[o(x,{value:"yes",style:{color:"#52c41a"}},{default:a(()=>[u(s(t.$t("governance.vote_modal.yes")),1)]),_:1}),o(x,{value:"no",style:{color:"#ff4d4f"}},{default:a(()=>[u(s(t.$t("governance.vote_modal.no")),1)]),_:1}),o(x,{value:"abstain"},{default:a(()=>[u(s(t.$t("governance.vote_modal.abstain")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),o(h,{label:t.$t("governance.vote_modal.weightLabel")},{default:a(()=>[o(ae,{value:e.voteForm.weight,"onUpdate:value":n[11]||(n[11]=r=>e.voteForm.weight=r),min:.1,step:.1,style:{width:"120px"}},null,8,["value"]),f("span",bt,s(t.$t("governance.vote_modal.weightHint")),1)]),_:1},8,["label"]),o(h,{label:t.$t("governance.vote_modal.reasonLabel")},{default:a(()=>[o(G,{value:e.voteForm.reason,"onUpdate:value":n[12]||(n[12]=r=>e.voteForm.reason=r),placeholder:t.$t("governance.vote_modal.reasonPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" ── Proposal details modal ──────────────────────────────── "),o(M,{open:e.showDetailsModal,"onUpdate:open":n[14]||(n[14]=r=>e.showDetailsModal=r),title:t.$t("governance.details.title",{title:e.currentProposal?.title||""}),width:780,footer:null},{default:a(()=>[e.currentProposal?(d(),g("div",_t,[o(ee,{column:2,size:"small",bordered:""},{default:a(()=>[o(S,{label:t.$t("governance.details.id"),span:2},{default:a(()=>[f("span",kt,s(e.currentProposal.id),1)]),_:1},8,["label"]),o(S,{label:t.$t("governance.details.type")},{default:a(()=>[o(_,{color:e.typeColor(e.currentProposal.type)},{default:a(()=>[u(s(e.typeLabel(e.currentProposal.type)),1)]),_:1},8,["color"])]),_:1},8,["label"]),o(S,{label:t.$t("governance.details.status")},{default:a(()=>[o(_,{color:e.statusColor(e.currentProposal.status)},{default:a(()=>[u(s(e.statusLabel(e.currentProposal.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),o(S,{label:t.$t("governance.details.proposer"),span:2},{default:a(()=>[e.currentProposal.proposerDid?(d(),g("span",Pt,s(e.currentProposal.proposerDid),1)):(d(),g("span",St,s(t.$t("governance.details.proposerUnset")),1))]),_:1},8,["label"]),o(S,{label:t.$t("governance.details.description"),span:2},{default:a(()=>[e.currentProposal.description?(d(),g("div",ht,s(e.currentProposal.description),1)):(d(),g("span",Ct,"—"))]),_:1},8,["label"]),o(S,{label:t.$t("governance.details.tally"),span:2},{default:a(()=>[o(N,null,{default:a(()=>[o(_,{color:"green"},{default:a(()=>[u(s(t.$t("governance.details.tallyYes",{n:e.currentProposal.voteYes})),1)]),_:1}),o(_,{color:"red"},{default:a(()=>[u(s(t.$t("governance.details.tallyNo",{n:e.currentProposal.voteNo})),1)]),_:1}),o(_,null,{default:a(()=>[u(s(t.$t("governance.details.tallyAbstain",{n:e.currentProposal.voteAbstain})),1)]),_:1})]),_:1})]),_:1},8,["label"]),e.currentProposal.impactLevel?(d(),k(S,{key:0,label:t.$t("governance.details.impact")},{default:a(()=>[o(_,{color:e.impactColor(e.currentProposal.impactLevel)},{default:a(()=>[u(s(e.impactLabel(e.currentProposal.impactLevel)),1)]),_:1},8,["color"])]),_:1},8,["label"])):p("v-if",!0),o(S,{label:t.$t("governance.details.createdAt")},{default:a(()=>[u(s(e.formatGovernanceTime(e.currentProposal.createdAt)),1)]),_:1},8,["label"]),e.currentProposal.votingStartsAt?(d(),k(S,{key:1,label:t.$t("governance.details.votingStartsAt")},{default:a(()=>[u(s(e.formatGovernanceTime(e.currentProposal.votingStartsAt)),1)]),_:1},8,["label"])):p("v-if",!0),e.currentProposal.votingEndsAt?(d(),k(S,{key:2,label:t.$t("governance.details.votingEndsAt")},{default:a(()=>[u(s(e.formatGovernanceTime(e.currentProposal.votingEndsAt)),1)]),_:1},8,["label"])):p("v-if",!0)]),_:1}),p(" Votes list "),f("h4",At,s(t.$t("governance.details.votesHeader")),1),e.detailVotes.length?(d(),k(oe,{key:1,size:"small","data-source":e.detailVotes,pagination:{pageSize:8}},{renderItem:a(({item:r})=>[o(te,null,{default:a(()=>[o(_,{color:e.voteColor(r.vote),style:{"min-width":"50px","text-align":"center"}},{default:a(()=>[u(s(e.voteLabel(r.vote)),1)]),_:2},1032,["color"]),f("span",Ot,"w="+s(r.weight),1),f("span",zt,s(r.voterDid),1),r.reason?(d(),g("span",Lt,"— "+s(r.reason),1)):p("v-if",!0),f("span",wt,s(e.formatGovernanceTime(r.createdAt)),1)]),_:2},1024)]),_:1},8,["data-source"])):(d(),k(ne,{key:0,description:t.$t("governance.details.votesEmpty"),image:e.EMPTY_IMG},null,8,["description","image"]))])):p("v-if",!0)]),_:1},8,["open","title"]),p(" ── Analysis modal ──────────────────────────────────────── "),o(M,{open:e.showAnalysisModal,"onUpdate:open":n[15]||(n[15]=r=>e.showAnalysisModal=r),title:t.$t("governance.analysis.title",{title:e.currentProposal?.title||""}),width:640,footer:null},{default:a(()=>[e.currentAnalysis?(d(),g("div",Tt,[o(V,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:a(()=>[o(C,{span:8},{default:a(()=>[o(T,{title:t.$t("governance.analysis.impactLevel"),value:e.impactLabel(e.currentAnalysis.impactLevel),"value-style":{color:e.impactBarColor(e.currentAnalysis.impactLevel),fontSize:"16px"}},null,8,["title","value","value-style"])]),_:1}),o(C,{span:8},{default:a(()=>[o(T,{title:t.$t("governance.analysis.effort"),value:e.effortLabel(e.currentAnalysis.estimatedEffort),"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1}),o(C,{span:8},{default:a(()=>[o(T,{title:t.$t("governance.analysis.sentiment"),value:e.sentimentLabel(e.currentAnalysis.communitySentiment),"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1})]),_:1}),o(O,{title:t.$t("governance.analysis.riskBenefit"),size:"small",style:{"margin-bottom":"12px"}},{default:a(()=>[f("div",xt,[f("span",Ft,s(t.$t("governance.analysis.riskScore")),1),o(E,{percent:Math.round(e.currentAnalysis.riskScore*100),"stroke-color":"#ff4d4f"},null,8,["percent"])]),f("div",null,[f("span",Dt,s(t.$t("governance.analysis.benefitScore")),1),o(E,{percent:Math.round(e.currentAnalysis.benefitScore*100),"stroke-color":"#52c41a"},null,8,["percent"])])]),_:1},8,["title"]),e.currentAnalysis.affectedComponents.length?(d(),k(O,{key:0,title:t.$t("governance.analysis.components"),size:"small",style:{"margin-bottom":"12px"}},{default:a(()=>[(d(!0),g(F,null,I(e.currentAnalysis.affectedComponents,r=>(d(),k(_,{key:r,color:"blue"},{default:a(()=>[u(s(r),1)]),_:2},1024))),128))]),_:1},8,["title"])):p("v-if",!0),e.currentAnalysis.recommendations.length?(d(),k(O,{key:1,title:t.$t("governance.analysis.recommendations"),size:"small"},{default:a(()=>[o(oe,{size:"small","data-source":e.currentAnalysis.recommendations},{renderItem:a(({item:r})=>[o(te,null,{default:a(()=>[o(e.ArrowRightOutlined,{style:{color:"#faad14","margin-right":"8px"}}),u(" "+s(r),1)]),_:2},1024)]),_:1},8,["data-source"])]),_:1},8,["title"])):p("v-if",!0)])):p("v-if",!0)]),_:1},8,["open","title"]),p(" ── Prediction modal ────────────────────────────────────── "),o(M,{open:e.showPredictionModal,"onUpdate:open":n[16]||(n[16]=r=>e.showPredictionModal=r),title:t.$t("governance.prediction.title",{title:e.currentProposal?.title||""}),width:540,footer:null},{default:a(()=>[e.currentPrediction?(d(),g("div",Et,[f("div",jt,[o(_,{color:e.currentPrediction.predictedOutcome==="pass"?"green":"red",style:{"font-size":"16px",padding:"6px 14px"}},{default:a(()=>[u(s(e.currentPrediction.predictedOutcome==="pass"?t.$t("governance.prediction.outcomePass"):t.$t("governance.prediction.outcomeReject")),1)]),_:1},8,["color"])]),o(ee,{column:2,size:"small",bordered:""},{default:a(()=>[o(S,{label:t.$t("governance.prediction.confidence"),span:2},{default:a(()=>[o(E,{percent:Math.round(e.currentPrediction.confidence*100),"stroke-color":e.currentPrediction.confidence>=.6?"#52c41a":"#faad14"},null,8,["percent","stroke-color"])]),_:1},8,["label"]),o(S,{label:t.$t("governance.prediction.basedOn")},{default:a(()=>[o(_,{color:e.currentPrediction.basedOn==="votes"?"blue":"orange"},{default:a(()=>[u(s(e.currentPrediction.basedOn==="votes"?t.$t("governance.prediction.basedOnVotes"):t.$t("governance.prediction.basedOnHeuristic")),1)]),_:1},8,["color"])]),_:1},8,["label"]),o(S,{label:t.$t("governance.prediction.sampleSize")},{default:a(()=>[u(s(e.currentPrediction.sampleSize),1)]),_:1},8,["label"]),o(S,{label:t.$t("governance.prediction.yesProb")},{default:a(()=>[f("span",Mt,s((e.currentPrediction.yesProb*100).toFixed(1))+"%",1)]),_:1},8,["label"]),o(S,{label:t.$t("governance.prediction.noProb")},{default:a(()=>[f("span",Rt,s((e.currentPrediction.noProb*100).toFixed(1))+"%",1)]),_:1},8,["label"]),o(S,{label:t.$t("governance.prediction.abstainProb"),span:2},{default:a(()=>[f("span",It,s((e.currentPrediction.abstainProb*100).toFixed(1))+"%",1)]),_:1},8,["label"])]),_:1})])):p("v-if",!0)]),_:1},8,["open","title"])])}const Bt=Ue(et,[["render",Ut],["__scopeId","data-v-3a4a41f3"],["__file","/tmp/cc-web-panel-aLcItP/repo/packages/web-panel/src/views/Governance.vue"]]);export{Bt as default};
1
+ import{I as y,J as g,U as f,R as s,c as o,K as a,V as p,S as k,o as ue,a as se,b as ie,r as P,P as d,Q as u,F,Z as U,$ as Ue}from"./vendor-BvqAck49.js";import{_ as Ie,u as pe,b as ve,E as fe,d as b}from"./index-oJQgRCrR.js";import{s as Pe}from"./community-parser-CO25nZFt.js";import{aU as Ne,aT as Ve,d as Ye,f as Be,ap as Ge,a4 as qe,as as Je,R as Ke}from"./icons-DP3uiYxy.js";function G(t){const n=Pe(t);if(!n)return null;try{return JSON.parse(n)}catch{}const c=n.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!c)return null;try{return JSON.parse(c[0])}catch{return null}}const Se=Object.freeze(["draft","active","passed","rejected","expired"]),he=Object.freeze(["parameter_change","feature_request","policy_update","budget_allocation"]),He=Object.freeze(["yes","no","abstain"]);function w(t,n=0){return typeof t=="number"&&Number.isFinite(t)?t:n}function I(t){if(!t)return{noDb:!1,error:""};const n=Pe(t),c=/Database not available/i.test(n);return{noDb:c,error:c?"Database not available":""}}function We(t,n=0){if(!t||typeof t!="object")return null;const c=t.id||"";return c?{key:c,id:c,name:String(t.name||""),description:String(t.description||""),_idx:n}:null}function me(t){const n=G(t);return Array.isArray(n)?n.map(We).filter(Boolean):[]}function Qe(t,n=0){if(!t||typeof t!="object")return null;const c=t.id||"";return c?{key:c,id:c,title:String(t.title||""),description:t.description??"",type:String(t.type||"feature_request"),proposerDid:t.proposerDid??"",status:String(t.status||"draft").toLowerCase(),impactLevel:t.impactLevel??"",impactAnalysis:t.impactAnalysis??null,voteYes:w(t.voteYes,0),voteNo:w(t.voteNo,0),voteAbstain:w(t.voteAbstain,0),votingStartsAt:t.votingStartsAt??null,votingEndsAt:t.votingEndsAt??null,metadata:t.metadata??null,createdAt:t.createdAt??null,_idx:n}:null}function ye(t){const n=G(t);return Array.isArray(n)?n.map(Qe).filter(Boolean):[]}function Ze(t,n=0){if(!t||typeof t!="object")return null;const c=t.id||"";if(!c)return null;const e=String(t.vote||"").toLowerCase();return{key:c,id:c,proposalId:String(t.proposalId||""),voterDid:String(t.voterDid||""),vote:(He.includes(e),e),reason:t.reason??"",weight:w(t.weight,1),createdAt:t.createdAt??null,_idx:n}}function ge(t){const n=G(t);return Array.isArray(n)?n.map(Ze).filter(Boolean):[]}function be(t){const n=G(t);return!n||typeof n!="object"||Array.isArray(n)?null:{impactLevel:String(n.impactLevel||""),affectedComponents:Array.isArray(n.affectedComponents)?n.affectedComponents.filter(c=>typeof c=="string"):[],riskScore:w(n.riskScore,0),benefitScore:w(n.benefitScore,0),estimatedEffort:String(n.estimatedEffort||""),communitySentiment:String(n.communitySentiment||""),recommendations:Array.isArray(n.recommendations)?n.recommendations.filter(c=>typeof c=="string"):[],analyzedAt:n.analyzedAt??null}}function _e(t){const n=G(t);return!n||typeof n!="object"||Array.isArray(n)?null:{proposalId:String(n.proposalId||""),predictedOutcome:String(n.predictedOutcome||""),confidence:w(n.confidence,0),yesProb:w(n.yesProb,0),noProb:w(n.noProb,0),abstainProb:w(n.abstainProb,0),basedOn:String(n.basedOn||""),sampleSize:w(n.sampleSize,0)}}const Xe={proposalCount:0,voteCount:0,byStatus:{},byType:{}};function ke(t){const n=JSON.parse(JSON.stringify(Xe));for(const e of Se)n.byStatus[e]=0;for(const e of he)n.byType[e]=0;const c=G(t);if(!c||typeof c!="object"||Array.isArray(c))return n;if(n.proposalCount=w(c.proposalCount,0),n.voteCount=w(c.voteCount,0),c.byStatus&&typeof c.byStatus=="object")for(const[e,D]of Object.entries(c.byStatus))typeof D=="number"&&Number.isFinite(D)&&(n.byStatus[e]=D);if(c.byType&&typeof c.byType=="object")for(const[e,D]of Object.entries(c.byType))typeof D=="number"&&Number.isFinite(D)&&(n.byType[e]=D);return n}function $e(t){if(t==null||t==="")return"—";const n=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(n.getTime())?String(t):n.toLocaleString("zh-CN",{hour12:!1})}const et={__name:"Governance",setup(t,{expose:n}){n();const c=pe(),{t:e}=ve(),D=fe.PRESENTED_IMAGE_SIMPLE,Q=P(!1),L=P(!1),N=P(!1),q=P([]),T=P([]),z=P({proposalCount:0,voteCount:0,byStatus:{},byType:{}}),C=P({noDb:!1,error:""}),V=P("proposals"),_=P(""),x=P(""),Y=P(!1),E=P(!1),Z=P(!1),X=P(!1),J=P(!1),O=se({title:"",type:"feature_request",proposerDid:"",description:""}),A=se({voterDid:"",value:"yes",weight:1,reason:""}),h=P(null),K=P([]),H=P(null),B=P(null),$=ie(()=>[{title:e("governance.cols.title"),key:"title"},{title:e("governance.cols.type"),key:"type",width:"130px"},{title:e("governance.cols.status"),key:"status",width:"100px"},{title:e("governance.cols.tally"),key:"tally",width:"180px"},{title:e("governance.cols.impact"),key:"impact",width:"100px"},{title:e("governance.cols.createdAt"),key:"createdAt",width:"160px"},{title:e("governance.cols.action"),key:"action",width:"320px"}]),M=ie(()=>{let l=q.value;return _.value&&(l=l.filter(i=>i.status===_.value)),x.value&&(l=l.filter(i=>i.type===x.value)),l});function ae(l){const i=`governance.statusLabels.${l}`,v=e(i);return v===i?l:v}function S(l){return{draft:"default",active:"processing",passed:"green",rejected:"red",expired:"default"}[l]||"default"}function ee(l){return{draft:"#888",active:"#1677ff",passed:"#52c41a",rejected:"#ff4d4f",expired:"#888"}[l]||"#888"}function ne(l){const i=`governance.typeLabels.${l}`,v=e(i);return v===i?l:v}function te(l){return{parameter_change:"cyan",feature_request:"blue",policy_update:"purple",budget_allocation:"gold"}[l]||"default"}function oe(l){return{parameter_change:"#13c2c2",feature_request:"#1677ff",policy_update:"#722ed1",budget_allocation:"#faad14"}[l]||"#888"}function r(l){const i=`governance.impactLabels.${l}`,v=e(i);return v===i?l:v}function m(l){return{low:"default",medium:"blue",high:"orange",critical:"red"}[l]||"default"}function R(l){return{low:"#888",medium:"#1677ff",high:"#faad14",critical:"#ff4d4f"}[l]||"#888"}function Ce(l){const i=`governance.voteLabels.${l}`,v=e(i);return v===i?l:v}function Ae(l){return{yes:"green",no:"red",abstain:"default"}[l]||"default"}function ze(l){if(!l)return"—";const i=`governance.effortLabels.${l}`,v=e(i);return v===i?l:v}function Oe(l){if(!l)return"—";const i=`governance.sentimentLabels.${l}`,v=e(i);return v===i?l:v}function we(l){const i=l.voteYes+l.voteNo;return i?Math.round(l.voteYes/i*100):0}function Le(l,i){return i?Math.round(l/i*100):0}async function W(){Q.value=!0,C.value={noDb:!1,error:""};try{const[l,i,v]=await Promise.all([c.execute("governance types --json",8e3).catch(()=>({output:""})),c.execute("governance list --json",1e4).catch(()=>({output:""})),c.execute("governance stats --json",8e3).catch(()=>({output:""}))]),j=[i,v].map(le=>I(le.output)).find(le=>le.noDb);j&&(C.value=j),T.value=me(l.output),q.value=ye(i.output),z.value=ke(v.output)}catch(l){b.error(e("governance.msg.loadFailed")+": "+(l?.message||l))}finally{Q.value=!1}}async function Te(){if(!O.title.trim()){b.warning(e("governance.msg.titleEmpty"));return}L.value=!0;try{const l=[`governance create "${O.title.trim().replace(/"/g,'\\"')}"`];l.push(`-t ${O.type}`),O.proposerDid.trim()&&l.push(`-p "${O.proposerDid.trim().replace(/"/g,'\\"')}"`),O.description.trim()&&l.push(`-d "${O.description.trim().replace(/"/g,'\\"')}"`),l.push("--json");const{output:i}=await c.execute(l.join(" "),1e4);if(I(i).noDb){b.error(e("governance.msg.needCcInit"));return}if(!/"id"/.test(i)){b.error(e("governance.msg.createFailed")+": "+i.slice(0,120));return}b.success(e("governance.msg.createSuccess")),Y.value=!1,ce(),await W()}catch(l){b.error(e("governance.msg.createFailed")+": "+(l?.message||l))}finally{L.value=!1}}async function xe(l){await re(`governance activate ${l.id} --json`,e("governance.msg.activated"))}async function Fe(l){await re(`governance close ${l.id} --json`,e("governance.msg.closed"))}async function re(l,i){try{const{output:v}=await c.execute(l,1e4);if(I(v).noDb){b.error(e("governance.msg.needCcInit"));return}if(!/"id"|"proposalId"|"passed"/.test(v)){b.error(e("governance.msg.actionFailed")+": "+v.slice(0,120));return}b.success(i),await W()}catch(v){b.error(e("governance.msg.actionFailed")+": "+(v?.message||v))}}function De(l){h.value=l,A.voterDid="",A.value="yes",A.weight=1,A.reason="",E.value=!0}async function Ee(){if(h.value){if(!A.voterDid.trim()){b.warning(e("governance.msg.voterEmpty"));return}N.value=!0;try{const l=[`governance vote ${h.value.id}`,`"${A.voterDid.trim().replace(/"/g,'\\"')}"`,A.value,`-w ${A.weight}`];A.reason.trim()&&l.push(`-r "${A.reason.trim().replace(/"/g,'\\"')}"`),l.push("--json");const{output:i}=await c.execute(l.join(" "),8e3);if(I(i).noDb){b.error(e("governance.msg.needCcInit"));return}if(!/"id"/.test(i)){b.error(e("governance.msg.voteFailed")+": "+i.slice(0,120));return}b.success(e("governance.msg.voteSuccess")),E.value=!1,await W()}catch(l){b.error(e("governance.msg.voteFailed")+": "+(l?.message||l))}finally{N.value=!1}}}async function je(l){h.value=l,K.value=[],Z.value=!0;try{const{output:i}=await c.execute(`governance votes ${l.id} --json`,8e3);K.value=ge(i)}catch{}}async function Me(l){h.value=l,H.value=null;try{const{output:i}=await c.execute(`governance analyze ${l.id} --json`,8e3);if(I(i).noDb){b.error(e("governance.msg.needCcInit"));return}const j=be(i);if(!j){b.error(e("governance.msg.analyzeFailed")+": "+i.slice(0,120));return}H.value=j,X.value=!0}catch(i){b.error(e("governance.msg.analyzeFailed")+": "+(i?.message||i))}}async function Re(l){h.value=l,B.value=null;try{const{output:i}=await c.execute(`governance predict ${l.id} --json`,8e3);if(I(i).noDb){b.error(e("governance.msg.needCcInit"));return}const j=_e(i);if(!j){b.error(e("governance.msg.predictFailed")+": "+i.slice(0,120));return}B.value=j,J.value=!0}catch(i){b.error(e("governance.msg.predictFailed")+": "+(i?.message||i))}}function ce(){O.title="",O.type="feature_request",O.proposerDid="",O.description=""}ue(W);const de={ws:c,t:e,EMPTY_IMG:D,loading:Q,creating:L,voting:N,proposals:q,proposalTypes:T,stats:z,errorState:C,activeTab:V,statusFilter:_,typeFilter:x,showCreateModal:Y,showVoteModal:E,showDetailsModal:Z,showAnalysisModal:X,showPredictionModal:J,createForm:O,voteForm:A,currentProposal:h,detailVotes:K,currentAnalysis:H,currentPrediction:B,proposalColumns:$,filteredProposals:M,statusLabel:ae,statusColor:S,statusBarColor:ee,typeLabel:ne,typeColor:te,typeBarColor:oe,impactLabel:r,impactColor:m,impactBarColor:R,voteLabel:Ce,voteColor:Ae,effortLabel:ze,sentimentLabel:Oe,yesPct:we,pctOfTotal:Le,loadAll:W,createProposal:Te,activateProposal:xe,closeProposal:Fe,runProposalAction:re,openVoteModal:De,submitVote:Ee,viewProposalDetails:je,runAnalyze:Me,runPredict:Re,resetCreateForm:ce,ref:P,computed:ie,onMounted:ue,reactive:se,get ReloadOutlined(){return Ke},get PlusOutlined(){return Je},get FileTextOutlined(){return qe},get PlayCircleOutlined(){return Ge},get CheckCircleOutlined(){return Be},get CloseCircleOutlined(){return Ye},get LikeOutlined(){return Ve},get ArrowRightOutlined(){return Ne},get message(){return b},get Empty(){return fe},get useI18n(){return ve},get useWsStore(){return pe},get parseTypes(){return me},get parseProposals(){return ye},get parseVotes(){return ge},get parseAnalysis(){return be},get parsePrediction(){return _e},get parseStats(){return ke},get detectGovernanceError(){return I},get formatGovernanceTime(){return $e},get PROPOSAL_STATUSES(){return Se},get PROPOSAL_TYPE_IDS(){return he}};return Object.defineProperty(de,"__isScriptSetup",{enumerable:!1,value:!0}),de}},tt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ot={class:"page-title"},at={class:"page-sub"},nt={class:"type-head"},rt={class:"type-count"},lt={class:"type-name"},st={class:"type-desc"},it={class:"filter-bar"},ct={style:{color:"var(--text-primary)","font-weight":"500"}},dt={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},ut={style:{"font-family":"monospace","font-size":"12px"}},pt={style:{color:"#52c41a"}},vt={style:{color:"#ff4d4f"}},ft={style:{color:"var(--text-muted)"}},mt={key:1,style:{color:"var(--text-muted)"}},yt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},gt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},_t={key:0,style:{"padding-top":"8px"}},kt={style:{"font-family":"monospace","font-size":"12px"}},Pt={key:0,style:{"font-family":"monospace","font-size":"12px"}},St={key:1,style:{color:"var(--text-muted)"}},ht={key:0,style:{"white-space":"pre-wrap"}},Ct={key:1,style:{color:"var(--text-muted)"}},At={style:{color:"var(--text-primary)","font-size":"13px",margin:"20px 0 10px"}},zt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"11px"}},Ot={style:{"margin-left":"8px","font-family":"monospace","font-size":"11px",color:"var(--text-secondary)"}},wt={key:0,style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},Lt={style:{"margin-left":"auto",color:"var(--text-muted)","font-size":"11px"}},Tt={key:0,style:{"padding-top":"8px"}},xt={style:{"margin-bottom":"8px"}},Ft={style:{color:"var(--text-secondary)","font-size":"12px"}},Dt={style:{color:"var(--text-secondary)","font-size":"12px"}},Et={key:0,style:{"padding-top":"8px"}},jt={style:{"text-align":"center","margin-bottom":"20px"}},Mt={style:{color:"#52c41a"}},Rt={style:{color:"#ff4d4f"}},Ut={style:{color:"var(--text-muted)"}};function It(t,n,c,e,D,Q){const L=y("a-button"),N=y("a-space"),q=y("a-alert"),T=y("a-statistic"),z=y("a-card"),C=y("a-col"),V=y("a-row"),_=y("a-tag"),x=y("a-radio-button"),Y=y("a-radio-group"),E=y("a-progress"),Z=y("a-popconfirm"),X=y("a-table"),J=y("a-tab-pane"),O=y("a-tabs"),A=y("a-input"),h=y("a-form-item"),K=y("a-select-option"),H=y("a-select"),B=y("a-textarea"),$=y("a-form"),M=y("a-modal"),ae=y("a-input-number"),S=y("a-descriptions-item"),ee=y("a-descriptions"),ne=y("a-empty"),te=y("a-list-item"),oe=y("a-list");return d(),g("div",null,[f("div",tt,[f("div",null,[f("h2",ot,s(t.$t("governance.title")),1),f("p",at,s(t.$t("governance.subtitle")),1)]),o(N,null,{default:a(()=>[o(L,{loading:e.loading,onClick:e.loadAll},{icon:a(()=>[o(e.ReloadOutlined)]),default:a(()=>[u(" "+s(t.$t("governance.refresh")),1)]),_:1},8,["loading"]),o(L,{type:"primary",onClick:n[0]||(n[0]=r=>e.showCreateModal=!0)},{icon:a(()=>[o(e.PlusOutlined)]),default:a(()=>[u(" "+s(t.$t("governance.create")),1)]),_:1})]),_:1})]),p(" noDb banner "),e.errorState.noDb?(d(),k(q,{key:0,type:"info","show-icon":"",message:t.$t("governance.noDb.message"),description:t.$t("governance.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):p("v-if",!0),p(" Stat cards "),o(V,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[o(C,{xs:12,sm:8,lg:5},{default:a(()=>[o(z,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[o(T,{title:t.$t("governance.stats.total"),value:e.stats.proposalCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[o(e.FileTextOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(C,{xs:12,sm:8,lg:5},{default:a(()=>[o(z,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[o(T,{title:t.$t("governance.stats.active"),value:e.stats.byStatus.active||0,"value-style":{color:(e.stats.byStatus.active||0)>0?"#1677ff":"#888",fontSize:"20px"}},{prefix:a(()=>[o(e.PlayCircleOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(C,{xs:12,sm:8,lg:5},{default:a(()=>[o(z,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[o(T,{title:t.$t("governance.stats.passed"),value:e.stats.byStatus.passed||0,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[o(e.CheckCircleOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(C,{xs:12,sm:8,lg:5},{default:a(()=>[o(z,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[o(T,{title:t.$t("governance.stats.rejected"),value:e.stats.byStatus.rejected||0,"value-style":{color:"#ff4d4f",fontSize:"20px"}},{prefix:a(()=>[o(e.CloseCircleOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(C,{xs:24,sm:8,lg:4},{default:a(()=>[o(z,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[o(T,{title:t.$t("governance.stats.votes"),value:e.stats.voteCount,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[o(e.LikeOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),p(" Type catalogue "),o(z,{title:t.$t("governance.typesCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[o(V,{gutter:[12,12]},{default:a(()=>[(d(!0),g(F,null,U(e.proposalTypes,r=>(d(),k(C,{key:r.id,xs:12,sm:12,lg:6},{default:a(()=>[f("div",{class:"type-pill",style:Ue({borderLeftColor:e.typeColor(r.id)})},[f("div",nt,[o(_,{color:e.typeColor(r.id),style:{"font-family":"monospace"}},{default:a(()=>[u(s(r.id),1)]),_:2},1032,["color"]),f("span",rt,s(e.stats.byType[r.id]||0),1)]),f("div",lt,s(r.name),1),f("div",st,s(r.description),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),p(" Tabs "),o(O,{activeKey:e.activeTab,"onUpdate:activeKey":n[3]||(n[3]=r=>e.activeTab=r),class:"governance-tabs"},{default:a(()=>[p(" ── Proposals tab ────────────────────────────────────────── "),o(J,{key:"proposals",tab:t.$t("governance.tabs.proposals")},{default:a(()=>[f("div",it,[o(Y,{value:e.statusFilter,"onUpdate:value":n[1]||(n[1]=r=>e.statusFilter=r),size:"small","button-style":"solid"},{default:a(()=>[o(x,{value:""},{default:a(()=>[u(s(t.$t("governance.filter.allStatuses")),1)]),_:1}),(d(!0),g(F,null,U(e.PROPOSAL_STATUSES,r=>(d(),k(x,{key:r,value:r},{default:a(()=>[u(s(e.statusLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),o(Y,{value:e.typeFilter,"onUpdate:value":n[2]||(n[2]=r=>e.typeFilter=r),size:"small"},{default:a(()=>[o(x,{value:""},{default:a(()=>[u(s(t.$t("governance.filter.allTypes")),1)]),_:1}),(d(!0),g(F,null,U(e.PROPOSAL_TYPE_IDS,r=>(d(),k(x,{key:r,value:r},{default:a(()=>[u(s(e.typeLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),o(X,{columns:e.proposalColumns,"data-source":e.filteredProposals,pagination:{pageSize:20,showTotal:r=>t.$t("governance.table.totalSuffix",{n:r})},size:"small",loading:e.loading,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:r,record:m})=>[r.key==="title"?(d(),g(F,{key:0},[f("span",ct,s(m.title||t.$t("governance.table.unnamed")),1),f("div",dt,s(m.id.slice(0,16)),1)],64)):p("v-if",!0),r.key==="type"?(d(),k(_,{key:1,color:e.typeColor(m.type),style:{"font-family":"monospace"}},{default:a(()=>[u(s(e.typeLabel(m.type)),1)]),_:2},1032,["color"])):p("v-if",!0),r.key==="status"?(d(),k(_,{key:2,color:e.statusColor(m.status)},{default:a(()=>[u(s(e.statusLabel(m.status)),1)]),_:2},1032,["color"])):p("v-if",!0),r.key==="tally"?(d(),g(F,{key:3},[f("span",ut,[f("span",pt,"+"+s(m.voteYes),1),n[17]||(n[17]=u(" / ",-1)),f("span",vt,"-"+s(m.voteNo),1),n[18]||(n[18]=u(" / ",-1)),f("span",ft,"~"+s(m.voteAbstain),1)]),m.voteYes+m.voteNo>0?(d(),k(E,{key:0,percent:e.yesPct(m),size:"small","show-info":!1,"stroke-color":m.voteYes>=m.voteNo?"#52c41a":"#ff4d4f",style:{"margin-top":"4px"}},null,8,["percent","stroke-color"])):p("v-if",!0)],64)):p("v-if",!0),r.key==="impact"?(d(),g(F,{key:4},[m.impactLevel?(d(),k(_,{key:0,color:e.impactColor(m.impactLevel)},{default:a(()=>[u(s(e.impactLabel(m.impactLevel)),1)]),_:2},1032,["color"])):(d(),g("span",mt,"—"))],64)):p("v-if",!0),r.key==="createdAt"?(d(),g("span",yt,s(e.formatGovernanceTime(m.createdAt)),1)):p("v-if",!0),r.key==="action"?(d(),g(F,{key:6},[o(L,{size:"small",type:"link",onClick:R=>e.viewProposalDetails(m)},{default:a(()=>[u(s(t.$t("governance.actions.details")),1)]),_:1},8,["onClick"]),m.status==="draft"?(d(),k(L,{key:0,size:"small",type:"link",onClick:R=>e.activateProposal(m)},{default:a(()=>[u(s(t.$t("governance.actions.activate")),1)]),_:1},8,["onClick"])):p("v-if",!0),m.status==="active"?(d(),k(L,{key:1,size:"small",type:"link",style:{color:"#52c41a"},onClick:R=>e.openVoteModal(m)},{default:a(()=>[u(s(t.$t("governance.actions.vote")),1)]),_:1},8,["onClick"])):p("v-if",!0),m.status==="active"?(d(),k(Z,{key:2,title:t.$t("governance.closeConfirm.title"),"ok-text":t.$t("governance.closeConfirm.ok"),"cancel-text":t.$t("governance.closeConfirm.cancel"),onConfirm:R=>e.closeProposal(m)},{default:a(()=>[o(L,{size:"small",type:"link",danger:""},{default:a(()=>[u(s(t.$t("governance.actions.close")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):p("v-if",!0),o(L,{size:"small",type:"link",onClick:R=>e.runAnalyze(m)},{default:a(()=>[u(s(t.$t("governance.actions.analyze")),1)]),_:1},8,["onClick"]),o(L,{size:"small",type:"link",onClick:R=>e.runPredict(m)},{default:a(()=>[u(s(t.$t("governance.actions.predict")),1)]),_:1},8,["onClick"])],64)):p("v-if",!0)]),emptyText:a(()=>[f("div",gt,[o(e.FileTextOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),u(" "+s(e.statusFilter||e.typeFilter?t.$t("governance.table.emptyFiltered"):t.$t("governance.table.empty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),p(" ── Status & type breakdown tab ──────────────────────────── "),o(J,{key:"breakdown",tab:t.$t("governance.tabs.breakdown")},{default:a(()=>[o(V,{gutter:[16,16]},{default:a(()=>[o(C,{xs:24,lg:12},{default:a(()=>[o(z,{title:t.$t("governance.breakdown.byStatus"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[(d(!0),g(F,null,U(e.PROPOSAL_STATUSES,r=>(d(),g("div",{key:r,class:"bd-row"},[o(_,{color:e.statusColor(r),style:{"min-width":"60px","text-align":"center"}},{default:a(()=>[u(s(e.statusLabel(r)),1)]),_:2},1032,["color"]),o(E,{percent:e.pctOfTotal(e.stats.byStatus[r]||0,e.stats.proposalCount),"stroke-color":e.statusBarColor(r),format:()=>`${e.stats.byStatus[r]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),o(C,{xs:24,lg:12},{default:a(()=>[o(z,{title:t.$t("governance.breakdown.byType"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[(d(!0),g(F,null,U(e.PROPOSAL_TYPE_IDS,r=>(d(),g("div",{key:r,class:"bd-row"},[o(_,{color:e.typeColor(r),style:{"min-width":"90px","text-align":"center"}},{default:a(()=>[u(s(e.typeLabel(r)),1)]),_:2},1032,["color"]),o(E,{percent:e.pctOfTotal(e.stats.byType[r]||0,e.stats.proposalCount),"stroke-color":e.typeBarColor(r),format:()=>`${e.stats.byType[r]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),p(" ── Create proposal modal ───────────────────────────────── "),o(M,{open:e.showCreateModal,"onUpdate:open":n[8]||(n[8]=r=>e.showCreateModal=r),title:t.$t("governance.create_modal.title"),"confirm-loading":e.creating,width:560,"ok-text":t.$t("governance.create_modal.ok"),"cancel-text":t.$t("governance.create_modal.cancel"),onOk:e.createProposal,onCancel:e.resetCreateForm},{default:a(()=>[o($,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[o(h,{label:t.$t("governance.create_modal.titleLabel"),required:""},{default:a(()=>[o(A,{value:e.createForm.title,"onUpdate:value":n[4]||(n[4]=r=>e.createForm.title=r),placeholder:t.$t("governance.create_modal.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(h,{label:t.$t("governance.create_modal.typeLabel"),required:""},{default:a(()=>[o(H,{value:e.createForm.type,"onUpdate:value":n[5]||(n[5]=r=>e.createForm.type=r)},{default:a(()=>[(d(!0),g(F,null,U(e.PROPOSAL_TYPE_IDS,r=>(d(),k(K,{key:r,value:r},{default:a(()=>[u(s(e.typeLabel(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(h,{label:t.$t("governance.create_modal.proposerLabel")},{default:a(()=>[o(A,{value:e.createForm.proposerDid,"onUpdate:value":n[6]||(n[6]=r=>e.createForm.proposerDid=r),placeholder:t.$t("governance.create_modal.proposerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(h,{label:t.$t("governance.create_modal.descLabel")},{default:a(()=>[o(B,{value:e.createForm.description,"onUpdate:value":n[7]||(n[7]=r=>e.createForm.description=r),placeholder:t.$t("governance.create_modal.descPlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" ── Vote modal ───────────────────────────────────────────── "),o(M,{open:e.showVoteModal,"onUpdate:open":n[13]||(n[13]=r=>e.showVoteModal=r),title:t.$t("governance.vote_modal.title",{title:e.currentProposal?.title||""}),"confirm-loading":e.voting,width:540,"ok-text":t.$t("governance.vote_modal.ok"),"cancel-text":t.$t("governance.vote_modal.cancel"),onOk:e.submitVote},{default:a(()=>[o($,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[o(h,{label:t.$t("governance.vote_modal.voterLabel"),required:""},{default:a(()=>[o(A,{value:e.voteForm.voterDid,"onUpdate:value":n[9]||(n[9]=r=>e.voteForm.voterDid=r),placeholder:"did:key:..."},null,8,["value"])]),_:1},8,["label"]),o(h,{label:t.$t("governance.vote_modal.valueLabel"),required:""},{default:a(()=>[o(Y,{value:e.voteForm.value,"onUpdate:value":n[10]||(n[10]=r=>e.voteForm.value=r),"button-style":"solid"},{default:a(()=>[o(x,{value:"yes",style:{color:"#52c41a"}},{default:a(()=>[u(s(t.$t("governance.vote_modal.yes")),1)]),_:1}),o(x,{value:"no",style:{color:"#ff4d4f"}},{default:a(()=>[u(s(t.$t("governance.vote_modal.no")),1)]),_:1}),o(x,{value:"abstain"},{default:a(()=>[u(s(t.$t("governance.vote_modal.abstain")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),o(h,{label:t.$t("governance.vote_modal.weightLabel")},{default:a(()=>[o(ae,{value:e.voteForm.weight,"onUpdate:value":n[11]||(n[11]=r=>e.voteForm.weight=r),min:.1,step:.1,style:{width:"120px"}},null,8,["value"]),f("span",bt,s(t.$t("governance.vote_modal.weightHint")),1)]),_:1},8,["label"]),o(h,{label:t.$t("governance.vote_modal.reasonLabel")},{default:a(()=>[o(B,{value:e.voteForm.reason,"onUpdate:value":n[12]||(n[12]=r=>e.voteForm.reason=r),placeholder:t.$t("governance.vote_modal.reasonPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" ── Proposal details modal ──────────────────────────────── "),o(M,{open:e.showDetailsModal,"onUpdate:open":n[14]||(n[14]=r=>e.showDetailsModal=r),title:t.$t("governance.details.title",{title:e.currentProposal?.title||""}),width:780,footer:null},{default:a(()=>[e.currentProposal?(d(),g("div",_t,[o(ee,{column:2,size:"small",bordered:""},{default:a(()=>[o(S,{label:t.$t("governance.details.id"),span:2},{default:a(()=>[f("span",kt,s(e.currentProposal.id),1)]),_:1},8,["label"]),o(S,{label:t.$t("governance.details.type")},{default:a(()=>[o(_,{color:e.typeColor(e.currentProposal.type)},{default:a(()=>[u(s(e.typeLabel(e.currentProposal.type)),1)]),_:1},8,["color"])]),_:1},8,["label"]),o(S,{label:t.$t("governance.details.status")},{default:a(()=>[o(_,{color:e.statusColor(e.currentProposal.status)},{default:a(()=>[u(s(e.statusLabel(e.currentProposal.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),o(S,{label:t.$t("governance.details.proposer"),span:2},{default:a(()=>[e.currentProposal.proposerDid?(d(),g("span",Pt,s(e.currentProposal.proposerDid),1)):(d(),g("span",St,s(t.$t("governance.details.proposerUnset")),1))]),_:1},8,["label"]),o(S,{label:t.$t("governance.details.description"),span:2},{default:a(()=>[e.currentProposal.description?(d(),g("div",ht,s(e.currentProposal.description),1)):(d(),g("span",Ct,"—"))]),_:1},8,["label"]),o(S,{label:t.$t("governance.details.tally"),span:2},{default:a(()=>[o(N,null,{default:a(()=>[o(_,{color:"green"},{default:a(()=>[u(s(t.$t("governance.details.tallyYes",{n:e.currentProposal.voteYes})),1)]),_:1}),o(_,{color:"red"},{default:a(()=>[u(s(t.$t("governance.details.tallyNo",{n:e.currentProposal.voteNo})),1)]),_:1}),o(_,null,{default:a(()=>[u(s(t.$t("governance.details.tallyAbstain",{n:e.currentProposal.voteAbstain})),1)]),_:1})]),_:1})]),_:1},8,["label"]),e.currentProposal.impactLevel?(d(),k(S,{key:0,label:t.$t("governance.details.impact")},{default:a(()=>[o(_,{color:e.impactColor(e.currentProposal.impactLevel)},{default:a(()=>[u(s(e.impactLabel(e.currentProposal.impactLevel)),1)]),_:1},8,["color"])]),_:1},8,["label"])):p("v-if",!0),o(S,{label:t.$t("governance.details.createdAt")},{default:a(()=>[u(s(e.formatGovernanceTime(e.currentProposal.createdAt)),1)]),_:1},8,["label"]),e.currentProposal.votingStartsAt?(d(),k(S,{key:1,label:t.$t("governance.details.votingStartsAt")},{default:a(()=>[u(s(e.formatGovernanceTime(e.currentProposal.votingStartsAt)),1)]),_:1},8,["label"])):p("v-if",!0),e.currentProposal.votingEndsAt?(d(),k(S,{key:2,label:t.$t("governance.details.votingEndsAt")},{default:a(()=>[u(s(e.formatGovernanceTime(e.currentProposal.votingEndsAt)),1)]),_:1},8,["label"])):p("v-if",!0)]),_:1}),p(" Votes list "),f("h4",At,s(t.$t("governance.details.votesHeader")),1),e.detailVotes.length?(d(),k(oe,{key:1,size:"small","data-source":e.detailVotes,pagination:{pageSize:8}},{renderItem:a(({item:r})=>[o(te,null,{default:a(()=>[o(_,{color:e.voteColor(r.vote),style:{"min-width":"50px","text-align":"center"}},{default:a(()=>[u(s(e.voteLabel(r.vote)),1)]),_:2},1032,["color"]),f("span",zt,"w="+s(r.weight),1),f("span",Ot,s(r.voterDid),1),r.reason?(d(),g("span",wt,"— "+s(r.reason),1)):p("v-if",!0),f("span",Lt,s(e.formatGovernanceTime(r.createdAt)),1)]),_:2},1024)]),_:1},8,["data-source"])):(d(),k(ne,{key:0,description:t.$t("governance.details.votesEmpty"),image:e.EMPTY_IMG},null,8,["description","image"]))])):p("v-if",!0)]),_:1},8,["open","title"]),p(" ── Analysis modal ──────────────────────────────────────── "),o(M,{open:e.showAnalysisModal,"onUpdate:open":n[15]||(n[15]=r=>e.showAnalysisModal=r),title:t.$t("governance.analysis.title",{title:e.currentProposal?.title||""}),width:640,footer:null},{default:a(()=>[e.currentAnalysis?(d(),g("div",Tt,[o(V,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:a(()=>[o(C,{span:8},{default:a(()=>[o(T,{title:t.$t("governance.analysis.impactLevel"),value:e.impactLabel(e.currentAnalysis.impactLevel),"value-style":{color:e.impactBarColor(e.currentAnalysis.impactLevel),fontSize:"16px"}},null,8,["title","value","value-style"])]),_:1}),o(C,{span:8},{default:a(()=>[o(T,{title:t.$t("governance.analysis.effort"),value:e.effortLabel(e.currentAnalysis.estimatedEffort),"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1}),o(C,{span:8},{default:a(()=>[o(T,{title:t.$t("governance.analysis.sentiment"),value:e.sentimentLabel(e.currentAnalysis.communitySentiment),"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1})]),_:1}),o(z,{title:t.$t("governance.analysis.riskBenefit"),size:"small",style:{"margin-bottom":"12px"}},{default:a(()=>[f("div",xt,[f("span",Ft,s(t.$t("governance.analysis.riskScore")),1),o(E,{percent:Math.round(e.currentAnalysis.riskScore*100),"stroke-color":"#ff4d4f"},null,8,["percent"])]),f("div",null,[f("span",Dt,s(t.$t("governance.analysis.benefitScore")),1),o(E,{percent:Math.round(e.currentAnalysis.benefitScore*100),"stroke-color":"#52c41a"},null,8,["percent"])])]),_:1},8,["title"]),e.currentAnalysis.affectedComponents.length?(d(),k(z,{key:0,title:t.$t("governance.analysis.components"),size:"small",style:{"margin-bottom":"12px"}},{default:a(()=>[(d(!0),g(F,null,U(e.currentAnalysis.affectedComponents,r=>(d(),k(_,{key:r,color:"blue"},{default:a(()=>[u(s(r),1)]),_:2},1024))),128))]),_:1},8,["title"])):p("v-if",!0),e.currentAnalysis.recommendations.length?(d(),k(z,{key:1,title:t.$t("governance.analysis.recommendations"),size:"small"},{default:a(()=>[o(oe,{size:"small","data-source":e.currentAnalysis.recommendations},{renderItem:a(({item:r})=>[o(te,null,{default:a(()=>[o(e.ArrowRightOutlined,{style:{color:"#faad14","margin-right":"8px"}}),u(" "+s(r),1)]),_:2},1024)]),_:1},8,["data-source"])]),_:1},8,["title"])):p("v-if",!0)])):p("v-if",!0)]),_:1},8,["open","title"]),p(" ── Prediction modal ────────────────────────────────────── "),o(M,{open:e.showPredictionModal,"onUpdate:open":n[16]||(n[16]=r=>e.showPredictionModal=r),title:t.$t("governance.prediction.title",{title:e.currentProposal?.title||""}),width:540,footer:null},{default:a(()=>[e.currentPrediction?(d(),g("div",Et,[f("div",jt,[o(_,{color:e.currentPrediction.predictedOutcome==="pass"?"green":"red",style:{"font-size":"16px",padding:"6px 14px"}},{default:a(()=>[u(s(e.currentPrediction.predictedOutcome==="pass"?t.$t("governance.prediction.outcomePass"):t.$t("governance.prediction.outcomeReject")),1)]),_:1},8,["color"])]),o(ee,{column:2,size:"small",bordered:""},{default:a(()=>[o(S,{label:t.$t("governance.prediction.confidence"),span:2},{default:a(()=>[o(E,{percent:Math.round(e.currentPrediction.confidence*100),"stroke-color":e.currentPrediction.confidence>=.6?"#52c41a":"#faad14"},null,8,["percent","stroke-color"])]),_:1},8,["label"]),o(S,{label:t.$t("governance.prediction.basedOn")},{default:a(()=>[o(_,{color:e.currentPrediction.basedOn==="votes"?"blue":"orange"},{default:a(()=>[u(s(e.currentPrediction.basedOn==="votes"?t.$t("governance.prediction.basedOnVotes"):t.$t("governance.prediction.basedOnHeuristic")),1)]),_:1},8,["color"])]),_:1},8,["label"]),o(S,{label:t.$t("governance.prediction.sampleSize")},{default:a(()=>[u(s(e.currentPrediction.sampleSize),1)]),_:1},8,["label"]),o(S,{label:t.$t("governance.prediction.yesProb")},{default:a(()=>[f("span",Mt,s((e.currentPrediction.yesProb*100).toFixed(1))+"%",1)]),_:1},8,["label"]),o(S,{label:t.$t("governance.prediction.noProb")},{default:a(()=>[f("span",Rt,s((e.currentPrediction.noProb*100).toFixed(1))+"%",1)]),_:1},8,["label"]),o(S,{label:t.$t("governance.prediction.abstainProb"),span:2},{default:a(()=>[f("span",Ut,s((e.currentPrediction.abstainProb*100).toFixed(1))+"%",1)]),_:1},8,["label"])]),_:1})])):p("v-if",!0)]),_:1},8,["open","title"])])}const Gt=Ie(et,[["render",It],["__scopeId","data-v-3a4a41f3"],["__file","/tmp/cc-web-panel-RrTzBJ/repo/packages/web-panel/src/views/Governance.vue"]]);export{Gt as default};