chainlesschain 0.166.22 → 0.166.25
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 +46 -3
- package/package.json +4 -3
- package/src/assets/web-panel/assets/{AIOps-oJ7USzMC.js → AIOps-RaxL_QQD.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-BlgnZe_C.js → ActionButton-DD3ieFO-.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-D2rRbTLu.js → Analytics-CATDJukS.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-FwS3f0B2.js → AppLayout-BHGsnRDS.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-iF-_08Hi.js → Artifacts-BL6NunjN.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-D24p0zQw.js → Audit-D0nEWfbA.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-Cg3mRVi9.js → BackgroundAgents-BAP1MUol.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-EOqht3H-.js → Backup-R4y2OeSi.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-9XWYq2hj.js → BaseInput-ByQZ2z6S.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-Dq5yardA.js → Chat-32uV--xF.js} +4 -4
- package/src/assets/web-panel/assets/ChatBubbleRenderer-t1enanwz.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-CuyCBoBf.js → Checkbox-D1CB-7bq.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DjWtYHNe.js → Codegen-BPx3dQ2q.js} +1 -1
- package/src/assets/web-panel/assets/{Col-CrVr_iuG.js → Col-DkPTQ2Gl.js} +1 -1
- package/src/assets/web-panel/assets/{Community-C6QxpfGc.js → Community-ZriaxRlr.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-B-v5r6Pa.js → Compact-C_qJ0P7F.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-zNiLiFgD.js → Compliance-Bgoy-saS.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-D9K7lMOu.js → Cowork-B5i9y6XK.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-DAjO36z4.js → Cron-D7vBJ5-J.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-Bxqn0aqB.js → Crosschain-D4kvoGI_.js} +1 -1
- package/src/assets/web-panel/assets/{DID-DfRmLUe-.js → DID-BLOeBd-r.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-Cz8KF3fr.js → Dashboard-mecJaonC.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-C4oVfkP0.js → Dropdown-GPKwaFer.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-ivyZKN8k.js → EmailListRenderer-BML9m7Dd.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-DoxY1CPW.js → FamilyGuardDashboard-DN5bAtJC.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-C93gZxnb.js → Federation-DmD6Gecd.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-D_lEjYJE.js → FormItemContext-6wwplN_K.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-BNFN9YjN.js → GenericCardRenderer-DUhpLkDL.js} +1 -1
- package/src/assets/web-panel/assets/{Git-mUu2HcLI.js → Git-eJfyXkwf.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-CNuosrge.js → Governance-swAUW59x.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-DwY5pbCB.js → Inference-CbdwJPDJ.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-aRUxhACD.js → KnowledgeGraph-UuYpg1nm.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-DFfsWYy_.js → Logs-CS0G057y.js} +2 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-BxIIB4k3.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-COI-ciM-.js → Marketplace-CZRjuvvI.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-BJJwaIpe.js → McpTools-BOJ9A_Rf.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-CDO6SGDZ.js → Memory-BnkrR-Ok.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-BlZ5tFf4.js → MobileBridge-Do4mPi13.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-DuoxbgWz.js → MobileProjects-2JxWa6-p.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-6ec9j70b.js → Mtc-CS_mnpGd.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-BuL7HkC7.js → MtcAudit-DZ4J_351.js} +5 -5
- package/src/assets/web-panel/assets/{Multisig-CJxR85lk.js → Multisig-Jh74zKXu.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-B71O1S4l.js → NLProgramming-_4n2BfnS.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-Bsw5zbpV.js → Notes-CtENcKHv.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-BnAhXuK_.js → NotificationSettings-dgDCvpK9.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-BJ0R5GGz.js → OrderTableRenderer-D5VxCrmG.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-B7wwNxoP.js → Organization-CpIF8Xkd.js} +2 -2
- package/src/assets/web-panel/assets/{Overflow-CfAGr0gM.js → Overflow-aHnBZaez.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-KhMg22Fz.js → P2P-8ppzog2V.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-NdAXI9ft.js → PdhVaultBrowser-D3p1BXkp.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-CIYjqyT7.js → Permissions-D7vflD5q.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-D2ht3P_R.js → PersonalDataHub-D2hY-Ek2.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-i6flZW1m.js → Pipeline-qK2VqhJC.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-DE0lhYVc.js → Privacy-DHJr4uu0.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-BL3YbyxS.js → ProjectInit-DMBS6trm.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-CEtdg7ni.js → ProjectSettings-D3Ng74BT.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-CvtU5peJ.js → Projects-BfJFZiIW.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-DKt_Cg-j.js → Providers-DlNA95G0.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-DA61jNSx.js → QrScannerModal-CMOIYxIm.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-fS9ryUmq.js → QuickAsk-D6MyGp5I.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-CR9dZU5Y.js → Recommend-W6WcShtf.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-BV0BR2Dz.js → RemoteSession-Dm_MjlV_.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-BIeGUvYD.js → Reputation-Ctvij6eX.js} +1 -1
- package/src/assets/web-panel/assets/{Row-DHDT1aro.js → Row-DivbeDE-.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-Cq6YKb1h.js → RssFeed-D4famoAw.js} +3 -3
- package/src/assets/web-panel/assets/{Search-DEF6vsy6.js → Search-6gOAh3zG.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CHtYiKY9.js → Security-DApb9kK8.js} +4 -4
- package/src/assets/web-panel/assets/{Services-u16lvBJN.js → Services-B8OomyE2.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CGbizyDj.js → Skeleton-BTJ2g2E3.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-BZMQcAa7.js → Skills-NIRr4DD1.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-Bm-CycVi.js → Sla-BQHP_6px.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-BudpA5kr.js → SpeechSettings-BVQTDSVS.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-B8q1C1eC.js → SyncSettings-BOD4Mar6.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-SU1pBWc-.js → Tasks-Ciu7H2-y.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-CyOfJzmt.js → Templates-CtlwavRU.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-xqWSm2GP.js → Tenant-QLWYJdL6.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-D1Ttgjsi.js → Terminal-B3q10mjm.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-Da2lYs5D.js → TimelineRenderer-CqltBA_8.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-B34-SduO.js → Tokens-CJOKrj4y.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-C8zyYm4R.js → Trigger-CPMGgfdM.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-D1Pvqems.js → Trust-DiJms7Bl.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-Do3VVnAy.js → UkeySign-rakR8eel.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-Dz7egVIA.js → VideoEditing-DAWZUM5o.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-Dcuw-OxR.js → Wallet-DqUPnl7K.js} +3 -3
- package/src/assets/web-panel/assets/{WebAuthn-DPlw-QsB.js → WebAuthn-BnVUwvMm.js} +3 -3
- package/src/assets/web-panel/assets/{WorkflowEditor-h4OsnU5q.js → WorkflowEditor-B1CAwxgs.js} +1 -1
- package/src/assets/web-panel/assets/{chat-eO9wEwrW.js → chat-k2-0Jzfy.js} +1 -1
- package/src/assets/web-panel/assets/{colors-34lSmOXw.js → colors-BAu8xBmW.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CK4kEWJ4.js → compact-item-DMlqcdfI.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-E0A57xed.js → createContext-BU9kfiSw.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-DuGrUMAS.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-BD9ZMGAl.js → hasIn-2vacgdcl.js} +1 -1
- package/src/assets/web-panel/assets/{index--N0u6kTG.js → index-B-C-Ruft.js} +1 -1
- package/src/assets/web-panel/assets/{index-DzXjP44T.js → index-B7wDjYUd.js} +1 -1
- package/src/assets/web-panel/assets/{index-CZBaqe3d.js → index-BMq0frKK.js} +1 -1
- package/src/assets/web-panel/assets/{index-DrOalGut.js → index-BUX4W-2v.js} +1 -1
- package/src/assets/web-panel/assets/{index-CT1_eRL-.js → index-BZz2eB33.js} +1 -1
- package/src/assets/web-panel/assets/{index-DrsDA_md.js → index-BblNQlaA.js} +1 -1
- package/src/assets/web-panel/assets/{index-DP-UZAQN.js → index-BdfKoqsK.js} +1 -1
- package/src/assets/web-panel/assets/{index-DiT_REby.js → index-Bf8YofPE.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cx3Jn1r0.js → index-Bn8tARil.js} +1 -1
- package/src/assets/web-panel/assets/{index-B0rkHxKK.js → index-Bpe2CJd-.js} +1 -1
- package/src/assets/web-panel/assets/{index-B_G_ElKO.js → index-BxctzdYQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-MIg5Z8qe.js → index-C24NoPpy.js} +1 -1
- package/src/assets/web-panel/assets/{index-BmNbU2Z6.js → index-C5C4kSi8.js} +1 -1
- package/src/assets/web-panel/assets/{index-BsGmo6v1.js → index-C6ICn9Y6.js} +1 -1
- package/src/assets/web-panel/assets/{index-CsrKJJcX.js → index-C8ldqZi6.js} +1 -1
- package/src/assets/web-panel/assets/{index-BbX_Dted.js → index-C9WsM29I.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ch175NUw.js → index-CONPVaxw.js} +1 -1
- package/src/assets/web-panel/assets/{index-DONOUtlz.js → index-CPyYXKFB.js} +1 -1
- package/src/assets/web-panel/assets/{index-DFLE2qO9.js → index-CSvSf9px.js} +1 -1
- package/src/assets/web-panel/assets/{index-o8pYehRq.js → index-CXmpR6N3.js} +3 -3
- package/src/assets/web-panel/assets/{index-Cz3unNfL.js → index-Chybe7Ge.js} +1 -1
- package/src/assets/web-panel/assets/{index-yAGBu2E0.js → index-CyXmP3PW.js} +1 -1
- package/src/assets/web-panel/assets/{index-CuSau5ya.js → index-DCusBOqR.js} +1 -1
- package/src/assets/web-panel/assets/{index-DcE1BspQ.js → index-DH01oIaj.js} +1 -1
- package/src/assets/web-panel/assets/{index-DrSAAuJj.js → index-DHg3LMNP.js} +1 -1
- package/src/assets/web-panel/assets/{index-CZkFMeWL.js → index-DWLTSIka.js} +1 -1
- package/src/assets/web-panel/assets/{index-DvKcroix.js → index-DaUGdvtU.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bjs90Eh9.js → index-DcA-tEQd.js} +1 -1
- package/src/assets/web-panel/assets/{index-DGRxt5wj.js → index-DfWvcu4p.js} +1 -1
- package/src/assets/web-panel/assets/{index-DCn-ECvK.js → index-DmZNnZz7.js} +1 -1
- package/src/assets/web-panel/assets/index-DvFfMAux.js +1 -0
- package/src/assets/web-panel/assets/{index-8qMA1DWQ.js → index-JsyGqKmD.js} +1 -1
- package/src/assets/web-panel/assets/{index-D4bB_x_v.js → index-TtrpHmYx.js} +1 -1
- package/src/assets/web-panel/assets/{index-Brqc9Emx.js → index-Ygh0wmKz.js} +1 -1
- package/src/assets/web-panel/assets/{index-Da5fmOHB.js → index-dIYqw3f0.js} +1 -1
- package/src/assets/web-panel/assets/{index-DpfisY1g.js → index-hDHHJYno.js} +1 -1
- package/src/assets/web-panel/assets/index-n6p-1A77.js +1 -0
- package/src/assets/web-panel/assets/{index-DeXNCyQJ.js → index-oElehY4F.js} +1 -1
- package/src/assets/web-panel/assets/{index-DcbgVLOH.js → index-z4_YwZDW.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DMTkAomF.js → initDefaultProps-B9OXWu2e.js} +1 -1
- package/src/assets/web-panel/assets/{motion-Cnti1F5g.js → motion-IQ47MCDQ.js} +1 -1
- package/src/assets/web-panel/assets/{move-CGxmHUga.js → move-CLCU4kjV.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-CuwwLoq7.js → mtc-parser-CXnVlSPq.js} +1 -1
- package/src/assets/web-panel/assets/{omit-BpdlTkPM.js → omit-BJjLXB0f.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-D7nWrThp.js → pickAttrs-BHdtvdy6.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-Bhx0TV8F.js → placementArrow-oq8X_Bwc.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CZ1KesZh.js → responsiveObserve-DTD02LAO.js} +1 -1
- package/src/assets/web-panel/assets/{slide-CnldF8J6.js → slide-DbEeq8to.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-CZfo_GOA.js → statusUtils-Do2fy1CJ.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-B2QCcAv5.js → styleChecker-CFWD63T-.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-DzzjIS4J.js → useFlexGapSupport-BeozAWOo.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-B_atg9M0.js → useFs-0-rIgnBL.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DhZs3QYN.js → usePersonalDataHub-CeiNoI31.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-DcePTYAm.js → vnode-Dj0ReRNg.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-BYmlnjRk.js → zoom-DD7MC4Dy.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/command-help-index.json +3 -3
- package/src/commands/agent.js +18 -1
- package/src/commands/evolution-benchmark.js +72 -0
- package/src/commands/evolution-knowledge.js +40 -1
- package/src/commands/evolution.js +2 -0
- package/src/commands/governed-skill-marketplace.js +142 -0
- package/src/commands/marketplace.js +4 -1
- package/src/commands/serve.js +21 -0
- package/src/commands/skill.js +3 -0
- package/src/data/changelog.json +39 -0
- package/src/gateways/ws/ws-agent-handler.js +59 -2
- package/src/gateways/ws/ws-server.js +2 -0
- package/src/generated/cc-agent-protocol.schema.json +3 -1
- package/src/harness/golden-transcript.js +1 -0
- package/src/harness/prompt-compressor.js +51 -5
- package/src/harness/provider-backed-compaction.js +28 -1
- package/src/harness/remote-session-registry.js +15 -3
- package/src/index.js +20 -2
- package/src/lazy-dispatch.js +6 -0
- package/src/lib/advisor-runtime.js +55 -2
- package/src/lib/app-server/cli-agent-kernel-adapter.js +4 -0
- package/src/lib/app-server/graph-runtime.js +32 -0
- package/src/lib/app-server/server.js +94 -1
- package/src/lib/app-server/websocket-transport.js +15 -0
- package/src/lib/autonomous-agent.js +63 -13
- package/src/lib/cowork/ab-comparator-cli.js +4 -3
- package/src/lib/cowork/debate-review-cli.js +4 -3
- package/src/lib/cowork/decision-kb-cli.js +5 -0
- package/src/lib/cowork-adapter.js +38 -16
- package/src/lib/evolution/agent-evolution-ingress.js +95 -15
- package/src/lib/evolution/agent-evolution-runtime-composition.js +82 -0
- package/src/lib/evolution/agent-evolution-session-lifecycle.js +46 -0
- package/src/lib/evolution/agent-model-projection.js +437 -0
- package/src/lib/evolution/bounded-descriptor-read.js +29 -0
- package/src/lib/evolution/controlled-skill-pilot-ledger-adapter.js +551 -0
- package/src/lib/evolution/controlled-skill-production-pilot.js +308 -18
- package/src/lib/evolution/evidence-backed-wiki-maintainer.js +32 -10
- package/src/lib/evolution/evidence-json-text.js +236 -0
- package/src/lib/evolution/evolution-artifact-ports.js +196 -21
- package/src/lib/evolution/evolution-deployment-loader.js +240 -2
- package/src/lib/evolution/evolution-eval-child-evidence-ledger-adapter.js +373 -0
- package/src/lib/evolution/evolution-eval-gate.js +14 -1
- package/src/lib/evolution/evolution-eval-process-supervisor-worker.mjs +14 -0
- package/src/lib/evolution/evolution-eval-process-supervisor.js +607 -0
- package/src/lib/evolution/evolution-evidence-artifact-adapter.js +14 -1
- package/src/lib/evolution/evolution-evidence-projector.js +271 -37
- package/src/lib/evolution/evolution-file-witness.js +153 -30
- package/src/lib/evolution/evolution-ledger-ports.js +1219 -66
- package/src/lib/evolution/evolution-ledger.js +66 -2
- package/src/lib/evolution/evolution-raw-crypto-shred.js +29 -15
- package/src/lib/evolution/evolution-raw-deletion-ledger-adapter.js +865 -0
- package/src/lib/evolution/evolution-release-train-domain-stages.js +769 -0
- package/src/lib/evolution/evolution-release-train-stage-output-ledger-adapter.js +333 -0
- package/src/lib/evolution/evolution-release-train.js +54 -6
- package/src/lib/evolution/evolution-workbench-batch-executor.js +101 -144
- package/src/lib/evolution/evolution-workbench-control-ports.js +203 -0
- package/src/lib/evolution/evolution-workbench-file-resources.js +403 -0
- package/src/lib/evolution/evolution-workbench-projection.js +134 -26
- package/src/lib/evolution/evolution-workbench-registry-source.js +482 -0
- package/src/lib/evolution/evolution-workbench-review-ledger-adapter.js +823 -0
- package/src/lib/evolution/evolution-workbench-review-protocol.js +157 -0
- package/src/lib/evolution/evolution-workbench-rollback-authorization.js +57 -0
- package/src/lib/evolution/evolution-workbench-rollback-ledger-adapter.js +1016 -0
- package/src/lib/evolution/evolution-workbench-runtime.js +133 -0
- package/src/lib/evolution/evolution-workbench-version-control.js +70 -36
- package/src/lib/evolution/evolvable-artifact-ledger-adapter.js +48 -0
- package/src/lib/evolution/governed-knowledge-candidate-rejection.js +343 -0
- package/src/lib/evolution/governed-knowledge-dependency-authority.js +227 -44
- package/src/lib/evolution/governed-knowledge-dependency-inventory.js +392 -0
- package/src/lib/evolution/governed-knowledge-dependency-ledger-executor.js +217 -82
- package/src/lib/evolution/governed-knowledge-quarantine-release.js +1013 -0
- package/src/lib/evolution/governed-knowledge-record.js +148 -0
- package/src/lib/evolution/governed-knowledge-revocation-host.js +59 -0
- package/src/lib/evolution/governed-knowledge-revocation-record.js +135 -0
- package/src/lib/evolution/governed-knowledge-skill-rollback.js +510 -0
- package/src/lib/evolution/governed-knowledge-sync.js +181 -95
- package/src/lib/evolution/governed-knowledge-wiki-tombstone.js +516 -0
- package/src/lib/evolution/governed-skill-marketplace-badge.js +208 -0
- package/src/lib/evolution/governed-skill-marketplace-candidate.js +330 -0
- package/src/lib/evolution/governed-skill-marketplace-cli-host.js +308 -0
- package/src/lib/evolution/governed-skill-marketplace-ledger-adapter.js +420 -0
- package/src/lib/evolution/governed-skill-marketplace.js +288 -5
- package/src/lib/evolution/governed-wiki-pruning-journal.js +302 -0
- package/src/lib/evolution/governed-wiki-pruning-ledger-adapter.js +459 -0
- package/src/lib/evolution/governed-wiki-pruning-maintenance.js +576 -0
- package/src/lib/evolution/governed-wiki-pruning-plan-authority.js +169 -0
- package/src/lib/evolution/governed-wiki-pruning-raw-shred.js +207 -0
- package/src/lib/evolution/governed-wiki-pruning-retrieval.js +587 -0
- package/src/lib/evolution/governed-wiki-pruning-runtime.js +153 -0
- package/src/lib/evolution/governed-wiki-pruning-skill-rollback.js +360 -0
- package/src/lib/evolution/governed-wiki-pruning.js +322 -143
- package/src/lib/evolution/independent-skill-revocation-source.js +231 -0
- package/src/lib/evolution/knowledge-wiki-source-admission.js +283 -0
- package/src/lib/evolution/knowledge-wiki-source-provenance.js +360 -0
- package/src/lib/evolution/progressive-canary-external-watchdog.js +578 -0
- package/src/lib/evolution/progressive-canary-traffic-worker.js +628 -0
- package/src/lib/evolution/progressive-canary-watchdog-file-store.js +285 -0
- package/src/lib/evolution/progressive-canary-watchdog-node-pki.js +265 -0
- package/src/lib/evolution/skill-candidate-registry.js +43 -3
- package/src/lib/evolution/skill-promotion-controller.js +25 -0
- package/src/lib/evolution/skill-promotion-review-ledger-adapter.js +100 -0
- package/src/lib/evolution/skill-registry-transition-ledger-adapter.js +131 -2
- package/src/lib/evolution/skill-release-registry.js +168 -4
- package/src/lib/evolution/skill-retrieval-revocation-authority.js +361 -0
- package/src/lib/evolution/skill-retrieval-revocation-ledger-adapter.js +346 -0
- package/src/lib/evolution/skill-revocation-propagation.js +467 -0
- package/src/lib/evolution/skill-target-matrix-eval.js +162 -11
- package/src/lib/evolution/skill-wiki-reconciliation.js +985 -0
- package/src/lib/evolution/skill-writer-inventory-manifest.js +8 -6
- package/src/lib/evolution/statistical-progressive-canary.js +165 -3
- package/src/lib/evolution/structured-memory-agent-control-plane.js +120 -0
- package/src/lib/evolution/structured-memory-authority-ledger-adapter.js +5 -1
- package/src/lib/evolution/structured-memory-promotion-receipt-writer.js +126 -0
- package/src/lib/evolution/wiki-informed-skill-proposer.js +127 -21
- package/src/lib/evolution/wiki-maintainer-ledger-adapter.js +822 -101
- package/src/lib/evolution/wiki-revision-protocol.js +120 -0
- package/src/lib/evolution/wiki-skill-proposal-ledger-adapter.js +307 -0
- package/src/lib/evolution/wiki-target-tombstone-revision.js +109 -0
- package/src/lib/evolution/wikiskill-benchmark-cli-host.js +178 -0
- package/src/lib/evolution/wikiskill-benchmark-execution-host.js +702 -0
- package/src/lib/evolution/wikiskill-benchmark-ledger-adapter.js +613 -0
- package/src/lib/evolution/wikiskill-benchmark.js +80 -16
- package/src/lib/goal-assess.js +17 -10
- package/src/lib/interactive-planner.js +9 -1
- package/src/lib/iteration-budget.js +16 -2
- package/src/lib/micro-compact.js +4 -1
- package/src/lib/model-failure-policy.js +21 -0
- package/src/lib/process-execution-broker/index.js +1 -0
- 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 +33 -15
- package/src/lib/read-file-loop-guard.js +113 -0
- package/src/lib/read-file-page.js +191 -0
- package/src/lib/runnable-provider.js +2 -1
- package/src/lib/skill-retrieval-router.js +22 -1
- package/src/repl/agent-repl.js +133 -34
- package/src/runtime/agent-core.js +196 -74
- package/src/runtime/agent-runtime.js +43 -0
- package/src/runtime/coding-agent-contract-shared.cjs +7 -1
- package/src/runtime/fallback-model.js +143 -62
- package/src/runtime/headless-runner.js +54 -10
- package/src/runtime/headless-stream.js +50 -6
- package/src/runtime/runtime-factory.js +41 -2
- package/src/assets/web-panel/assets/ChatBubbleRenderer-Ds3pA-ET.js +0 -1
- package/src/assets/web-panel/assets/MarkdownRenderer-DqTx7_u1.js +0 -1
- package/src/assets/web-panel/assets/devWarning-CF3xafX2.js +0 -1
- package/src/assets/web-panel/assets/index-C907rPwd.js +0 -1
- package/src/assets/web-panel/assets/index-wueRSK2d.js +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BM25Search } from "./bm25-search.js";
|
|
2
|
+
import { captureSkillRetrievalRevocationReader } from "./evolution/skill-retrieval-revocation-authority.js";
|
|
2
3
|
|
|
3
4
|
export const SKILL_RETRIEVAL_RESULT_SCHEMA =
|
|
4
5
|
"chainlesschain.skill-retrieval-result/v1";
|
|
@@ -82,6 +83,7 @@ export function routeSkillDescriptors({
|
|
|
82
83
|
target = null,
|
|
83
84
|
vectorScores = null,
|
|
84
85
|
outcomeMetrics = null,
|
|
86
|
+
revocationReader = null,
|
|
85
87
|
topK = 5,
|
|
86
88
|
ambiguityMargin = 0.02,
|
|
87
89
|
} = {}) {
|
|
@@ -104,6 +106,10 @@ export function routeSkillDescriptors({
|
|
|
104
106
|
const requiredTags = new Set(
|
|
105
107
|
tags.map((value) => String(value).toLowerCase()),
|
|
106
108
|
);
|
|
109
|
+
const revocations =
|
|
110
|
+
revocationReader === null
|
|
111
|
+
? null
|
|
112
|
+
: captureSkillRetrievalRevocationReader(revocationReader);
|
|
107
113
|
const rejected = [];
|
|
108
114
|
const admitted = [];
|
|
109
115
|
for (const skill of skills) {
|
|
@@ -116,6 +122,11 @@ export function routeSkillDescriptors({
|
|
|
116
122
|
const mismatch = compatible(skill, target);
|
|
117
123
|
const reasons = [];
|
|
118
124
|
if (!digest) reasons.push("missing-content-digest");
|
|
125
|
+
const revocation =
|
|
126
|
+
digest === null
|
|
127
|
+
? null
|
|
128
|
+
: revocations?.inspect({ skillName: skill.id, contentDigest: digest });
|
|
129
|
+
if (revocation?.invalidated) reasons.push("revoked-by-evolution");
|
|
119
130
|
if (namespace !== null && skill.source !== namespace)
|
|
120
131
|
reasons.push("namespace-mismatch");
|
|
121
132
|
if ([...requiredTags].some((value) => !skillTags.has(value)))
|
|
@@ -123,7 +134,17 @@ export function routeSkillDescriptors({
|
|
|
123
134
|
if (!containsPath(skill, targetPath)) reasons.push("path-mismatch");
|
|
124
135
|
reasons.push(...mismatch.reasons);
|
|
125
136
|
if (reasons.length > 0) {
|
|
126
|
-
rejected.push({
|
|
137
|
+
rejected.push({
|
|
138
|
+
id: skill.id,
|
|
139
|
+
digest,
|
|
140
|
+
reasons,
|
|
141
|
+
...(revocation?.invalidated
|
|
142
|
+
? {
|
|
143
|
+
revocationStateDigest: revocation.stateDigest,
|
|
144
|
+
revocationReceiptDigest: revocation.receiptDigest,
|
|
145
|
+
}
|
|
146
|
+
: {}),
|
|
147
|
+
});
|
|
127
148
|
continue;
|
|
128
149
|
}
|
|
129
150
|
admitted.push({ skill, digest });
|
package/src/repl/agent-repl.js
CHANGED
|
@@ -173,6 +173,7 @@ import { newCostStore, addUsage } from "./session-cost.js";
|
|
|
173
173
|
import { extractPluginUsageAttribution } from "../lib/plugin-usage-attribution.js";
|
|
174
174
|
import { captureStructuredMemoryAgentControlPlane } from "../lib/evolution/structured-memory-agent-control-plane.js";
|
|
175
175
|
import { captureAgentEvolutionIngress } from "../lib/evolution/agent-evolution-ingress.js";
|
|
176
|
+
import { createAgentEvolutionSessionLifecycle } from "../lib/evolution/agent-evolution-session-lifecycle.js";
|
|
176
177
|
import { formatManagedCheckpointEvent } from "../lib/managed-checkpoint-render.js";
|
|
177
178
|
import { parseThinkCommand, parseEffortCommand } from "./think-command.js";
|
|
178
179
|
import {
|
|
@@ -451,7 +452,6 @@ export async function runReplDirectToolWithLedger({
|
|
|
451
452
|
* Reference to the runtime DB for hook execution (set during startAgentRepl)
|
|
452
453
|
*/
|
|
453
454
|
let _hookDb = null;
|
|
454
|
-
let _compressor = null;
|
|
455
455
|
let _approvalGate = null;
|
|
456
456
|
// Static + CLI-owned scoped permission rules (deny > ask > allow) and an
|
|
457
457
|
// interactive confirmer for `ask` matches. Scoped rules are refreshed at each
|
|
@@ -3044,6 +3044,13 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
3044
3044
|
startupAdmission,
|
|
3045
3045
|
outputScope,
|
|
3046
3046
|
) {
|
|
3047
|
+
// The compressor captures this session's ingress and metering callbacks.
|
|
3048
|
+
// A later REPL instance must not replace another session's authority.
|
|
3049
|
+
let _compressor = null;
|
|
3050
|
+
const evolutionIngress =
|
|
3051
|
+
options.evolutionIngress == null
|
|
3052
|
+
? null
|
|
3053
|
+
: captureAgentEvolutionIngress(options.evolutionIngress);
|
|
3047
3054
|
// EPIPE guard: if the REPL's stdout is piped and the consumer closes (e.g.
|
|
3048
3055
|
// `cc agent | head`), the async stream `error` would otherwise crash the
|
|
3049
3056
|
// process. Route a broken pipe into the REPL's own graceful shutdown (the
|
|
@@ -3052,6 +3059,10 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
3052
3059
|
// a cleanup write that also EPIPEs can't loop. An early EPIPE remains pending
|
|
3053
3060
|
// until the close handler is attached; it never skips directly to exit.
|
|
3054
3061
|
let _replRl = null;
|
|
3062
|
+
const _evolutionSession =
|
|
3063
|
+
evolutionIngress === null
|
|
3064
|
+
? null
|
|
3065
|
+
: createAgentEvolutionSessionLifecycle(evolutionIngress);
|
|
3055
3066
|
let _replClosing = false;
|
|
3056
3067
|
let _replCloseReady = false;
|
|
3057
3068
|
let _replCleanupStarted = false;
|
|
@@ -3165,6 +3176,8 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
3165
3176
|
// above every direct-model surface (Advisor, /btw, /auto, /plan, /goal), and
|
|
3166
3177
|
// clear steering immediately so queued work cannot start another paid call.
|
|
3167
3178
|
let _processingLine = false;
|
|
3179
|
+
let _lineSettled = null;
|
|
3180
|
+
const _activeBtwCalls = new Set();
|
|
3168
3181
|
const _pendingLines = [];
|
|
3169
3182
|
const _runtimeLedgerTerminalLatch = createReplRuntimeLedgerTerminalLatch({
|
|
3170
3183
|
onTrip: (terminalError) => {
|
|
@@ -3223,7 +3236,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
3223
3236
|
callModel,
|
|
3224
3237
|
source: "model",
|
|
3225
3238
|
});
|
|
3226
|
-
const _runReplDirectTool = async (tool, args) => {
|
|
3239
|
+
const _runReplDirectTool = async (tool, args, { signal = null } = {}) => {
|
|
3227
3240
|
_runtimeLedgerTerminalLatch.assertOpen();
|
|
3228
3241
|
try {
|
|
3229
3242
|
const durableSessionId = resolveReplMeteredSessionId(useJsonl, sessionId);
|
|
@@ -3235,7 +3248,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
3235
3248
|
executeTool(name, toolArgs, {
|
|
3236
3249
|
sessionId: durableSessionId,
|
|
3237
3250
|
sessionBudget: _sessionBudget,
|
|
3238
|
-
signal: options.signal
|
|
3251
|
+
signal: combineReplSignals(signal, options.signal),
|
|
3239
3252
|
}),
|
|
3240
3253
|
now: options.now || Date.now,
|
|
3241
3254
|
terminalLatch: _runtimeLedgerTerminalLatch,
|
|
@@ -3396,7 +3409,11 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
3396
3409
|
let _compactionUsageBlock = null;
|
|
3397
3410
|
|
|
3398
3411
|
try {
|
|
3399
|
-
const ctx = await bootstrap({
|
|
3412
|
+
const ctx = await bootstrap({
|
|
3413
|
+
verbose: false,
|
|
3414
|
+
...(options.skipDb === true ? { skipDb: true } : {}),
|
|
3415
|
+
...(options.dbPath == null ? {} : { dbPath: options.dbPath }),
|
|
3416
|
+
});
|
|
3400
3417
|
db = ctx.db || null;
|
|
3401
3418
|
} catch (_err) {
|
|
3402
3419
|
// Continue without DB — static prompt fallback
|
|
@@ -3427,6 +3444,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
3427
3444
|
includeLedgerMetadata: true,
|
|
3428
3445
|
call: ({ signal }) =>
|
|
3429
3446
|
chatWithTools([{ role: "user", content: prompt }], {
|
|
3447
|
+
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
3430
3448
|
provider,
|
|
3431
3449
|
model,
|
|
3432
3450
|
baseUrl,
|
|
@@ -4826,7 +4844,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
4826
4844
|
// transcript snapshot and ZERO tools. Compact call/outcome metadata shares
|
|
4827
4845
|
// the session hash chain, while advice text itself is never persisted.
|
|
4828
4846
|
try {
|
|
4829
|
-
const { createConfiguredAdvisorRuntime
|
|
4847
|
+
const { createConfiguredAdvisorRuntime } =
|
|
4830
4848
|
await import("../lib/advisor-runtime.js");
|
|
4831
4849
|
const advisorOverrides = {};
|
|
4832
4850
|
if (options.advisorEnabled !== undefined) {
|
|
@@ -4841,17 +4859,8 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
4841
4859
|
baseUrl,
|
|
4842
4860
|
apiKey,
|
|
4843
4861
|
overrides: advisorOverrides,
|
|
4844
|
-
|
|
4845
|
-
|
|
4846
|
-
callProvider: request?.provider,
|
|
4847
|
-
callModel: request?.model,
|
|
4848
|
-
source: "model",
|
|
4849
|
-
call: ({ signal }) =>
|
|
4850
|
-
invokeToolFreeAdvisor({
|
|
4851
|
-
...request,
|
|
4852
|
-
signal: combineReplSignals(request?.signal, signal),
|
|
4853
|
-
}),
|
|
4854
|
-
}),
|
|
4862
|
+
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
4863
|
+
callWrapper: _directChatCallWrapper,
|
|
4855
4864
|
onEvent: (event) => {
|
|
4856
4865
|
if (!useJsonl || !sessionId) return;
|
|
4857
4866
|
try {
|
|
@@ -5639,6 +5648,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
5639
5648
|
}
|
|
5640
5649
|
try {
|
|
5641
5650
|
const chatFn = createChatFn({
|
|
5651
|
+
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
5642
5652
|
provider,
|
|
5643
5653
|
model,
|
|
5644
5654
|
baseUrl,
|
|
@@ -8012,7 +8022,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8012
8022
|
` ${chalk.cyan("/cowork graph <path>")} Code knowledge graph (ASCII)`,
|
|
8013
8023
|
);
|
|
8014
8024
|
logger.log(
|
|
8015
|
-
` ${chalk.cyan("/cowork decision <
|
|
8025
|
+
` ${chalk.cyan("/cowork decision <path>")} Extract architecture decisions`,
|
|
8016
8026
|
);
|
|
8017
8027
|
logger.log("");
|
|
8018
8028
|
} else if (subCmd === "debate" && coworkInput) {
|
|
@@ -8034,6 +8044,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8034
8044
|
target: targetLabel,
|
|
8035
8045
|
code,
|
|
8036
8046
|
llmOptions: {
|
|
8047
|
+
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
8037
8048
|
provider,
|
|
8038
8049
|
model,
|
|
8039
8050
|
baseUrl,
|
|
@@ -8073,6 +8084,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8073
8084
|
const result = await compare({
|
|
8074
8085
|
prompt: coworkInput,
|
|
8075
8086
|
llmOptions: {
|
|
8087
|
+
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
8076
8088
|
provider,
|
|
8077
8089
|
model,
|
|
8078
8090
|
baseUrl,
|
|
@@ -8099,12 +8111,11 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8099
8111
|
}
|
|
8100
8112
|
} else if (subCmd === "graph" && coworkInput) {
|
|
8101
8113
|
try {
|
|
8102
|
-
const {
|
|
8114
|
+
const { buildKnowledgeGraph } =
|
|
8103
8115
|
await import("../lib/cowork/code-knowledge-graph-cli.js");
|
|
8104
8116
|
process.stdout.write(chalk.gray("\n Analyzing code graph...\n"));
|
|
8105
|
-
const result = await
|
|
8106
|
-
|
|
8107
|
-
llmOptions: { provider, model, baseUrl, apiKey },
|
|
8117
|
+
const result = await buildKnowledgeGraph({
|
|
8118
|
+
targetPath: path.resolve(coworkInput),
|
|
8108
8119
|
});
|
|
8109
8120
|
// ASCII dependency graph
|
|
8110
8121
|
if (result.entities && result.entities.length > 0) {
|
|
@@ -8119,7 +8130,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8119
8130
|
process.stdout.write(chalk.bold("\n Relationships:\n"));
|
|
8120
8131
|
for (const rel of result.relationships.slice(0, 10)) {
|
|
8121
8132
|
process.stdout.write(
|
|
8122
|
-
` ${rel.
|
|
8133
|
+
` ${rel.from} ${chalk.gray(`—${rel.type}→`)} ${rel.to}\n`,
|
|
8123
8134
|
);
|
|
8124
8135
|
}
|
|
8125
8136
|
}
|
|
@@ -8138,12 +8149,19 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8138
8149
|
}
|
|
8139
8150
|
} else if (subCmd === "decision" && coworkInput) {
|
|
8140
8151
|
try {
|
|
8141
|
-
const {
|
|
8152
|
+
const { extractDecisions } =
|
|
8142
8153
|
await import("../lib/cowork/decision-kb-cli.js");
|
|
8143
8154
|
process.stdout.write(chalk.gray("\n Analyzing decisions...\n"));
|
|
8144
|
-
const result = await
|
|
8145
|
-
|
|
8146
|
-
llmOptions: {
|
|
8155
|
+
const result = await extractDecisions({
|
|
8156
|
+
targetPath: path.resolve(coworkInput),
|
|
8157
|
+
llmOptions: {
|
|
8158
|
+
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
8159
|
+
provider,
|
|
8160
|
+
model,
|
|
8161
|
+
baseUrl,
|
|
8162
|
+
apiKey,
|
|
8163
|
+
callWrapper: _directChatCallWrapper,
|
|
8164
|
+
},
|
|
8147
8165
|
});
|
|
8148
8166
|
if (result.decisions && result.decisions.length > 0) {
|
|
8149
8167
|
process.stdout.write(chalk.bold(" Architecture Decisions:\n"));
|
|
@@ -8178,7 +8196,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8178
8196
|
}
|
|
8179
8197
|
} else {
|
|
8180
8198
|
logger.info(
|
|
8181
|
-
"Usage: /cowork debate <file> | compare <prompt> | graph <path> | decision <
|
|
8199
|
+
"Usage: /cowork debate <file> | compare <prompt> | graph <path> | decision <path>",
|
|
8182
8200
|
);
|
|
8183
8201
|
}
|
|
8184
8202
|
|
|
@@ -8281,6 +8299,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8281
8299
|
// Lazy-init autonomous agent with LLM chat function
|
|
8282
8300
|
if (!autonomousAgent._initialized) {
|
|
8283
8301
|
const chatFn = createChatFn({
|
|
8302
|
+
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
8284
8303
|
provider,
|
|
8285
8304
|
model,
|
|
8286
8305
|
baseUrl,
|
|
@@ -8289,7 +8308,10 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8289
8308
|
});
|
|
8290
8309
|
autonomousAgent.initialize({
|
|
8291
8310
|
llmChat: chatFn,
|
|
8292
|
-
toolExecutor:
|
|
8311
|
+
toolExecutor: (tool, args) =>
|
|
8312
|
+
_runReplDirectTool(tool, args, {
|
|
8313
|
+
signal: autonomousAgent.signal,
|
|
8314
|
+
}),
|
|
8293
8315
|
});
|
|
8294
8316
|
}
|
|
8295
8317
|
|
|
@@ -8401,6 +8423,16 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8401
8423
|
logger.warn(result.error);
|
|
8402
8424
|
}
|
|
8403
8425
|
} catch (error) {
|
|
8426
|
+
if (
|
|
8427
|
+
error?.runtimeLedgerPersistence === true ||
|
|
8428
|
+
error?.code === "CC_AGENT_EVOLUTION_INGRESS_FAILED"
|
|
8429
|
+
) {
|
|
8430
|
+
logger.error(
|
|
8431
|
+
"Plan approval stopped because Advisor admission or settlement failed.",
|
|
8432
|
+
);
|
|
8433
|
+
prompt();
|
|
8434
|
+
return;
|
|
8435
|
+
}
|
|
8404
8436
|
logger.warn(`Advisor plan review skipped: ${error.message}`);
|
|
8405
8437
|
}
|
|
8406
8438
|
}
|
|
@@ -8492,6 +8524,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
8492
8524
|
const { TerminalInteractionAdapter } =
|
|
8493
8525
|
await import("../lib/interaction-adapter.js");
|
|
8494
8526
|
const chatFn = createChatFn({
|
|
8527
|
+
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
8495
8528
|
provider,
|
|
8496
8529
|
model,
|
|
8497
8530
|
baseUrl,
|
|
@@ -9641,6 +9674,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
9641
9674
|
contextEngine,
|
|
9642
9675
|
iterationBudget,
|
|
9643
9676
|
sessionId,
|
|
9677
|
+
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
9644
9678
|
persistUsageTelemetry: useJsonl,
|
|
9645
9679
|
skillLoader: _replSkillLoader,
|
|
9646
9680
|
skillOutcomeIndex: options.skillOutcomeIndex,
|
|
@@ -9748,6 +9782,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
9748
9782
|
source: "model",
|
|
9749
9783
|
call: ({ signal }) =>
|
|
9750
9784
|
chatWithTools([{ role: "user", content: p }], {
|
|
9785
|
+
...(evolutionIngress === null ? {} : { evolutionIngress }),
|
|
9751
9786
|
model: activeModel,
|
|
9752
9787
|
provider,
|
|
9753
9788
|
baseUrl,
|
|
@@ -9789,6 +9824,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
9789
9824
|
logger.log(chalk.cyan(l));
|
|
9790
9825
|
if (done) _sessionGoal = null; // completed or exhausted → drop
|
|
9791
9826
|
} catch (err) {
|
|
9827
|
+
if (err?.code === "CC_AGENT_EVOLUTION_INGRESS_FAILED") throw err;
|
|
9792
9828
|
const terminalError = _runtimeLedgerTerminalLatch.trip(err);
|
|
9793
9829
|
if (terminalError) _reportRuntimeLedgerTerminal();
|
|
9794
9830
|
else logger.verbose(`/goal eval skipped: ${err.message}`);
|
|
@@ -9973,6 +10009,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
9973
10009
|
throw error;
|
|
9974
10010
|
}
|
|
9975
10011
|
if (error?.runtimeLedgerPersistence === true) throw error;
|
|
10012
|
+
if (error?.code === "CC_AGENT_EVOLUTION_INGRESS_FAILED") throw error;
|
|
9976
10013
|
logger.warn(`Auto-compaction failed: ${error.message}`);
|
|
9977
10014
|
}
|
|
9978
10015
|
}
|
|
@@ -10060,6 +10097,7 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
10060
10097
|
|
|
10061
10098
|
rl.on("line", async (input) => {
|
|
10062
10099
|
if (!(await _waitForReplOutput())) return;
|
|
10100
|
+
if (_replClosing) return;
|
|
10063
10101
|
if (_runtimeLedgerTerminalLatch.isTripped()) {
|
|
10064
10102
|
const terminalInput = input.trim();
|
|
10065
10103
|
if (terminalInput === "/exit" || terminalInput === "/quit") {
|
|
@@ -10077,7 +10115,14 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
10077
10115
|
if (concurrentBtw) {
|
|
10078
10116
|
// Intentionally do not await: the main turn keeps streaming while this
|
|
10079
10117
|
// independent, tool-free snapshot call runs alongside it.
|
|
10080
|
-
|
|
10118
|
+
const sideCall = runBtwSideQuestion(concurrentBtw, {
|
|
10119
|
+
concurrent: true,
|
|
10120
|
+
});
|
|
10121
|
+
_activeBtwCalls.add(sideCall);
|
|
10122
|
+
void sideCall.then(
|
|
10123
|
+
() => _activeBtwCalls.delete(sideCall),
|
|
10124
|
+
() => _activeBtwCalls.delete(sideCall),
|
|
10125
|
+
);
|
|
10081
10126
|
return;
|
|
10082
10127
|
}
|
|
10083
10128
|
if (input.trim()) {
|
|
@@ -10091,10 +10136,18 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
10091
10136
|
return;
|
|
10092
10137
|
}
|
|
10093
10138
|
_processingLine = true;
|
|
10139
|
+
let settleLine;
|
|
10140
|
+
_lineSettled = new Promise((resolve) => {
|
|
10141
|
+
settleLine = resolve;
|
|
10142
|
+
});
|
|
10094
10143
|
try {
|
|
10095
10144
|
await handleLine(input);
|
|
10096
10145
|
if (!(await _waitForReplOutput())) return;
|
|
10097
|
-
while (
|
|
10146
|
+
while (
|
|
10147
|
+
_pendingLines.length &&
|
|
10148
|
+
!_replClosing &&
|
|
10149
|
+
!_runtimeLedgerTerminalLatch.isTripped()
|
|
10150
|
+
) {
|
|
10098
10151
|
const next = _pendingLines.shift();
|
|
10099
10152
|
logger.log(chalk.cyan(`▶ running queued input: ${next}`));
|
|
10100
10153
|
await handleLine(next);
|
|
@@ -10102,6 +10155,8 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
10102
10155
|
}
|
|
10103
10156
|
} finally {
|
|
10104
10157
|
_processingLine = false;
|
|
10158
|
+
settleLine();
|
|
10159
|
+
_lineSettled = null;
|
|
10105
10160
|
}
|
|
10106
10161
|
});
|
|
10107
10162
|
|
|
@@ -10109,7 +10164,37 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
10109
10164
|
if (_replCleanupStarted) return;
|
|
10110
10165
|
_replCleanupStarted = true;
|
|
10111
10166
|
_replClosing = true;
|
|
10167
|
+
_pendingLines.length = 0;
|
|
10168
|
+
// Do not certify a Run while its model/tool or auxiliary usage settlement
|
|
10169
|
+
// is still in flight. EOF during a main turn cancels and leaves it incomplete.
|
|
10170
|
+
if (_turnAbort !== null) {
|
|
10171
|
+
const error = Object.assign(
|
|
10172
|
+
new Error("REPL closed during an active turn"),
|
|
10173
|
+
{
|
|
10174
|
+
code: "CC_AGENT_EVOLUTION_SESSION_INTERRUPTED",
|
|
10175
|
+
},
|
|
10176
|
+
);
|
|
10177
|
+
if (_evolutionSession !== null) _replOutputFailure ||= error;
|
|
10178
|
+
_turnAbort.abort(error);
|
|
10179
|
+
}
|
|
10112
10180
|
_promptInteractions.dispose();
|
|
10181
|
+
// Autonomous goals outlive the input line that submitted them. Cancel
|
|
10182
|
+
// their next-step execution and wait for any current call to settle too.
|
|
10183
|
+
const autonomousShutdown = autonomousAgent.shutdown();
|
|
10184
|
+
void autonomousShutdown.catch(() => {});
|
|
10185
|
+
await _lineSettled;
|
|
10186
|
+
await Promise.allSettled([..._activeBtwCalls]);
|
|
10187
|
+
try {
|
|
10188
|
+
const { interrupted } = await autonomousShutdown;
|
|
10189
|
+
if (interrupted > 0 && _evolutionSession !== null) {
|
|
10190
|
+
_replOutputFailure ||= Object.assign(
|
|
10191
|
+
new Error("REPL closed during an autonomous goal"),
|
|
10192
|
+
{ code: "CC_AGENT_EVOLUTION_SESSION_INTERRUPTED" },
|
|
10193
|
+
);
|
|
10194
|
+
}
|
|
10195
|
+
} catch (error) {
|
|
10196
|
+
_replOutputFailure ||= error;
|
|
10197
|
+
}
|
|
10113
10198
|
if (process.stdin.isTTY) {
|
|
10114
10199
|
if (_replKeypressHandler) {
|
|
10115
10200
|
process.stdin.removeListener("keypress", _replKeypressHandler);
|
|
@@ -10194,10 +10279,14 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
10194
10279
|
}
|
|
10195
10280
|
}
|
|
10196
10281
|
// Fire SessionEnd hook before shutdown (fire-and-forget)
|
|
10197
|
-
|
|
10198
|
-
|
|
10199
|
-
|
|
10200
|
-
|
|
10282
|
+
try {
|
|
10283
|
+
await fireSessionHook(_hookDb, HookEvents.SessionEnd, {
|
|
10284
|
+
sessionId,
|
|
10285
|
+
messageCount: messages.length,
|
|
10286
|
+
});
|
|
10287
|
+
} catch (error) {
|
|
10288
|
+
_replOutputFailure ||= error;
|
|
10289
|
+
}
|
|
10201
10290
|
|
|
10202
10291
|
// Phase H — park the SessionManager handle on clean exit so the session
|
|
10203
10292
|
// can be resumed later via `cc session unpark <id>`. `--no-park-on-exit`
|
|
@@ -10323,6 +10412,15 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
10323
10412
|
_replOutputFailure ||= error;
|
|
10324
10413
|
}
|
|
10325
10414
|
}
|
|
10415
|
+
if (_evolutionSession !== null) {
|
|
10416
|
+
try {
|
|
10417
|
+
await _evolutionSession.close(
|
|
10418
|
+
_replOutputFailure || _runtimeLedgerTerminalLatch.error() || null,
|
|
10419
|
+
);
|
|
10420
|
+
} catch (error) {
|
|
10421
|
+
_replOutputFailure ||= error;
|
|
10422
|
+
}
|
|
10423
|
+
}
|
|
10326
10424
|
const outputExitCode = _replOutputFailure
|
|
10327
10425
|
? _replOutputFailure.code === "EPIPE"
|
|
10328
10426
|
? 0
|
|
@@ -10343,4 +10441,5 @@ async function startAgentReplInWorkspaceOwned(
|
|
|
10343
10441
|
}
|
|
10344
10442
|
});
|
|
10345
10443
|
}
|
|
10444
|
+
return _evolutionSession?.handle;
|
|
10346
10445
|
}
|