chainlesschain 0.162.176 → 0.162.178
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/package.json +1 -1
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/{AIOps-BDLu5Elz.js → AIOps-DRftcSue.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DH5us-CK.js → ActionButton-BFvUaMKR.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-BZ0u8IFG.js → Analytics-C0-Rru4P.js} +3 -3
- package/src/assets/web-panel/assets/AppLayout-bx-BCljj.js +9 -0
- package/src/assets/web-panel/assets/{Artifacts-Br2YBbh_.js → Artifacts-DAJ8B3Un.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-C3C6a482.js → Audit-hOk4L1lr.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-CzHvebcj.js → BackgroundAgents-3pbDpM9z.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-DZNHYDFd.js → Backup-BtziGDn9.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-VRiC4fIx.js → BaseInput-kmshphJ3.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-Cm08WWAD.js → Chat-d7tGSosA.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-CGHYrugQ.js → ChatBubbleRenderer-p-_PBpX_.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-DtByk7d7.js → Checkbox-C4Eh4Tz5.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-CphXXOfD.js → Codegen-r7gmhZyA.js} +1 -1
- package/src/assets/web-panel/assets/{Col-Hz86TnLR.js → Col-U7mDaGlL.js} +1 -1
- package/src/assets/web-panel/assets/{Community-HP03ltpD.js → Community-Bpu8aH1T.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-B_N1mqQz.js → Compact-CHb2XBJe.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-CVztRpi8.js → Compliance-Cn_r4dey.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-wUVOyZih.js → Cowork-CdMWfDcz.js} +4 -4
- package/src/assets/web-panel/assets/{Cron-DW5TLJKw.js → Cron-BtnREHWy.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-CrAFGhWH.js → Crosschain-BKI9TSzr.js} +1 -1
- package/src/assets/web-panel/assets/{DID-pA-oD8ke.js → DID-pkNubzzJ.js} +2 -2
- package/src/assets/web-panel/assets/Dashboard-1rrz1snN.js +3 -0
- package/src/assets/web-panel/assets/{Dropdown-EweJcsek.js → Dropdown-DLyFVxDc.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-C9xVLPG4.js → EmailListRenderer-CtUWfYVq.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-CDcEEqlu.js → FamilyGuardDashboard-B8eX2Qe4.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-DtZda9A_.js → Federation-D8lsDGus.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CiYdcVz3.js → FormItemContext-CRYt_aIw.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-DA13uwA0.js → GenericCardRenderer-ClKzY8_N.js} +1 -1
- package/src/assets/web-panel/assets/{Git-DzRhZD1O.js → Git-BXj5Dney.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-D5RMgOSb.js → Governance-Cm-I8RMz.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-BgrPfSNk.js → Inference-CPvbhvgt.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-DzjnD571.js → KnowledgeGraph-sYNDZaoi.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-BhWzVDtN.js → Logs-BZY_3CRZ.js} +2 -2
- package/src/assets/web-panel/assets/{MarkdownRenderer-BDape9cx.js → MarkdownRenderer-up0BW6pv.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-DJtL5GV7.js → Marketplace-C5MEJ2Qe.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-CZcQygI7.js → McpTools-ihdrn43I.js} +5 -5
- package/src/assets/web-panel/assets/{Memory-DUWSDUUu.js → Memory-Br8bPMlh.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-BTwq2WKY.js → MobileBridge-BNntgrYW.js} +1 -1
- package/src/assets/web-panel/assets/MobileProjects-BdV915mw.js +1 -0
- package/src/assets/web-panel/assets/{Mtc-BiGugEQm.js → Mtc-A3wDmlqL.js} +5 -5
- package/src/assets/web-panel/assets/{MtcAudit-DY7a6gUe.js → MtcAudit-CF-mBLWM.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-BQbDu_w7.js → Multisig-Iy2k_MSo.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-CM2wXTLv.js → NLProgramming-kk0W7HUb.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-DI6gGs1v.js → Notes-B5u5t_4S.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-BsZOLWAB.js → NotificationSettings-BN0POf6_.js} +1 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-CHkSUrXB.js +1 -0
- package/src/assets/web-panel/assets/{Organization-Cds0_tXr.js → Organization-DwWQESuN.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-WunYMD87.js → Overflow-DG6klrcC.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-Bo6j4DDv.js → P2P-BwJcKkgZ.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-Bh2XPD5f.js → PdhVaultBrowser-BwOHG0in.js} +5 -5
- package/src/assets/web-panel/assets/{Permissions-EMvMMC8N.js → Permissions-CGMXe4TX.js} +4 -4
- package/src/assets/web-panel/assets/PersonalDataHub-ziYqg7-A.js +8 -0
- package/src/assets/web-panel/assets/{Pipeline-BOx8HOgL.js → Pipeline-BzJfeoGt.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-tBeTVQVM.js → Privacy-DLh3Bblx.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-CVYg1W4M.js → ProjectInit-USVWW36c.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-Dvt5I7y1.js → ProjectSettings-CiiOn62h.js} +2 -2
- package/src/assets/web-panel/assets/Projects-6V-PNmcA.js +1 -0
- package/src/assets/web-panel/assets/{Providers-Ct8xqY-E.js → Providers-CBPWWzpu.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-Cni8Ooja.js → QrScannerModal-QVwoRUq3.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-BJVLKdxr.js → QuickAsk-CXnR-2Vn.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-DPG8Rbbm.js → Recommend-ClaNzjmF.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-DsdR7dCt.js → RemoteSession-C3rGw8vJ.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-Csg1YM-b.js → Reputation-Ci-OWAoP.js} +1 -1
- package/src/assets/web-panel/assets/{Row-D9DoFoEf.js → Row-DRhAwXOS.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-BsvKrXMS.js → RssFeed-BQLJQ2_y.js} +3 -3
- package/src/assets/web-panel/assets/{Search-DFUStfgQ.js → Search-QQUpkfFd.js} +1 -1
- package/src/assets/web-panel/assets/{Security-ILg1zxdK.js → Security-DdXKzuKT.js} +4 -4
- package/src/assets/web-panel/assets/{Services-Dd41PCaY.js → Services-x2Zh62Qd.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-Bzo1cN80.js → Skeleton-GdY4KwRz.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-BDHh17P0.js → Skills-Bv4tY1Fd.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-jl7UTiRY.js → Sla-C3QnM-11.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-BePa-RF6.js → SpeechSettings-Bl3ytvmI.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-DiqqDKGZ.js → SyncSettings-Wp9IwTsP.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-DYQ_6lxj.js → Tasks-CF3rIrDe.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-JiDeI06L.js → Templates-CGfvVVM9.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-hhgI6zwS.js → Tenant-CVXmwQ3U.js} +1 -1
- package/src/assets/web-panel/assets/Terminal-bvwrt03E.js +3 -0
- package/src/assets/web-panel/assets/{TimelineRenderer-B8uB5Llk.js → TimelineRenderer-D0g74KhH.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-C3b_6r2z.js → Tokens-BH4IwzlT.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-tIP7HKVe.js → Trigger-DJOpM533.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-vjoc11vJ.js → Trust-B43EPRLr.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-DUPBnGuH.js → UkeySign-BmBFG-em.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-CBvhUY5T.js → VideoEditing-n9oJwB8k.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-DUaQ0uA5.js → Wallet-D5QeivHp.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-DllSivjE.js → WebAuthn-DcNy7igO.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-xc8D3uO6.js → WorkflowEditor-BVjc7-5-.js} +1 -1
- package/src/assets/web-panel/assets/{chat-BVicU7oA.js → chat-Dy5Tfj3m.js} +1 -1
- package/src/assets/web-panel/assets/{colors-DJzLmhLm.js → colors-C4c2CNZU.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-BvYRfThE.js → compact-item-DPa3O5vN.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DGXxCBKR.js → createContext-TLcfNA6_.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-BAwdDA_5.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-SBDJB1y4.js → hasIn-D41LVFkp.js} +1 -1
- package/src/assets/web-panel/assets/{index-D7HimK0M.js → index-0oevYjfT.js} +1 -1
- package/src/assets/web-panel/assets/{index-DCdRAgjy.js → index-388pLGJ1.js} +1 -1
- package/src/assets/web-panel/assets/{index-BO1itZaY.js → index-B8nLBZbv.js} +3 -3
- package/src/assets/web-panel/assets/{index-DvUTDYXX.js → index-BPTGAjee.js} +1 -1
- package/src/assets/web-panel/assets/{index-hxTODbM1.js → index-BPtrOBmW.js} +1 -1
- package/src/assets/web-panel/assets/{index-wcCL-miV.js → index-BQiIxHBy.js} +1 -1
- package/src/assets/web-panel/assets/{index-CKyEivf8.js → index-BSM1cHVK.js} +1 -1
- package/src/assets/web-panel/assets/{index-BJZf9DhV.js → index-BYPr9fkz.js} +1 -1
- package/src/assets/web-panel/assets/{index-DHVLJ8q0.js → index-BsQ7Ev6i.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cs2rmLFt.js → index-Btk9qLL2.js} +1 -1
- package/src/assets/web-panel/assets/{index-z1ZylsLq.js → index-BvmziZSG.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cf-O_g_8.js → index-BvopLC_T.js} +1 -1
- package/src/assets/web-panel/assets/{index-DMarmfrv.js → index-C7xhTVyP.js} +1 -1
- package/src/assets/web-panel/assets/{index-CoJAO1Lm.js → index-CNk_ZooP.js} +1 -1
- package/src/assets/web-panel/assets/{index-9gdI7uUW.js → index-CQrEHoOG.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bf-ctERC.js → index-CSxex23J.js} +1 -1
- package/src/assets/web-panel/assets/{index-MjC4G09d.js → index-CVjgm992.js} +1 -1
- package/src/assets/web-panel/assets/{index-e4fXH_WO.js → index-CWK4zOPe.js} +1 -1
- package/src/assets/web-panel/assets/{index-xfluRkCT.js → index-CX0VsoP4.js} +1 -1
- package/src/assets/web-panel/assets/{index-DRfiXB_p.js → index-CXl0YPNG.js} +1 -1
- package/src/assets/web-panel/assets/{index-d5BVd-cL.js → index-Cip7LWml.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dm_77jgR.js → index-Cq_hlWNt.js} +1 -1
- package/src/assets/web-panel/assets/{index-YJkzy8ZF.js → index-CzZ49YZL.js} +1 -1
- package/src/assets/web-panel/assets/{index-CtwqO5qo.js → index-D2Nkivlm.js} +1 -1
- package/src/assets/web-panel/assets/{index-BYqz4Wrr.js → index-DBUgRs4D.js} +1 -1
- package/src/assets/web-panel/assets/index-DEjVkdzq.js +1 -0
- package/src/assets/web-panel/assets/{index-CdGY9P8a.js → index-DNsBj2Ob.js} +1 -1
- package/src/assets/web-panel/assets/{index-DonCnfMr.js → index-Di4X8cfI.js} +1 -1
- package/src/assets/web-panel/assets/{index-1SdDS6lR.js → index-DljFsVGI.js} +1 -1
- package/src/assets/web-panel/assets/{index-DnjPdvR6.js → index-Korc3QIe.js} +1 -1
- package/src/assets/web-panel/assets/index-LMOc5xrS.js +1 -0
- package/src/assets/web-panel/assets/{index-VMfwIH5G.js → index-MKZDje0H.js} +1 -1
- package/src/assets/web-panel/assets/{index-DKrvvWm4.js → index-OHAfRu_3.js} +1 -1
- package/src/assets/web-panel/assets/{index-FxZzRyE1.js → index-WEJr8PL5.js} +1 -1
- package/src/assets/web-panel/assets/{index-Crk5NTb0.js → index-WinCp6du.js} +1 -1
- package/src/assets/web-panel/assets/{index-DCqRS6da.js → index-Yjr6cqSK.js} +1 -1
- package/src/assets/web-panel/assets/{index-BTrBGBJs.js → index-iQ6gtFih.js} +1 -1
- package/src/assets/web-panel/assets/{index-lpaGoTH3.js → index-pt3s7yvV.js} +1 -1
- package/src/assets/web-panel/assets/{index-CloCgBUR.js → index-tQ3igERQ.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-C1zO1KnY.js → initDefaultProps-BFZu87WZ.js} +1 -1
- package/src/assets/web-panel/assets/{motion-CWLtEGmC.js → motion-DJIo7qvt.js} +1 -1
- package/src/assets/web-panel/assets/{move-DzD_C3Vm.js → move-Cfr5qknL.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-D880PYJl.js → mtc-parser-Bgc-OadH.js} +1 -1
- package/src/assets/web-panel/assets/{omit-CFR_z2ov.js → omit-X3WI-TNp.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-srIhgrSC.js → pickAttrs-pJhU9IxK.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-C1rXpibP.js → placementArrow-BNg_Vj3T.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-C30gRcSS.js → responsiveObserve-TeSEGQ5-.js} +1 -1
- package/src/assets/web-panel/assets/{slide-CvtKiMfV.js → slide-D_t_P0bv.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-DNHO7ITG.js → statusUtils-DrrIMwAT.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-Dt_Sl-g4.js → styleChecker-BjZCuFRm.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-Cjev42Gh.js → useFlexGapSupport-rTFdlqdQ.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-Baxglj2V.js → useFs-BidCpfLX.js} +1 -1
- package/src/assets/web-panel/assets/usePersonalDataHub-C5mHttA9.js +1 -0
- package/src/assets/web-panel/assets/{vnode-mIRkdT7o.js → vnode-BrbcRiHZ.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-HzI5DlH_.js → zoom-PISX7AkR.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/__tests__/hub-wechat.test.js +45 -0
- package/src/commands/agenda.js +22 -6
- package/src/commands/agent.js +3 -3
- package/src/commands/background-session.js +16 -6
- package/src/commands/batch.js +79 -27
- package/src/commands/changelog.js +15 -4
- package/src/commands/context.js +33 -1
- package/src/commands/eval.js +21 -6
- package/src/commands/hook.js +2 -2
- package/src/commands/hub.js +473 -39
- package/src/commands/init.js +212 -110
- package/src/commands/llm.js +22 -6
- package/src/commands/loop.js +9 -2
- package/src/commands/skill.js +13 -1
- package/src/commands/statusline.js +3 -3
- package/src/data/changelog.json +53 -5
- package/src/gateways/ws/personal-data-hub-protocol.js +22 -2
- package/src/harness/background-task-manager.js +18 -6
- package/src/harness/background-task-worker.js +11 -18
- package/src/harness/golden-transcript.js +3 -0
- package/src/harness/mcp-client.js +9 -15
- package/src/harness/worktree-isolator.js +18 -21
- package/src/index.js +18 -7
- package/src/lib/agent-core.js +5 -0
- package/src/lib/agent-ipc-bus.js +12 -3
- package/src/lib/agent-team/team-worktree.js +28 -6
- package/src/lib/agent-worktree.js +20 -19
- package/src/lib/approval-authority-store.js +891 -0
- package/src/lib/async-hook-supervisor.cjs +134 -24
- package/src/lib/async-hook-supervisor.js +47 -0
- package/src/lib/background-agent-supervisor.js +35 -12
- package/src/lib/background-interaction-resolver.js +399 -54
- package/src/lib/background-session-transport.js +3 -1
- package/src/lib/background-task-manager.js +5 -1
- package/src/lib/changelog.js +57 -0
- package/src/lib/chrome-connector.js +6 -2
- package/src/lib/claude-code-bridge.js +24 -8
- package/src/lib/cli-anything-bridge.js +82 -25
- package/src/lib/context-breakdown.js +82 -3
- package/src/lib/doctor-checkup.js +18 -6
- package/src/lib/eval/tasks.js +25 -31
- package/src/lib/event-runtime-host.js +225 -0
- package/src/lib/event-runtime-store.js +102 -21
- package/src/lib/event-runtime-worker.js +70 -2
- package/src/lib/hook-runner.cjs +71 -36
- package/src/lib/hook-runner.js +55 -0
- package/src/lib/hooks-v2-producers.js +33 -8
- package/src/lib/hooks-v2-runtime.js +360 -40
- package/src/lib/host-adb-bridge.js +18 -3
- package/src/lib/interaction-adapter.js +66 -0
- package/src/lib/lsp/__tests__/benchmark.test.js +61 -0
- package/src/lib/lsp/__tests__/lsp-client.test.js +6 -1
- package/src/lib/lsp/benchmark.js +20 -4
- package/src/lib/lsp/lsp-client.js +6 -4
- package/src/lib/lsp/lsp-server-registry.js +0 -2
- package/src/lib/operation-fingerprint.js +107 -2
- package/src/lib/orchestrator.js +8 -2
- package/src/lib/packer/pack-update-applier.js +14 -2
- package/src/lib/packer/smoke-runner.js +18 -5
- package/src/lib/paths.js +1 -1
- package/src/lib/pdh-dedicated-batch-collectors.js +124 -0
- package/src/lib/personal-data-hub-wiring.js +327 -52
- package/src/lib/plugin-monitor-supervisor.js +20 -13
- package/src/lib/plugin-runtime/install.js +10 -3
- package/src/lib/process-execution-broker/credential-agent.js +954 -111
- package/src/lib/process-execution-broker/index.js +369 -85
- package/src/lib/process-execution-broker/platform-sandbox.js +320 -140
- package/src/lib/provider-http-error.js +94 -0
- package/src/lib/remote-approval-bridge.js +222 -26
- package/src/lib/repl-bang-memorize.js +10 -2
- package/src/lib/repl-goal.js +19 -2
- package/src/lib/settings-hook-events.cjs +13 -8
- package/src/lib/settings-hook-events.js +20 -0
- package/src/lib/side-effect-ledger-store.js +65 -14
- package/src/lib/skill-loader.js +215 -12
- package/src/lib/skill-packs/generator.js +18 -9
- package/src/lib/skill-process-broker.js +85 -0
- package/src/lib/slash-commands.js +10 -2
- package/src/lib/status-line.cjs +28 -7
- package/src/lib/status-line.js +33 -0
- package/src/lib/sub-agent-context.js +42 -0
- package/src/lib/turn-binding-store.js +64 -15
- package/src/lib/turn-binding.js +85 -16
- package/src/repl/agent-repl.js +88 -49
- package/src/repl/remote-approval.js +13 -13
- package/src/repl/repl-turn-binding.js +46 -16
- package/src/runtime/agent-core.js +419 -84
- package/src/runtime/coding-agent-contract-shared.cjs +16 -0
- package/src/runtime/headless-runner.js +172 -44
- package/src/runtime/headless-stream.js +221 -11
- package/src/runtime/session-slash-commands.js +506 -0
- package/src/skills/video-editing/extractors/audio-extractor.js +13 -5
- package/src/skills/video-editing/extractors/video-extractor.js +13 -3
- package/src/skills/video-editing/media-process.js +20 -0
- package/src/skills/video-editing/render/audio-mix.js +13 -3
- package/src/skills/video-editing/render/ffmpeg-concat.js +7 -2
- package/src/skills/video-editing/render/ffmpeg-extract.js +7 -2
- package/src/workers/background-agent-worker.js +76 -40
- package/src/assets/web-panel/assets/AppLayout-Duu8xR14.js +0 -9
- package/src/assets/web-panel/assets/Dashboard-CXrd5gAw.js +0 -3
- package/src/assets/web-panel/assets/MobileProjects-NZvvfDME.js +0 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-C48mu09U.js +0 -1
- package/src/assets/web-panel/assets/PersonalDataHub-AX3ypUDV.js +0 -9
- package/src/assets/web-panel/assets/Projects-Cc7FC9-e.js +0 -1
- package/src/assets/web-panel/assets/Terminal-CjTZPa37.js +0 -3
- package/src/assets/web-panel/assets/devWarning-BT46Y_QI.js +0 -1
- package/src/assets/web-panel/assets/index-B7nuIywP.js +0 -1
- package/src/assets/web-panel/assets/index-ycwAfC-i.js +0 -1
- package/src/assets/web-panel/assets/usePersonalDataHub-B4NkcLaP.js +0 -1
package/src/commands/batch.js
CHANGED
|
@@ -19,8 +19,6 @@
|
|
|
19
19
|
import fs from "fs";
|
|
20
20
|
import path from "path";
|
|
21
21
|
import { fileURLToPath } from "url";
|
|
22
|
-
import { spawn } from "child_process";
|
|
23
|
-
import { execFileSync } from "child_process";
|
|
24
22
|
import chalk from "chalk";
|
|
25
23
|
import { logger } from "../lib/logger.js";
|
|
26
24
|
import { runBatch } from "../lib/agent-batch.js";
|
|
@@ -31,6 +29,12 @@ import {
|
|
|
31
29
|
mergeWorktree,
|
|
32
30
|
} from "../harness/worktree-isolator.js";
|
|
33
31
|
import { findProjectRoot } from "../lib/project-detector.js";
|
|
32
|
+
import executionBroker from "../lib/process-execution-broker/index.js";
|
|
33
|
+
|
|
34
|
+
export const _processDeps = {
|
|
35
|
+
spawn: executionBroker.spawn.bind(executionBroker),
|
|
36
|
+
execFileSync: executionBroker.execFileSync.bind(executionBroker),
|
|
37
|
+
};
|
|
34
38
|
|
|
35
39
|
const BIN = path.resolve(
|
|
36
40
|
path.dirname(fileURLToPath(import.meta.url)),
|
|
@@ -183,6 +187,26 @@ function sanitize(key) {
|
|
|
183
187
|
return String(key).replace(/[^a-zA-Z0-9._-]/g, "-");
|
|
184
188
|
}
|
|
185
189
|
|
|
190
|
+
function spawnBatchProcess(command, args, options, origin) {
|
|
191
|
+
return _processDeps.spawn(command, args, {
|
|
192
|
+
...options,
|
|
193
|
+
origin,
|
|
194
|
+
policy: "allow",
|
|
195
|
+
scope: "batch",
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function runBatchGit(args, cwd, options, origin) {
|
|
200
|
+
return _processDeps.execFileSync("git", args, {
|
|
201
|
+
...options,
|
|
202
|
+
cwd,
|
|
203
|
+
origin,
|
|
204
|
+
policy: "allow",
|
|
205
|
+
scope: "batch",
|
|
206
|
+
shell: false,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
|
|
186
210
|
function spawnAgent(prompt, cwd, opts = {}) {
|
|
187
211
|
return new Promise((resolve, reject) => {
|
|
188
212
|
const args = [
|
|
@@ -196,11 +220,17 @@ function spawnAgent(prompt, cwd, opts = {}) {
|
|
|
196
220
|
"text",
|
|
197
221
|
];
|
|
198
222
|
if (opts.model) args.push("--model", opts.model);
|
|
199
|
-
const child =
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
223
|
+
const child = spawnBatchProcess(
|
|
224
|
+
process.execPath,
|
|
225
|
+
args,
|
|
226
|
+
{
|
|
227
|
+
cwd,
|
|
228
|
+
env: { ...process.env, CLAUDECODE: "1" },
|
|
229
|
+
windowsHide: true,
|
|
230
|
+
shell: false,
|
|
231
|
+
},
|
|
232
|
+
"batch:agent-run",
|
|
233
|
+
);
|
|
204
234
|
let err = "";
|
|
205
235
|
child.stderr?.on("data", (d) => (err += d.toString("utf8")));
|
|
206
236
|
child.on("error", (e) => reject(new Error(e.message)));
|
|
@@ -214,12 +244,17 @@ function spawnAgent(prompt, cwd, opts = {}) {
|
|
|
214
244
|
|
|
215
245
|
function runTestCommand(command, cwd) {
|
|
216
246
|
return new Promise((resolve, reject) => {
|
|
217
|
-
const child =
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
247
|
+
const child = spawnBatchProcess(
|
|
248
|
+
command,
|
|
249
|
+
[],
|
|
250
|
+
{
|
|
251
|
+
cwd,
|
|
252
|
+
shell: true,
|
|
253
|
+
env: process.env,
|
|
254
|
+
windowsHide: true,
|
|
255
|
+
},
|
|
256
|
+
"batch:test-command",
|
|
257
|
+
);
|
|
223
258
|
let err = "";
|
|
224
259
|
child.stderr?.on("data", (d) => (err += d.toString("utf8")));
|
|
225
260
|
child.on("error", (e) => reject(new Error(e.message)));
|
|
@@ -234,11 +269,13 @@ function runTestCommand(command, cwd) {
|
|
|
234
269
|
/** `git add -A` staged numstat totals for a worktree. */
|
|
235
270
|
function gitDiffStat(cwd) {
|
|
236
271
|
try {
|
|
237
|
-
|
|
238
|
-
const out =
|
|
272
|
+
runBatchGit(["add", "-A"], cwd, { stdio: "ignore" }, "batch:git-diff");
|
|
273
|
+
const out = runBatchGit(
|
|
274
|
+
["diff", "--cached", "--numstat"],
|
|
239
275
|
cwd,
|
|
240
|
-
encoding: "utf8",
|
|
241
|
-
|
|
276
|
+
{ encoding: "utf8" },
|
|
277
|
+
"batch:git-diff",
|
|
278
|
+
);
|
|
242
279
|
let insertions = 0;
|
|
243
280
|
let deletions = 0;
|
|
244
281
|
let filesChanged = 0;
|
|
@@ -258,11 +295,13 @@ function gitDiffStat(cwd) {
|
|
|
258
295
|
|
|
259
296
|
function gitCommitAll(cwd, message) {
|
|
260
297
|
try {
|
|
261
|
-
|
|
262
|
-
|
|
298
|
+
runBatchGit(["add", "-A"], cwd, { stdio: "ignore" }, "batch:git-commit");
|
|
299
|
+
runBatchGit(
|
|
300
|
+
["commit", "-m", message, "--no-verify"],
|
|
263
301
|
cwd,
|
|
264
|
-
stdio: "ignore",
|
|
265
|
-
|
|
302
|
+
{ stdio: "ignore" },
|
|
303
|
+
"batch:git-commit",
|
|
304
|
+
);
|
|
266
305
|
return true;
|
|
267
306
|
} catch {
|
|
268
307
|
return false; // nothing to commit / commit failed
|
|
@@ -289,11 +328,17 @@ async function decomposeGoal(goal, parts, opts = {}) {
|
|
|
289
328
|
"plan",
|
|
290
329
|
];
|
|
291
330
|
if (opts.model) args.push("--model", opts.model);
|
|
292
|
-
const child =
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
331
|
+
const child = spawnBatchProcess(
|
|
332
|
+
process.execPath,
|
|
333
|
+
args,
|
|
334
|
+
{
|
|
335
|
+
cwd: opts.repoDir || process.cwd(),
|
|
336
|
+
env: { ...process.env, CLAUDECODE: "1" },
|
|
337
|
+
windowsHide: true,
|
|
338
|
+
shell: false,
|
|
339
|
+
},
|
|
340
|
+
"batch:decompose",
|
|
341
|
+
);
|
|
297
342
|
let out = "";
|
|
298
343
|
let err = "";
|
|
299
344
|
child.stdout?.on("data", (d) => (out += d.toString("utf8")));
|
|
@@ -342,4 +387,11 @@ function formatEvent(ev) {
|
|
|
342
387
|
}
|
|
343
388
|
}
|
|
344
389
|
|
|
345
|
-
export const _internal = {
|
|
390
|
+
export const _internal = {
|
|
391
|
+
decomposeGoal,
|
|
392
|
+
gitDiffStat,
|
|
393
|
+
gitCommitAll,
|
|
394
|
+
runTestCommand,
|
|
395
|
+
spawnAgent,
|
|
396
|
+
DECOMPOSE_SCHEMA,
|
|
397
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { VERSION } from "../constants.js";
|
|
3
|
-
import { loadChangelog } from "../lib/changelog.js";
|
|
3
|
+
import { latestCliVersion, loadChangelog } from "../lib/changelog.js";
|
|
4
4
|
import logger from "../lib/logger.js";
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -82,10 +82,21 @@ export function registerChangelogCommand(program) {
|
|
|
82
82
|
.action((version, options) => {
|
|
83
83
|
const data = loadChangelog();
|
|
84
84
|
const releases = data.releases || [];
|
|
85
|
+
const jsonPayload = (selected) =>
|
|
86
|
+
JSON.stringify(
|
|
87
|
+
{
|
|
88
|
+
...data,
|
|
89
|
+
installedVersion: VERSION,
|
|
90
|
+
latestDocumentedVersion: latestCliVersion(releases),
|
|
91
|
+
releases: selected,
|
|
92
|
+
},
|
|
93
|
+
null,
|
|
94
|
+
2,
|
|
95
|
+
);
|
|
85
96
|
|
|
86
97
|
if (releases.length === 0) {
|
|
87
98
|
if (options.json) {
|
|
88
|
-
logger.log(
|
|
99
|
+
logger.log(jsonPayload([]));
|
|
89
100
|
} else {
|
|
90
101
|
logger.warn("No changelog data is bundled with this build.");
|
|
91
102
|
}
|
|
@@ -97,7 +108,7 @@ export function registerChangelogCommand(program) {
|
|
|
97
108
|
selected = matchVersion(releases, version);
|
|
98
109
|
if (selected.length === 0) {
|
|
99
110
|
if (options.json) {
|
|
100
|
-
logger.log(
|
|
111
|
+
logger.log(jsonPayload([]));
|
|
101
112
|
} else {
|
|
102
113
|
logger.warn(`No CLI release notes found for "${version}".`);
|
|
103
114
|
logger.info(
|
|
@@ -114,7 +125,7 @@ export function registerChangelogCommand(program) {
|
|
|
114
125
|
}
|
|
115
126
|
|
|
116
127
|
if (options.json) {
|
|
117
|
-
logger.log(
|
|
128
|
+
logger.log(jsonPayload(selected));
|
|
118
129
|
return;
|
|
119
130
|
}
|
|
120
131
|
|
package/src/commands/context.js
CHANGED
|
@@ -138,6 +138,8 @@ export function registerContextCommand(program) {
|
|
|
138
138
|
breakdownInstructionSources,
|
|
139
139
|
breakdownMcpSchemas,
|
|
140
140
|
breakdownSkillSources,
|
|
141
|
+
breakdownSkillCache,
|
|
142
|
+
buildContextOptimizations,
|
|
141
143
|
rankContextSources,
|
|
142
144
|
} =
|
|
143
145
|
await import("../lib/context-breakdown.js");
|
|
@@ -169,6 +171,9 @@ export function registerContextCommand(program) {
|
|
|
169
171
|
recordedContextSources?.skills || [],
|
|
170
172
|
estimateTokens,
|
|
171
173
|
);
|
|
174
|
+
const skillCache = breakdownSkillCache(
|
|
175
|
+
recordedContextSources?.skillCache,
|
|
176
|
+
);
|
|
172
177
|
const ranked = rankContextSources({
|
|
173
178
|
instructionTotal: instr.total,
|
|
174
179
|
buckets,
|
|
@@ -192,6 +197,12 @@ export function registerContextCommand(program) {
|
|
|
192
197
|
mcpSchemaTokens: mcp.total,
|
|
193
198
|
skills: skills.sources,
|
|
194
199
|
skillTokens: skills.total,
|
|
200
|
+
skillCache,
|
|
201
|
+
optimizations: buildContextOptimizations({
|
|
202
|
+
instructions: instr.sources,
|
|
203
|
+
mcpSchemas: mcp.sources,
|
|
204
|
+
skillCache,
|
|
205
|
+
}),
|
|
195
206
|
ranked: ranked.sources,
|
|
196
207
|
combinedTotal: ranked.total,
|
|
197
208
|
};
|
|
@@ -223,6 +234,10 @@ export function registerContextCommand(program) {
|
|
|
223
234
|
instructionTokens: sourceReport.instructionTokens,
|
|
224
235
|
mcpSchemas: sourceReport.mcpSchemas,
|
|
225
236
|
mcpSchemaTokens: sourceReport.mcpSchemaTokens,
|
|
237
|
+
skills: sourceReport.skills,
|
|
238
|
+
skillTokens: sourceReport.skillTokens,
|
|
239
|
+
skillCache: sourceReport.skillCache,
|
|
240
|
+
optimizations: sourceReport.optimizations,
|
|
226
241
|
combinedTotal: sourceReport.combinedTotal,
|
|
227
242
|
cwd: sourceReport.cwd,
|
|
228
243
|
}
|
|
@@ -314,6 +329,23 @@ export function registerContextCommand(program) {
|
|
|
314
329
|
`${chalk.cyan(bar(s.share))} ${String(Math.round(s.share * 100)).padStart(3)}%`,
|
|
315
330
|
);
|
|
316
331
|
}
|
|
332
|
+
if (sourceReport.skillCache.descriptors.resident > 0) {
|
|
333
|
+
logger.log("");
|
|
334
|
+
logger.log(
|
|
335
|
+
chalk.gray(
|
|
336
|
+
` Skill cache: ${sourceReport.skillCache.descriptors.resident} descriptors, ` +
|
|
337
|
+
`${sourceReport.skillCache.bodies.resident} bodies resident, ` +
|
|
338
|
+
`${sourceReport.skillCache.savings.estimatedTokensAvoided} estimated tokens kept lazy`,
|
|
339
|
+
),
|
|
340
|
+
);
|
|
341
|
+
}
|
|
342
|
+
if (sourceReport.optimizations.length > 0) {
|
|
343
|
+
logger.log("");
|
|
344
|
+
logger.log(chalk.bold("Optimization hints"));
|
|
345
|
+
for (const hint of sourceReport.optimizations) {
|
|
346
|
+
logger.log(chalk.gray(" 路 ") + hint.message);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
317
349
|
logger.log(
|
|
318
350
|
chalk.gray(
|
|
319
351
|
" note: instructions reflect the current cwd (what a new run here",
|
|
@@ -326,7 +358,7 @@ export function registerContextCommand(program) {
|
|
|
326
358
|
);
|
|
327
359
|
logger.log(
|
|
328
360
|
chalk.gray(
|
|
329
|
-
"
|
|
361
|
+
" costs come from the newest persisted runtime source snapshot.",
|
|
330
362
|
),
|
|
331
363
|
);
|
|
332
364
|
}
|
package/src/commands/eval.js
CHANGED
|
@@ -11,15 +11,22 @@
|
|
|
11
11
|
import fs from "fs";
|
|
12
12
|
import path from "path";
|
|
13
13
|
import { fileURLToPath } from "url";
|
|
14
|
-
import { spawn, spawnSync } from "child_process";
|
|
15
14
|
import { runEvalSuite } from "../lib/eval/runner.js";
|
|
16
15
|
import { getSuite } from "../lib/eval/tasks.js";
|
|
16
|
+
import executionBroker from "../lib/process-execution-broker/index.js";
|
|
17
17
|
import {
|
|
18
18
|
TelemetryRecorder,
|
|
19
19
|
formatTelemetry,
|
|
20
20
|
} from "../lib/telemetry/span-recorder.js";
|
|
21
21
|
import { computeTrend, formatTrend } from "../lib/eval/trend.js";
|
|
22
22
|
|
|
23
|
+
export const _deps = {
|
|
24
|
+
platform: process.platform,
|
|
25
|
+
kill: process.kill.bind(process),
|
|
26
|
+
spawn: executionBroker.spawn.bind(executionBroker),
|
|
27
|
+
spawnSync: executionBroker.spawnSync.bind(executionBroker),
|
|
28
|
+
};
|
|
29
|
+
|
|
23
30
|
/** Append a run summary as one JSONL line to the history file. */
|
|
24
31
|
function appendHistory(file, record) {
|
|
25
32
|
fs.appendFileSync(file, JSON.stringify(record) + "\n", "utf8");
|
|
@@ -55,18 +62,22 @@ const BIN = path.resolve(__dirname, "..", "..", "bin", "chainlesschain.js");
|
|
|
55
62
|
*/
|
|
56
63
|
function killAgentTree(child) {
|
|
57
64
|
if (!child || !child.pid) return;
|
|
58
|
-
if (
|
|
65
|
+
if (_deps.platform === "win32") {
|
|
59
66
|
try {
|
|
60
|
-
spawnSync("taskkill", ["/PID", String(child.pid), "/T", "/F"], {
|
|
67
|
+
_deps.spawnSync("taskkill", ["/PID", String(child.pid), "/T", "/F"], {
|
|
61
68
|
windowsHide: true,
|
|
62
69
|
timeout: 10000,
|
|
70
|
+
origin: "eval:agent-tree-kill",
|
|
71
|
+
policy: "allow",
|
|
72
|
+
scope: "eval",
|
|
73
|
+
shell: false,
|
|
63
74
|
});
|
|
64
75
|
} catch {
|
|
65
76
|
/* fall through to the direct kill below */
|
|
66
77
|
}
|
|
67
78
|
} else {
|
|
68
79
|
try {
|
|
69
|
-
|
|
80
|
+
_deps.kill(-child.pid, "SIGKILL"); // negative pid = process group
|
|
70
81
|
return;
|
|
71
82
|
} catch {
|
|
72
83
|
/* not a group leader / already gone — fall through */
|
|
@@ -105,12 +116,16 @@ function makeHeadlessRunAgent(opts = {}) {
|
|
|
105
116
|
if (opts.model) args.push("--model", opts.model);
|
|
106
117
|
if (opts.provider) args.push("--provider", opts.provider);
|
|
107
118
|
}
|
|
108
|
-
const child = spawn(process.execPath, args, {
|
|
119
|
+
const child = _deps.spawn(process.execPath, args, {
|
|
109
120
|
cwd,
|
|
110
121
|
env: { ...process.env, CLAUDECODE: "1" },
|
|
111
122
|
windowsHide: true,
|
|
112
123
|
// Own process group on POSIX so a timeout can reap the whole tree.
|
|
113
|
-
detached:
|
|
124
|
+
detached: _deps.platform !== "win32",
|
|
125
|
+
origin: "eval:agent-run",
|
|
126
|
+
policy: "allow",
|
|
127
|
+
scope: "eval",
|
|
128
|
+
shell: false,
|
|
114
129
|
});
|
|
115
130
|
let out = "";
|
|
116
131
|
let err = "";
|
package/src/commands/hook.js
CHANGED
|
@@ -173,7 +173,7 @@ export function registerHookCommand(program) {
|
|
|
173
173
|
return;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
const { runHooks } = await import("../lib/hook-runner.
|
|
176
|
+
const { runHooks } = await import("../lib/hook-runner.js");
|
|
177
177
|
const outcome = runHooks(matched, payload, {
|
|
178
178
|
cwd: process.cwd(),
|
|
179
179
|
event,
|
|
@@ -283,7 +283,7 @@ export function registerHookCommand(program) {
|
|
|
283
283
|
// observe-only + --run: re-collect and execute the matching hooks.
|
|
284
284
|
const { loadHooks, collectHooks } =
|
|
285
285
|
await import("../lib/settings-hooks.cjs");
|
|
286
|
-
const { runHooks } = await import("../lib/hook-runner.
|
|
286
|
+
const { runHooks } = await import("../lib/hook-runner.js");
|
|
287
287
|
const { hooks } = loadHooks({ cwd: process.cwd() });
|
|
288
288
|
const matched = collectHooks(
|
|
289
289
|
hooks,
|