chainlesschain 0.162.2 → 0.162.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/package.json +2 -1
  2. package/src/assets/web-panel/.build-hash +1 -1
  3. package/src/assets/web-panel/assets/{AIOps-D69_XwQf.js → AIOps-BXQ92dvI.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-COVVHNnK.js → ActionButton-DjmolmAS.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-m0Cuoraq.js → Analytics-LUUOS78B.js} +2 -2
  6. package/src/assets/web-panel/assets/{AppLayout-BEZq_CS0.css → AppLayout-BLCe1k8m.css} +1 -1
  7. package/src/assets/web-panel/assets/AppLayout-DeAq-Waa.js +3 -0
  8. package/src/assets/web-panel/assets/{Audit-DB5RNs9K.js → Audit-De_86BpN.js} +1 -1
  9. package/src/assets/web-panel/assets/{Backup-DD9SgVtq.js → Backup-CAqIbrb5.js} +1 -1
  10. package/src/assets/web-panel/assets/{BaseInput-CS2Y4V0O.js → BaseInput-CwTVDavS.js} +1 -1
  11. package/src/assets/web-panel/assets/{Chat-Cvw48zqw.js → Chat-BnihAKiI.js} +1 -1
  12. package/src/assets/web-panel/assets/{Checkbox-DElRJpAL.js → Checkbox-BDrCuC9m.js} +1 -1
  13. package/src/assets/web-panel/assets/{Codegen-CHdMYssy.js → Codegen-DWqN0jpL.js} +1 -1
  14. package/src/assets/web-panel/assets/{Col-BDk4BXjN.js → Col-B7rIr4g3.js} +1 -1
  15. package/src/assets/web-panel/assets/{Community-ByDrN94M.js → Community-YYEO8SY3.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compact-D4E0roed.js → Compact-DZHWn-_j.js} +1 -1
  17. package/src/assets/web-panel/assets/Compliance-CCYzk_rt.js +1 -0
  18. package/src/assets/web-panel/assets/{Cowork-CMn6mzHv.js → Cowork-D9G6khOx.js} +3 -3
  19. package/src/assets/web-panel/assets/{Cron-CARdrrMM.js → Cron-IbwddEeZ.js} +2 -2
  20. package/src/assets/web-panel/assets/{Crosschain-2pnRIGVn.js → Crosschain-Bct133LN.js} +1 -1
  21. package/src/assets/web-panel/assets/{DID-BRo55XlY.js → DID-32J0mXoS.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dashboard-DfNjjw7V.js → Dashboard-TaPAK2WV.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dropdown-BDTTlG70.js → Dropdown-Df4hUeIm.js} +1 -1
  24. package/src/assets/web-panel/assets/{Federation-CKkeJ169.js → Federation-C0xfKoZr.js} +1 -1
  25. package/src/assets/web-panel/assets/{FormItemContext-C6DJ0oHT.js → FormItemContext-CoacTa1H.js} +1 -1
  26. package/src/assets/web-panel/assets/{Git-DDQd8pDl.js → Git-DZZF1lrY.js} +2 -2
  27. package/src/assets/web-panel/assets/{Governance-DZTuAASB.js → Governance-Bo-P_BP3.js} +1 -1
  28. package/src/assets/web-panel/assets/{Inference-CIbj0XmL.js → Inference-agx6qPl9.js} +1 -1
  29. package/src/assets/web-panel/assets/KnowledgeGraph-Dc8YZGiO.js +1 -0
  30. package/src/assets/web-panel/assets/{Logs-BrLBwq1m.js → Logs-njAOFc0W.js} +1 -1
  31. package/src/assets/web-panel/assets/{Marketplace-q9X5VK92.js → Marketplace-Yu-RUTN2.js} +1 -1
  32. package/src/assets/web-panel/assets/{McpTools-DfxuLN57.js → McpTools-BuzdmOwR.js} +1 -1
  33. package/src/assets/web-panel/assets/{Memory-DND9vjBx.js → Memory-DJyWxXM0.js} +2 -2
  34. package/src/assets/web-panel/assets/{MobileBridge-Ba2jSFl0.js → MobileBridge-CIKfLcfn.js} +1 -1
  35. package/src/assets/web-panel/assets/{MobileProjects-CdclN769.js → MobileProjects-B1OZ0_b1.js} +1 -1
  36. package/src/assets/web-panel/assets/{Mtc-BNKpFjlY.js → Mtc-CJHI9qG0.js} +4 -4
  37. package/src/assets/web-panel/assets/{MtcAudit-BlZJm1Tf.js → MtcAudit-cSrqcG3H.js} +1 -1
  38. package/src/assets/web-panel/assets/{Multisig-DcX0uBmT.js → Multisig-DTVo9GFR.js} +2 -2
  39. package/src/assets/web-panel/assets/{NLProgramming-dDIA3V_a.js → NLProgramming-NqfB2jLI.js} +1 -1
  40. package/src/assets/web-panel/assets/{Notes-BDsTuZ5O.js → Notes-MuMFfs67.js} +3 -3
  41. package/src/assets/web-panel/assets/{NotificationSettings-DzGuAAKt.js → NotificationSettings-B5ECNQNW.js} +1 -1
  42. package/src/assets/web-panel/assets/{Organization-DFfncYaU.js → Organization-Dn98sbrZ.js} +4 -4
  43. package/src/assets/web-panel/assets/{Overflow-O5JDtvyx.js → Overflow-Sl5FJV2c.js} +1 -1
  44. package/src/assets/web-panel/assets/{P2P-BTLl5rnf.js → P2P-58-TvQSE.js} +2 -2
  45. package/src/assets/web-panel/assets/{Permissions-M-jmJa1X.js → Permissions-BFtHCNck.js} +4 -4
  46. package/src/assets/web-panel/assets/PersonalDataHub-CVH9NAfL.css +1 -0
  47. package/src/assets/web-panel/assets/PersonalDataHub-Cu--XeWZ.js +1 -0
  48. package/src/assets/web-panel/assets/{Pipeline-DyXoKp_J.js → Pipeline-DWt_M98L.js} +1 -1
  49. package/src/assets/web-panel/assets/{Privacy-Cvv_9eBQ.js → Privacy-BUX3yRZc.js} +1 -1
  50. package/src/assets/web-panel/assets/{ProjectInit-BS2s_sxy.js → ProjectInit-wYWMWfxy.js} +2 -2
  51. package/src/assets/web-panel/assets/{ProjectSettings-CGfEpOL1.js → ProjectSettings-CIRbqu0F.js} +1 -1
  52. package/src/assets/web-panel/assets/{Projects-BkuTxL3o.js → Projects-CDFkiEL3.js} +1 -1
  53. package/src/assets/web-panel/assets/{Providers-CkhZ5eii.js → Providers-CnPu1q45.js} +1 -1
  54. package/src/assets/web-panel/assets/{QuickAsk-CvGT4zj2.js → QuickAsk-mwOI7Tc-.js} +1 -1
  55. package/src/assets/web-panel/assets/{Recommend-C-gDvXw6.js → Recommend-Ct6SM2HV.js} +1 -1
  56. package/src/assets/web-panel/assets/{Reputation-5zAdCzHT.js → Reputation-D7D6rp3d.js} +1 -1
  57. package/src/assets/web-panel/assets/{Row-BsuDvMpO.js → Row-CX03nw4D.js} +1 -1
  58. package/src/assets/web-panel/assets/{RssFeed-2QQb8p5X.js → RssFeed-BRyNIOp0.js} +3 -3
  59. package/src/assets/web-panel/assets/{Search-CFT_6Ljj.js → Search-Dh-jwNaq.js} +1 -1
  60. package/src/assets/web-panel/assets/{Security-BrK_KNJK.js → Security-C53OqK_S.js} +3 -3
  61. package/src/assets/web-panel/assets/Services-nXK7991F.js +2 -0
  62. package/src/assets/web-panel/assets/{Skeleton--WjfL2Ay.js → Skeleton-mVGGUSnx.js} +1 -1
  63. package/src/assets/web-panel/assets/{Skills-1GWFYMGg.js → Skills-AVICQyr7.js} +1 -1
  64. package/src/assets/web-panel/assets/{Sla-508cBkmT.js → Sla-BO-jiswJ.js} +1 -1
  65. package/src/assets/web-panel/assets/{SpeechSettings-DIeNRX6V.js → SpeechSettings-CQ73BtGw.js} +1 -1
  66. package/src/assets/web-panel/assets/{SyncSettings-BQDW6gsX.js → SyncSettings-ozTu_ihm.js} +1 -1
  67. package/src/assets/web-panel/assets/{Tasks-D39SBKyi.js → Tasks-CwTiFnau.js} +1 -1
  68. package/src/assets/web-panel/assets/{Templates-tsObCBe6.js → Templates-PJ-SYUEg.js} +1 -1
  69. package/src/assets/web-panel/assets/{Tenant-Ccpw-S6R.js → Tenant-DeckYbHe.js} +1 -1
  70. package/src/assets/web-panel/assets/Terminal-CIn4gdxj.js +3 -0
  71. package/src/assets/web-panel/assets/Tokens-Bc40cdFh.js +1 -0
  72. package/src/assets/web-panel/assets/{Trigger-D4yonKuU.js → Trigger-BERtmWcc.js} +1 -1
  73. package/src/assets/web-panel/assets/{Trust-DHDcLjma.js → Trust-_ktoDZt-.js} +1 -1
  74. package/src/assets/web-panel/assets/{UkeySign-DBpW0j1p.js → UkeySign-DecT3_Zy.js} +1 -1
  75. package/src/assets/web-panel/assets/{VideoEditing-BPr_46Py.js → VideoEditing-AqPQa7a7.js} +1 -1
  76. package/src/assets/web-panel/assets/{Wallet-4lfplIJV.js → Wallet-CL303fn9.js} +4 -4
  77. package/src/assets/web-panel/assets/{WebAuthn-DI13wkez.js → WebAuthn-Bwy0YO-u.js} +4 -4
  78. package/src/assets/web-panel/assets/{WorkflowEditor-CYbHpkQy.js → WorkflowEditor-Bbewn3S4.js} +1 -1
  79. package/src/assets/web-panel/assets/{chat-BOH4vNJ7.js → chat-CDIxA8Km.js} +1 -1
  80. package/src/assets/web-panel/assets/{colors-qxXJ45GU.js → colors-rQIxLS12.js} +1 -1
  81. package/src/assets/web-panel/assets/{compact-item-Cjb446yk.js → compact-item-1jZiKenx.js} +1 -1
  82. package/src/assets/web-panel/assets/{createContext-CulBut34.js → createContext-B3FjOuaT.js} +1 -1
  83. package/src/assets/web-panel/assets/{hasIn-DCnwRrNq.js → hasIn-dZ195iTN.js} +1 -1
  84. package/src/assets/web-panel/assets/{icons-DY9VpXfa.js → icons-BFHq5fEF.js} +1 -1
  85. package/src/assets/web-panel/assets/{index-C7reeGYU.js → index--NxZmEUk.js} +1 -1
  86. package/src/assets/web-panel/assets/{index-BAy0ks7N.js → index-19d37fVJ.js} +4 -4
  87. package/src/assets/web-panel/assets/{index-CRsnuDGC.js → index-AHCOz9NC.js} +1 -1
  88. package/src/assets/web-panel/assets/{index-CV_vlbaU.js → index-BByVZ5fI.js} +1 -1
  89. package/src/assets/web-panel/assets/{index-CjJUQvIU.js → index-BC6wcYy3.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-Bp4_7Kow.js → index-BDZd1181.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-DG1F9RZd.js → index-BOiuM69x.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-DpzjQM4w.js → index-Bq8fsYQ6.js} +1 -1
  93. package/src/assets/web-panel/assets/{index-DC38ymaH.js → index-Br6-EXdw.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-BA8bUOYK.js → index-BsUXzEb2.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-CW7a8O5w.js → index-BwIwGE8Y.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-D80IlXq1.js → index-Bx15E0JQ.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-BOFep_rA.js → index-BxnEM3za.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-C_029Hie.js → index-C0YzTiiB.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-BKNbteyC.js → index-C3SVypM3.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-D3bXm2aZ.js → index-C3rYUvdl.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-PP5MLidC.js → index-C4jmdcCs.js} +1 -1
  102. package/src/assets/web-panel/assets/index-C5Ifo5EH.js +1 -0
  103. package/src/assets/web-panel/assets/{index-Bb1KdW4J.js → index-C8IGQbfQ.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-BBWR20mC.js → index-CDL_WWYl.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-DQXojJvN.js → index-CDkCJPtr.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-hca2ku7U.js → index-D0DtKH7N.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-DkYY9W4x.js → index-D3QDmYBa.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-oGqObYfs.js → index-DP5rV4eS.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-BCr0xH2Q.js → index-DQXt91YA.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-Cv2hQG7c.js → index-DRIQpe4j.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-C3ImsNgP.js → index-DWJ5GzxU.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-BO-vFfxc.js → index-Dvg5ymRK.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-SHmkRPZ_.js → index-DxwYB7eB.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-Clxp_Rc0.js → index-U5Y4YNZC.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DNooejFX.js → index-XDvSQBl5.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-cP5FNe0q.js → index-aaHXeryL.js} +1 -1
  117. package/src/assets/web-panel/assets/index-efjrWv6y.js +1 -0
  118. package/src/assets/web-panel/assets/{index-DK5iJriy.js → index-hNSGbn-4.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-6xtj6SRQ.js → index-kg4NgBuP.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-Civlun-X.js → index-lSnZsO_d.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-XMsNvoaz.js → index-sygYO1j4.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-D6-3yvOU.js → index-uL0KmFyf.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-CFw2RtQ_.js → index-xKOyC0Cx.js} +1 -1
  124. package/src/assets/web-panel/assets/{initDefaultProps-Dp93Vlbv.js → initDefaultProps-GbvcoqYL.js} +1 -1
  125. package/src/assets/web-panel/assets/{motion-yBy7l6Td.js → motion-VM5YQ6Mf.js} +1 -1
  126. package/src/assets/web-panel/assets/{move-P6GgC8ZU.js → move-CJvGLYlg.js} +1 -1
  127. package/src/assets/web-panel/assets/{omit-BMF4_2X_.js → omit-3oHJWwWB.js} +1 -1
  128. package/src/assets/web-panel/assets/{pickAttrs-C1bUV-iL.js → pickAttrs-BWBtl13u.js} +1 -1
  129. package/src/assets/web-panel/assets/{placementArrow-CpNGMWxW.js → placementArrow-CVESPqrs.js} +1 -1
  130. package/src/assets/web-panel/assets/{responsiveObserve-Bt3UzGUn.js → responsiveObserve-BOvUPufq.js} +1 -1
  131. package/src/assets/web-panel/assets/{slide-B5t0Lgse.js → slide-W_P685Dw.js} +1 -1
  132. package/src/assets/web-panel/assets/{statusUtils-nHmUS8yg.js → statusUtils-BnIQmxwT.js} +1 -1
  133. package/src/assets/web-panel/assets/{styleChecker-DgazP1mu.js → styleChecker-BMXx5Ie5.js} +1 -1
  134. package/src/assets/web-panel/assets/{useFlexGapSupport-BQ4jJS_s.js → useFlexGapSupport-DSJ4Pl17.js} +1 -1
  135. package/src/assets/web-panel/assets/{useFs-C8aeIQfU.js → useFs-BPbHm7Yn.js} +1 -1
  136. package/src/assets/web-panel/assets/{vnode-DMH0ymoP.js → vnode-HDTJKu2B.js} +1 -1
  137. package/src/assets/web-panel/assets/{zoom-DRmMxFNC.js → zoom-BqKDJys9.js} +1 -1
  138. package/src/assets/web-panel/index.html +2 -2
  139. package/src/commands/ui.js +21 -3
  140. package/src/gateways/ws/message-dispatcher.js +68 -0
  141. package/src/gateways/ws/personal-data-hub-protocol.js +264 -0
  142. package/src/lib/personal-data-hub-wiring.js +425 -0
  143. package/src/runtime/agent-runtime.js +85 -11
  144. package/src/assets/web-panel/assets/AppLayout-BzzvYjpq.js +0 -3
  145. package/src/assets/web-panel/assets/Compliance-DCkF4hfd.js +0 -1
  146. package/src/assets/web-panel/assets/KnowledgeGraph-nTHxy0Fw.js +0 -1
  147. package/src/assets/web-panel/assets/Services-DAmjLm-1.js +0 -2
  148. package/src/assets/web-panel/assets/Terminal-CgFg09NA.js +0 -3
  149. package/src/assets/web-panel/assets/Tokens-BBWOiqLq.js +0 -1
  150. package/src/assets/web-panel/assets/index-B0YFQoW_.js +0 -1
  151. package/src/assets/web-panel/assets/index-BX7snsTz.js +0 -1
@@ -1,4 +1,4 @@
1
- import{_ as Le,b as Oe,u as Fe,d as _}from"./index-BAy0ks7N.js";import{R as V,a1 as E,Z as Se,aq as de,aj as ue}from"./icons-DY9VpXfa.js";import{o as We,M as g,R as h,P as i,u as o,c as a,N as s,r as w,K as m,L as u,O as v,Q as T,S as k,F as Ue,f as J,a as ce}from"./vendor-M5lGV-wr.js";const $e={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ne={class:"page-title"},Pe={class:"page-sub"},qe={key:0,style:{"text-align":"center",padding:"60px"}},Re={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},je={key:1,style:{color:"var(--text-primary)"}},Be={key:3,style:{color:"#52c41a","font-family":"monospace"}},Me={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},He={key:0,style:{"text-align":"center",padding:"60px"}},Ke={key:0,style:{color:"#e0e0e0"}},Ve={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Ee={key:3,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"12px"}},Je={key:0,style:{"margin-top":"8px"}},Qe={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px","margin-top":"8px",background:"var(--bg-base)",padding:"10px","border-radius":"6px",border:"1px solid var(--border-color)"}},Ze={key:0,style:{"text-align":"center",padding:"30px"}},Ge={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},Xe={key:2,style:{color:"#e0e0e0","font-family":"monospace"}},Ye={key:3,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},et={style:{"margin-top":"16px"}},tt={style:{color:"var(--text-primary)"}},at={style:{"font-family":"monospace",color:"#ccc"}},lt={style:{"font-family":"monospace",color:"#ccc"}},st={style:{"font-family":"monospace",color:"#52c41a"}},ot={__name:"Wallet",setup(nt){const{t:e}=Oe(),A=Fe(),O=w("wallets"),Q=w(!1);function Z(n){try{return JSON.parse(n)}catch{return null}}async function pe(){Q.value=!0;try{O.value==="wallets"?await S():O.value==="assets"?await R():O.value==="transfer"&&await M()}finally{Q.value=!1}}function me(n){n==="assets"&&z.value.length===0&&R(),n==="transfer"&&L.value.length===0&&M()}const $=w(!1),G=w(!1),X=w(""),I=w([]),N=w(!1),F=w(""),fe=J(()=>[{title:e("wallet.walletColumns.address"),key:"address",dataIndex:"address",ellipsis:!0},{title:e("wallet.walletColumns.name"),key:"name",dataIndex:"name",width:"150px"},{title:e("wallet.walletColumns.isDefault"),key:"isDefault",width:"80px"},{title:e("wallet.walletColumns.balance"),key:"balance",dataIndex:"balance",width:"120px"},{title:e("wallet.walletColumns.action"),key:"action",width:"100px"}]),ie=J(()=>{const n=I.value.find(l=>l.isDefault);if(!n||!n.address)return e("wallet.stats.defaultUnset");const t=n.address;return t.length>16?t.slice(0,8)+"..."+t.slice(-6):t});async function S(){$.value=!0;try{const{output:n}=await A.execute("wallet list --json",15e3),t=Z(n);t&&Array.isArray(t)?I.value=t.map((l,c)=>({key:l.address||l.id||c,address:l.address||l.id||"-",name:l.name||l.label||"-",isDefault:l.isDefault||l.default||!1,balance:l.balance??"-"})):t&&t.wallets&&Array.isArray(t.wallets)?I.value=t.wallets.map((l,c)=>({key:l.address||l.id||c,address:l.address||l.id||"-",name:l.name||l.label||"-",isDefault:l.isDefault||l.default||!1,balance:l.balance??"-"})):I.value=ye(n)}catch(n){_.error(e("wallet.messages.loadWalletsFailed",{err:n.message}))}finally{$.value=!1}}function ye(n){const t=[],l=n.split(`
2
- `);for(const c of l){const d=c.trim();if(!d||d.startsWith("─")||d.match(/^\d+ wallet/i))continue;const p=d.match(/(0x[a-fA-F0-9]{8,})/);if(p){const H=/default|默认|\*/.test(d),W=d.match(/name[:\s]+(\S+)/i);t.push({key:p[1],address:p[1],name:W?W[1]:"-",isDefault:H,balance:"-"})}}return t}async function we(){if(!F.value.trim()){_.warning(e("wallet.messages.walletNameRequired"));return}G.value=!0;try{const{output:n}=await A.execute(`wallet create --name "${F.value.trim()}" --json`,2e4);n.includes("error")||n.includes("失败")?_.error(e("wallet.messages.walletCreateFailed",{err:n.slice(0,120)})):(_.success(e("wallet.messages.walletCreateOk")),N.value=!1,F.value="",await S())}catch(n){_.error(e("wallet.messages.walletCreateFailed",{err:n.message}))}finally{G.value=!1}}async function ve(n){X.value=n;try{const{output:t}=await A.execute(`wallet set-default ${n}`,15e3);t.includes("error")||t.includes("失败")?_.error(e("wallet.messages.setDefaultFailed",{err:t.slice(0,120)})):(_.success(e("wallet.messages.setDefaultOk")),await S())}catch(t){_.error(e("wallet.messages.setDefaultFailed",{err:t.message}))}finally{X.value=""}}const P=w(!1),Y=w(!1),z=w([]),q=w(!1),b=ce({name:"",type:"token",description:""}),_e=J(()=>[{title:e("wallet.assetColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:e("wallet.assetColumns.type"),key:"type",dataIndex:"type",width:"100px"},{title:e("wallet.assetColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:e("wallet.assetColumns.address"),key:"address",dataIndex:"address",ellipsis:!0}]);function ge(n){return{token:"blue",nft:"purple",data:"cyan"}[(n||"").toLowerCase()]||"default"}async function R(){P.value=!0;try{const{output:n}=await A.execute("wallet assets --json",15e3),t=Z(n);t&&Array.isArray(t)?z.value=t.map((l,c)=>({key:l.id||l.address||c,name:l.name||"-",type:l.type||"-",description:l.description||"",address:l.address||l.id||"-"})):t&&t.assets&&Array.isArray(t.assets)?z.value=t.assets.map((l,c)=>({key:l.id||l.address||c,name:l.name||"-",type:l.type||"-",description:l.description||"",address:l.address||l.id||"-"})):z.value=be(n)}catch(n){_.error(e("wallet.messages.loadAssetsFailed",{err:n.message}))}finally{P.value=!1}}function be(n){const t=[],l=n.split(`
3
- `);for(const c of l){const d=c.trim();if(!d||d.startsWith("─")||d.match(/^\d+ asset/i))continue;const p=d.split(/\s*[|│]\s*/);p.length>=2&&t.push({key:t.length,name:p[0]||"-",type:p[1]||"-",description:p[2]||"",address:p[3]||"-"})}return t}async function ke(){if(!b.name.trim()){_.warning(e("wallet.messages.assetNameRequired"));return}Y.value=!0;try{let n=`wallet asset "${b.name.trim()}" --type ${b.type}`;b.description.trim()&&(n+=` --description "${b.description.trim().replace(/"/g,'\\"')}"`),n+=" --json";const{output:t}=await A.execute(n,2e4);t.includes("error")||t.includes("失败")?_.error(e("wallet.messages.assetRegisterFailed",{err:t.slice(0,120)})):(_.success(e("wallet.messages.assetRegisterOk")),q.value=!1,b.name="",b.type="token",b.description="",await R())}catch(n){_.error(e("wallet.messages.assetRegisterFailed",{err:n.message}))}finally{Y.value=!1}}const j=w(!1),B=w(!1),D=w(!1),x=w(null),L=w([]),y=ce({assetId:"",toAddress:"",amount:null}),he=J(()=>[{title:e("wallet.historyColumns.time"),key:"time",dataIndex:"time",width:"150px"},{title:e("wallet.historyColumns.type"),key:"type",dataIndex:"type",width:"80px"},{title:e("wallet.historyColumns.amount"),key:"amount",dataIndex:"amount",width:"100px"},{title:e("wallet.historyColumns.to"),key:"to",dataIndex:"to",ellipsis:!0}]);function xe(){if(!y.assetId.trim()||!y.toAddress.trim()||!y.amount){_.warning(e("wallet.messages.transferIncomplete"));return}D.value=!0}async function Ce(){j.value=!0,x.value=null;try{const n=`wallet transfer ${y.assetId.trim()} ${y.toAddress.trim()} --amount ${y.amount}`,{output:t,exitCode:l}=await A.execute(n,3e4);x.value={success:l===0&&!t.includes("error")&&!t.includes("失败"),output:t||e("wallet.messages.transferDefault")},x.value.success?(_.success(e("wallet.messages.transferOk")),D.value=!1,await M()):D.value=!1}catch(n){x.value={success:!1,output:e("wallet.messages.transferFailed",{err:n.message})},D.value=!1}finally{j.value=!1}}async function M(){B.value=!0;try{const{output:n}=await A.execute("wallet history --limit 20 --json",15e3),t=Z(n);t&&Array.isArray(t)?L.value=t.map((l,c)=>({key:l.id||l.hash||c,time:l.time||l.timestamp||l.createdAt||"-",type:l.type||l.direction||"-",amount:l.amount??"-",to:l.to||l.recipient||"-"})):t&&t.history&&Array.isArray(t.history)?L.value=t.history.map((l,c)=>({key:l.id||l.hash||c,time:l.time||l.timestamp||l.createdAt||"-",type:l.type||l.direction||"-",amount:l.amount??"-",to:l.to||l.recipient||"-"})):L.value=Ae(n)}catch(n){_.error(e("wallet.messages.loadHistoryFailed",{err:n.message}))}finally{B.value=!1}}function Ae(n){const t=[],l=n.split(`
4
- `);for(const c of l){const d=c.trim();if(!d||d.startsWith("─")||d.match(/^\d+ transaction/i))continue;const p=d.split(/\s*[|│]\s*/);p.length>=3&&t.push({key:t.length,time:p[0]||"-",type:p[1]||"-",amount:p[2]||"-",to:p[3]||"-"})}return t}return We(()=>{S()}),(n,t)=>{const l=m("a-button"),c=m("a-statistic"),d=m("a-card"),p=m("a-col"),H=m("a-row"),W=m("a-space"),ee=m("a-spin"),K=m("a-tag"),te=m("a-empty"),ae=m("a-table"),U=m("a-input"),C=m("a-form-item"),le=m("a-form"),se=m("a-modal"),oe=m("a-tab-pane"),ne=m("a-select-option"),Te=m("a-select"),Ie=m("a-input-number"),re=m("a-descriptions-item"),ze=m("a-descriptions"),De=m("a-tabs");return u(),g("div",null,[h("div",$e,[h("div",null,[h("h2",Ne,i(o(e)("wallet.title")),1),h("p",Pe,i(o(e)("wallet.subtitle")),1)]),a(l,{type:"primary",ghost:"",loading:Q.value,onClick:pe},{icon:s(()=>[a(o(V))]),default:s(()=>[v(" "+i(o(e)("wallet.refresh")),1)]),_:1},8,["loading"])]),a(H,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[a(p,{xs:24,sm:12,lg:6},{default:s(()=>[a(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(c,{title:o(e)("wallet.stats.walletCount"),value:I.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:s(()=>[a(o(E))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:s(()=>[a(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(c,{title:o(e)("wallet.stats.assetCount"),value:z.value.length,"value-style":{color:"#52c41a",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:s(()=>[a(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(c,{title:o(e)("wallet.stats.defaultWallet"),value:ie.value,"value-style":{color:ie.value!==o(e)("wallet.stats.defaultUnset")?"#faad14":"#888",fontSize:"14px",fontFamily:"monospace"}},{prefix:s(()=>[a(o(E))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:s(()=>[a(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(c,{title:o(e)("wallet.stats.totalTx"),value:L.value.length,"value-style":{color:"#ff4d4f",fontSize:"20px"}},{prefix:s(()=>[a(o(Se))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),a(De,{activeKey:O.value,"onUpdate:activeKey":t[12]||(t[12]=r=>O.value=r),type:"card",onChange:me},{default:s(()=>[a(oe,{key:"wallets"},{tab:s(()=>[a(o(E)),v(" "+i(o(e)("wallet.tabs.wallets")),1)]),default:s(()=>[a(W,{style:{"margin-bottom":"16px"}},{default:s(()=>[a(l,{type:"primary",loading:$.value,onClick:S},{icon:s(()=>[a(o(V))]),default:s(()=>[v(" "+i(o(e)("wallet.wallets.refreshList")),1)]),_:1},8,["loading"]),a(l,{onClick:t[0]||(t[0]=r=>N.value=!0)},{icon:s(()=>[a(o(de))]),default:s(()=>[v(" "+i(o(e)("wallet.wallets.createButton")),1)]),_:1})]),_:1}),$.value?(u(),g("div",qe,[a(ee,{size:"large"})])):(u(),T(ae,{key:1,columns:fe.value,"data-source":I.value,pagination:{pageSize:20,showTotal:r=>o(e)("wallet.totals.rows",{count:r})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"wallet-row"},{bodyCell:s(({column:r,record:f})=>[r.key==="address"?(u(),g("span",Re,i(f.address),1)):k("",!0),r.key==="name"?(u(),g("span",je,i(f.name||"-"),1)):k("",!0),r.key==="isDefault"?(u(),T(K,{key:2,color:f.isDefault?"green":"default"},{default:s(()=>[v(i(f.isDefault?o(e)("wallet.wallets.default"):"-"),1)]),_:2},1032,["color"])):k("",!0),r.key==="balance"?(u(),g("span",Be,i(f.balance??"-"),1)):k("",!0),r.key==="action"?(u(),g(Ue,{key:4},[f.isDefault?(u(),g("span",Me,i(o(e)("wallet.wallets.currentDefault")),1)):(u(),T(l,{key:0,size:"small",type:"link",loading:X.value===f.address,onClick:rt=>ve(f.address)},{default:s(()=>[v(i(o(e)("wallet.wallets.setDefault")),1)]),_:1},8,["loading","onClick"]))],64)):k("",!0)]),emptyText:s(()=>[a(te,{description:o(e)("wallet.wallets.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),a(se,{open:N.value,"onUpdate:open":t[2]||(t[2]=r=>N.value=r),title:o(e)("wallet.wallets.createTitle"),"confirm-loading":G.value,onOk:we,"ok-text":o(e)("wallet.wallets.createOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[a(le,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:s(()=>[a(C,{label:o(e)("wallet.wallets.nameLabel"),required:""},{default:s(()=>[a(U,{value:F.value,"onUpdate:value":t[1]||(t[1]=r=>F.value=r),placeholder:o(e)("wallet.wallets.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),a(oe,{key:"assets"},{tab:s(()=>[a(o(E)),v(" "+i(o(e)("wallet.tabs.assets")),1)]),default:s(()=>[a(W,{style:{"margin-bottom":"16px"}},{default:s(()=>[a(l,{type:"primary",loading:P.value,onClick:R},{icon:s(()=>[a(o(V))]),default:s(()=>[v(" "+i(o(e)("wallet.assets.refreshAssets")),1)]),_:1},8,["loading"]),a(l,{onClick:t[3]||(t[3]=r=>q.value=!0)},{icon:s(()=>[a(o(de))]),default:s(()=>[v(" "+i(o(e)("wallet.assets.registerButton")),1)]),_:1})]),_:1}),P.value?(u(),g("div",He,[a(ee,{size:"large"})])):(u(),T(ae,{key:1,columns:_e.value,"data-source":z.value,pagination:{pageSize:20,showTotal:r=>o(e)("wallet.totals.rows",{count:r})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"wallet-row"},{bodyCell:s(({column:r,record:f})=>[r.key==="name"?(u(),g("span",Ke,i(f.name),1)):k("",!0),r.key==="type"?(u(),T(K,{key:1,color:ge(f.type)},{default:s(()=>[v(i(f.type),1)]),_:2},1032,["color"])):k("",!0),r.key==="description"?(u(),g("span",Ve,i(f.description||"-"),1)):k("",!0),r.key==="address"?(u(),g("span",Ee,i(f.address||"-"),1)):k("",!0)]),emptyText:s(()=>[a(te,{description:o(e)("wallet.assets.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),a(se,{open:q.value,"onUpdate:open":t[7]||(t[7]=r=>q.value=r),title:o(e)("wallet.assets.registerTitle"),"confirm-loading":Y.value,onOk:ke,"ok-text":o(e)("wallet.assets.registerOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[a(le,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:s(()=>[a(C,{label:o(e)("wallet.assets.nameLabel"),required:""},{default:s(()=>[a(U,{value:b.name,"onUpdate:value":t[4]||(t[4]=r=>b.name=r),placeholder:o(e)("wallet.assets.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(C,{label:o(e)("wallet.assets.typeLabel"),required:""},{default:s(()=>[a(Te,{value:b.type,"onUpdate:value":t[5]||(t[5]=r=>b.type=r),placeholder:o(e)("wallet.assets.typePlaceholder")},{default:s(()=>[a(ne,{value:"token"},{default:s(()=>[...t[13]||(t[13]=[v("Token",-1)])]),_:1}),a(ne,{value:"nft"},{default:s(()=>[...t[14]||(t[14]=[v("NFT",-1)])]),_:1}),a(ne,{value:"data"},{default:s(()=>[...t[15]||(t[15]=[v("Data",-1)])]),_:1})]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),a(C,{label:o(e)("wallet.assets.descLabel")},{default:s(()=>[a(U,{value:b.description,"onUpdate:value":t[6]||(t[6]=r=>b.description=r),placeholder:o(e)("wallet.assets.descPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),a(oe,{key:"transfer"},{tab:s(()=>[a(o(ue)),v(" "+i(o(e)("wallet.tabs.transfer")),1)]),default:s(()=>[a(H,{gutter:[24,24]},{default:s(()=>[a(p,{xs:24,md:12},{default:s(()=>[a(d,{title:o(e)("wallet.transfer.formCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(le,{"label-col":{span:6},"wrapper-col":{span:18}},{default:s(()=>[a(C,{label:o(e)("wallet.transfer.assetIdLabel"),required:""},{default:s(()=>[a(U,{value:y.assetId,"onUpdate:value":t[8]||(t[8]=r=>y.assetId=r),placeholder:o(e)("wallet.transfer.assetIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(C,{label:o(e)("wallet.transfer.toAddressLabel"),required:""},{default:s(()=>[a(U,{value:y.toAddress,"onUpdate:value":t[9]||(t[9]=r=>y.toAddress=r),placeholder:o(e)("wallet.transfer.toAddressPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(C,{label:o(e)("wallet.transfer.amountLabel"),required:""},{default:s(()=>[a(Ie,{value:y.amount,"onUpdate:value":t[10]||(t[10]=r=>y.amount=r),min:0,step:.01,placeholder:o(e)("wallet.transfer.amountPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(C,{"wrapper-col":{offset:6,span:18}},{default:s(()=>[a(l,{type:"primary",loading:j.value,disabled:!y.assetId.trim()||!y.toAddress.trim()||!y.amount,onClick:xe},{icon:s(()=>[a(o(ue))]),default:s(()=>[v(" "+i(o(e)("wallet.transfer.submitButton")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),x.value?(u(),g("div",Je,[a(K,{color:x.value.success?"green":"red"},{default:s(()=>[v(i(x.value.success?o(e)("wallet.transfer.successTag"):o(e)("wallet.transfer.failureTag")),1)]),_:1},8,["color"]),h("pre",Qe,i(x.value.output),1)])):k("",!0)]),_:1},8,["title"])]),_:1}),a(p,{xs:24,md:12},{default:s(()=>[a(d,{title:o(e)("wallet.transfer.historyCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:s(()=>[a(l,{size:"small",loading:B.value,onClick:M},{icon:s(()=>[a(o(V))]),_:1},8,["loading"])]),default:s(()=>[B.value?(u(),g("div",Ze,[a(ee)])):(u(),T(ae,{key:1,columns:he.value,"data-source":L.value,pagination:{pageSize:10,showTotal:r=>o(e)("wallet.totals.rows",{count:r}),size:"small"},size:"small","row-class-name":()=>"wallet-row"},{bodyCell:s(({column:r,record:f})=>[r.key==="time"?(u(),g("span",Ge,i(f.time),1)):k("",!0),r.key==="type"?(u(),T(K,{key:1,color:f.type==="send"?"orange":"green"},{default:s(()=>[v(i(f.type),1)]),_:2},1032,["color"])):k("",!0),r.key==="amount"?(u(),g("span",Xe,i(f.amount),1)):k("",!0),r.key==="to"?(u(),g("span",Ye,i(f.to),1)):k("",!0)]),emptyText:s(()=>[a(te,{description:o(e)("wallet.transfer.historyEmpty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"]))]),_:1},8,["title"])]),_:1})]),_:1}),a(se,{open:D.value,"onUpdate:open":t[11]||(t[11]=r=>D.value=r),title:o(e)("wallet.transfer.confirmTitle"),"confirm-loading":j.value,onOk:Ce,"ok-text":o(e)("wallet.transfer.confirmOk"),"cancel-text":o(e)("common.cancel"),"ok-type":"primary"},{default:s(()=>[h("div",et,[h("p",tt,i(o(e)("wallet.transfer.confirmIntro")),1),a(ze,{column:1,bordered:"",size:"small",style:{"margin-top":"12px"}},{default:s(()=>[a(re,{label:o(e)("wallet.transfer.assetIdLabel")},{default:s(()=>[h("span",at,i(y.assetId),1)]),_:1},8,["label"]),a(re,{label:o(e)("wallet.transfer.toAddressLabel")},{default:s(()=>[h("span",lt,i(y.toAddress),1)]),_:1},8,["label"]),a(re,{label:o(e)("wallet.transfer.amountLabel")},{default:s(()=>[h("span",st,i(y.amount),1)]),_:1},8,["label"])]),_:1})])]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}}},ct=Le(ot,[["__scopeId","data-v-4ac0c1f5"]]);export{ct as default};
1
+ import{_ as Le,b as Oe,u as Fe,d as _}from"./index-19d37fVJ.js";import{R as V,a2 as E,_ as Se,ar as de,ak as ue}from"./icons-BFHq5fEF.js";import{o as We,M as g,R as h,P as i,u as o,c as a,N as s,r as w,K as m,L as u,O as v,Q as T,S as k,F as Ue,f as J,a as ce}from"./vendor-M5lGV-wr.js";const $e={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ne={class:"page-title"},Pe={class:"page-sub"},Re={key:0,style:{"text-align":"center",padding:"60px"}},qe={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Be={key:1,style:{color:"var(--text-primary)"}},je={key:3,style:{color:"#52c41a","font-family":"monospace"}},Me={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},He={key:0,style:{"text-align":"center",padding:"60px"}},Ke={key:0,style:{color:"#e0e0e0"}},Ve={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Ee={key:3,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"12px"}},Je={key:0,style:{"margin-top":"8px"}},Qe={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px","margin-top":"8px",background:"var(--bg-base)",padding:"10px","border-radius":"6px",border:"1px solid var(--border-color)"}},Ge={key:0,style:{"text-align":"center",padding:"30px"}},Xe={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},Ye={key:2,style:{color:"#e0e0e0","font-family":"monospace"}},Ze={key:3,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},et={style:{"margin-top":"16px"}},tt={style:{color:"var(--text-primary)"}},at={style:{"font-family":"monospace",color:"#ccc"}},lt={style:{"font-family":"monospace",color:"#ccc"}},st={style:{"font-family":"monospace",color:"#52c41a"}},ot={__name:"Wallet",setup(nt){const{t:e}=Oe(),A=Fe(),O=w("wallets"),Q=w(!1);function G(n){try{return JSON.parse(n)}catch{return null}}async function pe(){Q.value=!0;try{O.value==="wallets"?await S():O.value==="assets"?await q():O.value==="transfer"&&await M()}finally{Q.value=!1}}function me(n){n==="assets"&&z.value.length===0&&q(),n==="transfer"&&L.value.length===0&&M()}const $=w(!1),X=w(!1),Y=w(""),I=w([]),N=w(!1),F=w(""),fe=J(()=>[{title:e("wallet.walletColumns.address"),key:"address",dataIndex:"address",ellipsis:!0},{title:e("wallet.walletColumns.name"),key:"name",dataIndex:"name",width:"150px"},{title:e("wallet.walletColumns.isDefault"),key:"isDefault",width:"80px"},{title:e("wallet.walletColumns.balance"),key:"balance",dataIndex:"balance",width:"120px"},{title:e("wallet.walletColumns.action"),key:"action",width:"100px"}]),ie=J(()=>{const n=I.value.find(l=>l.isDefault);if(!n||!n.address)return e("wallet.stats.defaultUnset");const t=n.address;return t.length>16?t.slice(0,8)+"..."+t.slice(-6):t});async function S(){$.value=!0;try{const{output:n}=await A.execute("wallet list --json",15e3),t=G(n);t&&Array.isArray(t)?I.value=t.map((l,c)=>({key:l.address||l.id||c,address:l.address||l.id||"-",name:l.name||l.label||"-",isDefault:l.isDefault||l.default||!1,balance:l.balance??"-"})):t&&t.wallets&&Array.isArray(t.wallets)?I.value=t.wallets.map((l,c)=>({key:l.address||l.id||c,address:l.address||l.id||"-",name:l.name||l.label||"-",isDefault:l.isDefault||l.default||!1,balance:l.balance??"-"})):I.value=ye(n)}catch(n){_.error(e("wallet.messages.loadWalletsFailed",{err:n.message}))}finally{$.value=!1}}function ye(n){const t=[],l=n.split(`
2
+ `);for(const c of l){const d=c.trim();if(!d||d.startsWith("─")||d.match(/^\d+ wallet/i))continue;const p=d.match(/(0x[a-fA-F0-9]{8,})/);if(p){const H=/default|默认|\*/.test(d),W=d.match(/name[:\s]+(\S+)/i);t.push({key:p[1],address:p[1],name:W?W[1]:"-",isDefault:H,balance:"-"})}}return t}async function we(){if(!F.value.trim()){_.warning(e("wallet.messages.walletNameRequired"));return}X.value=!0;try{const{output:n}=await A.execute(`wallet create --name "${F.value.trim()}" --json`,2e4);n.includes("error")||n.includes("失败")?_.error(e("wallet.messages.walletCreateFailed",{err:n.slice(0,120)})):(_.success(e("wallet.messages.walletCreateOk")),N.value=!1,F.value="",await S())}catch(n){_.error(e("wallet.messages.walletCreateFailed",{err:n.message}))}finally{X.value=!1}}async function ve(n){Y.value=n;try{const{output:t}=await A.execute(`wallet set-default ${n}`,15e3);t.includes("error")||t.includes("失败")?_.error(e("wallet.messages.setDefaultFailed",{err:t.slice(0,120)})):(_.success(e("wallet.messages.setDefaultOk")),await S())}catch(t){_.error(e("wallet.messages.setDefaultFailed",{err:t.message}))}finally{Y.value=""}}const P=w(!1),Z=w(!1),z=w([]),R=w(!1),b=ce({name:"",type:"token",description:""}),_e=J(()=>[{title:e("wallet.assetColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:e("wallet.assetColumns.type"),key:"type",dataIndex:"type",width:"100px"},{title:e("wallet.assetColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:e("wallet.assetColumns.address"),key:"address",dataIndex:"address",ellipsis:!0}]);function ge(n){return{token:"blue",nft:"purple",data:"cyan"}[(n||"").toLowerCase()]||"default"}async function q(){P.value=!0;try{const{output:n}=await A.execute("wallet assets --json",15e3),t=G(n);t&&Array.isArray(t)?z.value=t.map((l,c)=>({key:l.id||l.address||c,name:l.name||"-",type:l.type||"-",description:l.description||"",address:l.address||l.id||"-"})):t&&t.assets&&Array.isArray(t.assets)?z.value=t.assets.map((l,c)=>({key:l.id||l.address||c,name:l.name||"-",type:l.type||"-",description:l.description||"",address:l.address||l.id||"-"})):z.value=be(n)}catch(n){_.error(e("wallet.messages.loadAssetsFailed",{err:n.message}))}finally{P.value=!1}}function be(n){const t=[],l=n.split(`
3
+ `);for(const c of l){const d=c.trim();if(!d||d.startsWith("─")||d.match(/^\d+ asset/i))continue;const p=d.split(/\s*[|│]\s*/);p.length>=2&&t.push({key:t.length,name:p[0]||"-",type:p[1]||"-",description:p[2]||"",address:p[3]||"-"})}return t}async function ke(){if(!b.name.trim()){_.warning(e("wallet.messages.assetNameRequired"));return}Z.value=!0;try{let n=`wallet asset "${b.name.trim()}" --type ${b.type}`;b.description.trim()&&(n+=` --description "${b.description.trim().replace(/"/g,'\\"')}"`),n+=" --json";const{output:t}=await A.execute(n,2e4);t.includes("error")||t.includes("失败")?_.error(e("wallet.messages.assetRegisterFailed",{err:t.slice(0,120)})):(_.success(e("wallet.messages.assetRegisterOk")),R.value=!1,b.name="",b.type="token",b.description="",await q())}catch(n){_.error(e("wallet.messages.assetRegisterFailed",{err:n.message}))}finally{Z.value=!1}}const B=w(!1),j=w(!1),D=w(!1),x=w(null),L=w([]),y=ce({assetId:"",toAddress:"",amount:null}),he=J(()=>[{title:e("wallet.historyColumns.time"),key:"time",dataIndex:"time",width:"150px"},{title:e("wallet.historyColumns.type"),key:"type",dataIndex:"type",width:"80px"},{title:e("wallet.historyColumns.amount"),key:"amount",dataIndex:"amount",width:"100px"},{title:e("wallet.historyColumns.to"),key:"to",dataIndex:"to",ellipsis:!0}]);function xe(){if(!y.assetId.trim()||!y.toAddress.trim()||!y.amount){_.warning(e("wallet.messages.transferIncomplete"));return}D.value=!0}async function Ce(){B.value=!0,x.value=null;try{const n=`wallet transfer ${y.assetId.trim()} ${y.toAddress.trim()} --amount ${y.amount}`,{output:t,exitCode:l}=await A.execute(n,3e4);x.value={success:l===0&&!t.includes("error")&&!t.includes("失败"),output:t||e("wallet.messages.transferDefault")},x.value.success?(_.success(e("wallet.messages.transferOk")),D.value=!1,await M()):D.value=!1}catch(n){x.value={success:!1,output:e("wallet.messages.transferFailed",{err:n.message})},D.value=!1}finally{B.value=!1}}async function M(){j.value=!0;try{const{output:n}=await A.execute("wallet history --limit 20 --json",15e3),t=G(n);t&&Array.isArray(t)?L.value=t.map((l,c)=>({key:l.id||l.hash||c,time:l.time||l.timestamp||l.createdAt||"-",type:l.type||l.direction||"-",amount:l.amount??"-",to:l.to||l.recipient||"-"})):t&&t.history&&Array.isArray(t.history)?L.value=t.history.map((l,c)=>({key:l.id||l.hash||c,time:l.time||l.timestamp||l.createdAt||"-",type:l.type||l.direction||"-",amount:l.amount??"-",to:l.to||l.recipient||"-"})):L.value=Ae(n)}catch(n){_.error(e("wallet.messages.loadHistoryFailed",{err:n.message}))}finally{j.value=!1}}function Ae(n){const t=[],l=n.split(`
4
+ `);for(const c of l){const d=c.trim();if(!d||d.startsWith("─")||d.match(/^\d+ transaction/i))continue;const p=d.split(/\s*[|│]\s*/);p.length>=3&&t.push({key:t.length,time:p[0]||"-",type:p[1]||"-",amount:p[2]||"-",to:p[3]||"-"})}return t}return We(()=>{S()}),(n,t)=>{const l=m("a-button"),c=m("a-statistic"),d=m("a-card"),p=m("a-col"),H=m("a-row"),W=m("a-space"),ee=m("a-spin"),K=m("a-tag"),te=m("a-empty"),ae=m("a-table"),U=m("a-input"),C=m("a-form-item"),le=m("a-form"),se=m("a-modal"),oe=m("a-tab-pane"),ne=m("a-select-option"),Te=m("a-select"),Ie=m("a-input-number"),re=m("a-descriptions-item"),ze=m("a-descriptions"),De=m("a-tabs");return u(),g("div",null,[h("div",$e,[h("div",null,[h("h2",Ne,i(o(e)("wallet.title")),1),h("p",Pe,i(o(e)("wallet.subtitle")),1)]),a(l,{type:"primary",ghost:"",loading:Q.value,onClick:pe},{icon:s(()=>[a(o(V))]),default:s(()=>[v(" "+i(o(e)("wallet.refresh")),1)]),_:1},8,["loading"])]),a(H,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[a(p,{xs:24,sm:12,lg:6},{default:s(()=>[a(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(c,{title:o(e)("wallet.stats.walletCount"),value:I.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:s(()=>[a(o(E))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:s(()=>[a(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(c,{title:o(e)("wallet.stats.assetCount"),value:z.value.length,"value-style":{color:"#52c41a",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:s(()=>[a(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(c,{title:o(e)("wallet.stats.defaultWallet"),value:ie.value,"value-style":{color:ie.value!==o(e)("wallet.stats.defaultUnset")?"#faad14":"#888",fontSize:"14px",fontFamily:"monospace"}},{prefix:s(()=>[a(o(E))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(p,{xs:24,sm:12,lg:6},{default:s(()=>[a(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(c,{title:o(e)("wallet.stats.totalTx"),value:L.value.length,"value-style":{color:"#ff4d4f",fontSize:"20px"}},{prefix:s(()=>[a(o(Se))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),a(De,{activeKey:O.value,"onUpdate:activeKey":t[12]||(t[12]=r=>O.value=r),type:"card",onChange:me},{default:s(()=>[a(oe,{key:"wallets"},{tab:s(()=>[a(o(E)),v(" "+i(o(e)("wallet.tabs.wallets")),1)]),default:s(()=>[a(W,{style:{"margin-bottom":"16px"}},{default:s(()=>[a(l,{type:"primary",loading:$.value,onClick:S},{icon:s(()=>[a(o(V))]),default:s(()=>[v(" "+i(o(e)("wallet.wallets.refreshList")),1)]),_:1},8,["loading"]),a(l,{onClick:t[0]||(t[0]=r=>N.value=!0)},{icon:s(()=>[a(o(de))]),default:s(()=>[v(" "+i(o(e)("wallet.wallets.createButton")),1)]),_:1})]),_:1}),$.value?(u(),g("div",Re,[a(ee,{size:"large"})])):(u(),T(ae,{key:1,columns:fe.value,"data-source":I.value,pagination:{pageSize:20,showTotal:r=>o(e)("wallet.totals.rows",{count:r})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"wallet-row"},{bodyCell:s(({column:r,record:f})=>[r.key==="address"?(u(),g("span",qe,i(f.address),1)):k("",!0),r.key==="name"?(u(),g("span",Be,i(f.name||"-"),1)):k("",!0),r.key==="isDefault"?(u(),T(K,{key:2,color:f.isDefault?"green":"default"},{default:s(()=>[v(i(f.isDefault?o(e)("wallet.wallets.default"):"-"),1)]),_:2},1032,["color"])):k("",!0),r.key==="balance"?(u(),g("span",je,i(f.balance??"-"),1)):k("",!0),r.key==="action"?(u(),g(Ue,{key:4},[f.isDefault?(u(),g("span",Me,i(o(e)("wallet.wallets.currentDefault")),1)):(u(),T(l,{key:0,size:"small",type:"link",loading:Y.value===f.address,onClick:rt=>ve(f.address)},{default:s(()=>[v(i(o(e)("wallet.wallets.setDefault")),1)]),_:1},8,["loading","onClick"]))],64)):k("",!0)]),emptyText:s(()=>[a(te,{description:o(e)("wallet.wallets.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),a(se,{open:N.value,"onUpdate:open":t[2]||(t[2]=r=>N.value=r),title:o(e)("wallet.wallets.createTitle"),"confirm-loading":X.value,onOk:we,"ok-text":o(e)("wallet.wallets.createOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[a(le,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:s(()=>[a(C,{label:o(e)("wallet.wallets.nameLabel"),required:""},{default:s(()=>[a(U,{value:F.value,"onUpdate:value":t[1]||(t[1]=r=>F.value=r),placeholder:o(e)("wallet.wallets.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),a(oe,{key:"assets"},{tab:s(()=>[a(o(E)),v(" "+i(o(e)("wallet.tabs.assets")),1)]),default:s(()=>[a(W,{style:{"margin-bottom":"16px"}},{default:s(()=>[a(l,{type:"primary",loading:P.value,onClick:q},{icon:s(()=>[a(o(V))]),default:s(()=>[v(" "+i(o(e)("wallet.assets.refreshAssets")),1)]),_:1},8,["loading"]),a(l,{onClick:t[3]||(t[3]=r=>R.value=!0)},{icon:s(()=>[a(o(de))]),default:s(()=>[v(" "+i(o(e)("wallet.assets.registerButton")),1)]),_:1})]),_:1}),P.value?(u(),g("div",He,[a(ee,{size:"large"})])):(u(),T(ae,{key:1,columns:_e.value,"data-source":z.value,pagination:{pageSize:20,showTotal:r=>o(e)("wallet.totals.rows",{count:r})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"wallet-row"},{bodyCell:s(({column:r,record:f})=>[r.key==="name"?(u(),g("span",Ke,i(f.name),1)):k("",!0),r.key==="type"?(u(),T(K,{key:1,color:ge(f.type)},{default:s(()=>[v(i(f.type),1)]),_:2},1032,["color"])):k("",!0),r.key==="description"?(u(),g("span",Ve,i(f.description||"-"),1)):k("",!0),r.key==="address"?(u(),g("span",Ee,i(f.address||"-"),1)):k("",!0)]),emptyText:s(()=>[a(te,{description:o(e)("wallet.assets.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),a(se,{open:R.value,"onUpdate:open":t[7]||(t[7]=r=>R.value=r),title:o(e)("wallet.assets.registerTitle"),"confirm-loading":Z.value,onOk:ke,"ok-text":o(e)("wallet.assets.registerOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[a(le,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:s(()=>[a(C,{label:o(e)("wallet.assets.nameLabel"),required:""},{default:s(()=>[a(U,{value:b.name,"onUpdate:value":t[4]||(t[4]=r=>b.name=r),placeholder:o(e)("wallet.assets.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(C,{label:o(e)("wallet.assets.typeLabel"),required:""},{default:s(()=>[a(Te,{value:b.type,"onUpdate:value":t[5]||(t[5]=r=>b.type=r),placeholder:o(e)("wallet.assets.typePlaceholder")},{default:s(()=>[a(ne,{value:"token"},{default:s(()=>[...t[13]||(t[13]=[v("Token",-1)])]),_:1}),a(ne,{value:"nft"},{default:s(()=>[...t[14]||(t[14]=[v("NFT",-1)])]),_:1}),a(ne,{value:"data"},{default:s(()=>[...t[15]||(t[15]=[v("Data",-1)])]),_:1})]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),a(C,{label:o(e)("wallet.assets.descLabel")},{default:s(()=>[a(U,{value:b.description,"onUpdate:value":t[6]||(t[6]=r=>b.description=r),placeholder:o(e)("wallet.assets.descPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),a(oe,{key:"transfer"},{tab:s(()=>[a(o(ue)),v(" "+i(o(e)("wallet.tabs.transfer")),1)]),default:s(()=>[a(H,{gutter:[24,24]},{default:s(()=>[a(p,{xs:24,md:12},{default:s(()=>[a(d,{title:o(e)("wallet.transfer.formCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[a(le,{"label-col":{span:6},"wrapper-col":{span:18}},{default:s(()=>[a(C,{label:o(e)("wallet.transfer.assetIdLabel"),required:""},{default:s(()=>[a(U,{value:y.assetId,"onUpdate:value":t[8]||(t[8]=r=>y.assetId=r),placeholder:o(e)("wallet.transfer.assetIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(C,{label:o(e)("wallet.transfer.toAddressLabel"),required:""},{default:s(()=>[a(U,{value:y.toAddress,"onUpdate:value":t[9]||(t[9]=r=>y.toAddress=r),placeholder:o(e)("wallet.transfer.toAddressPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(C,{label:o(e)("wallet.transfer.amountLabel"),required:""},{default:s(()=>[a(Ie,{value:y.amount,"onUpdate:value":t[10]||(t[10]=r=>y.amount=r),min:0,step:.01,placeholder:o(e)("wallet.transfer.amountPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(C,{"wrapper-col":{offset:6,span:18}},{default:s(()=>[a(l,{type:"primary",loading:B.value,disabled:!y.assetId.trim()||!y.toAddress.trim()||!y.amount,onClick:xe},{icon:s(()=>[a(o(ue))]),default:s(()=>[v(" "+i(o(e)("wallet.transfer.submitButton")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),x.value?(u(),g("div",Je,[a(K,{color:x.value.success?"green":"red"},{default:s(()=>[v(i(x.value.success?o(e)("wallet.transfer.successTag"):o(e)("wallet.transfer.failureTag")),1)]),_:1},8,["color"]),h("pre",Qe,i(x.value.output),1)])):k("",!0)]),_:1},8,["title"])]),_:1}),a(p,{xs:24,md:12},{default:s(()=>[a(d,{title:o(e)("wallet.transfer.historyCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:s(()=>[a(l,{size:"small",loading:j.value,onClick:M},{icon:s(()=>[a(o(V))]),_:1},8,["loading"])]),default:s(()=>[j.value?(u(),g("div",Ge,[a(ee)])):(u(),T(ae,{key:1,columns:he.value,"data-source":L.value,pagination:{pageSize:10,showTotal:r=>o(e)("wallet.totals.rows",{count:r}),size:"small"},size:"small","row-class-name":()=>"wallet-row"},{bodyCell:s(({column:r,record:f})=>[r.key==="time"?(u(),g("span",Xe,i(f.time),1)):k("",!0),r.key==="type"?(u(),T(K,{key:1,color:f.type==="send"?"orange":"green"},{default:s(()=>[v(i(f.type),1)]),_:2},1032,["color"])):k("",!0),r.key==="amount"?(u(),g("span",Ye,i(f.amount),1)):k("",!0),r.key==="to"?(u(),g("span",Ze,i(f.to),1)):k("",!0)]),emptyText:s(()=>[a(te,{description:o(e)("wallet.transfer.historyEmpty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"]))]),_:1},8,["title"])]),_:1})]),_:1}),a(se,{open:D.value,"onUpdate:open":t[11]||(t[11]=r=>D.value=r),title:o(e)("wallet.transfer.confirmTitle"),"confirm-loading":B.value,onOk:Ce,"ok-text":o(e)("wallet.transfer.confirmOk"),"cancel-text":o(e)("common.cancel"),"ok-type":"primary"},{default:s(()=>[h("div",et,[h("p",tt,i(o(e)("wallet.transfer.confirmIntro")),1),a(ze,{column:1,bordered:"",size:"small",style:{"margin-top":"12px"}},{default:s(()=>[a(re,{label:o(e)("wallet.transfer.assetIdLabel")},{default:s(()=>[h("span",at,i(y.assetId),1)]),_:1},8,["label"]),a(re,{label:o(e)("wallet.transfer.toAddressLabel")},{default:s(()=>[h("span",lt,i(y.toAddress),1)]),_:1},8,["label"]),a(re,{label:o(e)("wallet.transfer.amountLabel")},{default:s(()=>[h("span",st,i(y.amount),1)]),_:1},8,["label"])]),_:1})])]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}}},ct=Le(ot,[["__scopeId","data-v-4ac0c1f5"]]);export{ct as default};
@@ -1,5 +1,5 @@
1
- import{_ as Oe,b as ze,u as Te,d}from"./index-BAy0ks7N.js";import{R as le,aq as Fe,aK as Pe,K as se,H as Ne,U as ne}from"./icons-DY9VpXfa.js";import{o as Re,M as h,R as g,P as i,u as a,c as s,N as n,r as p,K as u,L as c,O as f,Q as L,S as U,F as j,Y as oe,f as re}from"./vendor-M5lGV-wr.js";const $e={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Be={class:"page-title"},De={class:"page-sub"},je={key:0,style:{"text-align":"center",padding:"60px"}},qe=["title"],Ke={key:1,style:{color:"var(--text-primary)"}},Me={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},Ee={key:4,style:{color:"var(--text-secondary)","font-size":"12px"}},We={key:0,style:{"text-align":"center",padding:"60px"}},Ve={style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},He={style:{color:"var(--text-secondary)","font-size":"12px"}},Je={style:{"margin-top":"16px"}},Qe={key:0,style:{"text-align":"center",padding:"60px"}},Ye={style:{display:"flex","align-items":"center",gap:"16px","margin-bottom":"16px"}},Ze={style:{color:"var(--text-primary)","font-size":"14px"}},Ge={key:0,style:{"margin-top":"16px"}},Xe={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)"}},et={style:{color:"var(--text-secondary)","margin-bottom":"12px"}},tt={key:0,style:{"margin-top":"16px"}},at={style:{background:"var(--bg-base)",padding:"16px","border-radius":"6px",border:"1px solid var(--border-color)"}},lt={__name:"WebAuthn",setup(st){const{t:e}=ze(),x=Te(),O=p("webauthn"),q=p(!1);async function ie(){q.value=!0;try{O.value==="webauthn"?await R():O.value==="sso"?await H():O.value==="2fa"&&await ee()}finally{q.value=!1}}function ue(l){l==="sso"&&!W.value&&H(),l==="2fa"&&!Q.value&&ee()}function z(l){try{return JSON.parse(l)}catch{return null}}function ce(l){return l?l.length<=16?l:l.slice(0,8)+"..."+l.slice(-8):"-"}const K=p(!1),M=p(!1),F=p([]),P=p(!1),N=p(""),de=re(()=>[{title:e("webauthn.credentialColumns.id"),key:"id",dataIndex:"id",width:"180px"},{title:e("webauthn.credentialColumns.name"),key:"name",dataIndex:"name",width:"160px"},{title:e("webauthn.credentialColumns.type"),key:"type",dataIndex:"type",width:"120px"},{title:e("webauthn.credentialColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"180px"},{title:e("webauthn.credentialColumns.lastUsed"),key:"lastUsed",dataIndex:"lastUsed",width:"180px"},{title:e("webauthn.credentialColumns.actions"),key:"actions",width:"100px",fixed:"right"}]);async function R(){K.value=!0;try{const{output:l}=await x.execute("webauthn list --json",15e3),t=z(l);t&&Array.isArray(t)?F.value=t.map((o,y)=>({key:o.id||y,id:o.id||"-",name:o.name||o.displayName||"-",type:o.type||"public-key",createdAt:o.createdAt||o.created||"-",lastUsed:o.lastUsed||o.lastAuthentication||"-"})):t&&t.credentials?F.value=t.credentials.map((o,y)=>({key:o.id||y,id:o.id||"-",name:o.name||o.displayName||"-",type:o.type||"public-key",createdAt:o.createdAt||o.created||"-",lastUsed:o.lastUsed||o.lastAuthentication||"-"})):F.value=pe(l)}catch(l){d.error(e("webauthn.messages.loadFailed",{err:l.message}))}finally{K.value=!1}}function pe(l){const t=[],o=l.split(`
2
- `);for(const y of o){const _=y.trim();if(!_||_.startsWith("─")||_.startsWith("No "))continue;const b=_.split(/\s*[|│]\s*/);b.length>=2&&t.push({key:t.length,id:b[0]||"-",name:b[1]||"-",type:b[2]||"public-key",createdAt:b[3]||"-",lastUsed:b[4]||"-"})}return t}async function be(){const l=N.value.trim();if(!l){d.warning(e("webauthn.messages.credNameRequired"));return}M.value=!0;try{const t=l.replace(/"/g,'\\"'),{output:o}=await x.execute(`webauthn register --name "${t}" --json`,3e4);o.includes("error")||o.includes("失败")?d.error(e("webauthn.messages.registerFailed",{err:o.slice(0,120)})):(d.success(e("webauthn.messages.registerOk")),P.value=!1,N.value="",await R())}catch(t){d.error(e("webauthn.messages.registerFailed",{err:t.message}))}finally{M.value=!1}}async function fe(l){try{const{output:t}=await x.execute(`webauthn delete "${l.id}"`,15e3);t.includes("error")||t.includes("失败")?d.error(e("webauthn.messages.deleteFailed",{err:t.slice(0,120)})):(d.success(e("webauthn.messages.deleteOk")),await R())}catch(t){d.error(e("webauthn.messages.deleteFailed",{err:t.message}))}}const E=p(!1),W=p(!1),V=p(!1),$=p(!1),v=p({provider:"",clientId:"",redirectUrl:"",enabled:!1}),m=p({provider:void 0,clientId:"",clientSecret:"",issuerUrl:""}),ve=re(()=>[{key:"provider",label:e("webauthn.sso.providerLabel"),value:v.value.provider||e("webauthn.sso.notConfigured"),color:v.value.provider?"#1677ff":"#999"},{key:"status",label:e("webauthn.sso.statusLabel"),value:v.value.enabled?e("webauthn.sso.enabled"):e("webauthn.sso.disabled"),color:v.value.enabled?"#52c41a":"#faad14"}]);async function H(){E.value=!0;try{const{output:l}=await x.execute("sso status --json",15e3),t=z(l);if(t)v.value={provider:t.provider||"",clientId:t.clientId||t.client_id||"",redirectUrl:t.redirectUrl||t.redirect_url||t.callbackUrl||"",enabled:t.enabled||t.active||!1};else{const o=l.split(`
3
- `);for(const y of o){const _=y.trim().match(/^(.+?)\s*[:=:]\s*(.+)$/);if(_){const b=_[1].toLowerCase(),A=_[2].trim();b.includes("provider")?v.value.provider=A:b.includes("client")&&b.includes("id")?v.value.clientId=A:b.includes("redirect")||b.includes("callback")?v.value.redirectUrl=A:(b.includes("status")||b.includes("enabled"))&&(v.value.enabled=/true|enabled|active|已启用/i.test(A))}}}W.value=!0}catch{v.value={provider:"",clientId:"",redirectUrl:"",enabled:!1},W.value=!0}finally{E.value=!1}}async function me(){if(!m.value.provider){d.warning(e("webauthn.messages.providerRequired"));return}if(!m.value.clientId.trim()){d.warning(e("webauthn.messages.clientIdRequired"));return}V.value=!0;try{const l=[`config set sso.provider ${m.value.provider}`,`config set sso.clientId ${m.value.clientId.trim()}`];m.value.clientSecret.trim()&&l.push(`config set sso.clientSecret ${m.value.clientSecret.trim()}`),m.value.issuerUrl.trim()&&l.push(`config set sso.issuerUrl ${m.value.issuerUrl.trim()}`);for(const t of l)await x.execute(t,1e4);d.success(e("webauthn.messages.ssoSaveOk")),$.value=!1,await H()}catch(l){d.error(e("webauthn.messages.ssoSaveFailed",{err:l.message}))}finally{V.value=!1}}const J=p(!1),Q=p(!1),k=p(!1),S=p(!1),I=p(""),Y=p(!1),C=p([]);async function ee(){J.value=!0;try{const{output:l}=await x.execute("auth 2fa status --json",15e3),t=z(l);t?k.value=t.enabled||t.active||!1:k.value=/enabled|已启用|active/i.test(l),Q.value=!0}catch{k.value=!1,Q.value=!0}finally{J.value=!1}}async function ye(){S.value=!0,I.value="";try{const{output:l}=await x.execute("auth 2fa enable --type totp --json",2e4);if(l.includes("error")||l.includes("失败"))d.error(e("webauthn.messages.totpEnableFailed",{err:l.slice(0,120)}));else{const t=z(l);if(t&&t.secret){const o=[e("webauthn.tfa.totpResultPrefix",{secret:t.secret}),e("webauthn.tfa.totpResultUrl",{url:t.otpAuthUrl||t.uri||""})];I.value=o.join(`
1
+ import{_ as Oe,b as ze,u as Te,d}from"./index-19d37fVJ.js";import{R as le,ar as Fe,aL as Pe,K as se,J as Ne,V as ne}from"./icons-BFHq5fEF.js";import{o as Re,M as h,R as g,P as i,u as a,c as s,N as n,r as p,K as u,L as c,O as f,Q as L,S as U,F as j,Y as oe,f as re}from"./vendor-M5lGV-wr.js";const $e={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Be={class:"page-title"},De={class:"page-sub"},je={key:0,style:{"text-align":"center",padding:"60px"}},qe=["title"],Ke={key:1,style:{color:"var(--text-primary)"}},Me={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},Ee={key:4,style:{color:"var(--text-secondary)","font-size":"12px"}},Ve={key:0,style:{"text-align":"center",padding:"60px"}},We={style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Je={style:{color:"var(--text-secondary)","font-size":"12px"}},He={style:{"margin-top":"16px"}},Qe={key:0,style:{"text-align":"center",padding:"60px"}},Ye={style:{display:"flex","align-items":"center",gap:"16px","margin-bottom":"16px"}},Ze={style:{color:"var(--text-primary)","font-size":"14px"}},Ge={key:0,style:{"margin-top":"16px"}},Xe={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)"}},et={style:{color:"var(--text-secondary)","margin-bottom":"12px"}},tt={key:0,style:{"margin-top":"16px"}},at={style:{background:"var(--bg-base)",padding:"16px","border-radius":"6px",border:"1px solid var(--border-color)"}},lt={__name:"WebAuthn",setup(st){const{t:e}=ze(),x=Te(),O=p("webauthn"),q=p(!1);async function ie(){q.value=!0;try{O.value==="webauthn"?await R():O.value==="sso"?await J():O.value==="2fa"&&await ee()}finally{q.value=!1}}function ue(l){l==="sso"&&!V.value&&J(),l==="2fa"&&!Q.value&&ee()}function z(l){try{return JSON.parse(l)}catch{return null}}function ce(l){return l?l.length<=16?l:l.slice(0,8)+"..."+l.slice(-8):"-"}const K=p(!1),M=p(!1),F=p([]),P=p(!1),N=p(""),de=re(()=>[{title:e("webauthn.credentialColumns.id"),key:"id",dataIndex:"id",width:"180px"},{title:e("webauthn.credentialColumns.name"),key:"name",dataIndex:"name",width:"160px"},{title:e("webauthn.credentialColumns.type"),key:"type",dataIndex:"type",width:"120px"},{title:e("webauthn.credentialColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"180px"},{title:e("webauthn.credentialColumns.lastUsed"),key:"lastUsed",dataIndex:"lastUsed",width:"180px"},{title:e("webauthn.credentialColumns.actions"),key:"actions",width:"100px",fixed:"right"}]);async function R(){K.value=!0;try{const{output:l}=await x.execute("webauthn list --json",15e3),t=z(l);t&&Array.isArray(t)?F.value=t.map((o,y)=>({key:o.id||y,id:o.id||"-",name:o.name||o.displayName||"-",type:o.type||"public-key",createdAt:o.createdAt||o.created||"-",lastUsed:o.lastUsed||o.lastAuthentication||"-"})):t&&t.credentials?F.value=t.credentials.map((o,y)=>({key:o.id||y,id:o.id||"-",name:o.name||o.displayName||"-",type:o.type||"public-key",createdAt:o.createdAt||o.created||"-",lastUsed:o.lastUsed||o.lastAuthentication||"-"})):F.value=pe(l)}catch(l){d.error(e("webauthn.messages.loadFailed",{err:l.message}))}finally{K.value=!1}}function pe(l){const t=[],o=l.split(`
2
+ `);for(const y of o){const _=y.trim();if(!_||_.startsWith("─")||_.startsWith("No "))continue;const b=_.split(/\s*[|│]\s*/);b.length>=2&&t.push({key:t.length,id:b[0]||"-",name:b[1]||"-",type:b[2]||"public-key",createdAt:b[3]||"-",lastUsed:b[4]||"-"})}return t}async function be(){const l=N.value.trim();if(!l){d.warning(e("webauthn.messages.credNameRequired"));return}M.value=!0;try{const t=l.replace(/"/g,'\\"'),{output:o}=await x.execute(`webauthn register --name "${t}" --json`,3e4);o.includes("error")||o.includes("失败")?d.error(e("webauthn.messages.registerFailed",{err:o.slice(0,120)})):(d.success(e("webauthn.messages.registerOk")),P.value=!1,N.value="",await R())}catch(t){d.error(e("webauthn.messages.registerFailed",{err:t.message}))}finally{M.value=!1}}async function fe(l){try{const{output:t}=await x.execute(`webauthn delete "${l.id}"`,15e3);t.includes("error")||t.includes("失败")?d.error(e("webauthn.messages.deleteFailed",{err:t.slice(0,120)})):(d.success(e("webauthn.messages.deleteOk")),await R())}catch(t){d.error(e("webauthn.messages.deleteFailed",{err:t.message}))}}const E=p(!1),V=p(!1),W=p(!1),$=p(!1),v=p({provider:"",clientId:"",redirectUrl:"",enabled:!1}),m=p({provider:void 0,clientId:"",clientSecret:"",issuerUrl:""}),ve=re(()=>[{key:"provider",label:e("webauthn.sso.providerLabel"),value:v.value.provider||e("webauthn.sso.notConfigured"),color:v.value.provider?"#1677ff":"#999"},{key:"status",label:e("webauthn.sso.statusLabel"),value:v.value.enabled?e("webauthn.sso.enabled"):e("webauthn.sso.disabled"),color:v.value.enabled?"#52c41a":"#faad14"}]);async function J(){E.value=!0;try{const{output:l}=await x.execute("sso status --json",15e3),t=z(l);if(t)v.value={provider:t.provider||"",clientId:t.clientId||t.client_id||"",redirectUrl:t.redirectUrl||t.redirect_url||t.callbackUrl||"",enabled:t.enabled||t.active||!1};else{const o=l.split(`
3
+ `);for(const y of o){const _=y.trim().match(/^(.+?)\s*[:=:]\s*(.+)$/);if(_){const b=_[1].toLowerCase(),A=_[2].trim();b.includes("provider")?v.value.provider=A:b.includes("client")&&b.includes("id")?v.value.clientId=A:b.includes("redirect")||b.includes("callback")?v.value.redirectUrl=A:(b.includes("status")||b.includes("enabled"))&&(v.value.enabled=/true|enabled|active|已启用/i.test(A))}}}V.value=!0}catch{v.value={provider:"",clientId:"",redirectUrl:"",enabled:!1},V.value=!0}finally{E.value=!1}}async function me(){if(!m.value.provider){d.warning(e("webauthn.messages.providerRequired"));return}if(!m.value.clientId.trim()){d.warning(e("webauthn.messages.clientIdRequired"));return}W.value=!0;try{const l=[`config set sso.provider ${m.value.provider}`,`config set sso.clientId ${m.value.clientId.trim()}`];m.value.clientSecret.trim()&&l.push(`config set sso.clientSecret ${m.value.clientSecret.trim()}`),m.value.issuerUrl.trim()&&l.push(`config set sso.issuerUrl ${m.value.issuerUrl.trim()}`);for(const t of l)await x.execute(t,1e4);d.success(e("webauthn.messages.ssoSaveOk")),$.value=!1,await J()}catch(l){d.error(e("webauthn.messages.ssoSaveFailed",{err:l.message}))}finally{W.value=!1}}const H=p(!1),Q=p(!1),k=p(!1),S=p(!1),I=p(""),Y=p(!1),C=p([]);async function ee(){H.value=!0;try{const{output:l}=await x.execute("auth 2fa status --json",15e3),t=z(l);t?k.value=t.enabled||t.active||!1:k.value=/enabled|已启用|active/i.test(l),Q.value=!0}catch{k.value=!1,Q.value=!0}finally{H.value=!1}}async function ye(){S.value=!0,I.value="";try{const{output:l}=await x.execute("auth 2fa enable --type totp --json",2e4);if(l.includes("error")||l.includes("失败"))d.error(e("webauthn.messages.totpEnableFailed",{err:l.slice(0,120)}));else{const t=z(l);if(t&&t.secret){const o=[e("webauthn.tfa.totpResultPrefix",{secret:t.secret}),e("webauthn.tfa.totpResultUrl",{url:t.otpAuthUrl||t.uri||""})];I.value=o.join(`
4
4
  `)}else I.value=l;k.value=!0,d.success(e("webauthn.messages.totpEnableOk"))}}catch(l){d.error(e("webauthn.messages.totpEnableFailed",{err:l.message}))}finally{S.value=!1}}async function he(){S.value=!0,I.value="";try{const{output:l}=await x.execute("auth 2fa disable",15e3);l.includes("error")||l.includes("失败")?d.error(e("webauthn.messages.totpDisableFailed",{err:l.slice(0,120)})):(k.value=!1,d.success(e("webauthn.messages.totpDisableOk")))}catch(l){d.error(e("webauthn.messages.totpDisableFailed",{err:l.message}))}finally{S.value=!1}}async function _e(){Y.value=!0,C.value=[];try{const{output:l}=await x.execute("auth 2fa recovery-codes --json",15e3),t=z(l);if(t&&Array.isArray(t.codes))C.value=t.codes;else if(t&&Array.isArray(t))C.value=t;else{const o=l.split(`
5
- `).map(y=>y.trim()).filter(y=>y&&/^[A-Za-z0-9-]{6,}$/.test(y));C.value=o.length>0?o:[l.trim()||e("webauthn.messages.codesUnable")]}C.value.length>0&&C.value[0]!==e("webauthn.messages.codesUnable")&&d.success(e("webauthn.messages.codesOk"))}catch(l){d.error(e("webauthn.messages.codesFailed",{err:l.message}))}finally{Y.value=!1}}return Re(()=>{R()}),(l,t)=>{const o=u("a-button"),y=u("a-space"),_=u("a-spin"),b=u("a-tag"),A=u("a-popconfirm"),ge=u("a-empty"),we=u("a-table"),Z=u("a-input"),T=u("a-form-item"),te=u("a-form"),ae=u("a-modal"),G=u("a-tab-pane"),xe=u("a-statistic"),B=u("a-card"),ke=u("a-col"),Ce=u("a-row"),D=u("a-descriptions-item"),Ue=u("a-descriptions"),X=u("a-select-option"),Ae=u("a-select"),Se=u("a-input-password"),Ie=u("a-alert"),Le=u("a-tabs");return c(),h("div",null,[g("div",$e,[g("div",null,[g("h2",Be,i(a(e)("webauthn.title")),1),g("p",De,i(a(e)("webauthn.subtitle")),1)]),s(o,{type:"primary",ghost:"",loading:q.value,onClick:ie},{icon:n(()=>[s(a(le))]),default:n(()=>[f(" "+i(a(e)("webauthn.refresh")),1)]),_:1},8,["loading"])]),s(Le,{activeKey:O.value,"onUpdate:activeKey":t[9]||(t[9]=r=>O.value=r),type:"card",onChange:ue},{default:n(()=>[s(G,{key:"webauthn"},{tab:n(()=>[s(a(se)),f(" "+i(a(e)("webauthn.tabs.webauthn")),1)]),default:n(()=>[s(y,{style:{"margin-bottom":"16px"}},{default:n(()=>[s(o,{type:"primary",onClick:t[0]||(t[0]=r=>P.value=!0)},{icon:n(()=>[s(a(Fe))]),default:n(()=>[f(" "+i(a(e)("webauthn.credentials.registerButton")),1)]),_:1})]),_:1}),K.value?(c(),h("div",je,[s(_,{size:"large"})])):(c(),L(we,{key:1,columns:de.value,"data-source":F.value,pagination:{pageSize:20,showTotal:r=>a(e)("webauthn.totals.rows",{count:r})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"auth-row"},{bodyCell:n(({column:r,record:w})=>[r.key==="id"?(c(),h("span",{key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"},title:w.id},i(ce(w.id)),9,qe)):U("",!0),r.key==="name"?(c(),h("span",Ke,i(w.name),1)):U("",!0),r.key==="type"?(c(),L(b,{key:2,color:"blue"},{default:n(()=>[f(i(w.type||"public-key"),1)]),_:2},1024)):U("",!0),r.key==="createdAt"?(c(),h("span",Me,i(w.createdAt||"-"),1)):U("",!0),r.key==="lastUsed"?(c(),h("span",Ee,i(w.lastUsed||"-"),1)):U("",!0),r.key==="actions"?(c(),L(A,{key:5,title:a(e)("webauthn.credentials.deleteConfirm"),"ok-text":a(e)("webauthn.credentials.deleteOk"),"cancel-text":a(e)("common.cancel"),onConfirm:nt=>fe(w)},{default:n(()=>[s(o,{type:"link",danger:"",size:"small"},{icon:n(()=>[s(a(Pe))]),default:n(()=>[f(" "+i(a(e)("webauthn.credentials.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):U("",!0)]),emptyText:n(()=>[s(ge,{description:a(e)("webauthn.credentials.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),s(ae,{open:P.value,"onUpdate:open":t[2]||(t[2]=r=>P.value=r),title:a(e)("webauthn.credentials.registerTitle"),"confirm-loading":M.value,onOk:be,"ok-text":a(e)("webauthn.credentials.registerOk"),"cancel-text":a(e)("common.cancel")},{default:n(()=>[s(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:n(()=>[s(T,{label:a(e)("webauthn.credentials.nameLabel"),required:""},{default:n(()=>[s(Z,{value:N.value,"onUpdate:value":t[1]||(t[1]=r=>N.value=r),placeholder:a(e)("webauthn.credentials.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),s(G,{key:"sso"},{tab:n(()=>[s(a(Ne)),f(" "+i(a(e)("webauthn.tabs.sso")),1)]),default:n(()=>[E.value?(c(),h("div",We,[s(_,{size:"large"})])):(c(),h(j,{key:1},[s(Ce,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[(c(!0),h(j,null,oe(ve.value,r=>(c(),L(ke,{xs:12,sm:6,key:r.key},{default:n(()=>[s(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:n(()=>[s(xe,{title:r.label,value:r.value,"value-style":{color:r.color,fontSize:"20px"}},null,8,["title","value","value-style"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),s(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},title:a(e)("webauthn.sso.currentTitle")},{default:n(()=>[s(Ue,{column:{xs:1,sm:2},bordered:"",size:"small",style:{background:"var(--bg-card)"}},{default:n(()=>[s(D,{label:a(e)("webauthn.sso.providerLabel")},{default:n(()=>[s(b,{color:v.value.provider?"blue":"default"},{default:n(()=>[f(i(v.value.provider||a(e)("webauthn.sso.notConfigured")),1)]),_:1},8,["color"])]),_:1},8,["label"]),s(D,{label:a(e)("webauthn.sso.clientIdLabel")},{default:n(()=>[g("span",Ve,i(v.value.clientId||"-"),1)]),_:1},8,["label"]),s(D,{label:a(e)("webauthn.sso.redirectUrlLabel")},{default:n(()=>[g("span",He,i(v.value.redirectUrl||"-"),1)]),_:1},8,["label"]),s(D,{label:a(e)("webauthn.sso.statusLabel")},{default:n(()=>[s(b,{color:v.value.enabled?"green":"default"},{default:n(()=>[f(i(v.value.enabled?a(e)("webauthn.sso.enabled"):a(e)("webauthn.sso.disabled")),1)]),_:1},8,["color"])]),_:1},8,["label"])]),_:1}),g("div",Je,[s(o,{type:"primary",onClick:t[3]||(t[3]=r=>$.value=!0)},{icon:n(()=>[s(a(se))]),default:n(()=>[f(" "+i(a(e)("webauthn.sso.configureButton")),1)]),_:1})])]),_:1},8,["title"])],64)),s(ae,{open:$.value,"onUpdate:open":t[8]||(t[8]=r=>$.value=r),title:a(e)("webauthn.sso.modalTitle"),"confirm-loading":V.value,onOk:me,"ok-text":a(e)("webauthn.sso.modalOk"),"cancel-text":a(e)("common.cancel"),width:"520px"},{default:n(()=>[s(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:n(()=>[s(T,{label:a(e)("webauthn.sso.providerLabel"),required:""},{default:n(()=>[s(Ae,{value:m.value.provider,"onUpdate:value":t[4]||(t[4]=r=>m.value.provider=r),placeholder:a(e)("webauthn.sso.providerPlaceholder")},{default:n(()=>[s(X,{value:"OIDC"},{default:n(()=>[...t[10]||(t[10]=[f("OIDC",-1)])]),_:1}),s(X,{value:"SAML"},{default:n(()=>[...t[11]||(t[11]=[f("SAML",-1)])]),_:1}),s(X,{value:"LDAP"},{default:n(()=>[...t[12]||(t[12]=[f("LDAP",-1)])]),_:1})]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(T,{label:a(e)("webauthn.sso.clientIdLabel"),required:""},{default:n(()=>[s(Z,{value:m.value.clientId,"onUpdate:value":t[5]||(t[5]=r=>m.value.clientId=r),placeholder:a(e)("webauthn.sso.clientIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(T,{label:a(e)("webauthn.sso.clientSecretLabel")},{default:n(()=>[s(Se,{value:m.value.clientSecret,"onUpdate:value":t[6]||(t[6]=r=>m.value.clientSecret=r),placeholder:a(e)("webauthn.sso.clientSecretPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(T,{label:a(e)("webauthn.sso.issuerLabel")},{default:n(()=>[s(Z,{value:m.value.issuerUrl,"onUpdate:value":t[7]||(t[7]=r=>m.value.issuerUrl=r),placeholder:a(e)("webauthn.sso.issuerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),s(G,{key:"2fa"},{tab:n(()=>[s(a(ne)),f(" "+i(a(e)("webauthn.tabs.tfa")),1)]),default:n(()=>[J.value?(c(),h("div",Qe,[s(_,{size:"large"})])):(c(),h(j,{key:1},[s(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},title:a(e)("webauthn.tfa.totpCardTitle")},{default:n(()=>[g("div",Ye,[g("span",Ze,i(a(e)("webauthn.tfa.statusPrefix")),1),s(b,{color:k.value?"green":"default",style:{"font-size":"13px"}},{default:n(()=>[f(i(k.value?a(e)("webauthn.tfa.enabled"):a(e)("webauthn.tfa.disabled")),1)]),_:1},8,["color"])]),s(y,null,{default:n(()=>[k.value?(c(),L(A,{key:1,title:a(e)("webauthn.tfa.disableConfirm"),"ok-text":a(e)("webauthn.tfa.disableOk"),"cancel-text":a(e)("common.cancel"),onConfirm:he},{default:n(()=>[s(o,{danger:"",loading:S.value},{default:n(()=>[f(i(a(e)("webauthn.tfa.disableButton")),1)]),_:1},8,["loading"])]),_:1},8,["title","ok-text","cancel-text"])):(c(),L(o,{key:0,type:"primary",loading:S.value,onClick:ye},{icon:n(()=>[s(a(ne))]),default:n(()=>[f(" "+i(a(e)("webauthn.tfa.enableButton")),1)]),_:1},8,["loading"]))]),_:1}),I.value?(c(),h("div",Ge,[g("pre",Xe,i(I.value),1)])):U("",!0)]),_:1},8,["title"]),s(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},title:a(e)("webauthn.tfa.recoveryCardTitle")},{default:n(()=>[g("p",et,i(a(e)("webauthn.tfa.recoveryHint")),1),s(o,{loading:Y.value,onClick:_e},{icon:n(()=>[s(a(le))]),default:n(()=>[f(" "+i(a(e)("webauthn.tfa.generateButton")),1)]),_:1},8,["loading"]),C.value.length>0?(c(),h("div",tt,[s(Ie,{type:"warning","show-icon":"",style:{"margin-bottom":"12px"},message:a(e)("webauthn.tfa.saveAlert")},null,8,["message"]),g("div",at,[(c(!0),h(j,null,oe(C.value,(r,w)=>(c(),h("div",{key:w,style:{"font-family":"monospace","font-size":"14px",color:"#e0e0e0",padding:"4px 0","letter-spacing":"2px"}},i(w+1)+". "+i(r),1))),128))])])):U("",!0)]),_:1},8,["title"])],64))]),_:1})]),_:1},8,["activeKey"])])}}},ut=Oe(lt,[["__scopeId","data-v-4aeb9054"]]);export{ut as default};
5
+ `).map(y=>y.trim()).filter(y=>y&&/^[A-Za-z0-9-]{6,}$/.test(y));C.value=o.length>0?o:[l.trim()||e("webauthn.messages.codesUnable")]}C.value.length>0&&C.value[0]!==e("webauthn.messages.codesUnable")&&d.success(e("webauthn.messages.codesOk"))}catch(l){d.error(e("webauthn.messages.codesFailed",{err:l.message}))}finally{Y.value=!1}}return Re(()=>{R()}),(l,t)=>{const o=u("a-button"),y=u("a-space"),_=u("a-spin"),b=u("a-tag"),A=u("a-popconfirm"),ge=u("a-empty"),we=u("a-table"),Z=u("a-input"),T=u("a-form-item"),te=u("a-form"),ae=u("a-modal"),G=u("a-tab-pane"),xe=u("a-statistic"),B=u("a-card"),ke=u("a-col"),Ce=u("a-row"),D=u("a-descriptions-item"),Ue=u("a-descriptions"),X=u("a-select-option"),Ae=u("a-select"),Se=u("a-input-password"),Ie=u("a-alert"),Le=u("a-tabs");return c(),h("div",null,[g("div",$e,[g("div",null,[g("h2",Be,i(a(e)("webauthn.title")),1),g("p",De,i(a(e)("webauthn.subtitle")),1)]),s(o,{type:"primary",ghost:"",loading:q.value,onClick:ie},{icon:n(()=>[s(a(le))]),default:n(()=>[f(" "+i(a(e)("webauthn.refresh")),1)]),_:1},8,["loading"])]),s(Le,{activeKey:O.value,"onUpdate:activeKey":t[9]||(t[9]=r=>O.value=r),type:"card",onChange:ue},{default:n(()=>[s(G,{key:"webauthn"},{tab:n(()=>[s(a(se)),f(" "+i(a(e)("webauthn.tabs.webauthn")),1)]),default:n(()=>[s(y,{style:{"margin-bottom":"16px"}},{default:n(()=>[s(o,{type:"primary",onClick:t[0]||(t[0]=r=>P.value=!0)},{icon:n(()=>[s(a(Fe))]),default:n(()=>[f(" "+i(a(e)("webauthn.credentials.registerButton")),1)]),_:1})]),_:1}),K.value?(c(),h("div",je,[s(_,{size:"large"})])):(c(),L(we,{key:1,columns:de.value,"data-source":F.value,pagination:{pageSize:20,showTotal:r=>a(e)("webauthn.totals.rows",{count:r})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"auth-row"},{bodyCell:n(({column:r,record:w})=>[r.key==="id"?(c(),h("span",{key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"},title:w.id},i(ce(w.id)),9,qe)):U("",!0),r.key==="name"?(c(),h("span",Ke,i(w.name),1)):U("",!0),r.key==="type"?(c(),L(b,{key:2,color:"blue"},{default:n(()=>[f(i(w.type||"public-key"),1)]),_:2},1024)):U("",!0),r.key==="createdAt"?(c(),h("span",Me,i(w.createdAt||"-"),1)):U("",!0),r.key==="lastUsed"?(c(),h("span",Ee,i(w.lastUsed||"-"),1)):U("",!0),r.key==="actions"?(c(),L(A,{key:5,title:a(e)("webauthn.credentials.deleteConfirm"),"ok-text":a(e)("webauthn.credentials.deleteOk"),"cancel-text":a(e)("common.cancel"),onConfirm:nt=>fe(w)},{default:n(()=>[s(o,{type:"link",danger:"",size:"small"},{icon:n(()=>[s(a(Pe))]),default:n(()=>[f(" "+i(a(e)("webauthn.credentials.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):U("",!0)]),emptyText:n(()=>[s(ge,{description:a(e)("webauthn.credentials.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),s(ae,{open:P.value,"onUpdate:open":t[2]||(t[2]=r=>P.value=r),title:a(e)("webauthn.credentials.registerTitle"),"confirm-loading":M.value,onOk:be,"ok-text":a(e)("webauthn.credentials.registerOk"),"cancel-text":a(e)("common.cancel")},{default:n(()=>[s(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:n(()=>[s(T,{label:a(e)("webauthn.credentials.nameLabel"),required:""},{default:n(()=>[s(Z,{value:N.value,"onUpdate:value":t[1]||(t[1]=r=>N.value=r),placeholder:a(e)("webauthn.credentials.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),s(G,{key:"sso"},{tab:n(()=>[s(a(Ne)),f(" "+i(a(e)("webauthn.tabs.sso")),1)]),default:n(()=>[E.value?(c(),h("div",Ve,[s(_,{size:"large"})])):(c(),h(j,{key:1},[s(Ce,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[(c(!0),h(j,null,oe(ve.value,r=>(c(),L(ke,{xs:12,sm:6,key:r.key},{default:n(()=>[s(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:n(()=>[s(xe,{title:r.label,value:r.value,"value-style":{color:r.color,fontSize:"20px"}},null,8,["title","value","value-style"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),s(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},title:a(e)("webauthn.sso.currentTitle")},{default:n(()=>[s(Ue,{column:{xs:1,sm:2},bordered:"",size:"small",style:{background:"var(--bg-card)"}},{default:n(()=>[s(D,{label:a(e)("webauthn.sso.providerLabel")},{default:n(()=>[s(b,{color:v.value.provider?"blue":"default"},{default:n(()=>[f(i(v.value.provider||a(e)("webauthn.sso.notConfigured")),1)]),_:1},8,["color"])]),_:1},8,["label"]),s(D,{label:a(e)("webauthn.sso.clientIdLabel")},{default:n(()=>[g("span",We,i(v.value.clientId||"-"),1)]),_:1},8,["label"]),s(D,{label:a(e)("webauthn.sso.redirectUrlLabel")},{default:n(()=>[g("span",Je,i(v.value.redirectUrl||"-"),1)]),_:1},8,["label"]),s(D,{label:a(e)("webauthn.sso.statusLabel")},{default:n(()=>[s(b,{color:v.value.enabled?"green":"default"},{default:n(()=>[f(i(v.value.enabled?a(e)("webauthn.sso.enabled"):a(e)("webauthn.sso.disabled")),1)]),_:1},8,["color"])]),_:1},8,["label"])]),_:1}),g("div",He,[s(o,{type:"primary",onClick:t[3]||(t[3]=r=>$.value=!0)},{icon:n(()=>[s(a(se))]),default:n(()=>[f(" "+i(a(e)("webauthn.sso.configureButton")),1)]),_:1})])]),_:1},8,["title"])],64)),s(ae,{open:$.value,"onUpdate:open":t[8]||(t[8]=r=>$.value=r),title:a(e)("webauthn.sso.modalTitle"),"confirm-loading":W.value,onOk:me,"ok-text":a(e)("webauthn.sso.modalOk"),"cancel-text":a(e)("common.cancel"),width:"520px"},{default:n(()=>[s(te,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:n(()=>[s(T,{label:a(e)("webauthn.sso.providerLabel"),required:""},{default:n(()=>[s(Ae,{value:m.value.provider,"onUpdate:value":t[4]||(t[4]=r=>m.value.provider=r),placeholder:a(e)("webauthn.sso.providerPlaceholder")},{default:n(()=>[s(X,{value:"OIDC"},{default:n(()=>[...t[10]||(t[10]=[f("OIDC",-1)])]),_:1}),s(X,{value:"SAML"},{default:n(()=>[...t[11]||(t[11]=[f("SAML",-1)])]),_:1}),s(X,{value:"LDAP"},{default:n(()=>[...t[12]||(t[12]=[f("LDAP",-1)])]),_:1})]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(T,{label:a(e)("webauthn.sso.clientIdLabel"),required:""},{default:n(()=>[s(Z,{value:m.value.clientId,"onUpdate:value":t[5]||(t[5]=r=>m.value.clientId=r),placeholder:a(e)("webauthn.sso.clientIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(T,{label:a(e)("webauthn.sso.clientSecretLabel")},{default:n(()=>[s(Se,{value:m.value.clientSecret,"onUpdate:value":t[6]||(t[6]=r=>m.value.clientSecret=r),placeholder:a(e)("webauthn.sso.clientSecretPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(T,{label:a(e)("webauthn.sso.issuerLabel")},{default:n(()=>[s(Z,{value:m.value.issuerUrl,"onUpdate:value":t[7]||(t[7]=r=>m.value.issuerUrl=r),placeholder:a(e)("webauthn.sso.issuerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),s(G,{key:"2fa"},{tab:n(()=>[s(a(ne)),f(" "+i(a(e)("webauthn.tabs.tfa")),1)]),default:n(()=>[H.value?(c(),h("div",Qe,[s(_,{size:"large"})])):(c(),h(j,{key:1},[s(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},title:a(e)("webauthn.tfa.totpCardTitle")},{default:n(()=>[g("div",Ye,[g("span",Ze,i(a(e)("webauthn.tfa.statusPrefix")),1),s(b,{color:k.value?"green":"default",style:{"font-size":"13px"}},{default:n(()=>[f(i(k.value?a(e)("webauthn.tfa.enabled"):a(e)("webauthn.tfa.disabled")),1)]),_:1},8,["color"])]),s(y,null,{default:n(()=>[k.value?(c(),L(A,{key:1,title:a(e)("webauthn.tfa.disableConfirm"),"ok-text":a(e)("webauthn.tfa.disableOk"),"cancel-text":a(e)("common.cancel"),onConfirm:he},{default:n(()=>[s(o,{danger:"",loading:S.value},{default:n(()=>[f(i(a(e)("webauthn.tfa.disableButton")),1)]),_:1},8,["loading"])]),_:1},8,["title","ok-text","cancel-text"])):(c(),L(o,{key:0,type:"primary",loading:S.value,onClick:ye},{icon:n(()=>[s(a(ne))]),default:n(()=>[f(" "+i(a(e)("webauthn.tfa.enableButton")),1)]),_:1},8,["loading"]))]),_:1}),I.value?(c(),h("div",Ge,[g("pre",Xe,i(I.value),1)])):U("",!0)]),_:1},8,["title"]),s(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},title:a(e)("webauthn.tfa.recoveryCardTitle")},{default:n(()=>[g("p",et,i(a(e)("webauthn.tfa.recoveryHint")),1),s(o,{loading:Y.value,onClick:_e},{icon:n(()=>[s(a(le))]),default:n(()=>[f(" "+i(a(e)("webauthn.tfa.generateButton")),1)]),_:1},8,["loading"]),C.value.length>0?(c(),h("div",tt,[s(Ie,{type:"warning","show-icon":"",style:{"margin-bottom":"12px"},message:a(e)("webauthn.tfa.saveAlert")},null,8,["message"]),g("div",at,[(c(!0),h(j,null,oe(C.value,(r,w)=>(c(),h("div",{key:w,style:{"font-family":"monospace","font-size":"14px",color:"#e0e0e0",padding:"4px 0","letter-spacing":"2px"}},i(w+1)+". "+i(r),1))),128))])])):U("",!0)]),_:1},8,["title"])],64))]),_:1})]),_:1},8,["activeKey"])])}}},ut=Oe(lt,[["__scopeId","data-v-4aeb9054"]]);export{ut as default};
@@ -1 +1 @@
1
- import{E as Q,r as C,o as Z,M as m,R as _,P as i,c as a,N as l,K as f,L as p,O as y,u as b,Q as N,Z as X,a1 as x,F as j,Y as V,S as R,f as ee}from"./vendor-M5lGV-wr.js";import{u as te,_ as oe,b as ae,d as k}from"./index-BAy0ks7N.js";import{u as le}from"./useFs-C8aeIQfU.js";import{aq as se,R as ne}from"./icons-DY9VpXfa.js";import"./useShellMode-CgR0wCYM.js";const re=Q("workflow",()=>{const w=te(),c=C([]),d=C(null),t=C([]),h=C("idle"),S=C(!1),P=C(null);async function F(){S.value=!0,P.value=null;try{await w.waitConnected();const s=await w.sendRaw({type:"workflow-list"});return c.value=Array.isArray(s.workflows)?s.workflows:[],c.value}catch(s){throw P.value=s.message,s}finally{S.value=!1}}async function I(s){await w.waitConnected();const e=await w.sendRaw({type:"workflow-get",id:s});return d.value=e.workflow||null,d.value}async function W(s){await w.waitConnected();const e=await w.sendRaw({type:"workflow-save",workflow:s});if(e.saved){const r=c.value.findIndex(n=>n.id===s.id);r>=0?c.value.splice(r,1,s):c.value.push(s)}return e}async function E(s){await w.waitConnected();const e=await w.sendRaw({type:"workflow-remove",id:s});return e.removed&&(c.value=c.value.filter(r=>r.id!==s)),e}async function A(s,{onEvent:e}={}){await w.waitConnected(),t.value=[],h.value="running";const r=w.onMessage(n=>{!n||typeof n.type!="string"||n.type.startsWith("workflow:")&&(t.value.push(n),e&&e(n),n.type==="workflow:done"&&(h.value=n.status||"completed"))});try{return await w.sendRaw({type:"workflow-run",id:s},12e4)}catch(n){throw h.value="failed",P.value=n.message,n}finally{r()}}function M(s){const e=[];if(!s||typeof s!="object")return{valid:!1,errors:["workflow must be an object"]};if(s.id||e.push("id required"),s.name||e.push("name required"),!Array.isArray(s.steps)||s.steps.length===0)e.push("steps required");else{let z=function(u){U.set(u,J);for(const v of n.get(u)||[]){if(!n.has(v)){e.push(`unknown dependency: ${v}`);continue}const L=U.get(v);if(L===J){e.push(`cycle via ${u} -> ${v}`);return}L===g&&z(v)}U.set(u,B)};const r=new Set;for(const u of s.steps)u.id||e.push("step.id required"),r.has(u.id)&&e.push(`duplicate step id: ${u.id}`),r.add(u.id);const n=new Map;for(const u of s.steps)n.set(u.id,u.dependsOn||[]);const g=0,J=1,B=2,U=new Map([...n.keys()].map(u=>[u,g]));for(const u of n.keys())U.get(u)===g&&z(u)}return{valid:e.length===0,errors:e}}function q(s){return JSON.stringify(s,null,2)}return{workflows:c,current:d,runEvents:t,runStatus:h,loading:S,error:P,list:F,get:I,save:W,remove:E,run:A,validateLocal:M,exportJson:q}}),ie={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ue={class:"page-title"},de={class:"page-sub"},ce={style:{flex:"1"}},pe={style:{"font-weight":"500"}},fe={style:{color:"#888","font-size":"12px"}},we={style:{color:"#888","font-size":"12px"}},ve={key:0,style:{"margin-top":"12px",color:"#d32f2f"}},me={style:{color:"#1976d2"}},ye={key:0},ke={key:1},_e={key:2,style:{color:"#555"}},he={__name:"WorkflowEditor",setup(w){const{t:c}=ae(),d=re(),t=C(null),h=C(!1),S=ee(()=>t.value?d.validateLocal(t.value):null);Z(()=>d.list().catch(()=>{}));function P(){t.value={id:"",name:"",description:"",steps:[{id:"step1",message:"",dependsOn:[]}]}}async function F(e){try{const r=await d.get(e);r&&(t.value=JSON.parse(JSON.stringify(r)),t.value.steps||(t.value.steps=[]))}catch(r){k.error(c("workflow.msg.loadFailed",{err:r.message}))}}function I(){t.value.steps||(t.value.steps=[]),t.value.steps.push({id:`step${t.value.steps.length+1}`,message:"",dependsOn:[]})}function W(e){t.value.steps.splice(e,1)}async function E(){const e=d.validateLocal(t.value);if(!e.valid){k.error(e.errors[0]);return}try{await d.save(t.value),k.success(c("workflow.msg.saveSuccess"))}catch(r){k.error(c("workflow.msg.saveFailed",{err:r.message}))}}async function A(e){try{await d.remove(e),t.value?.id===e&&(t.value=null),k.success(c("workflow.msg.deleteSuccess"))}catch(r){k.error(c("workflow.msg.deleteFailed",{err:r.message}))}}async function M(){h.value=!0;try{await d.run(t.value.id),k.success(c("workflow.msg.runSuccess",{status:d.runStatus}))}catch(e){k.error(c("workflow.msg.runFailed",{err:e.message}))}finally{h.value=!1}}const q=le();async function s(){try{const e=await q.saveJson(JSON.parse(d.exportJson(t.value)),{defaultPath:`${t.value.id||"workflow"}.json`});if(e.canceled)return;e.path&&k.success(c("workflow.msg.exportSuccess",{path:e.path}))}catch(e){k.error(c("workflow.msg.exportFailed",{err:e.message}))}}return(e,r)=>{const n=f("a-button"),g=f("a-space"),J=f("a-empty"),B=f("a-list-item"),U=f("a-list"),z=f("a-card"),u=f("a-col"),v=f("a-input"),L=f("a-form-item"),D=f("a-divider"),H=f("a-select"),K=f("a-input-group"),T=f("a-textarea"),Y=f("a-form"),G=f("a-row");return p(),m("div",null,[_("div",ie,[_("div",null,[_("h2",ue,i(e.$t("workflow.title")),1),_("p",de,i(e.$t("workflow.subtitle")),1)]),a(g,null,{default:l(()=>[a(n,{onClick:P,type:"primary"},{icon:l(()=>[a(b(se))]),default:l(()=>[y(" "+i(e.$t("workflow.new")),1)]),_:1}),a(n,{ghost:"",loading:b(d).loading,onClick:r[0]||(r[0]=o=>b(d).list())},{icon:l(()=>[a(b(ne))]),default:l(()=>[y(" "+i(e.$t("workflow.refresh")),1)]),_:1},8,["loading"])]),_:1})]),a(G,{gutter:16},{default:l(()=>[a(u,{span:8},{default:l(()=>[a(z,{title:e.$t("workflow.list.title"),size:"small"},{default:l(()=>[b(d).workflows.length?(p(),N(U,{key:1,"data-source":b(d).workflows,size:"small"},{renderItem:l(({item:o})=>[a(B,{class:X({active:t.value?.id===o.id}),style:{cursor:"pointer"},onClick:O=>F(o.id)},{default:l(()=>[_("div",ce,[_("div",pe,i(o.name||o.id),1),_("div",fe,i(e.$t("workflow.list.stepCount",{n:(o.steps||[]).length})),1)]),a(n,{size:"small",danger:"",type:"text",onClick:x(O=>A(o.id),["stop"])},{default:l(()=>[y(i(e.$t("workflow.list.delete")),1)]),_:1},8,["onClick"])]),_:2},1032,["class","onClick"])]),_:1},8,["data-source"])):(p(),N(J,{key:0,description:e.$t("workflow.list.empty")},null,8,["description"]))]),_:1},8,["title"])]),_:1}),a(u,{span:16},{default:l(()=>[t.value?(p(),N(z,{key:0,size:"small"},{title:l(()=>[y(i(e.$t("workflow.editor.headerPrefix"))+" "+i(t.value.name||t.value.id),1)]),extra:l(()=>[a(g,null,{default:l(()=>[a(n,{size:"small",onClick:s},{default:l(()=>[y(i(e.$t("workflow.editor.exportJson")),1)]),_:1}),a(n,{size:"small",loading:h.value,onClick:M,disabled:!t.value.id},{default:l(()=>[y(i(e.$t("workflow.editor.run")),1)]),_:1},8,["loading","disabled"]),a(n,{size:"small",type:"primary",onClick:E},{default:l(()=>[y(i(e.$t("workflow.editor.save")),1)]),_:1})]),_:1})]),default:l(()=>[a(Y,{layout:"vertical",model:t.value},{default:l(()=>[a(L,{label:e.$t("workflow.editor.idLabel")},{default:l(()=>[a(v,{value:t.value.id,"onUpdate:value":r[1]||(r[1]=o=>t.value.id=o),placeholder:e.$t("workflow.editor.idPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(L,{label:e.$t("workflow.editor.nameLabel")},{default:l(()=>[a(v,{value:t.value.name,"onUpdate:value":r[2]||(r[2]=o=>t.value.name=o),placeholder:e.$t("workflow.editor.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(L,{label:e.$t("workflow.editor.descLabel")},{default:l(()=>[a(v,{value:t.value.description,"onUpdate:value":r[3]||(r[3]=o=>t.value.description=o),placeholder:e.$t("workflow.editor.descPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(D,null,{default:l(()=>[y(i(e.$t("workflow.editor.stepsDivider")),1)]),_:1}),(p(!0),m(j,null,V(t.value.steps,(o,O)=>(p(),m("div",{key:O,class:"step-card"},[a(g,{style:{width:"100%","margin-bottom":"8px"},direction:"vertical"},{default:l(()=>[a(K,{compact:""},{default:l(()=>[a(v,{value:o.id,"onUpdate:value":$=>o.id=$,placeholder:e.$t("workflow.editor.stepIdPlaceholder"),style:{width:"30%"}},null,8,["value","onUpdate:value","placeholder"]),a(H,{value:o.dependsOn,"onUpdate:value":$=>o.dependsOn=$,mode:"tags",placeholder:e.$t("workflow.editor.dependsOnPlaceholder"),style:{width:"70%"}},null,8,["value","onUpdate:value","placeholder"])]),_:2},1024),a(T,{value:o.message,"onUpdate:value":$=>o.message=$,rows:2,placeholder:e.$t("workflow.editor.messagePlaceholder")},null,8,["value","onUpdate:value","placeholder"]),a(v,{value:o.when,"onUpdate:value":$=>o.when=$,placeholder:e.$t("workflow.editor.whenPlaceholder")},null,8,["value","onUpdate:value","placeholder"]),a(g,null,{default:l(()=>[a(n,{size:"small",danger:"",onClick:$=>W(O)},{default:l(()=>[y(i(e.$t("workflow.editor.stepDelete")),1)]),_:1},8,["onClick"]),_("span",we,i(e.$t("workflow.editor.stepCounter",{idx:O+1,total:t.value.steps.length})),1)]),_:2},1024)]),_:2},1024)]))),128)),a(n,{block:"",onClick:I},{default:l(()=>[y(i(e.$t("workflow.editor.addStep")),1)]),_:1})]),_:1},8,["model"]),S.value&&!S.value.valid?(p(),m("div",ve,[(p(!0),m(j,null,V(S.value.errors,o=>(p(),m("div",{key:o},"• "+i(o),1))),128))])):R("",!0)]),_:1})):(p(),N(z,{key:1,size:"small"},{default:l(()=>[a(J,{description:e.$t("workflow.editor.emptyHint")},null,8,["description"])]),_:1})),b(d).runEvents.length?(p(),N(z,{key:2,size:"small",title:e.$t("workflow.runLog.title"),style:{"margin-top":"12px"}},{default:l(()=>[(p(!0),m(j,null,V(b(d).runEvents,(o,O)=>(p(),m("div",{key:O,style:{"font-family":"monospace","font-size":"12px","margin-bottom":"4px"}},[_("span",me,i(o.type),1),o.stepId?(p(),m("span",ye," ["+i(o.stepId)+"]",1)):R("",!0),o.status?(p(),m("span",ke," → "+i(o.status),1)):R("",!0),o.summary?(p(),m("span",_e," — "+i(o.summary),1)):R("",!0)]))),128))]),_:1},8,["title"])):R("",!0)]),_:1})]),_:1})])}}},ze=oe(he,[["__scopeId","data-v-0ae438ac"]]);export{ze as default};
1
+ import{E as Q,r as C,o as Z,M as m,R as _,P as i,c as a,N as l,K as f,L as p,O as y,u as b,Q as N,Z as X,a1 as x,F as q,Y as V,S as R,f as ee}from"./vendor-M5lGV-wr.js";import{u as te,_ as oe,b as ae,d as k}from"./index-19d37fVJ.js";import{u as le}from"./useFs-BPbHm7Yn.js";import{ar as se,R as ne}from"./icons-BFHq5fEF.js";import"./useShellMode-CgR0wCYM.js";const re=Q("workflow",()=>{const w=te(),c=C([]),d=C(null),t=C([]),h=C("idle"),S=C(!1),P=C(null);async function F(){S.value=!0,P.value=null;try{await w.waitConnected();const s=await w.sendRaw({type:"workflow-list"});return c.value=Array.isArray(s.workflows)?s.workflows:[],c.value}catch(s){throw P.value=s.message,s}finally{S.value=!1}}async function I(s){await w.waitConnected();const e=await w.sendRaw({type:"workflow-get",id:s});return d.value=e.workflow||null,d.value}async function W(s){await w.waitConnected();const e=await w.sendRaw({type:"workflow-save",workflow:s});if(e.saved){const r=c.value.findIndex(n=>n.id===s.id);r>=0?c.value.splice(r,1,s):c.value.push(s)}return e}async function E(s){await w.waitConnected();const e=await w.sendRaw({type:"workflow-remove",id:s});return e.removed&&(c.value=c.value.filter(r=>r.id!==s)),e}async function A(s,{onEvent:e}={}){await w.waitConnected(),t.value=[],h.value="running";const r=w.onMessage(n=>{!n||typeof n.type!="string"||n.type.startsWith("workflow:")&&(t.value.push(n),e&&e(n),n.type==="workflow:done"&&(h.value=n.status||"completed"))});try{return await w.sendRaw({type:"workflow-run",id:s},12e4)}catch(n){throw h.value="failed",P.value=n.message,n}finally{r()}}function M(s){const e=[];if(!s||typeof s!="object")return{valid:!1,errors:["workflow must be an object"]};if(s.id||e.push("id required"),s.name||e.push("name required"),!Array.isArray(s.steps)||s.steps.length===0)e.push("steps required");else{let z=function(u){U.set(u,J);for(const v of n.get(u)||[]){if(!n.has(v)){e.push(`unknown dependency: ${v}`);continue}const L=U.get(v);if(L===J){e.push(`cycle via ${u} -> ${v}`);return}L===g&&z(v)}U.set(u,j)};const r=new Set;for(const u of s.steps)u.id||e.push("step.id required"),r.has(u.id)&&e.push(`duplicate step id: ${u.id}`),r.add(u.id);const n=new Map;for(const u of s.steps)n.set(u.id,u.dependsOn||[]);const g=0,J=1,j=2,U=new Map([...n.keys()].map(u=>[u,g]));for(const u of n.keys())U.get(u)===g&&z(u)}return{valid:e.length===0,errors:e}}function B(s){return JSON.stringify(s,null,2)}return{workflows:c,current:d,runEvents:t,runStatus:h,loading:S,error:P,list:F,get:I,save:W,remove:E,run:A,validateLocal:M,exportJson:B}}),ie={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ue={class:"page-title"},de={class:"page-sub"},ce={style:{flex:"1"}},pe={style:{"font-weight":"500"}},fe={style:{color:"#888","font-size":"12px"}},we={style:{color:"#888","font-size":"12px"}},ve={key:0,style:{"margin-top":"12px",color:"#d32f2f"}},me={style:{color:"#1976d2"}},ye={key:0},ke={key:1},_e={key:2,style:{color:"#555"}},he={__name:"WorkflowEditor",setup(w){const{t:c}=ae(),d=re(),t=C(null),h=C(!1),S=ee(()=>t.value?d.validateLocal(t.value):null);Z(()=>d.list().catch(()=>{}));function P(){t.value={id:"",name:"",description:"",steps:[{id:"step1",message:"",dependsOn:[]}]}}async function F(e){try{const r=await d.get(e);r&&(t.value=JSON.parse(JSON.stringify(r)),t.value.steps||(t.value.steps=[]))}catch(r){k.error(c("workflow.msg.loadFailed",{err:r.message}))}}function I(){t.value.steps||(t.value.steps=[]),t.value.steps.push({id:`step${t.value.steps.length+1}`,message:"",dependsOn:[]})}function W(e){t.value.steps.splice(e,1)}async function E(){const e=d.validateLocal(t.value);if(!e.valid){k.error(e.errors[0]);return}try{await d.save(t.value),k.success(c("workflow.msg.saveSuccess"))}catch(r){k.error(c("workflow.msg.saveFailed",{err:r.message}))}}async function A(e){try{await d.remove(e),t.value?.id===e&&(t.value=null),k.success(c("workflow.msg.deleteSuccess"))}catch(r){k.error(c("workflow.msg.deleteFailed",{err:r.message}))}}async function M(){h.value=!0;try{await d.run(t.value.id),k.success(c("workflow.msg.runSuccess",{status:d.runStatus}))}catch(e){k.error(c("workflow.msg.runFailed",{err:e.message}))}finally{h.value=!1}}const B=le();async function s(){try{const e=await B.saveJson(JSON.parse(d.exportJson(t.value)),{defaultPath:`${t.value.id||"workflow"}.json`});if(e.canceled)return;e.path&&k.success(c("workflow.msg.exportSuccess",{path:e.path}))}catch(e){k.error(c("workflow.msg.exportFailed",{err:e.message}))}}return(e,r)=>{const n=f("a-button"),g=f("a-space"),J=f("a-empty"),j=f("a-list-item"),U=f("a-list"),z=f("a-card"),u=f("a-col"),v=f("a-input"),L=f("a-form-item"),D=f("a-divider"),H=f("a-select"),K=f("a-input-group"),T=f("a-textarea"),Y=f("a-form"),G=f("a-row");return p(),m("div",null,[_("div",ie,[_("div",null,[_("h2",ue,i(e.$t("workflow.title")),1),_("p",de,i(e.$t("workflow.subtitle")),1)]),a(g,null,{default:l(()=>[a(n,{onClick:P,type:"primary"},{icon:l(()=>[a(b(se))]),default:l(()=>[y(" "+i(e.$t("workflow.new")),1)]),_:1}),a(n,{ghost:"",loading:b(d).loading,onClick:r[0]||(r[0]=o=>b(d).list())},{icon:l(()=>[a(b(ne))]),default:l(()=>[y(" "+i(e.$t("workflow.refresh")),1)]),_:1},8,["loading"])]),_:1})]),a(G,{gutter:16},{default:l(()=>[a(u,{span:8},{default:l(()=>[a(z,{title:e.$t("workflow.list.title"),size:"small"},{default:l(()=>[b(d).workflows.length?(p(),N(U,{key:1,"data-source":b(d).workflows,size:"small"},{renderItem:l(({item:o})=>[a(j,{class:X({active:t.value?.id===o.id}),style:{cursor:"pointer"},onClick:O=>F(o.id)},{default:l(()=>[_("div",ce,[_("div",pe,i(o.name||o.id),1),_("div",fe,i(e.$t("workflow.list.stepCount",{n:(o.steps||[]).length})),1)]),a(n,{size:"small",danger:"",type:"text",onClick:x(O=>A(o.id),["stop"])},{default:l(()=>[y(i(e.$t("workflow.list.delete")),1)]),_:1},8,["onClick"])]),_:2},1032,["class","onClick"])]),_:1},8,["data-source"])):(p(),N(J,{key:0,description:e.$t("workflow.list.empty")},null,8,["description"]))]),_:1},8,["title"])]),_:1}),a(u,{span:16},{default:l(()=>[t.value?(p(),N(z,{key:0,size:"small"},{title:l(()=>[y(i(e.$t("workflow.editor.headerPrefix"))+" "+i(t.value.name||t.value.id),1)]),extra:l(()=>[a(g,null,{default:l(()=>[a(n,{size:"small",onClick:s},{default:l(()=>[y(i(e.$t("workflow.editor.exportJson")),1)]),_:1}),a(n,{size:"small",loading:h.value,onClick:M,disabled:!t.value.id},{default:l(()=>[y(i(e.$t("workflow.editor.run")),1)]),_:1},8,["loading","disabled"]),a(n,{size:"small",type:"primary",onClick:E},{default:l(()=>[y(i(e.$t("workflow.editor.save")),1)]),_:1})]),_:1})]),default:l(()=>[a(Y,{layout:"vertical",model:t.value},{default:l(()=>[a(L,{label:e.$t("workflow.editor.idLabel")},{default:l(()=>[a(v,{value:t.value.id,"onUpdate:value":r[1]||(r[1]=o=>t.value.id=o),placeholder:e.$t("workflow.editor.idPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(L,{label:e.$t("workflow.editor.nameLabel")},{default:l(()=>[a(v,{value:t.value.name,"onUpdate:value":r[2]||(r[2]=o=>t.value.name=o),placeholder:e.$t("workflow.editor.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(L,{label:e.$t("workflow.editor.descLabel")},{default:l(()=>[a(v,{value:t.value.description,"onUpdate:value":r[3]||(r[3]=o=>t.value.description=o),placeholder:e.$t("workflow.editor.descPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(D,null,{default:l(()=>[y(i(e.$t("workflow.editor.stepsDivider")),1)]),_:1}),(p(!0),m(q,null,V(t.value.steps,(o,O)=>(p(),m("div",{key:O,class:"step-card"},[a(g,{style:{width:"100%","margin-bottom":"8px"},direction:"vertical"},{default:l(()=>[a(K,{compact:""},{default:l(()=>[a(v,{value:o.id,"onUpdate:value":$=>o.id=$,placeholder:e.$t("workflow.editor.stepIdPlaceholder"),style:{width:"30%"}},null,8,["value","onUpdate:value","placeholder"]),a(H,{value:o.dependsOn,"onUpdate:value":$=>o.dependsOn=$,mode:"tags",placeholder:e.$t("workflow.editor.dependsOnPlaceholder"),style:{width:"70%"}},null,8,["value","onUpdate:value","placeholder"])]),_:2},1024),a(T,{value:o.message,"onUpdate:value":$=>o.message=$,rows:2,placeholder:e.$t("workflow.editor.messagePlaceholder")},null,8,["value","onUpdate:value","placeholder"]),a(v,{value:o.when,"onUpdate:value":$=>o.when=$,placeholder:e.$t("workflow.editor.whenPlaceholder")},null,8,["value","onUpdate:value","placeholder"]),a(g,null,{default:l(()=>[a(n,{size:"small",danger:"",onClick:$=>W(O)},{default:l(()=>[y(i(e.$t("workflow.editor.stepDelete")),1)]),_:1},8,["onClick"]),_("span",we,i(e.$t("workflow.editor.stepCounter",{idx:O+1,total:t.value.steps.length})),1)]),_:2},1024)]),_:2},1024)]))),128)),a(n,{block:"",onClick:I},{default:l(()=>[y(i(e.$t("workflow.editor.addStep")),1)]),_:1})]),_:1},8,["model"]),S.value&&!S.value.valid?(p(),m("div",ve,[(p(!0),m(q,null,V(S.value.errors,o=>(p(),m("div",{key:o},"• "+i(o),1))),128))])):R("",!0)]),_:1})):(p(),N(z,{key:1,size:"small"},{default:l(()=>[a(J,{description:e.$t("workflow.editor.emptyHint")},null,8,["description"])]),_:1})),b(d).runEvents.length?(p(),N(z,{key:2,size:"small",title:e.$t("workflow.runLog.title"),style:{"margin-top":"12px"}},{default:l(()=>[(p(!0),m(q,null,V(b(d).runEvents,(o,O)=>(p(),m("div",{key:O,style:{"font-family":"monospace","font-size":"12px","margin-bottom":"4px"}},[_("span",me,i(o.type),1),o.stepId?(p(),m("span",ye," ["+i(o.stepId)+"]",1)):R("",!0),o.status?(p(),m("span",ke," → "+i(o.status),1)):R("",!0),o.summary?(p(),m("span",_e," — "+i(o.summary),1)):R("",!0)]))),128))]),_:1},8,["title"])):R("",!0)]),_:1})]),_:1})])}}},ze=oe(he,[["__scopeId","data-v-0ae438ac"]]);export{ze as default};
@@ -1 +1 @@
1
- import{E as St,r as h,a as v,f as yt}from"./vendor-M5lGV-wr.js";import{u as S}from"./index-BAy0ks7N.js";let $=0;function K(a){return $+=1,`msg_${Date.now()}_${$}_${a}`}const C=Object.freeze({USER:"user",ASSISTANT:"assistant",SYSTEM:"system",INTENT_RECOGNITION:"intent-recognition",INTENT_CONFIRMATION:"intent-confirmation",TASK_ANALYSIS:"task-analysis",INTERVIEW:"interview",TASK_PLAN:"task-plan",PROGRESS:"progress",ERROR:"error"}),B=Object.freeze({USER:"user",ASSISTANT:"assistant",SYSTEM:"system"});function Tt(a,s){return{id:K("intent_confirmation"),role:B.ASSISTANT,type:C.INTENT_CONFIRMATION,content:"我理解您的需求如下,请确认:",timestamp:Date.now(),metadata:{originalInput:a,understanding:s||{},status:"pending",correction:null}}}function ht(a,s,f={}){const{reason:c,extractedInfo:m}=f,g={CONTINUE_EXECUTION:"✅ 收到,继续执行任务...",MODIFY_REQUIREMENT:`⚠️ 检测到需求变更:${m||s}`,CLARIFICATION:`📝 已记录补充信息:${m||s}`,CANCEL_TASK:"❌ 任务已取消"};return{id:K("intent_system"),role:B.SYSTEM,type:C.SYSTEM,content:g[a]||"⚠️ 未识别意图",timestamp:Date.now(),metadata:{intent:a,reason:c,userInput:s,extractedInfo:m}}}const k="新对话",P="新 Agent",G="cc.web-panel.chat.contextMode",J=["project","file","global"],X="cc.web-panel.chat.intentDecisions",F=200,z="cc.web-panel.chat.intentEnabled";function Et(){try{const a=typeof localStorage<"u"?localStorage.getItem(G):null;return J.includes(a)?a:null}catch{return null}}function wt(){try{return typeof localStorage>"u"?!1:localStorage.getItem(z)==="true"}catch{return!1}}function V(){try{if(typeof localStorage>"u")return{};const a=localStorage.getItem(X);if(!a)return{};const s=JSON.parse(a);return s&&typeof s=="object"?s:{}}catch{return{}}}function _t(a){try{if(typeof localStorage>"u")return;const s=Object.entries(a);if(s.length>F){s.sort((c,m)=>(c[1]?.ts||0)-(m[1]?.ts||0));const f=s.slice(-F);a=Object.fromEntries(f)}localStorage.setItem(X,JSON.stringify(a))}catch{}}function Q(a,s,f){if(!a||!s)return;const c=V();c[`${a}::${s}`]={...f,ts:Date.now()},_t(c)}function Nt(a,s){return!a||!s?null:V()[`${a}::${s}`]||null}const At={"assistant.delta":"response-token","assistant.final":"response-complete","assistant.message":"response-complete","tool.call.started":"tool-executing","tool.call.completed":"tool-result","tool.call.failed":"tool-result","slot.filling":"question","approval.requested":"question",error:"error"},Dt=St("chat",()=>{const a=h([]),s=h(null),f=v({}),c=v({}),m=v({}),g=v({}),j=(typeof window<"u"&&window.__CC_CONFIG__||{}).mode==="project",W=j?"project":"global",O=Et(),M=h(O==="file"||O==="project"&&!j?"global":O||W);function H(t){if(J.includes(t)){M.value=t;try{typeof localStorage<"u"&&localStorage.setItem(G,t)}catch{}}}const w=h(wt());function Z(t){w.value=!!t;try{typeof localStorage<"u"&&localStorage.setItem(z,w.value?"true":"false")}catch{}}const _="cc.web-panel.chat.customQuickPrompts";function tt(){try{if(typeof localStorage>"u")return null;const t=localStorage.getItem(_);if(!t)return null;const e=JSON.parse(t);if(!Array.isArray(e))return null;const n=e.map(o=>typeof o=="string"?o.trim():"").filter(o=>o.length>0&&o.length<=120).slice(0,12);return n.length>0?n:null}catch{return null}}const I=h(tt());function et(t){if(t==null){I.value=null;try{typeof localStorage<"u"&&localStorage.removeItem(_)}catch{}return}if(!Array.isArray(t))return;const e=t.map(n=>typeof n=="string"?n.trim():"").filter(n=>n.length>0&&n.length<=120).slice(0,12);I.value=e.length>0?e:null;try{typeof localStorage<"u"&&(e.length>0?localStorage.setItem(_,JSON.stringify(e)):localStorage.removeItem(_))}catch{}}const D=h(null);let L=0;function nt({prompt:t,autoSend:e=!0,session:n=null}={}){!t||!String(t).trim()||(L+=1,D.value={prompt:String(t),autoSend:e!==!1,session:n||null,token:`staged::${L}::${Date.now()}`})}function ot(){D.value=null}let U=null;const q=new Set;function y(t){return f[t]||(f[t]=[]),f[t]}function x(t){return!!(t&&g[t])}function T(t,e){t&&(g[t]=!!e)}function R(t){if(!t?.id)return;const e=a.value.find(n=>n.id===t.id);if(e){Object.assign(e,t);return}a.value.unshift(t)}function b(t,e=S()){f[t]||(f[t]=[]),c[t]||(c[t]={content:"",active:!1}),g[t]==null&&(g[t]=!1),!q.has(t)&&(q.add(t),e.onSession(t,n=>st(t,n)))}function N(t=S()){U||(U=t.onRuntimeEvent(e=>{const n=e.payload||{},o=n.record||{};if(e.type==="session:start"){const r=n.sessionType||o.type||"chat";T(n.sessionId,!1),R({id:n.sessionId,type:r,provider:o.provider||null,model:o.model||null,projectRoot:o.projectRoot||null,status:o.status||"created",title:r==="chat"?k:P,createdAt:Date.now(),messageCount:o.messageCount??0})}else if(e.type==="session:resume"){const r=n.sessionId;if(!r)return;Array.isArray(n.history)&&(f[r]=n.history.map(l=>({role:l.role,content:l.content,timestamp:l.timestamp||Date.now()}))),c[r]||(c[r]={content:"",active:!1}),g[r]==null&&(g[r]=!1),R({id:r,type:o.type||null,provider:o.provider||null,model:o.model||null,projectRoot:o.projectRoot||null,status:o.status||"resumed",messageCount:o.messageCount??(Array.isArray(n.history)?n.history.length:0)})}else if(e.type==="session:end"){const r=n.sessionId;a.value=a.value.filter(l=>l.id!==r),delete g[r],s.value===r&&(s.value=a.value[0]?.id||null)}}))}async function rt(){const t=S();N(t),a.value=await t.listSessions(),a.value.forEach(e=>{b(e.id,t)})}async function at(t="chat",e={}){const n=S();N(n);const o=await n.createSession(t,null,e);return R({id:o,type:t,title:t==="chat"?k:P,createdAt:Date.now(),messageCount:0}),T(o,!1),b(o,n),s.value=o,o}function st(t,e){const n=y(t),o=At[e.type]||e.type,r=e.payload||{};if(o==="response-token"){c[t]||(c[t]={content:"",active:!0});const l=e.token||r.token||r.delta||r.content||"";c[t].content+=l,c[t].active=!0,T(t,!0)}else if(o==="response-complete"){const l=e.content||r.content||c[t]?.content||"";n.push({role:"assistant",content:l,timestamp:Date.now()}),c[t]&&(c[t].content="",c[t].active=!1);const u=a.value.find(i=>i.id===t);if(u&&(u.title===k||u.title===P)){const i=n.find(p=>p.role==="user");i&&(u.title=i.content.slice(0,30))}u&&(u.messageCount=n.filter(i=>i.role!=="tool").length),T(t,!1)}else if(o==="tool-executing")n.push({role:"tool",tool:e.tool||r.tool||r.toolName||"unknown",input:e.input||r.input||r.args||null,status:"running",timestamp:Date.now()}),T(t,!0);else if(o==="tool-result"){const l=e.tool||r.tool||r.toolName||"unknown",u=[...n].reverse().find(i=>i.role==="tool"&&i.tool===l);u&&(u.result=e.result||r.result||r.output||null,u.status="done")}else if(o==="question")m[t]={requestId:e.requestId||r.requestId||e.id,question:e.question||r.question||r.message||"",choices:e.choices||r.choices||r.options||[]},T(t,!1);else if(o==="error"){const l=e.message||r.message||"Unknown error";n.push({role:"assistant",content:`Error: ${l}`,timestamp:Date.now()}),T(t,!1),c[t]&&(c[t].active=!1)}}async function E(t,e){const n=S();N(n),y(t).push({role:"user",content:e,timestamp:Date.now()}),c[t]||(c[t]={content:"",active:!1}),c[t].active=!0,T(t,!0),n.sendSessionMessage(t,e)}async function ct(t,e){if(!t||!e?.trim())return;const n=M.value;if(n==="global"||!w.value){await E(t,e);return}const o=S(),r=y(t).filter(d=>d.role==="user"||d.role==="assistant").slice(-5).map(d=>({role:d.role,content:String(d.content||"").slice(0,500)})),l=Tt(e,{});l.metadata.streaming=!0,l.metadata.streamingTokens=0,l.content="理解中…";const u=y(t);u.push(l);const i=u[u.length-1];let p=null;const Y=new AbortController,gt=setTimeout(()=>Y.abort(new Error("Intent understand wall-clock timeout")),9e4);try{const d=await o.sendStream({type:"chat.intent.understand-stream",sessionId:t,userInput:e,contextMode:n,history:r},{onChunk:()=>{i.metadata.streamingTokens=(i.metadata.streamingTokens||0)+1},idleMs:6e4,signal:Y.signal});d?.success&&(p=d)}catch{}finally{clearTimeout(gt)}if(!(p&&(p.correctedInput&&p.correctedInput!==e||Array.isArray(p.keyPoints)&&p.keyPoints.length>0))){const d=u.indexOf(i);d>=0&&u.splice(d,1),await E(t,e);return}i.content="我理解您的需求如下,请确认:",i.metadata.streaming=!1,i.metadata.understanding={correctedInput:p.correctedInput,intent:p.intent,keyPoints:p.keyPoints};const A=Nt(t,i.id);A?.status&&(i.metadata.status=A.status,A.correction&&(i.metadata.correction=A.correction))}async function lt(t,e){const o=y(t).find(l=>l.id===e);if(!o||o.type!==C.INTENT_CONFIRMATION)return;o.metadata&&(o.metadata.status="confirmed"),Q(t,e,{status:"confirmed",correction:null});const r=o.metadata?.originalInput||"";r.trim()&&await E(t,r)}async function it(t,e,n){const r=y(t).find(u=>u.id===e);if(!r||r.type!==C.INTENT_CONFIRMATION)return;r.metadata&&(r.metadata.status="corrected",r.metadata.correction=n),Q(t,e,{status:"corrected",correction:n});const l=(n||"").trim();l&&await E(t,l)}async function ut(t,e,n={}){const o=S();try{return await o.sendRaw({type:"chat.intent.classify-followup",sessionId:t,input:e,context:n},2e4)}catch{return null}}function ft(t,e,n,o={}){y(t).push(ht(e,n,o))}function dt(t,e){const n=S(),o=m[t];o&&(n.answerQuestion(t,o.requestId,e),delete m[t])}async function pt(t){const e=S();if(N(e),s.value=t,b(t,e),!f[t]||f[t].length===0)try{await e.resumeSession(t)}catch{}}const mt=yt(()=>x(s.value));return{sessions:a,currentSessionId:s,messages:f,streaming:c,pendingQuestion:m,loadingBySession:g,isLoading:mt,contextMode:M,setContextMode:H,intentEnabled:w,setIntentEnabled:Z,customQuickPrompts:I,setCustomQuickPrompts:et,pendingAutoSend:D,scheduleAutoSend:nt,clearAutoSend:ot,getIsLoading:x,loadSessions:rt,createSession:at,sendMessage:E,submitUserInput:ct,confirmIntent:lt,correctIntent:it,classifyFollowupIntent:ut,pushFollowupIntentBanner:ft,answerQuestion:dt,switchSession:pt,getMessages:y}});export{C as M,Dt as u};
1
+ import{E as St,r as h,a as v,f as yt}from"./vendor-M5lGV-wr.js";import{u as S}from"./index-19d37fVJ.js";let $=0;function K(a){return $+=1,`msg_${Date.now()}_${$}_${a}`}const C=Object.freeze({USER:"user",ASSISTANT:"assistant",SYSTEM:"system",INTENT_RECOGNITION:"intent-recognition",INTENT_CONFIRMATION:"intent-confirmation",TASK_ANALYSIS:"task-analysis",INTERVIEW:"interview",TASK_PLAN:"task-plan",PROGRESS:"progress",ERROR:"error"}),B=Object.freeze({USER:"user",ASSISTANT:"assistant",SYSTEM:"system"});function Tt(a,s){return{id:K("intent_confirmation"),role:B.ASSISTANT,type:C.INTENT_CONFIRMATION,content:"我理解您的需求如下,请确认:",timestamp:Date.now(),metadata:{originalInput:a,understanding:s||{},status:"pending",correction:null}}}function ht(a,s,f={}){const{reason:c,extractedInfo:m}=f,g={CONTINUE_EXECUTION:"✅ 收到,继续执行任务...",MODIFY_REQUIREMENT:`⚠️ 检测到需求变更:${m||s}`,CLARIFICATION:`📝 已记录补充信息:${m||s}`,CANCEL_TASK:"❌ 任务已取消"};return{id:K("intent_system"),role:B.SYSTEM,type:C.SYSTEM,content:g[a]||"⚠️ 未识别意图",timestamp:Date.now(),metadata:{intent:a,reason:c,userInput:s,extractedInfo:m}}}const k="新对话",P="新 Agent",G="cc.web-panel.chat.contextMode",J=["project","file","global"],X="cc.web-panel.chat.intentDecisions",F=200,z="cc.web-panel.chat.intentEnabled";function Et(){try{const a=typeof localStorage<"u"?localStorage.getItem(G):null;return J.includes(a)?a:null}catch{return null}}function wt(){try{return typeof localStorage>"u"?!1:localStorage.getItem(z)==="true"}catch{return!1}}function V(){try{if(typeof localStorage>"u")return{};const a=localStorage.getItem(X);if(!a)return{};const s=JSON.parse(a);return s&&typeof s=="object"?s:{}}catch{return{}}}function _t(a){try{if(typeof localStorage>"u")return;const s=Object.entries(a);if(s.length>F){s.sort((c,m)=>(c[1]?.ts||0)-(m[1]?.ts||0));const f=s.slice(-F);a=Object.fromEntries(f)}localStorage.setItem(X,JSON.stringify(a))}catch{}}function Q(a,s,f){if(!a||!s)return;const c=V();c[`${a}::${s}`]={...f,ts:Date.now()},_t(c)}function Nt(a,s){return!a||!s?null:V()[`${a}::${s}`]||null}const At={"assistant.delta":"response-token","assistant.final":"response-complete","assistant.message":"response-complete","tool.call.started":"tool-executing","tool.call.completed":"tool-result","tool.call.failed":"tool-result","slot.filling":"question","approval.requested":"question",error:"error"},Dt=St("chat",()=>{const a=h([]),s=h(null),f=v({}),c=v({}),m=v({}),g=v({}),j=(typeof window<"u"&&window.__CC_CONFIG__||{}).mode==="project",W=j?"project":"global",O=Et(),M=h(O==="file"||O==="project"&&!j?"global":O||W);function H(t){if(J.includes(t)){M.value=t;try{typeof localStorage<"u"&&localStorage.setItem(G,t)}catch{}}}const w=h(wt());function Z(t){w.value=!!t;try{typeof localStorage<"u"&&localStorage.setItem(z,w.value?"true":"false")}catch{}}const _="cc.web-panel.chat.customQuickPrompts";function tt(){try{if(typeof localStorage>"u")return null;const t=localStorage.getItem(_);if(!t)return null;const e=JSON.parse(t);if(!Array.isArray(e))return null;const n=e.map(o=>typeof o=="string"?o.trim():"").filter(o=>o.length>0&&o.length<=120).slice(0,12);return n.length>0?n:null}catch{return null}}const I=h(tt());function et(t){if(t==null){I.value=null;try{typeof localStorage<"u"&&localStorage.removeItem(_)}catch{}return}if(!Array.isArray(t))return;const e=t.map(n=>typeof n=="string"?n.trim():"").filter(n=>n.length>0&&n.length<=120).slice(0,12);I.value=e.length>0?e:null;try{typeof localStorage<"u"&&(e.length>0?localStorage.setItem(_,JSON.stringify(e)):localStorage.removeItem(_))}catch{}}const D=h(null);let L=0;function nt({prompt:t,autoSend:e=!0,session:n=null}={}){!t||!String(t).trim()||(L+=1,D.value={prompt:String(t),autoSend:e!==!1,session:n||null,token:`staged::${L}::${Date.now()}`})}function ot(){D.value=null}let U=null;const q=new Set;function y(t){return f[t]||(f[t]=[]),f[t]}function x(t){return!!(t&&g[t])}function T(t,e){t&&(g[t]=!!e)}function R(t){if(!t?.id)return;const e=a.value.find(n=>n.id===t.id);if(e){Object.assign(e,t);return}a.value.unshift(t)}function b(t,e=S()){f[t]||(f[t]=[]),c[t]||(c[t]={content:"",active:!1}),g[t]==null&&(g[t]=!1),!q.has(t)&&(q.add(t),e.onSession(t,n=>st(t,n)))}function N(t=S()){U||(U=t.onRuntimeEvent(e=>{const n=e.payload||{},o=n.record||{};if(e.type==="session:start"){const r=n.sessionType||o.type||"chat";T(n.sessionId,!1),R({id:n.sessionId,type:r,provider:o.provider||null,model:o.model||null,projectRoot:o.projectRoot||null,status:o.status||"created",title:r==="chat"?k:P,createdAt:Date.now(),messageCount:o.messageCount??0})}else if(e.type==="session:resume"){const r=n.sessionId;if(!r)return;Array.isArray(n.history)&&(f[r]=n.history.map(l=>({role:l.role,content:l.content,timestamp:l.timestamp||Date.now()}))),c[r]||(c[r]={content:"",active:!1}),g[r]==null&&(g[r]=!1),R({id:r,type:o.type||null,provider:o.provider||null,model:o.model||null,projectRoot:o.projectRoot||null,status:o.status||"resumed",messageCount:o.messageCount??(Array.isArray(n.history)?n.history.length:0)})}else if(e.type==="session:end"){const r=n.sessionId;a.value=a.value.filter(l=>l.id!==r),delete g[r],s.value===r&&(s.value=a.value[0]?.id||null)}}))}async function rt(){const t=S();N(t),a.value=await t.listSessions(),a.value.forEach(e=>{b(e.id,t)})}async function at(t="chat",e={}){const n=S();N(n);const o=await n.createSession(t,null,e);return R({id:o,type:t,title:t==="chat"?k:P,createdAt:Date.now(),messageCount:0}),T(o,!1),b(o,n),s.value=o,o}function st(t,e){const n=y(t),o=At[e.type]||e.type,r=e.payload||{};if(o==="response-token"){c[t]||(c[t]={content:"",active:!0});const l=e.token||r.token||r.delta||r.content||"";c[t].content+=l,c[t].active=!0,T(t,!0)}else if(o==="response-complete"){const l=e.content||r.content||c[t]?.content||"";n.push({role:"assistant",content:l,timestamp:Date.now()}),c[t]&&(c[t].content="",c[t].active=!1);const u=a.value.find(i=>i.id===t);if(u&&(u.title===k||u.title===P)){const i=n.find(p=>p.role==="user");i&&(u.title=i.content.slice(0,30))}u&&(u.messageCount=n.filter(i=>i.role!=="tool").length),T(t,!1)}else if(o==="tool-executing")n.push({role:"tool",tool:e.tool||r.tool||r.toolName||"unknown",input:e.input||r.input||r.args||null,status:"running",timestamp:Date.now()}),T(t,!0);else if(o==="tool-result"){const l=e.tool||r.tool||r.toolName||"unknown",u=[...n].reverse().find(i=>i.role==="tool"&&i.tool===l);u&&(u.result=e.result||r.result||r.output||null,u.status="done")}else if(o==="question")m[t]={requestId:e.requestId||r.requestId||e.id,question:e.question||r.question||r.message||"",choices:e.choices||r.choices||r.options||[]},T(t,!1);else if(o==="error"){const l=e.message||r.message||"Unknown error";n.push({role:"assistant",content:`Error: ${l}`,timestamp:Date.now()}),T(t,!1),c[t]&&(c[t].active=!1)}}async function E(t,e){const n=S();N(n),y(t).push({role:"user",content:e,timestamp:Date.now()}),c[t]||(c[t]={content:"",active:!1}),c[t].active=!0,T(t,!0),n.sendSessionMessage(t,e)}async function ct(t,e){if(!t||!e?.trim())return;const n=M.value;if(n==="global"||!w.value){await E(t,e);return}const o=S(),r=y(t).filter(d=>d.role==="user"||d.role==="assistant").slice(-5).map(d=>({role:d.role,content:String(d.content||"").slice(0,500)})),l=Tt(e,{});l.metadata.streaming=!0,l.metadata.streamingTokens=0,l.content="理解中…";const u=y(t);u.push(l);const i=u[u.length-1];let p=null;const Y=new AbortController,gt=setTimeout(()=>Y.abort(new Error("Intent understand wall-clock timeout")),9e4);try{const d=await o.sendStream({type:"chat.intent.understand-stream",sessionId:t,userInput:e,contextMode:n,history:r},{onChunk:()=>{i.metadata.streamingTokens=(i.metadata.streamingTokens||0)+1},idleMs:6e4,signal:Y.signal});d?.success&&(p=d)}catch{}finally{clearTimeout(gt)}if(!(p&&(p.correctedInput&&p.correctedInput!==e||Array.isArray(p.keyPoints)&&p.keyPoints.length>0))){const d=u.indexOf(i);d>=0&&u.splice(d,1),await E(t,e);return}i.content="我理解您的需求如下,请确认:",i.metadata.streaming=!1,i.metadata.understanding={correctedInput:p.correctedInput,intent:p.intent,keyPoints:p.keyPoints};const A=Nt(t,i.id);A?.status&&(i.metadata.status=A.status,A.correction&&(i.metadata.correction=A.correction))}async function lt(t,e){const o=y(t).find(l=>l.id===e);if(!o||o.type!==C.INTENT_CONFIRMATION)return;o.metadata&&(o.metadata.status="confirmed"),Q(t,e,{status:"confirmed",correction:null});const r=o.metadata?.originalInput||"";r.trim()&&await E(t,r)}async function it(t,e,n){const r=y(t).find(u=>u.id===e);if(!r||r.type!==C.INTENT_CONFIRMATION)return;r.metadata&&(r.metadata.status="corrected",r.metadata.correction=n),Q(t,e,{status:"corrected",correction:n});const l=(n||"").trim();l&&await E(t,l)}async function ut(t,e,n={}){const o=S();try{return await o.sendRaw({type:"chat.intent.classify-followup",sessionId:t,input:e,context:n},2e4)}catch{return null}}function ft(t,e,n,o={}){y(t).push(ht(e,n,o))}function dt(t,e){const n=S(),o=m[t];o&&(n.answerQuestion(t,o.requestId,e),delete m[t])}async function pt(t){const e=S();if(N(e),s.value=t,b(t,e),!f[t]||f[t].length===0)try{await e.resumeSession(t)}catch{}}const mt=yt(()=>x(s.value));return{sessions:a,currentSessionId:s,messages:f,streaming:c,pendingQuestion:m,loadingBySession:g,isLoading:mt,contextMode:M,setContextMode:H,intentEnabled:w,setIntentEnabled:Z,customQuickPrompts:I,setCustomQuickPrompts:et,pendingAutoSend:D,scheduleAutoSend:nt,clearAutoSend:ot,getIsLoading:x,loadSessions:rt,createSession:at,sendMessage:E,submitUserInput:ct,confirmIntent:lt,correctIntent:it,classifyFollowupIntent:ut,pushFollowupIntentBanner:ft,answerQuestion:dt,switchSession:pt,getMessages:y}});export{C as M,Dt as u};
@@ -1 +1 @@
1
- import{h as t}from"./index-BAy0ks7N.js";const n=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"];function C(e,s){return n.reduce((o,r)=>{const u=e[`${r}-1`],l=e[`${r}-3`],i=e[`${r}-6`],a=e[`${r}-7`];return t(t({},o),s(r,{lightColor:u,lightBorderColor:l,darkColor:i,textColor:a}))},{})}const c=n.map(e=>`${e}-inverse`),g=["success","processing","error","default","warning"];function m(e){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)?[...c,...n].includes(e):n.includes(e)}function p(e){return g.includes(e)}export{n as P,p as a,C as g,m as i};
1
+ import{h as t}from"./index-19d37fVJ.js";const n=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"];function C(e,s){return n.reduce((o,r)=>{const u=e[`${r}-1`],l=e[`${r}-3`],i=e[`${r}-6`],a=e[`${r}-7`];return t(t({},o),s(r,{lightColor:u,lightBorderColor:l,darkColor:i,textColor:a}))},{})}const c=n.map(e=>`${e}-inverse`),g=["success","processing","error","default","warning"];function m(e){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)?[...c,...n].includes(e):n.includes(e)}function p(e){return g.includes(e)}export{n as P,p as a,C as g,m as i};
@@ -1 +1 @@
1
- import{h as r}from"./index-BAy0ks7N.js";function a(o,t,i){const{focusElCls:e,focus:n,borderElCls:s}=i,m=s?"> *":"",d=["hover",n?"focus":null,"active"].filter(Boolean).map(c=>`&:${c} ${m}`).join(",");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:-o.lineWidth},"&-item":r(r({[d]:{zIndex:2}},e?{[`&${e}`]:{zIndex:2}}:{}),{[`&[disabled] ${m}`]:{zIndex:0}})}}function $(o,t,i){const{borderElCls:e}=i,n=e?`> ${e}`:"";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${n}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${n}, &${o}-sm ${n}, &${o}-lg ${n}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${n}, &${o}-sm ${n}, &${o}-lg ${n}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function l(o){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0};const{componentCls:i}=o,e=`${i}-compact`;return{[e]:r(r({},a(o,e,t)),$(i,e,t))}}export{l as g};
1
+ import{h as r}from"./index-19d37fVJ.js";function a(o,t,i){const{focusElCls:e,focus:n,borderElCls:s}=i,m=s?"> *":"",d=["hover",n?"focus":null,"active"].filter(Boolean).map(c=>`&:${c} ${m}`).join(",");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:-o.lineWidth},"&-item":r(r({[d]:{zIndex:2}},e?{[`&${e}`]:{zIndex:2}}:{}),{[`&[disabled] ${m}`]:{zIndex:0}})}}function $(o,t,i){const{borderElCls:e}=i,n=e?`> ${e}`:"";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${n}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${n}, &${o}-sm ${n}, &${o}-lg ${n}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${n}, &${o}-sm ${n}, &${o}-lg ${n}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function l(o){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0};const{componentCls:i}=o,e=`${i}-compact`;return{[e]:r(r({},a(o,e,t)),$(i,e,t))}}export{l as g};
@@ -1 +1 @@
1
- import{h as s}from"./index-BAy0ks7N.js";import{i as c,b as a,a as i,p as u}from"./vendor-M5lGV-wr.js";function x(o){const t=Symbol("contextKey");return{useProvide:(r,n)=>{const e=i({});return u(t,e),a(()=>{s(e,r,n||{})}),e},useInject:()=>c(t,o)||{}}}export{x as c};
1
+ import{h as s}from"./index-19d37fVJ.js";import{i as c,b as a,a as i,p as u}from"./vendor-M5lGV-wr.js";function x(o){const t=Symbol("contextKey");return{useProvide:(r,n)=>{const e=i({});return u(t,e),a(()=>{s(e,r,n||{})}),e},useInject:()=>c(t,o)||{}}}export{x as c};
@@ -1 +1 @@
1
- import{l as O,M as y,b as v,i as T}from"./Trigger-D4yonKuU.js";import{a as s,S as f,l as x,d as w,p as C}from"./_getTag-BVc6NQ_K.js";import{i as c}from"./isSymbol-DAy2hlR5.js";function _(n,r){for(var e=-1,i=n==null?0:n.length,t=Array(i);++e<i;)t[e]=r(n[e],e,n);return t}var p=f?f.prototype:void 0,d=p?p.toString:void 0;function S(n){if(typeof n=="string")return n;if(s(n))return _(n,S)+"";if(c(n))return d?d.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function I(n){return n}function E(n,r,e){switch(e.length){case 0:return n.call(r);case 1:return n.call(r,e[0]);case 2:return n.call(r,e[0],e[1]);case 3:return n.call(r,e[0],e[1],e[2])}return n.apply(r,e)}var M=800,A=16,N=Date.now;function R(n){var r=0,e=0;return function(){var i=N(),t=A-(i-e);if(e=i,t>0){if(++r>=M)return arguments[0]}else r=0;return n.apply(void 0,arguments)}}function z(n){return function(){return n}}var l=(function(){try{var n=x(Object,"defineProperty");return n({},"",{}),n}catch{}})(),$=l?function(n,r){return l(n,"toString",{configurable:!0,enumerable:!1,value:z(r),writable:!0})}:I,F=R($);function H(n,r,e){r=="__proto__"&&l?l(n,r,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[r]=e}var V=Object.prototype,D=V.hasOwnProperty;function un(n,r,e){var i=n[r];(!(D.call(n,r)&&O(i,e))||e===void 0&&!(r in n))&&H(n,r,e)}var g=Math.max;function K(n,r,e){return r=g(r===void 0?n.length-1:r,0),function(){for(var i=arguments,t=-1,a=g(i.length-r,0),u=Array(a);++t<a;)u[t]=i[r+t];t=-1;for(var o=Array(r+1);++t<r;)o[t]=i[t];return o[r]=e(u),E(n,this,o)}}var U=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,X=/^\w*$/;function Z(n,r){if(s(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||c(n)?!0:X.test(n)||!U.test(n)||r!=null&&n in Object(r)}var q="Expected a function";function h(n,r){if(typeof n!="function"||r!=null&&typeof r!="function")throw new TypeError(q);var e=function(){var i=arguments,t=r?r.apply(this,i):i[0],a=e.cache;if(a.has(t))return a.get(t);var u=n.apply(this,i);return e.cache=a.set(t,u)||a,u};return e.cache=new(h.Cache||y),e}h.Cache=y;var G=500;function L(n){var r=h(n,function(i){return e.size===G&&e.clear(),i}),e=r.cache;return r}var B=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,J=/\\(\\)?/g,Q=L(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(B,function(e,i,t,a){r.push(t?a.replace(J,"$1"):i||e)}),r});function W(n){return n==null?"":S(n)}function P(n,r){return s(n)?n:Z(n,r)?[n]:Q(W(n))}function b(n){if(typeof n=="string"||c(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function on(n,r){r=P(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[b(r[e++])];return e&&e==i?n:void 0}var m=f?f.isConcatSpreadable:void 0;function Y(n){return s(n)||w(n)||!!(m&&n&&n[m])}function k(n,r,e,i,t){var a=-1,u=n.length;for(e||(e=Y),t||(t=[]);++a<u;){var o=n[a];e(o)?v(t,o):t[t.length]=o}return t}function j(n){var r=n==null?0:n.length;return r?k(n):[]}function sn(n){return F(K(n,void 0,j),n+"")}function nn(n,r){return n!=null&&r in Object(n)}function rn(n,r,e){r=P(r,n);for(var i=-1,t=r.length,a=!1;++i<t;){var u=b(r[i]);if(!(a=n!=null&&e(n,u)))break;n=n[u]}return a||++i!=t?a:(t=n==null?0:n.length,!!t&&C(t)&&T(u,t)&&(s(n)||w(n)))}function fn(n,r){return n!=null&&rn(n,r,nn)}export{un as a,on as b,P as c,H as d,Z as e,sn as f,_ as g,fn as h,I as i,K as o,F as s,b as t};
1
+ import{l as O,M as y,b as v,i as T}from"./Trigger-BERtmWcc.js";import{a as s,S as f,l as x,d as w,p as C}from"./_getTag-BVc6NQ_K.js";import{i as c}from"./isSymbol-DAy2hlR5.js";function _(n,r){for(var e=-1,i=n==null?0:n.length,t=Array(i);++e<i;)t[e]=r(n[e],e,n);return t}var p=f?f.prototype:void 0,d=p?p.toString:void 0;function S(n){if(typeof n=="string")return n;if(s(n))return _(n,S)+"";if(c(n))return d?d.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function I(n){return n}function E(n,r,e){switch(e.length){case 0:return n.call(r);case 1:return n.call(r,e[0]);case 2:return n.call(r,e[0],e[1]);case 3:return n.call(r,e[0],e[1],e[2])}return n.apply(r,e)}var M=800,A=16,N=Date.now;function R(n){var r=0,e=0;return function(){var i=N(),t=A-(i-e);if(e=i,t>0){if(++r>=M)return arguments[0]}else r=0;return n.apply(void 0,arguments)}}function z(n){return function(){return n}}var l=(function(){try{var n=x(Object,"defineProperty");return n({},"",{}),n}catch{}})(),$=l?function(n,r){return l(n,"toString",{configurable:!0,enumerable:!1,value:z(r),writable:!0})}:I,F=R($);function H(n,r,e){r=="__proto__"&&l?l(n,r,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[r]=e}var V=Object.prototype,D=V.hasOwnProperty;function un(n,r,e){var i=n[r];(!(D.call(n,r)&&O(i,e))||e===void 0&&!(r in n))&&H(n,r,e)}var g=Math.max;function K(n,r,e){return r=g(r===void 0?n.length-1:r,0),function(){for(var i=arguments,t=-1,a=g(i.length-r,0),u=Array(a);++t<a;)u[t]=i[r+t];t=-1;for(var o=Array(r+1);++t<r;)o[t]=i[t];return o[r]=e(u),E(n,this,o)}}var U=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,X=/^\w*$/;function Z(n,r){if(s(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||c(n)?!0:X.test(n)||!U.test(n)||r!=null&&n in Object(r)}var q="Expected a function";function h(n,r){if(typeof n!="function"||r!=null&&typeof r!="function")throw new TypeError(q);var e=function(){var i=arguments,t=r?r.apply(this,i):i[0],a=e.cache;if(a.has(t))return a.get(t);var u=n.apply(this,i);return e.cache=a.set(t,u)||a,u};return e.cache=new(h.Cache||y),e}h.Cache=y;var G=500;function L(n){var r=h(n,function(i){return e.size===G&&e.clear(),i}),e=r.cache;return r}var B=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,J=/\\(\\)?/g,Q=L(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(B,function(e,i,t,a){r.push(t?a.replace(J,"$1"):i||e)}),r});function W(n){return n==null?"":S(n)}function P(n,r){return s(n)?n:Z(n,r)?[n]:Q(W(n))}function b(n){if(typeof n=="string"||c(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function on(n,r){r=P(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[b(r[e++])];return e&&e==i?n:void 0}var m=f?f.isConcatSpreadable:void 0;function Y(n){return s(n)||w(n)||!!(m&&n&&n[m])}function k(n,r,e,i,t){var a=-1,u=n.length;for(e||(e=Y),t||(t=[]);++a<u;){var o=n[a];e(o)?v(t,o):t[t.length]=o}return t}function j(n){var r=n==null?0:n.length;return r?k(n):[]}function sn(n){return F(K(n,void 0,j),n+"")}function nn(n,r){return n!=null&&r in Object(n)}function rn(n,r,e){r=P(r,n);for(var i=-1,t=r.length,a=!1;++i<t;){var u=b(r[i]);if(!(a=n!=null&&e(n,u)))break;n=n[u]}return a||++i!=t?a:(t=n==null?0:n.length,!!t&&C(t)&&T(u,t)&&(s(n)||w(n)))}function fn(n,r){return n!=null&&rn(n,r,nn)}export{un as a,on as b,P as c,H as d,Z as e,sn as f,_ as g,fn as h,I as i,K as o,F as s,b as t};