chainlesschain 0.162.180 → 0.162.182
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 +7 -3
- package/scripts/build-windows-sandbox-helper.ps1 +163 -0
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/{AIOps-D_TIL54O.js → AIOps-DzZ5_xoj.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-eQwy9r-f.js → ActionButton-DeLXddIg.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-D2eNuDgT.js → Analytics-rvDCmet1.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-CFhwOFsf.js → AppLayout-Yt6QVDnp.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-CJUMw6PB.js → Artifacts-BS112K5L.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-CDB9V58o.js → Audit-0wJuQrNu.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-TBppYFjN.js → BackgroundAgents-B90PMgbn.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-CYEOUpzJ.js → Backup-TkgMglQQ.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-C88fFT2u.js → BaseInput-CQVS9p1l.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-mkr1vC3N.js → Chat-YTjQHoC7.js} +6 -6
- package/src/assets/web-panel/assets/ChatBubbleRenderer-PR074hUN.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-CVU4xqti.js → Checkbox-5bwaOabq.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-rrNcByz3.js → Codegen-BFmNQ_Xe.js} +1 -1
- package/src/assets/web-panel/assets/{Col-Cqu-zCvh.js → Col-BT_u4Dzp.js} +1 -1
- package/src/assets/web-panel/assets/{Community-RGRlSgXV.js → Community-CJP52u5b.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DBm6epOK.js → Compact-BpzhJE9i.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BgKw5iaW.js → Compliance-Cg7rfslp.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-BqQcNO3Z.js → Cowork-JisxL6Yy.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-DO5gTFNb.js → Cron-Bu7Ug_MC.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-B8hbJNuN.js → Crosschain-CvuqoLdj.js} +1 -1
- package/src/assets/web-panel/assets/{DID-B08bFJ2C.js → DID-C2u9G8Pu.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-xNdy_ifo.js → Dashboard-BFt5Yv3d.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-D-KIZgWL.js → Dropdown-DIaT9Wxq.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-DKCvsaGo.js → EmailListRenderer-D_A601Y4.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-D_cfqama.js → FamilyGuardDashboard--IyQ8I8w.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-B-UqQD68.js → Federation-BihWHxuY.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-BWWvWuJW.js → FormItemContext-BB8dOXc_.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-CPchx6N7.js → GenericCardRenderer-DQYhj1HH.js} +1 -1
- package/src/assets/web-panel/assets/{Git-Vx4co9Ff.js → Git-B-2QZxGf.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-D4x0pp_m.js → Governance-CusSb-nG.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-T3KvwPYR.js → Inference-BAjmvPPL.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-Ddv3KUv3.js → KnowledgeGraph-DoNYWKYq.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-DfH-Dkae.js → Logs-B8fKWD-n.js} +2 -2
- package/src/assets/web-panel/assets/{MarkdownRenderer-DHW3PbCq.js → MarkdownRenderer-BlJm1J7E.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-tjgb0R3D.js → Marketplace-CyOscbSL.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DHAk5nYX.js → McpTools-Ex6Om5da.js} +5 -5
- package/src/assets/web-panel/assets/{Memory-A2Yx7thM.js → Memory-CDcD8l8r.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-BEmTVfN5.js → MobileBridge-xfBqoFDg.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-DuFHUgE4.js → MobileProjects-BwObMMA2.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-BDSll0OZ.js → Mtc-CIWd36OV.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-CuBvluaS.js → MtcAudit-CPX0ouuA.js} +4 -4
- package/src/assets/web-panel/assets/{Multisig-BmXAA-Sb.js → Multisig-BDJsIUuW.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-ci2stZAe.js → NLProgramming-DEkbuD3N.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-D-1RpqnS.js → Notes-DJpHRhH1.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-C0GyitIT.js → NotificationSettings-C1UZ-Qd5.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-U2bN-hj5.js → OrderTableRenderer-GlJtqLjT.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BNZgpPci.js → Organization-Bbhj0fac.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-CDidKmUN.js → Overflow-1H04x3kx.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BnreBaXq.js → P2P-CDpPe3et.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-DwJUxO9j.js → PdhVaultBrowser-MUX0Bpvw.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-BQGgJPH0.js → Permissions-A07-0Ci1.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-k_fSkCwL.js → PersonalDataHub-DhhDWxAZ.js} +5 -5
- package/src/assets/web-panel/assets/{Pipeline-WGqKMqau.js → Pipeline-CyfbJfe-.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-DtHj9Ymq.js → Privacy-CNFps3ED.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-B3wH2SFC.js → ProjectInit--T-u3Dr5.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-Cd0cgcA1.js → ProjectSettings-DJmrK2fC.js} +2 -2
- package/src/assets/web-panel/assets/Projects-Qx_MdX9k.js +1 -0
- package/src/assets/web-panel/assets/{Providers-DTpxEXur.js → Providers-DLzzbOZd.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-B2v6gR-C.js → QrScannerModal-CexOomKS.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-D3Nr9xXR.js → QuickAsk-QklGi19_.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-C9inoMky.js → Recommend-Bb9kwSw8.js} +1 -1
- package/src/assets/web-panel/assets/RemoteSession-DZuVNNN5.js +5 -0
- package/src/assets/web-panel/assets/{Reputation-41KFG646.js → Reputation-Dr5cLP0N.js} +1 -1
- package/src/assets/web-panel/assets/{Row-DqAaqqCv.js → Row-oCQHYv5t.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CMDpCDKc.js → RssFeed-IFDEykIR.js} +3 -3
- package/src/assets/web-panel/assets/{Search-B6mtegNL.js → Search-CspVIxDc.js} +1 -1
- package/src/assets/web-panel/assets/{Security-BaePFVZ8.js → Security-Bm66o_DH.js} +3 -3
- package/src/assets/web-panel/assets/{Services-DeG3Qscl.js → Services-DvanNqXl.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-D_QP7F90.js → Skeleton-CHjEe9_O.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-DLGyUgIA.js → Skills-Cb8jWjMX.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-BN2pxW1Q.js → Sla-DxZm1491.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-BWsZPd8B.js → SpeechSettings-DWxEEclC.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-VOZRPODW.js → SyncSettings-FIvOFw5p.js} +2 -2
- package/src/assets/web-panel/assets/Tasks-CyuLnDFR.js +1 -0
- package/src/assets/web-panel/assets/{Templates-eJSob-q0.js → Templates-CaNjzV_t.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-Bdwk8Rwy.js → Tenant-DjlP6TmH.js} +1 -1
- package/src/assets/web-panel/assets/Terminal-DwzGMniO.js +3 -0
- package/src/assets/web-panel/assets/{TimelineRenderer-D5qkbPKT.js → TimelineRenderer-DoZ8y7y8.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-DKgwn8hI.js → Tokens-390cg2TC.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-HlEHniGM.js → Trigger-CLrtCj5_.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-CdPcsBpN.js → Trust-DpESfSPn.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-vAdXd-vG.js → UkeySign-CN6279O0.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-9hHBYFnH.js → VideoEditing-DPtAUlSe.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-Dxh5d1yR.js → Wallet-nKOMV_1n.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-BsFmLHkp.js → WebAuthn-HuXlSOc4.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-Cn0OIwLn.js → WorkflowEditor-CUfFjARi.js} +1 -1
- package/src/assets/web-panel/assets/chat-6Eq0PcZJ.js +1 -0
- package/src/assets/web-panel/assets/{colors-Du9jzLN0.js → colors-BP_Sf6Iy.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-DhEscfzw.js → compact-item-BufMKIh5.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-CwzEfF3i.js → createContext-BBMXxWSW.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-DgVKduH2.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-DT_GSE6J.js → hasIn-fUK_tRO2.js} +1 -1
- package/src/assets/web-panel/assets/{index-tND8-TDU.js → index-2A5ph8b2.js} +1 -1
- package/src/assets/web-panel/assets/{index-B8s5FxJY.js → index-3FuwBewR.js} +1 -1
- package/src/assets/web-panel/assets/{index-53z1YUxX.js → index-6GmBa4Kg.js} +1 -1
- package/src/assets/web-panel/assets/{index-BFD0cEna.js → index-B2vS66eI.js} +1 -1
- package/src/assets/web-panel/assets/{index-CQWxDOvM.js → index-B7Etk0Te.js} +1 -1
- package/src/assets/web-panel/assets/{index-VeHs6qH0.js → index-B9WYSn4m.js} +1 -1
- package/src/assets/web-panel/assets/{index-CGvgnfl9.js → index-BHy6yNiF.js} +1 -1
- package/src/assets/web-panel/assets/{index-D3llLkYM.js → index-BMLHv389.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dny_ZnAO.js → index-BWKoBU8R.js} +1 -1
- package/src/assets/web-panel/assets/{index-DzjzrOli.js → index-Bkg4ZePE.js} +1 -1
- package/src/assets/web-panel/assets/{index-DN60VBn5.js → index-C44atv4k.js} +1 -1
- package/src/assets/web-panel/assets/{index-v5HLYCVa.js → index-CE2DdTP2.js} +1 -1
- package/src/assets/web-panel/assets/{index-BF-ZCVGE.js → index-CGjmILDm.js} +1 -1
- package/src/assets/web-panel/assets/{index-gFjYdstW.js → index-CW_G-MXw.js} +1 -1
- package/src/assets/web-panel/assets/{index-NA2oBLSB.js → index-CZ6Yt17L.js} +1 -1
- package/src/assets/web-panel/assets/{index-Mobw3PHs.js → index-CeASi4fr.js} +1 -1
- package/src/assets/web-panel/assets/{index-DWL3SYN3.js → index-CgiECHu2.js} +1 -1
- package/src/assets/web-panel/assets/{index-1LoutPJd.js → index-Cp8vhyZy.js} +1 -1
- package/src/assets/web-panel/assets/{index-BnHhFnwt.js → index-CwSf5pnf.js} +1 -1
- package/src/assets/web-panel/assets/{index-B6QDWRLk.js → index-D4_MuGkd.js} +1 -1
- package/src/assets/web-panel/assets/{index-D-QkW1fp.js → index-D9vU25ij.js} +1 -1
- package/src/assets/web-panel/assets/{index-C4SN3by5.js → index-DASluSqY.js} +1 -1
- package/src/assets/web-panel/assets/{index-CyEhUJcu.js → index-DLpIs_P_.js} +1 -1
- package/src/assets/web-panel/assets/index-DOZTSoS7.js +1 -0
- package/src/assets/web-panel/assets/{index-BrkJ7JPm.js → index-DPdUNk1i.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cnok8mhZ.js → index-DVsqvI4M.js} +1 -1
- package/src/assets/web-panel/assets/index-DhpvjpqI.js +1 -0
- package/src/assets/web-panel/assets/{index-CAVW0cWM.js → index-DmkMXwnR.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cc9aPkv-.js → index-DocdRcbd.js} +1 -1
- package/src/assets/web-panel/assets/{index-DnVVYKCE.js → index-Dyngbd29.js} +20 -20
- package/src/assets/web-panel/assets/{index-D8gt0j7r.js → index-GwdRUZ-x.js} +1 -1
- package/src/assets/web-panel/assets/{index-BIYTjbv_.js → index-LvCBfTLo.js} +1 -1
- package/src/assets/web-panel/assets/{index-DhXay17G.js → index-cpEli44X.js} +1 -1
- package/src/assets/web-panel/assets/{index-BQWENaZf.js → index-fzaMtSJ8.js} +1 -1
- package/src/assets/web-panel/assets/{index-DfRDyY1q.js → index-pum7HYBA.js} +1 -1
- package/src/assets/web-panel/assets/{index-BgSR2WMG.js → index-t8N1tSeX.js} +1 -1
- package/src/assets/web-panel/assets/{index-D5IytTND.js → index-uCbEN7cY.js} +1 -1
- package/src/assets/web-panel/assets/{index-DtRwLhee.js → index-wKTLbKyc.js} +1 -1
- package/src/assets/web-panel/assets/{index-D4kZoXNr.js → index-wV6iGdpY.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-Cvt59c10.js → initDefaultProps-V5Fo95FM.js} +1 -1
- package/src/assets/web-panel/assets/{motion-D15pPEzl.js → motion-BYWU0hUT.js} +1 -1
- package/src/assets/web-panel/assets/{move-N55KeXJ7.js → move-Cr1M-J2h.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-CyFO1bYP.js → mtc-parser-BysQKi2N.js} +1 -1
- package/src/assets/web-panel/assets/{omit-B5IXfxU2.js → omit-D1zHU8GC.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-CpVqsulV.js → pickAttrs-CUArxtfi.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-ME36sMF3.js → placementArrow-ChoYEys0.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-BXAIR1r-.js → responsiveObserve-BQRs3Mo7.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BkOX3-Dp.js → slide-B8zbsCkg.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-Cy4Aklpt.js → statusUtils-C2U8Gs6h.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-gUd2T206.js → styleChecker-Dd8MgL_V.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-CaVD4o99.js → useFlexGapSupport-hknqY5NH.js} +1 -1
- package/src/assets/web-panel/assets/{useFs--pFGl0KD.js → useFs-CLTAmcfw.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-D45iP86i.js → usePersonalDataHub-ByegHbiB.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-BayoChH_.js → vnode-DqlAy5DP.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CpP38poi.js → zoom-DiXiztQn.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/agenda.js +115 -3
- package/src/commands/agent.js +10 -1
- package/src/commands/background-session.js +2 -1
- package/src/commands/context.js +69 -2
- package/src/data/changelog.json +26 -0
- package/src/gateways/terminal/PtyManager.js +45 -4
- package/src/gateways/ws/background-agent-protocol.js +38 -0
- package/src/gateways/ws/message-dispatcher.js +1 -0
- package/src/gateways/ws/remote-session-protocol.js +65 -6
- package/src/gateways/ws/ws-server.js +18 -2
- package/src/harness/background-task-manager.js +70 -2
- package/src/harness/feature-flags.js +15 -8
- package/src/harness/mcp-client.js +618 -43
- package/src/harness/worktree-isolator.js +14 -3
- package/src/lazy-dispatch.js +30 -1
- package/src/lib/agent-authority.js +22 -0
- package/src/lib/agent-core.js +3 -0
- package/src/lib/agent-sandbox.js +161 -0
- package/src/lib/agent-schedule-store.js +45 -22
- package/src/lib/agent-team/team-runner.js +22 -0
- package/src/lib/artifact-store.js +35 -0
- package/src/lib/async-hook-supervisor.cjs +13 -2
- package/src/lib/audit-mtc.js +3 -2
- package/src/lib/background-agent-supervisor.js +104 -3
- package/src/lib/background-interaction-journal.js +407 -0
- package/src/lib/background-interaction-resolver.js +23 -34
- package/src/lib/background-session-transport.js +12 -2
- package/src/lib/capability-manifest.js +41 -3
- package/src/lib/capability-negotiation.js +1 -1
- package/src/lib/channels/channel-manager.js +33 -0
- package/src/lib/channels/telegram-channel.js +23 -5
- package/src/lib/channels/webhook-channel.js +38 -15
- package/src/lib/chrome-connector.js +169 -23
- package/src/lib/config-manager.js +23 -9
- package/src/lib/context-breakdown.js +31 -0
- package/src/lib/cowork-cron.js +274 -32
- package/src/lib/cross-chain-mtc.js +3 -2
- package/src/lib/durable-security-store.js +124 -0
- package/src/lib/event-runtime-host.js +67 -6
- package/src/lib/event-runtime-store.js +163 -0
- package/src/lib/goal-store.js +32 -12
- package/src/lib/headless-manifest.js +2 -1
- package/src/lib/hook-environment.cjs +58 -0
- package/src/lib/hook-manager.js +12 -5
- package/src/lib/hook-runner.cjs +122 -28
- package/src/lib/hook-runner.js +7 -2
- package/src/lib/hooks-v2-producers.js +36 -0
- package/src/lib/hooks-v2-runtime.js +329 -52
- package/src/lib/interaction-adapter.js +60 -19
- package/src/lib/interaction-binding.js +64 -0
- package/src/lib/json-schema-output.js +439 -14
- package/src/lib/json-schema-validate.js +514 -883
- package/src/lib/lan-pairing-tokens.js +115 -57
- package/src/lib/lsp/__tests__/lsp-client.test.js +32 -0
- package/src/lib/lsp/__tests__/lsp-manager.test.js +25 -0
- package/src/lib/lsp/lsp-client.js +4 -0
- package/src/lib/lsp/lsp-manager.js +3 -0
- package/src/lib/lsp/lsp-server-registry.js +18 -0
- package/src/lib/mcp-client.js +1 -0
- package/src/lib/mcp-oauth.js +35 -21
- package/src/lib/packer/pkg-config-generator.js +3 -0
- package/src/lib/permission-decision.js +99 -0
- package/src/lib/plugin-monitor-supervisor.js +3 -0
- package/src/lib/plugin-runtime/bin.js +1148 -70
- package/src/lib/plugin-runtime/capabilities.js +50 -0
- package/src/lib/plugin-runtime/capability-consent.js +42 -35
- package/src/lib/plugin-runtime/hooks.js +36 -9
- package/src/lib/plugin-runtime/install.js +23 -7
- package/src/lib/plugin-runtime/lsp.js +4 -0
- package/src/lib/plugin-runtime/manifest.js +112 -8
- package/src/lib/plugin-runtime/mcp.js +30 -5
- package/src/lib/plugin-runtime/monitors.js +11 -0
- package/src/lib/plugin-runtime/plugin-options.js +94 -38
- package/src/lib/plugin-runtime/policy.js +29 -2
- package/src/lib/plugin-runtime/sandbox-policy.js +84 -0
- package/src/lib/plugin-runtime/scopes.js +27 -13
- package/src/lib/plugin-runtime/trust.js +36 -31
- package/src/lib/process-execution-broker/credential-agent.js +114 -16
- package/src/lib/process-execution-broker/credential-transport-worker.js +312 -0
- package/src/lib/process-execution-broker/credential-transport.js +378 -0
- package/src/lib/process-execution-broker/index.js +765 -49
- package/src/lib/process-execution-broker/platform-sandbox.js +4233 -138
- package/src/lib/process-execution-broker/windows-sandbox-helper.dll +0 -0
- package/src/lib/process-execution-broker/windows-sandbox-helper.exe +0 -0
- package/src/lib/process-execution-broker/windows-sandbox.cs +3856 -0
- package/src/lib/project-mcp-trust.js +21 -26
- package/src/lib/protocol-replay.js +19 -12
- package/src/lib/repl-bang-memorize.js +67 -10
- package/src/lib/settings-hooks.cjs +13 -0
- package/src/lib/skill-loader.js +83 -10
- package/src/lib/slash-commands.js +27 -4
- package/src/lib/sync-credentials.js +5 -4
- package/src/lib/turn-binding.js +8 -6
- package/src/repl/agent-repl.js +117 -31
- package/src/repl/repl-turn-binding.js +5 -2
- package/src/runtime/agent-core.js +699 -70
- package/src/runtime/agent-runtime.js +13 -1
- package/src/runtime/coding-agent-contract-shared.cjs +3 -3
- package/src/runtime/headless-runner.js +105 -7
- package/src/runtime/headless-stream.js +209 -23
- package/src/runtime/mcp-config.js +29 -17
- package/src/runtime/policies/agent-policy.js +2 -0
- package/src/workers/background-agent-worker.js +128 -13
- package/src/assets/web-panel/assets/ChatBubbleRenderer-C7bofJuA.js +0 -1
- package/src/assets/web-panel/assets/Projects-BbgmyQnS.js +0 -1
- package/src/assets/web-panel/assets/RemoteSession-Bqk3EYSu.js +0 -4
- package/src/assets/web-panel/assets/Tasks-3bDAUz8K.js +0 -1
- package/src/assets/web-panel/assets/Terminal-CsMLKIoV.js +0 -3
- package/src/assets/web-panel/assets/chat-CJ19O6Dh.js +0 -1
- package/src/assets/web-panel/assets/devWarning-BBMFnsja.js +0 -1
- package/src/assets/web-panel/assets/index-Do8JMV4N.js +0 -1
- package/src/assets/web-panel/assets/index-UYAJ6iNM.js +0 -1
package/src/repl/agent-repl.js
CHANGED
|
@@ -48,9 +48,11 @@ import {
|
|
|
48
48
|
appendCompactEvent,
|
|
49
49
|
appendTokenUsage,
|
|
50
50
|
appendToolCallCompact,
|
|
51
|
+
appendEvent,
|
|
51
52
|
rebuildMessages,
|
|
52
53
|
sessionExists,
|
|
53
54
|
} from "../harness/jsonl-session-store.js";
|
|
55
|
+
import { CLISkillLoader } from "../lib/skill-loader.js";
|
|
54
56
|
import { storeMemory, consolidateMemory } from "../lib/hierarchical-memory.js";
|
|
55
57
|
import { CLIContextEngineering } from "../lib/cli-context-engineering.js";
|
|
56
58
|
import { defaultPrepareCall } from "../lib/turn-context.js";
|
|
@@ -64,6 +66,7 @@ import { CLIPermanentMemory } from "../lib/permanent-memory.js";
|
|
|
64
66
|
import { CLIAutonomousAgent, GoalStatus } from "../lib/autonomous-agent.js";
|
|
65
67
|
import {
|
|
66
68
|
PromptCompressor,
|
|
69
|
+
estimateTokens,
|
|
67
70
|
getContextWindow,
|
|
68
71
|
} from "../harness/prompt-compressor.js";
|
|
69
72
|
import {
|
|
@@ -912,8 +915,9 @@ export async function startAgentRepl(options = {}) {
|
|
|
912
915
|
_pluginMonitors = null;
|
|
913
916
|
}
|
|
914
917
|
|
|
915
|
-
//
|
|
916
|
-
// restored at SessionEnd.
|
|
918
|
+
// Preserve PATH compatibility for trusted legacy bin components without a
|
|
919
|
+
// sandboxPolicy, restored at SessionEnd. Policy-bearing bins stay off PATH
|
|
920
|
+
// and use agent-core's exact direct Broker route.
|
|
917
921
|
try {
|
|
918
922
|
const { applyPluginBinPath } = await import("../lib/plugin-runtime/bin.js");
|
|
919
923
|
const res = applyPluginBinPath({ cwd: process.cwd() });
|
|
@@ -1088,20 +1092,31 @@ export async function startAgentRepl(options = {}) {
|
|
|
1088
1092
|
// their existing behaviour byte-identically.
|
|
1089
1093
|
const _leanNoProjectMemory = options.projectMemory === false;
|
|
1090
1094
|
let _loadedReplInstructions = null;
|
|
1091
|
-
let
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1095
|
+
let _loadedReplPersonaSkills = [];
|
|
1096
|
+
let _replSkillCacheLedger = null;
|
|
1097
|
+
const _replSkillLoader = options.skillLoader || new CLISkillLoader();
|
|
1098
|
+
const _buildReplBaseSystem = () =>
|
|
1099
|
+
composeSystemPrompt(
|
|
1100
|
+
buildSystemPrompt(process.cwd(), {
|
|
1101
|
+
additionalDirectories,
|
|
1102
|
+
projectMemory: options.projectMemory,
|
|
1103
|
+
sessionId,
|
|
1104
|
+
skillLoader: _replSkillLoader,
|
|
1105
|
+
onSkillsLoaded: (skills, cacheLedger) => {
|
|
1106
|
+
_loadedReplPersonaSkills = Array.isArray(skills) ? skills : [];
|
|
1107
|
+
_replSkillCacheLedger = cacheLedger || null;
|
|
1108
|
+
},
|
|
1109
|
+
}),
|
|
1110
|
+
{
|
|
1111
|
+
systemPrompt: options.systemPrompt,
|
|
1112
|
+
appendSystemPrompt: options.appendSystemPrompt,
|
|
1113
|
+
projectMemory: _leanNoProjectMemory ? false : undefined,
|
|
1114
|
+
onInstructionsLoaded: (loaded) => {
|
|
1115
|
+
_loadedReplInstructions = loaded;
|
|
1116
|
+
},
|
|
1102
1117
|
},
|
|
1103
|
-
|
|
1104
|
-
);
|
|
1118
|
+
);
|
|
1119
|
+
let _replBaseSystem = _buildReplBaseSystem();
|
|
1105
1120
|
let _activeOutputStyle = null; // { name, body }
|
|
1106
1121
|
const messages = [{ role: "system", content: _replBaseSystem }];
|
|
1107
1122
|
// Resume-degenerate role sanitation (Claude Code 2.1.187 parity): a one-shot
|
|
@@ -1184,6 +1199,46 @@ export async function startAgentRepl(options = {}) {
|
|
|
1184
1199
|
// for this session via the shared mcp-config engine. Holds {mcpClient,
|
|
1185
1200
|
// extraToolDefinitions, externalToolExecutors, externalToolDescriptors}.
|
|
1186
1201
|
let _adhocMcp = null;
|
|
1202
|
+
const _persistReplContextSources = () => {
|
|
1203
|
+
if (!useJsonl || !sessionId) return false;
|
|
1204
|
+
_replSkillCacheLedger =
|
|
1205
|
+
_replSkillLoader.getCacheLedger?.() || _replSkillCacheLedger;
|
|
1206
|
+
const mcpDefinitions = _adhocMcp?.extraToolDefinitions || [];
|
|
1207
|
+
if (
|
|
1208
|
+
mcpDefinitions.length === 0 &&
|
|
1209
|
+
_loadedReplPersonaSkills.length === 0 &&
|
|
1210
|
+
!_replSkillCacheLedger?.descriptors?.resident
|
|
1211
|
+
) {
|
|
1212
|
+
return false;
|
|
1213
|
+
}
|
|
1214
|
+
try {
|
|
1215
|
+
appendEvent(sessionId, "context_sources", {
|
|
1216
|
+
mcp: mcpDefinitions.map((definition) => ({
|
|
1217
|
+
function: {
|
|
1218
|
+
name: definition?.function?.name || null,
|
|
1219
|
+
description: definition?.function?.description || "",
|
|
1220
|
+
parameters: definition?.function?.parameters || {},
|
|
1221
|
+
},
|
|
1222
|
+
})),
|
|
1223
|
+
skills: _loadedReplPersonaSkills.map((skill) => ({
|
|
1224
|
+
id: skill?.id || skill?.displayName || "skill",
|
|
1225
|
+
displayName: skill?.displayName || skill?.id || "skill",
|
|
1226
|
+
source: skill?.source || "skill",
|
|
1227
|
+
tokens: estimateTokens(
|
|
1228
|
+
`## Persona: ${skill?.displayName || skill?.id || "skill"}\n${
|
|
1229
|
+
typeof skill?.body === "string" ? skill.body : ""
|
|
1230
|
+
}`,
|
|
1231
|
+
),
|
|
1232
|
+
bodyLoaded: skill?.bodyLoaded === true,
|
|
1233
|
+
})),
|
|
1234
|
+
skillCache: _replSkillCacheLedger,
|
|
1235
|
+
});
|
|
1236
|
+
return true;
|
|
1237
|
+
} catch {
|
|
1238
|
+
// Source attribution must never make an interactive turn fail.
|
|
1239
|
+
return false;
|
|
1240
|
+
}
|
|
1241
|
+
};
|
|
1187
1242
|
if (options.bundlePath) {
|
|
1188
1243
|
try {
|
|
1189
1244
|
const { loadBundle } =
|
|
@@ -1338,6 +1393,7 @@ export async function startAgentRepl(options = {}) {
|
|
|
1338
1393
|
_adhocMcp = null;
|
|
1339
1394
|
}
|
|
1340
1395
|
}
|
|
1396
|
+
_persistReplContextSources();
|
|
1341
1397
|
|
|
1342
1398
|
// Seed connected MCP servers with the startup workspace roots when the session
|
|
1343
1399
|
// began with extra `--add-dir` roots — otherwise `roots/list` would only ever
|
|
@@ -1779,6 +1835,36 @@ export async function startAgentRepl(options = {}) {
|
|
|
1779
1835
|
new Promise((resolve) => {
|
|
1780
1836
|
const label =
|
|
1781
1837
|
request.message || "MCP server requests additional input";
|
|
1838
|
+
if (request.mode === "url") {
|
|
1839
|
+
rl.question(
|
|
1840
|
+
chalk.yellow(
|
|
1841
|
+
`\n MCP [${request.server}] ${label}\n` +
|
|
1842
|
+
` Host: ${request.urlHost}\n` +
|
|
1843
|
+
` URL: ${request.url}\n` +
|
|
1844
|
+
" Open this secure page? [y/N] ",
|
|
1845
|
+
),
|
|
1846
|
+
async (answer) => {
|
|
1847
|
+
const approved = /^(y|yes)$/i.test(
|
|
1848
|
+
String(answer || "").trim(),
|
|
1849
|
+
);
|
|
1850
|
+
if (!approved) {
|
|
1851
|
+
resolve({ action: "decline" });
|
|
1852
|
+
rl.prompt();
|
|
1853
|
+
return;
|
|
1854
|
+
}
|
|
1855
|
+
try {
|
|
1856
|
+
const { defaultOpenBrowser } =
|
|
1857
|
+
await import("../lib/mcp-oauth.js");
|
|
1858
|
+
const opened = defaultOpenBrowser(request.url);
|
|
1859
|
+
resolve(opened ? { action: "accept" } : { action: "cancel" });
|
|
1860
|
+
} catch {
|
|
1861
|
+
resolve({ action: "cancel" });
|
|
1862
|
+
}
|
|
1863
|
+
rl.prompt();
|
|
1864
|
+
},
|
|
1865
|
+
);
|
|
1866
|
+
return;
|
|
1867
|
+
}
|
|
1782
1868
|
rl.question(
|
|
1783
1869
|
chalk.yellow(`\n MCP [${request.server}] ${label}\n > `),
|
|
1784
1870
|
(answer) => {
|
|
@@ -2531,17 +2617,7 @@ export async function startAgentRepl(options = {}) {
|
|
|
2531
2617
|
additionalDirectories.push(res.dir);
|
|
2532
2618
|
// Re-advertise the updated roots in the system prompt; keep the
|
|
2533
2619
|
// active output-style body layered on top (same as /output-style).
|
|
2534
|
-
_replBaseSystem =
|
|
2535
|
-
buildSystemPrompt(process.cwd(), {
|
|
2536
|
-
additionalDirectories,
|
|
2537
|
-
projectMemory: options.projectMemory,
|
|
2538
|
-
}),
|
|
2539
|
-
{
|
|
2540
|
-
systemPrompt: options.systemPrompt,
|
|
2541
|
-
appendSystemPrompt: options.appendSystemPrompt,
|
|
2542
|
-
projectMemory: _leanNoProjectMemory ? false : undefined,
|
|
2543
|
-
},
|
|
2544
|
-
);
|
|
2620
|
+
_replBaseSystem = _buildReplBaseSystem();
|
|
2545
2621
|
messages[0].content = _activeOutputStyle
|
|
2546
2622
|
? `${_replBaseSystem}\n\n${_activeOutputStyle.body}`
|
|
2547
2623
|
: _replBaseSystem;
|
|
@@ -3709,11 +3785,16 @@ export async function startAgentRepl(options = {}) {
|
|
|
3709
3785
|
// layers (incl. .claude/skills) without restarting the session.
|
|
3710
3786
|
if (trimmed === "/reload-skills") {
|
|
3711
3787
|
try {
|
|
3712
|
-
|
|
3713
|
-
const n =
|
|
3788
|
+
_replSkillLoader.clearCache();
|
|
3789
|
+
const n = _replSkillLoader.loadAll().length;
|
|
3790
|
+
_replBaseSystem = _buildReplBaseSystem();
|
|
3791
|
+
messages[0].content = _activeOutputStyle
|
|
3792
|
+
? `${_replBaseSystem}\n\n${_activeOutputStyle.body}`
|
|
3793
|
+
: _replBaseSystem;
|
|
3794
|
+
_persistReplContextSources();
|
|
3714
3795
|
logger.log(
|
|
3715
3796
|
chalk.green(
|
|
3716
|
-
`✔ skills reloaded — ${n} available (
|
|
3797
|
+
`✔ skills reloaded — ${n} available (${_replSkillLoader.getLayerPaths().length} layers re-scanned)`,
|
|
3717
3798
|
),
|
|
3718
3799
|
);
|
|
3719
3800
|
} catch (err) {
|
|
@@ -3796,7 +3877,7 @@ export async function startAgentRepl(options = {}) {
|
|
|
3796
3877
|
/* monitor restart is best-effort */
|
|
3797
3878
|
}
|
|
3798
3879
|
|
|
3799
|
-
// Re-apply plugin bin PATH
|
|
3880
|
+
// Re-apply legacy plugin bin PATH; strict bins remain direct-only.
|
|
3800
3881
|
try {
|
|
3801
3882
|
const { applyPluginBinPath } =
|
|
3802
3883
|
await import("../lib/plugin-runtime/bin.js");
|
|
@@ -5311,7 +5392,9 @@ export async function startAgentRepl(options = {}) {
|
|
|
5311
5392
|
},
|
|
5312
5393
|
});
|
|
5313
5394
|
}
|
|
5314
|
-
_turnBindingProducer?.beginTurn(messages.length
|
|
5395
|
+
_turnBindingProducer?.beginTurn(messages.length, {
|
|
5396
|
+
worktreeId: options.worktreeId ?? null,
|
|
5397
|
+
});
|
|
5315
5398
|
} catch (error) {
|
|
5316
5399
|
_turnBindingCriticalError =
|
|
5317
5400
|
error instanceof Error ? error : new Error(String(error));
|
|
@@ -5527,6 +5610,7 @@ export async function startAgentRepl(options = {}) {
|
|
|
5527
5610
|
contextEngine,
|
|
5528
5611
|
iterationBudget,
|
|
5529
5612
|
sessionId,
|
|
5613
|
+
skillLoader: _replSkillLoader,
|
|
5530
5614
|
cwd: process.cwd(),
|
|
5531
5615
|
additionalDirectories,
|
|
5532
5616
|
sandbox: _sandbox,
|
|
@@ -5568,6 +5652,7 @@ export async function startAgentRepl(options = {}) {
|
|
|
5568
5652
|
externalToolDescriptors: _adhocMcp?.externalToolDescriptors,
|
|
5569
5653
|
chatFn: _fallbackChatFn,
|
|
5570
5654
|
});
|
|
5655
|
+
_persistReplContextSources();
|
|
5571
5656
|
_turnAbort = null;
|
|
5572
5657
|
|
|
5573
5658
|
// Strip the one-shot /btw aside now the model has seen it — so it is never
|
|
@@ -5933,6 +6018,7 @@ export async function startAgentRepl(options = {}) {
|
|
|
5933
6018
|
if (sessionId) {
|
|
5934
6019
|
try {
|
|
5935
6020
|
if (useJsonl) {
|
|
6021
|
+
_persistReplContextSources();
|
|
5936
6022
|
// JSONL: write final compact snapshot for fast rebuild
|
|
5937
6023
|
appendCompactEvent(sessionId, {
|
|
5938
6024
|
strategy: "session-end",
|
|
@@ -71,7 +71,7 @@ export function createReplTurnBindingProducer({
|
|
|
71
71
|
* appended, with `conversationOffset = messages.length` — the exact-match
|
|
72
72
|
* contract `pickPersistedTurn` relies on.
|
|
73
73
|
*/
|
|
74
|
-
beginTurn(conversationOffset) {
|
|
74
|
+
beginTurn(conversationOffset, { worktreeId = null } = {}) {
|
|
75
75
|
try {
|
|
76
76
|
if (!feed) {
|
|
77
77
|
feed = createTurnBindingFeed({
|
|
@@ -79,7 +79,10 @@ export function createReplTurnBindingProducer({
|
|
|
79
79
|
nonce: runNonce,
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
|
-
return feed.beginTurn(conversationOffset, {
|
|
82
|
+
return feed.beginTurn(conversationOffset, {
|
|
83
|
+
supersede: true,
|
|
84
|
+
worktreeId,
|
|
85
|
+
});
|
|
83
86
|
} catch (error) {
|
|
84
87
|
return rejectOr(error, "load", null);
|
|
85
88
|
}
|