chainlesschain 0.162.3 → 0.162.8

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 (146) hide show
  1. package/bin/chainlesschain.js +0 -0
  2. package/package.json +2 -2
  3. package/src/assets/web-panel/.build-hash +1 -1
  4. package/src/assets/web-panel/assets/{AIOps-BHcJlF4M.js → AIOps-aMUJYSpU.js} +1 -1
  5. package/src/assets/web-panel/assets/{ActionButton-QNqNYP_E.js → ActionButton-OR0lRZdD.js} +1 -1
  6. package/src/assets/web-panel/assets/{Analytics-DWrmU2MM.js → Analytics-BfMp4CEg.js} +2 -2
  7. package/src/assets/web-panel/assets/{AppLayout-0BXhjvFX.js → AppLayout-DsCuOVxT.js} +2 -2
  8. package/src/assets/web-panel/assets/{Audit-Cns_OJ3y.js → Audit-_AgBKCnk.js} +1 -1
  9. package/src/assets/web-panel/assets/{Backup-BWXKm8S2.js → Backup-DuMKrzQE.js} +1 -1
  10. package/src/assets/web-panel/assets/{BaseInput-DMtM90I4.js → BaseInput-6If50B9h.js} +1 -1
  11. package/src/assets/web-panel/assets/{Chat-CPSQIJkd.js → Chat-LKExaE9D.js} +1 -1
  12. package/src/assets/web-panel/assets/{Checkbox-CdoTzEcu.js → Checkbox-lAve8IZ7.js} +1 -1
  13. package/src/assets/web-panel/assets/{Codegen-DiMm-2CJ.js → Codegen-BGRrXyxs.js} +1 -1
  14. package/src/assets/web-panel/assets/{Col-Dw8uRsh8.js → Col-B8xEKq-w.js} +1 -1
  15. package/src/assets/web-panel/assets/{Community-DF6oPrrt.js → Community-CHHfDSp6.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compact-DDeBOvFc.js → Compact-C2lhX-05.js} +1 -1
  17. package/src/assets/web-panel/assets/{Compliance-cpcX8foc.js → Compliance-DfVk77IC.js} +1 -1
  18. package/src/assets/web-panel/assets/{Cowork-BnF4dCvO.js → Cowork-BQhdnULG.js} +1 -1
  19. package/src/assets/web-panel/assets/{Cron-CNm5yzGt.js → Cron-D97i0_EI.js} +1 -1
  20. package/src/assets/web-panel/assets/{Crosschain-1fdaoWnO.js → Crosschain-Cve_HQ-5.js} +1 -1
  21. package/src/assets/web-panel/assets/{DID-CgWgrQjr.js → DID-B7BoWEdP.js} +1 -1
  22. package/src/assets/web-panel/assets/{Dashboard-dGcTq_hg.js → Dashboard-DF2CkjR8.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dropdown-CMcWp2f1.js → Dropdown-D4Z1jwWu.js} +1 -1
  24. package/src/assets/web-panel/assets/{Federation-BVmtVOzD.js → Federation-DwvTsJFa.js} +1 -1
  25. package/src/assets/web-panel/assets/{FormItemContext-BTuMR6zf.js → FormItemContext-BDiTma_8.js} +1 -1
  26. package/src/assets/web-panel/assets/{Git-2itzzOWU.js → Git-B8EfEU-1.js} +2 -2
  27. package/src/assets/web-panel/assets/{Governance-BD5nFtjx.js → Governance-bQA7Tept.js} +1 -1
  28. package/src/assets/web-panel/assets/{Inference-BqTjotuw.js → Inference-D34fMYbV.js} +1 -1
  29. package/src/assets/web-panel/assets/{KnowledgeGraph-CkJCUp_X.js → KnowledgeGraph-B_8bBmGM.js} +1 -1
  30. package/src/assets/web-panel/assets/{Logs-BezIQuu3.js → Logs-CwJhYTVt.js} +1 -1
  31. package/src/assets/web-panel/assets/{Marketplace-BQi8NC94.js → Marketplace-BD3uuzww.js} +1 -1
  32. package/src/assets/web-panel/assets/{McpTools-UDm4tI8g.js → McpTools-D_Zwvily.js} +1 -1
  33. package/src/assets/web-panel/assets/{Memory-b3k3SJXP.js → Memory-jVF57XHl.js} +1 -1
  34. package/src/assets/web-panel/assets/{MobileBridge-CHysUGzj.js → MobileBridge-ClAtqJaU.js} +1 -1
  35. package/src/assets/web-panel/assets/{MobileProjects-H5DjqNIw.js → MobileProjects-B19KSA4P.js} +1 -1
  36. package/src/assets/web-panel/assets/{Mtc-B-kn2cbZ.js → Mtc-DxajYtbq.js} +1 -1
  37. package/src/assets/web-panel/assets/{MtcAudit-BSeDGJAO.js → MtcAudit-DlKwbPGL.js} +1 -1
  38. package/src/assets/web-panel/assets/{Multisig-BSwWbNCn.js → Multisig-DuBQn3FV.js} +2 -2
  39. package/src/assets/web-panel/assets/{NLProgramming-B7fTKT9-.js → NLProgramming-oRBlzbNU.js} +1 -1
  40. package/src/assets/web-panel/assets/{Notes-CE7Dxyik.js → Notes-HOvoKAEz.js} +1 -1
  41. package/src/assets/web-panel/assets/{NotificationSettings-BrWPb12X.js → NotificationSettings-bArFAv3j.js} +1 -1
  42. package/src/assets/web-panel/assets/{Organization-BvMcmpZ-.js → Organization-B4s1Rn39.js} +4 -4
  43. package/src/assets/web-panel/assets/{Overflow-9VpUiyX3.js → Overflow-C2_V35KO.js} +1 -1
  44. package/src/assets/web-panel/assets/{P2P-CZiZLuH6.js → P2P-BZ3EQxna.js} +1 -1
  45. package/src/assets/web-panel/assets/{Permissions-7xPYU8o3.js → Permissions-Bo5AXf7h.js} +1 -1
  46. package/src/assets/web-panel/assets/PersonalDataHub-BK7I0Rsb.css +1 -0
  47. package/src/assets/web-panel/assets/PersonalDataHub-Gw18y83j.js +1 -0
  48. package/src/assets/web-panel/assets/{Pipeline-BXmWkBtJ.js → Pipeline-_733qEBF.js} +1 -1
  49. package/src/assets/web-panel/assets/{Privacy-Bowi-wqF.js → Privacy-BLYBBxeR.js} +1 -1
  50. package/src/assets/web-panel/assets/{ProjectInit-BW1Xj7_l.js → ProjectInit-C8cQg8oo.js} +1 -1
  51. package/src/assets/web-panel/assets/{ProjectSettings-pDbBvJFG.js → ProjectSettings-Bahm9oQJ.js} +1 -1
  52. package/src/assets/web-panel/assets/{Projects-D32hRs2K.js → Projects-BsqCBs7g.js} +1 -1
  53. package/src/assets/web-panel/assets/{Providers-fvnKRdFc.js → Providers-BRJ9jKvG.js} +1 -1
  54. package/src/assets/web-panel/assets/{QuickAsk-DBZrimTb.js → QuickAsk-B5eH5ufy.js} +1 -1
  55. package/src/assets/web-panel/assets/{Recommend-B_leuPdE.js → Recommend-D4rYVV0L.js} +1 -1
  56. package/src/assets/web-panel/assets/{Reputation-9YJu2Q0s.js → Reputation-h1wjkVly.js} +1 -1
  57. package/src/assets/web-panel/assets/{Row-BwDaJw-R.js → Row-DuvWW403.js} +1 -1
  58. package/src/assets/web-panel/assets/{RssFeed-CCwGtGbs.js → RssFeed-B-NY4txM.js} +1 -1
  59. package/src/assets/web-panel/assets/{Search-CLdXqpfz.js → Search-CLjqgYPf.js} +1 -1
  60. package/src/assets/web-panel/assets/{Security-_It0GsWS.js → Security-_KySjOq5.js} +1 -1
  61. package/src/assets/web-panel/assets/{Services-jBxBWGGT.js → Services-CN9GmECL.js} +1 -1
  62. package/src/assets/web-panel/assets/{Skeleton-DR_EuFFW.js → Skeleton-Bcu8eqiJ.js} +1 -1
  63. package/src/assets/web-panel/assets/{Skills-DsHcMNEk.js → Skills-3oeFeeEN.js} +1 -1
  64. package/src/assets/web-panel/assets/{Sla-Be0UaX-h.js → Sla-CGTcZtVL.js} +1 -1
  65. package/src/assets/web-panel/assets/{SpeechSettings-uUhDyyHj.js → SpeechSettings-BCXs-HN2.js} +1 -1
  66. package/src/assets/web-panel/assets/{SyncSettings-CUAwaSnj.js → SyncSettings-FGSbecSU.js} +1 -1
  67. package/src/assets/web-panel/assets/{Tasks-CUVZww9Q.js → Tasks-_12fFaUS.js} +1 -1
  68. package/src/assets/web-panel/assets/{Templates-WLZcNzJ_.js → Templates-BhfiSNuq.js} +1 -1
  69. package/src/assets/web-panel/assets/{Tenant-FgN0uYm6.js → Tenant-Bk08XHaK.js} +1 -1
  70. package/src/assets/web-panel/assets/{Terminal-BzLHjHyj.js → Terminal-BN4P8zso.js} +1 -1
  71. package/src/assets/web-panel/assets/{Tokens-z7lyRr40.js → Tokens-C1FHxUfU.js} +1 -1
  72. package/src/assets/web-panel/assets/{Trigger-HxLdC9ne.js → Trigger-DKmcgMsg.js} +1 -1
  73. package/src/assets/web-panel/assets/{Trust-DggmMxpI.js → Trust-gSo8e3sa.js} +1 -1
  74. package/src/assets/web-panel/assets/{UkeySign-BO-pKTZ_.js → UkeySign-DxdzNrTS.js} +1 -1
  75. package/src/assets/web-panel/assets/{VideoEditing-DdLdJ9Ps.js → VideoEditing-CZ_IqAw_.js} +1 -1
  76. package/src/assets/web-panel/assets/{Wallet-F8EfdQDN.js → Wallet-ztJldhlc.js} +1 -1
  77. package/src/assets/web-panel/assets/{WebAuthn-Bi2Kf8Ev.js → WebAuthn-IWR5yaHJ.js} +3 -3
  78. package/src/assets/web-panel/assets/{WorkflowEditor-DUHk4Y0A.js → WorkflowEditor-BC7bHrH9.js} +1 -1
  79. package/src/assets/web-panel/assets/{chat-BMz8ik6R.js → chat-bWCVi480.js} +1 -1
  80. package/src/assets/web-panel/assets/{colors-DTTx1bVY.js → colors-tk9UcMJh.js} +1 -1
  81. package/src/assets/web-panel/assets/{compact-item-BjZyyKpa.js → compact-item-DvrBqRW0.js} +1 -1
  82. package/src/assets/web-panel/assets/{createContext-D0Ztn7R_.js → createContext-Dh48yEoJ.js} +1 -1
  83. package/src/assets/web-panel/assets/{hasIn-BeXm1bJ2.js → hasIn-DhFZqw2W.js} +1 -1
  84. package/src/assets/web-panel/assets/icons-CLQTHa5-.js +57 -0
  85. package/src/assets/web-panel/assets/{index-CuDNPqlD.js → index-B1Km9jHJ.js} +1 -1
  86. package/src/assets/web-panel/assets/{index-DIoinlAY.js → index-B5sCqkrI.js} +1 -1
  87. package/src/assets/web-panel/assets/{index-D1CV-6q1.js → index-BBn2bAO4.js} +1 -1
  88. package/src/assets/web-panel/assets/{index-CqkwXe3s.js → index-BMhrHykJ.js} +1 -1
  89. package/src/assets/web-panel/assets/{index-DB1i3Cfr.js → index-BQg3zkF3.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-D1coHqyT.js → index-BdM_h28f.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-DXSXIknb.js → index-BfZhEeCu.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-DRNxWV3i.js → index-BgKxsNPN.js} +1 -1
  93. package/src/assets/web-panel/assets/{index-B_juAGfN.js → index-BqCbH37-.js} +4 -4
  94. package/src/assets/web-panel/assets/index-Btv3yJqH.js +1 -0
  95. package/src/assets/web-panel/assets/{index-aBdRRXWO.js → index-C-T0Izic.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-BDmMBKM_.js → index-C1q29SZg.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-tUIluCPu.js → index-C2LSgP0_.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-DfxUN2LB.js → index-C5Q_AIon.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-BHuIMHcS.js → index-C8NvrPso.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-BxIq_rps.js → index-CCiWpUyi.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-OjH2wDtW.js → index-CDVk418O.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-BiAjZ9Iq.js → index-CE7s9aDu.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-BUFpZk0I.js → index-CGmfKi-O.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-CobyvwP0.js → index-CH7lkYCZ.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-JTN4jzka.js → index-Ci_43YbF.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-BDRzvi5v.js → index-CugbuyeG.js} +1 -1
  107. package/src/assets/web-panel/assets/index-D6Nx0oIG.js +1 -0
  108. package/src/assets/web-panel/assets/{index-BWRsbH6v.js → index-DCeSV2ph.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-DLJnAsec.js → index-DI382M6n.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-CGudWWwE.js → index-DTbb54GX.js} +2 -2
  111. package/src/assets/web-panel/assets/{index-DTzwBmBS.js → index-DVMUHzwr.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-By4zsU8r.js → index-DeWB6vZV.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-DnATlZR7.js → index-Dja_xcjz.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-Da_XUjv2.js → index-DmyUdBoW.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-C6Isxhje.js → index-DyzV-4bw.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-Dx7XPVkb.js → index-JcMiXnz7.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-NppMuZBM.js → index-OGb7oHqA.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-DLDHcuz4.js → index-ORgr-yOQ.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-DMvkBq2d.js → index-PbHsGeoK.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-nwkYgoRS.js → index-R68d0WjD.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-D-niPBwZ.js → index-Z1-a86y7.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-xN0WCVmC.js → index-g_WPIICs.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-BODKOjRZ.js → index-uvwXPlKL.js} +1 -1
  124. package/src/assets/web-panel/assets/{initDefaultProps-DE_gVS_i.js → initDefaultProps-lrtHMmWq.js} +1 -1
  125. package/src/assets/web-panel/assets/{motion-BiRUGscQ.js → motion-Dna0fLLD.js} +1 -1
  126. package/src/assets/web-panel/assets/{move-DMEzVMJZ.js → move-B77ZnXvW.js} +1 -1
  127. package/src/assets/web-panel/assets/{omit-DBh74Ui4.js → omit-CLI0u4xr.js} +1 -1
  128. package/src/assets/web-panel/assets/{pickAttrs-D6PQbWuo.js → pickAttrs-CsvVxvao.js} +1 -1
  129. package/src/assets/web-panel/assets/{placementArrow-BYkdt9jF.js → placementArrow-gCZvBkZg.js} +1 -1
  130. package/src/assets/web-panel/assets/{responsiveObserve-C2ES6P0V.js → responsiveObserve-B4d5HJeN.js} +1 -1
  131. package/src/assets/web-panel/assets/{slide-zGdjevxe.js → slide-DmExRlkt.js} +1 -1
  132. package/src/assets/web-panel/assets/{statusUtils-Cf6eRpR7.js → statusUtils-BkcOP5ZQ.js} +1 -1
  133. package/src/assets/web-panel/assets/{styleChecker-DZZx_bHs.js → styleChecker-tL2BFwwe.js} +1 -1
  134. package/src/assets/web-panel/assets/{useFlexGapSupport-B6q6zt9X.js → useFlexGapSupport-C-aUgESq.js} +1 -1
  135. package/src/assets/web-panel/assets/{useFs-DjaBUk_P.js → useFs-KT2jItx2.js} +1 -1
  136. package/src/assets/web-panel/assets/{vnode-CDF4X084.js → vnode-DJz8D0zb.js} +1 -1
  137. package/src/assets/web-panel/assets/{zoom-C9FCvBpV.js → zoom-BqXtO25S.js} +1 -1
  138. package/src/assets/web-panel/index.html +2 -2
  139. package/src/gateways/ws/message-dispatcher.js +35 -1
  140. package/src/gateways/ws/personal-data-hub-protocol.js +142 -3
  141. package/src/lib/personal-data-hub-wiring.js +121 -0
  142. package/src/assets/web-panel/assets/PersonalDataHub-BoAsj3rP.js +0 -1
  143. package/src/assets/web-panel/assets/PersonalDataHub-C5HcGC5x.css +0 -1
  144. package/src/assets/web-panel/assets/icons-BFHq5fEF.js +0 -57
  145. package/src/assets/web-panel/assets/index-DJOgV0SI.js +0 -1
  146. package/src/assets/web-panel/assets/index-FpewH8xy.js +0 -1
@@ -1,4 +1,4 @@
1
- import{K as t}from"./index-B_juAGfN.js";import{i as s}from"./motion-BiRUGscQ.js";const m=new t("antMoveDownIn",{"0%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),f=new t("antMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0}}),c=new t("antMoveLeftIn",{"0%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),y=new t("antMoveLeftOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),p=new t("antMoveRightIn",{"0%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),O=new t("antMoveRightOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),g=new t("antMoveUpIn",{"0%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),v=new t("antMoveUpOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0}}),l={"move-up":{inKeyframes:g,outKeyframes:v},"move-down":{inKeyframes:m,outKeyframes:f},"move-left":{inKeyframes:c,outKeyframes:y},"move-right":{inKeyframes:p,outKeyframes:O}},w=(n,a)=>{const{antCls:o}=n,r=`${o}-${a}`,{inKeyframes:i,outKeyframes:e}=l[a];return[s(r,i,e,n.motionDurationMid),{[`
1
+ import{K as t}from"./index-BqCbH37-.js";import{i as s}from"./motion-Dna0fLLD.js";const m=new t("antMoveDownIn",{"0%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),f=new t("antMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0}}),c=new t("antMoveLeftIn",{"0%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),y=new t("antMoveLeftOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),p=new t("antMoveRightIn",{"0%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),O=new t("antMoveRightOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),g=new t("antMoveUpIn",{"0%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),v=new t("antMoveUpOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0}}),l={"move-up":{inKeyframes:g,outKeyframes:v},"move-down":{inKeyframes:m,outKeyframes:f},"move-left":{inKeyframes:c,outKeyframes:y},"move-right":{inKeyframes:p,outKeyframes:O}},w=(n,a)=>{const{antCls:o}=n,r=`${o}-${a}`,{inKeyframes:i,outKeyframes:e}=l[a];return[s(r,i,e,n.motionDurationMid),{[`
2
2
  ${r}-enter,
3
3
  ${r}-appear
4
4
  `]:{opacity:0,animationTimingFunction:n.motionEaseOutCirc},[`${r}-leave`]:{animationTimingFunction:n.motionEaseInOutCirc}}]};export{w as i};
@@ -1 +1 @@
1
- import{h as s}from"./index-B_juAGfN.js";function a(n,t){const e=s({},n);for(let o=0;o<t.length;o+=1){const r=t[o];delete e[r]}return e}export{a as o};
1
+ import{h as s}from"./index-BqCbH37-.js";function a(n,t){const e=s({},n);for(let o=0;o<t.length;o+=1){const r=t[o];delete e[r]}return e}export{a as o};
@@ -1,4 +1,4 @@
1
- import{h as i}from"./index-B_juAGfN.js";const l=`accept acceptcharset accesskey action allowfullscreen allowtransparency
1
+ import{h as i}from"./index-BqCbH37-.js";const l=`accept acceptcharset accesskey action allowfullscreen allowtransparency
2
2
  alt async autocomplete autofocus autoplay capture cellpadding cellspacing challenge
3
3
  charset checked classid classname colspan cols content contenteditable contextmenu
4
4
  controls coords crossorigin data datetime default defer dir disabled download draggable
@@ -1 +1 @@
1
- import{h as i}from"./index-B_juAGfN.js";const L=(e,o,t,n,p)=>{const r=e/2,a=0,s=r,m=t*1/Math.sqrt(2),h=r-t*(1-1/Math.sqrt(2)),b=r-o*(1/Math.sqrt(2)),u=t*(Math.sqrt(2)-1)+o*(1/Math.sqrt(2)),g=2*r-b,w=u,d=2*r-m,c=h,A=2*r-a,x=s,v=r*Math.sqrt(2)+t*(Math.sqrt(2)-2),$=t*(Math.sqrt(2)-1);return{pointerEvents:"none",width:e,height:e,overflow:"hidden","&::after":{content:'""',position:"absolute",width:v,height:v,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${o}px 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:p,zIndex:0,background:"transparent"},"&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:e,height:e/2,background:n,clipPath:{_multi_value_:!0,value:[`polygon(${$}px 100%, 50% ${$}px, ${2*r-$}px 100%, ${$}px 100%)`,`path('M ${a} ${s} A ${t} ${t} 0 0 0 ${m} ${h} L ${b} ${u} A ${o} ${o} 0 0 1 ${g} ${w} L ${d} ${c} A ${t} ${t} 0 0 0 ${A} ${x} Z')`]},content:'""'}}},f={adjustX:1,adjustY:1},l=[0,0],j={left:{points:["cr","cl"],overflow:f,offset:[-4,0],targetOffset:l},right:{points:["cl","cr"],overflow:f,offset:[4,0],targetOffset:l},top:{points:["bc","tc"],overflow:f,offset:[0,-4],targetOffset:l},bottom:{points:["tc","bc"],overflow:f,offset:[0,4],targetOffset:l},topLeft:{points:["bl","tl"],overflow:f,offset:[0,-4],targetOffset:l},leftTop:{points:["tr","tl"],overflow:f,offset:[-4,0],targetOffset:l},topRight:{points:["br","tr"],overflow:f,offset:[0,-4],targetOffset:l},rightTop:{points:["tl","tr"],overflow:f,offset:[4,0],targetOffset:l},bottomRight:{points:["tr","br"],overflow:f,offset:[0,4],targetOffset:l},rightBottom:{points:["bl","br"],overflow:f,offset:[4,0],targetOffset:l},bottomLeft:{points:["tl","bl"],overflow:f,offset:[0,4],targetOffset:l},leftBottom:{points:["br","bl"],overflow:f,offset:[-4,0],targetOffset:l}},M={adjustX:1,adjustY:1},O={adjustX:0,adjustY:0},T=[0,0];function k(e){return typeof e=="boolean"?e?M:O:i(i({},O),e)}function Y(e){const{arrowWidth:o=4,horizontalArrowShift:t=16,verticalArrowShift:n=8,autoAdjustOverflow:p,arrowPointAtCenter:r}=e,a={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(t+o),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(n+o)]},topRight:{points:["br","tc"],offset:[t+o,-4]},rightTop:{points:["tl","cr"],offset:[4,-(n+o)]},bottomRight:{points:["tr","bc"],offset:[t+o,4]},rightBottom:{points:["bl","cr"],offset:[4,n+o]},bottomLeft:{points:["tl","bc"],offset:[-(t+o),4]},leftBottom:{points:["br","cl"],offset:[-4,n+o]}};return Object.keys(a).forEach(s=>{a[s]=r?i(i({},a[s]),{overflow:k(p),targetOffset:T}):i(i({},j[s]),{overflow:k(p)}),a[s].ignoreShake=!0}),a}function _(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return e.map(t=>`${o}${t}`).join(",")}const X=8;function B(e){const o=X,{sizePopupArrow:t,contentRadius:n,borderRadiusOuter:p,limitVerticalRadius:r}=e,a=t/2-Math.ceil(p*(Math.sqrt(2)-1)),s=(n>12?n+2:12)-a,m=r?o-a:s;return{dropdownArrowOffset:s,dropdownArrowOffsetVertical:m}}function q(e,o){const{componentCls:t,sizePopupArrow:n,marginXXS:p,borderRadiusXS:r,borderRadiusOuter:a,boxShadowPopoverArrow:s}=e,{colorBg:m,showArrowCls:h,contentRadius:b=e.borderRadiusLG,limitVerticalRadius:u}=o,{dropdownArrowOffsetVertical:g,dropdownArrowOffset:w}=B({sizePopupArrow:n,contentRadius:b,borderRadiusOuter:a,limitVerticalRadius:u}),d=n/2+p;return{[t]:{[`${t}-arrow`]:[i(i({position:"absolute",zIndex:1,display:"block"},L(n,r,a,m,s)),{"&:before":{background:m}})],[[`&-placement-top ${t}-arrow`,`&-placement-topLeft ${t}-arrow`,`&-placement-topRight ${t}-arrow`].join(",")]:{bottom:0,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top ${t}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},[`&-placement-topLeft ${t}-arrow`]:{left:{_skip_check_:!0,value:w}},[`&-placement-topRight ${t}-arrow`]:{right:{_skip_check_:!0,value:w}},[[`&-placement-bottom ${t}-arrow`,`&-placement-bottomLeft ${t}-arrow`,`&-placement-bottomRight ${t}-arrow`].join(",")]:{top:0,transform:"translateY(-100%)"},[`&-placement-bottom ${t}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},[`&-placement-bottomLeft ${t}-arrow`]:{left:{_skip_check_:!0,value:w}},[`&-placement-bottomRight ${t}-arrow`]:{right:{_skip_check_:!0,value:w}},[[`&-placement-left ${t}-arrow`,`&-placement-leftTop ${t}-arrow`,`&-placement-leftBottom ${t}-arrow`].join(",")]:{right:{_skip_check_:!0,value:0},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left ${t}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop ${t}-arrow`]:{top:g},[`&-placement-leftBottom ${t}-arrow`]:{bottom:g},[[`&-placement-right ${t}-arrow`,`&-placement-rightTop ${t}-arrow`,`&-placement-rightBottom ${t}-arrow`].join(",")]:{left:{_skip_check_:!0,value:0},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right ${t}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop ${t}-arrow`]:{top:g},[`&-placement-rightBottom ${t}-arrow`]:{bottom:g},[_(["&-placement-topLeft","&-placement-top","&-placement-topRight"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingBottom:d},[_(["&-placement-bottomLeft","&-placement-bottom","&-placement-bottomRight"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingTop:d},[_(["&-placement-leftTop","&-placement-left","&-placement-leftBottom"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingRight:{_skip_check_:!0,value:d}},[_(["&-placement-rightTop","&-placement-right","&-placement-rightBottom"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingLeft:{_skip_check_:!0,value:d}}}}}export{X as M,Y as a,B as b,q as g,j as p,L as r};
1
+ import{h as i}from"./index-BqCbH37-.js";const L=(e,o,t,n,p)=>{const r=e/2,a=0,s=r,m=t*1/Math.sqrt(2),h=r-t*(1-1/Math.sqrt(2)),b=r-o*(1/Math.sqrt(2)),u=t*(Math.sqrt(2)-1)+o*(1/Math.sqrt(2)),g=2*r-b,w=u,d=2*r-m,c=h,A=2*r-a,x=s,v=r*Math.sqrt(2)+t*(Math.sqrt(2)-2),$=t*(Math.sqrt(2)-1);return{pointerEvents:"none",width:e,height:e,overflow:"hidden","&::after":{content:'""',position:"absolute",width:v,height:v,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${o}px 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:p,zIndex:0,background:"transparent"},"&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:e,height:e/2,background:n,clipPath:{_multi_value_:!0,value:[`polygon(${$}px 100%, 50% ${$}px, ${2*r-$}px 100%, ${$}px 100%)`,`path('M ${a} ${s} A ${t} ${t} 0 0 0 ${m} ${h} L ${b} ${u} A ${o} ${o} 0 0 1 ${g} ${w} L ${d} ${c} A ${t} ${t} 0 0 0 ${A} ${x} Z')`]},content:'""'}}},f={adjustX:1,adjustY:1},l=[0,0],j={left:{points:["cr","cl"],overflow:f,offset:[-4,0],targetOffset:l},right:{points:["cl","cr"],overflow:f,offset:[4,0],targetOffset:l},top:{points:["bc","tc"],overflow:f,offset:[0,-4],targetOffset:l},bottom:{points:["tc","bc"],overflow:f,offset:[0,4],targetOffset:l},topLeft:{points:["bl","tl"],overflow:f,offset:[0,-4],targetOffset:l},leftTop:{points:["tr","tl"],overflow:f,offset:[-4,0],targetOffset:l},topRight:{points:["br","tr"],overflow:f,offset:[0,-4],targetOffset:l},rightTop:{points:["tl","tr"],overflow:f,offset:[4,0],targetOffset:l},bottomRight:{points:["tr","br"],overflow:f,offset:[0,4],targetOffset:l},rightBottom:{points:["bl","br"],overflow:f,offset:[4,0],targetOffset:l},bottomLeft:{points:["tl","bl"],overflow:f,offset:[0,4],targetOffset:l},leftBottom:{points:["br","bl"],overflow:f,offset:[-4,0],targetOffset:l}},M={adjustX:1,adjustY:1},O={adjustX:0,adjustY:0},T=[0,0];function k(e){return typeof e=="boolean"?e?M:O:i(i({},O),e)}function Y(e){const{arrowWidth:o=4,horizontalArrowShift:t=16,verticalArrowShift:n=8,autoAdjustOverflow:p,arrowPointAtCenter:r}=e,a={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(t+o),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(n+o)]},topRight:{points:["br","tc"],offset:[t+o,-4]},rightTop:{points:["tl","cr"],offset:[4,-(n+o)]},bottomRight:{points:["tr","bc"],offset:[t+o,4]},rightBottom:{points:["bl","cr"],offset:[4,n+o]},bottomLeft:{points:["tl","bc"],offset:[-(t+o),4]},leftBottom:{points:["br","cl"],offset:[-4,n+o]}};return Object.keys(a).forEach(s=>{a[s]=r?i(i({},a[s]),{overflow:k(p),targetOffset:T}):i(i({},j[s]),{overflow:k(p)}),a[s].ignoreShake=!0}),a}function _(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return e.map(t=>`${o}${t}`).join(",")}const X=8;function B(e){const o=X,{sizePopupArrow:t,contentRadius:n,borderRadiusOuter:p,limitVerticalRadius:r}=e,a=t/2-Math.ceil(p*(Math.sqrt(2)-1)),s=(n>12?n+2:12)-a,m=r?o-a:s;return{dropdownArrowOffset:s,dropdownArrowOffsetVertical:m}}function q(e,o){const{componentCls:t,sizePopupArrow:n,marginXXS:p,borderRadiusXS:r,borderRadiusOuter:a,boxShadowPopoverArrow:s}=e,{colorBg:m,showArrowCls:h,contentRadius:b=e.borderRadiusLG,limitVerticalRadius:u}=o,{dropdownArrowOffsetVertical:g,dropdownArrowOffset:w}=B({sizePopupArrow:n,contentRadius:b,borderRadiusOuter:a,limitVerticalRadius:u}),d=n/2+p;return{[t]:{[`${t}-arrow`]:[i(i({position:"absolute",zIndex:1,display:"block"},L(n,r,a,m,s)),{"&:before":{background:m}})],[[`&-placement-top ${t}-arrow`,`&-placement-topLeft ${t}-arrow`,`&-placement-topRight ${t}-arrow`].join(",")]:{bottom:0,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top ${t}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},[`&-placement-topLeft ${t}-arrow`]:{left:{_skip_check_:!0,value:w}},[`&-placement-topRight ${t}-arrow`]:{right:{_skip_check_:!0,value:w}},[[`&-placement-bottom ${t}-arrow`,`&-placement-bottomLeft ${t}-arrow`,`&-placement-bottomRight ${t}-arrow`].join(",")]:{top:0,transform:"translateY(-100%)"},[`&-placement-bottom ${t}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},[`&-placement-bottomLeft ${t}-arrow`]:{left:{_skip_check_:!0,value:w}},[`&-placement-bottomRight ${t}-arrow`]:{right:{_skip_check_:!0,value:w}},[[`&-placement-left ${t}-arrow`,`&-placement-leftTop ${t}-arrow`,`&-placement-leftBottom ${t}-arrow`].join(",")]:{right:{_skip_check_:!0,value:0},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left ${t}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop ${t}-arrow`]:{top:g},[`&-placement-leftBottom ${t}-arrow`]:{bottom:g},[[`&-placement-right ${t}-arrow`,`&-placement-rightTop ${t}-arrow`,`&-placement-rightBottom ${t}-arrow`].join(",")]:{left:{_skip_check_:!0,value:0},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right ${t}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop ${t}-arrow`]:{top:g},[`&-placement-rightBottom ${t}-arrow`]:{bottom:g},[_(["&-placement-topLeft","&-placement-top","&-placement-topRight"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingBottom:d},[_(["&-placement-bottomLeft","&-placement-bottom","&-placement-bottomRight"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingTop:d},[_(["&-placement-leftTop","&-placement-left","&-placement-leftBottom"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingRight:{_skip_check_:!0,value:d}},[_(["&-placement-rightTop","&-placement-right","&-placement-rightBottom"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingLeft:{_skip_check_:!0,value:d}}}}}export{X as M,Y as a,B as b,q as g,j as p,L as r};
@@ -1 +1 @@
1
- import{I as o,h}from"./index-B_juAGfN.js";import{f as x}from"./vendor-M5lGV-wr.js";const b=["xxxl","xxl","xl","lg","md","sm","xs"],p=r=>({xs:`(max-width: ${r.screenXSMax}px)`,sm:`(min-width: ${r.screenSM}px)`,md:`(min-width: ${r.screenMD}px)`,lg:`(min-width: ${r.screenLG}px)`,xl:`(min-width: ${r.screenXL}px)`,xxl:`(min-width: ${r.screenXXL}px)`,xxxl:`{min-width: ${r.screenXXXL}px}`});function w(){const[,r]=o();return x(()=>{const n=p(r.value),i=new Map;let a=-1,c={};return{matchHandlers:{},dispatch(e){return c=e,i.forEach(t=>t(c)),i.size>=1},subscribe(e){return i.size||this.register(),a+=1,i.set(a,e),e(c),a},unsubscribe(e){i.delete(e),i.size||this.unregister()},unregister(){Object.keys(n).forEach(e=>{const t=n[e],s=this.matchHandlers[t];s?.mql.removeListener(s?.listener)}),i.clear()},register(){Object.keys(n).forEach(e=>{const t=n[e],s=l=>{let{matches:m}=l;this.dispatch(h(h({},c),{[e]:m}))},d=window.matchMedia(t);d.addListener(s),this.matchHandlers[t]={mql:d,listener:s},s(d)})},responsiveMap:n}})}export{b as r,w as u};
1
+ import{I as o,h}from"./index-BqCbH37-.js";import{f as x}from"./vendor-M5lGV-wr.js";const b=["xxxl","xxl","xl","lg","md","sm","xs"],p=r=>({xs:`(max-width: ${r.screenXSMax}px)`,sm:`(min-width: ${r.screenSM}px)`,md:`(min-width: ${r.screenMD}px)`,lg:`(min-width: ${r.screenLG}px)`,xl:`(min-width: ${r.screenXL}px)`,xxl:`(min-width: ${r.screenXXL}px)`,xxxl:`{min-width: ${r.screenXXXL}px}`});function w(){const[,r]=o();return x(()=>{const n=p(r.value),i=new Map;let a=-1,c={};return{matchHandlers:{},dispatch(e){return c=e,i.forEach(t=>t(c)),i.size>=1},subscribe(e){return i.size||this.register(),a+=1,i.set(a,e),e(c),a},unsubscribe(e){i.delete(e),i.size||this.unregister()},unregister(){Object.keys(n).forEach(e=>{const t=n[e],s=this.matchHandlers[t];s?.mql.removeListener(s?.listener)}),i.clear()},register(){Object.keys(n).forEach(e=>{const t=n[e],s=l=>{let{matches:m}=l;this.dispatch(h(h({},c),{[e]:m}))},d=window.matchMedia(t);d.addListener(s),this.matchHandlers[t]={mql:d,listener:s},s(d)})},responsiveMap:n}})}export{b as r,w as u};
@@ -1,4 +1,4 @@
1
- import{K as n}from"./index-B_juAGfN.js";import{i as e}from"./motion-BiRUGscQ.js";const m=new n("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),f=new n("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),c=new n("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),l=new n("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),y=new n("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),p=new n("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),O=new n("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),d=new n("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}}),g={"slide-up":{inKeyframes:m,outKeyframes:f},"slide-down":{inKeyframes:c,outKeyframes:l},"slide-left":{inKeyframes:y,outKeyframes:p},"slide-right":{inKeyframes:O,outKeyframes:d}},K=(t,r)=>{const{antCls:a}=t,i=`${a}-${r}`,{inKeyframes:s,outKeyframes:o}=g[r];return[e(i,s,o,t.motionDurationMid),{[`
1
+ import{K as n}from"./index-BqCbH37-.js";import{i as e}from"./motion-Dna0fLLD.js";const m=new n("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),f=new n("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),c=new n("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),l=new n("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),y=new n("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),p=new n("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),O=new n("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),d=new n("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}}),g={"slide-up":{inKeyframes:m,outKeyframes:f},"slide-down":{inKeyframes:c,outKeyframes:l},"slide-left":{inKeyframes:y,outKeyframes:p},"slide-right":{inKeyframes:O,outKeyframes:d}},K=(t,r)=>{const{antCls:a}=t,i=`${a}-${r}`,{inKeyframes:s,outKeyframes:o}=g[r];return[e(i,s,o,t.motionDurationMid),{[`
2
2
  ${i}-enter,
3
3
  ${i}-appear
4
4
  `]:{transform:"scale(0)",transformOrigin:"0% 0%",opacity:0,animationTimingFunction:t.motionEaseOutQuint},[`${i}-leave`]:{animationTimingFunction:t.motionEaseInQuint}}]};export{f as a,c as b,m as c,K as i,l as s};
@@ -1 +1 @@
1
- import{i as e}from"./index-B_juAGfN.js";function r(a,s,t){return e({[`${a}-status-success`]:s==="success",[`${a}-status-warning`]:s==="warning",[`${a}-status-error`]:s==="error",[`${a}-status-validating`]:s==="validating",[`${a}-has-feedback`]:t})}const c=(a,s)=>s||a;export{c as a,r as g};
1
+ import{i as e}from"./index-BqCbH37-.js";function r(a,s,t){return e({[`${a}-status-success`]:s==="success",[`${a}-status-warning`]:s==="warning",[`${a}-status-error`]:s==="error",[`${a}-status-validating`]:s==="validating",[`${a}-has-feedback`]:t})}const c=(a,s)=>s||a;export{c as a,r as g};
@@ -1 +1 @@
1
- import{A as d}from"./index-B_juAGfN.js";const i=()=>d()&&window.document.documentElement,c=e=>{if(d()&&window.document.documentElement){const t=Array.isArray(e)?e:[e],{documentElement:n}=window.document;return t.some(r=>r in n.style)}return!1},u=(e,t)=>{if(!c(e))return!1;const n=document.createElement("div"),r=n.style[e];return n.style[e]=t,n.style[e]!==r};function s(e,t){return!Array.isArray(e)&&t!==void 0?u(e,t):c(e)}let o;const p=()=>{if(!i())return!1;if(o!==void 0)return o;const e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),o=e.scrollHeight===1,document.body.removeChild(e),o};export{i as c,p as d,s as i};
1
+ import{A as d}from"./index-BqCbH37-.js";const i=()=>d()&&window.document.documentElement,c=e=>{if(d()&&window.document.documentElement){const t=Array.isArray(e)?e:[e],{documentElement:n}=window.document;return t.some(r=>r in n.style)}return!1},u=(e,t)=>{if(!c(e))return!1;const n=document.createElement("div"),r=n.style[e];return n.style[e]=t,n.style[e]!==r};function s(e,t){return!Array.isArray(e)&&t!==void 0?u(e,t):c(e)}let o;const p=()=>{if(!i())return!1;if(o!==void 0)return o;const e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),o=e.scrollHeight===1,document.body.removeChild(e),o};export{i as c,p as d,s as i};
@@ -1 +1 @@
1
- import{d as o}from"./styleChecker-DZZx_bHs.js";import{o as t,s}from"./vendor-M5lGV-wr.js";const r=(()=>{const e=s(!1);return t(()=>{e.value=o()}),e});export{r as u};
1
+ import{d as o}from"./styleChecker-tL2BFwwe.js";import{o as t,s}from"./vendor-M5lGV-wr.js";const r=(()=>{const e=s(!1);return t(()=>{e.value=o()}),e});export{r as u};
@@ -1 +1 @@
1
- import{u as d}from"./index-B_juAGfN.js";import{u as c}from"./useShellMode-CgR0wCYM.js";function u({accept:l=""}={}){return new Promise(a=>{if(typeof document>"u"){a({canceled:!0,path:null,content:null});return}const n=document.createElement("input");n.type="file",l&&(n.accept=l),n.style.display="none",document.body.appendChild(n);let o=!1;const i=()=>{n.parentNode&&n.parentNode.removeChild(n)},r=()=>{if(o)return;o=!0;const e=n.files&&n.files[0];if(!e){i(),a({canceled:!0,path:null,content:null});return}const t=new FileReader;t.onload=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:typeof t.result=="string"?t.result:""})},t.onerror=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:null,reason:"read_failed"})},t.readAsText(e)};n.addEventListener("change",r),n.click()})}function f(l,{defaultPath:a="download.txt"}={}){if(typeof document>"u")return{canceled:!0,path:null};const n=new Blob([l],{type:"text/plain"}),o=URL.createObjectURL(n),i=document.createElement("a");return i.href=o,i.download=a,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(o),{canceled:!1,path:a}}function p(l){if(!Array.isArray(l))return"";const a=[];for(const n of l)if(Array.isArray(n.extensions))for(const o of n.extensions)a.push(`.${o.replace(/^\./,"")}`);return a.join(",")}function m(){const l=d();async function a(r={}){if(c().isEmbedded){const e=await l.sendRaw({type:"fs.openDialog",title:r.title,filters:r.filters},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDialog failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,content:t.content??null,size:t.size,reason:t.reason}}return u({accept:p(r.filters)})}async function n(r,e={}){if(typeof r!="string")throw new Error("content must be a string");if(c().isEmbedded){const t=await l.sendRaw({type:"fs.saveDialog",title:e.title,defaultPath:e.defaultPath,filters:e.filters,content:r},6e4);if(t&&t.ok===!1)throw new Error(t.error||"fs.saveDialog failed");const s=t?.result??t;return{canceled:!!s.canceled,path:s.path??null}}return f(r,{defaultPath:e.defaultPath})}async function o(r,e={}){const t=JSON.stringify(r,null,2),s={...e,defaultPath:e.defaultPath||"data.json",filters:e.filters||[{name:"JSON",extensions:["json"]}]};return n(t,s)}async function i(r={}){if(!c().isEmbedded)return{canceled:!0,path:null,initialized:!1,unsupported:!0};const e=await l.sendRaw({type:"fs.openDirectory",title:r.title},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDirectory failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,initialized:!!t.initialized}}return{pickFileText:a,saveText:n,saveJson:o,pickDirectory:i}}export{m as u};
1
+ import{u as d}from"./index-BqCbH37-.js";import{u as c}from"./useShellMode-CgR0wCYM.js";function u({accept:l=""}={}){return new Promise(a=>{if(typeof document>"u"){a({canceled:!0,path:null,content:null});return}const n=document.createElement("input");n.type="file",l&&(n.accept=l),n.style.display="none",document.body.appendChild(n);let o=!1;const i=()=>{n.parentNode&&n.parentNode.removeChild(n)},r=()=>{if(o)return;o=!0;const e=n.files&&n.files[0];if(!e){i(),a({canceled:!0,path:null,content:null});return}const t=new FileReader;t.onload=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:typeof t.result=="string"?t.result:""})},t.onerror=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:null,reason:"read_failed"})},t.readAsText(e)};n.addEventListener("change",r),n.click()})}function f(l,{defaultPath:a="download.txt"}={}){if(typeof document>"u")return{canceled:!0,path:null};const n=new Blob([l],{type:"text/plain"}),o=URL.createObjectURL(n),i=document.createElement("a");return i.href=o,i.download=a,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(o),{canceled:!1,path:a}}function p(l){if(!Array.isArray(l))return"";const a=[];for(const n of l)if(Array.isArray(n.extensions))for(const o of n.extensions)a.push(`.${o.replace(/^\./,"")}`);return a.join(",")}function m(){const l=d();async function a(r={}){if(c().isEmbedded){const e=await l.sendRaw({type:"fs.openDialog",title:r.title,filters:r.filters},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDialog failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,content:t.content??null,size:t.size,reason:t.reason}}return u({accept:p(r.filters)})}async function n(r,e={}){if(typeof r!="string")throw new Error("content must be a string");if(c().isEmbedded){const t=await l.sendRaw({type:"fs.saveDialog",title:e.title,defaultPath:e.defaultPath,filters:e.filters,content:r},6e4);if(t&&t.ok===!1)throw new Error(t.error||"fs.saveDialog failed");const s=t?.result??t;return{canceled:!!s.canceled,path:s.path??null}}return f(r,{defaultPath:e.defaultPath})}async function o(r,e={}){const t=JSON.stringify(r,null,2),s={...e,defaultPath:e.defaultPath||"data.json",filters:e.filters||[{name:"JSON",extensions:["json"]}]};return n(t,s)}async function i(r={}){if(!c().isEmbedded)return{canceled:!0,path:null,initialized:!1,unsupported:!0};const e=await l.sendRaw({type:"fs.openDirectory",title:r.title},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDirectory failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,initialized:!!t.initialized}}return{pickFileText:a,saveText:n,saveJson:o,pickDirectory:i}}export{m as u};
@@ -1 +1 @@
1
- import{M as i,h as a,w as l}from"./index-B_juAGfN.js";import{a5 as o,k as d,C as g,F as f,A as p}from"./vendor-M5lGV-wr.js";function c(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,u=e;if(Array.isArray(e)&&(u=i(e)[0]),!u)return null;const n=o(u,r,s);return n.props=t?a(a({},n.props),r):n.props,l(typeof n.props.class!="object"),n}function v(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return e.map(s=>c(s,r,t))}function N(e,r,t){p(o(e,a({},r)),t)}const m=e=>(e||[]).some(r=>d(r)?!(r.type===g||r.type===f&&!m(r.children)):!0)?e:null;function h(e,r,t,s){var u;const n=(u=e[r])===null||u===void 0?void 0:u.call(e,t);return m(n)?n:s?.()}export{h as a,v as b,c,N as t};
1
+ import{M as i,h as a,w as l}from"./index-BqCbH37-.js";import{a5 as o,k as d,C as g,F as f,A as p}from"./vendor-M5lGV-wr.js";function c(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,u=e;if(Array.isArray(e)&&(u=i(e)[0]),!u)return null;const n=o(u,r,s);return n.props=t?a(a({},n.props),r):n.props,l(typeof n.props.class!="object"),n}function v(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return e.map(s=>c(s,r,t))}function N(e,r,t){p(o(e,a({},r)),t)}const m=e=>(e||[]).some(r=>d(r)?!(r.type===g||r.type===f&&!m(r.children)):!0)?e:null;function h(e,r,t,s){var u;const n=(u=e[r])===null||u===void 0?void 0:u.call(e,t);return m(n)?n:s?.()}export{h as a,v as b,c,N as t};
@@ -1,4 +1,4 @@
1
- import{K as o}from"./index-B_juAGfN.js";import{i as f}from"./motion-BiRUGscQ.js";const c=new o("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),y=new o("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),a=new o("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),s=new o("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),g=new o("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),O=new o("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),l=new o("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),u=new o("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),p=new o("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),z=new o("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),K=new o("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),w=new o("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),I={zoom:{inKeyframes:c,outKeyframes:y},"zoom-big":{inKeyframes:a,outKeyframes:s},"zoom-big-fast":{inKeyframes:a,outKeyframes:s},"zoom-left":{inKeyframes:l,outKeyframes:u},"zoom-right":{inKeyframes:p,outKeyframes:z},"zoom-up":{inKeyframes:g,outKeyframes:O},"zoom-down":{inKeyframes:K,outKeyframes:w}},h=(n,r)=>{const{antCls:m}=n,t=`${m}-${r}`,{inKeyframes:i,outKeyframes:e}=I[r];return[f(t,i,e,r==="zoom-big-fast"?n.motionDurationFast:n.motionDurationMid),{[`
1
+ import{K as o}from"./index-BqCbH37-.js";import{i as f}from"./motion-Dna0fLLD.js";const c=new o("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),y=new o("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),a=new o("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),s=new o("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),g=new o("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),O=new o("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),l=new o("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),u=new o("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),p=new o("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),z=new o("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),K=new o("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),w=new o("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),I={zoom:{inKeyframes:c,outKeyframes:y},"zoom-big":{inKeyframes:a,outKeyframes:s},"zoom-big-fast":{inKeyframes:a,outKeyframes:s},"zoom-left":{inKeyframes:l,outKeyframes:u},"zoom-right":{inKeyframes:p,outKeyframes:z},"zoom-up":{inKeyframes:g,outKeyframes:O},"zoom-down":{inKeyframes:K,outKeyframes:w}},h=(n,r)=>{const{antCls:m}=n,t=`${m}-${r}`,{inKeyframes:i,outKeyframes:e}=I[r];return[f(t,i,e,r==="zoom-big-fast"?n.motionDurationFast:n.motionDurationMid),{[`
2
2
  ${t}-enter,
3
3
  ${t}-appear
4
4
  `]:{transform:"scale(0)",opacity:0,animationTimingFunction:n.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${t}-leave`]:{animationTimingFunction:n.motionEaseInOutCirc}}]};export{h as i,c as z};
@@ -8,9 +8,9 @@
8
8
  // Injected by web-ui-server.js at serve time
9
9
  window.__CC_CONFIG__ = __CC_CONFIG_PLACEHOLDER__;
10
10
  </script>
11
- <script type="module" crossorigin src="./assets/index-B_juAGfN.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-BqCbH37-.js"></script>
12
12
  <link rel="modulepreload" crossorigin href="./assets/vendor-M5lGV-wr.js">
13
- <link rel="modulepreload" crossorigin href="./assets/icons-BFHq5fEF.js">
13
+ <link rel="modulepreload" crossorigin href="./assets/icons-CLQTHa5-.js">
14
14
  <link rel="stylesheet" crossorigin href="./assets/index-CfX1DEtk.css">
15
15
  </head>
16
16
  <body>
@@ -3,7 +3,10 @@ import {
3
3
  SESSION_CORE_STREAMING_HANDLERS,
4
4
  } from "./session-core-protocol.js";
5
5
  import { VIDEO_HANDLERS, VIDEO_STREAMING_HANDLERS } from "./video-protocol.js";
6
- import { PERSONAL_DATA_HUB_HANDLERS } from "./personal-data-hub-protocol.js";
6
+ import {
7
+ PERSONAL_DATA_HUB_HANDLERS,
8
+ PERSONAL_DATA_HUB_STREAMING_HANDLERS,
9
+ } from "./personal-data-hub-protocol.js";
7
10
 
8
11
  export function createWsMessageDispatcher(server) {
9
12
  return {
@@ -228,6 +231,37 @@ export function createWsMessageDispatcher(server) {
228
231
  };
229
232
  }
230
233
 
234
+ // Phase 5.7 — streaming sync routes. Adapter progress events are
235
+ // pushed as `<topic>.event` messages tagged with the request id;
236
+ // the final report comes as `<topic>.end`.
237
+ for (const streamType of Object.keys(
238
+ PERSONAL_DATA_HUB_STREAMING_HANDLERS,
239
+ )) {
240
+ routes[streamType] = async () => {
241
+ const sender = (payload) => server._send(ws, { id, ...payload });
242
+ try {
243
+ const out = await PERSONAL_DATA_HUB_STREAMING_HANDLERS[streamType](
244
+ message,
245
+ sender,
246
+ );
247
+ server._send(ws, {
248
+ id,
249
+ type: `${streamType}.end`,
250
+ ...(out && out.result !== undefined
251
+ ? { result: out.result }
252
+ : out || {}),
253
+ });
254
+ } catch (err) {
255
+ server._send(ws, {
256
+ id,
257
+ type: "error",
258
+ code: "PERSONAL_DATA_HUB_STREAM_ERROR",
259
+ message: err?.message || String(err),
260
+ });
261
+ }
262
+ };
263
+ }
264
+
231
265
  // Phase I — Hosted Session API (session-core, memory, beta, usage)
232
266
  for (const sessionCoreType of Object.keys(SESSION_CORE_HANDLERS)) {
233
267
  routes[sessionCoreType] = async () => {
@@ -122,12 +122,151 @@ export const PERSONAL_DATA_HUB_HANDLERS = {
122
122
 
123
123
  "personal-data-hub.event-detail": async (msg) =>
124
124
  withHub((hub) => hub.eventDetail(msg.eventId)),
125
+
126
+ // ─── Phase 6 — Alipay bill import ─────────────────────────────────────
127
+
128
+ "personal-data-hub.register-alipay": async (msg) =>
129
+ withHub(
130
+ async (hub) =>
131
+ await hub.registerAlipayAdapter({
132
+ account: msg.account,
133
+ opts: msg.opts || {},
134
+ }),
135
+ ),
136
+
137
+ "personal-data-hub.unregister-alipay": async (msg) =>
138
+ withHub(async (hub) => await hub.unregisterAlipayAdapter(msg.email)),
139
+
140
+ "personal-data-hub.list-alipay-accounts": async () =>
141
+ withHub((hub) => hub.listAlipayAccounts()),
142
+
143
+ "personal-data-hub.import-alipay-bill": async (msg) =>
144
+ withHub(
145
+ async (hub) =>
146
+ await hub.importAlipayBill({
147
+ zipPath: msg.zipPath,
148
+ csvPath: msg.csvPath,
149
+ zipPassword: msg.zipPassword,
150
+ }),
151
+ ),
152
+
153
+ // ─── Phase 8 — EntityResolver review / merge / unmerge ───────────────
154
+
155
+ "personal-data-hub.review-queue-list": async (msg) =>
156
+ withHub((hub) => hub.vault.listReviewQueue({ limit: msg.limit || 50 })),
157
+
158
+ "personal-data-hub.review-decision": async (msg) =>
159
+ withHub((hub) => {
160
+ if (!hub.entityResolver) throw new Error("EntityResolver not wired");
161
+ return hub.entityResolver.applyUserDecision({
162
+ reviewId: msg.reviewId,
163
+ decision: msg.decision,
164
+ });
165
+ }),
166
+
167
+ "personal-data-hub.manual-merge": async (msg) =>
168
+ withHub((hub) => {
169
+ if (!hub.entityResolver) throw new Error("EntityResolver not wired");
170
+ return hub.entityResolver.manualMerge({ aId: msg.aId, bId: msg.bId });
171
+ }),
172
+
173
+ "personal-data-hub.manual-unmerge": async (msg) =>
174
+ withHub((hub) => {
175
+ if (!hub.entityResolver) throw new Error("EntityResolver not wired");
176
+ return hub.entityResolver.manualUnmerge(msg.personId);
177
+ }),
178
+
179
+ "personal-data-hub.resolver-drain": async (msg) =>
180
+ withHub(async (hub) => {
181
+ if (!hub.entityResolver) throw new Error("EntityResolver not wired");
182
+ return await hub.entityResolver.drain({ limit: msg.limit || 50 });
183
+ }),
184
+
185
+ "personal-data-hub.resolver-stats": async () =>
186
+ withHub((hub) => ({
187
+ queue: hub.vault.resolveQueueStats(),
188
+ mergeGroups: hub.vault.stats().mergeGroups,
189
+ reviewQueue:
190
+ hub.vault.listReviewQueue({ limit: 1 }).length > 0
191
+ ? hub.vault.listReviewQueue({ limit: 1000 }).length
192
+ : 0,
193
+ })),
194
+
195
+ "personal-data-hub.merge-group-members": async (msg) =>
196
+ withHub((hub) => hub.vault.getMergeGroupMembers(msg.personId)),
197
+
198
+ // ─── Phase 11 — internal analysis skills ─────────────────────────────
199
+
200
+ "personal-data-hub.skills-list": async () =>
201
+ withHub((hub) => hub.analysisSkillNames || []),
202
+
203
+ "personal-data-hub.run-skill": async (msg) =>
204
+ withHub(async (hub) => await hub.runSkill(msg.name, msg.options || {})),
205
+ };
206
+
207
+ /**
208
+ * Phase 5.7 — streaming handlers. Same call pattern as session-core
209
+ * streaming: handler receives `sender(payload)` to push intermediate
210
+ * `{ type: "personal-data-hub.<topic>.event", ... }` messages while
211
+ * sync is in flight, then the dispatcher wraps the final return with
212
+ * `.end`. Adapter progress phases (connecting / fetching / done / error)
213
+ * surface here; UI subscribes via the composable.
214
+ */
215
+ export const PERSONAL_DATA_HUB_STREAMING_HANDLERS = {
216
+ "personal-data-hub.sync-adapter-stream": async (msg, sender) => {
217
+ const hub = await getHub();
218
+ const original = hub.registry.onSyncEvent;
219
+ hub.registry.onSyncEvent = (evt) => {
220
+ try {
221
+ sender({
222
+ type: "personal-data-hub.sync-adapter-stream.event",
223
+ event: evt,
224
+ });
225
+ } catch (_e) {}
226
+ if (typeof original === "function") {
227
+ try {
228
+ original(evt);
229
+ } catch (_e) {}
230
+ }
231
+ };
232
+ try {
233
+ const report = await hub.registry.syncAdapter(
234
+ msg.name,
235
+ msg.options || {},
236
+ );
237
+ return { result: report };
238
+ } finally {
239
+ hub.registry.onSyncEvent = original;
240
+ }
241
+ },
242
+
243
+ "personal-data-hub.sync-all-stream": async (msg, sender) => {
244
+ const hub = await getHub();
245
+ const original = hub.registry.onSyncEvent;
246
+ hub.registry.onSyncEvent = (evt) => {
247
+ try {
248
+ sender({ type: "personal-data-hub.sync-all-stream.event", event: evt });
249
+ } catch (_e) {}
250
+ if (typeof original === "function") {
251
+ try {
252
+ original(evt);
253
+ } catch (_e) {}
254
+ }
255
+ };
256
+ try {
257
+ const reports = await hub.registry.syncAll(msg.options || {});
258
+ return { result: reports };
259
+ } finally {
260
+ hub.registry.onSyncEvent = original;
261
+ }
262
+ },
125
263
  };
126
264
 
127
265
  /**
128
266
  * Topic names this protocol owns — exported so the dispatcher can list /
129
267
  * advertise them to clients via a capabilities probe.
130
268
  */
131
- export const PERSONAL_DATA_HUB_TOPICS = Object.freeze(
132
- Object.keys(PERSONAL_DATA_HUB_HANDLERS),
133
- );
269
+ export const PERSONAL_DATA_HUB_TOPICS = Object.freeze([
270
+ ...Object.keys(PERSONAL_DATA_HUB_HANDLERS),
271
+ ...Object.keys(PERSONAL_DATA_HUB_STREAMING_HANDLERS),
272
+ ]);
@@ -41,6 +41,12 @@ const {
41
41
  FileKeyProvider,
42
42
  generateKeyHex,
43
43
  EmailAdapter,
44
+ AlipayBillAdapter,
45
+ EntityResolver,
46
+ EntityResolverEmbeddingStage,
47
+ EntityResolverLLMStage,
48
+ runAnalysisSkill,
49
+ ANALYSIS_SKILL_NAMES,
44
50
  } = hub;
45
51
  import { readFileSync, writeFileSync, existsSync } from "node:fs";
46
52
  import { getElectronUserDataDir } from "./paths.js";
@@ -125,10 +131,31 @@ async function initHub() {
125
131
  ragSink = new CcRagSink({ bm25: _bm25 });
126
132
  }
127
133
 
134
+ // Phase 8 — EntityResolver pipeline
135
+ const entityResolver = new EntityResolver({ vault });
136
+ try {
137
+ if (llm) {
138
+ const llmStage = new EntityResolverLLMStage({
139
+ llm,
140
+ acceptNonLocal: false,
141
+ });
142
+ entityResolver._llmStage = llmStage.asStageFn();
143
+ }
144
+ const embeddingStage = new EntityResolverEmbeddingStage({
145
+ ollamaUrl: process.env.CC_HUB_OLLAMA_URL || "http://localhost:11434",
146
+ model: process.env.CC_HUB_OLLAMA_EMBED_MODEL || "nomic-embed-text",
147
+ vault,
148
+ });
149
+ entityResolver._embeddingStage = embeddingStage.asStageFn();
150
+ } catch (_err) {
151
+ // Fall back to rule-only — registry still works
152
+ }
153
+
128
154
  const registry = new AdapterRegistry({
129
155
  vault,
130
156
  kgSink: kgSink ? kgSink.write.bind(kgSink) : null,
131
157
  ragSink: ragSink ? ragSink.write.bind(ragSink) : null,
158
+ entityResolver,
132
159
  });
133
160
 
134
161
  const engine = new AnalysisEngine({
@@ -169,6 +196,21 @@ async function initHub() {
169
196
  }
170
197
  }
171
198
 
199
+ // Phase 6: auto-register persisted Alipay accounts.
200
+ const alipayAccountsPath = join(hubDir, "alipay-accounts.json");
201
+ const alipayAccounts = loadAlipayAccounts(alipayAccountsPath);
202
+ for (const cfg of alipayAccounts) {
203
+ try {
204
+ const adapter = new AlipayBillAdapter({
205
+ account: cfg.account,
206
+ ...(cfg.opts || {}),
207
+ });
208
+ if (!registry.has(adapter.name)) registry.register(adapter);
209
+ } catch (_err) {
210
+ // Continue boot even if one config is corrupt
211
+ }
212
+ }
213
+
172
214
  return {
173
215
  vault,
174
216
  registry,
@@ -179,6 +221,12 @@ async function initHub() {
179
221
  hubDir,
180
222
  keyProvider,
181
223
  emailAccountsPath,
224
+ alipayAccountsPath,
225
+ entityResolver,
226
+ analysisSkillNames: ANALYSIS_SKILL_NAMES,
227
+ async runSkill(name, options = {}) {
228
+ return await runAnalysisSkill({ vault, llm }, name, options);
229
+ },
182
230
  bm25: _bm25,
183
231
  registerMockAdapter(opts = {}) {
184
232
  if (registry.has(opts.name || "mock"))
@@ -257,6 +305,59 @@ async function initHub() {
257
305
  : null,
258
306
  };
259
307
  },
308
+
309
+ // ─── Phase 6 — Alipay bill import ──────────────────────────────────
310
+
311
+ async registerAlipayAdapter({ account, opts = {} } = {}) {
312
+ if (!account || typeof account !== "object")
313
+ throw new Error("account required");
314
+ const adapter = new AlipayBillAdapter({ account, ...opts });
315
+ if (registry.has(adapter.name)) registry.unregister(adapter.name);
316
+ registry.register(adapter);
317
+ const accounts = loadAlipayAccounts(alipayAccountsPath);
318
+ const next = accounts.filter((c) => c.account.email !== account.email);
319
+ next.push({ account, opts, registeredAt: Date.now() });
320
+ saveAlipayAccounts(alipayAccountsPath, next);
321
+ return {
322
+ name: adapter.name,
323
+ version: adapter.version,
324
+ capabilities: adapter.capabilities,
325
+ sensitivity: adapter.dataDisclosure.sensitivity,
326
+ };
327
+ },
328
+
329
+ async unregisterAlipayAdapter(email) {
330
+ const accounts = loadAlipayAccounts(alipayAccountsPath);
331
+ const target = accounts.find((c) => c.account.email === email);
332
+ const next = accounts.filter((c) => c.account.email !== email);
333
+ saveAlipayAccounts(alipayAccountsPath, next);
334
+ if (target) registry.unregister("alipay-bill");
335
+ return { ok: true, removed: !!target };
336
+ },
337
+
338
+ listAlipayAccounts() {
339
+ return loadAlipayAccounts(alipayAccountsPath).map((c) => ({
340
+ email: c.account.email,
341
+ hasZipPassword: !!(
342
+ c.account.zipPassword ||
343
+ (c.opts && c.opts.zipPassword)
344
+ ),
345
+ registeredAt: c.registeredAt || null,
346
+ }));
347
+ },
348
+
349
+ async importAlipayBill({ zipPath, csvPath, zipPassword } = {}) {
350
+ const adapter = registry.get("alipay-bill");
351
+ if (!adapter)
352
+ throw new Error(
353
+ "No Alipay adapter registered — call registerAlipayAdapter first",
354
+ );
355
+ return await registry.syncAdapter("alipay-bill", {
356
+ zipPath,
357
+ csvPath,
358
+ zipPassword,
359
+ });
360
+ },
260
361
  };
261
362
  }
262
363
 
@@ -280,6 +381,26 @@ function saveEmailAccounts(filePath, accounts) {
280
381
  });
281
382
  }
282
383
 
384
+ // ─── Alipay account persistence (Phase 6) ───────────────────────────────
385
+
386
+ function loadAlipayAccounts(filePath) {
387
+ try {
388
+ if (!existsSync(filePath)) return [];
389
+ const raw = readFileSync(filePath, "utf-8");
390
+ const parsed = JSON.parse(raw);
391
+ return Array.isArray(parsed) ? parsed : [];
392
+ } catch (_err) {
393
+ return [];
394
+ }
395
+ }
396
+
397
+ function saveAlipayAccounts(filePath, accounts) {
398
+ writeFileSync(filePath, JSON.stringify(accounts, null, 2), {
399
+ encoding: "utf-8",
400
+ mode: 0o600,
401
+ });
402
+ }
403
+
283
404
  export async function getHub() {
284
405
  if (_hub) return _hub;
285
406
  if (!_initPromise) {
@@ -1 +0,0 @@
1
- import{o as Oe,M as f,R as k,c as a,N as t,K as p,r as h,a as ne,L as r,O as s,u as S,P as i,S as c,a0 as ze,a1 as qe,Q as _,F as O,Y as se,Z as He,f as Ie}from"./vendor-M5lGV-wr.js";import{u as Ue,_ as Fe,d as M}from"./index-B_juAGfN.js";import{R as Ne,O as Re,ak as Ve,h as Ge,aB as Qe,m as Te,e as Be}from"./icons-BFHq5fEF.js";function Ke(P){if(!P)return P;if(P.error)throw new Error(P.error);return P.result!==void 0?P.result:P}function je(){const P=Ue(),g=(u,v={},x=3e4)=>P.sendRaw({type:u,...v},x).then(Ke);return{async health(){return await g("personal-data-hub.health",{},8e3)},async stats(){return await g("personal-data-hub.stats",{},8e3)},async listAdapters(){return await g("personal-data-hub.list-adapters",{},5e3)},async syncAdapter(u,v={}){return await g("personal-data-hub.sync-adapter",{name:u,options:v},12e4)},async syncAll(u={}){return await g("personal-data-hub.sync-all",{options:u},6e5)},async registerMock({name:u="mock",count:v=20,seed:x=1}={}){return await g("personal-data-hub.register-mock",{name:u,count:v,seed:x})},async unregister(u){return await g("personal-data-hub.unregister",{name:u})},async ask(u,v={}){return await g("personal-data-hub.ask",{question:u,options:v},18e4)},async queryEvents(u={}){return await g("personal-data-hub.query-events",u,1e4)},async recentAudit(u={}){return await g("personal-data-hub.recent-audit",u,1e4)},async testEmailAuth(u){return await g("personal-data-hub.test-email-auth",{account:u},3e4)},async registerEmail(u,v={}){return await g("personal-data-hub.register-email",{account:u,opts:v},15e3)},async unregisterEmail(u){return await g("personal-data-hub.unregister-email",{email:u},5e3)},async listEmailAccounts(){return await g("personal-data-hub.list-email-accounts",{},5e3)},async eventDetail(u){return await g("personal-data-hub.event-detail",{eventId:u},5e3)}}}const Je={class:"pdh-page"},We={class:"pdh-header"},Ye={class:"kv"},Ze={key:0,class:"kv"},Xe={key:1,class:"kv"},et={class:"kv"},tt={key:0,class:"kv hint"},at={style:{"margin-top":"12px",display:"flex","justify-content":"space-between","align-items":"center"}},lt={key:0,style:{"margin-top":"12px"}},nt={key:1,style:{"margin-top":"12px"}},st={class:"answer"},ot={style:{"margin-top":"8px","font-size":"12px",color:"var(--text-color-secondary, #888)"}},it={key:2,style:{"margin-top":"8px"}},rt={key:2,style:{"margin-top":"12px"}},ut={key:2,style:{"margin-top":"8px"}},dt={key:1},pt={style:{"margin-left":"8px"}},ct={key:3,class:"json-pre"},vt={style:{"margin-left":"6px"}},mt={key:0,style:{"margin-left":"6px"}},ft={key:0,class:"hint",style:{"margin-top":"4px"}},yt={key:1,style:{"font-size":"11px"}},kt={__name:"PersonalDataHub",setup(P,{expose:g}){const u=je(),v=h(null),x=h(null),V=h([]),I=h(""),b=h(null),G=h(""),K=h(!1),j=h(!1),Z=h([]),D=h(null),U=h(!1),o=ne({provider:"qq",email:"",authCode:"",host:"",port:993,pdfPasswordHints:{idCardLast6:"",phoneLast6:"",cardLast6:""}}),C=h(null),J=h(!1),d=h(null),m=ne({refresh:!1,ask:!1,addMock:!1,syncAll:!1,sync:{},audit:!1,testEmail:!1,saveEmail:!1,eventDetail:!1}),oe=[{title:"名称",dataIndex:"name",key:"name",width:140},{title:"版本",dataIndex:"version",key:"version",width:80},{title:"能力",key:"capabilities"},{title:"敏感度",key:"sensitivity",width:140},{title:"操作",key:"actions",width:160,align:"right"}],ie=[{title:"时间",key:"at",dataIndex:"at",width:170},{title:"动作",dataIndex:"action",key:"action",width:200},{title:"详情",key:"details"}],re=[{title:"日期",key:"occurredAt",width:100},{title:"描述",dataIndex:"description",key:"description"},{title:"金额",key:"amount",width:140,align:"right"}];function ue(n){return n==="high"?"red":n==="medium"?"orange":"default"}function de(n){if(!n)return"";const e=n.entityCounts||{};return`events=${e.events??0} persons=${e.persons??0} | raw=${n.rawCount??0} invalid=${n.invalidCount??0} | KG triples=${n.kgTripleCount??0} RAG docs=${n.ragDocCount??0} | ${n.durationMs??0}ms`}async function $(){m.refresh=!0;try{v.value=await u.health(),x.value=await u.stats(),V.value=await u.listAdapters()}catch(n){M.error("刷新失败: "+n.message)}finally{m.refresh=!1}}async function X(){if(I.value.trim()){m.ask=!0,G.value="",b.value=null;try{b.value=await u.ask(I.value.trim(),{acceptNonLocal:K.value})}catch(n){G.value=n.message}finally{m.ask=!1}}}async function pe(){m.addMock=!0;try{await u.registerMock({count:30,seed:Date.now()%1e3}),await $(),M.success("MockAdapter 已注册(30 条 mock 数据 ready 同步)")}catch(n){M.error("注册失败: "+n.message)}finally{m.addMock=!1}}async function ce(n){m.sync[n]=!0;try{D.value=await u.syncAdapter(n),await $()}catch(e){M.error(`同步 ${n} 失败: ${e.message}`)}finally{m.sync[n]=!1}}async function ve(){m.syncAll=!0;try{const n=await u.syncAll();D.value=n?.[n.length-1]||null,await $(),M.success(`已同步 ${n?.length||0} 个 adapter`)}catch(n){M.error("同步失败: "+n.message)}finally{m.syncAll=!1}}async function me(n){try{await u.unregister(n),await $()}catch(e){M.error("移除失败: "+e.message)}}async function fe(n){if(n){m.audit=!0;try{Z.value=await u.recentAudit({limit:200})}catch(e){M.error("审计日志加载失败: "+e.message)}finally{m.audit=!1}}}const Q=Ie(()=>!(!o.email||!o.email.includes("@")||!o.authCode||o.authCode.length<4||o.provider==="custom"&&!o.host));function ye(n){return{qq:"QQ: 邮箱 → 设置 → 账户 → IMAP/SMTP → 开启 → 生成授权码",163:"163: 邮箱 → 设置 → POP3/SMTP/IMAP → 开启 IMAP/SMTP 服务 → 授权密码",189:"189: 设置 → 第三方客户端授权码",outlook:"Outlook: account.microsoft.com/security → App password",gmail:"Gmail: myaccount.google.com/apppasswords (需开启 2FA)",custom:"联系你的邮箱管理员获取 IMAP 端点 + app-password"}[n]||"请输入服务商授权码(不是登录密码)"}function ee(){o.provider="qq",o.email="",o.authCode="",o.host="",o.port=993,o.pdfPasswordHints={idCardLast6:"",phoneLast6:"",cardLast6:""},C.value=null}function te(){const n={provider:o.provider,email:o.email.trim(),authCode:o.authCode};return o.provider==="custom"&&(n.host=o.host.trim(),n.port=o.port||993,n.secure=!0),n}function ke(){const n={};for(const e of Object.keys(o.pdfPasswordHints)){const w=o.pdfPasswordHints[e];typeof w=="string"&&w.trim().length>0&&(n[e]=w.trim())}return Object.keys(n).length>0?n:null}async function ge(){if(Q.value){m.testEmail=!0,C.value=null;try{C.value=await u.testEmailAuth(te())}catch(n){C.value={ok:!1,error:n.message}}finally{m.testEmail=!1}}}async function _e(){if(!(!Q.value||!C.value?.ok)){m.saveEmail=!0;try{const n={},e=ke();e&&(n.pdfPasswordHints=e),await u.registerEmail(te(),n),M.success("邮箱账号已注册"),U.value=!1,ee(),await $()}catch(n){M.error("保存失败: "+n.message)}finally{m.saveEmail=!1}}}async function ae(n){if(n){m.eventDetail=!0,J.value=!0;try{d.value=await u.eventDetail(n)}catch(e){d.value=null,M.error("事件详情加载失败: "+e.message)}finally{m.eventDetail=!1}}}return g({showEventDetail:ae}),Oe($),(n,e)=>{const w=p("a-button"),L=p("a-space"),A=p("a-tag"),z=p("a-card"),T=p("a-col"),we=p("a-row"),he=p("a-textarea"),be=p("a-checkbox"),q=p("a-alert"),xe=p("a-popconfirm"),W=p("a-table"),le=p("a-empty"),H=p("a-select-option"),Ce=p("a-select"),E=p("a-form-item"),F=p("a-input"),Ae=p("a-tooltip"),Me=p("a-input-password"),Pe=p("a-input-number"),N=p("a-divider"),Le=p("a-form"),Y=p("a-drawer"),R=p("a-descriptions-item"),Ee=p("a-descriptions"),De=p("a-list-item-meta"),$e=p("a-list-item"),Se=p("a-list");return r(),f("div",Je,[k("div",We,[e[18]||(e[18]=k("div",null,[k("h2",{class:"page-title"},"个人数据中台"),k("p",{class:"page-sub"}," 让数据回归个人 — 各 app 数据本地加密落盘,本地 LLM 跨源分析,零云端外传。 ")],-1)),a(L,null,{default:t(()=>[a(w,{loading:m.refresh,onClick:$},{icon:t(()=>[a(S(Ne))]),default:t(()=>[e[16]||(e[16]=s(" 刷新 ",-1))]),_:1},8,["loading"]),a(w,{type:"primary",ghost:"",onClick:e[0]||(e[0]=l=>j.value=!0)},{icon:t(()=>[a(S(Re))]),default:t(()=>[e[17]||(e[17]=s(" 审计日志 ",-1))]),_:1})]),_:1})]),a(we,{gutter:16,style:{"margin-bottom":"16px"}},{default:t(()=>[a(T,{xs:24,sm:12,md:6},{default:t(()=>[a(z,{size:"small",title:"Vault"},{extra:t(()=>[a(A,{color:v.value?.vault?.ok?"green":"red"},{default:t(()=>[s(i(v.value?.vault?.ok?"正常":"未就绪"),1)]),_:1},8,["color"])]),default:t(()=>[k("div",Ye,"schema v"+i(v.value?.vault?.schemaVersion??"?"),1),x.value?.vault?(r(),f("div",Ze," 事件 "+i(x.value.vault.events)+" · 联系人 "+i(x.value.vault.persons),1)):c("",!0),x.value?.vault?(r(),f("div",Xe," 地点 "+i(x.value.vault.places)+" · 商品 "+i(x.value.vault.items)+" · 主题 "+i(x.value.vault.topics),1)):c("",!0)]),_:1})]),_:1}),a(T,{xs:24,sm:12,md:6},{default:t(()=>[a(z,{size:"small",title:"本地 LLM"},{extra:t(()=>[a(A,{color:v.value?.llm?.ok?v.value.llm.isLocal?"green":"orange":"red"},{default:t(()=>[s(i(v.value?.llm?.ok?v.value.llm.isLocal?"本地":"非本地":"未就绪"),1)]),_:1},8,["color"])]),default:t(()=>[k("div",et,i(v.value?.llm?.name||"—"),1),v.value?.llm?.ok&&!v.value.llm.isLocal?(r(),f("div",tt," ⚠️ 非本地 — ask 会被隐私 gate 拒绝,除非显式 acceptNonLocal ")):c("",!0)]),_:1})]),_:1}),a(T,{xs:24,sm:12,md:6},{default:t(()=>[a(z,{size:"small",title:"KG 索引"},{extra:t(()=>[a(A,{color:v.value?.kgSink?.ok?"green":"default"},{default:t(()=>[s(i(v.value?.kgSink?.ok?"已连接":"不可用"),1)]),_:1},8,["color"])]),default:t(()=>[e[19]||(e[19]=k("div",{class:"kv"},"events / persons → cc knowledge-graph 实体 + 关系",-1))]),_:1})]),_:1}),a(T,{xs:24,sm:12,md:6},{default:t(()=>[a(z,{size:"small",title:"RAG 索引"},{extra:t(()=>[a(A,{color:v.value?.ragSink?.ok?"green":"default"},{default:t(()=>[s(i(v.value?.ragSink?.ok?"已连接":"不可用"),1)]),_:1},8,["color"])]),default:t(()=>[e[20]||(e[20]=k("div",{class:"kv"},"文本 → BM25(vector 留待后续 phase)",-1))]),_:1})]),_:1})]),_:1}),a(z,{style:{"margin-bottom":"16px"}},{title:t(()=>[a(L,null,{default:t(()=>[a(S(Ge)),e[21]||(e[21]=k("span",null,"问我数据",-1))]),_:1})]),default:t(()=>[a(he,{value:I.value,"onUpdate:value":e[1]||(e[1]=l=>I.value=l),rows:2,placeholder:"例:上个月在淘宝总共花了多少?/我妈生日那周买了啥送哪儿?",onKeydown:ze(qe(X,["exact","prevent"]),["enter"])},null,8,["value","onKeydown"]),k("div",at,[a(be,{checked:K.value,"onUpdate:checked":e[2]||(e[2]=l=>K.value=l)},{default:t(()=>[...e[22]||(e[22]=[s("允许非本地 LLM (volcengine / anthropic 等)",-1)])]),_:1},8,["checked"]),a(w,{type:"primary",loading:m.ask,disabled:!I.value.trim(),onClick:X},{icon:t(()=>[a(S(Ve))]),default:t(()=>[e[23]||(e[23]=s(" 提问 ",-1))]),_:1},8,["loading","disabled"])]),G.value?(r(),f("div",lt,[a(q,{type:"error","show-icon":"",message:G.value},null,8,["message"])])):c("",!0),b.value?(r(),f("div",nt,[b.value.warning==="no-facts"?(r(),_(q,{key:0,type:"warning","show-icon":"",message:"vault 里没找到匹配的事件('no-facts')—— 先同步几个 adapter 让数据进 vault",style:{"margin-bottom":"12px"}})):b.value.warning==="hallucinated-citations"?(r(),_(q,{key:1,type:"warning","show-icon":"",message:`LLM 引用了 ${b.value.hallucinatedCitations?.length||0} 个不存在的 event id —— 模型在编造`,style:{"margin-bottom":"12px"}},null,8,["message"])):c("",!0),k("div",st,i(b.value.answer),1),k("div",ot," 引用 "+i(b.value.citations?.length||0)+" 条事实 · "+i(b.value.facts?.length||0)+" facts 入 prompt · "+i(b.value.durationMs)+"ms · "+i(b.value.model),1),b.value.citations?.length?(r(),f("div",it,[e[24]||(e[24]=k("span",{style:{"font-size":"12px",color:"var(--text-color-secondary, #888)"}},"事件链接(点击查看明细 / PDF 解密结果):",-1)),a(L,{style:{"margin-top":"4px"},wrap:""},{default:t(()=>[(r(!0),f(O,null,se(b.value.citations,l=>(r(),_(A,{key:l,color:"blue",style:{cursor:"pointer"},onClick:y=>ae(l)},{default:t(()=>[s(i(l),1)]),_:2},1032,["onClick"]))),128))]),_:1})])):c("",!0)])):c("",!0)]),_:1}),a(z,{style:{"margin-bottom":"16px"}},{title:t(()=>[a(L,null,{default:t(()=>[a(S(Te)),e[25]||(e[25]=k("span",null,"Adapters",-1))]),_:1})]),extra:t(()=>[a(L,null,{default:t(()=>[a(w,{onClick:e[3]||(e[3]=l=>U.value=!0)},{icon:t(()=>[a(S(Qe))]),default:t(()=>[e[26]||(e[26]=s(" 添加邮箱账号 ",-1))]),_:1}),a(w,{onClick:pe,loading:m.addMock},{default:t(()=>[...e[27]||(e[27]=[s(" 注册 MockAdapter(开发) ",-1)])]),_:1},8,["loading"]),a(w,{type:"primary",onClick:ve,loading:m.syncAll,disabled:!V.value.length},{default:t(()=>[...e[28]||(e[28]=[s(" 同步全部 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),default:t(()=>[V.value.length?(r(),_(W,{key:0,columns:oe,"data-source":V.value,pagination:!1,"row-key":l=>l.name,size:"middle"},{bodyCell:t(({column:l,record:y})=>[l.key==="sensitivity"?(r(),f(O,{key:0},[a(A,{color:ue(y.sensitivity)},{default:t(()=>[s(i(y.sensitivity),1)]),_:2},1032,["color"]),y.legalGate?(r(),_(A,{key:0,color:"red",style:{"margin-left":"4px"}},{default:t(()=>[...e[29]||(e[29]=[s("需法律确认",-1)])]),_:1})):c("",!0)],64)):l.key==="capabilities"?(r(!0),f(O,{key:1},se(y.capabilities,B=>(r(),_(A,{key:B,style:{"margin-right":"4px"}},{default:t(()=>[s(i(B),1)]),_:2},1024))),128)):l.key==="actions"?(r(),_(L,{key:2},{default:t(()=>[a(w,{size:"small",loading:m.sync[y.name],onClick:B=>ce(y.name)},{default:t(()=>[...e[30]||(e[30]=[s(" 同步 ",-1)])]),_:1},8,["loading","onClick"]),a(xe,{title:`从注册表移除 ${y.name}?(vault 数据不会删除)`,onConfirm:B=>me(y.name)},{default:t(()=>[a(w,{size:"small",danger:""},{default:t(()=>[...e[31]||(e[31]=[s("移除",-1)])]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):c("",!0)]),_:1},8,["data-source","row-key"])):(r(),_(le,{key:1,description:"无已注册 adapter — 点上方按钮注册 MockAdapter 看效果"})),D.value?(r(),f("div",rt,[a(q,{type:D.value.status==="ok"?"success":"error","show-icon":"",message:`同步 ${D.value.adapter}: ${D.value.status}`,description:de(D.value)},null,8,["type","message","description"])])):c("",!0)]),_:1}),a(Y,{open:U.value,"onUpdate:open":e[13]||(e[13]=l=>U.value=l),title:"添加邮箱账号",placement:"right",width:"560","destroy-on-close":!0,onClose:ee},{footer:t(()=>[a(L,null,{default:t(()=>[a(w,{onClick:e[12]||(e[12]=l=>U.value=!1)},{default:t(()=>[...e[41]||(e[41]=[s("取消",-1)])]),_:1}),a(w,{loading:m.testEmail,disabled:!Q.value,onClick:ge},{default:t(()=>[...e[42]||(e[42]=[s(" 测试连接 ",-1)])]),_:1},8,["loading","disabled"]),a(w,{type:"primary",loading:m.saveEmail,disabled:!Q.value||!C.value?.ok,onClick:_e},{default:t(()=>[...e[43]||(e[43]=[s(" 保存并注册 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),default:t(()=>[a(q,{message:"数据回归个人 — 凭证落本地加密文件(与 vault 主密钥同目录),同步动作 100% 本地。",type:"info","show-icon":"",style:{"margin-bottom":"16px"}}),a(Le,{layout:"vertical",model:o},{default:t(()=>[a(E,{label:"邮箱服务商",required:""},{default:t(()=>[a(Ce,{value:o.provider,"onUpdate:value":e[4]||(e[4]=l=>o.provider=l),placeholder:"选择服务商"},{default:t(()=>[a(H,{value:"qq"},{default:t(()=>[...e[32]||(e[32]=[s("QQ 邮箱 (imap.qq.com)",-1)])]),_:1}),a(H,{value:"163"},{default:t(()=>[...e[33]||(e[33]=[s("网易邮箱 163/126",-1)])]),_:1}),a(H,{value:"189"},{default:t(()=>[...e[34]||(e[34]=[s("189 邮箱",-1)])]),_:1}),a(H,{value:"outlook"},{default:t(()=>[...e[35]||(e[35]=[s("Outlook / Hotmail",-1)])]),_:1}),a(H,{value:"gmail"},{default:t(()=>[...e[36]||(e[36]=[s("Gmail",-1)])]),_:1}),a(H,{value:"custom"},{default:t(()=>[...e[37]||(e[37]=[s("自定义 IMAP",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),a(E,{label:"邮箱地址",required:""},{default:t(()=>[a(F,{value:o.email,"onUpdate:value":e[5]||(e[5]=l=>o.email=l),placeholder:"you@qq.com",autocomplete:"off"},null,8,["value"])]),_:1}),a(E,{required:""},{label:t(()=>[a(L,null,{default:t(()=>[e[38]||(e[38]=k("span",null,"授权码(非登录密码)",-1)),a(Ae,{title:ye(o.provider)},{default:t(()=>[a(S(Be),{style:{color:"#888"}})]),_:1},8,["title"])]),_:1})]),default:t(()=>[a(Me,{value:o.authCode,"onUpdate:value":e[6]||(e[6]=l=>o.authCode=l),placeholder:"例:QQ 邮箱 设置 → 账户 → 开启 IMAP/SMTP → 生成的授权码",autocomplete:"off"},null,8,["value"])]),_:1}),o.provider==="custom"?(r(),_(E,{key:0,label:"IMAP host"},{default:t(()=>[a(F,{value:o.host,"onUpdate:value":e[7]||(e[7]=l=>o.host=l),placeholder:"mail.example.com"},null,8,["value"])]),_:1})):c("",!0),o.provider==="custom"?(r(),_(E,{key:1,label:"端口"},{default:t(()=>[a(Pe,{value:o.port,"onUpdate:value":e[8]||(e[8]=l=>o.port=l),min:1,max:65535,"default-value":993},null,8,["value"])]),_:1})):c("",!0),a(N,{orientation:"left",plain:""},{default:t(()=>[...e[39]||(e[39]=[s("PDF 账单解密提示(可选)",-1)])]),_:1}),e[40]||(e[40]=k("p",{class:"hint"},"银行 PDF 月结大多加密;提供几个常用候选项让 Phase 5.5 自动解锁:",-1)),a(E,{label:"身份证后 6 位"},{default:t(()=>[a(F,{value:o.pdfPasswordHints.idCardLast6,"onUpdate:value":e[9]||(e[9]=l=>o.pdfPasswordHints.idCardLast6=l),placeholder:"123456",autocomplete:"off"},null,8,["value"])]),_:1}),a(E,{label:"手机后 6 位"},{default:t(()=>[a(F,{value:o.pdfPasswordHints.phoneLast6,"onUpdate:value":e[10]||(e[10]=l=>o.pdfPasswordHints.phoneLast6=l),placeholder:"123456",autocomplete:"off"},null,8,["value"])]),_:1}),a(E,{label:"信用卡尾 6 位"},{default:t(()=>[a(F,{value:o.pdfPasswordHints.cardLast6,"onUpdate:value":e[11]||(e[11]=l=>o.pdfPasswordHints.cardLast6=l),placeholder:"123456",autocomplete:"off"},null,8,["value"])]),_:1}),C.value?(r(),f("div",ut,[a(q,{type:C.value.ok?"success":"error","show-icon":"",message:C.value.ok?"凭证有效 — 可以保存":`认证失败: ${C.value.reason||C.value.error}`},null,8,["type","message"])])):c("",!0)]),_:1},8,["model"])]),_:1},8,["open"]),a(Y,{open:J.value,"onUpdate:open":e[14]||(e[14]=l=>J.value=l),title:d.value?`事件 ${d.value.event.id}`:"加载中...",placement:"right",width:"640","destroy-on-close":!0},{default:t(()=>[d.value?(r(),f(O,{key:0},[a(Ee,{column:1,size:"small",bordered:""},{default:t(()=>[a(R,{label:"类型"},{default:t(()=>[s(i(d.value.event.subtype),1)]),_:1}),a(R,{label:"发生于"},{default:t(()=>[s(i(new Date(d.value.event.occurredAt).toLocaleString()),1)]),_:1}),a(R,{label:"actor"},{default:t(()=>[s(i(d.value.event.actor),1)]),_:1}),d.value.event.content?.title?(r(),_(R,{key:0,label:"标题"},{default:t(()=>[s(i(d.value.event.content.title),1)]),_:1})):c("",!0),d.value.event.source?.adapter?(r(),_(R,{key:1,label:"来源 adapter"},{default:t(()=>[s(i(d.value.event.source.adapter)+" @ v"+i(d.value.event.source.adapterVersion),1)]),_:1})):c("",!0)]),_:1}),d.value.classification?(r(),_(N,{key:0,orientation:"left",plain:""},{default:t(()=>[...e[44]||(e[44]=[s("分类",-1)])]),_:1})):c("",!0),d.value.classification?(r(),f("div",dt,[a(A,{color:"blue"},{default:t(()=>[s(i(d.value.classification.category),1)]),_:1}),a(A,null,{default:t(()=>[s(i(d.value.classification.layer),1)]),_:1}),k("span",pt,"置信 "+i(Math.round((d.value.classification.confidence||0)*100))+"%",1)])):c("",!0),d.value.extraction?(r(),_(N,{key:2,orientation:"left",plain:""},{default:t(()=>[s("结构化字段("+i(d.value.extraction.template)+")",1)]),_:1})):c("",!0),d.value.extraction?(r(),f("pre",ct,i(JSON.stringify(d.value.extraction.fields,null,2)),1)):c("",!0),d.value.extraction?.pdfExtraction?(r(),_(N,{key:4,orientation:"left",plain:""},{default:t(()=>[...e[45]||(e[45]=[s("PDF 解密 / 解析",-1)])]),_:1})):c("",!0),d.value.extraction?.pdfExtraction?(r(),_(Se,{key:5,"data-source":d.value.extraction.pdfExtraction,size:"small"},{renderItem:t(({item:l})=>[a($e,null,{default:t(()=>[a(De,{title:l.filename},{description:t(()=>[k("div",null,[a(A,{color:l.decrypted?"green":"red"},{default:t(()=>[s(i(l.decrypted?"已解密":"解密失败"),1)]),_:2},1032,["color"]),k("span",vt,"尝试 "+i(l.attempted)+" 次",1),l.transactionsExtracted!=null?(r(),f("span",mt," · 提取 "+i(l.transactionsExtracted)+" 条交易 ",1)):c("",!0)]),l.error?(r(),f("div",ft,i(l.error),1)):c("",!0)]),_:2},1032,["title"])]),_:2},1024)]),_:1},8,["data-source"])):c("",!0),d.value.extraction?.fields?.transactions?.length?(r(),f(O,{key:6},[a(N,{orientation:"left",plain:""},{default:t(()=>[...e[46]||(e[46]=[s("交易明细",-1)])]),_:1}),a(W,{columns:re,"data-source":d.value.extraction.fields.transactions,pagination:{pageSize:10,size:"small"},"row-key":(l,y)=>y,size:"small"},{bodyCell:t(({column:l,record:y})=>[l.key==="occurredAt"?(r(),f(O,{key:0},[s(i(new Date(y.occurredAtMs).toLocaleDateString()),1)],64)):l.key==="amount"?(r(),f("span",{key:1,class:He(y.amount.direction==="in"?"amount-in":"amount-out")},i(y.amount.direction==="in"?"+":"-")+i(y.amount.value.toFixed(2))+" "+i(y.amount.currency),3)):c("",!0)]),_:1},8,["data-source","row-key"])],64)):c("",!0)],64)):(r(),_(le,{key:1,description:"无事件数据"}))]),_:1},8,["open","title"]),a(Y,{open:j.value,"onUpdate:open":e[15]||(e[15]=l=>j.value=l),title:"审计日志(数据 lineage)",placement:"right",width:"600",onAfterOpenChange:fe},{default:t(()=>[a(W,{columns:ie,"data-source":Z.value,pagination:{pageSize:20,size:"small"},"row-key":l=>l.id,size:"small"},{bodyCell:t(({column:l,record:y})=>[l.key==="at"?(r(),f(O,{key:0},[s(i(new Date(y.at).toLocaleString()),1)],64)):l.key==="details"?(r(),f("code",yt,i(y.details||"—"),1)):c("",!0)]),_:1},8,["data-source","row-key"])]),_:1},8,["open"])])}}},ht=Fe(kt,[["__scopeId","data-v-d9f9adeb"]]);export{ht as default};
@@ -1 +0,0 @@
1
- .pdh-page[data-v-d9f9adeb]{padding:16px;max-width:1400px;margin:0 auto}.pdh-header[data-v-d9f9adeb]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px;flex-wrap:wrap}.page-title[data-v-d9f9adeb]{margin:0 0 4px;font-size:22px;font-weight:600}.page-sub[data-v-d9f9adeb]{margin:0;color:var(--text-color-secondary, #888);font-size:13px}.kv[data-v-d9f9adeb]{font-size:13px;color:var(--text-color, #333);line-height:1.6}.kv.hint[data-v-d9f9adeb]{color:#faad14;font-size:12px;margin-top:4px}.answer[data-v-d9f9adeb]{white-space:pre-wrap;font-size:14px;line-height:1.7;background:var(--bg-elevated, #fafafa);padding:12px;border-radius:6px;border-left:3px solid #1677ff}.hint[data-v-d9f9adeb]{color:var(--text-color-secondary, #888);font-size:12px}.json-pre[data-v-d9f9adeb]{font-size:12px;background:var(--bg-elevated, #fafafa);padding:10px;border-radius:4px;max-height:280px;overflow:auto}.amount-in[data-v-d9f9adeb]{color:#52c41a;font-weight:600}.amount-out[data-v-d9f9adeb]{color:#ff4d4f;font-weight:600}