@series-inc/rundot-syncplay 5.23.0-beta.7 → 5.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +116 -15
- package/dist/browser.d.ts +87 -55
- package/dist/browser.js +47 -52
- package/dist/certification.d.ts +32 -3
- package/dist/certification.js +88 -3
- package/dist/cjs/browser.js +259 -87
- package/dist/cjs/certification.js +87 -2
- package/dist/cjs/collision.js +58 -0
- package/dist/cjs/creator.js +2 -1
- package/dist/cjs/engine-complete.js +213 -3
- package/dist/cjs/engine-parity-matrix.js +19 -4
- package/dist/cjs/index.js +199 -132
- package/dist/cjs/math.js +342 -15
- package/dist/cjs/movement3d.js +230 -1
- package/dist/cjs/node.js +5 -1
- package/dist/cjs/noise.js +58 -0
- package/dist/cjs/physics-cert.js +147 -6
- package/dist/cjs/physics2d.js +10 -4
- package/dist/cjs/physics3d-joints.js +637 -0
- package/dist/cjs/physics3d-shared.js +288 -0
- package/dist/cjs/physics3d-solver.js +1351 -0
- package/dist/cjs/physics3d-vehicle.js +467 -0
- package/dist/cjs/physics3d.js +1057 -223
- package/dist/cjs/random.js +49 -0
- package/dist/cjs/replay-bundle.js +127 -20
- package/dist/cjs/sample-scenes.js +3 -0
- package/dist/cjs/sdk-offline.js +6 -32
- package/dist/cjs/sdk-session.js +156 -0
- package/dist/cjs/session-build.js +42 -0
- package/dist/cjs/testing.js +107 -0
- package/dist/cli.js +40 -12
- package/dist/collision.d.ts +12 -0
- package/dist/collision.js +52 -0
- package/dist/creator.d.ts +1 -1
- package/dist/creator.js +1 -1
- package/dist/engine-complete.js +214 -4
- package/dist/engine-parity-matrix.js +19 -4
- package/dist/index.d.ts +94 -89
- package/dist/index.js +45 -56
- package/dist/math.d.ts +59 -6
- package/dist/math.js +342 -15
- package/dist/movement3d.d.ts +73 -0
- package/dist/movement3d.js +229 -1
- package/dist/node.d.ts +4 -0
- package/dist/node.js +2 -0
- package/dist/noise.d.ts +7 -0
- package/dist/noise.js +51 -0
- package/dist/physics-cert.d.ts +1 -1
- package/dist/physics-cert.js +147 -6
- package/dist/physics2d.js +10 -4
- package/dist/physics3d-joints.d.ts +94 -0
- package/dist/physics3d-joints.js +634 -0
- package/dist/physics3d-shared.d.ts +72 -0
- package/dist/physics3d-shared.js +257 -0
- package/dist/physics3d-solver.d.ts +197 -0
- package/dist/physics3d-solver.js +1346 -0
- package/dist/physics3d-vehicle.d.ts +84 -0
- package/dist/physics3d-vehicle.js +463 -0
- package/dist/physics3d.d.ts +108 -8
- package/dist/physics3d.js +1006 -177
- package/dist/random.d.ts +7 -0
- package/dist/random.js +49 -0
- package/dist/replay-bundle.d.ts +40 -1
- package/dist/replay-bundle.js +126 -20
- package/dist/sample-scenes.js +3 -0
- package/dist/sdk-offline.js +6 -32
- package/dist/sdk-session.d.ts +47 -0
- package/dist/sdk-session.js +153 -0
- package/dist/session-build.d.ts +21 -0
- package/dist/session-build.js +39 -0
- package/dist/testing.d.ts +52 -0
- package/dist/testing.js +45 -0
- package/dist/tools/vite-plugin.d.ts +8 -0
- package/dist/tools/vite-plugin.js +63 -9
- package/package.json +11 -3
package/README.md
CHANGED
|
@@ -45,11 +45,16 @@ creators. See `docs/syncplay-netcode-observability.md`,
|
|
|
45
45
|
`docs/syncplay-replay-verified-leaderboards.md`, and
|
|
46
46
|
`docs/syncplay-wire-format.md`.
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
`project:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
(
|
|
48
|
+
Deployability is gated by build-time certification, not by stamped proof
|
|
49
|
+
artifacts. The deployable preflight is `project:check` with the
|
|
50
|
+
`static-determinism` section required — it proves the simulation is a real,
|
|
51
|
+
file-backed, replayable module before upload. The optional deploy-check
|
|
52
|
+
commands (`project:deploy-check` / `project:deploy-check-verify`) remain as a
|
|
53
|
+
local, internal-consistency **receipt** — they prove the bundle they describe is
|
|
54
|
+
the bundle that was checked — but they are **not** a cryptographic signature,
|
|
55
|
+
provenance proof, or a backend admission gate. Venus upload validation and
|
|
56
|
+
room-server startup accept a bare `deterministic: true` room and never read
|
|
57
|
+
these artifacts.
|
|
53
58
|
|
|
54
59
|
CI lanes:
|
|
55
60
|
|
|
@@ -79,6 +84,14 @@ import { createDeterministicAuthorityServer } from '@series-inc/rundot-syncplay/
|
|
|
79
84
|
import { rundotSyncplayPlugin } from '@series-inc/rundot-syncplay/tools';
|
|
80
85
|
```
|
|
81
86
|
|
|
87
|
+
> The `@series-inc/rundot-syncplay/testing` entry (and its SDK mirror
|
|
88
|
+
> `@series-inc/rundot-game-sdk/syncplay/testing`) exposes internal labs,
|
|
89
|
+
> examples, fixtures, certification harnesses, and mocks for this repo's tests,
|
|
90
|
+
> prototypes, and the syncplay CLI. It is **unsupported** — anything there may be
|
|
91
|
+
> renamed or removed without notice, and it is deliberately excluded from the
|
|
92
|
+
> export-surface goldens. Game code must import from the package root, `/browser`,
|
|
93
|
+
> or `/creator` instead.
|
|
94
|
+
|
|
82
95
|
The SDK bridge re-exports a browser-safe subset for games that already depend on
|
|
83
96
|
`@series-inc/rundot-game-sdk`:
|
|
84
97
|
|
|
@@ -249,14 +262,57 @@ Implemented:
|
|
|
249
262
|
- `lab:physics-cert` built-in fixed physics certification for fixed-arena and
|
|
250
263
|
128-slot load shapes with snapshot/restore, stable collision/query ordering,
|
|
251
264
|
and timing metrics.
|
|
265
|
+
- `lab:physics-cert -- --engine builtin-rigid` certifies the 3D rigid-body
|
|
266
|
+
solver (settling stack + hinge motor + grab + speculative CCD arena) against
|
|
267
|
+
the same four determinism gates; the contact/joint caches round-trip through
|
|
268
|
+
the snapshot as canonical state.
|
|
252
269
|
- `lab:physics-cert -- --engine rapier2d-compat` certification for
|
|
253
270
|
`@dimforge/rapier2d-compat@0.19.3`; the current pinned cert reproduces
|
|
254
271
|
snapshot/restore nondeterminism, so Rapier remains render/prototype-only for
|
|
255
272
|
checksummed gameplay.
|
|
273
|
+
- **Production-grade 3D rigid-body dynamics.** A warm-started sequential-impulse
|
|
274
|
+
solver (SAT + face-clipping manifolds → accumulated normal/friction impulses →
|
|
275
|
+
split-impulse position correction → island-based sleeping) delivers stable
|
|
276
|
+
stacking, full 6-DOF tumbling props, per-body axis locks (Box2D-class 2D games
|
|
277
|
+
on the 3D solver), impulse-based joints (`ball`, `hinge` with limits + motor,
|
|
278
|
+
`weld`, `distance`/rope, `spring` (soft point-to-point via
|
|
279
|
+
`frequencyHz`/`dampingRatio`, Box2D soft-constraint math), and the `grab`
|
|
280
|
+
gravity-gun/carry primitive),
|
|
281
|
+
speculative-contact CCD, and compound colliders. Opt-in per body via
|
|
282
|
+
`orientation`/`angularVel`/`mass`/`ccd`/locks; bodies without these solve as
|
|
283
|
+
rotation-locked rigid bodies through the same pipeline. New step options
|
|
284
|
+
`joints` and `velocityIterations`; mutation helpers
|
|
285
|
+
`applyDeterministicImpulse3D` / `setDeterministicBodyVelocity3D`; contact
|
|
286
|
+
events carry `normalImpulse`. The contact/joint caches live in the world and
|
|
287
|
+
are therefore checksummed and rollback-safe.
|
|
288
|
+
- **Deterministic raycast-wheel vehicles.** `stepDeterministicVehicle3D` drives
|
|
289
|
+
a single dynamic chassis with N suspension raycasts (wheels are rays, not
|
|
290
|
+
bodies — Bullet/Godot raycast-vehicle lineage): spring-damper suspension,
|
|
291
|
+
friction-circle tire forces (drive/steer/brake from integer deci-unit input),
|
|
292
|
+
steering through the fixed-point `createDeterministicMath()` trig, and an
|
|
293
|
+
iterated Gauss-Seidel tire solve. The stateless controller returns quantized
|
|
294
|
+
impulses the game applies before the next physics step (the KCC pattern) —
|
|
295
|
+
use the batched `applyDeterministicImpulses3D` (one canonical-world rebuild
|
|
296
|
+
per frame; the per-impulse singular form costs an O(bodies) rebuild per
|
|
297
|
+
call); the checksum covers only load-bearing outputs
|
|
298
|
+
(impulses, grounded flags, compressions), never cosmetic telemetry. v1 targets
|
|
299
|
+
static ground with flat/axis-aligned contact normals; certified by the
|
|
300
|
+
required `physics-rigid-vehicle` fixture, a car in the `builtin-rigid` cert
|
|
301
|
+
arena, a rollback-every-frame synctest scene, and a 100%-coverage
|
|
302
|
+
`coverage:package:physics-vehicle` shard.
|
|
303
|
+
- **Accelerated deterministic queries.** Raycast, overlap, and shape-cast run
|
|
304
|
+
through a per-world static AABB tree (BVH) built lazily on first query and
|
|
305
|
+
memoized by world identity — pure derived data that never enters canonical
|
|
306
|
+
state, with bit-identical results to a full scan (the tree only prunes;
|
|
307
|
+
narrow-phase tests and id-tiebroken ordering are unchanged, proven by a
|
|
308
|
+
merged-single-body-world oracle test). Query cost is flat in world size:
|
|
309
|
+
128 wheel-length raycasts cost ~0.2 ms whether the world holds 17 or 1,000
|
|
310
|
+
bodies (previously ~72 ms at 1,000).
|
|
256
311
|
- Public deterministic 2D physics primitives for static/dynamic/kinematic AABB
|
|
257
312
|
bodies, sensors/triggers, enter/stay/exit callbacks, layer masks,
|
|
258
|
-
deterministic AABB and ray queries, material response
|
|
259
|
-
spring/motor constraints,
|
|
313
|
+
deterministic AABB and ray queries, material response (now including real
|
|
314
|
+
tangential friction), simple fixed/distance/spring/motor constraints,
|
|
315
|
+
rollback-equivalent stepping, and budget metrics.
|
|
260
316
|
- Public deterministic movement primitives for KCC-like slopes, steps, ledges,
|
|
261
317
|
moving platforms, elevators, one-way platforms, wall slides, jump buffering,
|
|
262
318
|
coyote time, top-down acceleration/drag/sliding, nav steering, quantized FPS
|
|
@@ -268,6 +324,51 @@ Implemented:
|
|
|
268
324
|
checksums, and CLI-certified mechanic invariants.
|
|
269
325
|
- Counter Duel package-local example with replay verification and event output.
|
|
270
326
|
|
|
327
|
+
## Deterministic Standard Library
|
|
328
|
+
|
|
329
|
+
The determinism static checker blocks the entire transcendental family
|
|
330
|
+
(`Math.sin/cos/tan/atan2/sqrt/hypot/pow/...`), `Math.random`, and `Date.now`
|
|
331
|
+
inside simulation code — those can differ in low bits across JS engines and
|
|
332
|
+
desync a lockstep match. Every simulation surface these primitives cover is
|
|
333
|
+
provided as a pure-integer, byte-identical replacement. **Never hand-roll fixed
|
|
334
|
+
math or reach for `Math.*`; use these.**
|
|
335
|
+
|
|
336
|
+
`ctx.math` (`createDeterministicMath`, wired into every step context):
|
|
337
|
+
|
|
338
|
+
- **Scalar:** `sqrt` (throws on negative), `abs`, `sign`, `min`, `max`, `lerp`,
|
|
339
|
+
`mod` (Euclidean; throws on modulus 0), `inverseLerp`, `remap`, `smoothstep`,
|
|
340
|
+
`exp`, `log`/`log2Fixed` (throw on non-positive). `exp`/`log` are ≤1% over
|
|
341
|
+
their fixed-representable range; `sqrt` is exact-to-a-unit.
|
|
342
|
+
- **Trig & angles (unit is TURNS, one revolution == `fixedScale`):** accurate
|
|
343
|
+
`sinTurns`/`cosTurns` (5th-order minimax, exact at cardinal turns, ≤5e-3 sweep
|
|
344
|
+
error), `tanTurns`, `atan2(y, x)` → turns in `[0, fixedScale)` CCW from +x
|
|
345
|
+
(`atan2(0,0) === 0`), `wrapTurns`, `angleDeltaTurns` (shortest signed),
|
|
346
|
+
`turnsToRadians`/`radiansToTurns`. `createDeterministicMath` requires
|
|
347
|
+
`fixedScale % 4 === 0`.
|
|
348
|
+
- **Vectors:** vec2 `sub/scale/dot/cross/lengthSq/length/distanceSq/distance/
|
|
349
|
+
normalize` (zero → `{0,0}`), `hypot`, `perp/negate/rotate/fromAngleTurns/
|
|
350
|
+
angleTurns`; vec3 core `add/sub/scale/dot/cross/lengthSq/length/distance/
|
|
351
|
+
normalize/lerp/negate`.
|
|
352
|
+
- **Domains & overflow:** domain violations (`sqrt(neg)`, `log(≤0)`, `mod(_,0)`,
|
|
353
|
+
non-integer fixed inputs) fail fast. Vector/`abs`/`sign`/negation ops saturate
|
|
354
|
+
at `±maxFixed` rather than throw. `mul`/`div` are integer-exact only while
|
|
355
|
+
`|a·b| ≤ 2^53` (~95k real units at the default `fixedScale` 1000).
|
|
356
|
+
|
|
357
|
+
`ctx.random` (`DeterministicRandom`) — seeded, reproducible sampling on top of
|
|
358
|
+
the existing `nextInt/nextFixed/fork`: `nextBool`, `nextRangeFixed`,
|
|
359
|
+
`nextAngleTurns`, `pickOne` (throws on empty), `weighted` (throws on length
|
|
360
|
+
mismatch / non-positive total), `gaussian(math)` (Box-Muller).
|
|
361
|
+
|
|
362
|
+
Segment geometry (imported from the package, like the AABB/circle primitives):
|
|
363
|
+
`orientation`, `pointOnSegment`, `segmentsIntersect`, `closestPointOnSegment`,
|
|
364
|
+
`segmentPointDistance`, `segmentSegmentDistance` (the distance/closest ops take a
|
|
365
|
+
`DeterministicMath` for their `sqrt`).
|
|
366
|
+
|
|
367
|
+
Hash & value noise (`noise.ts`, pure importable functions — replaces the
|
|
368
|
+
cross-engine `Math.sin`-hash desync class): `hashUint32`, `hash2` (integer
|
|
369
|
+
avalanche hashes), `valueNoise1D`/`valueNoise2D` (smooth, in `[-fixedScale,
|
|
370
|
+
fixedScale]`), `fbm2D`.
|
|
371
|
+
|
|
271
372
|
## Commands
|
|
272
373
|
|
|
273
374
|
```bash
|
|
@@ -283,16 +384,12 @@ npm run project:release-verify -- ./deterministic-game/artifacts/deterministic/p
|
|
|
283
384
|
npm run project:release-bundle -- ./deterministic-game/artifacts/deterministic/project-release-evidence.json --json ./deterministic-game/artifacts/deterministic/project-release-bundle.json
|
|
284
385
|
npm run project:release-bundle-verify -- ./deterministic-game/artifacts/deterministic/project-release-bundle.json --out ./deterministic-game/artifacts/deterministic/project-release-bundle-verification.md --json ./deterministic-game/artifacts/deterministic/project-release-bundle-verification.json --junit ./deterministic-game/artifacts/deterministic/project-release-bundle-verification.xml
|
|
285
386
|
npm run project:release-bundle-schema -- --json artifacts/reports/project-release-bundle-schema.json
|
|
286
|
-
npm run project:deploy-check -- ./deterministic-game/syncplay.project.json --bundle ./deterministic-game/artifacts/deterministic/project-release-bundle.json --out ./deterministic-game/artifacts/deterministic/project-deploy-check.md --json ./deterministic-game/artifacts/deterministic/project-deploy-check.json --junit ./deterministic-game/artifacts/deterministic/project-deploy-check.xml
|
|
287
|
-
npm run project:deploy-check-verify -- ./deterministic-game/artifacts/deterministic/project-deploy-check.json --out ./deterministic-game/artifacts/deterministic/project-deploy-check-verification.md --json ./deterministic-game/artifacts/deterministic/project-deploy-check-verification.json --junit ./deterministic-game/artifacts/deterministic/project-deploy-check-verification.xml
|
|
288
387
|
npm run project:ci-workflow -- --out .github/workflows/syncplay-ci.yml --json artifacts/reports/project-ci-workflow.json
|
|
289
388
|
npm run project:scaffold -- ./deterministic-h5 --name "H5 Arena" --template h5 --sdk-version ^0.8.0 --deterministic-version ^0.3.0
|
|
290
389
|
npm run project:check -- ./deterministic-h5/syncplay.project.json --require descriptor,assets,config,replay-runtime,creator-boundary,static-determinism --frames 32 --out-dir ./deterministic-h5/artifacts/deterministic --dist ./deterministic-h5/dist --out ./deterministic-h5/artifacts/deterministic/project-check-browser.md --json ./deterministic-h5/artifacts/deterministic/project-check-browser.json --junit ./deterministic-h5/artifacts/deterministic/project-check-browser.xml --release-json ./deterministic-h5/artifacts/deterministic/project-release-evidence-browser.json --browser-runtime chromium --browser-json ./deterministic-h5/artifacts/deterministic/project-browser-proof-chromium.json
|
|
291
390
|
npm run project:release-verify -- ./deterministic-h5/artifacts/deterministic/project-release-evidence-browser.json --require-browser-proof --json ./deterministic-h5/artifacts/deterministic/project-release-verification-browser.json
|
|
292
391
|
npm run project:release-bundle -- ./deterministic-h5/artifacts/deterministic/project-release-evidence-browser.json --require-browser-proof --json ./deterministic-h5/artifacts/deterministic/project-release-bundle-browser.json
|
|
293
392
|
npm run project:release-bundle-verify -- ./deterministic-h5/artifacts/deterministic/project-release-bundle-browser.json --out ./deterministic-h5/artifacts/deterministic/project-release-bundle-verification-browser.md --json ./deterministic-h5/artifacts/deterministic/project-release-bundle-verification-browser.json --junit ./deterministic-h5/artifacts/deterministic/project-release-bundle-verification-browser.xml
|
|
294
|
-
npm run project:deploy-check -- ./deterministic-h5/syncplay.project.json --require-browser-proof --bundle ./deterministic-h5/artifacts/deterministic/project-release-bundle-browser.json --out ./deterministic-h5/artifacts/deterministic/project-deploy-check.md --json ./deterministic-h5/artifacts/deterministic/project-deploy-check.json --junit ./deterministic-h5/artifacts/deterministic/project-deploy-check.xml
|
|
295
|
-
npm run project:deploy-check-verify -- ./deterministic-h5/artifacts/deterministic/project-deploy-check.json --out ./deterministic-h5/artifacts/deterministic/project-deploy-check-verification.md --json ./deterministic-h5/artifacts/deterministic/project-deploy-check-verification.json --junit ./deterministic-h5/artifacts/deterministic/project-deploy-check-verification.xml
|
|
296
393
|
npm run project:doctor -- ./deterministic-h5/syncplay.project.json --require-browser-proof --json ./deterministic-h5/artifacts/deterministic/project-doctor-ci.json --junit ./deterministic-h5/artifacts/deterministic/project-doctor-ci.xml
|
|
297
394
|
npm run --prefix ./deterministic-h5 build
|
|
298
395
|
npm run project:scaffold -- ./deterministic-systems --name "Systems Test" --template systems
|
|
@@ -602,9 +699,13 @@ materials, vectors, and interpolation floats stay outside replay checksums.
|
|
|
602
699
|
- Built-in fixed physics certification includes package-local 2D/2.5D and 3D
|
|
603
700
|
deterministic worlds with sensors/triggers, queries, layer masks, callbacks,
|
|
604
701
|
constraints, CCD helpers, boxes, spheres, capsules, mesh static bounds,
|
|
605
|
-
deterministic angular state, and 128/512/2048-body stress samples
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
702
|
+
deterministic angular state, and 128/512/2048-body stress samples; the
|
|
703
|
+
`builtin-rigid` lane additionally certifies the sequential-impulse rigid-body
|
|
704
|
+
solver (stacking, joints, CCD) under the four determinism gates. Remaining
|
|
705
|
+
limits are visual collision authoring/import, convex-hull decomposition,
|
|
706
|
+
dynamic mesh-vs-mesh collision, ragdolls in checksummed state, and replacing
|
|
707
|
+
external physics engines; the ≤2 ms/step 128-body budget awaits an
|
|
708
|
+
allocation-free solver pass. Rapier cert currently fails with
|
|
709
|
+
`knownIssueRapier910=reproduced`,
|
|
609
710
|
`uninterruptedChecksum=916fe725ae2e3215`, and
|
|
610
711
|
`restoredChecksum=9e42622842bffff6`.
|
package/dist/browser.d.ts
CHANGED
|
@@ -1,57 +1,89 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export {
|
|
24
|
-
export type { DeterministicButtonFixtureResult, DeterministicButtonState, DeterministicButtonStep, DeterministicDescriptorButtonFixtureResult, } from './input-button.js';
|
|
25
|
-
export * from './input-timeline.js';
|
|
26
|
-
export * from './instant-replay.js';
|
|
27
|
-
export * from './pause-resume.js';
|
|
28
|
-
export * from './session-promotion.js';
|
|
29
|
-
export * from './lag-compensation3d.js';
|
|
30
|
-
export * from './local-authority.js';
|
|
31
|
-
export * from './local-authority-wire.js';
|
|
32
|
-
export * from './input-authority.js';
|
|
33
|
-
export * from './session-wire.js';
|
|
34
|
-
export * from './session-snapshot.js';
|
|
35
|
-
export * from './authority-room.js';
|
|
36
|
-
export * from './networked-client.js';
|
|
37
|
-
export * from './math.js';
|
|
1
|
+
export { cookDeterministicAnimation, createDeterministicAnimationRuntimeState, reconstructDeterministicAnimationEvents, stepDeterministicAnimation } from './animation.js';
|
|
2
|
+
export { assertAssetManifestMatches, cookDeterministicAssets, materializeDeterministicMapEntities, materializePrototypeEntities, stableAssetCookJson, validatePrototypeEntitiesAgainstFrameRuntime } from './asset-cooking.js';
|
|
3
|
+
export { createDeterministicAuthorityRoom } from './authority-room.js';
|
|
4
|
+
export { compileDeterministicBotDocument, summarizeDeterministicBotDocumentTraceCounterDelta, summarizeDeterministicBotDocumentTraceCoverage, traceDeterministicBotDocument } from './bot-documents.js';
|
|
5
|
+
export { cookDeterministicBotAsset, createDeterministicBotBlackboard, getBlackboardValue, runDeterministicBotSimulation, selectDeterministicUtility, tickDeterministicBehaviorTree, tickDeterministicBehaviorTreeWithMemory, tickDeterministicHfsm } from './bot-primitives.js';
|
|
6
|
+
export { canonicalize, canonicalStringify, cloneCanonical, decodeCanonicalBytes, decodeCanonicalValue, decodeUtf8, defaultChecksum, encodeCanonicalBytes, encodeUtf8 } from './canonical.js';
|
|
7
|
+
export { createStableIndexedMap, deterministicShuffle, stableEntries, stableSortedKeys } from './collections.js';
|
|
8
|
+
export { aabbContainsPoint, aabbIntersects, circleIntersects, circleIntersectsAabb, closestPointOnSegment, fixedAabb, fixedCircle, fixedVec2, orientation, pointOnSegment, segmentPointDistance, segmentSegmentDistance, segmentsIntersect, sortAabbsByStableId, translateAabb } from './collision.js';
|
|
9
|
+
export { assertDeterministicPayloadFields, createDeterministicCommandTimeline, createDeterministicCommandTimelineSnapshot, deterministicPayloadMatchesFields, evaluateDeterministicCommandTimelineMigrationResult } from './commands.js';
|
|
10
|
+
export { cookDeterministicConfigBundle, evaluateDeterministicConfigBundleParityResult, summarizeDeterministicConfigBundleFailureReasons, verifyDeterministicConfigBundle } from './config-bundle.js';
|
|
11
|
+
export { createDeterministicSessionCore, createDeterministicSessionReplayBundle, verifyDeterministicSessionRuntimeReplay } from './deterministic-session.js';
|
|
12
|
+
export { createDeterministicEventEffectsAdapter } from './effects-adapter.js';
|
|
13
|
+
export { assertDeterministicFrameHeapStaleHandleError, assertDeterministicFrameSystemsStateless, compileDeterministicDslRuntimeDescriptor, createDeterministicBitset, createDeterministicFrameRuntime, createDeterministicFrameRuntimeAccessors, createDeterministicSlotMap, createDeterministicSparseSetFrameRuntime, generateDeterministicFrameRuntimeSource, isDeterministicFrameHeapStaleHandleError, runDeterministicFrameRuntimeMutationCorpus, validateDeterministicFrameSystemsStateless } from './engine-runtime.js';
|
|
14
|
+
export { createDeterministicEventTimeline, filterDeterministicEventsForPlayer } from './events.js';
|
|
15
|
+
export { createInputAuthority } from './input-authority.js';
|
|
16
|
+
export { accumulateDeterministicInputTimelineState, evaluateDeterministicInputTimelineResult, sortDeterministicInputTimelineFlags } from './input-timeline.js';
|
|
17
|
+
export { createInstantReplayRunner, runInstantReplay } from './instant-replay.js';
|
|
18
|
+
export { buildDeterministicLagCompensatedHitboxProxies3D, createDeterministicLagCompensation3DHistory, rewindDeterministicLagCompensatedTargets3D, validateDeterministicAuthoritativeLagCompensatedShot3D, validateDeterministicLagCompensatedShot3D } from './lag-compensation3d.js';
|
|
19
|
+
export { createDeterministicLocalAuthorityRuntime } from './local-authority.js';
|
|
20
|
+
export { applyDeterministicLocalAuthorityCommandBundleEnvelope, applyDeterministicLocalAuthorityInputBundleEnvelope, createDeterministicLocalAuthorityAckEnvelope, createDeterministicLocalAuthorityCommandBundleEnvelope, createDeterministicLocalAuthorityCorrectionEnvelope, createDeterministicLocalAuthorityInputBundleEnvelope, createDeterministicLocalAuthoritySnapshotChunkEnvelope, createDeterministicLocalAuthoritySnapshotCompleteEnvelope, createDeterministicLocalAuthoritySnapshotEnvelope, createDeterministicLocalAuthoritySnapshotOfferEnvelope, createDeterministicLocalAuthoritySnapshotRequestEnvelope, createDeterministicLocalAuthoritySnapshotTransfer, createDeterministicLocalAuthorityWireAuth, createDeterministicLocalAuthorityWireReceiver, decodeDeterministicLocalAuthorityWireEnvelope, deterministicLocalAuthorityWireProtocol, encodeDeterministicLocalAuthorityWireEnvelope } from './local-authority-wire.js';
|
|
21
|
+
export { createDeterministicMath } from './math.js';
|
|
22
|
+
export { rewindDeterministicTargets, runDeterministicMovementCrowdSimulation, runDeterministicMovementSimulation, stepDeterministicFpsAim, stepDeterministicKcc2D, stepDeterministicTopDownMover, validateDeterministicLagCompensatedHit } from './movement.js';
|
|
23
|
+
export { stepDeterministicCarry3D, stepDeterministicKcc3D } from './movement3d.js';
|
|
38
24
|
export { createSyncplayClient } from './multiplayer-service.js';
|
|
39
|
-
export
|
|
40
|
-
export
|
|
41
|
-
export
|
|
42
|
-
export
|
|
43
|
-
export
|
|
44
|
-
export
|
|
45
|
-
export
|
|
46
|
-
export
|
|
47
|
-
export
|
|
48
|
-
export
|
|
49
|
-
export
|
|
50
|
-
export
|
|
51
|
-
export
|
|
52
|
-
export
|
|
53
|
-
export
|
|
54
|
-
export
|
|
55
|
-
export
|
|
56
|
-
export
|
|
25
|
+
export { applyDeterministicReciprocalAvoidance, cookDeterministicNavigationGraph, cookTilemapNavigationGraph, createDeterministicFlowField, findDeterministicPath, smoothDeterministicPath, stepDeterministicNavigationAgents } from './navigation.js';
|
|
26
|
+
export { cookDeterministicNavmesh, cookImportedDeterministicNavmesh, findDeterministicNavmeshPath, findDeterministicNavmeshPointPath, locateDeterministicNavmeshPolygon, runDeterministicNavmeshStress, smoothDeterministicNavmeshPath, stepDeterministicNavmeshAgents, stepDeterministicNavmeshOffMeshTraversal } from './navmesh.js';
|
|
27
|
+
export { createNetworkedSyncplayClient } from './networked-client.js';
|
|
28
|
+
export { fbm2D, hash2, hashUint32, valueNoise1D, valueNoise2D } from './noise.js';
|
|
29
|
+
export { createOfflineSession } from './offline-session.js';
|
|
30
|
+
export { createPauseController } from './pause-resume.js';
|
|
31
|
+
export { circleCastDeterministicPhysics2D, createDeterministicPhysicsWorld2D, nearestDeterministicPhysicsHit2D, queryDeterministicPhysicsAabb2D, queryDeterministicPhysicsShapeOverlap2D, raycastAllDeterministicPhysics2D, raycastDeterministicPhysics2D, stepDeterministicPhysicsWorld2D } from './physics2d.js';
|
|
32
|
+
export { applyDeterministicImpulse3D, applyDeterministicImpulses3D, contactDetailsDeterministicPhysics3D, createDeterministicPhysicsWorld3D, deriveInverseInertia, deterministicPhysicsBodyById3D, deterministicPhysicsCallback3D, overlapDeterministicPhysics3D, raycastDeterministicPhysics3D, raycastDeterministicPhysics3DDetailed, runDeterministicPhysics3DStress, setDeterministicBodyVelocity3D, shapeCastDeterministicPhysics3D, shapeCastDeterministicPhysics3DDetailed, stepDeterministicPhysicsWorld3D } from './physics3d.js';
|
|
33
|
+
export { createDeterministicR3fRenderAdapter as createDeterministicR3fAdapter, createDeterministicR3fRenderAdapter, interpolateDeterministicRenderNumber, interpolateDeterministicRenderVec2 } from './r3f-render-adapter.js';
|
|
34
|
+
export { verifyReplayWithDescriptor as verifyDeterministicReplay, verifyReplay } from './replay.js';
|
|
35
|
+
export { createDeterministicReplayBundle, createDeterministicReplayDebugTables, createDeterministicReplayRuntimeManifest, minimizeDeterministicReplayDesync, minimizeDeterministicReplayDesyncBundle, sliceDeterministicReplayBundle, verifyDeterministicFrameRuntimeReplayBundle, verifyDeterministicReplayBundle, verifyDeterministicSelfContainedFrameRuntimeReplayBundle, verifyReplayScoreAgainstTrustedRuntime } from './replay-bundle.js';
|
|
36
|
+
export { defineSyncplayGame, stableDescriptorId } from './schema.js';
|
|
37
|
+
export { createSchemaArtifacts } from './schema-artifacts.js';
|
|
38
|
+
export { createDeterministicDescriptorBinarySchema, generateSchemaBinarySource, generateSchemaTypes, proveSchemaBinaryRoundTrip } from './schema-codegen.js';
|
|
39
|
+
export { createDeterministicBinarySerializer, deterministicDslMaxPlayers, parseDeterministicSchemaDsl, stableDeterministicDslSchemaJson } from './schema-dsl-binary.js';
|
|
40
|
+
export { createSyncplayOfflineRuntime as createSyncplayGameRuntime, createSyncplayOfflineRuntime } from './sdk-offline.js';
|
|
41
|
+
export { createSyncplaySession } from './sdk-session.js';
|
|
42
|
+
export { createSessionFromPromotionSnapshot, exportPromotionSnapshot } from './session-promotion.js';
|
|
43
|
+
export { base64ToBytes, bytesToBase64, createSnapshotTransferCollector, createSnapshotTransferFromBytes, decodeDeterministicStateSnapshot, DEFAULT_MAX_SNAPSHOT_BYTES, DEFAULT_SNAPSHOT_CHUNK_SIZE, deterministicRoomDescriptorHash, encodeDeterministicStateSnapshot } from './session-snapshot.js';
|
|
44
|
+
export { decodeDeterministicSessionMessage, deterministicSessionWireVersion, encodeDeterministicSessionMessage } from './session-wire.js';
|
|
45
|
+
export { createDeterministicSignalBus } from './signals.js';
|
|
46
|
+
export { createDeterministicSparseSet } from './sparse-set.js';
|
|
47
|
+
export { createDeterministicLifecycleRunner, summarizeDeterministicLifecycleCounters } from './system-lifecycle.js';
|
|
48
|
+
export type { CookedDeterministicAnimation, DeterministicAnimationClip, DeterministicAnimationDescriptor, DeterministicAnimationLayer, DeterministicAnimationRuntimeState, DeterministicAnimationState, DeterministicAnimationStepResult, DeterministicAnimationTrack, DeterministicAnimationTransition } from './animation.js';
|
|
49
|
+
export type { DeterministicAssetCookManifest, DeterministicAssetCookResult, DeterministicAssetDependency, DeterministicAssetRecord, DeterministicAssetSource, DeterministicCookedAsset, DeterministicMapMaterializationResult, DeterministicPrototypeEntity, DeterministicPrototypeMaterializationOptions, DeterministicPrototypeRuntimeValidationResult } from './asset-cooking.js';
|
|
50
|
+
export type { AuthorityRoomCatchUpEvent, AuthorityRoomClientNetStats, AuthorityRoomDesyncInfo, AuthorityRoomJoinResult, AuthorityRoomNetcodeStats, AuthorityRoomSnapshot, AuthorityRoomSnapshotEvent, AuthorityRoomStoredSnapshotMeta, AuthorityRoomTransport, DeterministicAuthorityRoom, DeterministicAuthorityRoomConfig, DeterministicAuthorityRoomRestoreState } from './authority-room.js';
|
|
51
|
+
export type { CompiledDeterministicBotDocument, DeterministicBotDocument, DeterministicBotDocumentTrace, DeterministicBotDocumentTraceCounterDelta, DeterministicBotDocumentTraceCoverage } from './bot-documents.js';
|
|
52
|
+
export type { CookedDeterministicBotAsset, DeterministicBehaviorTreeMemory, DeterministicBehaviorTreeNode, DeterministicBehaviorTreeService, DeterministicBehaviorTreeStatefulTick, DeterministicBehaviorTreeStatus, DeterministicBehaviorTreeTick, DeterministicBlackboardEntry, DeterministicBlackboardValue, DeterministicBotAssetSource, DeterministicBotBlackboard, DeterministicBotSimulationMetrics, DeterministicHfsmAgent, DeterministicHfsmDefinition, DeterministicHfsmState, DeterministicHfsmTransition, DeterministicUtilityConsideration, DeterministicUtilityCurve, DeterministicUtilityNestedConsideration, DeterministicUtilitySelection } from './bot-primitives.js';
|
|
53
|
+
export type { CanonicalValue } from './canonical.js';
|
|
54
|
+
export type { StableIndexedEntry } from './collections.js';
|
|
55
|
+
export type { FixedAabb, FixedCircle, FixedVec2 } from './collision.js';
|
|
56
|
+
export type { DeterministicCommandChannelDescriptor, DeterministicCommandProtocolMetrics, DeterministicCommandTimeline, DeterministicCommandTimelineConfig, DeterministicCommandTimelineMigrationMetrics, DeterministicCommandTimelineMigrationResultInput, DeterministicCommandTimelineSnapshot, DeterministicPayloadFieldDescriptor, DeterministicPayloadFieldKind, DeterministicPlayerCommand, DeterministicRejectedCommand, DeterministicReliableCommandDefaultsMetrics } from './commands.js';
|
|
57
|
+
export type { CookedDeterministicConfigBundle, DeterministicConfigBundleFailureReasonInputs, DeterministicConfigBundleParityMetrics, DeterministicConfigBundleSource, DeterministicConfigBundleVerification, DeterministicConfigMigration } from './config-bundle.js';
|
|
58
|
+
export type { DeterministicSessionCore, DeterministicSessionInput, DeterministicSessionInputFlag, DeterministicSessionLifecycleEvent, DeterministicSessionOptions, DeterministicSessionPlayer, DeterministicSessionReplayBundle, DeterministicSessionReplayVerification, DeterministicSessionSnapshot } from './deterministic-session.js';
|
|
59
|
+
export type { DeterministicEffectDispatch, DeterministicEffectTarget, DeterministicEventEffectsAdapter, DeterministicEventEffectsAdapterConfig, DeterministicRenderSafeEffect } from './effects-adapter.js';
|
|
60
|
+
export type { DeterministicCommandAccessor, DeterministicComponentAccessor, DeterministicComponentData, DeterministicComponentDescriptor, DeterministicComponentFieldDescriptor, DeterministicComponentFieldKind, DeterministicComponentFixedArrayFieldKind, DeterministicComponentFrameHeapFieldKind, DeterministicComponentScalarFieldKind, DeterministicDslRuntimeCompileOptions, DeterministicEntityRef, DeterministicEventAccessor, DeterministicFrameHeapCollectionKind, DeterministicFrameHeapCollectionSnapshot, DeterministicFrameHeapHandle, DeterministicFrameHeapSnapshot, DeterministicFrameQueryFilter, DeterministicFrameRuntime, DeterministicFrameRuntimeAccessors, DeterministicFrameRuntimeDescriptor, DeterministicFrameRuntimeOptions, DeterministicFrameSnapshot, DeterministicQueryRow, DeterministicRuntimeMessage, DeterministicRuntimePayloadDescriptor, DeterministicRuntimeSignalHandler, DeterministicSignalAccessor, DeterministicSingletonAccessor, DeterministicStatelessSystemDiagnostic, DeterministicStatelessSystemDiagnosticReason, DeterministicStatelessSystemValidationResult, DeterministicSystem, DeterministicSystemContext, DeterministicSystemDescriptor } from './engine-runtime.js';
|
|
61
|
+
export type { DeterministicEventDeliveryScope, DeterministicEventEmitOptions, DeterministicEventPredictionState, DeterministicEventRecord, DeterministicEventTimeline } from './events.js';
|
|
62
|
+
export type { ConfirmedInputFrame, EncodedInput, InputAuthority, InputAuthorityConfig, InputAuthorityRestoreState, InputAuthorityStats, InputRejectionReason, InputSubmissionResult } from './input-authority.js';
|
|
63
|
+
export type { DeterministicInputTimelineAccumulatorState, DeterministicInputTimelineCorrection, DeterministicInputTimelineLane, DeterministicInputTimelineNegativeCases, DeterministicInputTimelineOptions, DeterministicInputTimelinePrediction, DeterministicInputTimelineReport, DeterministicInputTimelineRow, DeterministicInputTimelineVerification } from './input-timeline.js';
|
|
64
|
+
export type { InstantReplayInputFrame, InstantReplayResult, InstantReplayRunner, InstantReplayRunnerOptions, InstantReplayRunOptions, RunInstantReplayOptions } from './instant-replay.js';
|
|
65
|
+
export type { DeterministicAuthoritativeLagCompensation3DShotContext, DeterministicLagCompensatedPellet3DResult, DeterministicLagCompensatedShot3D, DeterministicLagCompensatedShot3DResult, DeterministicLagCompensatedTarget3D, DeterministicLagCompensation3DHistory, DeterministicLagCompensation3DHistoryOptions, DeterministicLagCompensation3DHistorySnapshot, DeterministicLagCompensation3DRewindSnapshot } from './lag-compensation3d.js';
|
|
66
|
+
export type { DeterministicLocalAuthorityClient, DeterministicLocalAuthorityInputMessage, DeterministicLocalAuthorityResult, DeterministicLocalAuthorityRuntime, DeterministicLocalAuthorityRuntimeOptions, DeterministicLocalAuthorityRuntimeSnapshot, DeterministicLocalAuthorityState } from './local-authority.js';
|
|
67
|
+
export type { DeterministicLocalAuthoritySnapshotIdentity, DeterministicLocalAuthoritySnapshotTransfer, DeterministicLocalAuthorityWireApplyResult, DeterministicLocalAuthorityWireAuth, DeterministicLocalAuthorityWireAuthOptions, DeterministicLocalAuthorityWireEnvelope, DeterministicLocalAuthorityWireKind, DeterministicLocalAuthorityWireReceiver, DeterministicLocalAuthorityWireReceiverOptions, DeterministicLocalAuthorityWireReceiverResult, DeterministicLocalAuthorityWireReceiverSnapshot, DeterministicLocalAuthorityWireSignOptions } from './local-authority-wire.js';
|
|
68
|
+
export type { DeterministicFixedQuaternion, DeterministicFixedVec2, DeterministicFixedVec3, DeterministicMath } from './math.js';
|
|
69
|
+
export type { DeterministicFpsAimState, DeterministicFpsInput, DeterministicKccBody, DeterministicKccInput, DeterministicKccStepResult, DeterministicLagCompensatedHitValidation, DeterministicLagCompensatedShot, DeterministicMovementCrowdMetrics, DeterministicMovementSimulationMetrics, DeterministicMovementStep, DeterministicMovementWorld, DeterministicMovingPlatform, DeterministicOneWayPlatform, DeterministicSlope, DeterministicTargetSnapshot, DeterministicTopDownBody, DeterministicTopDownBounds, DeterministicTopDownInput } from './movement.js';
|
|
70
|
+
export type { DeterministicKccBody3D, DeterministicKccCarrierPose3D, DeterministicKccCarryResult3D, DeterministicKccCarryState3D, DeterministicKccCollisionCandidate3D, DeterministicKccCollisionFilter3D, DeterministicKccExternalImpulse3D, DeterministicKccGeometry3D, DeterministicKccInput3D, DeterministicKccPhysicsImpulse3D, DeterministicKccProcessor3D, DeterministicKccStepResult3D, DeterministicKccWorld3D, DeterministicMovingPlatform3D, DeterministicSlope3D, DeterministicStep3D } from './movement3d.js';
|
|
71
|
+
export type { DeterministicAuthorityCertificationArtifact, DeterministicAuthorityCertificationVerification, DeterministicAuthorityChecksums, SyncplayClient, SyncplayClientConnection, SyncplayClientRole, SyncplayCommand, SyncplayCommandPollOptions, SyncplayCommandSubmitResult, SyncplayInput, SyncplayLifecycleResult, SyncplaySubmitResult } from './multiplayer-service.js';
|
|
72
|
+
export type { CookedDeterministicNavigationGraph, DeterministicFlowField, DeterministicNavEdge, DeterministicNavigationAgent, DeterministicNavigationGraphSource, DeterministicNavigationStepOptions, DeterministicNavigationStepResult, DeterministicNavNode, DeterministicNavRegion, DeterministicPathQuery, DeterministicPathResult, DeterministicTilemapSource } from './navigation.js';
|
|
73
|
+
export type { CookedDeterministicNavmesh, DeterministicNavmeshAgent, DeterministicNavmeshAgentStepResult, DeterministicNavmeshImportSource, DeterministicNavmeshLink, DeterministicNavmeshMovingAvoidanceObstacle, DeterministicNavmeshOffMeshTraversalState, DeterministicNavmeshOffMeshTraversalStep, DeterministicNavmeshPath, DeterministicNavmeshPoint, DeterministicNavmeshPolygon, DeterministicNavmeshSource } from './navmesh.js';
|
|
74
|
+
export type { NetworkedClientTransport, NetworkedSyncplayClient, NetworkedSyncplayClientInputDelayOptions, NetworkedSyncplayClientNetStats, NetworkedSyncplayClientOptions, NetworkedSyncplayClientPacingOptions } from './networked-client.js';
|
|
75
|
+
export type { DeterministicPauseController, DeterministicPauseState, DeterministicPauseStatus, PauseControllerOptions, PauseWrappedState } from './pause-resume.js';
|
|
76
|
+
export type { DeterministicBodyKind, DeterministicContactEvent2D, DeterministicContactEventType, DeterministicPhysicsAabbQuery2D, DeterministicPhysicsActivePair2D, DeterministicPhysicsBody2D, DeterministicPhysicsCircleCastQuery2D, DeterministicPhysicsConstraint2D, DeterministicPhysicsHit2D, DeterministicPhysicsQueryOptions2D, DeterministicPhysicsRaycastQuery2D, DeterministicPhysicsShape2D, DeterministicPhysicsShapeOverlapQuery2D, DeterministicPhysicsStepOptions2D, DeterministicPhysicsStepResult2D, DeterministicPhysicsWorld2D } from './physics2d.js';
|
|
77
|
+
export type { DeterministicContactCacheEntry3D, DeterministicJointCacheEntry3D, DeterministicPhysicsActivePair3D, DeterministicPhysicsAxisLock3D, DeterministicPhysicsBody3D, DeterministicPhysicsCallbackMask3D, DeterministicPhysicsCompoundChild3D, DeterministicPhysicsConstraint3D, DeterministicPhysicsContactDetail3D, DeterministicPhysicsContactEvent3D, DeterministicPhysicsDetailedHit3D, DeterministicPhysicsHit3D, DeterministicPhysicsImpulseApplication3D, DeterministicPhysicsOverlapQuery3D, DeterministicPhysicsPrimitiveShape3D, DeterministicPhysicsQuaternion3D, DeterministicPhysicsQueryOptions3D, DeterministicPhysicsRaycastQuery3D, DeterministicPhysicsScheduledQuery3D, DeterministicPhysicsShape3D, DeterministicPhysicsShapeCastQuery3D, DeterministicPhysicsStepResult3D, DeterministicPhysicsVec3, DeterministicPhysicsWorld3D } from './physics3d.js';
|
|
78
|
+
export type { DeterministicFrameRuntimeReplayBundleOptions, DeterministicFrameRuntimeReplayBundleVerification, DeterministicReplayBundle, DeterministicReplayBundleMismatch, DeterministicReplayBundleVerification, DeterministicReplayDebugTables, DeterministicReplayDesyncMinimization, DeterministicReplayRuntimeBeforeFrameId, DeterministicReplayRuntimeManifest, DeterministicReplayRuntimeManifestSource, DeterministicReplayRuntimeSystemId, DeterministicReplaySemanticModel, DeterministicReplaySemanticOperation, DeterministicReplaySliceOrigin, DeterministicReplaySnapshot, DeterministicReplayVerificationManifest, ReplayScoreVerificationReason, ReplayScoreVerificationResult } from './replay-bundle.js';
|
|
79
|
+
export type { AssetDescriptor, CollectionOrdering, CommandChannelDescriptor, ConfigDescriptor, DeterministicGameDescriptor, EventDescriptor, InputFieldDescriptor, InputFieldPolicy, NumericMode, PrototypeDescriptor, SchemaFieldDescriptor, SchemaFieldKind, StateFieldDescriptor, SystemDescriptor, ValidatedDeterministicGameDescriptor } from './schema.js';
|
|
80
|
+
export type { DeterministicSchemaArtifacts, SchemaFrameDump } from './schema-artifacts.js';
|
|
81
|
+
export type { SchemaBinaryProof, SchemaBinarySourceOptions, SchemaTypesOptions } from './schema-codegen.js';
|
|
82
|
+
export type { DeterministicBinarySerializer, DeterministicDslDeclaration, DeterministicDslDeclarationKind, DeterministicDslDictionaryEntry, DeterministicDslDictionaryFieldKind, DeterministicDslField, DeterministicDslFieldKind, DeterministicDslFixedArrayFieldKind, DeterministicDslListFieldKind, DeterministicDslScalarFieldKind, DeterministicDslScalarValue, DeterministicDslSchema, DeterministicDslSetFieldKind, DeterministicDslValue } from './schema-dsl-binary.js';
|
|
83
|
+
export type { OpenRoomTransport, SyncplaySession, SyncplaySessionConfig, SyncplaySessionMode } from './sdk-session.js';
|
|
84
|
+
export type { CollectedSnapshotTransfer, CreateSnapshotTransferOptions, DeterministicStateSnapshot, DeterministicStateSnapshotDecodeRejection, DeterministicStateSnapshotDecodeResult, SnapshotTransferCollector, SnapshotTransferCollectorOptions, SnapshotTransferCompleteResult, SnapshotTransferRejection, SnapshotTransferStepResult } from './session-snapshot.js';
|
|
85
|
+
export type { DeterministicSessionDecodeRejection, DeterministicSessionDecodeResult, DeterministicSessionMessage, DeterministicSessionMessageKind, DeterministicSessionRole } from './session-wire.js';
|
|
86
|
+
export type { DeterministicSignal, DeterministicSignalBus, DeterministicSignalBusSnapshot, DeterministicSignalSubscription } from './signals.js';
|
|
87
|
+
export type { DeterministicSparseSet, DeterministicSparseSetSnapshot } from './sparse-set.js';
|
|
88
|
+
export type { DeterministicLifecycleCounterSummary, DeterministicLifecycleRunner, DeterministicLifecycleSignal, DeterministicLifecycleSnapshot, DeterministicLifecycleSystemContext, DeterministicLifecycleSystemDescriptor, DeterministicLifecycleSystemHooks } from './system-lifecycle.js';
|
|
57
89
|
export type { DeterministicStep, ReplayFile, ReplayVerificationResult } from './types.js';
|
package/dist/browser.js
CHANGED
|
@@ -1,53 +1,48 @@
|
|
|
1
|
-
export
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export {
|
|
24
|
-
export
|
|
25
|
-
export * from './instant-replay.js';
|
|
26
|
-
export * from './pause-resume.js';
|
|
27
|
-
export * from './session-promotion.js';
|
|
28
|
-
export * from './lag-compensation3d.js';
|
|
29
|
-
export * from './local-authority.js';
|
|
30
|
-
export * from './local-authority-wire.js';
|
|
31
|
-
export * from './input-authority.js';
|
|
32
|
-
export * from './session-wire.js';
|
|
33
|
-
export * from './session-snapshot.js';
|
|
34
|
-
export * from './authority-room.js';
|
|
35
|
-
export * from './networked-client.js';
|
|
36
|
-
export * from './math.js';
|
|
1
|
+
// Curated public surface — every export here is supported API. Additions require regenerating tests/golden/export-surface.json.
|
|
2
|
+
export { cookDeterministicAnimation, createDeterministicAnimationRuntimeState, reconstructDeterministicAnimationEvents, stepDeterministicAnimation } from './animation.js';
|
|
3
|
+
export { assertAssetManifestMatches, cookDeterministicAssets, materializeDeterministicMapEntities, materializePrototypeEntities, stableAssetCookJson, validatePrototypeEntitiesAgainstFrameRuntime } from './asset-cooking.js';
|
|
4
|
+
export { createDeterministicAuthorityRoom } from './authority-room.js';
|
|
5
|
+
export { compileDeterministicBotDocument, summarizeDeterministicBotDocumentTraceCounterDelta, summarizeDeterministicBotDocumentTraceCoverage, traceDeterministicBotDocument } from './bot-documents.js';
|
|
6
|
+
export { cookDeterministicBotAsset, createDeterministicBotBlackboard, getBlackboardValue, runDeterministicBotSimulation, selectDeterministicUtility, tickDeterministicBehaviorTree, tickDeterministicBehaviorTreeWithMemory, tickDeterministicHfsm } from './bot-primitives.js';
|
|
7
|
+
export { canonicalize, canonicalStringify, cloneCanonical, decodeCanonicalBytes, decodeCanonicalValue, decodeUtf8, defaultChecksum, encodeCanonicalBytes, encodeUtf8 } from './canonical.js';
|
|
8
|
+
export { createStableIndexedMap, deterministicShuffle, stableEntries, stableSortedKeys } from './collections.js';
|
|
9
|
+
export { aabbContainsPoint, aabbIntersects, circleIntersects, circleIntersectsAabb, closestPointOnSegment, fixedAabb, fixedCircle, fixedVec2, orientation, pointOnSegment, segmentPointDistance, segmentSegmentDistance, segmentsIntersect, sortAabbsByStableId, translateAabb } from './collision.js';
|
|
10
|
+
export { assertDeterministicPayloadFields, createDeterministicCommandTimeline, createDeterministicCommandTimelineSnapshot, deterministicPayloadMatchesFields, evaluateDeterministicCommandTimelineMigrationResult } from './commands.js';
|
|
11
|
+
export { cookDeterministicConfigBundle, evaluateDeterministicConfigBundleParityResult, summarizeDeterministicConfigBundleFailureReasons, verifyDeterministicConfigBundle } from './config-bundle.js';
|
|
12
|
+
export { createDeterministicSessionCore, createDeterministicSessionReplayBundle, verifyDeterministicSessionRuntimeReplay } from './deterministic-session.js';
|
|
13
|
+
export { createDeterministicEventEffectsAdapter } from './effects-adapter.js';
|
|
14
|
+
export { assertDeterministicFrameHeapStaleHandleError, assertDeterministicFrameSystemsStateless, compileDeterministicDslRuntimeDescriptor, createDeterministicBitset, createDeterministicFrameRuntime, createDeterministicFrameRuntimeAccessors, createDeterministicSlotMap, createDeterministicSparseSetFrameRuntime, generateDeterministicFrameRuntimeSource, isDeterministicFrameHeapStaleHandleError, runDeterministicFrameRuntimeMutationCorpus, validateDeterministicFrameSystemsStateless } from './engine-runtime.js';
|
|
15
|
+
export { createDeterministicEventTimeline, filterDeterministicEventsForPlayer } from './events.js';
|
|
16
|
+
export { createInputAuthority } from './input-authority.js';
|
|
17
|
+
export { accumulateDeterministicInputTimelineState, evaluateDeterministicInputTimelineResult, sortDeterministicInputTimelineFlags } from './input-timeline.js';
|
|
18
|
+
export { createInstantReplayRunner, runInstantReplay } from './instant-replay.js';
|
|
19
|
+
export { buildDeterministicLagCompensatedHitboxProxies3D, createDeterministicLagCompensation3DHistory, rewindDeterministicLagCompensatedTargets3D, validateDeterministicAuthoritativeLagCompensatedShot3D, validateDeterministicLagCompensatedShot3D } from './lag-compensation3d.js';
|
|
20
|
+
export { createDeterministicLocalAuthorityRuntime } from './local-authority.js';
|
|
21
|
+
export { applyDeterministicLocalAuthorityCommandBundleEnvelope, applyDeterministicLocalAuthorityInputBundleEnvelope, createDeterministicLocalAuthorityAckEnvelope, createDeterministicLocalAuthorityCommandBundleEnvelope, createDeterministicLocalAuthorityCorrectionEnvelope, createDeterministicLocalAuthorityInputBundleEnvelope, createDeterministicLocalAuthoritySnapshotChunkEnvelope, createDeterministicLocalAuthoritySnapshotCompleteEnvelope, createDeterministicLocalAuthoritySnapshotEnvelope, createDeterministicLocalAuthoritySnapshotOfferEnvelope, createDeterministicLocalAuthoritySnapshotRequestEnvelope, createDeterministicLocalAuthoritySnapshotTransfer, createDeterministicLocalAuthorityWireAuth, createDeterministicLocalAuthorityWireReceiver, decodeDeterministicLocalAuthorityWireEnvelope, deterministicLocalAuthorityWireProtocol, encodeDeterministicLocalAuthorityWireEnvelope } from './local-authority-wire.js';
|
|
22
|
+
export { createDeterministicMath } from './math.js';
|
|
23
|
+
export { rewindDeterministicTargets, runDeterministicMovementCrowdSimulation, runDeterministicMovementSimulation, stepDeterministicFpsAim, stepDeterministicKcc2D, stepDeterministicTopDownMover, validateDeterministicLagCompensatedHit } from './movement.js';
|
|
24
|
+
export { stepDeterministicCarry3D, stepDeterministicKcc3D } from './movement3d.js';
|
|
37
25
|
export { createSyncplayClient } from './multiplayer-service.js';
|
|
38
|
-
export
|
|
39
|
-
export
|
|
40
|
-
export
|
|
41
|
-
export
|
|
42
|
-
export
|
|
43
|
-
export
|
|
44
|
-
export
|
|
45
|
-
export
|
|
46
|
-
export
|
|
47
|
-
export
|
|
48
|
-
export
|
|
49
|
-
export
|
|
50
|
-
export
|
|
51
|
-
export
|
|
52
|
-
export
|
|
53
|
-
export
|
|
26
|
+
export { applyDeterministicReciprocalAvoidance, cookDeterministicNavigationGraph, cookTilemapNavigationGraph, createDeterministicFlowField, findDeterministicPath, smoothDeterministicPath, stepDeterministicNavigationAgents } from './navigation.js';
|
|
27
|
+
export { cookDeterministicNavmesh, cookImportedDeterministicNavmesh, findDeterministicNavmeshPath, findDeterministicNavmeshPointPath, locateDeterministicNavmeshPolygon, runDeterministicNavmeshStress, smoothDeterministicNavmeshPath, stepDeterministicNavmeshAgents, stepDeterministicNavmeshOffMeshTraversal } from './navmesh.js';
|
|
28
|
+
export { createNetworkedSyncplayClient } from './networked-client.js';
|
|
29
|
+
export { fbm2D, hash2, hashUint32, valueNoise1D, valueNoise2D } from './noise.js';
|
|
30
|
+
export { createOfflineSession } from './offline-session.js';
|
|
31
|
+
export { createPauseController } from './pause-resume.js';
|
|
32
|
+
export { circleCastDeterministicPhysics2D, createDeterministicPhysicsWorld2D, nearestDeterministicPhysicsHit2D, queryDeterministicPhysicsAabb2D, queryDeterministicPhysicsShapeOverlap2D, raycastAllDeterministicPhysics2D, raycastDeterministicPhysics2D, stepDeterministicPhysicsWorld2D } from './physics2d.js';
|
|
33
|
+
export { applyDeterministicImpulse3D, applyDeterministicImpulses3D, contactDetailsDeterministicPhysics3D, createDeterministicPhysicsWorld3D, deriveInverseInertia, deterministicPhysicsBodyById3D, deterministicPhysicsCallback3D, overlapDeterministicPhysics3D, raycastDeterministicPhysics3D, raycastDeterministicPhysics3DDetailed, runDeterministicPhysics3DStress, setDeterministicBodyVelocity3D, shapeCastDeterministicPhysics3D, shapeCastDeterministicPhysics3DDetailed, stepDeterministicPhysicsWorld3D } from './physics3d.js';
|
|
34
|
+
export { createDeterministicR3fRenderAdapter as createDeterministicR3fAdapter, createDeterministicR3fRenderAdapter, interpolateDeterministicRenderNumber, interpolateDeterministicRenderVec2 } from './r3f-render-adapter.js';
|
|
35
|
+
export { verifyReplayWithDescriptor as verifyDeterministicReplay, verifyReplay } from './replay.js';
|
|
36
|
+
export { createDeterministicReplayBundle, createDeterministicReplayDebugTables, createDeterministicReplayRuntimeManifest, minimizeDeterministicReplayDesync, minimizeDeterministicReplayDesyncBundle, sliceDeterministicReplayBundle, verifyDeterministicFrameRuntimeReplayBundle, verifyDeterministicReplayBundle, verifyDeterministicSelfContainedFrameRuntimeReplayBundle, verifyReplayScoreAgainstTrustedRuntime } from './replay-bundle.js';
|
|
37
|
+
export { defineSyncplayGame, stableDescriptorId } from './schema.js';
|
|
38
|
+
export { createSchemaArtifacts } from './schema-artifacts.js';
|
|
39
|
+
export { createDeterministicDescriptorBinarySchema, generateSchemaBinarySource, generateSchemaTypes, proveSchemaBinaryRoundTrip } from './schema-codegen.js';
|
|
40
|
+
export { createDeterministicBinarySerializer, deterministicDslMaxPlayers, parseDeterministicSchemaDsl, stableDeterministicDslSchemaJson } from './schema-dsl-binary.js';
|
|
41
|
+
export { createSyncplayOfflineRuntime as createSyncplayGameRuntime, createSyncplayOfflineRuntime } from './sdk-offline.js';
|
|
42
|
+
export { createSyncplaySession } from './sdk-session.js';
|
|
43
|
+
export { createSessionFromPromotionSnapshot, exportPromotionSnapshot } from './session-promotion.js';
|
|
44
|
+
export { base64ToBytes, bytesToBase64, createSnapshotTransferCollector, createSnapshotTransferFromBytes, decodeDeterministicStateSnapshot, DEFAULT_MAX_SNAPSHOT_BYTES, DEFAULT_SNAPSHOT_CHUNK_SIZE, deterministicRoomDescriptorHash, encodeDeterministicStateSnapshot } from './session-snapshot.js';
|
|
45
|
+
export { decodeDeterministicSessionMessage, deterministicSessionWireVersion, encodeDeterministicSessionMessage } from './session-wire.js';
|
|
46
|
+
export { createDeterministicSignalBus } from './signals.js';
|
|
47
|
+
export { createDeterministicSparseSet } from './sparse-set.js';
|
|
48
|
+
export { createDeterministicLifecycleRunner, summarizeDeterministicLifecycleCounters } from './system-lifecycle.js';
|
package/dist/certification.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { runPredictionCullingLab } from './prediction-culling.js';
|
|
2
2
|
import { type ProtocolRollbackGame } from './protocol-lab.js';
|
|
3
|
-
export type CertificationFixtureKind = 'event-callbacks' | 'bot-replacement' | 'ecs-lite' | 'external-physics-gate' | 'fixed-foundation' | 'genre-128' | 'kcc-lite' | 'navigation-grid' | 'netcode' | 'physics-builtin' | 'prediction-culling' | 'projectile-hitscan' | 'protocol-matrix' | 'reference-samples' | 'replay-node' | 'replay-browser' | 'schema-tooling' | 'static-analysis';
|
|
3
|
+
export type CertificationFixtureKind = 'event-callbacks' | 'bot-replacement' | 'ecs-lite' | 'external-physics-gate' | 'fixed-foundation' | 'genre-128' | 'kcc-lite' | 'navigation-grid' | 'netcode' | 'physics-builtin' | 'physics-rigid-vehicle' | 'prediction-culling' | 'projectile-hitscan' | 'protocol-matrix' | 'reference-samples' | 'replay-node' | 'replay-browser' | 'schema-tooling' | 'static-analysis';
|
|
4
4
|
export type CertificationRuntimeTarget = 'node' | 'chromium' | 'webkit';
|
|
5
5
|
export type CertificationResult = 'pass' | 'fail' | 'skip';
|
|
6
6
|
export type CertificationNetcodeShape = 'input-minimal' | 'moderate-state' | 'command-bursts';
|
|
@@ -22,7 +22,7 @@ export interface CertificationManifest {
|
|
|
22
22
|
readonly fixtures?: readonly CertificationFixture[];
|
|
23
23
|
}
|
|
24
24
|
export type CertificationFixtureTier = 'required' | 'optional' | 'experimental' | 'optional-browser' | 'optional-integration' | 'stress';
|
|
25
|
-
export type CertificationFixture = CertificationBotReplacementFixture | CertificationEcsLiteFixture | CertificationExternalPhysicsGateFixture | CertificationEventCallbacksFixture | CertificationFixedFoundationFixture | CertificationGenre128Fixture | CertificationKccLiteFixture | CertificationNavigationGridFixture | CertificationNetcodeFixture | CertificationPhysicsBuiltinFixture | CertificationPredictionCullingFixture | CertificationProjectileHitscanFixture | CertificationProtocolMatrixFixture | CertificationReferenceSamplesFixture | CertificationReplayNodeFixture | CertificationSchemaToolingFixture | CertificationStaticAnalysisFixture | CertificationBrowserReplayFixture;
|
|
25
|
+
export type CertificationFixture = CertificationBotReplacementFixture | CertificationEcsLiteFixture | CertificationExternalPhysicsGateFixture | CertificationEventCallbacksFixture | CertificationFixedFoundationFixture | CertificationGenre128Fixture | CertificationKccLiteFixture | CertificationNavigationGridFixture | CertificationNetcodeFixture | CertificationPhysicsBuiltinFixture | CertificationPhysicsRigidVehicleFixture | CertificationPredictionCullingFixture | CertificationProjectileHitscanFixture | CertificationProtocolMatrixFixture | CertificationReferenceSamplesFixture | CertificationReplayNodeFixture | CertificationSchemaToolingFixture | CertificationStaticAnalysisFixture | CertificationBrowserReplayFixture;
|
|
26
26
|
export interface CertificationFixtureBase {
|
|
27
27
|
readonly fixtureId: string;
|
|
28
28
|
readonly kind: CertificationFixtureKind;
|
|
@@ -66,6 +66,12 @@ export interface CertificationEventCallbacksFixture extends CertificationFixture
|
|
|
66
66
|
export interface CertificationPhysicsBuiltinFixture extends CertificationFixtureBase {
|
|
67
67
|
readonly kind: 'physics-builtin';
|
|
68
68
|
readonly runtimeTarget?: 'node';
|
|
69
|
+
/** Physics engine lane to certify (defaults to the fixed-point circle lane). */
|
|
70
|
+
readonly engine?: 'builtin-fixed' | 'builtin-rigid';
|
|
71
|
+
}
|
|
72
|
+
export interface CertificationPhysicsRigidVehicleFixture extends CertificationFixtureBase {
|
|
73
|
+
readonly kind: 'physics-rigid-vehicle';
|
|
74
|
+
readonly runtimeTarget?: 'node';
|
|
69
75
|
}
|
|
70
76
|
export interface CertificationPredictionCullingFixture extends CertificationFixtureBase {
|
|
71
77
|
readonly kind: 'prediction-culling';
|
|
@@ -142,7 +148,7 @@ export interface CertificationFixtureReport {
|
|
|
142
148
|
readonly failures: readonly string[];
|
|
143
149
|
readonly result: CertificationResult;
|
|
144
150
|
}
|
|
145
|
-
export type CertificationMetrics = CertificationBotReplacementMetrics | CertificationEcsLiteMetrics | CertificationExternalPhysicsGateMetrics | CertificationEventCallbacksMetrics | CertificationFixedFoundationMetrics | CertificationGenre128Metrics | CertificationKccLiteMetrics | CertificationNavigationGridMetrics | CertificationNetcodeMetrics | CertificationPhysicsBuiltinMetrics | CertificationPredictionCullingMetrics | CertificationProjectileHitscanMetrics | CertificationProtocolMatrixMetrics | CertificationReferenceSamplesMetrics | CertificationReplayNodeMetrics | CertificationSchemaToolingMetrics | CertificationStaticAnalysisMetrics | CertificationBrowserReplayMetrics;
|
|
151
|
+
export type CertificationMetrics = CertificationBotReplacementMetrics | CertificationEcsLiteMetrics | CertificationExternalPhysicsGateMetrics | CertificationEventCallbacksMetrics | CertificationFixedFoundationMetrics | CertificationGenre128Metrics | CertificationKccLiteMetrics | CertificationNavigationGridMetrics | CertificationNetcodeMetrics | CertificationPhysicsBuiltinMetrics | CertificationPhysicsRigidVehicleMetrics | CertificationPredictionCullingMetrics | CertificationProjectileHitscanMetrics | CertificationProtocolMatrixMetrics | CertificationReferenceSamplesMetrics | CertificationReplayNodeMetrics | CertificationSchemaToolingMetrics | CertificationStaticAnalysisMetrics | CertificationBrowserReplayMetrics;
|
|
146
152
|
export interface CertificationNetcodeMetrics {
|
|
147
153
|
readonly shape: CertificationNetcodeShape;
|
|
148
154
|
readonly game: ProtocolRollbackGame;
|
|
@@ -171,6 +177,18 @@ export interface CertificationFixedFoundationMetrics {
|
|
|
171
177
|
readonly mul: number;
|
|
172
178
|
readonly div: number;
|
|
173
179
|
readonly clamp: number;
|
|
180
|
+
readonly sqrt: number;
|
|
181
|
+
readonly exp: number;
|
|
182
|
+
readonly atan2Axis: number;
|
|
183
|
+
readonly normalizeLen: number;
|
|
184
|
+
readonly vec3Cross: {
|
|
185
|
+
readonly x: number;
|
|
186
|
+
readonly y: number;
|
|
187
|
+
readonly z: number;
|
|
188
|
+
};
|
|
189
|
+
readonly segmentDistance: number;
|
|
190
|
+
readonly sample: number;
|
|
191
|
+
readonly noiseSample: number;
|
|
174
192
|
};
|
|
175
193
|
readonly vectors: {
|
|
176
194
|
readonly a: {
|
|
@@ -308,6 +326,17 @@ export interface CertificationKccLiteMetrics {
|
|
|
308
326
|
readonly finalChecksum: string;
|
|
309
327
|
readonly checksumConverged: boolean;
|
|
310
328
|
}
|
|
329
|
+
export interface CertificationPhysicsRigidVehicleMetrics {
|
|
330
|
+
readonly checksum: string;
|
|
331
|
+
readonly restoredChecksum: string;
|
|
332
|
+
readonly permutedChecksum: string;
|
|
333
|
+
readonly rollbackEquivalent: boolean;
|
|
334
|
+
readonly stableUnderAuthoringOrderPermutation: boolean;
|
|
335
|
+
readonly impulseSamples: number;
|
|
336
|
+
readonly groundedWheelSamples: number;
|
|
337
|
+
readonly impulsesQuantizedClean: boolean;
|
|
338
|
+
readonly checksumConverged: boolean;
|
|
339
|
+
}
|
|
311
340
|
export interface CertificationNavigationGridMetrics {
|
|
312
341
|
readonly pathChecksum: string;
|
|
313
342
|
readonly pathsFound: number;
|