chainlesschain 0.160.1 → 0.161.2

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 (129) hide show
  1. package/package.json +1 -1
  2. package/src/assets/web-panel/.build-hash +1 -1
  3. package/src/assets/web-panel/assets/{AIOps-BHiKMxFI.js → AIOps-CoZ9bIqF.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-5QD5uzWP.js → ActionButton-BvMi4awy.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-D1JxsGBN.js → Analytics-hRk2ziup.js} +1 -1
  6. package/src/assets/web-panel/assets/{AppLayout-DykU9tOE.js → AppLayout-_JR3Gko8.js} +1 -1
  7. package/src/assets/web-panel/assets/{Audit-TGBqld9c.js → Audit-D8WmaHdX.js} +1 -1
  8. package/src/assets/web-panel/assets/{Backup-DjpzIwA6.js → Backup-CogYVeiE.js} +1 -1
  9. package/src/assets/web-panel/assets/{BaseInput-joQlVauq.js → BaseInput-NAp5_OPY.js} +1 -1
  10. package/src/assets/web-panel/assets/{Chat-9TYfosy-.js → Chat-DkQnhjfk.js} +1 -1
  11. package/src/assets/web-panel/assets/{Checkbox-OEOFA9GM.js → Checkbox-C9dkWb-7.js} +1 -1
  12. package/src/assets/web-panel/assets/{Codegen-5H5UgHJu.js → Codegen-BHyJ3j-p.js} +1 -1
  13. package/src/assets/web-panel/assets/{Col-BnLUipDp.js → Col-JyQOivHb.js} +1 -1
  14. package/src/assets/web-panel/assets/{Community-BF3R5GAl.js → Community-UMq5QuBA.js} +1 -1
  15. package/src/assets/web-panel/assets/{Compact-C1EkTFek.js → Compact-DGlwooBJ.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compliance-CpP-ODRU.js → Compliance-2rWGO55k.js} +1 -1
  17. package/src/assets/web-panel/assets/{Cowork-CCgGSKVR.js → Cowork-V-tDxtrt.js} +1 -1
  18. package/src/assets/web-panel/assets/{Cron-CZ5pjRxn.js → Cron-YgEeQvdV.js} +1 -1
  19. package/src/assets/web-panel/assets/{Crosschain-C0P-5sm3.js → Crosschain-Cgd5cRKn.js} +1 -1
  20. package/src/assets/web-panel/assets/{DID-DPZKMApP.js → DID-swdBCdMZ.js} +1 -1
  21. package/src/assets/web-panel/assets/{Dashboard-G-BDDAov.js → Dashboard-ClnWtxsT.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dropdown-CeywCcVQ.js → Dropdown-mlITwb7d.js} +1 -1
  23. package/src/assets/web-panel/assets/{Federation-DuFRY867.js → Federation-DtUN3wQa.js} +1 -1
  24. package/src/assets/web-panel/assets/{FormItemContext-CFSiPqbu.js → FormItemContext-BYmWDwAT.js} +1 -1
  25. package/src/assets/web-panel/assets/{Git-CjVRJDLg.js → Git-Du1k1iHz.js} +1 -1
  26. package/src/assets/web-panel/assets/{Governance-C0lyocJc.js → Governance-B2TFaWsf.js} +1 -1
  27. package/src/assets/web-panel/assets/{Inference-BVSAexgk.js → Inference-Cm_hmXla.js} +1 -1
  28. package/src/assets/web-panel/assets/{KnowledgeGraph-SE4jCwIn.js → KnowledgeGraph-DLaLMo4r.js} +1 -1
  29. package/src/assets/web-panel/assets/{Logs-BD5C-wTx.js → Logs-CElvIBBJ.js} +1 -1
  30. package/src/assets/web-panel/assets/{Marketplace-CL93dFBs.js → Marketplace-BlR3RCDV.js} +1 -1
  31. package/src/assets/web-panel/assets/{McpTools-x-Tibae-.js → McpTools-BpHkrlka.js} +1 -1
  32. package/src/assets/web-panel/assets/{Memory-CR8LXq37.js → Memory-DeU9ys_m.js} +1 -1
  33. package/src/assets/web-panel/assets/Mtc-CCJZpnJo.js +6 -0
  34. package/src/assets/web-panel/assets/Mtc-Cc8OJxe_.css +1 -0
  35. package/src/assets/web-panel/assets/{NLProgramming-B09F6gt2.js → NLProgramming-B_Tie6j1.js} +1 -1
  36. package/src/assets/web-panel/assets/{Notes-BYIn2GOe.js → Notes-BcpuirPj.js} +1 -1
  37. package/src/assets/web-panel/assets/{Organization-CybJTFN9.js → Organization-B_SHESSc.js} +1 -1
  38. package/src/assets/web-panel/assets/{Overflow-W4YLQ7yY.js → Overflow-R2SOGT0l.js} +1 -1
  39. package/src/assets/web-panel/assets/{P2P-kVj43R4j.js → P2P-IYYy3cEd.js} +1 -1
  40. package/src/assets/web-panel/assets/{Permissions-CfYE4XFJ.js → Permissions-CR1N42yW.js} +1 -1
  41. package/src/assets/web-panel/assets/{Pipeline-BVLo32Ak.js → Pipeline-nwFpKsU_.js} +1 -1
  42. package/src/assets/web-panel/assets/{Privacy-Efyb3xpJ.js → Privacy-BGpz72PX.js} +1 -1
  43. package/src/assets/web-panel/assets/{ProjectSettings-cBqrIhNN.js → ProjectSettings-CEDhpgbs.js} +1 -1
  44. package/src/assets/web-panel/assets/{Projects-BYY38oZd.js → Projects-DABi6ylb.js} +1 -1
  45. package/src/assets/web-panel/assets/{Providers-BsS27cWs.js → Providers-HzrcE8ma.js} +1 -1
  46. package/src/assets/web-panel/assets/{Recommend-BvMXwWFN.js → Recommend-BPhQwye7.js} +1 -1
  47. package/src/assets/web-panel/assets/{Reputation-DmwTtBfl.js → Reputation-BL6hTN1s.js} +1 -1
  48. package/src/assets/web-panel/assets/{Row-N-X7EJ3w.js → Row-2akLU3YS.js} +1 -1
  49. package/src/assets/web-panel/assets/{RssFeed-D9TjnwgF.js → RssFeed-D6qNq6Ht.js} +1 -1
  50. package/src/assets/web-panel/assets/{Search-Hapv-QkV.js → Search-R_b-u9oL.js} +1 -1
  51. package/src/assets/web-panel/assets/{Security-DWbFJK10.js → Security-DdW4hu_4.js} +1 -1
  52. package/src/assets/web-panel/assets/{Services-BPUmhVoH.js → Services-CnzEzGFN.js} +1 -1
  53. package/src/assets/web-panel/assets/{Skeleton-Bo5qPHbE.js → Skeleton-D6RevdW2.js} +1 -1
  54. package/src/assets/web-panel/assets/{Skills-JJ8uInMW.js → Skills-DD5ReHH7.js} +1 -1
  55. package/src/assets/web-panel/assets/{Sla-CEDF9zdV.js → Sla-CaQOOsjD.js} +1 -1
  56. package/src/assets/web-panel/assets/{SpeechSettings-oIoX_vCx.js → SpeechSettings-D-pGIn9Z.js} +1 -1
  57. package/src/assets/web-panel/assets/{Tasks-Cx5wgv5Z.js → Tasks-BbdO_i4Q.js} +1 -1
  58. package/src/assets/web-panel/assets/{Templates-BomcBlkN.js → Templates-CupAugDn.js} +1 -1
  59. package/src/assets/web-panel/assets/{Tenant-BxSQZUNh.js → Tenant-rseAzHcY.js} +1 -1
  60. package/src/assets/web-panel/assets/{Tokens-BlPPoB3C.js → Tokens-DXMokNbR.js} +1 -1
  61. package/src/assets/web-panel/assets/{Trigger-Bhjmjsc5.js → Trigger-DkSZjOlY.js} +1 -1
  62. package/src/assets/web-panel/assets/{Trust-Dsjv7rkb.js → Trust-CKb7QDH1.js} +1 -1
  63. package/src/assets/web-panel/assets/{VideoEditing-BsVR1PN8.js → VideoEditing-CSOjdBZg.js} +1 -1
  64. package/src/assets/web-panel/assets/{Wallet-dcRAYsdL.js → Wallet-DHbi5dHt.js} +1 -1
  65. package/src/assets/web-panel/assets/{WebAuthn-oqIS5PCi.js → WebAuthn-BkGDI33-.js} +1 -1
  66. package/src/assets/web-panel/assets/{WorkflowEditor-C_fYMBvB.js → WorkflowEditor-BFZ3RYva.js} +1 -1
  67. package/src/assets/web-panel/assets/{colors-D2P6CqS5.js → colors-D2tTvuDI.js} +1 -1
  68. package/src/assets/web-panel/assets/{compact-item-CG7qutT_.js → compact-item-CqCEUZiy.js} +1 -1
  69. package/src/assets/web-panel/assets/{createContext-y4UPKgbA.js → createContext-C6HFlAQP.js} +1 -1
  70. package/src/assets/web-panel/assets/{hasIn-Butbu9jZ.js → hasIn-yp2CbhYc.js} +1 -1
  71. package/src/assets/web-panel/assets/index-4cn1LmJ9.js +1 -0
  72. package/src/assets/web-panel/assets/{index-BtuwtDUE.js → index-B0jkl2Zb.js} +1 -1
  73. package/src/assets/web-panel/assets/{index-YmGOWX7h.js → index-B2qFUwGb.js} +1 -1
  74. package/src/assets/web-panel/assets/{index-BEfvpbz-.js → index-B74gWYqD.js} +1 -1
  75. package/src/assets/web-panel/assets/{index-BJN_3RTO.js → index-B8Qxu0q2.js} +1 -1
  76. package/src/assets/web-panel/assets/{index-C2K61jP8.js → index-B9b_mz4I.js} +1 -1
  77. package/src/assets/web-panel/assets/index-BAA1SFp1.js +1 -0
  78. package/src/assets/web-panel/assets/{index-rIbVsjde.js → index-BJeE7n_I.js} +1 -1
  79. package/src/assets/web-panel/assets/{index-Ceaxjpqh.js → index-BJoK7MkB.js} +1 -1
  80. package/src/assets/web-panel/assets/{index-CYlDKn3O.js → index-BTL2yIvT.js} +1 -1
  81. package/src/assets/web-panel/assets/{index-DrVnyYpX.js → index-BlVnFOFL.js} +1 -1
  82. package/src/assets/web-panel/assets/{index-89HJLKZ-.js → index-Blq49aTW.js} +1 -1
  83. package/src/assets/web-panel/assets/{index-vC5cTycG.js → index-BxSsO6Sm.js} +1 -1
  84. package/src/assets/web-panel/assets/{index-38mVlGHc.js → index-CA3g3EpL.js} +1 -1
  85. package/src/assets/web-panel/assets/{index-DLMJy9pE.js → index-CFoFkVUt.js} +1 -1
  86. package/src/assets/web-panel/assets/{index-DtNHlrxp.js → index-CWhXxdyo.js} +1 -1
  87. package/src/assets/web-panel/assets/{index-Bs9aHxDD.js → index-CXf0zL5i.js} +1 -1
  88. package/src/assets/web-panel/assets/{index-BQr8Y0o5.js → index-CcwZodUl.js} +1 -1
  89. package/src/assets/web-panel/assets/{index-DdgjeX4z.js → index-Cd6m6ynF.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-BQfow_sh.js → index-Cfy9l115.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-C1mK1Ga3.js → index-CijiVpfO.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-hSilB_Q-.js → index-Cpfx7-LN.js} +1 -1
  93. package/src/assets/web-panel/assets/{index-BYZPJS7A.js → index-CrEEL63u.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-C_8hWf5_.js → index-CucxAdwN.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-qXvwlbkq.js → index-CvuBD5TK.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-CyqU4Tck.js → index-Cw4v7ezB.js} +3 -3
  97. package/src/assets/web-panel/assets/{index-B6U6cYUa.js → index-D34iabcS.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-BvJgRWBq.js → index-DEKuiAPQ.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-Cc77JZKd.js → index-Dj4P0iWm.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-CAeKBs9n.js → index-DjeNNVwu.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-B4Jfv4EB.js → index-DlgMVieO.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-CWh3IxEh.js → index-DnehXcB-.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-Ci6jXp3l.js → index-JszcDpsT.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-BCQ0WlB2.js → index-KdFFI-p3.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-DnI4Aq0q.js → index-NNymVAza.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-gWmZm8_Q.js → index-aw2DwKj-.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-Dx_ZTZo_.js → index-nzDx0JAR.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-C1ucrJLg.js → index-w1xShUDf.js} +1 -1
  109. package/src/assets/web-panel/assets/{initDefaultProps-CZRZ-1bk.js → initDefaultProps-DfdVxwz6.js} +1 -1
  110. package/src/assets/web-panel/assets/{motion-CvU8SiWF.js → motion-CL0bdvJg.js} +1 -1
  111. package/src/assets/web-panel/assets/{move-ipAfWhya.js → move-Bo9Fgzv7.js} +1 -1
  112. package/src/assets/web-panel/assets/{omit-D6bJEjz9.js → omit-C-cc6wHr.js} +1 -1
  113. package/src/assets/web-panel/assets/{pickAttrs-Dpvzf7sL.js → pickAttrs-CjLp5RN-.js} +1 -1
  114. package/src/assets/web-panel/assets/{placementArrow-D_tEolP1.js → placementArrow-CJa8gsqa.js} +1 -1
  115. package/src/assets/web-panel/assets/{responsiveObserve-BEFI7neO.js → responsiveObserve-CcDj3P-p.js} +1 -1
  116. package/src/assets/web-panel/assets/{slide-Bte_KOqM.js → slide-CpvbHO26.js} +1 -1
  117. package/src/assets/web-panel/assets/{statusUtils-K4xaDRuO.js → statusUtils-BK69kP1U.js} +1 -1
  118. package/src/assets/web-panel/assets/{styleChecker-Cl9YgOVY.js → styleChecker-CDvBRzsG.js} +1 -1
  119. package/src/assets/web-panel/assets/{useFlexGapSupport-DNstl1wK.js → useFlexGapSupport-CRN_hzJt.js} +1 -1
  120. package/src/assets/web-panel/assets/{vnode-ChB-8cXr.js → vnode-Bzp-FsbB.js} +1 -1
  121. package/src/assets/web-panel/assets/{zoom-meTNBulL.js → zoom-BHqpWXJV.js} +1 -1
  122. package/src/assets/web-panel/index.html +1 -1
  123. package/src/commands/crosschain.js +564 -8
  124. package/src/commands/mtc.js +1334 -0
  125. package/src/lib/cross-chain-mtc.js +904 -0
  126. package/src/assets/web-panel/assets/Mtc-C-PfF5B3.css +0 -1
  127. package/src/assets/web-panel/assets/Mtc-CEtRtMcc.js +0 -1
  128. package/src/assets/web-panel/assets/index-B5FRjJMb.js +0 -1
  129. package/src/assets/web-panel/assets/index-B7FV5EnN.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chainlesschain",
3
- "version": "0.160.1",
3
+ "version": "0.161.2",
4
4
  "description": "CLI for ChainlessChain - install, configure, and manage your personal AI management system",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1 +1 @@
1
- 61ec643a856016905bbc820d1f41657bea6741e8b9b3e96bb8bb35ee8112d39b
1
+ 00e168caac99bf513ab498cee91cbd85f90bd646b1630752f0b5e82e689014e5
@@ -1 +1 @@
1
- import{_ as We,a as Ze,c as m}from"./index-CyqU4Tck.js";import{u as Ge}from"./ws-D_5-FRIb.js";import{s as He}from"./community-parser-CO25nZFt.js";import{R as Xe,al as Ye,A as re,i as ue,aI as de,aQ as et,c as tt,f as at}from"./icons-DvZE-RKs.js";import ot from"./index-89HJLKZ-.js";import{o as lt,M as v,R as z,P as r,c as a,N as l,Q as C,S as y,K as b,r as x,L as d,O as p,u as k,F as R,_ as E,f as M,h as st,a as X}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(i){const n=He(i);if(!n)return null;try{return JSON.parse(n)}catch{}const t=n.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!t)return null;try{return JSON.parse(t[0])}catch{return null}}const ce=Object.freeze(["P0","P1","P2","P3"]),it=Object.freeze(["open","acknowledged","resolved","closed"]);function g(i,n=0){return typeof i=="number"&&Number.isFinite(i)?i:n}function nt(i,n=0){if(!i||typeof i!="object")return null;const t=i.id||"";return t?{key:t,id:t,anomalyMetric:i.anomalyMetric??i.anomaly_metric??"",severity:String(i.severity||"P3"),status:String(i.status||"open").toLowerCase(),description:String(i.description||""),anomalyData:i.anomalyData??i.anomaly_data??null,remediationId:i.remediationId??i.remediation_id??null,postmortem:i.postmortem||"",acknowledgedAt:i.acknowledgedAt??i.acknowledged_at??null,resolvedAt:i.resolvedAt??i.resolved_at??null,createdAt:i.createdAt??i.created_at??null,_idx:n}:null}function rt(i){const n=B(i);return Array.isArray(n)?n.map(nt).filter(Boolean):[]}function ut(i,n=0){if(!i||typeof i!="object")return null;const t=i.id||"";if(!t)return null;const _=i.enabled;let S=!1;return _===!0||_===1||_==="1"?S=!0:_===!1||_===0||_==="0"?S=!1:S=!!_,{key:t,id:t,name:String(i.name||""),triggerCondition:i.triggerCondition??i.trigger_condition??"",steps:i.steps||"",enabled:S,successCount:g(i.successCount??i.success_count,0),failureCount:g(i.failureCount??i.failure_count,0),createdAt:i.createdAt??i.created_at??null,_idx:n}}function dt(i){const n=B(i);return Array.isArray(n)?n.map(ut).filter(Boolean):[]}function ct(i,n=0){if(!i||typeof i!="object")return null;const t=i.metricName??i.metric_name??"";return t?{key:t,metricName:t,mean:g(i.mean,0),stdDev:g(i.stdDev??i.std_dev,0),q1:g(i.q1,0),q3:g(i.q3,0),sampleCount:g(i.sampleCount??i.sample_count,0),updatedAt:i.updatedAt??i.updated_at??null,_idx:n}:null}function pt(i){const n=B(i);return Array.isArray(n)?n.map(ct).filter(Boolean):[]}function mt(i){const n=B(i);return!n||typeof n!="object"||Array.isArray(n)?null:{anomaly:!!n.anomaly,reason:n.reason||null,metricName:n.metricName??n.metric_name??"",value:g(n.value,0),algorithm:String(n.algorithm||""),score:g(n.score,0),threshold:g(n.threshold,0),baseline:n.baseline?{mean:g(n.baseline.mean,0),stdDev:g(n.baseline.stdDev??n.baseline.std_dev,0),q1:g(n.baseline.q1,0),q3:g(n.baseline.q3,0)}:null,incidentId:n.incidentId??n.incident_id??null,severity:n.severity||null}}const yt={incidents:{total:0,bySeverity:{P0:0,P1:0,P2:0,P3:0},byStatus:{open:0,acknowledged:0,resolved:0,closed:0},avgResolveMs:0},playbooks:{total:0,enabled:0,totalSuccess:0,totalFailure:0},baselines:{total:0,metrics:[]}};function ft(i){const n=JSON.parse(JSON.stringify(yt)),t=B(i);if(!t||typeof t!="object"||Array.isArray(t))return n;if(t.incidents&&typeof t.incidents=="object"){if(n.incidents.total=g(t.incidents.total,0),n.incidents.avgResolveMs=g(t.incidents.avgResolveMs??t.incidents.avg_resolve_ms,0),t.incidents.bySeverity&&typeof t.incidents.bySeverity=="object")for(const _ of Object.keys(n.incidents.bySeverity))n.incidents.bySeverity[_]=g(t.incidents.bySeverity[_],0);if(t.incidents.byStatus&&typeof t.incidents.byStatus=="object")for(const _ of Object.keys(n.incidents.byStatus))n.incidents.byStatus[_]=g(t.incidents.byStatus[_],0)}return t.playbooks&&typeof t.playbooks=="object"&&(n.playbooks.total=g(t.playbooks.total,0),n.playbooks.enabled=g(t.playbooks.enabled,0),n.playbooks.totalSuccess=g(t.playbooks.totalSuccess??t.playbooks.total_success,0),n.playbooks.totalFailure=g(t.playbooks.totalFailure??t.playbooks.total_failure,0)),t.baselines&&typeof t.baselines=="object"&&(n.baselines.total=g(t.baselines.total,0),Array.isArray(t.baselines.metrics)&&(n.baselines.metrics=[...t.baselines.metrics])),n}function pe(i){if(i==null||i==="")return"—";const n=typeof i=="number"?new Date(i):new Date(String(i));return isNaN(n.getTime())?String(i):n.toLocaleString("zh-CN",{hour12:!1})}const vt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},bt={class:"page-title"},gt={class:"page-sub"},kt={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},_t={class:"filter-bar"},$t={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},ht={key:1,style:{color:"var(--text-muted)"}},Ct={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},xt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},St={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},wt={style:{color:"var(--text-primary)","font-weight":"500"}},zt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px","font-family":"monospace"}},At={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},Ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Pt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},Rt={style:{color:"#1677ff"}},jt={style:{color:"var(--text-secondary)","margin-left":"4px","font-size":"11px"}},It={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Nt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Lt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Ot={key:0,style:{color:"var(--text-secondary)","font-size":"12px","margin-top":"8px"}},Tt={key:1,style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Ut={key:2,style:{"margin-top":"8px"}},qt={__name:"AIOps",setup(i){const n=Ge(),{t}=Ze(),_=x(!1),S=x(!1),Y=x(!1),me=x([]),ye=x([]),ee=x([]),A=x({incidents:{total:0,bySeverity:{P0:0,P1:0,P2:0,P3:0},byStatus:{open:0,acknowledged:0,resolved:0,closed:0},avgResolveMs:0},playbooks:{total:0,enabled:0,totalSuccess:0,totalFailure:0},baselines:{total:0,metrics:[]}}),K=x("incidents"),q=x(""),J=x(""),Q=x(!1),V=x(!1),W=x(!1),te=x(!1),w=X({severity:"P3",metric:"",description:""}),$=X({name:"",triggerJson:"",stepsJson:""}),I=X({metric:"",values:""}),F=X({metric:"",value:null,algorithm:"z_score"}),h=x(null),xe=M(()=>[{title:t("aiops.incidentCols.severity"),key:"severity",width:"90px"},{title:t("aiops.incidentCols.metric"),key:"metric",width:"160px"},{title:t("aiops.incidentCols.description"),key:"description"},{title:t("aiops.incidentCols.status"),key:"status",width:"100px"},{title:t("aiops.incidentCols.createdAt"),key:"createdAt",width:"160px"},{title:t("aiops.incidentCols.action"),key:"action",width:"220px"}]),Se=M(()=>[{title:t("aiops.playbookCols.name"),key:"name"},{title:t("aiops.playbookCols.enabled"),key:"enabled",width:"80px"},{title:t("aiops.playbookCols.stats"),key:"stats",width:"180px"},{title:t("aiops.playbookCols.createdAt"),key:"createdAt",width:"160px"},{title:t("aiops.playbookCols.action"),key:"action",width:"160px"}]),we=M(()=>[{title:t("aiops.baselineCols.metric"),key:"metric"},{title:t("aiops.baselineCols.mean"),key:"mean",width:"180px"},{title:t("aiops.baselineCols.iqr"),key:"iqr",width:"180px"},{title:t("aiops.baselineCols.sampleCount"),key:"sampleCount",width:"90px"},{title:t("aiops.baselineCols.updatedAt"),key:"updatedAt",width:"160px"}]),ze=M(()=>A.value.incidents.byStatus.open+A.value.incidents.byStatus.acknowledged),Ae=M(()=>{let e=me.value;return q.value&&(e=e.filter(o=>o.severity===q.value)),J.value&&(e=e.filter(o=>o.status===J.value)),e});function fe(e){const o=`aiops.statusLabels.${e}`,u=t(o);return u===o?e:u}function Fe(e){return{open:"red",acknowledged:"orange",resolved:"cyan",closed:"default"}[e]||"default"}function ae(e){return{P0:"red",P1:"volcano",P2:"orange",P3:"gold"}[e]||"default"}function Pe(e){const o=`aiops.reasonLabels.${e}`,u=t(o);return u===o?e:u}function ve(e,o){return e?e.length>o?e.slice(0,o)+"...":e:""}function Re(e){return!e||e<=0?t("aiops.duration.none"):e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:e<36e5?`${(e/6e4).toFixed(1)}min`:`${(e/36e5).toFixed(1)}h`}function je({key:e}){e==="incident"?Q.value=!0:e==="playbook"?V.value=!0:e==="baseline"?W.value=!0:e==="detect"&&(h.value=null,te.value=!0)}async function j(){_.value=!0;try{const[e,o,u,f]=await Promise.all([n.execute("ops incidents --limit 200 --json",1e4).catch(()=>({output:""})),n.execute("ops playbooks --limit 200 --json",1e4).catch(()=>({output:""})),n.execute("ops baselines --json",1e4).catch(()=>({output:""})),n.execute("ops stats --json",8e3).catch(()=>({output:""}))]);me.value=rt(e.output),ye.value=dt(o.output),ee.value=pt(u.output),A.value=ft(f.output)}catch(e){m.error(t("aiops.msg.loadFailed")+": "+(e?.message||e))}finally{_.value=!1}}async function Ie(){if(!w.description.trim()){m.warning(t("aiops.msg.descEmpty"));return}S.value=!0;try{const e=[`ops incident-create --severity ${w.severity}`];w.metric.trim()&&e.push(`--metric "${w.metric.trim().replace(/"/g,'\\"')}"`),e.push(`--description "${w.description.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:o}=await n.execute(e.join(" "),1e4);if(/error|失败/i.test(o)&&!/"incidentId"/.test(o)){m.error(t("aiops.msg.createFailed")+": "+o.slice(0,120));return}m.success(t("aiops.msg.incidentCreated")),Q.value=!1,ge(),await j()}catch(e){m.error(t("aiops.msg.createFailed")+": "+(e?.message||e))}finally{S.value=!1}}async function Ne(){if(!$.name.trim()){m.warning(t("aiops.msg.playbookNameEmpty"));return}for(const[e,o]of[[$.triggerJson,"triggerLabel"],[$.stepsJson,"stepsLabel"]])if(e.trim())try{JSON.parse(e)}catch{m.warning(t("aiops.msg.jsonInvalid",{label:t(`aiops.msg.${o}`)}));return}S.value=!0;try{const e=[`ops playbook-create --name "${$.name.trim().replace(/"/g,'\\"')}"`];$.triggerJson.trim()&&e.push(`--trigger '${$.triggerJson.trim().replace(/'/g,"'\\''")}'`),$.stepsJson.trim()&&e.push(`--steps '${$.stepsJson.trim().replace(/'/g,"'\\''")}'`),e.push("--json");const{output:o}=await n.execute(e.join(" "),1e4);if(/error|失败/i.test(o)&&!/"playbookId"/.test(o)){m.error(t("aiops.msg.createFailed")+": "+o.slice(0,120));return}m.success(t("aiops.msg.playbookCreated")),V.value=!1,ke(),K.value="playbooks",await j()}catch(e){m.error(t("aiops.msg.createFailed")+": "+(e?.message||e))}finally{S.value=!1}}async function Le(){const e=I.metric.trim();if(!e){m.warning(t("aiops.msg.metricEmpty"));return}const o=I.values.split(/[\s,]+/).map(u=>u.trim()).filter(Boolean).map(u=>Number(u));if(o.length===0||o.some(u=>!Number.isFinite(u))){m.warning(t("aiops.msg.valuesInvalid"));return}S.value=!0;try{const u=`ops baseline-update "${e.replace(/"/g,'\\"')}" --values ${o.join(",")} --json`,{output:f}=await n.execute(u,1e4);if(/error|失败/i.test(f)&&!/"updated"/.test(f)){m.error(t("aiops.msg.baselineUpdateFailed")+": "+f.slice(0,120));return}m.success(t("aiops.msg.baselineUpdated",{n:o.length})),W.value=!1,_e(),K.value="baselines",await j()}catch(u){m.error(t("aiops.msg.baselineUpdateFailed")+": "+(u?.message||u))}finally{S.value=!1}}async function Oe(){if(!F.metric||F.value==null){m.warning(t("aiops.msg.detectFieldsEmpty"));return}Y.value=!0,h.value=null;try{const e=`ops detect "${F.metric.replace(/"/g,'\\"')}" ${F.value} --algorithm ${F.algorithm} --json`,{output:o}=await n.execute(e,8e3),u=mt(o);if(!u){m.error(t("aiops.msg.detectFailed")+": "+o.slice(0,120));return}h.value=u,u.anomaly&&(m.warning(t("aiops.msg.detectAnomaly",{severity:u.severity||"P3"})),j())}catch(e){m.error(t("aiops.msg.detectFailed")+": "+(e?.message||e))}finally{Y.value=!1}}async function Te(e){await oe(e,"incident-ack",t("aiops.msg.incidentAcked"))}async function Ue(e){await oe(e,"incident-resolve",t("aiops.msg.incidentResolved"))}async function qe(e){await oe(e,"incident-close",t("aiops.msg.incidentClosed"))}async function oe(e,o,u){try{const{output:f}=await n.execute(`ops ${o} ${e.id} --json`,8e3);if(/error|失败|invalid/i.test(f)&&!/"acknowledged"|"resolved"|"closed"/.test(f)){m.error(t("aiops.msg.incidentTransitionFailed")+": "+f.slice(0,120));return}m.success(u),await j()}catch(f){m.error(t("aiops.msg.incidentTransitionFailed")+": "+(f?.message||f))}}async function Je(e){try{const{output:o}=await n.execute(`ops postmortem ${e.id}`,12e3);ot.info({title:t("aiops.msg.postmortemTitle",{id:e.id.slice(0,8)}),width:720,content:()=>st("pre",{style:"white-space: pre-wrap; max-height: 60vh; overflow: auto; font-size: 12px; padding: 8px; background: rgba(0,0,0,.04); border-radius: 4px;"},o||t("aiops.msg.postmortemEmpty"))})}catch(o){m.error(t("aiops.msg.postmortemFailed")+": "+(o?.message||o))}}async function De(e,o){const u=o?"on":"off";try{const{output:f}=await n.execute(`ops playbook-toggle ${e.id} ${u} --json`,8e3);if(/error|失败/i.test(f)&&!/"enabled"/.test(f)){m.error(t("aiops.msg.playbookToggleFailed")+": "+f.slice(0,120));return}m.success(t(o?"aiops.msg.playbookEnabled":"aiops.msg.playbookDisabled")),await j()}catch(f){m.error(t("aiops.msg.playbookToggleFailed")+": "+(f?.message||f))}}async function be(e,o){try{const{output:u}=await n.execute(`ops playbook-record ${e.id} ${o} --json`,8e3);if(/error|失败/i.test(u)&&!/"recorded"/.test(u)){m.error(t("aiops.msg.playbookRecordFailed")+": "+u.slice(0,120));return}m.success(t(o==="success"?"aiops.msg.playbookRecordSuccess":"aiops.msg.playbookRecordFailure")),await j()}catch(u){m.error(t("aiops.msg.playbookRecordFailed")+": "+(u?.message||u))}}function ge(){w.severity="P3",w.metric="",w.description=""}function ke(){$.name="",$.triggerJson="",$.stepsJson=""}function _e(){I.metric="",I.values=""}return lt(j),(e,o)=>{const u=b("a-button"),f=b("a-menu-item"),Ee=b("a-menu"),Me=b("a-dropdown"),$e=b("a-space"),T=b("a-statistic"),N=b("a-card"),D=b("a-col"),Be=b("a-row"),L=b("a-tag"),U=b("a-radio-button"),le=b("a-radio-group"),se=b("a-table"),ie=b("a-tab-pane"),Ke=b("a-switch"),Qe=b("a-tabs"),he=b("a-select-option"),Ce=b("a-select"),P=b("a-form-item"),ne=b("a-input"),Z=b("a-textarea"),G=b("a-form"),H=b("a-modal"),Ve=b("a-input-number");return d(),v("div",null,[z("div",vt,[z("div",null,[z("h2",bt,r(e.$t("aiops.title")),1),z("p",gt,r(e.$t("aiops.subtitle")),1)]),a($e,null,{default:l(()=>[a(u,{loading:_.value,onClick:j},{icon:l(()=>[a(k(Xe))]),default:l(()=>[p(" "+r(e.$t("aiops.refresh")),1)]),_:1},8,["loading"]),a(Me,{trigger:["click"]},{overlay:l(()=>[a(Ee,{onClick:je},{default:l(()=>[a(f,{key:"incident"},{default:l(()=>[a(k(re)),p(" "+r(e.$t("aiops.actions.incident")),1)]),_:1}),a(f,{key:"playbook"},{default:l(()=>[a(k(ue)),p(" "+r(e.$t("aiops.actions.playbook")),1)]),_:1}),a(f,{key:"baseline"},{default:l(()=>[a(k(de)),p(" "+r(e.$t("aiops.actions.baseline")),1)]),_:1}),a(f,{key:"detect"},{default:l(()=>[a(k(et)),p(" "+r(e.$t("aiops.actions.detect")),1)]),_:1})]),_:1})]),default:l(()=>[a(u,{type:"primary"},{icon:l(()=>[a(k(Ye))]),default:l(()=>[p(" "+r(e.$t("aiops.newDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Be,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(D,{xs:12,sm:8,lg:5},{default:l(()=>[a(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.incidents"),value:A.value.incidents.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(k(re))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:l(()=>[a(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.pending"),value:A.value.incidents.byStatus.open+A.value.incidents.byStatus.acknowledged,"value-style":{color:ze.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(k(tt))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:l(()=>[a(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.playbooks"),value:A.value.playbooks.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(k(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:l(()=>[a(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.enabled"),value:A.value.playbooks.enabled,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(k(at))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:24,sm:8,lg:4},{default:l(()=>[a(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.baselines"),value:A.value.baselines.total,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(k(de))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),A.value.incidents.total>0?(d(),C(N,{key:0,title:e.$t("aiops.severityCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:l(()=>[a($e,{size:[12,8],wrap:""},{default:l(()=>[(d(!0),v(R,null,E(k(ce),s=>(d(),C(L,{key:s,color:ae(s),style:{"font-size":"13px",padding:"2px 10px"}},{default:l(()=>[p(r(s)+": "+r(A.value.incidents.bySeverity[s]||0),1)]),_:2},1032,["color"]))),128)),z("span",kt,r(e.$t("aiops.avgResolveLabel",{time:Re(A.value.incidents.avgResolveMs)})),1)]),_:1})]),_:1},8,["title"])):y("",!0),a(Qe,{activeKey:K.value,"onUpdate:activeKey":o[2]||(o[2]=s=>K.value=s),class:"aiops-tabs"},{default:l(()=>[a(ie,{key:"incidents",tab:e.$t("aiops.tabs.incidents")},{default:l(()=>[z("div",_t,[a(le,{value:q.value,"onUpdate:value":o[0]||(o[0]=s=>q.value=s),size:"small","button-style":"solid"},{default:l(()=>[a(U,{value:""},{default:l(()=>[p(r(e.$t("aiops.filter.all")),1)]),_:1}),(d(!0),v(R,null,E(k(ce),s=>(d(),C(U,{key:s,value:s},{default:l(()=>[p(r(s),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(le,{value:J.value,"onUpdate:value":o[1]||(o[1]=s=>J.value=s),size:"small"},{default:l(()=>[a(U,{value:""},{default:l(()=>[p(r(e.$t("aiops.filter.allStatuses")),1)]),_:1}),(d(!0),v(R,null,E(k(it),s=>(d(),C(U,{key:s,value:s},{default:l(()=>[p(r(fe(s)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(se,{columns:xe.value,"data-source":Ae.value,pagination:{pageSize:20,showTotal:s=>e.$t("aiops.table.totalSuffix",{n:s})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:s,record:c})=>[s.key==="severity"?(d(),C(L,{key:0,color:ae(c.severity),style:{"font-weight":"600"}},{default:l(()=>[p(r(c.severity),1)]),_:2},1032,["color"])):y("",!0),s.key==="metric"?(d(),v(R,{key:1},[c.anomalyMetric?(d(),v("span",$t,r(c.anomalyMetric),1)):(d(),v("span",ht,"—"))],64)):y("",!0),s.key==="description"?(d(),v("span",Ct,r(ve(c.description,80)||"—"),1)):y("",!0),s.key==="status"?(d(),C(L,{key:3,color:Fe(c.status)},{default:l(()=>[p(r(fe(c.status)),1)]),_:2},1032,["color"])):y("",!0),s.key==="createdAt"?(d(),v("span",xt,r(k(pe)(c.createdAt)),1)):y("",!0),s.key==="action"?(d(),v(R,{key:5},[c.status==="open"?(d(),C(u,{key:0,size:"small",type:"link",onClick:O=>Te(c)},{default:l(()=>[p(r(e.$t("aiops.incidentActions.ack")),1)]),_:1},8,["onClick"])):y("",!0),c.status==="open"||c.status==="acknowledged"?(d(),C(u,{key:1,size:"small",type:"link",onClick:O=>Ue(c)},{default:l(()=>[p(r(e.$t("aiops.incidentActions.resolve")),1)]),_:1},8,["onClick"])):y("",!0),c.status==="resolved"?(d(),C(u,{key:2,size:"small",type:"link",onClick:O=>qe(c)},{default:l(()=>[p(r(e.$t("aiops.incidentActions.close")),1)]),_:1},8,["onClick"])):y("",!0),c.status==="resolved"||c.status==="closed"?(d(),C(u,{key:3,size:"small",type:"link",onClick:O=>Je(c)},{default:l(()=>[p(r(e.$t("aiops.incidentActions.postmortem")),1)]),_:1},8,["onClick"])):y("",!0)],64)):y("",!0)]),emptyText:l(()=>[z("div",St,[a(k(re),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+r(q.value||J.value?e.$t("aiops.table.incidentEmptyFiltered"):e.$t("aiops.table.incidentEmpty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ie,{key:"playbooks",tab:e.$t("aiops.tabs.playbooks")},{default:l(()=>[a(se,{columns:Se.value,"data-source":ye.value,pagination:{pageSize:20,showTotal:s=>e.$t("aiops.table.totalSuffix",{n:s})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:s,record:c})=>[s.key==="name"?(d(),v(R,{key:0},[z("span",wt,r(c.name),1),c.triggerCondition?(d(),v("div",zt,r(ve(c.triggerCondition,80)),1)):y("",!0)],64)):y("",!0),s.key==="enabled"?(d(),C(Ke,{key:1,checked:c.enabled,size:"small",onChange:O=>De(c,O)},null,8,["checked","onChange"])):y("",!0),s.key==="stats"?(d(),v(R,{key:2},[a(L,{color:"green",style:{"font-size":"11px"}},{default:l(()=>[p(r(e.$t("aiops.table.successCount",{n:c.successCount})),1)]),_:2},1024),c.failureCount>0?(d(),C(L,{key:0,color:"red",style:{"font-size":"11px","margin-left":"4px"}},{default:l(()=>[p(r(e.$t("aiops.table.failureCount",{n:c.failureCount})),1)]),_:2},1024)):y("",!0)],64)):y("",!0),s.key==="createdAt"?(d(),v("span",At,r(k(pe)(c.createdAt)),1)):y("",!0),s.key==="action"?(d(),v(R,{key:4},[a(u,{size:"small",type:"link",onClick:O=>be(c,"success")},{default:l(()=>[p(r(e.$t("aiops.playbookActions.success")),1)]),_:1},8,["onClick"]),a(u,{size:"small",type:"link",danger:"",onClick:O=>be(c,"failure")},{default:l(()=>[p(r(e.$t("aiops.playbookActions.failure")),1)]),_:1},8,["onClick"])],64)):y("",!0)]),emptyText:l(()=>[z("div",Ft,[a(k(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+r(e.$t("aiops.table.playbookEmpty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ie,{key:"baselines",tab:e.$t("aiops.tabs.baselines")},{default:l(()=>[a(se,{columns:we.value,"data-source":ee.value,pagination:{pageSize:20,showTotal:s=>e.$t("aiops.table.totalSuffix",{n:s})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:s,record:c})=>[s.key==="metric"?(d(),v("span",Pt,r(c.metricName),1)):y("",!0),s.key==="mean"?(d(),v(R,{key:1},[z("span",Rt,r(c.mean),1),z("span",jt,"σ "+r(c.stdDev),1)],64)):y("",!0),s.key==="iqr"?(d(),v("span",It," Q1 "+r(c.q1)+" / Q3 "+r(c.q3),1)):y("",!0),s.key==="sampleCount"?(d(),C(L,{key:3,color:"blue",style:{"font-size":"11px"}},{default:l(()=>[p(r(c.sampleCount),1)]),_:2},1024)):y("",!0),s.key==="updatedAt"?(d(),v("span",Nt,r(k(pe)(c.updatedAt)),1)):y("",!0)]),emptyText:l(()=>[z("div",Lt,[a(k(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+r(e.$t("aiops.table.baselineEmpty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(H,{open:Q.value,"onUpdate:open":o[6]||(o[6]=s=>Q.value=s),title:e.$t("aiops.incident_modal.title"),"confirm-loading":S.value,width:520,"ok-text":e.$t("aiops.incident_modal.ok"),"cancel-text":e.$t("aiops.incident_modal.cancel"),onOk:Ie,onCancel:ge},{default:l(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.incident_modal.severityLabel")},{default:l(()=>[a(Ce,{value:w.severity,"onUpdate:value":o[3]||(o[3]=s=>w.severity=s)},{default:l(()=>[(d(!0),v(R,null,E(k(ce),s=>(d(),C(he,{key:s,value:s},{default:l(()=>[p(r(s),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.incident_modal.metricLabel")},{default:l(()=>[a(ne,{value:w.metric,"onUpdate:value":o[4]||(o[4]=s=>w.metric=s),placeholder:e.$t("aiops.incident_modal.metricPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.incident_modal.descLabel"),required:""},{default:l(()=>[a(Z,{value:w.description,"onUpdate:value":o[5]||(o[5]=s=>w.description=s),"auto-size":{minRows:3,maxRows:6}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(H,{open:V.value,"onUpdate:open":o[10]||(o[10]=s=>V.value=s),title:e.$t("aiops.playbook_modal.title"),"confirm-loading":S.value,width:540,"ok-text":e.$t("aiops.playbook_modal.ok"),"cancel-text":e.$t("aiops.playbook_modal.cancel"),onOk:Ne,onCancel:ke},{default:l(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.playbook_modal.nameLabel"),required:""},{default:l(()=>[a(ne,{value:$.name,"onUpdate:value":o[7]||(o[7]=s=>$.name=s),placeholder:e.$t("aiops.playbook_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.playbook_modal.triggerLabel")},{default:l(()=>[a(Z,{value:$.triggerJson,"onUpdate:value":o[8]||(o[8]=s=>$.triggerJson=s),placeholder:e.$t("aiops.playbook_modal.triggerPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.playbook_modal.stepsLabel")},{default:l(()=>[a(Z,{value:$.stepsJson,"onUpdate:value":o[9]||(o[9]=s=>$.stepsJson=s),placeholder:e.$t("aiops.playbook_modal.stepsPlaceholder"),"auto-size":{minRows:3,maxRows:6}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(H,{open:W.value,"onUpdate:open":o[13]||(o[13]=s=>W.value=s),title:e.$t("aiops.baseline_modal.title"),"confirm-loading":S.value,width:500,"ok-text":e.$t("aiops.baseline_modal.ok"),"cancel-text":e.$t("aiops.baseline_modal.cancel"),onOk:Le,onCancel:_e},{default:l(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.baseline_modal.metricLabel"),required:""},{default:l(()=>[a(ne,{value:I.metric,"onUpdate:value":o[11]||(o[11]=s=>I.metric=s),placeholder:e.$t("aiops.baseline_modal.metricPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.baseline_modal.valuesLabel"),required:""},{default:l(()=>[a(Z,{value:I.values,"onUpdate:value":o[12]||(o[12]=s=>I.values=s),placeholder:e.$t("aiops.baseline_modal.valuesPlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(H,{open:te.value,"onUpdate:open":o[17]||(o[17]=s=>te.value=s),title:e.$t("aiops.detect_modal.title"),"confirm-loading":Y.value,width:500,"ok-text":e.$t("aiops.detect_modal.ok"),"cancel-text":e.$t("aiops.detect_modal.cancel"),onOk:Oe},{default:l(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.detect_modal.metricLabel"),required:""},{default:l(()=>[a(Ce,{value:F.metric,"onUpdate:value":o[14]||(o[14]=s=>F.metric=s),"show-search":"",placeholder:e.$t("aiops.detect_modal.metricPlaceholder")},{default:l(()=>[(d(!0),v(R,null,E(ee.value,s=>(d(),C(he,{key:s.metricName,value:s.metricName},{default:l(()=>[p(r(e.$t("aiops.detect_modal.metricOptionLabel",{name:s.metricName,count:s.sampleCount})),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.detect_modal.valueLabel"),required:""},{default:l(()=>[a(Ve,{value:F.value,"onUpdate:value":o[15]||(o[15]=s=>F.value=s),style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.detect_modal.algorithmLabel")},{default:l(()=>[a(le,{value:F.algorithm,"onUpdate:value":o[16]||(o[16]=s=>F.algorithm=s)},{default:l(()=>[a(U,{value:"z_score"},{default:l(()=>[...o[18]||(o[18]=[p("Z-Score (3σ)",-1)])]),_:1}),a(U,{value:"iqr"},{default:l(()=>[...o[19]||(o[19]=[p("IQR (1.5×)",-1)])]),_:1})]),_:1},8,["value"])]),_:1},8,["label"])]),_:1}),h.value?(d(),C(N,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(T,{title:e.$t("aiops.detect_modal.resultTitle"),value:h.value.anomaly?e.$t("aiops.detect_modal.anomaly"):e.$t("aiops.detect_modal.normal"),"value-style":{color:h.value.anomaly?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),h.value.reason&&!h.value.anomaly?(d(),v("div",Ot,r(e.$t("aiops.detect_modal.reasonLine",{reason:Pe(h.value.reason)})),1)):y("",!0),h.value.baseline?(d(),v("div",Tt,[z("div",null,r(e.$t("aiops.detect_modal.scoreLine",{score:h.value.score,threshold:h.value.threshold})),1),z("div",null,r(e.$t("aiops.detect_modal.baselineLine",{mean:h.value.baseline.mean,stdDev:h.value.baseline.stdDev})),1)])):y("",!0),h.value.incidentId?(d(),v("div",Ut,[a(L,{color:ae(h.value.severity)},{default:l(()=>[p(r(e.$t("aiops.detect_modal.incidentCreated",{severity:h.value.severity})),1)]),_:1},8,["color"])])):y("",!0)]),_:1})):y("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},pa=We(qt,[["__scopeId","data-v-ecfcab22"]]);export{pa as default};
1
+ import{_ as We,a as Ze,c as m}from"./index-Cw4v7ezB.js";import{u as Ge}from"./ws-D_5-FRIb.js";import{s as He}from"./community-parser-CO25nZFt.js";import{R as Xe,al as Ye,A as re,i as ue,aI as de,aQ as et,c as tt,f as at}from"./icons-DvZE-RKs.js";import ot from"./index-Blq49aTW.js";import{o as lt,M as v,R as z,P as r,c as a,N as l,Q as C,S as y,K as b,r as x,L as d,O as p,u as k,F as R,_ as E,f as M,h as st,a as X}from"./vendor-B6ToihkA.js";import"./KeyCode-D63Tfrq7.js";import"./omit-C-cc6wHr.js";import"./pickAttrs-CjLp5RN-.js";import"./initDefaultProps-DfdVxwz6.js";import"./motion-CL0bdvJg.js";import"./raf-Deuc0E8-.js";import"./index-CWhXxdyo.js";import"./index-CcwZodUl.js";import"./isVisible-C7tPsqfj.js";import"./useState-CpKsyozn.js";import"./devWarning-CNIS3FrJ.js";import"./warning-Pq00owYb.js";import"./compact-item-CqCEUZiy.js";import"./createContext-C6HFlAQP.js";import"./Compact-DGlwooBJ.js";import"./_getTag-CWA3v-Ds.js";import"./styleChecker-CDvBRzsG.js";import"./zoom-BHqpWXJV.js";import"./ActionButton-BvMi4awy.js";import"./vnode-Bzp-FsbB.js";function B(i){const n=He(i);if(!n)return null;try{return JSON.parse(n)}catch{}const t=n.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!t)return null;try{return JSON.parse(t[0])}catch{return null}}const ce=Object.freeze(["P0","P1","P2","P3"]),it=Object.freeze(["open","acknowledged","resolved","closed"]);function g(i,n=0){return typeof i=="number"&&Number.isFinite(i)?i:n}function nt(i,n=0){if(!i||typeof i!="object")return null;const t=i.id||"";return t?{key:t,id:t,anomalyMetric:i.anomalyMetric??i.anomaly_metric??"",severity:String(i.severity||"P3"),status:String(i.status||"open").toLowerCase(),description:String(i.description||""),anomalyData:i.anomalyData??i.anomaly_data??null,remediationId:i.remediationId??i.remediation_id??null,postmortem:i.postmortem||"",acknowledgedAt:i.acknowledgedAt??i.acknowledged_at??null,resolvedAt:i.resolvedAt??i.resolved_at??null,createdAt:i.createdAt??i.created_at??null,_idx:n}:null}function rt(i){const n=B(i);return Array.isArray(n)?n.map(nt).filter(Boolean):[]}function ut(i,n=0){if(!i||typeof i!="object")return null;const t=i.id||"";if(!t)return null;const _=i.enabled;let S=!1;return _===!0||_===1||_==="1"?S=!0:_===!1||_===0||_==="0"?S=!1:S=!!_,{key:t,id:t,name:String(i.name||""),triggerCondition:i.triggerCondition??i.trigger_condition??"",steps:i.steps||"",enabled:S,successCount:g(i.successCount??i.success_count,0),failureCount:g(i.failureCount??i.failure_count,0),createdAt:i.createdAt??i.created_at??null,_idx:n}}function dt(i){const n=B(i);return Array.isArray(n)?n.map(ut).filter(Boolean):[]}function ct(i,n=0){if(!i||typeof i!="object")return null;const t=i.metricName??i.metric_name??"";return t?{key:t,metricName:t,mean:g(i.mean,0),stdDev:g(i.stdDev??i.std_dev,0),q1:g(i.q1,0),q3:g(i.q3,0),sampleCount:g(i.sampleCount??i.sample_count,0),updatedAt:i.updatedAt??i.updated_at??null,_idx:n}:null}function pt(i){const n=B(i);return Array.isArray(n)?n.map(ct).filter(Boolean):[]}function mt(i){const n=B(i);return!n||typeof n!="object"||Array.isArray(n)?null:{anomaly:!!n.anomaly,reason:n.reason||null,metricName:n.metricName??n.metric_name??"",value:g(n.value,0),algorithm:String(n.algorithm||""),score:g(n.score,0),threshold:g(n.threshold,0),baseline:n.baseline?{mean:g(n.baseline.mean,0),stdDev:g(n.baseline.stdDev??n.baseline.std_dev,0),q1:g(n.baseline.q1,0),q3:g(n.baseline.q3,0)}:null,incidentId:n.incidentId??n.incident_id??null,severity:n.severity||null}}const yt={incidents:{total:0,bySeverity:{P0:0,P1:0,P2:0,P3:0},byStatus:{open:0,acknowledged:0,resolved:0,closed:0},avgResolveMs:0},playbooks:{total:0,enabled:0,totalSuccess:0,totalFailure:0},baselines:{total:0,metrics:[]}};function ft(i){const n=JSON.parse(JSON.stringify(yt)),t=B(i);if(!t||typeof t!="object"||Array.isArray(t))return n;if(t.incidents&&typeof t.incidents=="object"){if(n.incidents.total=g(t.incidents.total,0),n.incidents.avgResolveMs=g(t.incidents.avgResolveMs??t.incidents.avg_resolve_ms,0),t.incidents.bySeverity&&typeof t.incidents.bySeverity=="object")for(const _ of Object.keys(n.incidents.bySeverity))n.incidents.bySeverity[_]=g(t.incidents.bySeverity[_],0);if(t.incidents.byStatus&&typeof t.incidents.byStatus=="object")for(const _ of Object.keys(n.incidents.byStatus))n.incidents.byStatus[_]=g(t.incidents.byStatus[_],0)}return t.playbooks&&typeof t.playbooks=="object"&&(n.playbooks.total=g(t.playbooks.total,0),n.playbooks.enabled=g(t.playbooks.enabled,0),n.playbooks.totalSuccess=g(t.playbooks.totalSuccess??t.playbooks.total_success,0),n.playbooks.totalFailure=g(t.playbooks.totalFailure??t.playbooks.total_failure,0)),t.baselines&&typeof t.baselines=="object"&&(n.baselines.total=g(t.baselines.total,0),Array.isArray(t.baselines.metrics)&&(n.baselines.metrics=[...t.baselines.metrics])),n}function pe(i){if(i==null||i==="")return"—";const n=typeof i=="number"?new Date(i):new Date(String(i));return isNaN(n.getTime())?String(i):n.toLocaleString("zh-CN",{hour12:!1})}const vt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},bt={class:"page-title"},gt={class:"page-sub"},kt={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},_t={class:"filter-bar"},$t={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},ht={key:1,style:{color:"var(--text-muted)"}},Ct={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},xt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},St={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},wt={style:{color:"var(--text-primary)","font-weight":"500"}},zt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px","font-family":"monospace"}},At={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},Ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Pt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},Rt={style:{color:"#1677ff"}},jt={style:{color:"var(--text-secondary)","margin-left":"4px","font-size":"11px"}},It={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Nt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Lt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Ot={key:0,style:{color:"var(--text-secondary)","font-size":"12px","margin-top":"8px"}},Tt={key:1,style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Ut={key:2,style:{"margin-top":"8px"}},qt={__name:"AIOps",setup(i){const n=Ge(),{t}=Ze(),_=x(!1),S=x(!1),Y=x(!1),me=x([]),ye=x([]),ee=x([]),A=x({incidents:{total:0,bySeverity:{P0:0,P1:0,P2:0,P3:0},byStatus:{open:0,acknowledged:0,resolved:0,closed:0},avgResolveMs:0},playbooks:{total:0,enabled:0,totalSuccess:0,totalFailure:0},baselines:{total:0,metrics:[]}}),K=x("incidents"),q=x(""),J=x(""),Q=x(!1),V=x(!1),W=x(!1),te=x(!1),w=X({severity:"P3",metric:"",description:""}),$=X({name:"",triggerJson:"",stepsJson:""}),I=X({metric:"",values:""}),F=X({metric:"",value:null,algorithm:"z_score"}),h=x(null),xe=M(()=>[{title:t("aiops.incidentCols.severity"),key:"severity",width:"90px"},{title:t("aiops.incidentCols.metric"),key:"metric",width:"160px"},{title:t("aiops.incidentCols.description"),key:"description"},{title:t("aiops.incidentCols.status"),key:"status",width:"100px"},{title:t("aiops.incidentCols.createdAt"),key:"createdAt",width:"160px"},{title:t("aiops.incidentCols.action"),key:"action",width:"220px"}]),Se=M(()=>[{title:t("aiops.playbookCols.name"),key:"name"},{title:t("aiops.playbookCols.enabled"),key:"enabled",width:"80px"},{title:t("aiops.playbookCols.stats"),key:"stats",width:"180px"},{title:t("aiops.playbookCols.createdAt"),key:"createdAt",width:"160px"},{title:t("aiops.playbookCols.action"),key:"action",width:"160px"}]),we=M(()=>[{title:t("aiops.baselineCols.metric"),key:"metric"},{title:t("aiops.baselineCols.mean"),key:"mean",width:"180px"},{title:t("aiops.baselineCols.iqr"),key:"iqr",width:"180px"},{title:t("aiops.baselineCols.sampleCount"),key:"sampleCount",width:"90px"},{title:t("aiops.baselineCols.updatedAt"),key:"updatedAt",width:"160px"}]),ze=M(()=>A.value.incidents.byStatus.open+A.value.incidents.byStatus.acknowledged),Ae=M(()=>{let e=me.value;return q.value&&(e=e.filter(o=>o.severity===q.value)),J.value&&(e=e.filter(o=>o.status===J.value)),e});function fe(e){const o=`aiops.statusLabels.${e}`,u=t(o);return u===o?e:u}function Fe(e){return{open:"red",acknowledged:"orange",resolved:"cyan",closed:"default"}[e]||"default"}function ae(e){return{P0:"red",P1:"volcano",P2:"orange",P3:"gold"}[e]||"default"}function Pe(e){const o=`aiops.reasonLabels.${e}`,u=t(o);return u===o?e:u}function ve(e,o){return e?e.length>o?e.slice(0,o)+"...":e:""}function Re(e){return!e||e<=0?t("aiops.duration.none"):e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:e<36e5?`${(e/6e4).toFixed(1)}min`:`${(e/36e5).toFixed(1)}h`}function je({key:e}){e==="incident"?Q.value=!0:e==="playbook"?V.value=!0:e==="baseline"?W.value=!0:e==="detect"&&(h.value=null,te.value=!0)}async function j(){_.value=!0;try{const[e,o,u,f]=await Promise.all([n.execute("ops incidents --limit 200 --json",1e4).catch(()=>({output:""})),n.execute("ops playbooks --limit 200 --json",1e4).catch(()=>({output:""})),n.execute("ops baselines --json",1e4).catch(()=>({output:""})),n.execute("ops stats --json",8e3).catch(()=>({output:""}))]);me.value=rt(e.output),ye.value=dt(o.output),ee.value=pt(u.output),A.value=ft(f.output)}catch(e){m.error(t("aiops.msg.loadFailed")+": "+(e?.message||e))}finally{_.value=!1}}async function Ie(){if(!w.description.trim()){m.warning(t("aiops.msg.descEmpty"));return}S.value=!0;try{const e=[`ops incident-create --severity ${w.severity}`];w.metric.trim()&&e.push(`--metric "${w.metric.trim().replace(/"/g,'\\"')}"`),e.push(`--description "${w.description.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:o}=await n.execute(e.join(" "),1e4);if(/error|失败/i.test(o)&&!/"incidentId"/.test(o)){m.error(t("aiops.msg.createFailed")+": "+o.slice(0,120));return}m.success(t("aiops.msg.incidentCreated")),Q.value=!1,ge(),await j()}catch(e){m.error(t("aiops.msg.createFailed")+": "+(e?.message||e))}finally{S.value=!1}}async function Ne(){if(!$.name.trim()){m.warning(t("aiops.msg.playbookNameEmpty"));return}for(const[e,o]of[[$.triggerJson,"triggerLabel"],[$.stepsJson,"stepsLabel"]])if(e.trim())try{JSON.parse(e)}catch{m.warning(t("aiops.msg.jsonInvalid",{label:t(`aiops.msg.${o}`)}));return}S.value=!0;try{const e=[`ops playbook-create --name "${$.name.trim().replace(/"/g,'\\"')}"`];$.triggerJson.trim()&&e.push(`--trigger '${$.triggerJson.trim().replace(/'/g,"'\\''")}'`),$.stepsJson.trim()&&e.push(`--steps '${$.stepsJson.trim().replace(/'/g,"'\\''")}'`),e.push("--json");const{output:o}=await n.execute(e.join(" "),1e4);if(/error|失败/i.test(o)&&!/"playbookId"/.test(o)){m.error(t("aiops.msg.createFailed")+": "+o.slice(0,120));return}m.success(t("aiops.msg.playbookCreated")),V.value=!1,ke(),K.value="playbooks",await j()}catch(e){m.error(t("aiops.msg.createFailed")+": "+(e?.message||e))}finally{S.value=!1}}async function Le(){const e=I.metric.trim();if(!e){m.warning(t("aiops.msg.metricEmpty"));return}const o=I.values.split(/[\s,]+/).map(u=>u.trim()).filter(Boolean).map(u=>Number(u));if(o.length===0||o.some(u=>!Number.isFinite(u))){m.warning(t("aiops.msg.valuesInvalid"));return}S.value=!0;try{const u=`ops baseline-update "${e.replace(/"/g,'\\"')}" --values ${o.join(",")} --json`,{output:f}=await n.execute(u,1e4);if(/error|失败/i.test(f)&&!/"updated"/.test(f)){m.error(t("aiops.msg.baselineUpdateFailed")+": "+f.slice(0,120));return}m.success(t("aiops.msg.baselineUpdated",{n:o.length})),W.value=!1,_e(),K.value="baselines",await j()}catch(u){m.error(t("aiops.msg.baselineUpdateFailed")+": "+(u?.message||u))}finally{S.value=!1}}async function Oe(){if(!F.metric||F.value==null){m.warning(t("aiops.msg.detectFieldsEmpty"));return}Y.value=!0,h.value=null;try{const e=`ops detect "${F.metric.replace(/"/g,'\\"')}" ${F.value} --algorithm ${F.algorithm} --json`,{output:o}=await n.execute(e,8e3),u=mt(o);if(!u){m.error(t("aiops.msg.detectFailed")+": "+o.slice(0,120));return}h.value=u,u.anomaly&&(m.warning(t("aiops.msg.detectAnomaly",{severity:u.severity||"P3"})),j())}catch(e){m.error(t("aiops.msg.detectFailed")+": "+(e?.message||e))}finally{Y.value=!1}}async function Te(e){await oe(e,"incident-ack",t("aiops.msg.incidentAcked"))}async function Ue(e){await oe(e,"incident-resolve",t("aiops.msg.incidentResolved"))}async function qe(e){await oe(e,"incident-close",t("aiops.msg.incidentClosed"))}async function oe(e,o,u){try{const{output:f}=await n.execute(`ops ${o} ${e.id} --json`,8e3);if(/error|失败|invalid/i.test(f)&&!/"acknowledged"|"resolved"|"closed"/.test(f)){m.error(t("aiops.msg.incidentTransitionFailed")+": "+f.slice(0,120));return}m.success(u),await j()}catch(f){m.error(t("aiops.msg.incidentTransitionFailed")+": "+(f?.message||f))}}async function Je(e){try{const{output:o}=await n.execute(`ops postmortem ${e.id}`,12e3);ot.info({title:t("aiops.msg.postmortemTitle",{id:e.id.slice(0,8)}),width:720,content:()=>st("pre",{style:"white-space: pre-wrap; max-height: 60vh; overflow: auto; font-size: 12px; padding: 8px; background: rgba(0,0,0,.04); border-radius: 4px;"},o||t("aiops.msg.postmortemEmpty"))})}catch(o){m.error(t("aiops.msg.postmortemFailed")+": "+(o?.message||o))}}async function De(e,o){const u=o?"on":"off";try{const{output:f}=await n.execute(`ops playbook-toggle ${e.id} ${u} --json`,8e3);if(/error|失败/i.test(f)&&!/"enabled"/.test(f)){m.error(t("aiops.msg.playbookToggleFailed")+": "+f.slice(0,120));return}m.success(t(o?"aiops.msg.playbookEnabled":"aiops.msg.playbookDisabled")),await j()}catch(f){m.error(t("aiops.msg.playbookToggleFailed")+": "+(f?.message||f))}}async function be(e,o){try{const{output:u}=await n.execute(`ops playbook-record ${e.id} ${o} --json`,8e3);if(/error|失败/i.test(u)&&!/"recorded"/.test(u)){m.error(t("aiops.msg.playbookRecordFailed")+": "+u.slice(0,120));return}m.success(t(o==="success"?"aiops.msg.playbookRecordSuccess":"aiops.msg.playbookRecordFailure")),await j()}catch(u){m.error(t("aiops.msg.playbookRecordFailed")+": "+(u?.message||u))}}function ge(){w.severity="P3",w.metric="",w.description=""}function ke(){$.name="",$.triggerJson="",$.stepsJson=""}function _e(){I.metric="",I.values=""}return lt(j),(e,o)=>{const u=b("a-button"),f=b("a-menu-item"),Ee=b("a-menu"),Me=b("a-dropdown"),$e=b("a-space"),T=b("a-statistic"),N=b("a-card"),D=b("a-col"),Be=b("a-row"),L=b("a-tag"),U=b("a-radio-button"),le=b("a-radio-group"),se=b("a-table"),ie=b("a-tab-pane"),Ke=b("a-switch"),Qe=b("a-tabs"),he=b("a-select-option"),Ce=b("a-select"),P=b("a-form-item"),ne=b("a-input"),Z=b("a-textarea"),G=b("a-form"),H=b("a-modal"),Ve=b("a-input-number");return d(),v("div",null,[z("div",vt,[z("div",null,[z("h2",bt,r(e.$t("aiops.title")),1),z("p",gt,r(e.$t("aiops.subtitle")),1)]),a($e,null,{default:l(()=>[a(u,{loading:_.value,onClick:j},{icon:l(()=>[a(k(Xe))]),default:l(()=>[p(" "+r(e.$t("aiops.refresh")),1)]),_:1},8,["loading"]),a(Me,{trigger:["click"]},{overlay:l(()=>[a(Ee,{onClick:je},{default:l(()=>[a(f,{key:"incident"},{default:l(()=>[a(k(re)),p(" "+r(e.$t("aiops.actions.incident")),1)]),_:1}),a(f,{key:"playbook"},{default:l(()=>[a(k(ue)),p(" "+r(e.$t("aiops.actions.playbook")),1)]),_:1}),a(f,{key:"baseline"},{default:l(()=>[a(k(de)),p(" "+r(e.$t("aiops.actions.baseline")),1)]),_:1}),a(f,{key:"detect"},{default:l(()=>[a(k(et)),p(" "+r(e.$t("aiops.actions.detect")),1)]),_:1})]),_:1})]),default:l(()=>[a(u,{type:"primary"},{icon:l(()=>[a(k(Ye))]),default:l(()=>[p(" "+r(e.$t("aiops.newDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Be,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(D,{xs:12,sm:8,lg:5},{default:l(()=>[a(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.incidents"),value:A.value.incidents.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(k(re))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:l(()=>[a(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.pending"),value:A.value.incidents.byStatus.open+A.value.incidents.byStatus.acknowledged,"value-style":{color:ze.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(k(tt))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:l(()=>[a(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.playbooks"),value:A.value.playbooks.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(k(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:l(()=>[a(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.enabled"),value:A.value.playbooks.enabled,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(k(at))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:24,sm:8,lg:4},{default:l(()=>[a(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(T,{title:e.$t("aiops.stats.baselines"),value:A.value.baselines.total,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(k(de))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),A.value.incidents.total>0?(d(),C(N,{key:0,title:e.$t("aiops.severityCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:l(()=>[a($e,{size:[12,8],wrap:""},{default:l(()=>[(d(!0),v(R,null,E(k(ce),s=>(d(),C(L,{key:s,color:ae(s),style:{"font-size":"13px",padding:"2px 10px"}},{default:l(()=>[p(r(s)+": "+r(A.value.incidents.bySeverity[s]||0),1)]),_:2},1032,["color"]))),128)),z("span",kt,r(e.$t("aiops.avgResolveLabel",{time:Re(A.value.incidents.avgResolveMs)})),1)]),_:1})]),_:1},8,["title"])):y("",!0),a(Qe,{activeKey:K.value,"onUpdate:activeKey":o[2]||(o[2]=s=>K.value=s),class:"aiops-tabs"},{default:l(()=>[a(ie,{key:"incidents",tab:e.$t("aiops.tabs.incidents")},{default:l(()=>[z("div",_t,[a(le,{value:q.value,"onUpdate:value":o[0]||(o[0]=s=>q.value=s),size:"small","button-style":"solid"},{default:l(()=>[a(U,{value:""},{default:l(()=>[p(r(e.$t("aiops.filter.all")),1)]),_:1}),(d(!0),v(R,null,E(k(ce),s=>(d(),C(U,{key:s,value:s},{default:l(()=>[p(r(s),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(le,{value:J.value,"onUpdate:value":o[1]||(o[1]=s=>J.value=s),size:"small"},{default:l(()=>[a(U,{value:""},{default:l(()=>[p(r(e.$t("aiops.filter.allStatuses")),1)]),_:1}),(d(!0),v(R,null,E(k(it),s=>(d(),C(U,{key:s,value:s},{default:l(()=>[p(r(fe(s)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(se,{columns:xe.value,"data-source":Ae.value,pagination:{pageSize:20,showTotal:s=>e.$t("aiops.table.totalSuffix",{n:s})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:s,record:c})=>[s.key==="severity"?(d(),C(L,{key:0,color:ae(c.severity),style:{"font-weight":"600"}},{default:l(()=>[p(r(c.severity),1)]),_:2},1032,["color"])):y("",!0),s.key==="metric"?(d(),v(R,{key:1},[c.anomalyMetric?(d(),v("span",$t,r(c.anomalyMetric),1)):(d(),v("span",ht,"—"))],64)):y("",!0),s.key==="description"?(d(),v("span",Ct,r(ve(c.description,80)||"—"),1)):y("",!0),s.key==="status"?(d(),C(L,{key:3,color:Fe(c.status)},{default:l(()=>[p(r(fe(c.status)),1)]),_:2},1032,["color"])):y("",!0),s.key==="createdAt"?(d(),v("span",xt,r(k(pe)(c.createdAt)),1)):y("",!0),s.key==="action"?(d(),v(R,{key:5},[c.status==="open"?(d(),C(u,{key:0,size:"small",type:"link",onClick:O=>Te(c)},{default:l(()=>[p(r(e.$t("aiops.incidentActions.ack")),1)]),_:1},8,["onClick"])):y("",!0),c.status==="open"||c.status==="acknowledged"?(d(),C(u,{key:1,size:"small",type:"link",onClick:O=>Ue(c)},{default:l(()=>[p(r(e.$t("aiops.incidentActions.resolve")),1)]),_:1},8,["onClick"])):y("",!0),c.status==="resolved"?(d(),C(u,{key:2,size:"small",type:"link",onClick:O=>qe(c)},{default:l(()=>[p(r(e.$t("aiops.incidentActions.close")),1)]),_:1},8,["onClick"])):y("",!0),c.status==="resolved"||c.status==="closed"?(d(),C(u,{key:3,size:"small",type:"link",onClick:O=>Je(c)},{default:l(()=>[p(r(e.$t("aiops.incidentActions.postmortem")),1)]),_:1},8,["onClick"])):y("",!0)],64)):y("",!0)]),emptyText:l(()=>[z("div",St,[a(k(re),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+r(q.value||J.value?e.$t("aiops.table.incidentEmptyFiltered"):e.$t("aiops.table.incidentEmpty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ie,{key:"playbooks",tab:e.$t("aiops.tabs.playbooks")},{default:l(()=>[a(se,{columns:Se.value,"data-source":ye.value,pagination:{pageSize:20,showTotal:s=>e.$t("aiops.table.totalSuffix",{n:s})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:s,record:c})=>[s.key==="name"?(d(),v(R,{key:0},[z("span",wt,r(c.name),1),c.triggerCondition?(d(),v("div",zt,r(ve(c.triggerCondition,80)),1)):y("",!0)],64)):y("",!0),s.key==="enabled"?(d(),C(Ke,{key:1,checked:c.enabled,size:"small",onChange:O=>De(c,O)},null,8,["checked","onChange"])):y("",!0),s.key==="stats"?(d(),v(R,{key:2},[a(L,{color:"green",style:{"font-size":"11px"}},{default:l(()=>[p(r(e.$t("aiops.table.successCount",{n:c.successCount})),1)]),_:2},1024),c.failureCount>0?(d(),C(L,{key:0,color:"red",style:{"font-size":"11px","margin-left":"4px"}},{default:l(()=>[p(r(e.$t("aiops.table.failureCount",{n:c.failureCount})),1)]),_:2},1024)):y("",!0)],64)):y("",!0),s.key==="createdAt"?(d(),v("span",At,r(k(pe)(c.createdAt)),1)):y("",!0),s.key==="action"?(d(),v(R,{key:4},[a(u,{size:"small",type:"link",onClick:O=>be(c,"success")},{default:l(()=>[p(r(e.$t("aiops.playbookActions.success")),1)]),_:1},8,["onClick"]),a(u,{size:"small",type:"link",danger:"",onClick:O=>be(c,"failure")},{default:l(()=>[p(r(e.$t("aiops.playbookActions.failure")),1)]),_:1},8,["onClick"])],64)):y("",!0)]),emptyText:l(()=>[z("div",Ft,[a(k(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+r(e.$t("aiops.table.playbookEmpty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ie,{key:"baselines",tab:e.$t("aiops.tabs.baselines")},{default:l(()=>[a(se,{columns:we.value,"data-source":ee.value,pagination:{pageSize:20,showTotal:s=>e.$t("aiops.table.totalSuffix",{n:s})},size:"small",loading:_.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:s,record:c})=>[s.key==="metric"?(d(),v("span",Pt,r(c.metricName),1)):y("",!0),s.key==="mean"?(d(),v(R,{key:1},[z("span",Rt,r(c.mean),1),z("span",jt,"σ "+r(c.stdDev),1)],64)):y("",!0),s.key==="iqr"?(d(),v("span",It," Q1 "+r(c.q1)+" / Q3 "+r(c.q3),1)):y("",!0),s.key==="sampleCount"?(d(),C(L,{key:3,color:"blue",style:{"font-size":"11px"}},{default:l(()=>[p(r(c.sampleCount),1)]),_:2},1024)):y("",!0),s.key==="updatedAt"?(d(),v("span",Nt,r(k(pe)(c.updatedAt)),1)):y("",!0)]),emptyText:l(()=>[z("div",Lt,[a(k(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+r(e.$t("aiops.table.baselineEmpty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(H,{open:Q.value,"onUpdate:open":o[6]||(o[6]=s=>Q.value=s),title:e.$t("aiops.incident_modal.title"),"confirm-loading":S.value,width:520,"ok-text":e.$t("aiops.incident_modal.ok"),"cancel-text":e.$t("aiops.incident_modal.cancel"),onOk:Ie,onCancel:ge},{default:l(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.incident_modal.severityLabel")},{default:l(()=>[a(Ce,{value:w.severity,"onUpdate:value":o[3]||(o[3]=s=>w.severity=s)},{default:l(()=>[(d(!0),v(R,null,E(k(ce),s=>(d(),C(he,{key:s,value:s},{default:l(()=>[p(r(s),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.incident_modal.metricLabel")},{default:l(()=>[a(ne,{value:w.metric,"onUpdate:value":o[4]||(o[4]=s=>w.metric=s),placeholder:e.$t("aiops.incident_modal.metricPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.incident_modal.descLabel"),required:""},{default:l(()=>[a(Z,{value:w.description,"onUpdate:value":o[5]||(o[5]=s=>w.description=s),"auto-size":{minRows:3,maxRows:6}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(H,{open:V.value,"onUpdate:open":o[10]||(o[10]=s=>V.value=s),title:e.$t("aiops.playbook_modal.title"),"confirm-loading":S.value,width:540,"ok-text":e.$t("aiops.playbook_modal.ok"),"cancel-text":e.$t("aiops.playbook_modal.cancel"),onOk:Ne,onCancel:ke},{default:l(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.playbook_modal.nameLabel"),required:""},{default:l(()=>[a(ne,{value:$.name,"onUpdate:value":o[7]||(o[7]=s=>$.name=s),placeholder:e.$t("aiops.playbook_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.playbook_modal.triggerLabel")},{default:l(()=>[a(Z,{value:$.triggerJson,"onUpdate:value":o[8]||(o[8]=s=>$.triggerJson=s),placeholder:e.$t("aiops.playbook_modal.triggerPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.playbook_modal.stepsLabel")},{default:l(()=>[a(Z,{value:$.stepsJson,"onUpdate:value":o[9]||(o[9]=s=>$.stepsJson=s),placeholder:e.$t("aiops.playbook_modal.stepsPlaceholder"),"auto-size":{minRows:3,maxRows:6}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(H,{open:W.value,"onUpdate:open":o[13]||(o[13]=s=>W.value=s),title:e.$t("aiops.baseline_modal.title"),"confirm-loading":S.value,width:500,"ok-text":e.$t("aiops.baseline_modal.ok"),"cancel-text":e.$t("aiops.baseline_modal.cancel"),onOk:Le,onCancel:_e},{default:l(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.baseline_modal.metricLabel"),required:""},{default:l(()=>[a(ne,{value:I.metric,"onUpdate:value":o[11]||(o[11]=s=>I.metric=s),placeholder:e.$t("aiops.baseline_modal.metricPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.baseline_modal.valuesLabel"),required:""},{default:l(()=>[a(Z,{value:I.values,"onUpdate:value":o[12]||(o[12]=s=>I.values=s),placeholder:e.$t("aiops.baseline_modal.valuesPlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(H,{open:te.value,"onUpdate:open":o[17]||(o[17]=s=>te.value=s),title:e.$t("aiops.detect_modal.title"),"confirm-loading":Y.value,width:500,"ok-text":e.$t("aiops.detect_modal.ok"),"cancel-text":e.$t("aiops.detect_modal.cancel"),onOk:Oe},{default:l(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(P,{label:e.$t("aiops.detect_modal.metricLabel"),required:""},{default:l(()=>[a(Ce,{value:F.metric,"onUpdate:value":o[14]||(o[14]=s=>F.metric=s),"show-search":"",placeholder:e.$t("aiops.detect_modal.metricPlaceholder")},{default:l(()=>[(d(!0),v(R,null,E(ee.value,s=>(d(),C(he,{key:s.metricName,value:s.metricName},{default:l(()=>[p(r(e.$t("aiops.detect_modal.metricOptionLabel",{name:s.metricName,count:s.sampleCount})),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.detect_modal.valueLabel"),required:""},{default:l(()=>[a(Ve,{value:F.value,"onUpdate:value":o[15]||(o[15]=s=>F.value=s),style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(P,{label:e.$t("aiops.detect_modal.algorithmLabel")},{default:l(()=>[a(le,{value:F.algorithm,"onUpdate:value":o[16]||(o[16]=s=>F.algorithm=s)},{default:l(()=>[a(U,{value:"z_score"},{default:l(()=>[...o[18]||(o[18]=[p("Z-Score (3σ)",-1)])]),_:1}),a(U,{value:"iqr"},{default:l(()=>[...o[19]||(o[19]=[p("IQR (1.5×)",-1)])]),_:1})]),_:1},8,["value"])]),_:1},8,["label"])]),_:1}),h.value?(d(),C(N,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(T,{title:e.$t("aiops.detect_modal.resultTitle"),value:h.value.anomaly?e.$t("aiops.detect_modal.anomaly"):e.$t("aiops.detect_modal.normal"),"value-style":{color:h.value.anomaly?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),h.value.reason&&!h.value.anomaly?(d(),v("div",Ot,r(e.$t("aiops.detect_modal.reasonLine",{reason:Pe(h.value.reason)})),1)):y("",!0),h.value.baseline?(d(),v("div",Tt,[z("div",null,r(e.$t("aiops.detect_modal.scoreLine",{score:h.value.score,threshold:h.value.threshold})),1),z("div",null,r(e.$t("aiops.detect_modal.baselineLine",{mean:h.value.baseline.mean,stdDev:h.value.baseline.stdDev})),1)])):y("",!0),h.value.incidentId?(d(),v("div",Ut,[a(L,{color:ae(h.value.severity)},{default:l(()=>[p(r(e.$t("aiops.detect_modal.incidentCreated",{severity:h.value.severity})),1)]),_:1},8,["color"])])):y("",!0)]),_:1})):y("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},pa=We(qt,[["__scopeId","data-v-ecfcab22"]]);export{pa as default};
@@ -1 +1 @@
1
- import{J as b,d as i,q as p}from"./index-CyqU4Tck.js";import{B as y,c as O}from"./index-DtNHlrxp.js";import{e as m,s as r,d as P,o as R,c as x}from"./vendor-B6ToihkA.js";const A=()=>{const n=r(!1);return m(()=>{n.value=!0}),n},D={type:{type:String},actionFn:Function,close:Function,autofocus:Boolean,prefixCls:String,buttonProps:p(),emitEvent:Boolean,quitOnNullishReturnValue:Boolean};function d(n){return!!(n&&n.then)}const j=P({compatConfig:{MODE:3},name:"ActionButton",props:D,setup(n,g){let{slots:B}=g;const l=r(!1),c=r(),a=r(!1);let f;const v=A();R(()=>{n.autofocus&&(f=setTimeout(()=>{var e,t;return(t=(e=b(c.value))===null||e===void 0?void 0:e.focus)===null||t===void 0?void 0:t.call(e)}))}),m(()=>{clearTimeout(f)});const u=function(){for(var e,t=arguments.length,o=new Array(t),s=0;s<t;s++)o[s]=arguments[s];(e=n.close)===null||e===void 0||e.call(n,...o)},h=e=>{d(e)&&(a.value=!0,e.then(function(){v.value||(a.value=!1),u(...arguments),l.value=!1},t=>(v.value||(a.value=!1),l.value=!1,Promise.reject(t))))},C=e=>{const{actionFn:t}=n;if(l.value)return;if(l.value=!0,!t){u();return}let o;if(n.emitEvent){if(o=t(e),n.quitOnNullishReturnValue&&!d(o)){l.value=!1,u(e);return}}else if(t.length)o=t(n.close),l.value=!1;else if(o=t(),!o){u();return}h(o)};return()=>{const{type:e,prefixCls:t,buttonProps:o}=n;return x(y,i(i(i({},O(e)),{},{onClick:C,loading:a.value,prefixCls:t},o),{},{ref:c}),B)}}});export{j as A};
1
+ import{J as b,d as i,q as p}from"./index-Cw4v7ezB.js";import{B as y,c as O}from"./index-CWhXxdyo.js";import{e as m,s as r,d as P,o as R,c as x}from"./vendor-B6ToihkA.js";const A=()=>{const n=r(!1);return m(()=>{n.value=!0}),n},D={type:{type:String},actionFn:Function,close:Function,autofocus:Boolean,prefixCls:String,buttonProps:p(),emitEvent:Boolean,quitOnNullishReturnValue:Boolean};function d(n){return!!(n&&n.then)}const j=P({compatConfig:{MODE:3},name:"ActionButton",props:D,setup(n,g){let{slots:B}=g;const l=r(!1),c=r(),a=r(!1);let f;const v=A();R(()=>{n.autofocus&&(f=setTimeout(()=>{var e,t;return(t=(e=b(c.value))===null||e===void 0?void 0:e.focus)===null||t===void 0?void 0:t.call(e)}))}),m(()=>{clearTimeout(f)});const u=function(){for(var e,t=arguments.length,o=new Array(t),s=0;s<t;s++)o[s]=arguments[s];(e=n.close)===null||e===void 0||e.call(n,...o)},h=e=>{d(e)&&(a.value=!0,e.then(function(){v.value||(a.value=!1),u(...arguments),l.value=!1},t=>(v.value||(a.value=!1),l.value=!1,Promise.reject(t))))},C=e=>{const{actionFn:t}=n;if(l.value)return;if(l.value=!0,!t){u();return}let o;if(n.emitEvent){if(o=t(e),n.quitOnNullishReturnValue&&!d(o)){l.value=!1,u(e);return}}else if(t.length)o=t(n.close),l.value=!1;else if(o=t(),!o){u();return}h(o)};return()=>{const{type:e,prefixCls:t,buttonProps:o}=n;return x(y,i(i(i({},O(e)),{},{onClick:C,loading:a.value,prefixCls:t},o),{},{ref:c}),B)}}});export{j as A};
@@ -1,3 +1,3 @@
1
- import{_ as fe,a as _e,c as I}from"./index-CyqU4Tck.js";import{u as xe}from"./ws-D_5-FRIb.js";import{R as ee,$ as te,h as ae,av as ge,aw as Te,ax as oe}from"./icons-DvZE-RKs.js";import{w as he,o as be,M as m,R,P as r,u as n,c as a,N as o,r as x,K as g,a as Q,L as c,O as y,Q as z,S as T,F as we,f as W}from"./vendor-B6ToihkA.js";const Ce={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Se={class:"page-title"},Ie={class:"page-sub"},ze={style:{display:"flex","align-items":"center",gap:"12px"}},Re={key:0,style:{"text-align":"center",padding:"60px"}},Oe={key:1,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Me={key:2,style:{color:"#faad14"}},je={key:3,style:{color:"var(--text-secondary)"}},Ne={key:0,style:{"text-align":"center",padding:"60px"}},Fe={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},Ue={key:2,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Ae={key:3,style:{color:"#faad14"}},Be={key:4,style:{color:"var(--text-secondary)"}},Le={key:0,style:{"text-align":"center",padding:"40px"}},De={key:1,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Je={key:0,style:{"text-align":"center",padding:"40px"}},Pe={__name:"Analytics",setup($e){const{t:l}=_e(),C=xe(),O=x("all"),U=x(!1),A=x(!1),B=x(!1),L=x(!1),D=x(!1),J=x(!1),P=x(20),f=Q({totalCalls:0,totalTokens:0,totalCost:0,avgResponseTime:0}),M=x([]),j=x([]),_=Q({entries:0,hits:0,tokensSaved:0,expired:0}),N=x(!1),b=Q({totalCalls:0,inputTokens:0,outputTokens:0,totalTokens:0}),q=x([]),se=W(()=>[{title:"Provider",key:"provider",dataIndex:"provider",width:"120px"},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0},{title:l("analytics.sessionUsageColumns.calls"),key:"calls",dataIndex:"calls",width:"100px",sorter:(e,t)=>(e.calls||0)-(t.calls||0)},{title:"Input",key:"inputTokens",dataIndex:"inputTokens",width:"110px",sorter:(e,t)=>(e.inputTokens||0)-(t.inputTokens||0)},{title:"Output",key:"outputTokens",dataIndex:"outputTokens",width:"110px",sorter:(e,t)=>(e.outputTokens||0)-(t.outputTokens||0)},{title:"Total",key:"totalTokens",dataIndex:"totalTokens",width:"110px",sorter:(e,t)=>(e.totalTokens||0)-(t.totalTokens||0)}]),le=W(()=>[{title:"Provider",key:"provider",dataIndex:"provider",width:"120px",sorter:(e,t)=>(e.provider||"").localeCompare(t.provider||"")},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0,sorter:(e,t)=>(e.model||"").localeCompare(t.model||"")},{title:l("analytics.breakdownColumns.calls"),key:"calls",dataIndex:"calls",width:"100px",sorter:(e,t)=>(e.calls||0)-(t.calls||0)},{title:l("analytics.breakdownColumns.inputTokens"),key:"inputTokens",dataIndex:"inputTokens",width:"120px",sorter:(e,t)=>(e.inputTokens||0)-(t.inputTokens||0)},{title:l("analytics.breakdownColumns.outputTokens"),key:"outputTokens",dataIndex:"outputTokens",width:"130px",sorter:(e,t)=>(e.outputTokens||0)-(t.outputTokens||0)},{title:l("analytics.breakdownColumns.totalTokens"),key:"totalTokens",dataIndex:"totalTokens",width:"120px",sorter:(e,t)=>(e.totalTokens||0)-(t.totalTokens||0)},{title:l("analytics.breakdownColumns.cost"),key:"cost",dataIndex:"cost",width:"110px",sorter:(e,t)=>(e.cost||0)-(t.cost||0)},{title:l("analytics.breakdownColumns.avgResponseTime"),key:"avgResponseTime",dataIndex:"avgResponseTime",width:"110px",sorter:(e,t)=>(e.avgResponseTime||0)-(t.avgResponseTime||0)}]),ne=W(()=>[{title:l("analytics.recentColumns.timestamp"),key:"timestamp",dataIndex:"timestamp",width:"180px"},{title:"Provider",key:"provider",dataIndex:"provider",width:"110px"},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0},{title:l("analytics.recentColumns.input"),key:"inputTokens",dataIndex:"inputTokens",width:"90px"},{title:l("analytics.recentColumns.output"),key:"outputTokens",dataIndex:"outputTokens",width:"90px"},{title:l("analytics.recentColumns.cost"),key:"cost",dataIndex:"cost",width:"100px"},{title:l("analytics.recentColumns.responseTime"),key:"responseTime",dataIndex:"responseTime",width:"100px"}]);function w(e){return(e||"").replace(/,/g,"")}function S(e){try{const t=(e||"").trim(),s=t.search(/[{[]/);return s>=0?JSON.parse(t.slice(s)):null}catch{return null}}function re(e){const t=(e||"").split(`
1
+ import{_ as fe,a as _e,c as I}from"./index-Cw4v7ezB.js";import{u as xe}from"./ws-D_5-FRIb.js";import{R as ee,$ as te,h as ae,av as ge,aw as Te,ax as oe}from"./icons-DvZE-RKs.js";import{w as he,o as be,M as m,R,P as r,u as n,c as a,N as o,r as x,K as g,a as Q,L as c,O as y,Q as z,S as T,F as we,f as W}from"./vendor-B6ToihkA.js";const Ce={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Se={class:"page-title"},Ie={class:"page-sub"},ze={style:{display:"flex","align-items":"center",gap:"12px"}},Re={key:0,style:{"text-align":"center",padding:"60px"}},Oe={key:1,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Me={key:2,style:{color:"#faad14"}},je={key:3,style:{color:"var(--text-secondary)"}},Ne={key:0,style:{"text-align":"center",padding:"60px"}},Fe={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},Ue={key:2,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Ae={key:3,style:{color:"#faad14"}},Be={key:4,style:{color:"var(--text-secondary)"}},Le={key:0,style:{"text-align":"center",padding:"40px"}},De={key:1,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Je={key:0,style:{"text-align":"center",padding:"40px"}},Pe={__name:"Analytics",setup($e){const{t:l}=_e(),C=xe(),O=x("all"),U=x(!1),A=x(!1),B=x(!1),L=x(!1),D=x(!1),J=x(!1),P=x(20),f=Q({totalCalls:0,totalTokens:0,totalCost:0,avgResponseTime:0}),M=x([]),j=x([]),_=Q({entries:0,hits:0,tokensSaved:0,expired:0}),N=x(!1),b=Q({totalCalls:0,inputTokens:0,outputTokens:0,totalTokens:0}),q=x([]),se=W(()=>[{title:"Provider",key:"provider",dataIndex:"provider",width:"120px"},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0},{title:l("analytics.sessionUsageColumns.calls"),key:"calls",dataIndex:"calls",width:"100px",sorter:(e,t)=>(e.calls||0)-(t.calls||0)},{title:"Input",key:"inputTokens",dataIndex:"inputTokens",width:"110px",sorter:(e,t)=>(e.inputTokens||0)-(t.inputTokens||0)},{title:"Output",key:"outputTokens",dataIndex:"outputTokens",width:"110px",sorter:(e,t)=>(e.outputTokens||0)-(t.outputTokens||0)},{title:"Total",key:"totalTokens",dataIndex:"totalTokens",width:"110px",sorter:(e,t)=>(e.totalTokens||0)-(t.totalTokens||0)}]),le=W(()=>[{title:"Provider",key:"provider",dataIndex:"provider",width:"120px",sorter:(e,t)=>(e.provider||"").localeCompare(t.provider||"")},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0,sorter:(e,t)=>(e.model||"").localeCompare(t.model||"")},{title:l("analytics.breakdownColumns.calls"),key:"calls",dataIndex:"calls",width:"100px",sorter:(e,t)=>(e.calls||0)-(t.calls||0)},{title:l("analytics.breakdownColumns.inputTokens"),key:"inputTokens",dataIndex:"inputTokens",width:"120px",sorter:(e,t)=>(e.inputTokens||0)-(t.inputTokens||0)},{title:l("analytics.breakdownColumns.outputTokens"),key:"outputTokens",dataIndex:"outputTokens",width:"130px",sorter:(e,t)=>(e.outputTokens||0)-(t.outputTokens||0)},{title:l("analytics.breakdownColumns.totalTokens"),key:"totalTokens",dataIndex:"totalTokens",width:"120px",sorter:(e,t)=>(e.totalTokens||0)-(t.totalTokens||0)},{title:l("analytics.breakdownColumns.cost"),key:"cost",dataIndex:"cost",width:"110px",sorter:(e,t)=>(e.cost||0)-(t.cost||0)},{title:l("analytics.breakdownColumns.avgResponseTime"),key:"avgResponseTime",dataIndex:"avgResponseTime",width:"110px",sorter:(e,t)=>(e.avgResponseTime||0)-(t.avgResponseTime||0)}]),ne=W(()=>[{title:l("analytics.recentColumns.timestamp"),key:"timestamp",dataIndex:"timestamp",width:"180px"},{title:"Provider",key:"provider",dataIndex:"provider",width:"110px"},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0},{title:l("analytics.recentColumns.input"),key:"inputTokens",dataIndex:"inputTokens",width:"90px"},{title:l("analytics.recentColumns.output"),key:"outputTokens",dataIndex:"outputTokens",width:"90px"},{title:l("analytics.recentColumns.cost"),key:"cost",dataIndex:"cost",width:"100px"},{title:l("analytics.recentColumns.responseTime"),key:"responseTime",dataIndex:"responseTime",width:"100px"}]);function w(e){return(e||"").replace(/,/g,"")}function S(e){try{const t=(e||"").trim(),s=t.search(/[{[]/);return s>=0?JSON.parse(t.slice(s)):null}catch{return null}}function re(e){const t=(e||"").split(`
2
2
  `);for(const s of t){const u=s.trim(),h=u.match(/total\s*calls?\s*[::]\s*([\d,]+)/i);h&&(f.totalCalls=parseInt(w(h[1]),10)||0);const d=u.match(/total\s*tokens?\s*[::]\s*([\d,]+)/i);d&&(f.totalTokens=parseInt(w(d[1]),10)||0);const k=u.match(/cost\s*[::]\s*\$?([\d,.]+)/i);k&&(f.totalCost=parseFloat(w(k[1]))||0);const p=u.match(/(?:avg|average)\s*(?:response\s*)?time\s*[::]\s*([\d,.]+)/i);p&&(f.avgResponseTime=parseFloat(w(p[1]))||0)}}function ie(e){f.totalCalls=e.totalCalls??e.total_calls??e.calls??0,f.totalTokens=e.totalTokens??e.total_tokens??e.tokens??0,f.totalCost=e.totalCost??e.total_cost??e.cost??0,f.avgResponseTime=e.avgResponseTime??e.avg_response_time??e.avgTime??0}function ce(e){return(Array.isArray(e)?e:e.breakdown||e.providers||e.rows||[]).map((s,u)=>({key:u,provider:s.provider||"-",model:s.model||"-",calls:s.calls||s.count||0,inputTokens:s.inputTokens??s.input_tokens??0,outputTokens:s.outputTokens??s.output_tokens??0,totalTokens:s.totalTokens??s.total_tokens??(s.inputTokens??0)+(s.outputTokens??0),cost:s.cost??s.total_cost??0,avgResponseTime:s.avgResponseTime??s.avg_response_time??0}))}function ue(e){return(Array.isArray(e)?e:e.recent||e.records||e.rows||[]).map((s,u)=>({key:u,timestamp:s.timestamp||s.time||s.created_at||"-",provider:s.provider||"-",model:s.model||"-",inputTokens:s.inputTokens??s.input_tokens??0,outputTokens:s.outputTokens??s.output_tokens??0,cost:s.cost??0,responseTime:s.responseTime??s.response_time??0}))}function de(e){_.entries=e.entries??e.count??e.size??0,_.hits=e.hits??e.cacheHits??e.cache_hits??0,_.tokensSaved=e.tokensSaved??e.tokens_saved??0,_.expired=e.expired??e.expiredCount??e.expired_count??0}function pe(e){const t=(e||"").split(`
3
3
  `);for(const s of t){const u=s.trim(),h=u.match(/entries?\s*[::]\s*([\d,]+)/i);h&&(_.entries=parseInt(w(h[1]),10)||0);const d=u.match(/hits?\s*[::]\s*([\d,]+)/i);d&&(_.hits=parseInt(w(d[1]),10)||0);const k=u.match(/(?:tokens?\s*)?saved\s*[::]\s*([\d,]+)/i);k&&(_.tokensSaved=parseInt(w(k[1]),10)||0);const p=u.match(/expired?\s*[::]\s*([\d,]+)/i);p&&(_.expired=parseInt(w(p[1]),10)||0)}}async function G(){U.value=!0;try{const{output:e}=await C.execute(`tokens show --period ${O.value} --json`,15e3),t=S(e);t?ie(t):re(e)}catch(e){console.error("loadSummary failed:",e)}finally{U.value=!1}}async function ye(){A.value=!0;try{const{output:e}=await C.execute("tokens breakdown --json",15e3),t=S(e);t?M.value=ce(t):M.value=[]}catch(e){console.error("loadBreakdown failed:",e),M.value=[]}finally{A.value=!1}}async function X(){B.value=!0;try{const{output:e}=await C.execute(`tokens recent --limit ${P.value} --json`,15e3),t=S(e);t?j.value=ue(t):j.value=[]}catch(e){console.error("loadRecent failed:",e),j.value=[]}finally{B.value=!1}}async function $(){L.value=!0;try{const{output:e}=await C.execute("tokens cache --json",15e3),t=S(e);t?de(t):pe(e)}catch(e){console.error("loadCache failed:",e)}finally{L.value=!1}}async function ke(){D.value=!0;try{const{output:e}=await C.execute("tokens cache --clear --json",15e3),t=S(e);t&&t.error?I.error(l("analytics.messages.cacheClearFailed",{err:t.error})):(I.success(l("analytics.messages.cacheClearOk")),await $())}catch(e){I.error(l("analytics.messages.cacheClearFailed",{err:e.message}))}finally{D.value=!1}}async function me(){J.value=!0;try{const{output:e}=await C.execute("tokens cache --cleanup --json",15e3),t=S(e);t&&t.error?I.error(l("analytics.messages.cacheCleanupFailed",{err:t.error})):(I.success(l("analytics.messages.cacheCleanupOk")),await $())}catch(e){I.error(l("analytics.messages.cacheCleanupFailed",{err:e.message}))}finally{J.value=!1}}async function Y(){N.value=!0;try{const e=await C.sendRaw({type:"usage.global",limit:1e3},15e3);if(e.ok&&e.usage){const t=e.usage.total||{};b.totalCalls=t.calls??0,b.inputTokens=t.inputTokens??t.input_tokens??0,b.outputTokens=t.outputTokens??t.output_tokens??0,b.totalTokens=t.totalTokens??t.total_tokens??0,q.value=(e.usage.byModel||[]).map((s,u)=>({key:u,provider:s.provider||"-",model:s.model||"-",calls:s.calls??0,inputTokens:s.inputTokens??s.input_tokens??0,outputTokens:s.outputTokens??s.output_tokens??0,totalTokens:s.totalTokens??s.total_tokens??0}))}}catch(e){console.warn("loadSessionUsage failed (route may not be available):",e.message)}finally{N.value=!1}}async function Z(){await Promise.all([G(),ye(),X(),$(),Y()])}return he(O,()=>{G()}),be(Z),(e,t)=>{const s=g("a-radio-button"),u=g("a-radio-group"),h=g("a-button"),d=g("a-statistic"),k=g("a-card"),p=g("a-col"),E=g("a-row"),F=g("a-spin"),V=g("a-tag"),H=g("a-empty"),K=g("a-table"),ve=g("a-space");return c(),m("div",null,[R("div",Ce,[R("div",null,[R("h2",Se,r(n(l)("analytics.title")),1),R("p",Ie,r(n(l)("analytics.subtitle")),1)]),R("div",ze,[a(u,{value:O.value,"onUpdate:value":t[0]||(t[0]=i=>O.value=i),"button-style":"solid",size:"small"},{default:o(()=>[a(s,{value:"today"},{default:o(()=>[y(r(n(l)("analytics.period.today")),1)]),_:1}),a(s,{value:"week"},{default:o(()=>[y(r(n(l)("analytics.period.week")),1)]),_:1}),a(s,{value:"month"},{default:o(()=>[y(r(n(l)("analytics.period.month")),1)]),_:1}),a(s,{value:"all"},{default:o(()=>[y(r(n(l)("analytics.period.all")),1)]),_:1})]),_:1},8,["value"]),a(h,{type:"primary",ghost:"",loading:U.value,onClick:Z},{icon:o(()=>[a(n(ee))]),default:o(()=>[y(" "+r(n(l)("analytics.refresh")),1)]),_:1},8,["loading"])])]),a(E,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[a(p,{xs:24,sm:12,lg:6},{default:o(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(d,{title:n(l)("analytics.summary.totalCalls"),value:f.totalCalls,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[a(n(te))]),suffix:o(()=>[y(r(n(l)("analytics.summary.callsSuffix")),1)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:o(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(d,{title:n(l)("analytics.summary.totalTokens"),value:f.totalTokens,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[a(n(ae))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:o(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(d,{title:n(l)("analytics.summary.totalCost"),value:f.totalCost,precision:4,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[a(n(ge))]),suffix:o(()=>[...t[2]||(t[2]=[y("USD",-1)])]),_:1},8,["title","value"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:o(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(d,{title:n(l)("analytics.summary.avgResponseTime"),value:f.avgResponseTime,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[a(n(ae))]),suffix:o(()=>[...t[3]||(t[3]=[y("ms",-1)])]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),a(k,{title:n(l)("analytics.providerCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{default:o(()=>[A.value?(c(),m("div",Re,[a(F,{size:"large"})])):(c(),z(K,{key:1,columns:le.value,"data-source":M.value,pagination:{pageSize:20,showTotal:i=>n(l)("analytics.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"analytics-row"},{bodyCell:o(({column:i,record:v})=>[i.key==="provider"?(c(),z(V,{key:0,color:"blue"},{default:o(()=>[y(r(v.provider),1)]),_:2},1024)):T("",!0),i.key==="model"?(c(),m("span",Oe,r(v.model),1)):T("",!0),i.key==="cost"?(c(),m("span",Me,"$"+r((v.cost||0).toFixed(4)),1)):T("",!0),i.key==="avgResponseTime"?(c(),m("span",je,r(v.avgResponseTime||0)+" ms",1)):T("",!0)]),emptyText:o(()=>[a(H,{description:n(l)("analytics.providerEmpty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"]))]),_:1},8,["title"]),a(k,{title:n(l)("analytics.recentCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:o(()=>[a(u,{value:P.value,"onUpdate:value":t[1]||(t[1]=i=>P.value=i),size:"small",onChange:X},{default:o(()=>[a(s,{value:10},{default:o(()=>[...t[4]||(t[4]=[y("10",-1)])]),_:1}),a(s,{value:20},{default:o(()=>[...t[5]||(t[5]=[y("20",-1)])]),_:1}),a(s,{value:50},{default:o(()=>[...t[6]||(t[6]=[y("50",-1)])]),_:1})]),_:1},8,["value"])]),default:o(()=>[B.value?(c(),m("div",Ne,[a(F,{size:"large"})])):(c(),z(K,{key:1,columns:ne.value,"data-source":j.value,pagination:{pageSize:20,showTotal:i=>n(l)("analytics.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"analytics-row"},{bodyCell:o(({column:i,record:v})=>[i.key==="timestamp"?(c(),m("span",Fe,r(v.timestamp),1)):T("",!0),i.key==="provider"?(c(),z(V,{key:1,color:"blue"},{default:o(()=>[y(r(v.provider),1)]),_:2},1024)):T("",!0),i.key==="model"?(c(),m("span",Ue,r(v.model),1)):T("",!0),i.key==="cost"?(c(),m("span",Ae,"$"+r((v.cost||0).toFixed(4)),1)):T("",!0),i.key==="responseTime"?(c(),m("span",Be,r(v.responseTime||0)+" ms",1)):T("",!0)]),emptyText:o(()=>[a(H,{description:n(l)("analytics.recentEmpty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"]))]),_:1},8,["title"]),a(k,{title:n(l)("analytics.sessionCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:o(()=>[a(h,{size:"small",loading:N.value,onClick:Y,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[a(n(ee))]),default:o(()=>[y(" "+r(n(l)("analytics.refresh")),1)]),_:1},8,["loading"])]),default:o(()=>[N.value?(c(),m("div",Le,[a(F)])):(c(),m(we,{key:1},[a(E,{gutter:[16,16],style:{"margin-bottom":"16px"}},{default:o(()=>[a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.sessionStats.totalCalls"),value:b.totalCalls,"value-style":{color:"#1677ff",fontSize:"18px"}},{prefix:o(()=>[a(n(te))]),_:1},8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.sessionStats.inputTokens"),value:b.inputTokens,"value-style":{color:"#52c41a",fontSize:"18px"}},null,8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.sessionStats.outputTokens"),value:b.outputTokens,"value-style":{color:"#faad14",fontSize:"18px"}},null,8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.sessionStats.totalTokens"),value:b.totalTokens,"value-style":{color:"#722ed1",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1}),a(K,{columns:se.value,"data-source":q.value,pagination:!1,size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"analytics-row"},{bodyCell:o(({column:i,record:v})=>[i.key==="provider"?(c(),z(V,{key:0,color:"blue"},{default:o(()=>[y(r(v.provider),1)]),_:2},1024)):T("",!0),i.key==="model"?(c(),m("span",De,r(v.model),1)):T("",!0)]),emptyText:o(()=>[a(H,{description:n(l)("analytics.sessionEmpty")},null,8,["description"])]),_:1},8,["columns","data-source"])],64))]),_:1},8,["title"]),a(k,{title:n(l)("analytics.cacheCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:o(()=>[a(ve,null,{default:o(()=>[a(h,{size:"small",loading:J.value,onClick:me,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[a(n(oe))]),default:o(()=>[y(" "+r(n(l)("analytics.cacheActions.cleanup")),1)]),_:1},8,["loading"]),a(h,{size:"small",danger:"",loading:D.value,onClick:ke,style:{"border-color":"var(--border-color)"}},{icon:o(()=>[a(n(oe))]),default:o(()=>[y(" "+r(n(l)("analytics.cacheActions.clear")),1)]),_:1},8,["loading"])]),_:1})]),default:o(()=>[L.value?(c(),m("div",Je,[a(F)])):(c(),z(E,{key:1,gutter:[16,16]},{default:o(()=>[a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.cacheStats.entries"),value:_.entries,"value-style":{color:"#1677ff",fontSize:"18px"}},{prefix:o(()=>[a(n(Te))]),_:1},8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.cacheStats.hits"),value:_.hits,"value-style":{color:"#52c41a",fontSize:"18px"}},null,8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.cacheStats.tokensSaved"),value:_.tokensSaved,"value-style":{color:"#faad14",fontSize:"18px"}},null,8,["title","value"])]),_:1}),a(p,{xs:12,sm:6},{default:o(()=>[a(d,{title:n(l)("analytics.cacheStats.expired"),value:_.expired,"value-style":{color:"#ff4d4f",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1}))]),_:1},8,["title"])])}}},Qe=fe(Pe,[["__scopeId","data-v-e9b2b29c"]]);export{Qe as default};
@@ -1 +1 @@
1
- import{r as H,w as xe,o as et,Q as k,N as t,K as p,I as tt,H as at,L as u,c as e,R as l,Y as T,u as a,M as r,S as v,F as w,P as n,O as i,Z as ot,_ as st,f as g}from"./vendor-B6ToihkA.js";import{u as nt}from"./ws-D_5-FRIb.js";import{_ as it,u as lt,a as ct,T as ut,b as pt,c as b}from"./index-CyqU4Tck.js";import{u as rt}from"./useShellMode-CgR0wCYM.js";import{F as O,G as A,D as K,M as J,h as P,i as Q,j as E,A as Z,N as X,k as x,l as ee,m as te,n as ae,S as oe,B as se,o as N,p as ne,q as ie,r as le,s as ce,t as ue,u as pe,v as re,P as de,w as B,K as R,x as $,y as ye,z as me,H as ke,W as _e,J as U,O as fe,Q as ge,U as D,V as he,X as Le,Y as ve,Z as $e,_ as we,$ as be,a0 as Oe,a1 as Se,a2 as Ce,a3 as je,a4 as Te,a5 as dt,a6 as Ae,e as yt,a7 as mt}from"./icons-DvZE-RKs.js";import kt from"./index-89HJLKZ-.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";const _t=""+new URL("logo-DBCYUiWP.png",import.meta.url).href,ft=["src"],gt={key:0,class:"logo-text"},ht={key:0,class:"mode-banner project"},Lt={class:"banner-info"},vt={class:"banner-name"},$t={class:"banner-sub"},wt={key:1,class:"mode-banner global"},bt={class:"banner-name"},Ot=["title"],St={class:"group-label"},Ct={class:"group-label"},jt={class:"group-label"},Tt={class:"group-label"},At={class:"group-label"},Kt={class:"group-label"},Pt={class:"group-label"},Et={class:"group-label"},Nt={class:"group-label"},Bt={key:0,class:"footer-text"},Rt={class:"header-left"},Ut={class:"header-right"},Dt={class:"theme-switcher"},It=["data-theme-key","onClick"],Mt=["data-locale"],Vt={class:"lang-switch-label"},Ft={class:"version-tag"},Ke="cc.web-panel.sidebar.openKeys",Wt={__name:"AppLayout",setup(qt){const Pe=tt(),Ee=at(),h=nt(),I=lt(),{t:W}=ct(),M=rt(),d=H(!1),L=window.__CC_CONFIG__||{},_=g(()=>L.mode==="project"),Ne="v5.0.3.4",Be=g(()=>I.current),Re=g(()=>I.config.vars["--menu-mode"]),q=g(()=>{const s=Ee.name?.toLowerCase()||"dashboard";return[{mcptools:"mcp",quickask:"quick-ask",ukeysign:"ukey-sign"}[s]||s]}),z=["g-overview","g-config","g-data","g-advanced","g-enterprise","g-social","g-media","g-extension"];function Ue(){try{const s=localStorage.getItem(Ke);if(s){const c=JSON.parse(s);if(Array.isArray(c))return c.filter(o=>z.includes(o))}}catch{}return[...z]}const V=H(Ue());xe(V,s=>{try{localStorage.setItem(Ke,JSON.stringify(s))}catch{}},{deep:!0});const S=g(()=>h.status),De=g(()=>({connected:"success",connecting:"processing",error:"error",disconnected:"default"})[h.status]||"default"),Ie=g(()=>{const s=`appLayout.footerStatus.${h.status}`,c=W(s);return c===s?W("appLayout.footerStatus.unknown"):c});function Me(s){I.setTheme(s)}const{current:Y,supported:F,setLocale:Ve}=pt();function Fe(){const s=F[(F.indexOf(Y.value)+1)%F.length];Ve(s)}async function We(s){try{const c=await h.sendRaw({type:"window.open",role:s},1e4);if(c?.ok===!1){b.error(`打开失败:${c.error||"未知"}`);return}const o=c?.result??c;o?.reason==="role_reserved"?b.warning("该窗口角色被保留"):o?.reason}catch(c){b.error(`打开桌面窗口失败:${c.message||c}`)}}async function qe(){kt.confirm({title:"切换到桌面壳?",content:"回到 V5/V6 桌面壳。完整 electronAPI 表面(UKey 硬件 / 原生对话框 / 系统设置等)会重新可用,但失去 web-panel 的 SPA 体验。保存后需要重启应用才生效。",okText:"切换并重启",cancelText:"取消",centered:!0,async onOk(){try{const s=await h.sendRaw({type:"shell.switch",target:"desktop"},5e3);if(s?.ok===!1)throw new Error(s.error||"shell.switch returned failure");b.loading({content:"正在重启…",duration:0})}catch(s){const c=s instanceof Error?s.message:String(s);b.error("切换失败:"+c)}}})}function ze({key:s}){if(typeof s=="string"&&s.startsWith("desktop:")){We(s);return}Pe.push({mcp:"/mcp"}[s]||`/${s}`)}return et(()=>h.connect()),(s,c)=>{const o=p("a-menu-item"),y=p("a-sub-menu"),f=p("a-menu-divider"),Ye=p("a-menu"),Ge=p("a-badge"),He=p("a-layout-sider"),C=p("a-tooltip"),Je=p("a-tag"),Qe=p("a-layout-header"),Ze=p("router-view"),Xe=p("a-layout-content"),G=p("a-layout");return u(),k(G,{class:"app-root"},{default:t(()=>[e(He,{collapsed:d.value,"onUpdate:collapsed":c[2]||(c[2]=m=>d.value=m),collapsible:"","collapsed-width":56,width:216,class:"sidebar"},{default:t(()=>[l("div",{class:T(["logo",{collapsed:d.value}])},[l("img",{src:a(_t),alt:"ChainlessChain",class:"logo-icon"},null,8,ft),d.value?v("",!0):(u(),r("span",gt,"ChainlessChain"))],2),d.value?(u(),r("div",{key:1,class:"mode-icon-sm",title:_.value?a(L).projectName:s.$t("appLayout.scope.global")},[_.value?(u(),k(a(O),{key:0,style:{color:"#1677ff"}})):(u(),k(a(A),{key:1,style:{color:"#722ed1"}}))],8,Ot)):(u(),r(w,{key:0},[_.value?(u(),r("div",ht,[e(a(O),{class:"banner-icon"}),l("div",Lt,[l("div",vt,n(a(L).projectName||s.$t("appLayout.scope.fallbackProject")),1),l("div",$t,n(s.$t("appLayout.scope.projectPanel")),1)])])):(u(),r("div",wt,[e(a(A),{class:"banner-icon"}),l("span",bt,n(s.$t("appLayout.scope.global")),1)]))],64)),e(Ye,{selectedKeys:q.value,"onUpdate:selectedKeys":c[0]||(c[0]=m=>q.value=m),openKeys:V.value,"onUpdate:openKeys":c[1]||(c[1]=m=>V.value=m),theme:Re.value,mode:"inline","inline-collapsed":d.value,class:"side-menu",onClick:ze},{default:t(()=>[d.value?(u(),r(w,{key:1},[e(o,{key:"dashboard"},{icon:t(()=>[e(a(K))]),_:1}),e(o,{key:"chat"},{icon:t(()=>[e(a(J))]),_:1}),e(o,{key:"quick-ask"},{icon:t(()=>[e(a(P))]),_:1}),e(o,{key:"cowork"},{icon:t(()=>[e(a(Q))]),_:1}),e(o,{key:"services"},{icon:t(()=>[e(a(E))]),_:1}),e(o,{key:"aiops"},{icon:t(()=>[e(a(Z))]),_:1}),e(o,{key:"tokens"},{icon:t(()=>[e(a(X))]),_:1}),e(o,{key:"logs"},{icon:t(()=>[e(a(x))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"skills"},{icon:t(()=>[e(a(ee))]),_:1}),e(o,{key:"providers"},{icon:t(()=>[e(a(te))]),_:1}),e(o,{key:"mcp"},{icon:t(()=>[e(a(ae))]),_:1}),e(o,{key:"project-settings"},{icon:t(()=>[e(a(O))]),_:1}),e(o,{key:"speech-settings"},{icon:t(()=>[e(a(oe))]),_:1}),e(o,{key:"nlprog"},{icon:t(()=>[e(a(se))]),_:1}),e(o,{key:"codegen"},{icon:t(()=>[e(a(N))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"notes"},{icon:t(()=>[e(a(ne))]),_:1}),e(o,{key:"search"},{icon:t(()=>[e(a(ie))]),_:1}),e(o,{key:"memory"},{icon:t(()=>[e(a(le))]),_:1}),e(o,{key:"knowledge"},{icon:t(()=>[e(a(ce))]),_:1}),e(o,{key:"marketplace"},{icon:t(()=>[e(a(ue))]),_:1}),e(o,{key:"cron"},{icon:t(()=>[e(a(pe))]),_:1}),e(o,{key:"workflow"},{icon:t(()=>[e(a(re))]),_:1}),e(o,{key:"pipeline"},{icon:t(()=>[e(a(de))]),_:1}),e(o,{key:"tasks"},{icon:t(()=>[e(a(P))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"security"},{icon:t(()=>[e(a(B))]),_:1}),e(o,{key:"ukey-sign"},{icon:t(()=>[e(a(R))]),_:1}),e(o,{key:"trust"},{icon:t(()=>[e(a($))]),_:1}),e(o,{key:"audit"},{icon:t(()=>[e(a(ye))]),_:1}),e(o,{key:"mtc"},{icon:t(()=>[e(a($))]),_:1}),e(o,{key:"did"},{icon:t(()=>[e(a(me))]),_:1}),e(o,{key:"permissions"},{icon:t(()=>[e(a(ke))]),_:1}),e(o,{key:"p2p"},{icon:t(()=>[e(a(_e))]),_:1}),e(o,{key:"backup"},{icon:t(()=>[e(a(U))]),_:1}),e(o,{key:"git"},{icon:t(()=>[e(a(N))]),_:1}),e(o,{key:"projects"},{icon:t(()=>[e(a(fe))]),_:1}),e(o,{key:"crosschain"},{icon:t(()=>[e(a(ge))]),_:1}),e(o,{key:"compliance"},{icon:t(()=>[e(a($))]),_:1}),e(o,{key:"privacy"},{icon:t(()=>[e(a(D))]),_:1}),e(o,{key:"inference"},{icon:t(()=>[e(a(he))]),_:1}),e(o,{key:"federation"},{icon:t(()=>[e(a(Le))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"wallet"},{icon:t(()=>[e(a(ve))]),_:1}),e(o,{key:"organization"},{icon:t(()=>[e(a($e))]),_:1}),e(o,{key:"tenant"},{icon:t(()=>[e(a(we))]),_:1}),e(o,{key:"sla"},{icon:t(()=>[e(a(K))]),_:1}),e(o,{key:"analytics"},{icon:t(()=>[e(a(be))]),_:1}),e(o,{key:"templates"},{icon:t(()=>[e(a(Oe))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"community"},{icon:t(()=>[e(a(Se))]),_:1}),e(o,{key:"governance"},{icon:t(()=>[e(a(Ce))]),_:1}),e(o,{key:"reputation"},{icon:t(()=>[e(a(je))]),_:1}),e(o,{key:"recommend"},{icon:t(()=>[e(a(Te))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"rssfeed"},{icon:t(()=>[e(a(Ae))]),_:1}),e(o,{key:"webauthn"},{icon:t(()=>[e(a(R))]),_:1}),a(M).isEmbedded?(u(),r(w,{key:0},[e(f,{class:"divider-sm"}),e(o,{key:"desktop:hardware-wallet"},{icon:t(()=>[e(a(B))]),_:1}),e(o,{key:"desktop:backup-dashboard"},{icon:t(()=>[e(a(U))]),_:1}),e(o,{key:"desktop:llm-test-chat"},{icon:t(()=>[e(a(D))]),_:1}),e(o,{key:"desktop:settings"},{icon:t(()=>[e(a(E))]),_:1})],64)):v("",!0)],64)):(u(),r(w,{key:0},[e(y,{key:"g-overview"},{title:t(()=>[l("span",St,n(s.$t("appLayout.groups.overview")),1)]),default:t(()=>[e(o,{key:"dashboard"},{icon:t(()=>[e(a(K))]),default:t(()=>[i(n(s.$t("appLayout.items.dashboard")),1)]),_:1}),e(o,{key:"chat"},{icon:t(()=>[e(a(J))]),default:t(()=>[i(n(s.$t("appLayout.items.chat")),1)]),_:1}),e(o,{key:"quick-ask"},{icon:t(()=>[e(a(P))]),default:t(()=>[i(n(s.$t("appLayout.items.quickAsk")),1)]),_:1}),e(o,{key:"cowork"},{icon:t(()=>[e(a(Q))]),default:t(()=>[i(n(s.$t("appLayout.items.cowork")),1)]),_:1}),e(o,{key:"services"},{icon:t(()=>[e(a(E))]),default:t(()=>[i(n(s.$t("appLayout.items.services")),1)]),_:1}),e(o,{key:"aiops"},{icon:t(()=>[e(a(Z))]),default:t(()=>[i(n(s.$t("appLayout.items.aiops")),1)]),_:1}),e(o,{key:"tokens"},{icon:t(()=>[e(a(X))]),default:t(()=>[i(n(s.$t("appLayout.items.tokens")),1)]),_:1}),e(o,{key:"logs"},{icon:t(()=>[e(a(x))]),default:t(()=>[i(n(s.$t("appLayout.items.logs")),1)]),_:1})]),_:1}),e(y,{key:"g-config"},{title:t(()=>[l("span",Ct,n(s.$t("appLayout.groups.config")),1)]),default:t(()=>[e(o,{key:"skills"},{icon:t(()=>[e(a(ee))]),default:t(()=>[i(n(s.$t("appLayout.items.skills")),1)]),_:1}),e(o,{key:"providers"},{icon:t(()=>[e(a(te))]),default:t(()=>[i(n(s.$t("appLayout.items.providers")),1)]),_:1}),e(o,{key:"mcp"},{icon:t(()=>[e(a(ae))]),default:t(()=>[i(n(s.$t("appLayout.items.mcp")),1)]),_:1}),e(o,{key:"project-settings"},{icon:t(()=>[e(a(O))]),default:t(()=>[i(n(s.$t("appLayout.items.projectSettings")),1)]),_:1}),e(o,{key:"speech-settings"},{icon:t(()=>[e(a(oe))]),default:t(()=>[i(n(s.$t("appLayout.items.speechSettings")),1)]),_:1}),e(o,{key:"nlprog"},{icon:t(()=>[e(a(se))]),default:t(()=>[i(n(s.$t("appLayout.items.nlprog")),1)]),_:1}),e(o,{key:"codegen"},{icon:t(()=>[e(a(N))]),default:t(()=>[i(n(s.$t("appLayout.items.codegen")),1)]),_:1})]),_:1}),e(y,{key:"g-data"},{title:t(()=>[l("span",jt,n(s.$t("appLayout.groups.data")),1)]),default:t(()=>[e(o,{key:"notes"},{icon:t(()=>[e(a(ne))]),default:t(()=>[i(n(s.$t("appLayout.items.notes")),1)]),_:1}),e(o,{key:"search"},{icon:t(()=>[e(a(ie))]),default:t(()=>[i(n(s.$t("appLayout.items.search")),1)]),_:1}),e(o,{key:"memory"},{icon:t(()=>[e(a(le))]),default:t(()=>[i(n(s.$t("appLayout.items.memory")),1)]),_:1}),e(o,{key:"knowledge"},{icon:t(()=>[e(a(ce))]),default:t(()=>[i(n(s.$t("appLayout.items.knowledge")),1)]),_:1}),e(o,{key:"marketplace"},{icon:t(()=>[e(a(ue))]),default:t(()=>[i(n(s.$t("appLayout.items.marketplace")),1)]),_:1}),e(o,{key:"cron"},{icon:t(()=>[e(a(pe))]),default:t(()=>[i(n(s.$t("appLayout.items.cron")),1)]),_:1}),e(o,{key:"workflow"},{icon:t(()=>[e(a(re))]),default:t(()=>[i(n(s.$t("appLayout.items.workflow")),1)]),_:1}),e(o,{key:"pipeline"},{icon:t(()=>[e(a(de))]),default:t(()=>[i(n(s.$t("appLayout.items.pipeline")),1)]),_:1}),e(o,{key:"tasks"},{icon:t(()=>[e(a(P))]),default:t(()=>[i(n(s.$t("appLayout.items.tasks")),1)]),_:1})]),_:1}),e(y,{key:"g-advanced"},{title:t(()=>[l("span",Tt,n(s.$t("appLayout.groups.advanced")),1)]),default:t(()=>[e(o,{key:"security"},{icon:t(()=>[e(a(B))]),default:t(()=>[i(n(s.$t("appLayout.items.security")),1)]),_:1}),e(o,{key:"ukey-sign"},{icon:t(()=>[e(a(R))]),default:t(()=>[i(n(s.$t("appLayout.items.ukeySign")),1)]),_:1}),e(o,{key:"trust"},{icon:t(()=>[e(a($))]),default:t(()=>[i(n(s.$t("appLayout.items.trust")),1)]),_:1}),e(o,{key:"audit"},{icon:t(()=>[e(a(ye))]),default:t(()=>[i(n(s.$t("appLayout.items.audit")),1)]),_:1}),e(o,{key:"mtc"},{icon:t(()=>[e(a($))]),default:t(()=>[i(n(s.$t("appLayout.items.mtc")),1)]),_:1}),e(o,{key:"did"},{icon:t(()=>[e(a(me))]),default:t(()=>[i(n(s.$t("appLayout.items.did")),1)]),_:1}),e(o,{key:"permissions"},{icon:t(()=>[e(a(ke))]),default:t(()=>[i(n(s.$t("appLayout.items.permissions")),1)]),_:1}),e(o,{key:"p2p"},{icon:t(()=>[e(a(_e))]),default:t(()=>[i(n(s.$t("appLayout.items.p2p")),1)]),_:1}),e(o,{key:"backup"},{icon:t(()=>[e(a(U))]),default:t(()=>[i(n(s.$t("appLayout.items.backup")),1)]),_:1}),e(o,{key:"git"},{icon:t(()=>[e(a(N))]),default:t(()=>[i(n(s.$t("appLayout.items.git")),1)]),_:1}),e(o,{key:"projects"},{icon:t(()=>[e(a(fe))]),default:t(()=>[i(n(s.$t("appLayout.items.projects")),1)]),_:1}),e(o,{key:"crosschain"},{icon:t(()=>[e(a(ge))]),default:t(()=>[i(n(s.$t("appLayout.items.crosschain")),1)]),_:1}),e(o,{key:"compliance"},{icon:t(()=>[e(a($))]),default:t(()=>[i(n(s.$t("appLayout.items.compliance")),1)]),_:1}),e(o,{key:"privacy"},{icon:t(()=>[e(a(D))]),default:t(()=>[i(n(s.$t("appLayout.items.privacy")),1)]),_:1}),e(o,{key:"inference"},{icon:t(()=>[e(a(he))]),default:t(()=>[i(n(s.$t("appLayout.items.inference")),1)]),_:1}),e(o,{key:"federation"},{icon:t(()=>[e(a(Le))]),default:t(()=>[i(n(s.$t("appLayout.items.federation")),1)]),_:1})]),_:1}),e(y,{key:"g-enterprise"},{title:t(()=>[l("span",At,n(s.$t("appLayout.groups.enterprise")),1)]),default:t(()=>[e(o,{key:"wallet"},{icon:t(()=>[e(a(ve))]),default:t(()=>[i(n(s.$t("appLayout.items.wallet")),1)]),_:1}),e(o,{key:"organization"},{icon:t(()=>[e(a($e))]),default:t(()=>[i(n(s.$t("appLayout.items.organization")),1)]),_:1}),e(o,{key:"tenant"},{icon:t(()=>[e(a(we))]),default:t(()=>[i(n(s.$t("appLayout.items.tenant")),1)]),_:1}),e(o,{key:"sla"},{icon:t(()=>[e(a(K))]),default:t(()=>[i(n(s.$t("appLayout.items.sla")),1)]),_:1}),e(o,{key:"analytics"},{icon:t(()=>[e(a(be))]),default:t(()=>[i(n(s.$t("appLayout.items.analytics")),1)]),_:1}),e(o,{key:"templates"},{icon:t(()=>[e(a(Oe))]),default:t(()=>[i(n(s.$t("appLayout.items.templates")),1)]),_:1})]),_:1}),e(y,{key:"g-social"},{title:t(()=>[l("span",Kt,n(s.$t("appLayout.groups.social")),1)]),default:t(()=>[e(o,{key:"community"},{icon:t(()=>[e(a(Se))]),default:t(()=>[i(n(s.$t("appLayout.items.community")),1)]),_:1}),e(o,{key:"governance"},{icon:t(()=>[e(a(Ce))]),default:t(()=>[i(n(s.$t("appLayout.items.governance")),1)]),_:1}),e(o,{key:"reputation"},{icon:t(()=>[e(a(je))]),default:t(()=>[i(n(s.$t("appLayout.items.reputation")),1)]),_:1}),e(o,{key:"recommend"},{icon:t(()=>[e(a(Te))]),default:t(()=>[i(n(s.$t("appLayout.items.recommend")),1)]),_:1})]),_:1}),e(y,{key:"g-media"},{title:t(()=>[l("span",Pt,n(s.$t("appLayout.groups.media")),1)]),default:t(()=>[e(o,{key:"video"},{icon:t(()=>[e(a(dt))]),default:t(()=>[i(n(s.$t("appLayout.items.video")),1)]),_:1})]),_:1}),e(y,{key:"g-extension"},{title:t(()=>[l("span",Et,n(s.$t("appLayout.groups.extension")),1)]),default:t(()=>[e(o,{key:"rssfeed"},{icon:t(()=>[e(a(Ae))]),default:t(()=>[i(n(s.$t("appLayout.items.rssfeed")),1)]),_:1}),e(o,{key:"webauthn"},{icon:t(()=>[e(a(R))]),default:t(()=>[i(n(s.$t("appLayout.items.webauthn")),1)]),_:1})]),_:1}),a(M).isEmbedded?(u(),k(y,{key:"g-desktop"},{title:t(()=>[l("span",Nt,n(s.$t("appLayout.groups.desktop")),1)]),default:t(()=>[e(o,{key:"desktop:hardware-wallet"},{icon:t(()=>[e(a(B))]),default:t(()=>[i(n(s.$t("appLayout.items.desktopHardware")),1)]),_:1}),e(o,{key:"desktop:backup-dashboard"},{icon:t(()=>[e(a(U))]),default:t(()=>[i(n(s.$t("appLayout.items.desktopBackup")),1)]),_:1}),e(o,{key:"desktop:llm-test-chat"},{icon:t(()=>[e(a(D))]),default:t(()=>[i(n(s.$t("appLayout.items.desktopLlmTest")),1)]),_:1}),e(o,{key:"desktop:settings"},{icon:t(()=>[e(a(E))]),default:t(()=>[i(n(s.$t("appLayout.items.desktopSettings")),1)]),_:1})]),_:1})):v("",!0)],64))]),_:1},8,["selectedKeys","openKeys","theme","inline-collapsed"]),l("div",{class:T(["sidebar-footer",{collapsed:d.value}])},[e(Ge,{status:De.value},null,8,["status"]),d.value?v("",!0):(u(),r("span",Bt,n(Ie.value),1))],2)]),_:1},8,["collapsed"]),e(G,{class:"main-area"},{default:t(()=>[e(Qe,{class:"app-header"},{default:t(()=>[l("div",Rt,[l("div",{class:T(["scope-tag",_.value?"project":"global"])},[(u(),k(ot(_.value?a(O):a(A)))),l("span",null,n(_.value?a(L).projectName||s.$t("appLayout.scope.fallbackProject"):s.$t("appLayout.scope.global")),1),_.value&&a(L).projectRoot?(u(),k(C,{key:0,title:a(L).projectRoot},{default:t(()=>[e(a(yt),{class:"info-icon"})]),_:1},8,["title"])):v("",!0)],2)]),l("div",Ut,[l("div",Dt,[(u(!0),r(w,null,st(a(ut),(m,j)=>(u(),k(C,{key:j,title:m.label},{default:t(()=>[l("button",{class:T(["theme-btn",{active:Be.value===j}]),"data-theme-key":j,onClick:zt=>Me(j)},n(m.icon),11,It)]),_:2},1032,["title"]))),128))]),e(C,{title:s.$t("language.label")},{default:t(()=>[l("button",{class:"lang-switch-btn","data-locale":a(Y),onClick:Fe},[e(a(A),{class:"lang-switch-icon"}),l("span",Vt,n(s.$t("language.switch")),1)],8,Mt)]),_:1},8,["title"]),l("span",Ft,n(a(Ne)),1),a(M).isEmbedded?(u(),k(C,{key:0,title:s.$t("appLayout.shellSwitch")},{default:t(()=>[l("button",{type:"button",class:"shell-switch-btn",onClick:qe},[e(a(mt))])]),_:1},8,["title"])):v("",!0),e(Je,{color:S.value==="connected"?"green":S.value==="connecting"?"orange":"red",class:"ws-tag"},{default:t(()=>[i(n(S.value==="connected"?s.$t("appLayout.wsStatus.connected"):S.value==="connecting"?s.$t("appLayout.wsStatus.connecting"):s.$t("appLayout.wsStatus.disconnected")),1)]),_:1},8,["color"])])]),_:1}),e(Xe,{class:"page-content"},{default:t(()=>[e(Ze)]),_:1})]),_:1})]),_:1})}}},ga=it(Wt,[["__scopeId","data-v-885d89a6"]]);export{ga as default};
1
+ import{r as H,w as xe,o as et,Q as k,N as t,K as p,I as tt,H as at,L as u,c as e,R as l,Y as T,u as a,M as r,S as v,F as w,P as n,O as i,Z as ot,_ as st,f as g}from"./vendor-B6ToihkA.js";import{u as nt}from"./ws-D_5-FRIb.js";import{_ as it,u as lt,a as ct,T as ut,b as pt,c as b}from"./index-Cw4v7ezB.js";import{u as rt}from"./useShellMode-CgR0wCYM.js";import{F as O,G as A,D as K,M as J,h as P,i as Q,j as E,A as Z,N as X,k as x,l as ee,m as te,n as ae,S as oe,B as se,o as N,p as ne,q as ie,r as le,s as ce,t as ue,u as pe,v as re,P as de,w as B,K as R,x as $,y as ye,z as me,H as ke,W as _e,J as U,O as fe,Q as ge,U as D,V as he,X as Le,Y as ve,Z as $e,_ as we,$ as be,a0 as Oe,a1 as Se,a2 as Ce,a3 as je,a4 as Te,a5 as dt,a6 as Ae,e as yt,a7 as mt}from"./icons-DvZE-RKs.js";import kt from"./index-Blq49aTW.js";import"./KeyCode-D63Tfrq7.js";import"./omit-C-cc6wHr.js";import"./pickAttrs-CjLp5RN-.js";import"./initDefaultProps-DfdVxwz6.js";import"./motion-CL0bdvJg.js";import"./raf-Deuc0E8-.js";import"./index-CWhXxdyo.js";import"./index-CcwZodUl.js";import"./isVisible-C7tPsqfj.js";import"./useState-CpKsyozn.js";import"./devWarning-CNIS3FrJ.js";import"./warning-Pq00owYb.js";import"./compact-item-CqCEUZiy.js";import"./createContext-C6HFlAQP.js";import"./Compact-DGlwooBJ.js";import"./_getTag-CWA3v-Ds.js";import"./styleChecker-CDvBRzsG.js";import"./zoom-BHqpWXJV.js";import"./ActionButton-BvMi4awy.js";import"./vnode-Bzp-FsbB.js";const _t=""+new URL("logo-DBCYUiWP.png",import.meta.url).href,ft=["src"],gt={key:0,class:"logo-text"},ht={key:0,class:"mode-banner project"},Lt={class:"banner-info"},vt={class:"banner-name"},$t={class:"banner-sub"},wt={key:1,class:"mode-banner global"},bt={class:"banner-name"},Ot=["title"],St={class:"group-label"},Ct={class:"group-label"},jt={class:"group-label"},Tt={class:"group-label"},At={class:"group-label"},Kt={class:"group-label"},Pt={class:"group-label"},Et={class:"group-label"},Nt={class:"group-label"},Bt={key:0,class:"footer-text"},Rt={class:"header-left"},Ut={class:"header-right"},Dt={class:"theme-switcher"},It=["data-theme-key","onClick"],Mt=["data-locale"],Vt={class:"lang-switch-label"},Ft={class:"version-tag"},Ke="cc.web-panel.sidebar.openKeys",Wt={__name:"AppLayout",setup(qt){const Pe=tt(),Ee=at(),h=nt(),I=lt(),{t:W}=ct(),M=rt(),d=H(!1),L=window.__CC_CONFIG__||{},_=g(()=>L.mode==="project"),Ne="v5.0.3.5",Be=g(()=>I.current),Re=g(()=>I.config.vars["--menu-mode"]),q=g(()=>{const s=Ee.name?.toLowerCase()||"dashboard";return[{mcptools:"mcp",quickask:"quick-ask",ukeysign:"ukey-sign"}[s]||s]}),z=["g-overview","g-config","g-data","g-advanced","g-enterprise","g-social","g-media","g-extension"];function Ue(){try{const s=localStorage.getItem(Ke);if(s){const c=JSON.parse(s);if(Array.isArray(c))return c.filter(o=>z.includes(o))}}catch{}return[...z]}const V=H(Ue());xe(V,s=>{try{localStorage.setItem(Ke,JSON.stringify(s))}catch{}},{deep:!0});const S=g(()=>h.status),De=g(()=>({connected:"success",connecting:"processing",error:"error",disconnected:"default"})[h.status]||"default"),Ie=g(()=>{const s=`appLayout.footerStatus.${h.status}`,c=W(s);return c===s?W("appLayout.footerStatus.unknown"):c});function Me(s){I.setTheme(s)}const{current:Y,supported:F,setLocale:Ve}=pt();function Fe(){const s=F[(F.indexOf(Y.value)+1)%F.length];Ve(s)}async function We(s){try{const c=await h.sendRaw({type:"window.open",role:s},1e4);if(c?.ok===!1){b.error(`打开失败:${c.error||"未知"}`);return}const o=c?.result??c;o?.reason==="role_reserved"?b.warning("该窗口角色被保留"):o?.reason}catch(c){b.error(`打开桌面窗口失败:${c.message||c}`)}}async function qe(){kt.confirm({title:"切换到桌面壳?",content:"回到 V5/V6 桌面壳。完整 electronAPI 表面(UKey 硬件 / 原生对话框 / 系统设置等)会重新可用,但失去 web-panel 的 SPA 体验。保存后需要重启应用才生效。",okText:"切换并重启",cancelText:"取消",centered:!0,async onOk(){try{const s=await h.sendRaw({type:"shell.switch",target:"desktop"},5e3);if(s?.ok===!1)throw new Error(s.error||"shell.switch returned failure");b.loading({content:"正在重启…",duration:0})}catch(s){const c=s instanceof Error?s.message:String(s);b.error("切换失败:"+c)}}})}function ze({key:s}){if(typeof s=="string"&&s.startsWith("desktop:")){We(s);return}Pe.push({mcp:"/mcp"}[s]||`/${s}`)}return et(()=>h.connect()),(s,c)=>{const o=p("a-menu-item"),y=p("a-sub-menu"),f=p("a-menu-divider"),Ye=p("a-menu"),Ge=p("a-badge"),He=p("a-layout-sider"),C=p("a-tooltip"),Je=p("a-tag"),Qe=p("a-layout-header"),Ze=p("router-view"),Xe=p("a-layout-content"),G=p("a-layout");return u(),k(G,{class:"app-root"},{default:t(()=>[e(He,{collapsed:d.value,"onUpdate:collapsed":c[2]||(c[2]=m=>d.value=m),collapsible:"","collapsed-width":56,width:216,class:"sidebar"},{default:t(()=>[l("div",{class:T(["logo",{collapsed:d.value}])},[l("img",{src:a(_t),alt:"ChainlessChain",class:"logo-icon"},null,8,ft),d.value?v("",!0):(u(),r("span",gt,"ChainlessChain"))],2),d.value?(u(),r("div",{key:1,class:"mode-icon-sm",title:_.value?a(L).projectName:s.$t("appLayout.scope.global")},[_.value?(u(),k(a(O),{key:0,style:{color:"#1677ff"}})):(u(),k(a(A),{key:1,style:{color:"#722ed1"}}))],8,Ot)):(u(),r(w,{key:0},[_.value?(u(),r("div",ht,[e(a(O),{class:"banner-icon"}),l("div",Lt,[l("div",vt,n(a(L).projectName||s.$t("appLayout.scope.fallbackProject")),1),l("div",$t,n(s.$t("appLayout.scope.projectPanel")),1)])])):(u(),r("div",wt,[e(a(A),{class:"banner-icon"}),l("span",bt,n(s.$t("appLayout.scope.global")),1)]))],64)),e(Ye,{selectedKeys:q.value,"onUpdate:selectedKeys":c[0]||(c[0]=m=>q.value=m),openKeys:V.value,"onUpdate:openKeys":c[1]||(c[1]=m=>V.value=m),theme:Re.value,mode:"inline","inline-collapsed":d.value,class:"side-menu",onClick:ze},{default:t(()=>[d.value?(u(),r(w,{key:1},[e(o,{key:"dashboard"},{icon:t(()=>[e(a(K))]),_:1}),e(o,{key:"chat"},{icon:t(()=>[e(a(J))]),_:1}),e(o,{key:"quick-ask"},{icon:t(()=>[e(a(P))]),_:1}),e(o,{key:"cowork"},{icon:t(()=>[e(a(Q))]),_:1}),e(o,{key:"services"},{icon:t(()=>[e(a(E))]),_:1}),e(o,{key:"aiops"},{icon:t(()=>[e(a(Z))]),_:1}),e(o,{key:"tokens"},{icon:t(()=>[e(a(X))]),_:1}),e(o,{key:"logs"},{icon:t(()=>[e(a(x))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"skills"},{icon:t(()=>[e(a(ee))]),_:1}),e(o,{key:"providers"},{icon:t(()=>[e(a(te))]),_:1}),e(o,{key:"mcp"},{icon:t(()=>[e(a(ae))]),_:1}),e(o,{key:"project-settings"},{icon:t(()=>[e(a(O))]),_:1}),e(o,{key:"speech-settings"},{icon:t(()=>[e(a(oe))]),_:1}),e(o,{key:"nlprog"},{icon:t(()=>[e(a(se))]),_:1}),e(o,{key:"codegen"},{icon:t(()=>[e(a(N))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"notes"},{icon:t(()=>[e(a(ne))]),_:1}),e(o,{key:"search"},{icon:t(()=>[e(a(ie))]),_:1}),e(o,{key:"memory"},{icon:t(()=>[e(a(le))]),_:1}),e(o,{key:"knowledge"},{icon:t(()=>[e(a(ce))]),_:1}),e(o,{key:"marketplace"},{icon:t(()=>[e(a(ue))]),_:1}),e(o,{key:"cron"},{icon:t(()=>[e(a(pe))]),_:1}),e(o,{key:"workflow"},{icon:t(()=>[e(a(re))]),_:1}),e(o,{key:"pipeline"},{icon:t(()=>[e(a(de))]),_:1}),e(o,{key:"tasks"},{icon:t(()=>[e(a(P))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"security"},{icon:t(()=>[e(a(B))]),_:1}),e(o,{key:"ukey-sign"},{icon:t(()=>[e(a(R))]),_:1}),e(o,{key:"trust"},{icon:t(()=>[e(a($))]),_:1}),e(o,{key:"audit"},{icon:t(()=>[e(a(ye))]),_:1}),e(o,{key:"mtc"},{icon:t(()=>[e(a($))]),_:1}),e(o,{key:"did"},{icon:t(()=>[e(a(me))]),_:1}),e(o,{key:"permissions"},{icon:t(()=>[e(a(ke))]),_:1}),e(o,{key:"p2p"},{icon:t(()=>[e(a(_e))]),_:1}),e(o,{key:"backup"},{icon:t(()=>[e(a(U))]),_:1}),e(o,{key:"git"},{icon:t(()=>[e(a(N))]),_:1}),e(o,{key:"projects"},{icon:t(()=>[e(a(fe))]),_:1}),e(o,{key:"crosschain"},{icon:t(()=>[e(a(ge))]),_:1}),e(o,{key:"compliance"},{icon:t(()=>[e(a($))]),_:1}),e(o,{key:"privacy"},{icon:t(()=>[e(a(D))]),_:1}),e(o,{key:"inference"},{icon:t(()=>[e(a(he))]),_:1}),e(o,{key:"federation"},{icon:t(()=>[e(a(Le))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"wallet"},{icon:t(()=>[e(a(ve))]),_:1}),e(o,{key:"organization"},{icon:t(()=>[e(a($e))]),_:1}),e(o,{key:"tenant"},{icon:t(()=>[e(a(we))]),_:1}),e(o,{key:"sla"},{icon:t(()=>[e(a(K))]),_:1}),e(o,{key:"analytics"},{icon:t(()=>[e(a(be))]),_:1}),e(o,{key:"templates"},{icon:t(()=>[e(a(Oe))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"community"},{icon:t(()=>[e(a(Se))]),_:1}),e(o,{key:"governance"},{icon:t(()=>[e(a(Ce))]),_:1}),e(o,{key:"reputation"},{icon:t(()=>[e(a(je))]),_:1}),e(o,{key:"recommend"},{icon:t(()=>[e(a(Te))]),_:1}),e(f,{class:"divider-sm"}),e(o,{key:"rssfeed"},{icon:t(()=>[e(a(Ae))]),_:1}),e(o,{key:"webauthn"},{icon:t(()=>[e(a(R))]),_:1}),a(M).isEmbedded?(u(),r(w,{key:0},[e(f,{class:"divider-sm"}),e(o,{key:"desktop:hardware-wallet"},{icon:t(()=>[e(a(B))]),_:1}),e(o,{key:"desktop:backup-dashboard"},{icon:t(()=>[e(a(U))]),_:1}),e(o,{key:"desktop:llm-test-chat"},{icon:t(()=>[e(a(D))]),_:1}),e(o,{key:"desktop:settings"},{icon:t(()=>[e(a(E))]),_:1})],64)):v("",!0)],64)):(u(),r(w,{key:0},[e(y,{key:"g-overview"},{title:t(()=>[l("span",St,n(s.$t("appLayout.groups.overview")),1)]),default:t(()=>[e(o,{key:"dashboard"},{icon:t(()=>[e(a(K))]),default:t(()=>[i(n(s.$t("appLayout.items.dashboard")),1)]),_:1}),e(o,{key:"chat"},{icon:t(()=>[e(a(J))]),default:t(()=>[i(n(s.$t("appLayout.items.chat")),1)]),_:1}),e(o,{key:"quick-ask"},{icon:t(()=>[e(a(P))]),default:t(()=>[i(n(s.$t("appLayout.items.quickAsk")),1)]),_:1}),e(o,{key:"cowork"},{icon:t(()=>[e(a(Q))]),default:t(()=>[i(n(s.$t("appLayout.items.cowork")),1)]),_:1}),e(o,{key:"services"},{icon:t(()=>[e(a(E))]),default:t(()=>[i(n(s.$t("appLayout.items.services")),1)]),_:1}),e(o,{key:"aiops"},{icon:t(()=>[e(a(Z))]),default:t(()=>[i(n(s.$t("appLayout.items.aiops")),1)]),_:1}),e(o,{key:"tokens"},{icon:t(()=>[e(a(X))]),default:t(()=>[i(n(s.$t("appLayout.items.tokens")),1)]),_:1}),e(o,{key:"logs"},{icon:t(()=>[e(a(x))]),default:t(()=>[i(n(s.$t("appLayout.items.logs")),1)]),_:1})]),_:1}),e(y,{key:"g-config"},{title:t(()=>[l("span",Ct,n(s.$t("appLayout.groups.config")),1)]),default:t(()=>[e(o,{key:"skills"},{icon:t(()=>[e(a(ee))]),default:t(()=>[i(n(s.$t("appLayout.items.skills")),1)]),_:1}),e(o,{key:"providers"},{icon:t(()=>[e(a(te))]),default:t(()=>[i(n(s.$t("appLayout.items.providers")),1)]),_:1}),e(o,{key:"mcp"},{icon:t(()=>[e(a(ae))]),default:t(()=>[i(n(s.$t("appLayout.items.mcp")),1)]),_:1}),e(o,{key:"project-settings"},{icon:t(()=>[e(a(O))]),default:t(()=>[i(n(s.$t("appLayout.items.projectSettings")),1)]),_:1}),e(o,{key:"speech-settings"},{icon:t(()=>[e(a(oe))]),default:t(()=>[i(n(s.$t("appLayout.items.speechSettings")),1)]),_:1}),e(o,{key:"nlprog"},{icon:t(()=>[e(a(se))]),default:t(()=>[i(n(s.$t("appLayout.items.nlprog")),1)]),_:1}),e(o,{key:"codegen"},{icon:t(()=>[e(a(N))]),default:t(()=>[i(n(s.$t("appLayout.items.codegen")),1)]),_:1})]),_:1}),e(y,{key:"g-data"},{title:t(()=>[l("span",jt,n(s.$t("appLayout.groups.data")),1)]),default:t(()=>[e(o,{key:"notes"},{icon:t(()=>[e(a(ne))]),default:t(()=>[i(n(s.$t("appLayout.items.notes")),1)]),_:1}),e(o,{key:"search"},{icon:t(()=>[e(a(ie))]),default:t(()=>[i(n(s.$t("appLayout.items.search")),1)]),_:1}),e(o,{key:"memory"},{icon:t(()=>[e(a(le))]),default:t(()=>[i(n(s.$t("appLayout.items.memory")),1)]),_:1}),e(o,{key:"knowledge"},{icon:t(()=>[e(a(ce))]),default:t(()=>[i(n(s.$t("appLayout.items.knowledge")),1)]),_:1}),e(o,{key:"marketplace"},{icon:t(()=>[e(a(ue))]),default:t(()=>[i(n(s.$t("appLayout.items.marketplace")),1)]),_:1}),e(o,{key:"cron"},{icon:t(()=>[e(a(pe))]),default:t(()=>[i(n(s.$t("appLayout.items.cron")),1)]),_:1}),e(o,{key:"workflow"},{icon:t(()=>[e(a(re))]),default:t(()=>[i(n(s.$t("appLayout.items.workflow")),1)]),_:1}),e(o,{key:"pipeline"},{icon:t(()=>[e(a(de))]),default:t(()=>[i(n(s.$t("appLayout.items.pipeline")),1)]),_:1}),e(o,{key:"tasks"},{icon:t(()=>[e(a(P))]),default:t(()=>[i(n(s.$t("appLayout.items.tasks")),1)]),_:1})]),_:1}),e(y,{key:"g-advanced"},{title:t(()=>[l("span",Tt,n(s.$t("appLayout.groups.advanced")),1)]),default:t(()=>[e(o,{key:"security"},{icon:t(()=>[e(a(B))]),default:t(()=>[i(n(s.$t("appLayout.items.security")),1)]),_:1}),e(o,{key:"ukey-sign"},{icon:t(()=>[e(a(R))]),default:t(()=>[i(n(s.$t("appLayout.items.ukeySign")),1)]),_:1}),e(o,{key:"trust"},{icon:t(()=>[e(a($))]),default:t(()=>[i(n(s.$t("appLayout.items.trust")),1)]),_:1}),e(o,{key:"audit"},{icon:t(()=>[e(a(ye))]),default:t(()=>[i(n(s.$t("appLayout.items.audit")),1)]),_:1}),e(o,{key:"mtc"},{icon:t(()=>[e(a($))]),default:t(()=>[i(n(s.$t("appLayout.items.mtc")),1)]),_:1}),e(o,{key:"did"},{icon:t(()=>[e(a(me))]),default:t(()=>[i(n(s.$t("appLayout.items.did")),1)]),_:1}),e(o,{key:"permissions"},{icon:t(()=>[e(a(ke))]),default:t(()=>[i(n(s.$t("appLayout.items.permissions")),1)]),_:1}),e(o,{key:"p2p"},{icon:t(()=>[e(a(_e))]),default:t(()=>[i(n(s.$t("appLayout.items.p2p")),1)]),_:1}),e(o,{key:"backup"},{icon:t(()=>[e(a(U))]),default:t(()=>[i(n(s.$t("appLayout.items.backup")),1)]),_:1}),e(o,{key:"git"},{icon:t(()=>[e(a(N))]),default:t(()=>[i(n(s.$t("appLayout.items.git")),1)]),_:1}),e(o,{key:"projects"},{icon:t(()=>[e(a(fe))]),default:t(()=>[i(n(s.$t("appLayout.items.projects")),1)]),_:1}),e(o,{key:"crosschain"},{icon:t(()=>[e(a(ge))]),default:t(()=>[i(n(s.$t("appLayout.items.crosschain")),1)]),_:1}),e(o,{key:"compliance"},{icon:t(()=>[e(a($))]),default:t(()=>[i(n(s.$t("appLayout.items.compliance")),1)]),_:1}),e(o,{key:"privacy"},{icon:t(()=>[e(a(D))]),default:t(()=>[i(n(s.$t("appLayout.items.privacy")),1)]),_:1}),e(o,{key:"inference"},{icon:t(()=>[e(a(he))]),default:t(()=>[i(n(s.$t("appLayout.items.inference")),1)]),_:1}),e(o,{key:"federation"},{icon:t(()=>[e(a(Le))]),default:t(()=>[i(n(s.$t("appLayout.items.federation")),1)]),_:1})]),_:1}),e(y,{key:"g-enterprise"},{title:t(()=>[l("span",At,n(s.$t("appLayout.groups.enterprise")),1)]),default:t(()=>[e(o,{key:"wallet"},{icon:t(()=>[e(a(ve))]),default:t(()=>[i(n(s.$t("appLayout.items.wallet")),1)]),_:1}),e(o,{key:"organization"},{icon:t(()=>[e(a($e))]),default:t(()=>[i(n(s.$t("appLayout.items.organization")),1)]),_:1}),e(o,{key:"tenant"},{icon:t(()=>[e(a(we))]),default:t(()=>[i(n(s.$t("appLayout.items.tenant")),1)]),_:1}),e(o,{key:"sla"},{icon:t(()=>[e(a(K))]),default:t(()=>[i(n(s.$t("appLayout.items.sla")),1)]),_:1}),e(o,{key:"analytics"},{icon:t(()=>[e(a(be))]),default:t(()=>[i(n(s.$t("appLayout.items.analytics")),1)]),_:1}),e(o,{key:"templates"},{icon:t(()=>[e(a(Oe))]),default:t(()=>[i(n(s.$t("appLayout.items.templates")),1)]),_:1})]),_:1}),e(y,{key:"g-social"},{title:t(()=>[l("span",Kt,n(s.$t("appLayout.groups.social")),1)]),default:t(()=>[e(o,{key:"community"},{icon:t(()=>[e(a(Se))]),default:t(()=>[i(n(s.$t("appLayout.items.community")),1)]),_:1}),e(o,{key:"governance"},{icon:t(()=>[e(a(Ce))]),default:t(()=>[i(n(s.$t("appLayout.items.governance")),1)]),_:1}),e(o,{key:"reputation"},{icon:t(()=>[e(a(je))]),default:t(()=>[i(n(s.$t("appLayout.items.reputation")),1)]),_:1}),e(o,{key:"recommend"},{icon:t(()=>[e(a(Te))]),default:t(()=>[i(n(s.$t("appLayout.items.recommend")),1)]),_:1})]),_:1}),e(y,{key:"g-media"},{title:t(()=>[l("span",Pt,n(s.$t("appLayout.groups.media")),1)]),default:t(()=>[e(o,{key:"video"},{icon:t(()=>[e(a(dt))]),default:t(()=>[i(n(s.$t("appLayout.items.video")),1)]),_:1})]),_:1}),e(y,{key:"g-extension"},{title:t(()=>[l("span",Et,n(s.$t("appLayout.groups.extension")),1)]),default:t(()=>[e(o,{key:"rssfeed"},{icon:t(()=>[e(a(Ae))]),default:t(()=>[i(n(s.$t("appLayout.items.rssfeed")),1)]),_:1}),e(o,{key:"webauthn"},{icon:t(()=>[e(a(R))]),default:t(()=>[i(n(s.$t("appLayout.items.webauthn")),1)]),_:1})]),_:1}),a(M).isEmbedded?(u(),k(y,{key:"g-desktop"},{title:t(()=>[l("span",Nt,n(s.$t("appLayout.groups.desktop")),1)]),default:t(()=>[e(o,{key:"desktop:hardware-wallet"},{icon:t(()=>[e(a(B))]),default:t(()=>[i(n(s.$t("appLayout.items.desktopHardware")),1)]),_:1}),e(o,{key:"desktop:backup-dashboard"},{icon:t(()=>[e(a(U))]),default:t(()=>[i(n(s.$t("appLayout.items.desktopBackup")),1)]),_:1}),e(o,{key:"desktop:llm-test-chat"},{icon:t(()=>[e(a(D))]),default:t(()=>[i(n(s.$t("appLayout.items.desktopLlmTest")),1)]),_:1}),e(o,{key:"desktop:settings"},{icon:t(()=>[e(a(E))]),default:t(()=>[i(n(s.$t("appLayout.items.desktopSettings")),1)]),_:1})]),_:1})):v("",!0)],64))]),_:1},8,["selectedKeys","openKeys","theme","inline-collapsed"]),l("div",{class:T(["sidebar-footer",{collapsed:d.value}])},[e(Ge,{status:De.value},null,8,["status"]),d.value?v("",!0):(u(),r("span",Bt,n(Ie.value),1))],2)]),_:1},8,["collapsed"]),e(G,{class:"main-area"},{default:t(()=>[e(Qe,{class:"app-header"},{default:t(()=>[l("div",Rt,[l("div",{class:T(["scope-tag",_.value?"project":"global"])},[(u(),k(ot(_.value?a(O):a(A)))),l("span",null,n(_.value?a(L).projectName||s.$t("appLayout.scope.fallbackProject"):s.$t("appLayout.scope.global")),1),_.value&&a(L).projectRoot?(u(),k(C,{key:0,title:a(L).projectRoot},{default:t(()=>[e(a(yt),{class:"info-icon"})]),_:1},8,["title"])):v("",!0)],2)]),l("div",Ut,[l("div",Dt,[(u(!0),r(w,null,st(a(ut),(m,j)=>(u(),k(C,{key:j,title:m.label},{default:t(()=>[l("button",{class:T(["theme-btn",{active:Be.value===j}]),"data-theme-key":j,onClick:zt=>Me(j)},n(m.icon),11,It)]),_:2},1032,["title"]))),128))]),e(C,{title:s.$t("language.label")},{default:t(()=>[l("button",{class:"lang-switch-btn","data-locale":a(Y),onClick:Fe},[e(a(A),{class:"lang-switch-icon"}),l("span",Vt,n(s.$t("language.switch")),1)],8,Mt)]),_:1},8,["title"]),l("span",Ft,n(a(Ne)),1),a(M).isEmbedded?(u(),k(C,{key:0,title:s.$t("appLayout.shellSwitch")},{default:t(()=>[l("button",{type:"button",class:"shell-switch-btn",onClick:qe},[e(a(mt))])]),_:1},8,["title"])):v("",!0),e(Je,{color:S.value==="connected"?"green":S.value==="connecting"?"orange":"red",class:"ws-tag"},{default:t(()=>[i(n(S.value==="connected"?s.$t("appLayout.wsStatus.connected"):S.value==="connecting"?s.$t("appLayout.wsStatus.connecting"):s.$t("appLayout.wsStatus.disconnected")),1)]),_:1},8,["color"])])]),_:1}),e(Xe,{class:"page-content"},{default:t(()=>[e(Ze)]),_:1})]),_:1})]),_:1})}}},ga=it(Wt,[["__scopeId","data-v-885d89a6"]]);export{ga as default};
@@ -1 +1 @@
1
- import{_ as De,a as Fe,c as R}from"./index-CyqU4Tck.js";import{u as je}from"./ws-D_5-FRIb.js";import{u as Je}from"./useFs-BD-YRwbU.js";import{s as pe}from"./community-parser-CO25nZFt.js";import{R as Be,an as $e,y as ce,d as Ue,af as Ke,A as Pe,f as Ve}from"./icons-DvZE-RKs.js";import{o as He,M as p,R as b,P as r,u as s,c as l,N as t,Q as x,S as k,K as m,r as S,L as u,O as y,F as z,_ as N,$ as We,f as U}from"./vendor-B6ToihkA.js";import"./useShellMode-CgR0wCYM.js";function ye(i){const e=pe(i);if(!e)return null;try{return JSON.parse(e)}catch{}const d=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!d)return null;try{return JSON.parse(d[0])}catch{return null}}const K=Object.freeze(["auth","permission","data","system","file","did","crypto","api"]),ee=Object.freeze(["low","medium","high","critical"]);function X(i,e=0){return typeof i=="number"&&Number.isFinite(i)?i:e}function de(i){if(!i)return{noDb:!1,error:""};const e=pe(i),d=/Database not available/i.test(e);return{noDb:d,error:d?"Database not available":""}}function qe(i,e=0){if(!i||typeof i!="object")return null;const d=i.id||"";if(!d)return null;let g=i.details;if(typeof g=="string"&&g)try{g=JSON.parse(g)}catch{}const h=typeof i.success=="boolean"?i.success:i.success===1||i.success==="1"||i.success===!0,D=i.audit_mtc_event_id??i.auditMtcEventId??null;return{key:d,id:d,eventType:String(i.event_type??i.eventType??"").toLowerCase(),operation:String(i.operation||""),actor:i.actor??"",target:i.target??"",details:g??null,riskLevel:String(i.risk_level??i.riskLevel??"low").toLowerCase(),ipAddress:i.ip_address??i.ipAddress??"",userAgent:i.user_agent??i.userAgent??"",success:h,errorMessage:i.error_message??i.errorMessage??"",createdAt:i.created_at??i.createdAt??"",auditMtcEventId:D,_idx:e}}function Qe(i){const e=ye(i);return Array.isArray(e)?e.map(qe).filter(Boolean):[]}const Ye={total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}};function Ze(i){const e=JSON.parse(JSON.stringify(Ye));for(const g of K)e.byEventType[g]=0;for(const g of ee)e.byRiskLevel[g]=0;const d=ye(i);if(!d||typeof d!="object"||Array.isArray(d))return e;if(e.total=X(d.total,0),e.failures=X(d.failures,0),e.highRisk=X(d.highRisk,0),d.byEventType&&typeof d.byEventType=="object")for(const[g,h]of Object.entries(d.byEventType))typeof h=="number"&&Number.isFinite(h)&&(e.byEventType[g]=h);if(d.byRiskLevel&&typeof d.byRiskLevel=="object")for(const[g,h]of Object.entries(d.byRiskLevel))typeof h=="number"&&Number.isFinite(h)&&(e.byRiskLevel[g]=h);return e}function Ge(i){return!i||!i.auditMtcEventId?"none":"tracked"}function fe(i){if(i==null||i==="")return"—";const e=String(i),d=e.includes(" ")&&!e.includes("T")?e.replace(" ","T")+"Z":e,g=new Date(d);return isNaN(g.getTime())?e:g.toLocaleString("zh-CN",{hour12:!1})}const Xe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},et={class:"page-title"},tt={class:"page-sub"},at={class:"type-name"},lt={class:"type-count"},ot={class:"filter-bar"},st={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},nt={style:{color:"var(--text-primary)","font-weight":"500","font-family":"monospace","font-size":"12px"}},it={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"2px"}},rt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ut={key:1,style:{color:"var(--text-muted)"}},ct={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},dt={key:1,style:{color:"var(--text-muted)"}},ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},pt={key:0,style:{"padding-top":"8px"}},yt={style:{"font-family":"monospace","font-size":"12px"}},vt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},mt={style:{"font-family":"monospace"}},_t={key:0,style:{"font-family":"monospace","font-size":"12px"}},gt={key:1,style:{color:"var(--text-muted)"}},bt={key:0,style:{"font-family":"monospace","font-size":"12px"}},kt={key:1,style:{color:"var(--text-muted)"}},ht={style:{"font-family":"monospace","font-size":"12px"}},xt={style:{"font-family":"monospace","font-size":"11px"}},Lt={style:{color:"#ff4d4f"}},St={class:"details-pre"},Tt={__name:"Audit",setup(i){const{t:e}=Fe(),d=je(),g=Je(),h=S(!1),D=S([]),_=S({total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}}),P=S({noDb:!1,error:""}),te=S("events"),F=S(""),w=S(""),I=S(""),M=S(""),j=S(!1),V=S(!1),f=S(null),ve=U(()=>[{title:e("audit.logColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("audit.logColumns.eventType"),key:"eventType",width:"110px"},{title:e("audit.logColumns.operation"),key:"operation"},{title:e("audit.logColumns.actor"),key:"actor",width:"140px"},{title:e("audit.logColumns.target"),key:"target",width:"180px"},{title:e("audit.logColumns.riskLevel"),key:"riskLevel",width:"90px"},{title:e("audit.logColumns.success"),key:"success",width:"80px"},{title:e("audit.logColumns.mtc"),key:"mtc",width:"110px"},{title:e("audit.logColumns.action"),key:"action",width:"80px"}]),H=S({});function W(a){return a.auditMtcEventId&&H.value[a.id]||null}function me(a){const o=W(a);return o?o.state==="staging"?e("audit.mtc.stagingLabel"):o.state==="batched"?e("audit.mtc.batchedLabel",{batchId:o.batchId||"?"}):e("audit.mtc.unknownLabel"):e("audit.mtc.signedNotChecked")}function _e(a){const o=W(a);return o?o.state==="staging"?"orange":o.state==="batched"?"green":"default":"blue"}function ge(a){if(!a.auditMtcEventId)return"";const o=W(a),c=e("audit.mtc.tooltipBase",{id:a.auditMtcEventId});return o?o.state==="staging"?e("audit.mtc.tooltipStaging",{base:c}):o.state==="batched"?e("audit.mtc.tooltipBatched",{base:c,batchId:o.batchId,treeHead:o.treeHeadId||""}):c:e("audit.mtc.tooltipNotChecked",{base:c})}async function be(a){if(!a.auditMtcEventId)return;const o=a.auditMtcEventId.replace(/"/g,'\\"');try{const c=await d.execute(`audit mtc reconcile-check "${o}" --json`,8e3);let L;try{L=JSON.parse(c.output.trim())}catch{const A=c.output.match(/\{[\s\S]*\}/);L=A?JSON.parse(A[0]):null}if(!L){R.warning(e("audit.mtc.noJson"));return}const Z=L.found?{state:"batched",batchId:L.batchId,treeHeadId:L.treeHeadId}:L.staging?{state:"staging"}:{state:"unknown"};H.value={...H.value,[a.id]:Z}}catch(c){R.error(e("audit.mtc.checkFailed",{err:c?.message||c}))}}const q=U(()=>_.value.total?(_.value.total-_.value.failures)/_.value.total*100:100),ke=U(()=>!!(w.value||I.value||M.value||j.value)),he=U(()=>{let a=D.value;if(I.value&&(a=a.filter(o=>o.eventType===I.value)),M.value&&(a=a.filter(o=>o.riskLevel===M.value)),j.value&&(a=a.filter(o=>!o.success)),w.value){const o=w.value.toLowerCase();a=a.filter(c=>(c.operation||"").toLowerCase().includes(o)||(c.actor||"").toLowerCase().includes(o)||(c.target||"").toLowerCase().includes(o))}return a});function Q(a){const o=`audit.type.${a}`,c=e(o);return c===o?a:c}function J(a){return{auth:"blue",permission:"purple",data:"cyan",system:"default",file:"green",did:"gold",crypto:"magenta",api:"volcano"}[a]||"default"}function ae(a){return{auth:"#1677ff",permission:"#722ed1",data:"#13c2c2",system:"#888",file:"#52c41a",did:"#faad14",crypto:"#eb2f96",api:"#fa541c"}[a]||"#888"}function B(a){const o=`audit.risk.${a}`,c=e(o);return c===o?a:c}function Y(a){return{low:"default",medium:"gold",high:"orange",critical:"red"}[a]||"default"}function xe(a){return{low:"#888",medium:"#faad14",high:"#fa8c16",critical:"#ff4d4f"}[a]||"#888"}function le(a,o){return o?Math.round(a/o*100):0}function Le(a,o){return a?a.length<=o?a:a.slice(0,o)+"…":""}function Se(a){if(typeof a=="string")return a;try{return JSON.stringify(a,null,2)}catch{return String(a)}}let oe=null;function Te(){clearTimeout(oe),oe=setTimeout(()=>{w.value=F.value.trim()},300)}function Ce(){w.value=F.value.trim()}async function se(){h.value=!0,P.value={noDb:!1,error:""};try{const[a,o]=await Promise.all([d.execute("audit log --json -n 200",12e3).catch(()=>({output:""})),d.execute("audit stats --json",8e3).catch(()=>({output:""}))]),c=[a,o].map(L=>de(L.output)).find(L=>L.noDb);c&&(P.value=c),D.value=Qe(a.output),_.value=Ze(o.output)}catch(a){R.error(e("audit.messages.loadFailed",{err:a?.message||a}))}finally{h.value=!1}}function ze(a){f.value=a,V.value=!0}async function Ae(){try{const{output:a}=await d.execute("audit export -f json -n 10000",2e4);if(de(a).noDb){R.error(e("audit.messages.needInit"));return}if(!a.trim().startsWith("[")){R.error(e("audit.messages.exportFailed",{err:a.slice(0,120)}));return}const c=await g.saveText(a.trim(),{defaultPath:`audit-${new Date().toISOString().slice(0,10)}.json`,filters:[{name:"JSON",extensions:["json"]}]});if(c.canceled)return;R.success(c.path?e("audit.messages.exportOk",{path:c.path}):e("audit.messages.exportOkDefault"))}catch(a){R.error(e("audit.messages.exportFailed",{err:a?.message||a}))}}return He(se),(a,o)=>{const c=m("a-button"),L=m("a-space"),Z=m("a-alert"),A=m("a-statistic"),E=m("a-card"),O=m("a-col"),G=m("a-row"),C=m("a-tag"),Ee=m("a-input-search"),$=m("a-radio-button"),ne=m("a-radio-group"),Oe=m("a-checkbox"),ie=m("a-tooltip"),Re=m("a-table"),re=m("a-tab-pane"),ue=m("a-progress"),we=m("a-tabs"),T=m("a-descriptions-item"),Ie=m("a-descriptions"),Me=m("a-modal");return u(),p("div",null,[b("div",Xe,[b("div",null,[b("h2",et,r(s(e)("audit.title")),1),b("p",tt,r(s(e)("audit.subtitle")),1)]),l(L,null,{default:t(()=>[l(c,{loading:h.value,onClick:se},{icon:t(()=>[l(s(Be))]),default:t(()=>[y(" "+r(s(e)("audit.refresh")),1)]),_:1},8,["loading"]),l(c,{onClick:Ae},{icon:t(()=>[l(s($e))]),default:t(()=>[y(" "+r(s(e)("audit.exportJson")),1)]),_:1})]),_:1})]),P.value.noDb?(u(),x(Z,{key:0,type:"info","show-icon":"",message:s(e)("audit.noDb.message"),description:s(e)("audit.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):k("",!0),l(G,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.total"),value:_.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[l(s(ce))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.failures"),value:_.value.failures,"value-style":{color:_.value.failures>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ue))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.highRisk"),value:_.value.highRisk,"value-style":{color:_.value.highRisk>0?"#fa8c16":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ke))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.critical"),value:_.value.byRiskLevel.critical||0,"value-style":{color:(_.value.byRiskLevel.critical||0)>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:t(()=>[l(s(Pe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:24,sm:8,lg:4},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.successRate"),value:q.value,suffix:"%",precision:1,"value-style":{color:q.value>=95?"#52c41a":q.value>=80?"#faad14":"#ff4d4f",fontSize:"20px"}},{prefix:t(()=>[l(s(Ve))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),l(E,{title:s(e)("audit.typeCatalogueTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:t(()=>[l(G,{gutter:[12,12]},{default:t(()=>[(u(!0),p(z,null,N(s(K),n=>(u(),x(O,{key:n,xs:12,sm:8,lg:3},{default:t(()=>[b("div",{class:"type-pill",style:We({borderLeftColor:ae(n)})},[l(C,{color:J(n),style:{"font-family":"monospace","font-size":"11px"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),b("div",at,r(Q(n)),1),b("div",lt,r(_.value.byEventType[n]||0),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),l(we,{activeKey:te.value,"onUpdate:activeKey":o[4]||(o[4]=n=>te.value=n),class:"audit-tabs"},{default:t(()=>[l(re,{key:"events",tab:s(e)("audit.tabs.events")},{default:t(()=>[b("div",ot,[l(Ee,{value:F.value,"onUpdate:value":o[0]||(o[0]=n=>F.value=n),placeholder:s(e)("audit.filter.searchPlaceholder"),"allow-clear":"",style:{"max-width":"280px"},onSearch:Ce,onInput:Te},null,8,["value","placeholder"]),l(ne,{value:I.value,"onUpdate:value":o[1]||(o[1]=n=>I.value=n),size:"small","button-style":"solid"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allTypes")),1)]),_:1}),(u(!0),p(z,null,N(s(K),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(Q(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(ne,{value:M.value,"onUpdate:value":o[2]||(o[2]=n=>M.value=n),size:"small"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allRisks")),1)]),_:1}),(u(!0),p(z,null,N(s(ee),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(B(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(Oe,{checked:j.value,"onUpdate:checked":o[3]||(o[3]=n=>j.value=n)},{default:t(()=>[y(r(s(e)("audit.filter.failuresOnly")),1)]),_:1},8,["checked"])]),l(Re,{columns:ve.value,"data-source":he.value,pagination:{pageSize:20,showTotal:n=>s(e)("audit.totals.rows",{count:n})},size:"small",loading:h.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:n,record:v})=>[n.key==="createdAt"?(u(),p("span",st,r(s(fe)(v.createdAt)),1)):k("",!0),n.key==="eventType"?(u(),x(C,{key:1,color:J(v.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(v.eventType),1)]),_:2},1032,["color"])):k("",!0),n.key==="operation"?(u(),p(z,{key:2},[b("span",nt,r(v.operation),1),v.errorMessage?(u(),p("div",it,r(v.errorMessage),1)):k("",!0)],64)):k("",!0),n.key==="actor"?(u(),p(z,{key:3},[v.actor?(u(),p("span",rt,r(v.actor),1)):(u(),p("span",ut,"—"))],64)):k("",!0),n.key==="target"?(u(),p(z,{key:4},[v.target?(u(),p("span",ct,r(Le(v.target,32)),1)):(u(),p("span",dt,"—"))],64)):k("",!0),n.key==="riskLevel"?(u(),x(C,{key:5,color:Y(v.riskLevel)},{default:t(()=>[y(r(B(v.riskLevel)),1)]),_:2},1032,["color"])):k("",!0),n.key==="success"?(u(),x(C,{key:6,color:v.success?"green":"red"},{default:t(()=>[y(r(v.success?"OK":"FAIL"),1)]),_:2},1032,["color"])):k("",!0),n.key==="mtc"?(u(),p(z,{key:7},[s(Ge)(v)==="none"?(u(),x(ie,{key:0,title:s(e)("audit.mtc.noneTooltip")},{default:t(()=>[l(C,{color:"default"},{default:t(()=>[...o[6]||(o[6]=[y("—",-1)])]),_:1})]),_:1},8,["title"])):(u(),x(ie,{key:1,title:ge(v)},{default:t(()=>[l(C,{color:_e(v),style:{cursor:"pointer"},onClick:Ne=>be(v)},{default:t(()=>[y(r(me(v)),1)]),_:2},1032,["color","onClick"])]),_:2},1032,["title"]))],64)):k("",!0),n.key==="action"?(u(),x(c,{key:8,size:"small",type:"link",onClick:Ne=>ze(v)},{default:t(()=>[y(r(s(e)("audit.rowAction.details")),1)]),_:1},8,["onClick"])):k("",!0)]),emptyText:t(()=>[b("div",ft,[l(s(ce),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),y(" "+r(ke.value?s(e)("audit.empty.filtered"):s(e)("audit.empty.noEvents")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(re,{key:"breakdown",tab:s(e)("audit.tabs.breakdown")},{default:t(()=>[l(G,{gutter:[16,16]},{default:t(()=>[l(O,{xs:24,lg:12},{default:t(()=>[l(E,{title:s(e)("audit.breakdown.byType"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,N(s(K),n=>(u(),p("div",{key:n,class:"bd-row"},[l(C,{color:J(n),style:{"min-width":"80px","text-align":"center","font-family":"monospace"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),l(ue,{percent:le(_.value.byEventType[n]||0,_.value.total),"stroke-color":ae(n),format:()=>`${_.value.byEventType[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),l(O,{xs:24,lg:12},{default:t(()=>[l(E,{title:s(e)("audit.breakdown.byRisk"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,N(s(ee),n=>(u(),p("div",{key:n,class:"bd-row"},[l(C,{color:Y(n),style:{"min-width":"80px","text-align":"center"}},{default:t(()=>[y(r(B(n)),1)]),_:2},1032,["color"]),l(ue,{percent:le(_.value.byRiskLevel[n]||0,_.value.total),"stroke-color":xe(n),format:()=>`${_.value.byRiskLevel[n]||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"]),l(Me,{open:V.value,"onUpdate:open":o[5]||(o[5]=n=>V.value=n),title:s(e)("audit.details.title",{id:f.value?.id?.slice(0,8)||""}),width:720,footer:null},{default:t(()=>[f.value?(u(),p("div",pt,[l(Ie,{column:2,size:"small",bordered:""},{default:t(()=>[l(T,{label:s(e)("audit.details.id"),span:2},{default:t(()=>[b("span",yt,r(f.value.id),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.eventType")},{default:t(()=>[l(C,{color:J(f.value.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(f.value.eventType),1)]),_:1},8,["color"]),b("span",vt,r(Q(f.value.eventType)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.riskLevel")},{default:t(()=>[l(C,{color:Y(f.value.riskLevel)},{default:t(()=>[y(r(B(f.value.riskLevel)),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.operation"),span:2},{default:t(()=>[b("span",mt,r(f.value.operation),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.status")},{default:t(()=>[l(C,{color:f.value.success?"green":"red"},{default:t(()=>[y(r(f.value.success?s(e)("audit.details.success"):s(e)("audit.details.failure")),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.time")},{default:t(()=>[y(r(s(fe)(f.value.createdAt)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.actor")},{default:t(()=>[f.value.actor?(u(),p("span",_t,r(f.value.actor),1)):(u(),p("span",gt,"—"))]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.target")},{default:t(()=>[f.value.target?(u(),p("span",bt,r(f.value.target),1)):(u(),p("span",kt,"—"))]),_:1},8,["label"]),f.value.ipAddress?(u(),x(T,{key:0,label:s(e)("audit.details.ip")},{default:t(()=>[b("span",ht,r(f.value.ipAddress),1)]),_:1},8,["label"])):k("",!0),f.value.userAgent?(u(),x(T,{key:1,label:s(e)("audit.details.userAgent")},{default:t(()=>[b("span",xt,r(f.value.userAgent),1)]),_:1},8,["label"])):k("",!0),f.value.errorMessage?(u(),x(T,{key:2,label:s(e)("audit.details.errorMessage"),span:2},{default:t(()=>[b("span",Lt,r(f.value.errorMessage),1)]),_:1},8,["label"])):k("",!0),f.value.details?(u(),x(T,{key:3,label:s(e)("audit.details.details"),span:2},{default:t(()=>[b("pre",St,r(Se(f.value.details)),1)]),_:1},8,["label"])):k("",!0)]),_:1})])):k("",!0)]),_:1},8,["open","title"])])}}},It=De(Tt,[["__scopeId","data-v-53d0173f"]]);export{It as default};
1
+ import{_ as De,a as Fe,c as R}from"./index-Cw4v7ezB.js";import{u as je}from"./ws-D_5-FRIb.js";import{u as Je}from"./useFs-BD-YRwbU.js";import{s as pe}from"./community-parser-CO25nZFt.js";import{R as Be,an as $e,y as ce,d as Ue,af as Ke,A as Pe,f as Ve}from"./icons-DvZE-RKs.js";import{o as He,M as p,R as b,P as r,u as s,c as l,N as t,Q as x,S as k,K as m,r as S,L as u,O as y,F as z,_ as N,$ as We,f as U}from"./vendor-B6ToihkA.js";import"./useShellMode-CgR0wCYM.js";function ye(i){const e=pe(i);if(!e)return null;try{return JSON.parse(e)}catch{}const d=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!d)return null;try{return JSON.parse(d[0])}catch{return null}}const K=Object.freeze(["auth","permission","data","system","file","did","crypto","api"]),ee=Object.freeze(["low","medium","high","critical"]);function X(i,e=0){return typeof i=="number"&&Number.isFinite(i)?i:e}function de(i){if(!i)return{noDb:!1,error:""};const e=pe(i),d=/Database not available/i.test(e);return{noDb:d,error:d?"Database not available":""}}function qe(i,e=0){if(!i||typeof i!="object")return null;const d=i.id||"";if(!d)return null;let g=i.details;if(typeof g=="string"&&g)try{g=JSON.parse(g)}catch{}const h=typeof i.success=="boolean"?i.success:i.success===1||i.success==="1"||i.success===!0,D=i.audit_mtc_event_id??i.auditMtcEventId??null;return{key:d,id:d,eventType:String(i.event_type??i.eventType??"").toLowerCase(),operation:String(i.operation||""),actor:i.actor??"",target:i.target??"",details:g??null,riskLevel:String(i.risk_level??i.riskLevel??"low").toLowerCase(),ipAddress:i.ip_address??i.ipAddress??"",userAgent:i.user_agent??i.userAgent??"",success:h,errorMessage:i.error_message??i.errorMessage??"",createdAt:i.created_at??i.createdAt??"",auditMtcEventId:D,_idx:e}}function Qe(i){const e=ye(i);return Array.isArray(e)?e.map(qe).filter(Boolean):[]}const Ye={total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}};function Ze(i){const e=JSON.parse(JSON.stringify(Ye));for(const g of K)e.byEventType[g]=0;for(const g of ee)e.byRiskLevel[g]=0;const d=ye(i);if(!d||typeof d!="object"||Array.isArray(d))return e;if(e.total=X(d.total,0),e.failures=X(d.failures,0),e.highRisk=X(d.highRisk,0),d.byEventType&&typeof d.byEventType=="object")for(const[g,h]of Object.entries(d.byEventType))typeof h=="number"&&Number.isFinite(h)&&(e.byEventType[g]=h);if(d.byRiskLevel&&typeof d.byRiskLevel=="object")for(const[g,h]of Object.entries(d.byRiskLevel))typeof h=="number"&&Number.isFinite(h)&&(e.byRiskLevel[g]=h);return e}function Ge(i){return!i||!i.auditMtcEventId?"none":"tracked"}function fe(i){if(i==null||i==="")return"—";const e=String(i),d=e.includes(" ")&&!e.includes("T")?e.replace(" ","T")+"Z":e,g=new Date(d);return isNaN(g.getTime())?e:g.toLocaleString("zh-CN",{hour12:!1})}const Xe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},et={class:"page-title"},tt={class:"page-sub"},at={class:"type-name"},lt={class:"type-count"},ot={class:"filter-bar"},st={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},nt={style:{color:"var(--text-primary)","font-weight":"500","font-family":"monospace","font-size":"12px"}},it={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"2px"}},rt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ut={key:1,style:{color:"var(--text-muted)"}},ct={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},dt={key:1,style:{color:"var(--text-muted)"}},ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},pt={key:0,style:{"padding-top":"8px"}},yt={style:{"font-family":"monospace","font-size":"12px"}},vt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},mt={style:{"font-family":"monospace"}},_t={key:0,style:{"font-family":"monospace","font-size":"12px"}},gt={key:1,style:{color:"var(--text-muted)"}},bt={key:0,style:{"font-family":"monospace","font-size":"12px"}},kt={key:1,style:{color:"var(--text-muted)"}},ht={style:{"font-family":"monospace","font-size":"12px"}},xt={style:{"font-family":"monospace","font-size":"11px"}},Lt={style:{color:"#ff4d4f"}},St={class:"details-pre"},Tt={__name:"Audit",setup(i){const{t:e}=Fe(),d=je(),g=Je(),h=S(!1),D=S([]),_=S({total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}}),P=S({noDb:!1,error:""}),te=S("events"),F=S(""),w=S(""),I=S(""),M=S(""),j=S(!1),V=S(!1),f=S(null),ve=U(()=>[{title:e("audit.logColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("audit.logColumns.eventType"),key:"eventType",width:"110px"},{title:e("audit.logColumns.operation"),key:"operation"},{title:e("audit.logColumns.actor"),key:"actor",width:"140px"},{title:e("audit.logColumns.target"),key:"target",width:"180px"},{title:e("audit.logColumns.riskLevel"),key:"riskLevel",width:"90px"},{title:e("audit.logColumns.success"),key:"success",width:"80px"},{title:e("audit.logColumns.mtc"),key:"mtc",width:"110px"},{title:e("audit.logColumns.action"),key:"action",width:"80px"}]),H=S({});function W(a){return a.auditMtcEventId&&H.value[a.id]||null}function me(a){const o=W(a);return o?o.state==="staging"?e("audit.mtc.stagingLabel"):o.state==="batched"?e("audit.mtc.batchedLabel",{batchId:o.batchId||"?"}):e("audit.mtc.unknownLabel"):e("audit.mtc.signedNotChecked")}function _e(a){const o=W(a);return o?o.state==="staging"?"orange":o.state==="batched"?"green":"default":"blue"}function ge(a){if(!a.auditMtcEventId)return"";const o=W(a),c=e("audit.mtc.tooltipBase",{id:a.auditMtcEventId});return o?o.state==="staging"?e("audit.mtc.tooltipStaging",{base:c}):o.state==="batched"?e("audit.mtc.tooltipBatched",{base:c,batchId:o.batchId,treeHead:o.treeHeadId||""}):c:e("audit.mtc.tooltipNotChecked",{base:c})}async function be(a){if(!a.auditMtcEventId)return;const o=a.auditMtcEventId.replace(/"/g,'\\"');try{const c=await d.execute(`audit mtc reconcile-check "${o}" --json`,8e3);let L;try{L=JSON.parse(c.output.trim())}catch{const A=c.output.match(/\{[\s\S]*\}/);L=A?JSON.parse(A[0]):null}if(!L){R.warning(e("audit.mtc.noJson"));return}const Z=L.found?{state:"batched",batchId:L.batchId,treeHeadId:L.treeHeadId}:L.staging?{state:"staging"}:{state:"unknown"};H.value={...H.value,[a.id]:Z}}catch(c){R.error(e("audit.mtc.checkFailed",{err:c?.message||c}))}}const q=U(()=>_.value.total?(_.value.total-_.value.failures)/_.value.total*100:100),ke=U(()=>!!(w.value||I.value||M.value||j.value)),he=U(()=>{let a=D.value;if(I.value&&(a=a.filter(o=>o.eventType===I.value)),M.value&&(a=a.filter(o=>o.riskLevel===M.value)),j.value&&(a=a.filter(o=>!o.success)),w.value){const o=w.value.toLowerCase();a=a.filter(c=>(c.operation||"").toLowerCase().includes(o)||(c.actor||"").toLowerCase().includes(o)||(c.target||"").toLowerCase().includes(o))}return a});function Q(a){const o=`audit.type.${a}`,c=e(o);return c===o?a:c}function J(a){return{auth:"blue",permission:"purple",data:"cyan",system:"default",file:"green",did:"gold",crypto:"magenta",api:"volcano"}[a]||"default"}function ae(a){return{auth:"#1677ff",permission:"#722ed1",data:"#13c2c2",system:"#888",file:"#52c41a",did:"#faad14",crypto:"#eb2f96",api:"#fa541c"}[a]||"#888"}function B(a){const o=`audit.risk.${a}`,c=e(o);return c===o?a:c}function Y(a){return{low:"default",medium:"gold",high:"orange",critical:"red"}[a]||"default"}function xe(a){return{low:"#888",medium:"#faad14",high:"#fa8c16",critical:"#ff4d4f"}[a]||"#888"}function le(a,o){return o?Math.round(a/o*100):0}function Le(a,o){return a?a.length<=o?a:a.slice(0,o)+"…":""}function Se(a){if(typeof a=="string")return a;try{return JSON.stringify(a,null,2)}catch{return String(a)}}let oe=null;function Te(){clearTimeout(oe),oe=setTimeout(()=>{w.value=F.value.trim()},300)}function Ce(){w.value=F.value.trim()}async function se(){h.value=!0,P.value={noDb:!1,error:""};try{const[a,o]=await Promise.all([d.execute("audit log --json -n 200",12e3).catch(()=>({output:""})),d.execute("audit stats --json",8e3).catch(()=>({output:""}))]),c=[a,o].map(L=>de(L.output)).find(L=>L.noDb);c&&(P.value=c),D.value=Qe(a.output),_.value=Ze(o.output)}catch(a){R.error(e("audit.messages.loadFailed",{err:a?.message||a}))}finally{h.value=!1}}function ze(a){f.value=a,V.value=!0}async function Ae(){try{const{output:a}=await d.execute("audit export -f json -n 10000",2e4);if(de(a).noDb){R.error(e("audit.messages.needInit"));return}if(!a.trim().startsWith("[")){R.error(e("audit.messages.exportFailed",{err:a.slice(0,120)}));return}const c=await g.saveText(a.trim(),{defaultPath:`audit-${new Date().toISOString().slice(0,10)}.json`,filters:[{name:"JSON",extensions:["json"]}]});if(c.canceled)return;R.success(c.path?e("audit.messages.exportOk",{path:c.path}):e("audit.messages.exportOkDefault"))}catch(a){R.error(e("audit.messages.exportFailed",{err:a?.message||a}))}}return He(se),(a,o)=>{const c=m("a-button"),L=m("a-space"),Z=m("a-alert"),A=m("a-statistic"),E=m("a-card"),O=m("a-col"),G=m("a-row"),C=m("a-tag"),Ee=m("a-input-search"),$=m("a-radio-button"),ne=m("a-radio-group"),Oe=m("a-checkbox"),ie=m("a-tooltip"),Re=m("a-table"),re=m("a-tab-pane"),ue=m("a-progress"),we=m("a-tabs"),T=m("a-descriptions-item"),Ie=m("a-descriptions"),Me=m("a-modal");return u(),p("div",null,[b("div",Xe,[b("div",null,[b("h2",et,r(s(e)("audit.title")),1),b("p",tt,r(s(e)("audit.subtitle")),1)]),l(L,null,{default:t(()=>[l(c,{loading:h.value,onClick:se},{icon:t(()=>[l(s(Be))]),default:t(()=>[y(" "+r(s(e)("audit.refresh")),1)]),_:1},8,["loading"]),l(c,{onClick:Ae},{icon:t(()=>[l(s($e))]),default:t(()=>[y(" "+r(s(e)("audit.exportJson")),1)]),_:1})]),_:1})]),P.value.noDb?(u(),x(Z,{key:0,type:"info","show-icon":"",message:s(e)("audit.noDb.message"),description:s(e)("audit.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):k("",!0),l(G,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.total"),value:_.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[l(s(ce))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.failures"),value:_.value.failures,"value-style":{color:_.value.failures>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ue))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.highRisk"),value:_.value.highRisk,"value-style":{color:_.value.highRisk>0?"#fa8c16":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ke))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.critical"),value:_.value.byRiskLevel.critical||0,"value-style":{color:(_.value.byRiskLevel.critical||0)>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:t(()=>[l(s(Pe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:24,sm:8,lg:4},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.successRate"),value:q.value,suffix:"%",precision:1,"value-style":{color:q.value>=95?"#52c41a":q.value>=80?"#faad14":"#ff4d4f",fontSize:"20px"}},{prefix:t(()=>[l(s(Ve))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),l(E,{title:s(e)("audit.typeCatalogueTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:t(()=>[l(G,{gutter:[12,12]},{default:t(()=>[(u(!0),p(z,null,N(s(K),n=>(u(),x(O,{key:n,xs:12,sm:8,lg:3},{default:t(()=>[b("div",{class:"type-pill",style:We({borderLeftColor:ae(n)})},[l(C,{color:J(n),style:{"font-family":"monospace","font-size":"11px"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),b("div",at,r(Q(n)),1),b("div",lt,r(_.value.byEventType[n]||0),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),l(we,{activeKey:te.value,"onUpdate:activeKey":o[4]||(o[4]=n=>te.value=n),class:"audit-tabs"},{default:t(()=>[l(re,{key:"events",tab:s(e)("audit.tabs.events")},{default:t(()=>[b("div",ot,[l(Ee,{value:F.value,"onUpdate:value":o[0]||(o[0]=n=>F.value=n),placeholder:s(e)("audit.filter.searchPlaceholder"),"allow-clear":"",style:{"max-width":"280px"},onSearch:Ce,onInput:Te},null,8,["value","placeholder"]),l(ne,{value:I.value,"onUpdate:value":o[1]||(o[1]=n=>I.value=n),size:"small","button-style":"solid"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allTypes")),1)]),_:1}),(u(!0),p(z,null,N(s(K),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(Q(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(ne,{value:M.value,"onUpdate:value":o[2]||(o[2]=n=>M.value=n),size:"small"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allRisks")),1)]),_:1}),(u(!0),p(z,null,N(s(ee),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(B(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(Oe,{checked:j.value,"onUpdate:checked":o[3]||(o[3]=n=>j.value=n)},{default:t(()=>[y(r(s(e)("audit.filter.failuresOnly")),1)]),_:1},8,["checked"])]),l(Re,{columns:ve.value,"data-source":he.value,pagination:{pageSize:20,showTotal:n=>s(e)("audit.totals.rows",{count:n})},size:"small",loading:h.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:n,record:v})=>[n.key==="createdAt"?(u(),p("span",st,r(s(fe)(v.createdAt)),1)):k("",!0),n.key==="eventType"?(u(),x(C,{key:1,color:J(v.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(v.eventType),1)]),_:2},1032,["color"])):k("",!0),n.key==="operation"?(u(),p(z,{key:2},[b("span",nt,r(v.operation),1),v.errorMessage?(u(),p("div",it,r(v.errorMessage),1)):k("",!0)],64)):k("",!0),n.key==="actor"?(u(),p(z,{key:3},[v.actor?(u(),p("span",rt,r(v.actor),1)):(u(),p("span",ut,"—"))],64)):k("",!0),n.key==="target"?(u(),p(z,{key:4},[v.target?(u(),p("span",ct,r(Le(v.target,32)),1)):(u(),p("span",dt,"—"))],64)):k("",!0),n.key==="riskLevel"?(u(),x(C,{key:5,color:Y(v.riskLevel)},{default:t(()=>[y(r(B(v.riskLevel)),1)]),_:2},1032,["color"])):k("",!0),n.key==="success"?(u(),x(C,{key:6,color:v.success?"green":"red"},{default:t(()=>[y(r(v.success?"OK":"FAIL"),1)]),_:2},1032,["color"])):k("",!0),n.key==="mtc"?(u(),p(z,{key:7},[s(Ge)(v)==="none"?(u(),x(ie,{key:0,title:s(e)("audit.mtc.noneTooltip")},{default:t(()=>[l(C,{color:"default"},{default:t(()=>[...o[6]||(o[6]=[y("—",-1)])]),_:1})]),_:1},8,["title"])):(u(),x(ie,{key:1,title:ge(v)},{default:t(()=>[l(C,{color:_e(v),style:{cursor:"pointer"},onClick:Ne=>be(v)},{default:t(()=>[y(r(me(v)),1)]),_:2},1032,["color","onClick"])]),_:2},1032,["title"]))],64)):k("",!0),n.key==="action"?(u(),x(c,{key:8,size:"small",type:"link",onClick:Ne=>ze(v)},{default:t(()=>[y(r(s(e)("audit.rowAction.details")),1)]),_:1},8,["onClick"])):k("",!0)]),emptyText:t(()=>[b("div",ft,[l(s(ce),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),y(" "+r(ke.value?s(e)("audit.empty.filtered"):s(e)("audit.empty.noEvents")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(re,{key:"breakdown",tab:s(e)("audit.tabs.breakdown")},{default:t(()=>[l(G,{gutter:[16,16]},{default:t(()=>[l(O,{xs:24,lg:12},{default:t(()=>[l(E,{title:s(e)("audit.breakdown.byType"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,N(s(K),n=>(u(),p("div",{key:n,class:"bd-row"},[l(C,{color:J(n),style:{"min-width":"80px","text-align":"center","font-family":"monospace"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),l(ue,{percent:le(_.value.byEventType[n]||0,_.value.total),"stroke-color":ae(n),format:()=>`${_.value.byEventType[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),l(O,{xs:24,lg:12},{default:t(()=>[l(E,{title:s(e)("audit.breakdown.byRisk"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,N(s(ee),n=>(u(),p("div",{key:n,class:"bd-row"},[l(C,{color:Y(n),style:{"min-width":"80px","text-align":"center"}},{default:t(()=>[y(r(B(n)),1)]),_:2},1032,["color"]),l(ue,{percent:le(_.value.byRiskLevel[n]||0,_.value.total),"stroke-color":xe(n),format:()=>`${_.value.byRiskLevel[n]||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"]),l(Me,{open:V.value,"onUpdate:open":o[5]||(o[5]=n=>V.value=n),title:s(e)("audit.details.title",{id:f.value?.id?.slice(0,8)||""}),width:720,footer:null},{default:t(()=>[f.value?(u(),p("div",pt,[l(Ie,{column:2,size:"small",bordered:""},{default:t(()=>[l(T,{label:s(e)("audit.details.id"),span:2},{default:t(()=>[b("span",yt,r(f.value.id),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.eventType")},{default:t(()=>[l(C,{color:J(f.value.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(f.value.eventType),1)]),_:1},8,["color"]),b("span",vt,r(Q(f.value.eventType)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.riskLevel")},{default:t(()=>[l(C,{color:Y(f.value.riskLevel)},{default:t(()=>[y(r(B(f.value.riskLevel)),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.operation"),span:2},{default:t(()=>[b("span",mt,r(f.value.operation),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.status")},{default:t(()=>[l(C,{color:f.value.success?"green":"red"},{default:t(()=>[y(r(f.value.success?s(e)("audit.details.success"):s(e)("audit.details.failure")),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.time")},{default:t(()=>[y(r(s(fe)(f.value.createdAt)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.actor")},{default:t(()=>[f.value.actor?(u(),p("span",_t,r(f.value.actor),1)):(u(),p("span",gt,"—"))]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.target")},{default:t(()=>[f.value.target?(u(),p("span",bt,r(f.value.target),1)):(u(),p("span",kt,"—"))]),_:1},8,["label"]),f.value.ipAddress?(u(),x(T,{key:0,label:s(e)("audit.details.ip")},{default:t(()=>[b("span",ht,r(f.value.ipAddress),1)]),_:1},8,["label"])):k("",!0),f.value.userAgent?(u(),x(T,{key:1,label:s(e)("audit.details.userAgent")},{default:t(()=>[b("span",xt,r(f.value.userAgent),1)]),_:1},8,["label"])):k("",!0),f.value.errorMessage?(u(),x(T,{key:2,label:s(e)("audit.details.errorMessage"),span:2},{default:t(()=>[b("span",Lt,r(f.value.errorMessage),1)]),_:1},8,["label"])):k("",!0),f.value.details?(u(),x(T,{key:3,label:s(e)("audit.details.details"),span:2},{default:t(()=>[b("pre",St,r(Se(f.value.details)),1)]),_:1},8,["label"])):k("",!0)]),_:1})])):k("",!0)]),_:1},8,["open","title"])])}}},It=De(Tt,[["__scopeId","data-v-53d0173f"]]);export{It as default};