chainlesschain 0.166.0 → 0.166.2
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 +1 -1
- package/src/assets/web-panel/assets/{AIOps-D5_pwQ7M.js → AIOps-BnZ24WRk.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DgoYO32D.js → ActionButton-ivXY7MGb.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-BIpoZ4QH.js → Analytics-BQS4OD-k.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-BJ3XrCEe.js → AppLayout-wOBuOKTO.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-DUFs_izZ.js → Artifacts-BYuC4nw-.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-BZdPwwfL.js → Audit-BIeVfBt6.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-DK9Fn-8B.js → BackgroundAgents-hIuyhmJ7.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-Bd6bOhV_.js → Backup-B6ohdgPQ.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-CRnWlXrd.js → BaseInput-BzgYCw6h.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-D1G_yEl6.js → Chat-CwahvZU1.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-DDAlEtm-.js → ChatBubbleRenderer-B-1IZ_k8.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-CP35SH7R.js → Checkbox-26EDP2x0.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DugeL4pj.js → Codegen-DYLw1Zvd.js} +1 -1
- package/src/assets/web-panel/assets/{Col-DPuJsvKg.js → Col-DH_zAvD-.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CZqNjNNp.js → Community-DURrTXJu.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-eeyIPEAb.js → Compact-CQyBqN0p.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-MGzTw87k.js → Compliance-a0DfgKHD.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-D3goVIA5.js → Cowork-C6fY_5Ke.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-9HA8hLLG.js → Cron-DOwmpbTe.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-DCSOX3l6.js → Crosschain-DEPOIEUs.js} +1 -1
- package/src/assets/web-panel/assets/{DID-ji3lN5Bc.js → DID-DaKc-CEV.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-DlZvF1E5.js → Dashboard-C-0KLXq5.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-2FyZcow9.js → Dropdown-CnsDukzr.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-qH2bSpSY.js → EmailListRenderer-Bi_ACD4N.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-Bfx47wZj.js → FamilyGuardDashboard-BZASpnx3.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-DhGcZbIv.js → Federation-43oTtzyp.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-BMgi9_YQ.js → FormItemContext-oyVadnkZ.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-DugMac-4.js → GenericCardRenderer-Cwvfd6TZ.js} +1 -1
- package/src/assets/web-panel/assets/{Git-D943BpH-.js → Git-Cgi2wvU0.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-DZ66a8Aa.js → Governance-l8TWDKZ0.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-B00Mp2tN.js → Inference-Dc8j6TaO.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-BdwXXO2Q.js → KnowledgeGraph-DgcO-Fwz.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-_MVXyYWc.js → Logs-DjiZpiwa.js} +2 -2
- package/src/assets/web-panel/assets/{MarkdownRenderer-hOTeNyi7.js → MarkdownRenderer-B5MFCi0N.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-CxeHRsnO.js → Marketplace-BeDn1hFc.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-BOieTxZ4.js → McpTools-PGdVfWK6.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-BQD26CM3.js → Memory-e76lY3a1.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-CPJ8ZlvR.js → MobileBridge-DKlQqot_.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-D7qRVu0y.js → MobileProjects-C4g6WOEr.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-BOyndGuk.js → Mtc-1j3NpRQq.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-CXQ_8ZoR.js → MtcAudit-DgwiVd1C.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-32Oh9KbH.js → Multisig-Dzg5lZZY.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-CFAd00CX.js → NLProgramming-D7GYhst-.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BBCY_qJA.js → Notes-Blcfvaic.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-uaQ0PdmW.js → NotificationSettings-Dc4Y6vfr.js} +1 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-dgM87XIn.js +1 -0
- package/src/assets/web-panel/assets/{Organization-CmFn7Oeo.js → Organization-DBXq024L.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-R_avat3a.js → Overflow-CFPbdx1Y.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BIhLFmkY.js → P2P-w7z61NR5.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-DTJjk-_i.js → PdhVaultBrowser-B7eGGZOa.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-CkzYv8Yb.js → Permissions-Df5Cl50D.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub--0QvN2Nz.js → PersonalDataHub-C-We7RF6.js} +5 -5
- package/src/assets/web-panel/assets/{Pipeline-Bfw5gQCH.js → Pipeline-B6fHPnKy.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-DicjKfax.js → Privacy-B85BdiIc.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-DUl_ykBp.js → ProjectInit-CcOyazSe.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-CPYDvN8a.js → ProjectSettings-BE53KfuU.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-DnZ9_fAr.js → Projects-DOvMOoe_.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BX1jP31w.js → Providers-5l7sT9lq.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-COab5qUl.js → QrScannerModal-DE37RXy4.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-CdKQ_JZ0.js → QuickAsk-BGmGCo7j.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-BPFHg8pK.js → Recommend-BFdx8Nrm.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-CqrfTJvO.js → RemoteSession-C1w-j_hB.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-DM-l8Pb3.js → Reputation-BOvn-10y.js} +1 -1
- package/src/assets/web-panel/assets/{Row-CKGBTeCw.js → Row-db-a1YO9.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-Wb0YHIkc.js → RssFeed-DeS43ZGM.js} +3 -3
- package/src/assets/web-panel/assets/{Search-DiBjxKv-.js → Search-BaQYNfeb.js} +1 -1
- package/src/assets/web-panel/assets/{Security-BAVEmbWP.js → Security-yt1ESHDg.js} +4 -4
- package/src/assets/web-panel/assets/{Services-A_a3TIRn.js → Services-BcNqPUsS.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CloHJ-I7.js → Skeleton-X3ceUQWf.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-CkvV5hKa.js → Skills-DmYeax6C.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-BYozxxsV.js → Sla-C_fdfbuJ.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-CWianiZF.js → SpeechSettings-CDqohXXQ.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BR4G75do.js → SyncSettings-B25maYEY.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-D6gyUVrM.js → Tasks-3ILwauYw.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-DbfYIRzT.js → Templates-DUH0iuc4.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BHutvukT.js → Tenant-DrvhHf9T.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-CYEiy2wJ.js → Terminal-C2lJVYHA.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-D9s1AxfE.js → TimelineRenderer-C1Hf_jYn.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-ij9vxnoy.js → Tokens-DniS1NpS.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-Dq_DCVeQ.js → Trigger-4jrcb8oA.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-Bs6wdfoH.js → Trust-DiBte55w.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-CLazyr5t.js → UkeySign-CZRtc4VB.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-viWotIHA.js → VideoEditing-BtYGJDmg.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-DlZ-A78d.js → Wallet-D1nrTm7H.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-DSmOND3Y.js → WebAuthn-DI91acpx.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-BempLOJi.js → WorkflowEditor-BtQjI50d.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CyJzf4JI.js → chat-I4A-f4FC.js} +1 -1
- package/src/assets/web-panel/assets/{colors-C62q7WrL.js → colors-QZkDkFVt.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-7dYM1KW3.js → compact-item--FtCdzpr.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-CYTy7z2Q.js → createContext-CaIKIKxP.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-D7qVrkrO.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-DHoclUqm.js → hasIn-DLYUII6-.js} +1 -1
- package/src/assets/web-panel/assets/{index-CW86F2Zw.js → index-0DYBQ-6e.js} +1 -1
- package/src/assets/web-panel/assets/{index-C2efftJb.js → index-21I79XSf.js} +1 -1
- package/src/assets/web-panel/assets/{index-4gWv-Ubg.js → index-3rVtgqa2.js} +1 -1
- package/src/assets/web-panel/assets/{index-QXtrdrub.js → index-B65QxJaG.js} +1 -1
- package/src/assets/web-panel/assets/{index-BMxvWauP.js → index-BGWSmE3G.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dyq9tK5u.js → index-BLGJmgmx.js} +1 -1
- package/src/assets/web-panel/assets/{index-DYKwGrAn.js → index-BcgtvJbC.js} +1 -1
- package/src/assets/web-panel/assets/{index-BMRmxFU_.js → index-BebTT7iR.js} +1 -1
- package/src/assets/web-panel/assets/{index-XrsAHHQN.js → index-BkJgWW_L.js} +1 -1
- package/src/assets/web-panel/assets/{index-2C8Xx2UO.js → index-Bs0qPPFb.js} +1 -1
- package/src/assets/web-panel/assets/{index-CnEZ4ZHj.js → index-BvdwNnHC.js} +3 -3
- package/src/assets/web-panel/assets/{index-DkczsbiP.js → index-BxPoPofq.js} +1 -1
- package/src/assets/web-panel/assets/{index-DvEtHpLc.js → index-C3PnIEOH.js} +1 -1
- package/src/assets/web-panel/assets/{index-DK84lAS0.js → index-CBtII-nl.js} +1 -1
- package/src/assets/web-panel/assets/{index-DKdv8cju.js → index-CL4c5D6G.js} +1 -1
- package/src/assets/web-panel/assets/{index-CjeViaU-.js → index-CQ7OBHka.js} +1 -1
- package/src/assets/web-panel/assets/{index-DhJjifZe.js → index-CXaeZCRP.js} +1 -1
- package/src/assets/web-panel/assets/{index-BghdJ87W.js → index-CgMm85BY.js} +1 -1
- package/src/assets/web-panel/assets/{index-lHfNxiB5.js → index-Ch0IFpGy.js} +1 -1
- package/src/assets/web-panel/assets/{index-DJzZaPlb.js → index-CisYjy88.js} +1 -1
- package/src/assets/web-panel/assets/{index-DghnbMlY.js → index-D2xETCkj.js} +1 -1
- package/src/assets/web-panel/assets/{index-C5YWYlW9.js → index-D4CXFU-w.js} +1 -1
- package/src/assets/web-panel/assets/index-D9Y_ZwZn.js +1 -0
- package/src/assets/web-panel/assets/{index-LK1MZoBj.js → index-DA_TPdzX.js} +1 -1
- package/src/assets/web-panel/assets/{index-DOFAwpUK.js → index-DAuf8r5o.js} +1 -1
- package/src/assets/web-panel/assets/{index-DA-_807C.js → index-DGLHSCHM.js} +1 -1
- package/src/assets/web-panel/assets/{index-9uR7rc9a.js → index-DJrd_CR3.js} +1 -1
- package/src/assets/web-panel/assets/{index-CVTnruDt.js → index-DK2r6Bv7.js} +1 -1
- package/src/assets/web-panel/assets/{index-ZXYp76IB.js → index-DVitI3UQ.js} +1 -1
- package/src/assets/web-panel/assets/index-D_cPes4G.js +1 -0
- package/src/assets/web-panel/assets/{index-Bzz0aJ86.js → index-Deg2S9ZJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DHgSRimK.js → index-Du2wUavy.js} +1 -1
- package/src/assets/web-panel/assets/{index-94ktimZG.js → index-OQPIS_am.js} +1 -1
- package/src/assets/web-panel/assets/{index-3pI7AfmD.js → index-Ooo_5jHo.js} +1 -1
- package/src/assets/web-panel/assets/{index-DNLD3nZY.js → index-Ygi2rYL1.js} +1 -1
- package/src/assets/web-panel/assets/{index-CZRBvN6i.js → index-eTqL91aV.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6BC4mmz.js → index-hfiZ-i2b.js} +1 -1
- package/src/assets/web-panel/assets/{index-DAYanuSk.js → index-vfiDxdN2.js} +1 -1
- package/src/assets/web-panel/assets/{index-NuNCstRO.js → index-yayaayEA.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-CwCl5sFQ.js → initDefaultProps-DDkTvw8k.js} +1 -1
- package/src/assets/web-panel/assets/{motion-BFJFy70N.js → motion-fkr96tN5.js} +1 -1
- package/src/assets/web-panel/assets/{move-ByrtVGq8.js → move-CGBV0SV2.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-BFiH1mT3.js → mtc-parser-DAsCliFt.js} +1 -1
- package/src/assets/web-panel/assets/{omit-bdvgpivj.js → omit-BM8PMmKN.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-BlfuuE3s.js → pickAttrs-C6SdWoTK.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-t2SC3DMy.js → placementArrow-BG0EVu-d.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CoEXv2Li.js → responsiveObserve-L10IvfYC.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BfXCf0Fu.js → slide-TddIkbrn.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-DNsdyOuS.js → statusUtils-FlveF2Yn.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-9aHukmoG.js → styleChecker-BrXRyebg.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-dTkPxzHN.js → useFlexGapSupport-B7_oiDXZ.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-DINwfItP.js → useFs-CQYeRYWb.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-Bj_RriBV.js → usePersonalDataHub-DspIkhVi.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-BzRAZrTc.js → vnode-BCwmwMAW.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CamPjkeK.js → zoom-B0cEGluV.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/team.js +74 -2
- package/src/data/changelog.json +26 -0
- package/src/generated/cc-agent-protocol.schema.json +49 -0
- package/src/lib/agent-team/team-mailbox.js +508 -2
- package/src/lib/agent-team/team-message-bridge.js +644 -0
- package/src/lib/agent-team/team-message-tools.js +198 -0
- package/src/lib/agent-team/team-runner.js +57 -3
- package/src/lib/graph-kernel/compiler.js +548 -16
- package/src/lib/graph-kernel/runtime.js +1158 -30
- package/src/lib/graph-kernel/trace-reducer.js +101 -7
- package/src/lib/subagent-inheritance.js +5 -3
- package/src/runtime/agent-core.js +38 -0
- package/src/runtime/headless-runner.js +36 -3
- package/src/assets/web-panel/assets/OrderTableRenderer-kpBxJ-SG.js +0 -1
- package/src/assets/web-panel/assets/devWarning-BdTg_AMF.js +0 -1
- package/src/assets/web-panel/assets/index-B6WvFV4N.js +0 -1
- package/src/assets/web-panel/assets/index-BKgfptzA.js +0 -1
package/src/commands/team.js
CHANGED
|
@@ -25,6 +25,7 @@ import { TeamWorktreeCoordinator } from "../lib/agent-team/team-worktree.js";
|
|
|
25
25
|
import { TeamBudget } from "../lib/agent-team/team-budget.js";
|
|
26
26
|
import { TeamMailbox } from "../lib/agent-team/team-mailbox.js";
|
|
27
27
|
import { TeamAgentStreamParser } from "../lib/agent-team/team-agent-stream.js";
|
|
28
|
+
import { TeamMessageBridge } from "../lib/agent-team/team-message-bridge.js";
|
|
28
29
|
import { resolveTeamTaskContract } from "../lib/agent-team/team-task-contract.js";
|
|
29
30
|
import {
|
|
30
31
|
TeamScopeLock,
|
|
@@ -727,6 +728,7 @@ export function buildTeamAgentPrompt(prompt, { inbox = [] } = {}) {
|
|
|
727
728
|
const messages = inbox
|
|
728
729
|
.slice(-MAX_TEAM_AGENT_INBOX_MESSAGES)
|
|
729
730
|
.map((message) => ({
|
|
731
|
+
id: Number.isSafeInteger(message?.id) ? message.id : null,
|
|
730
732
|
from: String(message?.from || "unknown").slice(0, 128),
|
|
731
733
|
to: String(message?.to || "").slice(0, 128),
|
|
732
734
|
subject:
|
|
@@ -1016,7 +1018,7 @@ export function makeShellRunTask() {
|
|
|
1016
1018
|
}
|
|
1017
1019
|
|
|
1018
1020
|
/** Spawn a headless `cc agent -p` for one prompt in `cwd`; resolve on exit 0. */
|
|
1019
|
-
|
|
1021
|
+
function spawnAgentProcess(prompt, cwd, opts = {}) {
|
|
1020
1022
|
return new Promise((resolve, reject) => {
|
|
1021
1023
|
const parser = new TeamAgentStreamParser({
|
|
1022
1024
|
maxLineBytes: opts.maxStreamLineBytes,
|
|
@@ -1043,7 +1045,11 @@ export function spawnAgent(prompt, cwd, opts = {}) {
|
|
|
1043
1045
|
try {
|
|
1044
1046
|
child = _deps.spawn(process.execPath, args, {
|
|
1045
1047
|
cwd,
|
|
1046
|
-
env: {
|
|
1048
|
+
env: {
|
|
1049
|
+
...process.env,
|
|
1050
|
+
CLAUDECODE: "1",
|
|
1051
|
+
...(opts.childEnv || {}),
|
|
1052
|
+
},
|
|
1047
1053
|
windowsHide: true,
|
|
1048
1054
|
detached:
|
|
1049
1055
|
opts.managedCheckpoint === true
|
|
@@ -1311,6 +1317,33 @@ export function spawnAgent(prompt, cwd, opts = {}) {
|
|
|
1311
1317
|
});
|
|
1312
1318
|
}
|
|
1313
1319
|
|
|
1320
|
+
export function spawnAgent(prompt, cwd, opts = {}) {
|
|
1321
|
+
if (!opts.messageBridge) return spawnAgentProcess(prompt, cwd, opts);
|
|
1322
|
+
return (async () => {
|
|
1323
|
+
let bridge;
|
|
1324
|
+
try {
|
|
1325
|
+
bridge = new TeamMessageBridge(opts.messageBridge);
|
|
1326
|
+
await bridge.start();
|
|
1327
|
+
} catch (error) {
|
|
1328
|
+
throw teamAgentError(
|
|
1329
|
+
"TEAM_AGENT_MESSAGE_BRIDGE_FAILED",
|
|
1330
|
+
error?.message || "Could not start teammate message bridge",
|
|
1331
|
+
);
|
|
1332
|
+
}
|
|
1333
|
+
try {
|
|
1334
|
+
return await spawnAgentProcess(bridge.decoratePrompt(prompt), cwd, {
|
|
1335
|
+
...opts,
|
|
1336
|
+
childEnv: {
|
|
1337
|
+
...(opts.childEnv || {}),
|
|
1338
|
+
...bridge.childEnvironment(),
|
|
1339
|
+
},
|
|
1340
|
+
});
|
|
1341
|
+
} finally {
|
|
1342
|
+
await bridge.close();
|
|
1343
|
+
}
|
|
1344
|
+
})();
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1314
1347
|
/** Real executor: hand a task's `prompt` to a headless `cc agent -p` in cwd. */
|
|
1315
1348
|
function applyBudgetReservation(contract, budgetReservation) {
|
|
1316
1349
|
const effectiveContract = { ...contract };
|
|
@@ -1333,7 +1366,12 @@ export function makeAgentRunTask(opts = {}) {
|
|
|
1333
1366
|
return function runTask({
|
|
1334
1367
|
key,
|
|
1335
1368
|
task,
|
|
1369
|
+
holder,
|
|
1336
1370
|
inbox = [],
|
|
1371
|
+
sendMessage = null,
|
|
1372
|
+
messageAuthority = null,
|
|
1373
|
+
recipientState = null,
|
|
1374
|
+
mailbox = null,
|
|
1337
1375
|
budgetReservation = null,
|
|
1338
1376
|
signal = null,
|
|
1339
1377
|
}) {
|
|
@@ -1359,6 +1397,19 @@ export function makeAgentRunTask(opts = {}) {
|
|
|
1359
1397
|
...effectiveContract,
|
|
1360
1398
|
sessionId: opts.sessionIdForTask?.(key) || null,
|
|
1361
1399
|
signal,
|
|
1400
|
+
...(mailbox && holder
|
|
1401
|
+
? {
|
|
1402
|
+
messageBridge: {
|
|
1403
|
+
mailbox,
|
|
1404
|
+
holder,
|
|
1405
|
+
sendMessage,
|
|
1406
|
+
assertAuthority: messageAuthority,
|
|
1407
|
+
recipientState,
|
|
1408
|
+
onMutation: opts.onMailboxMutation,
|
|
1409
|
+
durable: opts.mailboxDurable === true,
|
|
1410
|
+
},
|
|
1411
|
+
}
|
|
1412
|
+
: {}),
|
|
1362
1413
|
});
|
|
1363
1414
|
};
|
|
1364
1415
|
}
|
|
@@ -2661,8 +2712,13 @@ export function registerTeamCommand(program, { logger } = {}) {
|
|
|
2661
2712
|
runInWorktree: async ({
|
|
2662
2713
|
key,
|
|
2663
2714
|
task,
|
|
2715
|
+
holder,
|
|
2664
2716
|
cwd,
|
|
2665
2717
|
inbox = [],
|
|
2718
|
+
sendMessage = null,
|
|
2719
|
+
messageAuthority = null,
|
|
2720
|
+
recipientState = null,
|
|
2721
|
+
mailbox: taskMailbox = null,
|
|
2666
2722
|
budgetReservation = null,
|
|
2667
2723
|
signal = null,
|
|
2668
2724
|
managedCheckpoint = false,
|
|
@@ -2689,6 +2745,19 @@ export function registerTeamCommand(program, { logger } = {}) {
|
|
|
2689
2745
|
managedCheckpoint,
|
|
2690
2746
|
sessionId: collaborationUnits.get(key)?.sessionId,
|
|
2691
2747
|
signal,
|
|
2748
|
+
...(taskMailbox && holder
|
|
2749
|
+
? {
|
|
2750
|
+
messageBridge: {
|
|
2751
|
+
mailbox: taskMailbox,
|
|
2752
|
+
holder,
|
|
2753
|
+
sendMessage,
|
|
2754
|
+
assertAuthority: messageAuthority,
|
|
2755
|
+
recipientState,
|
|
2756
|
+
onMutation: persist,
|
|
2757
|
+
durable: Boolean(options.state),
|
|
2758
|
+
},
|
|
2759
|
+
}
|
|
2760
|
+
: {}),
|
|
2692
2761
|
},
|
|
2693
2762
|
);
|
|
2694
2763
|
},
|
|
@@ -2709,6 +2778,8 @@ export function registerTeamCommand(program, { logger } = {}) {
|
|
|
2709
2778
|
contractForTask: (key) => taskContracts.get(key),
|
|
2710
2779
|
worktreeEnabled: false,
|
|
2711
2780
|
sessionIdForTask: (key) => collaborationUnits.get(key)?.sessionId,
|
|
2781
|
+
onMailboxMutation: persist,
|
|
2782
|
+
mailboxDurable: Boolean(options.state),
|
|
2712
2783
|
});
|
|
2713
2784
|
else runTask = async () => ({ dryRun: true });
|
|
2714
2785
|
|
|
@@ -2797,6 +2868,7 @@ export function registerTeamCommand(program, { logger } = {}) {
|
|
|
2797
2868
|
? (task) => taskContracts.get(task.key)
|
|
2798
2869
|
: () => ({ reserveUsage: false }),
|
|
2799
2870
|
mailbox,
|
|
2871
|
+
realtimeMessaging: options.agent === true,
|
|
2800
2872
|
scopeLock,
|
|
2801
2873
|
recorder,
|
|
2802
2874
|
beforeTask: ({ key }) => {
|
package/src/data/changelog.json
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"source": "CHANGELOG.md",
|
|
3
3
|
"releases": [
|
|
4
|
+
{
|
|
5
|
+
"productVersion": null,
|
|
6
|
+
"cliVersion": "0.166.2",
|
|
7
|
+
"cliVersions": ["0.166.1", "0.166.2"],
|
|
8
|
+
"date": "2026-08-25",
|
|
9
|
+
"title": "",
|
|
10
|
+
"sections": [
|
|
11
|
+
{
|
|
12
|
+
"heading": "Added - cc CLI 0.166.2: lease-bound real-time team messaging",
|
|
13
|
+
"body": "> `chainlesschain` **0.166.1 -> 0.166.2** (CLI-only release candidate,\n> 2026-08-25). `@chainlesschain/agent-protocol` remains **0.1.1**,\n> `@chainlesschain/agent-sdk` remains **0.2.1**, and\n> `chainlesschain-agent-sdk` remains **0.2.1**.\n\n- **Live teammate tools**: real `cc team --agent` children receive host-owned\n `team_send`, `team_receive`, `team_ack`, and `team_followup` tools over a\n private local bridge instead of relying only on a startup inbox snapshot.\n- **Retry-safe delivery**: the bounded mailbox persists at-least-once delivery\n receipts, stable-consumer ACKs, idempotent message keys, payload digests,\n causation/correlation metadata, processed/dead-letter states, and monotonic\n cursors across team-state restore.\n- **Attempt-scoped authority**: every bridge operation revalidates the current\n holder, task, attempt, lease, and fencing token; stale attempts fail closed,\n bridge credentials never enter the prompt, and nested subagents cannot\n inherit the parent-bound tools.\n- **Honest durability and wake semantics**: `--state` checkpoints every bridge\n mutation, runs without state declare process-local delivery, and follow-up\n results distinguish an active target from a request queued for a future turn.\n- **Release validation**: publication requires this candidate's exact commit\n to pass the complete Linux, Windows, and macOS `CLI CI` and\n `CLI Strict Sandbox` matrices before an immutable npm tag is created."
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"productVersion": null,
|
|
19
|
+
"cliVersion": "0.166.1",
|
|
20
|
+
"cliVersions": ["0.1.1", "0.2.1", "0.166.0", "0.166.1"],
|
|
21
|
+
"date": "2026-08-24",
|
|
22
|
+
"title": "",
|
|
23
|
+
"sections": [
|
|
24
|
+
{
|
|
25
|
+
"heading": "Added - cc CLI 0.166.1 + Agent Protocol 0.1.1 + Agent SDKs 0.2.1: structured Graph execution",
|
|
26
|
+
"body": "> `chainlesschain` **0.166.0 -> 0.166.1**,\n> `@chainlesschain/agent-protocol` **0.1.0 -> 0.1.1**,\n> `@chainlesschain/agent-sdk` **0.2.0 -> 0.2.1**, and\n> `chainlesschain-agent-sdk` **0.2.0 -> 0.2.1** (release candidate,\n> 2026-08-24).\n\n- **Typed subgraphs with budget isolation**: subgraph calls now validate\n parent/child input and output mappings before effects, reserve durable\n per-call budget slices, prevent parallel oversubscription, and settle only\n the child run's actual usage across completion, cancellation, and recovery.\n- **Effectful bounded loops**: loop effects receive deterministic\n iteration-scoped idempotency keys and receipts. Compensation executes once\n per committed iteration in reverse dependency/iteration order and resumes\n safely after interruption or budget exhaustion.\n- **Graph migration and rollback**: the compiler includes a built-in v0-to-v1\n upcaster, frozen minimal and typed N/N-1 corpora, immutable pre-migration\n backups, domain-separated rollback digests, and tamper-evident restore.\n- **Cross-language delivery**: the canonical schema and generated TypeScript,\n Python, Kotlin, and Swift bindings expose the new subgraph budget/mapping and\n effect iteration lineage fields without adding SDK runtime dependencies.\n- **Release validation**: publication requires this exact release commit to\n pass the complete Linux, Windows, and macOS `CLI CI`, `CLI Strict Sandbox`,\n and Agent Protocol matrices plus Python 3.10/3.12/3.13 SDK conformance."
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
4
30
|
{
|
|
5
31
|
"productVersion": null,
|
|
6
32
|
"cliVersion": "0.166.0",
|
|
@@ -937,6 +937,43 @@
|
|
|
937
937
|
"type": "integer",
|
|
938
938
|
"minimum": 1,
|
|
939
939
|
"maximum": 64
|
|
940
|
+
},
|
|
941
|
+
"inputBindings": {
|
|
942
|
+
"type": "array",
|
|
943
|
+
"uniqueItems": true,
|
|
944
|
+
"items": {
|
|
945
|
+
"$ref": "#/$defs/SubgraphPortBinding"
|
|
946
|
+
}
|
|
947
|
+
},
|
|
948
|
+
"outputBindings": {
|
|
949
|
+
"type": "array",
|
|
950
|
+
"uniqueItems": true,
|
|
951
|
+
"items": {
|
|
952
|
+
"$ref": "#/$defs/SubgraphPortBinding"
|
|
953
|
+
}
|
|
954
|
+
},
|
|
955
|
+
"budget": {
|
|
956
|
+
"$ref": "#/$defs/Budget"
|
|
957
|
+
}
|
|
958
|
+
}
|
|
959
|
+
},
|
|
960
|
+
"SubgraphPortBinding": {
|
|
961
|
+
"type": "object",
|
|
962
|
+
"additionalProperties": false,
|
|
963
|
+
"required": [
|
|
964
|
+
"parentPort",
|
|
965
|
+
"childNodeId",
|
|
966
|
+
"childPort"
|
|
967
|
+
],
|
|
968
|
+
"properties": {
|
|
969
|
+
"parentPort": {
|
|
970
|
+
"$ref": "#/$defs/Identifier"
|
|
971
|
+
},
|
|
972
|
+
"childNodeId": {
|
|
973
|
+
"$ref": "#/$defs/Identifier"
|
|
974
|
+
},
|
|
975
|
+
"childPort": {
|
|
976
|
+
"$ref": "#/$defs/Identifier"
|
|
940
977
|
}
|
|
941
978
|
}
|
|
942
979
|
},
|
|
@@ -1397,6 +1434,18 @@
|
|
|
1397
1434
|
"minLength": 1,
|
|
1398
1435
|
"maxLength": 256
|
|
1399
1436
|
},
|
|
1437
|
+
"baseIdempotencyKey": {
|
|
1438
|
+
"type": "string",
|
|
1439
|
+
"minLength": 1,
|
|
1440
|
+
"maxLength": 256
|
|
1441
|
+
},
|
|
1442
|
+
"iterationPath": {
|
|
1443
|
+
"type": "array",
|
|
1444
|
+
"items": {
|
|
1445
|
+
"type": "integer",
|
|
1446
|
+
"minimum": 0
|
|
1447
|
+
}
|
|
1448
|
+
},
|
|
1400
1449
|
"operationDigest": {
|
|
1401
1450
|
"$ref": "#/$defs/Digest"
|
|
1402
1451
|
},
|