chainlesschain 0.166.99 → 0.166.101
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 +2 -2
- 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-BjBS_29I.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-b0MpUSSZ.js → ActionButton-CUnnQUaj.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-hbXTvHqO.js → Analytics-BqYZxgnY.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-CLQoAVu4.js → AppLayout-m8B886ka.js} +4 -4
- package/src/assets/web-panel/assets/{Artifacts-ytHzl2L2.js → Artifacts-JEOxU3Ug.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-BuhkLm0C.js → Audit-DAXS5c9J.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-CS81hxZV.js → BackgroundAgents-e3a9XHw3.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-DzR-_Qvi.js → Backup-D3Qmp68h.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-r8Ku_lYw.js → BaseInput-C7CXyiUl.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-C3Uxtoaa.js → Chat-2AHlAGi8.js} +6 -6
- package/src/assets/web-panel/assets/ChatBubbleRenderer-D3KsyCUV.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-BnG2P5yc.js → Checkbox-YfBuQlBH.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BdgU6HZy.js → Codegen-DCCQDfTL.js} +1 -1
- package/src/assets/web-panel/assets/{Col-DT8t9wmf.js → Col-03i2WfrV.js} +1 -1
- package/src/assets/web-panel/assets/{Community-ChkxR5oe.js → Community-CJQIpng6.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DIwLeTk3.js → Compact-CCtcQ2pq.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-CAqzGLvW.js → Compliance-Vxl7ZszJ.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-Bb3jejMG.js → Cowork-DN-BwA8I.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-BYRkZLta.js → Cron-Dc2Q46X7.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-BD6z227t.js → Crosschain-CQCblsl-.js} +1 -1
- package/src/assets/web-panel/assets/{DID-DA3G5Wgo.js → DID-YYvqUR8C.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-yaZePHOu.js → Dashboard-Cafy3DZT.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BqY5MBx2.js → Dropdown-BOyYpIpv.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-cIWwOgHm.js → EmailListRenderer-B7NYjc1j.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-zvV6ymca.js → EvolutionSettings-C5wfxztf.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-CAmh1U2b.js → FamilyGuardDashboard-aA7KnDGK.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-5qd2LCg8.js → Federation-DlgXUu1L.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-Bdkj1sRJ.js → FormItemContext-B5YsrLDg.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-B-gWN2P3.js → GenericCardRenderer-DaWojPFw.js} +1 -1
- package/src/assets/web-panel/assets/{Git-BEMh_NGd.js → Git-dkhh6Fx2.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-qLGvA2Hw.js → Governance-Cz6vmkjc.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-DblBwYuW.js → Inference-DWt0hbh8.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-BISegVD_.js → KnowledgeGraph-BZJ0Z-nL.js} +1 -1
- package/src/assets/web-panel/assets/Logs-BaBBmL1A.js +2 -0
- package/src/assets/web-panel/assets/MarkdownRenderer-C1yByobo.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-CHKXMOkH.js → Marketplace-ct8sgQ0s.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-B5G1elqd.js → McpTools-CXKCRGYQ.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-O5Ib0uTR.js → Memory-O7ZwlS6a.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-BaGYL7rT.js → MobileBridge-By12C-eC.js} +1 -1
- package/src/assets/web-panel/assets/MobileProjects-Ba-EVdex.js +1 -0
- package/src/assets/web-panel/assets/{Mtc-CNjJ97jg.js → Mtc-g-932zV2.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-DjBN-Wqz.js → MtcAudit-BW8hB0ly.js} +4 -4
- package/src/assets/web-panel/assets/{Multisig-B850R9lO.js → Multisig-zspLaMbT.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-Bn8sbFfV.js → NLProgramming-dJeUPDoq.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BpLmMp3Q.js → Notes-C4msiRQL.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-Dbk97rjb.js → NotificationSettings-MOCHM-qg.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-BOBX_I72.js → OrderTableRenderer-CX0T66NM.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-B45DpOuE.js → Organization-DOZurBfk.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-DmKH7eer.js → Overflow-qOT9BhUp.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-CC4FaXTl.js → P2P-BMoy7Eo4.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-C2SgP4PI.js → PdhVaultBrowser-ByyV1q-D.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-BQB4QFj_.js → Permissions-6Qyro4ye.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-Dy6GGpn4.js → PersonalDataHub-DR3DRNSX.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-B9HB5pRc.js → Pipeline-Cr6TTdud.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-D7pOmg-p.js → Privacy-B70otG0l.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-DglBqvec.js → ProjectInit-BHCqxoSk.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-Bho22znM.js → ProjectSettings-B80GZpZk.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-C0bSuM8U.js → Projects-cq-b9-fQ.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BgAgo1Yr.js → Providers-dsVTimHa.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-C2fBjCC8.js → QrScannerModal-DRJ8YepZ.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-C8MiF-rk.js → QuickAsk-BSXdEjIB.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-D_TzHdQf.js → Recommend-CQLJGyKC.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-BHO7b6xE.js → RemoteSession-BF9WUFVZ.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-BPxNmNhD.js → Reputation-Cy9o5tvW.js} +1 -1
- package/src/assets/web-panel/assets/{Row-fwhot5Bk.js → Row-BP346_3b.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CZbD1B-5.js → RssFeed-BKulxXf3.js} +3 -3
- package/src/assets/web-panel/assets/{Search-BRs6YpAE.js → Search-EemQj2Dv.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CB344tKC.js → Security-DcWPAwwk.js} +4 -4
- package/src/assets/web-panel/assets/{Services-Beo-7fEl.js → Services-Bltqciay.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CDXx96vD.js → Skeleton-BwRyOGY8.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-b-mQTJK4.js → Skills-D98qlvpJ.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-BvjP-IS9.js → Sla-BUTtBMY0.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-C6wsV-cO.js → SpeechSettings-C7kcY_98.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BQZoko-e.js → SyncSettings-Bsk6lKvT.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-6Z0rJJVO.js → Tasks-DvSrtz0P.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-Cc9IXtEQ.js → Templates-BUM6LwPs.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BLc7AjOI.js → Tenant-D9TkOm7z.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-CUN49v85.js → Terminal-CP8ZVErN.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-CX-SksHN.js → TimelineRenderer-V3SoKZ1T.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-Btrm0-rK.js → Tokens-CCRlUTOA.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-CIboUvKe.js → Trigger-CznUcPme.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-Rv9jEs5v.js → Trust-D1GIk_NF.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-B_xomdD5.js → UkeySign-DHtvtyC-.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-CrvWeMow.js → VideoEditing-CVxdaJIq.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-BjvWgk_7.js → Wallet-D221OjyE.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-CwfpFw92.js → WebAuthn-Cw0-ESsq.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-Dkk2QsOe.js → WorkflowEditor-ZYScrBx3.js} +1 -1
- package/src/assets/web-panel/assets/{chat-Dah1DVes.js → chat-BU0e1obR.js} +1 -1
- package/src/assets/web-panel/assets/{colors-JEpgQ10k.js → colors-gzYweuha.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item--DuG_cxf.js → compact-item-ChAXal_k.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-BJ_GZvon.js → createContext-of3FolD7.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-Pa13TVrO.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-yZRLDmWK.js → hasIn-4PsK_Kx8.js} +1 -1
- package/src/assets/web-panel/assets/{index-DQ4Fch3e.js → index-1dzYRBbg.js} +1 -1
- package/src/assets/web-panel/assets/{index-L9CFyRIi.js → index-B5L7zddz.js} +1 -1
- package/src/assets/web-panel/assets/{index-DxnkldGo.js → index-BOeX7BzS.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6Le2m3d.js → index-BdxRVNPY.js} +1 -1
- package/src/assets/web-panel/assets/{index-DaDLWIWo.js → index-BfI4dXbi.js} +1 -1
- package/src/assets/web-panel/assets/{index-o2qO_dYf.js → index-Bftq5rJR.js} +1 -1
- package/src/assets/web-panel/assets/index-BhQg-v6V.js +1 -0
- package/src/assets/web-panel/assets/{index-DhX48E81.js → index-By-pper5.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bdg_nWD1.js → index-CCLsbul3.js} +1 -1
- package/src/assets/web-panel/assets/{index-cHx5KzUt.js → index-CGFL59q4.js} +1 -1
- package/src/assets/web-panel/assets/{index-DemMuw7n.js → index-CHv_63Cp.js} +1 -1
- package/src/assets/web-panel/assets/{index-DZBesaCN.js → index-CO2owKe0.js} +1 -1
- package/src/assets/web-panel/assets/{index-CxB49Mow.js → index-CeEE_SGZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-BKl40wrO.js → index-Cn1clrxx.js} +1 -1
- package/src/assets/web-panel/assets/{index-VIgVth92.js → index-Cx4Z6nUl.js} +1 -1
- package/src/assets/web-panel/assets/{index-kZE-K3ZO.js → index-CxzBcXOa.js} +1 -1
- package/src/assets/web-panel/assets/{index-rkvSOceQ.js → index-CyDQNprx.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cmr0AzcK.js → index-D-Zss5KL.js} +1 -1
- package/src/assets/web-panel/assets/{index-DddwZCT9.js → index-D1PGrfHE.js} +1 -1
- package/src/assets/web-panel/assets/{index-BUjyj7qR.js → index-DDYj14Q4.js} +1 -1
- package/src/assets/web-panel/assets/{index-CjuD8smQ.js → index-DEB5fQqG.js} +1 -1
- package/src/assets/web-panel/assets/{index-asia_JPc.js → index-DEXBckNR.js} +1 -1
- package/src/assets/web-panel/assets/{index-DFJbJ8rs.js → index-DEzjUgkl.js} +1 -1
- package/src/assets/web-panel/assets/{index-CFj7ylAJ.js → index-DJVrzXtk.js} +1 -1
- package/src/assets/web-panel/assets/index-DUD5o-vW.js +1 -0
- package/src/assets/web-panel/assets/{index-DroaQypF.js → index-DZ0oKtBg.js} +1 -1
- package/src/assets/web-panel/assets/{index-DbMGGcpZ.js → index-D_5LTPMH.js} +1 -1
- package/src/assets/web-panel/assets/{index-IjOa5lYn.js → index-D_9k680X.js} +1 -1
- package/src/assets/web-panel/assets/{index-vdTrEOj7.js → index-D_ialOHx.js} +1 -1
- package/src/assets/web-panel/assets/{index-9L3Pg2tc.js → index-DjRAIRX7.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dq-8PFhL.js → index-Djfgsjfy.js} +1 -1
- package/src/assets/web-panel/assets/{index-CJLz3SpM.js → index-DsoV9rzn.js} +1 -1
- package/src/assets/web-panel/assets/{index-BWkKE8Oj.js → index-Dy0ojH6G.js} +3 -3
- package/src/assets/web-panel/assets/{index-C8nXkCMf.js → index-E8oDMSAo.js} +1 -1
- package/src/assets/web-panel/assets/{index-C56b8e9s.js → index-Ef5YkVAn.js} +1 -1
- package/src/assets/web-panel/assets/{index-C6ohEAEV.js → index-Wr91cnWr.js} +1 -1
- package/src/assets/web-panel/assets/{index-1QZASeW1.js → index-cFkMIx1x.js} +1 -1
- package/src/assets/web-panel/assets/{index-BM7xJKGD.js → index-wo0De0iG.js} +1 -1
- package/src/assets/web-panel/assets/{index-CQedFuDw.js → index-yMf7zmWv.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-anKyyjGc.js → initDefaultProps-D0Bx6pgr.js} +1 -1
- package/src/assets/web-panel/assets/{motion-Cqp0nx5A.js → motion-BnLuJqJ5.js} +1 -1
- package/src/assets/web-panel/assets/{move-Ca3mgkM2.js → move-Bxpq9xgR.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-BmwuhJ3z.js → mtc-parser-BdmrNhOs.js} +1 -1
- package/src/assets/web-panel/assets/{omit-C9Mf05WJ.js → omit-tjJD34BZ.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-2PbxB9Ds.js → pickAttrs-CMFzLt7b.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CTVbOFHt.js → placementArrow-BZf6O3cd.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-Nrm8Vbmr.js → responsiveObserve-DFDLazsV.js} +1 -1
- package/src/assets/web-panel/assets/{slide-Dh4r1zqR.js → slide-CMbTvp4Y.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-vzNoQL-r.js → statusUtils-FOan8MI7.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-BXpGfNkI.js → styleChecker-DTABspd4.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-CVWBRdhs.js → useFlexGapSupport-CNHXWBpY.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-BJWMLffI.js → useFs-5K-c_RoL.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-CWCe5VHG.js → usePersonalDataHub-Di0hL4G-.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-D-NBEb8m.js → vnode-DTyDv4ja.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-C0mnhfGf.js → zoom-ontRt8ft.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/eval.js +11 -8
- package/src/data/changelog.json +26 -0
- package/src/harness/provider-backed-compaction.js +13 -5
- package/src/harness/worktree-isolator.js +20 -8
- package/src/lib/chat-core.js +57 -25
- package/src/lib/context-memory-kernel/live-compaction.js +142 -61
- 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/formal-budget-authority.js +533 -0
- package/src/lib/formal-budget-contract.js +609 -0
- package/src/lib/formal-budget-transport.js +345 -0
- package/src/lib/provider-http-error.js +16 -0
- package/src/lib/stream-retry.js +195 -1
- package/src/runtime/agent-core.js +272 -32
- package/src/runtime/headless-stream.js +136 -4
- 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/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
|
@@ -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-Dy0ojH6G.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-Dy0ojH6G.js";import{i as f}from"./motion-BnLuJqJ5.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-Dy0ojH6G.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/commands/eval.js
CHANGED
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
persistVerify01Receipts,
|
|
21
21
|
} from "../lib/eval/verify01-execution.js";
|
|
22
22
|
import executionBroker from "../lib/process-execution-broker/index.js";
|
|
23
|
-
import {
|
|
23
|
+
import { requireFormalBudgetRuntime } from "../lib/formal-budget-transport.js";
|
|
24
24
|
import {
|
|
25
25
|
TelemetryRecorder,
|
|
26
26
|
formatTelemetry,
|
|
@@ -117,6 +117,9 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
117
117
|
throw new Error(
|
|
118
118
|
"VERIFY01 provider/model binding differs from the launcher",
|
|
119
119
|
);
|
|
120
|
+
// A valid task binding is not paid execution admission. Until every paid
|
|
121
|
+
// route and credential boundary is covered, refuse before spawning a child.
|
|
122
|
+
if (binding) requireFormalBudgetRuntime();
|
|
120
123
|
const inherited = { ...process.env, ...(opts.env || {}) };
|
|
121
124
|
const environmentValue = (name) => {
|
|
122
125
|
if (process.platform !== "win32") return inherited[name];
|
|
@@ -127,11 +130,10 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
127
130
|
.find((candidate) => candidate.toLowerCase() === name.toLowerCase());
|
|
128
131
|
return key === undefined ? undefined : inherited[key];
|
|
129
132
|
};
|
|
130
|
-
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
//
|
|
134
|
-
// excluded. Normal, non-formal Eval retains its existing environment.
|
|
133
|
+
// Formal children retain platform plumbing and the isolated task binding.
|
|
134
|
+
// Provider credentials belong to the trusted budget host. Hooks, fallback
|
|
135
|
+
// configuration, NODE_OPTIONS and account tokens are excluded. This alone
|
|
136
|
+
// does not enforce OS egress; paid launch remains refused above.
|
|
135
137
|
const childEnvironment = binding
|
|
136
138
|
? {
|
|
137
139
|
...Object.fromEntries(
|
|
@@ -147,8 +149,6 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
147
149
|
"LANG",
|
|
148
150
|
"LC_ALL",
|
|
149
151
|
"LC_CTYPE",
|
|
150
|
-
"CC_API_KEY",
|
|
151
|
-
...(providerKey ? [providerKey] : []),
|
|
152
152
|
]
|
|
153
153
|
.map((key) => [key, environmentValue(key)])
|
|
154
154
|
.filter(([, value]) => value !== undefined),
|
|
@@ -462,6 +462,9 @@ export function registerEvalCommand(program, { logger } = {}) {
|
|
|
462
462
|
throw new Error(
|
|
463
463
|
"frozen suite comparison is bound by its plan; --comparison-context cannot override it",
|
|
464
464
|
);
|
|
465
|
+
// Refuse before task setup, workspace creation or raw receipt writes.
|
|
466
|
+
// Dry runs remain offline harness diagnostics, never observations.
|
|
467
|
+
if (tasks.verification && !options.dryRun) requireFormalBudgetRuntime();
|
|
465
468
|
comparison =
|
|
466
469
|
tasks.verification?.comparison ||
|
|
467
470
|
createEvalComparison({
|
package/src/data/changelog.json
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"source": "CHANGELOG.md",
|
|
3
3
|
"releases": [
|
|
4
|
+
{
|
|
5
|
+
"productVersion": null,
|
|
6
|
+
"cliVersion": "0.166.101",
|
|
7
|
+
"cliVersions": ["0.166.101"],
|
|
8
|
+
"date": null,
|
|
9
|
+
"title": "",
|
|
10
|
+
"sections": [
|
|
11
|
+
{
|
|
12
|
+
"heading": "Fixed - cc CLI 0.166.101: preserve context, usage and task outcomes during compaction",
|
|
13
|
+
"body": "- Restore VS Code composer drafts after reset, session resume and closing the\n last tab, with retry controls for failed loads. Align LLM connection tests\n with the chat CLI and distinguish missing dependencies from provider errors.\n- Upgrade Context Memory Kernel to 0.1.10. Abort compaction with\n `context_over_budget` when planning would empty a nonempty context or discard\n a newly derived summary, including when summarizer fallback is enabled.\n- Preserve the original session context and head on rejection while retaining\n settled provider usage. Keep summary trust and selection budgets unchanged.\n- Propagate validated provider receipts before accounting. Mark rejected\n workflow compaction as failed, uncertain commits as requiring reconciliation,\n and interrupted ordinary tasks as incomplete.\n- Account for completed compaction usage once when canonical planning rejects\n its summary; stop on unknown usage or failed settlement without a paid retry.\n- Pair VS Code 0.37.145 and JetBrains 0.4.163 with CLI 0.166.101 after child\n package publication, public CLI verification and the final commit's complete\n Actions release gates. Formal evaluation and native/durable acceptance retain\n their separate evidence and unfinished status."
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"productVersion": null,
|
|
19
|
+
"cliVersion": "0.166.100",
|
|
20
|
+
"cliVersions": ["0.166.100"],
|
|
21
|
+
"date": null,
|
|
22
|
+
"title": "",
|
|
23
|
+
"sections": [
|
|
24
|
+
{
|
|
25
|
+
"heading": "Fixed - cc CLI 0.166.100: bound stream retries and revalidate evaluation evidence",
|
|
26
|
+
"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."
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
4
30
|
{
|
|
5
31
|
"productVersion": null,
|
|
6
32
|
"cliVersion": "0.166.99",
|
|
@@ -151,10 +151,16 @@ export async function compactConversationWithProvider(messages, options = {}) {
|
|
|
151
151
|
}
|
|
152
152
|
chatFn = chatWithTools;
|
|
153
153
|
}
|
|
154
|
-
const invokeProviderCall = async (call) => {
|
|
155
|
-
|
|
154
|
+
const invokeProviderCall = async (call, deferUntilAdmission = false) => {
|
|
155
|
+
let callId = null;
|
|
156
|
+
const start = async () => {
|
|
157
|
+
callId = safeUsageCallId(await options.onProviderCallStart?.());
|
|
158
|
+
};
|
|
159
|
+
// Only the captured canonical transport can attest that request admission
|
|
160
|
+
// completed. Custom adapters keep the conservative pre-call boundary.
|
|
161
|
+
if (!deferUntilAdmission) await start();
|
|
156
162
|
try {
|
|
157
|
-
return attachProviderCallId(await call(), callId);
|
|
163
|
+
return attachProviderCallId(await call(start), callId);
|
|
158
164
|
} catch (error) {
|
|
159
165
|
attachProviderCallIdToError(error, callId);
|
|
160
166
|
throw error;
|
|
@@ -167,7 +173,7 @@ export async function compactConversationWithProvider(messages, options = {}) {
|
|
|
167
173
|
if (typeof chatFn !== "function") {
|
|
168
174
|
throw new Error("provider adapter unavailable");
|
|
169
175
|
}
|
|
170
|
-
return invokeProviderCall(async () => {
|
|
176
|
+
return invokeProviderCall(async (start) => {
|
|
171
177
|
const response = await chatFn([{ role: "user", content: prompt }], {
|
|
172
178
|
...(options.chatOptions || {}),
|
|
173
179
|
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
@@ -184,6 +190,8 @@ export async function compactConversationWithProvider(messages, options = {}) {
|
|
|
184
190
|
onToken: undefined,
|
|
185
191
|
onStall: undefined,
|
|
186
192
|
onStreamRetry: undefined,
|
|
193
|
+
onProviderCallStart:
|
|
194
|
+
evolutionIngress === null ? undefined : start,
|
|
187
195
|
maxOutputTokens,
|
|
188
196
|
});
|
|
189
197
|
return {
|
|
@@ -198,7 +206,7 @@ export async function compactConversationWithProvider(messages, options = {}) {
|
|
|
198
206
|
? { usageLedgerSettled: true }
|
|
199
207
|
: {}),
|
|
200
208
|
};
|
|
201
|
-
});
|
|
209
|
+
}, evolutionIngress !== null);
|
|
202
210
|
};
|
|
203
211
|
|
|
204
212
|
const compressor =
|
|
@@ -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 {
|