@series-inc/rundot-syncplay 5.23.0-beta.7
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 +610 -0
- package/dist/animation.d.ts +119 -0
- package/dist/animation.js +488 -0
- package/dist/asset-cooking.d.ts +82 -0
- package/dist/asset-cooking.js +364 -0
- package/dist/authority-room.d.ts +217 -0
- package/dist/authority-room.js +701 -0
- package/dist/bot-documents.d.ts +115 -0
- package/dist/bot-documents.js +549 -0
- package/dist/bot-primitives.d.ts +152 -0
- package/dist/bot-primitives.js +472 -0
- package/dist/browser.d.ts +57 -0
- package/dist/browser.js +53 -0
- package/dist/canonical.d.ts +12 -0
- package/dist/canonical.js +288 -0
- package/dist/certification.d.ts +455 -0
- package/dist/certification.js +1855 -0
- package/dist/chaos-certification.d.ts +56 -0
- package/dist/chaos-certification.js +1397 -0
- package/dist/cjs/animation.js +495 -0
- package/dist/cjs/asset-cooking.js +372 -0
- package/dist/cjs/authority-room.js +704 -0
- package/dist/cjs/bot-documents.js +556 -0
- package/dist/cjs/bot-primitives.js +482 -0
- package/dist/cjs/browser.js +96 -0
- package/dist/cjs/canonical.js +299 -0
- package/dist/cjs/certification.js +1860 -0
- package/dist/cjs/chaos-certification.js +1402 -0
- package/dist/cjs/collections.js +36 -0
- package/dist/cjs/collision.js +96 -0
- package/dist/cjs/commands.js +987 -0
- package/dist/cjs/config-bundle.js +491 -0
- package/dist/cjs/creator.js +30 -0
- package/dist/cjs/deterministic-primitives.js +134 -0
- package/dist/cjs/deterministic-session.js +1410 -0
- package/dist/cjs/ecs-lite.js +155 -0
- package/dist/cjs/effects-adapter.js +97 -0
- package/dist/cjs/engine-complete.js +2297 -0
- package/dist/cjs/engine-core-proof.js +70 -0
- package/dist/cjs/engine-parity-matrix.js +874 -0
- package/dist/cjs/engine-parity.js +3183 -0
- package/dist/cjs/engine-runtime.js +3141 -0
- package/dist/cjs/errors.js +22 -0
- package/dist/cjs/events.js +247 -0
- package/dist/cjs/examples/counter-duel.js +157 -0
- package/dist/cjs/examples/fixed-arena.js +368 -0
- package/dist/cjs/index.js +229 -0
- package/dist/cjs/input-authority.js +150 -0
- package/dist/cjs/input-button.js +256 -0
- package/dist/cjs/input-timeline.js +418 -0
- package/dist/cjs/instant-replay.js +66 -0
- package/dist/cjs/lag-compensation3d.js +837 -0
- package/dist/cjs/local-authority-server-runner.js +1121 -0
- package/dist/cjs/local-authority-wire.js +1497 -0
- package/dist/cjs/local-authority.js +817 -0
- package/dist/cjs/local-ws-adapter.js +150 -0
- package/dist/cjs/match-log.js +61 -0
- package/dist/cjs/math.js +157 -0
- package/dist/cjs/mock-network-adapter.js +26 -0
- package/dist/cjs/movement.js +703 -0
- package/dist/cjs/movement3d.js +1246 -0
- package/dist/cjs/multiclient-authority.js +308 -0
- package/dist/cjs/multiplayer-service.js +434 -0
- package/dist/cjs/navigation.js +347 -0
- package/dist/cjs/navmesh.js +1437 -0
- package/dist/cjs/networked-client.js +691 -0
- package/dist/cjs/networked-input-authority.js +443 -0
- package/dist/cjs/node.js +47 -0
- package/dist/cjs/number-lab.js +78 -0
- package/dist/cjs/offline-session.js +370 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/pause-resume.js +43 -0
- package/dist/cjs/physics-cert.js +426 -0
- package/dist/cjs/physics2d.js +751 -0
- package/dist/cjs/physics3d.js +1996 -0
- package/dist/cjs/prediction-culling.js +203 -0
- package/dist/cjs/protocol-lab.js +1299 -0
- package/dist/cjs/r3f-render-adapter.js +209 -0
- package/dist/cjs/random.js +59 -0
- package/dist/cjs/replay-bundle.js +1598 -0
- package/dist/cjs/replay-inspect.js +236 -0
- package/dist/cjs/replay-scoring.js +68 -0
- package/dist/cjs/replay.js +356 -0
- package/dist/cjs/reports.js +181 -0
- package/dist/cjs/rollback-history.js +251 -0
- package/dist/cjs/runtime-guards.js +111 -0
- package/dist/cjs/sample-lab.js +145 -0
- package/dist/cjs/sample-scenes.js +752 -0
- package/dist/cjs/schema-artifacts.js +359 -0
- package/dist/cjs/schema-codegen.js +544 -0
- package/dist/cjs/schema-dsl-binary.js +655 -0
- package/dist/cjs/schema.js +319 -0
- package/dist/cjs/sdk-offline.js +99 -0
- package/dist/cjs/session-promotion.js +74 -0
- package/dist/cjs/session-snapshot.js +265 -0
- package/dist/cjs/session-wire.js +216 -0
- package/dist/cjs/signals.js +103 -0
- package/dist/cjs/sparse-set.js +169 -0
- package/dist/cjs/synctest.js +136 -0
- package/dist/cjs/system-lifecycle.js +286 -0
- package/dist/cjs/timers.js +61 -0
- package/dist/cjs/tools/static-checker.js +1468 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/venus-mp-budget.js +125 -0
- package/dist/cjs/ws-frame.js +255 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +11379 -0
- package/dist/collections.d.ts +9 -0
- package/dist/collections.js +30 -0
- package/dist/collision.d.ts +25 -0
- package/dist/collision.js +85 -0
- package/dist/commands.d.ts +137 -0
- package/dist/commands.js +977 -0
- package/dist/config-bundle.d.ts +89 -0
- package/dist/config-bundle.js +483 -0
- package/dist/creator.d.ts +20 -0
- package/dist/creator.js +11 -0
- package/dist/deterministic-primitives.d.ts +59 -0
- package/dist/deterministic-primitives.js +126 -0
- package/dist/deterministic-session.d.ts +197 -0
- package/dist/deterministic-session.js +1401 -0
- package/dist/ecs-lite.d.ts +26 -0
- package/dist/ecs-lite.js +152 -0
- package/dist/effects-adapter.d.ts +21 -0
- package/dist/effects-adapter.js +94 -0
- package/dist/engine-complete.d.ts +45 -0
- package/dist/engine-complete.js +2292 -0
- package/dist/engine-core-proof.d.ts +26 -0
- package/dist/engine-core-proof.js +66 -0
- package/dist/engine-parity-matrix.d.ts +300 -0
- package/dist/engine-parity-matrix.js +869 -0
- package/dist/engine-parity.d.ts +74 -0
- package/dist/engine-parity.js +3178 -0
- package/dist/engine-runtime.d.ts +351 -0
- package/dist/engine-runtime.js +3123 -0
- package/dist/errors.d.ts +11 -0
- package/dist/errors.js +17 -0
- package/dist/events.d.ts +45 -0
- package/dist/events.js +242 -0
- package/dist/examples/counter-duel.d.ts +43 -0
- package/dist/examples/counter-duel.js +150 -0
- package/dist/examples/fixed-arena.d.ts +110 -0
- package/dist/examples/fixed-arena.js +356 -0
- package/dist/index.d.ts +101 -0
- package/dist/index.js +66 -0
- package/dist/input-authority.d.ts +82 -0
- package/dist/input-authority.js +147 -0
- package/dist/input-button.d.ts +36 -0
- package/dist/input-button.js +249 -0
- package/dist/input-timeline.d.ts +65 -0
- package/dist/input-timeline.js +412 -0
- package/dist/instant-replay.d.ts +59 -0
- package/dist/instant-replay.js +62 -0
- package/dist/lag-compensation3d.d.ts +146 -0
- package/dist/lag-compensation3d.js +827 -0
- package/dist/local-authority-server-runner.d.ts +79 -0
- package/dist/local-authority-server-runner.js +1118 -0
- package/dist/local-authority-wire.d.ts +142 -0
- package/dist/local-authority-wire.js +1477 -0
- package/dist/local-authority.d.ts +160 -0
- package/dist/local-authority.js +810 -0
- package/dist/local-ws-adapter.d.ts +14 -0
- package/dist/local-ws-adapter.js +146 -0
- package/dist/match-log.d.ts +74 -0
- package/dist/match-log.js +57 -0
- package/dist/math.d.ts +41 -0
- package/dist/math.js +154 -0
- package/dist/mock-network-adapter.d.ts +13 -0
- package/dist/mock-network-adapter.js +23 -0
- package/dist/movement.d.ts +155 -0
- package/dist/movement.js +694 -0
- package/dist/movement3d.d.ts +195 -0
- package/dist/movement3d.js +1238 -0
- package/dist/multiclient-authority.d.ts +30 -0
- package/dist/multiclient-authority.js +305 -0
- package/dist/multiplayer-service.d.ts +153 -0
- package/dist/multiplayer-service.js +429 -0
- package/dist/navigation.d.ts +91 -0
- package/dist/navigation.js +338 -0
- package/dist/navmesh.d.ts +236 -0
- package/dist/navmesh.js +1423 -0
- package/dist/networked-client.d.ts +124 -0
- package/dist/networked-client.js +688 -0
- package/dist/networked-input-authority.d.ts +51 -0
- package/dist/networked-input-authority.js +439 -0
- package/dist/node.d.ts +22 -0
- package/dist/node.js +19 -0
- package/dist/number-lab.d.ts +15 -0
- package/dist/number-lab.js +75 -0
- package/dist/offline-session.d.ts +2 -0
- package/dist/offline-session.js +367 -0
- package/dist/pause-resume.d.ts +48 -0
- package/dist/pause-resume.js +40 -0
- package/dist/physics-cert.d.ts +40 -0
- package/dist/physics-cert.js +389 -0
- package/dist/physics2d.d.ts +142 -0
- package/dist/physics2d.js +741 -0
- package/dist/physics3d.d.ts +285 -0
- package/dist/physics3d.js +1979 -0
- package/dist/prediction-culling.d.ts +34 -0
- package/dist/prediction-culling.js +200 -0
- package/dist/protocol-lab.d.ts +115 -0
- package/dist/protocol-lab.js +1295 -0
- package/dist/r3f-render-adapter.d.ts +61 -0
- package/dist/r3f-render-adapter.js +203 -0
- package/dist/random.d.ts +13 -0
- package/dist/random.js +55 -0
- package/dist/replay-bundle.d.ts +150 -0
- package/dist/replay-bundle.js +1586 -0
- package/dist/replay-inspect.d.ts +60 -0
- package/dist/replay-inspect.js +228 -0
- package/dist/replay-scoring.d.ts +28 -0
- package/dist/replay-scoring.js +65 -0
- package/dist/replay.d.ts +17 -0
- package/dist/replay.js +351 -0
- package/dist/reports.d.ts +176 -0
- package/dist/reports.js +174 -0
- package/dist/rollback-history.d.ts +46 -0
- package/dist/rollback-history.js +247 -0
- package/dist/runtime-guards.d.ts +1 -0
- package/dist/runtime-guards.js +108 -0
- package/dist/sample-lab.d.ts +32 -0
- package/dist/sample-lab.js +134 -0
- package/dist/sample-scenes.d.ts +86 -0
- package/dist/sample-scenes.js +745 -0
- package/dist/schema-artifacts.d.ts +49 -0
- package/dist/schema-artifacts.js +356 -0
- package/dist/schema-codegen.d.ts +21 -0
- package/dist/schema-codegen.js +538 -0
- package/dist/schema-dsl-binary.d.ts +75 -0
- package/dist/schema-dsl-binary.js +648 -0
- package/dist/schema.d.ts +87 -0
- package/dist/schema.js +315 -0
- package/dist/sdk-offline.d.ts +34 -0
- package/dist/sdk-offline.js +96 -0
- package/dist/session-promotion.d.ts +26 -0
- package/dist/session-promotion.js +70 -0
- package/dist/session-snapshot.d.ts +95 -0
- package/dist/session-snapshot.js +255 -0
- package/dist/session-wire.d.ts +89 -0
- package/dist/session-wire.js +211 -0
- package/dist/signals.d.ts +31 -0
- package/dist/signals.js +99 -0
- package/dist/sparse-set.d.ts +34 -0
- package/dist/sparse-set.js +165 -0
- package/dist/synctest.d.ts +31 -0
- package/dist/synctest.js +133 -0
- package/dist/system-lifecycle.d.ts +72 -0
- package/dist/system-lifecycle.js +281 -0
- package/dist/timers.d.ts +17 -0
- package/dist/timers.js +53 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/static-checker.d.ts +31 -0
- package/dist/tools/static-checker.js +1462 -0
- package/dist/tools/vite-plugin.d.ts +69 -0
- package/dist/tools/vite-plugin.js +203 -0
- package/dist/types.d.ts +148 -0
- package/dist/types.js +1 -0
- package/dist/venus-mp-budget.d.ts +29 -0
- package/dist/venus-mp-budget.js +122 -0
- package/dist/ws-frame.d.ts +49 -0
- package/dist/ws-frame.js +247 -0
- package/package.json +169 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface DeterministicEngineCoreNumericProofOptions {
|
|
2
|
+
readonly players?: number;
|
|
3
|
+
readonly frames?: number;
|
|
4
|
+
readonly seed?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface DeterministicEngineCoreNumericCategoryProof {
|
|
7
|
+
readonly category: 'physics3d' | 'kcc3d' | 'navmesh';
|
|
8
|
+
readonly checksum: string;
|
|
9
|
+
readonly metrics: Readonly<Record<string, boolean | number | string>>;
|
|
10
|
+
}
|
|
11
|
+
export interface DeterministicEngineCoreNumericProof {
|
|
12
|
+
readonly schemaVersion: 1;
|
|
13
|
+
readonly kind: 'engine-core-numeric-proof';
|
|
14
|
+
readonly players: number;
|
|
15
|
+
readonly frames: number;
|
|
16
|
+
readonly seed: number;
|
|
17
|
+
readonly categories: readonly DeterministicEngineCoreNumericCategoryProof[];
|
|
18
|
+
readonly checksum: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ResolvedDeterministicEngineCoreNumericProofOptions {
|
|
21
|
+
readonly players: number;
|
|
22
|
+
readonly frames: number;
|
|
23
|
+
readonly seed: number;
|
|
24
|
+
}
|
|
25
|
+
export declare function runDeterministicEngineCoreNumericProof(...args: readonly [DeterministicEngineCoreNumericProofOptions?]): DeterministicEngineCoreNumericProof;
|
|
26
|
+
export declare function resolveDeterministicEngineCoreNumericProofOptions(options?: DeterministicEngineCoreNumericProofOptions): ResolvedDeterministicEngineCoreNumericProofOptions;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { defaultChecksum } from './canonical.js';
|
|
2
|
+
import { runDeterministicKcc3DCrowdFixture } from './movement3d.js';
|
|
3
|
+
import { runDeterministicNavmeshStress } from './navmesh.js';
|
|
4
|
+
import { runDeterministicPhysics3DStress } from './physics3d.js';
|
|
5
|
+
export function runDeterministicEngineCoreNumericProof(...args) {
|
|
6
|
+
const { players, frames, seed } = resolveDeterministicEngineCoreNumericProofOptions(...args);
|
|
7
|
+
const physics = runDeterministicPhysics3DStress(players, frames);
|
|
8
|
+
const kcc = runDeterministicKcc3DCrowdFixture(players, frames);
|
|
9
|
+
const navmesh = runDeterministicNavmeshStress(players, frames);
|
|
10
|
+
const categories = [
|
|
11
|
+
{
|
|
12
|
+
category: 'physics3d',
|
|
13
|
+
checksum: physics.checksum,
|
|
14
|
+
metrics: {
|
|
15
|
+
bodies: physics.bodies,
|
|
16
|
+
frames: physics.frames,
|
|
17
|
+
contacts: physics.contactCount,
|
|
18
|
+
queries: physics.queryCount,
|
|
19
|
+
shapeCasts: physics.shapeCastCount,
|
|
20
|
+
p99StepCost: physics.p99StepCost,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
category: 'kcc3d',
|
|
25
|
+
checksum: kcc.checksum,
|
|
26
|
+
metrics: {
|
|
27
|
+
players: kcc.players,
|
|
28
|
+
frames: kcc.frames,
|
|
29
|
+
physicsQueries: kcc.physicsQueryCount,
|
|
30
|
+
corrections: kcc.correctionCount,
|
|
31
|
+
rollbackEquivalent: kcc.rollbackEquivalent,
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
category: 'navmesh',
|
|
36
|
+
checksum: navmesh.checksum,
|
|
37
|
+
metrics: {
|
|
38
|
+
agents: navmesh.agents,
|
|
39
|
+
frames: navmesh.frames,
|
|
40
|
+
replans: navmesh.replans,
|
|
41
|
+
avoidanceCorrections: navmesh.avoidanceCorrections,
|
|
42
|
+
rollbackEquivalent: navmesh.rollbackEquivalent,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
const withoutChecksum = {
|
|
47
|
+
schemaVersion: 1,
|
|
48
|
+
kind: 'engine-core-numeric-proof',
|
|
49
|
+
players,
|
|
50
|
+
frames,
|
|
51
|
+
seed,
|
|
52
|
+
categories,
|
|
53
|
+
checksum: '',
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
...withoutChecksum,
|
|
57
|
+
checksum: defaultChecksum(withoutChecksum),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export function resolveDeterministicEngineCoreNumericProofOptions(options = {}) {
|
|
61
|
+
return {
|
|
62
|
+
players: options.players ?? 128,
|
|
63
|
+
frames: options.frames ?? 1000,
|
|
64
|
+
seed: options.seed ?? 71,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
export type EngineParityMatrixStatus = 'project-certified' | 'implemented' | 'headless-only' | 'fixture-only' | 'unsupported' | 'non-goal';
|
|
2
|
+
export interface EngineParityMatrixEntry {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly system: string;
|
|
5
|
+
readonly engineExpectation: string;
|
|
6
|
+
readonly status: EngineParityMatrixStatus;
|
|
7
|
+
readonly requiredForCliParity: boolean;
|
|
8
|
+
readonly canCloseWithCli: boolean;
|
|
9
|
+
readonly currentEvidence: readonly string[];
|
|
10
|
+
readonly cliProofs: readonly string[];
|
|
11
|
+
readonly gaps: readonly string[];
|
|
12
|
+
readonly nextCliWork: readonly string[];
|
|
13
|
+
readonly referenceDocs: readonly string[];
|
|
14
|
+
}
|
|
15
|
+
export interface EngineParityMatrixProjectRuntimeEvidence {
|
|
16
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
17
|
+
readonly players: number;
|
|
18
|
+
readonly frames: number;
|
|
19
|
+
readonly projectRuntimePassed: boolean;
|
|
20
|
+
readonly replayRuntimeVerified: boolean;
|
|
21
|
+
readonly selfContainedReplayRuntimeVerified: boolean;
|
|
22
|
+
readonly generatedRuntimeSourceCertified: boolean;
|
|
23
|
+
readonly descriptorCertified: boolean;
|
|
24
|
+
readonly replayAcceptsGeneratedRuntimeSourceHash: boolean;
|
|
25
|
+
readonly replayUsesProjectGameStateRuntime: boolean;
|
|
26
|
+
readonly replayRuntimeCoversProjectCommands: boolean;
|
|
27
|
+
readonly replayRuntimeCoversProjectEvents: boolean;
|
|
28
|
+
readonly assetsConfigCertified: boolean;
|
|
29
|
+
readonly botNavAnimationCertified: boolean;
|
|
30
|
+
readonly generatedRuntimeSourceHash: string;
|
|
31
|
+
readonly runtimeDescriptorHash: string;
|
|
32
|
+
readonly replaySystemId: string;
|
|
33
|
+
readonly replayRuntimeCommandChannels: number;
|
|
34
|
+
readonly replayRuntimeEventChannels: number;
|
|
35
|
+
}
|
|
36
|
+
export interface EngineParityMatrixAuthorityEvidence {
|
|
37
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
38
|
+
readonly players: number;
|
|
39
|
+
readonly frames: number;
|
|
40
|
+
readonly serverEvaluated: boolean;
|
|
41
|
+
readonly migrationRestored: boolean;
|
|
42
|
+
readonly convergence: boolean;
|
|
43
|
+
readonly disconnects: number;
|
|
44
|
+
readonly reconnects: number;
|
|
45
|
+
readonly lateJoins: number;
|
|
46
|
+
readonly spectators: number;
|
|
47
|
+
readonly snapshotMaxAgeFrames: number;
|
|
48
|
+
readonly wireSnapshotRequestEnvelopes: number;
|
|
49
|
+
readonly wireSnapshotOfferEnvelopes: number;
|
|
50
|
+
readonly wireSnapshotChunkEnvelopes: number;
|
|
51
|
+
readonly wireSnapshotCompleteEnvelopes: number;
|
|
52
|
+
readonly wireSnapshotNegotiationCompletesApplied: number;
|
|
53
|
+
readonly wireSnapshotsApplied: number;
|
|
54
|
+
readonly wireAcceptedCommands: number;
|
|
55
|
+
readonly wireRejectedCommands: number;
|
|
56
|
+
readonly wireSpectatorCommandsRejected: number;
|
|
57
|
+
readonly reliableCommandAcked: number;
|
|
58
|
+
readonly reliableCommandResent: number;
|
|
59
|
+
readonly reliableCommandLossesInjected: number;
|
|
60
|
+
readonly reliableCommandDuplicatesRejected: number;
|
|
61
|
+
readonly reliableCommandReordersObserved: number;
|
|
62
|
+
readonly reliableCommandRollbackConverged: boolean;
|
|
63
|
+
readonly commandEffectSubmissions: number;
|
|
64
|
+
readonly commandEffectValue: number;
|
|
65
|
+
readonly commandEffectChecksum: string;
|
|
66
|
+
readonly commandEffectProjectionChecksum: string;
|
|
67
|
+
readonly lagCompCommandSubmissions: number;
|
|
68
|
+
readonly lagCompAcceptedShots: number;
|
|
69
|
+
readonly lagCompHitCommands: number;
|
|
70
|
+
readonly lagCompInvalidShotCommands: number;
|
|
71
|
+
readonly lagCompForgedTimingRejected: number;
|
|
72
|
+
readonly lagCompReplayChecksum: string;
|
|
73
|
+
readonly lagCompRestoredChecksum: string;
|
|
74
|
+
readonly lagCompRollbackEquivalent: boolean;
|
|
75
|
+
readonly failures: readonly string[];
|
|
76
|
+
}
|
|
77
|
+
export interface EngineParityMatrixReplayDebuggingEvidence {
|
|
78
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
79
|
+
readonly verifiedResyncBundles: number;
|
|
80
|
+
readonly semanticReplayFrames: number;
|
|
81
|
+
readonly minimizedDesyncBundles: number;
|
|
82
|
+
readonly minimizedDesyncFirstMismatchFrame: number;
|
|
83
|
+
readonly failures: readonly string[];
|
|
84
|
+
}
|
|
85
|
+
export interface EngineParityMatrixBrowserSdkEvidence {
|
|
86
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
87
|
+
readonly staticAuditPassed: boolean;
|
|
88
|
+
readonly browserReplayVerified: boolean;
|
|
89
|
+
readonly browserReplayFrames: number;
|
|
90
|
+
readonly browserReplayPlayers: number;
|
|
91
|
+
readonly engineCoreBrowserVerified: boolean;
|
|
92
|
+
readonly engineCorePlayers: number;
|
|
93
|
+
readonly engineCoreFrames: number;
|
|
94
|
+
readonly engineCoreCategoryMatches: number;
|
|
95
|
+
readonly sdkTestAppVerified: boolean;
|
|
96
|
+
readonly sdkCanvasRendered: boolean;
|
|
97
|
+
readonly failures: readonly string[];
|
|
98
|
+
}
|
|
99
|
+
export interface EngineParityMatrixSampleEvidence {
|
|
100
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
101
|
+
readonly players: number;
|
|
102
|
+
readonly frames: number;
|
|
103
|
+
readonly sampleCategoryPassed: boolean;
|
|
104
|
+
readonly allMechanicsCovered: boolean;
|
|
105
|
+
readonly integratedHeadlessSceneCovered: boolean;
|
|
106
|
+
readonly integratedReplayVerified: boolean;
|
|
107
|
+
readonly integratedRollbackEquivalent: boolean;
|
|
108
|
+
readonly artifactTracePresent: boolean;
|
|
109
|
+
readonly artifactTraceAllSamplesCovered: boolean;
|
|
110
|
+
readonly artifactTraceMechanicsCovered: boolean;
|
|
111
|
+
readonly artifactTraceRollbackEquivalent: boolean;
|
|
112
|
+
readonly artifactTraceIntegratedReplayVerified: boolean;
|
|
113
|
+
readonly artifactTraceSampleCount: number;
|
|
114
|
+
readonly artifactTraceMechanicCount: number;
|
|
115
|
+
readonly artifactTraceRepresentativeStates: number;
|
|
116
|
+
readonly artifactTraceIntegratedReplaySnapshots: number;
|
|
117
|
+
readonly artifactTraceHash: string;
|
|
118
|
+
readonly failures: readonly string[];
|
|
119
|
+
}
|
|
120
|
+
export interface EngineParityMatrixAssetConfigEvidence {
|
|
121
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
122
|
+
readonly players: number;
|
|
123
|
+
readonly frames: number;
|
|
124
|
+
readonly assetCategoryPassed: boolean;
|
|
125
|
+
readonly configCategoryPassed: boolean;
|
|
126
|
+
readonly descriptorBackedPrototypeValidation: boolean;
|
|
127
|
+
readonly compoundPrototypeInheritanceCovered: boolean;
|
|
128
|
+
readonly dynamicCollectionAllocationCovered: boolean;
|
|
129
|
+
readonly mapSpawnMaterializationCovered: boolean;
|
|
130
|
+
readonly mapRebakeInvalidationCovered: boolean;
|
|
131
|
+
readonly configInheritedPrototypeMaterialized: boolean;
|
|
132
|
+
readonly configDynamicCollectionsMaterialized: boolean;
|
|
133
|
+
readonly configMapMaterializationStable: boolean;
|
|
134
|
+
readonly configMapRebakeInvalidated: boolean;
|
|
135
|
+
readonly runtimeValidatedPrototypeEntities: number;
|
|
136
|
+
readonly runtimeInjectedPrototypeComponents: number;
|
|
137
|
+
readonly assetMapMaterializedEntityCount: number;
|
|
138
|
+
readonly configMapMaterializedEntityCount: number;
|
|
139
|
+
readonly mapBakeHash: string;
|
|
140
|
+
readonly configMapBakeHash: string;
|
|
141
|
+
readonly failures: readonly string[];
|
|
142
|
+
}
|
|
143
|
+
export interface EngineParityMatrixAnimationEvidence {
|
|
144
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
145
|
+
readonly players: number;
|
|
146
|
+
readonly frames: number;
|
|
147
|
+
readonly animationCategoryPassed: boolean;
|
|
148
|
+
readonly stateTransitionsCovered: boolean;
|
|
149
|
+
readonly exitFrameTransitionsCovered: boolean;
|
|
150
|
+
readonly transitionBlendCovered: boolean;
|
|
151
|
+
readonly triggerLatchCovered: boolean;
|
|
152
|
+
readonly animationEventsEmitted: boolean;
|
|
153
|
+
readonly normalizedClipTimeCovered: boolean;
|
|
154
|
+
readonly sampledPoseCovered: boolean;
|
|
155
|
+
readonly blendTreeCovered: boolean;
|
|
156
|
+
readonly animationLayersCovered: boolean;
|
|
157
|
+
readonly rootMotionCovered: boolean;
|
|
158
|
+
readonly eventReconstructionCovered: boolean;
|
|
159
|
+
readonly rollbackEquivalent: boolean;
|
|
160
|
+
readonly blendTreeFrames: number;
|
|
161
|
+
readonly layerPoseFrames: number;
|
|
162
|
+
readonly rootMotionFrames: number;
|
|
163
|
+
readonly reconstructedEvents: number;
|
|
164
|
+
readonly reconstructedEventHash: string;
|
|
165
|
+
readonly failures: readonly string[];
|
|
166
|
+
}
|
|
167
|
+
export interface EngineParityMatrixBotEvidence {
|
|
168
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
169
|
+
readonly players: number;
|
|
170
|
+
readonly frames: number;
|
|
171
|
+
readonly botCategoryPassed: boolean;
|
|
172
|
+
readonly player128BotReplacement: boolean;
|
|
173
|
+
readonly rollbackEquivalent: boolean;
|
|
174
|
+
readonly behaviorServicesCovered: boolean;
|
|
175
|
+
readonly utilityCurvesCovered: boolean;
|
|
176
|
+
readonly utilityNestedCovered: boolean;
|
|
177
|
+
readonly utilityMomentumCovered: boolean;
|
|
178
|
+
readonly utilityCooldownCovered: boolean;
|
|
179
|
+
readonly botDocumentBehaviorServicesCovered: boolean;
|
|
180
|
+
readonly botDocumentUtilityCurvesCovered: boolean;
|
|
181
|
+
readonly botDocumentUtilityNestedCovered: boolean;
|
|
182
|
+
readonly botDocumentUtilityMomentumCovered: boolean;
|
|
183
|
+
readonly botDocumentUtilityCooldownCovered: boolean;
|
|
184
|
+
readonly behaviorServiceTicks: number;
|
|
185
|
+
readonly utilityCurveSelections: number;
|
|
186
|
+
readonly utilityNestedSelections: number;
|
|
187
|
+
readonly utilityMomentumSelections: number;
|
|
188
|
+
readonly utilityCooldownSuppressions: number;
|
|
189
|
+
readonly botDocumentBehaviorServiceTicks: number;
|
|
190
|
+
readonly botDocumentUtilityCurveSelections: number;
|
|
191
|
+
readonly botDocumentUtilityNestedSelections: number;
|
|
192
|
+
readonly botDocumentUtilityMomentumSelections: number;
|
|
193
|
+
readonly botDocumentUtilityCooldownSuppressions: number;
|
|
194
|
+
readonly failures: readonly string[];
|
|
195
|
+
}
|
|
196
|
+
export interface EngineParityMatrixPhysicsEvidence {
|
|
197
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
198
|
+
readonly players: number;
|
|
199
|
+
readonly frames: number;
|
|
200
|
+
readonly categoryPassed: boolean;
|
|
201
|
+
readonly noFastStressHonored: boolean;
|
|
202
|
+
readonly proofMode: string;
|
|
203
|
+
readonly fullRequiredProofCovered: boolean;
|
|
204
|
+
readonly fullStepRollbackEquivalent: boolean;
|
|
205
|
+
readonly fullStepContactsAndQueriesCovered: boolean;
|
|
206
|
+
readonly stackStabilityCovered: boolean;
|
|
207
|
+
readonly stackRollbackEquivalent: boolean;
|
|
208
|
+
readonly stackAuthoringOrderStable: boolean;
|
|
209
|
+
readonly scheduledQueriesRan: boolean;
|
|
210
|
+
readonly shapeCastsCovered: boolean;
|
|
211
|
+
readonly callbackLifecycleCovered: boolean;
|
|
212
|
+
readonly materialResponseCovered: boolean;
|
|
213
|
+
readonly meshStaticCollidersCovered: boolean;
|
|
214
|
+
readonly angularGeometryCovered: boolean;
|
|
215
|
+
readonly fullStepFrames: number;
|
|
216
|
+
readonly optimizedStressFrames: number;
|
|
217
|
+
readonly failures: readonly string[];
|
|
218
|
+
}
|
|
219
|
+
export interface EngineParityMatrixKccEvidence {
|
|
220
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
221
|
+
readonly players: number;
|
|
222
|
+
readonly frames: number;
|
|
223
|
+
readonly categoryPassed: boolean;
|
|
224
|
+
readonly noFastStressHonored: boolean;
|
|
225
|
+
readonly proofMode: string;
|
|
226
|
+
readonly fullRequiredProofCovered: boolean;
|
|
227
|
+
readonly fullStepRollbackEquivalent: boolean;
|
|
228
|
+
readonly slopesCovered: boolean;
|
|
229
|
+
readonly stepsCovered: boolean;
|
|
230
|
+
readonly movingPlatformsCovered: boolean;
|
|
231
|
+
readonly sweptCollisionsCovered: boolean;
|
|
232
|
+
readonly physicsQueriesCovered: boolean;
|
|
233
|
+
readonly perHitCallbackFilteringCovered: boolean;
|
|
234
|
+
readonly controllerGeometryConfigurable: boolean;
|
|
235
|
+
readonly adversarialRollbackEquivalent: boolean;
|
|
236
|
+
readonly adversarialThinWallSweepsCovered: boolean;
|
|
237
|
+
readonly adversarialCornerSweepsCovered: boolean;
|
|
238
|
+
readonly adversarialSlopeLimitRejectionsCovered: boolean;
|
|
239
|
+
readonly fullStepPlayers: number;
|
|
240
|
+
readonly fullStepFrames: number;
|
|
241
|
+
readonly optimizedStressFrames: number;
|
|
242
|
+
readonly failures: readonly string[];
|
|
243
|
+
}
|
|
244
|
+
export interface EngineParityMatrixNavigationEvidence {
|
|
245
|
+
readonly result: 'pass' | 'fail' | 'missing';
|
|
246
|
+
readonly players: number;
|
|
247
|
+
readonly frames: number;
|
|
248
|
+
readonly categoryPassed: boolean;
|
|
249
|
+
readonly rollbackEquivalent: boolean;
|
|
250
|
+
readonly agentsCovered: boolean;
|
|
251
|
+
readonly importedCookOrderStable: boolean;
|
|
252
|
+
readonly importedPointPathCovered: boolean;
|
|
253
|
+
readonly importedPortalAndSpawnCovered: boolean;
|
|
254
|
+
readonly importedValidationFailuresCovered: boolean;
|
|
255
|
+
readonly offMeshTraversalLifecycleCovered: boolean;
|
|
256
|
+
readonly layered3DLookupDisambiguated: boolean;
|
|
257
|
+
readonly layered3DOffMeshTraversalCovered: boolean;
|
|
258
|
+
readonly layered3DRollbackEquivalent: boolean;
|
|
259
|
+
readonly velocityObstacleAvoidanceCovered: boolean;
|
|
260
|
+
readonly velocityObstaclePredictionCovered: boolean;
|
|
261
|
+
readonly velocityObstacleOrderStable: boolean;
|
|
262
|
+
readonly velocityObstacleValidationRejected: boolean;
|
|
263
|
+
readonly agentVelocityObstacleAvoidanceCovered: boolean;
|
|
264
|
+
readonly avoidanceCorrections: number;
|
|
265
|
+
readonly velocityObstacleAvoidanceCorrections: number;
|
|
266
|
+
readonly importedPortalCount: number;
|
|
267
|
+
readonly layeredVerticalOffMeshTraversals: number;
|
|
268
|
+
readonly failures: readonly string[];
|
|
269
|
+
}
|
|
270
|
+
export interface EngineParityMatrixEvidence {
|
|
271
|
+
readonly projectRuntime?: EngineParityMatrixProjectRuntimeEvidence;
|
|
272
|
+
readonly authority?: EngineParityMatrixAuthorityEvidence;
|
|
273
|
+
readonly replayDebugging?: EngineParityMatrixReplayDebuggingEvidence;
|
|
274
|
+
readonly browserSdk?: EngineParityMatrixBrowserSdkEvidence;
|
|
275
|
+
readonly samples?: EngineParityMatrixSampleEvidence;
|
|
276
|
+
readonly assetConfig?: EngineParityMatrixAssetConfigEvidence;
|
|
277
|
+
readonly animation?: EngineParityMatrixAnimationEvidence;
|
|
278
|
+
readonly bots?: EngineParityMatrixBotEvidence;
|
|
279
|
+
readonly physics?: EngineParityMatrixPhysicsEvidence;
|
|
280
|
+
readonly kcc?: EngineParityMatrixKccEvidence;
|
|
281
|
+
readonly navigation?: EngineParityMatrixNavigationEvidence;
|
|
282
|
+
}
|
|
283
|
+
export interface EngineParityMatrixReport {
|
|
284
|
+
readonly schemaVersion: 1;
|
|
285
|
+
readonly kind: 'engine-parity-matrix';
|
|
286
|
+
readonly reportId: string;
|
|
287
|
+
readonly summary: {
|
|
288
|
+
readonly entries: number;
|
|
289
|
+
readonly requiredForCliParity: number;
|
|
290
|
+
readonly canCloseWithCli: number;
|
|
291
|
+
readonly byStatus: Readonly<Record<EngineParityMatrixStatus, number>>;
|
|
292
|
+
readonly requiredOpenCliGaps: number;
|
|
293
|
+
readonly unsupportedRequiredCliGaps: number;
|
|
294
|
+
};
|
|
295
|
+
readonly entries: readonly EngineParityMatrixEntry[];
|
|
296
|
+
readonly result: 'pass' | 'warn' | 'fail';
|
|
297
|
+
}
|
|
298
|
+
export declare function evaluateEngineParityMatrixResult(summary: Pick<EngineParityMatrixReport['summary'], 'unsupportedRequiredCliGaps' | 'requiredOpenCliGaps'>): EngineParityMatrixReport['result'];
|
|
299
|
+
export declare function createEngineParityMatrixReport(evidence?: EngineParityMatrixEvidence): EngineParityMatrixReport;
|
|
300
|
+
export declare function stableEngineParityMatrixJson(report: EngineParityMatrixReport): string;
|