chainlesschain 0.160.1 → 0.161.3

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 (191) hide show
  1. package/bin/chainlesschain.js +0 -0
  2. package/package.json +6 -6
  3. package/src/assets/web-panel/.build-hash +1 -1
  4. package/src/assets/web-panel/assets/AIOps-FON6GZIt.js +1 -0
  5. package/src/assets/web-panel/assets/{ActionButton-5QD5uzWP.js → ActionButton-Byb_P_P9.js} +1 -1
  6. package/src/assets/web-panel/assets/{Analytics-D1JxsGBN.js → Analytics-CDG1OwOr.js} +2 -2
  7. package/src/assets/web-panel/assets/AppLayout-lM1Y2Wgo.js +1 -0
  8. package/src/assets/web-panel/assets/Audit-p4krng5l.js +1 -0
  9. package/src/assets/web-panel/assets/Backup-G6AQe6k8.js +1 -0
  10. package/src/assets/web-panel/assets/{BaseInput-joQlVauq.js → BaseInput-tUASXi57.js} +1 -1
  11. package/src/assets/web-panel/assets/Chat-B46MHHAs.js +2 -0
  12. package/src/assets/web-panel/assets/{Checkbox-OEOFA9GM.js → Checkbox-CfDbHGdU.js} +1 -1
  13. package/src/assets/web-panel/assets/Codegen-D1mQ03ap.js +1 -0
  14. package/src/assets/web-panel/assets/{Col-BnLUipDp.js → Col-C0wS_dvU.js} +1 -1
  15. package/src/assets/web-panel/assets/Community-CB4KQIpB.js +1 -0
  16. package/src/assets/web-panel/assets/Compact-CuVvz3Zf.js +1 -0
  17. package/src/assets/web-panel/assets/Compliance-D6bnHyjs.js +1 -0
  18. package/src/assets/web-panel/assets/{Cowork-CCgGSKVR.js → Cowork-Dh3yt9pL.js} +2 -2
  19. package/src/assets/web-panel/assets/{Cron-CZ5pjRxn.js → Cron-DiuKXbnA.js} +2 -2
  20. package/src/assets/web-panel/assets/Crosschain-BFgMa5sQ.js +1 -0
  21. package/src/assets/web-panel/assets/{DID-DPZKMApP.js → DID-Dx7CFjrq.js} +2 -2
  22. package/src/assets/web-panel/assets/Dashboard-D3QHFHex.js +3 -0
  23. package/src/assets/web-panel/assets/{Dropdown-CeywCcVQ.js → Dropdown-sMGnnzUo.js} +1 -1
  24. package/src/assets/web-panel/assets/Federation-CGt7CYhN.js +1 -0
  25. package/src/assets/web-panel/assets/{FormItemContext-CFSiPqbu.js → FormItemContext-DuVk39z3.js} +1 -1
  26. package/src/assets/web-panel/assets/{Git-CjVRJDLg.js → Git-glb99UzZ.js} +2 -2
  27. package/src/assets/web-panel/assets/Governance-CQXGee_r.js +1 -0
  28. package/src/assets/web-panel/assets/Inference-Czm-Q3w3.js +1 -0
  29. package/src/assets/web-panel/assets/KnowledgeGraph-DFrr-B78.js +1 -0
  30. package/src/assets/web-panel/assets/{Logs-BD5C-wTx.js → Logs-ChGXdo0Q.js} +2 -2
  31. package/src/assets/web-panel/assets/Marketplace-DW6P2uIY.js +1 -0
  32. package/src/assets/web-panel/assets/{McpTools-x-Tibae-.js → McpTools-ChOwY-wy.js} +2 -2
  33. package/src/assets/web-panel/assets/{Memory-CR8LXq37.js → Memory-vIbbUTel.js} +2 -2
  34. package/src/assets/web-panel/assets/Mtc-60jSuMAz.js +6 -0
  35. package/src/assets/web-panel/assets/Mtc-Cc8OJxe_.css +1 -0
  36. package/src/assets/web-panel/assets/NLProgramming-fRrjhjpW.js +1 -0
  37. package/src/assets/web-panel/assets/{Notes-BYIn2GOe.js → Notes-C0zhC6_B.js} +3 -3
  38. package/src/assets/web-panel/assets/{Organization-CybJTFN9.js → Organization-Bebfm6lF.js} +4 -4
  39. package/src/assets/web-panel/assets/{Overflow-W4YLQ7yY.js → Overflow-D8ZjaRpc.js} +1 -1
  40. package/src/assets/web-panel/assets/{P2P-kVj43R4j.js → P2P-BjgamPxI.js} +2 -2
  41. package/src/assets/web-panel/assets/{Permissions-CfYE4XFJ.js → Permissions-uwoi4HnY.js} +2 -2
  42. package/src/assets/web-panel/assets/Pipeline-C2aHcq6n.js +1 -0
  43. package/src/assets/web-panel/assets/Privacy-lU34k_c5.js +1 -0
  44. package/src/assets/web-panel/assets/{ProjectSettings-cBqrIhNN.js → ProjectSettings-Dy-Iie9L.js} +2 -2
  45. package/src/assets/web-panel/assets/{Projects-BYY38oZd.js → Projects-B4Vt0iiH.js} +2 -2
  46. package/src/assets/web-panel/assets/{Providers-BsS27cWs.js → Providers-Cu9uRsVk.js} +2 -2
  47. package/src/assets/web-panel/assets/QuickAsk-BE29MB0d.js +1 -0
  48. package/src/assets/web-panel/assets/Recommend-DJ9nU8HM.js +1 -0
  49. package/src/assets/web-panel/assets/Reputation-ThffxFwr.js +1 -0
  50. package/src/assets/web-panel/assets/{Row-N-X7EJ3w.js → Row-CqBtO8lC.js} +1 -1
  51. package/src/assets/web-panel/assets/{RssFeed-D9TjnwgF.js → RssFeed-DaxFEUe6.js} +3 -3
  52. package/src/assets/web-panel/assets/Search-4zVFnx_Y.js +1 -0
  53. package/src/assets/web-panel/assets/{Security-DWbFJK10.js → Security-BEfSoaTM.js} +2 -2
  54. package/src/assets/web-panel/assets/{Services-BPUmhVoH.js → Services-DTAaoYJC.js} +2 -2
  55. package/src/assets/web-panel/assets/{Skeleton-Bo5qPHbE.js → Skeleton-CIZErmoY.js} +2 -2
  56. package/src/assets/web-panel/assets/Skills-CacIwBCt.js +1 -0
  57. package/src/assets/web-panel/assets/Sla-Si0g7a0u.js +1 -0
  58. package/src/assets/web-panel/assets/SpeechSettings-H19DqdAG.js +1 -0
  59. package/src/assets/web-panel/assets/SyncSettings-C6cDrwDR.css +1 -0
  60. package/src/assets/web-panel/assets/SyncSettings-bsC4-4rU.js +1 -0
  61. package/src/assets/web-panel/assets/Tasks-Bxlj8OVW.js +1 -0
  62. package/src/assets/web-panel/assets/Templates-B9YsJQcb.js +1 -0
  63. package/src/assets/web-panel/assets/Tenant-D4YncKb7.js +1 -0
  64. package/src/assets/web-panel/assets/Tokens-B2wJjOdI.js +1 -0
  65. package/src/assets/web-panel/assets/{Trigger-Bhjmjsc5.js → Trigger-DU9-3gN9.js} +1 -1
  66. package/src/assets/web-panel/assets/Trust-_yan18qg.js +1 -0
  67. package/src/assets/web-panel/assets/UkeySign-CZ7Xrq96.js +1 -0
  68. package/src/assets/web-panel/assets/VideoEditing-CUgere5i.js +1 -0
  69. package/src/assets/web-panel/assets/{Wallet-dcRAYsdL.js → Wallet-DSnzYVqY.js} +2 -2
  70. package/src/assets/web-panel/assets/{WebAuthn-oqIS5PCi.js → WebAuthn-De4aHZ87.js} +2 -2
  71. package/src/assets/web-panel/assets/WorkflowEditor-C-QNGwia.js +1 -0
  72. package/src/assets/web-panel/assets/chat-DFt6UJUS.js +1 -0
  73. package/src/assets/web-panel/assets/{colors-D2P6CqS5.js → colors-CHuBSydj.js} +1 -1
  74. package/src/assets/web-panel/assets/{compact-item-CG7qutT_.js → compact-item-DtCmGKIm.js} +1 -1
  75. package/src/assets/web-panel/assets/{createContext-y4UPKgbA.js → createContext-Cetup5Fb.js} +1 -1
  76. package/src/assets/web-panel/assets/{hasIn-Butbu9jZ.js → hasIn-Q509tIlQ.js} +1 -1
  77. package/src/assets/web-panel/assets/icons-zXb7lDZs.js +57 -0
  78. package/src/assets/web-panel/assets/{index-BEfvpbz-.js → index-0KFwdHZg.js} +1 -1
  79. package/src/assets/web-panel/assets/{index-Bs9aHxDD.js → index-7kdZ5ox5.js} +1 -1
  80. package/src/assets/web-panel/assets/index-B2f4ltyM.js +65 -0
  81. package/src/assets/web-panel/assets/{index-C_8hWf5_.js → index-B5d7Dkyp.js} +2 -2
  82. package/src/assets/web-panel/assets/index-BDK2Fkgd.js +13 -0
  83. package/src/assets/web-panel/assets/index-BJFH7IlV.js +21 -0
  84. package/src/assets/web-panel/assets/{index-89HJLKZ-.js → index-BTwIwesN.js} +1 -1
  85. package/src/assets/web-panel/assets/index-Bjz1Y3Gs.js +1 -0
  86. package/src/assets/web-panel/assets/index-BlPG_vWg.js +55 -0
  87. package/src/assets/web-panel/assets/{index-BtuwtDUE.js → index-BmHsGJ8F.js} +1 -1
  88. package/src/assets/web-panel/assets/{index-CWh3IxEh.js → index-BvAwpPN9.js} +1 -1
  89. package/src/assets/web-panel/assets/{index-YmGOWX7h.js → index-C2y5MxfU.js} +2 -2
  90. package/src/assets/web-panel/assets/{index-BYZPJS7A.js → index-C61WQXE3.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-BQr8Y0o5.js → index-C7baQwUM.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-B6U6cYUa.js → index-C8agLSzC.js} +8 -8
  93. package/src/assets/web-panel/assets/{index-DdgjeX4z.js → index-CJjwnpac.js} +1 -1
  94. package/src/assets/web-panel/assets/index-CRZ8WjUK.js +1 -0
  95. package/src/assets/web-panel/assets/index-CX7WO0g5.js +12 -0
  96. package/src/assets/web-panel/assets/index-CbQ3AZcJ.js +3 -0
  97. package/src/assets/web-panel/assets/{index-BvJgRWBq.js → index-CeXoNBLu.js} +2 -2
  98. package/src/assets/web-panel/assets/{index-C1ucrJLg.js → index-Ctdt2gEP.js} +1 -1
  99. package/src/assets/web-panel/assets/index-Cxk-8scO.js +1 -0
  100. package/src/assets/web-panel/assets/index-D0oJF6nX.js +7 -0
  101. package/src/assets/web-panel/assets/index-D7Smgwky.js +1 -0
  102. package/src/assets/web-panel/assets/index-DGAGIqDR.js +1 -0
  103. package/src/assets/web-panel/assets/index-DKWvx42k.js +1 -0
  104. package/src/assets/web-panel/assets/{index-Cc77JZKd.js → index-DVQSXYwb.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-vC5cTycG.js → index-DaMTgJkE.js} +2 -2
  106. package/src/assets/web-panel/assets/index-Dd68wDHG.js +12 -0
  107. package/src/assets/web-panel/assets/{index-BCQ0WlB2.js → index-Dem-mhfD.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-CYlDKn3O.js → index-Dq6E-pj8.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-Dx_ZTZo_.js → index-DuQfQVBe.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-DLMJy9pE.js → index-HqJ94PSG.js} +4 -4
  111. package/src/assets/web-panel/assets/{index-B4Jfv4EB.js → index-R5D_-l07.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-DnI4Aq0q.js → index-SR2lFA_W.js} +2 -2
  113. package/src/assets/web-panel/assets/{index-BJN_3RTO.js → index-hSpRlh93.js} +1 -1
  114. package/src/assets/web-panel/assets/index-jfzI94IT.js +1 -0
  115. package/src/assets/web-panel/assets/{index-DrVnyYpX.js → index-nfLO3XrF.js} +1 -1
  116. package/src/assets/web-panel/assets/{initDefaultProps-CZRZ-1bk.js → initDefaultProps-D7iOaKOY.js} +1 -1
  117. package/src/assets/web-panel/assets/{motion-CvU8SiWF.js → motion-CvCFk7sy.js} +1 -1
  118. package/src/assets/web-panel/assets/{move-ipAfWhya.js → move-BVj5YZrV.js} +1 -1
  119. package/src/assets/web-panel/assets/{omit-D6bJEjz9.js → omit-N_JDguMt.js} +1 -1
  120. package/src/assets/web-panel/assets/{pickAttrs-Dpvzf7sL.js → pickAttrs-BWcuLN5j.js} +1 -1
  121. package/src/assets/web-panel/assets/{placementArrow-D_tEolP1.js → placementArrow--1l0FzZx.js} +1 -1
  122. package/src/assets/web-panel/assets/{responsiveObserve-BEFI7neO.js → responsiveObserve-CGX6EYRt.js} +1 -1
  123. package/src/assets/web-panel/assets/{slide-Bte_KOqM.js → slide-B3hJzlWm.js} +1 -1
  124. package/src/assets/web-panel/assets/{statusUtils-K4xaDRuO.js → statusUtils-BJuExZuw.js} +1 -1
  125. package/src/assets/web-panel/assets/{styleChecker-Cl9YgOVY.js → styleChecker-pshnIK0r.js} +1 -1
  126. package/src/assets/web-panel/assets/{useFlexGapSupport-DNstl1wK.js → useFlexGapSupport-3FQZdpBd.js} +1 -1
  127. package/src/assets/web-panel/assets/useFs-BW1piLQM.js +1 -0
  128. package/src/assets/web-panel/assets/{vnode-ChB-8cXr.js → vnode-D98L6HI1.js} +1 -1
  129. package/src/assets/web-panel/assets/{zoom-meTNBulL.js → zoom-DnmMtXgZ.js} +1 -1
  130. package/src/assets/web-panel/index.html +2 -2
  131. package/src/commands/crosschain.js +564 -8
  132. package/src/commands/mtc.js +1334 -0
  133. package/src/lib/config-manager.js +3 -1
  134. package/src/lib/cross-chain-mtc.js +904 -0
  135. package/src/lib/governance-v2-helpers.js +1 -1
  136. package/src/lib/sync-manager.js +119 -25
  137. package/src/assets/web-panel/assets/AIOps-BHiKMxFI.js +0 -1
  138. package/src/assets/web-panel/assets/AppLayout-DykU9tOE.js +0 -1
  139. package/src/assets/web-panel/assets/Audit-TGBqld9c.js +0 -1
  140. package/src/assets/web-panel/assets/Backup-DjpzIwA6.js +0 -1
  141. package/src/assets/web-panel/assets/Chat-9TYfosy-.js +0 -2
  142. package/src/assets/web-panel/assets/Codegen-5H5UgHJu.js +0 -1
  143. package/src/assets/web-panel/assets/Community-BF3R5GAl.js +0 -1
  144. package/src/assets/web-panel/assets/Compact-C1EkTFek.js +0 -1
  145. package/src/assets/web-panel/assets/Compliance-CpP-ODRU.js +0 -1
  146. package/src/assets/web-panel/assets/Crosschain-C0P-5sm3.js +0 -1
  147. package/src/assets/web-panel/assets/Dashboard-G-BDDAov.js +0 -3
  148. package/src/assets/web-panel/assets/Federation-DuFRY867.js +0 -1
  149. package/src/assets/web-panel/assets/Governance-C0lyocJc.js +0 -1
  150. package/src/assets/web-panel/assets/Inference-BVSAexgk.js +0 -1
  151. package/src/assets/web-panel/assets/KnowledgeGraph-SE4jCwIn.js +0 -1
  152. package/src/assets/web-panel/assets/Marketplace-CL93dFBs.js +0 -1
  153. package/src/assets/web-panel/assets/Mtc-C-PfF5B3.css +0 -1
  154. package/src/assets/web-panel/assets/Mtc-CEtRtMcc.js +0 -1
  155. package/src/assets/web-panel/assets/NLProgramming-B09F6gt2.js +0 -1
  156. package/src/assets/web-panel/assets/Pipeline-BVLo32Ak.js +0 -1
  157. package/src/assets/web-panel/assets/Privacy-Efyb3xpJ.js +0 -1
  158. package/src/assets/web-panel/assets/QuickAsk-6FgX9DC6.js +0 -1
  159. package/src/assets/web-panel/assets/Recommend-BvMXwWFN.js +0 -1
  160. package/src/assets/web-panel/assets/Reputation-DmwTtBfl.js +0 -1
  161. package/src/assets/web-panel/assets/Search-Hapv-QkV.js +0 -1
  162. package/src/assets/web-panel/assets/Skills-JJ8uInMW.js +0 -1
  163. package/src/assets/web-panel/assets/Sla-CEDF9zdV.js +0 -1
  164. package/src/assets/web-panel/assets/SpeechSettings-oIoX_vCx.js +0 -1
  165. package/src/assets/web-panel/assets/Tasks-Cx5wgv5Z.js +0 -1
  166. package/src/assets/web-panel/assets/Templates-BomcBlkN.js +0 -1
  167. package/src/assets/web-panel/assets/Tenant-BxSQZUNh.js +0 -1
  168. package/src/assets/web-panel/assets/Tokens-BlPPoB3C.js +0 -1
  169. package/src/assets/web-panel/assets/Trust-Dsjv7rkb.js +0 -1
  170. package/src/assets/web-panel/assets/UkeySign-Cux8_Ib_.js +0 -1
  171. package/src/assets/web-panel/assets/VideoEditing-BsVR1PN8.js +0 -1
  172. package/src/assets/web-panel/assets/WorkflowEditor-C_fYMBvB.js +0 -1
  173. package/src/assets/web-panel/assets/chat-BQ-Nk2XY.js +0 -1
  174. package/src/assets/web-panel/assets/icons-DvZE-RKs.js +0 -57
  175. package/src/assets/web-panel/assets/index-38mVlGHc.js +0 -1
  176. package/src/assets/web-panel/assets/index-B5FRjJMb.js +0 -1
  177. package/src/assets/web-panel/assets/index-B7FV5EnN.js +0 -1
  178. package/src/assets/web-panel/assets/index-BQfow_sh.js +0 -1
  179. package/src/assets/web-panel/assets/index-C1mK1Ga3.js +0 -1
  180. package/src/assets/web-panel/assets/index-C2K61jP8.js +0 -55
  181. package/src/assets/web-panel/assets/index-CAeKBs9n.js +0 -1
  182. package/src/assets/web-panel/assets/index-Ceaxjpqh.js +0 -13
  183. package/src/assets/web-panel/assets/index-Ci6jXp3l.js +0 -7
  184. package/src/assets/web-panel/assets/index-CyqU4Tck.js +0 -65
  185. package/src/assets/web-panel/assets/index-DtNHlrxp.js +0 -1
  186. package/src/assets/web-panel/assets/index-gWmZm8_Q.js +0 -21
  187. package/src/assets/web-panel/assets/index-hSilB_Q-.js +0 -12
  188. package/src/assets/web-panel/assets/index-qXvwlbkq.js +0 -3
  189. package/src/assets/web-panel/assets/index-rIbVsjde.js +0 -12
  190. package/src/assets/web-panel/assets/useFs-BD-YRwbU.js +0 -1
  191. package/src/assets/web-panel/assets/ws-D_5-FRIb.js +0 -1
@@ -1 +0,0 @@
1
- import{_ as Xe,a as Ze,M as et,c as y}from"./index-CyqU4Tck.js";import{u as tt}from"./ws-D_5-FRIb.js";import{s as ot}from"./community-parser-CO25nZFt.js";import{R as nt,au as at,aG as st,B as rt,aF as ke,a4 as be,aH as lt,aD as it,ao as ct}from"./icons-DvZE-RKs.js";import{o as ut,M as g,R as x,P as c,u as t,c as a,N as n,K as f,r as C,L as u,O as p,Q as _,S as v,F,_ as G,$ as dt,f as X,a as mt}from"./vendor-B6ToihkA.js";function N(s){const e=ot(s);if(!e)return null;try{return JSON.parse(e)}catch{}const i=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!i)return null;try{return JSON.parse(i[0])}catch{return null}}const xe=Object.freeze(["note","post","article","document"]),pt=Object.freeze(["pending","viewed","dismissed"]);function S(s,e=0){return typeof s=="number"&&Number.isFinite(s)?s:e}function he(s){if(!s||typeof s!="object"||Array.isArray(s))return{};const e={};for(const[i,h]of Object.entries(s))typeof h=="number"&&Number.isFinite(h)&&(e[i]=h);return e}function ft(s,e=0){if(!s||typeof s!="object")return null;const i=s.user_id??s.userId??"";if(!i)return null;const h=s.topics&&typeof s.topics=="object"&&!Array.isArray(s.topics)?he(s.topics):{},I=s.interaction_weights??s.interactionWeights,P=I&&typeof I=="object"&&!Array.isArray(I)?he(I):{};return{key:i,id:String(s.id||""),userId:i,topics:h,topicCount:Object.keys(h).length,interactionWeights:P,decayFactor:S(s.decay_factor??s.decayFactor,.9),lastUpdated:s.last_updated??s.lastUpdated??null,updateCount:S(s.update_count??s.updateCount,0),_idx:e}}function yt(s){const e=N(s);return Array.isArray(e)?e.map(ft).filter(Boolean):[]}function gt(s,e=0){if(!s||typeof s!="object")return null;const i=s.id||"";return i?{key:i,id:i,userId:s.user_id??s.userId??"",contentId:s.content_id??s.contentId??"",contentType:String(s.content_type??s.contentType??"note").toLowerCase(),title:String(s.title||""),score:S(s.score,0),reason:String(s.reason||""),source:String(s.source||"heuristic"),status:String(s.status||"pending").toLowerCase(),feedback:s.feedback??null,createdAt:s.created_at??s.createdAt??null,viewedAt:s.viewed_at??s.viewedAt??null,_idx:e}:null}function _t(s){const e=N(s);return Array.isArray(e)?e.map(gt).filter(Boolean):[]}const vt={total:0,pending:0,viewed:0,dismissed:0,feedbackCount:0,feedbackRate:0,avgScore:0};function kt(s){const e={...vt},i=N(s);return!i||typeof i!="object"||Array.isArray(i)||(e.total=S(i.total,0),e.pending=S(i.pending,0),e.viewed=S(i.viewed,0),e.dismissed=S(i.dismissed,0),e.feedbackCount=S(i.feedbackCount,0),e.feedbackRate=S(i.feedbackRate,0),e.avgScore=S(i.avgScore,0)),e}function bt(s){const e=N(s);return Array.isArray(e)?e.filter(i=>i&&typeof i=="object"&&typeof i.topic=="string").map((i,h)=>({key:`${i.topic}-${h}`,topic:i.topic,weight:S(i.weight,0)})):[]}function xt(s){const e=N(s);return Array.isArray(e)?e.filter(i=>i&&typeof i=="object"&&typeof i.topic=="string"&&typeof i.action=="string").map((i,h)=>({key:`${i.topic}-${h}`,topic:i.topic,action:i.action,amount:S(i.amount,0)})):[]}function J(s){const e=N(s);return!e||typeof e!="object"||Array.isArray(e)?{ok:!1,reason:"",profileId:null,topicCount:null}:{ok:!!(e.updated||e.deleted||e.marked||e.dismissed||e.recorded||e.applied||e.profileId),reason:e.reason?String(e.reason):"",profileId:e.profileId?String(e.profileId):null,topicCount:typeof e.topicCount=="number"?e.topicCount:null}}function Ce(s){if(s==null||s==="")return"—";const e=typeof s=="number"?new Date(s):new Date(String(s));return isNaN(e.getTime())?String(s):e.toLocaleString("zh-CN",{hour12:!1})}const ht={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ct={class:"page-title"},wt={class:"page-sub"},St={style:{display:"flex","align-items":"center",gap:"12px","flex-wrap":"wrap"}},It={style:{color:"var(--text-secondary)","font-size":"12px"}},zt={class:"type-name"},Ft={class:"filter-bar"},At={style:{color:"var(--text-primary)","font-weight":"500"}},Ot={style:{color:"var(--text-muted)","font-size":"11px","margin-top":"2px"}},Tt={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},Rt={key:1,style:{color:"var(--text-muted)"}},Ut={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},$t={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},jt={key:2,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Jt={key:3,style:{color:"var(--text-secondary)"}},Nt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Pt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Mt={key:1},Et={class:"interest-topic"},Lt={style:{"margin-left":"8px","font-family":"monospace",color:"var(--text-primary)"}},Dt={style:{"margin-left":"auto",color:"var(--text-secondary)","font-size":"12px"}},Bt={key:0,style:{"padding-top":"8px"}},Wt={style:{"font-family":"monospace","font-size":"12px"}},Vt={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},Kt={key:1},Gt={class:"interest-topic"},qt={key:2,style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},Ht={key:3,class:"weights-pre"},Qt={__name:"Recommend",setup(s){const{t:e}=Ze(),i=tt(),h=et.PRESENTED_IMAGE_SIMPLE,I=C(!1),P=C(!1),Z=C(!1),M=C([]),ee=C([]),A=C({total:0,pending:0,viewed:0,dismissed:0,feedbackCount:0,feedbackRate:0,avgScore:0}),q=C([]),U=C([]),k=C(null),H=C("recs"),E=C(""),L=C(""),Q=C(!1),te=C(!1),b=mt({userId:"",topicsJson:"",weightsJson:""}),w=C(null),we=X(()=>M.value.map(o=>({value:o.userId,label:`${o.userId} (${e("recommend.userBar.topicSuffix",{count:o.topicCount})})`}))),Se=X(()=>[{title:e("recommend.recColumns.title"),key:"title"},{title:e("recommend.recColumns.contentType"),key:"contentType",width:"110px"},{title:e("recommend.recColumns.score"),key:"score",width:"180px"},{title:e("recommend.recColumns.reason"),key:"reason",width:"220px"},{title:e("recommend.recColumns.status"),key:"status",width:"100px"},{title:e("recommend.recColumns.feedback"),key:"feedback",width:"90px"},{title:e("recommend.recColumns.action"),key:"action",width:"210px"}]),Ie=X(()=>[{title:e("recommend.profileColumns.userId"),key:"userId"},{title:e("recommend.profileColumns.topicCount"),key:"topicCount",width:"110px"},{title:e("recommend.profileColumns.decayFactor"),key:"decayFactor",width:"110px"},{title:e("recommend.profileColumns.updateCount"),key:"updateCount",width:"110px"},{title:e("recommend.profileColumns.lastUpdated"),key:"lastUpdated",width:"180px"},{title:e("recommend.profileColumns.action"),key:"action",width:"200px"}]),ze=X(()=>{let o=ee.value;return E.value&&(o=o.filter(l=>l.status===E.value)),L.value&&(o=o.filter(l=>l.contentType===L.value)),o});function le(o){const l=`recommend.type.${o}`,d=e(l);return d===l?o:d}function ie(o){return{note:"blue",post:"green",article:"purple",document:"orange"}[o]||"default"}function Fe(o){return{note:"#1677ff",post:"#52c41a",article:"#722ed1",document:"#fa8c16"}[o]||"#888"}function ce(o){const l=`recommend.status.${o}`,d=e(l);return d===l?o:d}function Ae(o){return{pending:"processing",viewed:"green",dismissed:"default"}[o]||"default"}function Oe(o){const l=`recommend.feedbackLabel.${o}`,d=e(l);return d===l?o:d}function Te(o){return{like:"green",dislike:"red",later:"gold"}[o]||"default"}function ue(o){return o>=.7?"#52c41a":o>=.4?"#1677ff":o>=.2?"#faad14":"#ff4d4f"}function de(o){return o>=.7?"#52c41a":o>=.4?"#1677ff":o>=.2?"#faad14":"#888"}function Re(o){try{return JSON.stringify(o,null,2)}catch{return String(o)}}async function D(){I.value=!0;try{const{output:o}=await i.execute("recommend profiles --json",1e4).catch(()=>({output:""}));M.value=yt(o),k.value&&!M.value.find(l=>l.userId===k.value)&&(k.value=null),k.value&&await R()}catch(o){y.error(e("recommend.messages.loadProfilesFailed",{err:o?.message||o}))}finally{I.value=!1}}async function R(){if(!k.value){ee.value=[],A.value={total:0,pending:0,viewed:0,dismissed:0,feedbackCount:0,feedbackRate:0,avgScore:0},q.value=[];return}P.value=!0;try{const o=B(k.value),[l,d,O]=await Promise.all([i.execute(`recommend list ${o} --limit 200 --json`,1e4).catch(()=>({output:""})),i.execute(`recommend stats ${o} --json`,8e3).catch(()=>({output:""})),i.execute(`recommend top-interests ${o} --limit 30 --json`,8e3).catch(()=>({output:""}))]);ee.value=_t(l.output),A.value=kt(d.output),q.value=bt(O.output)}catch(o){y.error(e("recommend.messages.loadUserFailed",{err:o?.message||o}))}finally{P.value=!1}}function B(o){return`"${String(o).replace(/"/g,'\\"')}"`}function Ue(){U.value=[],R()}function $e(o){k.value=o,H.value="recs",R()}async function je(){if(!b.userId.trim()){y.warning(e("recommend.messages.userIdRequired"));return}if(b.topicsJson.trim())try{JSON.parse(b.topicsJson)}catch{y.warning(e("recommend.messages.topicsJsonInvalid"));return}if(b.weightsJson.trim())try{JSON.parse(b.weightsJson)}catch{y.warning(e("recommend.messages.weightsJsonInvalid"));return}Z.value=!0;try{const o=[`recommend create-profile ${B(b.userId.trim())}`];b.topicsJson.trim()&&o.push(`-t ${me(b.topicsJson.trim())}`),b.weightsJson.trim()&&o.push(`-w ${me(b.weightsJson.trim())}`),o.push("--json");const{output:l}=await i.execute(o.join(" "),1e4),d=J(l);if(!d.ok){y.error(e("recommend.messages.createFailed",{err:d.reason||l.slice(0,120)}));return}y.success(e("recommend.messages.createOk",{id:d.profileId?.slice(0,8)||""})),Q.value=!1;const O=b.userId.trim();pe(),await D(),k.value=O,await R()}catch(o){y.error(e("recommend.messages.createFailed",{err:o?.message||o}))}finally{Z.value=!1}}function me(o){return`'${String(o).replace(/'/g,"'\\''")}'`}async function Je(){if(k.value)try{const{output:o}=await i.execute(`recommend decay ${B(k.value)} --json`,8e3),l=J(o);if(!l.ok){y.error(e("recommend.messages.decayFailed",{err:l.reason||o.slice(0,120)}));return}y.success(l.topicCount!==null?e("recommend.messages.decayOkTopics",{count:l.topicCount}):e("recommend.messages.decayOk")),await D()}catch(o){y.error(e("recommend.messages.decayFailed",{err:o?.message||o}))}}async function Ne(){if(k.value)try{const{output:o}=await i.execute(`recommend suggest ${B(k.value)} --json`,8e3);U.value=xt(o),H.value="interests",U.value.length?y.success(e("recommend.messages.suggestFound",{count:U.value.length})):y.info(e("recommend.messages.suggestNone"))}catch(o){y.error(e("recommend.messages.loadSuggestFailed",{err:o?.message||o}))}}async function Pe(o){try{const{output:l}=await i.execute(`recommend delete-profile ${B(o.userId)} --json`,8e3),d=J(l);if(!d.ok){y.error(e("recommend.messages.deleteFailed",{err:d.reason||l.slice(0,120)}));return}y.success(e("recommend.messages.deleteOk")),k.value===o.userId&&(k.value=null),await D()}catch(l){y.error(e("recommend.messages.deleteFailed",{err:l?.message||l}))}}function Me(o){w.value=o,te.value=!0}async function Ee(o){try{const{output:l}=await i.execute(`recommend view ${o.id} --json`,8e3),d=J(l);if(!d.ok){y.error(e("recommend.messages.viewFailed",{err:d.reason||l.slice(0,120)}));return}y.success(e("recommend.messages.viewOk")),await R()}catch(l){y.error(e("recommend.messages.viewFailed",{err:l?.message||l}))}}async function Le(o,l){try{const{output:d}=await i.execute(`recommend feedback ${o.id} ${l} --json`,8e3),O=J(d);if(!O.ok){y.error(e("recommend.messages.feedbackFailed",{err:O.reason||d.slice(0,120)}));return}y.success(e("recommend.messages.feedbackOk")),await R()}catch(d){y.error(e("recommend.messages.feedbackFailed",{err:d?.message||d}))}}async function De(o){try{const{output:l}=await i.execute(`recommend dismiss ${o.id} --json`,8e3),d=J(l);if(!d.ok){y.error(e("recommend.messages.dismissFailed",{err:d.reason||l.slice(0,120)}));return}y.success(e("recommend.messages.dismissOk")),await R()}catch(l){y.error(e("recommend.messages.dismissFailed",{err:l?.message||l}))}}function pe(){b.userId="",b.topicsJson="",b.weightsJson=""}return ut(D),(o,l)=>{const d=f("a-button"),O=f("a-space"),Be=f("a-select"),z=f("a-card"),W=f("a-statistic"),T=f("a-col"),oe=f("a-row"),$=f("a-tag"),Y=f("a-radio-button"),fe=f("a-radio-group"),V=f("a-empty"),ne=f("a-progress"),ae=f("a-menu-item"),We=f("a-menu"),Ve=f("a-dropdown"),ye=f("a-popconfirm"),ge=f("a-table"),se=f("a-tab-pane"),Ke=f("a-list-item"),Ge=f("a-list"),qe=f("a-tabs"),He=f("a-input"),re=f("a-form-item"),_e=f("a-textarea"),Qe=f("a-form"),ve=f("a-modal"),K=f("a-descriptions-item"),Ye=f("a-descriptions");return u(),g("div",null,[x("div",ht,[x("div",null,[x("h2",Ct,c(t(e)("recommend.title")),1),x("p",wt,c(t(e)("recommend.subtitle")),1)]),a(O,null,{default:n(()=>[a(d,{loading:I.value,onClick:D},{icon:n(()=>[a(t(nt))]),default:n(()=>[p(" "+c(t(e)("recommend.refresh")),1)]),_:1},8,["loading"]),a(d,{type:"primary",onClick:l[0]||(l[0]=r=>Q.value=!0)},{icon:n(()=>[a(t(at))]),default:n(()=>[p(" "+c(t(e)("recommend.createProfile")),1)]),_:1})]),_:1})]),a(z,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},"body-style":{padding:"10px 16px"}},{default:n(()=>[x("div",St,[x("span",It,c(t(e)("recommend.userBar.currentUser")),1),a(Be,{value:k.value,"onUpdate:value":l[1]||(l[1]=r=>k.value=r),options:we.value,placeholder:t(e)("recommend.userBar.selectPlaceholder"),style:{"min-width":"280px"},"allow-clear":"","show-search":"",onChange:Ue},null,8,["value","options","placeholder"]),k.value?(u(),_(d,{key:0,size:"small",onClick:Je},{icon:n(()=>[a(t(st))]),default:n(()=>[p(" "+c(t(e)("recommend.userBar.applyDecay")),1)]),_:1})):v("",!0),k.value?(u(),_(d,{key:1,size:"small",onClick:Ne},{icon:n(()=>[a(t(rt))]),default:n(()=>[p(" "+c(t(e)("recommend.userBar.suggest")),1)]),_:1})):v("",!0)])]),_:1}),a(oe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(T,{xs:12,sm:8,lg:5},{default:n(()=>[a(z,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(W,{title:t(e)("recommend.stats.profiles"),value:M.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[a(t(ke))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(T,{xs:12,sm:8,lg:5},{default:n(()=>[a(z,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(W,{title:t(e)("recommend.stats.totalRecs"),value:A.value.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[a(t(be))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(T,{xs:12,sm:8,lg:5},{default:n(()=>[a(z,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(W,{title:t(e)("recommend.stats.pending"),value:A.value.pending,"value-style":{color:A.value.pending>0?"#faad14":"#888",fontSize:"20px"}},{prefix:n(()=>[a(t(lt))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(T,{xs:12,sm:8,lg:5},{default:n(()=>[a(z,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(W,{title:t(e)("recommend.stats.feedbackRate"),value:A.value.feedbackRate*100,suffix:"%",precision:1,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:n(()=>[a(t(it))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(T,{xs:24,sm:8,lg:4},{default:n(()=>[a(z,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(W,{title:t(e)("recommend.stats.avgScore"),value:A.value.avgScore,precision:3,"value-style":{color:ue(A.value.avgScore),fontSize:"20px"}},{prefix:n(()=>[a(t(ct))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),a(z,{title:t(e)("recommend.typeCatalogue"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:n(()=>[a(oe,{gutter:[12,12]},{default:n(()=>[(u(!0),g(F,null,G(t(xe),r=>(u(),_(T,{key:r,xs:12,sm:6},{default:n(()=>[x("div",{class:"type-pill",style:dt({borderLeftColor:Fe(r)})},[a($,{color:ie(r),style:{"font-family":"monospace"}},{default:n(()=>[p(c(r),1)]),_:2},1032,["color"]),x("div",zt,c(le(r)),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),a(qe,{activeKey:H.value,"onUpdate:activeKey":l[4]||(l[4]=r=>H.value=r),class:"recommend-tabs"},{default:n(()=>[a(se,{key:"recs",tab:t(e)("recommend.tabs.recs")},{default:n(()=>[x("div",Ft,[a(fe,{value:E.value,"onUpdate:value":l[2]||(l[2]=r=>E.value=r),size:"small","button-style":"solid"},{default:n(()=>[a(Y,{value:""},{default:n(()=>[p(c(t(e)("recommend.filter.allStatuses")),1)]),_:1}),(u(!0),g(F,null,G(t(pt),r=>(u(),_(Y,{key:r,value:r},{default:n(()=>[p(c(ce(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(fe,{value:L.value,"onUpdate:value":l[3]||(l[3]=r=>L.value=r),size:"small"},{default:n(()=>[a(Y,{value:""},{default:n(()=>[p(c(t(e)("recommend.filter.allTypes")),1)]),_:1}),(u(!0),g(F,null,G(t(xe),r=>(u(),_(Y,{key:r,value:r},{default:n(()=>[p(c(le(r)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),k.value?(u(),_(ge,{key:1,columns:Se.value,"data-source":ze.value,pagination:{pageSize:20,showTotal:r=>t(e)("recommend.totals.rows",{count:r})},size:"small",loading:P.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:m})=>[r.key==="title"?(u(),g(F,{key:0},[x("span",At,c(m.title||t(e)("recommend.noTitle")),1),x("div",Ot,c(m.contentId),1)],64)):v("",!0),r.key==="contentType"?(u(),_($,{key:1,color:ie(m.contentType),style:{"font-family":"monospace"}},{default:n(()=>[p(c(m.contentType),1)]),_:2},1032,["color"])):v("",!0),r.key==="score"?(u(),_(ne,{key:2,percent:Math.round(m.score*100),"stroke-color":ue(m.score),size:"small",format:()=>m.score.toFixed(3)},null,8,["percent","stroke-color","format"])):v("",!0),r.key==="reason"?(u(),g("span",Tt,c(m.reason),1)):v("",!0),r.key==="status"?(u(),_($,{key:4,color:Ae(m.status)},{default:n(()=>[p(c(ce(m.status)),1)]),_:2},1032,["color"])):v("",!0),r.key==="feedback"?(u(),g(F,{key:5},[m.feedback?(u(),_($,{key:0,color:Te(m.feedback)},{default:n(()=>[p(c(Oe(m.feedback)),1)]),_:2},1032,["color"])):(u(),g("span",Rt,"—"))],64)):v("",!0),r.key==="action"?(u(),g(F,{key:6},[m.status==="pending"?(u(),_(d,{key:0,size:"small",type:"link",onClick:j=>Ee(m)},{default:n(()=>[p(c(t(e)("recommend.rowActions.view")),1)]),_:1},8,["onClick"])):v("",!0),m.status!=="dismissed"?(u(),_(Ve,{key:1},{overlay:n(()=>[a(We,{onClick:({key:j})=>Le(m,j)},{default:n(()=>[a(ae,{key:"like",style:{color:"#52c41a"}},{default:n(()=>[p(c(t(e)("recommend.feedbackMenu.like")),1)]),_:1}),a(ae,{key:"dislike",style:{color:"#ff4d4f"}},{default:n(()=>[p(c(t(e)("recommend.feedbackMenu.dislike")),1)]),_:1}),a(ae,{key:"later"},{default:n(()=>[p(c(t(e)("recommend.feedbackMenu.later")),1)]),_:1})]),_:1},8,["onClick"])]),default:n(()=>[a(d,{size:"small",type:"link"},{default:n(()=>[p(c(t(e)("recommend.feedbackDropdown")),1)]),_:1})]),_:2},1024)):v("",!0),m.status!=="dismissed"?(u(),_(ye,{key:2,title:t(e)("recommend.rowActions.dismissConfirmTitle"),"ok-text":t(e)("recommend.rowActions.dismissOk"),"cancel-text":t(e)("common.cancel"),onConfirm:j=>De(m)},{default:n(()=>[a(d,{size:"small",type:"link",danger:""},{default:n(()=>[p(c(t(e)("recommend.rowActions.dismiss")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):v("",!0)],64)):v("",!0)]),emptyText:n(()=>[x("div",Ut,[a(t(be),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+c(E.value||L.value?t(e)("recommend.empty.filtered"):t(e)("recommend.empty.noRecsHint")),1)])]),_:1},8,["columns","data-source","pagination","loading"])):(u(),_(V,{key:0,description:t(e)("recommend.empty.selectUser"),image:t(h),style:{padding:"40px 0"}},null,8,["description","image"]))]),_:1},8,["tab"]),a(se,{key:"profiles",tab:t(e)("recommend.tabs.profiles")},{default:n(()=>[a(ge,{columns:Ie.value,"data-source":M.value,pagination:{pageSize:20,showTotal:r=>t(e)("recommend.totals.profiles",{count:r})},size:"small",loading:I.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:r,record:m})=>[r.key==="userId"?(u(),g("span",$t,c(m.userId),1)):v("",!0),r.key==="topicCount"?(u(),_($,{key:1,color:"blue"},{default:n(()=>[p(c(t(e)("recommend.topicTagSuffix",{count:m.topicCount})),1)]),_:2},1024)):v("",!0),r.key==="decayFactor"?(u(),g("span",jt,c(m.decayFactor.toFixed(2)),1)):v("",!0),r.key==="updateCount"?(u(),g("span",Jt,c(m.updateCount),1)):v("",!0),r.key==="lastUpdated"?(u(),g("span",Nt,c(t(Ce)(m.lastUpdated)),1)):v("",!0),r.key==="action"?(u(),g(F,{key:5},[a(d,{size:"small",type:"link",onClick:j=>Me(m)},{default:n(()=>[p(c(t(e)("recommend.rowActions.details")),1)]),_:1},8,["onClick"]),a(d,{size:"small",type:"link",onClick:j=>$e(m.userId)},{default:n(()=>[p(c(t(e)("recommend.rowActions.switch")),1)]),_:1},8,["onClick"]),a(ye,{title:t(e)("recommend.rowActions.deleteConfirmTitle"),"ok-text":t(e)("recommend.rowActions.deleteOk"),"cancel-text":t(e)("common.cancel"),onConfirm:j=>Pe(m)},{default:n(()=>[a(d,{size:"small",type:"link",danger:""},{default:n(()=>[p(c(t(e)("recommend.rowActions.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):v("",!0)]),emptyText:n(()=>[x("div",Pt,[a(t(ke),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+c(t(e)("recommend.empty.noProfiles")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(se,{key:"interests",tab:t(e)("recommend.tabs.interests")},{default:n(()=>[k.value?(u(),_(oe,{key:1,gutter:[16,16]},{default:n(()=>[a(T,{xs:24,lg:14},{default:n(()=>[a(z,{title:t(e)("recommend.interest.topicWeights"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[q.value.length?(u(),g("div",Mt,[(u(!0),g(F,null,G(q.value,r=>(u(),g("div",{key:r.key,class:"interest-row"},[x("span",Et,c(r.topic),1),a(ne,{percent:Math.round(r.weight*100),"stroke-color":de(r.weight),format:()=>r.weight.toFixed(3),size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))])):(u(),_(V,{key:0,description:t(e)("recommend.empty.noInterests"),image:t(h)},null,8,["description","image"]))]),_:1},8,["title"])]),_:1}),a(T,{xs:24,lg:10},{default:n(()=>[a(z,{title:t(e)("recommend.interest.feedbackSuggest"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[U.value.length?(u(),_(Ge,{key:1,size:"small","data-source":U.value},{renderItem:n(({item:r})=>[a(Ke,null,{default:n(()=>[a($,{color:r.action==="boost"?"green":"orange"},{default:n(()=>[p(c(r.action==="boost"?t(e)("recommend.interest.boost"):t(e)("recommend.interest.lower")),1)]),_:2},1032,["color"]),x("span",Lt,c(r.topic),1),x("span",Dt,"±"+c(r.amount),1)]),_:2},1024)]),_:1},8,["data-source"])):(u(),_(V,{key:0,description:t(e)("recommend.empty.noSuggestions"),image:t(h)},null,8,["description","image"]))]),_:1},8,["title"])]),_:1})]),_:1})):(u(),_(V,{key:0,description:t(e)("recommend.empty.selectUser"),image:t(h),style:{padding:"40px 0"}},null,8,["description","image"]))]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ve,{open:Q.value,"onUpdate:open":l[8]||(l[8]=r=>Q.value=r),title:t(e)("recommend.create.title"),"confirm-loading":Z.value,width:560,"ok-text":t(e)("recommend.create.ok"),"cancel-text":t(e)("common.cancel"),onOk:je,onCancel:pe},{default:n(()=>[a(Qe,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[a(re,{label:t(e)("recommend.create.userIdLabel"),required:""},{default:n(()=>[a(He,{value:b.userId,"onUpdate:value":l[5]||(l[5]=r=>b.userId=r),placeholder:t(e)("recommend.create.userIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(re,{label:t(e)("recommend.create.topicsLabel")},{default:n(()=>[a(_e,{value:b.topicsJson,"onUpdate:value":l[6]||(l[6]=r=>b.topicsJson=r),placeholder:t(e)("recommend.create.topicsPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(re,{label:t(e)("recommend.create.weightsLabel")},{default:n(()=>[a(_e,{value:b.weightsJson,"onUpdate:value":l[7]||(l[7]=r=>b.weightsJson=r),placeholder:t(e)("recommend.create.weightsPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ve,{open:te.value,"onUpdate:open":l[9]||(l[9]=r=>te.value=r),title:t(e)("recommend.details.title",{userId:w.value?.userId||""}),width:680,footer:null},{default:n(()=>[w.value?(u(),g("div",Bt,[a(Ye,{column:2,size:"small",bordered:""},{default:n(()=>[a(K,{label:t(e)("recommend.details.id"),span:2},{default:n(()=>[x("span",Wt,c(w.value.id),1)]),_:1},8,["label"]),a(K,{label:t(e)("recommend.details.topicCount")},{default:n(()=>[p(c(w.value.topicCount),1)]),_:1},8,["label"]),a(K,{label:t(e)("recommend.details.decayFactor")},{default:n(()=>[p(c(w.value.decayFactor.toFixed(2)),1)]),_:1},8,["label"]),a(K,{label:t(e)("recommend.details.updateCount")},{default:n(()=>[p(c(w.value.updateCount),1)]),_:1},8,["label"]),a(K,{label:t(e)("recommend.details.lastUpdated")},{default:n(()=>[p(c(t(Ce)(w.value.lastUpdated)),1)]),_:1},8,["label"])]),_:1}),x("h4",Vt,c(t(e)("recommend.details.topicWeights")),1),Object.keys(w.value.topics).length?(u(),g("div",Kt,[(u(!0),g(F,null,G(w.value.topics,(r,m)=>(u(),g("div",{key:m,class:"interest-row"},[x("span",Gt,c(m),1),a(ne,{percent:Math.round(r*100),"stroke-color":de(r),format:()=>r.toFixed(3),size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))])):(u(),_(V,{key:0,description:t(e)("recommend.empty.noTopics"),image:t(h)},null,8,["description","image"])),Object.keys(w.value.interactionWeights).length?(u(),g("h4",qt,c(t(e)("recommend.details.interactionWeights")),1)):v("",!0),Object.keys(w.value.interactionWeights).length?(u(),g("pre",Ht,c(Re(w.value.interactionWeights)),1)):v("",!0)])):v("",!0)]),_:1},8,["open","title"])])}}},oo=Xe(Qt,[["__scopeId","data-v-16fcadc2"]]);export{oo as default};
@@ -1 +0,0 @@
1
- import{_ as it,a as ut,M as ct,c as k}from"./index-CyqU4Tck.js";import{u as pt}from"./ws-D_5-FRIb.js";import{s as Ee}from"./community-parser-CO25nZFt.js";import{R as dt,af as Ce,h as mt,aF as De,am as ft,U as Re,L as yt,a3 as vt,al as bt,aE as _t}from"./icons-DvZE-RKs.js";import gt from"./index-89HJLKZ-.js";import{o as xt,M as m,R as _,P as u,u as n,c as t,N as o,Q as S,S as y,K as d,r as h,L as c,O as f,F as T,_ as L,Y as kt,$ as Fe,f as Ie,a as ye}from"./vendor-B6ToihkA.js";import"./KeyCode-D63Tfrq7.js";import"./omit-D6bJEjz9.js";import"./pickAttrs-Dpvzf7sL.js";import"./initDefaultProps-CZRZ-1bk.js";import"./motion-CvU8SiWF.js";import"./raf-Deuc0E8-.js";import"./index-DtNHlrxp.js";import"./index-BQr8Y0o5.js";import"./isVisible-C7tPsqfj.js";import"./useState-CpKsyozn.js";import"./devWarning-CNIS3FrJ.js";import"./warning-Pq00owYb.js";import"./compact-item-CG7qutT_.js";import"./createContext-y4UPKgbA.js";import"./Compact-C1EkTFek.js";import"./_getTag-CWA3v-Ds.js";import"./styleChecker-Cl9YgOVY.js";import"./zoom-meTNBulL.js";import"./ActionButton-5QD5uzWP.js";import"./vnode-ChB-8cXr.js";function B(s){const e=Ee(s);if(!e)return null;try{return JSON.parse(e)}catch{}const i=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!i)return null;try{return JSON.parse(i[0])}catch{return null}}const be=Object.freeze(["accuracy","fairness","resilience","convergence_speed"]),Te=Object.freeze(["none","exponential","linear","step"]),ht=Object.freeze(["z_score","iqr"]),Le=Object.freeze(["running","complete","applied","failed","cancelled"]),St=Object.freeze(["generic","task","review","vote"]);function z(s,e=0){return typeof s=="number"&&Number.isFinite(s)?s:e}function P(s){if(!s)return{noDb:!1,error:""};const e=Ee(s),i=/Database not available/i.test(e);return{noDb:i,error:i?"Database not available":""}}function zt(s,e=0){if(!s||typeof s!="object")return null;const i=s.did||"";return i?{key:i,did:i,score:z(s.score,0),observations:z(s.observations,0),decay:String(s.decay||"none"),weightTotal:z(s.weightTotal,0),_idx:e}:null}function $e(s){const e=B(s);return Array.isArray(e)?e.map(zt).filter(Boolean):[]}function Me(s,e=0){if(!s||typeof s!="object")return null;const i=s.did||"";return i?{key:`${i}-${e}`,did:i,score:z(s.score,0),reason:String(s.reason||""),zScore:typeof s.zScore=="number"?s.zScore:null,lower:typeof s.lower=="number"?s.lower:null,upper:typeof s.upper=="number"?s.upper:null}:null}function Ot(s){const e=B(s);if(!e||typeof e!="object"||Array.isArray(e))return{method:"",threshold:0,totalSamples:0,anomalies:[],summary:"",message:""};const i=Array.isArray(e.anomalies)?e.anomalies.map(Me).filter(Boolean):[];return{method:String(e.method||""),threshold:z(e.threshold,0),totalSamples:z(e.totalSamples,0),anomalies:i,summary:e.summary?String(e.summary):"",message:e.message?String(e.message):""}}function Ne(s,e=0){if(!s||typeof s!="object")return null;const i=s.runId||"";return i?{key:i,runId:i,objective:String(s.objective||""),iterations:z(s.iterations,0),paramSpace:s.paramSpace??null,bestParams:s.bestParams??null,bestScore:z(s.bestScore,0),status:String(s.status||"complete").toLowerCase(),createdAt:s.createdAt??null,completedAt:s.completedAt??null,analytics:s.analytics??null,errorMessage:s.errorMessage??"",_idx:e}:null}function jt(s){const e=B(s);return Array.isArray(e)?e.map(Ne).filter(Boolean):[]}function wt(s){const e=B(s);return!e||typeof e!="object"||Array.isArray(e)?null:Ne(e,0)}function At(s){const e=B(s);if(!e||typeof e!="object"||Array.isArray(e))return null;const i=e.reputationDistribution||{};return{analyticsId:String(e.analyticsId||""),runId:String(e.runId||""),reputationDistribution:{buckets:Array.isArray(i.buckets)?i.buckets.filter(v=>v&&typeof v=="object").map(v=>({label:String(v.label||""),count:z(v.count,0),min:typeof v.min=="number"?v.min:null,max:typeof v.max=="number"?v.max:null})):[],mean:typeof i.mean=="number"?i.mean:null,stdDev:typeof i.stdDev=="number"?i.stdDev:null},anomalies:e.anomalies&&typeof e.anomalies=="object"?{method:String(e.anomalies.method||""),totalSamples:z(e.anomalies.totalSamples,0),anomalies:Array.isArray(e.anomalies.anomalies)?e.anomalies.anomalies.map(Me).filter(Boolean):[],summary:e.anomalies.summary?String(e.anomalies.summary):"",message:e.anomalies.message?String(e.anomalies.message):""}:{method:"",totalSamples:0,anomalies:[],summary:"",message:""},recommendations:Array.isArray(e.recommendations)?e.recommendations.filter(v=>typeof v=="string"):[]}}const Ct={totalRuns:0,activeRuns:0,maxConcurrentOptimizations:0,byStatus:{},byObjective:{},observations:{totalObservations:0,totalDids:0},bestScoreEver:0};function Dt(s){const e=JSON.parse(JSON.stringify(Ct));for(const v of Le)e.byStatus[v]=0;for(const v of be)e.byObjective[v]=0;const i=B(s);if(!i||typeof i!="object"||Array.isArray(i))return e;if(e.totalRuns=z(i.totalRuns,0),e.activeRuns=z(i.activeRuns,0),e.maxConcurrentOptimizations=z(i.maxConcurrentOptimizations,0),e.bestScoreEver=z(i.bestScoreEver,0),i.byStatus&&typeof i.byStatus=="object")for(const[v,j]of Object.entries(i.byStatus))typeof j=="number"&&Number.isFinite(j)&&(e.byStatus[v]=j);if(i.byObjective&&typeof i.byObjective=="object")for(const[v,j]of Object.entries(i.byObjective))typeof j=="number"&&Number.isFinite(j)&&(e.byObjective[v]=j);return i.observations&&typeof i.observations=="object"&&(e.observations.totalObservations=z(i.observations.totalObservations,0),e.observations.totalDids=z(i.observations.totalDids,0)),e}function ve(s){if(s==null||s==="")return"—";const e=typeof s=="number"?new Date(s):new Date(String(s));return isNaN(e.getTime())?String(s):e.toLocaleString("zh-CN",{hour12:!1})}const Rt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ft={class:"page-title"},It={class:"page-sub"},Tt={class:"filter-bar"},$t={style:{color:"var(--text-secondary)","font-size":"12px"}},Et={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Lt={key:3,style:{color:"var(--text-secondary)"}},Mt={key:4,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Nt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Ut={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Pt={key:2,style:{color:"var(--text-secondary)"}},Bt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Jt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Vt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},qt={style:{color:"var(--text-muted)","font-size":"11px","margin-top":"4px"}},Kt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},Wt={style:{"padding-top":"8px"}},Yt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},Gt={key:1},Ht={style:{"font-family":"monospace","font-size":"12px",color:"var(--text-primary)"}},Qt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},Zt={key:0,style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"11px"}},Xt={key:0,style:{"padding-top":"8px"}},ea={class:"params-pre"},ta={style:{color:"#ff4d4f"}},aa={key:0,style:{"margin-top":"16px"}},oa={style:{color:"var(--text-primary)","font-size":"13px",margin:"0 0 10px"}},na={class:"bucket-label"},ra={key:0,style:{"margin-top":"8px",color:"var(--text-secondary)","font-size":"12px"}},la={key:0,style:{"margin-left":"12px"}},sa={__name:"Reputation",setup(s){const{t:e}=ut(),i=pt(),v=ct.PRESENTED_IMAGE_SIMPLE,j=h(!1),ee=h(!1),te=h(!1),ae=h(!1),oe=h(!1),ne=h([]),_e=h([]),O=h({totalRuns:0,activeRuns:0,maxConcurrentOptimizations:0,byStatus:{},byObjective:{},observations:{totalObservations:0,totalDids:0},bestScoreEver:0}),V=h({noDb:!1,error:""}),ge=h("scores"),q=h("none"),K=h(!1),W=h(!1),re=h(!1),Y=h(!1),g=ye({did:"",score:.8,kind:"generic",weight:1}),M=ye({objective:"accuracy",iterations:50}),F=ye({method:"z_score",threshold:2.5,decay:"none"}),b=h(null),w=h(null),A=h(null),Ue=Ie(()=>[{title:e("reputation.scoreColumns.rank"),key:"rank",width:"60px"},{title:e("reputation.scoreColumns.did"),key:"did"},{title:e("reputation.scoreColumns.score"),key:"score",width:"220px"},{title:e("reputation.scoreColumns.observations"),key:"observations",width:"100px"},{title:e("reputation.scoreColumns.weightTotal"),key:"weightTotal",width:"100px"}]),Pe=Ie(()=>[{title:e("reputation.runColumns.runId"),key:"runId",width:"140px"},{title:e("reputation.runColumns.objective"),key:"objective",width:"140px"},{title:e("reputation.runColumns.iterations"),key:"iterations",width:"80px"},{title:e("reputation.runColumns.bestScore"),key:"bestScore",width:"110px"},{title:e("reputation.runColumns.status"),key:"status",width:"100px"},{title:e("reputation.runColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("reputation.runColumns.action"),key:"action",width:"160px"}]);function xe(l){const r=`reputation.decay.${l}`,p=e(r);return p===r?l:p}function Be(l){const r=`reputation.kind.${l}`,p=e(r);return p===r?l:p}function G(l){const r=`reputation.objective.${l}`,p=e(r);return p===r?l:p}function le(l){return{accuracy:"blue",fairness:"green",resilience:"purple",convergence_speed:"orange"}[l]||"default"}function Je(l){return{accuracy:"#1677ff",fairness:"#52c41a",resilience:"#722ed1",convergence_speed:"#fa8c16"}[l]||"#888"}function Ve(l){const r=`reputation.objectiveDesc.${l}`,p=e(r);return p===r?"":p}function se(l){const r=`reputation.status.${l}`,p=e(r);return p===r?l:p}function ie(l){return{running:"processing",complete:"blue",applied:"green",failed:"red",cancelled:"default"}[l]||"default"}function qe(l){return{running:"#1677ff",complete:"#13c2c2",applied:"#52c41a",failed:"#ff4d4f",cancelled:"#888"}[l]||"#888"}function Ke(l){return l===0?"gold":l===1?"silver":l===2?"bronze":""}function ue(l){return l>=.8?"#52c41a":l>=.5?"#1677ff":l>=.3?"#faad14":"#ff4d4f"}function ke(l,r){return r?Math.round(l/r*100):0}function We(l){const r=w.value?.reputationDistribution.buckets.reduce((p,C)=>p+C.count,0)||0;return r?Math.round(l.count/r*100):0}function Ye(l){if(typeof l=="string")return l;try{return JSON.stringify(l,null,2)}catch{return String(l)}}async function J(){j.value=!0,V.value={noDb:!1,error:""};try{const[l,r,p]=await Promise.all([i.execute(`reputation list --decay ${q.value} --json`,1e4).catch(()=>({output:""})),i.execute("reputation runs --limit 50 --json",1e4).catch(()=>({output:""})),i.execute("reputation stats-v2 --json",8e3).catch(()=>({output:""}))]),C=[l,r,p].map(N=>P(N.output)).find(N=>N.noDb);C&&(V.value=C),ne.value=$e(l.output),_e.value=jt(r.output),O.value=Dt(p.output)}catch(l){k.error(e("reputation.messages.loadFailed",{err:l?.message||l}))}finally{j.value=!1}}async function Ge(){try{const{output:l}=await i.execute(`reputation list --decay ${q.value} --json`,1e4),r=P(l);if(r.noDb){V.value=r;return}ne.value=$e(l)}catch(l){k.error(e("reputation.messages.loadScoresFailed",{err:l?.message||l}))}}async function He(){if(!g.did.trim()){k.warning(e("reputation.messages.didRequired"));return}if(g.score<0||g.score>1){k.warning(e("reputation.messages.scoreRange"));return}ee.value=!0;try{const l=[`reputation observe "${g.did.trim().replace(/"/g,'\\"')}"`,String(g.score),`-k ${g.kind}`,`-w ${g.weight}`,"--json"],{output:r}=await i.execute(l.join(" "),1e4);if(P(r).noDb){k.error(e("reputation.messages.needInit"));return}if(!/"did"/.test(r)){k.error(e("reputation.messages.observeFailed",{err:r.slice(0,120)}));return}k.success(e("reputation.messages.observeOk")),K.value=!1,Se(),await J()}catch(l){k.error(e("reputation.messages.observeFailed",{err:l?.message||l}))}finally{ee.value=!1}}async function Qe(){te.value=!0;try{const l=["reputation optimize",`-o ${M.objective}`,`-i ${M.iterations}`,"--json"],{output:r}=await i.execute(l.join(" "),6e4);if(P(r).noDb){k.error(e("reputation.messages.needInit"));return}const C=wt(r);if(!C){k.error(e("reputation.messages.optimizeFailed",{err:r.slice(0,120)}));return}W.value=!1,k.success(e("reputation.messages.optimizeOk",{score:C.bestScore.toFixed(4)})),await J(),b.value=C,Y.value=!0,await he()}catch(l){k.error(e("reputation.messages.optimizeFailed",{err:l?.message||l}))}finally{te.value=!1}}async function Ze(l){gt.confirm({title:e("reputation.applyConfirm.title"),content:e("reputation.applyConfirm.content",{runId:l.runId.slice(0,12)}),okText:e("reputation.applyConfirm.ok"),cancelText:e("reputation.applyConfirm.cancel"),onOk:async()=>{try{const{output:r}=await i.execute(`reputation apply ${l.runId}`,8e3);if(P(r).noDb){k.error(e("reputation.messages.needInit"));return}if(/Failed|Error/i.test(r)&&!/Applied/i.test(r)){k.error(e("reputation.messages.applyFailed",{err:r.slice(0,120)}));return}k.success(e("reputation.messages.applyOk")),await J()}catch(r){k.error(e("reputation.messages.applyFailed",{err:r?.message||r}))}}})}async function Xe(l){b.value=l,w.value=null,Y.value=!0,await he()}async function he(){if(b.value){oe.value=!0;try{const{output:l}=await i.execute(`reputation analytics ${b.value.runId} --json`,8e3);if(P(l).noDb)return;w.value=At(l)}catch{}finally{oe.value=!1}}}function et(){A.value=null,re.value=!0}async function tt(){ae.value=!0;try{const l=["reputation anomalies",`-m ${F.method}`,`-t ${F.threshold}`,`-d ${F.decay}`,"--json"],{output:r}=await i.execute(l.join(" "),1e4);if(P(r).noDb){k.error(e("reputation.messages.needInit"));return}A.value=Ot(r)}catch(l){k.error(e("reputation.messages.detectFailed",{err:l?.message||l}))}finally{ae.value=!1}}function Se(){g.did="",g.score=.8,g.kind="generic",g.weight=1}return xt(J),(l,r)=>{const p=d("a-button"),C=d("a-space"),N=d("a-alert"),$=d("a-statistic"),I=d("a-card"),D=d("a-col"),ce=d("a-row"),ze=d("a-radio-button"),Oe=d("a-radio-group"),H=d("a-progress"),je=d("a-table"),pe=d("a-tab-pane"),U=d("a-tag"),at=d("a-tabs"),ot=d("a-input"),R=d("a-form-item"),Q=d("a-input-number"),de=d("a-select-option"),me=d("a-select"),fe=d("a-form"),Z=d("a-modal"),nt=d("a-divider"),rt=d("a-empty"),we=d("a-list-item"),Ae=d("a-list"),E=d("a-descriptions-item"),lt=d("a-descriptions"),st=d("a-spin");return c(),m("div",null,[_("div",Rt,[_("div",null,[_("h2",Ft,u(n(e)("reputation.title")),1),_("p",It,u(n(e)("reputation.subtitle")),1)]),t(C,null,{default:o(()=>[t(p,{loading:j.value,onClick:J},{icon:o(()=>[t(n(dt))]),default:o(()=>[f(" "+u(n(e)("reputation.refresh")),1)]),_:1},8,["loading"]),t(p,{onClick:et},{icon:o(()=>[t(n(Ce))]),default:o(()=>[f(" "+u(n(e)("reputation.actions.anomalies")),1)]),_:1}),t(p,{type:"primary",onClick:r[0]||(r[0]=a=>W.value=!0)},{icon:o(()=>[t(n(mt))]),default:o(()=>[f(" "+u(n(e)("reputation.actions.optimize")),1)]),_:1})]),_:1})]),V.value.noDb?(c(),S(N,{key:0,type:"info","show-icon":"",message:n(e)("reputation.noDb.message"),description:n(e)("reputation.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):y("",!0),t(ce,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[t(D,{xs:12,sm:8,lg:5},{default:o(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t($,{title:n(e)("reputation.stats.trackedDids"),value:O.value.observations.totalDids,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[t(n(De))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(D,{xs:12,sm:8,lg:5},{default:o(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t($,{title:n(e)("reputation.stats.totalObservations"),value:O.value.observations.totalObservations,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[t(n(ft))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(D,{xs:12,sm:8,lg:5},{default:o(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t($,{title:n(e)("reputation.stats.optimizationRuns"),value:O.value.totalRuns,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:o(()=>[t(n(Re))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(D,{xs:12,sm:8,lg:5},{default:o(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t($,{title:n(e)("reputation.stats.active"),value:O.value.activeRuns,"value-style":{color:O.value.activeRuns>0?"#1677ff":"#888",fontSize:"20px"},suffix:`/ ${O.value.maxConcurrentOptimizations}`},{prefix:o(()=>[t(n(yt))]),_:1},8,["title","value","value-style","suffix"])]),_:1})]),_:1}),t(D,{xs:24,sm:8,lg:4},{default:o(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t($,{title:n(e)("reputation.stats.bestEver"),value:O.value.bestScoreEver,precision:3,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[t(n(vt))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),t(at,{activeKey:ge.value,"onUpdate:activeKey":r[3]||(r[3]=a=>ge.value=a),class:"reputation-tabs"},{default:o(()=>[t(pe,{key:"scores",tab:n(e)("reputation.tabs.scores")},{default:o(()=>[_("div",Tt,[_("span",$t,u(n(e)("reputation.filter.decayLabel")),1),t(Oe,{value:q.value,"onUpdate:value":r[1]||(r[1]=a=>q.value=a),size:"small","button-style":"solid",onChange:Ge},{default:o(()=>[(c(!0),m(T,null,L(n(Te),a=>(c(),S(ze,{key:a,value:a},{default:o(()=>[f(u(xe(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),t(p,{size:"small",onClick:r[2]||(r[2]=a=>K.value=!0)},{icon:o(()=>[t(n(bt))]),default:o(()=>[f(" "+u(n(e)("reputation.filter.addObservation")),1)]),_:1})]),t(je,{columns:Ue.value,"data-source":ne.value,pagination:{pageSize:20,showTotal:a=>n(e)("reputation.totals.dids",{count:a})},size:"small",loading:j.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:x,index:X})=>[a.key==="rank"?(c(),m("span",{key:0,class:kt(["rank-pill",Ke(X)])},u(X+1),3)):y("",!0),a.key==="did"?(c(),m("span",Et,u(x.did),1)):y("",!0),a.key==="score"?(c(),S(H,{key:2,percent:Math.round(x.score*100),"stroke-color":ue(x.score),size:"small",format:()=>x.score.toFixed(4)},null,8,["percent","stroke-color","format"])):y("",!0),a.key==="observations"?(c(),m("span",Lt,u(x.observations),1)):y("",!0),a.key==="weightTotal"?(c(),m("span",Mt,u(x.weightTotal.toFixed(2)),1)):y("",!0)]),emptyText:o(()=>[_("div",Nt,[t(n(De),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+u(n(e)("reputation.empty.scores")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(pe,{key:"runs",tab:n(e)("reputation.tabs.runs")},{default:o(()=>[t(je,{columns:Pe.value,"data-source":_e.value,pagination:{pageSize:20,showTotal:a=>n(e)("reputation.totals.rows",{count:a})},size:"small",loading:j.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:x})=>[a.key==="runId"?(c(),m("span",Ut,u(x.runId.slice(0,12)),1)):y("",!0),a.key==="objective"?(c(),S(U,{key:1,color:le(x.objective),style:{"font-family":"monospace"}},{default:o(()=>[f(u(G(x.objective)),1)]),_:2},1032,["color"])):y("",!0),a.key==="iterations"?(c(),m("span",Pt,u(x.iterations),1)):y("",!0),a.key==="bestScore"?(c(),m("span",{key:3,style:Fe({color:ue(x.bestScore),fontWeight:500,fontFamily:"monospace"})},u(x.bestScore.toFixed(4)),5)):y("",!0),a.key==="status"?(c(),S(U,{key:4,color:ie(x.status)},{default:o(()=>[f(u(se(x.status)),1)]),_:2},1032,["color"])):y("",!0),a.key==="createdAt"?(c(),m("span",Bt,u(n(ve)(x.createdAt)),1)):y("",!0),a.key==="action"?(c(),m(T,{key:6},[t(p,{size:"small",type:"link",onClick:X=>Xe(x)},{default:o(()=>[f(u(n(e)("reputation.rowActions.analyze")),1)]),_:1},8,["onClick"]),x.status==="complete"?(c(),S(p,{key:0,size:"small",type:"link",style:{color:"#52c41a"},onClick:X=>Ze(x)},{default:o(()=>[f(u(n(e)("reputation.rowActions.apply")),1)]),_:1},8,["onClick"])):y("",!0)],64)):y("",!0)]),emptyText:o(()=>[_("div",Jt,[t(n(Re),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+u(n(e)("reputation.empty.runs")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(pe,{key:"breakdown",tab:n(e)("reputation.tabs.breakdown")},{default:o(()=>[t(ce,{gutter:[16,16]},{default:o(()=>[t(D,{xs:24,lg:12},{default:o(()=>[t(I,{title:n(e)("reputation.breakdown.byStatus"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[(c(!0),m(T,null,L(n(Le),a=>(c(),m("div",{key:a,class:"bd-row"},[t(U,{color:ie(a),style:{"min-width":"80px","text-align":"center"}},{default:o(()=>[f(u(se(a)),1)]),_:2},1032,["color"]),t(H,{percent:ke(O.value.byStatus[a]||0,O.value.totalRuns),"stroke-color":qe(a),format:()=>`${O.value.byStatus[a]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),t(D,{xs:24,lg:12},{default:o(()=>[t(I,{title:n(e)("reputation.breakdown.byObjective"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[(c(!0),m(T,null,L(n(be),a=>(c(),m("div",{key:a,class:"bd-row"},[t(U,{color:le(a),style:{"min-width":"100px","text-align":"center","font-family":"monospace"}},{default:o(()=>[f(u(G(a)),1)]),_:2},1032,["color"]),t(H,{percent:ke(O.value.byObjective[a]||0,O.value.totalRuns),"stroke-color":Je(a),format:()=>`${O.value.byObjective[a]||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"]),t(Z,{open:K.value,"onUpdate:open":r[8]||(r[8]=a=>K.value=a),title:n(e)("reputation.observe.title"),"confirm-loading":ee.value,width:540,"ok-text":n(e)("reputation.observe.ok"),"cancel-text":n(e)("common.cancel"),onOk:He,onCancel:Se},{default:o(()=>[t(fe,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[t(R,{label:n(e)("reputation.observe.didLabel"),required:""},{default:o(()=>[t(ot,{value:g.did,"onUpdate:value":r[4]||(r[4]=a=>g.did=a),placeholder:n(e)("reputation.observe.didPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(R,{label:n(e)("reputation.observe.scoreLabel"),required:""},{default:o(()=>[t(Q,{value:g.score,"onUpdate:value":r[5]||(r[5]=a=>g.score=a),min:0,max:1,step:.05,style:{width:"160px"}},null,8,["value"]),_("span",Vt,u(n(e)("reputation.observe.scoreRange")),1)]),_:1},8,["label"]),t(R,{label:n(e)("reputation.observe.kindLabel")},{default:o(()=>[t(me,{value:g.kind,"onUpdate:value":r[6]||(r[6]=a=>g.kind=a)},{default:o(()=>[(c(!0),m(T,null,L(n(St),a=>(c(),S(de,{key:a,value:a},{default:o(()=>[f(u(Be(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(R,{label:n(e)("reputation.observe.weightLabel")},{default:o(()=>[t(Q,{value:g.weight,"onUpdate:value":r[7]||(r[7]=a=>g.weight=a),min:.1,step:.1,style:{width:"120px"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(Z,{open:W.value,"onUpdate:open":r[11]||(r[11]=a=>W.value=a),title:n(e)("reputation.optimize.title"),"confirm-loading":te.value,width:540,"ok-text":n(e)("reputation.optimize.ok"),"cancel-text":n(e)("common.cancel"),onOk:Qe},{default:o(()=>[t(fe,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[t(R,{label:n(e)("reputation.optimize.objectiveLabel"),required:""},{default:o(()=>[t(me,{value:M.objective,"onUpdate:value":r[9]||(r[9]=a=>M.objective=a)},{default:o(()=>[(c(!0),m(T,null,L(n(be),a=>(c(),S(de,{key:a,value:a},{default:o(()=>[f(u(G(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),_("div",qt,u(Ve(M.objective)),1)]),_:1},8,["label"]),t(R,{label:n(e)("reputation.optimize.iterationsLabel")},{default:o(()=>[t(Q,{value:M.iterations,"onUpdate:value":r[10]||(r[10]=a=>M.iterations=a),min:1,max:1e3,step:10,style:{width:"160px"}},null,8,["value"]),_("span",Kt,u(n(e)("reputation.optimize.iterationsRange")),1)]),_:1},8,["label"])]),_:1}),t(N,{type:"info","show-icon":"",message:n(e)("reputation.optimize.syncMessage"),description:n(e)("reputation.optimize.syncDescription"),style:{"margin-top":"12px"}},null,8,["message","description"])]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(Z,{open:re.value,"onUpdate:open":r[15]||(r[15]=a=>re.value=a),title:n(e)("reputation.anomaly.title"),width:640,footer:null},{default:o(()=>[_("div",Wt,[t(fe,{"label-col":{span:5},"wrapper-col":{span:19}},{default:o(()=>[t(R,{label:n(e)("reputation.anomaly.methodLabel")},{default:o(()=>[t(Oe,{value:F.method,"onUpdate:value":r[12]||(r[12]=a=>F.method=a),"button-style":"solid"},{default:o(()=>[(c(!0),m(T,null,L(n(ht),a=>(c(),S(ze,{key:a,value:a},{default:o(()=>[f(u(a==="z_score"?n(e)("reputation.anomaly.zScoreLabel"):n(e)("reputation.anomaly.iqrLabel")),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(R,{label:n(e)("reputation.anomaly.thresholdLabel")},{default:o(()=>[t(Q,{value:F.threshold,"onUpdate:value":r[13]||(r[13]=a=>F.threshold=a),min:.5,step:.1,style:{width:"120px"}},null,8,["value"]),_("span",Yt,u(n(e)("reputation.anomaly.thresholdHint")),1)]),_:1},8,["label"]),t(R,{label:n(e)("reputation.anomaly.decayLabel")},{default:o(()=>[t(me,{value:F.decay,"onUpdate:value":r[14]||(r[14]=a=>F.decay=a),style:{width:"200px"}},{default:o(()=>[(c(!0),m(T,null,L(n(Te),a=>(c(),S(de,{key:a,value:a},{default:o(()=>[f(u(xe(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(R,{"wrapper-col":{offset:5,span:19}},{default:o(()=>[t(p,{type:"primary",loading:ae.value,onClick:tt},{icon:o(()=>[t(n(Ce))]),default:o(()=>[f(" "+u(n(e)("reputation.anomaly.start")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),t(nt),A.value?(c(),m("div",Gt,[t(ce,{gutter:12,style:{"margin-bottom":"12px"}},{default:o(()=>[t(D,{span:8},{default:o(()=>[t($,{title:n(e)("reputation.anomaly.totalSamples"),value:A.value.totalSamples,"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1}),t(D,{span:8},{default:o(()=>[t($,{title:n(e)("reputation.anomaly.threshold"),value:A.value.threshold,precision:2,"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1}),t(D,{span:8},{default:o(()=>[t($,{title:n(e)("reputation.anomaly.anomalies"),value:A.value.anomalies.length,"value-style":{color:A.value.anomalies.length>0?"#ff4d4f":"#52c41a",fontSize:"16px"}},null,8,["title","value","value-style"])]),_:1})]),_:1}),A.value.message?(c(),S(N,{key:0,message:A.value.message,type:"warning","show-icon":"",style:{"margin-bottom":"12px"}},null,8,["message"])):y("",!0),A.value.anomalies.length?(c(),S(Ae,{key:1,size:"small","data-source":A.value.anomalies},{renderItem:o(({item:a})=>[t(we,null,{default:o(()=>[_("span",Ht,u(a.did),1),t(U,{color:"red",style:{"margin-left":"8px"}},{default:o(()=>[f(u(n(e)("reputation.anomaly.scoreTag",{score:a.score.toFixed(4)})),1)]),_:2},1024),_("span",Qt,u(a.reason),1),a.zScore!==null?(c(),m("span",Zt,u(n(e)("reputation.anomaly.zNote",{value:a.zScore.toFixed(2)})),1)):y("",!0)]),_:2},1024)]),_:1},8,["data-source"])):y("",!0)])):(c(),S(rt,{key:0,description:n(e)("reputation.anomaly.notDetected"),image:n(v)},null,8,["description","image"]))])]),_:1},8,["open","title"]),t(Z,{open:Y.value,"onUpdate:open":r[16]||(r[16]=a=>Y.value=a),title:n(e)("reputation.analytics.title",{runId:b.value?.runId?.slice(0,12)||""}),width:780,footer:null},{default:o(()=>[b.value?(c(),m("div",Xt,[t(lt,{column:2,size:"small",bordered:""},{default:o(()=>[t(E,{label:n(e)("reputation.analytics.objective")},{default:o(()=>[t(U,{color:le(b.value.objective)},{default:o(()=>[f(u(G(b.value.objective)),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(E,{label:n(e)("reputation.analytics.status")},{default:o(()=>[t(U,{color:ie(b.value.status)},{default:o(()=>[f(u(se(b.value.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(E,{label:n(e)("reputation.analytics.iterations")},{default:o(()=>[f(u(b.value.iterations),1)]),_:1},8,["label"]),t(E,{label:n(e)("reputation.analytics.bestScore")},{default:o(()=>[_("span",{style:Fe({color:ue(b.value.bestScore),fontWeight:500,fontFamily:"monospace"})},u(b.value.bestScore.toFixed(4)),5)]),_:1},8,["label"]),t(E,{label:n(e)("reputation.analytics.createdAt")},{default:o(()=>[f(u(n(ve)(b.value.createdAt)),1)]),_:1},8,["label"]),b.value.completedAt?(c(),S(E,{key:0,label:n(e)("reputation.analytics.completedAt")},{default:o(()=>[f(u(n(ve)(b.value.completedAt)),1)]),_:1},8,["label"])):y("",!0),b.value.bestParams?(c(),S(E,{key:1,label:n(e)("reputation.analytics.bestParams"),span:2},{default:o(()=>[_("pre",ea,u(Ye(b.value.bestParams)),1)]),_:1},8,["label"])):y("",!0),b.value.errorMessage?(c(),S(E,{key:2,label:n(e)("reputation.analytics.errorMessage"),span:2},{default:o(()=>[_("span",ta,u(b.value.errorMessage),1)]),_:1},8,["label"])):y("",!0)]),_:1}),t(st,{spinning:oe.value},{default:o(()=>[w.value?(c(),m("div",aa,[_("h4",oa,u(n(e)("reputation.analytics.distributionTitle")),1),t(I,{size:"small",style:{"margin-bottom":"12px"}},{default:o(()=>[(c(!0),m(T,null,L(w.value.reputationDistribution.buckets,a=>(c(),m("div",{key:a.label,class:"bucket-row"},[_("span",na,u(a.label),1),t(H,{percent:We(a),"stroke-color":a.count>0?"#1677ff":"#d9d9d9",format:()=>`${a.count}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128)),w.value.reputationDistribution.mean!==null?(c(),m("div",ra,[f(u(n(e)("reputation.analytics.mean",{value:w.value.reputationDistribution.mean.toFixed(4)}))+" ",1),w.value.reputationDistribution.stdDev!==null?(c(),m("span",la,u(n(e)("reputation.analytics.stdDev",{value:w.value.reputationDistribution.stdDev.toFixed(4)})),1)):y("",!0)])):y("",!0)]),_:1}),w.value.recommendations.length?(c(),S(I,{key:0,title:n(e)("reputation.analytics.recommendations"),size:"small"},{default:o(()=>[t(Ae,{size:"small","data-source":w.value.recommendations},{renderItem:o(({item:a})=>[t(we,null,{default:o(()=>[t(n(_t),{style:{color:"#faad14","margin-right":"8px"}}),f(" "+u(a),1)]),_:2},1024)]),_:1},8,["data-source"])]),_:1},8,["title"])):y("",!0)])):y("",!0)]),_:1},8,["spinning"])])):y("",!0)]),_:1},8,["open","title"])])}}},Ta=it(sa,[["__scopeId","data-v-9561b6cc"]]);export{Ta as default};
@@ -1 +0,0 @@
1
- import{r as b,o as Fe,M as f,R as _,P as c,u as r,c as a,N as t,Q as S,S as C,K as p,L as i,O as m,a1 as qe,F as z,_ as O,a as je,f as U}from"./vendor-B6ToihkA.js";import{_ as Ke,a as Pe,M as Be,c as I}from"./index-CyqU4Tck.js";import{u as Ue}from"./ws-D_5-FRIb.js";import{s as me}from"./community-parser-CO25nZFt.js";import{R as He,q as Je,h as Qe,p as fe,l as Ve,aL as Ge,k as We,a3 as Xe,am as Ye}from"./icons-DvZE-RKs.js";function re(l){const e=me(l);if(!e)return null;try{return JSON.parse(e)}catch{}const u=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!u)return null;try{return JSON.parse(u[0])}catch{return null}}const Ze=Object.freeze(["bm25","vector","hybrid"]);function et(l,e=0){return typeof l=="number"&&Number.isFinite(l)?l:e}function tt(l){if(Array.isArray(l))return l.filter(e=>typeof e=="string");if(typeof l!="string")return[];try{const e=JSON.parse(l);if(Array.isArray(e))return e.filter(u=>typeof u=="string")}catch{}return[]}function ae(l){if(!l)return{noDb:!1,error:""};const e=me(l),u=/Database not available/i.test(e);return{noDb:u,error:u?"Database not available":""}}function at(l,e=0){if(!l||typeof l!="object")return null;const u=l.id||"";return u?{key:u,id:u,score:et(l.score,0),title:String(l.title||""),category:String(l.category||"general"),createdAt:l.created_at??l.createdAt??"",snippet:String(l.snippet||""),_idx:e}:null}function ot(l){const e=re(l);return Array.isArray(e)?e.map(at).filter(Boolean):[]}function ge(l,e=0){if(!l||typeof l!="object")return null;const u=l.id||"";return u?{key:u,id:u,title:String(l.title||""),content:l.content??"",tags:tt(l.tags),category:String(l.category||"general"),createdAt:l.created_at??l.createdAt??"",updatedAt:l.updated_at??l.updatedAt??"",_idx:e}:null}function rt(l){const e=re(l);return Array.isArray(e)?e.map(ge).filter(Boolean):[]}function nt(l){const e=re(l);return!e||typeof e!="object"||Array.isArray(e)?null:ge(e,0)}function lt(l){if(!Array.isArray(l)||l.length===0)return{total:0,categories:[],tags:[]};const e=new Map,u=new Map;for(const g of l){e.set(g.category,(e.get(g.category)||0)+1);for(const v of g.tags)u.set(v,(u.get(v)||0)+1)}return{total:l.length,categories:[...e.entries()].map(([g,v])=>({name:g,count:v})).sort((g,v)=>v.count-g.count),tags:[...u.entries()].map(([g,v])=>({name:g,count:v})).sort((g,v)=>v.count-g.count)}}function H(l){if(l==null||l==="")return"—";const e=String(l),u=e.includes(" ")&&!e.includes("T")?e.replace(" ","T")+"Z":e,g=new Date(u);return isNaN(g.getTime())?e:g.toLocaleString("zh-CN",{hour12:!1})}const st={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ct={class:"page-title"},it={class:"page-sub"},ut={key:0,class:"recent-row"},dt={class:"recent-label"},pt={class:"score-block"},ft={class:"result-title"},_t={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},mt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"11px"}},gt={key:0,class:"result-snippet"},yt=["innerHTML"],vt={class:"filter-bar"},ht={key:0,class:"tag-row"},bt={class:"tag-row-label"},xt={class:"tag-count"},kt={style:{color:"var(--text-primary)","font-weight":"500"}},St={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Ct={key:0,style:{color:"var(--text-muted)","font-size":"11px"}},At={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},zt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Nt={key:0,style:{padding:"40px","text-align":"center"}},Tt={key:1,style:{"padding-top":"8px"}},wt={style:{"font-family":"monospace","font-size":"12px"}},Mt={key:0,style:{color:"var(--text-muted)"}},Et={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},Dt={key:0,class:"note-content"},Ot=["innerHTML"],oe="cc.web-panel.search.recent",_e=8,It={__name:"Search",setup(l){const{t:e}=Pe(),u=Ue(),g=Be.PRESENTED_IMAGE_SIMPLE,v=b(!1),J=b(!1),Q=b(!1),V=b(!1),K=b([]),N=b([]),L=b({noDb:!1,error:""}),x=je({query:"",mode:"hybrid",topK:10}),$=b(""),M=b(xe()),G=b("results"),R=b(""),T=b(""),W=b(!1),h=b(null),E=U(()=>lt(K.value)),ne=U(()=>N.value.length?Math.max(...N.value.map(n=>n.score)):0),ye=U(()=>[{title:e("search.noteColumns.title"),key:"title"},{title:e("search.noteColumns.category"),key:"category",width:"120px"},{title:e("search.noteColumns.tags"),key:"tags",width:"240px"},{title:e("search.noteColumns.createdAt"),key:"createdAt",width:"180px"},{title:e("search.noteColumns.action"),key:"action",width:"180px"}]),ve=U(()=>{let n=K.value;if(R.value&&(n=n.filter(s=>s.category===R.value)),T.value.trim()){const s=T.value.trim().toLowerCase();n=n.filter(d=>d.tags.some(y=>y.toLowerCase().includes(s)))}return n});function he(n){const s=`search.mode.${n}`,d=e(s);return d===s?n:d}function X(n){const s=["blue","green","purple","orange","cyan","magenta","gold","volcano"];let d=0;for(let y=0;y<(n||"").length;y++)d=d*31+n.charCodeAt(y)>>>0;return s[d%s.length]}function le(n){return n>=.7?"#52c41a":n>=.5?"#1677ff":n>=.3?"#faad14":"#ff4d4f"}function Y(n){return String(n).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function se(n,s){if(!s||!n)return Y(n);const d=s.split(/\s+/).filter(Boolean);let y=Y(n);for(const Z of d){const P=new RegExp(`(${Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");y=y.replace(P,"<mark>$1</mark>")}return y}function be(n,s){return s?se(n,s):Y(n)}function xe(){try{const n=localStorage.getItem(oe);if(n){const s=JSON.parse(n);if(Array.isArray(s))return s.filter(d=>typeof d=="string").slice(0,_e)}}catch{}return[]}function ke(n){const s=n.trim();if(!s)return;const d=[s,...M.value.filter(y=>y!==s)];M.value=d.slice(0,_e);try{localStorage.setItem(oe,JSON.stringify(M.value))}catch{}}function Se(){M.value=[];try{localStorage.removeItem(oe)}catch{}}function Ce(n){x.query=n,F()}async function ce(){v.value=!0,L.value={noDb:!1,error:""};try{const{output:n}=await u.execute("note list -n 500 --json",12e3).catch(()=>({output:""})),s=ae(n);if(s.noDb){L.value=s,K.value=[];return}K.value=rt(n)}catch(n){I.error(e("search.messages.loadIndexFailed",{err:n?.message||n}))}finally{v.value=!1}}async function F(){const n=x.query.trim();if(!n){I.warning(e("search.messages.queryRequired"));return}Q.value=!0,L.value={noDb:!1,error:""};try{const s=[`search ${Ae(n)}`,`--mode ${x.mode}`,`--top-k ${x.topK||10}`,"--json"],{output:d}=await u.execute(s.join(" "),15e3),y=ae(d);if(y.noDb){L.value=y,N.value=[],V.value=!0,$.value=n;return}N.value=ot(d),$.value=n,V.value=!0,ke(n),G.value="results"}catch(s){I.error(e("search.messages.searchFailed",{err:s?.message||s}))}finally{Q.value=!1}}function Ae(n){return`"${String(n).replace(/"/g,'\\"')}"`}function ze(n){x.query=n.title,x.mode="vector",F()}async function ie(n){W.value=!0,J.value=!0,h.value=null;try{const{output:s}=await u.execute(`note show ${n} --json`,8e3);if(ae(s).noDb){I.error(e("search.messages.needInit"));return}h.value=nt(s),h.value||I.error(e("search.messages.noteLoadFailed"))}catch(s){I.error(e("search.messages.loadFailed",{err:s?.message||s}))}finally{J.value=!1}}return Fe(ce),(n,s)=>{const d=p("a-button"),y=p("a-space"),Z=p("a-alert"),P=p("a-input"),A=p("a-col"),ee=p("a-radio-button"),ue=p("a-radio-group"),Ne=p("a-input-number"),de=p("a-row"),Te=p("a-form"),w=p("a-tag"),D=p("a-card"),q=p("a-statistic"),te=p("a-empty"),we=p("a-progress"),Me=p("a-list-item-meta"),Ee=p("a-list-item"),De=p("a-list"),pe=p("a-tab-pane"),Oe=p("a-table"),Ie=p("a-tabs"),Le=p("a-spin"),j=p("a-descriptions-item"),$e=p("a-descriptions"),Re=p("a-modal");return i(),f("div",null,[_("div",st,[_("div",null,[_("h2",ct,c(r(e)("search.title")),1),_("p",it,c(r(e)("search.subtitle")),1)]),a(y,null,{default:t(()=>[a(d,{loading:v.value,onClick:ce},{icon:t(()=>[a(r(He))]),default:t(()=>[m(" "+c(r(e)("search.refreshIndex")),1)]),_:1},8,["loading"])]),_:1})]),L.value.noDb?(i(),S(Z,{key:0,type:"info","show-icon":"",message:r(e)("search.noDb.message"),description:r(e)("search.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):C("",!0),a(D,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},"body-style":{padding:"14px 16px"}},{default:t(()=>[a(Te,{layout:"vertical",model:x,onSubmit:qe(F,["prevent"])},{default:t(()=>[a(de,{gutter:12},{default:t(()=>[a(A,{span:14},{default:t(()=>[a(P,{value:x.query,"onUpdate:value":s[0]||(s[0]=o=>x.query=o),size:"large",placeholder:r(e)("search.form.queryPlaceholder"),"allow-clear":"",onPressEnter:F},{prefix:t(()=>[a(r(Je))]),_:1},8,["value","placeholder"])]),_:1}),a(A,{span:4},{default:t(()=>[a(ue,{value:x.mode,"onUpdate:value":s[1]||(s[1]=o=>x.mode=o),size:"large","button-style":"solid"},{default:t(()=>[(i(!0),f(z,null,O(r(Ze),o=>(i(),S(ee,{key:o,value:o},{default:t(()=>[m(c(he(o)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),a(A,{span:3},{default:t(()=>[a(Ne,{value:x.topK,"onUpdate:value":s[2]||(s[2]=o=>x.topK=o),min:1,max:50,placeholder:r(e)("search.form.topKPlaceholder"),size:"large",style:{width:"100%"}},null,8,["value","placeholder"])]),_:1}),a(A,{span:3},{default:t(()=>[a(d,{type:"primary",size:"large",loading:Q.value,block:"",onClick:F},{icon:t(()=>[a(r(Qe))]),default:t(()=>[m(" "+c(r(e)("search.form.submit")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model"]),M.value.length?(i(),f("div",ut,[_("span",dt,c(r(e)("search.recent.label")),1),(i(!0),f(z,null,O(M.value,o=>(i(),S(w,{key:o,color:"blue",class:"recent-chip",onClick:k=>Ce(o)},{default:t(()=>[m(c(o),1)]),_:2},1032,["onClick"]))),128)),a(d,{size:"small",type:"link",danger:"",onClick:Se},{default:t(()=>[m(c(r(e)("search.recent.clear")),1)]),_:1})])):C("",!0)]),_:1}),a(de,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[a(A,{xs:12,sm:8,lg:5},{default:t(()=>[a(D,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(q,{title:r(e)("search.stats.indexedNotes"),value:E.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[a(r(fe))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(A,{xs:12,sm:8,lg:5},{default:t(()=>[a(D,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(q,{title:r(e)("search.stats.categories"),value:E.value.categories.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:t(()=>[a(r(Ve))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(A,{xs:12,sm:8,lg:5},{default:t(()=>[a(D,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(q,{title:r(e)("search.stats.tags"),value:E.value.tags.length,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:t(()=>[a(r(Ge))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(A,{xs:12,sm:8,lg:5},{default:t(()=>[a(D,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(q,{title:r(e)("search.stats.results"),value:N.value.length,"value-style":{color:N.value.length>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:t(()=>[a(r(We))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(A,{xs:24,sm:8,lg:4},{default:t(()=>[a(D,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(q,{title:r(e)("search.stats.topScore"),value:ne.value,precision:3,"value-style":{color:le(ne.value),fontSize:"20px"}},{prefix:t(()=>[a(r(Xe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),a(Ie,{activeKey:G.value,"onUpdate:activeKey":s[5]||(s[5]=o=>G.value=o),class:"search-tabs"},{default:t(()=>[a(pe,{key:"results",tab:r(e)("search.tabs.results")},{default:t(()=>[V.value?N.value.length?(i(),S(De,{key:2,"data-source":N.value,"item-layout":"vertical",size:"large"},{renderItem:t(({item:o})=>[a(Ee,{class:"result-row"},{actions:t(()=>[a(d,{type:"link",size:"small",onClick:k=>ie(o.id)},{icon:t(()=>[a(r(Ye))]),default:t(()=>[m(" "+c(r(e)("search.results.viewFull")),1)]),_:1},8,["onClick"])]),extra:t(()=>[_("div",pt,[a(we,{type:"circle",percent:Math.round(Math.min(1,o.score)*100),"stroke-color":le(o.score),format:()=>o.score.toFixed(3),width:60},null,8,["percent","stroke-color","format"])])]),default:t(()=>[a(Me,null,{title:t(()=>[_("span",ft,c(o.title||r(e)("search.results.noTitle")),1),a(w,{color:X(o.category),style:{"margin-left":"8px"}},{default:t(()=>[m(c(o.category),1)]),_:2},1032,["color"])]),description:t(()=>[_("span",_t,c(o.id.slice(0,16)),1),_("span",mt,c(r(H)(o.createdAt)),1)]),_:2},1024),o.snippet?(i(),f("div",gt,[_("span",{innerHTML:se(o.snippet,$.value)},null,8,yt)])):C("",!0)]),_:2},1024)]),_:1},8,["data-source"])):(i(),S(te,{key:1,description:r(e)("search.results.noMatch",{query:$.value}),image:r(g),style:{padding:"40px 0"}},null,8,["description","image"])):(i(),S(te,{key:0,description:r(e)("search.results.promptEmpty"),image:r(g),style:{padding:"40px 0"}},null,8,["description","image"]))]),_:1},8,["tab"]),a(pe,{key:"index",tab:r(e)("search.tabs.index")},{default:t(()=>[_("div",vt,[a(ue,{value:R.value,"onUpdate:value":s[3]||(s[3]=o=>R.value=o),size:"small","button-style":"solid"},{default:t(()=>[a(ee,{value:""},{default:t(()=>[m(c(r(e)("search.index.allCategories")),1)]),_:1}),(i(!0),f(z,null,O(E.value.categories.slice(0,6),o=>(i(),S(ee,{key:o.name,value:o.name},{default:t(()=>[m(c(o.name)+" ("+c(o.count)+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(P,{value:T.value,"onUpdate:value":s[4]||(s[4]=o=>T.value=o),placeholder:r(e)("search.index.tagFilterPlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"])]),E.value.tags.length?(i(),f("div",ht,[_("span",bt,c(r(e)("search.index.topTagsLabel")),1),(i(!0),f(z,null,O(E.value.tags.slice(0,12),o=>(i(),S(w,{key:o.name,color:T.value===o.name?"blue":"default",class:"tag-chip",onClick:k=>T.value=T.value===o.name?"":o.name},{default:t(()=>[m(c(o.name)+" ",1),_("span",xt,c(o.count),1)]),_:2},1032,["color","onClick"]))),128))])):C("",!0),a(Oe,{columns:ye.value,"data-source":ve.value,pagination:{pageSize:20,showTotal:o=>r(e)("search.totals.rows",{count:o})},size:"small",loading:v.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:o,record:k})=>[o.key==="title"?(i(),f(z,{key:0},[_("span",kt,c(k.title||r(e)("search.results.noTitle")),1),_("div",St,c(k.id.slice(0,16)),1)],64)):C("",!0),o.key==="category"?(i(),S(w,{key:1,color:X(k.category)},{default:t(()=>[m(c(k.category),1)]),_:2},1032,["color"])):C("",!0),o.key==="tags"?(i(),f(z,{key:2},[(i(!0),f(z,null,O(k.tags.slice(0,4),B=>(i(),S(w,{key:B,color:"default",style:{"font-size":"11px"}},{default:t(()=>[m(c(B),1)]),_:2},1024))),128)),k.tags.length>4?(i(),f("span",Ct,"+"+c(k.tags.length-4),1)):C("",!0)],64)):C("",!0),o.key==="createdAt"?(i(),f("span",At,c(r(H)(k.createdAt)),1)):C("",!0),o.key==="action"?(i(),f(z,{key:4},[a(d,{size:"small",type:"link",onClick:B=>ie(k.id)},{default:t(()=>[m(c(r(e)("search.index.rowAction.view")),1)]),_:1},8,["onClick"]),a(d,{size:"small",type:"link",onClick:B=>ze(k)},{default:t(()=>[m(c(r(e)("search.index.rowAction.similar")),1)]),_:1},8,["onClick"])],64)):C("",!0)]),emptyText:t(()=>[_("div",zt,[a(r(fe),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),m(" "+c(R.value||T.value?r(e)("search.empty.filtered"):r(e)("search.empty.noNotes")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(Re,{open:W.value,"onUpdate:open":s[6]||(s[6]=o=>W.value=o),title:r(e)("search.note.title",{title:h.value?.title||""}),width:780,footer:null},{default:t(()=>[J.value?(i(),f("div",Nt,[a(Le)])):h.value?(i(),f("div",Tt,[a($e,{column:2,size:"small",bordered:""},{default:t(()=>[a(j,{label:r(e)("search.note.id"),span:2},{default:t(()=>[_("span",wt,c(h.value.id),1)]),_:1},8,["label"]),a(j,{label:r(e)("search.note.category")},{default:t(()=>[a(w,{color:X(h.value.category)},{default:t(()=>[m(c(h.value.category),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(j,{label:r(e)("search.note.tags")},{default:t(()=>[(i(!0),f(z,null,O(h.value.tags,o=>(i(),S(w,{key:o,color:"default"},{default:t(()=>[m(c(o),1)]),_:2},1024))),128)),h.value.tags.length?C("",!0):(i(),f("span",Mt,"—"))]),_:1},8,["label"]),a(j,{label:r(e)("search.note.createdAt")},{default:t(()=>[m(c(r(H)(h.value.createdAt)),1)]),_:1},8,["label"]),a(j,{label:r(e)("search.note.updatedAt")},{default:t(()=>[m(c(r(H)(h.value.updatedAt)),1)]),_:1},8,["label"])]),_:1}),_("h4",Et,c(r(e)("search.note.content")),1),h.value.content?(i(),f("div",Dt,[_("span",{innerHTML:be(h.value.content,$.value)},null,8,Ot)])):(i(),S(te,{key:1,description:r(e)("search.note.emptyContent"),image:r(g)},null,8,["description","image"]))])):C("",!0)]),_:1},8,["open","title"])])}}},jt=Ke(It,[["__scopeId","data-v-25cf2b6f"]]);export{jt as default};
@@ -1 +0,0 @@
1
- import{E as j,r as v,f as h,o as q,M as m,R as i,P as y,u as n,c as r,N as d,F as C,_ as L,K as p,I as B,L as c,O as g,Q as M}from"./vendor-B6ToihkA.js";import{u as E}from"./ws-D_5-FRIb.js";import{u as N}from"./useShellMode-CgR0wCYM.js";import{p as Q}from"./parsers-DftYMnlk.js";import{u as F}from"./chat-BQ-Nk2XY.js";import{_ as V}from"./index-CyqU4Tck.js";import{l as $,R as P,aj as T}from"./icons-DvZE-RKs.js";const U=j("skills",()=>{const _=v(!1),t=v([]),u=v(""),f=v("all"),x=h(()=>{const a=new Set(["all"]);return t.value.forEach(o=>{o.category&&a.add(o.category),o.executionMode&&a.add(o.executionMode)}),[...a]}),k=h(()=>{let a=t.value;if(f.value!=="all"&&(a=a.filter(o=>o.category===f.value||o.executionMode===f.value)),u.value){const o=u.value.toLowerCase();a=a.filter(l=>l.name?.toLowerCase().includes(o)||l.description?.toLowerCase().includes(o)||l.title?.toLowerCase().includes(o))}return a});async function b(){const a=E();_.value=!0;try{if(N().isEmbedded){const e=await a.sendRaw({type:"skill.list"},2e4);e?.ok&&Array.isArray(e.result?.skills)?t.value=e.result.skills:(console.error("skill.list custom topic failed:",e?.error),t.value=[]);return}const{output:o}=await a.execute("skill list",2e4),l=Q(o);t.value=l}catch(o){console.error("Failed to load skills:",o)}finally{_.value=!1}}return{loading:_,allSkills:t,searchQuery:u,selectedCategory:f,categories:x,filteredSkills:k,loadSkills:b}}),D={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},K={class:"page-sub"},W={style:{display:"flex",gap:"12px","margin-bottom":"20px","flex-wrap":"wrap"}},G={key:0,style:{"text-align":"center",padding:"60px"}},H={key:1,class:"skills-grid"},J={style:{display:"flex","justify-content":"space-between","align-items":"flex-start"}},X={style:{flex:"1","min-width":"0"}},Y={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px","margin-bottom":"4px","font-family":"monospace"}},Z={style:{color:"var(--text-secondary)","font-size":"12px","line-height":"1.5"}},ee={style:{"margin-left":"12px","flex-shrink":"0"}},te={style:{"margin-top":"10px",display:"flex","justify-content":"flex-end"}},le={key:2,style:{"text-align":"center",padding:"60px",color:"var(--text-muted)"}},oe={__name:"Skills",setup(_){const t=U(),u=F(),f=B(),x=h(()=>t.categories.filter(l=>l!=="all").slice(0,6));function k(l){return{"built-in":"内置","cli-direct":"CLI",agent:"Agent","llm-query":"LLM",hybrid:"混合",workspace:"工作区",marketplace:"市场"}[l]||l}function b(l){return{"cli-direct":"CLI",agent:"Agent","llm-query":"LLM",hybrid:"混合","built-in":"内置"}[l]||l||"未知"}function a(l){return{"cli-direct":"cyan",agent:"purple","llm-query":"blue",hybrid:"orange","built-in":"green"}[l]||"default"}async function o(l){await u.createSession("agent"),f.push("/chat"),setTimeout(()=>{u.currentSessionId&&u.sendMessage(u.currentSessionId,`/skill run ${l}`)},300)}return q(()=>{t.allSkills.length||t.loadSkills()}),(l,e)=>{const S=p("a-button"),z=p("a-input-search"),w=p("a-radio-button"),I=p("a-radio-group"),A=p("a-spin"),O=p("a-tag"),R=p("a-card");return c(),m("div",null,[i("div",D,[i("div",null,[e[3]||(e[3]=i("h2",{class:"page-title"},"技能管理",-1)),i("p",K,y(n(t).allSkills.length)+" 个可用技能",1)]),r(S,{type:"primary",ghost:"",loading:n(t).loading,onClick:e[0]||(e[0]=s=>n(t).loadSkills())},{icon:d(()=>[r(n(P))]),default:d(()=>[e[4]||(e[4]=g(" 刷新 ",-1))]),_:1},8,["loading"])]),i("div",W,[r(z,{value:n(t).searchQuery,"onUpdate:value":e[1]||(e[1]=s=>n(t).searchQuery=s),placeholder:"搜索技能名称或描述...",style:{width:"300px"},"allow-clear":""},null,8,["value"]),r(I,{value:n(t).selectedCategory,"onUpdate:value":e[2]||(e[2]=s=>n(t).selectedCategory=s),"button-style":"solid"},{default:d(()=>[r(w,{value:"all"},{default:d(()=>[...e[5]||(e[5]=[g("全部",-1)])]),_:1}),(c(!0),m(C,null,L(x.value,s=>(c(),M(w,{key:s,value:s},{default:d(()=>[g(y(k(s)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),n(t).loading?(c(),m("div",G,[r(A,{size:"large"}),e[6]||(e[6]=i("div",{style:{color:"var(--text-muted)","margin-top":"12px"}},"加载技能中...",-1))])):n(t).filteredSkills.length?(c(),m("div",H,[(c(!0),m(C,null,L(n(t).filteredSkills,s=>(c(),M(R,{key:s.name,class:"skill-card",size:"small",hoverable:"",style:{background:"var(--bg-card)","border-color":"var(--border-color)",cursor:"default"}},{default:d(()=>[i("div",J,[i("div",X,[i("div",Y,y(s.name),1),i("div",Z,y(s.description||"暂无描述"),1)]),i("div",ee,[r(O,{color:a(s.executionMode),style:{"font-size":"10px"}},{default:d(()=>[g(y(b(s.executionMode)),1)]),_:2},1032,["color"])])]),i("div",te,[r(S,{size:"small",type:"primary",ghost:"",onClick:se=>o(s.name)},{icon:d(()=>[r(n(T))]),default:d(()=>[e[7]||(e[7]=g(" 运行 ",-1))]),_:1},8,["onClick"])])]),_:2},1024))),128))])):(c(),m("div",le,[r(n($),{style:{"font-size":"48px","margin-bottom":"16px",display:"block"}}),i("div",null,y(n(t).allSkills.length?"没有匹配的技能":"点击刷新加载技能列表"),1)]))])}}},pe=V(oe,[["__scopeId","data-v-a1cd8dd9"]]);export{pe as default};
@@ -1 +0,0 @@
1
- import{_ as _t,a as gt,M as kt,c as h}from"./index-CyqU4Tck.js";import{u as xt}from"./ws-D_5-FRIb.js";import{s as Je}from"./community-parser-CO25nZFt.js";import{R as ht,aI as Ct,al as St,aJ as Me,f as Be,Z as $t,af as Tt,av as It}from"./icons-DvZE-RKs.js";import{o as zt,M as d,R as g,P as i,c as o,N as l,Q as S,S as y,K as b,r as k,L as u,O as m,u as x,F,_ as D,$ as At,f as P,a as Pe}from"./vendor-B6ToihkA.js";function N(n){const r=Je(n);if(!r)return null;try{return JSON.parse(r)}catch{}const a=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!a)return null;try{return JSON.parse(a[0])}catch{return null}}const me=Object.freeze(["gold","silver","bronze"]),ze=Object.freeze(["active","expired","terminated"]),pe=Object.freeze(["availability","response_time","throughput","error_rate"]),se=Object.freeze(["minor","moderate","major","critical"]),Ft=Object.freeze(["open","acknowledged","resolved","waived"]);function p(n,r=0){return typeof n=="number"&&Number.isFinite(n)?n:r}function Q(n){if(!n)return{noDb:!1,error:""};const r=Je(n),a=/Database not available/i.test(r);return{noDb:a,error:a?"Database not available":""}}function wt(n,r=0){if(!n||typeof n!="object")return null;const a=n.name||"";return a?{key:a,name:a,availability:p(n.availability,0),maxResponseTime:p(n.maxResponseTime,0),minThroughput:p(n.minThroughput,0),maxErrorRate:p(n.maxErrorRate,0),compensationRate:p(n.compensationRate,0),_idx:r}:null}function jt(n){const r=N(n);return Array.isArray(r)?r.map(wt).filter(Boolean):[]}function Ot(n){const r={availability:0,maxResponseTime:0,minThroughput:0,maxErrorRate:0,compensationRate:0};return!n||typeof n!="object"||Array.isArray(n)?r:{availability:p(n.availability,0),maxResponseTime:p(n.maxResponseTime,0),minThroughput:p(n.minThroughput,0),maxErrorRate:p(n.maxErrorRate,0),compensationRate:p(n.compensationRate,0)}}function qe(n,r=0){if(!n||typeof n!="object")return null;const a=n.slaId||n.sla_id||"";return a?{key:a,slaId:a,orgId:String(n.orgId??n.org_id??""),tier:String(n.tier||"").toLowerCase(),terms:Ot(n.terms),monthlyFee:p(n.monthlyFee??n.monthly_fee,0),startDate:n.startDate??n.start_date??null,endDate:n.endDate??n.end_date??null,status:String(n.status||"active").toLowerCase(),createdAt:n.createdAt??n.created_at??null,updatedAt:n.updatedAt??n.updated_at??null,_idx:r}:null}function Rt(n){const r=N(n);return Array.isArray(r)?r.map(qe).filter(Boolean):[]}function Dt(n){const r=N(n);return!r||typeof r!="object"||Array.isArray(r)?null:qe(r,0)}function He(n){return!n||typeof n!="object"?null:{count:p(n.count,0),mean:p(n.mean,0),min:p(n.min,0),max:p(n.max,0),p95:p(n.p95,0)}}function Vt(n){const r=N(n);if(!r||typeof r!="object"||Array.isArray(r))return{slaId:"",totalSamples:0,byTerm:{}};const a={};if(r.byTerm&&typeof r.byTerm=="object")for(const[f,_]of Object.entries(r.byTerm)){const w=He(_);w&&(a[f]=w)}return{slaId:String(r.slaId||""),totalSamples:p(r.totalSamples,0),byTerm:a}}function Ke(n,r=0){if(!n||typeof n!="object")return null;const a=n.violationId||n.violation_id||"";return a?{key:a,violationId:a,slaId:String(n.slaId??n.sla_id??""),term:String(n.term||"").toLowerCase(),severity:String(n.severity||"minor").toLowerCase(),expectedValue:p(n.expectedValue??n.expected_value,0),actualValue:p(n.actualValue??n.actual_value,0),deviationPercent:p(n.deviationPercent??n.deviation_percent,0),compensationAmount:typeof n.compensationAmount=="number"?n.compensationAmount:typeof n.compensation_amount=="number"?n.compensation_amount:null,occurredAt:n.occurredAt??n.occurred_at??null,resolvedAt:n.resolvedAt??n.resolved_at??null,v2Status:n.v2Status?String(n.v2Status).toLowerCase():"open",v2Note:n.v2Note??"",_idx:r}:null}function Lt(n){const r=N(n);return Array.isArray(r)?r.map(Ke).filter(Boolean):[]}function Et(n){const r=N(n);return!r||typeof r!="object"||Array.isArray(r)?{slaId:"",checkedAt:null,totalViolations:0,violations:[]}:{slaId:String(r.slaId||""),checkedAt:r.checkedAt??null,totalViolations:p(r.totalViolations,0),violations:Array.isArray(r.violations)?r.violations.map(Ke).filter(Boolean):[]}}function Nt(n){const r=N(n);return!r||typeof r!="object"||Array.isArray(r)?null:{violationId:String(r.violationId||""),slaId:String(r.slaId||""),severity:String(r.severity||""),base:p(r.base,0),multiplier:p(r.multiplier,0),amount:p(r.amount,0)}}const Ut={slaId:"",tier:"",compliance:0,startDate:null,endDate:null,metricsByTerm:{},violations:{total:0,byTerm:{},bySeverity:{},totalCompensation:0}};function Mt(n){const r=JSON.parse(JSON.stringify(Ut));for(const f of pe)r.violations.byTerm[f]=0;for(const f of se)r.violations.bySeverity[f]=0;const a=N(n);if(!a||typeof a!="object"||Array.isArray(a))return r;if(r.slaId=String(a.slaId||""),r.tier=String(a.tier||"").toLowerCase(),r.compliance=p(a.compliance,0),r.startDate=a.startDate??null,r.endDate=a.endDate??null,a.metricsByTerm&&typeof a.metricsByTerm=="object")for(const[f,_]of Object.entries(a.metricsByTerm)){const w=He(_);w&&(r.metricsByTerm[f]=w)}if(a.violations&&typeof a.violations=="object"){if(r.violations.total=p(a.violations.total,0),r.violations.totalCompensation=p(a.violations.totalCompensation,0),a.violations.byTerm&&typeof a.violations.byTerm=="object")for(const[f,_]of Object.entries(a.violations.byTerm))typeof _=="number"&&Number.isFinite(_)&&(r.violations.byTerm[f]=_);if(a.violations.bySeverity&&typeof a.violations.bySeverity=="object")for(const[f,_]of Object.entries(a.violations.bySeverity))typeof _=="number"&&Number.isFinite(_)&&(r.violations.bySeverity[f]=_)}return r}const Bt={totalContracts:0,activeContracts:0,activeOrgs:0,maxActiveSlasPerOrg:0,byStatus:{},byTier:{},violations:{total:0,byTerm:{},bySeverity:{},byStatus:{},totalCompensation:0}};function Pt(n){const r=JSON.parse(JSON.stringify(Bt));for(const f of ze)r.byStatus[f]=0;for(const f of me)r.byTier[f]=0;for(const f of pe)r.violations.byTerm[f]=0;for(const f of se)r.violations.bySeverity[f]=0;for(const f of Ft)r.violations.byStatus[f]=0;const a=N(n);if(!a||typeof a!="object"||Array.isArray(a))return r;if(r.totalContracts=p(a.totalContracts,0),r.activeContracts=p(a.activeContracts,0),r.activeOrgs=p(a.activeOrgs,0),r.maxActiveSlasPerOrg=p(a.maxActiveSlasPerOrg,0),a.byStatus&&typeof a.byStatus=="object")for(const[f,_]of Object.entries(a.byStatus))typeof _=="number"&&Number.isFinite(_)&&(r.byStatus[f]=_);if(a.byTier&&typeof a.byTier=="object")for(const[f,_]of Object.entries(a.byTier))typeof _=="number"&&Number.isFinite(_)&&(r.byTier[f]=_);if(a.violations&&typeof a.violations=="object"){r.violations.total=p(a.violations.total,0),r.violations.totalCompensation=p(a.violations.totalCompensation,0);for(const f of["byTerm","bySeverity","byStatus"])if(a.violations[f]&&typeof a.violations[f]=="object")for(const[_,w]of Object.entries(a.violations[f]))typeof w=="number"&&Number.isFinite(w)&&(r.violations[f][_]=w)}return r}function Ie(n){if(n==null||n==="")return"—";const r=typeof n=="number"?new Date(n):new Date(String(n));return isNaN(r.getTime())?String(n):r.toLocaleString("zh-CN",{hour12:!1})}const Jt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},qt={class:"page-title"},Ht={class:"page-sub"},Kt={class:"tier-head"},Gt={class:"tier-comp"},Wt={class:"tier-terms"},Qt={class:"tier-term"},Yt={class:"tier-term"},Zt={class:"tier-term"},Xt={class:"tier-term"},ea={class:"filter-bar"},ta={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},aa={key:1,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},oa={key:4,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},la={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},sa={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},na={class:"filter-bar"},ra={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},ia={key:4,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ua={key:5,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ca={key:0,style:{color:"#faad14","font-weight":"500"}},da={key:1,style:{color:"var(--text-muted)"}},ma={key:7,style:{color:"var(--text-secondary)","font-size":"11px"}},pa={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},fa={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},va={style:{color:"var(--text-muted)","font-size":"11px","margin-top":"4px"}},ya={key:0,style:{"padding-top":"8px"}},ba={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 10px"}},_a={key:1,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ga={key:2,style:{"font-family":"monospace","font-size":"12px"}},ka={key:0,style:{"padding-top":"8px"}},xa={style:{"margin-left":"8px","font-family":"monospace","font-size":"12px"}},ha={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},Ca={style:{"margin-left":"auto",color:"#ff4d4f","font-weight":"500"}},Sa={key:0,style:{"padding-top":"8px"}},$a={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},Ta={key:0,style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},Ia={key:1,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},za={key:2,style:{"font-family":"monospace","font-size":"12px"}},Aa={key:0,style:{"padding-top":"8px"}},Fa={style:{"font-family":"monospace","font-size":"12px"}},wa={style:{"font-family":"monospace"}},ja={style:{"font-family":"monospace"}},Oa={style:{color:"#faad14","font-weight":"600","font-family":"monospace","font-size":"14px"}},Ra={__name:"Sla",setup(n){const r=xt(),{t:a}=gt(),f=kt.PRESENTED_IMAGE_SIMPLE,_=k(!1),w=k(!1),fe=k(!1),Ae=k([]),ve=k([]),Fe=k([]),C=k({totalContracts:0,activeContracts:0,activeOrgs:0,maxActiveSlasPerOrg:0,byStatus:{},byTier:{},violations:{total:0,byTerm:{},bySeverity:{},byStatus:{},totalCompensation:0}}),ye=k({noDb:!1,error:""}),we=k("contracts"),Y=k(""),Z=k(""),X=k(""),ne=k(!1),re=k(!1),be=k(!1),_e=k(!1),ge=k(!1),ie=k(!1),$=Pe({orgId:"",tier:"silver",monthlyFee:1e3,durationDays:30}),T=Pe({slaId:null,term:"availability",value:null}),I=k(null),ee=k({slaId:"",totalSamples:0,byTerm:{}}),V=k(null),A=k(null),ke=k(null),O=k(null),Ge=P(()=>[{title:a("sla.contractCols.slaId"),key:"slaId",width:"120px"},{title:a("sla.contractCols.orgId"),key:"orgId",width:"160px"},{title:a("sla.contractCols.tier"),key:"tier",width:"90px"},{title:a("sla.contractCols.status"),key:"status",width:"100px"},{title:a("sla.contractCols.monthlyFee"),key:"monthlyFee",width:"110px"},{title:a("sla.contractCols.endDate"),key:"endDate",width:"160px"},{title:a("sla.contractCols.action"),key:"action",width:"260px"}]),We=P(()=>[{title:a("sla.violationCols.id"),key:"violationId",width:"120px"},{title:a("sla.violationCols.term"),key:"term",width:"140px"},{title:a("sla.violationCols.severity"),key:"severity",width:"100px"},{title:a("sla.violationCols.deviation"),key:"deviation",width:"180px"},{title:a("sla.violationCols.expected"),key:"expected",width:"110px"},{title:a("sla.violationCols.actual"),key:"actual",width:"110px"},{title:a("sla.violationCols.compensation"),key:"compensation",width:"110px"},{title:a("sla.violationCols.occurredAt"),key:"occurredAt",width:"160px"},{title:a("sla.violationCols.action"),key:"action",width:"120px"}]),je=P(()=>[{title:a("sla.aggCols.term"),key:"term",width:"140px"},{title:a("sla.aggCols.expected"),key:"expected",width:"110px"},{title:a("sla.aggCols.mean"),key:"mean",width:"110px"},{title:a("sla.aggCols.p95"),key:"p95",width:"110px"},{title:a("sla.aggCols.min"),key:"min",width:"110px"},{title:a("sla.aggCols.max"),key:"max",width:"110px"},{title:a("sla.aggCols.count"),key:"count",width:"90px"}]),Qe=P(()=>{let e=ve.value;return Y.value&&(e=e.filter(s=>s.tier===Y.value)),Z.value&&(e=e.filter(s=>s.status===Z.value)),e}),Ye=P(()=>{let e=Fe.value;return X.value&&(e=e.filter(s=>s.severity===X.value)),e}),Ze=P(()=>I.value?Object.entries(ee.value.byTerm).map(([e,s])=>({key:e,term:e,expected:Oe(I.value.terms,e),...s})):[]),Xe=P(()=>!A.value||!I.value?[]:Object.entries(A.value.metricsByTerm).map(([e,s])=>({key:e,term:e,expected:Oe(I.value.terms,e),...s})));function Oe(e,s){if(!e)return 0;switch(s){case"availability":return e.availability;case"response_time":return e.maxResponseTime;case"throughput":return e.minThroughput;case"error_rate":return e.maxErrorRate;default:return 0}}function ue(e){return{gold:"gold",silver:"default",bronze:"orange"}[e]||"default"}function Re(e){return{gold:"#faad14",silver:"#8c8c8c",bronze:"#d4a373"}[e]||"#888"}function xe(e){const s=`sla.statusLabels.${e}`,v=a(s);return v===s?e:v}function De(e){return{active:"green",expired:"default",terminated:"red"}[e]||"default"}function et(e){return{active:"#52c41a",expired:"#888",terminated:"#ff4d4f"}[e]||"#888"}function J(e){const s=`sla.termLabels.${e}`,v=a(s);return v===s?e:v}function tt(e){if(!e)return"";const s=`sla.termHints.${e}`,v=a(s);return v===s?"":v}function U(e,s){return typeof s!="number"||!Number.isFinite(s)?"—":e==="availability"||e==="error_rate"?(s*100).toFixed(3)+"%":e==="response_time"?s.toFixed(1)+"ms":e==="throughput"?s.toFixed(0)+" rps":s.toFixed(4)}function q(e){const s=`sla.severityLabels.${e}`,v=a(s);return v===s?e:v}function te(e){return{minor:"default",moderate:"gold",major:"orange",critical:"red"}[e]||"default"}function he(e){return{minor:"#888",moderate:"#faad14",major:"#fa8c16",critical:"#ff4d4f"}[e]||"#888"}function at(e){return e>=.99?"#52c41a":e>=.9?"#1677ff":e>=.7?"#faad14":"#ff4d4f"}function ae(e,s){return s?Math.round(e/s*100):0}async function H(){_.value=!0,ye.value={noDb:!1,error:""};try{const[e,s,v,oe]=await Promise.all([r.execute("sla tiers --json",8e3).catch(()=>({output:""})),r.execute("sla list --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("sla violations --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("sla stats-v2",8e3).catch(()=>({output:""}))]),M=[s,v,oe].map(j=>Q(j.output)).find(j=>j.noDb);M&&(ye.value=M),Ae.value=jt(e.output),ve.value=Rt(s.output),Fe.value=Lt(v.output),C.value=Pt(oe.output)}catch(e){h.error(a("sla.msg.loadFailed")+": "+(e?.message||e))}finally{_.value=!1}}async function ot(){if(!$.orgId.trim()){h.warning(a("sla.msg.orgEmpty"));return}w.value=!0;try{const e=$.durationDays*24*60*60*1e3,s=[`sla create "${$.orgId.trim().replace(/"/g,'\\"')}"`,`-t ${$.tier}`,`-d ${e}`,`-f ${$.monthlyFee||0}`,"--json"],{output:v}=await r.execute(s.join(" "),1e4);if(Q(v).noDb){h.error(a("sla.msg.needCcInit"));return}const M=Dt(v);if(!M){h.error(a("sla.msg.createFailed")+": "+v.slice(0,120));return}h.success(a("sla.msg.createSuccess",{id:M.slaId.slice(0,8)})),ne.value=!1,Ve(),await H()}catch(e){h.error(a("sla.msg.createFailed")+": "+(e?.message||e))}finally{w.value=!1}}async function lt(){if(!T.slaId){h.warning(a("sla.msg.slaEmpty"));return}if(T.value===null||T.value===void 0){h.warning(a("sla.msg.valueEmpty"));return}fe.value=!0;try{const{output:e}=await r.execute(`sla record ${T.slaId} ${T.term} ${T.value} --json`,8e3);if(Q(e).noDb){h.error(a("sla.msg.needCcInit"));return}if(!/"metricId"|"term"/.test(e)){h.error(a("sla.msg.recordFailed")+": "+e.slice(0,120));return}h.success(a("sla.msg.recordSuccess")),re.value=!1,Le()}catch(e){h.error(a("sla.msg.recordFailed")+": "+(e?.message||e))}finally{fe.value=!1}}async function st(e){try{const{output:s}=await r.execute(`sla terminate ${e.slaId}`,8e3);if(Q(s).noDb){h.error(a("sla.msg.needCcInit"));return}if(/Failed/i.test(s)&&!/terminated/i.test(s)){h.error(a("sla.msg.terminateFailed")+": "+s.slice(0,120));return}h.success(a("sla.msg.terminateSuccess")),await H()}catch(s){h.error(a("sla.msg.terminateFailed")+": "+(s?.message||s))}}async function nt(e){I.value=e,ee.value={slaId:"",totalSamples:0,byTerm:{}},be.value=!0;try{const{output:s}=await r.execute(`sla metrics ${e.slaId} --json`,8e3);ee.value=Vt(s)}catch(s){h.error(a("sla.msg.loadMetricsFailed")+": "+(s?.message||s))}}async function rt(e){I.value=e,V.value=null,_e.value=!0;try{const{output:s}=await r.execute(`sla check ${e.slaId} --json`,1e4);if(Q(s).noDb){h.error(a("sla.msg.needCcInit"));return}V.value=Et(s),V.value.totalViolations>0&&await H()}catch(s){h.error(a("sla.msg.checkFailed")+": "+(s?.message||s))}}async function it(e){I.value=e,A.value=null,ge.value=!0;try{const{output:s}=await r.execute(`sla report ${e.slaId} --json`,1e4);A.value=Mt(s)}catch(s){h.error(a("sla.msg.loadReportFailed")+": "+(s?.message||s))}}async function ut(e){ke.value=e,O.value=null;try{const{output:s}=await r.execute(`sla compensate ${e.violationId} --json`,8e3);if(Q(s).noDb){h.error(a("sla.msg.needCcInit"));return}if(O.value=Nt(s),!O.value){h.error(a("sla.msg.compFailed")+": "+s.slice(0,120));return}ie.value=!0,await H()}catch(s){h.error(a("sla.msg.compFailed")+": "+(s?.message||s))}}function ct(e){ke.value=e,O.value={violationId:e.violationId,slaId:e.slaId,severity:e.severity,base:0,multiplier:0,amount:e.compensationAmount||0},ie.value=!0}function Ve(){$.orgId="",$.tier="silver",$.monthlyFee=1e3,$.durationDays=30}function Le(){T.slaId=null,T.term="availability",T.value=null}return zt(H),(e,s)=>{const v=b("a-button"),oe=b("a-space"),M=b("a-alert"),j=b("a-statistic"),L=b("a-card"),R=b("a-col"),ce=b("a-row"),z=b("a-tag"),K=b("a-radio-button"),Ce=b("a-radio-group"),dt=b("a-popconfirm"),de=b("a-table"),Se=b("a-tab-pane"),G=b("a-progress"),mt=b("a-tabs"),pt=b("a-input"),B=b("a-form-item"),Ee=b("a-select-option"),$e=b("a-select"),Te=b("a-input-number"),Ne=b("a-form"),W=b("a-modal"),E=b("a-descriptions-item"),Ue=b("a-descriptions"),ft=b("a-empty"),vt=b("a-result"),yt=b("a-list-item"),bt=b("a-list");return u(),d("div",null,[g("div",Jt,[g("div",null,[g("h2",qt,i(e.$t("sla.title")),1),g("p",Ht,i(e.$t("sla.subtitle")),1)]),o(oe,null,{default:l(()=>[o(v,{loading:_.value,onClick:H},{icon:l(()=>[o(x(ht))]),default:l(()=>[m(" "+i(e.$t("sla.refresh")),1)]),_:1},8,["loading"]),o(v,{onClick:s[0]||(s[0]=t=>re.value=!0)},{icon:l(()=>[o(x(Ct))]),default:l(()=>[m(" "+i(e.$t("sla.recordMetric")),1)]),_:1}),o(v,{type:"primary",onClick:s[1]||(s[1]=t=>ne.value=!0)},{icon:l(()=>[o(x(St))]),default:l(()=>[m(" "+i(e.$t("sla.create")),1)]),_:1})]),_:1})]),ye.value.noDb?(u(),S(M,{key:0,type:"info","show-icon":"",message:e.$t("sla.noDb.message"),description:e.$t("sla.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):y("",!0),o(ce,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[o(R,{xs:12,sm:8,lg:5},{default:l(()=>[o(L,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[o(j,{title:e.$t("sla.stats.totalContracts"),value:C.value.totalContracts,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[o(x(Me))]),_:1},8,["title","value"])]),_:1})]),_:1}),o(R,{xs:12,sm:8,lg:5},{default:l(()=>[o(L,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[o(j,{title:e.$t("sla.stats.active"),value:C.value.activeContracts,"value-style":{color:C.value.activeContracts>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:l(()=>[o(x(Be))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(R,{xs:12,sm:8,lg:5},{default:l(()=>[o(L,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[o(j,{title:e.$t("sla.stats.orgs"),value:C.value.activeOrgs,"value-style":{color:"#722ed1",fontSize:"20px"},suffix:C.value.maxActiveSlasPerOrg?`· cap=${C.value.maxActiveSlasPerOrg}`:""},{prefix:l(()=>[o(x($t))]),_:1},8,["title","value","suffix"])]),_:1})]),_:1}),o(R,{xs:12,sm:8,lg:5},{default:l(()=>[o(L,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[o(j,{title:e.$t("sla.stats.violations"),value:C.value.violations.total,"value-style":{color:C.value.violations.total>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:l(()=>[o(x(Tt))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(R,{xs:24,sm:8,lg:4},{default:l(()=>[o(L,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[o(j,{title:e.$t("sla.stats.compensation"),value:C.value.violations.totalCompensation,precision:2,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[o(x(It))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),o(L,{title:e.$t("sla.tierCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:l(()=>[o(ce,{gutter:[12,12]},{default:l(()=>[(u(!0),d(F,null,D(Ae.value,t=>(u(),S(R,{key:t.name,xs:24,sm:8},{default:l(()=>[g("div",{class:"tier-pill",style:At({borderLeftColor:Re(t.name)})},[g("div",Kt,[o(z,{color:ue(t.name),style:{"font-family":"monospace","font-size":"13px"}},{default:l(()=>[m(i(t.name.toUpperCase()),1)]),_:2},1032,["color"]),g("span",Gt,i(e.$t("sla.tierCompRate",{pct:(t.compensationRate*100).toFixed(1)})),1)]),g("div",Wt,[g("span",Qt,i(e.$t("sla.tierTerms.availability",{pct:(t.availability*100).toFixed(2)})),1),g("span",Yt,i(e.$t("sla.tierTerms.p95",{ms:t.maxResponseTime})),1),g("span",Zt,i(e.$t("sla.tierTerms.rps",{n:t.minThroughput})),1),g("span",Xt,i(e.$t("sla.tierTerms.errorRate",{pct:(t.maxErrorRate*100).toFixed(2)})),1)])],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),o(mt,{activeKey:we.value,"onUpdate:activeKey":s[5]||(s[5]=t=>we.value=t),class:"sla-tabs"},{default:l(()=>[o(Se,{key:"contracts",tab:e.$t("sla.tabs.contracts")},{default:l(()=>[g("div",ea,[o(Ce,{value:Y.value,"onUpdate:value":s[2]||(s[2]=t=>Y.value=t),size:"small","button-style":"solid"},{default:l(()=>[o(K,{value:""},{default:l(()=>[m(i(e.$t("sla.filter.allTiers")),1)]),_:1}),(u(!0),d(F,null,D(x(me),t=>(u(),S(K,{key:t,value:t},{default:l(()=>[m(i(t.toUpperCase()),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),o(Ce,{value:Z.value,"onUpdate:value":s[3]||(s[3]=t=>Z.value=t),size:"small"},{default:l(()=>[o(K,{value:""},{default:l(()=>[m(i(e.$t("sla.filter.allStatuses")),1)]),_:1}),(u(!0),d(F,null,D(x(ze),t=>(u(),S(K,{key:t,value:t},{default:l(()=>[m(i(xe(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),o(de,{columns:Ge.value,"data-source":Qe.value,pagination:{pageSize:20,showTotal:t=>e.$t("sla.table.contractsSuffix",{n:t})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:t,record:c})=>[t.key==="slaId"?(u(),d("span",ta,i(c.slaId.slice(0,12)),1)):y("",!0),t.key==="orgId"?(u(),d("span",aa,i(c.orgId),1)):y("",!0),t.key==="tier"?(u(),S(z,{key:2,color:ue(c.tier),style:{"font-family":"monospace"}},{default:l(()=>[m(i(c.tier.toUpperCase()),1)]),_:2},1032,["color"])):y("",!0),t.key==="status"?(u(),S(z,{key:3,color:De(c.status)},{default:l(()=>[m(i(xe(c.status)),1)]),_:2},1032,["color"])):y("",!0),t.key==="monthlyFee"?(u(),d("span",oa,i(c.monthlyFee.toFixed(2)),1)):y("",!0),t.key==="endDate"?(u(),d("span",la,i(x(Ie)(c.endDate)),1)):y("",!0),t.key==="action"?(u(),d(F,{key:6},[o(v,{size:"small",type:"link",onClick:le=>nt(c)},{default:l(()=>[m(i(e.$t("sla.table.actionMetrics")),1)]),_:1},8,["onClick"]),o(v,{size:"small",type:"link",onClick:le=>rt(c)},{default:l(()=>[m(i(e.$t("sla.table.actionCheck")),1)]),_:1},8,["onClick"]),o(v,{size:"small",type:"link",onClick:le=>it(c)},{default:l(()=>[m(i(e.$t("sla.table.actionReport")),1)]),_:1},8,["onClick"]),c.status==="active"?(u(),S(dt,{key:0,title:e.$t("sla.terminateConfirm.title"),"ok-text":e.$t("sla.terminateConfirm.ok"),"cancel-text":e.$t("sla.terminateConfirm.cancel"),onConfirm:le=>st(c)},{default:l(()=>[o(v,{size:"small",type:"link",danger:""},{default:l(()=>[m(i(e.$t("sla.terminateConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):y("",!0)],64)):y("",!0)]),emptyText:l(()=>[g("div",sa,[o(x(Me),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),m(" "+i(Y.value||Z.value?e.$t("sla.table.emptyContractsFiltered"):e.$t("sla.table.emptyContracts")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),o(Se,{key:"violations",tab:e.$t("sla.tabs.violations")},{default:l(()=>[g("div",na,[o(Ce,{value:X.value,"onUpdate:value":s[4]||(s[4]=t=>X.value=t),size:"small","button-style":"solid"},{default:l(()=>[o(K,{value:""},{default:l(()=>[m(i(e.$t("sla.filter.allSeverities")),1)]),_:1}),(u(!0),d(F,null,D(x(se),t=>(u(),S(K,{key:t,value:t},{default:l(()=>[m(i(q(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),o(de,{columns:We.value,"data-source":Ye.value,pagination:{pageSize:20,showTotal:t=>e.$t("sla.table.totalSuffix",{n:t})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:t,record:c})=>[t.key==="violationId"?(u(),d("span",ra,i(c.violationId.slice(0,12)),1)):y("",!0),t.key==="term"?(u(),S(z,{key:1,color:"default",style:{"font-family":"monospace"}},{default:l(()=>[m(i(J(c.term)),1)]),_:2},1024)):y("",!0),t.key==="severity"?(u(),S(z,{key:2,color:te(c.severity)},{default:l(()=>[m(i(q(c.severity)),1)]),_:2},1032,["color"])):y("",!0),t.key==="deviation"?(u(),S(G,{key:3,percent:Math.min(100,Math.round(c.deviationPercent)),"stroke-color":he(c.severity),size:"small",format:()=>`${c.deviationPercent.toFixed(1)}%`},null,8,["percent","stroke-color","format"])):y("",!0),t.key==="expected"?(u(),d("span",ia,i(U(c.term,c.expectedValue)),1)):y("",!0),t.key==="actual"?(u(),d("span",ua,i(U(c.term,c.actualValue)),1)):y("",!0),t.key==="compensation"?(u(),d(F,{key:6},[c.compensationAmount!==null?(u(),d("span",ca,i(c.compensationAmount.toFixed(2)),1)):(u(),d("span",da,i(e.$t("sla.table.uncomputed")),1))],64)):y("",!0),t.key==="occurredAt"?(u(),d("span",ma,i(x(Ie)(c.occurredAt)),1)):y("",!0),t.key==="action"?(u(),d(F,{key:8},[c.compensationAmount===null?(u(),S(v,{key:0,size:"small",type:"link",onClick:le=>ut(c)},{default:l(()=>[m(i(e.$t("sla.table.actionComputeComp")),1)]),_:1},8,["onClick"])):(u(),S(v,{key:1,size:"small",type:"link",onClick:le=>ct(c)},{default:l(()=>[m(i(e.$t("sla.table.actionView")),1)]),_:1},8,["onClick"]))],64)):y("",!0)]),emptyText:l(()=>[g("div",pa,[o(x(Be),{style:{"font-size":"36px","margin-bottom":"10px",display:"block",color:"#52c41a"}}),m(" "+i(X.value?e.$t("sla.table.emptyViolationsFiltered"):e.$t("sla.table.emptyViolations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),o(Se,{key:"breakdown",tab:e.$t("sla.tabs.breakdown")},{default:l(()=>[o(ce,{gutter:[16,16]},{default:l(()=>[o(R,{xs:24,lg:12},{default:l(()=>[o(L,{title:e.$t("sla.breakdown.contractsByStatus"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"12px"}},{default:l(()=>[(u(!0),d(F,null,D(x(ze),t=>(u(),d("div",{key:t,class:"bd-row"},[o(z,{color:De(t),style:{"min-width":"80px","text-align":"center"}},{default:l(()=>[m(i(xe(t)),1)]),_:2},1032,["color"]),o(G,{percent:ae(C.value.byStatus[t]||0,C.value.totalContracts),"stroke-color":et(t),format:()=>`${C.value.byStatus[t]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"]),o(L,{title:e.$t("sla.breakdown.contractsByTier"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[(u(!0),d(F,null,D(x(me),t=>(u(),d("div",{key:t,class:"bd-row"},[o(z,{color:ue(t),style:{"min-width":"80px","text-align":"center","font-family":"monospace"}},{default:l(()=>[m(i(t.toUpperCase()),1)]),_:2},1032,["color"]),o(G,{percent:ae(C.value.byTier[t]||0,C.value.totalContracts),"stroke-color":Re(t),format:()=>`${C.value.byTier[t]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),o(R,{xs:24,lg:12},{default:l(()=>[o(L,{title:e.$t("sla.breakdown.violationsBySeverity"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"12px"}},{default:l(()=>[(u(!0),d(F,null,D(x(se),t=>(u(),d("div",{key:t,class:"bd-row"},[o(z,{color:te(t),style:{"min-width":"80px","text-align":"center"}},{default:l(()=>[m(i(q(t)),1)]),_:2},1032,["color"]),o(G,{percent:ae(C.value.violations.bySeverity[t]||0,C.value.violations.total),"stroke-color":he(t),format:()=>`${C.value.violations.bySeverity[t]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"]),o(L,{title:e.$t("sla.breakdown.violationsByTerm"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[(u(!0),d(F,null,D(x(pe),t=>(u(),d("div",{key:t,class:"bd-row"},[o(z,{color:"default",style:{"min-width":"110px","text-align":"center","font-family":"monospace","font-size":"11px"}},{default:l(()=>[m(i(J(t)),1)]),_:2},1024),o(G,{percent:ae(C.value.violations.byTerm[t]||0,C.value.violations.total),"stroke-color":"#fa8c16",format:()=>`${C.value.violations.byTerm[t]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","format"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),o(W,{open:ne.value,"onUpdate:open":s[10]||(s[10]=t=>ne.value=t),title:e.$t("sla.create_modal.title"),"confirm-loading":w.value,width:540,"ok-text":e.$t("sla.create_modal.ok"),"cancel-text":e.$t("sla.create_modal.cancel"),onOk:ot,onCancel:Ve},{default:l(()=>[o(Ne,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[o(B,{label:e.$t("sla.create_modal.orgLabel"),required:""},{default:l(()=>[o(pt,{value:$.orgId,"onUpdate:value":s[6]||(s[6]=t=>$.orgId=t),placeholder:e.$t("sla.create_modal.orgPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(B,{label:e.$t("sla.create_modal.tierLabel"),required:""},{default:l(()=>[o($e,{value:$.tier,"onUpdate:value":s[7]||(s[7]=t=>$.tier=t)},{default:l(()=>[(u(!0),d(F,null,D(x(me),t=>(u(),S(Ee,{key:t,value:t},{default:l(()=>[m(i(t.toUpperCase()),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(B,{label:e.$t("sla.create_modal.feeLabel")},{default:l(()=>[o(Te,{value:$.monthlyFee,"onUpdate:value":s[8]||(s[8]=t=>$.monthlyFee=t),min:0,step:100,style:{width:"160px"}},null,8,["value"])]),_:1},8,["label"]),o(B,{label:e.$t("sla.create_modal.durationLabel")},{default:l(()=>[o(Te,{value:$.durationDays,"onUpdate:value":s[9]||(s[9]=t=>$.durationDays=t),min:1,step:30,style:{width:"160px"}},null,8,["value"]),g("span",fa,i(e.$t("sla.create_modal.durationHint")),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),o(W,{open:re.value,"onUpdate:open":s[14]||(s[14]=t=>re.value=t),title:e.$t("sla.record_modal.title"),"confirm-loading":fe.value,width:540,"ok-text":e.$t("sla.record_modal.ok"),"cancel-text":e.$t("sla.record_modal.cancel"),onOk:lt,onCancel:Le},{default:l(()=>[o(Ne,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[o(B,{label:e.$t("sla.record_modal.slaLabel"),required:""},{default:l(()=>[o($e,{value:T.slaId,"onUpdate:value":s[11]||(s[11]=t=>T.slaId=t),placeholder:e.$t("sla.record_modal.slaPlaceholder"),options:ve.value.map(t=>({value:t.slaId,label:`${t.slaId.slice(0,8)} · ${t.orgId} [${t.tier}]`})),"show-search":""},null,8,["value","placeholder","options"])]),_:1},8,["label"]),o(B,{label:e.$t("sla.record_modal.termLabel"),required:""},{default:l(()=>[o($e,{value:T.term,"onUpdate:value":s[12]||(s[12]=t=>T.term=t)},{default:l(()=>[(u(!0),d(F,null,D(x(pe),t=>(u(),S(Ee,{key:t,value:t},{default:l(()=>[m(i(J(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(B,{label:e.$t("sla.record_modal.valueLabel"),required:""},{default:l(()=>[o(Te,{value:T.value,"onUpdate:value":s[13]||(s[13]=t=>T.value=t),step:.01,style:{width:"200px"}},null,8,["value"]),g("div",va,i(tt(T.term)),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),o(W,{open:be.value,"onUpdate:open":s[15]||(s[15]=t=>be.value=t),title:e.$t("sla.metrics_modal.title",{id:I.value?.slaId?.slice(0,12)||""}),width:640,footer:null},{default:l(()=>[I.value?(u(),d("div",ya,[o(Ue,{column:2,size:"small",bordered:""},{default:l(()=>[o(E,{label:e.$t("sla.metrics_modal.org")},{default:l(()=>[m(i(I.value.orgId),1)]),_:1},8,["label"]),o(E,{label:e.$t("sla.metrics_modal.tier")},{default:l(()=>[o(z,{color:ue(I.value.tier)},{default:l(()=>[m(i(I.value.tier.toUpperCase()),1)]),_:1},8,["color"])]),_:1},8,["label"]),o(E,{label:e.$t("sla.metrics_modal.samples")},{default:l(()=>[m(i(ee.value.totalSamples),1)]),_:1},8,["label"]),o(E,{label:e.$t("sla.metrics_modal.monthlyFee")},{default:l(()=>[m(i(I.value.monthlyFee.toFixed(2)),1)]),_:1},8,["label"])]),_:1}),g("h4",ba,i(e.$t("sla.metrics_modal.byTerm")),1),Object.keys(ee.value.byTerm).length?(u(),S(de,{key:1,columns:je.value,"data-source":Ze.value,size:"small",pagination:!1,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:t,record:c})=>[t.key==="term"?(u(),S(z,{key:0,color:"default",style:{"font-family":"monospace"}},{default:l(()=>[m(i(J(c.term)),1)]),_:2},1024)):y("",!0),t.key==="expected"?(u(),d("span",_a,i(U(c.term,c.expected)),1)):["mean","p95","min","max"].includes(t.key)?(u(),d("span",ga,i(U(c.term,c[t.key])),1)):y("",!0)]),_:1},8,["columns","data-source"])):(u(),S(ft,{key:0,description:e.$t("sla.metrics_modal.empty"),image:x(f)},null,8,["description","image"]))])):y("",!0)]),_:1},8,["open","title"]),o(W,{open:_e.value,"onUpdate:open":s[16]||(s[16]=t=>_e.value=t),title:e.$t("sla.check_modal.title",{id:I.value?.slaId?.slice(0,12)||""}),width:640,footer:null},{default:l(()=>[V.value?(u(),d("div",ka,[o(vt,{status:V.value.totalViolations===0?"success":"warning",title:V.value.totalViolations===0?e.$t("sla.check_modal.noViolations"):e.$t("sla.check_modal.withViolations",{n:V.value.totalViolations}),"sub-title":e.$t("sla.check_modal.checkedAt",{time:x(Ie)(V.value.checkedAt)})},null,8,["status","title","sub-title"]),V.value.totalViolations>0?(u(),S(bt,{key:0,size:"small","data-source":V.value.violations},{renderItem:l(({item:t})=>[o(yt,null,{default:l(()=>[o(z,{color:te(t.severity),style:{"min-width":"50px","text-align":"center"}},{default:l(()=>[m(i(q(t.severity)),1)]),_:2},1032,["color"]),g("span",xa,i(J(t.term)),1),g("span",ha,i(e.$t("sla.check_modal.expectedActual",{expected:U(t.term,t.expectedValue),actual:U(t.term,t.actualValue)})),1),g("span",Ca,i(t.deviationPercent.toFixed(2))+"%",1)]),_:2},1024)]),_:1},8,["data-source"])):y("",!0)])):y("",!0)]),_:1},8,["open","title"]),o(W,{open:ge.value,"onUpdate:open":s[17]||(s[17]=t=>ge.value=t),title:e.$t("sla.report_modal.title",{id:I.value?.slaId?.slice(0,12)||""}),width:720,footer:null},{default:l(()=>[A.value?(u(),d("div",Sa,[o(ce,{gutter:12,style:{"margin-bottom":"16px"}},{default:l(()=>[o(R,{span:8},{default:l(()=>[o(j,{title:e.$t("sla.report_modal.compliance"),value:A.value.compliance*100,suffix:"%",precision:2,"value-style":{color:at(A.value.compliance),fontSize:"20px"}},null,8,["title","value","value-style"])]),_:1}),o(R,{span:8},{default:l(()=>[o(j,{title:e.$t("sla.report_modal.violations"),value:A.value.violations.total,"value-style":{color:"#ff4d4f",fontSize:"20px"}},null,8,["title","value"])]),_:1}),o(R,{span:8},{default:l(()=>[o(j,{title:e.$t("sla.report_modal.compensation"),value:A.value.violations.totalCompensation,precision:2,"value-style":{color:"#faad14",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),g("h4",$a,i(e.$t("sla.breakdown.violationsBySeverityHeader")),1),(u(!0),d(F,null,D(x(se),t=>(u(),d("div",{key:t,class:"bd-row"},[o(z,{color:te(t),style:{"min-width":"80px","text-align":"center"}},{default:l(()=>[m(i(q(t)),1)]),_:2},1032,["color"]),o(G,{percent:ae(A.value.violations.bySeverity[t]||0,A.value.violations.total),"stroke-color":he(t),format:()=>`${A.value.violations.bySeverity[t]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128)),Object.keys(A.value.metricsByTerm).length?(u(),d("h4",Ta,i(e.$t("sla.breakdown.metricsAggregation")),1)):y("",!0),Object.keys(A.value.metricsByTerm).length?(u(),S(de,{key:1,columns:je.value,"data-source":Xe.value,size:"small",pagination:!1,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:t,record:c})=>[t.key==="term"?(u(),S(z,{key:0,color:"default",style:{"font-family":"monospace"}},{default:l(()=>[m(i(J(c.term)),1)]),_:2},1024)):y("",!0),t.key==="expected"?(u(),d("span",Ia,i(U(c.term,c.expected)),1)):["mean","p95","min","max"].includes(t.key)?(u(),d("span",za,i(U(c.term,c[t.key])),1)):y("",!0)]),_:1},8,["columns","data-source"])):y("",!0)])):y("",!0)]),_:1},8,["open","title"]),o(W,{open:ie.value,"onUpdate:open":s[18]||(s[18]=t=>ie.value=t),title:e.$t("sla.compensation_modal.title",{id:ke.value?.violationId?.slice(0,12)||""}),width:540,footer:null},{default:l(()=>[O.value?(u(),d("div",Aa,[o(Ue,{column:2,size:"small",bordered:""},{default:l(()=>[o(E,{label:e.$t("sla.compensation_modal.violationId"),span:2},{default:l(()=>[g("span",Fa,i(O.value.violationId),1)]),_:1},8,["label"]),o(E,{label:e.$t("sla.compensation_modal.severity")},{default:l(()=>[o(z,{color:te(O.value.severity)},{default:l(()=>[m(i(q(O.value.severity)),1)]),_:1},8,["color"])]),_:1},8,["label"]),o(E,{label:e.$t("sla.compensation_modal.base")},{default:l(()=>[g("span",wa,i(O.value.base.toFixed(4)),1)]),_:1},8,["label"]),o(E,{label:e.$t("sla.compensation_modal.multiplier")},{default:l(()=>[g("span",ja,"×"+i(O.value.multiplier.toFixed(2)),1)]),_:1},8,["label"]),o(E,{label:e.$t("sla.compensation_modal.amount")},{default:l(()=>[g("span",Oa,i(O.value.amount.toFixed(2)),1)]),_:1},8,["label"])]),_:1})])):y("",!0)]),_:1},8,["open","title"])])}}},Ua=_t(Ra,[["__scopeId","data-v-3294250d"]]);export{Ua as default};
@@ -1 +0,0 @@
1
- import{_ as D,a as G,c as O}from"./index-CyqU4Tck.js";import{u as W}from"./ws-D_5-FRIb.js";import{R as M,S as Q}from"./icons-DvZE-RKs.js";import{a as q,r as E,o as X,M as R,R as v,P as c,u as n,c as t,N as a,K as h,L as P,O as u,Q as C,S as A,f as z}from"./vendor-B6ToihkA.js";const y=Object.freeze({defaultEngine:"webspeech",webSpeech:{lang:"zh-CN"},whisperAPI:{apiKey:"",baseURL:"https://api.openai.com/v1",model:"whisper-1",language:"zh",timeout:6e4},whisperLocal:{serverUrl:"http://localhost:8002",modelSize:"base",device:"auto",timeout:12e4}}),Y=["webspeech","whisper-api","whisper-local"];function Z(g){if(!g)return null;const e=g.trim();try{return JSON.parse(e)}catch{const f=e.match(/(\{[\s\S]*\}|\[[\s\S]*\])/);if(!f)return null;try{return JSON.parse(f[1])}catch{return null}}}function K(g,e){if(typeof g=="number"&&Number.isFinite(g))return g;const f=parseFloat(g);return Number.isFinite(f)?f:e}function ee(g){return JSON.parse(JSON.stringify(g))}function te(g){const e=ee(y);if(!g)return e;const f=g.trim();if(!f||/key not found/i.test(f))return e;const o=Z(f);if(!o||typeof o!="object"||Array.isArray(o))return e;if(typeof o.defaultEngine=="string"&&Y.includes(o.defaultEngine)&&(e.defaultEngine=o.defaultEngine),o.webSpeech&&typeof o.webSpeech=="object"&&typeof o.webSpeech.lang=="string"&&o.webSpeech.lang&&(e.webSpeech.lang=o.webSpeech.lang),o.whisperAPI&&typeof o.whisperAPI=="object"){const l=o.whisperAPI;typeof l.apiKey=="string"&&(e.whisperAPI.apiKey=l.apiKey),typeof l.baseURL=="string"&&l.baseURL&&(e.whisperAPI.baseURL=l.baseURL),typeof l.model=="string"&&l.model&&(e.whisperAPI.model=l.model),typeof l.language=="string"&&l.language&&(e.whisperAPI.language=l.language),l.timeout!==void 0&&(e.whisperAPI.timeout=K(l.timeout,y.whisperAPI.timeout))}if(o.whisperLocal&&typeof o.whisperLocal=="object"){const l=o.whisperLocal;typeof l.serverUrl=="string"&&l.serverUrl&&(e.whisperLocal.serverUrl=l.serverUrl),typeof l.modelSize=="string"&&l.modelSize&&(e.whisperLocal.modelSize=l.modelSize),typeof l.device=="string"&&l.device&&(e.whisperLocal.device=l.device),l.timeout!==void 0&&(e.whisperLocal.timeout=K(l.timeout,y.whisperLocal.timeout))}return e}function T(g,e){const f={};g.defaultEngine!==e.defaultEngine&&(f.defaultEngine=e.defaultEngine);for(const o of["webSpeech","whisperAPI","whisperLocal"]){const l=g[o]||{},i=e[o]||{};for(const m of Object.keys(y[o]))l[m]!==i[m]&&(f[`${o}.${m}`]=i[m])}return f}const ae={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},se={class:"page-title"},le={class:"page-sub"},ie={style:{color:"var(--text-primary)"}},ne={style:{color:"var(--text-muted)","font-size":"11px"}},oe={style:{color:"var(--text-primary)"}},re={style:{color:"var(--text-primary)"}},pe={style:{color:"var(--text-primary)"}},ue={style:{display:"flex",gap:"12px","align-items":"center"}},de={key:0,style:{color:"#faad14","font-size":"12px"}},ce={__name:"SpeechSettings",setup(g){const{t:e}=G(),f=W(),o=E(!1),l=E(!1),i=q(JSON.parse(JSON.stringify(y))),m=E(JSON.parse(JSON.stringify(y))),F=z(()=>[{value:"webspeech",label:e("speechSettings.engineOptions.webspeech")},{value:"whisper-api",label:e("speechSettings.engineOptions.whisper-api")},{value:"whisper-local",label:e("speechSettings.engineOptions.whisper-local")}]),B=z(()=>{const d=`speechSettings.engineHint.${i.defaultEngine}`,s=e(d);return s===d?"":s}),J=z(()=>Object.keys(T(m.value,i)).length>0);function U(d){i.defaultEngine=d.defaultEngine,Object.assign(i.webSpeech,d.webSpeech),Object.assign(i.whisperAPI,d.whisperAPI),Object.assign(i.whisperLocal,d.whisperLocal),m.value=JSON.parse(JSON.stringify(d))}async function k(){o.value=!0;try{const{output:d}=await f.execute("config get speech",1e4);U(te(d))}catch(d){/key not found/i.test(d.message)?U(JSON.parse(JSON.stringify(y))):O.error(e("speechSettings.messages.loadFailed",{err:d.message}))}finally{o.value=!1}}function $(){U(m.value)}async function H(){const d=T(m.value,i),s=Object.keys(d);if(s.length===0){O.info(e("speechSettings.messages.noChanges"));return}l.value=!0;let S=0,_=0;for(const w of s){const b=d[w],L=String(b).replace(/"/g,'\\"'),x=`config set speech.${w} "${L}"`;try{const{output:p,exitCode:N}=await f.execute(x,1e4);N!==0||/error|failed|失败/i.test(p)?(_++,O.error(e("speechSettings.messages.saveItemFailed",{key:w,err:p.slice(0,80)}))):S++}catch(p){_++,O.error(e("speechSettings.messages.saveItemFailed",{key:w,err:p.message}))}}l.value=!1,_===0?(O.success(e("speechSettings.messages.saveOk",{count:S})),m.value=JSON.parse(JSON.stringify(i))):S>0&&(O.warning(e("speechSettings.messages.savePartial",{ok:S,fail:_})),await k())}return X(()=>{k()}),(d,s)=>{const S=h("a-button"),_=h("a-alert"),w=h("a-select"),b=h("a-form-item"),L=h("a-form"),x=h("a-card"),p=h("a-select-option"),N=h("a-input-password"),I=h("a-input"),j=h("a-input-number"),V=h("a-spin");return P(),R("div",null,[v("div",ae,[v("div",null,[v("h2",se,c(n(e)("speechSettings.title")),1),v("p",le,c(n(e)("speechSettings.subtitle")),1)]),t(S,{loading:o.value,onClick:k},{icon:a(()=>[t(n(M))]),default:a(()=>[u(" "+c(n(e)("speechSettings.refresh")),1)]),_:1},8,["loading"])]),t(_,{message:n(e)("speechSettings.alert.message"),description:n(e)("speechSettings.alert.description"),type:"info","show-icon":"",closable:"",style:{"margin-bottom":"16px"}},null,8,["message","description"]),t(V,{spinning:o.value},{default:a(()=>[t(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:a(()=>[v("span",ie,[t(n(Q),{style:{"margin-right":"8px"}}),u(c(n(e)("speechSettings.engineCardTitle")),1)])]),default:a(()=>[t(L,{"label-col":{span:6},"wrapper-col":{span:18},style:{"max-width":"720px"}},{default:a(()=>[t(b,{label:n(e)("speechSettings.engineLabel")},{extra:a(()=>[v("span",ne,c(B.value),1)]),default:a(()=>[t(w,{value:i.defaultEngine,"onUpdate:value":s[0]||(s[0]=r=>i.defaultEngine=r),style:{width:"320px"},disabled:l.value,options:F.value},null,8,["value","disabled","options"])]),_:1},8,["label"])]),_:1})]),_:1}),i.defaultEngine==="webspeech"?(P(),C(x,{key:0,style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:a(()=>[v("span",oe,c(n(e)("speechSettings.webSpeech.cardTitle")),1)]),default:a(()=>[t(L,{"label-col":{span:6},"wrapper-col":{span:18},style:{"max-width":"720px"}},{default:a(()=>[t(b,{label:n(e)("speechSettings.webSpeech.langLabel")},{default:a(()=>[t(w,{value:i.webSpeech.lang,"onUpdate:value":s[1]||(s[1]=r=>i.webSpeech.lang=r),style:{width:"240px"},disabled:l.value},{default:a(()=>[t(p,{value:"zh-CN"},{default:a(()=>[u(c(n(e)("speechSettings.webSpeech.langOptions.zh-CN")),1)]),_:1}),t(p,{value:"zh-TW"},{default:a(()=>[u(c(n(e)("speechSettings.webSpeech.langOptions.zh-TW")),1)]),_:1}),t(p,{value:"en-US"},{default:a(()=>[u(c(n(e)("speechSettings.webSpeech.langOptions.en-US")),1)]),_:1}),t(p,{value:"en-GB"},{default:a(()=>[u(c(n(e)("speechSettings.webSpeech.langOptions.en-GB")),1)]),_:1}),t(p,{value:"ja-JP"},{default:a(()=>[u(c(n(e)("speechSettings.webSpeech.langOptions.ja-JP")),1)]),_:1}),t(p,{value:"ko-KR"},{default:a(()=>[u(c(n(e)("speechSettings.webSpeech.langOptions.ko-KR")),1)]),_:1})]),_:1},8,["value","disabled"])]),_:1},8,["label"])]),_:1})]),_:1})):A("",!0),i.defaultEngine==="whisper-api"?(P(),C(x,{key:1,style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:a(()=>[v("span",re,c(n(e)("speechSettings.whisperAPI.cardTitle")),1)]),default:a(()=>[t(L,{"label-col":{span:6},"wrapper-col":{span:18},style:{"max-width":"720px"}},{default:a(()=>[t(b,{label:n(e)("speechSettings.whisperAPI.apiKeyLabel")},{default:a(()=>[t(N,{value:i.whisperAPI.apiKey,"onUpdate:value":s[2]||(s[2]=r=>i.whisperAPI.apiKey=r),placeholder:"sk-...",disabled:l.value},null,8,["value","disabled"])]),_:1},8,["label"]),t(b,{label:n(e)("speechSettings.whisperAPI.baseUrlLabel")},{default:a(()=>[t(I,{value:i.whisperAPI.baseURL,"onUpdate:value":s[3]||(s[3]=r=>i.whisperAPI.baseURL=r),disabled:l.value},null,8,["value","disabled"])]),_:1},8,["label"]),t(b,{label:n(e)("speechSettings.whisperAPI.modelLabel")},{default:a(()=>[t(I,{value:i.whisperAPI.model,"onUpdate:value":s[4]||(s[4]=r=>i.whisperAPI.model=r),disabled:l.value},null,8,["value","disabled"])]),_:1},8,["label"]),t(b,{label:n(e)("speechSettings.whisperAPI.languageLabel")},{default:a(()=>[t(I,{value:i.whisperAPI.language,"onUpdate:value":s[5]||(s[5]=r=>i.whisperAPI.language=r),disabled:l.value},null,8,["value","disabled"])]),_:1},8,["label"]),t(b,{label:n(e)("speechSettings.whisperAPI.timeoutLabel")},{default:a(()=>[t(j,{value:i.whisperAPI.timeout,"onUpdate:value":s[6]||(s[6]=r=>i.whisperAPI.timeout=r),min:1e3,max:6e5,step:1e3,style:{width:"200px"},disabled:l.value},null,8,["value","disabled"])]),_:1},8,["label"])]),_:1})]),_:1})):A("",!0),i.defaultEngine==="whisper-local"?(P(),C(x,{key:2,style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:a(()=>[v("span",pe,c(n(e)("speechSettings.whisperLocal.cardTitle")),1)]),default:a(()=>[t(L,{"label-col":{span:6},"wrapper-col":{span:18},style:{"max-width":"720px"}},{default:a(()=>[t(b,{label:n(e)("speechSettings.whisperLocal.serverUrlLabel")},{default:a(()=>[t(I,{value:i.whisperLocal.serverUrl,"onUpdate:value":s[7]||(s[7]=r=>i.whisperLocal.serverUrl=r),placeholder:"http://localhost:8002",disabled:l.value},null,8,["value","disabled"])]),_:1},8,["label"]),t(b,{label:n(e)("speechSettings.whisperLocal.modelSizeLabel")},{default:a(()=>[t(w,{value:i.whisperLocal.modelSize,"onUpdate:value":s[8]||(s[8]=r=>i.whisperLocal.modelSize=r),style:{width:"180px"},disabled:l.value},{default:a(()=>[t(p,{value:"tiny"},{default:a(()=>[...s[11]||(s[11]=[u("tiny",-1)])]),_:1}),t(p,{value:"base"},{default:a(()=>[...s[12]||(s[12]=[u("base",-1)])]),_:1}),t(p,{value:"small"},{default:a(()=>[...s[13]||(s[13]=[u("small",-1)])]),_:1}),t(p,{value:"medium"},{default:a(()=>[...s[14]||(s[14]=[u("medium",-1)])]),_:1}),t(p,{value:"large"},{default:a(()=>[...s[15]||(s[15]=[u("large",-1)])]),_:1})]),_:1},8,["value","disabled"])]),_:1},8,["label"]),t(b,{label:n(e)("speechSettings.whisperLocal.deviceLabel")},{default:a(()=>[t(w,{value:i.whisperLocal.device,"onUpdate:value":s[9]||(s[9]=r=>i.whisperLocal.device=r),style:{width:"180px"},disabled:l.value},{default:a(()=>[t(p,{value:"auto"},{default:a(()=>[...s[16]||(s[16]=[u("auto",-1)])]),_:1}),t(p,{value:"cpu"},{default:a(()=>[...s[17]||(s[17]=[u("cpu",-1)])]),_:1}),t(p,{value:"cuda"},{default:a(()=>[...s[18]||(s[18]=[u("cuda",-1)])]),_:1})]),_:1},8,["value","disabled"])]),_:1},8,["label"]),t(b,{label:n(e)("speechSettings.whisperLocal.timeoutLabel")},{default:a(()=>[t(j,{value:i.whisperLocal.timeout,"onUpdate:value":s[10]||(s[10]=r=>i.whisperLocal.timeout=r),min:1e3,max:6e5,step:1e3,style:{width:"200px"},disabled:l.value},null,8,["value","disabled"])]),_:1},8,["label"])]),_:1})]),_:1})):A("",!0),v("div",ue,[t(S,{onClick:$,disabled:l.value||o.value},{default:a(()=>[u(c(n(e)("speechSettings.buttons.reset")),1)]),_:1},8,["disabled"]),t(S,{type:"primary",loading:l.value,disabled:!J.value,onClick:H},{default:a(()=>[u(c(n(e)("speechSettings.buttons.save")),1)]),_:1},8,["loading","disabled"]),J.value?(P(),R("span",de,c(n(e)("speechSettings.dirtyHint")),1)):A("",!0)])]),_:1},8,["spinning"])])}}},me=D(ce,[["__scopeId","data-v-578b4107"]]);export{me as default};
@@ -1 +0,0 @@
1
- import{E as B,r as $,f as R,o as F,x as I,M as d,R as f,c as l,N as o,u as s,Q as S,S as b,K as _,L as r,O as g,P as u,F as A,_ as V}from"./vendor-B6ToihkA.js";import{u as P}from"./ws-D_5-FRIb.js";import{_ as E}from"./index-CyqU4Tck.js";import{R as L}from"./icons-DvZE-RKs.js";const M=B("tasks",()=>{const v=$([]),t=$(!1);let w=null,k=null;const T=R(()=>v.value.filter(e=>e.status==="running")),N=R(()=>v.value.filter(e=>e.status==="pending")),i=R(()=>v.value.filter(e=>e.status==="completed"||e.status==="failed"||e.status==="timeout"));async function a(){const e=P();t.value=!0;try{const p=await e.sendRaw({type:"tasks-list"});p&&Array.isArray(p.tasks)&&(v.value=p.tasks)}catch{}finally{t.value=!1}}async function x(e){const p=P();try{await p.sendRaw({type:"tasks-stop",taskId:e})}catch{}finally{await a()}}const C=$(null);function z(e=5e3){y(),a(),w=setInterval(a,e),m()}function y(){w&&(clearInterval(w),w=null),k&&(k(),k=null)}function m(){const e=P();if(k)return;const p=n=>{n.type==="task:notification"&&n.payload?.task&&(C.value=n.payload.task,a(),setTimeout(()=>{C.value=null},8e3))};k=e.onRuntimeEvent(p)}function h(e){return!e||e<0?"-":e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${(e/6e4).toFixed(1)}m`}function D(e){switch(e){case"running":return"processing";case"pending":return"default";case"completed":return"success";case"failed":return"error";case"timeout":return"warning";default:return"default"}}return{tasks:v,loading:t,running:T,pending:N,completed:i,lastNotification:C,fetchTasks:a,stopTask:x,startPolling:z,stopPolling:y,formatDuration:h,getStatusColor:D}}),O={class:"page-header"},U={key:0,class:"error-text"},K={key:1},Q={class:"task-header"},W={class:"task-desc"},j={class:"task-id"},q={class:"task-meta"},G=["title"],H={key:0,class:"error-text"},J={key:1,class:"success-text"},X={key:2,class:"muted-text"},Y={__name:"Tasks",setup(v){const t=M(),w=[{title:"状态",key:"status",width:90},{title:"描述",key:"description",ellipsis:!0},{title:"类型",dataIndex:"type",width:100},{title:"耗时",key:"duration",width:90},{title:"创建时间",key:"createdAt",width:180},{title:"结果",key:"result",ellipsis:!0},{title:"操作",key:"action",width:80}];function k(i){return i.status==="running"&&i.startedAt?t.formatDuration(Date.now()-i.startedAt):i.completedAt&&i.startedAt?t.formatDuration(i.completedAt-i.startedAt):"-"}function T(i){return i?new Date(i).toLocaleString():"-"}function N(i,a){return i?i.length>a?`${i.slice(0,a)}...`:i:""}return F(()=>t.startPolling(5e3)),I(()=>t.stopPolling()),(i,a)=>{const x=_("a-button"),C=_("a-space"),z=_("a-alert"),y=_("a-statistic"),m=_("a-card"),h=_("a-col"),D=_("a-row"),e=_("a-tag"),p=_("a-table");return r(),d("div",null,[f("div",O,[a[3]||(a[3]=f("div",null,[f("h2",{class:"page-title"},"后台任务"),f("p",{class:"page-sub"},"查看后台任务队列、实时通知和任务执行结果。")],-1)),l(C,null,{default:o(()=>[l(x,{ghost:"",loading:s(t).loading,onClick:a[0]||(a[0]=n=>s(t).fetchTasks())},{icon:o(()=>[l(s(L))]),default:o(()=>[a[2]||(a[2]=g(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),s(t).lastNotification?(r(),S(z,{key:0,type:s(t).lastNotification.status==="completed"?"success":"error","show-icon":"",closable:"",class:"banner",onClose:a[1]||(a[1]=n=>s(t).lastNotification=null)},{message:o(()=>[g(" 任务"+u(s(t).lastNotification.status==="completed"?"完成":"结束")+": "+u(s(t).lastNotification.description||s(t).lastNotification.id.slice(0,16)),1)]),description:o(()=>[s(t).lastNotification.error?(r(),d("span",U,u(s(t).lastNotification.error),1)):s(t).lastNotification.result?(r(),d("span",K,u(N(String(s(t).lastNotification.result),120)),1)):b("",!0)]),_:1},8,["type"])):b("",!0),l(D,{gutter:[16,16],class:"stats-row"},{default:o(()=>[l(h,{xs:12,sm:6},{default:o(()=>[l(m,{class:"stat-card",size:"small"},{default:o(()=>[l(y,{title:"全部任务",value:s(t).tasks.length},null,8,["value"])]),_:1})]),_:1}),l(h,{xs:12,sm:6},{default:o(()=>[l(m,{class:"stat-card",size:"small"},{default:o(()=>[l(y,{title:"运行中",value:s(t).running.length},null,8,["value"])]),_:1})]),_:1}),l(h,{xs:12,sm:6},{default:o(()=>[l(m,{class:"stat-card",size:"small"},{default:o(()=>[l(y,{title:"等待中",value:s(t).pending.length},null,8,["value"])]),_:1})]),_:1}),l(h,{xs:12,sm:6},{default:o(()=>[l(m,{class:"stat-card",size:"small"},{default:o(()=>[l(y,{title:"已完成",value:s(t).completed.length},null,8,["value"])]),_:1})]),_:1})]),_:1}),s(t).running.length>0?(r(),S(m,{key:1,title:"运行中的任务",class:"panel-card",size:"small"},{default:o(()=>[(r(!0),d(A,null,V(s(t).running,n=>(r(),d("div",{key:n.id,class:"task-item running"},[f("div",Q,[l(e,{color:s(t).getStatusColor(n.status)},{default:o(()=>[g(u(n.status.toUpperCase()),1)]),_:2},1032,["color"]),f("span",W,u(n.description),1),f("span",j,u(n.id.slice(0,16)),1)]),f("div",q,[f("span",null,"类型: "+u(n.type||"-"),1),f("span",null,"已运行: "+u(s(t).formatDuration(Date.now()-n.startedAt)),1),l(x,{size:"small",danger:"",onClick:c=>s(t).stopTask(n.id)},{default:o(()=>[...a[4]||(a[4]=[g("停止",-1)])]),_:1},8,["onClick"])])]))),128))]),_:1})):b("",!0),l(m,{class:"panel-card"},{default:o(()=>[l(p,{columns:w,"data-source":s(t).tasks,pagination:{pageSize:15,size:"small"},loading:s(t).loading,"row-key":"id",size:"small"},{bodyCell:o(({column:n,record:c})=>[n.key==="status"?(r(),S(e,{key:0,color:s(t).getStatusColor(c.status)},{default:o(()=>[g(u(c.status),1)]),_:2},1032,["color"])):n.key==="description"?(r(),d("span",{key:1,title:c.command},u(c.description),9,G)):n.key==="duration"?(r(),d(A,{key:2},[g(u(k(c)),1)],64)):n.key==="createdAt"?(r(),d(A,{key:3},[g(u(T(c.createdAt)),1)],64)):n.key==="result"?(r(),d(A,{key:4},[c.error?(r(),d("span",H,u(N(c.error,60)),1)):c.result?(r(),d("span",J,u(N(String(c.result),60)),1)):(r(),d("span",X,"-"))],64)):n.key==="action"?(r(),d(A,{key:5},[c.status==="running"?(r(),S(x,{key:0,size:"small",danger:"",onClick:Z=>s(t).stopTask(c.id)},{default:o(()=>[...a[5]||(a[5]=[g(" 停止 ",-1)])]),_:1},8,["onClick"])):b("",!0)],64)):b("",!0)]),_:1},8,["data-source","loading"])]),_:1})])}}},nt=E(Y,[["__scopeId","data-v-c8e3e605"]]);export{nt as default};
@@ -1 +0,0 @@
1
- import{_ as ke,a as we,c as y}from"./index-CyqU4Tck.js";import{o as Ce,M as k,R as i,P as r,u as t,c as s,N as o,r as g,K as c,a as Oe,I as je,L as d,F as D,_ as J,Q as x,O as p,S as R,f as Pe}from"./vendor-B6ToihkA.js";import{u as Te}from"./ws-D_5-FRIb.js";import{u as ze}from"./useFs-BD-YRwbU.js";import{i as W,aj as Y,l as Se,$ as X,al as Ae,at as Fe,as as $e,k as Z,ay as Be,ax as Ie}from"./icons-DvZE-RKs.js";import"./useShellMode-CgR0wCYM.js";const Ne={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ee={class:"page-title"},Le={class:"page-sub"},De={style:{display:"flex","align-items":"flex-start",gap:"10px"}},Je={style:{flex:"1","min-width":"0"}},Re={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px","font-family":"monospace","margin-bottom":"4px"}},Ue={style:{color:"var(--text-secondary)","font-size":"12px","line-height":"1.5"}},Ke={style:{"margin-top":"12px","text-align":"right"}},Me={style:{margin:"0","font-size":"12px","white-space":"pre-wrap","max-height":"200px","overflow-y":"auto"}},Ve={key:0,style:{"text-align":"center",padding:"40px"}},qe={style:{color:"var(--text-muted)","margin-top":"8px"}},He={style:{display:"flex","align-items":"flex-start",gap:"10px"}},Ge={style:{flex:"1","min-width":"0"}},Qe={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px","margin-bottom":"4px"}},We={style:{color:"var(--text-secondary)","font-size":"12px","line-height":"1.5"}},Ye={key:0,style:{"margin-top":"4px"}},Xe={style:{"margin-top":"12px","text-align":"right"}},Ze={style:{margin:"0","font-size":"12px","white-space":"pre-wrap","max-height":"200px","overflow-y":"auto"}},et={style:{"margin-bottom":"16px",display:"flex",gap:"8px"}},tt={style:{display:"flex","align-items":"center",gap:"8px","margin-bottom":"8px"}},at={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px",flex:"1",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},ot={style:{color:"var(--text-secondary)","font-size":"12px","line-height":"1.5","max-height":"60px",overflow:"hidden","text-overflow":"ellipsis","white-space":"pre-wrap"}},st={style:{"margin-top":"12px",display:"flex",gap:"8px","justify-content":"flex-end"}},lt={style:{color:"var(--text-muted)","font-size":"12px"}},ee="cc_prompt_templates",nt={__name:"Templates",setup(rt){const{t:e}=we(),T=Te(),te=je(),U=ze(),z=g(!1),S=g(!1),K=g("project"),A=g(""),b=g(null),w=g(!1),F=g(""),ae=["code-project","data-science","devops","medical-triage","agriculture-expert","general-assistant","ai-media-creator","ai-doc-creator","empty"],oe=Pe(()=>ae.map(l=>({name:l,description:e(`templates.project.items.${l}`)})));function se(l){F.value=l,w.value=!0}async function le(){w.value=!1;const l=F.value;if(l){A.value=l,b.value=null;try{const a=`init --template ${l} --yes`,{output:u,exitCode:_}=await T.execute(a,3e4);b.value={success:_===0,output:u}}catch(a){b.value={success:!1,output:e("templates.messages.initFailed",{err:a.message})}}finally{A.value=""}}}const $=g(!1),C=g([]),B=g(""),h=g(null);async function ne(){$.value=!0;try{const{output:l}=await T.execute("bi templates --json",15e3),a=JSON.parse(l);C.value=Array.isArray(a)?a:a.templates||[]}catch{C.value=[]}finally{$.value=!1}}async function re(l){B.value=l,h.value=null;try{const a=`bi dashboard create --template ${l} --json`,{output:u,exitCode:_}=await T.execute(a,3e4);h.value={success:_===0,output:u}}catch(a){h.value={success:!1,output:e("templates.messages.createFailed",{err:a.message})}}finally{B.value=""}}const v=g([]),O=g(!1),m=Oe({name:"",category:"general",content:""});function ie(){try{const l=localStorage.getItem(ee);v.value=l?JSON.parse(l):[]}catch{v.value=[]}}function I(){localStorage.setItem(ee,JSON.stringify(v.value))}function pe(){!m.name||!m.content||(v.value.push({name:m.name,category:m.category,content:m.content}),I(),M(),y.success(e("templates.messages.promptSaved")))}function M(){O.value=!1,m.name="",m.category="general",m.content=""}async function ce(){if(v.value.length){z.value=!0;try{const l=await U.saveJson({schema:1,prompts:v.value},{defaultPath:`prompt-templates-${new Date().toISOString().slice(0,10)}.json`});if(l.canceled)return;y.success(l.path?e("templates.messages.exportOk",{count:v.value.length,path:l.path}):e("templates.messages.exportOkDefault"))}catch(l){y.error(e("templates.messages.exportFailed",{err:l.message||l}))}finally{z.value=!1}}}async function me(){S.value=!0;try{const l=await U.pickFileText({title:e("templates.prompts.filePickerTitle"),filters:[{name:"JSON",extensions:["json"]}]});if(!l||l.canceled)return;if(l.reason==="too_large"){y.error(e("templates.messages.fileTooLarge"));return}let a;try{a=JSON.parse(l.content||"")}catch(f){y.error(e("templates.messages.jsonParseFailed",{err:f.message}));return}const u=Array.isArray(a)?a:Array.isArray(a?.prompts)?a.prompts:null;if(!u){y.error(e("templates.messages.fileShapeUnknown",{expected:"prompts: [...]"}));return}let _=0;for(const f of u)!f||typeof f!="object"||typeof f.name!="string"||typeof f.content!="string"||(v.value.push({name:f.name,category:typeof f.category=="string"?f.category:"general",content:f.content}),_++);_?(I(),y.success(e("templates.messages.importedCount",{count:_}))):y.warning(e("templates.messages.importEmpty"))}catch(l){y.error(e("templates.messages.importFailed",{err:l.message||l}))}finally{S.value=!1}}function ue(l){v.value.splice(l,1),I(),y.success(e("templates.messages.promptDeleted"))}function de(l){navigator.clipboard.writeText(l.content).then(()=>{y.success(e("templates.messages.copiedClipboard"))}).catch(()=>{y.error(e("templates.messages.copyFailed"))})}function fe(l){te.push({path:"/chat",query:{prompt:l.content}})}function ge(l){return{general:"blue",code:"green",writing:"orange",analysis:"purple"}[l]||"default"}return Ce(()=>{ie(),ne()}),(l,a)=>{const u=c("a-button"),_=c("a-card"),f=c("a-col"),N=c("a-row"),V=c("a-alert"),E=c("a-tab-pane"),ve=c("a-spin"),q=c("a-empty"),H=c("a-tag"),ye=c("a-tabs"),G=c("a-modal"),_e=c("a-input"),L=c("a-form-item"),j=c("a-select-option"),xe=c("a-select"),be=c("a-textarea"),he=c("a-form");return d(),k("div",null,[i("div",Ne,[i("div",null,[i("h2",Ee,r(t(e)("templates.title")),1),i("p",Le,r(t(e)("templates.subtitle")),1)])]),s(ye,{activeKey:K.value,"onUpdate:activeKey":a[3]||(a[3]=n=>K.value=n),type:"card"},{default:o(()=>[s(E,{key:"project"},{tab:o(()=>[s(t(Se)),p(" "+r(t(e)("templates.tabs.project")),1)]),default:o(()=>[s(N,{gutter:[16,16]},{default:o(()=>[(d(!0),k(D,null,J(oe.value,n=>(d(),x(f,{key:n.name,xs:24,sm:12,lg:8},{default:o(()=>[s(_,{size:"small",hoverable:"",class:"template-card",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[i("div",De,[s(t(W),{style:{"font-size":"24px",color:"#1677ff","flex-shrink":"0","margin-top":"2px"}}),i("div",Je,[i("div",Re,r(n.name),1),i("div",Ue,r(n.description),1)])]),i("div",Ke,[s(u,{type:"primary",size:"small",loading:A.value===n.name,onClick:P=>se(n.name)},{icon:o(()=>[s(t(Y))]),default:o(()=>[p(" "+r(t(e)("templates.project.initButton")),1)]),_:1},8,["loading","onClick"])])]),_:2},1024)]),_:2},1024))),128))]),_:1}),b.value?(d(),x(V,{key:0,message:b.value.success?t(e)("templates.project.initSuccessAlert"):t(e)("templates.project.initFailureAlert"),type:b.value.success?"success":"error","show-icon":"",closable:"",style:{"margin-top":"16px"},onClose:a[0]||(a[0]=n=>b.value=null)},{description:o(()=>[i("pre",Me,r(b.value.output),1)]),_:1},8,["message","type"])):R("",!0)]),_:1}),s(E,{key:"bi"},{tab:o(()=>[s(t(X)),p(" "+r(t(e)("templates.tabs.bi")),1)]),default:o(()=>[$.value?(d(),k("div",Ve,[s(ve),i("div",qe,r(t(e)("templates.bi.loadingHint")),1)])):C.value.length?(d(),x(N,{key:2,gutter:[16,16]},{default:o(()=>[(d(!0),k(D,null,J(C.value,n=>(d(),x(f,{key:n.id,xs:24,sm:12,lg:8},{default:o(()=>[s(_,{size:"small",hoverable:"",class:"template-card",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[i("div",He,[s(t(X),{style:{"font-size":"24px",color:"#722ed1","flex-shrink":"0","margin-top":"2px"}}),i("div",Ge,[i("div",Qe,r(n.name),1),i("div",We,r(n.description||t(e)("templates.bi.noDescription")),1),n.id?(d(),k("div",Ye,[s(H,{size:"small",color:"purple"},{default:o(()=>[p(r(n.id),1)]),_:2},1024)])):R("",!0)])]),i("div",Xe,[s(u,{type:"primary",size:"small",loading:B.value===n.id,onClick:P=>re(n.id)},{icon:o(()=>[s(t(Y))]),default:o(()=>[p(" "+r(t(e)("templates.bi.createButton")),1)]),_:1},8,["loading","onClick"])])]),_:2},1024)]),_:2},1024))),128))]),_:1})):(d(),x(q,{key:1,description:t(e)("templates.bi.emptyText")},null,8,["description"])),h.value?(d(),x(V,{key:3,message:h.value.success?t(e)("templates.bi.createSuccessAlert"):t(e)("templates.bi.createFailureAlert"),type:h.value.success?"success":"error","show-icon":"",closable:"",style:{"margin-top":"16px"},onClose:a[1]||(a[1]=n=>h.value=null)},{description:o(()=>[i("pre",Ze,r(h.value.output),1)]),_:1},8,["message","type"])):R("",!0)]),_:1}),s(E,{key:"prompts"},{tab:o(()=>[s(t(Z)),p(" "+r(t(e)("templates.tabs.prompts")),1)]),default:o(()=>[i("div",et,[s(u,{type:"primary",onClick:a[2]||(a[2]=n=>O.value=!0)},{icon:o(()=>[s(t(Ae))]),default:o(()=>[p(" "+r(t(e)("templates.prompts.newButton")),1)]),_:1}),s(u,{disabled:!v.value.length,loading:z.value,onClick:ce},{icon:o(()=>[s(t(Fe))]),default:o(()=>[p(" "+r(t(e)("templates.prompts.exportAll")),1)]),_:1},8,["disabled","loading"]),s(u,{loading:S.value,onClick:me},{icon:o(()=>[s(t($e))]),default:o(()=>[p(" "+r(t(e)("templates.prompts.import")),1)]),_:1},8,["loading"])]),v.value.length?(d(),x(N,{key:1,gutter:[16,16]},{default:o(()=>[(d(!0),k(D,null,J(v.value,(n,P)=>(d(),x(f,{key:P,xs:24,sm:12,lg:8},{default:o(()=>[s(_,{size:"small",class:"template-card",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[i("div",tt,[s(t(Z),{style:{"font-size":"18px",color:"#52c41a"}}),i("span",at,r(n.name),1),s(H,{color:ge(n.category),size:"small"},{default:o(()=>[p(r(n.category),1)]),_:2},1032,["color"])]),i("div",ot,r(n.content.length>120?n.content.slice(0,120)+"...":n.content),1),i("div",st,[s(u,{size:"small",onClick:Q=>fe(n)},{icon:o(()=>[s(t(W))]),default:o(()=>[p(" "+r(t(e)("templates.prompts.useButton")),1)]),_:1},8,["onClick"]),s(u,{size:"small",onClick:Q=>de(n)},{icon:o(()=>[s(t(Be))]),default:o(()=>[p(" "+r(t(e)("templates.prompts.copyButton")),1)]),_:1},8,["onClick"]),s(u,{size:"small",danger:"",onClick:Q=>ue(P)},{icon:o(()=>[s(t(Ie))]),default:o(()=>[p(" "+r(t(e)("templates.prompts.deleteButton")),1)]),_:1},8,["onClick"])])]),_:2},1024)]),_:2},1024))),128))]),_:1})):(d(),x(q,{key:0,description:t(e)("templates.prompts.emptyText")},null,8,["description"]))]),_:1})]),_:1},8,["activeKey"]),s(G,{open:w.value,"onUpdate:open":a[4]||(a[4]=n=>w.value=n),title:t(e)("templates.project.confirmTitle"),onOk:le,onCancel:a[5]||(a[5]=n=>w.value=!1),"ok-text":t(e)("templates.project.confirmOk"),"cancel-text":t(e)("common.cancel")},{default:o(()=>[i("p",null,[p(r(t(e)("templates.project.confirmIntro"))+" ",1),i("strong",null,r(F.value),1),p(" "+r(t(e)("templates.project.confirmIntroSuffix")),1)]),i("p",lt,r(t(e)("templates.project.confirmHint")),1)]),_:1},8,["open","title","ok-text","cancel-text"]),s(G,{open:O.value,"onUpdate:open":a[9]||(a[9]=n=>O.value=n),title:t(e)("templates.prompts.modalTitle"),onOk:pe,onCancel:M,"ok-text":t(e)("templates.prompts.modalOk"),"cancel-text":t(e)("common.cancel"),"ok-button-props":{disabled:!m.name||!m.content}},{default:o(()=>[s(he,{layout:"vertical"},{default:o(()=>[s(L,{label:t(e)("templates.prompts.nameLabel"),required:""},{default:o(()=>[s(_e,{value:m.name,"onUpdate:value":a[6]||(a[6]=n=>m.name=n),placeholder:t(e)("templates.prompts.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(L,{label:t(e)("templates.prompts.categoryLabel")},{default:o(()=>[s(xe,{value:m.category,"onUpdate:value":a[7]||(a[7]=n=>m.category=n),style:{width:"100%"}},{default:o(()=>[s(j,{value:"general"},{default:o(()=>[...a[10]||(a[10]=[p("general",-1)])]),_:1}),s(j,{value:"code"},{default:o(()=>[...a[11]||(a[11]=[p("code",-1)])]),_:1}),s(j,{value:"writing"},{default:o(()=>[...a[12]||(a[12]=[p("writing",-1)])]),_:1}),s(j,{value:"analysis"},{default:o(()=>[...a[13]||(a[13]=[p("analysis",-1)])]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),s(L,{label:t(e)("templates.prompts.contentLabel"),required:""},{default:o(()=>[s(be,{value:m.content,"onUpdate:value":a[8]||(a[8]=n=>m.content=n),rows:6,placeholder:t(e)("templates.prompts.contentPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","ok-text","cancel-text","ok-button-props"])])}}},ft=ke(nt,[["__scopeId","data-v-d59b8b0a"]]);export{ft as default};
@@ -1 +0,0 @@
1
- import{_ as et,a as tt,c as m}from"./index-CyqU4Tck.js";import{u as at}from"./ws-D_5-FRIb.js";import{s as nt}from"./community-parser-CO25nZFt.js";import{R as lt,al as ot,_ as me,D as st,aI as rt,aS as je,m as ut}from"./icons-DvZE-RKs.js";import{o as it,M as f,R as v,P as u,c as l,N as a,Q as b,S as h,K as y,r as S,L as i,O as p,u as g,F as C,_ as z,a as ne,f as le}from"./vendor-B6ToihkA.js";function D(s){const r=nt(s);if(!r)return null;try{return JSON.parse(r)}catch{}const o=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!o)return null;try{return JSON.parse(o[0])}catch{return null}}const Y=Object.freeze(["free","starter","pro","enterprise"]),dt=Object.freeze(["active","suspended","deleted"]),Ie=Object.freeze(["api_calls","storage_bytes","ai_requests"]);function F(s,r=0){return typeof s=="number"&&Number.isFinite(s)?s:r}function ct(s,r=0){if(!s||typeof s!="object")return null;const o=s.id||"";if(!o)return null;const w=s.quotas&&typeof s.quotas=="object"?{...s.quotas}:{};return{key:o,id:o,name:String(s.name||o),monthlyFee:s.monthlyFee==null?null:F(s.monthlyFee,null),quotas:w,features:Array.isArray(s.features)?s.features.filter(K=>typeof K=="string"):[],_idx:r}}function pt(s){const r=D(s);return Array.isArray(r)?r.map(ct).filter(Boolean):[]}function ft(s,r=0){if(!s||typeof s!="object")return null;const o=s.id||"";return o?{key:o,id:o,name:String(s.name||o),unit:String(s.unit||""),_idx:r}:null}function mt(s){const r=D(s);return Array.isArray(r)?r.map(ft).filter(Boolean):[]}function vt(s,r=0){if(!s||typeof s!="object")return null;const o=s.id||"";return o?{key:o,id:o,name:String(s.name||""),slug:String(s.slug||""),config:s.config??null,status:String(s.status||"active").toLowerCase(),plan:String(s.plan||"free").toLowerCase(),dbPath:s.dbPath||null,ownerId:s.ownerId||"",createdAt:s.createdAt??null,updatedAt:s.updatedAt??null,deletedAt:s.deletedAt??null,_idx:r}:null}function yt(s){const r=D(s);return Array.isArray(r)?r.map(vt).filter(Boolean):[]}function bt(s,r=0){if(!s||typeof s!="object")return null;const o=s.id||"";return o?{key:o,id:o,tenantId:String(s.tenantId||""),plan:String(s.plan||"free").toLowerCase(),status:String(s.status||"active").toLowerCase(),startedAt:s.startedAt??null,expiresAt:s.expiresAt??null,cancelledAt:s.cancelledAt??null,paymentMethod:s.paymentMethod||null,amount:s.amount==null?null:F(s.amount,null),createdAt:s.createdAt??null,_idx:r}:null}function gt(s){const r=D(s);return Array.isArray(r)?r.map(bt).filter(Boolean):[]}function _t(s){const r=D(s);return!r||typeof r!="object"||Array.isArray(r)?null:{tenantId:String(r.tenantId||""),plan:String(r.plan||"free").toLowerCase(),metric:String(r.metric||""),period:String(r.period||""),limit:r.limit==null?null:F(r.limit,null),used:F(r.used,0),remaining:r.remaining==null?null:F(r.remaining,null),unlimited:!!r.unlimited,exceeded:!!r.exceeded}}const kt={tenantCount:0,byStatus:{active:0,suspended:0,deleted:0},byPlan:{free:0,starter:0,pro:0,enterprise:0},subscriptionCount:0,activeSubscriptions:0,usageRecordCount:0,totalUsage:{api_calls:0,storage_bytes:0,ai_requests:0}};function $t(s){const r=JSON.parse(JSON.stringify(kt)),o=D(s);if(!o||typeof o!="object"||Array.isArray(o))return r;if(r.tenantCount=F(o.tenantCount,0),r.subscriptionCount=F(o.subscriptionCount,0),r.activeSubscriptions=F(o.activeSubscriptions,0),r.usageRecordCount=F(o.usageRecordCount,0),o.byStatus&&typeof o.byStatus=="object")for(const w of Object.keys(r.byStatus))r.byStatus[w]=F(o.byStatus[w],0);if(o.byPlan&&typeof o.byPlan=="object")for(const w of Object.keys(r.byPlan))r.byPlan[w]=F(o.byPlan[w],0);if(o.totalUsage&&typeof o.totalUsage=="object")for(const w of Object.keys(r.totalUsage))r.totalUsage[w]=F(o.totalUsage[w],0);return r}function ve(s){if(s==null||s==="")return"—";const r=typeof s=="number"?new Date(s):new Date(String(s));return isNaN(r.getTime())?String(s):r.toLocaleString("zh-CN",{hour12:!1})}function ye(s){return typeof s!="number"||!Number.isFinite(s)||s<0?"—":s===0?"0":s<1024?`${s} B`:s<1024*1024?`${(s/1024).toFixed(1)} KB`:s<1024*1024*1024?`${(s/1024/1024).toFixed(1)} MB`:`${(s/1024/1024/1024).toFixed(2)} GB`}function ht(s=new Date){const r=s.getFullYear(),o=String(s.getMonth()+1).padStart(2,"0");return`${r}-${o}`}const St={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ct={class:"page-title"},xt={class:"page-sub"},wt={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},At={class:"filter-bar"},zt={style:{color:"var(--text-primary)","font-weight":"500"}},qt={style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px","font-family":"monospace"}},Ft={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Lt={key:1,style:{color:"var(--text-muted)"}},jt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},It={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Ut={style:{color:"var(--text-primary)","font-weight":"500"}},Tt={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},Pt={key:0,style:{color:"#722ed1","font-weight":"500"}},Nt={key:1,style:{color:"var(--text-muted)"}},Ot={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Mt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Rt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Et={class:"plan-fee"},Bt={key:0},Dt={class:"plan-fee-unit"},Kt={key:1,style:{color:"#722ed1"}},Jt={class:"plan-section"},Qt={class:"plan-section-title"},Vt={class:"plan-quota-label"},Wt={class:"plan-quota-value"},Gt={class:"plan-section"},Yt={class:"plan-section-title"},Ht={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Xt={style:{"font-family":"monospace",color:"var(--text-primary)"}},Zt={key:0},ea={style:{"font-family":"monospace"}},ta={key:1,style:{"margin-top":"8px"}},aa={__name:"Tenant",setup(s){const r=at(),{t:o}=tt(),w=S(!1),K=S(!1),oe=S(!1),se=S(!1),re=S(!1),J=S([]),ue=S([]),be=S([]),ge=S([]),L=S({tenantCount:0,byStatus:{active:0,suspended:0,deleted:0},byPlan:{free:0,starter:0,pro:0,enterprise:0},subscriptionCount:0,activeSubscriptions:0,usageRecordCount:0,totalUsage:{api_calls:0,storage_bytes:0,ai_requests:0}}),ie=S("tenants"),Q=S(""),V=S(""),H=S(!1),X=S(!1),de=S(!1),Z=S(!1),x=ne({name:"",slug:"",plan:"free",owner:""}),$=ne({tenantId:"",plan:"pro",amount:null,duration:720*60*60*1e3}),ce=S(""),q=ne({tenantId:null,metric:"api_calls",period:""}),_=ne({tenantId:null,metric:"api_calls",value:1,period:""}),k=S(null),Ue=le(()=>[{title:o("tenant.tenantCols.name"),key:"name"},{title:o("tenant.tenantCols.plan"),key:"plan",width:"110px"},{title:o("tenant.tenantCols.status"),key:"status",width:"100px"},{title:o("tenant.tenantCols.owner"),key:"owner",width:"160px"},{title:o("tenant.tenantCols.createdAt"),key:"createdAt",width:"160px"},{title:o("tenant.tenantCols.action"),key:"action",width:"280px"}]),Te=le(()=>[{title:o("tenant.subscriptionCols.tenant"),key:"tenant"},{title:o("tenant.subscriptionCols.plan"),key:"plan",width:"110px"},{title:o("tenant.subscriptionCols.amount"),key:"amount",width:"100px"},{title:o("tenant.subscriptionCols.status"),key:"status",width:"110px"},{title:o("tenant.subscriptionCols.startedAt"),key:"startedAt",width:"160px"},{title:o("tenant.subscriptionCols.expiresAt"),key:"expiresAt",width:"160px"},{title:o("tenant.subscriptionCols.action"),key:"action",width:"120px"}]),Pe=le(()=>{let e=J.value;return Q.value&&(e=e.filter(n=>n.plan===Q.value)),V.value&&(e=e.filter(n=>n.status===V.value)),e}),Ne=le(()=>ue.value.filter(e=>e.status==="active"&&typeof e.amount=="number").reduce((e,n)=>e+n.amount,0));function U(e){const n=`tenant.planLabels.${e}`,d=o(n);return d===n?e:d}function W(e){return{free:"default",starter:"blue",pro:"purple",enterprise:"gold"}[e]||"default"}function _e(e){const n=`tenant.tenantStatusLabels.${e}`,d=o(n);return d===n?e:d}function Oe(e){return{active:"green",suspended:"orange",deleted:"default"}[e]||"default"}function Me(e){const n=`tenant.subStatusLabels.${e}`,d=o(n);return d===n?e:d}function Re(e){return{active:"green",cancelled:"default",expired:"red",past_due:"orange"}[e]||"default"}function Ee(e){const n=J.value.find(d=>d.id===e);return n?n.name:o("tenant.deletedTenant")}function ke(e,n){return e==null?"—":n==="storage_bytes"?ye(e):String(e)}function Be(e,n){return e==null?o("tenant.planCard.unlimited"):n==="storage_bytes"?ye(e):e.toLocaleString()}function De({key:e}){e==="tenant"?H.value=!0:e==="quota"?(k.value=null,de.value=!0):e==="record"&&(Z.value=!0)}async function T(){w.value=!0;try{const[e,n,d,j,ee]=await Promise.all([r.execute("tenant list --json",1e4).catch(()=>({output:""})),r.execute("tenant subscriptions --json",1e4).catch(()=>({output:""})),r.execute("tenant plans --json",8e3).catch(()=>({output:""})),r.execute("tenant metrics --json",8e3).catch(()=>({output:""})),r.execute("tenant stats --json",8e3).catch(()=>({output:""}))]);J.value=yt(e.output),ue.value=gt(n.output),be.value=pt(d.output),ge.value=mt(j.output),L.value=$t(ee.output)}catch(e){m.error(o("tenant.msg.loadFailed")+": "+(e?.message||e))}finally{w.value=!1}}async function Ke(){const e=x.name.trim(),n=x.slug.trim();if(!e||!n){m.warning(o("tenant.msg.createFieldsEmpty"));return}if(!/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/.test(n)){m.warning(o("tenant.msg.slugInvalid"));return}K.value=!0;try{const d=[`tenant create "${e.replace(/"/g,'\\"')}" "${n.replace(/"/g,'\\"')}"`];d.push(`--plan ${x.plan}`),x.owner.trim()&&d.push(`--owner "${x.owner.trim().replace(/"/g,'\\"')}"`),d.push("--json");const{output:j}=await r.execute(d.join(" "),1e4);if(/error|Error|失败/i.test(j)&&!/"id"/.test(j)){m.error(o("tenant.msg.createFailed")+": "+j.slice(0,120));return}m.success(o("tenant.msg.createSuccess")),H.value=!1,he(),await T()}catch(d){m.error(o("tenant.msg.createFailed")+": "+(d?.message||d))}finally{K.value=!1}}function Je(e){$.tenantId=e.id,$.plan=e.plan==="free"?"starter":e.plan,$.amount=null,$.duration=720*60*60*1e3,ce.value=e.name,X.value=!0}async function Qe(){oe.value=!0;try{const e=[`tenant subscribe ${$.tenantId}`];e.push(`--plan ${$.plan}`),$.amount!=null&&e.push(`--amount ${$.amount}`),$.duration&&e.push(`--duration-ms ${$.duration}`),e.push("--json");const{output:n}=await r.execute(e.join(" "),1e4);if(/error|Error|失败/i.test(n)&&!/"id"/.test(n)){m.error(o("tenant.msg.subscribeFailed")+": "+n.slice(0,120));return}m.success(o("tenant.msg.subscribeSuccess")),X.value=!1,Se(),ie.value="subscriptions",await T()}catch(e){m.error(o("tenant.msg.subscribeFailed")+": "+(e?.message||e))}finally{oe.value=!1}}async function Ve(e,n){if(n!==e.plan)try{const{output:d}=await r.execute(`tenant configure ${e.id} --plan ${n} --json`,8e3);if(/error|Error/i.test(d)&&!/"id"/.test(d)){m.error(o("tenant.msg.planChangeFailed")+": "+d.slice(0,120));return}m.success(o("tenant.msg.planChangeSuccess",{plan:U(n)})),await T()}catch(d){m.error(o("tenant.msg.planChangeFailed")+": "+(d?.message||d))}}async function $e(e,n){try{const{output:d}=await r.execute(`tenant configure ${e.id} --status ${n} --json`,8e3);if(/error|Error/i.test(d)&&!/"id"/.test(d)){m.error(o("tenant.msg.statusChangeFailed")+": "+d.slice(0,120));return}m.success(o(n==="active"?"tenant.msg.activated":"tenant.msg.suspended")),await T()}catch(d){m.error(o("tenant.msg.statusChangeFailed")+": "+(d?.message||d))}}async function We(e){try{const{output:n}=await r.execute(`tenant delete ${e.id} --json`,8e3);if(/error|Error/i.test(n)&&!/deleted|removed/.test(n)){m.error(o("tenant.msg.deleteFailed")+": "+n.slice(0,120));return}m.success(o("tenant.msg.deleteSuccess")),await T()}catch(n){m.error(o("tenant.msg.deleteFailed")+": "+(n?.message||n))}}async function Ge(e){try{const{output:n}=await r.execute(`tenant cancel ${e.tenantId}`,8e3);if(/error|Error/i.test(n)&&!/cancelled|cancel/i.test(n)){m.error(o("tenant.msg.cancelFailed")+": "+n.slice(0,120));return}m.success(o("tenant.msg.cancelSuccess")),await T()}catch(n){m.error(o("tenant.msg.cancelFailed")+": "+(n?.message||n))}}async function Ye(){if(!q.tenantId){m.warning(o("tenant.msg.tenantEmpty"));return}se.value=!0,k.value=null;try{const e=[`tenant check-quota ${q.tenantId} ${q.metric}`];q.period.trim()&&e.push(`--period ${q.period.trim()}`),e.push("--json");const{output:n}=await r.execute(e.join(" "),8e3),d=_t(n);if(!d){m.error(o("tenant.msg.checkFailed")+": "+n.slice(0,120));return}k.value=d,d.exceeded&&m.warning(o("tenant.msg.exceededWarning"))}catch(e){m.error(o("tenant.msg.checkFailed")+": "+(e?.message||e))}finally{se.value=!1}}async function He(){if(!_.tenantId){m.warning(o("tenant.msg.tenantEmpty"));return}if(_.value==null||_.value<0){m.warning(o("tenant.msg.valueInvalid"));return}re.value=!0;try{const e=[`tenant record ${_.tenantId} ${_.metric} ${_.value}`];_.period.trim()&&e.push(`--period ${_.period.trim()}`),e.push("--json");const{output:n}=await r.execute(e.join(" "),8e3);if(/error|Error/i.test(n)&&!/"id"|"tenant"/.test(n)){m.error(o("tenant.msg.recordFailed")+": "+n.slice(0,120));return}m.success(o("tenant.msg.recordSuccess")),Z.value=!1,Ce(),await T()}catch(e){m.error(o("tenant.msg.recordFailed")+": "+(e?.message||e))}finally{re.value=!1}}function he(){x.name="",x.slug="",x.plan="free",x.owner=""}function Se(){$.tenantId="",$.plan="pro",$.amount=null,$.duration=720*60*60*1e3,ce.value=""}function Ce(){_.tenantId=null,_.metric="api_calls",_.value=1,_.period=""}function xe(e){e.period||(e.period=ht())}return xe(q),xe(_),it(T),(e,n)=>{const d=y("a-button"),j=y("a-menu-item"),ee=y("a-menu"),we=y("a-dropdown"),Ae=y("a-space"),M=y("a-statistic"),P=y("a-card"),R=y("a-col"),ze=y("a-row"),N=y("a-tag"),O=y("a-radio-button"),pe=y("a-radio-group"),qe=y("a-popconfirm"),Fe=y("a-table"),fe=y("a-tab-pane"),Xe=y("a-tabs"),G=y("a-input"),A=y("a-form-item"),E=y("a-select-option"),B=y("a-select"),te=y("a-form"),ae=y("a-modal"),Le=y("a-input-number"),Ze=y("a-progress");return i(),f("div",null,[v("div",St,[v("div",null,[v("h2",Ct,u(e.$t("tenant.title")),1),v("p",xt,u(e.$t("tenant.subtitle")),1)]),l(Ae,null,{default:a(()=>[l(d,{loading:w.value,onClick:T},{icon:a(()=>[l(g(lt))]),default:a(()=>[p(" "+u(e.$t("tenant.refresh")),1)]),_:1},8,["loading"]),l(we,{trigger:["click"]},{overlay:a(()=>[l(ee,{onClick:De},{default:a(()=>[l(j,{key:"tenant"},{default:a(()=>[l(g(me)),p(" "+u(e.$t("tenant.actions.tenant")),1)]),_:1}),l(j,{key:"quota"},{default:a(()=>[l(g(st)),p(" "+u(e.$t("tenant.actions.quota")),1)]),_:1}),l(j,{key:"record"},{default:a(()=>[l(g(rt)),p(" "+u(e.$t("tenant.actions.record")),1)]),_:1})]),_:1})]),default:a(()=>[l(d,{type:"primary"},{icon:a(()=>[l(g(ot))]),default:a(()=>[p(" "+u(e.$t("tenant.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),l(ze,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[l(R,{xs:12,sm:8,lg:5},{default:a(()=>[l(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(M,{title:e.$t("tenant.stats.total"),value:L.value.tenantCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[l(g(me))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(R,{xs:12,sm:8,lg:5},{default:a(()=>[l(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(M,{title:e.$t("tenant.stats.active"),value:L.value.activeSubscriptions,"value-style":{color:L.value.activeSubscriptions>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:a(()=>[l(g(je))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(R,{xs:12,sm:8,lg:5},{default:a(()=>[l(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(M,{title:e.$t("tenant.stats.mrr"),value:Ne.value,precision:0,prefix:"¥","value-style":{color:"#722ed1",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),l(R,{xs:12,sm:8,lg:5},{default:a(()=>[l(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(M,{title:e.$t("tenant.stats.apiCalls"),value:L.value.totalUsage.api_calls,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:a(()=>[l(g(ut))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(R,{xs:24,sm:8,lg:4},{default:a(()=>[l(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(M,{title:e.$t("tenant.stats.storage"),value:g(ye)(L.value.totalUsage.storage_bytes),"value-style":{color:"#faad14",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),L.value.tenantCount>0?(i(),b(P,{key:0,title:e.$t("tenant.plansCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[l(Ae,{size:[12,8],wrap:""},{default:a(()=>[(i(!0),f(C,null,z(g(Y),t=>(i(),b(N,{key:t,color:W(t)},{default:a(()=>[p(u(U(t))+": "+u(L.value.byPlan[t]||0),1)]),_:2},1032,["color"]))),128)),v("span",wt,u(e.$t("tenant.summarySuffix",{active:L.value.byStatus.active,suspended:L.value.byStatus.suspended,deleted:L.value.byStatus.deleted})),1)]),_:1})]),_:1},8,["title"])):h("",!0),l(Xe,{activeKey:ie.value,"onUpdate:activeKey":n[2]||(n[2]=t=>ie.value=t),class:"tenant-tabs"},{default:a(()=>[l(fe,{key:"tenants",tab:e.$t("tenant.tabs.tenants")},{default:a(()=>[v("div",At,[l(pe,{value:Q.value,"onUpdate:value":n[0]||(n[0]=t=>Q.value=t),size:"small"},{default:a(()=>[l(O,{value:""},{default:a(()=>[p(u(e.$t("tenant.filter.allPlans")),1)]),_:1}),(i(!0),f(C,null,z(g(Y),t=>(i(),b(O,{key:t,value:t},{default:a(()=>[p(u(U(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(pe,{value:V.value,"onUpdate:value":n[1]||(n[1]=t=>V.value=t),size:"small","button-style":"solid"},{default:a(()=>[l(O,{value:""},{default:a(()=>[p(u(e.$t("tenant.filter.allStatuses")),1)]),_:1}),(i(!0),f(C,null,z(g(dt),t=>(i(),b(O,{key:t,value:t},{default:a(()=>[p(u(_e(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),l(Fe,{columns:Ue.value,"data-source":Pe.value,pagination:{pageSize:20,showTotal:t=>e.$t("tenant.table.totalSuffix",{n:t})},size:"small",loading:w.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:t,record:c})=>[t.key==="name"?(i(),f(C,{key:0},[v("span",zt,u(c.name),1),v("div",qt,u(c.slug),1)],64)):h("",!0),t.key==="plan"?(i(),b(N,{key:1,color:W(c.plan)},{default:a(()=>[p(u(U(c.plan)),1)]),_:2},1032,["color"])):h("",!0),t.key==="status"?(i(),b(N,{key:2,color:Oe(c.status)},{default:a(()=>[p(u(_e(c.status)),1)]),_:2},1032,["color"])):h("",!0),t.key==="owner"?(i(),f(C,{key:3},[c.ownerId?(i(),f("span",Ft,u(c.ownerId),1)):(i(),f("span",Lt,"—"))],64)):h("",!0),t.key==="createdAt"?(i(),f("span",jt,u(g(ve)(c.createdAt)),1)):h("",!0),t.key==="action"?(i(),f(C,{key:5},[l(d,{size:"small",type:"link",onClick:I=>Je(c)},{default:a(()=>[p(u(e.$t("tenant.table.actionSubscribe")),1)]),_:1},8,["onClick"]),l(we,{trigger:["click"]},{overlay:a(()=>[l(ee,{onClick:I=>Ve(c,I.key)},{default:a(()=>[(i(!0),f(C,null,z(g(Y),I=>(i(),b(j,{key:I,disabled:I===c.plan},{default:a(()=>[p(u(U(I)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:a(()=>[l(d,{size:"small",type:"link"},{default:a(()=>[p(u(e.$t("tenant.table.actionPlanDropdown")),1)]),_:1})]),_:2},1024),c.status==="active"?(i(),b(d,{key:0,size:"small",type:"link",onClick:I=>$e(c,"suspended")},{default:a(()=>[p(u(e.$t("tenant.table.actionSuspend")),1)]),_:1},8,["onClick"])):c.status==="suspended"?(i(),b(d,{key:1,size:"small",type:"link",onClick:I=>$e(c,"active")},{default:a(()=>[p(u(e.$t("tenant.table.actionActivate")),1)]),_:1},8,["onClick"])):h("",!0),c.status!=="deleted"?(i(),b(qe,{key:2,title:e.$t("tenant.deleteConfirm.title"),"ok-text":e.$t("tenant.deleteConfirm.ok"),"cancel-text":e.$t("tenant.deleteConfirm.cancel"),onConfirm:I=>We(c)},{default:a(()=>[l(d,{size:"small",type:"link",danger:""},{default:a(()=>[p(u(e.$t("tenant.deleteConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):h("",!0)],64)):h("",!0)]),emptyText:a(()=>[v("div",It,[l(g(me),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+u(Q.value||V.value?e.$t("tenant.table.emptyTenantsFiltered"):e.$t("tenant.table.emptyTenants")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(fe,{key:"subscriptions",tab:e.$t("tenant.tabs.subscriptions")},{default:a(()=>[l(Fe,{columns:Te.value,"data-source":ue.value,pagination:{pageSize:20,showTotal:t=>e.$t("tenant.table.totalSuffix",{n:t})},size:"small",loading:w.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:t,record:c})=>[t.key==="tenant"?(i(),f(C,{key:0},[v("span",Ut,u(Ee(c.tenantId)),1),v("div",Tt,u(c.tenantId.slice(0,8)),1)],64)):h("",!0),t.key==="plan"?(i(),b(N,{key:1,color:W(c.plan)},{default:a(()=>[p(u(U(c.plan)),1)]),_:2},1032,["color"])):h("",!0),t.key==="amount"?(i(),f(C,{key:2},[c.amount!=null?(i(),f("span",Pt,"¥"+u(c.amount),1)):(i(),f("span",Nt,"—"))],64)):h("",!0),t.key==="status"?(i(),b(N,{key:3,color:Re(c.status)},{default:a(()=>[p(u(Me(c.status)),1)]),_:2},1032,["color"])):h("",!0),t.key==="startedAt"?(i(),f("span",Ot,u(g(ve)(c.startedAt)),1)):h("",!0),t.key==="expiresAt"?(i(),f("span",Mt,u(g(ve)(c.expiresAt)),1)):h("",!0),t.key==="action"?(i(),f(C,{key:6},[c.status==="active"?(i(),b(qe,{key:0,title:e.$t("tenant.cancelConfirm.title"),"ok-text":e.$t("tenant.cancelConfirm.ok"),"cancel-text":e.$t("tenant.cancelConfirm.cancel"),onConfirm:I=>Ge(c)},{default:a(()=>[l(d,{size:"small",type:"link",danger:""},{default:a(()=>[p(u(e.$t("tenant.cancelConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):h("",!0)],64)):h("",!0)]),emptyText:a(()=>[v("div",Rt,[l(g(je),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+u(e.$t("tenant.table.emptySubscriptions")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(fe,{key:"plans",tab:e.$t("tenant.tabs.plans")},{default:a(()=>[l(ze,{gutter:[16,16]},{default:a(()=>[(i(!0),f(C,null,z(be.value,t=>(i(),b(R,{key:t.id,xs:24,sm:12,lg:6},{default:a(()=>[l(P,{title:t.name,size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:a(()=>[l(N,{color:W(t.id)},{default:a(()=>[p(u(t.id),1)]),_:2},1032,["color"])]),default:a(()=>[v("div",Et,[t.monthlyFee!=null?(i(),f("span",Bt,[p("¥"+u(t.monthlyFee)+" ",1),v("span",Dt,u(e.$t("tenant.planCard.monthlySuffix")),1)])):(i(),f("span",Kt,u(e.$t("tenant.planCard.contactSales")),1))]),v("div",Jt,[v("div",Qt,u(e.$t("tenant.planCard.quotas")),1),(i(!0),f(C,null,z(ge.value,c=>(i(),f("div",{key:c.id,class:"plan-quota-row"},[v("span",Vt,u(c.name),1),v("span",Wt,u(Be(t.quotas?.[c.id],c.id)),1)]))),128))]),v("div",Gt,[v("div",Yt,u(e.$t("tenant.planCard.features")),1),(i(!0),f(C,null,z(t.features,c=>(i(),b(N,{key:c,style:{"font-size":"10px",margin:"1px"}},{default:a(()=>[p(u(c),1)]),_:2},1024))),128))])]),_:2},1032,["title"])]),_:2},1024))),128))]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),l(ae,{open:H.value,"onUpdate:open":n[7]||(n[7]=t=>H.value=t),title:e.$t("tenant.create_modal.title"),"confirm-loading":K.value,width:520,"ok-text":e.$t("tenant.create_modal.ok"),"cancel-text":e.$t("tenant.create_modal.cancel"),onOk:Ke,onCancel:he},{default:a(()=>[l(te,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[l(A,{label:e.$t("tenant.create_modal.nameLabel"),required:""},{default:a(()=>[l(G,{value:x.name,"onUpdate:value":n[3]||(n[3]=t=>x.name=t),placeholder:e.$t("tenant.create_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(A,{label:e.$t("tenant.create_modal.slugLabel"),required:""},{default:a(()=>[l(G,{value:x.slug,"onUpdate:value":n[4]||(n[4]=t=>x.slug=t),placeholder:e.$t("tenant.create_modal.slugPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(A,{label:e.$t("tenant.create_modal.planLabel")},{default:a(()=>[l(B,{value:x.plan,"onUpdate:value":n[5]||(n[5]=t=>x.plan=t)},{default:a(()=>[(i(!0),f(C,null,z(g(Y),t=>(i(),b(E,{key:t,value:t},{default:a(()=>[p(u(U(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l(A,{label:e.$t("tenant.create_modal.ownerLabel")},{default:a(()=>[l(G,{value:x.owner,"onUpdate:value":n[6]||(n[6]=t=>x.owner=t),placeholder:e.$t("tenant.create_modal.ownerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),l(ae,{open:X.value,"onUpdate:open":n[11]||(n[11]=t=>X.value=t),title:e.$t("tenant.subscribe_modal.title",{name:ce.value}),"confirm-loading":oe.value,width:500,"ok-text":e.$t("tenant.subscribe_modal.ok"),"cancel-text":e.$t("tenant.subscribe_modal.cancel"),onOk:Qe,onCancel:Se},{default:a(()=>[l(te,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[l(A,{label:e.$t("tenant.subscribe_modal.planLabel"),required:""},{default:a(()=>[l(B,{value:$.plan,"onUpdate:value":n[8]||(n[8]=t=>$.plan=t)},{default:a(()=>[(i(!0),f(C,null,z(g(Y),t=>(i(),b(E,{key:t,value:t},{default:a(()=>[p(u(U(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l(A,{label:e.$t("tenant.subscribe_modal.amountLabel")},{default:a(()=>[l(Le,{value:$.amount,"onUpdate:value":n[9]||(n[9]=t=>$.amount=t),min:0,placeholder:e.$t("tenant.subscribe_modal.amountPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"]),l(A,{label:e.$t("tenant.subscribe_modal.durationLabel")},{default:a(()=>[l(pe,{value:$.duration,"onUpdate:value":n[10]||(n[10]=t=>$.duration=t)},{default:a(()=>[l(O,{value:720*60*60*1e3},{default:a(()=>[p(u(e.$t("tenant.subscribe_modal.duration30")),1)]),_:1}),l(O,{value:2160*60*60*1e3},{default:a(()=>[p(u(e.$t("tenant.subscribe_modal.duration90")),1)]),_:1}),l(O,{value:365*24*60*60*1e3},{default:a(()=>[p(u(e.$t("tenant.subscribe_modal.duration365")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),l(ae,{open:de.value,"onUpdate:open":n[15]||(n[15]=t=>de.value=t),title:e.$t("tenant.quota_modal.title"),"confirm-loading":se.value,width:500,"ok-text":e.$t("tenant.quota_modal.ok"),"cancel-text":e.$t("tenant.quota_modal.cancel"),onOk:Ye},{default:a(()=>[l(te,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[l(A,{label:e.$t("tenant.quota_modal.tenantLabel"),required:""},{default:a(()=>[l(B,{value:q.tenantId,"onUpdate:value":n[12]||(n[12]=t=>q.tenantId=t),"show-search":"",placeholder:e.$t("tenant.quota_modal.tenantPlaceholder")},{default:a(()=>[(i(!0),f(C,null,z(J.value,t=>(i(),b(E,{key:t.id,value:t.id},{default:a(()=>[p(u(t.name)+" ("+u(t.slug)+")",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),l(A,{label:e.$t("tenant.quota_modal.metricLabel"),required:""},{default:a(()=>[l(B,{value:q.metric,"onUpdate:value":n[13]||(n[13]=t=>q.metric=t)},{default:a(()=>[(i(!0),f(C,null,z(g(Ie),t=>(i(),b(E,{key:t,value:t},{default:a(()=>[p(u(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l(A,{label:e.$t("tenant.quota_modal.periodLabel")},{default:a(()=>[l(G,{value:q.period,"onUpdate:value":n[14]||(n[14]=t=>q.period=t),placeholder:e.$t("tenant.quota_modal.periodPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),k.value?(i(),b(P,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:a(()=>[l(M,{title:e.$t("tenant.quota_modal.resultTitle"),value:k.value.unlimited?e.$t("tenant.quota_modal.unlimited"):k.value.exceeded?e.$t("tenant.quota_modal.exceeded"):e.$t("tenant.quota_modal.ok_state"),"value-style":{color:k.value.exceeded?"#ff4d4f":k.value.unlimited?"#722ed1":"#52c41a"}},null,8,["title","value","value-style"]),v("div",Ht,[v("div",null,[p(u(e.$t("tenant.quota_modal.planLine"))+" ",1),l(N,{color:W(k.value.plan)},{default:a(()=>[p(u(U(k.value.plan)),1)]),_:1},8,["color"])]),v("div",null,u(e.$t("tenant.quota_modal.periodLine",{period:k.value.period})),1),v("div",null,[p(u(e.$t("tenant.quota_modal.usedLine"))+" ",1),v("span",Xt,u(ke(k.value.used,k.value.metric)),1)]),k.value.unlimited?h("",!0):(i(),f("div",Zt,[p(u(e.$t("tenant.quota_modal.limitLine"))+" ",1),v("span",ea,u(ke(k.value.limit,k.value.metric)),1)])),!k.value.unlimited&&k.value.limit>0?(i(),f("div",ta,[l(Ze,{percent:Math.min(100,Math.round(100*k.value.used/k.value.limit)),size:"small",status:k.value.exceeded?"exception":"active"},null,8,["percent","status"])])):h("",!0)])]),_:1})):h("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),l(ae,{open:Z.value,"onUpdate:open":n[20]||(n[20]=t=>Z.value=t),title:e.$t("tenant.record_modal.title"),"confirm-loading":re.value,width:500,"ok-text":e.$t("tenant.record_modal.ok"),"cancel-text":e.$t("tenant.record_modal.cancel"),onOk:He,onCancel:Ce},{default:a(()=>[l(te,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[l(A,{label:e.$t("tenant.record_modal.tenantLabel"),required:""},{default:a(()=>[l(B,{value:_.tenantId,"onUpdate:value":n[16]||(n[16]=t=>_.tenantId=t),"show-search":"",placeholder:e.$t("tenant.record_modal.tenantPlaceholder")},{default:a(()=>[(i(!0),f(C,null,z(J.value,t=>(i(),b(E,{key:t.id,value:t.id},{default:a(()=>[p(u(t.name)+" ("+u(t.slug)+")",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),l(A,{label:e.$t("tenant.record_modal.metricLabel"),required:""},{default:a(()=>[l(B,{value:_.metric,"onUpdate:value":n[17]||(n[17]=t=>_.metric=t)},{default:a(()=>[(i(!0),f(C,null,z(g(Ie),t=>(i(),b(E,{key:t,value:t},{default:a(()=>[p(u(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l(A,{label:e.$t("tenant.record_modal.valueLabel"),required:""},{default:a(()=>[l(Le,{value:_.value,"onUpdate:value":n[18]||(n[18]=t=>_.value=t),min:0,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),l(A,{label:e.$t("tenant.record_modal.periodLabel")},{default:a(()=>[l(G,{value:_.period,"onUpdate:value":n[19]||(n[19]=t=>_.period=t),placeholder:e.$t("tenant.record_modal.periodPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},ua=et(aa,[["__scopeId","data-v-7210f1ac"]]);export{ua as default};