@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.
Files changed (75) hide show
  1. package/README.md +116 -15
  2. package/dist/browser.d.ts +87 -55
  3. package/dist/browser.js +47 -52
  4. package/dist/certification.d.ts +32 -3
  5. package/dist/certification.js +88 -3
  6. package/dist/cjs/browser.js +259 -87
  7. package/dist/cjs/certification.js +87 -2
  8. package/dist/cjs/collision.js +58 -0
  9. package/dist/cjs/creator.js +2 -1
  10. package/dist/cjs/engine-complete.js +213 -3
  11. package/dist/cjs/engine-parity-matrix.js +19 -4
  12. package/dist/cjs/index.js +199 -132
  13. package/dist/cjs/math.js +342 -15
  14. package/dist/cjs/movement3d.js +230 -1
  15. package/dist/cjs/node.js +5 -1
  16. package/dist/cjs/noise.js +58 -0
  17. package/dist/cjs/physics-cert.js +147 -6
  18. package/dist/cjs/physics2d.js +10 -4
  19. package/dist/cjs/physics3d-joints.js +637 -0
  20. package/dist/cjs/physics3d-shared.js +288 -0
  21. package/dist/cjs/physics3d-solver.js +1351 -0
  22. package/dist/cjs/physics3d-vehicle.js +467 -0
  23. package/dist/cjs/physics3d.js +1057 -223
  24. package/dist/cjs/random.js +49 -0
  25. package/dist/cjs/replay-bundle.js +127 -20
  26. package/dist/cjs/sample-scenes.js +3 -0
  27. package/dist/cjs/sdk-offline.js +6 -32
  28. package/dist/cjs/sdk-session.js +156 -0
  29. package/dist/cjs/session-build.js +42 -0
  30. package/dist/cjs/testing.js +107 -0
  31. package/dist/cli.js +40 -12
  32. package/dist/collision.d.ts +12 -0
  33. package/dist/collision.js +52 -0
  34. package/dist/creator.d.ts +1 -1
  35. package/dist/creator.js +1 -1
  36. package/dist/engine-complete.js +214 -4
  37. package/dist/engine-parity-matrix.js +19 -4
  38. package/dist/index.d.ts +94 -89
  39. package/dist/index.js +45 -56
  40. package/dist/math.d.ts +59 -6
  41. package/dist/math.js +342 -15
  42. package/dist/movement3d.d.ts +73 -0
  43. package/dist/movement3d.js +229 -1
  44. package/dist/node.d.ts +4 -0
  45. package/dist/node.js +2 -0
  46. package/dist/noise.d.ts +7 -0
  47. package/dist/noise.js +51 -0
  48. package/dist/physics-cert.d.ts +1 -1
  49. package/dist/physics-cert.js +147 -6
  50. package/dist/physics2d.js +10 -4
  51. package/dist/physics3d-joints.d.ts +94 -0
  52. package/dist/physics3d-joints.js +634 -0
  53. package/dist/physics3d-shared.d.ts +72 -0
  54. package/dist/physics3d-shared.js +257 -0
  55. package/dist/physics3d-solver.d.ts +197 -0
  56. package/dist/physics3d-solver.js +1346 -0
  57. package/dist/physics3d-vehicle.d.ts +84 -0
  58. package/dist/physics3d-vehicle.js +463 -0
  59. package/dist/physics3d.d.ts +108 -8
  60. package/dist/physics3d.js +1006 -177
  61. package/dist/random.d.ts +7 -0
  62. package/dist/random.js +49 -0
  63. package/dist/replay-bundle.d.ts +40 -1
  64. package/dist/replay-bundle.js +126 -20
  65. package/dist/sample-scenes.js +3 -0
  66. package/dist/sdk-offline.js +6 -32
  67. package/dist/sdk-session.d.ts +47 -0
  68. package/dist/sdk-session.js +153 -0
  69. package/dist/session-build.d.ts +21 -0
  70. package/dist/session-build.js +39 -0
  71. package/dist/testing.d.ts +52 -0
  72. package/dist/testing.js +45 -0
  73. package/dist/tools/vite-plugin.d.ts +8 -0
  74. package/dist/tools/vite-plugin.js +63 -9
  75. package/package.json +11 -3
package/dist/index.d.ts CHANGED
@@ -1,101 +1,106 @@
1
+ export { cookDeterministicAnimation, createDeterministicAnimationRuntimeState, reconstructDeterministicAnimationEvents, stepDeterministicAnimation } from './animation.js';
2
+ export { assertAssetManifestMatches, cookDeterministicAssets, materializePrototypeEntities, stableAssetCookJson } 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';
1
6
  export { canonicalize, canonicalStringify, cloneCanonical, decodeCanonicalValue, decodeUtf8, defaultChecksum, encodeUtf8 } from './canonical.js';
2
- export type { CanonicalValue } from './canonical.js';
3
- export * from './animation.js';
4
- export { cookDeterministicBotAsset, createDeterministicBotBlackboard, getBlackboardValue, runDeterministicBotSimulation, selectDeterministicUtility, tickDeterministicBehaviorTree, tickDeterministicBehaviorTreeWithMemory, tickDeterministicHfsm, } from './bot-primitives.js';
5
- export * from './bot-documents.js';
6
- export * from './commands.js';
7
- export * from './config-bundle.js';
8
- export * from './input-timeline.js';
9
- export * from './lag-compensation3d.js';
10
- export type { CookedDeterministicBotAsset, DeterministicBehaviorTreeNode, DeterministicBehaviorTreeStatus, DeterministicBehaviorTreeTick, DeterministicBlackboardEntry, DeterministicBlackboardValue, DeterministicBotAssetSource, DeterministicBotBlackboard, DeterministicBotSimulationMetrics, DeterministicHfsmAgent, DeterministicHfsmDefinition, DeterministicHfsmState, DeterministicHfsmTransition, DeterministicUtilityConsideration, DeterministicUtilitySelection, } from './bot-primitives.js';
11
- export { assertAssetManifestMatches, cookDeterministicAssets, materializePrototypeEntities, stableAssetCookJson, } from './asset-cooking.js';
12
- export type { DeterministicAssetCookManifest, DeterministicAssetCookResult, DeterministicAssetDependency, DeterministicAssetRecord, DeterministicAssetSource, DeterministicCookedAsset, DeterministicPrototypeEntity, } from './asset-cooking.js';
13
- export type { CertificationBudgetResult, CertificationBudgets, CertificationBotReplacementFixture, CertificationBotReplacementMetrics, CertificationEcsLiteFixture, CertificationEcsLiteMetrics, CertificationEventCallbacksFixture, CertificationEventCallbacksMetrics, CertificationExternalPhysicsGateFixture, CertificationExternalPhysicsGateMetrics, CertificationFixture, CertificationFixtureKind, CertificationFixtureReport, CertificationFixtureTier, CertificationFixedFoundationFixture, CertificationFixedFoundationMetrics, CertificationFrameModelMetrics, CertificationGenre128Fixture, CertificationGenre128Metrics, CertificationKccLiteFixture, CertificationKccLiteMetrics, CertificationManifest, CertificationMetrics, CertificationNetcodeFixture, CertificationNetcodeMetrics, CertificationNetcodeShape, CertificationPhysicsBuiltinFixture, CertificationPhysicsBuiltinMetrics, CertificationPredictionCullingFixture, CertificationPredictionCullingMetrics, CertificationProjectileHitscanFixture, CertificationProjectileHitscanMetrics, CertificationProtocolMatrixFixture, CertificationProtocolMatrixMetrics, CertificationProtocolProfileId, CertificationProtocolProfileMetrics, CertificationSchemaToolingFixture, CertificationSchemaToolingMetrics, CertificationStaticAnalysisFixture, CertificationStaticAnalysisMetrics, CertificationDesyncArtifact, CertificationReplayNodeFixture, CertificationReplayNodeMetrics, CertificationResult, CertificationRuntimeTarget, CertificationSuiteReport, CertificationSuiteRun, } from './certification.js';
14
- export { aabbContainsPoint, aabbIntersects, circleIntersects, circleIntersectsAabb, fixedAabb, fixedCircle, fixedVec2, sortAabbsByStableId, translateAabb, } from './collision.js';
15
- export type { FixedAabb, FixedCircle, FixedVec2 } from './collision.js';
16
7
  export { createStableIndexedMap, deterministicShuffle, stableEntries, stableSortedKeys } from './collections.js';
17
- export type { StableIndexedEntry } from './collections.js';
18
- export { combineDeterministicPhysicsMaterial, cookStaticColliders, detectVerticalCcdHit, quantizeFpsAim, stepKccLiteBody, stepTopDownBody, } from './deterministic-primitives.js';
19
- export type { CookedDeterministicStaticCollider, CookedStaticColliderSet, DeterministicPhysicsMaterial, DeterministicStaticCollider, FpsAimInput, MovementBody, MovementInput, QuantizedFpsAim, } from './deterministic-primitives.js';
20
- export { createDeterministicEventEffectsAdapter } from './effects-adapter.js';
21
- export type { DeterministicEffectDispatch, DeterministicEffectTarget, DeterministicEventEffectsAdapter, DeterministicEventEffectsAdapterConfig, DeterministicRenderSafeEffect, } from './effects-adapter.js';
22
- export { createDeterministicEventTimeline, filterDeterministicEventsForPlayer, runDeterministicEventKeywordFixture } from './events.js';
23
- export type { DeterministicEventDeliveryScope, DeterministicEventEmitOptions, DeterministicEventKeywordFixtureResult, DeterministicEventPredictionState, DeterministicEventRecord, DeterministicEventTimeline, } from './events.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 { combineDeterministicPhysicsMaterial, cookStaticColliders, detectVerticalCcdHit, quantizeFpsAim, stepKccLiteBody, stepTopDownBody } from './deterministic-primitives.js';
12
+ export { createDeterministicSessionCore, createDeterministicSessionReplayBundle, verifyDeterministicSessionRuntimeReplay } from './deterministic-session.js';
24
13
  export { createEcsLiteWorld } from './ecs-lite.js';
25
- export type { EcsComponentName, EcsEntityId, EcsLiteQueryResult, EcsLiteSnapshot, EcsLiteWorld } from './ecs-lite.js';
26
- export * from './engine-core-proof.js';
27
- export * from './engine-complete.js';
28
- export * from './engine-runtime.js';
29
- export * from './deterministic-session.js';
30
- export { deterministicButtonInitialState, runDeterministicButtonFixture, runDeterministicDescriptorButtonFixture, stepDeterministicButton, } from './input-button.js';
31
- export type { DeterministicButtonFixtureResult, DeterministicButtonState, DeterministicButtonStep, DeterministicDescriptorButtonFixtureResult, } from './input-button.js';
32
- export { createCounterDuelSession, counterDuelDefaultInput, makeCounterDuelInput, runCounterDuelExample, verifyCounterDuelReplay, } from './examples/counter-duel.js';
33
- export { createFixedArenaDescriptor, createFixedArenaSession, createInitialFixedArenaState, fixedArenaDefaultInput, fixedArenaStep, makeFixedArenaInput, projectFixedArenaReferenceView, projectFixedArenaRenderState, runFixedArenaExample, verifyFixedArenaReplay, } from './examples/fixed-arena.js';
34
- export type { CounterDuelInput, CounterDuelOptions, CounterDuelResult, CounterDuelSessionOptions, CounterDuelState, } from './examples/counter-duel.js';
35
- export type { FixedArenaInput, FixedArenaOptions, FixedArenaReferenceView, FixedArenaRenderState, FixedArenaResult, FixedArenaSessionOptions, FixedArenaState, } from './examples/fixed-arena.js';
14
+ export { createDeterministicEventEffectsAdapter } from './effects-adapter.js';
15
+ export { engineCompleteExecutionProofHash, runDeterministicEngineCompleteSuite, stableDeterministicEngineCompleteJson } from './engine-complete.js';
16
+ export { assertDeterministicFrameHeapStaleHandleError, assertDeterministicFrameSystemsStateless, compileDeterministicDslRuntimeDescriptor, createDeterministicBitset, createDeterministicFrameRuntime, createDeterministicFrameRuntimeAccessors, createDeterministicSlotMap, createDeterministicSparseSetFrameRuntime, generateDeterministicFrameRuntimeSource, isDeterministicFrameHeapStaleHandleError, runDeterministicFrameRuntimeMutationCorpus, validateDeterministicFrameSystemsStateless } from './engine-runtime.js';
36
17
  export { SyncplayError } from './errors.js';
18
+ export { createDeterministicEventTimeline, filterDeterministicEventsForPlayer } from './events.js';
19
+ export { createInputAuthority } from './input-authority.js';
20
+ export { accumulateDeterministicInputTimelineState, evaluateDeterministicInputTimelineResult, sortDeterministicInputTimelineFlags } from './input-timeline.js';
21
+ export { buildDeterministicLagCompensatedHitboxProxies3D, createDeterministicLagCompensation3DHistory, rewindDeterministicLagCompensatedTargets3D, validateDeterministicAuthoritativeLagCompensatedShot3D, validateDeterministicLagCompensatedShot3D } from './lag-compensation3d.js';
22
+ export { createDeterministicLocalAuthorityRuntime } from './local-authority.js';
23
+ export { applyDeterministicLocalAuthorityCommandBundleEnvelope, applyDeterministicLocalAuthorityInputBundleEnvelope, createDeterministicLocalAuthorityAckEnvelope, createDeterministicLocalAuthorityCommandBundleEnvelope, createDeterministicLocalAuthorityCorrectionEnvelope, createDeterministicLocalAuthorityInputBundleEnvelope, createDeterministicLocalAuthoritySnapshotChunkEnvelope, createDeterministicLocalAuthoritySnapshotCompleteEnvelope, createDeterministicLocalAuthoritySnapshotEnvelope, createDeterministicLocalAuthoritySnapshotOfferEnvelope, createDeterministicLocalAuthoritySnapshotRequestEnvelope, createDeterministicLocalAuthoritySnapshotTransfer, createDeterministicLocalAuthorityWireAuth, createDeterministicLocalAuthorityWireReceiver, decodeDeterministicLocalAuthorityWireEnvelope, deterministicLocalAuthorityWireProtocol, encodeDeterministicLocalAuthorityWireEnvelope } from './local-authority-wire.js';
37
24
  export { createDeterministicMath } from './math.js';
38
- export { createDeterministicMockNetworkAdapter } from './mock-network-adapter.js';
39
- export type { DeterministicMockNetworkAdapter, DeterministicMockNetworkReplay } from './mock-network-adapter.js';
40
- export { runDeterministicMovementCrowdSimulation, rewindDeterministicTargets, runDeterministicMovementSimulation, stepDeterministicFpsAim, stepDeterministicKcc2D, stepDeterministicTopDownMover, validateDeterministicLagCompensatedHit, } from './movement.js';
41
- export * from './movement3d.js';
42
- export type { DeterministicFpsAimState, DeterministicFpsInput, DeterministicKccBody, DeterministicKccInput, DeterministicKccStepResult, DeterministicMovementCrowdMetrics, DeterministicMovementSimulationMetrics, DeterministicMovementWorld, DeterministicMovingPlatform, DeterministicOneWayPlatform, DeterministicSlope, DeterministicMovementStep, DeterministicTargetSnapshot, DeterministicTopDownBody, DeterministicTopDownBounds, DeterministicTopDownInput, } from './movement.js';
43
- export { applyDeterministicReciprocalAvoidance, cookDeterministicNavigationGraph, cookTilemapNavigationGraph, createDeterministicFlowField, findDeterministicPath, smoothDeterministicPath, stepDeterministicNavigationAgents, } from './navigation.js';
44
- export * from './navmesh.js';
45
- export * from './engine-parity-matrix.js';
46
- export type { CookedDeterministicNavigationGraph, DeterministicFlowField, DeterministicNavEdge, DeterministicNavigationAgent, DeterministicNavigationGraphSource, DeterministicNavigationStepOptions, DeterministicNavigationStepResult, DeterministicNavNode, DeterministicNavRegion, DeterministicPathQuery, DeterministicPathResult, DeterministicTilemapSource, } from './navigation.js';
47
- export { runNumberLab } from './number-lab.js';
25
+ export { rewindDeterministicTargets, runDeterministicMovementCrowdSimulation, runDeterministicMovementSimulation, stepDeterministicFpsAim, stepDeterministicKcc2D, stepDeterministicTopDownMover, validateDeterministicLagCompensatedHit } from './movement.js';
26
+ export { stepDeterministicCarry3D, stepDeterministicKcc3D } from './movement3d.js';
27
+ export { applyDeterministicReciprocalAvoidance, cookDeterministicNavigationGraph, cookTilemapNavigationGraph, createDeterministicFlowField, findDeterministicPath, smoothDeterministicPath, stepDeterministicNavigationAgents } from './navigation.js';
28
+ export { cookDeterministicNavmesh, cookImportedDeterministicNavmesh, findDeterministicNavmeshPath, findDeterministicNavmeshPointPath, locateDeterministicNavmeshPolygon, runDeterministicNavmeshStress, smoothDeterministicNavmeshPath, stepDeterministicNavmeshAgents, stepDeterministicNavmeshOffMeshTraversal } from './navmesh.js';
29
+ export { createNetworkedSyncplayClient } from './networked-client.js';
30
+ export { fbm2D, hash2, hashUint32, valueNoise1D, valueNoise2D } from './noise.js';
48
31
  export { createOfflineSession } from './offline-session.js';
49
- export { createSyncplayOfflineRuntime } from './sdk-offline.js';
50
- export * from './rollback-history.js';
51
- export { circleCastDeterministicPhysics2D, createDeterministicPhysicsWorld2D, nearestDeterministicPhysicsHit2D, queryDeterministicPhysicsAabb2D, queryDeterministicPhysicsShapeOverlap2D, raycastAllDeterministicPhysics2D, raycastDeterministicPhysics2D, stepDeterministicPhysicsWorld2D, } from './physics2d.js';
52
- export * from './physics3d.js';
53
- export type { DeterministicBodyKind, DeterministicContactEvent2D, DeterministicContactEventType, DeterministicPhysicsAabbQuery2D, DeterministicPhysicsBody2D, DeterministicPhysicsConstraint2D, DeterministicPhysicsHit2D, DeterministicPhysicsQueryOptions2D, DeterministicPhysicsRaycastQuery2D, DeterministicPhysicsCircleCastQuery2D, DeterministicPhysicsShape2D, DeterministicPhysicsShapeOverlapQuery2D, DeterministicPhysicsStepOptions2D, DeterministicPhysicsStepResult2D, DeterministicPhysicsWorld2D, } from './physics2d.js';
54
- export { runPhysicsCert, runRapierPhysicsCert } from './physics-cert.js';
55
- export { runPredictionCullingLab } from './prediction-culling.js';
56
- export { createDeterministicR3fDebugOverlay, createDeterministicR3fRenderAdapter, interpolateDeterministicRenderNumber, interpolateDeterministicRenderVec2, } from './r3f-render-adapter.js';
57
- export { runProtocolRollbackLab } from './protocol-lab.js';
58
- export { createProtocolRollbackReport, diffDeterministicReports, renderDeterministicReportHtml, stableReportDiffJson, stableReportJson, } from './reports.js';
59
- export { diffReplayFrames, explainReplayChecksum, inspectReplayFrame, inspectReplayFrameWithDescriptor, stableFrameDiffJson, stableFrameDumpJson, } from './replay-inspect.js';
60
- export { deterministicSampleSceneIds, runAllDeterministicSampleScenes, runDeterministicIntegratedHeadlessScene, runDeterministicSampleScene, } from './sample-scenes.js';
61
- export type { DeterministicIntegratedHeadlessSceneResult, DeterministicSampleSceneId, DeterministicSampleSceneResult, } from './sample-scenes.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 { stepDeterministicVehicle3D } from './physics3d-vehicle.js';
35
+ export { createDeterministicR3fDebugOverlay, createDeterministicR3fRenderAdapter, interpolateDeterministicRenderNumber, interpolateDeterministicRenderVec2 } from './r3f-render-adapter.js';
62
36
  export { DeterministicRandom } from './random.js';
63
37
  export { verifyReplay, verifyReplayWithDescriptor } from './replay.js';
64
- export * from './replay-scoring.js';
65
- export { createDeterministicReplayBundle, createDeterministicReplayDebugTables, createDeterministicReplayRuntimeManifest, minimizeDeterministicReplayDesync, minimizeDeterministicReplayDesyncBundle, sliceDeterministicReplayBundle, verifyDeterministicFrameRuntimeReplayBundle, verifyDeterministicReplayBundle, verifyDeterministicSelfContainedFrameRuntimeReplayBundle, } from './replay-bundle.js';
66
- export type { DeterministicFrameRuntimeReplayBundleOptions, DeterministicFrameRuntimeReplayBundleVerification, DeterministicReplayBundle, DeterministicReplayBundleMismatch, DeterministicReplayBundleVerification, DeterministicReplayDebugTables, DeterministicReplayDesyncMinimization, DeterministicReplayRuntimeBeforeFrameId, DeterministicReplayRuntimeManifest, DeterministicReplayRuntimeManifestSource, DeterministicReplayRuntimeSystemId, DeterministicReplaySemanticModel, DeterministicReplaySemanticOperation, DeterministicReplaySliceOrigin, DeterministicReplaySnapshot, } from './replay-bundle.js';
67
- export * from './local-authority.js';
68
- export * from './local-authority-wire.js';
69
- export * from './input-authority.js';
70
- export * from './session-wire.js';
71
- export * from './session-snapshot.js';
72
- export * from './networked-client.js';
73
- export * from './authority-room.js';
74
- export * from './multiclient-authority.js';
38
+ export { createDeterministicReplayBundle, createDeterministicReplayDebugTables, createDeterministicReplayRuntimeManifest, minimizeDeterministicReplayDesync, minimizeDeterministicReplayDesyncBundle, sliceDeterministicReplayBundle, verifyDeterministicFrameRuntimeReplayBundle, verifyDeterministicReplayBundle, verifyDeterministicSelfContainedFrameRuntimeReplayBundle, verifyReplayScoreAgainstTrustedRuntime } from './replay-bundle.js';
39
+ export { diffReplayFrames, explainReplayChecksum, inspectReplayFrame, inspectReplayFrameWithDescriptor, stableFrameDiffJson, stableFrameDumpJson } from './replay-inspect.js';
40
+ export { verifyScoredReplay } from './replay-scoring.js';
41
+ export { createProtocolRollbackReport, diffDeterministicReports, renderDeterministicReportHtml, stableReportDiffJson, stableReportJson } from './reports.js';
42
+ export { createDeterministicRollbackHistory } from './rollback-history.js';
75
43
  export { withRuntimeDeterminismGuards } from './runtime-guards.js';
76
- export { createLabSession, hydrateLabInput, labDefaultInput, labStep } from './sample-lab.js';
77
- export { createSchemaArtifacts } from './schema-artifacts.js';
78
- export { createDeterministicDescriptorBinarySchema, generateSchemaBinarySource, generateSchemaTypes, proveSchemaBinaryRoundTrip, } from './schema-codegen.js';
79
44
  export { defineSyncplayGame, stableDescriptorId } from './schema.js';
80
- export * from './schema-dsl-binary.js';
81
- export * from './signals.js';
82
- export * from './sparse-set.js';
83
- export * from './system-lifecycle.js';
84
- export { createCooldown, framesToMilliseconds, millisecondsToFrames, popDueFrameEvents, scheduleFrameEvent, tickCooldown, } from './timers.js';
85
- export { runVenusMpBudgetLab } from './venus-mp-budget.js';
86
- export type { DeterministicCooldown, ScheduledFrameEvent } from './timers.js';
45
+ export { createSchemaArtifacts } from './schema-artifacts.js';
46
+ export { createDeterministicDescriptorBinarySchema, generateSchemaBinarySource, generateSchemaTypes, proveSchemaBinaryRoundTrip } from './schema-codegen.js';
47
+ export { createDeterministicBinarySerializer, deterministicDslMaxPlayers, parseDeterministicSchemaDsl, stableDeterministicDslSchemaJson } from './schema-dsl-binary.js';
48
+ export { createSyncplayOfflineRuntime } from './sdk-offline.js';
49
+ export { base64ToBytes, bytesToBase64, createSnapshotTransferCollector, createSnapshotTransferFromBytes, decodeDeterministicStateSnapshot, DEFAULT_MAX_SNAPSHOT_BYTES, DEFAULT_SNAPSHOT_CHUNK_SIZE, deterministicRoomDescriptorHash, encodeDeterministicStateSnapshot } from './session-snapshot.js';
50
+ export { decodeDeterministicSessionMessage, deterministicSessionWireVersion, encodeDeterministicSessionMessage } from './session-wire.js';
51
+ export { createDeterministicSignalBus } from './signals.js';
52
+ export { createDeterministicSparseSet } from './sparse-set.js';
53
+ export { createDeterministicLifecycleRunner, summarizeDeterministicLifecycleCounters } from './system-lifecycle.js';
54
+ export { createCooldown, framesToMilliseconds, millisecondsToFrames, popDueFrameEvents, scheduleFrameEvent, tickCooldown } from './timers.js';
55
+ export type { CookedDeterministicAnimation, DeterministicAnimationClip, DeterministicAnimationDescriptor, DeterministicAnimationLayer, DeterministicAnimationRuntimeState, DeterministicAnimationState, DeterministicAnimationStepResult, DeterministicAnimationTrack, DeterministicAnimationTransition } from './animation.js';
56
+ export type { DeterministicAssetCookManifest, DeterministicAssetCookResult, DeterministicAssetDependency, DeterministicAssetRecord, DeterministicAssetSource, DeterministicCookedAsset, DeterministicPrototypeEntity } from './asset-cooking.js';
57
+ export type { AuthorityRoomCatchUpEvent, AuthorityRoomClientNetStats, AuthorityRoomDesyncInfo, AuthorityRoomJoinResult, AuthorityRoomNetcodeStats, AuthorityRoomSnapshot, AuthorityRoomSnapshotEvent, AuthorityRoomStoredSnapshotMeta, AuthorityRoomTransport, DeterministicAuthorityRoom, DeterministicAuthorityRoomConfig, DeterministicAuthorityRoomRestoreState } from './authority-room.js';
58
+ export type { CompiledDeterministicBotDocument, DeterministicBotDocument, DeterministicBotDocumentTrace, DeterministicBotDocumentTraceCounterDelta, DeterministicBotDocumentTraceCoverage } from './bot-documents.js';
59
+ export type { CookedDeterministicBotAsset, DeterministicBehaviorTreeNode, DeterministicBehaviorTreeStatus, DeterministicBehaviorTreeTick, DeterministicBlackboardEntry, DeterministicBlackboardValue, DeterministicBotAssetSource, DeterministicBotBlackboard, DeterministicBotSimulationMetrics, DeterministicHfsmAgent, DeterministicHfsmDefinition, DeterministicHfsmState, DeterministicHfsmTransition, DeterministicUtilityConsideration, DeterministicUtilitySelection } from './bot-primitives.js';
60
+ export type { CanonicalValue } from './canonical.js';
61
+ export type { StableIndexedEntry } from './collections.js';
62
+ export type { FixedAabb, FixedCircle, FixedVec2 } from './collision.js';
63
+ export type { DeterministicCommandChannelDescriptor, DeterministicCommandProtocolMetrics, DeterministicCommandTimeline, DeterministicCommandTimelineConfig, DeterministicCommandTimelineMigrationMetrics, DeterministicCommandTimelineMigrationResultInput, DeterministicCommandTimelineSnapshot, DeterministicPayloadFieldDescriptor, DeterministicPayloadFieldKind, DeterministicPlayerCommand, DeterministicRejectedCommand, DeterministicReliableCommandDefaultsMetrics } from './commands.js';
64
+ export type { CookedDeterministicConfigBundle, DeterministicConfigBundleFailureReasonInputs, DeterministicConfigBundleParityMetrics, DeterministicConfigBundleSource, DeterministicConfigBundleVerification, DeterministicConfigMigration } from './config-bundle.js';
65
+ export type { CookedDeterministicStaticCollider, CookedStaticColliderSet, DeterministicPhysicsMaterial, DeterministicStaticCollider, FpsAimInput, MovementBody, MovementInput, QuantizedFpsAim } from './deterministic-primitives.js';
66
+ export type { DeterministicSessionCore, DeterministicSessionInput, DeterministicSessionInputFlag, DeterministicSessionLifecycleEvent, DeterministicSessionOptions, DeterministicSessionPlayer, DeterministicSessionReplayBundle, DeterministicSessionReplayVerification, DeterministicSessionSnapshot } from './deterministic-session.js';
67
+ export type { EcsComponentName, EcsEntityId, EcsLiteQueryResult, EcsLiteSnapshot, EcsLiteWorld } from './ecs-lite.js';
68
+ export type { DeterministicEffectDispatch, DeterministicEffectTarget, DeterministicEventEffectsAdapter, DeterministicEventEffectsAdapterConfig, DeterministicRenderSafeEffect } from './effects-adapter.js';
69
+ export type { DeterministicEngineCompleteCategory, DeterministicEngineCompleteCategoryReport, DeterministicEngineCompleteOptions, DeterministicEngineCompleteReport } from './engine-complete.js';
70
+ 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';
71
+ export type { DeterministicEventDeliveryScope, DeterministicEventEmitOptions, DeterministicEventPredictionState, DeterministicEventRecord, DeterministicEventTimeline } from './events.js';
72
+ export type { ConfirmedInputFrame, EncodedInput, InputAuthority, InputAuthorityConfig, InputAuthorityRestoreState, InputAuthorityStats, InputRejectionReason, InputSubmissionResult } from './input-authority.js';
73
+ export type { DeterministicInputTimelineAccumulatorState, DeterministicInputTimelineCorrection, DeterministicInputTimelineLane, DeterministicInputTimelineNegativeCases, DeterministicInputTimelineOptions, DeterministicInputTimelinePrediction, DeterministicInputTimelineReport, DeterministicInputTimelineRow, DeterministicInputTimelineVerification } from './input-timeline.js';
74
+ export type { DeterministicAuthoritativeLagCompensation3DShotContext, DeterministicLagCompensatedPellet3DResult, DeterministicLagCompensatedShot3D, DeterministicLagCompensatedShot3DResult, DeterministicLagCompensatedTarget3D, DeterministicLagCompensation3DHistory, DeterministicLagCompensation3DHistoryOptions, DeterministicLagCompensation3DHistorySnapshot, DeterministicLagCompensation3DRewindSnapshot } from './lag-compensation3d.js';
75
+ export type { DeterministicLocalAuthorityClient, DeterministicLocalAuthorityInputMessage, DeterministicLocalAuthorityResult, DeterministicLocalAuthorityRuntime, DeterministicLocalAuthorityRuntimeOptions, DeterministicLocalAuthorityRuntimeSnapshot, DeterministicLocalAuthorityState } from './local-authority.js';
76
+ export type { DeterministicLocalAuthoritySnapshotIdentity, DeterministicLocalAuthoritySnapshotTransfer, DeterministicLocalAuthorityWireApplyResult, DeterministicLocalAuthorityWireAuth, DeterministicLocalAuthorityWireAuthOptions, DeterministicLocalAuthorityWireEnvelope, DeterministicLocalAuthorityWireKind, DeterministicLocalAuthorityWireReceiver, DeterministicLocalAuthorityWireReceiverOptions, DeterministicLocalAuthorityWireReceiverResult, DeterministicLocalAuthorityWireReceiverSnapshot, DeterministicLocalAuthorityWireSignOptions } from './local-authority-wire.js';
77
+ export type { DeterministicFixedQuaternion, DeterministicFixedVec2, DeterministicFixedVec3, DeterministicMath } from './math.js';
78
+ export type { DeterministicFpsAimState, DeterministicFpsInput, DeterministicKccBody, DeterministicKccInput, DeterministicKccStepResult, DeterministicMovementCrowdMetrics, DeterministicMovementSimulationMetrics, DeterministicMovementStep, DeterministicMovementWorld, DeterministicMovingPlatform, DeterministicOneWayPlatform, DeterministicSlope, DeterministicTargetSnapshot, DeterministicTopDownBody, DeterministicTopDownBounds, DeterministicTopDownInput } from './movement.js';
79
+ export type { DeterministicKccBody3D, DeterministicKccCarrierPose3D, DeterministicKccCarryResult3D, DeterministicKccCarryState3D, DeterministicKccCollisionCandidate3D, DeterministicKccCollisionFilter3D, DeterministicKccExternalImpulse3D, DeterministicKccGeometry3D, DeterministicKccInput3D, DeterministicKccPhysicsImpulse3D, DeterministicKccProcessor3D, DeterministicKccStepResult3D, DeterministicKccWorld3D, DeterministicMovingPlatform3D, DeterministicSlope3D, DeterministicStep3D } from './movement3d.js';
80
+ export type { CookedDeterministicNavigationGraph, DeterministicFlowField, DeterministicNavEdge, DeterministicNavigationAgent, DeterministicNavigationGraphSource, DeterministicNavigationStepOptions, DeterministicNavigationStepResult, DeterministicNavNode, DeterministicNavRegion, DeterministicPathQuery, DeterministicPathResult, DeterministicTilemapSource } from './navigation.js';
81
+ export type { CookedDeterministicNavmesh, DeterministicNavmeshAgent, DeterministicNavmeshAgentStepResult, DeterministicNavmeshImportSource, DeterministicNavmeshLink, DeterministicNavmeshMovingAvoidanceObstacle, DeterministicNavmeshOffMeshTraversalState, DeterministicNavmeshOffMeshTraversalStep, DeterministicNavmeshPath, DeterministicNavmeshPoint, DeterministicNavmeshPolygon, DeterministicNavmeshSource } from './navmesh.js';
82
+ export type { NetworkedClientTransport, NetworkedSyncplayClient, NetworkedSyncplayClientInputDelayOptions, NetworkedSyncplayClientNetStats, NetworkedSyncplayClientOptions, NetworkedSyncplayClientPacingOptions } from './networked-client.js';
83
+ export type { DeterministicBodyKind, DeterministicContactEvent2D, DeterministicContactEventType, DeterministicPhysicsAabbQuery2D, DeterministicPhysicsBody2D, DeterministicPhysicsCircleCastQuery2D, DeterministicPhysicsConstraint2D, DeterministicPhysicsHit2D, DeterministicPhysicsQueryOptions2D, DeterministicPhysicsRaycastQuery2D, DeterministicPhysicsShape2D, DeterministicPhysicsShapeOverlapQuery2D, DeterministicPhysicsStepOptions2D, DeterministicPhysicsStepResult2D, DeterministicPhysicsWorld2D } from './physics2d.js';
84
+ 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';
85
+ export type { DeterministicPhysicsJoint3D } from './physics3d-joints.js';
86
+ export type { Point3D as DeterministicPhysicsPoint3D, Quat3D as DeterministicPhysicsQuat3D } from './physics3d-shared.js';
87
+ export type { DeterministicVehicle3D, DeterministicVehicleImpulse3D, DeterministicVehicleInput3D, DeterministicVehicleStepOptions3D, DeterministicVehicleStepResult3D, DeterministicVehicleWheel3D, DeterministicVehicleWheelTelemetry3D } from './physics3d-vehicle.js';
88
+ export type { DeterministicR3fRenderAdapter, DeterministicR3fRenderAdapterConfig, DeterministicR3fRenderDebug, DeterministicR3fRenderFrame, DeterministicRenderReadonly } from './r3f-render-adapter.js';
89
+ export type { DescriptorReplayVerificationConfig, ReplayVerificationConfig } from './replay.js';
90
+ export type { DeterministicFrameRuntimeReplayBundleOptions, DeterministicFrameRuntimeReplayBundleVerification, DeterministicReplayBundle, DeterministicReplayBundleMismatch, DeterministicReplayBundleVerification, DeterministicReplayDebugTables, DeterministicReplayDesyncMinimization, DeterministicReplayRuntimeBeforeFrameId, DeterministicReplayRuntimeManifest, DeterministicReplayRuntimeManifestSource, DeterministicReplayRuntimeSystemId, DeterministicReplaySemanticModel, DeterministicReplaySemanticOperation, DeterministicReplaySliceOrigin, DeterministicReplaySnapshot, DeterministicReplayVerificationManifest, ReplayScoreVerificationReason, ReplayScoreVerificationResult } from './replay-bundle.js';
91
+ export type { DescriptorReplayInspectConfig, ReplayChecksumExplanation, ReplayChecksumTableExplanation, ReplayDiffResult, ReplayFrameDiff, ReplayFrameDump, ReplayInspectConfig } from './replay-inspect.js';
92
+ export type { ScoredReplayRejection, ScoredReplayVerdict, ScoredReplayVerificationConfig } from './replay-scoring.js';
93
+ export type { DeterministicAssetCookCliFileResult, DeterministicAssetCookCliReport, DeterministicReport, DeterministicReportDiff, DeterministicReportDiffEntry, ProtocolRollbackReport, ReplayVerifyCliFileResult, ReplayVerifyCliReport, StaticDeterminismReport } from './reports.js';
94
+ export type { DeterministicRollbackHistory, DeterministicRollbackHistoryEntry, DeterministicRollbackHistorySnapshot } from './rollback-history.js';
95
+ export type { AssetDescriptor, CollectionOrdering, CommandChannelDescriptor, ConfigDescriptor, DeterministicGameDescriptor, EventDescriptor, InputFieldDescriptor, InputFieldPolicy, NumericMode, PrototypeDescriptor, SchemaFieldDescriptor, SchemaFieldKind, StateFieldDescriptor, SystemDescriptor, ValidatedDeterministicGameDescriptor } from './schema.js';
87
96
  export type { DeterministicSchemaArtifacts, SchemaFrameDump } from './schema-artifacts.js';
88
- export type { DeterministicOfflineFrame, DeterministicOfflineRuntime, DeterministicOfflineRuntimeConfig, } from './sdk-offline.js';
89
97
  export type { SchemaBinaryProof, SchemaBinarySourceOptions, SchemaTypesOptions } from './schema-codegen.js';
90
- export type { AssetDescriptor, CollectionOrdering, CommandChannelDescriptor, ConfigDescriptor, DeterministicGameDescriptor, EventDescriptor, InputFieldDescriptor, InputFieldPolicy, NumericMode, SchemaFieldDescriptor, SchemaFieldKind, StateFieldDescriptor, SystemDescriptor, PrototypeDescriptor, ValidatedDeterministicGameDescriptor, } from './schema.js';
91
- export type { LabInput, LabSessionOptions, LabState } from './sample-lab.js';
92
- export type { ProtocolRollbackEventPayload, ProtocolRollbackEventTimeline, ProtocolPredictionPolicy, ProtocolRollbackGame, ProtocolRollbackLabOptions, ProtocolRollbackLabResult, } from './protocol-lab.js';
93
- export type { DeterministicReport, DeterministicAssetCookCliFileResult, DeterministicAssetCookCliReport, DeterministicReportDiff, DeterministicReportDiffEntry, ProtocolRollbackReport, ReplayVerifyCliFileResult, ReplayVerifyCliReport, StaticDeterminismReport, } from './reports.js';
94
- export type { PredictionCullingMode, PredictionCullingOptions, PredictionCullingResult } from './prediction-culling.js';
95
- export type { DeterministicR3fRenderAdapter, DeterministicR3fRenderAdapterConfig, DeterministicR3fRenderDebug, DeterministicR3fRenderFrame, DeterministicRenderReadonly, } from './r3f-render-adapter.js';
96
- export type { DescriptorReplayInspectConfig, ReplayDiffResult, ReplayFrameDiff, ReplayFrameDump, ReplayInspectConfig, ReplayChecksumExplanation, ReplayChecksumTableExplanation, } from './replay-inspect.js';
97
- export type { DescriptorReplayVerificationConfig, ReplayVerificationConfig } from './replay.js';
98
- export type { NumberLabMode, NumberLabOptions, NumberLabResult } from './number-lab.js';
99
- export type { PhysicsCertEngine, PhysicsCertOptions, PhysicsCertResult, PhysicsCertShape } from './physics-cert.js';
100
- export type { VenusMpBudgetOptions, VenusMpBudgetResult } from './venus-mp-budget.js';
101
- export type { DeterministicSessionConfig, DeterministicStep, DeterministicStepContext, FrameSnapshot, OfflineSession, RecordedChecksum, RecordedCommandFrame, RecordedDebugEvent, RecordedInputFrame, ReplayFile, ReplayRecordingMode, ReplayVerificationMismatch, ReplayVerificationResult, TickRate, } from './types.js';
98
+ export type { DeterministicBinarySerializer, DeterministicDslDeclaration, DeterministicDslDeclarationKind, DeterministicDslDictionaryEntry, DeterministicDslDictionaryFieldKind, DeterministicDslField, DeterministicDslFieldKind, DeterministicDslFixedArrayFieldKind, DeterministicDslListFieldKind, DeterministicDslScalarFieldKind, DeterministicDslScalarValue, DeterministicDslSchema, DeterministicDslSetFieldKind, DeterministicDslValue } from './schema-dsl-binary.js';
99
+ export type { DeterministicOfflineFrame, DeterministicOfflineRuntime, DeterministicOfflineRuntimeConfig } from './sdk-offline.js';
100
+ export type { CollectedSnapshotTransfer, CreateSnapshotTransferOptions, DeterministicStateSnapshot, DeterministicStateSnapshotDecodeRejection, DeterministicStateSnapshotDecodeResult, SnapshotTransferCollector, SnapshotTransferCollectorOptions, SnapshotTransferCompleteResult, SnapshotTransferRejection, SnapshotTransferStepResult } from './session-snapshot.js';
101
+ export type { DeterministicSessionDecodeRejection, DeterministicSessionDecodeResult, DeterministicSessionMessage, DeterministicSessionMessageKind, DeterministicSessionRole } from './session-wire.js';
102
+ export type { DeterministicSignal, DeterministicSignalBus, DeterministicSignalBusSnapshot, DeterministicSignalSubscription } from './signals.js';
103
+ export type { DeterministicSparseSet, DeterministicSparseSetSnapshot } from './sparse-set.js';
104
+ export type { DeterministicLifecycleCounterSummary, DeterministicLifecycleRunner, DeterministicLifecycleSignal, DeterministicLifecycleSnapshot, DeterministicLifecycleSystemContext, DeterministicLifecycleSystemDescriptor, DeterministicLifecycleSystemHooks } from './system-lifecycle.js';
105
+ export type { DeterministicCooldown, ScheduledFrameEvent } from './timers.js';
106
+ export type { DeterministicSessionConfig, DeterministicStep, DeterministicStepContext, FrameSnapshot, OfflineSession, RecordedChecksum, RecordedCommandFrame, RecordedDebugEvent, RecordedInputFrame, ReplayFile, ReplayRecordingMode, ReplayVerificationMismatch, ReplayVerificationResult, TickRate } from './types.js';
package/dist/index.js CHANGED
@@ -1,66 +1,55 @@
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, materializePrototypeEntities, stableAssetCookJson } 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';
1
7
  export { canonicalize, canonicalStringify, cloneCanonical, decodeCanonicalValue, decodeUtf8, defaultChecksum, encodeUtf8 } from './canonical.js';
2
- export * from './animation.js';
3
- export { cookDeterministicBotAsset, createDeterministicBotBlackboard, getBlackboardValue, runDeterministicBotSimulation, selectDeterministicUtility, tickDeterministicBehaviorTree, tickDeterministicBehaviorTreeWithMemory, tickDeterministicHfsm, } from './bot-primitives.js';
4
- export * from './bot-documents.js';
5
- export * from './commands.js';
6
- export * from './config-bundle.js';
7
- export * from './input-timeline.js';
8
- export * from './lag-compensation3d.js';
9
- export { assertAssetManifestMatches, cookDeterministicAssets, materializePrototypeEntities, stableAssetCookJson, } from './asset-cooking.js';
10
- export { aabbContainsPoint, aabbIntersects, circleIntersects, circleIntersectsAabb, fixedAabb, fixedCircle, fixedVec2, sortAabbsByStableId, translateAabb, } from './collision.js';
11
8
  export { createStableIndexedMap, deterministicShuffle, stableEntries, stableSortedKeys } from './collections.js';
12
- export { combineDeterministicPhysicsMaterial, cookStaticColliders, detectVerticalCcdHit, quantizeFpsAim, stepKccLiteBody, stepTopDownBody, } from './deterministic-primitives.js';
13
- export { createDeterministicEventEffectsAdapter } from './effects-adapter.js';
14
- export { createDeterministicEventTimeline, filterDeterministicEventsForPlayer, runDeterministicEventKeywordFixture } from './events.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 { combineDeterministicPhysicsMaterial, cookStaticColliders, detectVerticalCcdHit, quantizeFpsAim, stepKccLiteBody, stepTopDownBody } from './deterministic-primitives.js';
13
+ export { createDeterministicSessionCore, createDeterministicSessionReplayBundle, verifyDeterministicSessionRuntimeReplay } from './deterministic-session.js';
15
14
  export { createEcsLiteWorld } from './ecs-lite.js';
16
- export * from './engine-core-proof.js';
17
- export * from './engine-complete.js';
18
- export * from './engine-runtime.js';
19
- export * from './deterministic-session.js';
20
- export { deterministicButtonInitialState, runDeterministicButtonFixture, runDeterministicDescriptorButtonFixture, stepDeterministicButton, } from './input-button.js';
21
- export { createCounterDuelSession, counterDuelDefaultInput, makeCounterDuelInput, runCounterDuelExample, verifyCounterDuelReplay, } from './examples/counter-duel.js';
22
- export { createFixedArenaDescriptor, createFixedArenaSession, createInitialFixedArenaState, fixedArenaDefaultInput, fixedArenaStep, makeFixedArenaInput, projectFixedArenaReferenceView, projectFixedArenaRenderState, runFixedArenaExample, verifyFixedArenaReplay, } from './examples/fixed-arena.js';
15
+ export { createDeterministicEventEffectsAdapter } from './effects-adapter.js';
16
+ export { engineCompleteExecutionProofHash, runDeterministicEngineCompleteSuite, stableDeterministicEngineCompleteJson } from './engine-complete.js';
17
+ export { assertDeterministicFrameHeapStaleHandleError, assertDeterministicFrameSystemsStateless, compileDeterministicDslRuntimeDescriptor, createDeterministicBitset, createDeterministicFrameRuntime, createDeterministicFrameRuntimeAccessors, createDeterministicSlotMap, createDeterministicSparseSetFrameRuntime, generateDeterministicFrameRuntimeSource, isDeterministicFrameHeapStaleHandleError, runDeterministicFrameRuntimeMutationCorpus, validateDeterministicFrameSystemsStateless } from './engine-runtime.js';
23
18
  export { SyncplayError } from './errors.js';
19
+ export { createDeterministicEventTimeline, filterDeterministicEventsForPlayer } from './events.js';
20
+ export { createInputAuthority } from './input-authority.js';
21
+ export { accumulateDeterministicInputTimelineState, evaluateDeterministicInputTimelineResult, sortDeterministicInputTimelineFlags } from './input-timeline.js';
22
+ export { buildDeterministicLagCompensatedHitboxProxies3D, createDeterministicLagCompensation3DHistory, rewindDeterministicLagCompensatedTargets3D, validateDeterministicAuthoritativeLagCompensatedShot3D, validateDeterministicLagCompensatedShot3D } from './lag-compensation3d.js';
23
+ export { createDeterministicLocalAuthorityRuntime } from './local-authority.js';
24
+ export { applyDeterministicLocalAuthorityCommandBundleEnvelope, applyDeterministicLocalAuthorityInputBundleEnvelope, createDeterministicLocalAuthorityAckEnvelope, createDeterministicLocalAuthorityCommandBundleEnvelope, createDeterministicLocalAuthorityCorrectionEnvelope, createDeterministicLocalAuthorityInputBundleEnvelope, createDeterministicLocalAuthoritySnapshotChunkEnvelope, createDeterministicLocalAuthoritySnapshotCompleteEnvelope, createDeterministicLocalAuthoritySnapshotEnvelope, createDeterministicLocalAuthoritySnapshotOfferEnvelope, createDeterministicLocalAuthoritySnapshotRequestEnvelope, createDeterministicLocalAuthoritySnapshotTransfer, createDeterministicLocalAuthorityWireAuth, createDeterministicLocalAuthorityWireReceiver, decodeDeterministicLocalAuthorityWireEnvelope, deterministicLocalAuthorityWireProtocol, encodeDeterministicLocalAuthorityWireEnvelope } from './local-authority-wire.js';
24
25
  export { createDeterministicMath } from './math.js';
25
- export { createDeterministicMockNetworkAdapter } from './mock-network-adapter.js';
26
- export { runDeterministicMovementCrowdSimulation, rewindDeterministicTargets, runDeterministicMovementSimulation, stepDeterministicFpsAim, stepDeterministicKcc2D, stepDeterministicTopDownMover, validateDeterministicLagCompensatedHit, } from './movement.js';
27
- export * from './movement3d.js';
28
- export { applyDeterministicReciprocalAvoidance, cookDeterministicNavigationGraph, cookTilemapNavigationGraph, createDeterministicFlowField, findDeterministicPath, smoothDeterministicPath, stepDeterministicNavigationAgents, } from './navigation.js';
29
- export * from './navmesh.js';
30
- export * from './engine-parity-matrix.js';
31
- export { runNumberLab } from './number-lab.js';
26
+ export { rewindDeterministicTargets, runDeterministicMovementCrowdSimulation, runDeterministicMovementSimulation, stepDeterministicFpsAim, stepDeterministicKcc2D, stepDeterministicTopDownMover, validateDeterministicLagCompensatedHit } from './movement.js';
27
+ export { stepDeterministicCarry3D, stepDeterministicKcc3D } from './movement3d.js';
28
+ export { applyDeterministicReciprocalAvoidance, cookDeterministicNavigationGraph, cookTilemapNavigationGraph, createDeterministicFlowField, findDeterministicPath, smoothDeterministicPath, stepDeterministicNavigationAgents } from './navigation.js';
29
+ export { cookDeterministicNavmesh, cookImportedDeterministicNavmesh, findDeterministicNavmeshPath, findDeterministicNavmeshPointPath, locateDeterministicNavmeshPolygon, runDeterministicNavmeshStress, smoothDeterministicNavmeshPath, stepDeterministicNavmeshAgents, stepDeterministicNavmeshOffMeshTraversal } from './navmesh.js';
30
+ export { createNetworkedSyncplayClient } from './networked-client.js';
31
+ export { fbm2D, hash2, hashUint32, valueNoise1D, valueNoise2D } from './noise.js';
32
32
  export { createOfflineSession } from './offline-session.js';
33
- export { createSyncplayOfflineRuntime } from './sdk-offline.js';
34
- export * from './rollback-history.js';
35
- export { circleCastDeterministicPhysics2D, createDeterministicPhysicsWorld2D, nearestDeterministicPhysicsHit2D, queryDeterministicPhysicsAabb2D, queryDeterministicPhysicsShapeOverlap2D, raycastAllDeterministicPhysics2D, raycastDeterministicPhysics2D, stepDeterministicPhysicsWorld2D, } from './physics2d.js';
36
- export * from './physics3d.js';
37
- export { runPhysicsCert, runRapierPhysicsCert } from './physics-cert.js';
38
- export { runPredictionCullingLab } from './prediction-culling.js';
39
- export { createDeterministicR3fDebugOverlay, createDeterministicR3fRenderAdapter, interpolateDeterministicRenderNumber, interpolateDeterministicRenderVec2, } from './r3f-render-adapter.js';
40
- export { runProtocolRollbackLab } from './protocol-lab.js';
41
- export { createProtocolRollbackReport, diffDeterministicReports, renderDeterministicReportHtml, stableReportDiffJson, stableReportJson, } from './reports.js';
42
- export { diffReplayFrames, explainReplayChecksum, inspectReplayFrame, inspectReplayFrameWithDescriptor, stableFrameDiffJson, stableFrameDumpJson, } from './replay-inspect.js';
43
- export { deterministicSampleSceneIds, runAllDeterministicSampleScenes, runDeterministicIntegratedHeadlessScene, runDeterministicSampleScene, } from './sample-scenes.js';
33
+ export { circleCastDeterministicPhysics2D, createDeterministicPhysicsWorld2D, nearestDeterministicPhysicsHit2D, queryDeterministicPhysicsAabb2D, queryDeterministicPhysicsShapeOverlap2D, raycastAllDeterministicPhysics2D, raycastDeterministicPhysics2D, stepDeterministicPhysicsWorld2D } from './physics2d.js';
34
+ export { applyDeterministicImpulse3D, applyDeterministicImpulses3D, contactDetailsDeterministicPhysics3D, createDeterministicPhysicsWorld3D, deriveInverseInertia, deterministicPhysicsBodyById3D, deterministicPhysicsCallback3D, overlapDeterministicPhysics3D, raycastDeterministicPhysics3D, raycastDeterministicPhysics3DDetailed, runDeterministicPhysics3DStress, setDeterministicBodyVelocity3D, shapeCastDeterministicPhysics3D, shapeCastDeterministicPhysics3DDetailed, stepDeterministicPhysicsWorld3D } from './physics3d.js';
35
+ export { stepDeterministicVehicle3D } from './physics3d-vehicle.js';
36
+ export { createDeterministicR3fDebugOverlay, createDeterministicR3fRenderAdapter, interpolateDeterministicRenderNumber, interpolateDeterministicRenderVec2 } from './r3f-render-adapter.js';
44
37
  export { DeterministicRandom } from './random.js';
45
38
  export { verifyReplay, verifyReplayWithDescriptor } from './replay.js';
46
- export * from './replay-scoring.js';
47
- export { createDeterministicReplayBundle, createDeterministicReplayDebugTables, createDeterministicReplayRuntimeManifest, minimizeDeterministicReplayDesync, minimizeDeterministicReplayDesyncBundle, sliceDeterministicReplayBundle, verifyDeterministicFrameRuntimeReplayBundle, verifyDeterministicReplayBundle, verifyDeterministicSelfContainedFrameRuntimeReplayBundle, } from './replay-bundle.js';
48
- export * from './local-authority.js';
49
- export * from './local-authority-wire.js';
50
- export * from './input-authority.js';
51
- export * from './session-wire.js';
52
- export * from './session-snapshot.js';
53
- export * from './networked-client.js';
54
- export * from './authority-room.js';
55
- export * from './multiclient-authority.js';
39
+ export { createDeterministicReplayBundle, createDeterministicReplayDebugTables, createDeterministicReplayRuntimeManifest, minimizeDeterministicReplayDesync, minimizeDeterministicReplayDesyncBundle, sliceDeterministicReplayBundle, verifyDeterministicFrameRuntimeReplayBundle, verifyDeterministicReplayBundle, verifyDeterministicSelfContainedFrameRuntimeReplayBundle, verifyReplayScoreAgainstTrustedRuntime } from './replay-bundle.js';
40
+ export { diffReplayFrames, explainReplayChecksum, inspectReplayFrame, inspectReplayFrameWithDescriptor, stableFrameDiffJson, stableFrameDumpJson } from './replay-inspect.js';
41
+ export { verifyScoredReplay } from './replay-scoring.js';
42
+ export { createProtocolRollbackReport, diffDeterministicReports, renderDeterministicReportHtml, stableReportDiffJson, stableReportJson } from './reports.js';
43
+ export { createDeterministicRollbackHistory } from './rollback-history.js';
56
44
  export { withRuntimeDeterminismGuards } from './runtime-guards.js';
57
- export { createLabSession, hydrateLabInput, labDefaultInput, labStep } from './sample-lab.js';
58
- export { createSchemaArtifacts } from './schema-artifacts.js';
59
- export { createDeterministicDescriptorBinarySchema, generateSchemaBinarySource, generateSchemaTypes, proveSchemaBinaryRoundTrip, } from './schema-codegen.js';
60
45
  export { defineSyncplayGame, stableDescriptorId } from './schema.js';
61
- export * from './schema-dsl-binary.js';
62
- export * from './signals.js';
63
- export * from './sparse-set.js';
64
- export * from './system-lifecycle.js';
65
- export { createCooldown, framesToMilliseconds, millisecondsToFrames, popDueFrameEvents, scheduleFrameEvent, tickCooldown, } from './timers.js';
66
- export { runVenusMpBudgetLab } from './venus-mp-budget.js';
46
+ export { createSchemaArtifacts } from './schema-artifacts.js';
47
+ export { createDeterministicDescriptorBinarySchema, generateSchemaBinarySource, generateSchemaTypes, proveSchemaBinaryRoundTrip } from './schema-codegen.js';
48
+ export { createDeterministicBinarySerializer, deterministicDslMaxPlayers, parseDeterministicSchemaDsl, stableDeterministicDslSchemaJson } from './schema-dsl-binary.js';
49
+ export { createSyncplayOfflineRuntime } from './sdk-offline.js';
50
+ export { base64ToBytes, bytesToBase64, createSnapshotTransferCollector, createSnapshotTransferFromBytes, decodeDeterministicStateSnapshot, DEFAULT_MAX_SNAPSHOT_BYTES, DEFAULT_SNAPSHOT_CHUNK_SIZE, deterministicRoomDescriptorHash, encodeDeterministicStateSnapshot } from './session-snapshot.js';
51
+ export { decodeDeterministicSessionMessage, deterministicSessionWireVersion, encodeDeterministicSessionMessage } from './session-wire.js';
52
+ export { createDeterministicSignalBus } from './signals.js';
53
+ export { createDeterministicSparseSet } from './sparse-set.js';
54
+ export { createDeterministicLifecycleRunner, summarizeDeterministicLifecycleCounters } from './system-lifecycle.js';
55
+ export { createCooldown, framesToMilliseconds, millisecondsToFrames, popDueFrameEvents, scheduleFrameEvent, tickCooldown } from './timers.js';
package/dist/math.d.ts CHANGED
@@ -11,19 +11,67 @@ export interface DeterministicMath {
11
11
  saturatingAdd(a: number, b: number): number;
12
12
  saturatingSub(a: number, b: number): number;
13
13
  quantize(value: number, engine: number): number;
14
+ sqrt(value: number): number;
15
+ abs(value: number): number;
16
+ sign(value: number): number;
17
+ min(a: number, b: number): number;
18
+ max(a: number, b: number): number;
19
+ lerp(a: number, b: number, t: number): number;
20
+ mod(a: number, b: number): number;
21
+ inverseLerp(a: number, b: number, v: number): number;
22
+ remap(inMin: number, inMax: number, outMin: number, outMax: number, v: number): number;
23
+ smoothstep(edge0: number, edge1: number, x: number): number;
24
+ /** log2 of a POSITIVE fixed value → fixed. Public deterministic primitive. */
25
+ log2Fixed(value: number): number;
26
+ exp(value: number): number;
27
+ log(value: number): number;
14
28
  /**
15
- * CHEAP DETERMINISTIC APPROXIMATION, not true sine: piecewise-LINEAR ramp
16
- * per quadrant (a triangle wave) ~29% below true sine at 1/8 turn. Right
17
- * for gameplay oscillation/steering where cross-peer identity matters more
18
- * than curve shape; wrong for trajectories that must LOOK sinusoidal. A
19
- * true polynomial approximation is a candidate for the API freeze pass.
29
+ * Accurate deterministic sine in TURNS (one revolution == fixedScale). Uses a
30
+ * 5th-order odd minimax polynomial with per-quadrant reflection; exact at
31
+ * cardinal turns, sweep error ≤5e-3 vs the reference sine. Pure integer ⇒
32
+ * byte-identical across JS engines.
20
33
  */
21
34
  sinTurns(turns: number): number;
22
- /** See sinTurns — same triangle-wave approximation, quarter-turn shifted. */
35
+ /** See sinTurns — cosine as a quarter-turn shift of sine. */
23
36
  cosTurns(turns: number): number;
37
+ /** tan in turns = sin/cos; throws at quarter/three-quarter turns (cos == 0). */
38
+ tanTurns(turns: number): number;
39
+ /** atan2 → turns in [0, fixedScale), CCW from +x; atan2(0,0) === 0. */
40
+ atan2(y: number, x: number): number;
41
+ wrapTurns(t: number): number;
42
+ angleDeltaTurns(a: number, b: number): number;
43
+ turnsToRadians(t: number): number;
44
+ radiansToTurns(r: number): number;
45
+ hypot(x: number, y: number): number;
24
46
  vec2(x: number, y: number): DeterministicFixedVec2;
25
47
  vec2Add(a: DeterministicFixedVec2, b: DeterministicFixedVec2): DeterministicFixedVec2;
48
+ vec2Sub(a: DeterministicFixedVec2, b: DeterministicFixedVec2): DeterministicFixedVec2;
49
+ vec2Scale(v: DeterministicFixedVec2, s: number): DeterministicFixedVec2;
50
+ vec2Dot(a: DeterministicFixedVec2, b: DeterministicFixedVec2): number;
51
+ vec2Cross(a: DeterministicFixedVec2, b: DeterministicFixedVec2): number;
52
+ vec2LengthSq(v: DeterministicFixedVec2): number;
53
+ vec2Length(v: DeterministicFixedVec2): number;
54
+ vec2DistanceSq(a: DeterministicFixedVec2, b: DeterministicFixedVec2): number;
55
+ vec2Distance(a: DeterministicFixedVec2, b: DeterministicFixedVec2): number;
56
+ vec2Normalize(v: DeterministicFixedVec2): DeterministicFixedVec2;
57
+ vec2Perp(v: DeterministicFixedVec2): DeterministicFixedVec2;
58
+ vec2Negate(v: DeterministicFixedVec2): DeterministicFixedVec2;
59
+ vec2Rotate(v: DeterministicFixedVec2, turns: number): DeterministicFixedVec2;
60
+ vec2FromAngleTurns(turns: number, length: number): DeterministicFixedVec2;
61
+ vec2AngleTurns(v: DeterministicFixedVec2): number;
26
62
  vec2Lerp(a: DeterministicFixedVec2, b: DeterministicFixedVec2, t: number): DeterministicFixedVec2;
63
+ vec3(x: number, y: number, z: number): DeterministicFixedVec3;
64
+ vec3Add(a: DeterministicFixedVec3, b: DeterministicFixedVec3): DeterministicFixedVec3;
65
+ vec3Sub(a: DeterministicFixedVec3, b: DeterministicFixedVec3): DeterministicFixedVec3;
66
+ vec3Scale(v: DeterministicFixedVec3, s: number): DeterministicFixedVec3;
67
+ vec3Dot(a: DeterministicFixedVec3, b: DeterministicFixedVec3): number;
68
+ vec3Cross(a: DeterministicFixedVec3, b: DeterministicFixedVec3): DeterministicFixedVec3;
69
+ vec3LengthSq(v: DeterministicFixedVec3): number;
70
+ vec3Length(v: DeterministicFixedVec3): number;
71
+ vec3Distance(a: DeterministicFixedVec3, b: DeterministicFixedVec3): number;
72
+ vec3Normalize(v: DeterministicFixedVec3): DeterministicFixedVec3;
73
+ vec3Lerp(a: DeterministicFixedVec3, b: DeterministicFixedVec3, t: number): DeterministicFixedVec3;
74
+ vec3Negate(v: DeterministicFixedVec3): DeterministicFixedVec3;
27
75
  quatFromYawTurns(turns: number): DeterministicFixedQuaternion;
28
76
  quatLerp(a: DeterministicFixedQuaternion, b: DeterministicFixedQuaternion, t: number): DeterministicFixedQuaternion;
29
77
  clamp(value: number, min: number, max: number): number;
@@ -32,6 +80,11 @@ export interface DeterministicFixedVec2 {
32
80
  readonly x: number;
33
81
  readonly y: number;
34
82
  }
83
+ export interface DeterministicFixedVec3 {
84
+ readonly x: number;
85
+ readonly y: number;
86
+ readonly z: number;
87
+ }
35
88
  export interface DeterministicFixedQuaternion {
36
89
  readonly x: number;
37
90
  readonly y: number;