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.
Files changed (177) hide show
  1. package/package.json +3 -2
  2. package/src/assets/web-panel/assets/{AIOps-CBFnwYRX.js → AIOps-B9i3kk5f.js} +1 -1
  3. package/src/assets/web-panel/assets/{ActionButton-Sl4eXWpR.js → ActionButton-DGMs1wBm.js} +1 -1
  4. package/src/assets/web-panel/assets/{Analytics-DB0lD9Kb.js → Analytics-D-JGeynM.js} +3 -3
  5. package/src/assets/web-panel/assets/{AppLayout-j77EmkRK.js → AppLayout-DLECnXlP.js} +5 -5
  6. package/src/assets/web-panel/assets/{Artifacts-CU3izCW9.js → Artifacts-CwaTiXN4.js} +1 -1
  7. package/src/assets/web-panel/assets/{Audit-C44fSibb.js → Audit-BCb7s5Ky.js} +1 -1
  8. package/src/assets/web-panel/assets/{BackgroundAgents-pM_NnJW3.js → BackgroundAgents-D4IOzvKs.js} +1 -1
  9. package/src/assets/web-panel/assets/{Backup-AOHXqhxN.js → Backup-Cknunk10.js} +1 -1
  10. package/src/assets/web-panel/assets/{BaseInput-DaYc8oA_.js → BaseInput-DnU8pbUh.js} +1 -1
  11. package/src/assets/web-panel/assets/{Chat-CmlCAXxW.js → Chat-DOouYIhz.js} +5 -5
  12. package/src/assets/web-panel/assets/{ChatBubbleRenderer-CkCSkJDJ.js → ChatBubbleRenderer-C4tdSms8.js} +1 -1
  13. package/src/assets/web-panel/assets/{Checkbox-DISI7iaA.js → Checkbox-BrumNw6V.js} +1 -1
  14. package/src/assets/web-panel/assets/{Codegen-BYpeKUpf.js → Codegen-B4E_uI_N.js} +1 -1
  15. package/src/assets/web-panel/assets/{Col-Dk6VwWGq.js → Col-C7H2sdaL.js} +1 -1
  16. package/src/assets/web-panel/assets/{Community-BDyTedMu.js → Community-BFdzcMSl.js} +1 -1
  17. package/src/assets/web-panel/assets/{Compact-CTNlGM9X.js → Compact-BzVXohrg.js} +1 -1
  18. package/src/assets/web-panel/assets/{Compliance-C_tw3IdT.js → Compliance-B_4QcuSH.js} +1 -1
  19. package/src/assets/web-panel/assets/{Cowork-cduHWEmo.js → Cowork-DjuQzJx8.js} +3 -3
  20. package/src/assets/web-panel/assets/{Cron-Dqotjv-s.js → Cron-Bf2iY-1-.js} +2 -2
  21. package/src/assets/web-panel/assets/{Crosschain-ByW7RsJQ.js → Crosschain-CY9QW7IT.js} +1 -1
  22. package/src/assets/web-panel/assets/{DID-BI-lafPj.js → DID-kDZBvaKr.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dashboard-8m50TRZL.js → Dashboard-DoYboS3g.js} +2 -2
  24. package/src/assets/web-panel/assets/{Dropdown-CN3hmRTc.js → Dropdown-LLEzI6l1.js} +1 -1
  25. package/src/assets/web-panel/assets/{EmailListRenderer-t0lzxsDT.js → EmailListRenderer-D2kmSvkg.js} +1 -1
  26. package/src/assets/web-panel/assets/{EvolutionSettings-DabpA3cQ.js → EvolutionSettings-DHj2yUGZ.js} +1 -1
  27. package/src/assets/web-panel/assets/{FamilyGuardDashboard-BYN4UshY.js → FamilyGuardDashboard-B7Hg7fR0.js} +1 -1
  28. package/src/assets/web-panel/assets/{Federation-n44OtIXp.js → Federation-CUdwU6aH.js} +1 -1
  29. package/src/assets/web-panel/assets/{FormItemContext-B-WXDu_I.js → FormItemContext-D1KrwjwY.js} +1 -1
  30. package/src/assets/web-panel/assets/{GenericCardRenderer-Bm7v-mTf.js → GenericCardRenderer-CXGLoHfw.js} +1 -1
  31. package/src/assets/web-panel/assets/{Git-BMIS6sbo.js → Git-TG3Q9JWG.js} +2 -2
  32. package/src/assets/web-panel/assets/{Governance-B1EhHobE.js → Governance-BJD7h_fv.js} +1 -1
  33. package/src/assets/web-panel/assets/{Inference-Dy_HJWHo.js → Inference-Dky4l_bZ.js} +1 -1
  34. package/src/assets/web-panel/assets/{KnowledgeGraph-BVdfUbZy.js → KnowledgeGraph-CCx9aXBV.js} +1 -1
  35. package/src/assets/web-panel/assets/Logs-BtesccPB.js +2 -0
  36. package/src/assets/web-panel/assets/MarkdownRenderer-DoN7oE2J.js +1 -0
  37. package/src/assets/web-panel/assets/{Marketplace-Bw4HWORj.js → Marketplace-BzL6KJMX.js} +1 -1
  38. package/src/assets/web-panel/assets/{McpTools-Be6DPfA1.js → McpTools-BReSRzEU.js} +3 -3
  39. package/src/assets/web-panel/assets/{Memory-DlvLafC9.js → Memory-BhmkkCxd.js} +2 -2
  40. package/src/assets/web-panel/assets/{MobileBridge-Upc_Jwlt.js → MobileBridge-BeQMHr_n.js} +1 -1
  41. package/src/assets/web-panel/assets/{MobileProjects-I17jrUbY.js → MobileProjects-CphEwj_l.js} +1 -1
  42. package/src/assets/web-panel/assets/{Mtc-DyBzY0GH.js → Mtc-CFk1ibuN.js} +2 -2
  43. package/src/assets/web-panel/assets/{MtcAudit-2-7xAwEo.js → MtcAudit-CU9qrmbH.js} +5 -5
  44. package/src/assets/web-panel/assets/{Multisig-DtUZpFmZ.js → Multisig-CKR-Gh0Y.js} +3 -3
  45. package/src/assets/web-panel/assets/{NLProgramming-iInH7jBr.js → NLProgramming-D1qWY6Mx.js} +1 -1
  46. package/src/assets/web-panel/assets/{Notes-BO3Z3vaS.js → Notes-B4CM0C65.js} +4 -4
  47. package/src/assets/web-panel/assets/{NotificationSettings-ClX_0jFE.js → NotificationSettings-BTQYWveR.js} +1 -1
  48. package/src/assets/web-panel/assets/{OrderTableRenderer-Czw742w4.js → OrderTableRenderer-DxN6fAn8.js} +1 -1
  49. package/src/assets/web-panel/assets/{Organization-BATEx24i.js → Organization-scgboNfd.js} +4 -4
  50. package/src/assets/web-panel/assets/{Overflow-B_PXMNia.js → Overflow-BP4aQhid.js} +1 -1
  51. package/src/assets/web-panel/assets/{P2P-BSiE8PqT.js → P2P-65jIo6MY.js} +2 -2
  52. package/src/assets/web-panel/assets/{PdhVaultBrowser-BbklUgZY.js → PdhVaultBrowser-Bfi4-tDQ.js} +5 -5
  53. package/src/assets/web-panel/assets/{Permissions-B7bpflT_.js → Permissions-DWtxT7bE.js} +3 -3
  54. package/src/assets/web-panel/assets/{PersonalDataHub-BWZS4BLy.js → PersonalDataHub-Bilmr8BR.js} +4 -4
  55. package/src/assets/web-panel/assets/{Pipeline-DP2YSs6H.js → Pipeline-IPIMM-1y.js} +1 -1
  56. package/src/assets/web-panel/assets/{Privacy-DB9ptoH0.js → Privacy-DFB8RiVK.js} +1 -1
  57. package/src/assets/web-panel/assets/{ProjectInit-BAfePyYk.js → ProjectInit-DxZksvu1.js} +2 -2
  58. package/src/assets/web-panel/assets/{ProjectSettings-BEXn4Cm3.js → ProjectSettings-DsjPsnYN.js} +2 -2
  59. package/src/assets/web-panel/assets/{Projects-BzSs0rzn.js → Projects-CC5FBLLq.js} +1 -1
  60. package/src/assets/web-panel/assets/{Providers-CRX9TdRO.js → Providers-Dk3ViPuF.js} +1 -1
  61. package/src/assets/web-panel/assets/{QrScannerModal-DUWcSY5L.js → QrScannerModal-CJ8R6-bF.js} +1 -1
  62. package/src/assets/web-panel/assets/{QuickAsk-Cgo3Z_hs.js → QuickAsk-DJfCPORc.js} +1 -1
  63. package/src/assets/web-panel/assets/{Recommend-Dcinx0IW.js → Recommend-DjDygXeb.js} +1 -1
  64. package/src/assets/web-panel/assets/{RemoteSession-BMZzTnAN.js → RemoteSession-BJiJ1YHw.js} +2 -2
  65. package/src/assets/web-panel/assets/{Reputation-BdZzpOp9.js → Reputation-fYE8jPcc.js} +1 -1
  66. package/src/assets/web-panel/assets/{Row-DqM8GVcx.js → Row-vcvsjMm4.js} +1 -1
  67. package/src/assets/web-panel/assets/{RssFeed-Soj_QBK3.js → RssFeed-CZnKliwn.js} +3 -3
  68. package/src/assets/web-panel/assets/{Search-Cn2es0-v.js → Search-DEStiFGI.js} +1 -1
  69. package/src/assets/web-panel/assets/{Security-t7C4hz3n.js → Security-BPb_szxS.js} +4 -4
  70. package/src/assets/web-panel/assets/{Services-ChF-e_Uf.js → Services-TR0xZhSF.js} +2 -2
  71. package/src/assets/web-panel/assets/{Skeleton-BiPIyK-2.js → Skeleton-BSPu9boC.js} +1 -1
  72. package/src/assets/web-panel/assets/{Skills-HgkKJenJ.js → Skills-CXEj9pC6.js} +1 -1
  73. package/src/assets/web-panel/assets/{Sla-BSfluv_k.js → Sla-jlOlDGMA.js} +1 -1
  74. package/src/assets/web-panel/assets/{SpeechSettings-Sm0Gz9tM.js → SpeechSettings-C8oPE_HQ.js} +1 -1
  75. package/src/assets/web-panel/assets/{SyncSettings-DlhBMnfU.js → SyncSettings-DZNUx8zt.js} +2 -2
  76. package/src/assets/web-panel/assets/{Tasks-C7OUvsnp.js → Tasks-B4T6aoOl.js} +1 -1
  77. package/src/assets/web-panel/assets/{Templates-CrMtw87y.js → Templates-DeRgtwZ5.js} +1 -1
  78. package/src/assets/web-panel/assets/{Tenant-DSNSB6j5.js → Tenant-DDVoXGxa.js} +1 -1
  79. package/src/assets/web-panel/assets/{Terminal-Cmh78FQg.js → Terminal-DGAUoJMz.js} +2 -2
  80. package/src/assets/web-panel/assets/{TimelineRenderer-BE8b8lHR.js → TimelineRenderer-Co4Nkpjm.js} +1 -1
  81. package/src/assets/web-panel/assets/{Tokens-BrtgdIvJ.js → Tokens-DaMLa0Fm.js} +1 -1
  82. package/src/assets/web-panel/assets/{Trigger-HCmaoKDp.js → Trigger-C7iLr-Ik.js} +1 -1
  83. package/src/assets/web-panel/assets/{Trust-GASQ4F-2.js → Trust-CxX_tQqi.js} +1 -1
  84. package/src/assets/web-panel/assets/{UkeySign-B8kSzWGr.js → UkeySign-ClrdckEx.js} +1 -1
  85. package/src/assets/web-panel/assets/{VideoEditing-Nn-clhv5.js → VideoEditing-DgTVhaoK.js} +1 -1
  86. package/src/assets/web-panel/assets/{Wallet-DdYMKTYk.js → Wallet-SIbwES0O.js} +4 -4
  87. package/src/assets/web-panel/assets/{WebAuthn-xJXUr_eK.js → WebAuthn-YNqVnhZF.js} +3 -3
  88. package/src/assets/web-panel/assets/{WorkflowEditor-CbSa87av.js → WorkflowEditor-BvynT9mj.js} +1 -1
  89. package/src/assets/web-panel/assets/{chat-CVrNLGUV.js → chat-X79b2tVy.js} +1 -1
  90. package/src/assets/web-panel/assets/{colors-e2veLfIA.js → colors-DioWDCbu.js} +1 -1
  91. package/src/assets/web-panel/assets/{compact-item-CNd7nhUq.js → compact-item-DpAXXaqu.js} +1 -1
  92. package/src/assets/web-panel/assets/{createContext-DEudTVqv.js → createContext-BYq8bCQX.js} +1 -1
  93. package/src/assets/web-panel/assets/devWarning-ONeWC5dH.js +1 -0
  94. package/src/assets/web-panel/assets/{hasIn-BlSAFZa3.js → hasIn-CDJNMJ_n.js} +1 -1
  95. package/src/assets/web-panel/assets/index--QLnQuO9.js +1 -0
  96. package/src/assets/web-panel/assets/{index-BptI9bLu.js → index-00kVj4me.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-4ZT0vIJt.js → index-B6wxVEIZ.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-CK6Rb66R.js → index-B8ChecWd.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-Bp4Gcn9u.js → index-B8_grEFP.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-DVORJydf.js → index-BBvA7Hxj.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-Bqeb4jnC.js → index-BGEXGr9g.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-CWuv47z0.js → index-BIO8EVHt.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-DtrqgNBl.js → index-BK53HyEP.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-ClROBPWd.js → index-Bh9la-GL.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-Bwtt-0CQ.js → index-Bt0zcD5R.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-DyFZ7gDd.js → index-BwHEGjR7.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-D_D7lcnQ.js → index-Byt1ny7l.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-BMIhGZUR.js → index-C1-NqghD.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-BRNCKg4q.js → index-C4xggKQp.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-CgVwz2jD.js → index-C7cXBJcM.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-7-7rr4Mf.js → index-CJEFd0QJ.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-BpH6T1gA.js → index-CLSt7mOy.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-BmVFeSEq.js → index-COqkDiRU.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-CHMrAZiR.js → index-CS3QdYDW.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-CU4Y4VVN.js → index-CUbuCFWb.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-Lm9pm1zm.js → index-CbxqdIzD.js} +1 -1
  117. package/src/assets/web-panel/assets/index-CkgeII0e.js +1 -0
  118. package/src/assets/web-panel/assets/{index-DFv-nsIT.js → index-Cx0_WiSe.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-DJ5gsewX.js → index-D3J9FKFr.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-DwjWRUTf.js → index-D88MWTOx.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-B_UNX_xq.js → index-DAnXSg0r.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-DFzvcZ3Q.js → index-DP9ZLjra.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-Ec6VBiV-.js → index-DSFkmRvK.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-B1C1wS5c.js → index-DUe-hFGb.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-CYNoXhxl.js → index-DZysaS5T.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-C6zGNZ5H.js → index-DmNspbVU.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-C4h_Bvd2.js → index-DwG9khVs.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-hzUfIn4u.js → index-Q3WQ5Zhr.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-Jk99aZIr.js → index-TqLyy6IR.js} +3 -3
  130. package/src/assets/web-panel/assets/{index-MuTb62K6.js → index-V6l3ia83.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-D7yJceTZ.js → index-Wl55a61D.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-0y7tHZdT.js → index-YviHYMA2.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-BG-VNepa.js → index-mHAPEcPi.js} +1 -1
  134. package/src/assets/web-panel/assets/{initDefaultProps-C6fpNcA5.js → initDefaultProps-18rmGkik.js} +1 -1
  135. package/src/assets/web-panel/assets/{motion-Bjh9Come.js → motion-3kvGzSgV.js} +1 -1
  136. package/src/assets/web-panel/assets/{move-DFa4ul-_.js → move-Dx3DiVHc.js} +1 -1
  137. package/src/assets/web-panel/assets/{mtc-parser-KoYqA_e5.js → mtc-parser-VX1dFJEI.js} +1 -1
  138. package/src/assets/web-panel/assets/{omit-ByTjP-wG.js → omit-CniSeCOA.js} +1 -1
  139. package/src/assets/web-panel/assets/{pickAttrs-CG_rmTxx.js → pickAttrs-RPggmcOd.js} +1 -1
  140. package/src/assets/web-panel/assets/{placementArrow-LDePZ8V9.js → placementArrow-B45YBykr.js} +1 -1
  141. package/src/assets/web-panel/assets/{responsiveObserve-DZFzH4RR.js → responsiveObserve-D0nciAEn.js} +1 -1
  142. package/src/assets/web-panel/assets/{slide-DfXQyTvD.js → slide-UxLNWqjI.js} +1 -1
  143. package/src/assets/web-panel/assets/{statusUtils-CuhqsJfO.js → statusUtils-CukpV_uI.js} +1 -1
  144. package/src/assets/web-panel/assets/{styleChecker-qqVjJw5u.js → styleChecker-BIcEZk6Y.js} +1 -1
  145. package/src/assets/web-panel/assets/{useFlexGapSupport-BPxnCxcb.js → useFlexGapSupport-Zah-xvV3.js} +1 -1
  146. package/src/assets/web-panel/assets/{useFs-D11NLCjV.js → useFs-BA7ihKFN.js} +1 -1
  147. package/src/assets/web-panel/assets/{usePersonalDataHub-HbZVcaCX.js → usePersonalDataHub-C64CsyY3.js} +1 -1
  148. package/src/assets/web-panel/assets/{vnode-CZHQlfTu.js → vnode-Datcekgj.js} +1 -1
  149. package/src/assets/web-panel/assets/{zoom-CV3rUknJ.js → zoom-CaFQv1KF.js} +1 -1
  150. package/src/assets/web-panel/index.html +1 -1
  151. package/src/commands/agent.js +5 -0
  152. package/src/commands/config.js +19 -10
  153. package/src/commands/eval.js +39 -4
  154. package/src/data/changelog.json +52 -0
  155. package/src/generated/cc-agent-protocol.schema.json +65 -1
  156. package/src/lib/context-memory-kernel/jsonl-session-context-port.js +33 -0
  157. package/src/lib/context-memory-kernel/task-worklog-port.js +388 -0
  158. package/src/lib/diagnostic-excerpt.js +51 -0
  159. package/src/lib/diagnostic-workflow.js +10 -0
  160. package/src/lib/eval/evidence.js +19 -10
  161. package/src/lib/eval/outcomes.js +373 -0
  162. package/src/lib/eval/runner.js +6 -0
  163. package/src/lib/git-tool-input.js +37 -0
  164. package/src/lib/llm-config-defaults.js +32 -9
  165. package/src/lib/public-ide-capability-manifest.js +1 -0
  166. package/src/lib/read-file-loop-guard.js +54 -0
  167. package/src/lib/remote-read-loop-guard.js +12 -14
  168. package/src/lib/session-message-fabric.js +74 -37
  169. package/src/lib/shell-output.js +30 -0
  170. package/src/lib/task-progress-tracker.js +88 -0
  171. package/src/runtime/agent-core.js +97 -22
  172. package/src/runtime/headless-stream.js +143 -1
  173. package/src/assets/web-panel/assets/Logs-Dph_oLQk.js +0 -2
  174. package/src/assets/web-panel/assets/MarkdownRenderer-CNHYqcxm.js +0 -1
  175. package/src/assets/web-panel/assets/devWarning-DW7he-SA.js +0 -1
  176. package/src/assets/web-panel/assets/index-IkoHuWRe.js +0 -1
  177. package/src/assets/web-panel/assets/index-MwqsDbb1.js +0 -1
@@ -1 +1 @@
1
- import{u as d}from"./index-Jk99aZIr.js";import{u as c}from"./useShellMode-CgR0wCYM.js";function u({accept:l=""}={}){return new Promise(a=>{if(typeof document>"u"){a({canceled:!0,path:null,content:null});return}const n=document.createElement("input");n.type="file",l&&(n.accept=l),n.style.display="none",document.body.appendChild(n);let o=!1;const i=()=>{n.parentNode&&n.parentNode.removeChild(n)},r=()=>{if(o)return;o=!0;const e=n.files&&n.files[0];if(!e){i(),a({canceled:!0,path:null,content:null});return}const t=new FileReader;t.onload=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:typeof t.result=="string"?t.result:""})},t.onerror=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:null,reason:"read_failed"})},t.readAsText(e)};n.addEventListener("change",r),n.click()})}function f(l,{defaultPath:a="download.txt"}={}){if(typeof document>"u")return{canceled:!0,path:null};const n=new Blob([l],{type:"text/plain"}),o=URL.createObjectURL(n),i=document.createElement("a");return i.href=o,i.download=a,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(o),{canceled:!1,path:a}}function p(l){if(!Array.isArray(l))return"";const a=[];for(const n of l)if(Array.isArray(n.extensions))for(const o of n.extensions)a.push(`.${o.replace(/^\./,"")}`);return a.join(",")}function m(){const l=d();async function a(r={}){if(c().isEmbedded){const e=await l.sendRaw({type:"fs.openDialog",title:r.title,filters:r.filters},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDialog failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,content:t.content??null,size:t.size,reason:t.reason}}return u({accept:p(r.filters)})}async function n(r,e={}){if(typeof r!="string")throw new Error("content must be a string");if(c().isEmbedded){const t=await l.sendRaw({type:"fs.saveDialog",title:e.title,defaultPath:e.defaultPath,filters:e.filters,content:r},6e4);if(t&&t.ok===!1)throw new Error(t.error||"fs.saveDialog failed");const s=t?.result??t;return{canceled:!!s.canceled,path:s.path??null}}return f(r,{defaultPath:e.defaultPath})}async function o(r,e={}){const t=JSON.stringify(r,null,2),s={...e,defaultPath:e.defaultPath||"data.json",filters:e.filters||[{name:"JSON",extensions:["json"]}]};return n(t,s)}async function i(r={}){if(!c().isEmbedded)return{canceled:!0,path:null,initialized:!1,unsupported:!0};const e=await l.sendRaw({type:"fs.openDirectory",title:r.title},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDirectory failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,initialized:!!t.initialized}}return{pickFileText:a,saveText:n,saveJson:o,pickDirectory:i}}export{m as u};
1
+ import{u as d}from"./index-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-Jk99aZIr.js";import{u as _}from"./useShellMode-CgR0wCYM.js";function d(r){if(!r)return r;if(r.error)throw new Error(r.error);return r.result!==void 0?r.result:r}async function p(r,s={},e=!0){try{if(e!==!0||!r||typeof r.sendRaw!="function")return{status:"unavailable",path:null};const a=await r.sendRaw({type:"fs.openDirectory",title:s.title},6e4);if(a&&(a.ok===!1||a.error))return{status:"unavailable",path:null};const t=a&&a.result!==void 0?a.result:a;return t&&(t.ok===!1||t.error||t.unsupported===!0)?{status:"unavailable",path:null}:t&&t.canceled===!0?{status:"cancelled",path:null}:t&&typeof t.path=="string"&&t.path.length>0?{status:"selected",path:t.path}:{status:"unavailable",path:null}}catch{return{status:"unavailable",path:null}}}function b(r,s,e,a,t){return typeof r.onMessage!="function"||typeof r.sendRaw!="function"?r.sendRaw({type:s,...e},t).then(d):new Promise((n,u)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${s}.event`,m=`${s}.end`;let c=!1,h=()=>{};const o=(i,f)=>{if(!c){c=!0,clearTimeout(g);try{h()}catch{}i(f)}},g=setTimeout(()=>{o(u,new Error(`stream timeout (${t}ms): ${s}`))},t),y=r.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof a=="function")try{a(i.event||i)}catch{}return}if(i.type===m){o(n,d(i));return}i.type==="error"&&o(u,new Error(i.message||"stream error"))}});h=typeof y=="function"?y:()=>{},Promise.resolve(r.sendRaw({id:l,type:s,...e},t)).catch(()=>{})})}function k(){const r=v(),s=_(),e=(a,t={},n=3e4)=>r.sendRaw({type:a,...t},n).then(d);return{async health(){return await e("personal-data-hub.health",{},8e3)},async stats(){return await e("personal-data-hub.stats",{},8e3)},async listAdapters(){return await e("personal-data-hub.list-adapters",{},5e3)},async pickFile(a={}){try{const t=await r.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),n=t&&t.result!==void 0?t.result:t,u=n&&typeof n.path=="string"?n.path:n&&typeof n.filePath=="string"?n.filePath:null;return n&&n.canceled!==!0&&u?u:null}catch{return null}},async pickDirectoryResult(a={}){return await p(r,a,s.isEmbedded)},async pickDirectory(a={}){const t=await p(r,a,s.isEmbedded);return t.status==="selected"?t.path:null},async adapterReadiness(a){return await e("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},async syncAdapter(a,t={}){return await e("personal-data-hub.sync-adapter",{name:a,options:t},6e5)},async syncAll(a={}){return await e("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:t=20,seed:n=1}={}){return await e("personal-data-hub.register-mock",{name:a,count:t,seed:n})},async unregister(a){return await e("personal-data-hub.unregister",{name:a})},async ask(a,t={}){return await e("personal-data-hub.ask",{question:a,options:t},18e4)},async queryEvents(a={}){return await e("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await e("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await e("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await e("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await e("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,t={}){return await e("personal-data-hub.register-email",{account:a,opts:t},15e3)},async unregisterEmail(a){return await e("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await e("personal-data-hub.list-email-accounts",{},5e3)},async activateEmail(a){return await e("personal-data-hub.activate-email",{email:a},5e3)},async eventDetail(a){return await e("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,t={},n){return await b(r,"personal-data-hub.sync-adapter-stream",{name:a,options:t},n,6e5)},async syncAllStream(a={},t){return await b(r,"personal-data-hub.sync-all-stream",{options:a},t,9e5)},async registerAlipay(a,t={}){return await e("personal-data-hub.register-alipay",{account:a,opts:t},15e3)},async unregisterAlipay(a){return await e("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await e("personal-data-hub.list-alipay-accounts",{},5e3)},async activateAlipay(a){return await e("personal-data-hub.activate-alipay",{email:a},5e3)},async importAlipayBill({zipPath:a,csvPath:t,zipPassword:n}={}){return await e("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:t,zipPassword:n},3e5)},async reviewQueueList(a=50){return await e("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,t){return await e("personal-data-hub.review-decision",{reviewId:a,decision:t},5e3)},async manualMerge(a,t){return await e("personal-data-hub.manual-merge",{aId:a,bId:t},5e3)},async manualUnmerge(a){return await e("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await e("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await e("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await e("personal-data-hub.skills-list",{},5e3)},async runSkill(a,t={}){return await e("personal-data-hub.run-skill",{name:a,options:t},12e4)},async openAichatLogin(a,t={}){return await e("personal-data-hub.aichat-open-login",{vendor:a,opts:t},1e4)},async probeAichatCookies(a,t){return await e("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:t},1e4)},async registerAichatVendor(a,t,n={}){return await e("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:t,opts:n},3e4)},async rotateAichatLogin(a){return await e("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await e("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await e("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await e("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await e("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l}={}){return await e("personal-data-hub.register-wechat",{account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l},45e3)},async listWechatAccounts(){return await e("personal-data-hub.list-wechat-accounts",{},5e3)},async activateWechat(a,t={}){return await e("personal-data-hub.activate-wechat",{uin:a,fridaOpts:t.fridaOpts,keyProviderOverride:t.keyProviderOverride},45e3)},async unregisterWechat(a){return await e("personal-data-hub.unregister-wechat",{uin:a},5e3)},async bilibiliAdbSync(a={}){return await e("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await e("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await e("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await e("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await e("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await e("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await e("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await e("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{k as u};
1
+ import{u as v}from"./index-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-Jk99aZIr.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-Bn1JzzAn.js";function c(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,u=e;if(Array.isArray(e)&&(u=i(e)[0]),!u)return null;const n=o(u,r,s);return n.props=t?a(a({},n.props),r):n.props,l(typeof n.props.class!="object","class must be string"),n}function V(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return e.map(s=>c(s,r,t))}function v(e,r,t){p(o(e,a({},r)),t)}const m=e=>(e||[]).some(r=>g(r)?!(r.type===d||r.type===f&&!m(r.children)):!0)?e:null;function h(e,r,t,s){var u;const n=(u=e[r])===null||u===void 0?void 0:u.call(e,t);return m(n)?n:s?.()}export{h as a,V as b,c,v as t};
1
+ import{N as i,h as a,w as l}from"./index-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-Jk99aZIr.js";import{i as f}from"./motion-Bjh9Come.js";const c=new o("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),y=new o("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),a=new o("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),s=new o("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),g=new o("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),O=new o("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),l=new o("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),u=new o("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),p=new o("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),z=new o("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),K=new o("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),w=new o("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),I={zoom:{inKeyframes:c,outKeyframes:y},"zoom-big":{inKeyframes:a,outKeyframes:s},"zoom-big-fast":{inKeyframes:a,outKeyframes:s},"zoom-left":{inKeyframes:l,outKeyframes:u},"zoom-right":{inKeyframes:p,outKeyframes:z},"zoom-up":{inKeyframes:g,outKeyframes:O},"zoom-down":{inKeyframes:K,outKeyframes:w}},h=(n,r)=>{const{antCls:m}=n,t=`${m}-${r}`,{inKeyframes:i,outKeyframes:e}=I[r];return[f(t,i,e,r==="zoom-big-fast"?n.motionDurationFast:n.motionDurationMid),{[`
1
+ import{K as o}from"./index-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-Jk99aZIr.js"></script>
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">
@@ -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.
@@ -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
- provenance["llm.model"] = {
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
- layer:
335
- loaded.managedFile && modelSource === loaded.managedFile
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 = {
@@ -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 { terminalVerified: false, observedFallback: null };
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 } = opts._argv
208
- ? { terminalVerified: false, observedFallback: null }
209
- : verifyAgentTerminal(out);
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
@@ -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:6599168b8fa9ace2d1697c44c2ac10141aa20bd7e9be29e9ea814ff032f87d68",
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, () => {