@fundamental-engine/core 0.9.1 → 0.9.2

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 (48) hide show
  1. package/dist/contracts/passport.d.ts +6 -0
  2. package/dist/contracts/passport.d.ts.map +1 -1
  3. package/dist/contracts/passport.js +3 -3
  4. package/dist/contracts/passport.js.map +1 -1
  5. package/dist/core/field-snapshot.d.ts +21 -0
  6. package/dist/core/field-snapshot.d.ts.map +1 -0
  7. package/dist/core/field-snapshot.js +0 -0
  8. package/dist/core/field-snapshot.js.map +1 -0
  9. package/dist/core/field.d.ts.map +1 -1
  10. package/dist/core/field.js +334 -1
  11. package/dist/core/field.js.map +1 -1
  12. package/dist/core/governance.d.ts +20 -0
  13. package/dist/core/governance.d.ts.map +1 -0
  14. package/dist/core/governance.js +77 -0
  15. package/dist/core/governance.js.map +1 -0
  16. package/dist/core/integrator.d.ts +20 -1
  17. package/dist/core/integrator.d.ts.map +1 -1
  18. package/dist/core/integrator.js +115 -16
  19. package/dist/core/integrator.js.map +1 -1
  20. package/dist/core/lane-registry.d.ts +14 -0
  21. package/dist/core/lane-registry.d.ts.map +1 -0
  22. package/dist/core/lane-registry.js +64 -0
  23. package/dist/core/lane-registry.js.map +1 -0
  24. package/dist/core/projection-agent-json.d.ts +12 -0
  25. package/dist/core/projection-agent-json.d.ts.map +1 -0
  26. package/dist/core/projection-agent-json.js +37 -0
  27. package/dist/core/projection-agent-json.js.map +1 -0
  28. package/dist/core/query-lens.d.ts +6 -0
  29. package/dist/core/query-lens.d.ts.map +1 -0
  30. package/dist/core/query-lens.js +24 -0
  31. package/dist/core/query-lens.js.map +1 -0
  32. package/dist/core/scanner.d.ts +1 -1
  33. package/dist/core/scanner.d.ts.map +1 -1
  34. package/dist/core/scanner.js +5 -0
  35. package/dist/core/scanner.js.map +1 -1
  36. package/dist/core/types.d.ts +459 -0
  37. package/dist/core/types.d.ts.map +1 -1
  38. package/dist/diagnostics/probes.d.ts +11 -1
  39. package/dist/diagnostics/probes.d.ts.map +1 -1
  40. package/dist/diagnostics/probes.js +48 -8
  41. package/dist/diagnostics/probes.js.map +1 -1
  42. package/dist/index.d.ts +5 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +5 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/version.d.ts +1 -1
  47. package/dist/version.js +1 -1
  48. package/package.json +2 -2
@@ -61,6 +61,12 @@ export interface ForcePassport {
61
61
  bestRenderModes: readonly RenderMode[];
62
62
  /** preset composites this force commonly appears in (testing §2 "Common composites"). */
63
63
  commonComposites: readonly string[];
64
+ /** the dimensions this force COUPLES — cross-links so a change in one drives a change in another
65
+ * (the coupling passport, substrate doc 04 / dimensional-coupling). A speed-conserving force redirects
66
+ * velocity, coupling the `linear`-velocity components (direction); a torque-style force couples
67
+ * `linear`→`angular`. Required for any force the `field/no-dimension-coupling-without-passport` lint
68
+ * flags as a coupler (today: every `conservesSpeed` force). Omitted ⇒ the force couples nothing. */
69
+ couplesDimensions?: readonly string[];
64
70
  designUse: string;
65
71
  physicsNote: string;
66
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"passport.d.ts","sourceRoot":"","sources":["../../src/contracts/passport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG5E;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,UAAU,CAAC;AAEf,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAO3D,CAAC;AAEF,wGAAwG;AACxG,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,aAAa,GACb,WAAW,GACX,SAAS,GACT,aAAa,GACb,SAAS,CAAC;AAEd,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,iHAAiH;IACjH,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,6FAA6F;IAC7F,cAAc,EAAE,OAAO,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,sBAAsB,EAAE,OAAO,CAAC;IAChC,0EAA0E;IAC1E,wBAAwB,EAAE,OAAO,CAAC;IAClC,uFAAuF;IACvF,eAAe,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,yFAAyF;IACzF,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AA8FD,4EAA4E;AAC5E,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAE5D,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,GAAG,SAAS,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAGvD;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EACxC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,eAAe,EAAE,CA8BnB"}
1
+ {"version":3,"file":"passport.d.ts","sourceRoot":"","sources":["../../src/contracts/passport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG5E;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,UAAU,CAAC;AAEf,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAO3D,CAAC;AAEF,wGAAwG;AACxG,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,aAAa,GACb,WAAW,GACX,SAAS,GACT,aAAa,GACb,SAAS,CAAC;AAEd,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,iHAAiH;IACjH,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,6FAA6F;IAC7F,cAAc,EAAE,OAAO,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,sBAAsB,EAAE,OAAO,CAAC;IAChC,0EAA0E;IAC1E,wBAAwB,EAAE,OAAO,CAAC;IAClC,uFAAuF;IACvF,eAAe,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,yFAAyF;IACzF,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;yGAIqG;IACrG,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AA8FD,4EAA4E;AAC5E,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAE5D,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,GAAG,SAAS,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAGvD;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EACxC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,eAAe,EAAE,CA8BnB"}
@@ -51,12 +51,12 @@ const ROWS = [
51
51
  { token: 'viscosity', label: 'Viscosity', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: true, affectsNeutralMatter: true, designUse: 'damp motion / calm a region', physicsNote: 'linear drag −γv (removes kinetic energy)' },
52
52
  { token: 'jet', label: 'Jet', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'launch matter at a heading', physicsNote: 'velocity-replacing relaunch (kinematic)' },
53
53
  { token: 'tether', label: 'Tether', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'bind matter to an anchor', physicsNote: 'spring toward a rest length' },
54
- { token: 'wall', label: 'Wall', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, requiresCharge: false, requiresVelocity: true, affectsNeutralMatter: true, designUse: 'bounce matter off a boundary', physicsNote: 'velocity-replacing elastic reflection (kinematic, speed preserved)' },
54
+ { token: 'wall', label: 'Wall', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, couplesDimensions: ['linear'], requiresCharge: false, requiresVelocity: true, affectsNeutralMatter: true, designUse: 'bounce matter off a boundary', physicsNote: 'velocity-replacing elastic reflection (kinematic, speed preserved)' },
55
55
  { token: 'sink', label: 'Sink', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'capture matter (accretion well)', physicsNote: 'pull + capture within data-absorb radius, budgeted by data-max' },
56
56
  // ── natural primitives (§20.10): real field laws ─────────────────────────────────────────
57
57
  { token: 'gravity', label: 'Gravity', family: N, klass: 'A', truthMode: 'physical', ownsField: true, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'universal attraction toward mass', physicsNote: 'softened inverse-square GM/(d² + ε²), always attractive' },
58
58
  { token: 'charge', label: 'Charge', family: N, klass: 'A', truthMode: 'physical', ownsField: true, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: true, requiresVelocity: false, affectsNeutralMatter: false, designUse: 'attract/repel charged matter', physicsNote: 'F = σ·q·GM/(d² + ε²); like repels, opposite attracts; monopole E field()' },
59
- { token: 'magnetism', label: 'Magnetism', family: N, klass: 'A', truthMode: 'physical', ownsField: true, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, requiresCharge: true, requiresVelocity: true, affectsNeutralMatter: false, designUse: 'curve moving charges (cyclotron)', physicsNote: 'Lorentz F = q(v × B); perpendicular, does no work; dipole B field()' },
59
+ { token: 'magnetism', label: 'Magnetism', family: N, klass: 'A', truthMode: 'physical', ownsField: true, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, couplesDimensions: ['linear'], requiresCharge: true, requiresVelocity: true, affectsNeutralMatter: false, designUse: 'curve moving charges (cyclotron)', physicsNote: 'Lorentz F = q(v × B); perpendicular, does no work; dipole B field()' },
60
60
  { token: 'thermal', label: 'Thermal', family: N, klass: 'A', truthMode: 'physical', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'agitate matter at a temperature', physicsNote: 'Langevin/Brownian kicks, σ = √(2T)' },
61
61
  { token: 'collide', label: 'Collide', family: N, klass: 'B', truthMode: 'physical', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: true, affectsNeutralMatter: true, designUse: 'hard-sphere / granular collision', physicsNote: 'elastic pairwise impulse, momentum-conserving (energy too at e = 1)' },
62
62
  { token: 'diffuse', label: 'Diffuse', family: N, klass: 'C', truthMode: 'physical', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'spread a quantity over the medium', physicsNote: 'scalar diffusion over env.grid' },
@@ -81,7 +81,7 @@ const ROWS = [
81
81
  { token: 'spotlight', label: 'Spotlight', family: E, klass: 'modifier', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: false, doesWork: false, conservesSpeed: true, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: false, designUse: 'gate sibling forces by region/condition', physicsNote: 'no-op apply; modify() gates siblings' },
82
82
  { token: 'screen', label: 'Screen', family: E, klass: 'modifier', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: false, doesWork: false, conservesSpeed: true, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: false, designUse: 'quiet zones / shield text from noisy fields', physicsNote: "no-op apply; the integrator damps OTHER bodies' forces by clamp(1 − S·(1 − d/r)², min, 1) on matter inside data-range (cross-body, unlike spotlight/resonate which modify their own siblings)" },
83
83
  { token: 'pigment', label: 'Pigment', family: E, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: false, doesWork: false, conservesSpeed: true, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'transport color through matter', physicsNote: 'tints particle color; does not change motion' },
84
- { token: 'warp', label: 'Warp', family: E, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'relocate matter to a paired throat (a wormhole)', physicsNote: 'velocity-replacing teleport (kinematic): repositions to the data-pair body and rotates velocity by data-twist; speed preserved, count conserved' },
84
+ { token: 'warp', label: 'Warp', family: E, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, couplesDimensions: ['linear'], requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'relocate matter to a paired throat (a wormhole)', physicsNote: 'velocity-replacing teleport (kinematic): repositions to the data-pair body and rotates velocity by data-twist; speed preserved, count conserved' },
85
85
  ];
86
86
  /** The passport registry — `token → passport`, derived fields filled in. */
87
87
  export const PASSPORTS = Object.freeze(Object.fromEntries(ROWS.map((r) => [r.token, finish(r)])));
@@ -1 +1 @@
1
- {"version":3,"file":"passport.js","sourceRoot":"","sources":["../../src/contracts/passport.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAgB5D,0EAA0E;AAC1E,MAAM,CAAC,MAAM,WAAW,GAAwC;IAC9D,QAAQ,EAAE,mCAAmC;IAC7C,QAAQ,EAAE,iCAAiC;IAC3C,MAAM,EAAE,4DAA4D;IACpE,UAAU,EAAE,qDAAqD;IACjE,MAAM,EAAE,0DAA0D;IAClE,QAAQ,EAAE,0CAA0C;CACrD,CAAC;AAgEF,qGAAqG;AACrG,MAAM,KAAK,GAA+E;IACxF,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;IACvF,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE;IAChE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;IAC/E,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE;IACvE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;IAC/D,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;IAC/E,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;IAC3F,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE;IACnE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;IAChF,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;IAC1E,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;IACzG,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE;IACxD,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IAC3C,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;CAC5C,CAAC;AAEF,+FAA+F;AAC/F,iEAAiE;AACjE,SAAS,MAAM,CAAC,CAAM;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO;QACL,GAAG,CAAC;QACJ,QAAQ,EAAE,CAAC,CAAC,KAAK,KAAK,GAAG;QACzB,UAAU,EAAE,CAAC,CAAC,KAAK,KAAK,UAAU;QAClC,sBAAsB,EAAE,CAAC,CAAC,SAAS;QACnC,wBAAwB,EAAE,CAAC,CAAC,cAAc;QAC1C,eAAe,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpF,gBAAgB,EAAE,KAAK,EAAE,UAAU,IAAI,EAAE;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,GAAG,WAAoB,CAAC;AAC/B,MAAM,CAAC,GAAG,SAAkB,CAAC;AAC7B,MAAM,CAAC,GAAG,UAAmB,CAAC;AAE9B,MAAM,IAAI,GAAU;IAClB,4FAA4F;IAC5F,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,iCAAiC,EAAE,WAAW,EAAE,qDAAqD,EAAE;IACrX,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,kCAAkC,EAAE,WAAW,EAAE,8BAA8B,EAAE;IAC3V,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,+BAA+B,EAAE,WAAW,EAAE,uDAAuD,EAAE;IACjX,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,6BAA6B,EAAE,WAAW,EAAE,mCAAmC,EAAE;IAC7V,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,6BAA6B,EAAE,WAAW,EAAE,0CAA0C,EAAE;IACzW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,4BAA4B,EAAE,WAAW,EAAE,yCAAyC,EAAE;IAC5V,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,0BAA0B,EAAE,WAAW,EAAE,6BAA6B,EAAE;IACpV,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,8BAA8B,EAAE,WAAW,EAAE,oEAAoE,EAAE;IAC1X,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,iCAAiC,EAAE,WAAW,EAAE,gEAAgE,EAAE;IAE1X,4FAA4F;IAC5F,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,kCAAkC,EAAE,WAAW,EAAE,yDAAyD,EAAE;IACzX,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,8BAA8B,EAAE,WAAW,EAAE,0EAA0E,EAAE;IACpY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,kCAAkC,EAAE,WAAW,EAAE,qEAAqE,EAAE;IACxY,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,iCAAiC,EAAE,WAAW,EAAE,oCAAoC,EAAE;IACpW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,kCAAkC,EAAE,WAAW,EAAE,qEAAqE,EAAE;IACrY,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,mCAAmC,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAClW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,qCAAqC,EAAE,WAAW,EAAE,gCAAgC,EAAE;IACxW,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,+BAA+B,EAAE,WAAW,EAAE,qOAAqO,EAAE;IAEjiB,4FAA4F;IAC5F,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,0DAA0D,EAAE,WAAW,EAAE,uHAAuH,EAAE;IACjd,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,kCAAkC,EAAE,WAAW,EAAE,2CAA2C,EAAE;IACrW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,uCAAuC,EAAE,WAAW,EAAE,qCAAqC,EAAE;IACpW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,qCAAqC,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACjW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,qCAAqC,EAAE,WAAW,EAAE,sCAAsC,EAAE;IACtW,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,4BAA4B,EAAE,WAAW,EAAE,kCAAkC,EAAE;IACrW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,oCAAoC,EAAE,WAAW,EAAE,gDAAgD,EAAE;IAC9W,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,+BAA+B,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAClV,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,mCAAmC,EAAE,WAAW,EAAE,wDAAwD,EAAE;IAC5X,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,oCAAoC,EAAE,WAAW,EAAE,6CAA6C,EAAE;IAClX,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,kCAAkC,EAAE,WAAW,EAAE,6CAA6C,EAAE;IACxW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,qCAAqC,EAAE,WAAW,EAAE,4FAA4F,EAAE;IAC7Z,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,kCAAkC,EAAE,WAAW,EAAE,kDAAkD,EAAE;IAC7W,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,sDAAsD,EAAE,WAAW,EAAE,sCAAsC,EAAE;IACvX,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,qCAAqC,EAAE,WAAW,EAAE,yDAAyD,EAAE;IACxY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,yCAAyC,EAAE,WAAW,EAAE,sCAAsC,EAAE;IAC3X,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,6CAA6C,EAAE,WAAW,EAAE,+LAA+L,EAAE;IAClhB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,gCAAgC,EAAE,WAAW,EAAE,8CAA8C,EAAE;IAC9W,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,iDAAiD,EAAE,WAAW,EAAE,iJAAiJ,EAAE;CAC5d,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,SAAS,GAA2C,MAAM,CAAC,MAAM,CAC5E,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1D,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC9D,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAwC,EACxC,OAAoC;IAEpC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC;QACpD,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;YAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,SAAS,oBAAoB,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACpH,IAAI,CAAC,CAAC,sBAAsB,KAAK,SAAS;YACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC;QAEjF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,MAAM,yBAAyB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;gBAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,KAAK,yBAAyB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"passport.js","sourceRoot":"","sources":["../../src/contracts/passport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Field Snapshot diffing (substrate critical-path 03). `diffFieldSnapshots(a, b)` is a PURE comparison
3
+ * of two {@link FieldSnapshot}s — no live field state — so it is trivially testable and usable outside
4
+ * a running field (CI assertions, stored bug reports, AI memory). `FieldHandle.diff` delegates here.
5
+ *
6
+ * Capture (`FieldHandle.snapshot`) lives in `field.ts` (it needs the live field); this module owns the
7
+ * comparison so the two halves stay independent.
8
+ */
9
+ import type { FieldSnapshot, FieldDiff, CausalReplay, ReplayOptions } from './types.ts';
10
+ /** Compare two field snapshots and report what changed, by lane (bodies, relationships, metrics,
11
+ * formations). Order-independent within each lane; pure. */
12
+ export declare function diffFieldSnapshots(a: FieldSnapshot, b: FieldSnapshot): FieldDiff;
13
+ /**
14
+ * Explain HOW the field changed from snapshot `a` to snapshot `b` — an ordered, narrated sequence of
15
+ * causes derived from the diff (formation activations → relationship shifts → body measurements →
16
+ * metric changes). Pure; preserves the before/after on each step's `contribution`. `opts.focus` scopes
17
+ * the replay to one body id (its metrics, or a relationship it participates in). `FieldHandle.replay`
18
+ * delegates here.
19
+ */
20
+ export declare function replayFieldSnapshots(a: FieldSnapshot, b: FieldSnapshot, opts?: ReplayOptions): CausalReplay;
21
+ //# sourceMappingURL=field-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-snapshot.d.ts","sourceRoot":"","sources":["../../src/core/field-snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EAOT,YAAY,EAEZ,aAAa,EACd,MAAM,YAAY,CAAC;AAIpB;6DAC6D;AAC7D,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,SAAS,CAqEhF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,GAAE,aAAkB,GAAG,YAAY,CA6E/G"}
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-snapshot.js","sourceRoot":"","sources":["../../src/core/field-snapshot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/core/field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAwD,WAAW,EAAE,YAAY,EAAkD,MAAM,YAAY,CAAC;AA8DlK,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,GAAE,YAAiB,GAAG,WAAW,CAukF3F"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/core/field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAwD,WAAW,EAAE,YAAY,EAAua,MAAM,YAAY,CAAC;AAkEvhB,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,GAAE,YAAiB,GAAG,WAAW,CAy4F3F"}
@@ -51,6 +51,10 @@ import { flowBiasInto, makeFlowFocus } from "./flow.js";
51
51
  import { devWarnNoOp } from "../contracts/guards.js";
52
52
  import { FIELD_VERSION } from "../version.js";
53
53
  import { energyReport } from "../diagnostics/energy.js";
54
+ import { accumulateAt } from "../diagnostics/probes.js";
55
+ import { diffFieldSnapshots, replayFieldSnapshots } from "./field-snapshot.js";
56
+ import { lintProjections } from "./governance.js";
57
+ import { applyLens } from "./query-lens.js";
54
58
  // Shared draw/integrate scratch — reused across the per-particle and per-cell hot loops so an
55
59
  // active flow focus and the particle draw don't allocate a `{x,y}` / `[r,g,b]` each iteration.
56
60
  // Safe to share module-wide: each field's frame runs synchronously, and every read consumes the
@@ -232,6 +236,8 @@ export function createField(canvas, opts = {}) {
232
236
  // optional z volume (z-axis.md): 0 — the default — is the flat field, byte-identical
233
237
  // to the 2D engine; > 0 opens a shallow depth the matter drifts through, opt-in.
234
238
  depth: opts.depth && opts.depth > 0 ? opts.depth : 0,
239
+ // the integration scheme (substrate doc 04 §Step 3); 'legacy' (default) is the shipped engine.
240
+ integrator: (opts.integrator === 'fixed' ? 'fixed' : 'legacy'),
235
241
  // ONE write path (#228, Phase 5): every feedback write goes through a sink. The platform
236
242
  // supplies one (D3, FeedbackRegistry via <field-root>); without it the engine installs the
237
243
  // internal default sink, whose writes are byte-identical to the historical direct writes.
@@ -263,6 +269,148 @@ export function createField(canvas, opts = {}) {
263
269
  // (onVisibility stops the loop entirely).
264
270
  let canvasVisible = true;
265
271
  let formTarget = { ...FORMATION_BY.ambient.preset };
272
+ let formationName = 'ambient'; // the active formation's id, for FieldHandle.query()
273
+ // Stable per-body ids for FieldHandle.query(): the element's id when present, else a synthetic
274
+ // `body-N` kept stable across queries (same Body object → same id), so relationship endpoints and
275
+ // body readings agree.
276
+ const bodyIdMap = new WeakMap();
277
+ let bodyIdSeq = 0;
278
+ const bodyId = (b) => {
279
+ if (b.el && b.el.id)
280
+ return b.el.id;
281
+ let id = bodyIdMap.get(b);
282
+ if (id === undefined) {
283
+ id = `body-${bodyIdSeq++}`;
284
+ bodyIdMap.set(b, id);
285
+ }
286
+ return id;
287
+ };
288
+ // Shared metric/dimension reading for query() and snapshot(), so both compute identically (diff
289
+ // compares snapshot metrics — they must agree with what query() reports).
290
+ const readBodyMetrics = (b) => {
291
+ const metrics = { density: b.d, count: b.count, engaged: b.on ? 1 : 0 };
292
+ if (b.attn !== undefined)
293
+ metrics.attention = b.attn;
294
+ if (b.capacity > 0)
295
+ metrics.load = b.accreted / b.capacity;
296
+ const dimensions = b.metrics
297
+ ? { entropy: b.metrics.entropy, coherence: b.metrics.coherence, temperature: b.metrics.temperature }
298
+ : {};
299
+ return { metrics, dimensions };
300
+ };
301
+ let snapSeq = 0; // per-field snapshot id counter
302
+ // Projection registry (substrate doc 04 §05): named maps from field STATE to an output surface.
303
+ // Read/output only — registering a projection never changes how matter moves. Stored here; query()/
304
+ // snapshot() report the metadata, and `apply` is invoked by the caller (write-phase auto-apply is a
305
+ // later step).
306
+ const projectionMap = new Map();
307
+ const projectionInfo = (p) => ({
308
+ id: p.id,
309
+ label: p.label,
310
+ channels: p.channels.slice(),
311
+ surfaces: p.surfaces.slice(),
312
+ ...(p.reducedMotionEquivalent !== undefined ? { reducedMotionEquivalent: p.reducedMotionEquivalent } : {}),
313
+ ...(p.accessibilityEquivalent !== undefined ? { accessibilityEquivalent: p.accessibilityEquivalent } : {}),
314
+ });
315
+ const projectionList = () => [...projectionMap.values()].map(projectionInfo);
316
+ // Write-phase auto-apply (substrate doc 05): a binding ties a projection id to a target + a live
317
+ // reading source. After feedback each frame, applyBoundProjections() invokes the projection's writer.
318
+ // Read-only w.r.t. the field — a projection never moves matter.
319
+ const projectionBindings = [];
320
+ function applyBoundProjections() {
321
+ for (const bnd of projectionBindings)
322
+ projectionMap.get(bnd.id)?.apply?.(bnd.source(), bnd.target);
323
+ }
324
+ const projectionRegistry = {
325
+ register(p) {
326
+ projectionMap.set(p.id, p);
327
+ return () => {
328
+ if (projectionMap.get(p.id) === p)
329
+ projectionMap.delete(p.id);
330
+ };
331
+ },
332
+ unregister(id) {
333
+ projectionMap.delete(id);
334
+ },
335
+ get(id) {
336
+ return projectionMap.get(id);
337
+ },
338
+ list: projectionList,
339
+ apply(id, reading, target) {
340
+ projectionMap.get(id)?.apply?.(reading, target);
341
+ },
342
+ bind(id, target, source) {
343
+ const binding = { id, target, source };
344
+ projectionBindings.push(binding);
345
+ return () => {
346
+ const i = projectionBindings.indexOf(binding);
347
+ if (i >= 0)
348
+ projectionBindings.splice(i, 1);
349
+ };
350
+ },
351
+ lint: () => lintProjections(projectionList()),
352
+ };
353
+ // Dynamic bodies (substrate doc 04 §Step 5 — recoil): a body with authority:'dynamic' has its
354
+ // position OWNED by the engine, not the DOM. Each frame it integrates under the net field the other
355
+ // bodies create at its centre (`a = F/M`, lightly damped + speed-capped) and writes the result back
356
+ // to cx/cy — so the source moves in response to the field (the reciprocity thesis). Anchored and
357
+ // kinematic bodies are never touched, so with no dynamic bodies this loop is a no-op.
358
+ const BODY_FRICTION = 0.9; // heavier than particle FRICTION so dynamic bodies settle, not drift forever
359
+ const MAX_BODY_SPEED = 8; // px/frame cap — keeps a dynamic body from flinging off under a strong well
360
+ function moveDynamicBodies() {
361
+ for (const b of bodies) {
362
+ if (b.authority !== 'dynamic' || !b.vis)
363
+ continue;
364
+ // lazily adopt the measured centre as the engine-owned position on first touch.
365
+ if (b.bx === undefined) {
366
+ b.bx = b.cx;
367
+ b.by = b.cy;
368
+ b.bvx = 0;
369
+ b.bvy = 0;
370
+ }
371
+ const bx = b.bx ?? b.cx;
372
+ const by = b.by ?? b.cy;
373
+ // the net field from every OTHER visible body at this body's centre (exclude self so a body
374
+ // doesn't recoil from its own singular centre).
375
+ const others = bodies.filter((o) => o !== b && o.vis && o.tokens.length > 0);
376
+ const { fx, fy } = forceAt(others, reg.forces, env, bx, by);
377
+ const invM = 1 / Math.max(b.M, 1e-4);
378
+ let vx = (b.bvx ?? 0) + fx * invM * env.dt;
379
+ let vy = (b.bvy ?? 0) + fy * invM * env.dt;
380
+ vx *= BODY_FRICTION;
381
+ vy *= BODY_FRICTION;
382
+ const sp = Math.hypot(vx, vy);
383
+ if (sp > MAX_BODY_SPEED) {
384
+ const k = MAX_BODY_SPEED / sp;
385
+ vx *= k;
386
+ vy *= k;
387
+ }
388
+ b.bvx = vx;
389
+ b.bvy = vy;
390
+ b.bx = bx + vx * env.dt;
391
+ b.by = by + vy * env.dt;
392
+ b.cx = b.bx; // the owned position becomes authoritative (overrides measureBodies' rect write)
393
+ b.cy = b.by;
394
+ }
395
+ }
396
+ // Capture body.data BY VALUE at snapshot time — a snapshot is a portable capture, so later mutation
397
+ // of the original record must not change older snapshots (or make diffs/exports nondeterministic).
398
+ const sclone = globalThis.structuredClone;
399
+ const cloneData = (d) => {
400
+ if (d === undefined || d === null)
401
+ return d;
402
+ try {
403
+ return sclone ? sclone(d) : JSON.parse(JSON.stringify(d));
404
+ }
405
+ catch {
406
+ try {
407
+ return JSON.parse(JSON.stringify(d));
408
+ }
409
+ catch {
410
+ return d; // non-serializable (functions, cycles) — fall back to the reference
411
+ }
412
+ }
413
+ };
266
414
  let waves = [];
267
415
  let bound = [];
268
416
  let boundTarget = 0;
@@ -370,6 +518,7 @@ export function createField(canvas, opts = {}) {
370
518
  W: 0,
371
519
  H: 0,
372
520
  D: cfg.depth, // the optional z volume (z-axis.md); 0 = the flat field
521
+ integrator: cfg.integrator, // 'legacy' (default) | 'fixed' (doc 04 §Step 3)
373
522
  t: 0,
374
523
  frameN: 0,
375
524
  dt: reduceMotion ? 0 : 1,
@@ -2171,6 +2320,12 @@ export function createField(canvas, opts = {}) {
2171
2320
  // edge of engagement — the same conserved supernova ritual as saturation.
2172
2321
  dischargeDisengaged(bodies, env.supernova);
2173
2322
  }
2323
+ // Dynamic bodies (substrate doc 04 §Step 5 — recoil): the engine owns a `dynamic` body's position.
2324
+ // Each frame it integrates under the net field the OTHER bodies create at its centre (the
2325
+ // reciprocity thesis — the field bends the source back) and writes the result to cx/cy, overriding
2326
+ // the DOM rect. Opt-in via authority:'dynamic'; with none present this whole pass is skipped.
2327
+ if (env.dt !== 0)
2328
+ moveDynamicBodies();
2174
2329
  // Step programmatic edges (addEdge): a relationship is "active" while its source body is salient
2175
2330
  // (gathering matter, d > 0.08) — it then strengthens + accumulates memory, and decays while idle.
2176
2331
  // env.dt is frame-normalized (≈1 at 60fps); the dynamics rates are per-second, so convert (÷60).
@@ -2261,6 +2416,7 @@ export function createField(canvas, opts = {}) {
2261
2416
  updateEmitters(); // element emit (§22.3): clone decorative templates, budgeted by data-max
2262
2417
  }
2263
2418
  writeFeedback();
2419
+ applyBoundProjections(); // write phase: auto-apply bound projections (read-only; never moves matter)
2264
2420
  applyCausality();
2265
2421
  updateEvents();
2266
2422
  updateClassToggles(); // element trigger class-toggle (§22.3, FACM #687): toggle data-class on crossings
@@ -2283,8 +2439,10 @@ export function createField(canvas, opts = {}) {
2283
2439
  }
2284
2440
  function setFormation(name) {
2285
2441
  const f = FORMATION_BY[name];
2286
- if (f)
2442
+ if (f) {
2287
2443
  formTarget = { ...f.preset };
2444
+ formationName = name;
2445
+ }
2288
2446
  }
2289
2447
  // conductor (§7.1): as a section crosses mid-viewport, ease to its formation
2290
2448
  // (declare with `data-formation="wells"`); after ~6 s of no input, drift back
@@ -2346,6 +2504,7 @@ export function createField(canvas, opts = {}) {
2346
2504
  onScroll();
2347
2505
  raf = host.raf(frame);
2348
2506
  const handle = {
2507
+ projections: projectionRegistry,
2349
2508
  scan,
2350
2509
  rescan: scan,
2351
2510
  setAccent: (hex) => {
@@ -2634,6 +2793,8 @@ export function createField(canvas, opts = {}) {
2634
2793
  const body = bodyFromElement(el);
2635
2794
  body.rect = toRect;
2636
2795
  body.data = spec.data;
2796
+ if (spec.authority)
2797
+ body.authority = spec.authority; // body-authority (doc 04); default anchored
2637
2798
  body.feedback = true; // programmatic bodies always compute channels (the CSS write hits the
2638
2799
  // harmless stub element; the value flows to onFeedback + the handle's live channels).
2639
2800
  const channels = {};
@@ -2719,6 +2880,178 @@ export function createField(canvas, opts = {}) {
2719
2880
  memory: e.agent.memory,
2720
2881
  active: e.agent.active,
2721
2882
  })),
2883
+ query: (q = {}) => {
2884
+ // Resolve the region: a point (+radius), a rect, or the whole field. Read-only throughout.
2885
+ const at = q.at;
2886
+ let region;
2887
+ let cx = 0;
2888
+ let cy = 0;
2889
+ let radius = 0;
2890
+ let local = false;
2891
+ if (at) {
2892
+ if ('width' in at) {
2893
+ region = { x: at.x, y: at.y, width: at.width, height: at.height };
2894
+ cx = at.x + at.width / 2;
2895
+ cy = at.y + at.height / 2;
2896
+ radius = Math.max(at.width, at.height) / 2;
2897
+ }
2898
+ else {
2899
+ radius = q.radius ?? 240;
2900
+ cx = at.x;
2901
+ cy = at.y;
2902
+ region = { x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 };
2903
+ }
2904
+ local = true;
2905
+ }
2906
+ // Default include set: bodies + metrics + relationships, plus influences for a local query.
2907
+ const want = new Set(q.include ?? (local ? ['bodies', 'metrics', 'relationships', 'influences'] : ['bodies', 'metrics', 'relationships']));
2908
+ const inRegion = (b) => {
2909
+ if (!b.vis)
2910
+ return false;
2911
+ if (!local)
2912
+ return true;
2913
+ if ("width" in at) {
2914
+ const r = region;
2915
+ return b.cx >= r.x && b.cx <= r.x + r.width && b.cy >= r.y && b.cy <= r.y + r.height;
2916
+ }
2917
+ return Math.hypot(b.cx - cx, b.cy - cy) <= radius;
2918
+ };
2919
+ const matched = bodies.filter(inRegion);
2920
+ const bodyReadings = want.has('bodies')
2921
+ ? matched.map((b) => {
2922
+ const { metrics, dimensions } = readBodyMetrics(b);
2923
+ return {
2924
+ id: bodyId(b),
2925
+ rect: { x: b.cx - b.hw, y: b.cy - b.hh, width: b.hw * 2, height: b.hh * 2 },
2926
+ tokens: b.tokens.slice(),
2927
+ metrics,
2928
+ dimensions,
2929
+ activeFormations: [formationName],
2930
+ authority: b.authority ?? 'anchored',
2931
+ };
2932
+ })
2933
+ : [];
2934
+ const metrics = {};
2935
+ if (want.has('metrics')) {
2936
+ metrics.particles = store.size;
2937
+ metrics.bodies = matched.length;
2938
+ if (matched.length > 0) {
2939
+ let sumD = 0;
2940
+ for (const b of matched)
2941
+ sumD += b.d;
2942
+ metrics.meanDensity = sumD / matched.length;
2943
+ }
2944
+ }
2945
+ const relationships = want.has('relationships')
2946
+ ? programmaticEdges
2947
+ .filter((e) => !local || inRegion(e.from) || inRegion(e.to))
2948
+ .map((e) => ({
2949
+ from: bodyId(e.from),
2950
+ to: bodyId(e.to),
2951
+ type: e.agent.type,
2952
+ strength: e.agent.strength,
2953
+ memory: e.agent.memory,
2954
+ active: e.agent.active,
2955
+ causal: e.agent.active,
2956
+ }))
2957
+ : [];
2958
+ // Influences: only meaningful for a local query (a point to attribute force to). For the query
2959
+ // centre, ask each in-region body which of its forces contributed Δv there (impulse accumulator).
2960
+ const influences = [];
2961
+ if (want.has('influences') && local) {
2962
+ for (const b of matched) {
2963
+ if (b.tokens.length === 0)
2964
+ continue;
2965
+ const acc = accumulateAt(reg.forces, b.tokens, b, cx, cy);
2966
+ for (const a of acc.attribution) {
2967
+ influences.push({
2968
+ source: bodyId(b),
2969
+ force: a.force,
2970
+ channel: a.channel,
2971
+ contribution: a.contribution,
2972
+ });
2973
+ }
2974
+ }
2975
+ }
2976
+ const result = { query: q, frame: env.frameN, time: env.t, region, bodies: bodyReadings, metrics, relationships, influences, projections: projectionList() };
2977
+ return q.lens ? applyLens(result, q.lens) : result;
2978
+ },
2979
+ snapshot: (opts = {}) => {
2980
+ const includeRelationships = opts.includeRelationships !== false;
2981
+ const visible = bodies.filter((b) => b.vis);
2982
+ const snapBodies = visible.map((b) => {
2983
+ const { metrics, dimensions } = readBodyMetrics(b);
2984
+ const reading = {
2985
+ id: bodyId(b),
2986
+ authority: b.authority ?? 'anchored',
2987
+ rect: { x: b.cx - b.hw, y: b.cy - b.hh, width: b.hw * 2, height: b.hh * 2 },
2988
+ position: { x: b.cx, y: b.cy, z: 0 },
2989
+ tokens: b.tokens.slice(),
2990
+ metrics,
2991
+ dimensions,
2992
+ };
2993
+ if (opts.includeData)
2994
+ reading.data = cloneData(b.data);
2995
+ return reading;
2996
+ });
2997
+ const relationships = includeRelationships
2998
+ ? programmaticEdges.map((e) => ({
2999
+ from: bodyId(e.from),
3000
+ to: bodyId(e.to),
3001
+ type: e.agent.type,
3002
+ strength: e.agent.strength,
3003
+ memory: e.agent.memory,
3004
+ active: e.agent.active,
3005
+ causal: e.agent.active,
3006
+ }))
3007
+ : [];
3008
+ const fieldMetrics = { particles: store.size, bodies: visible.length };
3009
+ if (visible.length > 0) {
3010
+ let sumD = 0;
3011
+ for (const b of visible)
3012
+ sumD += b.d;
3013
+ fieldMetrics.meanDensity = sumD / visible.length;
3014
+ }
3015
+ const snap = {
3016
+ id: `snap-${env.frameN}-${snapSeq++}`,
3017
+ createdAt: env.t,
3018
+ frame: env.frameN,
3019
+ version: FIELD_VERSION,
3020
+ formations: [formationName],
3021
+ bodies: snapBodies,
3022
+ relationships,
3023
+ metrics: fieldMetrics,
3024
+ projections: projectionList(),
3025
+ };
3026
+ if (opts.includeParticles) {
3027
+ const out = [];
3028
+ for (const p of store.particles) {
3029
+ if (p.cap)
3030
+ continue; // captured matter is held, not free — skip
3031
+ out.push({ x: p.x, y: p.y, z: p.z ?? 0, heat: p.heat, size: p.size });
3032
+ }
3033
+ snap.particles = out;
3034
+ }
3035
+ if (opts.includeInfluences) {
3036
+ // per-body force attribution: each body's own forces at its centre, by channel (linear Δv,
3037
+ // thermal heat, …). A later replay() derives `cause: 'force'` steps from how these shift.
3038
+ const inf = [];
3039
+ for (const b of visible) {
3040
+ if (b.tokens.length === 0)
3041
+ continue;
3042
+ // sample just off the centre, not AT it: a body's directional forces (attract/repel/…) have
3043
+ // zero direction exactly at their own centre, so the centre reads no linear contribution.
3044
+ const acc = accumulateAt(reg.forces, b.tokens, b, b.cx + 8, b.cy);
3045
+ for (const a of acc.attribution) {
3046
+ inf.push({ source: bodyId(b), force: a.force, channel: a.channel, contribution: a.contribution });
3047
+ }
3048
+ }
3049
+ snap.influences = inf;
3050
+ }
3051
+ return snap;
3052
+ },
3053
+ diff: (a, b) => diffFieldSnapshots(a, b),
3054
+ replay: (a, b, opts) => replayFieldSnapshots(a, b, opts),
2722
3055
  addField: (name, sampler) => {
2723
3056
  fieldChannels.set(name, sampler);
2724
3057
  return {