@fundamental-engine/core 0.9.3 → 0.9.5

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 (443) hide show
  1. package/dist/config/forces.config.d.ts +1 -1
  2. package/dist/config/forces.config.d.ts.map +1 -1
  3. package/dist/config/themes.d.ts +1 -1
  4. package/dist/conformance/run.d.ts +1 -1
  5. package/dist/conformance/run.d.ts.map +1 -1
  6. package/dist/conformance/run.js +6 -6
  7. package/dist/conformance/run.js.map +1 -1
  8. package/dist/conformance/types.d.ts +1 -1
  9. package/dist/conformance/types.d.ts.map +1 -1
  10. package/dist/contracts/guards.d.ts +1 -1
  11. package/dist/contracts/guards.d.ts.map +1 -1
  12. package/dist/contracts/passport.d.ts +1 -1
  13. package/dist/contracts/passport.d.ts.map +1 -1
  14. package/dist/diagnostics/energy.d.ts +1 -1
  15. package/dist/diagnostics/energy.d.ts.map +1 -1
  16. package/dist/diagnostics/fields.d.ts +1 -1
  17. package/dist/diagnostics/fields.d.ts.map +1 -1
  18. package/dist/diagnostics/modes.d.ts +1 -1
  19. package/dist/diagnostics/modes.d.ts.map +1 -1
  20. package/dist/diagnostics/modes.js +1 -1
  21. package/dist/diagnostics/modes.js.map +1 -1
  22. package/dist/diagnostics/potential.d.ts +1 -1
  23. package/dist/diagnostics/potential.d.ts.map +1 -1
  24. package/dist/diagnostics/probes.d.ts +1 -1
  25. package/dist/diagnostics/probes.d.ts.map +1 -1
  26. package/dist/diagnostics/probes.js +1 -1
  27. package/dist/diagnostics/probes.js.map +1 -1
  28. package/dist/diagnostics/render.d.ts +1 -1
  29. package/dist/diagnostics/render.d.ts.map +1 -1
  30. package/dist/engine/accretion.d.ts.map +1 -0
  31. package/dist/engine/accretion.js.map +1 -0
  32. package/dist/engine/agents.d.ts.map +1 -0
  33. package/dist/engine/agents.js.map +1 -0
  34. package/dist/engine/attention.d.ts.map +1 -0
  35. package/dist/engine/attention.js.map +1 -0
  36. package/dist/engine/causality.d.ts.map +1 -0
  37. package/dist/engine/causality.js.map +1 -0
  38. package/dist/engine/conditions.d.ts.map +1 -0
  39. package/dist/engine/conditions.js.map +1 -0
  40. package/dist/{core → engine}/currents.d.ts +1 -1
  41. package/dist/engine/currents.d.ts.map +1 -0
  42. package/dist/engine/currents.js.map +1 -0
  43. package/dist/engine/dock.d.ts.map +1 -0
  44. package/dist/engine/dock.js.map +1 -0
  45. package/dist/{core → engine}/events.d.ts +4 -1
  46. package/dist/engine/events.d.ts.map +1 -0
  47. package/dist/{core → engine}/events.js +7 -0
  48. package/dist/engine/events.js.map +1 -0
  49. package/dist/engine/feedback-sink.d.ts.map +1 -0
  50. package/dist/engine/feedback-sink.js.map +1 -0
  51. package/dist/engine/feedback.d.ts.map +1 -0
  52. package/dist/engine/feedback.js.map +1 -0
  53. package/dist/engine/field-snapshot.d.ts.map +1 -0
  54. package/dist/engine/field-snapshot.js.map +1 -0
  55. package/dist/engine/field-store.d.ts.map +1 -0
  56. package/dist/engine/field-store.js.map +1 -0
  57. package/dist/engine/field.d.ts.map +1 -0
  58. package/dist/{core → engine}/field.js +147 -1
  59. package/dist/engine/field.js.map +1 -0
  60. package/dist/engine/fieldline-seeds.d.ts.map +1 -0
  61. package/dist/engine/fieldline-seeds.js.map +1 -0
  62. package/dist/engine/fieldlines.d.ts.map +1 -0
  63. package/dist/{core → engine}/fieldlines.js +1 -1
  64. package/dist/engine/fieldlines.js.map +1 -0
  65. package/dist/engine/flow.d.ts.map +1 -0
  66. package/dist/engine/flow.js.map +1 -0
  67. package/dist/engine/formations.d.ts.map +1 -0
  68. package/dist/engine/formations.js.map +1 -0
  69. package/dist/engine/frame-harness.d.ts.map +1 -0
  70. package/dist/engine/frame-harness.js.map +1 -0
  71. package/dist/engine/governance.d.ts.map +1 -0
  72. package/dist/engine/governance.js.map +1 -0
  73. package/dist/engine/heatmap.d.ts.map +1 -0
  74. package/dist/{core → engine}/heatmap.js +1 -1
  75. package/dist/engine/heatmap.js.map +1 -0
  76. package/dist/engine/host-headless.d.ts.map +1 -0
  77. package/dist/engine/host-headless.js.map +1 -0
  78. package/dist/engine/host.d.ts.map +1 -0
  79. package/dist/engine/host.js.map +1 -0
  80. package/dist/engine/integrator.d.ts.map +1 -0
  81. package/dist/{core → engine}/integrator.js +5 -3
  82. package/dist/engine/integrator.js.map +1 -0
  83. package/dist/engine/lane-registry.d.ts.map +1 -0
  84. package/dist/engine/lane-registry.js.map +1 -0
  85. package/dist/engine/projection-agent-json.d.ts.map +1 -0
  86. package/dist/engine/projection-agent-json.js.map +1 -0
  87. package/dist/engine/query-lens.d.ts.map +1 -0
  88. package/dist/engine/query-lens.js.map +1 -0
  89. package/dist/engine/reactions.d.ts.map +1 -0
  90. package/dist/engine/reactions.js.map +1 -0
  91. package/dist/engine/registry.d.ts.map +1 -0
  92. package/dist/engine/registry.js.map +1 -0
  93. package/dist/engine/render-backend.d.ts.map +1 -0
  94. package/dist/engine/render-backend.js.map +1 -0
  95. package/dist/{core → engine}/render-modes.d.ts +1 -1
  96. package/dist/engine/render-modes.d.ts.map +1 -0
  97. package/dist/engine/render-modes.js.map +1 -0
  98. package/dist/engine/reservoir.d.ts.map +1 -0
  99. package/dist/engine/reservoir.js.map +1 -0
  100. package/dist/engine/scalar-grid.d.ts.map +1 -0
  101. package/dist/engine/scalar-grid.js.map +1 -0
  102. package/dist/engine/scanner.d.ts.map +1 -0
  103. package/dist/engine/scanner.js.map +1 -0
  104. package/dist/engine/shadow.d.ts.map +1 -0
  105. package/dist/engine/shadow.js.map +1 -0
  106. package/dist/engine/spatial-hash.d.ts.map +1 -0
  107. package/dist/engine/spatial-hash.js.map +1 -0
  108. package/dist/engine/streamlines.d.ts.map +1 -0
  109. package/dist/engine/streamlines.js.map +1 -0
  110. package/dist/engine/surface.d.ts.map +1 -0
  111. package/dist/engine/surface.js.map +1 -0
  112. package/dist/engine/temporal.d.ts.map +1 -0
  113. package/dist/engine/temporal.js.map +1 -0
  114. package/dist/engine/thermo.d.ts.map +1 -0
  115. package/dist/engine/thermo.js.map +1 -0
  116. package/dist/{core → engine}/types.d.ts +106 -4
  117. package/dist/engine/types.d.ts.map +1 -0
  118. package/dist/engine/types.js.map +1 -0
  119. package/dist/engine/weights.d.ts.map +1 -0
  120. package/dist/engine/weights.js.map +1 -0
  121. package/dist/forces/extended.d.ts +2 -2
  122. package/dist/forces/extended.d.ts.map +1 -1
  123. package/dist/forces/extended.js +1 -1
  124. package/dist/forces/index.d.ts +2 -2
  125. package/dist/forces/index.d.ts.map +1 -1
  126. package/dist/forces/natural.d.ts +2 -2
  127. package/dist/forces/natural.d.ts.map +1 -1
  128. package/dist/forces/natural.js +1 -1
  129. package/dist/index.d.ts +39 -39
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/index.js +39 -39
  132. package/dist/index.js.map +1 -1
  133. package/dist/inspect/report.js +2 -2
  134. package/dist/inspect/report.js.map +1 -1
  135. package/dist/{core → math}/geometry.d.ts +1 -1
  136. package/dist/math/geometry.d.ts.map +1 -0
  137. package/dist/{core → math}/geometry.js.map +1 -1
  138. package/dist/{core → math}/math.d.ts.map +1 -1
  139. package/dist/{core → math}/math.js.map +1 -1
  140. package/dist/recipes/catalog.d.ts +20 -11
  141. package/dist/recipes/catalog.d.ts.map +1 -1
  142. package/dist/recipes/catalog.js +17 -9
  143. package/dist/recipes/catalog.js.map +1 -1
  144. package/dist/recipes/compile.d.ts +33 -19
  145. package/dist/recipes/compile.d.ts.map +1 -1
  146. package/dist/recipes/compile.js +17 -11
  147. package/dist/recipes/compile.js.map +1 -1
  148. package/dist/recipes/focus.d.ts +18 -0
  149. package/dist/recipes/focus.d.ts.map +1 -0
  150. package/dist/recipes/focus.js +34 -0
  151. package/dist/recipes/focus.js.map +1 -0
  152. package/dist/recipes/index.d.ts +3 -0
  153. package/dist/recipes/index.d.ts.map +1 -1
  154. package/dist/recipes/index.js +6 -3
  155. package/dist/recipes/index.js.map +1 -1
  156. package/dist/recipes/schema.d.ts +36 -21
  157. package/dist/recipes/schema.d.ts.map +1 -1
  158. package/dist/recipes/schema.js +12 -7
  159. package/dist/recipes/schema.js.map +1 -1
  160. package/dist/recipes/wayfinding.d.ts +5 -3
  161. package/dist/recipes/wayfinding.d.ts.map +1 -1
  162. package/dist/recipes/wayfinding.js +6 -2
  163. package/dist/recipes/wayfinding.js.map +1 -1
  164. package/dist/record/record.d.ts +1 -1
  165. package/dist/record/record.d.ts.map +1 -1
  166. package/dist/record/record.js +3 -3
  167. package/dist/record/record.js.map +1 -1
  168. package/dist/version.d.ts +1 -1
  169. package/dist/version.js +1 -1
  170. package/dist/visual/channels.js +1 -1
  171. package/dist/visual/mapping.js +1 -1
  172. package/dist/world/ablation/ablation.d.ts +39 -0
  173. package/dist/world/ablation/ablation.d.ts.map +1 -0
  174. package/dist/world/ablation/ablation.js +449 -0
  175. package/dist/world/ablation/ablation.js.map +1 -0
  176. package/dist/world/adapters/field-runtime.d.ts +56 -0
  177. package/dist/world/adapters/field-runtime.d.ts.map +1 -0
  178. package/dist/world/adapters/field-runtime.js +250 -0
  179. package/dist/world/adapters/field-runtime.js.map +1 -0
  180. package/dist/world/adapters/fsm-runtime.d.ts +18 -0
  181. package/dist/world/adapters/fsm-runtime.d.ts.map +1 -0
  182. package/dist/world/adapters/fsm-runtime.js +153 -0
  183. package/dist/world/adapters/fsm-runtime.js.map +1 -0
  184. package/dist/world/adapters/governor-runtime.d.ts +23 -0
  185. package/dist/world/adapters/governor-runtime.d.ts.map +1 -0
  186. package/dist/world/adapters/governor-runtime.js +185 -0
  187. package/dist/world/adapters/governor-runtime.js.map +1 -0
  188. package/dist/world/adapters/planner-runtime.d.ts +20 -0
  189. package/dist/world/adapters/planner-runtime.d.ts.map +1 -0
  190. package/dist/world/adapters/planner-runtime.js +144 -0
  191. package/dist/world/adapters/planner-runtime.js.map +1 -0
  192. package/dist/world/conformance/corpus.d.ts +89 -0
  193. package/dist/world/conformance/corpus.d.ts.map +1 -0
  194. package/dist/world/conformance/corpus.js +195 -0
  195. package/dist/world/conformance/corpus.js.map +1 -0
  196. package/dist/world/conformance/discoveries.d.ts +50 -0
  197. package/dist/world/conformance/discoveries.d.ts.map +1 -0
  198. package/dist/world/conformance/discoveries.js +71 -0
  199. package/dist/world/conformance/discoveries.js.map +1 -0
  200. package/dist/world/conformance/evidence.d.ts +37 -0
  201. package/dist/world/conformance/evidence.d.ts.map +1 -0
  202. package/dist/world/conformance/evidence.js +53 -0
  203. package/dist/world/conformance/evidence.js.map +1 -0
  204. package/dist/world/conformance/negative-results.d.ts +57 -0
  205. package/dist/world/conformance/negative-results.d.ts.map +1 -0
  206. package/dist/world/conformance/negative-results.js +73 -0
  207. package/dist/world/conformance/negative-results.js.map +1 -0
  208. package/dist/world/conformance/predictions.d.ts +66 -0
  209. package/dist/world/conformance/predictions.d.ts.map +1 -0
  210. package/dist/world/conformance/predictions.js +141 -0
  211. package/dist/world/conformance/predictions.js.map +1 -0
  212. package/dist/world/cross-substrate.d.ts +19 -0
  213. package/dist/world/cross-substrate.d.ts.map +1 -0
  214. package/dist/world/cross-substrate.js +123 -0
  215. package/dist/world/cross-substrate.js.map +1 -0
  216. package/dist/world/dynamics.d.ts +166 -0
  217. package/dist/world/dynamics.d.ts.map +1 -0
  218. package/dist/world/dynamics.js +30 -0
  219. package/dist/world/dynamics.js.map +1 -0
  220. package/dist/world/envelope.d.ts +44 -0
  221. package/dist/world/envelope.d.ts.map +1 -0
  222. package/dist/world/envelope.js +77 -0
  223. package/dist/world/envelope.js.map +1 -0
  224. package/dist/world/episodes/episodes.d.ts +64 -0
  225. package/dist/world/episodes/episodes.d.ts.map +1 -0
  226. package/dist/world/episodes/episodes.js +104 -0
  227. package/dist/world/episodes/episodes.js.map +1 -0
  228. package/dist/world/equivalence.d.ts +70 -0
  229. package/dist/world/equivalence.d.ts.map +1 -0
  230. package/dist/world/equivalence.js +205 -0
  231. package/dist/world/equivalence.js.map +1 -0
  232. package/dist/world/experiments/declarative-dynamics.d.ts +87 -0
  233. package/dist/world/experiments/declarative-dynamics.d.ts.map +1 -0
  234. package/dist/world/experiments/declarative-dynamics.js +153 -0
  235. package/dist/world/experiments/declarative-dynamics.js.map +1 -0
  236. package/dist/world/governor-equivalence.d.ts +51 -0
  237. package/dist/world/governor-equivalence.d.ts.map +1 -0
  238. package/dist/world/governor-equivalence.js +126 -0
  239. package/dist/world/governor-equivalence.js.map +1 -0
  240. package/dist/world/kernel.d.ts +49 -0
  241. package/dist/world/kernel.d.ts.map +1 -0
  242. package/dist/world/kernel.js +64 -0
  243. package/dist/world/kernel.js.map +1 -0
  244. package/dist/world/observatory/capture.d.ts +10 -0
  245. package/dist/world/observatory/capture.d.ts.map +1 -0
  246. package/dist/world/observatory/capture.js +371 -0
  247. package/dist/world/observatory/capture.js.map +1 -0
  248. package/dist/world/observatory/evidence-log.d.ts +131 -0
  249. package/dist/world/observatory/evidence-log.d.ts.map +1 -0
  250. package/dist/world/observatory/evidence-log.js +43 -0
  251. package/dist/world/observatory/evidence-log.js.map +1 -0
  252. package/dist/world/opportunity/opportunity.d.ts +85 -0
  253. package/dist/world/opportunity/opportunity.d.ts.map +1 -0
  254. package/dist/world/opportunity/opportunity.js +67 -0
  255. package/dist/world/opportunity/opportunity.js.map +1 -0
  256. package/dist/world/projection/evidence-profile.d.ts +51 -0
  257. package/dist/world/projection/evidence-profile.d.ts.map +1 -0
  258. package/dist/world/projection/evidence-profile.js +93 -0
  259. package/dist/world/projection/evidence-profile.js.map +1 -0
  260. package/dist/world/projection/projection.d.ts +162 -0
  261. package/dist/world/projection/projection.d.ts.map +1 -0
  262. package/dist/world/projection/projection.js +145 -0
  263. package/dist/world/projection/projection.js.map +1 -0
  264. package/dist/world/properties/properties.d.ts +87 -0
  265. package/dist/world/properties/properties.d.ts.map +1 -0
  266. package/dist/world/properties/properties.js +172 -0
  267. package/dist/world/properties/properties.js.map +1 -0
  268. package/dist/world/substrates/fsm.d.ts +59 -0
  269. package/dist/world/substrates/fsm.d.ts.map +1 -0
  270. package/dist/world/substrates/fsm.js +57 -0
  271. package/dist/world/substrates/fsm.js.map +1 -0
  272. package/dist/world/substrates/governor.d.ts +53 -0
  273. package/dist/world/substrates/governor.d.ts.map +1 -0
  274. package/dist/world/substrates/governor.js +73 -0
  275. package/dist/world/substrates/governor.js.map +1 -0
  276. package/dist/world/substrates/planner.d.ts +82 -0
  277. package/dist/world/substrates/planner.d.ts.map +1 -0
  278. package/dist/world/substrates/planner.js +114 -0
  279. package/dist/world/substrates/planner.js.map +1 -0
  280. package/dist/world/world.d.ts +73 -0
  281. package/dist/world/world.d.ts.map +1 -0
  282. package/dist/world/world.js +2 -0
  283. package/dist/world/world.js.map +1 -0
  284. package/package.json +1 -1
  285. package/dist/core/accretion.d.ts.map +0 -1
  286. package/dist/core/accretion.js.map +0 -1
  287. package/dist/core/agents.d.ts.map +0 -1
  288. package/dist/core/agents.js.map +0 -1
  289. package/dist/core/attention.d.ts.map +0 -1
  290. package/dist/core/attention.js.map +0 -1
  291. package/dist/core/causality.d.ts.map +0 -1
  292. package/dist/core/causality.js.map +0 -1
  293. package/dist/core/conditions.d.ts.map +0 -1
  294. package/dist/core/conditions.js.map +0 -1
  295. package/dist/core/currents.d.ts.map +0 -1
  296. package/dist/core/currents.js.map +0 -1
  297. package/dist/core/dock.d.ts.map +0 -1
  298. package/dist/core/dock.js.map +0 -1
  299. package/dist/core/events.d.ts.map +0 -1
  300. package/dist/core/events.js.map +0 -1
  301. package/dist/core/feedback-sink.d.ts.map +0 -1
  302. package/dist/core/feedback-sink.js.map +0 -1
  303. package/dist/core/feedback.d.ts.map +0 -1
  304. package/dist/core/feedback.js.map +0 -1
  305. package/dist/core/field-snapshot.d.ts.map +0 -1
  306. package/dist/core/field-snapshot.js.map +0 -1
  307. package/dist/core/field-store.d.ts.map +0 -1
  308. package/dist/core/field-store.js.map +0 -1
  309. package/dist/core/field.d.ts.map +0 -1
  310. package/dist/core/field.js.map +0 -1
  311. package/dist/core/fieldline-seeds.d.ts.map +0 -1
  312. package/dist/core/fieldline-seeds.js.map +0 -1
  313. package/dist/core/fieldlines.d.ts.map +0 -1
  314. package/dist/core/fieldlines.js.map +0 -1
  315. package/dist/core/flow.d.ts.map +0 -1
  316. package/dist/core/flow.js.map +0 -1
  317. package/dist/core/formations.d.ts.map +0 -1
  318. package/dist/core/formations.js.map +0 -1
  319. package/dist/core/frame-harness.d.ts.map +0 -1
  320. package/dist/core/frame-harness.js.map +0 -1
  321. package/dist/core/geometry.d.ts.map +0 -1
  322. package/dist/core/governance.d.ts.map +0 -1
  323. package/dist/core/governance.js.map +0 -1
  324. package/dist/core/heatmap.d.ts.map +0 -1
  325. package/dist/core/heatmap.js.map +0 -1
  326. package/dist/core/host-headless.d.ts.map +0 -1
  327. package/dist/core/host-headless.js.map +0 -1
  328. package/dist/core/host.d.ts.map +0 -1
  329. package/dist/core/host.js.map +0 -1
  330. package/dist/core/integrator.d.ts.map +0 -1
  331. package/dist/core/integrator.js.map +0 -1
  332. package/dist/core/lane-registry.d.ts.map +0 -1
  333. package/dist/core/lane-registry.js.map +0 -1
  334. package/dist/core/projection-agent-json.d.ts.map +0 -1
  335. package/dist/core/projection-agent-json.js.map +0 -1
  336. package/dist/core/query-lens.d.ts.map +0 -1
  337. package/dist/core/query-lens.js.map +0 -1
  338. package/dist/core/reactions.d.ts.map +0 -1
  339. package/dist/core/reactions.js.map +0 -1
  340. package/dist/core/registry.d.ts.map +0 -1
  341. package/dist/core/registry.js.map +0 -1
  342. package/dist/core/render-backend.d.ts.map +0 -1
  343. package/dist/core/render-backend.js.map +0 -1
  344. package/dist/core/render-modes.d.ts.map +0 -1
  345. package/dist/core/render-modes.js.map +0 -1
  346. package/dist/core/reservoir.d.ts.map +0 -1
  347. package/dist/core/reservoir.js.map +0 -1
  348. package/dist/core/scalar-grid.d.ts.map +0 -1
  349. package/dist/core/scalar-grid.js.map +0 -1
  350. package/dist/core/scanner.d.ts.map +0 -1
  351. package/dist/core/scanner.js.map +0 -1
  352. package/dist/core/shadow.d.ts.map +0 -1
  353. package/dist/core/shadow.js.map +0 -1
  354. package/dist/core/spatial-hash.d.ts.map +0 -1
  355. package/dist/core/spatial-hash.js.map +0 -1
  356. package/dist/core/streamlines.d.ts.map +0 -1
  357. package/dist/core/streamlines.js.map +0 -1
  358. package/dist/core/surface.d.ts.map +0 -1
  359. package/dist/core/surface.js.map +0 -1
  360. package/dist/core/temporal.d.ts.map +0 -1
  361. package/dist/core/temporal.js.map +0 -1
  362. package/dist/core/thermo.d.ts.map +0 -1
  363. package/dist/core/thermo.js.map +0 -1
  364. package/dist/core/types.d.ts.map +0 -1
  365. package/dist/core/types.js.map +0 -1
  366. package/dist/core/weights.d.ts.map +0 -1
  367. package/dist/core/weights.js.map +0 -1
  368. /package/dist/{core → engine}/accretion.d.ts +0 -0
  369. /package/dist/{core → engine}/accretion.js +0 -0
  370. /package/dist/{core → engine}/agents.d.ts +0 -0
  371. /package/dist/{core → engine}/agents.js +0 -0
  372. /package/dist/{core → engine}/attention.d.ts +0 -0
  373. /package/dist/{core → engine}/attention.js +0 -0
  374. /package/dist/{core → engine}/causality.d.ts +0 -0
  375. /package/dist/{core → engine}/causality.js +0 -0
  376. /package/dist/{core → engine}/conditions.d.ts +0 -0
  377. /package/dist/{core → engine}/conditions.js +0 -0
  378. /package/dist/{core → engine}/currents.js +0 -0
  379. /package/dist/{core → engine}/dock.d.ts +0 -0
  380. /package/dist/{core → engine}/dock.js +0 -0
  381. /package/dist/{core → engine}/feedback-sink.d.ts +0 -0
  382. /package/dist/{core → engine}/feedback-sink.js +0 -0
  383. /package/dist/{core → engine}/feedback.d.ts +0 -0
  384. /package/dist/{core → engine}/feedback.js +0 -0
  385. /package/dist/{core → engine}/field-snapshot.d.ts +0 -0
  386. /package/dist/{core → engine}/field-snapshot.js +0 -0
  387. /package/dist/{core → engine}/field-store.d.ts +0 -0
  388. /package/dist/{core → engine}/field-store.js +0 -0
  389. /package/dist/{core → engine}/field.d.ts +0 -0
  390. /package/dist/{core → engine}/fieldline-seeds.d.ts +0 -0
  391. /package/dist/{core → engine}/fieldline-seeds.js +0 -0
  392. /package/dist/{core → engine}/fieldlines.d.ts +0 -0
  393. /package/dist/{core → engine}/flow.d.ts +0 -0
  394. /package/dist/{core → engine}/flow.js +0 -0
  395. /package/dist/{core → engine}/formations.d.ts +0 -0
  396. /package/dist/{core → engine}/formations.js +0 -0
  397. /package/dist/{core → engine}/frame-harness.d.ts +0 -0
  398. /package/dist/{core → engine}/frame-harness.js +0 -0
  399. /package/dist/{core → engine}/governance.d.ts +0 -0
  400. /package/dist/{core → engine}/governance.js +0 -0
  401. /package/dist/{core → engine}/heatmap.d.ts +0 -0
  402. /package/dist/{core → engine}/host-headless.d.ts +0 -0
  403. /package/dist/{core → engine}/host-headless.js +0 -0
  404. /package/dist/{core → engine}/host.d.ts +0 -0
  405. /package/dist/{core → engine}/host.js +0 -0
  406. /package/dist/{core → engine}/integrator.d.ts +0 -0
  407. /package/dist/{core → engine}/lane-registry.d.ts +0 -0
  408. /package/dist/{core → engine}/lane-registry.js +0 -0
  409. /package/dist/{core → engine}/projection-agent-json.d.ts +0 -0
  410. /package/dist/{core → engine}/projection-agent-json.js +0 -0
  411. /package/dist/{core → engine}/query-lens.d.ts +0 -0
  412. /package/dist/{core → engine}/query-lens.js +0 -0
  413. /package/dist/{core → engine}/reactions.d.ts +0 -0
  414. /package/dist/{core → engine}/reactions.js +0 -0
  415. /package/dist/{core → engine}/registry.d.ts +0 -0
  416. /package/dist/{core → engine}/registry.js +0 -0
  417. /package/dist/{core → engine}/render-backend.d.ts +0 -0
  418. /package/dist/{core → engine}/render-backend.js +0 -0
  419. /package/dist/{core → engine}/render-modes.js +0 -0
  420. /package/dist/{core → engine}/reservoir.d.ts +0 -0
  421. /package/dist/{core → engine}/reservoir.js +0 -0
  422. /package/dist/{core → engine}/scalar-grid.d.ts +0 -0
  423. /package/dist/{core → engine}/scalar-grid.js +0 -0
  424. /package/dist/{core → engine}/scanner.d.ts +0 -0
  425. /package/dist/{core → engine}/scanner.js +0 -0
  426. /package/dist/{core → engine}/shadow.d.ts +0 -0
  427. /package/dist/{core → engine}/shadow.js +0 -0
  428. /package/dist/{core → engine}/spatial-hash.d.ts +0 -0
  429. /package/dist/{core → engine}/spatial-hash.js +0 -0
  430. /package/dist/{core → engine}/streamlines.d.ts +0 -0
  431. /package/dist/{core → engine}/streamlines.js +0 -0
  432. /package/dist/{core → engine}/surface.d.ts +0 -0
  433. /package/dist/{core → engine}/surface.js +0 -0
  434. /package/dist/{core → engine}/temporal.d.ts +0 -0
  435. /package/dist/{core → engine}/temporal.js +0 -0
  436. /package/dist/{core → engine}/thermo.d.ts +0 -0
  437. /package/dist/{core → engine}/thermo.js +0 -0
  438. /package/dist/{core → engine}/types.js +0 -0
  439. /package/dist/{core → engine}/weights.d.ts +0 -0
  440. /package/dist/{core → engine}/weights.js +0 -0
  441. /package/dist/{core → math}/geometry.js +0 -0
  442. /package/dist/{core → math}/math.d.ts +0 -0
  443. /package/dist/{core → math}/math.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/world/envelope.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,uCAAuC;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,6CAA6C;IAC7C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,2FAA2F;IAC3F,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAChD,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAC/C,eAAO,MAAM,2BAA2B,UAAU,CAAC;AACnD,eAAO,MAAM,0BAA0B,UAAU,CAAC;AAElD,uGAAuG;AACvG,eAAO,MAAM,8BAA8B,6IAQjC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,0BAA0B,GAAG,gBAAgB,CAAC;IAC9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,2FAA2F;AAC3F,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;gBACrC,UAAU,EAAE,SAAS,gBAAgB,EAAE;CAUpD;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,SAAS,GAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAM,GACnE,oBAAoB,CAWtB;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,gBAAgB,EAAE,CAapB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAET;AAED,6GAA6G;AAC7G,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAGN"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * F1.0 — World version envelope (M1.5-07, ratified 2026-07-19).
3
+ *
4
+ * Eight independently-addressable version identities travel with every serialized world and trace.
5
+ * A single `version` string is insufficient (the layers evolve independently). Incompatible loads
6
+ * FAIL EXPLICITLY — there is no silent migration in Stage 1 (migration *tooling* is Stage 4 / F4.4;
7
+ * this module fixes version *identity* only).
8
+ *
9
+ * EXPERIMENTAL. Not exported from the package entry (`index.ts`); part of the world-substrate
10
+ * program's F1 kernel experiment. See docs/planning/world-substrate/F1-execution-spec.md.
11
+ */
12
+ import { FIELD_VERSION } from "../version.js";
13
+ export const WORLD_SCHEMA_VERSION = '0.1.0';
14
+ export const KERNEL_SEMANTICS_VERSION = '0.1.0';
15
+ export const CONTRACT_SCHEMA_VERSION = '0.1.0';
16
+ export const PROJECTION_CONTRACT_VERSION = '0.1.0';
17
+ export const CONFORMANCE_VECTOR_VERSION = '0.1.0';
18
+ /** The seven single-identity fields. `migrationChain` is compared as an ordered list, not a scalar. */
19
+ export const WORLD_ENVELOPE_IDENTITY_FIELDS = [
20
+ 'worldInstance',
21
+ 'worldSchema',
22
+ 'kernelSemantics',
23
+ 'contractSchema',
24
+ 'projectionContract',
25
+ 'implementation',
26
+ 'conformanceVector',
27
+ ];
28
+ /** Thrown when a loaded world/trace envelope is not identical to the current runtime's. */
29
+ export class IncompatibleWorldVersion extends Error {
30
+ mismatches;
31
+ constructor(mismatches) {
32
+ const first = mismatches[0];
33
+ super(`Incompatible world version: ${mismatches.length} field(s) differ` +
34
+ (first ? ` (e.g. ${first.field}: expected "${first.expected}", got "${first.actual}")` : '') +
35
+ '. No silent migration — resolve explicitly (migration tooling is Stage 4 / F4.4).');
36
+ this.name = 'IncompatibleWorldVersion';
37
+ this.mismatches = mismatches;
38
+ }
39
+ }
40
+ /** Build an envelope for `worldInstance`, defaulting each layer to its current version. */
41
+ export function createWorldEnvelope(worldInstance, overrides = {}) {
42
+ return {
43
+ worldInstance,
44
+ worldSchema: overrides.worldSchema ?? WORLD_SCHEMA_VERSION,
45
+ kernelSemantics: overrides.kernelSemantics ?? KERNEL_SEMANTICS_VERSION,
46
+ contractSchema: overrides.contractSchema ?? CONTRACT_SCHEMA_VERSION,
47
+ projectionContract: overrides.projectionContract ?? PROJECTION_CONTRACT_VERSION,
48
+ implementation: overrides.implementation ?? `js@${FIELD_VERSION}`,
49
+ conformanceVector: overrides.conformanceVector ?? CONFORMANCE_VECTOR_VERSION,
50
+ migrationChain: overrides.migrationChain ? [...overrides.migrationChain] : [],
51
+ };
52
+ }
53
+ /** Every field on which `loaded` differs from `current`. Empty ⇒ compatible. */
54
+ export function envelopeMismatches(loaded, current) {
55
+ const out = [];
56
+ for (const field of WORLD_ENVELOPE_IDENTITY_FIELDS) {
57
+ if (loaded[field] !== current[field]) {
58
+ out.push({ field, expected: current[field], actual: loaded[field] });
59
+ }
60
+ }
61
+ const a = loaded.migrationChain;
62
+ const b = current.migrationChain;
63
+ if (a.length !== b.length || a.some((v, i) => v !== b[i])) {
64
+ out.push({ field: 'migrationChain', expected: b.join('>'), actual: a.join('>') });
65
+ }
66
+ return out;
67
+ }
68
+ export function isCompatibleEnvelope(loaded, current) {
69
+ return envelopeMismatches(loaded, current).length === 0;
70
+ }
71
+ /** Throw {@link IncompatibleWorldVersion} unless `loaded` is identical to `current`. No silent migration. */
72
+ export function assertCompatibleEnvelope(loaded, current) {
73
+ const mismatches = envelopeMismatches(loaded, current);
74
+ if (mismatches.length > 0)
75
+ throw new IncompatibleWorldVersion(mismatches);
76
+ }
77
+ //# sourceMappingURL=envelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/world/envelope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * F1.7 — parameterized candidate-episode detection. Runs under a declared detection contract
3
+ * ⟨boundary, timescale, coupling predicate, recurrence window, influence threshold⟩ and returns
4
+ * CONDITIONAL findings only: "given these parameters, this trace satisfies the candidate-episode rule."
5
+ * It never asserts the boundary is uniquely correct; alternate defensible parameterizations are reported.
6
+ *
7
+ * Coupling is distinguished from shared cause structurally: a coupling event is a directed perturbation
8
+ * from one participant TO another. A common source C→A and C→B (no A↔B link) is shared cause, not a
9
+ * coupled episode. Preserves the world-participant / episode-participant distinction. Field-free; internal.
10
+ */
11
+ import type { WorldVersionEnvelope } from '../envelope.ts';
12
+ export interface Transition {
13
+ readonly step: number;
14
+ readonly from: string;
15
+ readonly to?: string;
16
+ readonly operation: string;
17
+ readonly influence: number;
18
+ }
19
+ export interface CouplingPredicate {
20
+ readonly kind: 'direct-influence';
21
+ readonly minInfluence: number;
22
+ }
23
+ export interface DetectionBoundary {
24
+ readonly participants: readonly string[];
25
+ readonly start: number;
26
+ readonly end: number;
27
+ }
28
+ export interface DetectionContract {
29
+ readonly boundary: DetectionBoundary;
30
+ readonly timescale: number;
31
+ readonly coupling: CouplingPredicate;
32
+ readonly recurrenceWindow: number;
33
+ readonly minimumInfluence: number;
34
+ }
35
+ export type EpisodeBasis = 'reciprocal' | 'mediated' | 'recurrent';
36
+ export interface CandidateEpisode {
37
+ readonly participants: readonly string[];
38
+ readonly supportingPairs: readonly (readonly [Transition, Transition])[];
39
+ readonly basis: EpisodeBasis;
40
+ readonly span: number;
41
+ }
42
+ export interface AlternateSegmentation {
43
+ readonly participants: readonly string[];
44
+ readonly basis: EpisodeBasis;
45
+ readonly underParameter: string;
46
+ }
47
+ export interface DetectionResult {
48
+ readonly conditional: true;
49
+ readonly episodes: readonly CandidateEpisode[];
50
+ readonly episodeParticipants: readonly string[];
51
+ readonly worldParticipants: readonly string[];
52
+ readonly boundaryUsed: DetectionBoundary;
53
+ readonly couplingBasis: string;
54
+ readonly determinacy: 'determinate' | 'multiple-defensible' | 'none';
55
+ readonly alternateSegmentations: readonly AlternateSegmentation[];
56
+ readonly failureReasons: readonly string[];
57
+ readonly evidence: {
58
+ readonly envelope?: WorldVersionEnvelope;
59
+ readonly qualifyingEdges: number;
60
+ readonly transitionsInBoundary: number;
61
+ };
62
+ }
63
+ export declare function detectEpisodes(trace: readonly Transition[], contract: DetectionContract, worldParticipants: readonly string[], envelope?: WorldVersionEnvelope): DetectionResult;
64
+ //# sourceMappingURL=episodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"episodes.d.ts","sourceRoot":"","sources":["../../../src/world/episodes/episodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;IACzE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,aAAa,GAAG,qBAAqB,GAAG,MAAM,CAAC;IACrE,QAAQ,CAAC,sBAAsB,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAClE,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;QAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3I;AA2ED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,QAAQ,EAAE,iBAAiB,EAC3B,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,eAAe,CAqCjB"}
@@ -0,0 +1,104 @@
1
+ function qualifyingEdges(trace, contract) {
2
+ const threshold = Math.max(contract.minimumInfluence, contract.coupling.minInfluence);
3
+ const inScope = (p) => contract.boundary.participants.includes(p);
4
+ const out = [];
5
+ for (const t of trace) {
6
+ if (t.step < contract.boundary.start || t.step > contract.boundary.end)
7
+ continue;
8
+ if (t.to === undefined)
9
+ continue;
10
+ if (!inScope(t.from) || !inScope(t.to))
11
+ continue;
12
+ if (t.influence < threshold)
13
+ continue;
14
+ out.push({ from: t.from, to: t.to, step: t.step, influence: t.influence });
15
+ }
16
+ return out;
17
+ }
18
+ function setKey(participants) {
19
+ return [...participants].sort().join('|');
20
+ }
21
+ /** Episodes detectable within `window`: reciprocal (A↔B), mediated (A→M→B→A), recurrent (≥2 A→B). */
22
+ function detectWithin(edges, window) {
23
+ const episodes = [];
24
+ const seen = new Set();
25
+ const add = (participants, pairs, basis, span) => {
26
+ const key = setKey(participants);
27
+ if (seen.has(key))
28
+ return;
29
+ seen.add(key);
30
+ episodes.push({ participants: [...participants].sort(), supportingPairs: pairs, basis, span });
31
+ };
32
+ const toTransition = (e) => ({ step: e.step, from: e.from, to: e.to, operation: 'coupling', influence: e.influence });
33
+ // reciprocal: A→B (s1) then B→A (s2>s1), s2-s1 ≤ window
34
+ for (const ab of edges) {
35
+ for (const ba of edges) {
36
+ if (ba.from === ab.to && ba.to === ab.from && ba.step > ab.step && ba.step - ab.step <= window) {
37
+ add([ab.from, ab.to], [[toTransition(ab), toTransition(ba)]], 'reciprocal', ba.step - ab.step);
38
+ }
39
+ }
40
+ }
41
+ // mediated: A→M (s1), M→B (s2>s1), B→A (s3>s2), s3-s1 ≤ window
42
+ for (const am of edges) {
43
+ for (const mb of edges) {
44
+ if (mb.from !== am.to || mb.step <= am.step)
45
+ continue;
46
+ for (const ba of edges) {
47
+ if (ba.from === mb.to && ba.to === am.from && ba.step > mb.step && ba.step - am.step <= window && am.from !== am.to && am.to !== mb.to) {
48
+ add([am.from, am.to, mb.to], [[toTransition(am), toTransition(mb)], [toTransition(mb), toTransition(ba)]], 'mediated', ba.step - am.step);
49
+ }
50
+ }
51
+ }
52
+ }
53
+ // recurrent: ≥2 A→B within window (and not already a reciprocal/mediated episode)
54
+ const byDir = new Map();
55
+ for (const e of edges) {
56
+ const key = `${e.from}->${e.to}`;
57
+ (byDir.get(key) ?? byDir.set(key, []).get(key)).push(e);
58
+ }
59
+ for (const [, list] of byDir) {
60
+ if (list.length < 2)
61
+ continue;
62
+ const sorted = [...list].sort((a, b) => a.step - b.step);
63
+ const span = sorted[sorted.length - 1].step - sorted[0].step;
64
+ if (span <= window) {
65
+ add([sorted[0].from, sorted[0].to], [[toTransition(sorted[0]), toTransition(sorted[1])]], 'recurrent', span);
66
+ }
67
+ }
68
+ return episodes;
69
+ }
70
+ export function detectEpisodes(trace, contract, worldParticipants, envelope) {
71
+ const edges = qualifyingEdges(trace, contract);
72
+ const transitionsInBoundary = trace.filter((t) => t.step >= contract.boundary.start && t.step <= contract.boundary.end && contract.boundary.participants.includes(t.from)).length;
73
+ const episodes = detectWithin(edges, contract.recurrenceWindow);
74
+ // alternate segmentations: episodes that appear only under a materially wider window
75
+ const wide = detectWithin(edges, contract.recurrenceWindow * 10 + 100);
76
+ const declaredKeys = new Set(episodes.map((e) => setKey(e.participants)));
77
+ const alternateSegmentations = wide
78
+ .filter((e) => !declaredKeys.has(setKey(e.participants)))
79
+ .map((e) => ({ participants: e.participants, basis: e.basis, underParameter: `recurrenceWindow≥${e.span}` }));
80
+ const episodeParticipants = [...new Set(episodes.flatMap((e) => e.participants))].sort();
81
+ const failureReasons = [];
82
+ if (episodes.length === 0) {
83
+ if (edges.length === 0)
84
+ failureReasons.push('below-influence-threshold-or-out-of-boundary');
85
+ else if (alternateSegmentations.length > 0)
86
+ failureReasons.push('reciprocity-or-recurrence-only-outside-recurrence-window');
87
+ else
88
+ failureReasons.push('no-reciprocity-or-recurrence-under-boundary');
89
+ }
90
+ const determinacy = alternateSegmentations.length > 0 ? 'multiple-defensible' : episodes.length === 0 ? 'none' : 'determinate';
91
+ return {
92
+ conditional: true,
93
+ episodes,
94
+ episodeParticipants,
95
+ worldParticipants: [...worldParticipants],
96
+ boundaryUsed: contract.boundary,
97
+ couplingBasis: `direct-influence ≥ ${Math.max(contract.minimumInfluence, contract.coupling.minInfluence)}`,
98
+ determinacy,
99
+ alternateSegmentations,
100
+ failureReasons,
101
+ evidence: { envelope, qualifyingEdges: edges.length, transitionsInBoundary },
102
+ };
103
+ }
104
+ //# sourceMappingURL=episodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"episodes.js","sourceRoot":"","sources":["../../../src/world/episodes/episodes.ts"],"names":[],"mappings":"AA0EA,SAAS,eAAe,CAAC,KAA4B,EAAE,QAA2B;IAChF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAW,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG;YAAE,SAAS;QACjF,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS;YAAE,SAAS;QACjC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QACjD,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS;YAAE,SAAS;QACtC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,MAAM,CAAC,YAA+B;IAC7C,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,qGAAqG;AACrG,SAAS,YAAY,CAAC,KAAsB,EAAE,MAAc;IAC1D,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAG,CAAC,YAAsB,EAAE,KAA4C,EAAE,KAAmB,EAAE,IAAY,EAAE,EAAE;QACtH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjG,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,CAAO,EAAc,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAExI,wDAAwD;IACxD,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC/F,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;IACH,CAAC;IACD,+DAA+D;IAC/D,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI;gBAAE,SAAS;YACtD,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvI,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC5I,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,kFAAkF;IAClF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;QAC/D,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAA4B,EAC5B,QAA2B,EAC3B,iBAAoC,EACpC,QAA+B;IAE/B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAElL,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAEhE,qFAAqF;IACrF,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,sBAAsB,GAA4B,IAAI;SACzD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAEhH,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEzF,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,cAAc,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;aACvF,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC;YAAE,cAAc,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;;YACvH,cAAc,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,WAAW,GACf,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;IAE7G,OAAO;QACL,WAAW,EAAE,IAAI;QACjB,QAAQ;QACR,mBAAmB;QACnB,iBAAiB,EAAE,CAAC,GAAG,iBAAiB,CAAC;QACzC,YAAY,EAAE,QAAQ,CAAC,QAAQ;QAC/B,aAAa,EAAE,sBAAsB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;QAC1G,WAAW;QACX,sBAAsB;QACtB,cAAc;QACd,QAAQ,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB,EAAE;KAC7E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,70 @@
1
+ import type { CompiledPattern } from '../recipes/compile.ts';
2
+ import type { FieldConstruction } from './adapters/field-runtime.ts';
3
+ export interface FieldObservableState {
4
+ readonly id: string;
5
+ readonly position?: {
6
+ readonly x: number;
7
+ readonly y: number;
8
+ readonly z?: number;
9
+ };
10
+ readonly metrics: Readonly<Record<string, number>>;
11
+ }
12
+ /** One step of a normalized semantic trace: the observable state of every body after that transition. */
13
+ export interface FieldSemanticStep {
14
+ readonly step: number;
15
+ readonly bodies: readonly FieldObservableState[];
16
+ readonly bodyCount: number;
17
+ readonly failure?: string;
18
+ }
19
+ export type CoverageClass = 'represented' | 'substrate-owned' | 'observable-only' | 'lossy' | 'unavailable';
20
+ export interface CoverageEntry {
21
+ readonly construct: string;
22
+ readonly classification: CoverageClass;
23
+ }
24
+ /** No side map may upgrade a lossy/unavailable item to `represented`. */
25
+ export declare function structuralCoverage(): CoverageEntry[];
26
+ export type SnapshotFidelity = 'complete-restorable' | 'complete-nonrestorable' | 'partial-observable' | 'diagnostic-only';
27
+ /** The field snapshot exposes position + metrics but not velocity/registry/full state, and is not restorable. */
28
+ export declare const FIELD_SNAPSHOT_FIDELITY: SnapshotFidelity;
29
+ export interface EquivalenceConditions {
30
+ readonly rngControlled: boolean;
31
+ readonly timeControlled: boolean;
32
+ readonly deltaControlled: boolean;
33
+ readonly bodyOrderingControlled: boolean;
34
+ readonly environmentControlled: boolean;
35
+ readonly hostGeometryControlled: boolean;
36
+ }
37
+ export declare const CONTROLLED_CONDITIONS: EquivalenceConditions;
38
+ export interface EquivalenceFixture {
39
+ readonly compiled: CompiledPattern;
40
+ readonly construction: FieldConstruction;
41
+ readonly transitions: number;
42
+ /** Declared numeric tolerance for floating-point fields (NOT a hidden test constant). */
43
+ readonly tolerance: number;
44
+ readonly conditions: EquivalenceConditions;
45
+ }
46
+ export declare function fixtureFrom(compiled: CompiledPattern, transitions: number, tolerance: number, construction?: FieldConstruction): EquivalenceFixture;
47
+ /** RAW path — the authority. Constructed directly; NOT via the adapter. */
48
+ export declare function runRawPath(fixture: EquivalenceFixture): FieldSemanticStep[];
49
+ /** ADAPTED path — same construction, routed through DynamicsContract + hostWorld. */
50
+ export declare function runAdaptedPath(fixture: EquivalenceFixture): FieldSemanticStep[];
51
+ export interface Divergence {
52
+ readonly step: number;
53
+ readonly bodyId?: string;
54
+ readonly field: string;
55
+ readonly detail: string;
56
+ }
57
+ export interface EquivalenceResult {
58
+ readonly equivalent: boolean;
59
+ readonly divergences: readonly Divergence[];
60
+ readonly transitionsCompared: number;
61
+ readonly tolerance: number;
62
+ readonly conditions: EquivalenceConditions;
63
+ readonly coverage: readonly CoverageEntry[];
64
+ readonly snapshotFidelity: SnapshotFidelity;
65
+ }
66
+ /** Compare the two traces at EVERY transition. Exact for discrete; declared tolerance for floats. */
67
+ export declare function compareTraces(raw: readonly FieldSemanticStep[], adapted: readonly FieldSemanticStep[], fixture: EquivalenceFixture): EquivalenceResult;
68
+ /** Final-state-only comparison — used ONLY to demonstrate it can false-pass where per-transition catches. */
69
+ export declare function compareFinalOnly(raw: readonly FieldSemanticStep[], adapted: readonly FieldSemanticStep[], fixture: EquivalenceFixture): boolean;
70
+ //# sourceMappingURL=equivalence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equivalence.d.ts","sourceRoot":"","sources":["../../src/world/equivalence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,205 @@
1
+ /**
2
+ * F1.4 — raw-field vs field-substrate equivalence harness (characterization only).
3
+ *
4
+ * The RAW field path is the authority: it is constructed directly (createField + addBody + tick), NOT
5
+ * via the adapter. The adapted path routes the SAME construction through `DynamicsContract` + `hostWorld`.
6
+ * Both are built from one fixture (identical compiled pattern, body identity/ordering, injected RNG,
7
+ * clock/dt via tick, host geometry, placement, and transition count). Equivalence is compared at EVERY
8
+ * transition, not only the final state.
9
+ *
10
+ * A clean pass establishes that the opaque field substrate preserves OBSERVABLE execution under the
11
+ * declared conditions. It does NOT establish that the kernel represents or understands the field's laws.
12
+ *
13
+ * Field-aware (like the adapter); internal; not exported from the package entry.
14
+ */
15
+ import { createField } from "../engine/field.js";
16
+ import { hostWorld } from "./kernel.js";
17
+ import { worldFromCompiledPattern, fieldRuntimeDynamics, DEFAULT_FIELD_CONSTRUCTION, } from "./adapters/field-runtime.js";
18
+ /** No side map may upgrade a lossy/unavailable item to `represented`. */
19
+ export function structuralCoverage() {
20
+ return [
21
+ { construct: 'compiled attributes', classification: 'represented' },
22
+ { construct: 'body identity', classification: 'represented' },
23
+ { construct: 'relations', classification: 'represented' },
24
+ { construct: 'dimensions', classification: 'observable-only' },
25
+ { construct: 'snapshot state', classification: 'observable-only' },
26
+ { construct: 'failure state', classification: 'observable-only' },
27
+ { construct: 'force registry', classification: 'substrate-owned' },
28
+ { construct: 'environment', classification: 'substrate-owned' },
29
+ { construct: 'mutable runtime state', classification: 'substrate-owned' },
30
+ { construct: 'rng', classification: 'substrate-owned' },
31
+ { construct: 'time', classification: 'substrate-owned' },
32
+ { construct: 'host geometry', classification: 'substrate-owned' },
33
+ { construct: 'velocity / accumulated force', classification: 'lossy' },
34
+ { construct: 'lifecycle callbacks', classification: 'unavailable' },
35
+ ];
36
+ }
37
+ /** The field snapshot exposes position + metrics but not velocity/registry/full state, and is not restorable. */
38
+ export const FIELD_SNAPSHOT_FIDELITY = 'partial-observable';
39
+ export const CONTROLLED_CONDITIONS = {
40
+ rngControlled: true,
41
+ timeControlled: true,
42
+ deltaControlled: true,
43
+ bodyOrderingControlled: true,
44
+ environmentControlled: true,
45
+ hostGeometryControlled: true,
46
+ };
47
+ export function fixtureFrom(compiled, transitions, tolerance, construction = DEFAULT_FIELD_CONSTRUCTION) {
48
+ return { compiled, construction, transitions, tolerance, conditions: CONTROLLED_CONDITIONS };
49
+ }
50
+ // ── independent headless host (raw path must not use adapter internals) ───────
51
+ function headlessHost(width, height) {
52
+ let frame = null;
53
+ let t = 0;
54
+ const root = { querySelectorAll: () => [], querySelector: () => null, contains: () => false };
55
+ const host = {
56
+ root,
57
+ viewport: () => ({ width, height, dpr: 1 }),
58
+ scrollY: () => 0,
59
+ scrollHeight: () => height,
60
+ reducedMotion: () => false,
61
+ hidden: () => false,
62
+ raf: (cb) => {
63
+ frame = cb;
64
+ return 1;
65
+ },
66
+ cancelRaf: () => {
67
+ frame = null;
68
+ },
69
+ createCanvas: () => {
70
+ throw new Error('headless: no canvas');
71
+ },
72
+ onResize: () => () => { },
73
+ onScroll: () => () => { },
74
+ onVisibility: () => () => { },
75
+ onInput: () => () => { },
76
+ onBodyEvent: () => () => { },
77
+ };
78
+ return {
79
+ host,
80
+ tick: () => {
81
+ t += 1000 / 60;
82
+ const cb = frame;
83
+ frame = null;
84
+ cb?.(t);
85
+ },
86
+ };
87
+ }
88
+ function snapshotToStep(snap, step) {
89
+ const bodies = snap.bodies.map((b) => ({
90
+ id: b.id,
91
+ ...(b.position ? { position: { x: b.position.x, y: b.position.y, z: b.position.z } } : {}),
92
+ metrics: { ...b.metrics },
93
+ }));
94
+ return { step, bodies, bodyCount: bodies.length };
95
+ }
96
+ function readingToStep(reading, step) {
97
+ return { step, bodies: reading.entities.map((e) => ({ id: e.id, ...(e.position ? { position: e.position } : {}), metrics: e.metrics ?? {} })), bodyCount: reading.entities.length };
98
+ }
99
+ // ── the two paths ────────────────────────────────────────────────────────────
100
+ /** RAW path — the authority. Constructed directly; NOT via the adapter. */
101
+ export function runRawPath(fixture) {
102
+ const { world } = worldFromCompiledPattern(fixture.compiled);
103
+ const c = fixture.construction;
104
+ const { host, tick } = headlessHost(c.hostWidth, c.hostHeight);
105
+ const field = createField(undefined, { host, render: 'none', rng: c.makeRng(), now: c.makeNow() });
106
+ world.entities.forEach((e, i) => {
107
+ const rect = c.placement(i);
108
+ const p = e.params;
109
+ field.addBody({
110
+ identity: { id: e.identity.id },
111
+ tokens: [...e.tokens],
112
+ ...(typeof p.strength === 'number' ? { strength: p.strength } : {}),
113
+ ...(typeof p.range === 'number' ? { range: p.range } : {}),
114
+ rect: () => rect,
115
+ });
116
+ });
117
+ const trace = [snapshotToStep(field.snapshot(), 0)];
118
+ for (let s = 1; s <= fixture.transitions; s++) {
119
+ tick();
120
+ trace.push(snapshotToStep(field.snapshot(), s));
121
+ }
122
+ field.destroy();
123
+ return trace;
124
+ }
125
+ /** ADAPTED path — same construction, routed through DynamicsContract + hostWorld. */
126
+ export function runAdaptedPath(fixture) {
127
+ const { world } = worldFromCompiledPattern(fixture.compiled);
128
+ const dynamics = fieldRuntimeDynamics(world, fixture.construction);
129
+ const host = hostWorld(world, dynamics);
130
+ const trace = [];
131
+ const s0 = host.readState();
132
+ if (s0.ok)
133
+ trace.push(readingToStep(s0.value.reading, 0));
134
+ for (let s = 1; s <= fixture.transitions; s++) {
135
+ host.advance({ steps: 1 });
136
+ const rs = host.readState();
137
+ if (rs.ok)
138
+ trace.push(readingToStep(rs.value.reading, s));
139
+ }
140
+ host.dispose();
141
+ return trace;
142
+ }
143
+ /** Compare the two traces at EVERY transition. Exact for discrete; declared tolerance for floats. */
144
+ export function compareTraces(raw, adapted, fixture) {
145
+ const divergences = [];
146
+ const tol = fixture.tolerance;
147
+ if (raw.length !== adapted.length) {
148
+ divergences.push({ step: -1, field: 'step-count', detail: `raw ${raw.length} vs adapted ${adapted.length}` });
149
+ }
150
+ const n = Math.min(raw.length, adapted.length);
151
+ for (let i = 0; i < n; i++) {
152
+ const r = raw[i];
153
+ const a = adapted[i];
154
+ if (r.bodyCount !== a.bodyCount) {
155
+ divergences.push({ step: i, field: 'body-count', detail: `${r.bodyCount} vs ${a.bodyCount}` });
156
+ }
157
+ if (r.failure !== a.failure) {
158
+ divergences.push({ step: i, field: 'failure', detail: `${r.failure ?? 'none'} vs ${a.failure ?? 'none'}` });
159
+ }
160
+ const m = Math.min(r.bodies.length, a.bodies.length);
161
+ for (let j = 0; j < m; j++) {
162
+ const rb = r.bodies[j];
163
+ const ab = a.bodies[j];
164
+ if (rb.id !== ab.id) {
165
+ divergences.push({ step: i, bodyId: rb.id, field: 'body-identity/ordering', detail: `${rb.id} vs ${ab.id}` });
166
+ continue;
167
+ }
168
+ if (rb.position && ab.position) {
169
+ if (Math.abs(rb.position.x - ab.position.x) > tol)
170
+ divergences.push({ step: i, bodyId: rb.id, field: 'position.x', detail: `${rb.position.x} vs ${ab.position.x}` });
171
+ if (Math.abs(rb.position.y - ab.position.y) > tol)
172
+ divergences.push({ step: i, bodyId: rb.id, field: 'position.y', detail: `${rb.position.y} vs ${ab.position.y}` });
173
+ }
174
+ else if (Boolean(rb.position) !== Boolean(ab.position)) {
175
+ divergences.push({ step: i, bodyId: rb.id, field: 'position-presence', detail: 'one has position, the other does not' });
176
+ }
177
+ for (const key of Object.keys(rb.metrics)) {
178
+ const rv = rb.metrics[key];
179
+ const av = ab.metrics[key];
180
+ if (av === undefined)
181
+ divergences.push({ step: i, bodyId: rb.id, field: `metric.${key}`, detail: 'missing in adapted' });
182
+ else if (Math.abs(rv - av) > tol)
183
+ divergences.push({ step: i, bodyId: rb.id, field: `metric.${key}`, detail: `${rv} vs ${av}` });
184
+ }
185
+ }
186
+ }
187
+ return {
188
+ equivalent: divergences.length === 0,
189
+ divergences,
190
+ transitionsCompared: n,
191
+ tolerance: tol,
192
+ conditions: fixture.conditions,
193
+ coverage: structuralCoverage(),
194
+ snapshotFidelity: FIELD_SNAPSHOT_FIDELITY,
195
+ };
196
+ }
197
+ /** Final-state-only comparison — used ONLY to demonstrate it can false-pass where per-transition catches. */
198
+ export function compareFinalOnly(raw, adapted, fixture) {
199
+ const r = raw[raw.length - 1];
200
+ const a = adapted[adapted.length - 1];
201
+ if (!r || !a)
202
+ return false;
203
+ return compareTraces([r], [a], fixture).equivalent;
204
+ }
205
+ //# sourceMappingURL=equivalence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equivalence.js","sourceRoot":"","sources":["../../src/world/equivalence.ts"],"names":[],"mappings":"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"}