chainlesschain 0.162.121 → 0.162.123

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 (188) hide show
  1. package/package.json +1 -1
  2. package/src/assets/web-panel/.build-hash +1 -1
  3. package/src/assets/web-panel/assets/AIOps-C5CSd8pY.js +1 -0
  4. package/src/assets/web-panel/assets/{ActionButton-B0guX-Pk.js → ActionButton-BugJtiJc.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-pvYAYaTD.js → Analytics-CzxpcV9E.js} +3 -3
  6. package/src/assets/web-panel/assets/{AppLayout-_GgOKQ2t.js → AppLayout-Cb0eHetM.js} +5 -5
  7. package/src/assets/web-panel/assets/Audit-qjq04wh8.js +1 -0
  8. package/src/assets/web-panel/assets/{Backup-DzC81Yn0.js → Backup-C2Y_XNBA.js} +1 -1
  9. package/src/assets/web-panel/assets/{BaseInput-BsJKfb1P.js → BaseInput-CZ0c7QHk.js} +1 -1
  10. package/src/assets/web-panel/assets/{Chat-WsUPq3Wj.js → Chat-CaKDT3wV.js} +6 -6
  11. package/src/assets/web-panel/assets/ChatBubbleRenderer-TeKnMwPj.js +1 -0
  12. package/src/assets/web-panel/assets/{Checkbox-C3yuwxvq.js → Checkbox-C6-Iu3bG.js} +1 -1
  13. package/src/assets/web-panel/assets/Codegen-TGLFk6P1.js +1 -0
  14. package/src/assets/web-panel/assets/{Col-DH6v5BCo.js → Col-DVBrO7AN.js} +1 -1
  15. package/src/assets/web-panel/assets/{Community-DPm78h9b.js → Community-tg6-Rik1.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compact-t_O2D6_A.js → Compact-DM4ZgFSE.js} +1 -1
  17. package/src/assets/web-panel/assets/Compliance-DFeWryxt.js +1 -0
  18. package/src/assets/web-panel/assets/{Cowork-BAfAK8X3.js → Cowork-CJwiWkUY.js} +2 -2
  19. package/src/assets/web-panel/assets/{Cron-BeG0RFLN.js → Cron-dsdXHvrO.js} +2 -2
  20. package/src/assets/web-panel/assets/Crosschain-p7_5Gq-7.js +1 -0
  21. package/src/assets/web-panel/assets/{DID-DnknPYMQ.js → DID-BB_LBLYT.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dashboard-CCChnAaV.js → Dashboard-Bh_HkNSD.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dropdown-DrnkbWTA.js → Dropdown-dTFtVnKk.js} +1 -1
  24. package/src/assets/web-panel/assets/{EmailListRenderer-yvHFL0rf.js → EmailListRenderer-yqdttzXV.js} +1 -1
  25. package/src/assets/web-panel/assets/{FamilyGuardDashboard-CkGkMoL4.js → FamilyGuardDashboard-DfX3YpUU.js} +1 -1
  26. package/src/assets/web-panel/assets/Federation-BJApfPV4.js +1 -0
  27. package/src/assets/web-panel/assets/{FormItemContext-CHniFKJL.js → FormItemContext-DNMwIh7X.js} +1 -1
  28. package/src/assets/web-panel/assets/{GenericCardRenderer-DUWt7emA.js → GenericCardRenderer-C-T8UQf0.js} +1 -1
  29. package/src/assets/web-panel/assets/{Git-BCkiDXHW.js → Git-SURFhkLi.js} +2 -2
  30. package/src/assets/web-panel/assets/Governance-B4u_KsfE.js +1 -0
  31. package/src/assets/web-panel/assets/Inference-2kr_rKQd.js +1 -0
  32. package/src/assets/web-panel/assets/{KnowledgeGraph-CcaaJRB6.js → KnowledgeGraph-h-nL7J6x.js} +1 -1
  33. package/src/assets/web-panel/assets/{Logs-CgrnKQgi.js → Logs-DjuWREBJ.js} +2 -2
  34. package/src/assets/web-panel/assets/Marketplace-W9Iz8b2m.js +1 -0
  35. package/src/assets/web-panel/assets/{McpTools-_C4-YpAK.js → McpTools-D0waMomb.js} +5 -5
  36. package/src/assets/web-panel/assets/{Memory-XGQtG2x2.js → Memory-Ci768GQ3.js} +2 -2
  37. package/src/assets/web-panel/assets/{MobileBridge-D4tGRMBu.js → MobileBridge-4jAehfcz.js} +2 -2
  38. package/src/assets/web-panel/assets/{MobileProjects-CSMoOsbj.js → MobileProjects-RpFuAiNz.js} +1 -1
  39. package/src/assets/web-panel/assets/{Mtc-BkOT98e8.js → Mtc-DJdw8btT.js} +4 -4
  40. package/src/assets/web-panel/assets/{MtcAudit-R3Bc7QS3.js → MtcAudit-Dc596XgH.js} +2 -2
  41. package/src/assets/web-panel/assets/{Multisig-DtPhN_Vp.js → Multisig--Qs7eGsH.js} +3 -3
  42. package/src/assets/web-panel/assets/NLProgramming-D3y71FDX.js +1 -0
  43. package/src/assets/web-panel/assets/{Notes-DQAs8WXS.js → Notes-uMxjj66_.js} +3 -3
  44. package/src/assets/web-panel/assets/{NotificationSettings-CU5inrwZ.js → NotificationSettings-C4ikBOsm.js} +1 -1
  45. package/src/assets/web-panel/assets/{OrderTableRenderer-CuOAigzP.js → OrderTableRenderer-BpmdunAz.js} +1 -1
  46. package/src/assets/web-panel/assets/{Organization-BBYSlNS4.js → Organization-BBEmFNGM.js} +4 -4
  47. package/src/assets/web-panel/assets/{Overflow-D4LFJ0F8.js → Overflow-B-4_IpbB.js} +1 -1
  48. package/src/assets/web-panel/assets/{P2P-Cb9wWcwI.js → P2P-DdOf9BZs.js} +2 -2
  49. package/src/assets/web-panel/assets/{PdhVaultBrowser-CbrWEB55.js → PdhVaultBrowser-DDU2Zc9Q.js} +3 -3
  50. package/src/assets/web-panel/assets/{Permissions-B6IgqOCw.js → Permissions-B1ebgevF.js} +4 -4
  51. package/src/assets/web-panel/assets/{PersonalDataHub-Bjr4sBQJ.js → PersonalDataHub-B3WcvKni.js} +2 -2
  52. package/src/assets/web-panel/assets/Pipeline-DASuPDc3.js +1 -0
  53. package/src/assets/web-panel/assets/Privacy-DnixwmhJ.js +1 -0
  54. package/src/assets/web-panel/assets/{ProjectInit-D_Ooa-_1.js → ProjectInit-BQjMDkML.js} +2 -2
  55. package/src/assets/web-panel/assets/{ProjectSettings-BcxJj9D5.js → ProjectSettings-dHyZ3SxW.js} +2 -2
  56. package/src/assets/web-panel/assets/Projects-BGWEJIVT.js +1 -0
  57. package/src/assets/web-panel/assets/Providers-Bl0dw6cI.js +1 -0
  58. package/src/assets/web-panel/assets/{QuickAsk-BwmHGadq.js → QuickAsk-BDrk7l3t.js} +1 -1
  59. package/src/assets/web-panel/assets/Recommend-BPKof_CA.js +1 -0
  60. package/src/assets/web-panel/assets/Reputation-6MNJLklK.js +1 -0
  61. package/src/assets/web-panel/assets/{Row-P2QvD32s.js → Row-DmGJwpfd.js} +1 -1
  62. package/src/assets/web-panel/assets/{RssFeed-Cbhe_ZuG.js → RssFeed-9-Fxh3_w.js} +2 -2
  63. package/src/assets/web-panel/assets/Search-CCHjey_D.js +1 -0
  64. package/src/assets/web-panel/assets/{Security-BHcX3oNC.js → Security-D6CySV7r.js} +4 -4
  65. package/src/assets/web-panel/assets/{Services-MyS-8Lbb.js → Services-Co8Mk8qE.js} +2 -2
  66. package/src/assets/web-panel/assets/{Skeleton-QZIW_jXl.js → Skeleton-BdON8M-1.js} +1 -1
  67. package/src/assets/web-panel/assets/Skills-CEJE1Go1.js +1 -0
  68. package/src/assets/web-panel/assets/Sla-BSxFvFX9.js +1 -0
  69. package/src/assets/web-panel/assets/{SpeechSettings-Bo1H5Wn6.js → SpeechSettings-C3rShYlV.js} +1 -1
  70. package/src/assets/web-panel/assets/{SyncSettings-Bsz0-gn1.js → SyncSettings-52NXsfyj.js} +2 -2
  71. package/src/assets/web-panel/assets/Tasks-He7CweW6.js +1 -0
  72. package/src/assets/web-panel/assets/{Templates-BougCISz.js → Templates-UtjBlJIO.js} +1 -1
  73. package/src/assets/web-panel/assets/Tenant-Dd5XNbYF.js +1 -0
  74. package/src/assets/web-panel/assets/Terminal-pFyh42cu.js +3 -0
  75. package/src/assets/web-panel/assets/{TimelineRenderer-DIvfcwcy.js → TimelineRenderer-BdfqBQmM.js} +1 -1
  76. package/src/assets/web-panel/assets/Tokens-CsgNsrdQ.js +1 -0
  77. package/src/assets/web-panel/assets/{Trigger-Di7RbOTg.js → Trigger-Dt_N_rvo.js} +1 -1
  78. package/src/assets/web-panel/assets/Trust-B1lJzsPn.js +1 -0
  79. package/src/assets/web-panel/assets/{UkeySign-D6K4VEkr.js → UkeySign-CW8YdFxg.js} +1 -1
  80. package/src/assets/web-panel/assets/{VideoEditing-DncGaI3n.js → VideoEditing-CU6o7qvp.js} +1 -1
  81. package/src/assets/web-panel/assets/{Wallet-C6dwNmEv.js → Wallet-DPxjEhbN.js} +4 -4
  82. package/src/assets/web-panel/assets/{WebAuthn-DECzmHdt.js → WebAuthn-CuJ29YAF.js} +4 -4
  83. package/src/assets/web-panel/assets/{WorkflowEditor-7Oui1r4s.js → WorkflowEditor-BcCA2U8H.js} +1 -1
  84. package/src/assets/web-panel/assets/{chat-D7cr3pGX.js → chat-Cxl5DGsc.js} +1 -1
  85. package/src/assets/web-panel/assets/{colors-DVBzBfcl.js → colors-FS_7Xggs.js} +1 -1
  86. package/src/assets/web-panel/assets/community-parser-Cuyslaku.js +3 -0
  87. package/src/assets/web-panel/assets/{compact-item-BbB5VBbN.js → compact-item-BzXjd3wJ.js} +1 -1
  88. package/src/assets/web-panel/assets/{createContext-DZIhmdMW.js → createContext-DhF9bi_u.js} +1 -1
  89. package/src/assets/web-panel/assets/devWarning-B1j78JeH.js +1 -0
  90. package/src/assets/web-panel/assets/{hasIn-o6cAbkdF.js → hasIn-Y1a0aV9N.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-DDlaS-eI.js → index--fcP34eT.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-D9ImwlR4.js → index-1iacQgo5.js} +3 -3
  93. package/src/assets/web-panel/assets/{index-BjFOIfCN.js → index-1khPb4ZS.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-C3zE2Zb3.js → index-B48PZ-xM.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-CRwhnqeq.js → index-BBtULjKY.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-yuTbNtNs.js → index-BNmWkPqm.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-B46pBbZO.js → index-BTltEtoG.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-Cw4L9i5q.js → index-B_Z0PHC0.js} +1 -1
  99. package/src/assets/web-panel/assets/index-BaN6wKWx.js +1 -0
  100. package/src/assets/web-panel/assets/{index-Cv57ZM9B.js → index-BepInmSi.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-zKIib2ju.js → index-BllceSdr.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-Uu0xnJjT.js → index-BnvaUocg.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-PrARM-sN.js → index-Bt_0ygjA.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-BE27hqn2.js → index-BzQkdgQW.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-B7wUz-Ms.js → index-C2S8McM1.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-bVBYhd7K.js → index-CELVZPNt.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-C7E1YSkg.js → index-CETvk0NN.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-DZ3tksOn.js → index-CRSkKj9M.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-Cqjc-kry.js → index-Cgo1J_Kf.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-D8x9OXYZ.js → index-Ci7PSoQn.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-DTk9u72E.js → index-Cn9lbqaS.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-B-ZE4Sb_.js → index-CuTKOay7.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-CMBJfBO0.js → index-CxYHV8nb.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-KRt3wlmg.js → index-CzlCP4jP.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-BCmv_7S_.js → index-D3IVAG9l.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-DClnoV1K.js → index-DLyIxnjc.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-CBU-k7oT.js → index-DUcVF8e6.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-BHUQ725h.js → index-DVTex5M8.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-CzqSSSPT.js → index-DZJMsVI1.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-WVuFehZH.js → index-DfaSKEVD.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-wTvVuzRE.js → index-DgHWZVjv.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-BpBK2OXI.js → index-Dmjxpu0L.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-D9kIcXZC.js → index-DxGVbuqr.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-DAH13RZu.js → index-GCd5hs58.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-l0044mtE.js → index-JUukFpxi.js} +1 -1
  126. package/src/assets/web-panel/assets/index-N7JKRLCC.js +1 -0
  127. package/src/assets/web-panel/assets/{index-M33z1syq.js → index-Na733kBa.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-DKepNJYO.js → index-Sl-sLj3T.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-CsMviqrA.js → index-uLoKviUT.js} +1 -1
  130. package/src/assets/web-panel/assets/{initDefaultProps-BserruiV.js → initDefaultProps-D6QmlnQ-.js} +1 -1
  131. package/src/assets/web-panel/assets/{motion-C_f04bi5.js → motion-BHrTGY1_.js} +1 -1
  132. package/src/assets/web-panel/assets/{move-BexrY4Hu.js → move-Bpph6B_N.js} +1 -1
  133. package/src/assets/web-panel/assets/mtc-parser-CEQffxds.js +1 -0
  134. package/src/assets/web-panel/assets/{omit-CIZJousS.js → omit-Dx0YMbWn.js} +1 -1
  135. package/src/assets/web-panel/assets/{pickAttrs-BkLOyxvO.js → pickAttrs-D-a8Fm6C.js} +1 -1
  136. package/src/assets/web-panel/assets/{placementArrow-C3ddcrAy.js → placementArrow-DXFSVgxv.js} +1 -1
  137. package/src/assets/web-panel/assets/{responsiveObserve-D7hnwzkh.js → responsiveObserve-CxhQ1EaK.js} +1 -1
  138. package/src/assets/web-panel/assets/{slide-CF7E-K6h.js → slide-IlBI0XU8.js} +1 -1
  139. package/src/assets/web-panel/assets/{statusUtils-B6OJYlGm.js → statusUtils-COoXVzje.js} +1 -1
  140. package/src/assets/web-panel/assets/{styleChecker-bFHBq4VZ.js → styleChecker-DCuq89M_.js} +1 -1
  141. package/src/assets/web-panel/assets/{useFlexGapSupport-C4oscNMu.js → useFlexGapSupport-tfNE1ALO.js} +1 -1
  142. package/src/assets/web-panel/assets/{useFs-C4qeTm22.js → useFs-DD4bzBkU.js} +1 -1
  143. package/src/assets/web-panel/assets/{usePersonalDataHub-BREWau9k.js → usePersonalDataHub-DVkH1hbT.js} +1 -1
  144. package/src/assets/web-panel/assets/{vnode-D_FePgCk.js → vnode-D1ZmXyxM.js} +1 -1
  145. package/src/assets/web-panel/assets/{zoom-CrTvlO1G.js → zoom-DblBUHfi.js} +1 -1
  146. package/src/assets/web-panel/index.html +1 -1
  147. package/src/harness/mcp-client.js +67 -6
  148. package/src/lib/credential-guard.js +284 -0
  149. package/src/lib/ensure-utf8.js +6 -1
  150. package/src/lib/hook-manager.js +15 -6
  151. package/src/lib/llm-config-defaults.js +20 -0
  152. package/src/lib/mcp-client.js +1 -0
  153. package/src/lib/mcp-oauth.js +35 -4
  154. package/src/lib/repl-rewind.js +58 -0
  155. package/src/lib/repl-vim.js +13 -1
  156. package/src/lib/settings-hooks.cjs +12 -3
  157. package/src/repl/agent-repl.js +52 -2
  158. package/src/runtime/agent-core.js +76 -0
  159. package/src/assets/web-panel/assets/AIOps-Bv7Ucinc.js +0 -1
  160. package/src/assets/web-panel/assets/Audit-CFS769nz.js +0 -1
  161. package/src/assets/web-panel/assets/ChatBubbleRenderer-DvtzQM9S.js +0 -1
  162. package/src/assets/web-panel/assets/Codegen-QIFxk_hy.js +0 -1
  163. package/src/assets/web-panel/assets/Compliance-CLKqB8ca.js +0 -1
  164. package/src/assets/web-panel/assets/Crosschain-CaWGF4pH.js +0 -1
  165. package/src/assets/web-panel/assets/Federation-1njD_iZv.js +0 -1
  166. package/src/assets/web-panel/assets/Governance-CvYe_1r7.js +0 -1
  167. package/src/assets/web-panel/assets/Inference-DLMzzPHV.js +0 -1
  168. package/src/assets/web-panel/assets/Marketplace-ANMynfeO.js +0 -1
  169. package/src/assets/web-panel/assets/NLProgramming-BedLm2U-.js +0 -1
  170. package/src/assets/web-panel/assets/Pipeline-Dh5Jusv2.js +0 -1
  171. package/src/assets/web-panel/assets/Privacy-Dyrhjpr4.js +0 -1
  172. package/src/assets/web-panel/assets/Projects-D2iHs0Go.js +0 -1
  173. package/src/assets/web-panel/assets/Providers-D0-FNfIu.js +0 -1
  174. package/src/assets/web-panel/assets/Recommend-Cn6UbQuv.js +0 -1
  175. package/src/assets/web-panel/assets/Reputation-jSYCTpEv.js +0 -1
  176. package/src/assets/web-panel/assets/Search-7aQqsu6b.js +0 -1
  177. package/src/assets/web-panel/assets/Skills-BiGNAz9O.js +0 -1
  178. package/src/assets/web-panel/assets/Sla-C62HvLJq.js +0 -1
  179. package/src/assets/web-panel/assets/Tasks-bwGsNuzp.js +0 -1
  180. package/src/assets/web-panel/assets/Tenant-CuZVHTEg.js +0 -1
  181. package/src/assets/web-panel/assets/Terminal-Cuf5GwW1.js +0 -3
  182. package/src/assets/web-panel/assets/Tokens-BiS_SqlJ.js +0 -1
  183. package/src/assets/web-panel/assets/Trust-DJfddmdL.js +0 -1
  184. package/src/assets/web-panel/assets/community-parser-CO25nZFt.js +0 -3
  185. package/src/assets/web-panel/assets/devWarning-roRmJB_V.js +0 -1
  186. package/src/assets/web-panel/assets/index-C24iCbrD.js +0 -1
  187. package/src/assets/web-panel/assets/index-DjgW9EJK.js +0 -1
  188. package/src/assets/web-panel/assets/mtc-parser-BbAbUB-9.js +0 -1
@@ -1 +1 @@
1
- import{h as i}from"./index-D9ImwlR4.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-1iacQgo5.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-D9ImwlR4.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-1iacQgo5.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-D9ImwlR4.js";import{i as e}from"./motion-C_f04bi5.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-1iacQgo5.js";import{i as e}from"./motion-BHrTGY1_.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-D9ImwlR4.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-1iacQgo5.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-D9ImwlR4.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-1iacQgo5.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-bFHBq4VZ.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-DCuq89M_.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-D9ImwlR4.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-1iacQgo5.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-D9ImwlR4.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-1iacQgo5.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-D9ImwlR4.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-1iacQgo5.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-D9ImwlR4.js";import{i as f}from"./motion-C_f04bi5.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-1iacQgo5.js";import{i as f}from"./motion-BHrTGY1_.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-D9ImwlR4.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-1iacQgo5.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">
@@ -18,6 +18,8 @@ import { EventEmitter } from "events";
18
18
  export const _deps = {
19
19
  spawn,
20
20
  fetch: (...args) => globalThis.fetch(...args),
21
+ // Backoff sleep seam (tests override with a no-op so retries don't wait).
22
+ sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
21
23
  };
22
24
 
23
25
  /**
@@ -95,6 +97,26 @@ export function isLikelyConnectionError(err) {
95
97
  );
96
98
  }
97
99
 
100
+ /** Capability-discovery retry tuning (Claude-Code 2.1.191 "short backoff"). */
101
+ const MCP_DISCOVERY_RETRIES = 2; // up to 3 attempts total
102
+ const MCP_DISCOVERY_BACKOFF_MS = 250; // 250ms, 500ms
103
+
104
+ /**
105
+ * Is this a TRANSIENT error worth a short retry during capability discovery?
106
+ * Narrower than isLikelyConnectionError: connection-level failures and 5xx
107
+ * server errors retry, but 4xx (auth 401/403, not-found 404 = permanent for the
108
+ * same request), already-waited timeouts, and a dead stdio process do not —
109
+ * retrying those just wastes attempts.
110
+ */
111
+ export function isTransientMcpError(err) {
112
+ const msg = String((err && err.message) || err || "");
113
+ if (/HTTP 4\d\d\b/i.test(msg)) return false; // any 4xx is permanent here
114
+ if (/Request timeout/i.test(msg)) return false; // already spent the full budget
115
+ return /fetch failed|ECONNREFUSED|ECONNRESET|ETIMEDOUT|EAI_AGAIN|EPIPE|socket hang up|network error|HTTP 5\d\d\b/i.test(
116
+ msg,
117
+ );
118
+ }
119
+
98
120
  /**
99
121
  * MCP Client — manages connections to MCP servers.
100
122
  */
@@ -277,8 +299,8 @@ export class MCPClient extends EventEmitter {
277
299
  );
278
300
  }
279
301
 
280
- // Initialize MCP protocol
281
- const initResult = await this._sendRequest(name, "initialize", {
302
+ // Initialize MCP protocol (retried on transient network errors).
303
+ const initResult = await this._requestWithRetry(name, "initialize", {
282
304
  protocolVersion: "2024-11-05",
283
305
  capabilities: { tools: {}, resources: {}, prompts: {} },
284
306
  clientInfo: { name: "chainlesschain-cli", version: "0.37.9" },
@@ -302,7 +324,11 @@ export class MCPClient extends EventEmitter {
302
324
  const advertisesTools =
303
325
  entry.capabilities && entry.capabilities.tools !== undefined;
304
326
  try {
305
- const toolsResult = await this._sendRequest(name, "tools/list", {});
327
+ const toolsResult = await this._requestWithRetry(
328
+ name,
329
+ "tools/list",
330
+ {},
331
+ );
306
332
  entry.tools = toolsResult?.tools || [];
307
333
  } catch (err) {
308
334
  if (advertisesTools) {
@@ -590,6 +616,34 @@ export class MCPClient extends EventEmitter {
590
616
 
591
617
  // ─── Internal JSON-RPC transport ──────────────────────────────
592
618
 
619
+ /**
620
+ * Capability-discovery request with a short backoff retry on TRANSIENT
621
+ * network errors (Claude-Code 2.1.191: "capability discovery now retries
622
+ * transient network errors with short backoff"). Permanent errors (4xx,
623
+ * JSON-RPC errors, timeouts, dead stdio process) throw on the first failure.
624
+ */
625
+ async _requestWithRetry(
626
+ serverName,
627
+ method,
628
+ params,
629
+ attempts = MCP_DISCOVERY_RETRIES,
630
+ ) {
631
+ for (let i = 0; ; i++) {
632
+ try {
633
+ return await this._sendRequest(serverName, method, params);
634
+ } catch (err) {
635
+ if (i >= attempts || !isTransientMcpError(err)) throw err;
636
+ this.emit("server-retry", {
637
+ name: serverName,
638
+ method,
639
+ attempt: i + 1,
640
+ error: err?.message || String(err),
641
+ });
642
+ await _deps.sleep(MCP_DISCOVERY_BACKOFF_MS * (i + 1));
643
+ }
644
+ }
645
+ }
646
+
593
647
  _sendRequest(serverName, method, params) {
594
648
  const entry = this.servers.get(serverName);
595
649
  if (!entry) return Promise.reject(new Error("Server not available"));
@@ -719,9 +773,16 @@ export class MCPClient extends EventEmitter {
719
773
  if (!response.ok) {
720
774
  const text =
721
775
  typeof response.text === "function" ? await response.text() : "";
722
- throw new Error(
723
- `HTTP ${response.status}${text ? `: ${text.slice(0, 200)}` : ""}`,
724
- );
776
+ const detail = text ? `: ${text.slice(0, 200)}` : "";
777
+ // 404 usually means a wrong/stale server URL — name it and point at the
778
+ // MCP config (Claude-Code 2.1.191: "HTTP 404 errors now show the URL and
779
+ // point to your MCP config") instead of a bare "HTTP 404".
780
+ if (response.status === 404) {
781
+ throw new Error(
782
+ `HTTP 404${detail} — ${entry.httpUrl} returned Not Found; check this server's "url" in your MCP config`,
783
+ );
784
+ }
785
+ throw new Error(`HTTP ${response.status}${detail}`);
725
786
  }
726
787
 
727
788
  const contentType = response.headers?.get
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Credential READ guard — Claude-Code 2.1.189 parity ("`sandbox.credentials`
3
+ * setting blocks sandboxed commands from reading credential files and secret
4
+ * environment variables").
5
+ *
6
+ * cc has no OS sandbox (by design), but the same intent applies one layer up:
7
+ * the agent must not silently slurp the user's secrets into model context,
8
+ * where they could be echoed back, logged, summarized into a transcript, or
9
+ * exfiltrated by a later tool call. This guard flags two read paths —
10
+ * 1. the `read_file` tool pointed at a credential file (.env, ~/.aws/credentials,
11
+ * private keys, …), and
12
+ * 2. `run_shell` commands that read a credential file (`cat .env`) or print a
13
+ * secret-looking environment variable (`echo $ANTHROPIC_API_KEY`, `printenv`).
14
+ * — so `executeTool` can confirm first (interactive) or fail closed (headless),
15
+ * exactly like the sensitive-file WRITE guard ([[sensitive-file-guard.js]]).
16
+ *
17
+ * An explicit settings `allow` rule pre-authorizes; `CC_CREDENTIAL_GUARD=0`
18
+ * disables it. Deliberately, `--safe-mode` does NOT disable this guard: like
19
+ * permission deny rules, it is a SAFETY surface, not a customization — "debug
20
+ * my customizations bare" must never widen what secrets the agent may read.
21
+ *
22
+ * Precision over recall: matches are conservative so everyday reads
23
+ * (.env.example, public keys, package.json) never trip a confirm — a guard that
24
+ * cries wolf trains users to blind-approve.
25
+ */
26
+
27
+ import { createRequire } from "node:module";
28
+
29
+ const require_ = createRequire(import.meta.url);
30
+ // Reuse the shell policy's compound-command splitter (separators + $()/backtick
31
+ // extraction). It is regex-based on separators and leaves backslashes intact,
32
+ // so Windows paths survive (unlike the escaping tokenizer, which strips `\`).
33
+ const { splitCommandSegments } = require_(
34
+ "../runtime/coding-agent-shell-policy.cjs",
35
+ );
36
+
37
+ // ── credential FILE patterns ────────────────────────────────────────────────
38
+
39
+ // Exact basenames that are, by convention, secret stores.
40
+ const CREDENTIAL_BASENAMES = new Set([
41
+ ".npmrc",
42
+ ".netrc",
43
+ "_netrc",
44
+ ".pgpass",
45
+ ".git-credentials",
46
+ ".pypirc",
47
+ ".dockercfg",
48
+ "credentials", // ~/.aws/credentials, gcloud, …
49
+ ".credentials",
50
+ "id_rsa",
51
+ "id_dsa",
52
+ "id_ecdsa",
53
+ "id_ed25519", // private SSH keys (the `.pub` siblings have a different basename)
54
+ ]);
55
+
56
+ // Extensions whose BYTES are the secret (private keys / cert bundles / keyrings).
57
+ // Public material (.pub/.crt/.cert/.cer) is intentionally absent.
58
+ const SECRET_EXT_RE = /\.(pem|key|pfx|p12|keystore|jks|ppk|asc|gpg|pgp)$/i;
59
+
60
+ // `.env` and real env files — but NOT the committed template/example forms.
61
+ const ENV_SAFE_SUFFIX_RE = /\.(example|sample|template|dist|defaults|tpl)$/i;
62
+
63
+ // Directory-scoped credential files (the basename alone is too generic).
64
+ const CREDENTIAL_PATH_RE = [
65
+ /[\\/]\.aws[\\/]credentials$/i,
66
+ /[\\/]\.kube[\\/]config$/i,
67
+ /[\\/]\.docker[\\/]config\.json$/i,
68
+ /[\\/]\.config[\\/]gh[\\/]hosts\.yml$/i, // GitHub CLI OAuth token
69
+ /[\\/]\.gnupg[\\/]/i, // GPG keyring directory
70
+ ];
71
+
72
+ // secret(s).{json,yml,yaml,env,txt}
73
+ const SECRETS_FILE_RE = /(^|[\\/])secrets?\.(json|ya?ml|env|txt)$/i;
74
+
75
+ function isEnvSecret(base) {
76
+ if (base.toLowerCase() === ".env") return true;
77
+ if (/^\.env\./i.test(base)) return !ENV_SAFE_SUFFIX_RE.test(base);
78
+ return false;
79
+ }
80
+
81
+ /**
82
+ * Is this path a credential / secret file the agent should not read unprompted?
83
+ * @param {string} targetPath path as the tool received it (rel or abs)
84
+ * @returns {string|null} human reason when sensitive, null otherwise
85
+ */
86
+ export function credentialFileReason(targetPath) {
87
+ const p = String(targetPath || "");
88
+ if (!p) return null;
89
+ const norm = p.replace(/\\/g, "/");
90
+ const base = norm.split("/").pop() || "";
91
+ if (!base) return null;
92
+ if (isEnvSecret(base)) return `environment/secret file (${base})`;
93
+ if (CREDENTIAL_BASENAMES.has(base.toLowerCase()))
94
+ return `credential file (${base})`;
95
+ if (SECRET_EXT_RE.test(base))
96
+ return `private key / certificate material (${base})`;
97
+ if (SECRETS_FILE_RE.test(norm)) return `secrets file (${base})`;
98
+ for (const re of CREDENTIAL_PATH_RE) {
99
+ if (re.test(norm)) return `credential file (${base})`;
100
+ }
101
+ return null;
102
+ }
103
+
104
+ // ── secret ENV-VAR + command detection ──────────────────────────────────────
105
+
106
+ // Content-reader commands: when one of these is aimed at a credential file, the
107
+ // file's bytes land in the agent's tool output.
108
+ const READ_COMMANDS = new Set([
109
+ "cat",
110
+ "tac",
111
+ "type",
112
+ "gc",
113
+ "get-content",
114
+ "less",
115
+ "more",
116
+ "head",
117
+ "tail",
118
+ "bat",
119
+ "nl",
120
+ "xxd",
121
+ "od",
122
+ "strings",
123
+ ]);
124
+
125
+ // Commands whose job is to print a value into output — the exfil surface for a
126
+ // secret env var (a tool that merely CONSUMES `$API_KEY` does not echo it).
127
+ const PRINT_COMMANDS = new Set([
128
+ "echo",
129
+ "echo.",
130
+ "print",
131
+ "printf",
132
+ "printenv",
133
+ "write-host",
134
+ "write-output",
135
+ "write-information",
136
+ ]);
137
+
138
+ // A var name looks secret when one of these words appears as an underscore- or
139
+ // boundary-delimited segment: ANTHROPIC_API_KEY, AWS_SECRET_ACCESS_KEY,
140
+ // GITHUB_TOKEN, DB_PASSWORD, MY_PASSPHRASE, OPENAI_APIKEY. `MONKEY`/`KEYBOARD`/
141
+ // `TOKENIZER` do NOT match (no boundary).
142
+ const SECRET_VAR_RE =
143
+ /(?:^|_)(KEY|KEYS|TOKEN|SECRET|SECRETS|PASSWORD|PASSWD|PASSPHRASE|CREDENTIAL|CREDENTIALS|PRIVATE|APIKEY|ACCESSKEY)(?:_|$)/i;
144
+
145
+ // Ways a secret var is referenced inside a shell segment.
146
+ const SECRET_REF_PATTERNS = [
147
+ /\$env:([A-Za-z_][A-Za-z0-9_]*)/gi, // PowerShell $env:NAME
148
+ /(?:^|[\s"'(=;|&])env:([A-Za-z_][A-Za-z0-9_]*)/gi, // PowerShell `env:` drive (Get-Content env:NAME)
149
+ /\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g, // ${NAME}
150
+ /\$([A-Za-z_][A-Za-z0-9_]*)/g, // $NAME
151
+ /%([A-Za-z_][A-Za-z0-9_]*)%/g, // %NAME% (cmd.exe)
152
+ ];
153
+
154
+ function referencedSecretVars(segment) {
155
+ const out = [];
156
+ for (const re of SECRET_REF_PATTERNS) {
157
+ re.lastIndex = 0;
158
+ let m;
159
+ while ((m = re.exec(segment))) {
160
+ if (SECRET_VAR_RE.test(m[1])) out.push(m[1]);
161
+ }
162
+ }
163
+ return out;
164
+ }
165
+
166
+ function baseName(tok) {
167
+ const b =
168
+ String(tok || "")
169
+ .replace(/\\/g, "/")
170
+ .split("/")
171
+ .pop() || "";
172
+ return b.replace(/\.exe$/i, "");
173
+ }
174
+
175
+ function firstCommandToken(segment) {
176
+ const m = segment
177
+ .trim()
178
+ .replace(/^["']/, "")
179
+ .match(/^(\S+)/);
180
+ return m ? baseName(m[1]).toLowerCase() : "";
181
+ }
182
+
183
+ /**
184
+ * Does this (possibly compound) shell command read a credential file or print a
185
+ * secret environment variable?
186
+ * @param {string} command
187
+ * @returns {{reason:string, kind:string, target?:string, segment:string}|null}
188
+ */
189
+ export function commandReadsCredentials(command) {
190
+ const cmd = String(command || "");
191
+ if (!cmd.trim()) return null;
192
+ let segments;
193
+ try {
194
+ segments = splitCommandSegments(cmd);
195
+ } catch {
196
+ segments = [cmd];
197
+ }
198
+ if (!segments.length) segments = [cmd];
199
+
200
+ for (const segment of segments) {
201
+ const seg = String(segment || "");
202
+ if (!seg.trim()) continue;
203
+ const first = firstCommandToken(seg);
204
+ // Backslash-preserving split (the policy's escaping tokenizer would mangle
205
+ // Windows paths); quotes flattened so grouping doesn't hide a token —
206
+ // credentialFileReason keys off the basename, which survives the split.
207
+ const rawTokens = seg.replace(/["']/g, " ").split(/\s+/).filter(Boolean);
208
+ const args = rawTokens.slice(1);
209
+ const nonFlagArgs = args.filter((t) => !t.startsWith("-"));
210
+
211
+ // (a) full-environment dump — printenv/env with no var, or PowerShell
212
+ // `Get-ChildItem env:` family. Reveals EVERY secret at once.
213
+ if (
214
+ ((first === "printenv" || first === "env") && nonFlagArgs.length === 0) ||
215
+ (["get-childitem", "gci", "dir", "ls"].includes(first) &&
216
+ args.some((t) => /^env:?$/i.test(t)))
217
+ ) {
218
+ return {
219
+ reason: "dumps all environment variables (may expose secrets)",
220
+ kind: "env-dump",
221
+ segment: seg,
222
+ };
223
+ }
224
+
225
+ // (b) reading a credential file with a content-reader command.
226
+ if (READ_COMMANDS.has(first)) {
227
+ for (const tok of args) {
228
+ const r = credentialFileReason(tok);
229
+ if (r)
230
+ return {
231
+ reason: `reads ${r}`,
232
+ kind: "file",
233
+ target: tok,
234
+ segment: seg,
235
+ };
236
+ }
237
+ }
238
+
239
+ // (c) printing / reading a secret-looking env var (via $VAR / %VAR% / env:).
240
+ if (PRINT_COMMANDS.has(first) || READ_COMMANDS.has(first)) {
241
+ const vars = referencedSecretVars(seg);
242
+ if (vars.length)
243
+ return {
244
+ reason: `reads secret environment variable ${vars[0]}`,
245
+ kind: "env-var",
246
+ target: vars[0],
247
+ segment: seg,
248
+ };
249
+ }
250
+
251
+ // (d) `printenv ANTHROPIC_API_KEY` — bare var name (no $ sigil).
252
+ if (first === "printenv") {
253
+ const hit = nonFlagArgs.find((t) => SECRET_VAR_RE.test(t));
254
+ if (hit)
255
+ return {
256
+ reason: `reads secret environment variable ${hit}`,
257
+ kind: "env-var",
258
+ target: hit,
259
+ segment: seg,
260
+ };
261
+ }
262
+ }
263
+ return null;
264
+ }
265
+
266
+ /**
267
+ * Whether the credential guard is disabled via `CC_CREDENTIAL_GUARD`
268
+ * (0 / false / no / off). Default ON — only an explicit opt-out turns it off.
269
+ * @param {object} [env=process.env]
270
+ * @returns {boolean}
271
+ */
272
+ export function credentialGuardDisabled(env = process.env) {
273
+ const raw = env && env.CC_CREDENTIAL_GUARD;
274
+ return raw != null && /^(0|false|no|off)$/i.test(String(raw).trim());
275
+ }
276
+
277
+ export const _internals = {
278
+ CREDENTIAL_BASENAMES,
279
+ READ_COMMANDS,
280
+ PRINT_COMMANDS,
281
+ SECRET_VAR_RE,
282
+ referencedSecretVars,
283
+ isEnvSecret,
284
+ };
@@ -45,8 +45,14 @@ export function ensureUtf8() {
45
45
  export function getUtf8SpawnOptions(opts = {}) {
46
46
  if (process.platform !== "win32") return { encoding: "utf-8", ...opts };
47
47
 
48
+ // NOTE: spread `...opts` BEFORE the `env` key so the merged UTF-8 env wins.
49
+ // If `...opts` came last, a caller passing `opts.env` would clobber the whole
50
+ // merge (losing process.env + PYTHONIOENCODING + CHCP) — silently defeating
51
+ // the entire point of this helper. opts.env is still merged in last *within*
52
+ // the env object so caller overrides for individual vars are honored.
48
53
  return {
49
54
  encoding: "utf-8",
55
+ ...opts,
50
56
  env: {
51
57
  ...process.env,
52
58
  PYTHONIOENCODING: "utf-8",
@@ -54,6 +60,5 @@ export function getUtf8SpawnOptions(opts = {}) {
54
60
  CHCP: "65001",
55
61
  ...opts.env,
56
62
  },
57
- ...opts,
58
63
  };
59
64
  }
@@ -208,7 +208,7 @@ export function getHook(db, hookId) {
208
208
  * Compile a matcher pattern into a test function.
209
209
  * Supports:
210
210
  * - null/undefined → matches everything
211
- * - Pipe-separated patterns: "Edit|Write" matches "Edit" or "Write"
211
+ * - Pipe- OR comma-separated patterns: "Edit|Write" / "Bash,PowerShell"
212
212
  * - Wildcards: "*" matches any chars, "?" matches one char
213
213
  * - Regex strings starting with "/": "/^Pre/" matches "PreIPCCall"
214
214
  */
@@ -230,11 +230,20 @@ export function compileMatcher(pattern) {
230
230
  }
231
231
  }
232
232
 
233
- // Pipe-separated patterns (e.g. "Edit|Write")
234
- if (pattern.includes("|")) {
235
- const parts = pattern.split("|").map((p) => p.trim());
236
- const matchers = parts.map((p) => compileMatcher(p));
237
- return (value) => matchers.some((m) => m(value));
233
+ // OR-separated alternatives: pipe "Edit|Write" AND comma "Bash,PowerShell"
234
+ // (Claude-Code 2.1.191: comma-separated matchers silently never fired). Empty
235
+ // segments (trailing "Bash," / "Edit|") are dropped so they cannot collapse
236
+ // into a match-everything matcher. Regex "/…/" matchers are handled above, so
237
+ // a comma inside "{1,3}" is never split here.
238
+ if (pattern.includes("|") || pattern.includes(",")) {
239
+ const matchers = pattern
240
+ .split(/[|,]/)
241
+ .map((p) => p.trim())
242
+ .filter(Boolean)
243
+ .map((p) => compileMatcher(p));
244
+ return matchers.length
245
+ ? (value) => matchers.some((m) => m(value))
246
+ : () => false;
238
247
  }
239
248
 
240
249
  // Wildcard pattern (* and ?)