chainlesschain 0.162.79 → 0.162.81

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 (161) hide show
  1. package/package.json +1 -1
  2. package/src/assets/web-panel/assets/{AIOps-D89fD_7T.js → AIOps-Dlv6UdSz.js} +1 -1
  3. package/src/assets/web-panel/assets/{ActionButton-d75flwX8.js → ActionButton-D8Ml3nvH.js} +1 -1
  4. package/src/assets/web-panel/assets/{Analytics-gvvBEb4T.js → Analytics-WyKO87FA.js} +3 -3
  5. package/src/assets/web-panel/assets/{AppLayout-DzHOVS64.js → AppLayout-skfxIMCm.js} +4 -4
  6. package/src/assets/web-panel/assets/{Audit-15K7MhRC.js → Audit-j2y2koUY.js} +1 -1
  7. package/src/assets/web-panel/assets/{Backup-BgVHsglI.js → Backup-0kvzhUvr.js} +1 -1
  8. package/src/assets/web-panel/assets/{BaseInput-BRnvd4sF.js → BaseInput-B10JtuYe.js} +1 -1
  9. package/src/assets/web-panel/assets/{Chat-B2vtXu7s.js → Chat-DiaMhkhZ.js} +6 -6
  10. package/src/assets/web-panel/assets/{ChatBubbleRenderer-d1EFM3dh.js → ChatBubbleRenderer-CLREcJSS.js} +1 -1
  11. package/src/assets/web-panel/assets/{Checkbox-B5uV5Jhr.js → Checkbox-DLNTFkf4.js} +1 -1
  12. package/src/assets/web-panel/assets/{Codegen-cVDMBVGV.js → Codegen-BP5LgMVn.js} +1 -1
  13. package/src/assets/web-panel/assets/{Col-DtL6q7Hw.js → Col-B7G-aBBF.js} +1 -1
  14. package/src/assets/web-panel/assets/{Community-DSyPZkqQ.js → Community-Dvbmd8mi.js} +1 -1
  15. package/src/assets/web-panel/assets/{Compact-CzfV_q4O.js → Compact-Cv9rLQT6.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compliance-B_xhhLE1.js → Compliance-Dz9W_4jg.js} +1 -1
  17. package/src/assets/web-panel/assets/{Cowork-Y49Qf0JX.js → Cowork-CH-FUjD5.js} +3 -3
  18. package/src/assets/web-panel/assets/{Cron-B7JG-oLj.js → Cron-Bo5BlAIn.js} +2 -2
  19. package/src/assets/web-panel/assets/{Crosschain-CukEkQtf.js → Crosschain-D_8EQFYJ.js} +1 -1
  20. package/src/assets/web-panel/assets/{DID-Bd4UVKdn.js → DID-B8H4mnKZ.js} +2 -2
  21. package/src/assets/web-panel/assets/{Dashboard-DRCQl7H1.js → Dashboard-BaGc9qhg.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dropdown-De47CuRY.js → Dropdown-S1uJJIZw.js} +1 -1
  23. package/src/assets/web-panel/assets/{EmailListRenderer-C-wAkceB.js → EmailListRenderer-Blbx1vAz.js} +1 -1
  24. package/src/assets/web-panel/assets/{FamilyGuardDashboard-DhLF_E0k.js → FamilyGuardDashboard-sgVrRdsF.js} +1 -1
  25. package/src/assets/web-panel/assets/{Federation-DAipUS1m.js → Federation-BLxRz3p8.js} +1 -1
  26. package/src/assets/web-panel/assets/{FormItemContext-BCFyAd2j.js → FormItemContext-BxKKaAvu.js} +1 -1
  27. package/src/assets/web-panel/assets/{GenericCardRenderer-wMdxrEV9.js → GenericCardRenderer-DV_5bwaD.js} +1 -1
  28. package/src/assets/web-panel/assets/{Git-CcwP7HUN.js → Git-CruaPzKp.js} +2 -2
  29. package/src/assets/web-panel/assets/{Governance-VF760JcB.js → Governance-DfTPUmy7.js} +1 -1
  30. package/src/assets/web-panel/assets/{Inference-DnR-GIn2.js → Inference-C_9udVIW.js} +1 -1
  31. package/src/assets/web-panel/assets/{KnowledgeGraph-j-ewVKWO.js → KnowledgeGraph-n01U-gjh.js} +1 -1
  32. package/src/assets/web-panel/assets/{Logs-DgB7wSor.js → Logs-BeL1ewRb.js} +2 -2
  33. package/src/assets/web-panel/assets/{Marketplace-fiKjzVWE.js → Marketplace-Dgz01hmL.js} +1 -1
  34. package/src/assets/web-panel/assets/{McpTools-BjXSMQrd.js → McpTools-ZloXEm4I.js} +4 -4
  35. package/src/assets/web-panel/assets/{Memory-C0L5lnSS.js → Memory-CDSdtHpU.js} +2 -2
  36. package/src/assets/web-panel/assets/{MobileBridge-C0Rgg1Su.js → MobileBridge-BuPJZd8T.js} +2 -2
  37. package/src/assets/web-panel/assets/MobileProjects-CNCkKgp0.js +1 -0
  38. package/src/assets/web-panel/assets/{Mtc-BUsHuAjB.js → Mtc-lGsvongM.js} +2 -2
  39. package/src/assets/web-panel/assets/{MtcAudit-dlH8Q_7U.js → MtcAudit-CXteXVZ6.js} +2 -2
  40. package/src/assets/web-panel/assets/{Multisig-L3_9beuW.js → Multisig-CKak-PIq.js} +3 -3
  41. package/src/assets/web-panel/assets/{NLProgramming-BG4sXy27.js → NLProgramming-Ch7cCyUr.js} +1 -1
  42. package/src/assets/web-panel/assets/Notes-BdV01ItX.js +7 -0
  43. package/src/assets/web-panel/assets/{NotificationSettings-DHDT96AK.js → NotificationSettings-BMNRh2T1.js} +1 -1
  44. package/src/assets/web-panel/assets/OrderTableRenderer-99Kf8rfj.js +1 -0
  45. package/src/assets/web-panel/assets/{Organization-DdtOLkHG.js → Organization-COrs55I2.js} +4 -4
  46. package/src/assets/web-panel/assets/{Overflow-DLw5Pni7.js → Overflow-BkhsAG7t.js} +1 -1
  47. package/src/assets/web-panel/assets/{P2P-B-mZ5EXz.js → P2P-DsZbxioI.js} +2 -2
  48. package/src/assets/web-panel/assets/{PdhVaultBrowser-DeOmNCwK.js → PdhVaultBrowser-CidkBfvk.js} +3 -3
  49. package/src/assets/web-panel/assets/{Permissions-BeQMX71K.js → Permissions-C72ZZFud.js} +4 -4
  50. package/src/assets/web-panel/assets/{PersonalDataHub-D5PoqtQI.js → PersonalDataHub-VUIbdk-a.js} +2 -2
  51. package/src/assets/web-panel/assets/{Pipeline-B0f5sqKF.js → Pipeline-C8fL1ObU.js} +1 -1
  52. package/src/assets/web-panel/assets/{Privacy-Dj_gcxio.js → Privacy-BT5s1GOI.js} +1 -1
  53. package/src/assets/web-panel/assets/{ProjectInit-DmfPgied.js → ProjectInit-QH98UOrt.js} +2 -2
  54. package/src/assets/web-panel/assets/{ProjectSettings-BmBfocrv.js → ProjectSettings-BRLFP-Mm.js} +2 -2
  55. package/src/assets/web-panel/assets/{Projects-BUif48cc.js → Projects-CCBcFgso.js} +1 -1
  56. package/src/assets/web-panel/assets/{Providers-B0ztEAOV.js → Providers-sCK5cGnJ.js} +1 -1
  57. package/src/assets/web-panel/assets/{QuickAsk-BtMG4jH5.js → QuickAsk-D_-8ZAob.js} +1 -1
  58. package/src/assets/web-panel/assets/{Recommend-DQKN1En8.js → Recommend-CU6okV6s.js} +1 -1
  59. package/src/assets/web-panel/assets/{Reputation-D34CvUxg.js → Reputation-BGQa7J_F.js} +1 -1
  60. package/src/assets/web-panel/assets/{Row-nnuDNx31.js → Row-DRa2ug0L.js} +1 -1
  61. package/src/assets/web-panel/assets/{RssFeed-DHx9x8_B.js → RssFeed-DnKZJmxw.js} +2 -2
  62. package/src/assets/web-panel/assets/{Search-CH-JYtn_.js → Search-B9RFzDJk.js} +1 -1
  63. package/src/assets/web-panel/assets/{Security-nNKBmzm4.js → Security-Dp4TuZMq.js} +4 -4
  64. package/src/assets/web-panel/assets/{Services-xYk_lDxy.js → Services-ChramMT4.js} +2 -2
  65. package/src/assets/web-panel/assets/{Skeleton-DTYyRduA.js → Skeleton-B6gdSkvx.js} +1 -1
  66. package/src/assets/web-panel/assets/{Skills-DS19-9sF.js → Skills-_WvlZ1oz.js} +1 -1
  67. package/src/assets/web-panel/assets/{Sla-Cr_ir42Y.js → Sla-CJH6QKOR.js} +1 -1
  68. package/src/assets/web-panel/assets/{SpeechSettings-Ch5Iq7Wy.js → SpeechSettings-Dk4n0g4i.js} +1 -1
  69. package/src/assets/web-panel/assets/{SyncSettings-CTblfa_E.js → SyncSettings-BsOtJ1J_.js} +2 -2
  70. package/src/assets/web-panel/assets/{Tasks-z7lz3hjG.js → Tasks-cmCb3C73.js} +1 -1
  71. package/src/assets/web-panel/assets/{Templates-DGoMFd4r.js → Templates-CgAJvAus.js} +1 -1
  72. package/src/assets/web-panel/assets/{Tenant-DQUPvHxx.js → Tenant-C4wfs3-U.js} +1 -1
  73. package/src/assets/web-panel/assets/Terminal-wV9QMWnm.js +3 -0
  74. package/src/assets/web-panel/assets/{TimelineRenderer-DGTc2UqL.js → TimelineRenderer-CTlQQgk4.js} +1 -1
  75. package/src/assets/web-panel/assets/{Tokens-DPVnuARF.js → Tokens-CErFY1CD.js} +1 -1
  76. package/src/assets/web-panel/assets/{Trigger-DV5MPXC1.js → Trigger-BaIuVgr-.js} +1 -1
  77. package/src/assets/web-panel/assets/{Trust-BBkMKqwS.js → Trust-CvD7xCNO.js} +1 -1
  78. package/src/assets/web-panel/assets/{UkeySign-B_2E0qev.js → UkeySign-Bie2ESVD.js} +1 -1
  79. package/src/assets/web-panel/assets/{VideoEditing-CA-qKeVb.js → VideoEditing-FGGdGzJU.js} +1 -1
  80. package/src/assets/web-panel/assets/{Wallet-Ds4WURh-.js → Wallet-CVKgofd3.js} +4 -4
  81. package/src/assets/web-panel/assets/{WebAuthn-BApiHjzz.js → WebAuthn-F93LUUrd.js} +5 -5
  82. package/src/assets/web-panel/assets/{WorkflowEditor-DFzmAnzV.js → WorkflowEditor-pzCW9tTg.js} +1 -1
  83. package/src/assets/web-panel/assets/{chat-DZ6sHPit.js → chat-D-f2Co-q.js} +1 -1
  84. package/src/assets/web-panel/assets/{colors-DgbwhHtE.js → colors-Cy43g4nC.js} +1 -1
  85. package/src/assets/web-panel/assets/{compact-item-C4QVYSzd.js → compact-item-BRdySqtK.js} +1 -1
  86. package/src/assets/web-panel/assets/{createContext-yXIs4TwU.js → createContext-DgMYbuMm.js} +1 -1
  87. package/src/assets/web-panel/assets/devWarning-Bo9SkRXX.js +1 -0
  88. package/src/assets/web-panel/assets/{hasIn-CPtuUtBl.js → hasIn-BDsRbw2n.js} +1 -1
  89. package/src/assets/web-panel/assets/{index-BaVYCMJa.js → index-0pfP3jJF.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-IFh9qCi0.js → index-29RDMTEv.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-Bd0JznCS.js → index-B3JHZM8X.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-DCGmeXfl.js → index-B6RFEGBP.js} +1 -1
  93. package/src/assets/web-panel/assets/{index-x9bXmSNB.js → index-B8UJW5kE.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-CTlz3MP6.js → index-B8WL38cq.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-BsXF9cn5.js → index-B9VxLQsa.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-D2KRfjEI.js → index-BBVC3LOh.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-DTLaRwKx.js → index-BG9nDhg3.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-EGVlUtH-.js → index-Bao4b1Wk.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-BOKVSmKh.js → index-Bdwey8Sa.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-CaC4gaQZ.js → index-Bk9ONVVr.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-C0LyE6R6.js → index-BpjInZGD.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-CJ550XXg.js → index-BuDKBx6m.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-BWJGry74.js → index-C64xX0ec.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-DopuoTzG.js → index-CBwzy6n6.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-CBAgy5pf.js → index-CEDPIN8q.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-BJiGrT6V.js → index-CUFP4IGX.js} +1 -1
  107. package/src/assets/web-panel/assets/index-CYUiucwy.js +1 -0
  108. package/src/assets/web-panel/assets/{index-CnP2ftM5.js → index-CpEZoTIi.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-BxclR5gc.js → index-Cr6Lwc-2.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-BIAxMDe9.js → index-CsWz3uZ2.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-B91hax9S.js → index-CsYLEuFv.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-jBlY6-bF.js → index-CvEvH5gF.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-DdFjcgqH.js → index-D5zFNpqL.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-UEeNpaDD.js → index-DFNfqFW5.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DpDAGvyU.js → index-DGWnHsSt.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-BpBCKK6W.js → index-DQbOCjW_.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-BCb7MYMS.js → index-DWece4X2.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-aKZjRwjv.js → index-DYzfPThz.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-ZCyyy3Zt.js → index-DjQ8sTHg.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-DC5iP1VB.js → index-Dqoh6hTU.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-DA0ePxNn.js → index-Dw-h05cX.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-4g6pGxnX.js → index-IKV6oagF.js} +1 -1
  123. package/src/assets/web-panel/assets/index-SQQL0zZc.js +1 -0
  124. package/src/assets/web-panel/assets/{index-DN4qpkKQ.js → index-UGuq7Obe.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-DHnWI0jj.js → index-ZPxEzory.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-kbcTc6Pf.js → index-oXX0i2Jf.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-B9DUiQ24.js → index-qW3-iWXU.js} +3 -3
  128. package/src/assets/web-panel/assets/{initDefaultProps-BDsxioXk.js → initDefaultProps-C2kJNJ3d.js} +1 -1
  129. package/src/assets/web-panel/assets/{motion-erZ2fiIQ.js → motion-70hfHSsm.js} +1 -1
  130. package/src/assets/web-panel/assets/{move-BFiiw4WK.js → move-D92_uw4u.js} +1 -1
  131. package/src/assets/web-panel/assets/{omit-BRMVd4pM.js → omit-uVUZsfxV.js} +1 -1
  132. package/src/assets/web-panel/assets/{pickAttrs-CGjoFXsq.js → pickAttrs-yMW0EAaP.js} +1 -1
  133. package/src/assets/web-panel/assets/{placementArrow-DU_Bnf7w.js → placementArrow-Db5e4sO2.js} +1 -1
  134. package/src/assets/web-panel/assets/{responsiveObserve-DPdkYupg.js → responsiveObserve-CGNzIrU2.js} +1 -1
  135. package/src/assets/web-panel/assets/{slide-JfHiG96y.js → slide-C--_RIUp.js} +1 -1
  136. package/src/assets/web-panel/assets/{statusUtils-Dy-1guyd.js → statusUtils-w3HjrMR0.js} +1 -1
  137. package/src/assets/web-panel/assets/{styleChecker-Chaljnux.js → styleChecker-5lfAQjNF.js} +1 -1
  138. package/src/assets/web-panel/assets/{useFlexGapSupport-DOHIHBgY.js → useFlexGapSupport-CyEQZPR5.js} +1 -1
  139. package/src/assets/web-panel/assets/{useFs-BxSoQhIY.js → useFs--1NzerQB.js} +1 -1
  140. package/src/assets/web-panel/assets/{usePersonalDataHub-MOR76PYB.js → usePersonalDataHub-CSbkSUR-.js} +1 -1
  141. package/src/assets/web-panel/assets/{vnode-BBGIyeYD.js → vnode-Dhxh6GKW.js} +1 -1
  142. package/src/assets/web-panel/assets/{zoom-C1oFENec.js → zoom-_o37plKh.js} +1 -1
  143. package/src/assets/web-panel/index.html +1 -1
  144. package/src/lib/did-v2-manager.js +1 -1
  145. package/src/lib/llm-providers.js +44 -14
  146. package/src/lib/notifiers/_http.js +31 -0
  147. package/src/lib/notifiers/dingtalk.js +2 -1
  148. package/src/lib/notifiers/feishu.js +2 -1
  149. package/src/lib/notifiers/telegram.js +14 -9
  150. package/src/lib/notifiers/wecom.js +3 -1
  151. package/src/lib/plugin-ecosystem.js +1 -1
  152. package/src/lib/runnable-provider.js +119 -0
  153. package/src/lib/version-checker.js +33 -4
  154. package/src/runtime/agent-core.js +21 -1
  155. package/src/assets/web-panel/assets/MobileProjects-BPA50hQb.js +0 -1
  156. package/src/assets/web-panel/assets/Notes-felgIvGS.js +0 -7
  157. package/src/assets/web-panel/assets/OrderTableRenderer-BYrkEfvR.js +0 -1
  158. package/src/assets/web-panel/assets/Terminal-Wt2wrbE6.js +0 -3
  159. package/src/assets/web-panel/assets/devWarning-C-HfIeF7.js +0 -1
  160. package/src/assets/web-panel/assets/index-BBgWatYO.js +0 -1
  161. package/src/assets/web-panel/assets/index-CvCTol_u.js +0 -1
@@ -1 +1 @@
1
- import{h as s}from"./index-B9DUiQ24.js";const n=(p,o)=>{const r=s({},p);return Object.keys(o).forEach(t=>{const e=r[t];if(e)e.type||e.default?e.default=o[t]:e.def?e.def(o[t]):r[t]={type:e,default:o[t]};else throw new Error(`not have ${t} prop`)}),r};export{n as i};
1
+ import{h as s}from"./index-qW3-iWXU.js";const n=(p,o)=>{const r=s({},p);return Object.keys(o).forEach(t=>{const e=r[t];if(e)e.type||e.default?e.default=o[t]:e.def?e.def(o[t]):r[t]={type:e,default:o[t]};else throw new Error(`not have ${t} prop`)}),r};export{n as i};
@@ -1,4 +1,4 @@
1
- import{b as D,e as k,d as F,q as _,o as I,w as O,n as R,f as z,c as H,s as f}from"./vendor-BvqAck49.js";import{A as p,B as A,D as C,P as j,F as q,G,h as v}from"./index-B9DUiQ24.js";import{w as L}from"./raf-Deuc0E8-.js";let M=!1;try{const e=Object.defineProperty({},"passive",{get(){M=!0}});window.addEventListener("testPassive",null,e),window.removeEventListener("testPassive",null,e)}catch{}function te(e,n,o,t){if(e&&e.addEventListener){let r=t;r===void 0&&M&&(n==="touchstart"||n==="touchmove"||n==="wheel")&&(r={passive:!1}),e.addEventListener(n,o,r)}return{remove:()=>{e&&e.removeEventListener&&e.removeEventListener(n,o)}}}let g;function W(e){if(typeof document>"u")return 0;if(g===void 0){const n=document.createElement("div");n.style.width="100%",n.style.height="200px";const o=document.createElement("div"),t=o.style;t.position="absolute",t.top="0",t.left="0",t.pointerEvents="none",t.visibility="hidden",t.width="200px",t.height="150px",t.overflow="hidden",o.appendChild(n),document.body.appendChild(o);const r=n.offsetWidth;o.style.overflow="scroll";let a=n.offsetWidth;r===a&&(a=o.clientWidth),document.body.removeChild(o),g=r-a}return g}function N(e){const n=e.match(/^(.*)px$/),o=Number(n?.[1]);return Number.isNaN(o)?W():o}function ne(e){if(typeof document>"u"||!e||!(e instanceof Element))return{width:0,height:0};const{width:n,height:o}=getComputedStyle(e,"::-webkit-scrollbar");return{width:N(n),height:N(o)}}const T=`vc-util-locker-${Date.now()}`;let x=0;function V(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}function Q(e){const n=D(()=>!!e&&!!e.value);x+=1;const o=`${T}_${x}`;k(t=>{if(p()){if(n.value){const r=W(),a=V();A(`
1
+ import{b as D,e as k,d as F,q as _,o as I,w as O,n as R,f as z,c as H,s as f}from"./vendor-BvqAck49.js";import{A as p,B as A,D as C,P as j,F as q,G,h as v}from"./index-qW3-iWXU.js";import{w as L}from"./raf-Deuc0E8-.js";let M=!1;try{const e=Object.defineProperty({},"passive",{get(){M=!0}});window.addEventListener("testPassive",null,e),window.removeEventListener("testPassive",null,e)}catch{}function te(e,n,o,t){if(e&&e.addEventListener){let r=t;r===void 0&&M&&(n==="touchstart"||n==="touchmove"||n==="wheel")&&(r={passive:!1}),e.addEventListener(n,o,r)}return{remove:()=>{e&&e.removeEventListener&&e.removeEventListener(n,o)}}}let g;function W(e){if(typeof document>"u")return 0;if(g===void 0){const n=document.createElement("div");n.style.width="100%",n.style.height="200px";const o=document.createElement("div"),t=o.style;t.position="absolute",t.top="0",t.left="0",t.pointerEvents="none",t.visibility="hidden",t.width="200px",t.height="150px",t.overflow="hidden",o.appendChild(n),document.body.appendChild(o);const r=n.offsetWidth;o.style.overflow="scroll";let a=n.offsetWidth;r===a&&(a=o.clientWidth),document.body.removeChild(o),g=r-a}return g}function N(e){const n=e.match(/^(.*)px$/),o=Number(n?.[1]);return Number.isNaN(o)?W():o}function ne(e){if(typeof document>"u"||!e||!(e instanceof Element))return{width:0,height:0};const{width:n,height:o}=getComputedStyle(e,"::-webkit-scrollbar");return{width:N(n),height:N(o)}}const T=`vc-util-locker-${Date.now()}`;let x=0;function V(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}function Q(e){const n=D(()=>!!e&&!!e.value);x+=1;const o=`${T}_${x}`;k(t=>{if(p()){if(n.value){const r=W(),a=V();A(`
2
2
  html body {
3
3
  overflow-y: hidden;
4
4
  ${a?`width: calc(100% - ${r}px);`:""}
@@ -1,4 +1,4 @@
1
- import{K as t}from"./index-B9DUiQ24.js";import{i as s}from"./motion-erZ2fiIQ.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-qW3-iWXU.js";import{i as s}from"./motion-70hfHSsm.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-B9DUiQ24.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-qW3-iWXU.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-B9DUiQ24.js";const l=`accept acceptcharset accesskey action allowfullscreen allowtransparency
1
+ import{h as i}from"./index-qW3-iWXU.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-B9DUiQ24.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-qW3-iWXU.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-B9DUiQ24.js";import{b as x}from"./vendor-BvqAck49.js";const v=["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{v as r,w as u};
1
+ import{I as o,h}from"./index-qW3-iWXU.js";import{b as x}from"./vendor-BvqAck49.js";const v=["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{v as r,w as u};
@@ -1,4 +1,4 @@
1
- import{K as n}from"./index-B9DUiQ24.js";import{i as e}from"./motion-erZ2fiIQ.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-qW3-iWXU.js";import{i as e}from"./motion-70hfHSsm.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-B9DUiQ24.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-qW3-iWXU.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-B9DUiQ24.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-qW3-iWXU.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{o,s as t}from"./vendor-BvqAck49.js";import{d as s}from"./styleChecker-Chaljnux.js";const r=(()=>{const e=t(!1);return o(()=>{e.value=s()}),e});export{r as u};
1
+ import{o,s as t}from"./vendor-BvqAck49.js";import{d as s}from"./styleChecker-5lfAQjNF.js";const r=(()=>{const e=t(!1);return o(()=>{e.value=s()}),e});export{r as u};
@@ -1 +1 @@
1
- import{u as d}from"./index-B9DUiQ24.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-qW3-iWXU.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{u as f}from"./index-B9DUiQ24.js";function d(n){if(!n)return n;if(n.error)throw new Error(n.error);return n.result!==void 0?n.result:n}function p(n,t,a,e,r){return typeof n.onMessage!="function"||typeof n.sendRaw!="function"?n.sendRaw({type:t,...a},r).then(d):new Promise((u,s)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${t}.event`,g=`${t}.end`;let c=!1,y=()=>{};const o=(i,b)=>{if(!c){c=!0,clearTimeout(m);try{y()}catch{}i(b)}},m=setTimeout(()=>{o(s,new Error(`stream timeout (${r}ms): ${t}`))},r),h=n.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof e=="function")try{e(i.event||i)}catch{}return}if(i.type===g){o(u,d(i));return}i.type==="error"&&o(s,new Error(i.message||"stream error"))}});y=typeof h=="function"?h:()=>{},Promise.resolve(n.sendRaw({id:l,type:t,...a},r)).catch(()=>{})})}function D(){const n=f(),t=(a,e={},r=3e4)=>n.sendRaw({type:a,...e},r).then(d);return{async health(){return await t("personal-data-hub.health",{},8e3)},async stats(){return await t("personal-data-hub.stats",{},8e3)},async listAdapters(){return await t("personal-data-hub.list-adapters",{},5e3)},async pickFile(a={}){try{const e=await n.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),r=e&&e.result!==void 0?e.result:e;return r&&r.ok&&typeof r.filePath=="string"?r.filePath:null}catch{return null}},async adapterReadiness(a){return await t("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},async syncAdapter(a,e={}){return await t("personal-data-hub.sync-adapter",{name:a,options:e},12e4)},async syncAll(a={}){return await t("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:e=20,seed:r=1}={}){return await t("personal-data-hub.register-mock",{name:a,count:e,seed:r})},async unregister(a){return await t("personal-data-hub.unregister",{name:a})},async ask(a,e={}){return await t("personal-data-hub.ask",{question:a,options:e},18e4)},async queryEvents(a={}){return await t("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await t("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await t("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await t("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await t("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,e={}){return await t("personal-data-hub.register-email",{account:a,opts:e},15e3)},async unregisterEmail(a){return await t("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await t("personal-data-hub.list-email-accounts",{},5e3)},async eventDetail(a){return await t("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,e={},r){return await p(n,"personal-data-hub.sync-adapter-stream",{name:a,options:e},r,6e5)},async syncAllStream(a={},e){return await p(n,"personal-data-hub.sync-all-stream",{options:a},e,9e5)},async registerAlipay(a,e={}){return await t("personal-data-hub.register-alipay",{account:a,opts:e},15e3)},async unregisterAlipay(a){return await t("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await t("personal-data-hub.list-alipay-accounts",{},5e3)},async importAlipayBill({zipPath:a,csvPath:e,zipPassword:r}={}){return await t("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:e,zipPassword:r},3e5)},async reviewQueueList(a=50){return await t("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,e){return await t("personal-data-hub.review-decision",{reviewId:a,decision:e},5e3)},async manualMerge(a,e){return await t("personal-data-hub.manual-merge",{aId:a,bId:e},5e3)},async manualUnmerge(a){return await t("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await t("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await t("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await t("personal-data-hub.skills-list",{},5e3)},async runSkill(a,e={}){return await t("personal-data-hub.run-skill",{name:a,options:e},12e4)},async openAichatLogin(a,e={}){return await t("personal-data-hub.aichat-open-login",{vendor:a,opts:e},1e4)},async probeAichatCookies(a,e){return await t("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:e},1e4)},async registerAichatVendor(a,e,r={}){return await t("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:e,opts:r},3e4)},async rotateAichatLogin(a){return await t("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await t("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await t("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await t("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await t("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:e,wechatDataPath:r,fridaOpts:u,keyProviderOverride:s}={}){return await t("personal-data-hub.register-wechat",{account:a,dbPath:e,wechatDataPath:r,fridaOpts:u,keyProviderOverride:s},45e3)},async listWechatAccounts(){return await t("personal-data-hub.list-wechat-accounts",{},5e3)},async unregisterWechat(a){return await t("personal-data-hub.unregister-wechat",{uin:a},5e3)},async bilibiliAdbSync(a={}){return await t("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await t("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await t("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await t("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await t("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await t("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await t("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await t("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{D as u};
1
+ import{u as f}from"./index-qW3-iWXU.js";function d(n){if(!n)return n;if(n.error)throw new Error(n.error);return n.result!==void 0?n.result:n}function p(n,t,a,e,r){return typeof n.onMessage!="function"||typeof n.sendRaw!="function"?n.sendRaw({type:t,...a},r).then(d):new Promise((u,s)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${t}.event`,g=`${t}.end`;let c=!1,y=()=>{};const o=(i,b)=>{if(!c){c=!0,clearTimeout(m);try{y()}catch{}i(b)}},m=setTimeout(()=>{o(s,new Error(`stream timeout (${r}ms): ${t}`))},r),h=n.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof e=="function")try{e(i.event||i)}catch{}return}if(i.type===g){o(u,d(i));return}i.type==="error"&&o(s,new Error(i.message||"stream error"))}});y=typeof h=="function"?h:()=>{},Promise.resolve(n.sendRaw({id:l,type:t,...a},r)).catch(()=>{})})}function D(){const n=f(),t=(a,e={},r=3e4)=>n.sendRaw({type:a,...e},r).then(d);return{async health(){return await t("personal-data-hub.health",{},8e3)},async stats(){return await t("personal-data-hub.stats",{},8e3)},async listAdapters(){return await t("personal-data-hub.list-adapters",{},5e3)},async pickFile(a={}){try{const e=await n.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),r=e&&e.result!==void 0?e.result:e;return r&&r.ok&&typeof r.filePath=="string"?r.filePath:null}catch{return null}},async adapterReadiness(a){return await t("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},async syncAdapter(a,e={}){return await t("personal-data-hub.sync-adapter",{name:a,options:e},12e4)},async syncAll(a={}){return await t("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:e=20,seed:r=1}={}){return await t("personal-data-hub.register-mock",{name:a,count:e,seed:r})},async unregister(a){return await t("personal-data-hub.unregister",{name:a})},async ask(a,e={}){return await t("personal-data-hub.ask",{question:a,options:e},18e4)},async queryEvents(a={}){return await t("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await t("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await t("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await t("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await t("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,e={}){return await t("personal-data-hub.register-email",{account:a,opts:e},15e3)},async unregisterEmail(a){return await t("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await t("personal-data-hub.list-email-accounts",{},5e3)},async eventDetail(a){return await t("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,e={},r){return await p(n,"personal-data-hub.sync-adapter-stream",{name:a,options:e},r,6e5)},async syncAllStream(a={},e){return await p(n,"personal-data-hub.sync-all-stream",{options:a},e,9e5)},async registerAlipay(a,e={}){return await t("personal-data-hub.register-alipay",{account:a,opts:e},15e3)},async unregisterAlipay(a){return await t("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await t("personal-data-hub.list-alipay-accounts",{},5e3)},async importAlipayBill({zipPath:a,csvPath:e,zipPassword:r}={}){return await t("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:e,zipPassword:r},3e5)},async reviewQueueList(a=50){return await t("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,e){return await t("personal-data-hub.review-decision",{reviewId:a,decision:e},5e3)},async manualMerge(a,e){return await t("personal-data-hub.manual-merge",{aId:a,bId:e},5e3)},async manualUnmerge(a){return await t("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await t("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await t("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await t("personal-data-hub.skills-list",{},5e3)},async runSkill(a,e={}){return await t("personal-data-hub.run-skill",{name:a,options:e},12e4)},async openAichatLogin(a,e={}){return await t("personal-data-hub.aichat-open-login",{vendor:a,opts:e},1e4)},async probeAichatCookies(a,e){return await t("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:e},1e4)},async registerAichatVendor(a,e,r={}){return await t("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:e,opts:r},3e4)},async rotateAichatLogin(a){return await t("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await t("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await t("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await t("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await t("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:e,wechatDataPath:r,fridaOpts:u,keyProviderOverride:s}={}){return await t("personal-data-hub.register-wechat",{account:a,dbPath:e,wechatDataPath:r,fridaOpts:u,keyProviderOverride:s},45e3)},async listWechatAccounts(){return await t("personal-data-hub.list-wechat-accounts",{},5e3)},async unregisterWechat(a){return await t("personal-data-hub.unregister-wechat",{uin:a},5e3)},async bilibiliAdbSync(a={}){return await t("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await t("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await t("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await t("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await t("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await t("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await t("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await t("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{D as u};
@@ -1 +1 @@
1
- import{M as i,h as a,w as l}from"./index-B9DUiQ24.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-BvqAck49.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","class must be string"),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=>g(r)?!(r.type===d||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-qW3-iWXU.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-BvqAck49.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","class must be string"),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=>g(r)?!(r.type===d||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-B9DUiQ24.js";import{i as f}from"./motion-erZ2fiIQ.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-qW3-iWXU.js";import{i as f}from"./motion-70hfHSsm.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,7 +8,7 @@
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-B9DUiQ24.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-qW3-iWXU.js"></script>
12
12
  <link rel="modulepreload" crossorigin href="./assets/vendor-BvqAck49.js">
13
13
  <link rel="modulepreload" crossorigin href="./assets/icons-DP3uiYxy.js">
14
14
  <link rel="stylesheet" crossorigin href="./assets/index-Cq93VfoF.css">
@@ -948,7 +948,7 @@ export function recordReputationSource(
948
948
  ) {
949
949
  if (!did) throw new Error("did required");
950
950
  if (!source) throw new Error("source required");
951
- if (typeof score !== "number") throw new Error("score must be a number");
951
+ if (!Number.isFinite(score)) throw new Error("score must be a finite number");
952
952
 
953
953
  const weight = REPUTATION_SOURCE_WEIGHTS[source] ?? 1.0;
954
954
  const id = _uuid();
@@ -114,6 +114,33 @@ export const BUILT_IN_PROVIDERS = {
114
114
  },
115
115
  };
116
116
 
117
+ // A connectivity probe (`testProvider`) sends a tiny "Hi" and expects a quick
118
+ // reply, so it must fail fast — a probe that hangs forever defeats its purpose
119
+ // (it backs `cc llm test`, provider selection, doctor). Bound it with a total
120
+ // timeout; env-overridable via CC_PROVIDER_TEST_TIMEOUT_MS.
121
+ export const PROVIDER_TEST_TIMEOUT_MS =
122
+ Number(process.env.CC_PROVIDER_TEST_TIMEOUT_MS) || 20000;
123
+
124
+ async function _fetchWithTimeout(
125
+ url,
126
+ opts = {},
127
+ ms = PROVIDER_TEST_TIMEOUT_MS,
128
+ ) {
129
+ const controller = new AbortController();
130
+ const timer = setTimeout(() => controller.abort(), ms);
131
+ if (timer && typeof timer.unref === "function") timer.unref();
132
+ try {
133
+ return await fetch(url, { ...opts, signal: controller.signal });
134
+ } catch (e) {
135
+ if (controller.signal.aborted) {
136
+ throw new Error(`provider test timed out after ${ms / 1000}s`);
137
+ }
138
+ throw e;
139
+ } finally {
140
+ clearTimeout(timer);
141
+ }
142
+ }
143
+
117
144
  /**
118
145
  * Provider registry — manages available providers and active selection.
119
146
  */
@@ -291,7 +318,7 @@ export class LLMProviderRegistry {
291
318
  const testModel = model || provider.models[0];
292
319
 
293
320
  if (name === "ollama") {
294
- const res = await fetch(`${provider.baseUrl}/api/generate`, {
321
+ const res = await _fetchWithTimeout(`${provider.baseUrl}/api/generate`, {
295
322
  method: "POST",
296
323
  headers: { "Content-Type": "application/json" },
297
324
  body: JSON.stringify({ model: testModel, prompt: "Hi", stream: false }),
@@ -308,7 +335,7 @@ export class LLMProviderRegistry {
308
335
  if (name === "gemini") {
309
336
  const key = this.getApiKey(name);
310
337
  if (!key) throw new Error("GEMINI_API_KEY not set");
311
- const res = await fetch(
338
+ const res = await _fetchWithTimeout(
312
339
  `${provider.baseUrl}/models/${testModel}:generateContent?key=${key}`,
313
340
  {
314
341
  method: "POST",
@@ -325,7 +352,7 @@ export class LLMProviderRegistry {
325
352
  if (name === "anthropic") {
326
353
  const key = this.getApiKey(name);
327
354
  if (!key) throw new Error("ANTHROPIC_API_KEY not set");
328
- const res = await fetch(`${provider.baseUrl}/messages`, {
355
+ const res = await _fetchWithTimeout(`${provider.baseUrl}/messages`, {
329
356
  method: "POST",
330
357
  headers: {
331
358
  "Content-Type": "application/json",
@@ -347,18 +374,21 @@ export class LLMProviderRegistry {
347
374
  // OpenAI-compatible (openai, deepseek, dashscope, mistral, volcengine, kimi, minimax)
348
375
  const key = this.getApiKey(name);
349
376
  if (!key) throw new Error(`${provider.apiKeyEnv} not set`);
350
- const res = await fetch(`${provider.baseUrl}/chat/completions`, {
351
- method: "POST",
352
- headers: {
353
- "Content-Type": "application/json",
354
- Authorization: `Bearer ${key}`,
377
+ const res = await _fetchWithTimeout(
378
+ `${provider.baseUrl}/chat/completions`,
379
+ {
380
+ method: "POST",
381
+ headers: {
382
+ "Content-Type": "application/json",
383
+ Authorization: `Bearer ${key}`,
384
+ },
385
+ body: JSON.stringify({
386
+ model: testModel,
387
+ messages: [{ role: "user", content: "Hi" }],
388
+ max_tokens: 10,
389
+ }),
355
390
  },
356
- body: JSON.stringify({
357
- model: testModel,
358
- messages: [{ role: "user", content: "Hi" }],
359
- max_tokens: 10,
360
- }),
361
- });
391
+ );
362
392
  if (!res.ok) throw new Error(`HTTP ${res.status}`);
363
393
  const data = await res.json();
364
394
  const text = data.choices?.[0]?.message?.content || "";
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Shared fetch-with-timeout for the webhook notifiers (DingTalk / Feishu /
3
+ * Telegram / WeCom). A notification POST must not hang forever on a slow or
4
+ * dead webhook endpoint — abort after NOTIFIER_TIMEOUT_MS (env-overridable via
5
+ * CC_NOTIFIER_TIMEOUT_MS). Each notifier's send() already try/catches into
6
+ * { ok: false, reason }, so a timeout surfaces as a clean failed-send rather
7
+ * than a hang.
8
+ */
9
+
10
+ export const NOTIFIER_TIMEOUT_MS =
11
+ Number(process.env.CC_NOTIFIER_TIMEOUT_MS) || 15000;
12
+
13
+ export async function fetchWithTimeout(
14
+ url,
15
+ opts = {},
16
+ ms = NOTIFIER_TIMEOUT_MS,
17
+ ) {
18
+ const controller = new AbortController();
19
+ const timer = setTimeout(() => controller.abort(), ms);
20
+ if (timer && typeof timer.unref === "function") timer.unref();
21
+ try {
22
+ return await fetch(url, { ...opts, signal: controller.signal });
23
+ } catch (e) {
24
+ if (controller.signal.aborted) {
25
+ throw new Error(`notifier request timed out after ${ms / 1000}s`);
26
+ }
27
+ throw e;
28
+ } finally {
29
+ clearTimeout(timer);
30
+ }
31
+ }
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import crypto from "crypto";
12
+ import { fetchWithTimeout } from "./_http.js";
12
13
 
13
14
  export class DingTalkNotifier {
14
15
  constructor(options = {}) {
@@ -43,7 +44,7 @@ export class DingTalkNotifier {
43
44
  async send(title, text) {
44
45
  if (!this.isConfigured) return { ok: false, reason: "not configured" };
45
46
  try {
46
- const res = await fetch(this._signedUrl(), {
47
+ const res = await fetchWithTimeout(this._signedUrl(), {
47
48
  method: "POST",
48
49
  headers: { "Content-Type": "application/json" },
49
50
  body: JSON.stringify({
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import crypto from "crypto";
12
+ import { fetchWithTimeout } from "./_http.js";
12
13
 
13
14
  export class FeishuNotifier {
14
15
  constructor(options = {}) {
@@ -57,7 +58,7 @@ export class FeishuNotifier {
57
58
  };
58
59
 
59
60
  try {
60
- const res = await fetch(this.webhookUrl, {
61
+ const res = await fetchWithTimeout(this.webhookUrl, {
61
62
  method: "POST",
62
63
  headers: { "Content-Type": "application/json" },
63
64
  body: JSON.stringify(payload),
@@ -7,6 +7,8 @@
7
7
  * TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID
8
8
  */
9
9
 
10
+ import { fetchWithTimeout } from "./_http.js";
11
+
10
12
  const TELEGRAM_API = "https://api.telegram.org";
11
13
 
12
14
  export class TelegramNotifier {
@@ -32,15 +34,18 @@ export class TelegramNotifier {
32
34
  if (!this.isConfigured) return { ok: false, reason: "not configured" };
33
35
 
34
36
  try {
35
- const res = await fetch(`${TELEGRAM_API}/bot${this.token}/sendMessage`, {
36
- method: "POST",
37
- headers: { "Content-Type": "application/json" },
38
- body: JSON.stringify({
39
- chat_id: this.chatId,
40
- text,
41
- parse_mode: "HTML",
42
- }),
43
- });
37
+ const res = await fetchWithTimeout(
38
+ `${TELEGRAM_API}/bot${this.token}/sendMessage`,
39
+ {
40
+ method: "POST",
41
+ headers: { "Content-Type": "application/json" },
42
+ body: JSON.stringify({
43
+ chat_id: this.chatId,
44
+ text,
45
+ parse_mode: "HTML",
46
+ }),
47
+ },
48
+ );
44
49
  const data = await res.json();
45
50
  return { ok: data.ok, data };
46
51
  } catch (err) {
@@ -6,6 +6,8 @@
6
6
  * or options.webhookUrl
7
7
  */
8
8
 
9
+ import { fetchWithTimeout } from "./_http.js";
10
+
9
11
  export class WeComNotifier {
10
12
  constructor(options = {}) {
11
13
  this.webhookUrl = options.webhookUrl || process.env.WECOM_WEBHOOK_URL || "";
@@ -22,7 +24,7 @@ export class WeComNotifier {
22
24
  async send(content) {
23
25
  if (!this.isConfigured) return { ok: false, reason: "not configured" };
24
26
  try {
25
- const res = await fetch(this.webhookUrl, {
27
+ const res = await fetchWithTimeout(this.webhookUrl, {
26
28
  method: "POST",
27
29
  headers: { "Content-Type": "application/json" },
28
30
  body: JSON.stringify({
@@ -898,7 +898,7 @@ export function recordRevenue(
898
898
  if (!Object.values(REVENUE_TYPE).includes(type)) {
899
899
  throw new Error(`Unknown revenue type: ${type}`);
900
900
  }
901
- if (typeof amount !== "number" || amount < 0) {
901
+ if (!Number.isFinite(amount) || amount < 0) {
902
902
  throw new Error("amount must be a non-negative number");
903
903
  }
904
904
  if (developerShareRatio < 0 || developerShareRatio > 1) {
@@ -14,11 +14,130 @@
14
14
  * Empty/whitespace keys never count (a missing or cleared key is not usable).
15
15
  */
16
16
  import { BUILT_IN_PROVIDERS } from "./llm-providers.js";
17
+ import { selectModelForTask, TaskType } from "./task-model-selector.js";
17
18
 
18
19
  function nonEmpty(v) {
19
20
  return typeof v === "string" && v.trim().length > 0;
20
21
  }
21
22
 
23
+ /** Is this an authentication/authorization failure (missing/invalid/expired key)? */
24
+ export function isAuthError(err) {
25
+ if (!err) return false;
26
+ const status =
27
+ typeof err.status === "number"
28
+ ? err.status
29
+ : typeof err.statusCode === "number"
30
+ ? err.statusCode
31
+ : null;
32
+ if (status === 401 || status === 403) return true;
33
+ const msg = String(err.message || err).toLowerCase();
34
+ return /\b401\b|\b403\b|unauthorized|forbidden|authentication failed|api[\s_-]*key required|invalid api[\s_-]*key|incorrect api[\s_-]*key|expired/.test(
35
+ msg,
36
+ );
37
+ }
38
+
39
+ /** Host of a baseUrl, lowercased, or "" — tolerant of a bare host string. */
40
+ function hostOf(url) {
41
+ if (!nonEmpty(url)) return "";
42
+ try {
43
+ return new URL(url).host.toLowerCase();
44
+ } catch {
45
+ return String(url).toLowerCase();
46
+ }
47
+ }
48
+
49
+ /**
50
+ * Infer the provider a baseUrl actually belongs to. Catches a config where the
51
+ * provider field disagrees with the endpoint (e.g. provider "anthropic" but
52
+ * baseUrl points at volces.com → really volcengine). Returns null if unknown.
53
+ */
54
+ export function inferProviderFromBaseUrl(baseUrl) {
55
+ const host = hostOf(baseUrl);
56
+ if (!host) return null;
57
+ for (const [name, def] of Object.entries(BUILT_IN_PROVIDERS)) {
58
+ const defHost = hostOf(def.baseUrl);
59
+ if (defHost && (host === defHost || host.endsWith("." + defHost))) {
60
+ return name;
61
+ }
62
+ }
63
+ return null;
64
+ }
65
+
66
+ function envKey(provider, env) {
67
+ const def = BUILT_IN_PROVIDERS[provider];
68
+ return def && def.apiKeyEnv ? env[def.apiKeyEnv] : null;
69
+ }
70
+
71
+ /** A sensible default model for a provider (its CHAT task model). */
72
+ function defaultModelFor(provider) {
73
+ return selectModelForTask(provider, TaskType.CHAT) || undefined;
74
+ }
75
+
76
+ /**
77
+ * Wrap a chatFn so an AUTH failure (no / wrong / expired key for the resolved
78
+ * provider) self-heals to a provider we can actually run instead of failing the
79
+ * whole turn. Two recovery paths, in order:
80
+ * 1. baseUrl says otherwise — the endpoint belongs to a different provider
81
+ * than the `provider` field; retry with that provider, SAME baseUrl + key
82
+ * (fixes a mislabeled config like provider:anthropic + volces baseUrl).
83
+ * 2. env-keyed fallback — some other built-in provider has its key in the
84
+ * environment; retry with that provider's baseUrl + env key + default model.
85
+ * If neither applies, the original (clear) auth error is rethrown. One hop only;
86
+ * never recurses. Non-auth errors pass straight through.
87
+ *
88
+ * @param {Function} chatFn
89
+ * @param {object} [opts] { env=process.env, onFallback?({from,to,reason}) }
90
+ */
91
+ export function makeRunnableProviderFallback(
92
+ chatFn,
93
+ { env = process.env, onFallback } = {},
94
+ ) {
95
+ const notify = (info) => {
96
+ if (typeof onFallback === "function") {
97
+ try {
98
+ onFallback(info);
99
+ } catch {
100
+ /* notification is best-effort */
101
+ }
102
+ }
103
+ };
104
+ return async function runnableProviderFallback(messages, options = {}) {
105
+ try {
106
+ return await chatFn(messages, options);
107
+ } catch (err) {
108
+ if (!isAuthError(err)) throw err;
109
+ const failed = options.provider;
110
+
111
+ // 1) The endpoint belongs to a different provider than the label.
112
+ const inferred = inferProviderFromBaseUrl(options.baseUrl);
113
+ if (inferred && inferred !== failed) {
114
+ notify({ from: failed, to: inferred, reason: "baseurl-mismatch" });
115
+ return await chatFn(messages, {
116
+ ...options,
117
+ provider: inferred,
118
+ model: defaultModelFor(inferred) || options.model,
119
+ });
120
+ }
121
+
122
+ // 2) Another provider has a usable key in the environment.
123
+ for (const [name, def] of Object.entries(BUILT_IN_PROVIDERS)) {
124
+ if (name === failed) continue;
125
+ if (def.apiKeyEnv && nonEmpty(env[def.apiKeyEnv])) {
126
+ notify({ from: failed, to: name, reason: "env-key" });
127
+ return await chatFn(messages, {
128
+ ...options,
129
+ provider: name,
130
+ baseUrl: def.baseUrl,
131
+ apiKey: envKey(name, env),
132
+ model: defaultModelFor(name) || options.model,
133
+ });
134
+ }
135
+ }
136
+ throw err; // nowhere runnable to fall back to — surface the clear error
137
+ }
138
+ };
139
+ }
140
+
22
141
  /**
23
142
  * Can we actually call `provider` right now?
24
143
  *