chainlesschain 0.166.99 → 0.166.100

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 (170) hide show
  1. package/README.md +7 -8
  2. package/package.json +1 -1
  3. package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
  4. package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
  5. package/src/assets/web-panel/assets/{AIOps-BUgaCgVU.js → AIOps-Cd4iUOPt.js} +1 -1
  6. package/src/assets/web-panel/assets/{ActionButton-b0MpUSSZ.js → ActionButton--ucr-zko.js} +1 -1
  7. package/src/assets/web-panel/assets/{Analytics-hbXTvHqO.js → Analytics-DbejYMWk.js} +3 -3
  8. package/src/assets/web-panel/assets/{AppLayout-CLQoAVu4.js → AppLayout-CLgKxeGw.js} +5 -5
  9. package/src/assets/web-panel/assets/{Artifacts-ytHzl2L2.js → Artifacts-CTT5BIL5.js} +1 -1
  10. package/src/assets/web-panel/assets/{Audit-BuhkLm0C.js → Audit-DP-WBWe9.js} +1 -1
  11. package/src/assets/web-panel/assets/{BackgroundAgents-CS81hxZV.js → BackgroundAgents-B6VqheJk.js} +1 -1
  12. package/src/assets/web-panel/assets/{Backup-DzR-_Qvi.js → Backup-VWJK5zim.js} +1 -1
  13. package/src/assets/web-panel/assets/{BaseInput-r8Ku_lYw.js → BaseInput-YGFO9RHd.js} +1 -1
  14. package/src/assets/web-panel/assets/{Chat-C3Uxtoaa.js → Chat-CVfydnCd.js} +5 -5
  15. package/src/assets/web-panel/assets/ChatBubbleRenderer-BICpB-qU.js +1 -0
  16. package/src/assets/web-panel/assets/{Checkbox-BnG2P5yc.js → Checkbox-Bd5vKRMk.js} +1 -1
  17. package/src/assets/web-panel/assets/{Codegen-BdgU6HZy.js → Codegen-DHNgPHvg.js} +1 -1
  18. package/src/assets/web-panel/assets/{Col-DT8t9wmf.js → Col-CA2BYQ8T.js} +1 -1
  19. package/src/assets/web-panel/assets/{Community-ChkxR5oe.js → Community-DnKJ-qpI.js} +1 -1
  20. package/src/assets/web-panel/assets/{Compact-DIwLeTk3.js → Compact-C9BZ8t4r.js} +1 -1
  21. package/src/assets/web-panel/assets/{Compliance-CAqzGLvW.js → Compliance-ByyQ2FOl.js} +1 -1
  22. package/src/assets/web-panel/assets/{Cowork-Bb3jejMG.js → Cowork-rXTwXE_c.js} +2 -2
  23. package/src/assets/web-panel/assets/{Cron-BYRkZLta.js → Cron-BuW-HODy.js} +2 -2
  24. package/src/assets/web-panel/assets/{Crosschain-BD6z227t.js → Crosschain-OudNtbYW.js} +1 -1
  25. package/src/assets/web-panel/assets/{DID-DA3G5Wgo.js → DID-BQ6BxYNN.js} +2 -2
  26. package/src/assets/web-panel/assets/{Dashboard-yaZePHOu.js → Dashboard-Cz5HG8tz.js} +2 -2
  27. package/src/assets/web-panel/assets/{Dropdown-BqY5MBx2.js → Dropdown-BzclHOVv.js} +1 -1
  28. package/src/assets/web-panel/assets/{EmailListRenderer-cIWwOgHm.js → EmailListRenderer-CbJETFdy.js} +1 -1
  29. package/src/assets/web-panel/assets/{EvolutionSettings-zvV6ymca.js → EvolutionSettings-Dx_pJG3d.js} +1 -1
  30. package/src/assets/web-panel/assets/{FamilyGuardDashboard-CAmh1U2b.js → FamilyGuardDashboard-6JCS1MNg.js} +1 -1
  31. package/src/assets/web-panel/assets/{Federation-5qd2LCg8.js → Federation-BrPkMYaf.js} +1 -1
  32. package/src/assets/web-panel/assets/{FormItemContext-Bdkj1sRJ.js → FormItemContext-Bhc9pobs.js} +1 -1
  33. package/src/assets/web-panel/assets/{GenericCardRenderer-B-gWN2P3.js → GenericCardRenderer-BxOh07uQ.js} +1 -1
  34. package/src/assets/web-panel/assets/{Git-BEMh_NGd.js → Git-D_idoujr.js} +2 -2
  35. package/src/assets/web-panel/assets/{Governance-qLGvA2Hw.js → Governance-ZGfIRE-x.js} +1 -1
  36. package/src/assets/web-panel/assets/{Inference-DblBwYuW.js → Inference-DpAmcwbw.js} +1 -1
  37. package/src/assets/web-panel/assets/{KnowledgeGraph-BISegVD_.js → KnowledgeGraph-D1S1UTgP.js} +1 -1
  38. package/src/assets/web-panel/assets/Logs-2sc8V5XV.js +2 -0
  39. package/src/assets/web-panel/assets/MarkdownRenderer-575jjYE6.js +1 -0
  40. package/src/assets/web-panel/assets/{Marketplace-CHKXMOkH.js → Marketplace-0xlFUKbe.js} +1 -1
  41. package/src/assets/web-panel/assets/{McpTools-B5G1elqd.js → McpTools-D25eJLGm.js} +3 -3
  42. package/src/assets/web-panel/assets/{Memory-O5Ib0uTR.js → Memory-BLRGd9hM.js} +2 -2
  43. package/src/assets/web-panel/assets/{MobileBridge-BaGYL7rT.js → MobileBridge-zpFINGzn.js} +1 -1
  44. package/src/assets/web-panel/assets/MobileProjects-Cbyd-8kx.js +1 -0
  45. package/src/assets/web-panel/assets/{Mtc-CNjJ97jg.js → Mtc-DgXgUlHc.js} +2 -2
  46. package/src/assets/web-panel/assets/{MtcAudit-DjBN-Wqz.js → MtcAudit-DzcL-dKH.js} +2 -2
  47. package/src/assets/web-panel/assets/{Multisig-B850R9lO.js → Multisig-C3OrZ6VN.js} +3 -3
  48. package/src/assets/web-panel/assets/{NLProgramming-Bn8sbFfV.js → NLProgramming-Bqp_vWA7.js} +1 -1
  49. package/src/assets/web-panel/assets/{Notes-BpLmMp3Q.js → Notes-Dyn45-Ht.js} +3 -3
  50. package/src/assets/web-panel/assets/{NotificationSettings-Dbk97rjb.js → NotificationSettings-CLjafGZr.js} +1 -1
  51. package/src/assets/web-panel/assets/{OrderTableRenderer-BOBX_I72.js → OrderTableRenderer-Bx8wMauC.js} +1 -1
  52. package/src/assets/web-panel/assets/{Organization-B45DpOuE.js → Organization-5gr9hyLm.js} +4 -4
  53. package/src/assets/web-panel/assets/{Overflow-DmKH7eer.js → Overflow-BRdU02hT.js} +1 -1
  54. package/src/assets/web-panel/assets/{P2P-CC4FaXTl.js → P2P-DIi7fzh6.js} +2 -2
  55. package/src/assets/web-panel/assets/{PdhVaultBrowser-C2SgP4PI.js → PdhVaultBrowser-BCbS1KpA.js} +3 -3
  56. package/src/assets/web-panel/assets/{Permissions-BQB4QFj_.js → Permissions-BjeP9VtA.js} +4 -4
  57. package/src/assets/web-panel/assets/{PersonalDataHub-Dy6GGpn4.js → PersonalDataHub-y8PXOQUc.js} +4 -4
  58. package/src/assets/web-panel/assets/{Pipeline-B9HB5pRc.js → Pipeline-B0fL5uxY.js} +1 -1
  59. package/src/assets/web-panel/assets/{Privacy-D7pOmg-p.js → Privacy-C8jCDn8Z.js} +1 -1
  60. package/src/assets/web-panel/assets/{ProjectInit-DglBqvec.js → ProjectInit-B_L6Dc6V.js} +2 -2
  61. package/src/assets/web-panel/assets/{ProjectSettings-Bho22znM.js → ProjectSettings-Bb1CYbZh.js} +2 -2
  62. package/src/assets/web-panel/assets/Projects-CUSV10Cn.js +1 -0
  63. package/src/assets/web-panel/assets/{Providers-BgAgo1Yr.js → Providers-mBSTDJ0E.js} +1 -1
  64. package/src/assets/web-panel/assets/{QrScannerModal-C2fBjCC8.js → QrScannerModal-CHxgalvt.js} +1 -1
  65. package/src/assets/web-panel/assets/{QuickAsk-C8MiF-rk.js → QuickAsk-DI9KIMEV.js} +1 -1
  66. package/src/assets/web-panel/assets/{Recommend-D_TzHdQf.js → Recommend-B5_zW1JH.js} +1 -1
  67. package/src/assets/web-panel/assets/{RemoteSession-BHO7b6xE.js → RemoteSession-BkH4bmM5.js} +2 -2
  68. package/src/assets/web-panel/assets/{Reputation-BPxNmNhD.js → Reputation-DJrAqwAq.js} +1 -1
  69. package/src/assets/web-panel/assets/{Row-fwhot5Bk.js → Row-xZ3MAM34.js} +1 -1
  70. package/src/assets/web-panel/assets/{RssFeed-CZbD1B-5.js → RssFeed-CCsrLLiu.js} +3 -3
  71. package/src/assets/web-panel/assets/{Search-BRs6YpAE.js → Search-CTCRKvaP.js} +1 -1
  72. package/src/assets/web-panel/assets/{Security-CB344tKC.js → Security-D7joyfp2.js} +4 -4
  73. package/src/assets/web-panel/assets/{Services-Beo-7fEl.js → Services-oqHPmTG4.js} +2 -2
  74. package/src/assets/web-panel/assets/{Skeleton-CDXx96vD.js → Skeleton-BR_32bTG.js} +1 -1
  75. package/src/assets/web-panel/assets/{Skills-b-mQTJK4.js → Skills-BoRz9mln.js} +1 -1
  76. package/src/assets/web-panel/assets/{Sla-BvjP-IS9.js → Sla-UAGUHZ9b.js} +1 -1
  77. package/src/assets/web-panel/assets/{SpeechSettings-C6wsV-cO.js → SpeechSettings-DeP_rMgv.js} +1 -1
  78. package/src/assets/web-panel/assets/{SyncSettings-BQZoko-e.js → SyncSettings-CSzzMmeA.js} +2 -2
  79. package/src/assets/web-panel/assets/{Tasks-6Z0rJJVO.js → Tasks-CcqOLsLB.js} +1 -1
  80. package/src/assets/web-panel/assets/{Templates-Cc9IXtEQ.js → Templates-cDbkGSDG.js} +1 -1
  81. package/src/assets/web-panel/assets/{Tenant-BLc7AjOI.js → Tenant-DmOy58cq.js} +1 -1
  82. package/src/assets/web-panel/assets/{Terminal-CUN49v85.js → Terminal-CsRZH5vr.js} +2 -2
  83. package/src/assets/web-panel/assets/{TimelineRenderer-CX-SksHN.js → TimelineRenderer-BgJrk6HG.js} +1 -1
  84. package/src/assets/web-panel/assets/{Tokens-Btrm0-rK.js → Tokens-CCQglKDE.js} +1 -1
  85. package/src/assets/web-panel/assets/{Trigger-CIboUvKe.js → Trigger-t-Gt3oBY.js} +1 -1
  86. package/src/assets/web-panel/assets/{Trust-Rv9jEs5v.js → Trust-DQgu2kI0.js} +1 -1
  87. package/src/assets/web-panel/assets/{UkeySign-B_xomdD5.js → UkeySign-Cod2WUGj.js} +1 -1
  88. package/src/assets/web-panel/assets/{VideoEditing-CrvWeMow.js → VideoEditing-SGN5zaVK.js} +1 -1
  89. package/src/assets/web-panel/assets/{Wallet-BjvWgk_7.js → Wallet-CnLEL-LD.js} +4 -4
  90. package/src/assets/web-panel/assets/{WebAuthn-CwfpFw92.js → WebAuthn-C2keUpD6.js} +5 -5
  91. package/src/assets/web-panel/assets/{WorkflowEditor-Dkk2QsOe.js → WorkflowEditor-B1GvrwWJ.js} +1 -1
  92. package/src/assets/web-panel/assets/{chat-Dah1DVes.js → chat-1E9_P_qY.js} +1 -1
  93. package/src/assets/web-panel/assets/{colors-JEpgQ10k.js → colors-DuU6Os4q.js} +1 -1
  94. package/src/assets/web-panel/assets/{compact-item--DuG_cxf.js → compact-item-C5NfOAcM.js} +1 -1
  95. package/src/assets/web-panel/assets/{createContext-BJ_GZvon.js → createContext-D4Fxz9qQ.js} +1 -1
  96. package/src/assets/web-panel/assets/devWarning-zDWbYMr7.js +1 -0
  97. package/src/assets/web-panel/assets/{hasIn-yZRLDmWK.js → hasIn-C6C49iFk.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-rkvSOceQ.js → index-AO6iDCSL.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-DemMuw7n.js → index-B-bb-R99.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-CjuD8smQ.js → index-B5lzRoHp.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-DxnkldGo.js → index-BBVqlelF.js} +1 -1
  102. package/src/assets/web-panel/assets/index-BPBsZZnT.js +1 -0
  103. package/src/assets/web-panel/assets/{index-C56b8e9s.js → index-BU5mPkNX.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-DddwZCT9.js → index-BULggEX6.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-1QZASeW1.js → index-BVE2wCeb.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-kZE-K3ZO.js → index-BYg1dtne.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-DFJbJ8rs.js → index-BZKRZYTX.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-BM7xJKGD.js → index-B_ON9La1.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-D6Le2m3d.js → index-Bk-paNL3.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-o2qO_dYf.js → index-BlHkc48f.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-9L3Pg2tc.js → index-BmvU4Tp_.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-BKl40wrO.js → index-BsH8mFp4.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-Dq-8PFhL.js → index-Bu6qMjf4.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-VIgVth92.js → index-C2nO02uW.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DZBesaCN.js → index-C7mh6xlu.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-CJLz3SpM.js → index-CDVwN9Sv.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-DaDLWIWo.js → index-CJS6GTpv.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-C8nXkCMf.js → index-CQJoh5rw.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-asia_JPc.js → index-CXb8gEWh.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-IjOa5lYn.js → index-CXn-e3ki.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-CFj7ylAJ.js → index-CpiOzt7U.js} +1 -1
  122. package/src/assets/web-panel/assets/index-CtGQDg7m.js +1 -0
  123. package/src/assets/web-panel/assets/{index-C6ohEAEV.js → index-D1TXgNPA.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-vdTrEOj7.js → index-DFK6PTGJ.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-DQ4Fch3e.js → index-DP2DCKD-.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-L9CFyRIi.js → index-DPzunJER.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-cHx5KzUt.js → index-DSypQU1h.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-DbMGGcpZ.js → index-DZgT7pH-.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-Cmr0AzcK.js → index-Dh-vezHe.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-BWkKE8Oj.js → index-DpaGe-dr.js} +3 -3
  131. package/src/assets/web-panel/assets/{index-DhX48E81.js → index-HQXFl8fh.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-BUjyj7qR.js → index-bW6vfpLH.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-Bdg_nWD1.js → index-cnDfwWU5.js} +1 -1
  134. package/src/assets/web-panel/assets/{index-CxB49Mow.js → index-gh11zJ9h.js} +1 -1
  135. package/src/assets/web-panel/assets/{index-DroaQypF.js → index-jFg3CPlQ.js} +1 -1
  136. package/src/assets/web-panel/assets/{index-CQedFuDw.js → index-lNmDaf3J.js} +1 -1
  137. package/src/assets/web-panel/assets/{initDefaultProps-anKyyjGc.js → initDefaultProps-3DSfnIpD.js} +1 -1
  138. package/src/assets/web-panel/assets/{motion-Cqp0nx5A.js → motion-DxGLmgA0.js} +1 -1
  139. package/src/assets/web-panel/assets/{move-Ca3mgkM2.js → move-DrlLG6m5.js} +1 -1
  140. package/src/assets/web-panel/assets/{mtc-parser-BmwuhJ3z.js → mtc-parser-BITbrJSb.js} +1 -1
  141. package/src/assets/web-panel/assets/{omit-C9Mf05WJ.js → omit-D7k5vIbk.js} +1 -1
  142. package/src/assets/web-panel/assets/{pickAttrs-2PbxB9Ds.js → pickAttrs-BJSvYFWo.js} +1 -1
  143. package/src/assets/web-panel/assets/{placementArrow-CTVbOFHt.js → placementArrow-Bf4to1jA.js} +1 -1
  144. package/src/assets/web-panel/assets/{responsiveObserve-Nrm8Vbmr.js → responsiveObserve-BXzeyzTa.js} +1 -1
  145. package/src/assets/web-panel/assets/{slide-Dh4r1zqR.js → slide-DLzNUNdj.js} +1 -1
  146. package/src/assets/web-panel/assets/{statusUtils-vzNoQL-r.js → statusUtils-wBBnrRm_.js} +1 -1
  147. package/src/assets/web-panel/assets/{styleChecker-BXpGfNkI.js → styleChecker-BnmJzXNr.js} +1 -1
  148. package/src/assets/web-panel/assets/{useFlexGapSupport-CVWBRdhs.js → useFlexGapSupport-DrN8MrJb.js} +1 -1
  149. package/src/assets/web-panel/assets/{useFs-BJWMLffI.js → useFs-dnkYGkjY.js} +1 -1
  150. package/src/assets/web-panel/assets/{usePersonalDataHub-CWCe5VHG.js → usePersonalDataHub-k_xkv7-k.js} +1 -1
  151. package/src/assets/web-panel/assets/{vnode-D-NBEb8m.js → vnode-B-v8PXpK.js} +1 -1
  152. package/src/assets/web-panel/assets/{zoom-C0mnhfGf.js → zoom-Coue8wAK.js} +1 -1
  153. package/src/assets/web-panel/index.html +1 -1
  154. package/src/data/changelog.json +13 -0
  155. package/src/harness/worktree-isolator.js +20 -8
  156. package/src/lib/chat-core.js +57 -25
  157. package/src/lib/eval/verify01-execution-window.js +70 -0
  158. package/src/lib/eval/verify01-execution.js +9 -1
  159. package/src/lib/eval/verify01-host-capture.js +6 -2
  160. package/src/lib/provider-http-error.js +16 -0
  161. package/src/lib/stream-retry.js +195 -1
  162. package/src/runtime/agent-core.js +97 -20
  163. package/src/assets/web-panel/assets/ChatBubbleRenderer-RvblDu77.js +0 -1
  164. package/src/assets/web-panel/assets/Logs-BD2UR7kE.js +0 -2
  165. package/src/assets/web-panel/assets/MarkdownRenderer-B-TlDCmr.js +0 -1
  166. package/src/assets/web-panel/assets/MobileProjects-Dsctbob8.js +0 -1
  167. package/src/assets/web-panel/assets/Projects-C0bSuM8U.js +0 -1
  168. package/src/assets/web-panel/assets/devWarning-B6kQEceX.js +0 -1
  169. package/src/assets/web-panel/assets/index-CSeiH6HA.js +0 -1
  170. package/src/assets/web-panel/assets/index-CayGTz6d.js +0 -1
@@ -1 +1 @@
1
- import{h as i}from"./index-BWkKE8Oj.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-DpaGe-dr.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{J as o,h}from"./index-BWkKE8Oj.js";import{b as x}from"./vendor-Bn1JzzAn.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{J as o,h}from"./index-DpaGe-dr.js";import{b as x}from"./vendor-Bn1JzzAn.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-BWkKE8Oj.js";import{i as e}from"./motion-Cqp0nx5A.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-DpaGe-dr.js";import{i as e}from"./motion-DxGLmgA0.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-BWkKE8Oj.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-DpaGe-dr.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{B as d}from"./index-BWkKE8Oj.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{B as d}from"./index-DpaGe-dr.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-Bn1JzzAn.js";import{d as s}from"./styleChecker-BXpGfNkI.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-Bn1JzzAn.js";import{d as s}from"./styleChecker-BnmJzXNr.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-BWkKE8Oj.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-DpaGe-dr.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 v}from"./index-BWkKE8Oj.js";import{u as _}from"./useShellMode-CgR0wCYM.js";function d(r){if(!r)return r;if(r.error)throw new Error(r.error);return r.result!==void 0?r.result:r}async function p(r,s={},e=!0){try{if(e!==!0||!r||typeof r.sendRaw!="function")return{status:"unavailable",path:null};const a=await r.sendRaw({type:"fs.openDirectory",title:s.title},6e4);if(a&&(a.ok===!1||a.error))return{status:"unavailable",path:null};const t=a&&a.result!==void 0?a.result:a;return t&&(t.ok===!1||t.error||t.unsupported===!0)?{status:"unavailable",path:null}:t&&t.canceled===!0?{status:"cancelled",path:null}:t&&typeof t.path=="string"&&t.path.length>0?{status:"selected",path:t.path}:{status:"unavailable",path:null}}catch{return{status:"unavailable",path:null}}}function b(r,s,e,a,t){return typeof r.onMessage!="function"||typeof r.sendRaw!="function"?r.sendRaw({type:s,...e},t).then(d):new Promise((n,u)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${s}.event`,m=`${s}.end`;let c=!1,h=()=>{};const o=(i,f)=>{if(!c){c=!0,clearTimeout(g);try{h()}catch{}i(f)}},g=setTimeout(()=>{o(u,new Error(`stream timeout (${t}ms): ${s}`))},t),y=r.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof a=="function")try{a(i.event||i)}catch{}return}if(i.type===m){o(n,d(i));return}i.type==="error"&&o(u,new Error(i.message||"stream error"))}});h=typeof y=="function"?y:()=>{},Promise.resolve(r.sendRaw({id:l,type:s,...e},t)).catch(()=>{})})}function k(){const r=v(),s=_(),e=(a,t={},n=3e4)=>r.sendRaw({type:a,...t},n).then(d);return{async health(){return await e("personal-data-hub.health",{},8e3)},async stats(){return await e("personal-data-hub.stats",{},8e3)},async listAdapters(){return await e("personal-data-hub.list-adapters",{},5e3)},async pickFile(a={}){try{const t=await r.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),n=t&&t.result!==void 0?t.result:t,u=n&&typeof n.path=="string"?n.path:n&&typeof n.filePath=="string"?n.filePath:null;return n&&n.canceled!==!0&&u?u:null}catch{return null}},async pickDirectoryResult(a={}){return await p(r,a,s.isEmbedded)},async pickDirectory(a={}){const t=await p(r,a,s.isEmbedded);return t.status==="selected"?t.path:null},async adapterReadiness(a){return await e("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},async syncAdapter(a,t={}){return await e("personal-data-hub.sync-adapter",{name:a,options:t},6e5)},async syncAll(a={}){return await e("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:t=20,seed:n=1}={}){return await e("personal-data-hub.register-mock",{name:a,count:t,seed:n})},async unregister(a){return await e("personal-data-hub.unregister",{name:a})},async ask(a,t={}){return await e("personal-data-hub.ask",{question:a,options:t},18e4)},async queryEvents(a={}){return await e("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await e("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await e("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await e("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await e("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,t={}){return await e("personal-data-hub.register-email",{account:a,opts:t},15e3)},async unregisterEmail(a){return await e("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await e("personal-data-hub.list-email-accounts",{},5e3)},async activateEmail(a){return await e("personal-data-hub.activate-email",{email:a},5e3)},async eventDetail(a){return await e("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,t={},n){return await b(r,"personal-data-hub.sync-adapter-stream",{name:a,options:t},n,6e5)},async syncAllStream(a={},t){return await b(r,"personal-data-hub.sync-all-stream",{options:a},t,9e5)},async registerAlipay(a,t={}){return await e("personal-data-hub.register-alipay",{account:a,opts:t},15e3)},async unregisterAlipay(a){return await e("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await e("personal-data-hub.list-alipay-accounts",{},5e3)},async activateAlipay(a){return await e("personal-data-hub.activate-alipay",{email:a},5e3)},async importAlipayBill({zipPath:a,csvPath:t,zipPassword:n}={}){return await e("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:t,zipPassword:n},3e5)},async reviewQueueList(a=50){return await e("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,t){return await e("personal-data-hub.review-decision",{reviewId:a,decision:t},5e3)},async manualMerge(a,t){return await e("personal-data-hub.manual-merge",{aId:a,bId:t},5e3)},async manualUnmerge(a){return await e("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await e("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await e("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await e("personal-data-hub.skills-list",{},5e3)},async runSkill(a,t={}){return await e("personal-data-hub.run-skill",{name:a,options:t},12e4)},async openAichatLogin(a,t={}){return await e("personal-data-hub.aichat-open-login",{vendor:a,opts:t},1e4)},async probeAichatCookies(a,t){return await e("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:t},1e4)},async registerAichatVendor(a,t,n={}){return await e("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:t,opts:n},3e4)},async rotateAichatLogin(a){return await e("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await e("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await e("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await e("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await e("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l}={}){return await e("personal-data-hub.register-wechat",{account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l},45e3)},async listWechatAccounts(){return await e("personal-data-hub.list-wechat-accounts",{},5e3)},async activateWechat(a,t={}){return await e("personal-data-hub.activate-wechat",{uin:a,fridaOpts:t.fridaOpts,keyProviderOverride:t.keyProviderOverride},45e3)},async unregisterWechat(a){return await e("personal-data-hub.unregister-wechat",{uin:a},5e3)},async bilibiliAdbSync(a={}){return await e("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await e("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await e("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await e("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await e("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await e("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await e("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await e("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{k as u};
1
+ import{u as v}from"./index-DpaGe-dr.js";import{u as _}from"./useShellMode-CgR0wCYM.js";function d(r){if(!r)return r;if(r.error)throw new Error(r.error);return r.result!==void 0?r.result:r}async function p(r,s={},e=!0){try{if(e!==!0||!r||typeof r.sendRaw!="function")return{status:"unavailable",path:null};const a=await r.sendRaw({type:"fs.openDirectory",title:s.title},6e4);if(a&&(a.ok===!1||a.error))return{status:"unavailable",path:null};const t=a&&a.result!==void 0?a.result:a;return t&&(t.ok===!1||t.error||t.unsupported===!0)?{status:"unavailable",path:null}:t&&t.canceled===!0?{status:"cancelled",path:null}:t&&typeof t.path=="string"&&t.path.length>0?{status:"selected",path:t.path}:{status:"unavailable",path:null}}catch{return{status:"unavailable",path:null}}}function b(r,s,e,a,t){return typeof r.onMessage!="function"||typeof r.sendRaw!="function"?r.sendRaw({type:s,...e},t).then(d):new Promise((n,u)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${s}.event`,m=`${s}.end`;let c=!1,h=()=>{};const o=(i,f)=>{if(!c){c=!0,clearTimeout(g);try{h()}catch{}i(f)}},g=setTimeout(()=>{o(u,new Error(`stream timeout (${t}ms): ${s}`))},t),y=r.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof a=="function")try{a(i.event||i)}catch{}return}if(i.type===m){o(n,d(i));return}i.type==="error"&&o(u,new Error(i.message||"stream error"))}});h=typeof y=="function"?y:()=>{},Promise.resolve(r.sendRaw({id:l,type:s,...e},t)).catch(()=>{})})}function k(){const r=v(),s=_(),e=(a,t={},n=3e4)=>r.sendRaw({type:a,...t},n).then(d);return{async health(){return await e("personal-data-hub.health",{},8e3)},async stats(){return await e("personal-data-hub.stats",{},8e3)},async listAdapters(){return await e("personal-data-hub.list-adapters",{},5e3)},async pickFile(a={}){try{const t=await r.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),n=t&&t.result!==void 0?t.result:t,u=n&&typeof n.path=="string"?n.path:n&&typeof n.filePath=="string"?n.filePath:null;return n&&n.canceled!==!0&&u?u:null}catch{return null}},async pickDirectoryResult(a={}){return await p(r,a,s.isEmbedded)},async pickDirectory(a={}){const t=await p(r,a,s.isEmbedded);return t.status==="selected"?t.path:null},async adapterReadiness(a){return await e("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},async syncAdapter(a,t={}){return await e("personal-data-hub.sync-adapter",{name:a,options:t},6e5)},async syncAll(a={}){return await e("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:t=20,seed:n=1}={}){return await e("personal-data-hub.register-mock",{name:a,count:t,seed:n})},async unregister(a){return await e("personal-data-hub.unregister",{name:a})},async ask(a,t={}){return await e("personal-data-hub.ask",{question:a,options:t},18e4)},async queryEvents(a={}){return await e("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await e("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await e("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await e("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await e("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,t={}){return await e("personal-data-hub.register-email",{account:a,opts:t},15e3)},async unregisterEmail(a){return await e("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await e("personal-data-hub.list-email-accounts",{},5e3)},async activateEmail(a){return await e("personal-data-hub.activate-email",{email:a},5e3)},async eventDetail(a){return await e("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,t={},n){return await b(r,"personal-data-hub.sync-adapter-stream",{name:a,options:t},n,6e5)},async syncAllStream(a={},t){return await b(r,"personal-data-hub.sync-all-stream",{options:a},t,9e5)},async registerAlipay(a,t={}){return await e("personal-data-hub.register-alipay",{account:a,opts:t},15e3)},async unregisterAlipay(a){return await e("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await e("personal-data-hub.list-alipay-accounts",{},5e3)},async activateAlipay(a){return await e("personal-data-hub.activate-alipay",{email:a},5e3)},async importAlipayBill({zipPath:a,csvPath:t,zipPassword:n}={}){return await e("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:t,zipPassword:n},3e5)},async reviewQueueList(a=50){return await e("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,t){return await e("personal-data-hub.review-decision",{reviewId:a,decision:t},5e3)},async manualMerge(a,t){return await e("personal-data-hub.manual-merge",{aId:a,bId:t},5e3)},async manualUnmerge(a){return await e("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await e("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await e("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await e("personal-data-hub.skills-list",{},5e3)},async runSkill(a,t={}){return await e("personal-data-hub.run-skill",{name:a,options:t},12e4)},async openAichatLogin(a,t={}){return await e("personal-data-hub.aichat-open-login",{vendor:a,opts:t},1e4)},async probeAichatCookies(a,t){return await e("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:t},1e4)},async registerAichatVendor(a,t,n={}){return await e("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:t,opts:n},3e4)},async rotateAichatLogin(a){return await e("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await e("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await e("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await e("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await e("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l}={}){return await e("personal-data-hub.register-wechat",{account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l},45e3)},async listWechatAccounts(){return await e("personal-data-hub.list-wechat-accounts",{},5e3)},async activateWechat(a,t={}){return await e("personal-data-hub.activate-wechat",{uin:a,fridaOpts:t.fridaOpts,keyProviderOverride:t.keyProviderOverride},45e3)},async unregisterWechat(a){return await e("personal-data-hub.unregister-wechat",{uin:a},5e3)},async bilibiliAdbSync(a={}){return await e("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await e("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await e("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await e("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await e("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await e("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await e("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await e("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{k as u};
@@ -1 +1 @@
1
- import{N as i,h as a,w as l}from"./index-BWkKE8Oj.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-Bn1JzzAn.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 v(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,v as t};
1
+ import{N as i,h as a,w as l}from"./index-DpaGe-dr.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-Bn1JzzAn.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 v(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,v as t};
@@ -1,4 +1,4 @@
1
- import{K as o}from"./index-BWkKE8Oj.js";import{i as f}from"./motion-Cqp0nx5A.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-DpaGe-dr.js";import{i as f}from"./motion-DxGLmgA0.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-BWkKE8Oj.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-DpaGe-dr.js"></script>
12
12
  <link rel="modulepreload" crossorigin href="./assets/vendor-Bn1JzzAn.js">
13
13
  <link rel="modulepreload" crossorigin href="./assets/icons-DG5UD-6K.js">
14
14
  <link rel="stylesheet" crossorigin href="./assets/index-Cq93VfoF.css">
@@ -1,6 +1,19 @@
1
1
  {
2
2
  "source": "CHANGELOG.md",
3
3
  "releases": [
4
+ {
5
+ "productVersion": null,
6
+ "cliVersion": "0.166.100",
7
+ "cliVersions": ["0.166.100"],
8
+ "date": null,
9
+ "title": "",
10
+ "sections": [
11
+ {
12
+ "heading": "Fixed - cc CLI 0.166.100: bound stream retries and revalidate evaluation evidence",
13
+ "body": "- Honor Retry-After within a cancellable 60-second bound, preserve terminal\n provider errors and prevent replay after visible stream output.\n- Pass chat token callbacks and request options through the streaming wrapper.\n- Recheck formal evaluation windows and saved bindings before execution, and\n validate documentation baselines again after acceptance-checker changes.\n- Pair VS Code 0.37.144 and JetBrains 0.4.162 with public CLI 0.166.100 only\n after the final source commit passes every required Actions release gate.\n- Reuse unchanged child versions after source-tree, registry-byte and provenance\n checks. Formal evaluation, native/durable authority and long-term acceptance\n retain their separate evidence and unfinished status."
14
+ }
15
+ ]
16
+ },
4
17
  {
5
18
  "productVersion": null,
6
19
  "cliVersion": "0.166.99",
@@ -172,9 +172,25 @@ function parseRegisteredWorktrees(output) {
172
172
  }
173
173
 
174
174
  function readRegisteredWorktrees(repoDir) {
175
- return parseRegisteredWorktrees(
176
- gitExecArgs(["worktree", "list", "--porcelain"], repoDir),
177
- );
175
+ for (let attempt = 1; ; attempt += 1) {
176
+ try {
177
+ return parseRegisteredWorktrees(
178
+ gitExecArgs(["worktree", "list", "--porcelain"], repoDir),
179
+ );
180
+ } catch (error) {
181
+ // A concurrent `worktree add` can remove its temporary lock marker
182
+ // between Git's existence check and read. Retry only this read-only
183
+ // registry snapshot; never replay mutations or accept partial output.
184
+ if (
185
+ attempt >= 3 ||
186
+ !/^fatal: failed to read '[^'\r\n]*[\\/]worktrees[\\/][^'\\/\r\n]+[\\/]locked': No such file or directory$/u.test(
187
+ error?.message || "",
188
+ )
189
+ ) {
190
+ throw error;
191
+ }
192
+ }
193
+ }
178
194
  }
179
195
 
180
196
  function repositoryManagementContext(repoDir) {
@@ -341,11 +357,7 @@ function assertManagedWorktreePathWithContext(
341
357
  return candidatePath;
342
358
  }
343
359
 
344
- export function assertManagedWorktreePath(
345
- repoDir,
346
- worktreePath,
347
- options = {},
348
- ) {
360
+ export function assertManagedWorktreePath(repoDir, worktreePath, options = {}) {
349
361
  return assertManagedWorktreePathWithContext(
350
362
  repoDir,
351
363
  worktreePath,
@@ -15,7 +15,12 @@ import {
15
15
  isRetryableStreamError,
16
16
  STREAM_RETRY_BASE_MS,
17
17
  resolveStreamRetryMax,
18
+ captureStreamRetryMetadata,
19
+ attachStreamRetryMetadata,
20
+ resolveStreamRetryDelay,
21
+ waitForStreamRetry,
18
22
  } from "./stream-retry.js";
23
+ import { throwIfAborted } from "./abort-utils.js";
19
24
 
20
25
  // A streaming chat call must not hang forever if the API accepts the connection
21
26
  // but then goes silent (TCP up, no bytes). Abort the request if no data arrives
@@ -90,7 +95,7 @@ function _cachedPromptTokens(usage) {
90
95
  return 0;
91
96
  }
92
97
 
93
- async function _deliverToken(onToken, token, guard) {
98
+ async function _deliverToken(onToken, token, guard, options = {}) {
94
99
  if (typeof onToken !== "function") return;
95
100
  // Terminal backpressure is not provider silence. Suspend the network stall
96
101
  // timer while the UI sink drains, then re-arm it before reading more bytes.
@@ -150,9 +155,14 @@ export async function streamOllama(
150
155
 
151
156
  if (!response.ok) {
152
157
  guard.stop();
153
- throw new Error(`Ollama error: ${response.status} ${response.statusText}`);
158
+ throw attachStreamRetryMetadata(
159
+ new Error(`Ollama error: ${response.status} ${response.statusText}`),
160
+ captureStreamRetryMetadata(response),
161
+ );
154
162
  }
155
163
 
164
+ const retryMetadata = captureStreamRetryMetadata(response);
165
+
156
166
  const reader = response.body.getReader();
157
167
  const decoder = new TextDecoder();
158
168
  let fullResponse = "";
@@ -182,7 +192,7 @@ export async function streamOllama(
182
192
  if (json.done === true) completed = true;
183
193
  if (json.message?.content) {
184
194
  fullResponse += json.message.content;
185
- await _deliverToken(onToken, json.message.content, guard);
195
+ await _deliverToken(onToken, json.message.content, guard, options);
186
196
  }
187
197
  if (json.done && onUsage) {
188
198
  const inputTokens = Number(json.prompt_eval_count) || 0;
@@ -202,11 +212,14 @@ export async function streamOllama(
202
212
  }
203
213
  }
204
214
  } catch (e) {
205
- throw guard.stalled()
206
- ? new Error(
207
- `Ollama stream stalled (no data in ${STREAM_STALL_MS / 1000}s)`,
208
- )
209
- : e;
215
+ throw attachStreamRetryMetadata(
216
+ guard.stalled()
217
+ ? new Error(
218
+ `Ollama stream stalled (no data in ${STREAM_STALL_MS / 1000}s)`,
219
+ )
220
+ : e,
221
+ retryMetadata,
222
+ );
210
223
  } finally {
211
224
  guard.stop();
212
225
  }
@@ -263,9 +276,14 @@ export async function streamOpenAI(
263
276
 
264
277
  if (!response.ok) {
265
278
  guard.stop();
266
- throw new Error(`API error: ${response.status} ${response.statusText}`);
279
+ throw attachStreamRetryMetadata(
280
+ new Error(`API error: ${response.status} ${response.statusText}`),
281
+ captureStreamRetryMetadata(response),
282
+ );
267
283
  }
268
284
 
285
+ const retryMetadata = captureStreamRetryMetadata(response);
286
+
269
287
  const reader = response.body.getReader();
270
288
  const decoder = new TextDecoder();
271
289
  let fullResponse = "";
@@ -300,7 +318,7 @@ export async function streamOpenAI(
300
318
  const content = json.choices?.[0]?.delta?.content;
301
319
  if (content) {
302
320
  fullResponse += content;
303
- await _deliverToken(onToken, content, guard);
321
+ await _deliverToken(onToken, content, guard, options);
304
322
  }
305
323
  if (json.usage && onUsage) {
306
324
  // Split cached prompt tokens out of prompt_tokens so cc cost
@@ -325,9 +343,14 @@ export async function streamOpenAI(
325
343
  }
326
344
  }
327
345
  } catch (e) {
328
- throw guard.stalled()
329
- ? new Error(`API stream stalled (no data in ${STREAM_STALL_MS / 1000}s)`)
330
- : e;
346
+ throw attachStreamRetryMetadata(
347
+ guard.stalled()
348
+ ? new Error(
349
+ `API stream stalled (no data in ${STREAM_STALL_MS / 1000}s)`,
350
+ )
351
+ : e,
352
+ retryMetadata,
353
+ );
331
354
  } finally {
332
355
  guard.stop();
333
356
  }
@@ -398,11 +421,14 @@ export async function streamAnthropic(
398
421
 
399
422
  if (!response.ok) {
400
423
  guard.stop();
401
- throw new Error(
402
- `Anthropic error: ${response.status} ${response.statusText}`,
424
+ throw attachStreamRetryMetadata(
425
+ new Error(`Anthropic error: ${response.status} ${response.statusText}`),
426
+ captureStreamRetryMetadata(response),
403
427
  );
404
428
  }
405
429
 
430
+ const retryMetadata = captureStreamRetryMetadata(response);
431
+
406
432
  const reader = response.body.getReader();
407
433
  const decoder = new TextDecoder();
408
434
  let fullResponse = "";
@@ -435,7 +461,7 @@ export async function streamAnthropic(
435
461
  const delta = obj.delta?.text;
436
462
  if (delta) {
437
463
  fullResponse += delta;
438
- await _deliverToken(onToken, delta, guard);
464
+ await _deliverToken(onToken, delta, guard, options);
439
465
  }
440
466
  } else if (obj.type === "message_start") {
441
467
  const u = obj.message?.usage || {};
@@ -459,11 +485,14 @@ export async function streamAnthropic(
459
485
  }
460
486
  }
461
487
  } catch (e) {
462
- throw guard.stalled()
463
- ? new Error(
464
- `Anthropic stream stalled (no data in ${STREAM_STALL_MS / 1000}s)`,
465
- )
466
- : e;
488
+ throw attachStreamRetryMetadata(
489
+ guard.stalled()
490
+ ? new Error(
491
+ `Anthropic stream stalled (no data in ${STREAM_STALL_MS / 1000}s)`,
492
+ )
493
+ : e,
494
+ retryMetadata,
495
+ );
467
496
  } finally {
468
497
  guard.stop();
469
498
  }
@@ -607,6 +636,7 @@ export async function* chatStream(messages, options) {
607
636
  const maxRetries = resolveStreamRetryMax();
608
637
  let attempt = 0;
609
638
  for (;;) {
639
+ throwIfAborted(options.signal);
610
640
  try {
611
641
  return await providerCall();
612
642
  } catch (err) {
@@ -618,10 +648,14 @@ export async function* chatStream(messages, options) {
618
648
  if (
619
649
  attempt >= maxRetries ||
620
650
  tokensEmitted > 0 ||
621
- !isRetryableStreamError(err)
651
+ !isRetryableStreamError(err, options.signal)
622
652
  ) {
623
653
  throw err;
624
654
  }
655
+ const delayMs = resolveStreamRetryDelay(err, attempt + 1, {
656
+ baseDelayMs: STREAM_RETRY_BASE_MS,
657
+ });
658
+ if (delayMs === null) throw err;
625
659
  attempt++;
626
660
  if (typeof options.onStreamRetry === "function") {
627
661
  try {
@@ -630,9 +664,7 @@ export async function* chatStream(messages, options) {
630
664
  /* retry notice is best-effort */
631
665
  }
632
666
  }
633
- await new Promise((r) =>
634
- setTimeout(r, STREAM_RETRY_BASE_MS * 2 ** (attempt - 1)),
635
- );
667
+ await waitForStreamRetry(delayMs, options.signal);
636
668
  }
637
669
  }
638
670
  } finally {
@@ -0,0 +1,70 @@
1
+ function windowError(code, message) {
2
+ return Object.assign(new Error(`VERIFY-01 ${message}`), { code });
3
+ }
4
+
5
+ function timestamp(value) {
6
+ if (typeof value !== "string") return NaN;
7
+ // Frozen windows need an explicit timezone, valid calendar date, and at
8
+ // most millisecond precision. Date.parse alone normalizes February 30 and
9
+ // accepts local-time/numeric strings that are not suitable for admission.
10
+ const match =
11
+ /^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(?:\.(\d{1,3}))?(Z|[+-]\d{2}:\d{2})$/u.exec(
12
+ value,
13
+ );
14
+ if (!match) return NaN;
15
+ const localUtc = `${match[1]}.${(match[2] || "").padEnd(3, "0")}Z`;
16
+ const localTime = Date.parse(localUtc);
17
+ if (
18
+ !Number.isFinite(localTime) ||
19
+ new Date(localTime).toISOString() !== localUtc
20
+ )
21
+ return NaN;
22
+ return Date.parse(value);
23
+ }
24
+
25
+ /**
26
+ * Admission immediately before a formal task starts or launches its agent.
27
+ * This pure guard neither executes a task nor records an observation. It does
28
+ * not establish human approval, account funding, or a provider spend limit.
29
+ * Call with the full frozen task budget at task start; recheck with the
30
+ * remaining required time at dispatch if preparation can span a window edge.
31
+ */
32
+ export function assertVerify01ExecutionWindow(
33
+ plan,
34
+ { now = Date.now(), requiredTimeMs = 0 } = {},
35
+ ) {
36
+ const start = timestamp(plan?.window?.start);
37
+ const end = timestamp(plan?.window?.end);
38
+ if (
39
+ !Number.isFinite(start) ||
40
+ !Number.isFinite(end) ||
41
+ start >= end ||
42
+ !Number.isFinite(now) ||
43
+ !Number.isFinite(requiredTimeMs) ||
44
+ requiredTimeMs < 0
45
+ ) {
46
+ throw windowError(
47
+ "CC_VERIFY01_WINDOW_INVALID",
48
+ "execution window, current time, and required task duration must be valid",
49
+ );
50
+ }
51
+ if (now < start) {
52
+ throw windowError(
53
+ "CC_VERIFY01_WINDOW_NOT_STARTED",
54
+ "execution window has not started; no task may be launched",
55
+ );
56
+ }
57
+ if (now >= end) {
58
+ throw windowError(
59
+ "CC_VERIFY01_WINDOW_EXPIRED",
60
+ "execution window has expired; no task may be launched",
61
+ );
62
+ }
63
+ if (requiredTimeMs > end - now) {
64
+ throw windowError(
65
+ "CC_VERIFY01_WINDOW_INSUFFICIENT_TIME",
66
+ "execution window cannot fit the required task time budget",
67
+ );
68
+ }
69
+ return { startedAt: now, windowEndMs: end };
70
+ }
@@ -15,6 +15,7 @@ import { createHash } from "node:crypto";
15
15
  import executionBroker from "../process-execution-broker/index.js";
16
16
  import { evalDigest, createEvalComparison } from "./evidence.js";
17
17
  import { outcomeDigest } from "./outcomes.js";
18
+ import { assertVerify01ExecutionWindow } from "./verify01-execution-window.js";
18
19
  import {
19
20
  readBytes,
20
21
  readJson,
@@ -30,7 +31,8 @@ export const VERIFY01_SUITES = [
30
31
  const agentBindings = new WeakSet();
31
32
  const EMPTY_DELIVERABLE_DIGEST = evalDigest(Buffer.alloc(0));
32
33
 
33
- function createAgentBinding(directory, allowedPaths, provider, model) {
34
+ function createAgentBinding(directory, allowedPaths, provider, model, window) {
35
+ assertVerify01ExecutionWindow({ window });
34
36
  const workspace = canonicalDirectory(directory);
35
37
  for (const relative of allowedPaths) {
36
38
  const file = regularPath(workspace, relative);
@@ -72,6 +74,7 @@ function createAgentBinding(directory, allowedPaths, provider, model) {
72
74
  root,
73
75
  provider,
74
76
  model,
77
+ executionWindow: Object.freeze({ ...window }),
75
78
  allowedPaths: Object.freeze([...allowedPaths]),
76
79
  environment,
77
80
  });
@@ -86,6 +89,7 @@ export function captureVerify01AgentBinding(binding, directory) {
86
89
  agentBindings.has(binding),
87
90
  "unrecognized VERIFY01 agent binding",
88
91
  );
92
+ assertVerify01ExecutionWindow({ window: binding.executionWindow });
89
93
  requireValue(
90
94
  canonicalDirectory(directory) === binding.workspace,
91
95
  "VERIFY01 agent binding belongs to another workspace",
@@ -420,6 +424,9 @@ export function loadVerify01Suite(options = {}) {
420
424
  costBudgetUsd: sample.costBudget,
421
425
  expectedFiles: [...reviewed.allowedChangedPaths],
422
426
  async setup(directory, budget) {
427
+ receipt.windowAdmission = assertVerify01ExecutionWindow(bundle.plan, {
428
+ requiredTimeMs: sample.timeBudgetMs,
429
+ });
423
430
  receipt.workspace = directory;
424
431
  receipt.checkout = await materializeCheckout(
425
432
  projectRoot,
@@ -450,6 +457,7 @@ export function loadVerify01Suite(options = {}) {
450
457
  reviewed.allowedChangedPaths,
451
458
  options.provider,
452
459
  options.model,
460
+ bundle.plan.window,
453
461
  );
454
462
  receipt.agentBinding = {
455
463
  workspace: agentBinding.workspace,
@@ -3,6 +3,7 @@ import path from "node:path";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { evalDigest } from "./evidence.js";
5
5
  import { outcomeDigest } from "./outcomes.js";
6
+ import { assertVerify01ExecutionWindow } from "./verify01-execution-window.js";
6
7
  import {
7
8
  requireValue,
8
9
  relativeFile,
@@ -202,8 +203,11 @@ export async function prepareVerify01HostTask(bundle, preparation, options) {
202
203
  !fs.existsSync(workspace) && !fs.existsSync(root),
203
204
  "workspace and capture directory must be new; retry cannot overwrite an attempt",
204
205
  );
205
- const startedAt = new Date().toISOString(),
206
- deadline = Date.now() + sample.timeBudgetMs;
206
+ const windowAdmission = assertVerify01ExecutionWindow(bundle.plan, {
207
+ requiredTimeMs: sample.timeBudgetMs,
208
+ });
209
+ const startedAt = new Date(windowAdmission.startedAt).toISOString(),
210
+ deadline = windowAdmission.startedAt + sample.timeBudgetMs;
207
211
  fs.mkdirSync(workspace, { recursive: true, mode: 0o700 });
208
212
  fs.mkdirSync(root, { recursive: true, mode: 0o700 });
209
213
  const stageBudget = budget(deadline);
@@ -3,6 +3,11 @@
3
3
  * Keep structured provider diagnostics while redacting credential-shaped text.
4
4
  */
5
5
 
6
+ import {
7
+ attachStreamRetryMetadata,
8
+ captureStreamRetryMetadata,
9
+ } from "./stream-retry.js";
10
+
6
11
  function safePart(value, secrets = []) {
7
12
  if (value == null) return "";
8
13
  let text = String(value);
@@ -111,3 +116,14 @@ export async function formatProviderResponseError(
111
116
  secrets,
112
117
  });
113
118
  }
119
+
120
+ /** Keep response status authoritative even if reading its error body fails. */
121
+ export async function createProviderResponseError(provider, response, options) {
122
+ const metadata = captureStreamRetryMetadata(response);
123
+ let message = await formatProviderResponseError(provider, response, options);
124
+ const remaining = metadata.retryAfterAt - Date.now();
125
+ if (Number.isFinite(remaining) && remaining > 0) {
126
+ message += ` Retry-After: wait at least ${Math.ceil(remaining / 1000)}s before an explicit retry.`;
127
+ }
128
+ return attachStreamRetryMetadata(new Error(message), metadata);
129
+ }