chainlesschain 0.166.56 → 0.166.59
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/package.json +3 -2
- package/src/assets/web-panel/assets/{AIOps-CBFnwYRX.js → AIOps-B9i3kk5f.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-Sl4eXWpR.js → ActionButton-DGMs1wBm.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DB0lD9Kb.js → Analytics-D-JGeynM.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-j77EmkRK.js → AppLayout-DLECnXlP.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-CU3izCW9.js → Artifacts-CwaTiXN4.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-C44fSibb.js → Audit-BCb7s5Ky.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-pM_NnJW3.js → BackgroundAgents-D4IOzvKs.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-AOHXqhxN.js → Backup-Cknunk10.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-DaYc8oA_.js → BaseInput-DnU8pbUh.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-CmlCAXxW.js → Chat-DOouYIhz.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-CkCSkJDJ.js → ChatBubbleRenderer-C4tdSms8.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-DISI7iaA.js → Checkbox-BrumNw6V.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BYpeKUpf.js → Codegen-B4E_uI_N.js} +1 -1
- package/src/assets/web-panel/assets/{Col-Dk6VwWGq.js → Col-C7H2sdaL.js} +1 -1
- package/src/assets/web-panel/assets/{Community-BDyTedMu.js → Community-BFdzcMSl.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-CTNlGM9X.js → Compact-BzVXohrg.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-C_tw3IdT.js → Compliance-B_4QcuSH.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-cduHWEmo.js → Cowork-DjuQzJx8.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-Dqotjv-s.js → Cron-Bf2iY-1-.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-ByW7RsJQ.js → Crosschain-CY9QW7IT.js} +1 -1
- package/src/assets/web-panel/assets/{DID-BI-lafPj.js → DID-kDZBvaKr.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-8m50TRZL.js → Dashboard-DoYboS3g.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-CN3hmRTc.js → Dropdown-LLEzI6l1.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-t0lzxsDT.js → EmailListRenderer-D2kmSvkg.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-DabpA3cQ.js → EvolutionSettings-DHj2yUGZ.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-BYN4UshY.js → FamilyGuardDashboard-B7Hg7fR0.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-n44OtIXp.js → Federation-CUdwU6aH.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-B-WXDu_I.js → FormItemContext-D1KrwjwY.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-Bm7v-mTf.js → GenericCardRenderer-CXGLoHfw.js} +1 -1
- package/src/assets/web-panel/assets/{Git-BMIS6sbo.js → Git-TG3Q9JWG.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-B1EhHobE.js → Governance-BJD7h_fv.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-Dy_HJWHo.js → Inference-Dky4l_bZ.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-BVdfUbZy.js → KnowledgeGraph-CCx9aXBV.js} +1 -1
- package/src/assets/web-panel/assets/Logs-BtesccPB.js +2 -0
- package/src/assets/web-panel/assets/MarkdownRenderer-DoN7oE2J.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-Bw4HWORj.js → Marketplace-BzL6KJMX.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-Be6DPfA1.js → McpTools-BReSRzEU.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-DlvLafC9.js → Memory-BhmkkCxd.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-Upc_Jwlt.js → MobileBridge-BeQMHr_n.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-I17jrUbY.js → MobileProjects-CphEwj_l.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-DyBzY0GH.js → Mtc-CFk1ibuN.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-2-7xAwEo.js → MtcAudit-CU9qrmbH.js} +5 -5
- package/src/assets/web-panel/assets/{Multisig-DtUZpFmZ.js → Multisig-CKR-Gh0Y.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-iInH7jBr.js → NLProgramming-D1qWY6Mx.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BO3Z3vaS.js → Notes-B4CM0C65.js} +4 -4
- package/src/assets/web-panel/assets/{NotificationSettings-ClX_0jFE.js → NotificationSettings-BTQYWveR.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-Czw742w4.js → OrderTableRenderer-DxN6fAn8.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BATEx24i.js → Organization-scgboNfd.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-B_PXMNia.js → Overflow-BP4aQhid.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BSiE8PqT.js → P2P-65jIo6MY.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-BbklUgZY.js → PdhVaultBrowser-Bfi4-tDQ.js} +5 -5
- package/src/assets/web-panel/assets/{Permissions-B7bpflT_.js → Permissions-DWtxT7bE.js} +3 -3
- package/src/assets/web-panel/assets/{PersonalDataHub-BWZS4BLy.js → PersonalDataHub-Bilmr8BR.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-DP2YSs6H.js → Pipeline-IPIMM-1y.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-DB9ptoH0.js → Privacy-DFB8RiVK.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-BAfePyYk.js → ProjectInit-DxZksvu1.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-BEXn4Cm3.js → ProjectSettings-DsjPsnYN.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-BzSs0rzn.js → Projects-CC5FBLLq.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-CRX9TdRO.js → Providers-Dk3ViPuF.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-DUWcSY5L.js → QrScannerModal-CJ8R6-bF.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-Cgo3Z_hs.js → QuickAsk-DJfCPORc.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-Dcinx0IW.js → Recommend-DjDygXeb.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-BMZzTnAN.js → RemoteSession-BJiJ1YHw.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-BdZzpOp9.js → Reputation-fYE8jPcc.js} +1 -1
- package/src/assets/web-panel/assets/{Row-DqM8GVcx.js → Row-vcvsjMm4.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-Soj_QBK3.js → RssFeed-CZnKliwn.js} +3 -3
- package/src/assets/web-panel/assets/{Search-Cn2es0-v.js → Search-DEStiFGI.js} +1 -1
- package/src/assets/web-panel/assets/{Security-t7C4hz3n.js → Security-BPb_szxS.js} +4 -4
- package/src/assets/web-panel/assets/{Services-ChF-e_Uf.js → Services-TR0xZhSF.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-BiPIyK-2.js → Skeleton-BSPu9boC.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-HgkKJenJ.js → Skills-CXEj9pC6.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-BSfluv_k.js → Sla-jlOlDGMA.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-Sm0Gz9tM.js → SpeechSettings-C8oPE_HQ.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-DlhBMnfU.js → SyncSettings-DZNUx8zt.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-C7OUvsnp.js → Tasks-B4T6aoOl.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-CrMtw87y.js → Templates-DeRgtwZ5.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-DSNSB6j5.js → Tenant-DDVoXGxa.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-Cmh78FQg.js → Terminal-DGAUoJMz.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-BE8b8lHR.js → TimelineRenderer-Co4Nkpjm.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-BrtgdIvJ.js → Tokens-DaMLa0Fm.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-HCmaoKDp.js → Trigger-C7iLr-Ik.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-GASQ4F-2.js → Trust-CxX_tQqi.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-B8kSzWGr.js → UkeySign-ClrdckEx.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-Nn-clhv5.js → VideoEditing-DgTVhaoK.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-DdYMKTYk.js → Wallet-SIbwES0O.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-xJXUr_eK.js → WebAuthn-YNqVnhZF.js} +3 -3
- package/src/assets/web-panel/assets/{WorkflowEditor-CbSa87av.js → WorkflowEditor-BvynT9mj.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CVrNLGUV.js → chat-X79b2tVy.js} +1 -1
- package/src/assets/web-panel/assets/{colors-e2veLfIA.js → colors-DioWDCbu.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CNd7nhUq.js → compact-item-DpAXXaqu.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DEudTVqv.js → createContext-BYq8bCQX.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-ONeWC5dH.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-BlSAFZa3.js → hasIn-CDJNMJ_n.js} +1 -1
- package/src/assets/web-panel/assets/index--QLnQuO9.js +1 -0
- package/src/assets/web-panel/assets/{index-BptI9bLu.js → index-00kVj4me.js} +1 -1
- package/src/assets/web-panel/assets/{index-4ZT0vIJt.js → index-B6wxVEIZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-CK6Rb66R.js → index-B8ChecWd.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bp4Gcn9u.js → index-B8_grEFP.js} +1 -1
- package/src/assets/web-panel/assets/{index-DVORJydf.js → index-BBvA7Hxj.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bqeb4jnC.js → index-BGEXGr9g.js} +1 -1
- package/src/assets/web-panel/assets/{index-CWuv47z0.js → index-BIO8EVHt.js} +1 -1
- package/src/assets/web-panel/assets/{index-DtrqgNBl.js → index-BK53HyEP.js} +1 -1
- package/src/assets/web-panel/assets/{index-ClROBPWd.js → index-Bh9la-GL.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bwtt-0CQ.js → index-Bt0zcD5R.js} +1 -1
- package/src/assets/web-panel/assets/{index-DyFZ7gDd.js → index-BwHEGjR7.js} +1 -1
- package/src/assets/web-panel/assets/{index-D_D7lcnQ.js → index-Byt1ny7l.js} +1 -1
- package/src/assets/web-panel/assets/{index-BMIhGZUR.js → index-C1-NqghD.js} +1 -1
- package/src/assets/web-panel/assets/{index-BRNCKg4q.js → index-C4xggKQp.js} +1 -1
- package/src/assets/web-panel/assets/{index-CgVwz2jD.js → index-C7cXBJcM.js} +1 -1
- package/src/assets/web-panel/assets/{index-7-7rr4Mf.js → index-CJEFd0QJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-BpH6T1gA.js → index-CLSt7mOy.js} +1 -1
- package/src/assets/web-panel/assets/{index-BmVFeSEq.js → index-COqkDiRU.js} +1 -1
- package/src/assets/web-panel/assets/{index-CHMrAZiR.js → index-CS3QdYDW.js} +1 -1
- package/src/assets/web-panel/assets/{index-CU4Y4VVN.js → index-CUbuCFWb.js} +1 -1
- package/src/assets/web-panel/assets/{index-Lm9pm1zm.js → index-CbxqdIzD.js} +1 -1
- package/src/assets/web-panel/assets/index-CkgeII0e.js +1 -0
- package/src/assets/web-panel/assets/{index-DFv-nsIT.js → index-Cx0_WiSe.js} +1 -1
- package/src/assets/web-panel/assets/{index-DJ5gsewX.js → index-D3J9FKFr.js} +1 -1
- package/src/assets/web-panel/assets/{index-DwjWRUTf.js → index-D88MWTOx.js} +1 -1
- package/src/assets/web-panel/assets/{index-B_UNX_xq.js → index-DAnXSg0r.js} +1 -1
- package/src/assets/web-panel/assets/{index-DFzvcZ3Q.js → index-DP9ZLjra.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ec6VBiV-.js → index-DSFkmRvK.js} +1 -1
- package/src/assets/web-panel/assets/{index-B1C1wS5c.js → index-DUe-hFGb.js} +1 -1
- package/src/assets/web-panel/assets/{index-CYNoXhxl.js → index-DZysaS5T.js} +1 -1
- package/src/assets/web-panel/assets/{index-C6zGNZ5H.js → index-DmNspbVU.js} +1 -1
- package/src/assets/web-panel/assets/{index-C4h_Bvd2.js → index-DwG9khVs.js} +1 -1
- package/src/assets/web-panel/assets/{index-hzUfIn4u.js → index-Q3WQ5Zhr.js} +1 -1
- package/src/assets/web-panel/assets/{index-Jk99aZIr.js → index-TqLyy6IR.js} +3 -3
- package/src/assets/web-panel/assets/{index-MuTb62K6.js → index-V6l3ia83.js} +1 -1
- package/src/assets/web-panel/assets/{index-D7yJceTZ.js → index-Wl55a61D.js} +1 -1
- package/src/assets/web-panel/assets/{index-0y7tHZdT.js → index-YviHYMA2.js} +1 -1
- package/src/assets/web-panel/assets/{index-BG-VNepa.js → index-mHAPEcPi.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-C6fpNcA5.js → initDefaultProps-18rmGkik.js} +1 -1
- package/src/assets/web-panel/assets/{motion-Bjh9Come.js → motion-3kvGzSgV.js} +1 -1
- package/src/assets/web-panel/assets/{move-DFa4ul-_.js → move-Dx3DiVHc.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-KoYqA_e5.js → mtc-parser-VX1dFJEI.js} +1 -1
- package/src/assets/web-panel/assets/{omit-ByTjP-wG.js → omit-CniSeCOA.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-CG_rmTxx.js → pickAttrs-RPggmcOd.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-LDePZ8V9.js → placementArrow-B45YBykr.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DZFzH4RR.js → responsiveObserve-D0nciAEn.js} +1 -1
- package/src/assets/web-panel/assets/{slide-DfXQyTvD.js → slide-UxLNWqjI.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-CuhqsJfO.js → statusUtils-CukpV_uI.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-qqVjJw5u.js → styleChecker-BIcEZk6Y.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-BPxnCxcb.js → useFlexGapSupport-Zah-xvV3.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-D11NLCjV.js → useFs-BA7ihKFN.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-HbZVcaCX.js → usePersonalDataHub-C64CsyY3.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-CZHQlfTu.js → vnode-Datcekgj.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CV3rUknJ.js → zoom-CaFQv1KF.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/agent.js +5 -0
- package/src/commands/config.js +19 -10
- package/src/commands/eval.js +39 -4
- package/src/data/changelog.json +52 -0
- package/src/generated/cc-agent-protocol.schema.json +65 -1
- package/src/lib/context-memory-kernel/jsonl-session-context-port.js +33 -0
- package/src/lib/context-memory-kernel/task-worklog-port.js +388 -0
- package/src/lib/diagnostic-excerpt.js +51 -0
- package/src/lib/diagnostic-workflow.js +10 -0
- package/src/lib/eval/evidence.js +19 -10
- package/src/lib/eval/outcomes.js +373 -0
- package/src/lib/eval/runner.js +6 -0
- package/src/lib/git-tool-input.js +37 -0
- package/src/lib/llm-config-defaults.js +32 -9
- package/src/lib/public-ide-capability-manifest.js +1 -0
- package/src/lib/read-file-loop-guard.js +54 -0
- package/src/lib/remote-read-loop-guard.js +12 -14
- package/src/lib/session-message-fabric.js +74 -37
- package/src/lib/shell-output.js +30 -0
- package/src/lib/task-progress-tracker.js +88 -0
- package/src/runtime/agent-core.js +97 -22
- package/src/runtime/headless-stream.js +143 -1
- package/src/assets/web-panel/assets/Logs-Dph_oLQk.js +0 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-CNHYqcxm.js +0 -1
- package/src/assets/web-panel/assets/devWarning-DW7he-SA.js +0 -1
- package/src/assets/web-panel/assets/index-IkoHuWRe.js +0 -1
- package/src/assets/web-panel/assets/index-MwqsDbb1.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as d}from"./index-
|
|
1
|
+
import{u as d}from"./index-TqLyy6IR.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-TqLyy6IR.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-TqLyy6IR.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-TqLyy6IR.js";import{i as f}from"./motion-3kvGzSgV.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-TqLyy6IR.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/agent.js
CHANGED
|
@@ -1211,6 +1211,7 @@ export function registerAgentCommand(program, dependencies = {}) {
|
|
|
1211
1211
|
const startupAnthropicModel = process.env.ANTHROPIC_MODEL;
|
|
1212
1212
|
const startupAnthropicDefaultModel = process.env.ANTHROPIC_DEFAULT_MODEL;
|
|
1213
1213
|
let settingsModel = null;
|
|
1214
|
+
let settingsModelAuthoritative = false;
|
|
1214
1215
|
|
|
1215
1216
|
// --settings native config overrides: a .claude/settings.json-shaped file
|
|
1216
1217
|
// (and the discovered .claude settings) may set `model` + `env` for this
|
|
@@ -1243,6 +1244,9 @@ export function registerAgentCommand(program, dependencies = {}) {
|
|
|
1243
1244
|
if (!options.model && sc.model) {
|
|
1244
1245
|
options.model = sc.model;
|
|
1245
1246
|
settingsModel = sc.model;
|
|
1247
|
+
settingsModelAuthoritative =
|
|
1248
|
+
Boolean(options.settings) ||
|
|
1249
|
+
Boolean(sc.managedFile && sc.modelSource === sc.managedFile);
|
|
1246
1250
|
}
|
|
1247
1251
|
settingsSandbox = sc.sandbox || null;
|
|
1248
1252
|
managedSettingsSandbox = sc.managedSandbox || null;
|
|
@@ -1391,6 +1395,7 @@ export function registerAgentCommand(program, dependencies = {}) {
|
|
|
1391
1395
|
anthropicModel: startupAnthropicModel,
|
|
1392
1396
|
anthropicDefaultModel: startupAnthropicDefaultModel,
|
|
1393
1397
|
settingsModel,
|
|
1398
|
+
allowForeignInheritedModel: settingsModelAuthoritative,
|
|
1394
1399
|
// ANTHROPIC_DEFAULT_MODEL is deliberately a new-session fallback;
|
|
1395
1400
|
// a resume/continue keeps its recorded model unless a higher source
|
|
1396
1401
|
// explicitly replaces it.
|
package/src/commands/config.js
CHANGED
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
inspectPrivatePaths,
|
|
35
35
|
repairPrivatePaths,
|
|
36
36
|
} from "../lib/secure-fs.js";
|
|
37
|
+
import { inheritedModelCompatible } from "../lib/llm-config-defaults.js";
|
|
37
38
|
|
|
38
39
|
export const _deps = {
|
|
39
40
|
spawnSync: (...args) => executionBroker.spawnSync(...args),
|
|
@@ -326,20 +327,28 @@ export async function resolveEffectiveConfig(options = {}) {
|
|
|
326
327
|
};
|
|
327
328
|
if (loaded.model) {
|
|
328
329
|
const previous = provenance["llm.model"]?.source;
|
|
329
|
-
setNested(config, "llm.model", loaded.model);
|
|
330
330
|
const modelSource =
|
|
331
331
|
loaded.modelSource || loaded.files.at(-1) || "settings";
|
|
332
|
-
|
|
332
|
+
const managedModel = Boolean(
|
|
333
|
+
loaded.managedFile && modelSource === loaded.managedFile,
|
|
334
|
+
);
|
|
335
|
+
const compatible =
|
|
336
|
+
managedModel ||
|
|
337
|
+
inheritedModelCompatible(config?.llm?.provider, loaded.model);
|
|
338
|
+
settingsLayer.model = {
|
|
333
339
|
source: modelSource,
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
? "managed"
|
|
337
|
-
: "settings",
|
|
338
|
-
overridden: previous ? [previous] : [],
|
|
339
|
-
locked: Boolean(
|
|
340
|
-
loaded.managedFile && modelSource === loaded.managedFile,
|
|
341
|
-
),
|
|
340
|
+
applied: compatible,
|
|
341
|
+
reason: compatible ? null : "provider_mismatch",
|
|
342
342
|
};
|
|
343
|
+
if (compatible) {
|
|
344
|
+
setNested(config, "llm.model", loaded.model);
|
|
345
|
+
provenance["llm.model"] = {
|
|
346
|
+
source: modelSource,
|
|
347
|
+
layer: managedModel ? "managed" : "settings",
|
|
348
|
+
overridden: previous ? [previous] : [],
|
|
349
|
+
locked: managedModel,
|
|
350
|
+
};
|
|
351
|
+
}
|
|
343
352
|
}
|
|
344
353
|
} catch (error) {
|
|
345
354
|
provenance.$settings = {
|
package/src/commands/eval.js
CHANGED
|
@@ -56,6 +56,22 @@ function verifyAgentTerminal(output) {
|
|
|
56
56
|
.map((line) => JSON.parse(line));
|
|
57
57
|
const results = events.filter((event) => event?.type === "result");
|
|
58
58
|
const terminal = results[0];
|
|
59
|
+
const usage = terminal?.usage;
|
|
60
|
+
const normalizedUsage =
|
|
61
|
+
usage &&
|
|
62
|
+
[
|
|
63
|
+
usage.input_tokens,
|
|
64
|
+
usage.output_tokens,
|
|
65
|
+
usage.cache_read_input_tokens,
|
|
66
|
+
usage.cache_creation_input_tokens,
|
|
67
|
+
].every((value) => Number.isSafeInteger(value) && value >= 0)
|
|
68
|
+
? {
|
|
69
|
+
inputTokens: usage.input_tokens,
|
|
70
|
+
outputTokens: usage.output_tokens,
|
|
71
|
+
cacheReadInputTokens: usage.cache_read_input_tokens,
|
|
72
|
+
cacheCreationInputTokens: usage.cache_creation_input_tokens,
|
|
73
|
+
}
|
|
74
|
+
: null;
|
|
59
75
|
return {
|
|
60
76
|
terminalVerified:
|
|
61
77
|
results.length === 1 &&
|
|
@@ -66,9 +82,20 @@ function verifyAgentTerminal(output) {
|
|
|
66
82
|
observedFallback: events.some((event) =>
|
|
67
83
|
["provider_fallback", "model_fallback"].includes(event?.subtype),
|
|
68
84
|
),
|
|
85
|
+
usage: normalizedUsage,
|
|
86
|
+
totalCostUsd:
|
|
87
|
+
Number.isFinite(terminal?.total_cost_usd) &&
|
|
88
|
+
terminal.total_cost_usd >= 0
|
|
89
|
+
? terminal.total_cost_usd
|
|
90
|
+
: null,
|
|
69
91
|
};
|
|
70
92
|
} catch {
|
|
71
|
-
return {
|
|
93
|
+
return {
|
|
94
|
+
terminalVerified: false,
|
|
95
|
+
observedFallback: null,
|
|
96
|
+
usage: null,
|
|
97
|
+
totalCostUsd: null,
|
|
98
|
+
};
|
|
72
99
|
}
|
|
73
100
|
}
|
|
74
101
|
|
|
@@ -204,9 +231,15 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
204
231
|
});
|
|
205
232
|
return;
|
|
206
233
|
}
|
|
207
|
-
const { terminalVerified, observedFallback } =
|
|
208
|
-
|
|
209
|
-
|
|
234
|
+
const { terminalVerified, observedFallback, usage, totalCostUsd } =
|
|
235
|
+
opts._argv
|
|
236
|
+
? {
|
|
237
|
+
terminalVerified: false,
|
|
238
|
+
observedFallback: null,
|
|
239
|
+
usage: null,
|
|
240
|
+
totalCostUsd: null,
|
|
241
|
+
}
|
|
242
|
+
: verifyAgentTerminal(out);
|
|
210
243
|
const ok = code === 0 && !signal && (opts._argv || terminalVerified);
|
|
211
244
|
done({
|
|
212
245
|
ok: Boolean(ok),
|
|
@@ -215,6 +248,8 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
215
248
|
signal: signal || null,
|
|
216
249
|
terminalVerified,
|
|
217
250
|
observedFallback,
|
|
251
|
+
usage,
|
|
252
|
+
totalCostUsd,
|
|
218
253
|
error: ok
|
|
219
254
|
? null
|
|
220
255
|
: code === 0 && !signal
|
package/src/data/changelog.json
CHANGED
|
@@ -1,6 +1,58 @@
|
|
|
1
1
|
{
|
|
2
2
|
"source": "CHANGELOG.md",
|
|
3
3
|
"releases": [
|
|
4
|
+
{
|
|
5
|
+
"productVersion": null,
|
|
6
|
+
"cliVersion": "0.166.59",
|
|
7
|
+
"cliVersions": ["0.166.59"],
|
|
8
|
+
"date": null,
|
|
9
|
+
"title": "",
|
|
10
|
+
"sections": [
|
|
11
|
+
{
|
|
12
|
+
"heading": "Added - cc CLI 0.166.59 + Agent Protocol 0.1.11 + Agent SDKs 0.2.11/0.2.9: durable IDE task worklogs and fresh-session handoff",
|
|
13
|
+
"body": "- Add Context/Memory Kernel `0.1.4` session checkpoints for bounded task goals,\n file evidence, failures, changes, plans, and compaction boundaries without\n promoting process notes into trusted long-term memory.\n- Publish the additive `TaskCheckpoint` contract through Agent Protocol\n `0.1.11`, TypeScript Agent SDK `0.2.11`, and Python Agent SDK `0.2.9` so\n every generated public projection matches the canonical Kernel schema.\n- Project verified checkpoints into workspace-local `WORKLOG.md` files, rebuild\n missing or altered projections from the signed JSONL session authority, and\n redact credentials while rejecting path traversal and linked-file redirects.\n- Let VS Code `0.37.105` and JetBrains `0.4.126` save the active worklog at a\n completed tool boundary and continue it in a new independent conversation.\n- Preserve the current user request as authoritative, inject inherited notes as\n bounded untrusted history, and fail visibly before model execution when\n history cannot be verified."
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"productVersion": null,
|
|
19
|
+
"cliVersion": "0.166.58",
|
|
20
|
+
"cliVersions": ["0.166.58"],
|
|
21
|
+
"date": null,
|
|
22
|
+
"title": "",
|
|
23
|
+
"sections": [
|
|
24
|
+
{
|
|
25
|
+
"heading": "Fixed - cc CLI 0.166.58: recover IDE diagnostics and release safety gates",
|
|
26
|
+
"body": "- Recover IDE-driven repair tasks from stale hash-edit snapshots and completed\n tool batches without discarding the active diagnostic context.\n- Preserve paged foreground and background command diagnostics, including\n remote CI artifacts, so a later repair step receives the actual error rather\n than a truncated or conflated summary.\n- Stabilize the Windows strict-sandbox Vitest retry path and block commits when\n a digest-bound Claude security test changes without its reviewed coverage map\n being updated.\n- Retry short-lived Windows file-sharing conflicts while an owned session\n message-fabric state lock is held, without replaying the underlying message\n mutation or weakening the 32-process delivery contract."
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"productVersion": null,
|
|
32
|
+
"cliVersion": "0.166.58",
|
|
33
|
+
"cliVersions": ["0.166.58"],
|
|
34
|
+
"date": null,
|
|
35
|
+
"title": "",
|
|
36
|
+
"sections": [
|
|
37
|
+
{
|
|
38
|
+
"heading": "Release - IDE extensions paired with CLI 0.166.58",
|
|
39
|
+
"body": "- Prepare VS Code/Open VSX `0.37.104` and JetBrains `0.4.125` with\n `chainlesschain@0.166.58` as the offline-safe recommended CLI version.\n- Surface the CLI release's IDE task recovery, preserved diagnostic evidence,\n normalized outcome metrics, and retry-safe Windows session-state writes in\n both extension changelogs."
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"productVersion": null,
|
|
45
|
+
"cliVersion": "0.166.57",
|
|
46
|
+
"cliVersions": ["0.166.57"],
|
|
47
|
+
"date": "2026-09-15",
|
|
48
|
+
"title": "",
|
|
49
|
+
"sections": [
|
|
50
|
+
{
|
|
51
|
+
"heading": "Release - cc CLI 0.166.57: outcome metrics baseline evidence",
|
|
52
|
+
"body": "- Ship the normalized eval outcome-metrics baseline: `task-outcome-report`\n script with the `eval:outcomes` entry point, outcome classification and\n evidence writing under `src/lib/eval/`, and the evaluation timeout-kill path\n with per-command tests.\n- Add the 2026-09-15 evidence bundle under\n `docs/cli/evidence/outcome-metrics/` capturing telemetry runs, summary,\n history, and comparison context for the eval baseline.\n- Align `llm-config-defaults` with the unified config manager so eval and\n config commands read the same defaults."
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
},
|
|
4
56
|
{
|
|
5
57
|
"productVersion": null,
|
|
6
58
|
"cliVersion": "0.166.56",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"contextMemory": {
|
|
25
25
|
"schemaId": "https://chainlesschain.com/schemas/context-memory-kernel/v1",
|
|
26
26
|
"schemaVersion": 1,
|
|
27
|
-
"sourceDigest": "sha256:
|
|
27
|
+
"sourceDigest": "sha256:e438a7d88b64a1cd08bb3d498e879622660a22ebbbeaddedb6bbc55973bf05f7",
|
|
28
28
|
"methods": {
|
|
29
29
|
"context/plan": {
|
|
30
30
|
"request": "ContextPlanRequest",
|
|
@@ -5811,6 +5811,70 @@
|
|
|
5811
5811
|
"maximum": 1
|
|
5812
5812
|
}
|
|
5813
5813
|
}
|
|
5814
|
+
},
|
|
5815
|
+
"TaskCheckpoint": {
|
|
5816
|
+
"type": "object",
|
|
5817
|
+
"required": [
|
|
5818
|
+
"schema",
|
|
5819
|
+
"sessionId",
|
|
5820
|
+
"revision",
|
|
5821
|
+
"scope",
|
|
5822
|
+
"trust",
|
|
5823
|
+
"state",
|
|
5824
|
+
"digest"
|
|
5825
|
+
],
|
|
5826
|
+
"additionalProperties": false,
|
|
5827
|
+
"properties": {
|
|
5828
|
+
"schema": {
|
|
5829
|
+
"const": "chainlesschain.task-checkpoint/v1"
|
|
5830
|
+
},
|
|
5831
|
+
"sessionId": {
|
|
5832
|
+
"type": "string",
|
|
5833
|
+
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$"
|
|
5834
|
+
},
|
|
5835
|
+
"revision": {
|
|
5836
|
+
"type": "integer",
|
|
5837
|
+
"minimum": 1
|
|
5838
|
+
},
|
|
5839
|
+
"scope": {
|
|
5840
|
+
"const": "session"
|
|
5841
|
+
},
|
|
5842
|
+
"trust": {
|
|
5843
|
+
"const": "untrusted"
|
|
5844
|
+
},
|
|
5845
|
+
"state": {
|
|
5846
|
+
"type": "object",
|
|
5847
|
+
"required": [
|
|
5848
|
+
"version",
|
|
5849
|
+
"sessionId",
|
|
5850
|
+
"workspace",
|
|
5851
|
+
"events",
|
|
5852
|
+
"requests"
|
|
5853
|
+
],
|
|
5854
|
+
"properties": {
|
|
5855
|
+
"version": {
|
|
5856
|
+
"const": 1
|
|
5857
|
+
},
|
|
5858
|
+
"sessionId": {
|
|
5859
|
+
"type": "string"
|
|
5860
|
+
},
|
|
5861
|
+
"workspace": {
|
|
5862
|
+
"type": "string"
|
|
5863
|
+
},
|
|
5864
|
+
"events": {
|
|
5865
|
+
"type": "array",
|
|
5866
|
+
"maxItems": 24
|
|
5867
|
+
},
|
|
5868
|
+
"requests": {
|
|
5869
|
+
"type": "array",
|
|
5870
|
+
"maxItems": 4
|
|
5871
|
+
}
|
|
5872
|
+
}
|
|
5873
|
+
},
|
|
5874
|
+
"digest": {
|
|
5875
|
+
"$ref": "#/$defs/ContextMemoryDigest"
|
|
5876
|
+
}
|
|
5877
|
+
}
|
|
5814
5878
|
}
|
|
5815
5879
|
}
|
|
5816
5880
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
canonicalDigest,
|
|
3
3
|
cloneCanonical,
|
|
4
|
+
verifyTaskCheckpoint,
|
|
4
5
|
} from "@chainlesschain/context-memory-kernel";
|
|
5
6
|
import {
|
|
6
7
|
appendAuthorityEventIfHead,
|
|
@@ -13,6 +14,7 @@ import {
|
|
|
13
14
|
|
|
14
15
|
const COMPACTION_EVENT_TYPE = "compact";
|
|
15
16
|
const RECONCILIATION_EVENT_TYPE = "context_memory_reconciliation";
|
|
17
|
+
const TASK_CHECKPOINT_EVENT_TYPE = "context_memory_task_checkpoint";
|
|
16
18
|
|
|
17
19
|
function receiptFromCompactionEvent(event) {
|
|
18
20
|
const canonical = event?.data?.canonical;
|
|
@@ -69,6 +71,37 @@ export class JsonlSessionContextPort {
|
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
73
|
|
|
74
|
+
readTaskCheckpoint() {
|
|
75
|
+
return readVerifiedProjection(this.sessionId, () => {
|
|
76
|
+
let checkpoint = null;
|
|
77
|
+
return {
|
|
78
|
+
accept: (event) => {
|
|
79
|
+
if (event.type === TASK_CHECKPOINT_EVENT_TYPE)
|
|
80
|
+
checkpoint = verifyTaskCheckpoint(event.data, this.sessionId);
|
|
81
|
+
},
|
|
82
|
+
finish: (authority) => ({ checkpoint, head: authority.headHash }),
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
commitTaskCheckpoint(checkpoint, expectedRevision) {
|
|
88
|
+
this._assertSession(checkpoint.sessionId);
|
|
89
|
+
verifyTaskCheckpoint(checkpoint, this.sessionId);
|
|
90
|
+
const current = this.readTaskCheckpoint();
|
|
91
|
+
if (
|
|
92
|
+
checkpoint.revision !== expectedRevision + 1 ||
|
|
93
|
+
(current.checkpoint?.revision || 0) !== expectedRevision
|
|
94
|
+
)
|
|
95
|
+
return { ok: false };
|
|
96
|
+
const appended = appendAuthorityEventIfHead(
|
|
97
|
+
this.sessionId,
|
|
98
|
+
TASK_CHECKPOINT_EVENT_TYPE,
|
|
99
|
+
checkpoint,
|
|
100
|
+
current.head,
|
|
101
|
+
);
|
|
102
|
+
return { ok: true, head: appended.hash };
|
|
103
|
+
}
|
|
104
|
+
|
|
72
105
|
async readSnapshot(sessionId) {
|
|
73
106
|
this._assertSession(sessionId);
|
|
74
107
|
return readVerifiedProjection(sessionId, () => {
|