pi-daddy 0.22.0 → 0.24.0

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 (385) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +12 -6
  3. package/contracts/daily-view/v1/README.md +114 -0
  4. package/contracts/daily-view/v1/fixtures/view.json +525 -0
  5. package/contracts/daily-view/v1/fixtures/view.txt +75 -0
  6. package/contracts/daily-view/v1/fixtures/work.jsonl +17 -0
  7. package/contracts/daily-view/v1/p03/README.md +26 -0
  8. package/contracts/daily-view/v1/p03/fixtures/retained-executions.json +241 -0
  9. package/contracts/daily-view/v1/p03/projection.schema.json +194 -0
  10. package/contracts/daily-view/v1/p03/provenance.json +21 -0
  11. package/contracts/dashboard-host/v1/README.md +176 -0
  12. package/contracts/debrief/v1/README.md +146 -0
  13. package/contracts/debrief/v1/intervention/README.md +32 -0
  14. package/contracts/debrief/v1/intervention/fixtures/artifact-3ee11136beb864f518252e5024dae9197421fbf97b6e981d3243c782b5c44bd0.txt +1 -0
  15. package/contracts/debrief/v1/intervention/fixtures/artifact-58905d872dd3c54a9705f67b05fa82edbad7af6476ae8993faf1a7b9fadfb905.txt +1 -0
  16. package/contracts/debrief/v1/intervention/fixtures/assessment.json +29 -0
  17. package/contracts/debrief/v1/intervention/fixtures/blind-view.json +20 -0
  18. package/contracts/debrief/v1/intervention/fixtures/choice.json +7 -0
  19. package/contracts/debrief/v1/intervention/fixtures/manifest.json +57 -0
  20. package/contracts/debrief/v1/intervention/fixtures/reveal.json +39 -0
  21. package/contracts/debrief/v1/provenance.json +89 -0
  22. package/contracts/debrief/v1/work-capture/README.md +38 -0
  23. package/contracts/debrief/v1/work-capture/fixtures/batch.json +17 -0
  24. package/contracts/debrief/v1/work-capture/fixtures/cases.json +184 -0
  25. package/contracts/debrief/v1/work-capture/fixtures/review.json +184 -0
  26. package/contracts/debrief/v1/work-capture/review-request.schema.json +41 -0
  27. package/contracts/debrief/v1/work-capture/work-case.schema.json +190 -0
  28. package/contracts/debrief/v2/README.md +71 -0
  29. package/contracts/debrief/v2/input-pin.json +66 -0
  30. package/contracts/debrief/v2/intervention-upstream.md +40 -0
  31. package/contracts/debrief/v2/work-signals-upstream.md +22 -0
  32. package/contracts/dispatch-control/v1/README.md +109 -0
  33. package/contracts/dispatch-control/v1/request.schema.json +19 -0
  34. package/contracts/effect-profile/v1/README.md +124 -0
  35. package/contracts/execution-retention/v1/README.md +109 -0
  36. package/contracts/execution-retention/v2/README.md +148 -0
  37. package/contracts/execution-retention/v2/fixtures/interrupted-native-bytes.json +91 -0
  38. package/contracts/execution-retention/v2/fixtures/missing-native-session.json +91 -0
  39. package/contracts/execution-retention/v2/fixtures/native-file-unknown-branch.json +91 -0
  40. package/contracts/execution-retention/v2/fixtures/native-id-without-bytes.json +91 -0
  41. package/contracts/execution-retention/v2/fixtures/native-live-branch.json +90 -0
  42. package/contracts/execution-retention/v2/fixtures/replaced-native-session.json +92 -0
  43. package/contracts/execution-retention/v2/fixtures/result-82c620cdfeb8ca6b858cf653d7f5e2eedca5315d6244216d60e8b36f03223d6a.bin +1 -0
  44. package/contracts/execution-retention/v2/fixtures/session-2ec1f134bc739984434f7fca689e1c3d1c39fce2dcadae709e9b6faedfcc4ac7.bin +3 -0
  45. package/contracts/execution-retention/v2/fixtures/session-9bdb4bd16a901da31580acf056bda525225259e15ec409e0410480109011772f.bin +3 -0
  46. package/contracts/execution-retention/v2/manifest.schema.json +858 -0
  47. package/contracts/experiment/v1/README.md +164 -0
  48. package/contracts/factory-order/v1/README.md +151 -0
  49. package/contracts/factory-order/v1/adoption-pin.json +8 -0
  50. package/contracts/intent-control/v1/README.md +135 -0
  51. package/contracts/intent-control/v1/request.schema.json +1096 -0
  52. package/contracts/intent-control/v2/README.md +34 -0
  53. package/contracts/intent-control/v2/request.schema.json +1070 -0
  54. package/contracts/ledger/v4/README.md +241 -0
  55. package/contracts/ledger/v4/fixtures/layout-options.json +428 -0
  56. package/contracts/ledger/v4/fixtures/work-acceptance.json +57 -0
  57. package/contracts/ledger/v4/fixtures/work-occurrence.json +44 -0
  58. package/contracts/ledger/v4/fixtures/work-revision.json +26 -0
  59. package/contracts/ledger/v4/fixtures/work-snapshot.json +73 -0
  60. package/contracts/ledger/v4/ledger-event.schema.json +162 -0
  61. package/contracts/ordinary-control/v1/README.md +59 -0
  62. package/contracts/producer-ipc/v1/README.md +137 -0
  63. package/dist/check-runner.d.ts +5 -0
  64. package/dist/check-runner.d.ts.map +1 -1
  65. package/dist/check-runner.js +16 -2
  66. package/dist/check-runner.js.map +1 -1
  67. package/dist/cli.d.ts +3 -1
  68. package/dist/cli.d.ts.map +1 -1
  69. package/dist/cli.js +49 -3
  70. package/dist/cli.js.map +1 -1
  71. package/dist/control-journal.d.ts +20 -0
  72. package/dist/control-journal.d.ts.map +1 -0
  73. package/dist/control-journal.js +73 -0
  74. package/dist/control-journal.js.map +1 -0
  75. package/dist/daily-dashboard-host.d.ts +99 -0
  76. package/dist/daily-dashboard-host.d.ts.map +1 -0
  77. package/dist/daily-dashboard-host.js +71 -0
  78. package/dist/daily-dashboard-host.js.map +1 -0
  79. package/dist/daily-view-input.d.ts +44 -0
  80. package/dist/daily-view-input.d.ts.map +1 -0
  81. package/dist/daily-view-input.js +68 -0
  82. package/dist/daily-view-input.js.map +1 -0
  83. package/dist/daily-view-render.d.ts +4 -0
  84. package/dist/daily-view-render.d.ts.map +1 -0
  85. package/dist/daily-view-render.js +41 -0
  86. package/dist/daily-view-render.js.map +1 -0
  87. package/dist/daily-view.d.ts +74 -0
  88. package/dist/daily-view.d.ts.map +1 -0
  89. package/dist/daily-view.js +170 -0
  90. package/dist/daily-view.js.map +1 -0
  91. package/dist/dashboard-cli.d.ts +26 -1
  92. package/dist/dashboard-cli.d.ts.map +1 -1
  93. package/dist/dashboard-cli.js +128 -3
  94. package/dist/dashboard-cli.js.map +1 -1
  95. package/dist/dashboard-harness.d.ts +22 -0
  96. package/dist/dashboard-harness.d.ts.map +1 -0
  97. package/dist/dashboard-harness.js +89 -0
  98. package/dist/dashboard-harness.js.map +1 -0
  99. package/dist/dashboard-herdr.d.ts.map +1 -1
  100. package/dist/dashboard-herdr.js +7 -2
  101. package/dist/dashboard-herdr.js.map +1 -1
  102. package/dist/dashboard-host-contract.d.ts +116 -0
  103. package/dist/dashboard-host-contract.d.ts.map +1 -0
  104. package/dist/dashboard-host-contract.js +14 -0
  105. package/dist/dashboard-host-contract.js.map +1 -0
  106. package/dist/dashboard-host-transport.d.ts +16 -0
  107. package/dist/dashboard-host-transport.d.ts.map +1 -0
  108. package/dist/dashboard-host-transport.js +124 -0
  109. package/dist/dashboard-host-transport.js.map +1 -0
  110. package/dist/dashboard-host.d.ts +203 -0
  111. package/dist/dashboard-host.d.ts.map +1 -0
  112. package/dist/dashboard-host.js +376 -0
  113. package/dist/dashboard-host.js.map +1 -0
  114. package/dist/dashboard-observation.d.ts +28 -0
  115. package/dist/dashboard-observation.d.ts.map +1 -0
  116. package/dist/dashboard-observation.js +86 -0
  117. package/dist/dashboard-observation.js.map +1 -0
  118. package/dist/debrief-contract.d.ts +65 -0
  119. package/dist/debrief-contract.d.ts.map +1 -0
  120. package/dist/debrief-contract.js +151 -0
  121. package/dist/debrief-contract.js.map +1 -0
  122. package/dist/debrief-fixture.d.ts +16 -0
  123. package/dist/debrief-fixture.d.ts.map +1 -0
  124. package/dist/debrief-fixture.js +41 -0
  125. package/dist/debrief-fixture.js.map +1 -0
  126. package/dist/debrief-host.d.ts +59 -0
  127. package/dist/debrief-host.d.ts.map +1 -0
  128. package/dist/debrief-host.js +49 -0
  129. package/dist/debrief-host.js.map +1 -0
  130. package/dist/debrief-render.d.ts +5 -0
  131. package/dist/debrief-render.d.ts.map +1 -0
  132. package/dist/debrief-render.js +65 -0
  133. package/dist/debrief-render.js.map +1 -0
  134. package/dist/debrief.d.ts +90 -0
  135. package/dist/debrief.d.ts.map +1 -0
  136. package/dist/debrief.js +263 -0
  137. package/dist/debrief.js.map +1 -0
  138. package/dist/delegate-types.d.ts +2 -0
  139. package/dist/delegate-types.d.ts.map +1 -1
  140. package/dist/delegate-types.js.map +1 -1
  141. package/dist/delegate.d.ts.map +1 -1
  142. package/dist/delegate.js +1 -0
  143. package/dist/delegate.js.map +1 -1
  144. package/dist/dispatch-control.d.ts +45 -0
  145. package/dist/dispatch-control.d.ts.map +1 -0
  146. package/dist/dispatch-control.js +76 -0
  147. package/dist/dispatch-control.js.map +1 -0
  148. package/dist/effect-profile-runtime.d.ts +40 -0
  149. package/dist/effect-profile-runtime.d.ts.map +1 -0
  150. package/dist/effect-profile-runtime.js +51 -0
  151. package/dist/effect-profile-runtime.js.map +1 -0
  152. package/dist/effect-profile.d.ts +40 -0
  153. package/dist/effect-profile.d.ts.map +1 -0
  154. package/dist/effect-profile.js +152 -0
  155. package/dist/effect-profile.js.map +1 -0
  156. package/dist/execution-retention.d.ts +90 -0
  157. package/dist/execution-retention.d.ts.map +1 -0
  158. package/dist/execution-retention.js +247 -0
  159. package/dist/execution-retention.js.map +1 -0
  160. package/dist/experiment-contract.d.ts +56 -0
  161. package/dist/experiment-contract.d.ts.map +1 -0
  162. package/dist/experiment-contract.js +80 -0
  163. package/dist/experiment-contract.js.map +1 -0
  164. package/dist/experiment-state.d.ts +22 -0
  165. package/dist/experiment-state.d.ts.map +1 -0
  166. package/dist/experiment-state.js +79 -0
  167. package/dist/experiment-state.js.map +1 -0
  168. package/dist/experiment-store.d.ts +30 -0
  169. package/dist/experiment-store.d.ts.map +1 -0
  170. package/dist/experiment-store.js +147 -0
  171. package/dist/experiment-store.js.map +1 -0
  172. package/dist/experiment.d.ts +65 -0
  173. package/dist/experiment.d.ts.map +1 -0
  174. package/dist/experiment.js +357 -0
  175. package/dist/experiment.js.map +1 -0
  176. package/dist/factory-contract.d.ts +79 -0
  177. package/dist/factory-contract.d.ts.map +1 -0
  178. package/dist/factory-contract.js +89 -0
  179. package/dist/factory-contract.js.map +1 -0
  180. package/dist/factory-migration.d.ts +20 -0
  181. package/dist/factory-migration.d.ts.map +1 -0
  182. package/dist/factory-migration.js +55 -0
  183. package/dist/factory-migration.js.map +1 -0
  184. package/dist/factory-order.d.ts +848 -0
  185. package/dist/factory-order.d.ts.map +1 -0
  186. package/dist/factory-order.js +83 -0
  187. package/dist/factory-order.js.map +1 -0
  188. package/dist/factory-registry.d.ts +121 -0
  189. package/dist/factory-registry.d.ts.map +1 -0
  190. package/dist/factory-registry.js +133 -0
  191. package/dist/factory-registry.js.map +1 -0
  192. package/dist/file-lock.d.ts +8 -2
  193. package/dist/file-lock.d.ts.map +1 -1
  194. package/dist/file-lock.js +78 -19
  195. package/dist/file-lock.js.map +1 -1
  196. package/dist/herdr-poll.d.ts +8 -0
  197. package/dist/herdr-poll.d.ts.map +1 -1
  198. package/dist/herdr-poll.js +23 -0
  199. package/dist/herdr-poll.js.map +1 -1
  200. package/dist/index.d.ts +20 -0
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/index.js +20 -0
  203. package/dist/index.js.map +1 -1
  204. package/dist/intent-application.d.ts +17 -0
  205. package/dist/intent-application.d.ts.map +1 -0
  206. package/dist/intent-application.js +113 -0
  207. package/dist/intent-application.js.map +1 -0
  208. package/dist/intent-control.d.ts +201 -0
  209. package/dist/intent-control.d.ts.map +1 -0
  210. package/dist/intent-control.js +110 -0
  211. package/dist/intent-control.js.map +1 -0
  212. package/dist/intent-scheduling.d.ts +9 -0
  213. package/dist/intent-scheduling.d.ts.map +1 -0
  214. package/dist/intent-scheduling.js +15 -0
  215. package/dist/intent-scheduling.js.map +1 -0
  216. package/dist/ledger-append.d.ts +15 -0
  217. package/dist/ledger-append.d.ts.map +1 -0
  218. package/dist/ledger-append.js +94 -0
  219. package/dist/ledger-append.js.map +1 -0
  220. package/dist/ledger.d.ts +11 -0
  221. package/dist/ledger.d.ts.map +1 -1
  222. package/dist/ledger.js +3 -7
  223. package/dist/ledger.js.map +1 -1
  224. package/dist/native-session-target.d.ts +9 -0
  225. package/dist/native-session-target.d.ts.map +1 -0
  226. package/dist/native-session-target.js +29 -0
  227. package/dist/native-session-target.js.map +1 -0
  228. package/dist/native-session.d.ts +59 -0
  229. package/dist/native-session.d.ts.map +1 -0
  230. package/dist/native-session.js +154 -0
  231. package/dist/native-session.js.map +1 -0
  232. package/dist/order-schedule.d.ts +37 -0
  233. package/dist/order-schedule.d.ts.map +1 -0
  234. package/dist/order-schedule.js +81 -0
  235. package/dist/order-schedule.js.map +1 -0
  236. package/dist/ordinary-children.d.ts +52 -0
  237. package/dist/ordinary-children.d.ts.map +1 -0
  238. package/dist/ordinary-children.js +93 -0
  239. package/dist/ordinary-children.js.map +1 -0
  240. package/dist/producer-ipc-contract.d.ts +29 -0
  241. package/dist/producer-ipc-contract.d.ts.map +1 -0
  242. package/dist/producer-ipc-contract.js +29 -0
  243. package/dist/producer-ipc-contract.js.map +1 -0
  244. package/dist/producer-ipc.d.ts +55 -0
  245. package/dist/producer-ipc.d.ts.map +1 -0
  246. package/dist/producer-ipc.js +143 -0
  247. package/dist/producer-ipc.js.map +1 -0
  248. package/dist/resource-budget.d.ts +334 -0
  249. package/dist/resource-budget.d.ts.map +1 -0
  250. package/dist/resource-budget.js +415 -0
  251. package/dist/resource-budget.js.map +1 -0
  252. package/dist/retention-contract.d.ts +73 -0
  253. package/dist/retention-contract.d.ts.map +1 -0
  254. package/dist/retention-contract.js +104 -0
  255. package/dist/retention-contract.js.map +1 -0
  256. package/dist/retention-json.d.ts +3 -0
  257. package/dist/retention-json.d.ts.map +1 -0
  258. package/dist/retention-json.js +32 -0
  259. package/dist/retention-json.js.map +1 -0
  260. package/dist/run-child.d.ts +4 -0
  261. package/dist/run-child.d.ts.map +1 -1
  262. package/dist/run-child.js +16 -2
  263. package/dist/run-child.js.map +1 -1
  264. package/dist/run-herdr.d.ts +6 -0
  265. package/dist/run-herdr.d.ts.map +1 -1
  266. package/dist/run-herdr.js +19 -6
  267. package/dist/run-herdr.js.map +1 -1
  268. package/dist/vendor/adoption.d.ts +129 -0
  269. package/dist/vendor/adoption.d.ts.map +1 -0
  270. package/dist/vendor/adoption.js +102 -0
  271. package/dist/vendor/adoption.js.map +1 -0
  272. package/dist/work-command.d.ts +30 -0
  273. package/dist/work-command.d.ts.map +1 -0
  274. package/dist/work-command.js +148 -0
  275. package/dist/work-command.js.map +1 -0
  276. package/dist/work-ledger-destination.d.ts +20 -0
  277. package/dist/work-ledger-destination.d.ts.map +1 -0
  278. package/dist/work-ledger-destination.js +131 -0
  279. package/dist/work-ledger-destination.js.map +1 -0
  280. package/dist/work-ledger-json.d.ts +25 -0
  281. package/dist/work-ledger-json.d.ts.map +1 -0
  282. package/dist/work-ledger-json.js +267 -0
  283. package/dist/work-ledger-json.js.map +1 -0
  284. package/dist/work-ledger-occurrences.d.ts +227 -0
  285. package/dist/work-ledger-occurrences.d.ts.map +1 -0
  286. package/dist/work-ledger-occurrences.js +115 -0
  287. package/dist/work-ledger-occurrences.js.map +1 -0
  288. package/dist/work-ledger-projection.d.ts +295 -0
  289. package/dist/work-ledger-projection.d.ts.map +1 -0
  290. package/dist/work-ledger-projection.js +237 -0
  291. package/dist/work-ledger-projection.js.map +1 -0
  292. package/dist/work-ledger-snapshot.d.ts +29 -0
  293. package/dist/work-ledger-snapshot.d.ts.map +1 -0
  294. package/dist/work-ledger-snapshot.js +267 -0
  295. package/dist/work-ledger-snapshot.js.map +1 -0
  296. package/dist/work-ledger-types.d.ts +261 -0
  297. package/dist/work-ledger-types.d.ts.map +1 -0
  298. package/dist/work-ledger-types.js +13 -0
  299. package/dist/work-ledger-types.js.map +1 -0
  300. package/dist/work-ledger-validation.d.ts +14 -0
  301. package/dist/work-ledger-validation.d.ts.map +1 -0
  302. package/dist/work-ledger-validation.js +226 -0
  303. package/dist/work-ledger-validation.js.map +1 -0
  304. package/dist/work-ledger.d.ts +43 -0
  305. package/dist/work-ledger.d.ts.map +1 -0
  306. package/dist/work-ledger.js +225 -0
  307. package/dist/work-ledger.js.map +1 -0
  308. package/extensions/daily-dashboard-session.ts +30 -0
  309. package/extensions/daily-work-session.ts +20 -0
  310. package/extensions/delegate-chain.ts +1 -0
  311. package/extensions/delegation-native.ts +12 -0
  312. package/extensions/delegation.ts +25 -11
  313. package/extensions/execute-child.ts +44 -5
  314. package/extensions/executor-session.ts +9 -0
  315. package/extensions/grants-command.ts +14 -15
  316. package/extensions/grants-connected-command.ts +19 -0
  317. package/extensions/grants.ts +26 -2
  318. package/extensions/ordinary-runtime.ts +14 -0
  319. package/extensions/primary-shadow.ts +11 -0
  320. package/extensions/run-delegation.ts +9 -7
  321. package/extensions/session.ts +10 -20
  322. package/extensions/work-runtime.ts +44 -0
  323. package/package.json +78 -4
  324. package/src/check-runner.ts +20 -2
  325. package/src/cli.ts +41 -4
  326. package/src/control-journal.ts +26 -0
  327. package/src/daily-dashboard-host.ts +49 -0
  328. package/src/daily-view-input.ts +59 -0
  329. package/src/daily-view-render.ts +44 -0
  330. package/src/daily-view.ts +152 -0
  331. package/src/dashboard-cli.ts +108 -4
  332. package/src/dashboard-harness.ts +37 -0
  333. package/src/dashboard-herdr.ts +7 -2
  334. package/src/dashboard-host-contract.ts +45 -0
  335. package/src/dashboard-host-transport.ts +40 -0
  336. package/src/dashboard-host.ts +191 -0
  337. package/src/dashboard-observation.ts +45 -0
  338. package/src/debrief-contract.ts +127 -0
  339. package/src/debrief-fixture.ts +29 -0
  340. package/src/debrief-host.ts +53 -0
  341. package/src/debrief-render.ts +49 -0
  342. package/src/debrief.ts +198 -0
  343. package/src/delegate-types.ts +2 -0
  344. package/src/delegate.ts +1 -0
  345. package/src/dispatch-control.ts +81 -0
  346. package/src/effect-profile-runtime.ts +46 -0
  347. package/src/effect-profile.ts +129 -0
  348. package/src/execution-retention.ts +230 -0
  349. package/src/experiment-contract.ts +66 -0
  350. package/src/experiment-state.ts +44 -0
  351. package/src/experiment-store.ts +98 -0
  352. package/src/experiment.ts +231 -0
  353. package/src/factory-contract.ts +47 -0
  354. package/src/factory-migration.ts +29 -0
  355. package/src/factory-order.ts +56 -0
  356. package/src/factory-registry.ts +60 -0
  357. package/src/file-lock.ts +47 -11
  358. package/src/herdr-poll.ts +18 -0
  359. package/src/index.ts +32 -0
  360. package/src/intent-application.ts +90 -0
  361. package/src/intent-control.ts +107 -0
  362. package/src/intent-scheduling.ts +14 -0
  363. package/src/ledger-append.ts +72 -0
  364. package/src/ledger.ts +3 -9
  365. package/src/native-session-target.ts +23 -0
  366. package/src/native-session.ts +139 -0
  367. package/src/order-schedule.ts +42 -0
  368. package/src/ordinary-children.ts +59 -0
  369. package/src/producer-ipc-contract.ts +26 -0
  370. package/src/producer-ipc.ts +107 -0
  371. package/src/resource-budget.ts +349 -0
  372. package/src/retention-contract.ts +84 -0
  373. package/src/retention-json.ts +20 -0
  374. package/src/run-child.ts +13 -2
  375. package/src/run-herdr.ts +11 -7
  376. package/src/vendor/adoption.ts +109 -0
  377. package/src/work-command.ts +179 -0
  378. package/src/work-ledger-destination.ts +113 -0
  379. package/src/work-ledger-json.ts +228 -0
  380. package/src/work-ledger-occurrences.ts +99 -0
  381. package/src/work-ledger-projection.ts +262 -0
  382. package/src/work-ledger-snapshot.ts +246 -0
  383. package/src/work-ledger-types.ts +229 -0
  384. package/src/work-ledger-validation.ts +174 -0
  385. package/src/work-ledger.ts +186 -0
@@ -0,0 +1,357 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { join } from "node:path";
3
+ import { MAX_CHILDREN_PER_CALL } from "./fanout.js";
4
+ import { openResourceBudget, resourceBindingDigest } from "./resource-budget.js";
5
+ import { isDigestProfile, reserveDigestProfileBatch } from "./effect-profile.js";
6
+ import { readIntentWork, resolveIntent } from "./intent-application.js";
7
+ import { freezeWork } from "./work-ledger-json.js";
8
+ import { byteHash, cloneExperiment, experimentAuthority, experimentCancellation, experimentCancellationDigest, experimentCharter, experimentCharterDigest } from "./experiment-contract.js";
9
+ import { createExperimentStore, experimentBindingDigest, experimentStore, ownedDirectory, readExperimentFile, writeExperimentFile } from "./experiment-store.js";
10
+ import { evaluateOrder, factoryDecision, factoryDecisionDigest } from "./order-schedule.js";
11
+ import { replayExperiment } from "./experiment-state.js";
12
+ export { experimentCharterDigest, experimentCancellationDigest, parseExperimentCharter } from "./experiment-contract.js";
13
+ export { experimentBindingDigest } from "./experiment-store.js";
14
+ function approved(a, b, c) {
15
+ if (!a || a.authorityDigest !== b.authorityDigest || !a.charterDigests.includes(experimentCharterDigest(c)))
16
+ throw new Error("independent exact experiment authority unavailable");
17
+ }
18
+ async function common(c, bytes) {
19
+ if (bytes.length !== c.common.bytes || byteHash(bytes) !== c.common.sha256)
20
+ throw new Error("common input drift");
21
+ if (c.common.work) {
22
+ const text = await readIntentWork(c.common.work);
23
+ if (byteHash(text) !== c.common.workTextDigest)
24
+ throw new Error("common P01 work drift");
25
+ resolveIntent(text, c.common.work.selection, c.common.work.priorities);
26
+ }
27
+ }
28
+ export async function createExperiment(input) {
29
+ if (!(input.bytes instanceof Uint8Array) || input.bytes.length > 16384)
30
+ throw new TypeError("bounded common bytes required");
31
+ const c = experimentCharter(input.charter), budget = openResourceBudget(input.budget).binding, a = experimentAuthority(input.authority), bytes = Buffer.from(input.bytes), directory = input.directory;
32
+ if (budget.version !== "4.0" || resourceBindingDigest(budget) !== c.budgetDigest)
33
+ throw new Error("explicit experiment budget required");
34
+ approved(a, budget, c);
35
+ await common(c, bytes);
36
+ await openResourceBudget(budget).inspect();
37
+ return createExperimentStore(directory, budget, c, bytes);
38
+ }
39
+ const controllers = new WeakSet();
40
+ export const isExperimentController = (value) => typeof value === "object" && value !== null && controllers.has(value);
41
+ /** A separate owned controller, not delegate_all and not a model-facing launch/callback loader. */
42
+ export function openExperiment(input, hostAuthority) {
43
+ const store = experimentStore(input), b = store.binding, c = b.charter, a = experimentAuthority(hostAuthority), owner = randomUUID(), digest = experimentBindingDigest(b);
44
+ const budget = openResourceBudget(b.budget), handles = new Map();
45
+ let live = null, starting = false, wake = null, epoch = 0;
46
+ let fault = false, failureAcknowledged = null;
47
+ const notify = () => { epoch++; wake?.(); wake = null; };
48
+ const artifact = (id) => join(b.directory, "variant-" + byteHash(id), "result.json");
49
+ const load = async () => {
50
+ const data = await store.read(), state = replayExperiment(c, data.events);
51
+ if (state.cancellations.some(r => r.bindingDigest !== digest))
52
+ throw new Error("cancellation binding mismatch");
53
+ return state;
54
+ };
55
+ const append = (event) => store.transaction(async (events, write) => { replayExperiment(c, [...events, cloneExperiment(event)]); await write(event); });
56
+ const unknown = () => ({ version: "experiment-view-v1", experimentId: c.experimentId, mode: c.mode,
57
+ variants: c.variants.map(v => ({ variantId: v.variantId, kind: v.kind, operation: v.operation, executionId: v.executionId, state: "unknown", artifactDigest: null, spawned: false })), budget: null, cancellations: [], control: "unknown", diagnostics: ["controller-or-storage-unknown", ...(fault ? ["controller-failure-observed"] : [])], acceptance: "not-assessed", configuration: { model: null, effort: null, skills: null }, freshness: "snapshot-unknown" });
58
+ const inspect = async (control = false) => {
59
+ const state = await load(), diagnostics = [], accounting = await (control ? budget.controlSnapshot() : budget.inspect());
60
+ if (state.controllerFailed)
61
+ diagnostics.push("controller-failure-record-observed");
62
+ if (fault)
63
+ diagnostics.push("controller-failure-observed");
64
+ if (failureAcknowledged === false)
65
+ diagnostics.push("controller-failure-recording-unacknowledged");
66
+ for (const v of state.variants) {
67
+ if (v.artifactDigest) {
68
+ try {
69
+ await ownedDirectory(join(b.directory, "variant-" + byteHash(v.executionId)));
70
+ if (byteHash(await readExperimentFile(artifact(v.executionId), 16384)) !== v.artifactDigest)
71
+ throw new Error("artifact mismatch");
72
+ }
73
+ catch {
74
+ diagnostics.push("artifact-unavailable:" + v.executionId);
75
+ v.state = "unknown";
76
+ v.artifactDigest = null;
77
+ }
78
+ }
79
+ else if (state.claim && (!handles.has(v.executionId) || state.claim.owner !== owner))
80
+ v.state = "unknown";
81
+ }
82
+ return freezeWork({ version: "experiment-view-v1", experimentId: c.experimentId, mode: c.mode, variants: state.variants, budget: accounting,
83
+ cancellations: state.cancellations.map(request => {
84
+ const v = state.variants.find(v => v.executionId === request.executionId);
85
+ return { request,
86
+ outcome: v.state === "cancelled" ? "observed-cancelled" : v.artifactDigest ? "finished-without-cancel" : "requested-or-unknown" };
87
+ }),
88
+ control: state.controllerFailed || fault ? "failed" : "not-assessed", diagnostics, acceptance: "not-assessed", configuration: { model: null, effort: null, skills: null }, freshness: "snapshot-unknown" });
89
+ };
90
+ const computeOrder = async (control = false) => {
91
+ if (!c.order)
92
+ throw new Error("not an order controller");
93
+ const view = await inspect(control), state = await load(), digests = new Map();
94
+ for (const v of view.variants)
95
+ if (v.artifactDigest) {
96
+ try {
97
+ const bytes = await readExperimentFile(artifact(v.executionId), 16384);
98
+ if (byteHash(bytes) !== v.artifactDigest)
99
+ throw new Error("changed artifact");
100
+ const result = JSON.parse(bytes.toString());
101
+ if (result.attemptId !== v.executionId)
102
+ throw new Error("wrong execution artifact");
103
+ digests.set(v.executionId, typeof result.digest === "string" && result.output?.code === 0 && !result.output.aborted && !result.output.timedOut && !result.output.spawnError ? result.digest : null);
104
+ }
105
+ catch { /* frozen view: use a detached unknown row below */
106
+ digests.set(v.executionId, "unavailable");
107
+ }
108
+ }
109
+ const variants = view.variants.map(v => digests.get(v.executionId) === "unavailable" ? { ...v, state: "unknown" } : v);
110
+ return { view, nodes: evaluateOrder(c.order, variants, digests, state.decisions).map(n => view.control === "not-assessed" ? n : { ...n, action: "stakeholder" }), superseded: state.superseded };
111
+ };
112
+ const orderView = () => computeOrder(false);
113
+ const api = Object.freeze({ binding: b, inspect: () => inspect(false), reconcile: () => inspect(false), orderView,
114
+ async decideOrder(input, authority) {
115
+ const request = factoryDecision(input);
116
+ approved(a, b.budget, c);
117
+ if (!authority || authority.id !== request.authorityId || !authority.digests.includes(factoryDecisionDigest(request)) || request.bindingDigest !== digest)
118
+ throw new Error("independent decision authority required");
119
+ const fresh = await store.transaction(async (events, write) => {
120
+ const state = replayExperiment(c, events), old = state.decisions.find(d => d.requestId === request.requestId);
121
+ if (old) {
122
+ if (factoryDecisionDigest(old) !== factoryDecisionDigest(request))
123
+ throw new Error("conflicting decision ID");
124
+ return false;
125
+ }
126
+ await common(c, await readExperimentFile(join(b.directory, "common.bin"), 16384));
127
+ const row = (await computeOrder(true)).nodes.find(n => n.nodeId === request.nodeId);
128
+ if (!row || row.state !== "decision-required" || row.evidenceDigest !== request.evidenceDigest)
129
+ throw new Error("stale decision or unavailable evidence");
130
+ replayExperiment(c, [...events, { type: "order-decision", request }]);
131
+ await write({ type: "order-decision", request });
132
+ return true;
133
+ });
134
+ if (fresh)
135
+ notify();
136
+ return orderView();
137
+ },
138
+ async readArtifact(executionId) {
139
+ const row = (await load()).variants.find(v => v.executionId === executionId);
140
+ if (!row?.artifactDigest)
141
+ throw new Error("exact byte-backed artifact unavailable");
142
+ await ownedDirectory(join(b.directory, "variant-" + byteHash(executionId)));
143
+ const bytes = await readExperimentFile(artifact(executionId), 16384);
144
+ if (byteHash(bytes) !== row.artifactDigest)
145
+ throw new Error("artifact digest mismatch");
146
+ return Uint8Array.from(bytes);
147
+ },
148
+ async cancel(input, hostAuthority) {
149
+ const request = experimentCancellation(input), cancellationAuthority = hostAuthority === undefined ? a : experimentAuthority(hostAuthority);
150
+ approved(cancellationAuthority, b.budget, c);
151
+ if (request.bindingDigest !== digest || !c.variants.some(v => v.executionId === request.executionId) || !cancellationAuthority.cancellationDigests.includes(experimentCancellationDigest(request)))
152
+ throw new Error("independent exact cancellation authority unavailable");
153
+ const fresh = await store.transaction(async (events, write) => {
154
+ const state = replayExperiment(c, events), old = state.cancellations.find(r => r.requestId === request.requestId);
155
+ if (old) {
156
+ if (experimentCancellationDigest(old) !== experimentCancellationDigest(request))
157
+ throw new Error("conflicting cancellation ID");
158
+ return false;
159
+ }
160
+ replayExperiment(c, [...events, { type: "cancel", request }]);
161
+ await write({ type: "cancel", request });
162
+ return true;
163
+ });
164
+ if (fresh)
165
+ handles.get(request.executionId)?.abort("operator-cancellation"); // Only an original live handle; no PID/idle/pane lookup.
166
+ // Cancellation is a control operation: serialize its readback with controller appends
167
+ // and original budget settlement. Public inspect/reconcile remain unlocked, fallible reads.
168
+ return store.transaction(async () => inspect(true));
169
+ },
170
+ async start(profile) {
171
+ approved(a, b.budget, c);
172
+ if (!isDigestProfile(profile) || profile.bindingDigest !== c.budgetDigest)
173
+ throw new Error("profile budget mismatch");
174
+ if (live)
175
+ return live;
176
+ if (starting)
177
+ throw new Error("controller start pending; inspect, do not retry effects");
178
+ starting = true;
179
+ let reserved = [];
180
+ try {
181
+ const bytes = await readExperimentFile(join(b.directory, "common.bin"), 16384);
182
+ await common(c, bytes);
183
+ const claimed = await store.transaction(async (events, write) => {
184
+ const state = replayExperiment(c, events);
185
+ if (state.superseded)
186
+ throw new Error("order migrated; no old dispatch");
187
+ if (state.claim)
188
+ return false;
189
+ await write({ type: "claim", owner, deadlineAt: Date.now() + c.deadlineMs });
190
+ return true;
191
+ });
192
+ if (!claimed) {
193
+ const view = await inspect();
194
+ return Object.freeze({ primary: Promise.resolve(view.variants[0]), completion: Promise.resolve(view), boundary: Promise.resolve(view), started: [] });
195
+ }
196
+ reserved = await reserveDigestProfileBatch(profile, c.variants.map(v => ({ attempt: { attemptId: v.executionId, orderId: c.orderId, experimentId: c.experimentId, kind: v.kind, parentAttemptId: v.parentExecutionId }, bytes: Buffer.concat([bytes, Buffer.from(v.suffixBase64, "base64")]), operation: v.operation })));
197
+ await append({ type: "admitted" });
198
+ const state = await load(), used = new Set();
199
+ let resolvePrimary;
200
+ const primary = { promise: new Promise(resolve => { resolvePrimary = resolve; }), resolve: (value) => resolvePrimary(value) };
201
+ for (const v of c.variants) {
202
+ const handle = new AbortController();
203
+ handles.set(v.executionId, handle);
204
+ if (state.cancellations.some(r => r.executionId === v.executionId))
205
+ handle.abort("operator-cancellation");
206
+ }
207
+ // Close the read-to-handle-install race without adding a control/observation transport.
208
+ for (const request of (await load()).cancellations)
209
+ handles.get(request.executionId)?.abort("operator-cancellation");
210
+ const abort = (reason = "controller-failure") => { handles.forEach(h => h.abort(reason)); notify(); };
211
+ const timer = setTimeout(() => abort("deadline"), Math.max(1, state.claim.deadlineAt - Date.now()));
212
+ const settled = c.variants.map(() => {
213
+ let resolve;
214
+ return { promise: new Promise(done => { resolve = done; }), done: (success) => resolve(success) };
215
+ });
216
+ const one = async (i) => {
217
+ const v = c.variants[i];
218
+ let success = false, launched = false, primaryResult = null;
219
+ try {
220
+ if (!c.order && v.kind === "retry" && await settled[c.variants.findIndex(p => p.executionId === v.parentExecutionId)].promise)
221
+ handles.get(v.executionId).abort("retry-not-needed");
222
+ await append({ type: "dispatch", executionId: v.executionId });
223
+ used.add(i);
224
+ launched = true;
225
+ const running = reserved[i].run(handles.get(v.executionId).signal);
226
+ // Consume both promises even on bookkeeping failure. No untracked rejection or worker.
227
+ const observed = reserved[i].started.then(async (value) => { if (value === "spawned")
228
+ await append({ type: "spawn", executionId: v.executionId }); });
229
+ const [result, observation] = await Promise.allSettled([running, observed]);
230
+ if (result.status === "rejected" || observation.status === "rejected")
231
+ throw new Error("runtime/accounting/observation unknown");
232
+ const data = Buffer.from(JSON.stringify(result.value) + "\n"), out = result.value.output;
233
+ const cancelled = out.aborted && (Boolean(out.signal) || await reserved[i].started === "settled-without-spawn");
234
+ await ownedDirectory(join(b.directory, "variant-" + byteHash(v.executionId)));
235
+ await writeExperimentFile(artifact(v.executionId), data);
236
+ const state = out.timedOut || cancelled && handles.get(v.executionId)?.signal.reason === "deadline" ? "timed-out" : cancelled ? "cancelled" : result.value.digest ? "completed" : "failed";
237
+ // Original worker/artifact outcome, NOT a successful controller acknowledgement.
238
+ primaryResult = { variantId: v.variantId, kind: v.kind, operation: v.operation, executionId: v.executionId, state, artifactDigest: byteHash(data), spawned: await reserved[i].started === "spawned" };
239
+ await append({ type: "result", executionId: v.executionId, artifactDigest: byteHash(data), state });
240
+ success = Boolean(result.value.digest);
241
+ }
242
+ catch {
243
+ fault = true;
244
+ abort();
245
+ // Failed dispatch acknowledgement still consumes the ORIGINAL unused permit without
246
+ // spawning and resolves started, including when the control journal stays locked.
247
+ if (!launched) {
248
+ used.add(i);
249
+ await reserved[i].run(AbortSignal.abort()).catch(() => { });
250
+ }
251
+ }
252
+ finally {
253
+ settled[i].done(success);
254
+ handles.delete(v.executionId);
255
+ if (i === 0)
256
+ primary.resolve(primaryResult ? freezeWork(primaryResult) : unknown().variants[0]);
257
+ }
258
+ };
259
+ let resolveBoundary;
260
+ const boundary = new Promise(resolve => { resolveBoundary = resolve; });
261
+ const orderRunning = new Set();
262
+ const completion = (async () => {
263
+ try {
264
+ if (c.order) {
265
+ const running = orderRunning;
266
+ while (true) {
267
+ const before = epoch;
268
+ await common(c, await readExperimentFile(join(b.directory, "common.bin"), 16384));
269
+ const status = await store.transaction(async () => computeOrder(true));
270
+ if (fault || Date.now() >= state.claim.deadlineAt) {
271
+ abort("deadline");
272
+ await Promise.all(running);
273
+ break;
274
+ }
275
+ const eligible = status.nodes.filter(n => n.action === "dispatch").map(n => c.variants.findIndex(v => v.executionId === n.executionId)).filter(i => !used.has(i));
276
+ for (const i of eligible.slice(0, MAX_CHILDREN_PER_CALL - running.size)) {
277
+ used.add(i);
278
+ const task = one(i);
279
+ running.add(task);
280
+ void task.then(() => { running.delete(task); notify(); }, () => { running.delete(task); notify(); });
281
+ }
282
+ if (running.size) {
283
+ await Promise.race(running);
284
+ continue;
285
+ }
286
+ if (!status.nodes.some(n => n.state === "decision-required"))
287
+ break;
288
+ resolveBoundary(status.view);
289
+ if (epoch !== before)
290
+ continue;
291
+ await new Promise(resolve => { wake = resolve; });
292
+ }
293
+ }
294
+ else
295
+ for (let i = 0; i < c.variants.length; i += MAX_CHILDREN_PER_CALL) {
296
+ await common(c, await readExperimentFile(join(b.directory, "common.bin"), 16384));
297
+ await Promise.all(c.variants.slice(i, i + MAX_CHILDREN_PER_CALL).map((_, n) => one(i + n)));
298
+ if (fault)
299
+ break;
300
+ }
301
+ }
302
+ catch {
303
+ fault = true;
304
+ abort();
305
+ }
306
+ finally {
307
+ clearTimeout(timer);
308
+ abort();
309
+ await Promise.allSettled(orderRunning);
310
+ for (let i = 0; i < reserved.length; i++)
311
+ if (!used.has(i)) {
312
+ if (c.order) {
313
+ handles.get(c.variants[i].executionId)?.abort("unused-order-reservation");
314
+ await one(i);
315
+ }
316
+ else {
317
+ used.add(i);
318
+ await reserved[i].run(AbortSignal.abort()).catch(() => { fault = true; });
319
+ }
320
+ }
321
+ handles.clear();
322
+ if (fault) {
323
+ try {
324
+ await append({ type: "controller-unknown" });
325
+ failureAcknowledged = true;
326
+ }
327
+ catch {
328
+ failureAcknowledged = false;
329
+ } // No fabricated durable acknowledgement.
330
+ }
331
+ }
332
+ const view = await inspect().catch(unknown);
333
+ primary.resolve(view.variants[0]);
334
+ resolveBoundary(view);
335
+ return view;
336
+ })();
337
+ live = Object.freeze({ primary: primary.promise, completion, boundary: c.order ? boundary : completion, started: Object.freeze(reserved.map(r => r.started)) });
338
+ return live;
339
+ }
340
+ catch (error) {
341
+ fault = true;
342
+ for (const run of reserved)
343
+ await run.run(AbortSignal.abort()).catch(() => { });
344
+ const state = await load().catch(() => null);
345
+ if (state?.claim?.owner === owner)
346
+ await append({ type: "controller-unknown" }).catch(() => { });
347
+ throw error;
348
+ }
349
+ finally {
350
+ starting = false;
351
+ }
352
+ },
353
+ });
354
+ controllers.add(api);
355
+ return api;
356
+ }
357
+ //# sourceMappingURL=experiment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiment.js","sourceRoot":"","sources":["../src/experiment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAqD,MAAM,sBAAsB,CAAC;AACpI,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAA8C,MAAM,qBAAqB,CAAC;AAC7H,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,uBAAuB,EACxE,MAAM,0BAA0B,CAAC;AAClH,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAA0B,MAAM,uBAAuB,CAAC;AACzL,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAwB,MAAM,qBAAqB,CAAC;AAClH,OAAO,EAAE,gBAAgB,EAAsB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,sBAAsB,EAAiF,MAAM,0BAA0B,CAAC;AACxM,OAAO,EAAE,uBAAuB,EAA0B,MAAM,uBAAuB,CAAC;AAMxF,SAAS,QAAQ,CAAC,CAA6B,EAAE,CAA0B,EAAE,CAAoB;IAC/F,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;AACrL,CAAC;AACD,KAAK,UAAU,MAAM,CAAC,CAAoB,EAAE,KAAiB;IAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAClH,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACzF,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAmJ;IACxL,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,UAAU,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;QAAE,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;IAC7H,MAAM,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACvM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAAC,MAAM,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAAC,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3F,OAAO,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,OAAO,EAAU,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAc,EAA8C,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5K,mGAAmG;AACnG,MAAM,UAAU,cAAc,CAAC,KAAwB,EAAE,aAAyC;IAChG,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,mBAAmB,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC1K,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC1F,IAAI,IAAI,GAAyB,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,IAAI,GAAwB,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC;IACrG,IAAI,KAAK,GAAG,KAAK,EAAE,mBAAmB,GAAmB,IAAI,CAAC;IAC9D,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAChH,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,eAAe,CAAC,KAAK,CAA4B,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5L,MAAM,OAAO,GAAG,GAAmB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;QAChH,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,+BAA+B,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC1c,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,EAA2B,EAAE;QACjE,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,EAAE,WAAW,GAAa,EAAE,EAAE,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACnI,IAAI,KAAK,CAAC,gBAAgB;YAAE,WAAW,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACnF,IAAI,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3D,IAAI,mBAAmB,KAAK,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QACnG,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrB,IAAI,CAAC;oBAAC,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAAC,IAAI,QAAQ,CAAC,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc;wBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAAC,CAAC;gBACzN,MAAM,CAAC;oBAAC,WAAW,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;oBAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC;oBAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC;gBAAC,CAAC;YACpH,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;gBAAE,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC;QAC9G,CAAC;QACD,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU;YACzI,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAAG,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAE,CAAC;gBAAC,OAAO,EAAE,OAAO;oBAC9I,OAAO,EAAE,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC;YAAC,CAAC,CAAC;YACvI,OAAO,EAAE,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAmB,CAAC;IAClO,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,EAAE;QAC7C,IAAI,CAAC,CAAC,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,IAAI,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QACnG,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;gBACpD,IAAI,CAAC;oBAAC,MAAM,KAAK,GAAC,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,KAAK,CAAC,CAAC;oBAAC,IAAG,QAAQ,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC,cAAc;wBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;oBAAA,MAAM,MAAM,GAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC7L,IAAG,MAAM,CAAC,SAAS,KAAG,CAAC,CAAC,WAAW;wBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,MAAM,CAAC,MAAM,KAAG,QAAQ,IAAE,MAAM,CAAC,MAAM,EAAE,IAAI,KAAG,CAAC,IAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAA,CAAC,CAAA,MAAM,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC;gBACvQ,CAAC;gBAAC,MAAM,CAAC,CAAC,mDAAmD;oBAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAC,aAAa,CAAC,CAAC;gBAAC,CAAC;YAC3G,CAAC;QACD,MAAM,QAAQ,GAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAG,aAAa,CAAA,CAAC,CAAA,EAAC,GAAG,CAAC,EAAC,KAAK,EAAC,SAAkB,EAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC;QAClH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAC,aAAa,CAAC,CAAC,CAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,MAAM,EAAC,aAAsB,EAAC,CAAC,EAAE,UAAU,EAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACpM,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS;QAC/G,KAAK,CAAC,WAAW,CAAC,KAAsB,EAAE,SAA4D;YACpG,MAAM,OAAO,GAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC;YAC7D,IAAG,CAAC,SAAS,IAAE,SAAS,CAAC,EAAE,KAAG,OAAO,CAAC,WAAW,IAAE,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,IAAE,OAAO,CAAC,aAAa,KAAG,MAAM;gBAAC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC1M,MAAM,KAAK,GAAC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,EAAE;gBACvD,MAAM,KAAK,GAAC,gBAAgB,CAAC,CAAC,EAAC,MAAM,CAAC,EAAC,GAAG,GAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,SAAS,KAAG,OAAO,CAAC,SAAS,CAAC,CAAC;gBACpG,IAAG,GAAG,EAAC,CAAC;oBAAA,IAAG,qBAAqB,CAAC,GAAG,CAAC,KAAG,qBAAqB,CAAC,OAAO,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBAAA,OAAO,KAAK,CAAC;gBAAA,CAAC;gBAChI,MAAM,MAAM,CAAC,CAAC,EAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAC,YAAY,CAAC,EAAC,KAAK,CAAC,CAAC,CAAC;gBAC/E,MAAM,GAAG,GAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC9E,IAAG,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,KAAG,mBAAmB,IAAE,GAAG,CAAC,cAAc,KAAG,OAAO,CAAC,cAAc;oBAAC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAChJ,gBAAgB,CAAC,CAAC,EAAC,CAAC,GAAG,MAAM,EAAC,EAAC,IAAI,EAAC,gBAAgB,EAAC,OAAO,EAAC,CAAC,CAAC,CAAC;gBAAA,MAAM,KAAK,CAAC,EAAC,IAAI,EAAC,gBAAgB,EAAC,OAAO,EAAC,CAAC,CAAC;gBAAA,OAAO,IAAI,CAAC;YAC3H,CAAC,CAAC,CAAC;YAAA,IAAG,KAAK;gBAAC,MAAM,EAAE,CAAC;YAAA,OAAO,SAAS,EAAE,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,YAAY,CAAC,WAAmB;YACpC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;YAC7E,IAAI,CAAC,GAAG,EAAE,cAAc;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACpF,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5E,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;YACrE,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,cAAc;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACxF,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,KAA6B,EAAE,aAA0C;YACpF,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,EAAE,qBAAqB,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAC5I,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,aAAa,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAsB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC7Q,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC5D,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;gBAClH,IAAI,GAAG,EAAE,CAAC;oBAAC,IAAI,4BAA4B,CAAC,GAAG,CAAC,KAAK,4BAA4B,CAAC,OAAO,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBAAC,OAAO,KAAK,CAAC;gBAAC,CAAC;gBAC3J,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBAAC,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;YACvH,CAAC,CAAC,CAAC;YACH,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,yDAAyD;YACtI,sFAAsF;YACtF,4FAA4F;YAC5F,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,OAAsB;YAChC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACtH,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YACtB,IAAI,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAC1G,IAAI,QAAQ,GAAiC,EAAE,CAAC;YAChD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;gBAAC,MAAM,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACvG,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;oBAC9D,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,KAAK,CAAC,UAAU;wBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;oBAAC,IAAI,KAAK,CAAC,KAAK;wBAAE,OAAO,KAAK,CAAC;oBACnJ,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;oBAAC,OAAO,IAAI,CAAC;gBAC5F,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;oBAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtL,CAAC;gBACD,QAAQ,GAAG,MAAM,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1T,MAAM,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;gBACrD,IAAI,cAA+C,CAAC;gBACpD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,OAAO,CAAgB,OAAO,CAAC,EAAE,GAAG,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5J,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAAC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;oBAAC,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CAAC;wBAAE,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAAC,CAAC;gBACpN,wFAAwF;gBACxF,KAAK,MAAM,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,aAAa;oBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACrH,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,oBAAoB,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtG,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrG,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;oBAClC,IAAI,OAAoC,CAAC;oBACzC,OAAO,EAAE,OAAO,EAAE,IAAI,OAAO,CAAU,IAAI,CAAC,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtH,CAAC,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,KAAK,EAAE,CAAS,EAAE,EAAE;oBAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAC,IAAI,OAAO,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,aAAa,GAAyB,IAAI,CAAC;oBAC3G,IAAI,CAAC;wBACH,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO;4BAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;wBACrL,MAAM,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;wBAC/D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACZ,QAAQ,GAAG,IAAI,CAAC;wBAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAE,CAAC,MAAM,CAAC,CAAC;wBACpE,uFAAuF;wBACvF,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE,GAAG,IAAI,KAAK,KAAK,SAAS;4BAAE,MAAM,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpJ,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;wBAC5E,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,WAAW,CAAC,MAAM,KAAK,UAAU;4BAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;wBACjI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;wBACzF,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC;wBAChH,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;wBAAC,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;wBACxI,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,IAAI,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAC3L,iFAAiF;wBACjF,aAAa,GAAG,EAAC,SAAS,EAAC,CAAC,CAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,SAAS,EAAC,CAAC,CAAC,SAAS,EAAC,WAAW,EAAC,CAAC,CAAC,WAAW,EAAC,KAAK,EAAC,cAAc,EAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,EAAC,CAAC;wBACxL,MAAM,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;wBACpG,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACzC,CAAC;oBAAC,MAAM,CAAC;wBACP,KAAK,GAAG,IAAI,CAAC;wBAAC,KAAK,EAAE,CAAC;wBACtB,oFAAoF;wBACpF,kFAAkF;wBAClF,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBAAC,CAAC;oBAC7F,CAAC;4BACO,CAAC;wBACP,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;wBACxD,IAAI,CAAC,KAAK,CAAC;4BAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClG,CAAC;gBACH,CAAC,CAAC;gBACF,IAAI,eAAgD,CAAC;gBACrD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAiB,OAAO,CAAC,EAAE,GAAG,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiB,CAAC;gBAC9C,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE;oBAC7B,IAAI,CAAC;wBACH,IAAG,CAAC,CAAC,KAAK,EAAE,CAAC;4BACX,MAAM,OAAO,GAAC,YAAY,CAAC;4BAC3B,OAAM,IAAI,EAAE,CAAC;gCACX,MAAM,MAAM,GAAC,KAAK,CAAC;gCAAC,MAAM,MAAM,CAAC,CAAC,EAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAC,YAAY,CAAC,EAAC,KAAK,CAAC,CAAC,CAAC;gCACnG,MAAM,MAAM,GAAC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,IAAE,EAAE,CAAA,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gCAClE,IAAG,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,IAAE,KAAK,CAAC,KAAM,CAAC,UAAU,EAAE,CAAC;oCAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oCAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oCAAC,MAAM;gCAAC,CAAC;gCAC1G,MAAM,QAAQ,GAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,KAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,WAAW,KAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCACpJ,KAAI,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAC,qBAAqB,GAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oCACpE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oCAAC,MAAM,IAAI,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oCAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oCAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAE,EAAE,GAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,MAAM,EAAE,CAAC,CAAA,CAAC,EAAC,GAAE,EAAE,GAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,MAAM,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;gCAC/I,CAAC;gCACD,IAAG,OAAO,CAAC,IAAI,EAAC,CAAC;oCAAA,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCAAA,SAAS;gCAAA,CAAC;gCACvD,IAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,KAAK,KAAG,mBAAmB,CAAC;oCAAC,MAAM;gCAC9D,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gCAC7B,IAAG,KAAK,KAAG,MAAM;oCAAC,SAAS;gCAC3B,MAAM,IAAI,OAAO,CAAO,OAAO,CAAA,EAAE,GAAC,IAAI,GAAC,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC;4BACpD,CAAC;wBACH,CAAC;;4BAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,qBAAqB,EAAE,CAAC;gCACzE,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gCAClF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC5F,IAAI,KAAK;oCAAE,MAAM;4BACnB,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBAAC,KAAK,GAAG,IAAI,CAAC;wBAAC,KAAK,EAAE,CAAC;oBAAC,CAAC;4BAC1B,CAAC;wBACP,YAAY,CAAC,KAAK,CAAC,CAAC;wBAAC,KAAK,EAAE,CAAC;wBAAC,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;wBACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;4BAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC3D,IAAG,CAAC,CAAC,KAAK,EAAE,CAAC;oCAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAC;oCAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC;qCACnG,CAAC;oCAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oCAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC;4BAClG,CAAC;wBACD,OAAO,CAAC,KAAK,EAAE,CAAC;wBAChB,IAAI,KAAK,EAAE,CAAC;4BACV,IAAI,CAAC;gCAAC,MAAM,MAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;gCAAC,mBAAmB,GAAG,IAAI,CAAC;4BAAC,CAAC;4BACjF,MAAM,CAAC;gCAAC,mBAAmB,GAAG,KAAK,CAAC;4BAAC,CAAC,CAAC,yCAAyC;wBAClF,CAAC;oBACH,CAAC;oBACD,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAAC,OAAO,IAAI,CAAC;gBACrH,CAAC,CAAC,EAAE,CAAC;gBACL,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;YAC/K,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,KAAK,GAAG,IAAI,CAAC;gBACb,KAAK,MAAM,GAAG,IAAI,QAAQ;oBAAE,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC/E,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBAAC,IAAI,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK;oBAAE,MAAM,MAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC9I,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBAAC,QAAQ,GAAG,KAAK,CAAC;YAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;IACH,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,OAAO,GAAG,CAAC;AACnC,CAAC"}
@@ -0,0 +1,79 @@
1
+ import { type ExperimentCharter } from "./experiment-contract.ts";
2
+ import { type ExperimentBudgetBinding } from "./resource-budget.ts";
3
+ import type { WorkIntentBinding } from "./intent-control.ts";
4
+ import type { WorkFrozen, RevisionRef } from "./work-ledger-types.ts";
5
+ import type { AdoptionAuthority, AdoptionFacts, AdoptionBinding, AdoptionReceipt } from "./vendor/adoption.ts";
6
+ export { factoryDecisionDigest, type FactoryDecision } from "./order-schedule.ts";
7
+ export interface FixedPolicy {
8
+ version: "fixed-policy-v1";
9
+ suffixBase64: string;
10
+ acceptancePolicyDigest: string;
11
+ grants: readonly string[];
12
+ effects: readonly "fixed-digest"[];
13
+ model: null;
14
+ effort: null;
15
+ skills: readonly string[];
16
+ }
17
+ export declare const fixedPolicyDigest: (p: FixedPolicy) => string;
18
+ export declare function fixedPolicy(value: FixedPolicy): FixedPolicy;
19
+ export interface FactoryOrderCharter {
20
+ version: "factory-order-v1";
21
+ orderId: string;
22
+ directory: string;
23
+ budget: ExperimentBudgetBinding;
24
+ work: WorkFrozen<WorkIntentBinding>;
25
+ workTextDigest: string;
26
+ scopeDigest: string;
27
+ commonBase64: string;
28
+ deadlineMs: number;
29
+ pin: {
30
+ revision: number;
31
+ candidateDigest: string;
32
+ };
33
+ nodes: readonly {
34
+ nodeId: string;
35
+ obligation: RevisionRef;
36
+ dependencies: readonly string[];
37
+ attempts: readonly {
38
+ executionId: string;
39
+ suffixBase64: string;
40
+ operation: "digest" | "hold";
41
+ }[];
42
+ expectedDigest: string;
43
+ decision: {
44
+ decisionId: string;
45
+ authorityId: string;
46
+ } | null;
47
+ }[];
48
+ }
49
+ /** Digest of the entire bounded proposal; validation at application is separate. */
50
+ export declare const factoryOrderDigest: (c: FactoryOrderCharter) => string;
51
+ export interface FactoryAuthority {
52
+ id: string;
53
+ orderDigests: readonly string[];
54
+ decisionDigests: readonly string[];
55
+ cancellationDigests?: readonly string[];
56
+ activationDigests: readonly string[];
57
+ migrationDigests: readonly string[];
58
+ adoption: AdoptionAuthority | null;
59
+ facts: readonly {
60
+ bindingId: string;
61
+ facts: AdoptionFacts;
62
+ }[];
63
+ }
64
+ export declare function factoryAuthority(value: FactoryAuthority | null): FactoryAuthority | null;
65
+ export declare function requireFactoryAuthority(a: FactoryAuthority | null, id: string): FactoryAuthority;
66
+ export interface ActivationRequest {
67
+ version: "factory-activation-v1";
68
+ requestId: string;
69
+ expectedRevision: number;
70
+ expectedCandidateDigest: string;
71
+ candidate: FixedPolicy;
72
+ binding: AdoptionBinding;
73
+ receipt: AdoptionReceipt;
74
+ }
75
+ export declare const activationRequestDigest: (r: ActivationRequest) => string;
76
+ export declare function factoryCharter(value: FactoryOrderCharter): FactoryOrderCharter;
77
+ export declare const parseFactoryOrder: (text: string) => FactoryOrderCharter;
78
+ export declare function compileFactoryOrder(value: FactoryOrderCharter, candidate: FixedPolicy): Promise<ExperimentCharter>;
79
+ //# sourceMappingURL=factory-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-contract.d.ts","sourceRoot":"","sources":["../src/factory-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { cloneExperiment, closed, experimentHash, experimentCharter, byteHash } from "./experiment-contract.js";
2
+ import { resourceBindingDigest } from "./resource-budget.js";
3
+ import { workIntentBinding, readIntentWork, resolveIntent } from "./intent-application.js";
4
+ import { parseWorkJson } from "./work-ledger-json.js";
5
+ import { orderSchedule } from "./order-schedule.js";
6
+ export { factoryDecisionDigest } from "./order-schedule.js";
7
+ export const fixedPolicyDigest = (p) => experimentHash(fixedPolicy(p));
8
+ const hex = (x) => typeof x === "string" && /^[a-f0-9]{64}$/.test(x);
9
+ export function fixedPolicy(value) {
10
+ const p = cloneExperiment(value);
11
+ closed(p, ["version", "suffixBase64", "acceptancePolicyDigest", "grants", "effects", "model", "effort", "skills"]);
12
+ if (p.version !== "fixed-policy-v1" || !hex(p.acceptancePolicyDigest) || typeof p.suffixBase64 !== "string" || p.suffixBase64.length > 2048 || Buffer.from(p.suffixBase64, "base64").toString("base64") !== p.suffixBase64 || JSON.stringify(p.grants) !== "[]" || JSON.stringify(p.effects) !== '["fixed-digest"]' || p.model !== null || p.effort !== null || JSON.stringify(p.skills) !== "[]")
13
+ throw new Error("unsupported policy or grant expansion");
14
+ return p;
15
+ }
16
+ /** Digest of the entire bounded proposal; validation at application is separate. */
17
+ export const factoryOrderDigest = (c) => experimentHash(c);
18
+ export function factoryAuthority(value) {
19
+ if (value === null)
20
+ return null;
21
+ const a = cloneExperiment(value);
22
+ closed(a, ["id", "orderDigests", "decisionDigests", "activationDigests", "migrationDigests", "adoption", "facts", ...(Object.hasOwn(a, "cancellationDigests") ? ["cancellationDigests"] : [])]);
23
+ if (typeof a.id !== "string" || !/^[a-zA-Z0-9:_-]{1,128}$/.test(a.id) || [a.orderDigests, a.decisionDigests, a.activationDigests, a.migrationDigests, ...(Object.hasOwn(a, "cancellationDigests") ? [a.cancellationDigests] : [])].some(xs => !Array.isArray(xs) || xs.length > 128 || xs.some(x => !hex(x))) || !Array.isArray(a.facts) || a.facts.length > 128)
24
+ throw new Error("invalid independent factory authority");
25
+ const ids = new Set();
26
+ for (const f of a.facts) {
27
+ closed(f, ["bindingId", "facts"]);
28
+ if (!hex(f.bindingId) || ids.has(f.bindingId))
29
+ throw new Error("ambiguous independent facts");
30
+ ids.add(f.bindingId);
31
+ }
32
+ if (a.adoption !== null) {
33
+ closed(a.adoption, ["id", "adoptions", "rollbacks"]);
34
+ if (a.adoption.id !== a.id)
35
+ throw new Error("independent authority identity mismatch");
36
+ }
37
+ return a;
38
+ }
39
+ export function requireFactoryAuthority(a, id) { if (!a || a.id !== id)
40
+ throw new Error("independent factory authority required"); return a; }
41
+ export const activationRequestDigest = (r) => experimentHash(r);
42
+ export function factoryCharter(value) {
43
+ const c = cloneExperiment(value);
44
+ closed(c, ["version", "orderId", "directory", "budget", "work", "workTextDigest", "scopeDigest", "commonBase64", "deadlineMs", "pin", "nodes"]);
45
+ closed(c.pin, ["revision", "candidateDigest"]);
46
+ if (c.version !== "factory-order-v1" || !/^[a-zA-Z0-9:_-]{1,128}$/.test(c.orderId) || typeof c.directory !== "string" || !hex(c.workTextDigest) || !hex(c.scopeDigest) || !hex(c.pin.candidateDigest) || !Number.isSafeInteger(c.pin.revision) || c.pin.revision < 0 || typeof c.commonBase64 !== "string" || c.commonBase64.length > 22000 || Buffer.from(c.commonBase64, "base64").toString("base64") !== c.commonBase64 || Buffer.byteLength(JSON.stringify(c)) > 48000 || c.budget.version !== "4.0")
47
+ throw new Error("invalid bounded factory charter");
48
+ c.work = workIntentBinding(JSON.parse(JSON.stringify(c.work)));
49
+ if (c.scopeDigest !== experimentHash(c.work.selection.snapshot))
50
+ throw new Error("changed scope");
51
+ if (!Array.isArray(c.nodes) || !c.nodes.length || c.nodes.length > 16)
52
+ throw new Error("bounded nodes required");
53
+ for (const n of c.nodes) {
54
+ closed(n, ["nodeId", "obligation", "dependencies", "attempts", "expectedDigest", "decision"]);
55
+ if (!Array.isArray(n.attempts) || !n.attempts.length || n.attempts.length > 3)
56
+ throw new Error("bounded recovery required");
57
+ for (const a of n.attempts) {
58
+ closed(a, ["executionId", "suffixBase64", "operation"]);
59
+ if (typeof a.suffixBase64 !== "string" || a.suffixBase64.length > 22000 || Buffer.from(a.suffixBase64, "base64").toString("base64") !== a.suffixBase64)
60
+ throw new Error("invalid attempt byte suffix");
61
+ }
62
+ }
63
+ orderSchedule({ version: "order-schedule-v1", policyDigest: c.pin.candidateDigest, nodes: c.nodes.map(n => ({ nodeId: n.nodeId, dependencies: n.dependencies, executions: n.attempts.map(a => a.executionId), expectedDigest: n.expectedDigest, decision: n.decision })) }, c.nodes.flatMap(n => n.attempts.map(a => a.executionId)));
64
+ return c;
65
+ }
66
+ export const parseFactoryOrder = (text) => factoryCharter(parseWorkJson(text));
67
+ export async function compileFactoryOrder(value, candidate) {
68
+ const c = factoryCharter(value), p = fixedPolicy(candidate), text = await readIntentWork(c.work);
69
+ if (byteHash(text) !== c.workTextDigest || fixedPolicyDigest(p) !== c.pin.candidateDigest)
70
+ throw new Error("work or candidate drift");
71
+ const intent = resolveIntent(text, c.work.selection, c.work.priorities), refs = intent.snapshot.bindings.map(b => experimentHash(b.obligation)).sort();
72
+ if (JSON.stringify(refs) !== JSON.stringify(c.nodes.map(n => experimentHash(n.obligation)).sort()))
73
+ throw new Error("order must cover exact selected obligations");
74
+ for (const n of c.nodes) {
75
+ const rev = intent.revisions.find(r => experimentHash({ kind: r.kind, id: r.id, revision: r.revision, digest: r.digest }) === experimentHash(n.obligation));
76
+ if (!rev || !rev.permittedEffects.includes("read"))
77
+ throw new Error("unsupported obligation effects");
78
+ for (const dep of rev.dependencies.filter(d => d.kind === "obligation")) {
79
+ const parent = c.nodes.find(m => experimentHash(m.obligation) === experimentHash(dep));
80
+ if (!parent || !n.dependencies.includes(parent.nodeId))
81
+ throw new Error("required intent dependency omitted");
82
+ }
83
+ }
84
+ const bytes = Buffer.from(c.commonBase64, "base64");
85
+ return experimentCharter({ version: "fixed-experiment-v2", experimentId: c.orderId, orderId: c.orderId, budgetDigest: resourceBindingDigest(c.budget), profile: "linux-bwrap-digest-v1", common: { bytes: bytes.length, sha256: byteHash(bytes), work: c.work, workTextDigest: c.workTextDigest }, mode: "bounded-waves", deadlineMs: c.deadlineMs,
86
+ variants: c.nodes.flatMap(n => n.attempts.map((a, i) => ({ variantId: a.executionId, executionId: a.executionId, kind: i ? "retry" : "primary", parentExecutionId: i ? n.attempts[i - 1].executionId : null, suffixBase64: Buffer.concat([Buffer.from(p.suffixBase64, "base64"), Buffer.from(a.suffixBase64, "base64")]).toString("base64"), operation: a.operation, configuration: { model: null, effort: null, skills: null } }))),
87
+ order: { version: "order-schedule-v1", policyDigest: p.acceptancePolicyDigest, nodes: c.nodes.map(n => ({ nodeId: n.nodeId, dependencies: n.dependencies, executions: n.attempts.map(a => a.executionId), expectedDigest: n.expectedDigest, decision: n.decision })) } });
88
+ }
89
+ //# sourceMappingURL=factory-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-contract.js","sourceRoot":"","sources":["../src/factory-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type FactoryAuthority, type FactoryOrderCharter } from "./factory-contract.ts";
2
+ import { type FactoryRegistryBinding } from "./factory-registry.ts";
3
+ export interface FactoryMigration {
4
+ version: "factory-migration-v1";
5
+ requestId: string;
6
+ sourceOrderId: string;
7
+ successor: FactoryOrderCharter;
8
+ }
9
+ export declare const factoryMigrationDigest: (request: FactoryMigration) => string;
10
+ /** Only unstarted controllers can be superseded. An original claim is a refusal, never an idle/PID guess. */
11
+ export declare function migrateFactoryOrder(inputRegistry: FactoryRegistryBinding, input: FactoryMigration, host: FactoryAuthority | null): Promise<{
12
+ requestId: string;
13
+ grantExpansion: boolean;
14
+ acceptanceTransfer: "none";
15
+ digest: string;
16
+ sourceOrderId: string;
17
+ targetOrderId: string;
18
+ application: string;
19
+ }>;
20
+ //# sourceMappingURL=factory-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-migration.d.ts","sourceRoot":"","sources":["../src/factory-migration.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiF,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvK,OAAO,EAAwC,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE1G,MAAM,WAAW,gBAAgB;IAAE,OAAO,EAAC,sBAAsB,CAAC;IAAA,SAAS,EAAC,MAAM,CAAC;IAAA,aAAa,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,mBAAmB,CAAA;CAAC;AACtI,eAAO,MAAM,sBAAsB,GAAE,SAAQ,gBAAgB,WAA0B,CAAC;AACxF,6GAA6G;AAC7G,wBAAsB,mBAAmB,CAAC,aAAa,EAAC,sBAAsB,EAAC,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,gBAAgB,GAAC,IAAI;;;;;;;;GAmB/H"}