chainlesschain 0.166.5 → 0.166.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/package.json +3 -1
  2. package/src/assets/web-panel/assets/{AIOps-DhCWWRmS.js → AIOps-BlrmQxa2.js} +1 -1
  3. package/src/assets/web-panel/assets/{ActionButton-BGbZcxSE.js → ActionButton-zyRyLITg.js} +1 -1
  4. package/src/assets/web-panel/assets/{Analytics-CUJNYrmU.js → Analytics-DwGz7OGN.js} +3 -3
  5. package/src/assets/web-panel/assets/{AppLayout-ParuJRmc.js → AppLayout-Dc-nj7Zd.js} +5 -5
  6. package/src/assets/web-panel/assets/{Artifacts-BMESCkte.js → Artifacts-7Hu3O73p.js} +1 -1
  7. package/src/assets/web-panel/assets/{Audit-B614pUXR.js → Audit-Bnoe3-fR.js} +1 -1
  8. package/src/assets/web-panel/assets/{BackgroundAgents-BKkkvkQl.js → BackgroundAgents-BqYFrDKZ.js} +1 -1
  9. package/src/assets/web-panel/assets/{Backup-CoFiC_kv.js → Backup-B3hwW1nz.js} +1 -1
  10. package/src/assets/web-panel/assets/{BaseInput-Cu4OHz1W.js → BaseInput-XFVxLA4w.js} +1 -1
  11. package/src/assets/web-panel/assets/{Chat-mxb_SR22.js → Chat-CWRDNw7e.js} +5 -5
  12. package/src/assets/web-panel/assets/{ChatBubbleRenderer-CsqO-fiV.js → ChatBubbleRenderer-Bf30VM8G.js} +1 -1
  13. package/src/assets/web-panel/assets/{Checkbox-BJpZz-5L.js → Checkbox-kFeeBgac.js} +1 -1
  14. package/src/assets/web-panel/assets/{Codegen-ng7fYMi8.js → Codegen-CCxp8xoI.js} +1 -1
  15. package/src/assets/web-panel/assets/{Col-D751NOsU.js → Col-BLKZalle.js} +1 -1
  16. package/src/assets/web-panel/assets/{Community-BPVTHvTC.js → Community-DD0eWCez.js} +1 -1
  17. package/src/assets/web-panel/assets/{Compact-CY42ARxJ.js → Compact-CHqHWdy0.js} +1 -1
  18. package/src/assets/web-panel/assets/{Compliance-Ec3zabvu.js → Compliance-Bw54uPiK.js} +1 -1
  19. package/src/assets/web-panel/assets/{Cowork-Do0oOlj8.js → Cowork-DZ13zKNJ.js} +3 -3
  20. package/src/assets/web-panel/assets/{Cron-BXu6LGra.js → Cron-Dlj5Jevg.js} +2 -2
  21. package/src/assets/web-panel/assets/{Crosschain-Dg1CsWLA.js → Crosschain-Nvz0aR0j.js} +1 -1
  22. package/src/assets/web-panel/assets/{DID-D1B8O6C9.js → DID-Ct89eUyY.js} +2 -2
  23. package/src/assets/web-panel/assets/{Dashboard-DJFnfIVk.js → Dashboard-BHUH5IAe.js} +2 -2
  24. package/src/assets/web-panel/assets/{Dropdown-Be6KCHb7.js → Dropdown-BhZG-PO7.js} +1 -1
  25. package/src/assets/web-panel/assets/EmailListRenderer-ae4RVwwJ.js +1 -0
  26. package/src/assets/web-panel/assets/{FamilyGuardDashboard-CWt6WUoP.js → FamilyGuardDashboard-AOcxLfLr.js} +1 -1
  27. package/src/assets/web-panel/assets/{Federation-Ba7bRkZh.js → Federation-BK2PJQOF.js} +1 -1
  28. package/src/assets/web-panel/assets/{FormItemContext-CNa8GTAM.js → FormItemContext-C2n3xO2_.js} +1 -1
  29. package/src/assets/web-panel/assets/{GenericCardRenderer-DGHg2fio.js → GenericCardRenderer-DcyUVFZq.js} +1 -1
  30. package/src/assets/web-panel/assets/{Git-DJAgN16e.js → Git-tBae9Lt8.js} +2 -2
  31. package/src/assets/web-panel/assets/{Governance-DqIapin6.js → Governance-DmNR3AP4.js} +1 -1
  32. package/src/assets/web-panel/assets/{Inference-B00_KwDW.js → Inference-CoseEigi.js} +1 -1
  33. package/src/assets/web-panel/assets/{KnowledgeGraph-D1_ZCehX.js → KnowledgeGraph-Bdjd1sxr.js} +1 -1
  34. package/src/assets/web-panel/assets/{Logs-22jGgUmw.js → Logs-CtlkKIcn.js} +2 -2
  35. package/src/assets/web-panel/assets/{MarkdownRenderer-DOIQQUTp.js → MarkdownRenderer-CZsTBEQE.js} +1 -1
  36. package/src/assets/web-panel/assets/{Marketplace-ClIyNRL6.js → Marketplace-BTYb7nEx.js} +1 -1
  37. package/src/assets/web-panel/assets/{McpTools-BhPsaaJr.js → McpTools-D0iUdW3P.js} +2 -2
  38. package/src/assets/web-panel/assets/{Memory-BXNDHgEH.js → Memory--gwI7w4Y.js} +2 -2
  39. package/src/assets/web-panel/assets/{MobileBridge-BeSEujLm.js → MobileBridge-JmFBi24T.js} +1 -1
  40. package/src/assets/web-panel/assets/{MobileProjects-DKJjWZ6t.js → MobileProjects-BK01cQRx.js} +1 -1
  41. package/src/assets/web-panel/assets/{Mtc-CsX4lo0h.js → Mtc-u7avzyoO.js} +5 -5
  42. package/src/assets/web-panel/assets/{MtcAudit-CdGiWPEN.js → MtcAudit-gT3z5fo_.js} +2 -2
  43. package/src/assets/web-panel/assets/{Multisig-C1aJmYGd.js → Multisig-BIqZTz5n.js} +3 -3
  44. package/src/assets/web-panel/assets/{NLProgramming-ClOwZKGW.js → NLProgramming-DdhVfXYq.js} +1 -1
  45. package/src/assets/web-panel/assets/{Notes-xqZJkp5X.js → Notes-CBlyUmY3.js} +3 -3
  46. package/src/assets/web-panel/assets/{NotificationSettings-D_8hg6E5.js → NotificationSettings-DSyI26N3.js} +1 -1
  47. package/src/assets/web-panel/assets/{OrderTableRenderer-BNMgCFHY.js → OrderTableRenderer-B7IEuNz4.js} +1 -1
  48. package/src/assets/web-panel/assets/{Organization-DQjjPQ9u.js → Organization-ozhi4kGS.js} +4 -4
  49. package/src/assets/web-panel/assets/{Overflow-D0g51CZb.js → Overflow-CBy57RVM.js} +1 -1
  50. package/src/assets/web-panel/assets/{P2P-BqDCDnon.js → P2P-CA-ZRv77.js} +2 -2
  51. package/src/assets/web-panel/assets/PdhVaultBrowser-DOHc9zm8.js +7 -0
  52. package/src/assets/web-panel/assets/{Permissions-D9Mk4hzw.js → Permissions-DiP632GP.js} +4 -4
  53. package/src/assets/web-panel/assets/{PersonalDataHub-Cksd0Ft-.js → PersonalDataHub-AnU8O-SS.js} +5 -5
  54. package/src/assets/web-panel/assets/{Pipeline-ALaa1U0w.js → Pipeline-DDibOUaP.js} +1 -1
  55. package/src/assets/web-panel/assets/{Privacy-M-mmVDtr.js → Privacy-D421t36T.js} +1 -1
  56. package/src/assets/web-panel/assets/{ProjectInit-Bn39Z5S7.js → ProjectInit-DR879ZPJ.js} +2 -2
  57. package/src/assets/web-panel/assets/{ProjectSettings-6Xmsc-zo.js → ProjectSettings-Ded8o6aY.js} +2 -2
  58. package/src/assets/web-panel/assets/Projects-BHPxiucB.js +1 -0
  59. package/src/assets/web-panel/assets/{Providers-FLNmdOWT.js → Providers-Boivuu-E.js} +1 -1
  60. package/src/assets/web-panel/assets/{QrScannerModal-C5PNS5N7.js → QrScannerModal-xKD_ntKp.js} +1 -1
  61. package/src/assets/web-panel/assets/{QuickAsk-CHSVdvQA.js → QuickAsk-D3y_A6FV.js} +1 -1
  62. package/src/assets/web-panel/assets/{Recommend-BRwvF4m9.js → Recommend-BjKM-YC2.js} +1 -1
  63. package/src/assets/web-panel/assets/{RemoteSession-DeAfmrU2.js → RemoteSession-CgqKMXG4.js} +2 -2
  64. package/src/assets/web-panel/assets/{Reputation-Be_YQzm9.js → Reputation-Ci2GjH5p.js} +1 -1
  65. package/src/assets/web-panel/assets/{Row-Bv3cbL2A.js → Row-B0-T2BSh.js} +1 -1
  66. package/src/assets/web-panel/assets/{RssFeed-DsTYAdrh.js → RssFeed-Bet-ur-r.js} +2 -2
  67. package/src/assets/web-panel/assets/{Search-2gch6_kT.js → Search-DWtRAS2R.js} +1 -1
  68. package/src/assets/web-panel/assets/{Security-pkS2eKdn.js → Security-BDfu2Qn6.js} +4 -4
  69. package/src/assets/web-panel/assets/{Services-D1ns1NlD.js → Services-CvJmvSMM.js} +2 -2
  70. package/src/assets/web-panel/assets/{Skeleton-B-9nVmze.js → Skeleton-CEbrKpdC.js} +1 -1
  71. package/src/assets/web-panel/assets/Skills-CjVeiETf.js +1 -0
  72. package/src/assets/web-panel/assets/{Sla-CI9DZg-s.js → Sla-Dibypxum.js} +1 -1
  73. package/src/assets/web-panel/assets/{SpeechSettings-CH0mQsl3.js → SpeechSettings-XflYXp7a.js} +1 -1
  74. package/src/assets/web-panel/assets/{SyncSettings-BHeEVZyN.js → SyncSettings-ro1Ivx1E.js} +2 -2
  75. package/src/assets/web-panel/assets/Tasks-CHq1qFbo.js +1 -0
  76. package/src/assets/web-panel/assets/{Templates--GvWvJEB.js → Templates-CRnUZxtZ.js} +1 -1
  77. package/src/assets/web-panel/assets/{Tenant-L-FgZD-r.js → Tenant-jUX72JCA.js} +1 -1
  78. package/src/assets/web-panel/assets/{Terminal-DMNfs5hK.js → Terminal-BBhAs7pt.js} +2 -2
  79. package/src/assets/web-panel/assets/{TimelineRenderer-DFzInCAj.js → TimelineRenderer-CD5M3RGp.js} +1 -1
  80. package/src/assets/web-panel/assets/{Tokens-Bnh73Gam.js → Tokens-sah3v0gu.js} +1 -1
  81. package/src/assets/web-panel/assets/{Trigger-BO-fMwq8.js → Trigger-BNT3Uz3s.js} +1 -1
  82. package/src/assets/web-panel/assets/{Trust-CX-HXcRl.js → Trust-BytMGPMo.js} +1 -1
  83. package/src/assets/web-panel/assets/{UkeySign-C8AOFGVL.js → UkeySign-BkYVMRQs.js} +1 -1
  84. package/src/assets/web-panel/assets/{VideoEditing-B_bJ6BO2.js → VideoEditing-psvb5Q7Y.js} +1 -1
  85. package/src/assets/web-panel/assets/{Wallet-Ccd3u1t4.js → Wallet-PFQTW0MH.js} +4 -4
  86. package/src/assets/web-panel/assets/{WebAuthn-DVSL5e6o.js → WebAuthn-DgO-OwRT.js} +5 -5
  87. package/src/assets/web-panel/assets/{WorkflowEditor-DqFq6xGO.js → WorkflowEditor-DL2l9VNl.js} +1 -1
  88. package/src/assets/web-panel/assets/{chat-s5SEbhS8.js → chat-C84akEzN.js} +1 -1
  89. package/src/assets/web-panel/assets/{colors-CRFmX1eW.js → colors-DzTWuQKP.js} +1 -1
  90. package/src/assets/web-panel/assets/{compact-item-DCofr-Ii.js → compact-item-CR9LJQFv.js} +1 -1
  91. package/src/assets/web-panel/assets/{createContext-duu0_qGr.js → createContext-CTTov5Kn.js} +1 -1
  92. package/src/assets/web-panel/assets/devWarning-BOhvmlpc.js +1 -0
  93. package/src/assets/web-panel/assets/{hasIn-B0KKSHGi.js → hasIn-DALj523o.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-PR4YRMxw.js → index-3-XJoYgX.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-DY6ZHvJw.js → index-7ux_XohH.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-DFzJlpwu.js → index-AXnERsyV.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-CaDLq49Y.js → index-B2qpjU-D.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-CpnGJDxL.js → index-B6QOJbSn.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-D6sAHm_C.js → index-BDyt57zL.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-B_8atrbf.js → index-BHRXKiU1.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-CQWeRqsN.js → index-BKNIzw0U.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-NiXCoVfh.js → index-BNaQt49r.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-C5chs_dS.js → index-Be6Os5S8.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-C3PtUFgB.js → index-C5eeMl_2.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-4aqbfxrp.js → index-CNmTDXmf.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-SbxDTh6S.js → index-CXTEpfGe.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-BWWfogVi.js → index-CXaCRXN4.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-CIiqGHl0.js → index-CZhhFQi9.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-D8sxQTSI.js → index-Cef0n4k_.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-BM48QU3P.js → index-CjkPDSX4.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-DjZvE3_P.js → index-CmELknPe.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-BMaM-Yex.js → index-CnxjXIsK.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-BugberH-.js → index-CqUgXYIQ.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-DeJMQynL.js → index-CunGDV0g.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DHHrnUkx.js → index-D0MqUnKO.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-Ch8O1mrO.js → index-D9ScRFxz.js} +3 -3
  117. package/src/assets/web-panel/assets/{index-DJrRZ5um.js → index-DBIPnoTj.js} +1 -1
  118. package/src/assets/web-panel/assets/index-DDyMJexx.js +1 -0
  119. package/src/assets/web-panel/assets/{index-BDGNTPr6.js → index-DH6OG-ci.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-DDLVcra4.js → index-DZER6Lj3.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-B24nGxlB.js → index-D_Bg0LdK.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-CRjnopxx.js → index-Dah8M4l2.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-BRpzktuV.js → index-DjE_ew7U.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-BERyKHMq.js → index-DtW6Zr_i.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-BCnLafAV.js → index-DxdzSljS.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-CxvnkXVj.js → index-QW0EXx14.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-CUFMz21M.js → index-W9axN_Ce.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-CDCDbWnv.js → index-_8vetPbU.js} +1 -1
  129. package/src/assets/web-panel/assets/index-btiojFYn.js +1 -0
  130. package/src/assets/web-panel/assets/{index-oxcFCNJ4.js → index-eJcFleIV.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-DtPSAUza.js → index-hzzTITR9.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-DUT3dpdB.js → index-s4CFyn-n.js} +1 -1
  133. package/src/assets/web-panel/assets/{initDefaultProps-Ncgc0S0H.js → initDefaultProps-JuW8mFj7.js} +1 -1
  134. package/src/assets/web-panel/assets/{motion-BBobPHz-.js → motion-Cwb0HBve.js} +1 -1
  135. package/src/assets/web-panel/assets/{move-Dgeb9hea.js → move-DHokzMgu.js} +1 -1
  136. package/src/assets/web-panel/assets/{mtc-parser-onxX64FZ.js → mtc-parser-DX31y6QS.js} +1 -1
  137. package/src/assets/web-panel/assets/{omit-D2OZXzri.js → omit-BCIUYDA6.js} +1 -1
  138. package/src/assets/web-panel/assets/{pickAttrs-J5iBCavx.js → pickAttrs-DMCj4EoZ.js} +1 -1
  139. package/src/assets/web-panel/assets/{placementArrow-CE4U8sO6.js → placementArrow-Dy5K-u1s.js} +1 -1
  140. package/src/assets/web-panel/assets/{responsiveObserve-Dl64-wdo.js → responsiveObserve-DkGeZu54.js} +1 -1
  141. package/src/assets/web-panel/assets/{slide-DRFC8TgC.js → slide-Dc5dyJdg.js} +1 -1
  142. package/src/assets/web-panel/assets/{statusUtils-Bh1xb87a.js → statusUtils-DIUBjOaC.js} +1 -1
  143. package/src/assets/web-panel/assets/{styleChecker-DlG_dRlk.js → styleChecker-DmyEOxm5.js} +1 -1
  144. package/src/assets/web-panel/assets/{useFlexGapSupport-5qmSh3pc.js → useFlexGapSupport-FRhakk1e.js} +1 -1
  145. package/src/assets/web-panel/assets/{useFs-C_fMqkQA.js → useFs-clXyV1WQ.js} +1 -1
  146. package/src/assets/web-panel/assets/{usePersonalDataHub-D0Aih7lk.js → usePersonalDataHub-UF6DG41z.js} +1 -1
  147. package/src/assets/web-panel/assets/{vnode-Cv17kLab.js → vnode-CoCt95G7.js} +1 -1
  148. package/src/assets/web-panel/assets/{zoom-B8Mzvavx.js → zoom-yVWt-ENm.js} +1 -1
  149. package/src/assets/web-panel/index.html +1 -1
  150. package/src/commands/graph.js +215 -5
  151. package/src/commands/team-distributed.js +342 -2
  152. package/src/commands/team.js +169 -7
  153. package/src/data/changelog.json +26 -0
  154. package/src/generated/cc-agent-protocol.schema.json +6 -1
  155. package/src/lib/agent-ipc-bus.js +453 -91
  156. package/src/lib/agent-ipc-flow-control.js +200 -0
  157. package/src/lib/agent-team/task-lease.js +315 -0
  158. package/src/lib/agent-team/team-agent-stream.js +16 -0
  159. package/src/lib/agent-team/team-distributed-graph-bridge.js +257 -0
  160. package/src/lib/agent-team/team-distributed-graph-writer.js +523 -0
  161. package/src/lib/agent-team/team-distributed-queue.js +251 -0
  162. package/src/lib/agent-team/team-graph-runtime-adapter.js +1918 -0
  163. package/src/lib/agent-team/team-runner.js +225 -2
  164. package/src/lib/app-server/graph-runtime.js +754 -0
  165. package/src/lib/app-server/rollout-store.js +32 -0
  166. package/src/lib/app-server/server.js +140 -0
  167. package/src/lib/autonomous-agent.js +11 -0
  168. package/src/lib/cowork-graph-authority-adapter.js +455 -0
  169. package/src/lib/dynamic-workflow-facade.js +83 -16
  170. package/src/lib/graph-kernel/adapters.js +93 -20
  171. package/src/lib/graph-kernel/authority.js +324 -0
  172. package/src/lib/graph-kernel/compiler.js +1 -8
  173. package/src/lib/graph-kernel/cutover-authority-resolver.js +219 -0
  174. package/src/lib/graph-kernel/cutover-ledger.js +650 -0
  175. package/src/lib/graph-kernel/event-store.js +15 -1
  176. package/src/lib/graph-kernel/graph-runtime-surfaces.json +1427 -0
  177. package/src/lib/graph-kernel/index.js +4 -0
  178. package/src/lib/graph-kernel/migration-saga.js +309 -0
  179. package/src/lib/graph-kernel/runtime-surface-manifest.js +481 -0
  180. package/src/lib/graph-kernel/runtime.js +661 -24
  181. package/src/lib/graph-kernel/store-cutover-evidence.js +354 -0
  182. package/src/lib/graph-kernel/trace-reducer.js +6 -0
  183. package/src/lib/graph-kernel/trigger-adapter.js +60 -3
  184. package/src/lib/legacy-runtime-authority.js +160 -0
  185. package/src/lib/orchestrator.js +28 -0
  186. package/src/lib/scheduler-kernel/graph-authority-adapter.js +512 -0
  187. package/src/lib/scheduler-kernel/runtime.js +75 -2
  188. package/src/assets/web-panel/assets/EmailListRenderer-9L4EdmcR.js +0 -1
  189. package/src/assets/web-panel/assets/PdhVaultBrowser-BDMyV-DM.js +0 -7
  190. package/src/assets/web-panel/assets/Projects-C2KI2sH1.js +0 -1
  191. package/src/assets/web-panel/assets/Skills-V7TqlXWR.js +0 -1
  192. package/src/assets/web-panel/assets/Tasks-DOld05sg.js +0 -1
  193. package/src/assets/web-panel/assets/devWarning-0bFBr86K.js +0 -1
  194. package/src/assets/web-panel/assets/index-BJCitHZ6.js +0 -1
  195. package/src/assets/web-panel/assets/index-WmqZ5PwS.js +0 -1
@@ -17,7 +17,7 @@
17
17
 
18
18
  import fs from "fs";
19
19
  import path from "path";
20
- import { randomUUID } from "node:crypto";
20
+ import { createHash, randomUUID } from "node:crypto";
21
21
  import { fileURLToPath } from "url";
22
22
  import { TaskLeaseRegistry } from "../lib/agent-team/task-lease.js";
23
23
  import { TeamRunner } from "../lib/agent-team/team-runner.js";
@@ -32,6 +32,8 @@ import {
32
32
  computeTeamGraphRevisionDigest,
33
33
  projectTeamGraphCollaboration,
34
34
  } from "../lib/agent-team/team-graph-projection.js";
35
+ import { TeamGraphRuntimeAdapter } from "../lib/agent-team/team-graph-runtime-adapter.js";
36
+ import { createRuntimeGraphCutoverAuthorityResolver } from "../lib/graph-kernel/cutover-authority-resolver.js";
35
37
  import { resolveTeamTaskContract } from "../lib/agent-team/team-task-contract.js";
36
38
  import {
37
39
  TeamScopeLock,
@@ -326,6 +328,41 @@ function teamExecutionMode(options) {
326
328
  return "dry-run";
327
329
  }
328
330
 
331
+ export function teamGraphAuthorityMode(
332
+ options,
333
+ env = process.env,
334
+ { runKey = undefined, optIn = false, resolver = undefined } = {},
335
+ ) {
336
+ const executionMode = teamExecutionMode(options);
337
+ const configured = String(env.CHAINLESSCHAIN_GRAPH_CLI_TEAM || "")
338
+ .trim()
339
+ .toLowerCase();
340
+ if (configured && !["legacy", "shadow", "canonical"].includes(configured)) {
341
+ throw new Error(
342
+ "CHAINLESSCHAIN_GRAPH_CLI_TEAM must be legacy, shadow, or canonical",
343
+ );
344
+ }
345
+ const fallbackMode =
346
+ executionMode === "dry-run" ? "shadow" : configured || "legacy";
347
+ const authorityResolver =
348
+ resolver ||
349
+ createRuntimeGraphCutoverAuthorityResolver({
350
+ env,
351
+ surface: "cli_team",
352
+ entryId: "cli-team-local",
353
+ fallbackMode,
354
+ });
355
+ const resolved =
356
+ typeof authorityResolver === "function"
357
+ ? authorityResolver({ runKey, optIn })
358
+ : authorityResolver.resolve({ runKey, optIn, fallbackMode });
359
+ const mode = typeof resolved === "string" ? resolved : resolved?.mode;
360
+ if (!["legacy", "shadow", "canonical"].includes(mode)) {
361
+ throw new Error("Team Graph authority resolver returned an invalid mode");
362
+ }
363
+ return mode;
364
+ }
365
+
329
366
  function optionWasProvided(command, name) {
330
367
  const source = command?.getOptionValueSource?.(name);
331
368
  return source != null && source !== "default";
@@ -1008,8 +1045,23 @@ export function makeShellRunTask() {
1008
1045
  settle(terminationError);
1009
1046
  return;
1010
1047
  }
1011
- if (code === 0) settle(null, { code });
1012
- else {
1048
+ if (code === 0) {
1049
+ settle(null, {
1050
+ code,
1051
+ terminalEvidence: {
1052
+ outputDigest: `sha256:${createHash("sha256")
1053
+ .update(
1054
+ JSON.stringify({
1055
+ command,
1056
+ cwd: process.cwd(),
1057
+ exitCode: code,
1058
+ }),
1059
+ "utf8",
1060
+ )
1061
+ .digest("hex")}`,
1062
+ },
1063
+ });
1064
+ } else {
1013
1065
  const stderr = Buffer.concat(stderrChunks).toString("utf8");
1014
1066
  settle(new Error(safeProcessError(stderr, `command exited ${code}`)));
1015
1067
  }
@@ -1310,6 +1362,7 @@ function spawnAgentProcess(prompt, cwd, opts = {}) {
1310
1362
  return;
1311
1363
  }
1312
1364
  const result = { code };
1365
+ result.terminalEvidence = parser.terminalEvidence();
1313
1366
  if (sawStdout || summary.usage || summary.provider || summary.model) {
1314
1367
  if (summary.usage) result.usage = summary.usage;
1315
1368
  if (summary.provider) result.provider = summary.provider;
@@ -1994,6 +2047,10 @@ export function registerTeamCommand(program, { logger } = {}) {
1994
2047
  "--resume",
1995
2048
  "Restore progress from --state (completed tasks stay done; stale leases freed)",
1996
2049
  )
2050
+ .option(
2051
+ "--graph-canary-opt-in",
2052
+ "Opt this new Team run into an entry-scoped Graph canary",
2053
+ )
1997
2054
  .option("--json", "Emit the event stream as JSON lines")
1998
2055
  .option(
1999
2056
  "--otlp <file>",
@@ -2642,6 +2699,42 @@ export function registerTeamCommand(program, { logger } = {}) {
2642
2699
  (_, index) => `teammate-${index + 1}`,
2643
2700
  ),
2644
2701
  });
2702
+ const graphAuthorityMode =
2703
+ resumeSnapshot?.graphProjection?.authorityMode ||
2704
+ teamGraphAuthorityMode(options, process.env, {
2705
+ runKey: teamGraphRunId,
2706
+ optIn: options.graphCanaryOptIn === true,
2707
+ });
2708
+ let graphRuntime = null;
2709
+ const shadowDivergences = [];
2710
+ const recordShadowDivergence = (divergence) => {
2711
+ shadowDivergences.push(divergence);
2712
+ while (shadowDivergences.length > 256) shadowDivergences.shift();
2713
+ };
2714
+ if (["shadow", "canonical"].includes(graphAuthorityMode)) {
2715
+ graphRuntime = new TeamGraphRuntimeAdapter();
2716
+ graphRuntime.open({
2717
+ registry: reg,
2718
+ runId: teamGraphRunId,
2719
+ executionMode: executionContract.mode,
2720
+ worktree: options.worktree === true,
2721
+ teammates,
2722
+ budget: limits,
2723
+ authorityMode: graphAuthorityMode,
2724
+ dynamic: true,
2725
+ });
2726
+ if (graphAuthorityMode === "canonical") {
2727
+ reg = graphRuntime.bindRegistry(reg);
2728
+ mailbox = graphRuntime.bindMailbox(mailbox);
2729
+ } else {
2730
+ reg = graphRuntime.bindRegistry(reg, {
2731
+ onDivergence: recordShadowDivergence,
2732
+ });
2733
+ mailbox = graphRuntime.bindMailbox(mailbox, {
2734
+ onDivergence: recordShadowDivergence,
2735
+ });
2736
+ }
2737
+ }
2645
2738
  const settleGovernance = (key, status, extra = {}) => {
2646
2739
  const governanceKey = sessionTaskKeyFor(key);
2647
2740
  const unit = collaborationUnits.get(governanceKey);
@@ -2704,6 +2797,9 @@ export function registerTeamCommand(program, { logger } = {}) {
2704
2797
  revisionDigest: teamGraphRevisionDigest,
2705
2798
  authorityDigest: teamGraphAuthorityDigest,
2706
2799
  }),
2800
+ graphAuthorityMode,
2801
+ graphAuthority: graphRuntime?.status() || null,
2802
+ graphShadowDivergences: [...shadowDivergences],
2707
2803
  });
2708
2804
  };
2709
2805
 
@@ -2956,13 +3052,34 @@ export function registerTeamCommand(program, { logger } = {}) {
2956
3052
  realtimeMessaging: options.agent === true,
2957
3053
  scopeLock,
2958
3054
  recorder,
2959
- beforeTask: ({ key }) => {
2960
- settleGovernance(key, "running", {
2961
- startedAt: Date.now(),
2962
- });
3055
+ beforeTask: (context) => {
3056
+ const { key } = context;
3057
+ if (graphAuthorityMode === "canonical") {
3058
+ graphRuntime?.beforeTask(context);
3059
+ } else if (graphAuthorityMode === "shadow") {
3060
+ try {
3061
+ graphRuntime?.beforeTask(context);
3062
+ } catch (error) {
3063
+ recordShadowDivergence({
3064
+ phase: "assignment",
3065
+ key,
3066
+ code: error?.code || "CC_TEAM_GRAPH_SHADOW_DIVERGED",
3067
+ error: error?.message || String(error),
3068
+ });
3069
+ }
3070
+ }
2963
3071
  try {
3072
+ settleGovernance(key, "running", {
3073
+ startedAt: Date.now(),
3074
+ });
2964
3075
  persist();
2965
3076
  } catch (error) {
3077
+ try {
3078
+ graphRuntime?.abandonTask(key, error);
3079
+ } catch (canonicalError) {
3080
+ canonicalError.cause ||= error;
3081
+ throw canonicalError;
3082
+ }
2966
3083
  try {
2967
3084
  settleGovernance(key, "pending", {
2968
3085
  startedAt: null,
@@ -2973,6 +3090,38 @@ export function registerTeamCommand(program, { logger } = {}) {
2973
3090
  throw error;
2974
3091
  }
2975
3092
  },
3093
+ canonicalSettlement:
3094
+ graphAuthorityMode === "canonical" && graphRuntime
3095
+ ? (settlement) => graphRuntime.settleTask(settlement)
3096
+ : null,
3097
+ canonicalReady:
3098
+ graphAuthorityMode === "canonical" && graphRuntime
3099
+ ? ({ excludeKeys }) =>
3100
+ graphRuntime.nextReadyTaskKey({ excludeKeys })
3101
+ : null,
3102
+ shadowSettlement:
3103
+ graphAuthorityMode === "shadow" && graphRuntime
3104
+ ? (settlement) => graphRuntime.settleTask(settlement)
3105
+ : null,
3106
+ canonicalCancellation:
3107
+ graphAuthorityMode === "canonical" && graphRuntime
3108
+ ? ({ reason }) => graphRuntime.cancel(reason)
3109
+ : null,
3110
+ shadowCancellation:
3111
+ graphAuthorityMode === "shadow" && graphRuntime
3112
+ ? async ({ reason }) => {
3113
+ try {
3114
+ return await graphRuntime.cancel(reason);
3115
+ } catch (error) {
3116
+ recordShadowDivergence({
3117
+ phase: "run-cancel",
3118
+ code: error?.code || "CC_TEAM_GRAPH_SHADOW_DIVERGED",
3119
+ error: error?.message || String(error),
3120
+ });
3121
+ return null;
3122
+ }
3123
+ }
3124
+ : null,
2976
3125
  afterTask: ({ key, status, retry }) => {
2977
3126
  const governanceStatus =
2978
3127
  status === "completion-discarded" ||
@@ -3094,6 +3243,19 @@ export function registerTeamCommand(program, { logger } = {}) {
3094
3243
  }
3095
3244
  throw err;
3096
3245
  }
3246
+ if (graphRuntime) {
3247
+ const graphStatus = graphRuntime.finalize();
3248
+ summary.graphAuthorityMode = graphAuthorityMode;
3249
+ summary.graphRuntime = graphStatus;
3250
+ summary.graphShadowDivergences = [...shadowDivergences];
3251
+ if (
3252
+ graphAuthorityMode === "canonical" &&
3253
+ graphStatus.status !== "succeeded"
3254
+ ) {
3255
+ summary.success = false;
3256
+ summary.done = false;
3257
+ }
3258
+ }
3097
3259
  if (controlStore) {
3098
3260
  for (const request of controlStore.pending({
3099
3261
  anchor: controlCursor,
@@ -1,6 +1,32 @@
1
1
  {
2
2
  "source": "CHANGELOG.md",
3
3
  "releases": [
4
+ {
5
+ "productVersion": null,
6
+ "cliVersion": "0.166.7",
7
+ "cliVersions": ["0.166.6", "0.166.7"],
8
+ "date": "2026-08-28",
9
+ "title": "",
10
+ "sections": [
11
+ {
12
+ "heading": "Added - cc CLI 0.166.7: authoritative Graph Kernel cutover",
13
+ "body": "> `chainlesschain` **0.166.6 -> 0.166.7** (release candidate,\n> 2026-08-28).\n\n- **Canonical execution authority**: CLI graph, Team, distributed-team,\n Cowork, Scheduler, and App Server entry points now resolve through the\n Graph Kernel cutover ledger instead of silently retaining parallel mutation\n paths.\n- **Durable fencing and recovery**: graph writers, leases, receipts, takeover,\n migration, and crash/resume flows are bound to persisted authority and\n checked-out source evidence so stale owners cannot resume mutations.\n- **Legacy containment**: retired runtimes retain explicitly read-only history\n access while unclassified or mutating legacy routes fail closed and report\n their canonical replacement targets.\n- **Release validation**: publication requires this exact candidate to pass\n Linux/Windows/macOS `CLI CI` and `CLI Strict Sandbox`, the Graph real-journey\n matrix, immutable package checks, and public-registry provenance readback."
14
+ }
15
+ ]
16
+ },
17
+ {
18
+ "productVersion": null,
19
+ "cliVersion": "0.166.6",
20
+ "cliVersions": ["0.166.5", "0.166.6"],
21
+ "date": "2026-08-27",
22
+ "title": "",
23
+ "sections": [
24
+ {
25
+ "heading": "Fixed - cc CLI 0.166.6: bounded Agent IPC transport",
26
+ "body": "> `chainlesschain` **0.166.5 -> 0.166.6** (release candidate,\n> 2026-08-27).\n\n- **Finite Agent IPC admission**: registered and starting child agents share\n one cap, while pending interactions and outbound requests have global and\n per-agent limits with structured `OVERLOADED` retry guidance.\n- **Bounded stdio transport**: stdout JSONL frames, stderr diagnostics, stdin\n frames, queued messages, and queued bytes are capped. Backpressure drains a\n finite queue; overflow, early stream failure, and initialization failure\n terminate and clean up the affected child deterministically.\n- **Lifecycle fencing**: response ownership, disconnect cleanup, late\n initialization, pre-initialize exit, stream errors, and all request, init,\n and heartbeat timers are bounded and covered by regression tests.\n- **Release validation**: publication requires this exact candidate to pass\n Linux/Windows/macOS `CLI CI` and `CLI Strict Sandbox`, followed by registry\n byte, provenance, clean-install, and signature readback."
27
+ }
28
+ ]
29
+ },
4
30
  {
5
31
  "productVersion": null,
6
32
  "cliVersion": "0.166.5",
@@ -3390,7 +3390,12 @@
3390
3390
  "thread/list",
3391
3391
  "thread/archive",
3392
3392
  "turn/start",
3393
- "turn/interrupt"
3393
+ "turn/interrupt",
3394
+ "graph/compile",
3395
+ "graph/run",
3396
+ "graph/status",
3397
+ "graph/cancel",
3398
+ "graph/reconcile"
3394
3399
  ]
3395
3400
  }
3396
3401
  }