chainlesschain 0.166.91 → 0.166.93

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 (221) hide show
  1. package/README.md +17 -17
  2. package/package.json +3 -3
  3. package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
  4. package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
  5. package/src/assets/web-panel/assets/{AIOps-DgV7xb8F.js → AIOps-oo9rE0gh.js} +1 -1
  6. package/src/assets/web-panel/assets/{ActionButton-CgANpkKu.js → ActionButton-CVJVVv4i.js} +1 -1
  7. package/src/assets/web-panel/assets/{Analytics-DnvpX7RB.js → Analytics-CUXuwmia.js} +3 -3
  8. package/src/assets/web-panel/assets/{AppLayout-C2bHccBM.js → AppLayout-iM4PvCuY.js} +5 -5
  9. package/src/assets/web-panel/assets/{Artifacts-BIhijC9g.js → Artifacts-DKUIJbf9.js} +1 -1
  10. package/src/assets/web-panel/assets/{Audit-CKRjWGdp.js → Audit-C4_SzFN2.js} +1 -1
  11. package/src/assets/web-panel/assets/{BackgroundAgents-CblYtgBE.js → BackgroundAgents-C3427uy-.js} +1 -1
  12. package/src/assets/web-panel/assets/{Backup-Cq35b78a.js → Backup-BpEQQiog.js} +1 -1
  13. package/src/assets/web-panel/assets/{BaseInput-DcB7NoRz.js → BaseInput-C_exQomZ.js} +1 -1
  14. package/src/assets/web-panel/assets/{Chat-tc3b-s7i.js → Chat-DzpkLtWa.js} +5 -5
  15. package/src/assets/web-panel/assets/ChatBubbleRenderer-DX4XmTWm.js +1 -0
  16. package/src/assets/web-panel/assets/{Checkbox-BLD5bH5u.js → Checkbox-CxAC1CU8.js} +1 -1
  17. package/src/assets/web-panel/assets/{Codegen-BLOsoazN.js → Codegen-wDFAGCLp.js} +1 -1
  18. package/src/assets/web-panel/assets/{Col-Bdr7JwIx.js → Col-BvwirhMf.js} +1 -1
  19. package/src/assets/web-panel/assets/{Community-C84BsWE0.js → Community-BJuA7paY.js} +1 -1
  20. package/src/assets/web-panel/assets/{Compact-Dzdwd04z.js → Compact-DzV35_u2.js} +1 -1
  21. package/src/assets/web-panel/assets/{Compliance-CCG-R0EV.js → Compliance-CIDPPvr9.js} +1 -1
  22. package/src/assets/web-panel/assets/{Cowork-BYj72SK0.js → Cowork-DyTMxP3N.js} +3 -3
  23. package/src/assets/web-panel/assets/{Cron-B6iKAwOf.js → Cron-PcNLjMFx.js} +2 -2
  24. package/src/assets/web-panel/assets/{Crosschain-BJ-oDC6u.js → Crosschain-B_O7ck6Z.js} +1 -1
  25. package/src/assets/web-panel/assets/{DID-BnMckGLr.js → DID-CII35Me1.js} +2 -2
  26. package/src/assets/web-panel/assets/{Dashboard-Cyje-gCO.js → Dashboard-DU56fkNz.js} +2 -2
  27. package/src/assets/web-panel/assets/{Dropdown-BpNlenjK.js → Dropdown-DHC8HVeJ.js} +1 -1
  28. package/src/assets/web-panel/assets/{EmailListRenderer-BhonO7Nv.js → EmailListRenderer-oUOHFNsD.js} +1 -1
  29. package/src/assets/web-panel/assets/{EvolutionSettings-DVoNU-Id.js → EvolutionSettings-D7RCAWNl.js} +1 -1
  30. package/src/assets/web-panel/assets/{FamilyGuardDashboard-tdn-KC67.js → FamilyGuardDashboard-CGONPZxC.js} +1 -1
  31. package/src/assets/web-panel/assets/{Federation--EEVrHhz.js → Federation-BbDlPWcl.js} +1 -1
  32. package/src/assets/web-panel/assets/{FormItemContext-Cy8zr0-4.js → FormItemContext-BBJbFQQT.js} +1 -1
  33. package/src/assets/web-panel/assets/{GenericCardRenderer-BuUhpgFi.js → GenericCardRenderer-iuxAero4.js} +1 -1
  34. package/src/assets/web-panel/assets/{Git-Ctd3E5Pe.js → Git-Dw0prdY5.js} +2 -2
  35. package/src/assets/web-panel/assets/{Governance-Ce7dV6aU.js → Governance-DOGqi_uV.js} +1 -1
  36. package/src/assets/web-panel/assets/{Inference-CD1vExIH.js → Inference-BY5oUGGj.js} +1 -1
  37. package/src/assets/web-panel/assets/{KnowledgeGraph-Dn64OdQ7.js → KnowledgeGraph-CcE2EVYX.js} +1 -1
  38. package/src/assets/web-panel/assets/{Logs-PmElVRrT.js → Logs-DyfN4R5w.js} +2 -2
  39. package/src/assets/web-panel/assets/{MarkdownRenderer-BFiVKf5t.js → MarkdownRenderer-Bj62Aq0M.js} +1 -1
  40. package/src/assets/web-panel/assets/{Marketplace-OW4jTXwx.js → Marketplace-CuuuAXUh.js} +1 -1
  41. package/src/assets/web-panel/assets/{McpTools-BEq2Ib4x.js → McpTools-948Fithv.js} +3 -3
  42. package/src/assets/web-panel/assets/{Memory-Can_P2oK.js → Memory-D4PINvyy.js} +2 -2
  43. package/src/assets/web-panel/assets/{MobileBridge-DJ8R-dn3.js → MobileBridge-ECKMaLzX.js} +1 -1
  44. package/src/assets/web-panel/assets/{MobileProjects-B7kV9GOt.js → MobileProjects-CB5MAcvD.js} +1 -1
  45. package/src/assets/web-panel/assets/{Mtc-BfxamolS.js → Mtc-BRzIM3HJ.js} +4 -4
  46. package/src/assets/web-panel/assets/{MtcAudit-DHtuv7av.js → MtcAudit-CGeAXJGn.js} +2 -2
  47. package/src/assets/web-panel/assets/{Multisig-DLkLpvxc.js → Multisig-C_qJ-8K-.js} +3 -3
  48. package/src/assets/web-panel/assets/{NLProgramming-u4XtJTIt.js → NLProgramming-DAEyCn7T.js} +1 -1
  49. package/src/assets/web-panel/assets/{Notes-BwuuPJLS.js → Notes-DmD3MEec.js} +3 -3
  50. package/src/assets/web-panel/assets/{NotificationSettings-HEeu-E9v.js → NotificationSettings-Cv4Q3VC9.js} +1 -1
  51. package/src/assets/web-panel/assets/OrderTableRenderer-BNlpaFjH.js +1 -0
  52. package/src/assets/web-panel/assets/{Organization-Yh-czs3b.js → Organization-DqAFdz6p.js} +4 -4
  53. package/src/assets/web-panel/assets/{Overflow-DmE8mYVM.js → Overflow-8Ye9cIcE.js} +1 -1
  54. package/src/assets/web-panel/assets/{P2P-CWVck8WN.js → P2P-755SfHoJ.js} +2 -2
  55. package/src/assets/web-panel/assets/{PdhVaultBrowser-DgFqekod.js → PdhVaultBrowser-CgZLiucX.js} +4 -4
  56. package/src/assets/web-panel/assets/{Permissions-BtJBVOHV.js → Permissions-C-vFF_rL.js} +3 -3
  57. package/src/assets/web-panel/assets/{PersonalDataHub-6VBObXzd.js → PersonalDataHub-Diz1oXM3.js} +5 -5
  58. package/src/assets/web-panel/assets/{Pipeline-D222FmqY.js → Pipeline-D4kIzsZG.js} +1 -1
  59. package/src/assets/web-panel/assets/{Privacy-Bi9FMikp.js → Privacy-QKLkSAUH.js} +1 -1
  60. package/src/assets/web-panel/assets/{ProjectInit-Bo52H47H.js → ProjectInit-I0S9o_RT.js} +2 -2
  61. package/src/assets/web-panel/assets/{ProjectSettings-BPkesfOc.js → ProjectSettings-DdgV3-Ho.js} +2 -2
  62. package/src/assets/web-panel/assets/{Projects-GynohSFX.js → Projects-BJHHegtj.js} +1 -1
  63. package/src/assets/web-panel/assets/{Providers-DVdMg04n.js → Providers-uVa1zfbS.js} +1 -1
  64. package/src/assets/web-panel/assets/{QrScannerModal-DqJCb595.js → QrScannerModal-YLVpOChR.js} +1 -1
  65. package/src/assets/web-panel/assets/{QuickAsk-J7loQbXi.js → QuickAsk-535AYH61.js} +1 -1
  66. package/src/assets/web-panel/assets/{Recommend-BI5aURVc.js → Recommend-C_P6eNSw.js} +1 -1
  67. package/src/assets/web-panel/assets/{RemoteSession-BN2sqGvz.js → RemoteSession-EXH1SbNj.js} +2 -2
  68. package/src/assets/web-panel/assets/{Reputation-BGOND-Fi.js → Reputation-Cxc7d3eU.js} +1 -1
  69. package/src/assets/web-panel/assets/{Row-77dfwaUk.js → Row-EDqJy-wS.js} +1 -1
  70. package/src/assets/web-panel/assets/{RssFeed-FtBAxS3g.js → RssFeed-C03Xeg9_.js} +2 -2
  71. package/src/assets/web-panel/assets/{Search-BaYVLFb7.js → Search-DsIga9DK.js} +1 -1
  72. package/src/assets/web-panel/assets/{Security-LE3Vv6ab.js → Security-DgArMFc-.js} +3 -3
  73. package/src/assets/web-panel/assets/{Services-C5pP-Whz.js → Services-MooDpHBP.js} +2 -2
  74. package/src/assets/web-panel/assets/{Skeleton-CLqKUVsF.js → Skeleton-B10P1Dr6.js} +1 -1
  75. package/src/assets/web-panel/assets/{Skills-BPjN0SX5.js → Skills-DHLHEkLl.js} +1 -1
  76. package/src/assets/web-panel/assets/{Sla-14jD70kg.js → Sla-D4RT7d4g.js} +1 -1
  77. package/src/assets/web-panel/assets/{SpeechSettings-Dr9ij42W.js → SpeechSettings-D8u6F-LV.js} +1 -1
  78. package/src/assets/web-panel/assets/{SyncSettings-BzLHP7B8.js → SyncSettings-4nvNzRq8.js} +2 -2
  79. package/src/assets/web-panel/assets/{Tasks-YqV9b0rV.js → Tasks-CmCb8zNO.js} +1 -1
  80. package/src/assets/web-panel/assets/{Templates-CxxAE4PK.js → Templates-CzESIa21.js} +1 -1
  81. package/src/assets/web-panel/assets/{Tenant-CRb3PcKJ.js → Tenant-Ch_N3p4d.js} +1 -1
  82. package/src/assets/web-panel/assets/{Terminal-CTzPpBaP.js → Terminal-BZccUf_X.js} +2 -2
  83. package/src/assets/web-panel/assets/{TimelineRenderer-DjFUj_hy.js → TimelineRenderer-FrKcNy_3.js} +1 -1
  84. package/src/assets/web-panel/assets/{Tokens-Bbb8tPvx.js → Tokens-4xvLpXfD.js} +1 -1
  85. package/src/assets/web-panel/assets/{Trigger-CSeWGM0W.js → Trigger-84UjyxXd.js} +1 -1
  86. package/src/assets/web-panel/assets/{Trust-JgESMBo3.js → Trust-M6UtHnji.js} +1 -1
  87. package/src/assets/web-panel/assets/{UkeySign-CiObLk0T.js → UkeySign-L_xEgtCg.js} +1 -1
  88. package/src/assets/web-panel/assets/{VideoEditing-CFEZaQ2x.js → VideoEditing-BLJCX9ru.js} +1 -1
  89. package/src/assets/web-panel/assets/{Wallet-DR8ZGDNn.js → Wallet-DwL6uJCj.js} +4 -4
  90. package/src/assets/web-panel/assets/{WebAuthn-DxZukvu7.js → WebAuthn-Bmn9pdzz.js} +5 -5
  91. package/src/assets/web-panel/assets/{WorkflowEditor-CKgSZQwn.js → WorkflowEditor-DSsZ5xG1.js} +1 -1
  92. package/src/assets/web-panel/assets/{chat-CTxEQE66.js → chat--FGNUaa8.js} +1 -1
  93. package/src/assets/web-panel/assets/{colors-CAjKMUu3.js → colors-DeuwNdqX.js} +1 -1
  94. package/src/assets/web-panel/assets/{compact-item-BXuz49at.js → compact-item-I4XKxRFU.js} +1 -1
  95. package/src/assets/web-panel/assets/{createContext-CFN_Hwr9.js → createContext-RoD2p5Ba.js} +1 -1
  96. package/src/assets/web-panel/assets/devWarning-ctnml4IW.js +1 -0
  97. package/src/assets/web-panel/assets/{hasIn-BwoSBSfP.js → hasIn-BsvyddUM.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-CB3kVd9c.js → index-0tRU1Sv-.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-o9DpkZKf.js → index-4xHc2WjT.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-BmQITjMU.js → index-B8-eGLN9.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-DY-gBSm8.js → index-BS_uqSTa.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-F2E5RCwz.js → index-BYEVBlCl.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-CF9lWi1o.js → index-BcBM065G.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-Bu2P6u8m.js → index-BnrL4s-3.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-Dv7V2kg6.js → index-BrZPb0On.js} +1 -1
  106. package/src/assets/web-panel/assets/index-C7PN8mh1.js +1 -0
  107. package/src/assets/web-panel/assets/{index-DViK2bkv.js → index-CBazK4-7.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-BmXpdcHI.js → index-CPS3zv1c.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-Bqv_Cray.js → index-CSrZiiAs.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-B7kp-zRE.js → index-CVwZMt9Z.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-B0QbLlWn.js → index-CdgKZYgm.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-DjF5BOZx.js → index-CesTu01s.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-CSmFby3Q.js → index-CiHlSuMl.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-B2o_BBjg.js → index-CsLVac9n.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-CehdwJ_Q.js → index-D1ONyBTW.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-Bj4hIiLW.js → index-D4IZsKbF.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-_ZtCyUdz.js → index-D4P4vpmv.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-B9yR7zqr.js → index-D6J8dz7X.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-u9_DM3ZC.js → index-DChy2sHE.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-C8er4W9u.js → index-DKUCl_Lk.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-BK4ftQ4d.js → index-DRluW3_r.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-B2tEnBPx.js → index-DWUmhNO-.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-IY9bd5az.js → index-DXnpVGG3.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-Cp5y7lX_.js → index-DYOpAS6-.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-T3MTE6jB.js → index-DiH-3cR2.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-DxunxaTw.js → index-DlEfwgzr.js} +1 -1
  127. package/src/assets/web-panel/assets/index-KnbBJAO-.js +1 -0
  128. package/src/assets/web-panel/assets/{index-DTX9CJPx.js → index-R4St_zjR.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-Tz5dheZa.js → index-ScgoDU9V.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-DmkbAADP.js → index-UWdT_lty.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-Bw9s2d3c.js → index-VAlor744.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-CN53dE_u.js → index-Wco_uvRo.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-DpdDnZX_.js → index-ZgFED_Zd.js} +1 -1
  134. package/src/assets/web-panel/assets/{index-IahILygB.js → index-jaHeti4i.js} +3 -3
  135. package/src/assets/web-panel/assets/{index-Cgk0YEiq.js → index-rJDabtw4.js} +1 -1
  136. package/src/assets/web-panel/assets/{index-t2Ch_JKn.js → index-vRiGKIP0.js} +1 -1
  137. package/src/assets/web-panel/assets/{initDefaultProps-BoiGJDoO.js → initDefaultProps-BHT0PacY.js} +1 -1
  138. package/src/assets/web-panel/assets/{motion-5eL4E0pA.js → motion-CBYsMtsC.js} +1 -1
  139. package/src/assets/web-panel/assets/{move-DjggDi_1.js → move-DnHfFV4K.js} +1 -1
  140. package/src/assets/web-panel/assets/{mtc-parser-Ce8Vo2T3.js → mtc-parser-DfGkRYrx.js} +1 -1
  141. package/src/assets/web-panel/assets/{omit-D1yOBaO2.js → omit-SjLcPQA9.js} +1 -1
  142. package/src/assets/web-panel/assets/{pickAttrs-8NLceQe8.js → pickAttrs-CCZHF4ep.js} +1 -1
  143. package/src/assets/web-panel/assets/{placementArrow-CsIdBRmQ.js → placementArrow-DjCGn2sJ.js} +1 -1
  144. package/src/assets/web-panel/assets/{responsiveObserve-GM5NE8En.js → responsiveObserve-BCFCl2on.js} +1 -1
  145. package/src/assets/web-panel/assets/{slide-44yj3u49.js → slide-DsfmuIZu.js} +1 -1
  146. package/src/assets/web-panel/assets/{statusUtils-B8tqtWcX.js → statusUtils-hPKuJUia.js} +1 -1
  147. package/src/assets/web-panel/assets/{styleChecker-NhDPBbyB.js → styleChecker-DOXKH7Kf.js} +1 -1
  148. package/src/assets/web-panel/assets/{useFlexGapSupport-C8Qz1GtN.js → useFlexGapSupport-B_G7yqio.js} +1 -1
  149. package/src/assets/web-panel/assets/{useFs-ClUv4kih.js → useFs-BXOTOm2l.js} +1 -1
  150. package/src/assets/web-panel/assets/{usePersonalDataHub-BwkOVEh6.js → usePersonalDataHub-CRvie3g7.js} +1 -1
  151. package/src/assets/web-panel/assets/{vnode--gMF33R0.js → vnode-D9_zMmww.js} +1 -1
  152. package/src/assets/web-panel/assets/{zoom-DXg3TqOP.js → zoom-C4tW03qI.js} +1 -1
  153. package/src/assets/web-panel/index.html +1 -1
  154. package/src/data/changelog.json +52 -0
  155. package/src/lib/artifact-store.js +51 -3
  156. package/src/lib/bounded-artifact-file-read.js +131 -0
  157. package/src/lib/evolution/evolution-artifact-ports.js +235 -129
  158. package/src/lib/evolution/evolution-eval-cohort-enrollment.js +713 -47
  159. package/src/lib/evolution/evolution-eval-gate.js +146 -0
  160. package/src/lib/evolution/evolution-eval-launch-admission.js +168 -90
  161. package/src/lib/evolution/evolution-eval-ledger-capture.js +50 -0
  162. package/src/lib/evolution/evolution-eval-readonly-audit.js +106 -0
  163. package/src/lib/evolution/evolution-ledger-file-backend.js +20 -0
  164. package/src/lib/evolution/evolution-ledger-ports.js +59 -27
  165. package/src/lib/evolution/evolution-ledger-v2-journal.js +55 -18
  166. package/src/lib/evolution/evolution-workbench-file-resources.js +19 -1
  167. package/src/lib/evolution/rrsi-cohort-registration.js +275 -0
  168. package/src/lib/evolution/rrsi-contracts.js +742 -0
  169. package/src/lib/evolution/rrsi-data.js +196 -0
  170. package/src/lib/evolution/rrsi-evaluation-adapter.js +275 -0
  171. package/src/lib/evolution/rrsi-evaluation-variants.js +267 -0
  172. package/src/lib/evolution/rrsi-group-statistics.js +553 -0
  173. package/src/lib/evolution/rrsi-history-ledger-adapter.js +3286 -0
  174. package/src/lib/evolution/rrsi-installation-route-contracts.js +275 -0
  175. package/src/lib/evolution/rrsi-installation-route-reader.js +282 -0
  176. package/src/lib/evolution/rrsi-native-batch-evidence.js +520 -0
  177. package/src/lib/evolution/rrsi-native-eval-row-collector.js +538 -0
  178. package/src/lib/evolution/rrsi-native-evaluation-batch.js +547 -0
  179. package/src/lib/evolution/rrsi-native-evaluation-plan.js +431 -0
  180. package/src/lib/evolution/rrsi-native-group-statistics-plan.js +121 -0
  181. package/src/lib/evolution/rrsi-native-group-statistics.js +482 -0
  182. package/src/lib/evolution/rrsi-native-quality-receipt-contracts.js +321 -0
  183. package/src/lib/evolution/rrsi-native-quality-receipt.js +256 -0
  184. package/src/lib/evolution/rrsi-native-statistics-protocol.js +330 -0
  185. package/src/lib/evolution/rrsi-observed-text-index.js +978 -0
  186. package/src/lib/evolution/rrsi-parent-binding.js +290 -0
  187. package/src/lib/evolution/rrsi-pm-execution-bridge.js +500 -0
  188. package/src/lib/evolution/rrsi-pm-training-mapping.js +134 -0
  189. package/src/lib/evolution/rrsi-preparation-contracts.js +213 -0
  190. package/src/lib/evolution/rrsi-registry-history-binding.js +193 -0
  191. package/src/lib/evolution/rrsi-registry-runtime-policy.js +648 -0
  192. package/src/lib/evolution/rrsi-registry-store-policy.js +1271 -0
  193. package/src/lib/evolution/rrsi-runtime-composition.js +79 -0
  194. package/src/lib/evolution/rrsi-selector.js +434 -0
  195. package/src/lib/evolution/rrsi-statistics-simulation.js +354 -0
  196. package/src/lib/evolution/rrsi-tenant-index-anchor-contracts.js +223 -0
  197. package/src/lib/evolution/rrsi-tenant-index-anchor-history.js +157 -0
  198. package/src/lib/evolution/skill-candidate-registry.js +216 -29
  199. package/src/lib/evolution/skill-registry-maintenance.js +80 -0
  200. package/src/lib/evolution/skill-registry-writer-control.js +138 -0
  201. package/src/lib/evolution/skill-release-registry.js +414 -169
  202. package/src/lib/formal-quality-eval-runtime.js +2 -14
  203. package/src/lib/goal-store.js +225 -16
  204. package/src/lib/process-execution-broker/windows-native-evaluator-capabilities.js +291 -30
  205. package/src/lib/record-replay/skill-recorder.js +38 -3
  206. package/src/lib/remote-read-loop-guard.js +227 -24
  207. package/src/lib/scheduler-kernel/authority-resolver.js +12 -163
  208. package/src/lib/scheduler-kernel/contract.js +27 -414
  209. package/src/lib/scheduler-kernel/runtime.js +21 -823
  210. package/src/lib/scheduler-kernel/service.js +11 -328
  211. package/src/lib/scheduler-kernel/source-locator-path.js +7 -142
  212. package/src/lib/scheduler-kernel/store.js +67 -5931
  213. package/src/lib/secure-fs.js +16 -1314
  214. package/src/lib/task-progress-tracker.js +6 -1
  215. package/src/lib/with-file-lock.js +122 -20
  216. package/src/runtime/agent-core.js +71 -23
  217. package/src/assets/web-panel/assets/ChatBubbleRenderer-fcc_Tvqu.js +0 -1
  218. package/src/assets/web-panel/assets/OrderTableRenderer-BtvN-Qwh.js +0 -1
  219. package/src/assets/web-panel/assets/devWarning-CfB8DxT2.js +0 -1
  220. package/src/assets/web-panel/assets/index-CCsRfd0k.js +0 -1
  221. package/src/assets/web-panel/assets/index-CsmiZIQ4.js +0 -1
@@ -1,6 +1,58 @@
1
1
  {
2
2
  "source": "CHANGELOG.md",
3
3
  "releases": [
4
+ {
5
+ "productVersion": null,
6
+ "cliVersion": "0.166.93",
7
+ "cliVersions": ["0.166.93"],
8
+ "date": null,
9
+ "title": "",
10
+ "sections": [
11
+ {
12
+ "heading": "Fixed - cc CLI 0.166.93: bounded investigations and release evidence",
13
+ "body": "- Bound repeated IDE evidence inspections and all phases of authenticated\n artifact byte reads, including directory, index, identity, and history checks.\n- Publish Session Core `0.3.18` and Context Memory Kernel `0.1.8` before CLI\n `0.166.93`, with exact dependency\n pins and registry-only readback of the published child package.\n- Include organization goal acceptance, periodic monitoring, memory, risk\n review, transfer, workflow, and notification services in Session Core.\n- Register the organization goal memory adapter as a Kernel capability client,\n preserving the single canonical memory writer in the published inventory.\n- Support immediate transactions and nested savepoints in desktop SQLite\n compatibility adapters, and verify notification reads after login and denial\n after logout with a real Electron session.\n- Correct browser timer and synchronous subscription types in goal memory\n panels and retain their disposal behavior.\n- Install exact-checkout dependencies in the accessibility/performance\n aggregate job before verifying Linux, Windows, and macOS evidence.\n- Pair VS Code `0.37.138` and JetBrains `0.4.156` after CLI publication;\n release desktop/mobile `v5.0.3.140` after both IDE release stages."
14
+ }
15
+ ]
16
+ },
17
+ {
18
+ "productVersion": null,
19
+ "cliVersion": "0.166.92",
20
+ "cliVersions": ["0.166.92"],
21
+ "date": null,
22
+ "title": "",
23
+ "sections": [
24
+ {
25
+ "heading": "Fixed - cc CLI 0.166.92: private storage and release regression repairs",
26
+ "body": "- Publish Session Core `0.3.17` and Context Memory Kernel `0.1.7` before CLI\n `0.166.92`, with exact CLI dependency pins and public package readback.\n- Stage the actual Session Core package in isolated CLI and desktop fixtures;\n missing private-storage code fails the fixture checks. Extract the complete\n packed library when validating new transitive authorization dependencies.\n- Compare temporary fixture paths by their physical identity on Windows and\n macOS while retaining production symlink and path-admission checks.\n- Preserve full 64-bit RRSI directory and marker identities on Windows so\n distinct objects cannot collide after numeric rounding. Existing identity\n mismatches still hold the store without rewriting authenticated records.\n- Create SQLite WAL/SHM files before applying final private-storage protection,\n including owner-only Windows ACLs when goal schedulers reopen their stores.\n- Exclude validated browser digest metadata from Record & Replay content scans;\n malformed metadata and sensitive values in user content still fail review.\n- Avoid repeating the same authenticated journal read for each signed sibling\n in the cohort enrollment regression test; keep every admission assertion.\n- Stop canceled execution-location workflows from reporting missing producer\n artifacts as a new aggregate failure; failed producers still fail the gate.\n- Await main-process logout in desktop tests and preserve the UI session until\n revocation succeeds. Failed or unavailable revocation still rejects logout.\n- Require the parent to acknowledge RRSI process-test results before workers\n disconnect, retaining both the competing-process assertions and exit checks.\n- Pair VS Code `0.37.137` and JetBrains `0.4.155` with CLI `0.166.92`. Disable\n development plugin hot reload in the JetBrains test host so restart validation\n retains both the packaged plugin and its UI driver.\n- Require the authorized CLI and downloadable OIDC-published child packages\n before desktop and mobile builds; remove the product workflow's npm token\n fallback so dependency failures cannot trigger a separate npm publication."
27
+ }
28
+ ]
29
+ },
30
+ {
31
+ "productVersion": null,
32
+ "cliVersion": "0.166.92",
33
+ "cliVersions": ["0.166.92"],
34
+ "date": null,
35
+ "title": "",
36
+ "sections": [
37
+ {
38
+ "heading": "Added - CLI 0.166.92: organization workflows and authenticated registry reads",
39
+ "body": "- Carry the committed organization project workbench into the desktop product\n candidate, with project setup, saved proposals and governed task actions.\n Session Core `0.3.17` includes the proposal store used by those host services.\n- Bind RRSI Registry read-only construction to authenticated backend evidence.\n Read-only queries require that construction authority and retain checks for\n replacement and mutation instead of creating a fresh writable registry."
40
+ }
41
+ ]
42
+ },
43
+ {
44
+ "productVersion": null,
45
+ "cliVersion": "0.166.92",
46
+ "cliVersions": ["0.166.92"],
47
+ "date": "2026-10-07",
48
+ "title": "",
49
+ "sections": [
50
+ {
51
+ "heading": "Upgrade - CLI 0.166.92 and product v5.0.3.139 candidates (2026-10-07)",
52
+ "body": "- These versions are release candidates until the final versioned commit passes\n its complete GitHub Actions gates and public release verification.\n- After CLI publication, run `npm install -g chainlesschain@0.166.92`, then\n `chainlesschain --version`. `cc changelog` includes these bundled release notes.\n Keep the existing configuration and data directories when replacing binaries.\n- Upgrade IDE plugins after the CLI: VS Code `0.37.137` and JetBrains `0.4.155`.\n Restart the editor and verify its CLI path. If `cc` resolves to a C compiler,\n configure the full path to the installed ChainlessChain executable.\n- The final product stage uses desktop `5.0.3-alpha.139`, Android\n `5.0.3.139` / code `503139`, and iOS `5.0.3` / build `139`. Install the\n matching platform artifact after the CLI and IDE release stages finish.\n- Back up existing application data before upgrading persistent stores. Close\n desktop clients before copying SQLite stores, and retain their WAL/SHM files\n when present so the backup includes committed data."
53
+ }
54
+ ]
55
+ },
4
56
  {
5
57
  "productVersion": null,
6
58
  "cliVersion": "0.166.91",
@@ -24,7 +24,9 @@ import fs from "fs";
24
24
  import os from "os";
25
25
  import path from "path";
26
26
  import crypto from "crypto";
27
+ import { types as utilTypes } from "node:util";
27
28
  import { withFileLock } from "./with-file-lock.js";
29
+ import { readBoundedArtifactFile } from "./bounded-artifact-file-read.js";
28
30
 
29
31
  export const ARTIFACT_KINDS = Object.freeze([
30
32
  "report",
@@ -144,6 +146,39 @@ function normalizeLineage(lineage) {
144
146
  return normalized;
145
147
  }
146
148
 
149
+ function integrityReadBounds(value) {
150
+ if (
151
+ !value ||
152
+ typeof value !== "object" ||
153
+ utilTypes.isProxy(value) ||
154
+ Object.getPrototypeOf(value) !== Object.prototype ||
155
+ Reflect.ownKeys(value).length !== 2
156
+ )
157
+ throw new TypeError(
158
+ "artifact integrity bounds require exact own data fields",
159
+ );
160
+ const values = Object.fromEntries(
161
+ ["expectedSize", "maximumBytes"].map((name) => {
162
+ const field = Object.getOwnPropertyDescriptor(value, name);
163
+ if (!field?.enumerable || !("value" in field))
164
+ throw new TypeError("artifact integrity bounds cannot use accessors");
165
+ return [name, field.value];
166
+ }),
167
+ );
168
+ if (
169
+ !Number.isSafeInteger(values.expectedSize) ||
170
+ !Number.isSafeInteger(values.maximumBytes) ||
171
+ values.expectedSize < 0 ||
172
+ values.maximumBytes < 1 ||
173
+ values.expectedSize > values.maximumBytes ||
174
+ values.maximumBytes > MAX_ARTIFACT_BYTES
175
+ )
176
+ throw new TypeError(
177
+ "artifact integrity bounds exceed finite deliverable limits",
178
+ );
179
+ return Object.freeze(values);
180
+ }
181
+
147
182
  export class ArtifactStore {
148
183
  constructor({
149
184
  dir = null,
@@ -449,8 +484,14 @@ export class ArtifactStore {
449
484
  return path.join(this._filesDir(), entry.file);
450
485
  }
451
486
 
452
- /** Recompute the stored copy's digest; unknown/missing bytes fail closed. */
453
- verifyIntegrity(idOrEntry) {
487
+ /** Explicit bounds constrain artifact bytes only; id lookup may still read the index. */
488
+ verifyIntegrity(idOrEntry, bounds) {
489
+ if (arguments.length > 2)
490
+ throw new TypeError(
491
+ "artifact integrity accepts at most one bounds object",
492
+ );
493
+ // An explicitly supplied invalid value must never select the legacy raw read.
494
+ const bounded = arguments.length > 1 ? integrityReadBounds(bounds) : null;
454
495
  const entry =
455
496
  typeof idOrEntry === "object" && idOrEntry
456
497
  ? idOrEntry
@@ -465,7 +506,14 @@ export class ArtifactStore {
465
506
  }
466
507
  let body;
467
508
  try {
468
- body = fs.readFileSync(this.storedPath(entry));
509
+ const target = this.storedPath(entry);
510
+ body = bounded
511
+ ? readBoundedArtifactFile(
512
+ path.resolve(target),
513
+ bounded.expectedSize,
514
+ bounded.maximumBytes,
515
+ )
516
+ : fs.readFileSync(target);
469
517
  } catch {
470
518
  return {
471
519
  ok: false,
@@ -0,0 +1,131 @@
1
+ /** A bounded canonical-path read, not a persistent identity or authority grant. */
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { readBoundedDescriptor } from "./evolution/bounded-descriptor-read.js";
5
+ import { withEvolutionFileIdentity } from "./evolution/evolution-file-identity.js";
6
+ import { artifactPhysicalIdentity } from "./evolution/evolution-artifact-identity.js";
7
+
8
+ export const ARTIFACT_BOUNDED_READ_FAILED_CODE =
9
+ "CC_ARTIFACT_BOUNDED_READ_FAILED";
10
+ const FIELDS = Object.freeze([
11
+ "dev",
12
+ "ino",
13
+ "mode",
14
+ "uid",
15
+ "gid",
16
+ "nlink",
17
+ "size",
18
+ "mtimeNs",
19
+ "ctimeNs",
20
+ ]);
21
+ const MUTATION_FIELDS = Object.freeze(
22
+ FIELDS.filter((name) => name !== "dev" && name !== "ino"),
23
+ );
24
+ const DIRECTORY_FS = Object.freeze({
25
+ constants: fs.constants,
26
+ realpathSync: fs.realpathSync,
27
+ lstatSync: (...args) => fs.lstatSync(...args),
28
+ fstatSync: (...args) => fs.fstatSync(...args),
29
+ closeSync: (...args) => fs.closeSync(...args),
30
+ openSync: (target, flags) =>
31
+ fs.openSync(
32
+ target,
33
+ flags | (fs.constants.O_NONBLOCK || 0) | (fs.constants.O_DIRECTORY || 0),
34
+ ),
35
+ });
36
+ const canonical = (value) =>
37
+ process.platform === "win32" ? value.toLowerCase() : value;
38
+ function fail(message, cause) {
39
+ const error = new Error(message, cause ? { cause } : undefined);
40
+ error.code = ARTIFACT_BOUNDED_READ_FAILED_CODE;
41
+ throw error;
42
+ }
43
+ function safeStat(stat, expectedSize, maximumBytes, label) {
44
+ if (FIELDS.some((name) => typeof stat?.[name] !== "bigint"))
45
+ fail(`${label} requires full-precision stat fields`);
46
+ if (!stat.isFile() || stat.isSymbolicLink() || stat.nlink !== 1n)
47
+ fail(`${label} must be a regular, non-symlink, single-link file`);
48
+ if (
49
+ stat.size < 0n ||
50
+ stat.size > BigInt(maximumBytes) ||
51
+ stat.size !== BigInt(expectedSize)
52
+ )
53
+ fail(`${label} differs from its bounded expected size`);
54
+ }
55
+ function sameMetadata(left, right) {
56
+ return (
57
+ MUTATION_FIELDS.every((name) => left[name] === right[name]) &&
58
+ artifactPhysicalIdentity(left).birthtimeMs ===
59
+ artifactPhysicalIdentity(right).birthtimeMs
60
+ );
61
+ }
62
+ function sameStat(left, right) {
63
+ return (
64
+ left.dev === right.dev &&
65
+ left.ino === right.ino &&
66
+ sameMetadata(left, right)
67
+ );
68
+ }
69
+
70
+ /** Read one stable window only. Callers retain hash/signature and root checks. */
71
+ export function readBoundedArtifactFile(target, expectedSize, maximumBytes) {
72
+ if (
73
+ arguments.length !== 3 ||
74
+ typeof target !== "string" ||
75
+ !path.isAbsolute(target) ||
76
+ path.resolve(target) !== target ||
77
+ !Number.isSafeInteger(expectedSize) ||
78
+ !Number.isSafeInteger(maximumBytes) ||
79
+ expectedSize < 0 ||
80
+ maximumBytes < 1 ||
81
+ expectedSize > maximumBytes
82
+ )
83
+ throw new TypeError(
84
+ "bounded artifact read requires a canonical path and finite size bounds",
85
+ );
86
+ try {
87
+ return withEvolutionFileIdentity(DIRECTORY_FS, target, (samePathHandle) => {
88
+ const before = fs.lstatSync(target, { bigint: true });
89
+ safeStat(before, expectedSize, maximumBytes, "artifact path");
90
+ if (canonical(fs.realpathSync.native(target)) !== canonical(target))
91
+ fail("artifact path is not physically canonical");
92
+ const fd = fs.openSync(
93
+ target,
94
+ fs.constants.O_RDONLY |
95
+ (fs.constants.O_NOFOLLOW || 0) |
96
+ (fs.constants.O_NONBLOCK || 0),
97
+ );
98
+ try {
99
+ const opened = fs.fstatSync(fd, { bigint: true });
100
+ safeStat(opened, expectedSize, maximumBytes, "artifact descriptor");
101
+ if (!samePathHandle(before, opened) || !sameMetadata(before, opened))
102
+ fail("artifact path and descriptor identities differ");
103
+ const bytes = readBoundedDescriptor(
104
+ fs,
105
+ fd,
106
+ Number(opened.size),
107
+ maximumBytes,
108
+ );
109
+ const closed = fs.fstatSync(fd, { bigint: true });
110
+ const after = fs.lstatSync(target, { bigint: true });
111
+ safeStat(closed, expectedSize, maximumBytes, "artifact descriptor");
112
+ safeStat(after, expectedSize, maximumBytes, "artifact path");
113
+ if (!sameStat(opened, closed))
114
+ fail("artifact descriptor changed during bounded read");
115
+ if (
116
+ !sameStat(before, after) ||
117
+ !samePathHandle(after, closed) ||
118
+ !sameMetadata(after, closed) ||
119
+ canonical(fs.realpathSync.native(target)) !== canonical(target)
120
+ )
121
+ fail("artifact pathname changed during bounded read");
122
+ return bytes;
123
+ } finally {
124
+ fs.closeSync(fd);
125
+ }
126
+ });
127
+ } catch (cause) {
128
+ if (cause?.code === ARTIFACT_BOUNDED_READ_FAILED_CODE) throw cause;
129
+ fail("artifact bounded descriptor read failed", cause);
130
+ }
131
+ }