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.
- package/README.md +7 -8
- package/package.json +1 -1
- package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
- package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-BUgaCgVU.js → AIOps-Cd4iUOPt.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-b0MpUSSZ.js → ActionButton--ucr-zko.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-hbXTvHqO.js → Analytics-DbejYMWk.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-CLQoAVu4.js → AppLayout-CLgKxeGw.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-ytHzl2L2.js → Artifacts-CTT5BIL5.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-BuhkLm0C.js → Audit-DP-WBWe9.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-CS81hxZV.js → BackgroundAgents-B6VqheJk.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-DzR-_Qvi.js → Backup-VWJK5zim.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-r8Ku_lYw.js → BaseInput-YGFO9RHd.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-C3Uxtoaa.js → Chat-CVfydnCd.js} +5 -5
- package/src/assets/web-panel/assets/ChatBubbleRenderer-BICpB-qU.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-BnG2P5yc.js → Checkbox-Bd5vKRMk.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BdgU6HZy.js → Codegen-DHNgPHvg.js} +1 -1
- package/src/assets/web-panel/assets/{Col-DT8t9wmf.js → Col-CA2BYQ8T.js} +1 -1
- package/src/assets/web-panel/assets/{Community-ChkxR5oe.js → Community-DnKJ-qpI.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DIwLeTk3.js → Compact-C9BZ8t4r.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-CAqzGLvW.js → Compliance-ByyQ2FOl.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-Bb3jejMG.js → Cowork-rXTwXE_c.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-BYRkZLta.js → Cron-BuW-HODy.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-BD6z227t.js → Crosschain-OudNtbYW.js} +1 -1
- package/src/assets/web-panel/assets/{DID-DA3G5Wgo.js → DID-BQ6BxYNN.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-yaZePHOu.js → Dashboard-Cz5HG8tz.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BqY5MBx2.js → Dropdown-BzclHOVv.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-cIWwOgHm.js → EmailListRenderer-CbJETFdy.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-zvV6ymca.js → EvolutionSettings-Dx_pJG3d.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-CAmh1U2b.js → FamilyGuardDashboard-6JCS1MNg.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-5qd2LCg8.js → Federation-BrPkMYaf.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-Bdkj1sRJ.js → FormItemContext-Bhc9pobs.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-B-gWN2P3.js → GenericCardRenderer-BxOh07uQ.js} +1 -1
- package/src/assets/web-panel/assets/{Git-BEMh_NGd.js → Git-D_idoujr.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-qLGvA2Hw.js → Governance-ZGfIRE-x.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-DblBwYuW.js → Inference-DpAmcwbw.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-BISegVD_.js → KnowledgeGraph-D1S1UTgP.js} +1 -1
- package/src/assets/web-panel/assets/Logs-2sc8V5XV.js +2 -0
- package/src/assets/web-panel/assets/MarkdownRenderer-575jjYE6.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-CHKXMOkH.js → Marketplace-0xlFUKbe.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-B5G1elqd.js → McpTools-D25eJLGm.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-O5Ib0uTR.js → Memory-BLRGd9hM.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-BaGYL7rT.js → MobileBridge-zpFINGzn.js} +1 -1
- package/src/assets/web-panel/assets/MobileProjects-Cbyd-8kx.js +1 -0
- package/src/assets/web-panel/assets/{Mtc-CNjJ97jg.js → Mtc-DgXgUlHc.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-DjBN-Wqz.js → MtcAudit-DzcL-dKH.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-B850R9lO.js → Multisig-C3OrZ6VN.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-Bn8sbFfV.js → NLProgramming-Bqp_vWA7.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BpLmMp3Q.js → Notes-Dyn45-Ht.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-Dbk97rjb.js → NotificationSettings-CLjafGZr.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-BOBX_I72.js → OrderTableRenderer-Bx8wMauC.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-B45DpOuE.js → Organization-5gr9hyLm.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-DmKH7eer.js → Overflow-BRdU02hT.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-CC4FaXTl.js → P2P-DIi7fzh6.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-C2SgP4PI.js → PdhVaultBrowser-BCbS1KpA.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-BQB4QFj_.js → Permissions-BjeP9VtA.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-Dy6GGpn4.js → PersonalDataHub-y8PXOQUc.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-B9HB5pRc.js → Pipeline-B0fL5uxY.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-D7pOmg-p.js → Privacy-C8jCDn8Z.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-DglBqvec.js → ProjectInit-B_L6Dc6V.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-Bho22znM.js → ProjectSettings-Bb1CYbZh.js} +2 -2
- package/src/assets/web-panel/assets/Projects-CUSV10Cn.js +1 -0
- package/src/assets/web-panel/assets/{Providers-BgAgo1Yr.js → Providers-mBSTDJ0E.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-C2fBjCC8.js → QrScannerModal-CHxgalvt.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-C8MiF-rk.js → QuickAsk-DI9KIMEV.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-D_TzHdQf.js → Recommend-B5_zW1JH.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-BHO7b6xE.js → RemoteSession-BkH4bmM5.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-BPxNmNhD.js → Reputation-DJrAqwAq.js} +1 -1
- package/src/assets/web-panel/assets/{Row-fwhot5Bk.js → Row-xZ3MAM34.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CZbD1B-5.js → RssFeed-CCsrLLiu.js} +3 -3
- package/src/assets/web-panel/assets/{Search-BRs6YpAE.js → Search-CTCRKvaP.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CB344tKC.js → Security-D7joyfp2.js} +4 -4
- package/src/assets/web-panel/assets/{Services-Beo-7fEl.js → Services-oqHPmTG4.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CDXx96vD.js → Skeleton-BR_32bTG.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-b-mQTJK4.js → Skills-BoRz9mln.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-BvjP-IS9.js → Sla-UAGUHZ9b.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-C6wsV-cO.js → SpeechSettings-DeP_rMgv.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BQZoko-e.js → SyncSettings-CSzzMmeA.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-6Z0rJJVO.js → Tasks-CcqOLsLB.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-Cc9IXtEQ.js → Templates-cDbkGSDG.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BLc7AjOI.js → Tenant-DmOy58cq.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-CUN49v85.js → Terminal-CsRZH5vr.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-CX-SksHN.js → TimelineRenderer-BgJrk6HG.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-Btrm0-rK.js → Tokens-CCQglKDE.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-CIboUvKe.js → Trigger-t-Gt3oBY.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-Rv9jEs5v.js → Trust-DQgu2kI0.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-B_xomdD5.js → UkeySign-Cod2WUGj.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-CrvWeMow.js → VideoEditing-SGN5zaVK.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-BjvWgk_7.js → Wallet-CnLEL-LD.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-CwfpFw92.js → WebAuthn-C2keUpD6.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-Dkk2QsOe.js → WorkflowEditor-B1GvrwWJ.js} +1 -1
- package/src/assets/web-panel/assets/{chat-Dah1DVes.js → chat-1E9_P_qY.js} +1 -1
- package/src/assets/web-panel/assets/{colors-JEpgQ10k.js → colors-DuU6Os4q.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item--DuG_cxf.js → compact-item-C5NfOAcM.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-BJ_GZvon.js → createContext-D4Fxz9qQ.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-zDWbYMr7.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-yZRLDmWK.js → hasIn-C6C49iFk.js} +1 -1
- package/src/assets/web-panel/assets/{index-rkvSOceQ.js → index-AO6iDCSL.js} +1 -1
- package/src/assets/web-panel/assets/{index-DemMuw7n.js → index-B-bb-R99.js} +1 -1
- package/src/assets/web-panel/assets/{index-CjuD8smQ.js → index-B5lzRoHp.js} +1 -1
- package/src/assets/web-panel/assets/{index-DxnkldGo.js → index-BBVqlelF.js} +1 -1
- package/src/assets/web-panel/assets/index-BPBsZZnT.js +1 -0
- package/src/assets/web-panel/assets/{index-C56b8e9s.js → index-BU5mPkNX.js} +1 -1
- package/src/assets/web-panel/assets/{index-DddwZCT9.js → index-BULggEX6.js} +1 -1
- package/src/assets/web-panel/assets/{index-1QZASeW1.js → index-BVE2wCeb.js} +1 -1
- package/src/assets/web-panel/assets/{index-kZE-K3ZO.js → index-BYg1dtne.js} +1 -1
- package/src/assets/web-panel/assets/{index-DFJbJ8rs.js → index-BZKRZYTX.js} +1 -1
- package/src/assets/web-panel/assets/{index-BM7xJKGD.js → index-B_ON9La1.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6Le2m3d.js → index-Bk-paNL3.js} +1 -1
- package/src/assets/web-panel/assets/{index-o2qO_dYf.js → index-BlHkc48f.js} +1 -1
- package/src/assets/web-panel/assets/{index-9L3Pg2tc.js → index-BmvU4Tp_.js} +1 -1
- package/src/assets/web-panel/assets/{index-BKl40wrO.js → index-BsH8mFp4.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dq-8PFhL.js → index-Bu6qMjf4.js} +1 -1
- package/src/assets/web-panel/assets/{index-VIgVth92.js → index-C2nO02uW.js} +1 -1
- package/src/assets/web-panel/assets/{index-DZBesaCN.js → index-C7mh6xlu.js} +1 -1
- package/src/assets/web-panel/assets/{index-CJLz3SpM.js → index-CDVwN9Sv.js} +1 -1
- package/src/assets/web-panel/assets/{index-DaDLWIWo.js → index-CJS6GTpv.js} +1 -1
- package/src/assets/web-panel/assets/{index-C8nXkCMf.js → index-CQJoh5rw.js} +1 -1
- package/src/assets/web-panel/assets/{index-asia_JPc.js → index-CXb8gEWh.js} +1 -1
- package/src/assets/web-panel/assets/{index-IjOa5lYn.js → index-CXn-e3ki.js} +1 -1
- package/src/assets/web-panel/assets/{index-CFj7ylAJ.js → index-CpiOzt7U.js} +1 -1
- package/src/assets/web-panel/assets/index-CtGQDg7m.js +1 -0
- package/src/assets/web-panel/assets/{index-C6ohEAEV.js → index-D1TXgNPA.js} +1 -1
- package/src/assets/web-panel/assets/{index-vdTrEOj7.js → index-DFK6PTGJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DQ4Fch3e.js → index-DP2DCKD-.js} +1 -1
- package/src/assets/web-panel/assets/{index-L9CFyRIi.js → index-DPzunJER.js} +1 -1
- package/src/assets/web-panel/assets/{index-cHx5KzUt.js → index-DSypQU1h.js} +1 -1
- package/src/assets/web-panel/assets/{index-DbMGGcpZ.js → index-DZgT7pH-.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cmr0AzcK.js → index-Dh-vezHe.js} +1 -1
- package/src/assets/web-panel/assets/{index-BWkKE8Oj.js → index-DpaGe-dr.js} +3 -3
- package/src/assets/web-panel/assets/{index-DhX48E81.js → index-HQXFl8fh.js} +1 -1
- package/src/assets/web-panel/assets/{index-BUjyj7qR.js → index-bW6vfpLH.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bdg_nWD1.js → index-cnDfwWU5.js} +1 -1
- package/src/assets/web-panel/assets/{index-CxB49Mow.js → index-gh11zJ9h.js} +1 -1
- package/src/assets/web-panel/assets/{index-DroaQypF.js → index-jFg3CPlQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-CQedFuDw.js → index-lNmDaf3J.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-anKyyjGc.js → initDefaultProps-3DSfnIpD.js} +1 -1
- package/src/assets/web-panel/assets/{motion-Cqp0nx5A.js → motion-DxGLmgA0.js} +1 -1
- package/src/assets/web-panel/assets/{move-Ca3mgkM2.js → move-DrlLG6m5.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-BmwuhJ3z.js → mtc-parser-BITbrJSb.js} +1 -1
- package/src/assets/web-panel/assets/{omit-C9Mf05WJ.js → omit-D7k5vIbk.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-2PbxB9Ds.js → pickAttrs-BJSvYFWo.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CTVbOFHt.js → placementArrow-Bf4to1jA.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-Nrm8Vbmr.js → responsiveObserve-BXzeyzTa.js} +1 -1
- package/src/assets/web-panel/assets/{slide-Dh4r1zqR.js → slide-DLzNUNdj.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-vzNoQL-r.js → statusUtils-wBBnrRm_.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-BXpGfNkI.js → styleChecker-BnmJzXNr.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-CVWBRdhs.js → useFlexGapSupport-DrN8MrJb.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-BJWMLffI.js → useFs-dnkYGkjY.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-CWCe5VHG.js → usePersonalDataHub-k_xkv7-k.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-D-NBEb8m.js → vnode-B-v8PXpK.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-C0mnhfGf.js → zoom-Coue8wAK.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/data/changelog.json +13 -0
- package/src/harness/worktree-isolator.js +20 -8
- package/src/lib/chat-core.js +57 -25
- package/src/lib/eval/verify01-execution-window.js +70 -0
- package/src/lib/eval/verify01-execution.js +9 -1
- package/src/lib/eval/verify01-host-capture.js +6 -2
- package/src/lib/provider-http-error.js +16 -0
- package/src/lib/stream-retry.js +195 -1
- package/src/runtime/agent-core.js +97 -20
- package/src/assets/web-panel/assets/ChatBubbleRenderer-RvblDu77.js +0 -1
- package/src/assets/web-panel/assets/Logs-BD2UR7kE.js +0 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-B-TlDCmr.js +0 -1
- package/src/assets/web-panel/assets/MobileProjects-Dsctbob8.js +0 -1
- package/src/assets/web-panel/assets/Projects-C0bSuM8U.js +0 -1
- package/src/assets/web-panel/assets/devWarning-B6kQEceX.js +0 -1
- package/src/assets/web-panel/assets/index-CSeiH6HA.js +0 -1
- package/src/assets/web-panel/assets/index-CayGTz6d.js +0 -1
package/src/assets/web-panel/assets/{placementArrow-CTVbOFHt.js → placementArrow-Bf4to1jA.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
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};
|
package/src/assets/web-panel/assets/{responsiveObserve-Nrm8Vbmr.js → responsiveObserve-BXzeyzTa.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{J as o,h}from"./index-
|
|
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-
|
|
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-
|
|
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-
|
|
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};
|
package/src/assets/web-panel/assets/{useFlexGapSupport-CVWBRdhs.js → useFlexGapSupport-DrN8MrJb.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o,s as t}from"./vendor-Bn1JzzAn.js";import{d as s}from"./styleChecker-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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">
|
package/src/data/changelog.json
CHANGED
|
@@ -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
|
-
|
|
176
|
-
|
|
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,
|
package/src/lib/chat-core.js
CHANGED
|
@@ -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
|
|
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
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
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
|
|
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
|
|
329
|
-
|
|
330
|
-
|
|
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
|
|
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
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
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
|
|
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
|
|
206
|
-
|
|
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
|
+
}
|