chainlesschain 0.166.97 → 0.166.99
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 +20 -23
- package/package.json +3 -3
- 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-BB9kKNVw.js → AIOps-BUgaCgVU.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DTg-lWE0.js → ActionButton-b0MpUSSZ.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-BWUZ0Tpc.js → Analytics-hbXTvHqO.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-Dj8WDnCf.js → AppLayout-CLQoAVu4.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-x8NiiPTg.js → Artifacts-ytHzl2L2.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-q7otRAqO.js → Audit-BuhkLm0C.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-f6qlO2au.js → BackgroundAgents-CS81hxZV.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-BbuX9qQS.js → Backup-DzR-_Qvi.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-amgV-Y0y.js → BaseInput-r8Ku_lYw.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-CZW3DW7j.js → Chat-C3Uxtoaa.js} +5 -5
- package/src/assets/web-panel/assets/ChatBubbleRenderer-RvblDu77.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-DXHXC52i.js → Checkbox-BnG2P5yc.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DQh47r4e.js → Codegen-BdgU6HZy.js} +1 -1
- package/src/assets/web-panel/assets/{Col-lBOOXCD7.js → Col-DT8t9wmf.js} +1 -1
- package/src/assets/web-panel/assets/{Community-BNFPnBu9.js → Community-ChkxR5oe.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-7MOWfBGb.js → Compact-DIwLeTk3.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-x0UA-rxk.js → Compliance-CAqzGLvW.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-C_eLfk_Q.js → Cowork-Bb3jejMG.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-BP2-_Fja.js → Cron-BYRkZLta.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-Dn-e1217.js → Crosschain-BD6z227t.js} +1 -1
- package/src/assets/web-panel/assets/{DID-D_jverif.js → DID-DA3G5Wgo.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-BysweBms.js → Dashboard-yaZePHOu.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-osJi0Pci.js → Dropdown-BqY5MBx2.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-C72k1SKQ.js → EmailListRenderer-cIWwOgHm.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-CAtA1F9s.js → EvolutionSettings-zvV6ymca.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-Bi0luzvO.js → FamilyGuardDashboard-CAmh1U2b.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-CIwntDLI.js → Federation-5qd2LCg8.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-DRfwhPW-.js → FormItemContext-Bdkj1sRJ.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-COJTzZ61.js → GenericCardRenderer-B-gWN2P3.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CwsR46lj.js → Git-BEMh_NGd.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-B1U-u9BN.js → Governance-qLGvA2Hw.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-vPsdYTS_.js → Inference-DblBwYuW.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-CVDRZM5h.js → KnowledgeGraph-BISegVD_.js} +1 -1
- package/src/assets/web-panel/assets/Logs-BD2UR7kE.js +2 -0
- package/src/assets/web-panel/assets/MarkdownRenderer-B-TlDCmr.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-CtxYHchd.js → Marketplace-CHKXMOkH.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-BkfCbpAk.js → McpTools-B5G1elqd.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-COp-8Z20.js → Memory-O5Ib0uTR.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-7fX-n_xn.js → MobileBridge-BaGYL7rT.js} +1 -1
- package/src/assets/web-panel/assets/MobileProjects-Dsctbob8.js +1 -0
- package/src/assets/web-panel/assets/{Mtc-CLXFZ5dV.js → Mtc-CNjJ97jg.js} +5 -5
- package/src/assets/web-panel/assets/{MtcAudit-yJ4eP1wB.js → MtcAudit-DjBN-Wqz.js} +5 -5
- package/src/assets/web-panel/assets/{Multisig-Cwb_qTh0.js → Multisig-B850R9lO.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-CkuojSSJ.js → NLProgramming-Bn8sbFfV.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-ju-QtUhJ.js → Notes-BpLmMp3Q.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-DjryXIC3.js → NotificationSettings-Dbk97rjb.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-B4KNF8xr.js → OrderTableRenderer-BOBX_I72.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-6-EtcVaO.js → Organization-B45DpOuE.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-BKja8nqr.js → Overflow-DmKH7eer.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BX20f9uL.js → P2P-CC4FaXTl.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-C9zwOEUo.js → PdhVaultBrowser-C2SgP4PI.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-YQjQVrfE.js → Permissions-BQB4QFj_.js} +3 -3
- package/src/assets/web-panel/assets/{PersonalDataHub-yZYclXxq.js → PersonalDataHub-Dy6GGpn4.js} +3 -3
- package/src/assets/web-panel/assets/{Pipeline-ChZCCXAI.js → Pipeline-B9HB5pRc.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-Ds7R-a0H.js → Privacy-D7pOmg-p.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-B3qz_xab.js → ProjectInit-DglBqvec.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-BlwNctdF.js → ProjectSettings-Bho22znM.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-BxtYpNl7.js → Projects-C0bSuM8U.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BE_1SS_-.js → Providers-BgAgo1Yr.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-CMQ25oLb.js → QrScannerModal-C2fBjCC8.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-DQRFLDeP.js → QuickAsk-C8MiF-rk.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-ChVra4Pk.js → Recommend-D_TzHdQf.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-9vPBIowJ.js → RemoteSession-BHO7b6xE.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-MdbWbyQQ.js → Reputation-BPxNmNhD.js} +1 -1
- package/src/assets/web-panel/assets/{Row-JLcBncLR.js → Row-fwhot5Bk.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CnMXnpFv.js → RssFeed-CZbD1B-5.js} +2 -2
- package/src/assets/web-panel/assets/{Search-Cf5ISVUe.js → Search-BRs6YpAE.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CywFo2EM.js → Security-CB344tKC.js} +4 -4
- package/src/assets/web-panel/assets/{Services-CLYnSCG3.js → Services-Beo-7fEl.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-BtbhOlo1.js → Skeleton-CDXx96vD.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-DPeqcIo2.js → Skills-b-mQTJK4.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-BRb4SqDn.js → Sla-BvjP-IS9.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-0Wuxts-7.js → SpeechSettings-C6wsV-cO.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BXtsOjXL.js → SyncSettings-BQZoko-e.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-D455Wfhx.js → Tasks-6Z0rJJVO.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-LGc4O0fj.js → Templates-Cc9IXtEQ.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-DA--0GFz.js → Tenant-BLc7AjOI.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-DQsA0xCq.js → Terminal-CUN49v85.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-VH8AuSLp.js → TimelineRenderer-CX-SksHN.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-B8RyzFRN.js → Tokens-Btrm0-rK.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-CA7lVVEf.js → Trigger-CIboUvKe.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-wUoRRLg9.js → Trust-Rv9jEs5v.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-ByoT_alW.js → UkeySign-B_xomdD5.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-D9fgAxJV.js → VideoEditing-CrvWeMow.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-CRkTndvj.js → Wallet-BjvWgk_7.js} +3 -3
- package/src/assets/web-panel/assets/{WebAuthn-VwmHOxJK.js → WebAuthn-CwfpFw92.js} +3 -3
- package/src/assets/web-panel/assets/{WorkflowEditor-Z0bPZc2O.js → WorkflowEditor-Dkk2QsOe.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CfX_5qUm.js → chat-Dah1DVes.js} +1 -1
- package/src/assets/web-panel/assets/{colors-BK7mXUnR.js → colors-JEpgQ10k.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-Uq755CeO.js → compact-item--DuG_cxf.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DWXq8Qnk.js → createContext-BJ_GZvon.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-B6kQEceX.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-BXgy5JZA.js → hasIn-yZRLDmWK.js} +1 -1
- package/src/assets/web-panel/assets/{index-LsBPnXHh.js → index-1QZASeW1.js} +1 -1
- package/src/assets/web-panel/assets/{index-DSb7SKp5.js → index-9L3Pg2tc.js} +1 -1
- package/src/assets/web-panel/assets/{index-H13lvPme.js → index-BKl40wrO.js} +1 -1
- package/src/assets/web-panel/assets/{index-TDPkVyse.js → index-BM7xJKGD.js} +1 -1
- package/src/assets/web-panel/assets/{index-CRLOeoFE.js → index-BUjyj7qR.js} +1 -1
- package/src/assets/web-panel/assets/{index-JX7mXB5a.js → index-BWkKE8Oj.js} +3 -3
- package/src/assets/web-panel/assets/{index-VPLA-GO7.js → index-Bdg_nWD1.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bt3tjvj-.js → index-C56b8e9s.js} +1 -1
- package/src/assets/web-panel/assets/{index-C3VnhfYU.js → index-C6ohEAEV.js} +1 -1
- package/src/assets/web-panel/assets/{index-DuhlVXh4.js → index-C8nXkCMf.js} +1 -1
- package/src/assets/web-panel/assets/{index-BZD1My0S.js → index-CFj7ylAJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-BxSClhg5.js → index-CJLz3SpM.js} +1 -1
- package/src/assets/web-panel/assets/{index-CGy7b2rd.js → index-CQedFuDw.js} +1 -1
- package/src/assets/web-panel/assets/index-CSeiH6HA.js +1 -0
- package/src/assets/web-panel/assets/index-CayGTz6d.js +1 -0
- package/src/assets/web-panel/assets/{index-CqJw5WsH.js → index-CjuD8smQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-9XsaovMH.js → index-Cmr0AzcK.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dg9P9EDV.js → index-CxB49Mow.js} +1 -1
- package/src/assets/web-panel/assets/{index-QXKuGlOS.js → index-D6Le2m3d.js} +1 -1
- package/src/assets/web-panel/assets/{index-CarQiRSA.js → index-DFJbJ8rs.js} +1 -1
- package/src/assets/web-panel/assets/{index-BRQSkXde.js → index-DQ4Fch3e.js} +1 -1
- package/src/assets/web-panel/assets/{index-C8e4SYX4.js → index-DZBesaCN.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ait-_UUh.js → index-DaDLWIWo.js} +1 -1
- package/src/assets/web-panel/assets/{index-DbjUfyVq.js → index-DbMGGcpZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-p3BlIre2.js → index-DddwZCT9.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdwC1i3O.js → index-DemMuw7n.js} +1 -1
- package/src/assets/web-panel/assets/{index-_I4nSJFc.js → index-DhX48E81.js} +1 -1
- package/src/assets/web-panel/assets/{index-wYTro42F.js → index-Dq-8PFhL.js} +1 -1
- package/src/assets/web-panel/assets/{index-XdoslBhl.js → index-DroaQypF.js} +1 -1
- package/src/assets/web-panel/assets/{index-DiVH_NiY.js → index-DxnkldGo.js} +1 -1
- package/src/assets/web-panel/assets/{index-CfYb8FjC.js → index-IjOa5lYn.js} +1 -1
- package/src/assets/web-panel/assets/{index-B09haI0M.js → index-L9CFyRIi.js} +1 -1
- package/src/assets/web-panel/assets/{index-Y77S-ZC0.js → index-VIgVth92.js} +1 -1
- package/src/assets/web-panel/assets/{index-D4yvdQCj.js → index-asia_JPc.js} +1 -1
- package/src/assets/web-panel/assets/{index-VrR8eMCk.js → index-cHx5KzUt.js} +1 -1
- package/src/assets/web-panel/assets/{index-D63nsr0a.js → index-kZE-K3ZO.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ct41B4y4.js → index-o2qO_dYf.js} +1 -1
- package/src/assets/web-panel/assets/{index-CUR7dnMg.js → index-rkvSOceQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-D-8lN1rG.js → index-vdTrEOj7.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DTuF67Yy.js → initDefaultProps-anKyyjGc.js} +1 -1
- package/src/assets/web-panel/assets/{motion-DZasLgsl.js → motion-Cqp0nx5A.js} +1 -1
- package/src/assets/web-panel/assets/{move-pPR4O1Du.js → move-Ca3mgkM2.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-Dc7fidhm.js → mtc-parser-BmwuhJ3z.js} +1 -1
- package/src/assets/web-panel/assets/{omit-CZ1IcubN.js → omit-C9Mf05WJ.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-BMtJilhr.js → pickAttrs-2PbxB9Ds.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-D0EXaZA7.js → placementArrow-CTVbOFHt.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-HftdThc5.js → responsiveObserve-Nrm8Vbmr.js} +1 -1
- package/src/assets/web-panel/assets/{slide-CT1JEPWV.js → slide-Dh4r1zqR.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-rwE-IPZB.js → statusUtils-vzNoQL-r.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-B2B8XHVq.js → styleChecker-BXpGfNkI.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-TXNvIFVa.js → useFlexGapSupport-CVWBRdhs.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-BcWgJKvf.js → useFs-BJWMLffI.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DWBDnOSR.js → usePersonalDataHub-CWCe5VHG.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-Cf_LjUuu.js → vnode-D-NBEb8m.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-DM2Bfuyl.js → zoom-C0mnhfGf.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/eval.js +79 -3
- package/src/commands/llm.js +40 -5
- package/src/data/changelog.json +26 -0
- package/src/lib/context-memory-kernel/message-adapter.js +41 -24
- package/src/lib/context-memory-kernel/segmented-memory-port.js +18 -0
- package/src/lib/cost-budget.js +8 -0
- package/src/lib/eval/runner.js +22 -1
- package/src/lib/eval/verify01-contracts.js +106 -51
- package/src/lib/eval/verify01-execution.js +148 -166
- package/src/lib/eval/verify01-host-evidence.js +34 -2
- package/src/lib/eval/verify01-workspace.js +302 -0
- package/src/lib/execution-location-failure-site.js +18 -0
- package/src/lib/execution-location-target.js +10 -0
- package/src/lib/llm-connection-probe.js +147 -6
- package/src/lib/llm-pricing.js +61 -7
- package/src/lib/model-capabilities.js +10 -2
- package/src/lib/model-catalog-review.js +1 -0
- package/src/lib/model-context-catalog.js +26 -1
- package/src/lib/provider-http-error.js +30 -11
- package/src/lib/provider-options.js +38 -1
- package/src/lib/search-command.js +4 -1
- package/src/lib/stream-retry.js +14 -1
- package/src/lib/task-progress-tracker.js +1 -0
- package/src/lib/usage-pricing-context.js +100 -10
- package/src/runtime/agent-core.js +95 -18
- package/src/runtime/headless-runner.js +47 -20
- package/src/runtime/headless-stream.js +32 -10
- package/src/runtime/provider-stream-state.js +7 -0
- package/src/assets/web-panel/assets/ChatBubbleRenderer-DgMYDmBW.js +0 -1
- package/src/assets/web-panel/assets/Logs-YRslKbRL.js +0 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-CUBuc97a.js +0 -1
- package/src/assets/web-panel/assets/MobileProjects-DUyTVgId.js +0 -1
- package/src/assets/web-panel/assets/devWarning-CbtBfs7a.js +0 -1
- package/src/assets/web-panel/assets/index-CicoHC0s.js +0 -1
- package/src/assets/web-panel/assets/index-DttyUwDx.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as v}from"./index-
|
|
1
|
+
import{u as v}from"./index-BWkKE8Oj.js";import{u as _}from"./useShellMode-CgR0wCYM.js";function d(r){if(!r)return r;if(r.error)throw new Error(r.error);return r.result!==void 0?r.result:r}async function p(r,s={},e=!0){try{if(e!==!0||!r||typeof r.sendRaw!="function")return{status:"unavailable",path:null};const a=await r.sendRaw({type:"fs.openDirectory",title:s.title},6e4);if(a&&(a.ok===!1||a.error))return{status:"unavailable",path:null};const t=a&&a.result!==void 0?a.result:a;return t&&(t.ok===!1||t.error||t.unsupported===!0)?{status:"unavailable",path:null}:t&&t.canceled===!0?{status:"cancelled",path:null}:t&&typeof t.path=="string"&&t.path.length>0?{status:"selected",path:t.path}:{status:"unavailable",path:null}}catch{return{status:"unavailable",path:null}}}function b(r,s,e,a,t){return typeof r.onMessage!="function"||typeof r.sendRaw!="function"?r.sendRaw({type:s,...e},t).then(d):new Promise((n,u)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${s}.event`,m=`${s}.end`;let c=!1,h=()=>{};const o=(i,f)=>{if(!c){c=!0,clearTimeout(g);try{h()}catch{}i(f)}},g=setTimeout(()=>{o(u,new Error(`stream timeout (${t}ms): ${s}`))},t),y=r.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof a=="function")try{a(i.event||i)}catch{}return}if(i.type===m){o(n,d(i));return}i.type==="error"&&o(u,new Error(i.message||"stream error"))}});h=typeof y=="function"?y:()=>{},Promise.resolve(r.sendRaw({id:l,type:s,...e},t)).catch(()=>{})})}function k(){const r=v(),s=_(),e=(a,t={},n=3e4)=>r.sendRaw({type:a,...t},n).then(d);return{async health(){return await e("personal-data-hub.health",{},8e3)},async stats(){return await e("personal-data-hub.stats",{},8e3)},async listAdapters(){return await e("personal-data-hub.list-adapters",{},5e3)},async pickFile(a={}){try{const t=await r.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),n=t&&t.result!==void 0?t.result:t,u=n&&typeof n.path=="string"?n.path:n&&typeof n.filePath=="string"?n.filePath:null;return n&&n.canceled!==!0&&u?u:null}catch{return null}},async pickDirectoryResult(a={}){return await p(r,a,s.isEmbedded)},async pickDirectory(a={}){const t=await p(r,a,s.isEmbedded);return t.status==="selected"?t.path:null},async adapterReadiness(a){return await e("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},async syncAdapter(a,t={}){return await e("personal-data-hub.sync-adapter",{name:a,options:t},6e5)},async syncAll(a={}){return await e("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:t=20,seed:n=1}={}){return await e("personal-data-hub.register-mock",{name:a,count:t,seed:n})},async unregister(a){return await e("personal-data-hub.unregister",{name:a})},async ask(a,t={}){return await e("personal-data-hub.ask",{question:a,options:t},18e4)},async queryEvents(a={}){return await e("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await e("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await e("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await e("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await e("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,t={}){return await e("personal-data-hub.register-email",{account:a,opts:t},15e3)},async unregisterEmail(a){return await e("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await e("personal-data-hub.list-email-accounts",{},5e3)},async activateEmail(a){return await e("personal-data-hub.activate-email",{email:a},5e3)},async eventDetail(a){return await e("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,t={},n){return await b(r,"personal-data-hub.sync-adapter-stream",{name:a,options:t},n,6e5)},async syncAllStream(a={},t){return await b(r,"personal-data-hub.sync-all-stream",{options:a},t,9e5)},async registerAlipay(a,t={}){return await e("personal-data-hub.register-alipay",{account:a,opts:t},15e3)},async unregisterAlipay(a){return await e("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await e("personal-data-hub.list-alipay-accounts",{},5e3)},async activateAlipay(a){return await e("personal-data-hub.activate-alipay",{email:a},5e3)},async importAlipayBill({zipPath:a,csvPath:t,zipPassword:n}={}){return await e("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:t,zipPassword:n},3e5)},async reviewQueueList(a=50){return await e("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,t){return await e("personal-data-hub.review-decision",{reviewId:a,decision:t},5e3)},async manualMerge(a,t){return await e("personal-data-hub.manual-merge",{aId:a,bId:t},5e3)},async manualUnmerge(a){return await e("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await e("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await e("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await e("personal-data-hub.skills-list",{},5e3)},async runSkill(a,t={}){return await e("personal-data-hub.run-skill",{name:a,options:t},12e4)},async openAichatLogin(a,t={}){return await e("personal-data-hub.aichat-open-login",{vendor:a,opts:t},1e4)},async probeAichatCookies(a,t){return await e("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:t},1e4)},async registerAichatVendor(a,t,n={}){return await e("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:t,opts:n},3e4)},async rotateAichatLogin(a){return await e("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await e("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await e("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await e("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await e("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l}={}){return await e("personal-data-hub.register-wechat",{account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l},45e3)},async listWechatAccounts(){return await e("personal-data-hub.list-wechat-accounts",{},5e3)},async activateWechat(a,t={}){return await e("personal-data-hub.activate-wechat",{uin:a,fridaOpts:t.fridaOpts,keyProviderOverride:t.keyProviderOverride},45e3)},async unregisterWechat(a){return await e("personal-data-hub.unregister-wechat",{uin:a},5e3)},async bilibiliAdbSync(a={}){return await e("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await e("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await e("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await e("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await e("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await e("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await e("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await e("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{k as u};
|
|
@@ -1 +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-BWkKE8Oj.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-Bn1JzzAn.js";function c(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,u=e;if(Array.isArray(e)&&(u=i(e)[0]),!u)return null;const n=o(u,r,s);return n.props=t?a(a({},n.props),r):n.props,l(typeof n.props.class!="object","class must be string"),n}function V(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return e.map(s=>c(s,r,t))}function v(e,r,t){p(o(e,a({},r)),t)}const m=e=>(e||[]).some(r=>g(r)?!(r.type===d||r.type===f&&!m(r.children)):!0)?e:null;function h(e,r,t,s){var u;const n=(u=e[r])===null||u===void 0?void 0:u.call(e,t);return m(n)?n:s?.()}export{h as a,V as b,c,v as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{K as o}from"./index-
|
|
1
|
+
import{K as o}from"./index-BWkKE8Oj.js";import{i as f}from"./motion-Cqp0nx5A.js";const c=new o("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),y=new o("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),a=new o("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),s=new o("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),g=new o("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),O=new o("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),l=new o("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),u=new o("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),p=new o("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),z=new o("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),K=new o("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),w=new o("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),I={zoom:{inKeyframes:c,outKeyframes:y},"zoom-big":{inKeyframes:a,outKeyframes:s},"zoom-big-fast":{inKeyframes:a,outKeyframes:s},"zoom-left":{inKeyframes:l,outKeyframes:u},"zoom-right":{inKeyframes:p,outKeyframes:z},"zoom-up":{inKeyframes:g,outKeyframes:O},"zoom-down":{inKeyframes:K,outKeyframes:w}},h=(n,r)=>{const{antCls:m}=n,t=`${m}-${r}`,{inKeyframes:i,outKeyframes:e}=I[r];return[f(t,i,e,r==="zoom-big-fast"?n.motionDurationFast:n.motionDurationMid),{[`
|
|
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-BWkKE8Oj.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
|
@@ -15,8 +15,12 @@ import { fileURLToPath } from "url";
|
|
|
15
15
|
import { runEvalSuite } from "../lib/eval/runner.js";
|
|
16
16
|
import { getSuite } from "../lib/eval/tasks.js";
|
|
17
17
|
import { verifyAgentTerminal } from "../lib/eval/stream-terminal.js";
|
|
18
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
captureVerify01AgentBinding,
|
|
20
|
+
persistVerify01Receipts,
|
|
21
|
+
} from "../lib/eval/verify01-execution.js";
|
|
19
22
|
import executionBroker from "../lib/process-execution-broker/index.js";
|
|
23
|
+
import { BUILT_IN_PROVIDERS } from "../lib/llm-providers.js";
|
|
20
24
|
import {
|
|
21
25
|
TelemetryRecorder,
|
|
22
26
|
formatTelemetry,
|
|
@@ -93,7 +97,68 @@ function killAgentTree(child) {
|
|
|
93
97
|
* workspace. acceptEdits lets it write files without an interactive prompt.
|
|
94
98
|
*/
|
|
95
99
|
function makeHeadlessRunAgent(opts = {}) {
|
|
96
|
-
return function runAgent({
|
|
100
|
+
return function runAgent({
|
|
101
|
+
prompt,
|
|
102
|
+
cwd,
|
|
103
|
+
timeoutMs,
|
|
104
|
+
costBudgetUsd,
|
|
105
|
+
verify01Binding,
|
|
106
|
+
}) {
|
|
107
|
+
const binding =
|
|
108
|
+
verify01Binding === undefined
|
|
109
|
+
? null
|
|
110
|
+
: captureVerify01AgentBinding(verify01Binding, cwd);
|
|
111
|
+
if (opts.requireVerify01Binding && !binding)
|
|
112
|
+
throw new Error("frozen suite requires a task-specific agent binding");
|
|
113
|
+
if (
|
|
114
|
+
binding &&
|
|
115
|
+
(binding.provider !== opts.provider || binding.model !== opts.model)
|
|
116
|
+
)
|
|
117
|
+
throw new Error(
|
|
118
|
+
"VERIFY01 provider/model binding differs from the launcher",
|
|
119
|
+
);
|
|
120
|
+
const inherited = { ...process.env, ...(opts.env || {}) };
|
|
121
|
+
const environmentValue = (name) => {
|
|
122
|
+
if (process.platform !== "win32") return inherited[name];
|
|
123
|
+
// Windows environment keys are case-insensitive, but spreading env into
|
|
124
|
+
// a plain object loses that lookup behavior (PATH is usually Path).
|
|
125
|
+
const key = Object.keys(inherited)
|
|
126
|
+
.reverse()
|
|
127
|
+
.find((candidate) => candidate.toLowerCase() === name.toLowerCase());
|
|
128
|
+
return key === undefined ? undefined : inherited[key];
|
|
129
|
+
};
|
|
130
|
+
const providerKey = BUILT_IN_PROVIDERS[binding?.provider]?.apiKeyEnv;
|
|
131
|
+
// Formal children retain platform plumbing and only the selected provider's
|
|
132
|
+
// credential (or the explicitly selected generic CC_API_KEY). Hooks,
|
|
133
|
+
// fallback configuration, NODE_OPTIONS and unrelated account tokens are
|
|
134
|
+
// excluded. Normal, non-formal Eval retains its existing environment.
|
|
135
|
+
const childEnvironment = binding
|
|
136
|
+
? {
|
|
137
|
+
...Object.fromEntries(
|
|
138
|
+
[
|
|
139
|
+
"PATH",
|
|
140
|
+
"SystemRoot",
|
|
141
|
+
"WINDIR",
|
|
142
|
+
"ComSpec",
|
|
143
|
+
"PATHEXT",
|
|
144
|
+
"TEMP",
|
|
145
|
+
"TMP",
|
|
146
|
+
"TMPDIR",
|
|
147
|
+
"LANG",
|
|
148
|
+
"LC_ALL",
|
|
149
|
+
"LC_CTYPE",
|
|
150
|
+
"CC_API_KEY",
|
|
151
|
+
...(providerKey ? [providerKey] : []),
|
|
152
|
+
]
|
|
153
|
+
.map((key) => [key, environmentValue(key)])
|
|
154
|
+
.filter(([, value]) => value !== undefined),
|
|
155
|
+
),
|
|
156
|
+
...binding.environment,
|
|
157
|
+
CC_MAX_RETRIES: "0",
|
|
158
|
+
CLAUDE_CODE_MAX_RETRIES: "0",
|
|
159
|
+
CLAUDECODE: "1",
|
|
160
|
+
}
|
|
161
|
+
: { ...inherited, CLAUDECODE: "1" };
|
|
97
162
|
return new Promise((resolve) => {
|
|
98
163
|
let args;
|
|
99
164
|
if (opts._argv) {
|
|
@@ -115,12 +180,22 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
115
180
|
if (opts.provider) args.push("--provider", opts.provider);
|
|
116
181
|
if (opts.ephemeral === true) args.push("--ephemeral");
|
|
117
182
|
if (opts.sandboxMode) args.push("--sandbox-mode", opts.sandboxMode);
|
|
183
|
+
if (binding)
|
|
184
|
+
args.push(
|
|
185
|
+
"--no-project-memory",
|
|
186
|
+
"--no-file-refs",
|
|
187
|
+
"--no-slash-macros",
|
|
188
|
+
"--no-mcp",
|
|
189
|
+
"--no-ide",
|
|
190
|
+
"--no-pdh",
|
|
191
|
+
"--no-jetbrains",
|
|
192
|
+
);
|
|
118
193
|
if (Number.isFinite(costBudgetUsd) && costBudgetUsd >= 0)
|
|
119
194
|
args.push("--max-budget-usd", String(costBudgetUsd));
|
|
120
195
|
}
|
|
121
196
|
const child = _deps.spawn(process.execPath, args, {
|
|
122
197
|
cwd,
|
|
123
|
-
env:
|
|
198
|
+
env: childEnvironment,
|
|
124
199
|
windowsHide: true,
|
|
125
200
|
// Own process group on POSIX so a timeout can reap the whole tree.
|
|
126
201
|
detached: _deps.platform !== "win32",
|
|
@@ -417,6 +492,7 @@ export function registerEvalCommand(program, { logger } = {}) {
|
|
|
417
492
|
? {
|
|
418
493
|
ephemeral: true,
|
|
419
494
|
sandboxMode: tasks.verification.requiredSandboxMode,
|
|
495
|
+
requireVerify01Binding: true,
|
|
420
496
|
}
|
|
421
497
|
: {}),
|
|
422
498
|
});
|
package/src/commands/llm.js
CHANGED
|
@@ -47,7 +47,10 @@ import {
|
|
|
47
47
|
readLlmConnectionInput,
|
|
48
48
|
saveLlmConnection,
|
|
49
49
|
} from "../lib/llm-connection-config.js";
|
|
50
|
-
import {
|
|
50
|
+
import {
|
|
51
|
+
probeLlmConnection,
|
|
52
|
+
llmProbeReceipt,
|
|
53
|
+
} from "../lib/llm-connection-probe.js";
|
|
51
54
|
import { resolveModelCapabilityProfile } from "../lib/model-capabilities.js";
|
|
52
55
|
|
|
53
56
|
/**
|
|
@@ -313,6 +316,10 @@ export function registerLlmCommand(program) {
|
|
|
313
316
|
.option("--model <model>", "Model to test (default: configured)")
|
|
314
317
|
.option("--base-url <url>", "API base URL (default: configured/provider)")
|
|
315
318
|
.option("--api-key <key>", "API key (default: configured)")
|
|
319
|
+
.option(
|
|
320
|
+
"--json",
|
|
321
|
+
"Output connection result and token cost estimate as JSON",
|
|
322
|
+
)
|
|
316
323
|
.action(async (options) => {
|
|
317
324
|
const config = loadConfig();
|
|
318
325
|
const target = resolveLlmTestTarget(
|
|
@@ -321,18 +328,46 @@ export function registerLlmCommand(program) {
|
|
|
321
328
|
BUILT_IN_PROVIDERS,
|
|
322
329
|
process.env,
|
|
323
330
|
);
|
|
324
|
-
const spinner =
|
|
331
|
+
const spinner = options.json
|
|
332
|
+
? null
|
|
333
|
+
: ora(`Testing ${target.provider}...`).start();
|
|
334
|
+
const safe = (text) =>
|
|
335
|
+
target.apiKey
|
|
336
|
+
? String(text).replaceAll(target.apiKey, "[REDACTED]")
|
|
337
|
+
: String(text);
|
|
325
338
|
try {
|
|
326
339
|
const start = Date.now();
|
|
327
340
|
|
|
328
|
-
const reply = await probeLlmConnection(target
|
|
341
|
+
const reply = await probeLlmConnection(target, {
|
|
342
|
+
includeUsage: !!options.json,
|
|
343
|
+
});
|
|
344
|
+
if (options.json) {
|
|
345
|
+
console.log(
|
|
346
|
+
JSON.stringify({
|
|
347
|
+
...reply,
|
|
348
|
+
reply: safe(reply.reply),
|
|
349
|
+
elapsedMs: Date.now() - start,
|
|
350
|
+
}),
|
|
351
|
+
);
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
329
354
|
spinner.succeed(
|
|
330
355
|
`${chalk.green("Connected")} to ${target.label} (${target.model}) in ${Date.now() - start}ms`,
|
|
331
356
|
);
|
|
332
357
|
logger.log(` Response: ${chalk.gray(reply)}`);
|
|
333
358
|
} catch (err) {
|
|
334
|
-
|
|
335
|
-
|
|
359
|
+
if (options.json) {
|
|
360
|
+
console.log(
|
|
361
|
+
JSON.stringify({
|
|
362
|
+
...(err.probe || llmProbeReceipt(target)),
|
|
363
|
+
error: safe(err.message),
|
|
364
|
+
}),
|
|
365
|
+
);
|
|
366
|
+
process.exitCode = 1;
|
|
367
|
+
} else {
|
|
368
|
+
spinner.fail(`Test failed: ${err.message}`);
|
|
369
|
+
process.exit(1);
|
|
370
|
+
}
|
|
336
371
|
}
|
|
337
372
|
});
|
|
338
373
|
|
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.99",
|
|
7
|
+
"cliVersions": ["0.166.99"],
|
|
8
|
+
"date": null,
|
|
9
|
+
"title": "",
|
|
10
|
+
"sections": [
|
|
11
|
+
{
|
|
12
|
+
"heading": "Fixed - cc CLI 0.166.99: preserve file bytes and exact model contracts",
|
|
13
|
+
"body": "- Reject invalid UTF-8 in literal, hashed and notebook edits and matching IDE\n previews without rewriting target bytes; preserve valid BOM, Unicode and CRLF.\n- Add the exact Haiku 5.5 model contract, adaptive effort combinations, request\n output limits and per-request 100K pricing tiers with cache TTL and region\n evidence. Preserve the default output budget and leave unsupported or missing\n actual pricing evidence unpriced. Correct Sonnet 5.5 cache-read pricing.\n- Validate search patterns and correlate paused tool requests without execution.\n- Keep HTTP and failed Responses verdicts terminal before matching connection\n wording, preserving genuine bounded network recovery.\n- Pair VS Code 0.37.143 and JetBrains 0.4.161 with the publicly available CLI\n only after exact-commit gates. VS Code delays periodic projection reads during\n actions, discards obsolete results and isolates refresh state across panels.\n- Retain the macOS needs-input 2s/100-sample gate and its original failure.\n Formal 36+9, native/durable authority and long-term acceptance remain open."
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"productVersion": null,
|
|
19
|
+
"cliVersion": "0.166.98",
|
|
20
|
+
"cliVersions": ["0.166.98"],
|
|
21
|
+
"date": null,
|
|
22
|
+
"title": "",
|
|
23
|
+
"sections": [
|
|
24
|
+
{
|
|
25
|
+
"heading": "Fixed - cc CLI 0.166.98: apply real-task findings and preserve task delivery",
|
|
26
|
+
"body": "- Bind formal task file scope and tool allowlists to isolated per-task configuration;\n preserve rejected call identities and strict trace acceptance.\n- Keep authentication usage on failed answers, redact credentials before truncation,\n and separate tool estimates from unknown authentication or whole-journey costs.\n- Bootstrap first-run diagnostics without development dependencies and retain the\n actual failed journey, empty candidate, and unexecuted semantic outcomes.\n- Give finite-budget runs fresh delivery guidance without placing the changing\n counter before the stable OpenAI-compatible conversation prefix. Preserve the\n current user task across host and goal/hook suffixes in the canonical planner.\n- Publish changed Session Core 0.3.19 before CLI 0.166.98; retain unchanged child\n versions only after exact-source, registry-byte and provenance verification.\n- Pair VS Code 0.37.142 and JetBrains 0.4.160 after the final source gates pass\n and CLI 0.166.98 is publicly available. Formal 36+9 evaluation and native\n durable authority acceptance remain open."
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
4
30
|
{
|
|
5
31
|
"productVersion": null,
|
|
6
32
|
"cliVersion": "0.166.97",
|
|
@@ -68,8 +68,7 @@ function trustForBundle(messages) {
|
|
|
68
68
|
if (
|
|
69
69
|
messages.every(
|
|
70
70
|
(message) =>
|
|
71
|
-
message.role === "system" &&
|
|
72
|
-
getDurableSystemMessageProvenance(message),
|
|
71
|
+
message.role === "system" && getDurableSystemMessageProvenance(message),
|
|
73
72
|
)
|
|
74
73
|
) {
|
|
75
74
|
return "verified";
|
|
@@ -135,12 +134,16 @@ function createItem({
|
|
|
135
134
|
observedAt: new Date(sequence).toISOString(),
|
|
136
135
|
},
|
|
137
136
|
trust:
|
|
138
|
-
trustedSystemPolicy &&
|
|
137
|
+
trustedSystemPolicy &&
|
|
138
|
+
messages.every((message) => message.role === "system")
|
|
139
139
|
? "host"
|
|
140
140
|
: trustForBundle(messages),
|
|
141
141
|
sensitivity: "personal",
|
|
142
142
|
allowedSinks: allowedSinks || DEFAULT_ALLOWED_SINKS,
|
|
143
|
-
tokenEstimate: Math.max(
|
|
143
|
+
tokenEstimate: Math.max(
|
|
144
|
+
1,
|
|
145
|
+
Math.ceil(Buffer.byteLength(content, "utf8") / 4),
|
|
146
|
+
),
|
|
144
147
|
priority: priorityForBundle(messages, sequence, pendingTool),
|
|
145
148
|
pinned: false,
|
|
146
149
|
createdAt: new Date(sequence).toISOString(),
|
|
@@ -195,7 +198,8 @@ export function messagesToContextItems(messagesInput, options = {}) {
|
|
|
195
198
|
seen.add(resultId);
|
|
196
199
|
cursor += 1;
|
|
197
200
|
}
|
|
198
|
-
const pending =
|
|
201
|
+
const pending =
|
|
202
|
+
ids.length !== calls.length || seen.size !== expected.size;
|
|
199
203
|
const groupDigest = canonicalDigest(
|
|
200
204
|
{ sessionId, index, ids: [...expected].sort() },
|
|
201
205
|
"chainlesschain.cli-tool-group/v1",
|
|
@@ -245,7 +249,14 @@ export function messagesToContextItems(messagesInput, options = {}) {
|
|
|
245
249
|
);
|
|
246
250
|
}
|
|
247
251
|
|
|
248
|
-
|
|
252
|
+
// Ephemeral host guidance and hook suffixes can follow the current user
|
|
253
|
+
// request. They must not turn that request into optional conversation.
|
|
254
|
+
// Stop at the last conversational/tool bundle, so completed historical
|
|
255
|
+
// user turns are not promoted over a newer assistant or tool result.
|
|
256
|
+
const lastIndex = items.findLastIndex(
|
|
257
|
+
(item) => item.kind !== "system-policy",
|
|
258
|
+
);
|
|
259
|
+
const last = items[lastIndex];
|
|
249
260
|
if (last) {
|
|
250
261
|
const payload = JSON.parse(last.content);
|
|
251
262
|
if (payload.messages.at(-1)?.role === "user") {
|
|
@@ -257,7 +268,7 @@ export function messagesToContextItems(messagesInput, options = {}) {
|
|
|
257
268
|
taskState: "waiting",
|
|
258
269
|
requiredForRecovery: true,
|
|
259
270
|
};
|
|
260
|
-
items[
|
|
271
|
+
items[lastIndex] = normalizeContextItem(protectedItem);
|
|
261
272
|
}
|
|
262
273
|
}
|
|
263
274
|
return items;
|
|
@@ -317,7 +328,9 @@ export function memoryRecordsToContextItems(recordsInput, options = {}) {
|
|
|
317
328
|
|
|
318
329
|
function decodeBundle(item) {
|
|
319
330
|
if (typeof item?.content !== "string") {
|
|
320
|
-
throw new TypeError(
|
|
331
|
+
throw new TypeError(
|
|
332
|
+
`ContextItem ${item?.itemId || "unknown"} has no inline content`,
|
|
333
|
+
);
|
|
321
334
|
}
|
|
322
335
|
const payload = JSON.parse(item.content);
|
|
323
336
|
if (
|
|
@@ -327,17 +340,19 @@ function decodeBundle(item) {
|
|
|
327
340
|
!Array.isArray(payload.durableSystemKinds) ||
|
|
328
341
|
payload.durableSystemKinds.length !== payload.messages.length
|
|
329
342
|
) {
|
|
330
|
-
throw new TypeError(
|
|
343
|
+
throw new TypeError(
|
|
344
|
+
`ContextItem ${item.itemId} is not a CLI message bundle`,
|
|
345
|
+
);
|
|
331
346
|
}
|
|
332
347
|
return payload.messages.map((message, index) => {
|
|
333
348
|
if (!message || typeof message !== "object" || Array.isArray(message)) {
|
|
334
|
-
throw new TypeError(
|
|
349
|
+
throw new TypeError(
|
|
350
|
+
`ContextItem ${item.itemId} contains an invalid message`,
|
|
351
|
+
);
|
|
335
352
|
}
|
|
336
353
|
const copy = structuredClone(message);
|
|
337
354
|
const durableKind = payload.durableSystemKinds[index];
|
|
338
|
-
return durableKind
|
|
339
|
-
? markDurableSystemMessage(copy, durableKind)
|
|
340
|
-
: copy;
|
|
355
|
+
return durableKind ? markDurableSystemMessage(copy, durableKind) : copy;
|
|
341
356
|
});
|
|
342
357
|
}
|
|
343
358
|
|
|
@@ -376,7 +391,9 @@ export function createSummaryContextItem({
|
|
|
376
391
|
if (parents.length === 0) throw new TypeError("summary parents are required");
|
|
377
392
|
const scope = parents[0].scope;
|
|
378
393
|
const scopeId = parents[0].scopeId;
|
|
379
|
-
if (
|
|
394
|
+
if (
|
|
395
|
+
parents.some((item) => item.scope !== scope || item.scopeId !== scopeId)
|
|
396
|
+
) {
|
|
380
397
|
throw new TypeError("summary parents must share one scope");
|
|
381
398
|
}
|
|
382
399
|
const summaryMessages = safeMessages(messages).map((message) =>
|
|
@@ -398,16 +415,16 @@ export function createSummaryContextItem({
|
|
|
398
415
|
{ operationId, parentDigests, content },
|
|
399
416
|
"chainlesschain.cli-context-summary/v1",
|
|
400
417
|
);
|
|
401
|
-
const trust =
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
418
|
+
const trust =
|
|
419
|
+
TRUST_ORDER[
|
|
420
|
+
Math.max(...parents.map((item) => TRUST_ORDER.indexOf(item.trust)))
|
|
421
|
+
];
|
|
422
|
+
const sensitivity =
|
|
423
|
+
SENSITIVITY_ORDER[
|
|
424
|
+
Math.max(
|
|
425
|
+
...parents.map((item) => SENSITIVITY_ORDER.indexOf(item.sensitivity)),
|
|
426
|
+
)
|
|
427
|
+
];
|
|
411
428
|
const allowedSinks = [...intersectAllowedSinks(parents)].sort();
|
|
412
429
|
if (allowedSinks.length === 0) {
|
|
413
430
|
throw new TypeError("summary parents have no common allowed sink");
|
|
@@ -115,6 +115,24 @@ function directories(directory) {
|
|
|
115
115
|
realpathSync(current) === `/private${current}`;
|
|
116
116
|
if (!systemAlias && (!stat.isDirectory() || stat.isSymbolicLink()))
|
|
117
117
|
throw corruptStore(current, "authority directory is unsafe");
|
|
118
|
+
if (process.platform === "win32") {
|
|
119
|
+
// Some Windows runtime adapters report an ordinary directory for a
|
|
120
|
+
// junction whose target cannot be decoded in their DOS namespace. Keep
|
|
121
|
+
// the lstat guard and independently reject a different native canonical
|
|
122
|
+
// coordinate before mkdir or lock acquisition. This is an additional
|
|
123
|
+
// consistency check, not a proof against every reparse tag or a race.
|
|
124
|
+
let canonical;
|
|
125
|
+
try {
|
|
126
|
+
canonical = realpathSync.native(current);
|
|
127
|
+
} catch {
|
|
128
|
+
throw corruptStore(current, "authority directory cannot be resolved");
|
|
129
|
+
}
|
|
130
|
+
if (
|
|
131
|
+
typeof canonical !== "string" ||
|
|
132
|
+
resolve(canonical).toLowerCase() !== current.toLowerCase()
|
|
133
|
+
)
|
|
134
|
+
throw corruptStore(current, "authority directory resolves elsewhere");
|
|
135
|
+
}
|
|
118
136
|
const parent = dirname(current);
|
|
119
137
|
if (parent === current) break;
|
|
120
138
|
current = parent;
|
package/src/lib/cost-budget.js
CHANGED
|
@@ -73,6 +73,14 @@ export class CostBudget {
|
|
|
73
73
|
outputTokens: usage?.output_tokens || 0,
|
|
74
74
|
cacheReadTokens,
|
|
75
75
|
cacheCreationTokens,
|
|
76
|
+
cacheCreation5mTokens: pricingContext.cacheCreation5mTokens,
|
|
77
|
+
cacheCreation1hTokens: pricingContext.cacheCreation1hTokens,
|
|
78
|
+
cacheCreationInvalid: pricingContext.cacheCreationInvalid,
|
|
79
|
+
pricingContextInvalid:
|
|
80
|
+
pricingContext.pricingContextInvalid === true ||
|
|
81
|
+
(String(provider).toLowerCase() === "anthropic" &&
|
|
82
|
+
String(model).toLowerCase() === "claude-haiku-5-5" &&
|
|
83
|
+
pricingContext.regional_processing == null),
|
|
76
84
|
serviceTier: pricingContext.service_tier ?? "standard",
|
|
77
85
|
regionalProcessing: pricingContext.regional_processing === true,
|
|
78
86
|
table: this.table,
|
package/src/lib/eval/runner.js
CHANGED
|
@@ -152,7 +152,13 @@ export async function runEvalSuite(tasks, opts = {}) {
|
|
|
152
152
|
if (typeof task.check !== "function") {
|
|
153
153
|
throw new Error(`task "${rec.id}": check() is required`);
|
|
154
154
|
}
|
|
155
|
-
|
|
155
|
+
// Resolve the OS temporary directory first (macOS commonly aliases
|
|
156
|
+
// /var to /private/var), then create formal workspaces at canonical paths.
|
|
157
|
+
const taskBase =
|
|
158
|
+
typeof task.agentLaunchBinding === "function"
|
|
159
|
+
? (fs.realpathSync.native || fs.realpathSync)(base)
|
|
160
|
+
: base;
|
|
161
|
+
dir = _deps.mkdtempSync(path.join(taskBase, `cc-eval-${task.id}-`));
|
|
156
162
|
if (typeof task.setup === "function") {
|
|
157
163
|
await task.setup(dir, budget);
|
|
158
164
|
}
|
|
@@ -169,6 +175,9 @@ export async function runEvalSuite(tasks, opts = {}) {
|
|
|
169
175
|
prompt: task.prompt,
|
|
170
176
|
cwd: dir,
|
|
171
177
|
timeoutMs: budget.remainingMs(),
|
|
178
|
+
...(typeof task.agentLaunchBinding === "function"
|
|
179
|
+
? { verify01Binding: task.agentLaunchBinding(dir) }
|
|
180
|
+
: {}),
|
|
172
181
|
...(task.costBudgetUsd === undefined
|
|
173
182
|
? {}
|
|
174
183
|
: { costBudgetUsd: task.costBudgetUsd }),
|
|
@@ -234,6 +243,18 @@ export async function runEvalSuite(tasks, opts = {}) {
|
|
|
234
243
|
});
|
|
235
244
|
rec.pass = false;
|
|
236
245
|
} finally {
|
|
246
|
+
try {
|
|
247
|
+
await task?.cleanup?.();
|
|
248
|
+
} catch (error) {
|
|
249
|
+
rec.pass = false;
|
|
250
|
+
rec.error ||= `task cleanup failed: ${error.message}`;
|
|
251
|
+
rec.failurePhase = "cleanup";
|
|
252
|
+
task.recordFailure?.({
|
|
253
|
+
phase: "cleanup",
|
|
254
|
+
code: error.code || null,
|
|
255
|
+
error: error.message,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
237
258
|
rec.ms = _deps.now() - started;
|
|
238
259
|
if (span) {
|
|
239
260
|
span.setAttribute("pass", rec.pass);
|