chainlesschain 0.162.96 → 0.162.98

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 (167) hide show
  1. package/README.md +1 -1
  2. package/package.json +2 -2
  3. package/src/assets/web-panel/assets/{AIOps-Bo9Ux24z.js → AIOps-Dopp7kG3.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-CExgXSQT.js → ActionButton-B9plqRTR.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-BNnZhRTZ.js → Analytics-BbL27syj.js} +3 -3
  6. package/src/assets/web-panel/assets/{AppLayout-D9xfqFCT.js → AppLayout-B9rOBN1I.js} +5 -5
  7. package/src/assets/web-panel/assets/{Audit-Cpgu8uCw.js → Audit-SEcFNgDq.js} +1 -1
  8. package/src/assets/web-panel/assets/{Backup-CHdEJnNE.js → Backup-D55NT8a_.js} +1 -1
  9. package/src/assets/web-panel/assets/{BaseInput-Cbw-PxBq.js → BaseInput-CQA5i5-j.js} +1 -1
  10. package/src/assets/web-panel/assets/{Chat-ChHTZK_6.js → Chat-hZVoQErO.js} +6 -6
  11. package/src/assets/web-panel/assets/ChatBubbleRenderer-DHPGunKz.js +1 -0
  12. package/src/assets/web-panel/assets/{Checkbox-Cj8d9bru.js → Checkbox-YB06gq_Q.js} +1 -1
  13. package/src/assets/web-panel/assets/{Codegen-C2YobW4j.js → Codegen-DEJElWj7.js} +1 -1
  14. package/src/assets/web-panel/assets/{Col-CxfV5FGT.js → Col-f08dByTl.js} +1 -1
  15. package/src/assets/web-panel/assets/{Community-CiwOASMj.js → Community-CcOHpQjm.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compact-CTg_2iKW.js → Compact-BeE3ATUR.js} +1 -1
  17. package/src/assets/web-panel/assets/{Compliance-HMbsTmtw.js → Compliance-D8AL7P6-.js} +1 -1
  18. package/src/assets/web-panel/assets/{Cowork-DyNDqGR2.js → Cowork-DvVoobje.js} +2 -2
  19. package/src/assets/web-panel/assets/{Cron-9-x5M7qy.js → Cron-DypPu_9A.js} +2 -2
  20. package/src/assets/web-panel/assets/{Crosschain-4msgDaYJ.js → Crosschain-Gjb0GOZJ.js} +1 -1
  21. package/src/assets/web-panel/assets/{DID--2Beb5Po.js → DID-CD_CHZ4x.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dashboard-T6nq0Lzs.js → Dashboard-DtyHOb4D.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dropdown-D_Q6T10v.js → Dropdown-BdWB7cAn.js} +1 -1
  24. package/src/assets/web-panel/assets/{EmailListRenderer-TnN21bJx.js → EmailListRenderer-FyOIo5uU.js} +1 -1
  25. package/src/assets/web-panel/assets/{FamilyGuardDashboard-kky_uIij.js → FamilyGuardDashboard-oyAF4xWT.js} +1 -1
  26. package/src/assets/web-panel/assets/{Federation-C1GkNY4B.js → Federation-gFQkN3PT.js} +1 -1
  27. package/src/assets/web-panel/assets/{FormItemContext-5-_Fc5YV.js → FormItemContext-BH8Fbs2N.js} +1 -1
  28. package/src/assets/web-panel/assets/{GenericCardRenderer-CmHiB7sr.js → GenericCardRenderer-fEiHh3Lh.js} +1 -1
  29. package/src/assets/web-panel/assets/{Git-Cuci_BPI.js → Git-1coyidys.js} +2 -2
  30. package/src/assets/web-panel/assets/{Governance-BU0cO2LD.js → Governance-BkK0UYXj.js} +1 -1
  31. package/src/assets/web-panel/assets/{Inference-BDFNgEcx.js → Inference-BtfboTIU.js} +1 -1
  32. package/src/assets/web-panel/assets/{KnowledgeGraph-DITXUzHz.js → KnowledgeGraph-Bk4DX28g.js} +1 -1
  33. package/src/assets/web-panel/assets/Logs-C8GaTtRk.js +2 -0
  34. package/src/assets/web-panel/assets/{Marketplace-D6OBbRVG.js → Marketplace-DICb-6LS.js} +1 -1
  35. package/src/assets/web-panel/assets/{McpTools-eiKpIJMi.js → McpTools-BuTCG_A8.js} +3 -3
  36. package/src/assets/web-panel/assets/{Memory-M-X-T8UF.js → Memory-CaW76n8s.js} +2 -2
  37. package/src/assets/web-panel/assets/{MobileBridge-xcZb9Ekv.js → MobileBridge-kRaYsm5-.js} +2 -2
  38. package/src/assets/web-panel/assets/MobileProjects-CyVOfabL.js +1 -0
  39. package/src/assets/web-panel/assets/{Mtc-BWfGDzD8.js → Mtc-MIDFioA-.js} +6 -6
  40. package/src/assets/web-panel/assets/{MtcAudit-imBuld-U.js → MtcAudit-CwLVt0Jo.js} +2 -2
  41. package/src/assets/web-panel/assets/{Multisig-C2kcsq7I.js → Multisig-D-zRJY3P.js} +3 -3
  42. package/src/assets/web-panel/assets/{NLProgramming-DObvXSXP.js → NLProgramming-Bv_3HzfF.js} +1 -1
  43. package/src/assets/web-panel/assets/{Notes-C-6OGJMe.js → Notes--khDFw-C.js} +3 -3
  44. package/src/assets/web-panel/assets/{NotificationSettings-ub7Ozxci.js → NotificationSettings-DKbWmdWq.js} +1 -1
  45. package/src/assets/web-panel/assets/{OrderTableRenderer-CR2W89Vk.js → OrderTableRenderer-DhHKlr8h.js} +1 -1
  46. package/src/assets/web-panel/assets/{Organization-DNA_Wty7.js → Organization-q9clPF9A.js} +4 -4
  47. package/src/assets/web-panel/assets/{Overflow-rT4Wb4rQ.js → Overflow-OfK0brjW.js} +1 -1
  48. package/src/assets/web-panel/assets/{P2P-CK-hARKv.js → P2P-C-yrhQp7.js} +2 -2
  49. package/src/assets/web-panel/assets/{PdhVaultBrowser-C2pbtNbT.js → PdhVaultBrowser-C1qmolzi.js} +3 -3
  50. package/src/assets/web-panel/assets/{Permissions-B8EIEqGJ.js → Permissions-SIjYzYdM.js} +3 -3
  51. package/src/assets/web-panel/assets/{PersonalDataHub-BxNVNU3s.js → PersonalDataHub-B1X3rEhm.js} +4 -4
  52. package/src/assets/web-panel/assets/{Pipeline-CT9pbkyY.js → Pipeline-DFaaCaKm.js} +1 -1
  53. package/src/assets/web-panel/assets/{Privacy-DhCNd2CS.js → Privacy-CL8RDhbr.js} +1 -1
  54. package/src/assets/web-panel/assets/{ProjectInit-Qngnx-vQ.js → ProjectInit-B1B9C25V.js} +2 -2
  55. package/src/assets/web-panel/assets/{ProjectSettings-Dfn-nQc1.js → ProjectSettings-D0N_yhOn.js} +2 -2
  56. package/src/assets/web-panel/assets/Projects-CgSrSaCv.js +1 -0
  57. package/src/assets/web-panel/assets/{Providers-4o9B_n-X.js → Providers-D2FAQKYQ.js} +1 -1
  58. package/src/assets/web-panel/assets/{QuickAsk-bs1qvF30.js → QuickAsk-CIaA0L4p.js} +1 -1
  59. package/src/assets/web-panel/assets/{Recommend-CuEnKA2K.js → Recommend-t4xC_3-I.js} +1 -1
  60. package/src/assets/web-panel/assets/{Reputation-DbfvmRb2.js → Reputation-VGfVNzyi.js} +1 -1
  61. package/src/assets/web-panel/assets/{Row-DvMJGAI3.js → Row-DIWwezlq.js} +1 -1
  62. package/src/assets/web-panel/assets/{RssFeed-oJ0BZvmA.js → RssFeed-DHlOW936.js} +3 -3
  63. package/src/assets/web-panel/assets/{Search-DnIVrY9O.js → Search-BbQnUaQD.js} +1 -1
  64. package/src/assets/web-panel/assets/{Security-CIWhI_Tc.js → Security-DS8ZEr_d.js} +4 -4
  65. package/src/assets/web-panel/assets/{Services-DLrnpjwm.js → Services-DHB-vZBF.js} +2 -2
  66. package/src/assets/web-panel/assets/{Skeleton-CYmqgtVb.js → Skeleton-Cqy066vD.js} +1 -1
  67. package/src/assets/web-panel/assets/{Skills-BUzCkoeu.js → Skills-CNfggAac.js} +1 -1
  68. package/src/assets/web-panel/assets/{Sla-DYRE4bnS.js → Sla-CRE17ElE.js} +1 -1
  69. package/src/assets/web-panel/assets/{SpeechSettings-_6MurdOg.js → SpeechSettings-D40fNZKf.js} +1 -1
  70. package/src/assets/web-panel/assets/{SyncSettings-UIdnF5Li.js → SyncSettings-BGEENGeS.js} +2 -2
  71. package/src/assets/web-panel/assets/Tasks-DRB6AtwX.js +1 -0
  72. package/src/assets/web-panel/assets/{Templates-BcHAmkZo.js → Templates-_DuWsixs.js} +1 -1
  73. package/src/assets/web-panel/assets/{Tenant-CjYQS8yZ.js → Tenant-DFJRRH4i.js} +1 -1
  74. package/src/assets/web-panel/assets/{Terminal-BmfOPcWt.js → Terminal-C2dZMvVC.js} +2 -2
  75. package/src/assets/web-panel/assets/{TimelineRenderer-D5HuarNQ.js → TimelineRenderer-Dra5H7Qj.js} +1 -1
  76. package/src/assets/web-panel/assets/{Tokens-C_fbProA.js → Tokens-rfJkHeF1.js} +1 -1
  77. package/src/assets/web-panel/assets/{Trigger-JPulpRx8.js → Trigger-BIeMQ6r6.js} +1 -1
  78. package/src/assets/web-panel/assets/{Trust-CnO-062O.js → Trust-BNYXPJpH.js} +1 -1
  79. package/src/assets/web-panel/assets/{UkeySign-HpNovvau.js → UkeySign--b3OFpb1.js} +1 -1
  80. package/src/assets/web-panel/assets/{VideoEditing-yMncxH7y.js → VideoEditing-BKfPGoi4.js} +1 -1
  81. package/src/assets/web-panel/assets/{Wallet-Cug-t7Np.js → Wallet-BVEoPbjs.js} +4 -4
  82. package/src/assets/web-panel/assets/{WebAuthn--U1-NR-3.js → WebAuthn-GM1ZnztN.js} +2 -2
  83. package/src/assets/web-panel/assets/{WorkflowEditor-R-XvSJ3S.js → WorkflowEditor-9iW07gbT.js} +1 -1
  84. package/src/assets/web-panel/assets/{chat-CCI1i6Rp.js → chat-CJ6BGk5S.js} +1 -1
  85. package/src/assets/web-panel/assets/{colors-C-mqoaLt.js → colors-oV1TuSMR.js} +1 -1
  86. package/src/assets/web-panel/assets/{compact-item-De_N2iRR.js → compact-item-Bd6lGz36.js} +1 -1
  87. package/src/assets/web-panel/assets/{createContext-DbTM6sjZ.js → createContext-CCg9Rhbq.js} +1 -1
  88. package/src/assets/web-panel/assets/devWarning-xdg9qqtm.js +1 -0
  89. package/src/assets/web-panel/assets/{hasIn-D0Adylyc.js → hasIn-BIEcJQM4.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-qUSZJcgw.js → index--ROk7GIw.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-C9ej-MF0.js → index-14oRTMYn.js} +3 -3
  92. package/src/assets/web-panel/assets/{index-DVtamtlm.js → index-B6zZEkVK.js} +1 -1
  93. package/src/assets/web-panel/assets/{index-BU6XtnSx.js → index-B94w8kX2.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-D0NJ5lRi.js → index-BASWAMCv.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-iGPGaORA.js → index-BB2mk1sp.js} +1 -1
  96. package/src/assets/web-panel/assets/index-BLTkWDwj.js +1 -0
  97. package/src/assets/web-panel/assets/{index-D5F6shtn.js → index-BSnPCIua.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-DjQA0Vez.js → index-BUcDn2K2.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-BBgDgkwW.js → index-BXIJIzTa.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-CIEiQl1j.js → index-BadaJJZC.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-BtE3cw9m.js → index-BcF5WMES.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-B6hgy5VC.js → index-Bdwnjni0.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-Co1UkcFX.js → index-CA8CziGJ.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-DuP-8HWu.js → index-CBdvDNLG.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-jhy5KQvg.js → index-CQ7jOTlU.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-BMmeiw88.js → index-CaoVCfNV.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-CzP5d5LW.js → index-Cqda4B71.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-T3VhH8cO.js → index-Cu6D_AQR.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-AY937BxS.js → index-CxWlMaXV.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-Bi7VUG0R.js → index-D-AueUuj.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-Ds8NJVEL.js → index-D2_0TH-u.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-DaXb4B9P.js → index-D63xjAjB.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-TDY1o0w3.js → index-D7EHSh_m.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-DwLTiJ31.js → index-D8qV5EkE.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-zkTiW6d6.js → index-DMntlMWV.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-DWT18hDG.js → index-DSQjmGzK.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-D0gBsqTX.js → index-DZmbXtga.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-TRy2Gc3V.js → index-DsIziW_3.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-xdMc71Kh.js → index-G8GY51fN.js} +1 -1
  120. package/src/assets/web-panel/assets/index-IxLLPL3b.js +1 -0
  121. package/src/assets/web-panel/assets/{index-w3f6lqkD.js → index-LSlgJmJu.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-xhX5eg2Z.js → index-V0ugrxmo.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-CY0KKR5f.js → index-by4U6aXa.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-B7XnpLHk.js → index-hfHoSdJo.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-W1OMxCmI.js → index-jDSdh0FL.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-ftFRZbuc.js → index-so1Tydte.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-CKgaW9E5.js → index-vE3OG1I5.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-B7gw-tDm.js → index-vTIRb03M.js} +1 -1
  129. package/src/assets/web-panel/assets/{initDefaultProps-CIHqouWk.js → initDefaultProps-DWYKe610.js} +1 -1
  130. package/src/assets/web-panel/assets/{motion-D1iUKftk.js → motion-BICCfl_C.js} +1 -1
  131. package/src/assets/web-panel/assets/{move-YOpWjmjL.js → move-CB59bXjB.js} +1 -1
  132. package/src/assets/web-panel/assets/{omit-C_1357UY.js → omit-BJVgfIG3.js} +1 -1
  133. package/src/assets/web-panel/assets/{pickAttrs-CDb4dq6o.js → pickAttrs-Bx2dMm_6.js} +1 -1
  134. package/src/assets/web-panel/assets/{placementArrow-D-OGYyhd.js → placementArrow-DW2LkM1d.js} +1 -1
  135. package/src/assets/web-panel/assets/{responsiveObserve-hS-j69A0.js → responsiveObserve-Br7Fix75.js} +1 -1
  136. package/src/assets/web-panel/assets/{slide-tnjuvphU.js → slide-DcMZllSx.js} +1 -1
  137. package/src/assets/web-panel/assets/{statusUtils-BERfMMcU.js → statusUtils-Bg6W-VYy.js} +1 -1
  138. package/src/assets/web-panel/assets/{styleChecker-DKpl2K9E.js → styleChecker-DqG-3BAY.js} +1 -1
  139. package/src/assets/web-panel/assets/{useFlexGapSupport-C_sX4D3N.js → useFlexGapSupport-NzxPB7xZ.js} +1 -1
  140. package/src/assets/web-panel/assets/{useFs-DBcxC1vK.js → useFs-oqmnvO6t.js} +1 -1
  141. package/src/assets/web-panel/assets/{usePersonalDataHub-CeoDf2XI.js → usePersonalDataHub-BDbnivAw.js} +1 -1
  142. package/src/assets/web-panel/assets/{vnode-DC9Pmj_u.js → vnode-B1Jm52Qk.js} +1 -1
  143. package/src/assets/web-panel/assets/{zoom-CZA58J7M.js → zoom-BeNwqRgo.js} +1 -1
  144. package/src/assets/web-panel/index.html +1 -1
  145. package/src/commands/activitypub.js +3 -18
  146. package/src/commands/agents.js +18 -4
  147. package/src/commands/command.js +12 -2
  148. package/src/commands/dao.js +3 -15
  149. package/src/commands/dlp.js +1 -6
  150. package/src/commands/hub.js +125 -0
  151. package/src/index.js +2 -0
  152. package/src/lib/a2a-protocol.js +1 -0
  153. package/src/lib/agent-core.js +2 -0
  154. package/src/lib/chat-core.js +6 -1
  155. package/src/lib/personal-data-hub-wiring.js +3 -3
  156. package/src/repl/agent-repl.js +11 -3
  157. package/src/repl/chat-repl.js +11 -2
  158. package/src/runtime/agent-core.js +7 -3
  159. package/src/runtime/headless-stream.js +69 -4
  160. package/src/assets/web-panel/assets/ChatBubbleRenderer-Dl6z6ZH7.js +0 -1
  161. package/src/assets/web-panel/assets/Logs-Ea-07CRd.js +0 -2
  162. package/src/assets/web-panel/assets/MobileProjects-DCfoTPRC.js +0 -1
  163. package/src/assets/web-panel/assets/Projects-BKdiSaPR.js +0 -1
  164. package/src/assets/web-panel/assets/Tasks-COx2CjT8.js +0 -1
  165. package/src/assets/web-panel/assets/devWarning-OcLPHSl5.js +0 -1
  166. package/src/assets/web-panel/assets/index-7E_mHkDU.js +0 -1
  167. package/src/assets/web-panel/assets/index-CbV3-WlB.js +0 -1
@@ -1,4 +1,4 @@
1
- import{h as i}from"./index-C9ej-MF0.js";const l=`accept acceptcharset accesskey action allowfullscreen allowtransparency
1
+ import{h as i}from"./index-14oRTMYn.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-C9ej-MF0.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-14oRTMYn.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-C9ej-MF0.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-14oRTMYn.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-C9ej-MF0.js";import{i as e}from"./motion-D1iUKftk.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-14oRTMYn.js";import{i as e}from"./motion-BICCfl_C.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-C9ej-MF0.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-14oRTMYn.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-C9ej-MF0.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-14oRTMYn.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-DKpl2K9E.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-DqG-3BAY.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-C9ej-MF0.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-14oRTMYn.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-C9ej-MF0.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-14oRTMYn.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-C9ej-MF0.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-14oRTMYn.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-C9ej-MF0.js";import{i as f}from"./motion-D1iUKftk.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-14oRTMYn.js";import{i as f}from"./motion-BICCfl_C.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-C9ej-MF0.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-14oRTMYn.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">
@@ -321,12 +321,7 @@ export function registerActivityPubCommand(program) {
321
321
  try {
322
322
  await bootstrapDb(program);
323
323
  const items = getOutbox(username, {
324
- limit: numericOption(options.limit, {
325
- name: "--limit",
326
- integer: true,
327
- min: 1,
328
- fallback: 50,
329
- }),
324
+ limit: numericOption(options.limit, { name: "--limit", integer: true, min: 1, fallback: 50 }),
330
325
  types: options.type,
331
326
  });
332
327
  if (options.json) {
@@ -360,12 +355,7 @@ export function registerActivityPubCommand(program) {
360
355
  try {
361
356
  await bootstrapDb(program);
362
357
  const items = getInbox(username, {
363
- limit: numericOption(options.limit, {
364
- name: "--limit",
365
- integer: true,
366
- min: 1,
367
- fallback: 50,
368
- }),
358
+ limit: numericOption(options.limit, { name: "--limit", integer: true, min: 1, fallback: 50 }),
369
359
  types: options.type,
370
360
  });
371
361
  if (options.json) {
@@ -463,12 +453,7 @@ export function registerActivityPubCommand(program) {
463
453
  .action(async (query, options) => {
464
454
  try {
465
455
  await bootstrapDb(program);
466
- const limit = numericOption(options.limit, {
467
- name: "--limit",
468
- integer: true,
469
- min: 1,
470
- fallback: 20,
471
- });
456
+ const limit = numericOption(options.limit, { name: "--limit", integer: true, min: 1, fallback: 20 });
472
457
  const target = options.target;
473
458
  const result = {};
474
459
  if (target === "actors" || target === "all") {
@@ -118,19 +118,31 @@ export function registerAgentsCommand(program) {
118
118
  const prompt = Array.isArray(task) ? task.join(" ").trim() : "";
119
119
  if (!prompt) {
120
120
  logger.error(
121
- chalk.red(`agents run requires a task, e.g. cc agents run ${name} "review @src/x.js"`),
121
+ chalk.red(
122
+ `agents run requires a task, e.g. cc agents run ${name} "review @src/x.js"`,
123
+ ),
122
124
  );
123
125
  process.exitCode = 1;
124
126
  return;
125
127
  }
126
- const { runAgentHeadless } = await import("../runtime/headless-runner.js");
128
+ // Claude-Code 2.1.183 parity: deprecation warnings appear in stderr
129
+ // during print mode AND for agent-frontmatter models. The resolved model
130
+ // here comes from `--model` or the agent file's frontmatter `model:`.
131
+ const resolvedModel = options.model || a.model || undefined;
132
+ if (resolvedModel) {
133
+ const { maybeWarnDeprecatedModel } =
134
+ await import("../lib/model-deprecation.js");
135
+ maybeWarnDeprecatedModel({ model: resolvedModel });
136
+ }
137
+ const { runAgentHeadless } =
138
+ await import("../runtime/headless-runner.js");
127
139
  const outcome = await runAgentHeadless({
128
140
  prompt,
129
141
  // The agent file's body becomes the system prompt (its persona).
130
142
  systemPrompt: a.systemPrompt || undefined,
131
143
  // Frontmatter `tools` scopes the run; null = inherit all.
132
144
  allowedTools: a.tools || undefined,
133
- model: options.model || a.model || undefined,
145
+ model: resolvedModel,
134
146
  outputFormat: options.outputFormat,
135
147
  permissionMode: options.permissionMode,
136
148
  additionalDirectories: Array.isArray(options.addDir)
@@ -147,7 +159,9 @@ export function registerAgentsCommand(program) {
147
159
  // ── new (scaffold) ────────────────────────────────────────────────────
148
160
  cmd
149
161
  .command("new <name>")
150
- .description("Scaffold a new agent file (project-native .chainlesschain/agents/)")
162
+ .description(
163
+ "Scaffold a new agent file (project-native .chainlesschain/agents/)",
164
+ )
151
165
  .option("--description <d>", "Frontmatter description")
152
166
  .option("--tools <list>", "Comma-separated tool allow-list")
153
167
  .option("--claude", "Create under .claude/agents (Claude-Code-portable)")
@@ -125,12 +125,20 @@ export function registerCommandCommand(program) {
125
125
  return;
126
126
  }
127
127
 
128
+ // Claude-Code 2.1.183 parity: surface model-deprecation notices for
129
+ // frontmatter-declared models, same as `cc agents run` and print mode.
130
+ const resolvedModel = options.model || c.model || undefined;
131
+ if (resolvedModel) {
132
+ const { maybeWarnDeprecatedModel } =
133
+ await import("../lib/model-deprecation.js");
134
+ maybeWarnDeprecatedModel({ model: resolvedModel });
135
+ }
128
136
  const { runAgentHeadless, parseToolList } =
129
137
  await import("../runtime/headless-runner.js");
130
138
  const outcome = await runAgentHeadless({
131
139
  prompt,
132
140
  outputFormat: options.outputFormat,
133
- model: options.model || c.model || undefined,
141
+ model: resolvedModel,
134
142
  permissionMode: options.permissionMode,
135
143
  // A command's frontmatter allowed-tools scopes the run.
136
144
  allowedTools: parseToolList(c.allowedTools),
@@ -145,7 +153,9 @@ export function registerCommandCommand(program) {
145
153
  // ── new (scaffold) ────────────────────────────────────────────────────
146
154
  cmd
147
155
  .command("new <name>")
148
- .description("Scaffold a new command file (project-native .chainlesschain/commands/)")
156
+ .description(
157
+ "Scaffold a new command file (project-native .chainlesschain/commands/)",
158
+ )
149
159
  .option("--description <d>", "Frontmatter description")
150
160
  .option("--claude", "Create under .claude/commands (Claude-Code-portable)")
151
161
  .option("--personal", "Create under ~/.claude/commands instead of project")
@@ -311,22 +311,10 @@ export function registerDaoCommand(program) {
311
311
 
312
312
  const cfg = {};
313
313
  if (options.votingPeriod)
314
- cfg.votingPeriod = numericOption(options.votingPeriod, {
315
- name: "--voting-period",
316
- integer: true,
317
- min: 1,
318
- });
319
- if (options.quorum)
320
- cfg.quorum = numericOption(options.quorum, {
321
- name: "--quorum",
322
- min: 0,
323
- });
314
+ cfg.votingPeriod = numericOption(options.votingPeriod, { name: "--voting-period", integer: true, min: 1 });
315
+ if (options.quorum) cfg.quorum = numericOption(options.quorum, { name: "--quorum", min: 0 });
324
316
  if (options.executionDelay)
325
- cfg.executionDelay = numericOption(options.executionDelay, {
326
- name: "--execution-delay",
327
- integer: true,
328
- min: 0,
329
- });
317
+ cfg.executionDelay = numericOption(options.executionDelay, { name: "--execution-delay", integer: true, min: 0 });
330
318
 
331
319
  const result = configure(cfg);
332
320
  logger.success("Configuration updated");
@@ -538,12 +538,7 @@ export function registerDlpCommand(program) {
538
538
  if (options.policy) filter.policyId = options.policy;
539
539
  if (options.from) filter.fromDate = options.from;
540
540
  if (options.to) filter.toDate = options.to;
541
- filter.limit = numericOption(options.limit, {
542
- name: "--limit",
543
- integer: true,
544
- min: 1,
545
- fallback: 50,
546
- });
541
+ filter.limit = numericOption(options.limit, { name: "--limit", integer: true, min: 1, fallback: 50 });
547
542
  console.log(JSON.stringify(listIncidentsV2(filter), null, 2));
548
543
 
549
544
  await shutdown();
@@ -852,6 +852,116 @@ async function cmdSalvage(dumpfile, options) {
852
852
  }
853
853
  }
854
854
 
855
+ // ─── collect-qq (QQNT frida-free decrypt → vault) ────────────────────────
856
+ //
857
+ // module 101 QQNT 采集方案 — on-device path. Decrypts a (root-staged) encrypted
858
+ // nt_msg.db via the DERIVED key (MD5(MD5(uid)+rand), no frida), protobuf-parses
859
+ // the messages, and ingests them. The Android CollectQqNativeTool su-reads the
860
+ // DB + uid candidates, then invokes this. Same logic also runs on PC (USB).
861
+ // Plaintext is written to a temp file only for parsing, then deleted.
862
+ async function cmdCollectQq(options) {
863
+ const spinner = options.json
864
+ ? null
865
+ : ora("collect-qq (decrypt + ingest)...").start();
866
+ try {
867
+ const { createRequire } = await import("module");
868
+ const require = createRequire(import.meta.url);
869
+ const fs = require("fs");
870
+ const os = require("os");
871
+ const path = require("path");
872
+ const qq = options._qqCore
873
+ ? options._qqCore
874
+ : await import("@chainlesschain/personal-data-hub/forensics/qq-nt-collect");
875
+
876
+ if (!options.db) throw new Error("need --db <encrypted nt_msg.db>");
877
+ if (!options.uids) throw new Error("need --uids <file with u_ candidates>");
878
+ const raw = fs.readFileSync(options.db);
879
+ const rand = options.rand || qq.extractRand(raw);
880
+ if (!rand)
881
+ throw new Error(
882
+ "could not read `rand` from nt_msg.db header (pass --rand)",
883
+ );
884
+ const uids = fs
885
+ .readFileSync(options.uids, "utf8")
886
+ .split(/\s+/)
887
+ .filter((u) => /^u_[A-Za-z0-9_-]{10,}$/.test(u));
888
+ if (!uids.length) throw new Error("no u_ uid candidates in --uids file");
889
+
890
+ const result = qq.deriveAndDecrypt(raw, uids, rand);
891
+ if (!result) {
892
+ const report = {
893
+ ok: false,
894
+ reason: "no-uid-match",
895
+ uidCandidates: uids.length,
896
+ };
897
+ if (options.json) {
898
+ jsonAndExit(report);
899
+ return;
900
+ }
901
+ if (spinner)
902
+ spinner.fail(
903
+ "no uid matched (account uid not in candidates, or formula changed)",
904
+ );
905
+ process.exit(2);
906
+ }
907
+
908
+ // better-sqlite3's native binding isn't at the standard `bindings` path on
909
+ // Android (the bundle loads it specially) — reuse the vault's already-loaded
910
+ // Database constructor instead of require("better-sqlite3").
911
+ const hub = await (options._getHub || getHub)();
912
+ const vault = hub.vault;
913
+ const Database = (vault.db || vault._db || vault).constructor;
914
+
915
+ // Write the plaintext next to the (app-writable) input DB — os.tmpdir() is
916
+ // /data/local/tmp on Android, which the app uid can't write (EACCES).
917
+ void os;
918
+ const tmp = path.join(
919
+ path.dirname(path.resolve(options.db)),
920
+ `qqnt-dec-${process.pid}.db`,
921
+ );
922
+ fs.writeFileSync(tmp, result.decrypted);
923
+ let events;
924
+ try {
925
+ events = qq.parseEvents(Database, tmp, options.self || "self");
926
+ } finally {
927
+ try {
928
+ fs.unlinkSync(tmp);
929
+ } catch {
930
+ /* best-effort wipe */
931
+ }
932
+ }
933
+
934
+ let ingested = 0;
935
+ for (const ev of events) {
936
+ try {
937
+ vault.putEvent(ev);
938
+ ingested++;
939
+ } catch {
940
+ /* skip dup/invalid */
941
+ }
942
+ }
943
+ const report = {
944
+ ok: true,
945
+ matchedUid: result.uid,
946
+ kdf: result.kdf,
947
+ messages: events.length,
948
+ ingested,
949
+ };
950
+ if (spinner) spinner.succeed(`collect-qq: ${ingested} QQ messages → vault`);
951
+ if (options.json) {
952
+ jsonAndExit(report);
953
+ return;
954
+ }
955
+ logger.log(chalk.green("✓ QQNT collect succeeded"));
956
+ logger.log(` matched uid: ${result.uid} (kdf ${result.kdf})`);
957
+ logger.log(` messages: ${events.length}`);
958
+ logger.log(` ingested: ${ingested}`);
959
+ process.exit(0);
960
+ } catch (err) {
961
+ fail(spinner, err, options.json);
962
+ }
963
+ }
964
+
855
965
  // ─── Phase 10.3 — cc hub aichat <verb> wizard subcommand surface ─────
856
966
  //
857
967
  // Mirrors the WS topics (personal-data-hub.aichat-*) so scripts and the
@@ -2561,6 +2671,21 @@ export function registerHubCommand(program) {
2561
2671
  .option("--json", "Output JSON")
2562
2672
  .action(cmdSalvage);
2563
2673
 
2674
+ hub
2675
+ .command("collect-qq")
2676
+ .description(
2677
+ "QQNT (modern QQ): decrypt a root-staged encrypted nt_msg.db via the DERIVED key (no frida), protobuf-parse messages, and ingest into the vault. Used by the Android CollectQqNativeTool (su-reads DB + uids); also runnable on PC.",
2678
+ )
2679
+ .requiredOption("--db <path>", "Encrypted nt_msg.db (root-staged / pulled)")
2680
+ .requiredOption(
2681
+ "--uids <path>",
2682
+ "File with u_ uid candidates (one per line)",
2683
+ )
2684
+ .option("--rand <str>", "Override the header-derived rand")
2685
+ .option("--self <qq>", "Your own QQ number (attribution fallback)")
2686
+ .option("--json", "Output JSON")
2687
+ .action(cmdCollectQq);
2688
+
2564
2689
  hub
2565
2690
  .command("event-detail <eventId>")
2566
2691
  .description(
package/src/index.js CHANGED
@@ -62,6 +62,7 @@ import { registerContextCommand } from "./commands/context.js";
62
62
  import { registerCheckpointCommand } from "./commands/checkpoint.js";
63
63
  import { registerGoalCommand } from "./commands/goal.js";
64
64
  import { registerCommandCommand } from "./commands/command.js";
65
+ import { registerAgentsCommand } from "./commands/agents.js";
65
66
  import { registerCompactCommand } from "./commands/compact.js";
66
67
  import { registerLoopCommand } from "./commands/loop.js";
67
68
  import { registerReviewCommand } from "./commands/review.js";
@@ -478,6 +479,7 @@ export function createProgram(opts = {}) {
478
479
  registerCheckpointCommand(program);
479
480
  registerGoalCommand(program);
480
481
  registerCommandCommand(program);
482
+ registerAgentsCommand(program);
481
483
  registerCompactCommand(program);
482
484
  registerLoopCommand(program);
483
485
  registerReviewCommand(program);
@@ -5,6 +5,7 @@
5
5
  * capability negotiation, and peer discovery.
6
6
  */
7
7
 
8
+
8
9
  // Safe JSON-array parse for values read back from the DB (capabilities / skills /
9
10
  // history / artifacts are stored as JSON strings). Written via JSON.stringify so
10
11
  // normally valid, but a corrupted or externally-edited DB must not crash agent
@@ -12,6 +12,8 @@ export {
12
12
  buildSystemPrompt,
13
13
  executeTool,
14
14
  computeProposedEdit,
15
+ editNotebookCell,
16
+ renderNotebook,
15
17
  classifyError,
16
18
  isValidPackageName,
17
19
  chatWithTools,
@@ -48,7 +48,12 @@ function makeStallGuard(
48
48
  if (hintTimer) clearTimeout(hintTimer);
49
49
  hintTimer = setTimeout(() => {
50
50
  try {
51
- onHint(hintMs);
51
+ // 2nd arg = the hard abort deadline (stallMs) so the hint can tell
52
+ // the user when the silent request will time out. Note the chat path
53
+ // surfaces a stall error rather than auto-retrying (see the dispatch
54
+ // loop in chatStream), so callers should word it "will time out",
55
+ // not "will retry".
56
+ onHint(hintMs, stallMs);
52
57
  } catch {
53
58
  /* hint is best-effort — never affect the stream */
54
59
  }
@@ -1377,7 +1377,7 @@ async function initHub() {
1377
1377
 
1378
1378
  // ─── Phase 12.6.8 — WeChat account persistence helpers (cli mirror) ──────
1379
1379
 
1380
- function loadWechatAccounts(filePath) {
1380
+ export function loadWechatAccounts(filePath) {
1381
1381
  try {
1382
1382
  if (!existsSync(filePath)) return [];
1383
1383
  const raw = readFileSync(filePath, "utf-8");
@@ -1420,7 +1420,7 @@ function saveWechatAccounts(filePath, accounts) {
1420
1420
 
1421
1421
  // ─── Email account persistence (Phase 5.6) ───────────────────────────────
1422
1422
 
1423
- function loadEmailAccounts(filePath) {
1423
+ export function loadEmailAccounts(filePath) {
1424
1424
  try {
1425
1425
  if (!existsSync(filePath)) return [];
1426
1426
  const raw = readFileSync(filePath, "utf-8");
@@ -1437,7 +1437,7 @@ function saveEmailAccounts(filePath, accounts) {
1437
1437
 
1438
1438
  // ─── Alipay account persistence (Phase 6) ───────────────────────────────
1439
1439
 
1440
- function loadAlipayAccounts(filePath) {
1440
+ export function loadAlipayAccounts(filePath) {
1441
1441
  try {
1442
1442
  if (!existsSync(filePath)) return [];
1443
1443
  const raw = readFileSync(filePath, "utf-8");
@@ -3271,12 +3271,20 @@ export async function startAgentRepl(options = {}) {
3271
3271
  // the API has gone silent mid-response — tell the user we're still
3272
3272
  // waiting instead of leaving a frozen spinner. stderr so it never
3273
3273
  // corrupts the streamed answer on stdout.
3274
- onStall: (ms) =>
3274
+ onStall: (ms, timeoutMs) => {
3275
+ const silent = Math.round(ms / 1000);
3276
+ // 2.1.185: when a hard inactivity timeout is set, tell the user when
3277
+ // the stalled stream will auto-retry instead of leaving them unsure
3278
+ // whether it's hung forever.
3279
+ const retryIn =
3280
+ timeoutMs > ms ? Math.round((timeoutMs - ms) / 1000) : 0;
3281
+ const suffix = retryIn > 0 ? ` · will retry in ${retryIn}s` : "";
3275
3282
  process.stderr.write(
3276
3283
  chalk.dim(
3277
- ` ⏳ waiting for API response (silent ${Math.round(ms / 1000)}s)…\n`,
3284
+ ` ⏳ waiting for API response (silent ${silent}s)${suffix}…\n`,
3278
3285
  ),
3279
- ),
3286
+ );
3287
+ },
3280
3288
  // Hard inactivity timeout: abort + retry a dead-but-open stream instead
3281
3289
  // of hanging forever. undefined → agent-core's 180s default (matches cc
3282
3290
  // chat/ask); config.llm.streamStallTimeoutMs tunes or disables (0).
@@ -186,10 +186,19 @@ export async function startChatRepl(options = {}) {
186
186
  // Stall hint (cc agent parity): the connection is alive but the API has
187
187
  // gone silent — reassure instead of a frozen cursor. stderr so it never
188
188
  // corrupts the streamed answer on stdout.
189
- const onStall = (ms) =>
189
+ const onStall = (ms, timeoutMs) => {
190
+ const silent = Math.round(ms / 1000);
191
+ // 2.1.185: surface the abort deadline so the user knows when the silent
192
+ // request gives up. The chat path aborts (and surfaces an error) on
193
+ // stall rather than auto-retrying like the agent path, so the wording is
194
+ // "will time out", not "will retry".
195
+ const timeoutIn =
196
+ timeoutMs > ms ? Math.round((timeoutMs - ms) / 1000) : 0;
197
+ const suffix = timeoutIn > 0 ? ` · will time out in ${timeoutIn}s` : "";
190
198
  process.stderr.write(
191
- `\x1b[2m ⏳ waiting for API response (silent ${Math.round(ms / 1000)}s)…\x1b[0m\n`,
199
+ `\x1b[2m ⏳ waiting for API response (silent ${silent}s)${suffix}…\x1b[0m\n`,
192
200
  );
201
+ };
193
202
 
194
203
  if (sessionId)
195
204
  appendEvent(sessionId, "user_message", { content: trimmed });