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
@@ -0,0 +1,213 @@
1
+ /** Frozen preparation declarations; these do not authenticate a PM mapping. */
2
+ import { RRSI_BUDGET_FIELDS } from "./rrsi-contracts.js";
3
+ import {
4
+ rrsiExact,
5
+ rrsiId,
6
+ rrsiDigest,
7
+ rrsiInteger,
8
+ rrsiCanonical,
9
+ rrsiHash,
10
+ rrsiEnvelope,
11
+ rrsiFail,
12
+ } from "./rrsi-data.js";
13
+
14
+ export const RRSI_PREPARATION_PLAN_SCHEMA =
15
+ "chainlesschain.rrsi-preparation-plan/v1";
16
+ export const RRSI_PREPARATION_RESERVATION_SCHEMA =
17
+ "chainlesschain.rrsi-preparation-reservation/v1";
18
+ export const RRSI_PREPARATION_RESERVATION_SCHEMA_V2 =
19
+ "chainlesschain.rrsi-preparation-reservation/v2";
20
+ export function isRrsiPreparationReservation(value) {
21
+ return (
22
+ value.schema === RRSI_PREPARATION_RESERVATION_SCHEMA ||
23
+ value.schema === RRSI_PREPARATION_RESERVATION_SCHEMA_V2
24
+ );
25
+ }
26
+ export const RRSI_PREPARATION_SETTLEMENT_SCHEMA =
27
+ "chainlesschain.rrsi-preparation-settlement/v1";
28
+ export const RRSI_PREPARATION_PHASES = Object.freeze([
29
+ "curriculum-planning",
30
+ "exploration",
31
+ "candidate-proposal",
32
+ "memory-distillation",
33
+ "failure-retry",
34
+ "environment-reset",
35
+ ]);
36
+ export const RRSI_PREPARATION_BINDING_FIELDS = Object.freeze([
37
+ "phase",
38
+ "preparationPlanDigest",
39
+ "trainingPartitionDigest",
40
+ "trainingSourceDigest",
41
+ "inputDigest",
42
+ "requestDigest",
43
+ "roundId",
44
+ "branchId",
45
+ ]);
46
+
47
+ function sources(campaign, taskIds = null) {
48
+ const training = campaign.dataset.tasks.filter(
49
+ (task) => task.partition === "train",
50
+ );
51
+ if (taskIds !== null) {
52
+ if (!Array.isArray(taskIds) || taskIds.length < 1 || taskIds.length > 256)
53
+ rrsiFail("preparation sources must be a bounded nonempty list");
54
+ const allowed = new Set(training.map((task) => task.id));
55
+ for (const id of taskIds) {
56
+ rrsiId(id, "preparation training task ID");
57
+ if (!allowed.has(id)) rrsiFail("preparation source is outside training");
58
+ }
59
+ if (new Set(taskIds).size !== taskIds.length)
60
+ rrsiFail("preparation sources contain duplicate IDs");
61
+ }
62
+ // IDs and ordering are deliberately excluded from source identity.
63
+ return training
64
+ .filter((task) => taskIds === null || taskIds.includes(task.id))
65
+ .map((task) => ({ contentDigest: task.contentDigest, groups: task.groups }))
66
+ .sort((a, b) =>
67
+ rrsiCanonical(a) < rrsiCanonical(b)
68
+ ? -1
69
+ : rrsiCanonical(a) > rrsiCanonical(b)
70
+ ? 1
71
+ : 0,
72
+ );
73
+ }
74
+
75
+ export function rrsiTrainingSourcesDigest(campaign, taskIds = null) {
76
+ return rrsiHash(
77
+ "chainlesschain.rrsi-training-sources/v1",
78
+ sources(campaign, taskIds),
79
+ );
80
+ }
81
+
82
+ export function normalizeRrsiPreparationPlan(payload, rootCampaign) {
83
+ rrsiExact(
84
+ payload,
85
+ [
86
+ "campaignDigest",
87
+ "maxAttempts",
88
+ "planDigest",
89
+ "manifestDigest",
90
+ "trainingMappingDigest",
91
+ "pmTrainingPartitionDigest",
92
+ ],
93
+ "preparation plan registration",
94
+ );
95
+ rrsiDigest(payload.campaignDigest, "preparation campaign digest");
96
+ rrsiInteger(payload.maxAttempts, "preparation attempt limit", 1);
97
+ if (
98
+ payload.maxAttempts >
99
+ rootCampaign.budget.proposalPerExploringArm.maxExecutions
100
+ )
101
+ rrsiFail("preparation attempt limit exceeds frozen proposal allocation");
102
+ const context = Object.fromEntries(
103
+ [
104
+ "planDigest",
105
+ "manifestDigest",
106
+ "trainingMappingDigest",
107
+ "pmTrainingPartitionDigest",
108
+ ].map((key) => [key, rrsiDigest(payload[key], key)]),
109
+ );
110
+ return rrsiEnvelope(RRSI_PREPARATION_PLAN_SCHEMA, "preparationPlanDigest", {
111
+ maxAttempts: payload.maxAttempts,
112
+ ...context,
113
+ trainingPartitionDigest: rootCampaign.dataset.pools.train.partitionDigest,
114
+ trainingSourcesDigest: rrsiTrainingSourcesDigest(rootCampaign),
115
+ executionDigest: rrsiHash(
116
+ "chainlesschain.rrsi-execution-bindings/v1",
117
+ rootCampaign.execution,
118
+ ),
119
+ mappingAuthenticated: false,
120
+ });
121
+ }
122
+
123
+ export function normalizeRrsiPreparationRequest(payload, campaign, plan) {
124
+ const versioned = Object.hasOwn(payload, "plannedExecutions");
125
+ rrsiExact(
126
+ payload,
127
+ [
128
+ "campaignDigest",
129
+ "phase",
130
+ "sourceTaskIds",
131
+ "inputs",
132
+ "roundId",
133
+ "branchId",
134
+ "slotId",
135
+ "executionId",
136
+ "budget",
137
+ ...(versioned ? ["plannedExecutions"] : []),
138
+ ],
139
+ "preparation reservation",
140
+ );
141
+ if (!RRSI_PREPARATION_PHASES.includes(payload.phase))
142
+ rrsiFail("invalid preparation phase");
143
+ for (const key of ["roundId", "branchId", "slotId", "executionId"])
144
+ rrsiId(payload[key], key);
145
+ if (rrsiTrainingSourcesDigest(campaign) !== plan.trainingSourcesDigest)
146
+ rrsiFail("preparation campaign training sources differ from frozen plan");
147
+ const trainingSourceDigest = rrsiTrainingSourcesDigest(
148
+ campaign,
149
+ payload.sourceTaskIds,
150
+ );
151
+ rrsiExact(
152
+ payload.inputs,
153
+ ["instructionDigest", "memoryDigest", "artifactDigests"],
154
+ "preparation inputs",
155
+ );
156
+ for (const key of ["instructionDigest", "memoryDigest"])
157
+ rrsiDigest(payload.inputs[key], key);
158
+ const artifacts = payload.inputs.artifactDigests;
159
+ if (!Array.isArray(artifacts) || artifacts.length > 64)
160
+ rrsiFail("preparation artifacts must be a bounded list");
161
+ const artifactDigests = artifacts
162
+ .map((entry) => rrsiDigest(entry, "input artifact digest"))
163
+ .sort();
164
+ if (new Set(artifactDigests).size !== artifactDigests.length)
165
+ rrsiFail("preparation artifacts contain duplicate digests");
166
+ const inputDigest = rrsiHash("chainlesschain.rrsi-preparation-inputs/v1", {
167
+ instructionDigest: payload.inputs.instructionDigest,
168
+ memoryDigest: payload.inputs.memoryDigest,
169
+ artifactDigests,
170
+ });
171
+ // A new campaign/slot/round/branch/execution name cannot replay the same work.
172
+ const requestDigest = rrsiHash("chainlesschain.rrsi-preparation-request/v1", {
173
+ phase: payload.phase,
174
+ trainingSourceDigest,
175
+ inputDigest,
176
+ preparationPlanDigest: plan.preparationPlanDigest,
177
+ executionDigest: plan.executionDigest,
178
+ });
179
+ rrsiExact(payload.budget, RRSI_BUDGET_FIELDS, "preparation budget");
180
+ const ceiling = Object.fromEntries(
181
+ RRSI_BUDGET_FIELDS.map((key) => [
182
+ key,
183
+ rrsiInteger(payload.budget[key], key),
184
+ ]),
185
+ );
186
+ const plannedExecutions = versioned
187
+ ? rrsiInteger(
188
+ payload.plannedExecutions,
189
+ "planned preparation executions",
190
+ 1,
191
+ 64,
192
+ )
193
+ : 1;
194
+ if (ceiling.maxExecutions < plannedExecutions)
195
+ rrsiFail("preparation reservation must cover its planned executions");
196
+ return {
197
+ schema: versioned
198
+ ? RRSI_PREPARATION_RESERVATION_SCHEMA_V2
199
+ : RRSI_PREPARATION_RESERVATION_SCHEMA,
200
+ plannedExecutions,
201
+ budget: ceiling,
202
+ bindings: {
203
+ phase: payload.phase,
204
+ preparationPlanDigest: plan.preparationPlanDigest,
205
+ trainingPartitionDigest: campaign.dataset.pools.train.partitionDigest,
206
+ trainingSourceDigest,
207
+ inputDigest,
208
+ requestDigest,
209
+ roundId: payload.roundId,
210
+ branchId: payload.branchId,
211
+ },
212
+ };
213
+ }
@@ -0,0 +1,193 @@
1
+ /** Genuine storage graph binding; origin cutover and promotion remain separate. */
2
+ import { isProxy } from "node:util/types";
3
+ import {
4
+ captureEvolutionLedgerFileBackend,
5
+ captureEvolutionLedgerFileBackendBinding,
6
+ } from "./evolution-ledger-file-backend.js";
7
+ import { captureEvolutionLedgerArtifactResolverBinding } from "./evolution-artifact-ports.js";
8
+ import { captureSkillReleaseOperationReader } from "./evolution-ledger-ports.js";
9
+ import { captureSkillReleaseRegistryReader } from "./skill-release-registry.js";
10
+ import { captureRrsiHistoryLedgerAdapter } from "./rrsi-history-ledger-adapter.js";
11
+ import { isEvolutionLedgerV2Journal } from "./evolution-ledger-v2-journal.js";
12
+ import { rrsiCanonical, rrsiEnvelope, rrsiFail } from "./rrsi-data.js";
13
+
14
+ export const RRSI_REGISTRY_HISTORY_BINDING_SCHEMA =
15
+ "chainlesschain.rrsi-registry-history-binding/v1";
16
+ export const RRSI_REGISTRY_HISTORY_READBACK_SCHEMA =
17
+ "chainlesschain.rrsi-registry-history-readback/v1";
18
+ const BINDINGS = new WeakMap();
19
+ function captureOptions(input) {
20
+ const names = [
21
+ "backend",
22
+ "historyAdapter",
23
+ "releaseRegistry",
24
+ "transactionLedger",
25
+ ];
26
+ if (
27
+ !input ||
28
+ isProxy(input) ||
29
+ Object.getPrototypeOf(input) !== Object.prototype ||
30
+ Reflect.ownKeys(input).length !== names.length
31
+ )
32
+ rrsiFail("Registry History binding requires plain own composition fields");
33
+ return Object.fromEntries(
34
+ names.map((name) => {
35
+ const field = Object.getOwnPropertyDescriptor(input, name);
36
+ if (!field?.enumerable || !("value" in field))
37
+ rrsiFail("Registry History binding cannot use accessors");
38
+ return [name, field.value];
39
+ }),
40
+ );
41
+ }
42
+ function same(left, right, label) {
43
+ if (rrsiCanonical(left) !== rrsiCanonical(right))
44
+ rrsiFail(
45
+ `Registry History ${label} differs`,
46
+ "CC_RRSI_STORAGE_BINDING_DRIFT",
47
+ );
48
+ }
49
+ function assertGraph(state) {
50
+ const {
51
+ backend,
52
+ backendBinding,
53
+ history,
54
+ release,
55
+ operations,
56
+ resolver,
57
+ ports,
58
+ } = state;
59
+ if (
60
+ !backendBinding.matchesLedger(history.ledger) ||
61
+ backend.ledger !== history.ledger ||
62
+ !operations.matchesLedger(backend.ledger)
63
+ )
64
+ rrsiFail(
65
+ "Registry transaction ports and History require the same genuine backend journal",
66
+ );
67
+ if (!release.matchesTransactionLedger(ports.transactionLedger))
68
+ rrsiFail("Registry uses another transaction port instance");
69
+ if (
70
+ !operations.matchesArtifactPorts(history.artifactPorts) ||
71
+ !resolver.matchesArtifactPorts(history.artifactPorts) ||
72
+ !backendBinding.matchesArtifactResolver(history.ledgerArtifactResolver)
73
+ )
74
+ rrsiFail(
75
+ "Registry and History require the original backend artifact ports and resolver",
76
+ );
77
+ if (
78
+ release.tenantId !== history.descriptor.tenantId ||
79
+ resolver.tenantId !== history.descriptor.artifactTenantId ||
80
+ resolver.audience !== history.descriptor.audience ||
81
+ resolver.purpose !== history.descriptor.purpose
82
+ )
83
+ rrsiFail("Registry History tenant or artifact scope differs");
84
+ }
85
+ function readGraph(state) {
86
+ assertGraph(state);
87
+ for (let attempt = 0; attempt < 3; attempt++) {
88
+ // v2 verify may legitimately recover a pending, already authorized WAL
89
+ // suffix. Its complete retained readback still precedes this context.
90
+ const before = state.operations.currentContext();
91
+ const root = state.history.resolveCampaignRoot();
92
+ // The genuine reader rechecks actual Registry directories and marker.
93
+ // This does not authenticate a persistent origin policy or cutover yet.
94
+ state.release.readState(state.history.descriptor.goalId);
95
+ const after = state.operations.currentContext();
96
+ if (rrsiCanonical(before) !== rrsiCanonical(after)) continue;
97
+ for (const field of ["ledgerId", "identityDigest", "epoch"])
98
+ if (root.identity[field] !== after.checkpoint[field])
99
+ rrsiFail("Registry History root belongs to another journal");
100
+ return { root, context: after };
101
+ }
102
+ rrsiFail(
103
+ "Registry History changed repeatedly during binding",
104
+ "CC_RRSI_STORAGE_BINDING_DRIFT",
105
+ );
106
+ }
107
+
108
+ export function createRrsiRegistryHistoryBinding(input) {
109
+ const ports = captureOptions(input),
110
+ backend = captureEvolutionLedgerFileBackend(ports.backend);
111
+ const state = {
112
+ ports,
113
+ backend,
114
+ backendBinding: captureEvolutionLedgerFileBackendBinding(ports.backend),
115
+ history: captureRrsiHistoryLedgerAdapter(ports.historyAdapter),
116
+ release: captureSkillReleaseRegistryReader(ports.releaseRegistry),
117
+ operations: captureSkillReleaseOperationReader(ports.transactionLedger),
118
+ };
119
+ state.resolver = captureEvolutionLedgerArtifactResolverBinding(
120
+ state.history.ledgerArtifactResolver,
121
+ );
122
+ const { root } = readGraph(state);
123
+ const descriptor = rrsiEnvelope(
124
+ RRSI_REGISTRY_HISTORY_BINDING_SCHEMA,
125
+ "registryHistoryBindingDigest",
126
+ {
127
+ tenantId: state.history.descriptor.tenantId,
128
+ skillName: state.history.descriptor.goalId,
129
+ artifactTenantId: state.history.descriptor.artifactTenantId,
130
+ audience: state.history.descriptor.audience,
131
+ purpose: state.history.descriptor.purpose,
132
+ historyScopeId: state.history.descriptor.scopeId,
133
+ ledgerIdentity: root.identity,
134
+ journalKind: isEvolutionLedgerV2Journal(backend.ledger)
135
+ ? "manifest-v2"
136
+ : "file-v1",
137
+ rootCampaignDigest: root.campaign.campaignDigest,
138
+ parentReleaseDigest: root.campaign.parentReleaseDigest,
139
+ anchorReleaseDigest: root.campaign.anchorReleaseDigest,
140
+ rootRegistrationRecord: root.registrationRecord,
141
+ transactionJournalObjectIdentityVerified: true,
142
+ registryTransactionPortObjectIdentityVerified: true,
143
+ artifactResolverObjectIdentityVerified: true,
144
+ artifactPortsObjectIdentityVerified: true,
145
+ registryBoundaryRechecked: true,
146
+ registryStoreIdentityAuthenticated: false,
147
+ originCutoverAuthenticated: false,
148
+ originClassificationAvailable: false,
149
+ productionAuthorityVerified: false,
150
+ grantsMutationOrDispatchAuthority: false,
151
+ },
152
+ );
153
+ const binding = Object.freeze({ descriptor });
154
+ BINDINGS.set(binding, Object.freeze({ ...state, root }));
155
+ return binding;
156
+ }
157
+
158
+ export function captureRrsiRegistryHistoryBinding(binding) {
159
+ const state = BINDINGS.get(binding);
160
+ if (!state) rrsiFail("a genuine Registry History binding is required");
161
+ return Object.freeze({
162
+ descriptor: binding.descriptor,
163
+ matchesHistory: (historyAdapter) =>
164
+ captureRrsiHistoryLedgerAdapter(historyAdapter) === state.history,
165
+ matchesCapturedHistory: (history) => history === state.history,
166
+ matchesReleaseRegistry: (registry) =>
167
+ captureSkillReleaseRegistryReader(registry) === state.release,
168
+ matchesTransactionLedger: (ledger) =>
169
+ ledger === state.ports.transactionLedger,
170
+ });
171
+ }
172
+
173
+ export function recheckRrsiRegistryHistoryBinding(binding) {
174
+ const state = BINDINGS.get(binding);
175
+ if (!state) rrsiFail("a genuine Registry History binding is required");
176
+ const { root, context } = readGraph(state);
177
+ same(root, state.root, "root registration");
178
+ return rrsiEnvelope(
179
+ RRSI_REGISTRY_HISTORY_READBACK_SCHEMA,
180
+ "registryHistoryReadbackDigest",
181
+ {
182
+ registryHistoryBindingDigest:
183
+ binding.descriptor.registryHistoryBindingDigest,
184
+ ledgerIdentity: root.identity,
185
+ currentHead: context.checkpoint,
186
+ originalStorageGraphRechecked: true,
187
+ registryBoundaryRechecked: true,
188
+ originCutoverAuthenticated: false,
189
+ originClassificationAvailable: false,
190
+ atomicDispatchOrPromotionAuthorized: false,
191
+ },
192
+ );
193
+ }