@voltro/plugin-rooms 0.0.0-stage → 0.87.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24329 -0
- package/LICENSE +61 -0
- package/README.md +9204 -2
- package/SECURITY.md +56 -0
- package/THIRD-PARTY-NOTICES.md +11322 -0
- package/dist/actor.js +1474 -0
- package/dist/apiBinding.js +678 -0
- package/dist/apiRegistryBinding.js +399 -0
- package/dist/apiReservations.js +433 -0
- package/dist/baselines.js +73 -0
- package/dist/bots.d.ts +1485 -0
- package/dist/bots.js +563 -0
- package/dist/catalog.js +80 -0
- package/dist/checkpointJson.js +24 -0
- package/dist/checkpointStore.js +386 -0
- package/dist/client.js +56 -0
- package/dist/clockSync.js +51 -0
- package/dist/collision.js +156 -0
- package/dist/commandDelivery.js +101 -0
- package/dist/commandRecord.js +11 -0
- package/dist/commandWithdrawal.js +183 -0
- package/dist/connection.js +497 -0
- package/dist/controlCarrier.js +375 -0
- package/dist/controlRegistry.js +79 -0
- package/dist/controlTarget.js +45 -0
- package/dist/controlTransport.js +574 -0
- package/dist/developmentBinding.js +113 -0
- package/dist/directory.js +323 -0
- package/dist/directoryProjection.js +117 -0
- package/dist/errors.d.ts +125 -0
- package/dist/errors.js +53 -0
- package/dist/fixed.d.ts +284 -0
- package/dist/fixed.js +10 -0
- package/dist/fixed32.js +134 -0
- package/dist/fixedCollision.js +60 -0
- package/dist/fixedCollision32.js +109 -0
- package/dist/fixedMath.js +56 -0
- package/dist/fixedRaw.js +11 -0
- package/dist/fixedSlabs.js +34 -0
- package/dist/fixedTrig.js +48 -0
- package/dist/fixedTrig32.js +38 -0
- package/dist/fixedVectors.js +113 -0
- package/dist/fixedVectors32.js +95 -0
- package/dist/fixedWide.js +50 -0
- package/dist/fixedWords.js +46 -0
- package/dist/gateway.js +57 -0
- package/dist/geometry-retention-app/rooms.geometryJournalRetention.workflow.server.tsx +4 -0
- package/dist/geometry-retention-app/rooms.geometryJournalRetention.workflow.tsx +14 -0
- package/dist/geometry-worker/worker.d.mts +2 -0
- package/dist/geometry-worker/worker.mjs +50 -0
- package/dist/geometry.d.ts +2249 -0
- package/dist/geometry.js +40 -0
- package/dist/geometryActivation.js +82 -0
- package/dist/geometryActorInventory.js +108 -0
- package/dist/geometryAdminClient.js +87 -0
- package/dist/geometryAdminData.js +32 -0
- package/dist/geometryAdminFixtures.js +50 -0
- package/dist/geometryAdminPorts.js +5 -0
- package/dist/geometryAdminRpc.js +58 -0
- package/dist/geometryAdminRpcRoutes.js +49 -0
- package/dist/geometryAdminSchemas.js +39 -0
- package/dist/geometryAdministration.js +190 -0
- package/dist/geometryAdministrationPorts.js +5 -0
- package/dist/geometryApiBinding.js +165 -0
- package/dist/geometryAppStorage.js +58 -0
- package/dist/geometryArtifacts.js +198 -0
- package/dist/geometryAssetBundle.js +117 -0
- package/dist/geometryAssetClient.js +25 -0
- package/dist/geometryAssetData.js +106 -0
- package/dist/geometryAssetHttp.js +123 -0
- package/dist/geometryAssetPorts.js +5 -0
- package/dist/geometryAssetRpc.js +30 -0
- package/dist/geometryAssetRpcRoutes.js +40 -0
- package/dist/geometryAssetStorageGrant.js +103 -0
- package/dist/geometryBoxOverlap.js +110 -0
- package/dist/geometryCatalogueDigest.js +111 -0
- package/dist/geometryCellCoverage.js +85 -0
- package/dist/geometryCellLoader.js +28 -0
- package/dist/geometryChannel.js +134 -0
- package/dist/geometryChunkHttp.js +54 -0
- package/dist/geometryChunkLeases.js +22 -0
- package/dist/geometryClient.d.ts +1429 -0
- package/dist/geometryClient.js +149 -0
- package/dist/geometryClientChunks.js +330 -0
- package/dist/geometryClientDelta.js +25 -0
- package/dist/geometryClientHttp.js +37 -0
- package/dist/geometryClientInterest.js +109 -0
- package/dist/geometryClientStatic.js +34 -0
- package/dist/geometryCms.d.ts +763 -0
- package/dist/geometryCms.js +217 -0
- package/dist/geometryCommitCoordinator.js +241 -0
- package/dist/geometryCompactionFixture.js +84 -0
- package/dist/geometryCompactionStrategies.js +38 -0
- package/dist/geometryConnectionClient.js +23 -0
- package/dist/geometryDerivationFixtures.js +141 -0
- package/dist/geometryDerivationStrategies.js +27 -0
- package/dist/geometryDigest.js +13 -0
- package/dist/geometryEditChannel.js +70 -0
- package/dist/geometryEditIngress.js +263 -0
- package/dist/geometryEdits.js +366 -0
- package/dist/geometryEnvelope.js +41 -0
- package/dist/geometryGridRaycast.js +92 -0
- package/dist/geometryGridSweep.js +92 -0
- package/dist/geometryHeightfield.js +166 -0
- package/dist/geometryHeightfieldRaycast.js +74 -0
- package/dist/geometryHeightfieldSweep.js +85 -0
- package/dist/geometryHeightfieldVolume.js +45 -0
- package/dist/geometryHost.js +322 -0
- package/dist/geometryHostDirectory.js +207 -0
- package/dist/geometryHostMutations.js +137 -0
- package/dist/geometryHostStreams.js +124 -0
- package/dist/geometryHttpBody.js +76 -0
- package/dist/geometryHttpRoutes.js +112 -0
- package/dist/geometryImportGltf.js +300 -0
- package/dist/geometryImportLdtk.js +54 -0
- package/dist/geometryImportPng.js +144 -0
- package/dist/geometryImportPublication.js +67 -0
- package/dist/geometryImportTiled.js +39 -0
- package/dist/geometryImportTiles.js +136 -0
- package/dist/geometryImportVox.js +130 -0
- package/dist/geometryImportedSource.js +101 -0
- package/dist/geometryInspectEndpoint.js +248 -0
- package/dist/geometryInspection.js +92 -0
- package/dist/geometryInstall.js +121 -0
- package/dist/geometryJournalArchiveData.js +21 -0
- package/dist/geometryJournalArchiveIndex.js +330 -0
- package/dist/geometryJournalArchiveTable.js +21 -0
- package/dist/geometryJournalCompaction.js +100 -0
- package/dist/geometryJournalPatch.js +47 -0
- package/dist/geometryJournalRetention.js +112 -0
- package/dist/geometryJournalRetentionSchemas.js +36 -0
- package/dist/geometryJournalRetentionSweep.js +112 -0
- package/dist/geometryJournalRetentionWorkflow.js +28 -0
- package/dist/geometryJournalRetentionWorkflowData.js +31 -0
- package/dist/geometryJournalStorage.js +148 -0
- package/dist/geometryLoader.js +118 -0
- package/dist/geometryManifest.js +113 -0
- package/dist/geometryManifestChannel.js +93 -0
- package/dist/geometryManifestClient.js +122 -0
- package/dist/geometryManifestData.js +49 -0
- package/dist/geometryManifestPorts.js +5 -0
- package/dist/geometryManifestPublication.js +109 -0
- package/dist/geometryManifestSource.js +68 -0
- package/dist/geometryMigrationJournal.js +14 -0
- package/dist/geometryMigrationStrategies.js +7 -0
- package/dist/geometryMigrations.js +323 -0
- package/dist/geometryNativeMetadata.js +52 -0
- package/dist/geometryPatch.js +170 -0
- package/dist/geometryPersistence.js +449 -0
- package/dist/geometryPersistenceCapture.js +69 -0
- package/dist/geometryPersistenceData.js +140 -0
- package/dist/geometryPersistencePorts.js +5 -0
- package/dist/geometryPlayerAdmission.js +34 -0
- package/dist/geometryPlayerEditOwner.js +265 -0
- package/dist/geometryPlayerEdits.js +49 -0
- package/dist/geometryPrepared.js +188 -0
- package/dist/geometryPrivacyFence.js +24 -0
- package/dist/geometryProceduralPublication.js +91 -0
- package/dist/geometryProceduralWorker.js +164 -0
- package/dist/geometryPublication.js +110 -0
- package/dist/geometryRayAlgebra.js +116 -0
- package/dist/geometryReadClient.js +157 -0
- package/dist/geometryReadPorts.js +5 -0
- package/dist/geometryReadRpc.js +27 -0
- package/dist/geometryReadRpcRoutes.js +47 -0
- package/dist/geometryReliablePublication.js +82 -0
- package/dist/geometryReloadPorts.js +46 -0
- package/dist/geometryReloadSource.js +278 -0
- package/dist/geometryRenderCache.js +165 -0
- package/dist/geometryRenderLod.js +102 -0
- package/dist/geometryRollback.js +125 -0
- package/dist/geometryRollbackCoordinator.js +203 -0
- package/dist/geometryRollbackPorts.js +46 -0
- package/dist/geometryRollbackSource.js +209 -0
- package/dist/geometryRollbackStore.js +198 -0
- package/dist/geometrySchemas.js +27 -0
- package/dist/geometryServer.d.ts +2766 -0
- package/dist/geometryServer.js +62 -0
- package/dist/geometryShapeRaycast.js +111 -0
- package/dist/geometryShapeSegments.js +34 -0
- package/dist/geometryShapes.js +223 -0
- package/dist/geometrySnapshot.js +76 -0
- package/dist/geometrySnapshotChannel.js +160 -0
- package/dist/geometrySnapshotClient.js +159 -0
- package/dist/geometrySnapshotPreparation.js +76 -0
- package/dist/geometrySnapshotServer.js +191 -0
- package/dist/geometrySqlOwner.js +21 -0
- package/dist/geometryStorage.js +127 -0
- package/dist/geometryStorageGrant.js +69 -0
- package/dist/geometryStorageIdentity.js +9 -0
- package/dist/geometryTileArtifact.js +10 -0
- package/dist/geometryTileCodec.js +194 -0
- package/dist/geometryTileCollision.js +96 -0
- package/dist/geometryTileNavigation.js +128 -0
- package/dist/geometryTileView.js +35 -0
- package/dist/geometryVersionActivation.js +114 -0
- package/dist/geometryVersionClient.js +238 -0
- package/dist/geometryVersionCompare.js +40 -0
- package/dist/geometryVersionMigration.js +106 -0
- package/dist/geometryVoxel.js +253 -0
- package/dist/geometryWorldEntitySubject.js +32 -0
- package/dist/geometryWorldExtent.js +12 -0
- package/dist/geometryWorldMetadata.js +38 -0
- package/dist/geometryWorldStrategyFixtures.js +127 -0
- package/dist/geometryWorldView.js +307 -0
- package/dist/host.js +128 -0
- package/dist/hostBinding.js +277 -0
- package/dist/hostCellObservation.js +114 -0
- package/dist/hostClientCapacity.js +90 -0
- package/dist/hostCommandScope.js +64 -0
- package/dist/hostController.js +3094 -0
- package/dist/hostDeployment.js +65 -0
- package/dist/hostDrain.js +152 -0
- package/dist/hostDrainPorts.js +5 -0
- package/dist/hostDriver.js +179 -0
- package/dist/hostLane.js +288 -0
- package/dist/hostListener.js +79 -0
- package/dist/hostListenerBinding.js +19 -0
- package/dist/hostLoopObservation.js +90 -0
- package/dist/hostMetrics.js +56 -0
- package/dist/hostRegistryBinding.js +418 -0
- package/dist/hostSelection.js +16 -0
- package/dist/hostShutdown.js +47 -0
- package/dist/hostTurnObservation.js +53 -0
- package/dist/identities.js +4 -0
- package/dist/index.d.ts +8632 -0
- package/dist/index.js +232 -0
- package/dist/inputReceipts.js +63 -0
- package/dist/inputRedundancy.js +55 -0
- package/dist/inspect.js +238 -0
- package/dist/lockstep.d.ts +436 -0
- package/dist/lockstep.js +382 -0
- package/dist/lockstepAdmission.js +262 -0
- package/dist/lockstepAdmissionCodec.js +94 -0
- package/dist/lockstepAdmissionPorts.js +5 -0
- package/dist/lockstepClientSession.js +578 -0
- package/dist/lockstepDefinition.js +148 -0
- package/dist/lockstepHostLoop.js +243 -0
- package/dist/lockstepInitialAdmission.js +67 -0
- package/dist/lockstepInitialStrategyFixtures.js +45 -0
- package/dist/lockstepJournal.js +395 -0
- package/dist/lockstepJournalCodec.js +254 -0
- package/dist/lockstepJournalPorts.js +5 -0
- package/dist/lockstepJournalRebuild.js +208 -0
- package/dist/lockstepJournalRows.js +57 -0
- package/dist/lockstepMembers.js +131 -0
- package/dist/lockstepMessages.js +47 -0
- package/dist/lockstepOwnedRoom.js +764 -0
- package/dist/lockstepPolicies.js +84 -0
- package/dist/lockstepReact.js +47 -0
- package/dist/lockstepRecoveryTruth.js +121 -0
- package/dist/lockstepRosterConfig.js +32 -0
- package/dist/lockstepSeed.js +12 -0
- package/dist/lockstepSeedFixture.js +20 -0
- package/dist/lockstepServer.d.ts +3897 -0
- package/dist/lockstepServer.js +325 -0
- package/dist/lockstepServerConfig.js +101 -0
- package/dist/lockstepServerRoles.js +403 -0
- package/dist/lockstepServerStrategyFixtures.js +33 -0
- package/dist/lockstepStrategies.js +6 -0
- package/dist/lockstepStrategyFixtures.js +137 -0
- package/dist/lockstepTerminal.js +90 -0
- package/dist/lockstepTerminalPorts.js +5 -0
- package/dist/lockstepTransport.js +773 -0
- package/dist/lockstepTransportConfig.js +32 -0
- package/dist/lockstepWireRoster.js +34 -0
- package/dist/matchRoomProvider.js +32 -0
- package/dist/matchRooms.js +19 -0
- package/dist/membershipObserver.js +47 -0
- package/dist/moderation.js +98 -0
- package/dist/movementSpecials.js +104 -0
- package/dist/ownership.js +17 -0
- package/dist/ownershipWithdrawal.js +18 -0
- package/dist/pcg32.js +96 -0
- package/dist/ports.d.ts +1241 -0
- package/dist/ports.js +11 -0
- package/dist/quaternion.js +70 -0
- package/dist/react.d.ts +406 -0
- package/dist/react.js +109 -0
- package/dist/reaper-app/rooms.reaper.workflow.server.tsx +5 -0
- package/dist/reaper-app/rooms.reaper.workflow.tsx +13 -0
- package/dist/reaper.js +243 -0
- package/dist/reaperSchemas.js +42 -0
- package/dist/reaperWorkflow.js +70 -0
- package/dist/recovery.js +189 -0
- package/dist/recoverySeats.js +26 -0
- package/dist/replay.d.ts +273 -0
- package/dist/replay.js +485 -0
- package/dist/replayPorts.js +5 -0
- package/dist/replayRecording.js +67 -0
- package/dist/replaySchema.js +157 -0
- package/dist/replayStorage.d.ts +149 -0
- package/dist/replayStorage.js +485 -0
- package/dist/reservationBatch.js +422 -0
- package/dist/reservationSchemas.js +17 -0
- package/dist/reservations.js +259 -0
- package/dist/reservePort.js +69 -0
- package/dist/resolvedOptions.js +4 -0
- package/dist/room.d.ts +1006 -0
- package/dist/room.js +284 -0
- package/dist/roomAccessSweep.js +95 -0
- package/dist/roomAppCommandControl.js +59 -0
- package/dist/roomAuthoringStrategy.js +17 -0
- package/dist/roomErasure.js +198 -0
- package/dist/roomPoolRuntimeDefaults.js +24 -0
- package/dist/roomPoolSelection.js +19 -0
- package/dist/roomPoolTopology.js +212 -0
- package/dist/rpc.d.ts +551 -0
- package/dist/rpc.js +112 -0
- package/dist/rpcClient.js +152 -0
- package/dist/rpcRoutes.js +28 -0
- package/dist/runtime.js +1123 -0
- package/dist/schemaHistory.js +98 -0
- package/dist/seatStore.js +151 -0
- package/dist/seatStrategyFixtures.js +52 -0
- package/dist/seatSubject.js +32 -0
- package/dist/seats.js +130 -0
- package/dist/serverSession.js +811 -0
- package/dist/serverSessionConfig.js +43 -0
- package/dist/sessionAdmission.js +53 -0
- package/dist/sidecarAdmission.js +103 -0
- package/dist/sidecarConfig.js +116 -0
- package/dist/sidecarConfigPublication.js +64 -0
- package/dist/sidecarHostListener.js +208 -0
- package/dist/sidecarIpc.js +205 -0
- package/dist/sidecarPeer.js +310 -0
- package/dist/sidecarProcessPort.js +28 -0
- package/dist/sidecarRuntime.js +168 -0
- package/dist/sidecarSelection.js +142 -0
- package/dist/sidecarWire.js +178 -0
- package/dist/sidecarWrites.js +163 -0
- package/dist/simulation.d.ts +391 -0
- package/dist/simulation.js +282 -0
- package/dist/simulationAuthoring.js +29 -0
- package/dist/simulationBytes.js +27 -0
- package/dist/simulationConformance.js +305 -0
- package/dist/simulationInputHistoryCapture.js +35 -0
- package/dist/simulationInputHistoryWire.js +193 -0
- package/dist/simulationOptionsWire.js +78 -0
- package/dist/simulationRecoveryWire.js +134 -0
- package/dist/simulationReplay.js +127 -0
- package/dist/simulationSnapshotWire.js +112 -0
- package/dist/simulationState.js +178 -0
- package/dist/snapshotBlob.js +126 -0
- package/dist/snapshotBlobCleanup.js +93 -0
- package/dist/snapshotBlobIndex.js +38 -0
- package/dist/snapshotBudget.js +80 -0
- package/dist/snapshotChain.js +185 -0
- package/dist/snapshotErasure.js +172 -0
- package/dist/snapshotInspection.js +105 -0
- package/dist/snapshotSegmentBlobs.js +58 -0
- package/dist/snapshotUploads.js +166 -0
- package/dist/socketTransport.js +253 -0
- package/dist/spatial.js +104 -0
- package/dist/spectatorPolicy.js +26 -0
- package/dist/spectatorProducer.js +89 -0
- package/dist/startFailureCause.js +4 -0
- package/dist/stateCodec.js +658 -0
- package/dist/strategies.d.ts +210 -0
- package/dist/strategies.js +8 -0
- package/dist/strategiesServer.d.ts +286 -0
- package/dist/strategiesServer.js +11 -0
- package/dist/strategyFixtures.js +182 -0
- package/dist/streamFraming.js +122 -0
- package/dist/streamTransport.js +266 -0
- package/dist/subjectAdmission.js +50 -0
- package/dist/subjectPrivacy.js +281 -0
- package/dist/subjectPrivacyBinding.js +90 -0
- package/dist/systemManifest.js +182 -0
- package/dist/tables.js +159 -0
- package/dist/testHarness.js +89 -0
- package/dist/testing.d.ts +3684 -0
- package/dist/testing.js +221 -0
- package/dist/testingPorts.js +271 -0
- package/dist/testingServer.d.ts +4060 -0
- package/dist/testingServer.js +18 -0
- package/dist/transform.d.ts +692 -0
- package/dist/transform.js +217 -0
- package/dist/transform3d.js +118 -0
- package/dist/transformCollection.js +24 -0
- package/dist/transformCollection3d.js +24 -0
- package/dist/transformCollectionCore.js +156 -0
- package/dist/transformFrames.js +121 -0
- package/dist/transformPrediction3d.js +127 -0
- package/dist/transformRules.js +123 -0
- package/dist/transformSchemas.js +20 -0
- package/dist/transport.js +32 -0
- package/dist/transportAuthoring.js +29 -0
- package/dist/transportCleanup.js +22 -0
- package/dist/transportConformance.js +124 -0
- package/dist/transportConnector.js +82 -0
- package/dist/transportEndpoints.js +38 -0
- package/dist/transportsServer.d.ts +5515 -0
- package/dist/transportsServer.js +6 -0
- package/dist/viewProjection.js +16 -0
- package/dist/web.d.ts +2286 -0
- package/dist/web.js +518 -0
- package/dist/webTransportClient.js +173 -0
- package/dist/wire.d.ts +992 -0
- package/dist/wire.js +492 -0
- package/dist/withdrawalPort.js +28 -0
- package/dist/world.d.ts +1894 -0
- package/dist/world.js +333 -0
- package/dist/worldActorReceipts.js +48 -0
- package/dist/worldActorTransferSnapshot.js +14 -0
- package/dist/worldAdmissionPending.js +8 -0
- package/dist/worldBoundaryCoordinator.js +148 -0
- package/dist/worldCatalog.js +81 -0
- package/dist/worldCellAllocation.js +203 -0
- package/dist/worldCellDestination.js +68 -0
- package/dist/worldCells.js +489 -0
- package/dist/worldChange.js +32 -0
- package/dist/worldClient.js +664 -0
- package/dist/worldClientControl.js +141 -0
- package/dist/worldClientPendingInput.js +16 -0
- package/dist/worldClientRpc.js +133 -0
- package/dist/worldClientRpcRoutes.js +43 -0
- package/dist/worldClientSchemas.js +28 -0
- package/dist/worldCommands.js +140 -0
- package/dist/worldData.js +42 -0
- package/dist/worldDefaultBinding.js +377 -0
- package/dist/worldDefaultGroupAdmission.js +82 -0
- package/dist/worldDefaultGroupAppServices.js +31 -0
- package/dist/worldDefaultGroupCompensation.js +109 -0
- package/dist/worldDefaultGroupContinuation.js +96 -0
- package/dist/worldDefaultGroupControl.js +72 -0
- package/dist/worldDefaultGroupMembers.js +85 -0
- package/dist/worldDefaultGroups.js +21 -0
- package/dist/worldDefaultPending.js +79 -0
- package/dist/worldDefaultService.js +245 -0
- package/dist/worldEntities.js +2980 -0
- package/dist/worldEntityCodec.js +21 -0
- package/dist/worldEntityHandoffView.js +154 -0
- package/dist/worldGeometry.js +170 -0
- package/dist/worldGhostAdmission.js +65 -0
- package/dist/worldGhostDestination.js +118 -0
- package/dist/worldGhostGateway.js +132 -0
- package/dist/worldGhostHandshake.js +108 -0
- package/dist/worldGhostHost.js +42 -0
- package/dist/worldGhostIngress.js +132 -0
- package/dist/worldGhostNeighborhood.js +70 -0
- package/dist/worldGhostNeighbors.js +86 -0
- package/dist/worldGhostOutbound.js +110 -0
- package/dist/worldGhostPublisher.js +216 -0
- package/dist/worldGhostReceiver.js +213 -0
- package/dist/worldGhostSender.js +146 -0
- package/dist/worldGhostSocket.js +78 -0
- package/dist/worldGhostWire.js +172 -0
- package/dist/worldGroupCommand.js +49 -0
- package/dist/worldGroupDeadline.js +115 -0
- package/dist/worldGroupPreparation.js +115 -0
- package/dist/worldGroupReadyControl.js +128 -0
- package/dist/worldGroupSupervisor.js +120 -0
- package/dist/worldHandoffMetrics.js +59 -0
- package/dist/worldHandoffView.js +100 -0
- package/dist/worldHostSource.js +69 -0
- package/dist/worldInspectEndpoint.js +250 -0
- package/dist/worldInspection.js +109 -0
- package/dist/worldInstanceAdmission.js +31 -0
- package/dist/worldInstanceAllocation.js +116 -0
- package/dist/worldInstanceDestination.js +64 -0
- package/dist/worldInstanceExpiry.js +282 -0
- package/dist/worldInstanceExpirySupervisor.js +88 -0
- package/dist/worldInstanceLifecycle.js +103 -0
- package/dist/worldInstanceState.js +52 -0
- package/dist/worldInstances.js +478 -0
- package/dist/worldJoin.js +56 -0
- package/dist/worldLayers.js +151 -0
- package/dist/worldLeases.js +78 -0
- package/dist/worldManifest.js +25 -0
- package/dist/worldMovement.js +63 -0
- package/dist/worldPersistence.js +134 -0
- package/dist/worldProjection.js +221 -0
- package/dist/worldReact.js +110 -0
- package/dist/worldRecoveryActor.js +35 -0
- package/dist/worldReturnAnchor.js +49 -0
- package/dist/worldRoomHooks.js +57 -0
- package/dist/worldRoomPool.js +27 -0
- package/dist/worldRoomSteps.js +133 -0
- package/dist/worldSeatBinding.js +36 -0
- package/dist/worldServer.d.ts +6936 -0
- package/dist/worldServer.js +48 -0
- package/dist/worldSourceSeatPending.js +9 -0
- package/dist/worldStrategyFixtures.js +164 -0
- package/dist/worldTesting.js +27 -0
- package/dist/worldTransitionDefaults.js +198 -0
- package/dist/worldTransitionExecutor.js +519 -0
- package/dist/worldTransitionGroup.js +113 -0
- package/dist/worldTransitionPhysicalSteps.js +40 -0
- package/dist/worldTransitionResolver.js +228 -0
- package/dist/worldTransitionSeatGroup.js +64 -0
- package/dist/worldTransitionSeats.js +260 -0
- package/dist/worldTransitionState.js +95 -0
- package/dist/worldTransitions.js +101 -0
- package/package.json +189 -4
|
@@ -0,0 +1,2249 @@
|
|
|
1
|
+
import { Context } from 'effect';
|
|
2
|
+
import { Duration } from 'effect';
|
|
3
|
+
import { Effect } from 'effect';
|
|
4
|
+
import { Layer } from 'effect';
|
|
5
|
+
import { Schema } from 'effect';
|
|
6
|
+
import { Subject } from '@voltro/protocol';
|
|
7
|
+
import { YieldableError } from 'effect/Cause';
|
|
8
|
+
|
|
9
|
+
/** Configuration consumers never invoke a player callback. Its player type
|
|
10
|
+
* stays author-owned; this inventory type does not erase it into an input. */
|
|
11
|
+
declare type AnyWorldDescriptor = WorldDescriptor<never>;
|
|
12
|
+
|
|
13
|
+
/** Explicit outside-Tick actual native reconstruction/hash verification. */
|
|
14
|
+
export declare const applyGeometryChunkSnapshot: (offeredBase: GeometryArtifact, offered: GeometryChunkSnapshot, maxPatchBytes?: number, profile?: GeometryArtifactLimits<GeometryKind>) => Promise<GeometryPersistenceObservation>;
|
|
15
|
+
|
|
16
|
+
/** Pure captured guard/rule preparation. Original profile/identity/layout is
|
|
17
|
+
* re-admitted after an override; hashing, SQL and native Session belong outside. */
|
|
18
|
+
export declare const applyGeometryEdit: (offered: GeometryEditContext, offeredStrategies?: Partial<GeometryEditStrategies>) => GeometryChunk;
|
|
19
|
+
|
|
20
|
+
/** Outside-Tick prepare/capture/hash only. Caller supplies actual cache/SQL
|
|
21
|
+
* revision and authenticated transport/owner authority; this is no mutation ack. */
|
|
22
|
+
export declare const applyGeometryPatch: <C extends GeometryChunk>(before: GeometryArtifact<C>, patch: GeometryPatch, currentRevision: number, codecLimits?: GeometryArtifactLimits<C["kind"]>) => Promise<{
|
|
23
|
+
readonly artifact: GeometryArtifact<C>;
|
|
24
|
+
readonly revision: number;
|
|
25
|
+
}>;
|
|
26
|
+
|
|
27
|
+
declare class BudgetExceeded extends BudgetExceeded_base {
|
|
28
|
+
get message(): string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
declare const BudgetExceeded_base: Schema.Class<BudgetExceeded, Schema.TaggedStruct<"BudgetExceeded", {
|
|
32
|
+
readonly budget: Schema.String;
|
|
33
|
+
readonly limit: Schema.Number;
|
|
34
|
+
}>, YieldableError>;
|
|
35
|
+
|
|
36
|
+
export declare const captureGeometryChunkRequest: (root: GeometryPreparedScope, offered: unknown) => GeometryChunkRequest;
|
|
37
|
+
|
|
38
|
+
export declare const captureGeometryChunkSnapshot: (offered: unknown, maxPatchBytes?: number) => GeometryChunkSnapshot;
|
|
39
|
+
|
|
40
|
+
export declare const captureGeometryChunkSnapshotFragment: (offered: unknown, maximum?: number) => GeometryChunkSnapshotFragment;
|
|
41
|
+
|
|
42
|
+
export declare const captureGeometryCompactionStrategies: (offered?: Partial<GeometryCompactionStrategies>) => GeometryCompactionStrategies;
|
|
43
|
+
|
|
44
|
+
export declare const captureGeometryDeltaFragment: (offered: unknown, options?: {
|
|
45
|
+
readonly maxPatchBytes?: number | undefined;
|
|
46
|
+
}) => GeometryDeltaFragment;
|
|
47
|
+
|
|
48
|
+
export declare const captureGeometryDerivationStrategies: (offered?: Partial<GeometryDerivationStrategies>) => GeometryDerivationStrategies;
|
|
49
|
+
|
|
50
|
+
export declare const captureGeometryEditAuthority: (offered: unknown) => GeometryEditAuthority;
|
|
51
|
+
|
|
52
|
+
export declare const captureGeometryEditIntent: (offered: unknown) => GeometryEditIntent;
|
|
53
|
+
|
|
54
|
+
export declare const captureGeometryEditMessage: (offered: unknown) => GeometryEditMessage;
|
|
55
|
+
|
|
56
|
+
/** Captured pure slots. Unknown/accessor fields and non-void validators refuse. */
|
|
57
|
+
export declare const captureGeometryEditStrategies: (offered?: Partial<GeometryEditStrategies>) => GeometryEditStrategies;
|
|
58
|
+
|
|
59
|
+
export declare const captureGeometryJournalArchiveReference: (offered: GeometryJournalArchiveReference) => GeometryJournalArchiveReference;
|
|
60
|
+
|
|
61
|
+
export declare const captureGeometryManifestFragment: (offered: unknown, maximumBytes?: number) => GeometryManifestFragment;
|
|
62
|
+
|
|
63
|
+
/** Pure source selection only. Actual CMS publication/channel admission is a server capability. */
|
|
64
|
+
export declare const cmsGeometry: (key: string, offered?: {
|
|
65
|
+
readonly channel?: string | undefined;
|
|
66
|
+
}) => GeometrySource;
|
|
67
|
+
|
|
68
|
+
declare type CollisionBody2D = {
|
|
69
|
+
readonly kind: 'circle';
|
|
70
|
+
readonly radius: number;
|
|
71
|
+
} | {
|
|
72
|
+
readonly kind: 'aabb';
|
|
73
|
+
readonly halfWidth: number;
|
|
74
|
+
readonly halfHeight: number;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
declare interface CollisionResult2D {
|
|
78
|
+
readonly transform: Transform2D;
|
|
79
|
+
readonly collided: ReadonlyArray<string>;
|
|
80
|
+
readonly iterations: number;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Compare two published static versions of one World — for example the live channel and a staged preview — so a
|
|
84
|
+
* GM sees which chunks a promotion would add, remove or change. Chunks compare by `contentSha256`, so a re-encoded
|
|
85
|
+
* but identical chunk counts as unchanged. Results are sorted by layer set and coordinate. */
|
|
86
|
+
export declare const compareGeometryVersions: (current: GeometryVersionReceipt, next: GeometryVersionReceipt) => GeometryVersionComparison;
|
|
87
|
+
|
|
88
|
+
/** One current outside-Tick native hash owner over all actual kind codecs. */
|
|
89
|
+
export declare const createGeometryArtifact: <C extends GeometryChunk>(offered: C, limits?: GeometryArtifactLimits<C["kind"]>) => Promise<GeometryArtifact<C>>;
|
|
90
|
+
|
|
91
|
+
/** Existing GPD net patch against verified static revision0. Current durable SQL
|
|
92
|
+
* revision is carried separately; this is a read result, not a mutation ACK. */
|
|
93
|
+
export declare const createGeometryChunkSnapshot: (requestId: string, offeredBase: GeometryArtifact, offered: GeometryPersistenceObservation, maxPatchBytes?: number, profile?: GeometryArtifactLimits<GeometryKind>) => Promise<GeometryChunkSnapshot>;
|
|
94
|
+
|
|
95
|
+
export declare const createGeometryChunkSnapshotFragments: (offered: GeometryChunkSnapshot, maximum?: number) => ReadonlyArray<GeometryChunkSnapshotFragment>;
|
|
96
|
+
|
|
97
|
+
/** Own actual GPD bytes and exact receipt, then bounded reliable fragments. Never
|
|
98
|
+
* stream static blobs through this channel or imply that a digest grants rights. */
|
|
99
|
+
export declare const createGeometryDeltaFragments: (offeredReceipt: GeometryPersistenceReceipt, offeredPatch: Uint8Array, options?: {
|
|
100
|
+
readonly maxPatchBytes?: number | undefined;
|
|
101
|
+
}) => ReadonlyArray<GeometryDeltaFragment>;
|
|
102
|
+
|
|
103
|
+
/** Canonical quantized height samples over the same genuine RoomStateCodec.
|
|
104
|
+
* No float quantizer, image/source import, World/provider or native I/O. */
|
|
105
|
+
export declare const createGeometryHeightfieldCodec: (offered?: Partial<GeometryHeightfieldLimits>) => GeometryHeightfieldCodec;
|
|
106
|
+
|
|
107
|
+
/** Prepare once outside Tick; queries interpolate four admitted raw samples
|
|
108
|
+
* through the actual fixed math with no source/provider/Store/clock work. */
|
|
109
|
+
export declare const createGeometryHeightfieldView: (offered: GeometryHeightfieldChunk, limits?: Partial<GeometryHeightfieldLimits>) => GeometryHeightfieldView;
|
|
110
|
+
|
|
111
|
+
/** Actual existing codec-Ops between genuine same-scope captured artifacts.
|
|
112
|
+
* Producing a data patch allocates no store/authority/lock or player approval. */
|
|
113
|
+
export declare const createGeometryPatch: <C extends GeometryChunk>(before: GeometryArtifact<C>, after: GeometryArtifact<C>, baseRevision: number, options?: {
|
|
114
|
+
readonly limits?: Partial<GeometryPatchLimits>;
|
|
115
|
+
readonly codecLimits?: GeometryArtifactLimits<C["kind"]>;
|
|
116
|
+
}) => GeometryPatch;
|
|
117
|
+
|
|
118
|
+
/** Explicit canonical closed-box/sphere source volumes; not triangle/mesh physics. */
|
|
119
|
+
export declare const createGeometryShapesCodec: (offered?: Partial<GeometryShapesLimits>) => GeometryShapesCodec;
|
|
120
|
+
|
|
121
|
+
/** Owned fixed-raw volumes, exact unsigned word-square sphere comparisons and
|
|
122
|
+
* canonical results. Full query budget is required, never a partial empty hit. */
|
|
123
|
+
export declare const createGeometryShapesView: (offered: GeometryShapesChunk, limits?: Partial<GeometryShapesLimits>) => GeometryShapesView;
|
|
124
|
+
|
|
125
|
+
/** Typed tile convenience facade over the shared actual outside-Tick owner. */
|
|
126
|
+
export declare const createGeometryTileArtifact: (chunk: GeometryTileChunk, limits?: Partial<GeometryTileLimits>) => Promise<GeometryTileArtifact>;
|
|
127
|
+
|
|
128
|
+
/** One current GTC/v1 envelope over the real RoomStateCodec. Source/client/SQL/
|
|
129
|
+
* replay consumers can borrow these exact bytes; no storage/host is acquired. */
|
|
130
|
+
export declare const createGeometryTileCodec: (offered?: Partial<GeometryTileLimits>) => GeometryTileCodec;
|
|
131
|
+
|
|
132
|
+
/** Deterministic four-neighbor A* on one genuine already-compiled immutable tile
|
|
133
|
+
* view. Admission/large work-array allocation outside Tick, bounded CPU continuation thereafter.
|
|
134
|
+
* No source/provider callbacks, missing neighbors, diagonal/corner cutting, I/O
|
|
135
|
+
* or clock. Terminal searches release private work arrays. */
|
|
136
|
+
export declare const createGeometryTilePathSearch: (view: GeometryTileView, start: GeometryTilePoint, goal: GeometryTilePoint, offeredLimits?: Partial<GeometryTileNavigationLimits>) => GeometryTilePathSearch;
|
|
137
|
+
|
|
138
|
+
/** CPU-only compiled immutable view; perform admission/RLE expansion outside the
|
|
139
|
+
* tick. Retained O(1) cell queries acquire no source, Store, network or timer. */
|
|
140
|
+
export declare const createGeometryTileView: (offered: GeometryTileChunk, limits?: Partial<GeometryTileLimits>) => GeometryTileView;
|
|
141
|
+
|
|
142
|
+
/** Canonical global palette and complete ordinal16³ sections; no sparse missing
|
|
143
|
+
* section/air fallback, source import, World allocation or tick I/O. */
|
|
144
|
+
export declare const createGeometryVoxelCodec: (offered?: Partial<GeometryVoxelLimits>) => GeometryVoxelCodec;
|
|
145
|
+
|
|
146
|
+
/** Compile cumulative section-run indexes outside Tick. Lookup retains compact
|
|
147
|
+
* section data rather than expanding a full voxel/material object grid. */
|
|
148
|
+
export declare const createGeometryVoxelView: (offered: GeometryVoxelChunk, limits?: Partial<GeometryVoxelLimits>) => GeometryVoxelView;
|
|
149
|
+
|
|
150
|
+
/** Prepare a complete rectangular native collision grid outside Tick, then
|
|
151
|
+
* reuse the real incremental A*. Gaps/profile mismatches refuse. Any genuine
|
|
152
|
+
* frame replacement/withdrawal cancels even an already-found stale path. */
|
|
153
|
+
export declare const createGeometryWorldTilePathSearch: (view: GeometryWorldView, offeredRegion: GeometryWorldTilePathRegion, offeredStart: GeometryTilePoint, offeredGoal: GeometryTilePoint, offeredOptions?: GeometryWorldTilePathOptions) => GeometryWorldTilePathSearch;
|
|
154
|
+
|
|
155
|
+
export declare const decodeGeometryInspection: (value: unknown) => GeometryInspection;
|
|
156
|
+
|
|
157
|
+
/** Admit only complete canonical GPD/v1 envelope/metadata. Opaque codec Ops
|
|
158
|
+
* require the actual current baseline during apply; no empty baseline is made. */
|
|
159
|
+
export declare const decodeGeometryPatch: (offered: Uint8Array, offeredLimits?: Partial<GeometryPatchLimits>) => GeometryPatch;
|
|
160
|
+
|
|
161
|
+
/** One exported default. Bounded native canonical codec reconstruction outside
|
|
162
|
+
* Tick, never accept offered solidity/shape dimensions or full state from a player. */
|
|
163
|
+
export declare const defaultGeometryApplyOp: GeometryEditStrategies['applyOp'];
|
|
164
|
+
|
|
165
|
+
export declare const defaultGeometryCollisionDerive: GeometryCollisionDerive;
|
|
166
|
+
|
|
167
|
+
export declare const defaultGeometryCompaction: GeometryCompaction;
|
|
168
|
+
|
|
169
|
+
export declare const defaultGeometryHeightfieldLimits: Readonly<GeometryHeightfieldLimits>;
|
|
170
|
+
|
|
171
|
+
/** One exported default, shared by World declaration and actual preparation. */
|
|
172
|
+
export declare const defaultGeometryMigrateDelta: GeometryMigrateDelta;
|
|
173
|
+
|
|
174
|
+
export declare const defaultGeometryNavDerive: GeometryNavDerive;
|
|
175
|
+
|
|
176
|
+
/** One exported default. Exact integer-word Euclidean distance: no floating
|
|
177
|
+
* square approximation, sqrt, I/O or private current-position provider. */
|
|
178
|
+
export declare const defaultGeometryOpValidator: GeometryEditStrategies['opValidator'];
|
|
179
|
+
|
|
180
|
+
export declare const defaultGeometryPatchLimits: Readonly<GeometryPatchLimits>;
|
|
181
|
+
|
|
182
|
+
export declare const defaultGeometryRollbackStrategies: Readonly<GeometryRollbackStrategies>;
|
|
183
|
+
|
|
184
|
+
export declare const defaultGeometryShapesLimits: Readonly<GeometryShapesLimits>;
|
|
185
|
+
|
|
186
|
+
export declare const defaultGeometryTileLimits: Readonly<GeometryTileLimits>;
|
|
187
|
+
|
|
188
|
+
export declare const defaultGeometryTileNavigationLimits: Readonly<GeometryTileNavigationLimits>;
|
|
189
|
+
|
|
190
|
+
export declare const defaultGeometryVoxelLimits: Readonly<GeometryVoxelLimits>;
|
|
191
|
+
|
|
192
|
+
/** Exact reduced integer ratio over admitted coordinates/differences of magnitude <= u32.
|
|
193
|
+
* Shared 2D/3D slab arithmetic; never round a fraction before comparing it. */
|
|
194
|
+
export declare interface FixedSlabFraction {
|
|
195
|
+
readonly numerator: number;
|
|
196
|
+
readonly denominator: number;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export declare interface GeometryActivation {
|
|
200
|
+
readonly _tag: 'GeometryActivation';
|
|
201
|
+
readonly receipt: GeometryPersistenceReceipt;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export declare interface GeometryActorInventory {
|
|
205
|
+
at(coordinate: GeometryPreparedCoordinate): GeometryPreparedEntry;
|
|
206
|
+
contains(coordinate: GeometryPreparedCoordinate): boolean;
|
|
207
|
+
/** CPU pointer activation only; a stale before-frame refuses, exact repeat is false. */
|
|
208
|
+
activate(activation: GeometryActivation): boolean;
|
|
209
|
+
/** CPU-only whole-version swap after genuine outside-Tick SQL preparation. */
|
|
210
|
+
activateVersion(activation: GeometryVersionActivation): boolean;
|
|
211
|
+
observation(): GeometryActorInventoryObservation;
|
|
212
|
+
close(): void;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
export declare interface GeometryActorInventoryObservation {
|
|
216
|
+
readonly scope: GeometryPreparedScope;
|
|
217
|
+
readonly generation: number;
|
|
218
|
+
readonly chunks: number;
|
|
219
|
+
readonly accountedBytes: number;
|
|
220
|
+
readonly closed: boolean;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
export declare interface GeometryArtifact<C extends GeometryChunk = GeometryChunk> {
|
|
224
|
+
readonly chunk: C;
|
|
225
|
+
readonly blobSha256: string;
|
|
226
|
+
/** Canonical declared content/layout, excluding actual address/version only. */
|
|
227
|
+
readonly contentSha256: string;
|
|
228
|
+
bytes(): Uint8Array;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export declare type GeometryArtifactLimits<K extends GeometryKind> = K extends '2d-tiles' ? Partial<GeometryTileLimits> : K extends '2d-heightfield' ? Partial<GeometryHeightfieldLimits> : K extends '3d-shapes' ? Partial<GeometryShapesLimits> : Partial<GeometryVoxelLimits>;
|
|
232
|
+
|
|
233
|
+
export declare interface GeometryBoxOverlapOptions {
|
|
234
|
+
readonly maxTests?: number;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export declare const GeometryBoxSchema: Schema.Struct<{
|
|
238
|
+
readonly halfXRaw: Schema.Int;
|
|
239
|
+
readonly halfYRaw: Schema.Int;
|
|
240
|
+
readonly halfZRaw: Schema.Int;
|
|
241
|
+
readonly id: Schema.String;
|
|
242
|
+
readonly xRaw: Schema.Int;
|
|
243
|
+
readonly yRaw: Schema.Int;
|
|
244
|
+
readonly zRaw: Schema.Int;
|
|
245
|
+
readonly kind: Schema.Literal<"aabb">;
|
|
246
|
+
}>;
|
|
247
|
+
|
|
248
|
+
export declare interface GeometryCellChunk {
|
|
249
|
+
readonly coordinate: GeometryPreparedCoordinate;
|
|
250
|
+
readonly ownerCellId: string;
|
|
251
|
+
readonly writable: boolean;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export declare interface GeometryCellCoverage {
|
|
255
|
+
readonly scope: GeometryPreparedScope;
|
|
256
|
+
readonly cell: WorldCell;
|
|
257
|
+
readonly marginChunks: number;
|
|
258
|
+
readonly chunks: ReadonlyArray<GeometryCellChunk>;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
export declare interface GeometryCellCoverageOptions {
|
|
262
|
+
readonly maxChunks?: number | undefined;
|
|
263
|
+
/** World topology is currently 2D; 3D representations require an explicit
|
|
264
|
+
* server-authored half-open vertical span in exact global Q16 raw units. */
|
|
265
|
+
readonly vertical?: {
|
|
266
|
+
readonly minimumRaw: number;
|
|
267
|
+
readonly maximumRaw: number;
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export declare type GeometryChunk = GeometryTileChunk | GeometryHeightfieldChunk | GeometryShapesChunk | GeometryVoxelChunk;
|
|
272
|
+
|
|
273
|
+
export declare type GeometryChunkAddress = (typeof GeometryChunkAddressSchema)["Type"];
|
|
274
|
+
|
|
275
|
+
export declare type GeometryChunkAddress3D = (typeof GeometryChunkAddress3DSchema)["Type"];
|
|
276
|
+
|
|
277
|
+
export declare const GeometryChunkAddress3DSchema: Schema.Struct<{
|
|
278
|
+
readonly worldId: Schema.String;
|
|
279
|
+
readonly layerSetId: Schema.String;
|
|
280
|
+
readonly cx: Schema.Int;
|
|
281
|
+
readonly cy: Schema.Int;
|
|
282
|
+
readonly cz: Schema.Int;
|
|
283
|
+
}>;
|
|
284
|
+
|
|
285
|
+
export declare const GeometryChunkAddressSchema: Schema.Struct<{
|
|
286
|
+
readonly worldId: Schema.String;
|
|
287
|
+
readonly layerSetId: Schema.String;
|
|
288
|
+
readonly cx: Schema.Int;
|
|
289
|
+
readonly cy: Schema.Int;
|
|
290
|
+
}>;
|
|
291
|
+
|
|
292
|
+
export declare interface GeometryChunkRequest {
|
|
293
|
+
readonly requestId: string;
|
|
294
|
+
readonly coordinate: GeometryPreparedCoordinate;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export declare const geometryChunkRequestChannel: Readonly<RoomChannel>;
|
|
298
|
+
|
|
299
|
+
export declare const GeometryChunkRequestSchema: Schema.Struct<{
|
|
300
|
+
readonly requestId: Schema.String;
|
|
301
|
+
readonly coordinate: Schema.Struct<{
|
|
302
|
+
readonly cx: Schema.Int;
|
|
303
|
+
readonly cy: Schema.Int;
|
|
304
|
+
readonly cz: Schema.optional<Schema.Int>;
|
|
305
|
+
}>;
|
|
306
|
+
}>;
|
|
307
|
+
|
|
308
|
+
export declare interface GeometryChunkSnapshot {
|
|
309
|
+
readonly scope: GeometryPersistenceScope;
|
|
310
|
+
readonly requestId: string;
|
|
311
|
+
readonly revision: number;
|
|
312
|
+
readonly staticBlobSha256: string;
|
|
313
|
+
readonly staticContentSha256: string;
|
|
314
|
+
readonly blobSha256: string;
|
|
315
|
+
readonly contentSha256: string;
|
|
316
|
+
readonly patchSha256: string;
|
|
317
|
+
readonly patch: Uint8Array;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
export declare const geometryChunkSnapshotChannel: Readonly<RoomChannel>;
|
|
321
|
+
|
|
322
|
+
export declare interface GeometryChunkSnapshotFragment extends Omit<GeometryChunkSnapshot, 'patch'> {
|
|
323
|
+
readonly type: 'GeoChunkSnapshotFragment';
|
|
324
|
+
readonly totalBytes: number;
|
|
325
|
+
readonly offset: number;
|
|
326
|
+
readonly bytes: ReadonlyArray<number>;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
export declare const GeometryChunkSnapshotFragmentSchema: Schema.Struct<{
|
|
330
|
+
readonly type: Schema.Literal<"GeoChunkSnapshotFragment">;
|
|
331
|
+
readonly scope: Schema.Struct<{
|
|
332
|
+
readonly tenantId: Schema.String;
|
|
333
|
+
readonly kind: Schema.Literals<readonly ["2d-tiles", "2d-heightfield", "3d-shapes", "3d-voxel"]>;
|
|
334
|
+
readonly worldId: Schema.String;
|
|
335
|
+
readonly layerSetId: Schema.String;
|
|
336
|
+
readonly version: Schema.String;
|
|
337
|
+
readonly cx: Schema.Int;
|
|
338
|
+
readonly cy: Schema.Int;
|
|
339
|
+
readonly cz: Schema.optional<Schema.Int>;
|
|
340
|
+
}>;
|
|
341
|
+
readonly requestId: Schema.String;
|
|
342
|
+
readonly revision: Schema.Int;
|
|
343
|
+
readonly staticBlobSha256: Schema.String;
|
|
344
|
+
readonly staticContentSha256: Schema.String;
|
|
345
|
+
readonly blobSha256: Schema.String;
|
|
346
|
+
readonly contentSha256: Schema.String;
|
|
347
|
+
readonly patchSha256: Schema.String;
|
|
348
|
+
readonly totalBytes: Schema.Int;
|
|
349
|
+
readonly offset: Schema.Int;
|
|
350
|
+
readonly bytes: Schema.$Array<Schema.Int>;
|
|
351
|
+
}>;
|
|
352
|
+
|
|
353
|
+
export declare type GeometryCollisionDerive = (context: GeometryDerivationContext) => GeometryChunk;
|
|
354
|
+
|
|
355
|
+
export declare type GeometryCompaction = (context: GeometryCompactionContext) => GeometryPatch;
|
|
356
|
+
|
|
357
|
+
/** Genuine immutable native artifacts only. Compaction preserves the current
|
|
358
|
+
* truth; it cannot authorize a different edit, owner, revision or SQL write. */
|
|
359
|
+
export declare interface GeometryCompactionContext {
|
|
360
|
+
readonly static: GeometryArtifact;
|
|
361
|
+
readonly current: GeometryArtifact;
|
|
362
|
+
readonly limits: GeometryPatchLimits;
|
|
363
|
+
readonly codecLimits: GeometryArtifactLimits<GeometryKind>;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
export declare interface GeometryCompactionStrategies {
|
|
367
|
+
readonly compaction: GeometryCompaction;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
export declare interface GeometryDeltaFragment {
|
|
371
|
+
readonly type: 'GeoDeltaFragment';
|
|
372
|
+
readonly receipt: GeometryPersistenceReceipt;
|
|
373
|
+
readonly totalBytes: number;
|
|
374
|
+
readonly offset: number;
|
|
375
|
+
readonly bytes: ReadonlyArray<number>;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
export declare const geometryDeltaFragmentBytes = 8192;
|
|
379
|
+
|
|
380
|
+
/** Existing ordinary Room ServerMessage codec, no new wire frame or second Delta format. */
|
|
381
|
+
export declare const GeometryDeltaFragmentSchema: Schema.Struct<{
|
|
382
|
+
readonly type: Schema.Literal<"GeoDeltaFragment">;
|
|
383
|
+
readonly receipt: Schema.Struct<{
|
|
384
|
+
readonly scope: Schema.Struct<{
|
|
385
|
+
readonly tenantId: Schema.String;
|
|
386
|
+
readonly kind: Schema.Literals<readonly ["2d-tiles", "2d-heightfield", "3d-shapes", "3d-voxel"]>;
|
|
387
|
+
readonly worldId: Schema.String;
|
|
388
|
+
readonly version: Schema.String;
|
|
389
|
+
readonly layerSetId: Schema.String;
|
|
390
|
+
readonly cx: Schema.Int;
|
|
391
|
+
readonly cy: Schema.Int;
|
|
392
|
+
readonly cz: Schema.optional<Schema.Int>;
|
|
393
|
+
}>;
|
|
394
|
+
readonly requestId: Schema.String;
|
|
395
|
+
readonly baseRevision: Schema.Int;
|
|
396
|
+
readonly revision: Schema.Int;
|
|
397
|
+
readonly changed: Schema.Boolean;
|
|
398
|
+
readonly blobSha256: Schema.String;
|
|
399
|
+
readonly contentSha256: Schema.String;
|
|
400
|
+
}>;
|
|
401
|
+
readonly totalBytes: Schema.Int;
|
|
402
|
+
readonly offset: Schema.Int;
|
|
403
|
+
readonly bytes: Schema.$Array<Schema.Int>;
|
|
404
|
+
}>;
|
|
405
|
+
|
|
406
|
+
export declare interface GeometryDeltaMigrationFrom {
|
|
407
|
+
readonly static: GeometryArtifact;
|
|
408
|
+
readonly current: GeometryArtifact;
|
|
409
|
+
readonly revision: number;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
export declare interface GeometryDeltaMigrationTo {
|
|
413
|
+
readonly static: GeometryArtifact;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
export declare interface GeometryDeltaReceiver {
|
|
417
|
+
receive(fragment: unknown): GeometryDeltaReception;
|
|
418
|
+
drop(scope: GeometryPersistenceScope, requestId: string): boolean;
|
|
419
|
+
reset(): void;
|
|
420
|
+
observation(): {
|
|
421
|
+
readonly pending: number;
|
|
422
|
+
readonly accountedBytes: number;
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
export declare interface GeometryDeltaReceiverOptions {
|
|
427
|
+
readonly maxPending?: number | undefined;
|
|
428
|
+
readonly maxPatchBytes?: number | undefined;
|
|
429
|
+
readonly maxPendingBytes?: number | undefined;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
export declare type GeometryDeltaReception = {
|
|
433
|
+
readonly _tag: 'pending';
|
|
434
|
+
readonly receivedFragments: number;
|
|
435
|
+
readonly totalFragments: number;
|
|
436
|
+
} | {
|
|
437
|
+
readonly _tag: 'complete';
|
|
438
|
+
readonly receipt: GeometryPersistenceReceipt;
|
|
439
|
+
readonly patch: Uint8Array;
|
|
440
|
+
};
|
|
441
|
+
|
|
442
|
+
/** Outside-Tick native data only. No query callback, provider, actor, Store or
|
|
443
|
+
* authority capability is accepted as a derivation result. */
|
|
444
|
+
export declare interface GeometryDerivationContext {
|
|
445
|
+
readonly chunk: GeometryChunk;
|
|
446
|
+
readonly codecLimits: GeometryArtifactLimits<GeometryKind>;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
export declare interface GeometryDerivationStrategies {
|
|
450
|
+
readonly collisionDerive: GeometryCollisionDerive;
|
|
451
|
+
readonly navDerive: GeometryNavDerive;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
/** Trusted server snapshot. Never derive these rights, positions, budgets or
|
|
455
|
+
* catalogs from the intent body. App policy must recheck authority at commit. */
|
|
456
|
+
export declare interface GeometryEditAuthority {
|
|
457
|
+
readonly dynamicEnabled: boolean;
|
|
458
|
+
readonly ownsChunk: boolean;
|
|
459
|
+
readonly canBuild: boolean;
|
|
460
|
+
readonly cooldownReady: boolean;
|
|
461
|
+
readonly remainingOps: number;
|
|
462
|
+
readonly maxReachRaw: number;
|
|
463
|
+
readonly maxHeightUnits: number;
|
|
464
|
+
readonly position: {
|
|
465
|
+
readonly xRaw: number;
|
|
466
|
+
readonly yRaw: number;
|
|
467
|
+
readonly zRaw: number;
|
|
468
|
+
};
|
|
469
|
+
readonly materials: ReadonlyArray<GeometryTileMaterial>;
|
|
470
|
+
readonly shapes: ReadonlyArray<GeometryShapeTemplate>;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
export declare const geometryEditChannel: Readonly<RoomChannel>;
|
|
474
|
+
|
|
475
|
+
export declare interface GeometryEditContext {
|
|
476
|
+
readonly chunk: GeometryChunk;
|
|
477
|
+
readonly intent: GeometryEditIntent;
|
|
478
|
+
readonly authority: GeometryEditAuthority;
|
|
479
|
+
readonly placementId: string;
|
|
480
|
+
readonly codecLimits?: GeometryArtifactLimits<GeometryKind> | undefined;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
/** Player requests an action and its target, never solidity, shape dimensions,
|
|
484
|
+
* an authoritative player position, revision, owner, full chunk or Delta bytes. */
|
|
485
|
+
export declare type GeometryEditIntent = {
|
|
486
|
+
readonly op: 'setTile';
|
|
487
|
+
readonly x: number;
|
|
488
|
+
readonly y: number;
|
|
489
|
+
readonly material: string;
|
|
490
|
+
} | {
|
|
491
|
+
readonly op: 'raiseHeight';
|
|
492
|
+
readonly x: number;
|
|
493
|
+
readonly y: number;
|
|
494
|
+
readonly units: number;
|
|
495
|
+
} | {
|
|
496
|
+
readonly op: 'setVoxel';
|
|
497
|
+
readonly x: number;
|
|
498
|
+
readonly y: number;
|
|
499
|
+
readonly z: number;
|
|
500
|
+
readonly material: string;
|
|
501
|
+
} | {
|
|
502
|
+
readonly op: 'placeShape';
|
|
503
|
+
readonly template: string;
|
|
504
|
+
readonly xRaw: number;
|
|
505
|
+
readonly yRaw: number;
|
|
506
|
+
readonly zRaw: number;
|
|
507
|
+
} | {
|
|
508
|
+
readonly op: 'removeShape';
|
|
509
|
+
readonly id: string;
|
|
510
|
+
};
|
|
511
|
+
|
|
512
|
+
export declare interface GeometryEditMessage {
|
|
513
|
+
readonly requestId: string;
|
|
514
|
+
readonly coordinate: GeometryPreparedCoordinate;
|
|
515
|
+
readonly intent: GeometryEditIntent;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
/** Ordinary reliable ClientMessage: action/target/identity, no player authority,
|
|
519
|
+
* state, revision, patch, Subject, owner epoch or geometry-source selector. */
|
|
520
|
+
export declare const GeometryEditMessageSchema: Schema.Struct<{
|
|
521
|
+
readonly requestId: Schema.String;
|
|
522
|
+
readonly coordinate: Schema.Struct<{
|
|
523
|
+
readonly cx: Schema.Int;
|
|
524
|
+
readonly cy: Schema.Int;
|
|
525
|
+
readonly cz: Schema.optional<Schema.Int>;
|
|
526
|
+
}>;
|
|
527
|
+
readonly intent: Schema.Union<readonly [Schema.Struct<{
|
|
528
|
+
readonly op: Schema.Literal<"setTile">;
|
|
529
|
+
readonly x: Schema.Int;
|
|
530
|
+
readonly y: Schema.Int;
|
|
531
|
+
readonly material: Schema.String;
|
|
532
|
+
}>, Schema.Struct<{
|
|
533
|
+
readonly op: Schema.Literal<"raiseHeight">;
|
|
534
|
+
readonly x: Schema.Int;
|
|
535
|
+
readonly y: Schema.Int;
|
|
536
|
+
readonly units: Schema.Int;
|
|
537
|
+
}>, Schema.Struct<{
|
|
538
|
+
readonly op: Schema.Literal<"setVoxel">;
|
|
539
|
+
readonly x: Schema.Int;
|
|
540
|
+
readonly y: Schema.Int;
|
|
541
|
+
readonly z: Schema.Int;
|
|
542
|
+
readonly material: Schema.String;
|
|
543
|
+
}>, Schema.Struct<{
|
|
544
|
+
readonly op: Schema.Literal<"placeShape">;
|
|
545
|
+
readonly template: Schema.String;
|
|
546
|
+
readonly xRaw: Schema.Int;
|
|
547
|
+
readonly yRaw: Schema.Int;
|
|
548
|
+
readonly zRaw: Schema.Int;
|
|
549
|
+
}>, Schema.Struct<{
|
|
550
|
+
readonly op: Schema.Literal<"removeShape">;
|
|
551
|
+
readonly id: Schema.String;
|
|
552
|
+
}>]>;
|
|
553
|
+
}>;
|
|
554
|
+
|
|
555
|
+
export declare interface GeometryEditStrategies {
|
|
556
|
+
/** Pure policy slot. Current native Session/SQL ownership and codec integrity cannot be overridden by this slot. */
|
|
557
|
+
readonly opValidator: (context: GeometryEditContext) => void;
|
|
558
|
+
/** Pure rule slot; returned chunk is admitted under the original identity/layout/profile. */
|
|
559
|
+
readonly applyOp: (context: GeometryEditContext) => GeometryChunk;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
export declare type GeometryGenerator = (context: GeometryProceduralContext) => GeometryChunk;
|
|
563
|
+
|
|
564
|
+
export declare interface GeometryGltfImportOptions {
|
|
565
|
+
readonly worldId: string;
|
|
566
|
+
readonly layerSetId: string;
|
|
567
|
+
readonly version: string;
|
|
568
|
+
readonly origin: {
|
|
569
|
+
readonly cx: number;
|
|
570
|
+
readonly cy: number;
|
|
571
|
+
readonly cz: number;
|
|
572
|
+
};
|
|
573
|
+
/** Complete authored volume, including explicitly empty output chunks. */
|
|
574
|
+
readonly chunks: {
|
|
575
|
+
readonly x: number;
|
|
576
|
+
readonly y: number;
|
|
577
|
+
readonly z: number;
|
|
578
|
+
};
|
|
579
|
+
readonly chunkSizeRaw?: number;
|
|
580
|
+
readonly scene: number;
|
|
581
|
+
readonly collisionNodes: ReadonlyArray<number>;
|
|
582
|
+
/** Explicit conservative mesh bounding volumes, not triangle collision. */
|
|
583
|
+
readonly collision: 'mesh-aabb';
|
|
584
|
+
/** Exact buffer-index order; no URI/file/network resolution. */
|
|
585
|
+
readonly buffers: ReadonlyArray<Uint8Array>;
|
|
586
|
+
readonly maxInputBytes?: number;
|
|
587
|
+
readonly maxBufferBytes?: number;
|
|
588
|
+
readonly maxNodes?: number;
|
|
589
|
+
readonly maxVertices?: number;
|
|
590
|
+
readonly maxChunks?: number | undefined;
|
|
591
|
+
readonly maxShapes?: number;
|
|
592
|
+
readonly codecLimits?: Partial<GeometryShapesLimits> | undefined;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
export declare interface GeometryGridRayHit {
|
|
596
|
+
readonly kind: '2d-tiles' | '3d-voxel';
|
|
597
|
+
readonly scope: GeometryPersistenceScope;
|
|
598
|
+
readonly revision: number;
|
|
599
|
+
readonly cell: {
|
|
600
|
+
readonly x: number;
|
|
601
|
+
readonly y: number;
|
|
602
|
+
readonly z?: number;
|
|
603
|
+
};
|
|
604
|
+
/** Exact reduced infimum entry fraction on the offered segment, not a
|
|
605
|
+
* rounded contact point or a floating-point distance. */
|
|
606
|
+
readonly fraction: {
|
|
607
|
+
readonly numerator: number;
|
|
608
|
+
readonly denominator: number;
|
|
609
|
+
};
|
|
610
|
+
readonly visitedCells: number;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
export declare interface GeometryGridRayOptions {
|
|
614
|
+
readonly maxVisitedCells?: number;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
export declare interface GeometryGridRayPoint {
|
|
618
|
+
readonly xRaw: number;
|
|
619
|
+
readonly yRaw: number;
|
|
620
|
+
readonly zRaw?: number;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
export declare interface GeometryGridSweepHit {
|
|
624
|
+
readonly kind: '2d-tiles' | '3d-voxel';
|
|
625
|
+
readonly scope: GeometryPersistenceScope;
|
|
626
|
+
readonly revision: number;
|
|
627
|
+
readonly cell: {
|
|
628
|
+
readonly x: number;
|
|
629
|
+
readonly y: number;
|
|
630
|
+
readonly z?: number;
|
|
631
|
+
};
|
|
632
|
+
/** Infimum/supremum of positive-volume overlap, clipped to [0,1]. Contact
|
|
633
|
+
* alone is not an overlap; fractions are exact reduced integer ratios. */
|
|
634
|
+
readonly entry: FixedSlabFraction;
|
|
635
|
+
readonly exit: FixedSlabFraction;
|
|
636
|
+
readonly initialOverlap: boolean;
|
|
637
|
+
readonly testedCells: number;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
/** A half-open raw box `[min, max)` on all three axes; a heightfield box needs its z extent. */
|
|
641
|
+
export declare interface GeometryHeightfieldBoxRaw {
|
|
642
|
+
readonly minXRaw: number;
|
|
643
|
+
readonly minYRaw: number;
|
|
644
|
+
readonly minZRaw: number;
|
|
645
|
+
readonly maxXRaw: number;
|
|
646
|
+
readonly maxYRaw: number;
|
|
647
|
+
readonly maxZRaw: number;
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
export declare type GeometryHeightfieldChunk = (typeof GeometryHeightfieldChunkSchema)["Type"];
|
|
651
|
+
|
|
652
|
+
export declare const GeometryHeightfieldChunkSchema: Schema.Struct<{
|
|
653
|
+
readonly kind: Schema.Literal<"2d-heightfield">;
|
|
654
|
+
readonly formatVersion: Schema.Literal<1>;
|
|
655
|
+
readonly address: Schema.Struct<{
|
|
656
|
+
readonly worldId: Schema.String;
|
|
657
|
+
readonly layerSetId: Schema.String;
|
|
658
|
+
readonly cx: Schema.Int;
|
|
659
|
+
readonly cy: Schema.Int;
|
|
660
|
+
}>;
|
|
661
|
+
readonly version: Schema.String;
|
|
662
|
+
readonly width: Schema.Int;
|
|
663
|
+
readonly height: Schema.Int;
|
|
664
|
+
readonly sampleSpacingRaw: Schema.Int;
|
|
665
|
+
readonly baseHeightRaw: Schema.Int;
|
|
666
|
+
readonly heightQuantumRaw: Schema.Int;
|
|
667
|
+
readonly heights: Schema.$Array<Schema.Int>;
|
|
668
|
+
}>;
|
|
669
|
+
|
|
670
|
+
export declare interface GeometryHeightfieldCodec {
|
|
671
|
+
readonly limits: GeometryHeightfieldLimits;
|
|
672
|
+
readonly schemaHash: number;
|
|
673
|
+
capture(offered: unknown): GeometryHeightfieldChunk;
|
|
674
|
+
create(source: GeometryHeightfieldSource): GeometryHeightfieldChunk;
|
|
675
|
+
encode(chunk: GeometryHeightfieldChunk): Uint8Array;
|
|
676
|
+
decode(bytes: Uint8Array): GeometryHeightfieldChunk;
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
export declare interface GeometryHeightfieldLimits {
|
|
680
|
+
readonly maxSide: number;
|
|
681
|
+
readonly maxSamples: number;
|
|
682
|
+
readonly maxBytes: number;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
export declare interface GeometryHeightfieldRayHit {
|
|
686
|
+
readonly kind: '2d-heightfield';
|
|
687
|
+
readonly scope: GeometryPersistenceScope;
|
|
688
|
+
readonly revision: number;
|
|
689
|
+
/** The first point on the segment at or below the surface, in global raw units. */
|
|
690
|
+
readonly point: GeometryHeightfieldRayPoint;
|
|
691
|
+
/** Exact reduced position on the offered segment whose raw-grid point is `point`. */
|
|
692
|
+
readonly fraction: {
|
|
693
|
+
readonly numerator: number;
|
|
694
|
+
readonly denominator: number;
|
|
695
|
+
};
|
|
696
|
+
readonly visitedSamples: number;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
export declare interface GeometryHeightfieldRayOptions {
|
|
700
|
+
/** Distance between coarse samples along the ground track, in raw units (e.g. a quarter of the sample spacing). */
|
|
701
|
+
readonly stepRaw: number;
|
|
702
|
+
/** Height samples the ray may read, coarse and refining together. */
|
|
703
|
+
readonly maxSamples: number;
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
export declare interface GeometryHeightfieldRayPoint {
|
|
707
|
+
readonly xRaw: number;
|
|
708
|
+
readonly yRaw: number;
|
|
709
|
+
readonly zRaw: number;
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
/** The surface under one global raw point: the native interpolated height and the chunk it came from. */
|
|
713
|
+
export declare interface GeometryHeightfieldSample {
|
|
714
|
+
readonly heightRaw: number;
|
|
715
|
+
readonly scope: GeometryPersistenceScope;
|
|
716
|
+
readonly revision: number;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
export declare interface GeometryHeightfieldSource {
|
|
720
|
+
readonly address: GeometryChunkAddress;
|
|
721
|
+
readonly version: string;
|
|
722
|
+
readonly width: number;
|
|
723
|
+
readonly height: number;
|
|
724
|
+
readonly sampleSpacingRaw: number;
|
|
725
|
+
readonly baseHeightRaw: number;
|
|
726
|
+
readonly heightQuantumRaw: number;
|
|
727
|
+
readonly heightRawSamples: ReadonlyArray<number>;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
export declare interface GeometryHeightfieldSweepHit {
|
|
731
|
+
readonly kind: '2d-heightfield';
|
|
732
|
+
/** The first box position along the path that reaches under the surface, on the raw grid. */
|
|
733
|
+
readonly box: GeometryHeightfieldBoxRaw;
|
|
734
|
+
/** Exact reduced position of `box` on the path: raw steps along the longest axis over its length. */
|
|
735
|
+
readonly fraction: {
|
|
736
|
+
readonly numerator: number;
|
|
737
|
+
readonly denominator: number;
|
|
738
|
+
};
|
|
739
|
+
/** The start box already reaches under the surface (fraction 0). */
|
|
740
|
+
readonly initialOverlap: boolean;
|
|
741
|
+
/** Overlap evaluations used, coarse and refining together. */
|
|
742
|
+
readonly evaluations: number;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
export declare interface GeometryHeightfieldSweepOptions {
|
|
746
|
+
/** Coarse step along the longest axis, in raw units (for example a quarter of the sample spacing). */
|
|
747
|
+
readonly stepRaw: number;
|
|
748
|
+
/** Overlap evaluations the sweep may use. */
|
|
749
|
+
readonly maxEvaluations: number;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
export declare interface GeometryHeightfieldView {
|
|
753
|
+
readonly chunk: GeometryHeightfieldChunk;
|
|
754
|
+
heightAtSample(x: number, y: number): number;
|
|
755
|
+
heightAtRaw(xRaw: number, yRaw: number): number;
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
export declare interface GeometryHeightRollbackContext {
|
|
759
|
+
readonly key: string;
|
|
760
|
+
readonly before: number;
|
|
761
|
+
readonly after: number;
|
|
762
|
+
readonly selected: number;
|
|
763
|
+
readonly target: boolean;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
export declare type GeometryInspection = typeof GeometryInspectionSchema.Type;
|
|
767
|
+
|
|
768
|
+
export declare interface GeometryInspectionQuery {
|
|
769
|
+
readonly tenantId: string;
|
|
770
|
+
readonly table?: GeometryInspectionTable;
|
|
771
|
+
readonly after?: string | null;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
/** Read-only configured budgets and paged recorded metadata. No Subject, owner,
|
|
775
|
+
* request, credential, lease, hashes, source locator or chunk/patch payload. */
|
|
776
|
+
export declare const GeometryInspectionSchema: Schema.Struct<{
|
|
777
|
+
readonly installed: Schema.Boolean;
|
|
778
|
+
readonly sourceBound: Schema.Boolean;
|
|
779
|
+
readonly migrationsInstalled: Schema.Boolean;
|
|
780
|
+
readonly assetUrlsInstalled: Schema.Boolean;
|
|
781
|
+
readonly archivesInstalled: Schema.Boolean;
|
|
782
|
+
readonly retentionInstalled: Schema.Boolean;
|
|
783
|
+
readonly adminControlsInstalled: Schema.Boolean;
|
|
784
|
+
readonly page: Schema.Struct<{
|
|
785
|
+
readonly tenantId: Schema.String;
|
|
786
|
+
readonly table: Schema.Literals<readonly ["versions", "deltas", "journal", "migrations", "archives"]>;
|
|
787
|
+
readonly after: Schema.NullOr<Schema.String>;
|
|
788
|
+
readonly nextAfter: Schema.NullOr<Schema.String>;
|
|
789
|
+
}>;
|
|
790
|
+
readonly configuration: Schema.$Array<Schema.Struct<{
|
|
791
|
+
readonly worldId: Schema.String;
|
|
792
|
+
readonly kind: Schema.Literals<readonly ["2d-tiles", "2d-heightfield", "3d-shapes", "3d-voxel"]>;
|
|
793
|
+
readonly staticSource: Schema.Literals<readonly ["cms", "imported", "procedural"]>;
|
|
794
|
+
readonly chunkSizeRaw: Schema.Number;
|
|
795
|
+
readonly dynamicEnabled: Schema.Boolean;
|
|
796
|
+
readonly migrationStrategy: Schema.Literals<readonly ["default", "custom"]>;
|
|
797
|
+
readonly compactionStrategy: Schema.Literals<readonly ["default", "custom"]>;
|
|
798
|
+
readonly collisionDeriveStrategy: Schema.Literals<readonly ["default", "custom"]>;
|
|
799
|
+
readonly navDeriveStrategy: Schema.Literals<readonly ["default", "custom"]>;
|
|
800
|
+
readonly opValidatorStrategy: Schema.Literals<readonly ["default", "custom"]>;
|
|
801
|
+
readonly applyOpStrategy: Schema.Literals<readonly ["default", "custom"]>;
|
|
802
|
+
readonly overlapTestBudget: Schema.Number;
|
|
803
|
+
readonly rayCellBudget: Schema.Number;
|
|
804
|
+
readonly deltaByteBudget: Schema.Number;
|
|
805
|
+
readonly preparedChunkBudget: Schema.Number;
|
|
806
|
+
readonly preparedByteBudget: Schema.Number;
|
|
807
|
+
readonly marginChunks: Schema.Number;
|
|
808
|
+
}>>;
|
|
809
|
+
readonly rows: Schema.$Array<Schema.Struct<{
|
|
810
|
+
readonly id: Schema.String;
|
|
811
|
+
readonly worldId: Schema.String;
|
|
812
|
+
readonly kind: Schema.Literals<readonly ["2d-tiles", "2d-heightfield", "3d-shapes", "3d-voxel"]>;
|
|
813
|
+
readonly version: Schema.String;
|
|
814
|
+
readonly coordinates: Schema.NullOr<Schema.Struct<{
|
|
815
|
+
readonly cx: Schema.Int;
|
|
816
|
+
readonly cy: Schema.Int;
|
|
817
|
+
readonly cz: Schema.optional<Schema.Int>;
|
|
818
|
+
}>>;
|
|
819
|
+
readonly revision: Schema.NullOr<Schema.Number>;
|
|
820
|
+
readonly changed: Schema.NullOr<Schema.Boolean>;
|
|
821
|
+
readonly manifestChunks: Schema.NullOr<Schema.Number>;
|
|
822
|
+
readonly migration: Schema.NullOr<Schema.Struct<{
|
|
823
|
+
readonly fromVersion: Schema.String;
|
|
824
|
+
readonly fromRevision: Schema.Number;
|
|
825
|
+
readonly decision: Schema.Literals<readonly ["kept", "discarded", "custom"]>;
|
|
826
|
+
readonly staticChanged: Schema.Boolean;
|
|
827
|
+
}>>;
|
|
828
|
+
readonly observedAt: Schema.String;
|
|
829
|
+
}>>;
|
|
830
|
+
}>;
|
|
831
|
+
|
|
832
|
+
export declare type GeometryInspectionTable = typeof GeometryInspectionTableSchema.Type;
|
|
833
|
+
|
|
834
|
+
export declare const GeometryInspectionTableSchema: Schema.Literals<readonly ["versions", "deltas", "journal", "migrations", "archives"]>;
|
|
835
|
+
|
|
836
|
+
export declare interface GeometryJournalArchiveReference {
|
|
837
|
+
readonly receipt: GeometryPersistenceReceipt;
|
|
838
|
+
readonly patchSha256: string;
|
|
839
|
+
readonly size: number;
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
export declare type GeometryKind = GeometryChunk['kind'];
|
|
843
|
+
|
|
844
|
+
export declare interface GeometryManifestFragment {
|
|
845
|
+
readonly type: 'GeoManifestFragment';
|
|
846
|
+
readonly scope: GeometryPreparedScope;
|
|
847
|
+
readonly payloadSha256: string;
|
|
848
|
+
readonly totalBytes: number;
|
|
849
|
+
readonly offset: number;
|
|
850
|
+
readonly bytes: ReadonlyArray<number>;
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
export declare const geometryManifestFragmentBytes = 8192;
|
|
854
|
+
|
|
855
|
+
export declare const GeometryManifestFragmentSchema: Schema.Struct<{
|
|
856
|
+
readonly type: Schema.Literal<"GeoManifestFragment">;
|
|
857
|
+
readonly scope: Schema.Struct<{
|
|
858
|
+
readonly tenantId: Schema.String;
|
|
859
|
+
readonly kind: Schema.Literals<readonly ["2d-tiles", "2d-heightfield", "3d-shapes", "3d-voxel"]>;
|
|
860
|
+
readonly worldId: Schema.String;
|
|
861
|
+
readonly layerSetId: Schema.String;
|
|
862
|
+
readonly version: Schema.String;
|
|
863
|
+
}>;
|
|
864
|
+
readonly payloadSha256: Schema.String;
|
|
865
|
+
readonly totalBytes: Schema.Int;
|
|
866
|
+
readonly offset: Schema.Int;
|
|
867
|
+
readonly bytes: Schema.$Array<Schema.Int>;
|
|
868
|
+
}>;
|
|
869
|
+
|
|
870
|
+
export declare interface GeometryManifestReceiverOptions {
|
|
871
|
+
readonly maxManifestBytes?: number;
|
|
872
|
+
readonly maxPending?: number | undefined;
|
|
873
|
+
readonly maxPendingBytes?: number | undefined;
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
export declare const geometryManifestReliableChannel: Readonly<RoomChannel>;
|
|
877
|
+
|
|
878
|
+
/** Pure native data rule only; no SQL, actor, journal, permission or Subject. */
|
|
879
|
+
export declare type GeometryMigrateDelta = (from: GeometryDeltaMigrationFrom, to: GeometryDeltaMigrationTo) => GeometryChunk | null;
|
|
880
|
+
|
|
881
|
+
declare interface GeometryMigrationReceipt {
|
|
882
|
+
readonly requestKey: string;
|
|
883
|
+
readonly inputSha256: string;
|
|
884
|
+
readonly from: GeometryPersistenceScope;
|
|
885
|
+
readonly to: GeometryPersistenceScope;
|
|
886
|
+
readonly fromRevision: number;
|
|
887
|
+
readonly revision: number;
|
|
888
|
+
readonly decision: 'kept' | 'discarded' | 'custom';
|
|
889
|
+
readonly staticChanged: boolean;
|
|
890
|
+
readonly fromManifestSha256: string;
|
|
891
|
+
readonly toManifestSha256: string;
|
|
892
|
+
readonly blobSha256: string;
|
|
893
|
+
readonly contentSha256: string;
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
export declare type GeometryNavDerive = (context: GeometryDerivationContext) => GeometryTileChunk | null;
|
|
897
|
+
|
|
898
|
+
export declare interface GeometryPatch {
|
|
899
|
+
readonly metadata: GeometryPatchMetadata;
|
|
900
|
+
bytes(): Uint8Array;
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
export declare interface GeometryPatchLimits {
|
|
904
|
+
readonly maxBytes: number;
|
|
905
|
+
readonly maxMetadataBytes: number;
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
export declare type GeometryPatchMetadata = (typeof GeometryPatchMetadataSchema)["Type"];
|
|
909
|
+
|
|
910
|
+
export declare const GeometryPatchMetadataSchema: Schema.Struct<{
|
|
911
|
+
readonly kind: Schema.Literals<readonly ["2d-tiles", "2d-heightfield", "3d-shapes", "3d-voxel"]>;
|
|
912
|
+
readonly formatVersion: Schema.Literal<1>;
|
|
913
|
+
readonly worldId: Schema.String;
|
|
914
|
+
readonly layerSetId: Schema.String;
|
|
915
|
+
readonly cx: Schema.Int;
|
|
916
|
+
readonly cy: Schema.Int;
|
|
917
|
+
readonly cz: Schema.optional<Schema.Int>;
|
|
918
|
+
readonly version: Schema.String;
|
|
919
|
+
readonly baseRevision: Schema.Int;
|
|
920
|
+
readonly revision: Schema.Int;
|
|
921
|
+
readonly baseBlobSha256: Schema.String;
|
|
922
|
+
readonly blobSha256: Schema.String;
|
|
923
|
+
readonly baseContentSha256: Schema.String;
|
|
924
|
+
readonly contentSha256: Schema.String;
|
|
925
|
+
readonly changed: Schema.Boolean;
|
|
926
|
+
readonly stateSchemaHash: Schema.Int;
|
|
927
|
+
}>;
|
|
928
|
+
|
|
929
|
+
export declare interface GeometryPersistenceCommit {
|
|
930
|
+
readonly scope: GeometryPersistenceScope;
|
|
931
|
+
readonly owner: GeometryPersistenceOwner;
|
|
932
|
+
readonly subject: GeometryPersistenceSubject;
|
|
933
|
+
readonly requestId: string;
|
|
934
|
+
readonly patch: Uint8Array;
|
|
935
|
+
/** Server-owned genuine RoomServerSession only; never accepted from a wire payload. */
|
|
936
|
+
readonly actualSession?: unknown;
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
export declare type GeometryPersistenceError = ProtocolError | BudgetExceeded;
|
|
940
|
+
|
|
941
|
+
/** The same Tag is used for a real SQL service or an explicit application/test replacement. */
|
|
942
|
+
export declare const geometryPersistenceLayer: (service: Context.Service.Shape<typeof GeometryPersistencePort>) => Layer.Layer<GeometryPersistencePort>;
|
|
943
|
+
|
|
944
|
+
export declare interface GeometryPersistenceObservation {
|
|
945
|
+
readonly scope: GeometryPersistenceScope;
|
|
946
|
+
readonly revision: number;
|
|
947
|
+
readonly artifact: GeometryArtifact;
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
export declare interface GeometryPersistenceOwner {
|
|
951
|
+
readonly roomId: string;
|
|
952
|
+
readonly hostId: string;
|
|
953
|
+
readonly epoch: number;
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
/** Outside-Tick trusted service. A commit receipt confirms SQL only, not delivery or actor activation. */
|
|
957
|
+
export declare class GeometryPersistencePort extends GeometryPersistencePort_base {
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
declare const GeometryPersistencePort_base: Context.ServiceClass<GeometryPersistencePort, "@voltro/GeometryPersistencePort", {
|
|
961
|
+
publish(input: GeometryVersionPublication): Effect.Effect<GeometryVersionReceipt, GeometryPersistenceError>;
|
|
962
|
+
observe(scope: GeometryPersistenceScope): Effect.Effect<GeometryPersistenceObservation, GeometryPersistenceError>;
|
|
963
|
+
commit(input: GeometryPersistenceCommit): Effect.Effect<GeometryPersistenceReceipt, GeometryPersistenceError>;
|
|
964
|
+
exportSubject(target: GeometryPrivacyTarget): Effect.Effect<ReadonlyArray<GeometrySubjectOperation>, GeometryPersistenceError>;
|
|
965
|
+
eraseSubject(target: GeometryPrivacyTarget): Effect.Effect<void, GeometryPersistenceError>;
|
|
966
|
+
}>;
|
|
967
|
+
|
|
968
|
+
export declare interface GeometryPersistenceReceipt {
|
|
969
|
+
readonly scope: GeometryPersistenceScope;
|
|
970
|
+
readonly requestId: string;
|
|
971
|
+
readonly baseRevision: number;
|
|
972
|
+
readonly revision: number;
|
|
973
|
+
readonly changed: boolean;
|
|
974
|
+
readonly blobSha256: string;
|
|
975
|
+
readonly contentSha256: string;
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
export declare interface GeometryPersistenceScope {
|
|
979
|
+
readonly tenantId: string;
|
|
980
|
+
readonly kind: GeometryKind;
|
|
981
|
+
readonly worldId: string;
|
|
982
|
+
readonly version: string;
|
|
983
|
+
readonly layerSetId: string;
|
|
984
|
+
readonly cx: number;
|
|
985
|
+
readonly cy: number;
|
|
986
|
+
readonly cz?: number | undefined;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
export declare interface GeometryPersistenceSubject {
|
|
990
|
+
readonly id: string;
|
|
991
|
+
readonly kind: 'user' | 'guest';
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
export declare interface GeometryPointRaw3D {
|
|
995
|
+
readonly xRaw: number;
|
|
996
|
+
readonly yRaw: number;
|
|
997
|
+
readonly zRaw: number;
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
export declare interface GeometryPreparedCoordinate {
|
|
1001
|
+
readonly cx: number;
|
|
1002
|
+
readonly cy: number;
|
|
1003
|
+
readonly cz?: number | undefined;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
export declare type GeometryPreparedEntry = PreparedCommon & GeometryPreparedView & {
|
|
1007
|
+
/** Independently prepared native collision data. Original view/artifact remains the edit/rebuild baseline. */
|
|
1008
|
+
readonly collision: GeometryPreparedView;
|
|
1009
|
+
readonly navigation: GeometryTileView | null;
|
|
1010
|
+
};
|
|
1011
|
+
|
|
1012
|
+
export declare interface GeometryPreparedInventory {
|
|
1013
|
+
readonly scope: GeometryPreparedScope;
|
|
1014
|
+
readonly entries: ReadonlyArray<GeometryPreparedEntry>;
|
|
1015
|
+
readonly accountedBytes: number;
|
|
1016
|
+
/** CPU-only lookup; absence is explicit, never an empty collision chunk. */
|
|
1017
|
+
at(coordinate: GeometryPreparedCoordinate): GeometryPreparedEntry;
|
|
1018
|
+
contains(coordinate: GeometryPreparedCoordinate): boolean;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
export declare interface GeometryPreparedOptions {
|
|
1022
|
+
readonly strategies?: Partial<GeometryDerivationStrategies> | undefined;
|
|
1023
|
+
readonly navEnabled?: boolean;
|
|
1024
|
+
readonly maxChunks?: number | undefined;
|
|
1025
|
+
readonly maxAccountedBytes?: number;
|
|
1026
|
+
readonly codecLimits?: {
|
|
1027
|
+
readonly [K in GeometryKind]?: GeometryArtifactLimits<K>;
|
|
1028
|
+
} | undefined;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
export declare interface GeometryPreparedScope {
|
|
1032
|
+
readonly tenantId: string;
|
|
1033
|
+
readonly kind: GeometryKind;
|
|
1034
|
+
readonly worldId: string;
|
|
1035
|
+
readonly layerSetId: string;
|
|
1036
|
+
readonly version: string;
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
export declare type GeometryPreparedView = ({
|
|
1040
|
+
readonly kind: '2d-tiles';
|
|
1041
|
+
readonly view: GeometryTileView;
|
|
1042
|
+
} | {
|
|
1043
|
+
readonly kind: '2d-heightfield';
|
|
1044
|
+
readonly view: GeometryHeightfieldView;
|
|
1045
|
+
} | {
|
|
1046
|
+
readonly kind: '3d-shapes';
|
|
1047
|
+
readonly view: GeometryShapesView;
|
|
1048
|
+
} | {
|
|
1049
|
+
readonly kind: '3d-voxel';
|
|
1050
|
+
readonly view: GeometryVoxelView;
|
|
1051
|
+
});
|
|
1052
|
+
|
|
1053
|
+
export declare interface GeometryPrivacyTarget {
|
|
1054
|
+
readonly tenantId: string;
|
|
1055
|
+
readonly subject: GeometryPersistenceSubject;
|
|
1056
|
+
readonly requestId: string;
|
|
1057
|
+
}
|
|
1058
|
+
|
|
1059
|
+
export declare interface GeometryProceduralContext {
|
|
1060
|
+
readonly seed: number;
|
|
1061
|
+
readonly kind: GeometryKind;
|
|
1062
|
+
readonly address: GeometryChunk['address'];
|
|
1063
|
+
readonly version: string;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
export declare const geometryReliableChannel: Readonly<RoomChannel>;
|
|
1067
|
+
|
|
1068
|
+
export declare interface GeometryRollbackEntry {
|
|
1069
|
+
readonly subject: GeometryPersistenceSubject;
|
|
1070
|
+
readonly patch: Uint8Array;
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
export declare interface GeometryRollbackOptions {
|
|
1074
|
+
readonly maxEntries?: number;
|
|
1075
|
+
readonly maxJournalBytes?: number;
|
|
1076
|
+
readonly maxCells?: number | undefined;
|
|
1077
|
+
readonly maxComparedCells?: number;
|
|
1078
|
+
readonly codecLimits?: GeometryArtifactLimits<GeometryKind> | undefined;
|
|
1079
|
+
readonly strategies?: Partial<GeometryRollbackStrategies> | undefined;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
export declare interface GeometryRollbackPreparation {
|
|
1083
|
+
readonly artifact: GeometryArtifact;
|
|
1084
|
+
readonly patch: GeometryPatch;
|
|
1085
|
+
readonly revision: number;
|
|
1086
|
+
readonly entries: number;
|
|
1087
|
+
readonly targetEntries: number;
|
|
1088
|
+
readonly restoredCells: number;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
export declare interface GeometryRollbackStrategies {
|
|
1092
|
+
/** Pure quantized contribution rule. Native layout/codec admission and
|
|
1093
|
+
* current SQL/admin authority remain outside this replaceable slot. */
|
|
1094
|
+
readonly rebaseHeight: (context: GeometryHeightRollbackContext) => number;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
export declare type GeometryShape = (typeof GeometryShapeSchema)["Type"];
|
|
1098
|
+
|
|
1099
|
+
export declare interface GeometryShapeRayHit {
|
|
1100
|
+
readonly kind: '3d-shapes';
|
|
1101
|
+
readonly scope: GeometryPersistenceScope;
|
|
1102
|
+
readonly revision: number;
|
|
1103
|
+
/** Native LOCAL shape; scope identifies its owning chunk. */
|
|
1104
|
+
readonly shape: GeometryShape;
|
|
1105
|
+
/** Encloses the exact infimum entry time; width <= 2^-52. Presentation only.
|
|
1106
|
+
* Selection and ownership decisions never use these rounded bounds. */
|
|
1107
|
+
readonly fractionBounds: {
|
|
1108
|
+
readonly lower: number;
|
|
1109
|
+
readonly upper: number;
|
|
1110
|
+
};
|
|
1111
|
+
readonly visitedChunks: number;
|
|
1112
|
+
readonly testedShapes: number;
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
export declare const GeometryShapeSchema: Schema.Union<readonly [Schema.Struct<{
|
|
1116
|
+
readonly halfXRaw: Schema.Int;
|
|
1117
|
+
readonly halfYRaw: Schema.Int;
|
|
1118
|
+
readonly halfZRaw: Schema.Int;
|
|
1119
|
+
readonly id: Schema.String;
|
|
1120
|
+
readonly xRaw: Schema.Int;
|
|
1121
|
+
readonly yRaw: Schema.Int;
|
|
1122
|
+
readonly zRaw: Schema.Int;
|
|
1123
|
+
readonly kind: Schema.Literal<"aabb">;
|
|
1124
|
+
}>, Schema.Struct<{
|
|
1125
|
+
readonly radiusRaw: Schema.Int;
|
|
1126
|
+
readonly id: Schema.String;
|
|
1127
|
+
readonly xRaw: Schema.Int;
|
|
1128
|
+
readonly yRaw: Schema.Int;
|
|
1129
|
+
readonly zRaw: Schema.Int;
|
|
1130
|
+
readonly kind: Schema.Literal<"sphere">;
|
|
1131
|
+
}>]>;
|
|
1132
|
+
|
|
1133
|
+
export declare type GeometryShapesChunk = (typeof GeometryShapesChunkSchema)["Type"];
|
|
1134
|
+
|
|
1135
|
+
export declare const GeometryShapesChunkSchema: Schema.Struct<{
|
|
1136
|
+
readonly kind: Schema.Literal<"3d-shapes">;
|
|
1137
|
+
readonly formatVersion: Schema.Literal<1>;
|
|
1138
|
+
readonly address: Schema.Struct<{
|
|
1139
|
+
readonly worldId: Schema.String;
|
|
1140
|
+
readonly layerSetId: Schema.String;
|
|
1141
|
+
readonly cx: Schema.Int;
|
|
1142
|
+
readonly cy: Schema.Int;
|
|
1143
|
+
readonly cz: Schema.Int;
|
|
1144
|
+
}>;
|
|
1145
|
+
readonly version: Schema.String;
|
|
1146
|
+
readonly extentXRaw: Schema.Int;
|
|
1147
|
+
readonly extentYRaw: Schema.Int;
|
|
1148
|
+
readonly extentZRaw: Schema.Int;
|
|
1149
|
+
readonly shapes: Schema.$Array<Schema.Union<readonly [Schema.Struct<{
|
|
1150
|
+
readonly halfXRaw: Schema.Int;
|
|
1151
|
+
readonly halfYRaw: Schema.Int;
|
|
1152
|
+
readonly halfZRaw: Schema.Int;
|
|
1153
|
+
readonly id: Schema.String;
|
|
1154
|
+
readonly xRaw: Schema.Int;
|
|
1155
|
+
readonly yRaw: Schema.Int;
|
|
1156
|
+
readonly zRaw: Schema.Int;
|
|
1157
|
+
readonly kind: Schema.Literal<"aabb">;
|
|
1158
|
+
}>, Schema.Struct<{
|
|
1159
|
+
readonly radiusRaw: Schema.Int;
|
|
1160
|
+
readonly id: Schema.String;
|
|
1161
|
+
readonly xRaw: Schema.Int;
|
|
1162
|
+
readonly yRaw: Schema.Int;
|
|
1163
|
+
readonly zRaw: Schema.Int;
|
|
1164
|
+
readonly kind: Schema.Literal<"sphere">;
|
|
1165
|
+
}>]>>;
|
|
1166
|
+
}>;
|
|
1167
|
+
|
|
1168
|
+
export declare interface GeometryShapesCodec {
|
|
1169
|
+
readonly limits: GeometryShapesLimits;
|
|
1170
|
+
readonly schemaHash: number;
|
|
1171
|
+
capture(offered: unknown): GeometryShapesChunk;
|
|
1172
|
+
create(source: GeometryShapesSource): GeometryShapesChunk;
|
|
1173
|
+
encode(chunk: GeometryShapesChunk): Uint8Array;
|
|
1174
|
+
decode(bytes: Uint8Array): GeometryShapesChunk;
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
export declare interface GeometryShapesLimits {
|
|
1178
|
+
readonly maxShapes: number;
|
|
1179
|
+
readonly maxBytes: number;
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
export declare interface GeometryShapesSource {
|
|
1183
|
+
readonly address: GeometryChunkAddress3D;
|
|
1184
|
+
readonly version: string;
|
|
1185
|
+
readonly extentXRaw: number;
|
|
1186
|
+
readonly extentYRaw: number;
|
|
1187
|
+
readonly extentZRaw: number;
|
|
1188
|
+
readonly shapes: ReadonlyArray<GeometryShape>;
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
export declare interface GeometryShapesView {
|
|
1192
|
+
readonly chunk: GeometryShapesChunk;
|
|
1193
|
+
containingRaw(point: GeometryPointRaw3D, maximumShapes?: number): ReadonlyArray<GeometryShape>;
|
|
1194
|
+
/** Closed LOCAL segment and native volumes. Canonical ID order, not distance
|
|
1195
|
+
* order; no first-hit fraction or cross-chunk ownership is implied. */
|
|
1196
|
+
intersectingSegmentRaw(from: GeometryPointRaw3D, to: GeometryPointRaw3D, maximumShapes?: number): ReadonlyArray<GeometryShape>;
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
export declare type GeometryShapeTemplate = {
|
|
1200
|
+
readonly key: string;
|
|
1201
|
+
readonly kind: 'aabb';
|
|
1202
|
+
readonly halfXRaw: number;
|
|
1203
|
+
readonly halfYRaw: number;
|
|
1204
|
+
readonly halfZRaw: number;
|
|
1205
|
+
} | {
|
|
1206
|
+
readonly key: string;
|
|
1207
|
+
readonly kind: 'sphere';
|
|
1208
|
+
readonly radiusRaw: number;
|
|
1209
|
+
};
|
|
1210
|
+
|
|
1211
|
+
export declare interface GeometrySnapshotReceiverOptions {
|
|
1212
|
+
readonly maxPatchBytes?: number | undefined;
|
|
1213
|
+
readonly maxPending?: number | undefined;
|
|
1214
|
+
readonly maxPendingBytes?: number | undefined;
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1217
|
+
export declare type GeometrySource = {
|
|
1218
|
+
readonly _tag: 'GeometrySource';
|
|
1219
|
+
readonly kind: 'cms';
|
|
1220
|
+
readonly key: string;
|
|
1221
|
+
readonly channel: string;
|
|
1222
|
+
} | {
|
|
1223
|
+
readonly _tag: 'GeometrySource';
|
|
1224
|
+
readonly kind: 'imported';
|
|
1225
|
+
readonly directory: string;
|
|
1226
|
+
} | {
|
|
1227
|
+
readonly _tag: 'GeometrySource';
|
|
1228
|
+
readonly kind: 'procedural';
|
|
1229
|
+
readonly seed: number;
|
|
1230
|
+
readonly generator: GeometryGenerator;
|
|
1231
|
+
};
|
|
1232
|
+
|
|
1233
|
+
export declare const GeometrySphereSchema: Schema.Struct<{
|
|
1234
|
+
readonly radiusRaw: Schema.Int;
|
|
1235
|
+
readonly id: Schema.String;
|
|
1236
|
+
readonly xRaw: Schema.Int;
|
|
1237
|
+
readonly yRaw: Schema.Int;
|
|
1238
|
+
readonly zRaw: Schema.Int;
|
|
1239
|
+
readonly kind: Schema.Literal<"sphere">;
|
|
1240
|
+
}>;
|
|
1241
|
+
|
|
1242
|
+
export declare interface GeometryStaticReference extends GeometryPersistenceScope {
|
|
1243
|
+
readonly blobSha256: string;
|
|
1244
|
+
readonly contentSha256: string;
|
|
1245
|
+
}
|
|
1246
|
+
|
|
1247
|
+
export declare const geometryStaticSourceLayer: (service: Context.Service.Shape<typeof GeometryStaticSourcePort>) => Layer.Layer<GeometryStaticSourcePort>;
|
|
1248
|
+
|
|
1249
|
+
/** Trusted immutable blob source. Neither this Tag nor a digest authorizes publishing a manifest. */
|
|
1250
|
+
export declare class GeometryStaticSourcePort extends GeometryStaticSourcePort_base {
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
declare const GeometryStaticSourcePort_base: Context.ServiceClass<GeometryStaticSourcePort, "@voltro/GeometryStaticSourcePort", {
|
|
1254
|
+
load(reference: GeometryStaticReference): Effect.Effect<Uint8Array, GeometryPersistenceError>;
|
|
1255
|
+
}>;
|
|
1256
|
+
|
|
1257
|
+
export declare interface GeometrySubjectOperation {
|
|
1258
|
+
readonly receipt: GeometryPersistenceReceipt;
|
|
1259
|
+
readonly patch: Uint8Array;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
export declare interface GeometryTileArtifact {
|
|
1263
|
+
readonly chunk: GeometryTileChunk;
|
|
1264
|
+
readonly blobSha256: string;
|
|
1265
|
+
readonly tileDataSha256: string;
|
|
1266
|
+
bytes(): Uint8Array;
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1269
|
+
export declare interface GeometryTileCellBounds {
|
|
1270
|
+
readonly minXRaw: number;
|
|
1271
|
+
readonly minYRaw: number;
|
|
1272
|
+
readonly maxXRaw: number;
|
|
1273
|
+
readonly maxYRaw: number;
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
export declare type GeometryTileChunk = (typeof GeometryTileChunkSchema)["Type"];
|
|
1277
|
+
|
|
1278
|
+
export declare const GeometryTileChunkSchema: Schema.Struct<{
|
|
1279
|
+
readonly kind: Schema.Literal<"2d-tiles">;
|
|
1280
|
+
readonly formatVersion: Schema.Literal<1>;
|
|
1281
|
+
readonly address: Schema.Struct<{
|
|
1282
|
+
readonly worldId: Schema.String;
|
|
1283
|
+
readonly layerSetId: Schema.String;
|
|
1284
|
+
readonly cx: Schema.Int;
|
|
1285
|
+
readonly cy: Schema.Int;
|
|
1286
|
+
}>;
|
|
1287
|
+
readonly version: Schema.String;
|
|
1288
|
+
readonly width: Schema.Int;
|
|
1289
|
+
readonly height: Schema.Int;
|
|
1290
|
+
readonly tileSizeRaw: Schema.Int;
|
|
1291
|
+
readonly palette: Schema.$Array<Schema.Struct<{
|
|
1292
|
+
readonly key: Schema.String;
|
|
1293
|
+
readonly solid: Schema.Boolean;
|
|
1294
|
+
}>>;
|
|
1295
|
+
readonly runs: Schema.$Array<Schema.Struct<{
|
|
1296
|
+
readonly paletteIndex: Schema.Int;
|
|
1297
|
+
readonly length: Schema.Int;
|
|
1298
|
+
}>>;
|
|
1299
|
+
}>;
|
|
1300
|
+
|
|
1301
|
+
export declare interface GeometryTileChunkSource {
|
|
1302
|
+
readonly address: GeometryChunkAddress;
|
|
1303
|
+
readonly version: string;
|
|
1304
|
+
readonly width: number;
|
|
1305
|
+
readonly height: number;
|
|
1306
|
+
readonly tileSizeRaw: number;
|
|
1307
|
+
readonly cells: ReadonlyArray<GeometryTileMaterial>;
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
export declare interface GeometryTileCodec {
|
|
1311
|
+
readonly schemaHash: number;
|
|
1312
|
+
readonly limits: GeometryTileLimits;
|
|
1313
|
+
/** Canonical RLE/material admission; does not normalize malformed carriers. */
|
|
1314
|
+
capture(offered: unknown): GeometryTileChunk;
|
|
1315
|
+
/** Construct one canonical palette/RLE representation from owned row-major data. */
|
|
1316
|
+
create(source: GeometryTileChunkSource): GeometryTileChunk;
|
|
1317
|
+
encode(chunk: GeometryTileChunk): Uint8Array;
|
|
1318
|
+
decode(bytes: Uint8Array): GeometryTileChunk;
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
export declare interface GeometryTileCollisionOptions {
|
|
1322
|
+
/** Total visited cells across every solver query, including its final check.
|
|
1323
|
+
* May only narrow the world's maxOverlapTests. */
|
|
1324
|
+
readonly maxTests?: number;
|
|
1325
|
+
/** Existing discrete solver limit; defaults to 8, maximum 256. */
|
|
1326
|
+
readonly maxIterations?: number;
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
export declare interface GeometryTileImportMaterial {
|
|
1330
|
+
readonly sourceId: number;
|
|
1331
|
+
/** LDtk tile flip bits (0–3); Tiled uses its entire unsigned GID as sourceId. */
|
|
1332
|
+
readonly flip?: number;
|
|
1333
|
+
readonly material: GeometryTileMaterial;
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
export declare interface GeometryTileImportOptions {
|
|
1337
|
+
readonly worldId: string;
|
|
1338
|
+
readonly layerSetId: string;
|
|
1339
|
+
readonly version: string;
|
|
1340
|
+
/** Explicit author placement in global tile coordinates. */
|
|
1341
|
+
readonly origin: {
|
|
1342
|
+
readonly x: number;
|
|
1343
|
+
readonly y: number;
|
|
1344
|
+
};
|
|
1345
|
+
readonly chunkSide?: number;
|
|
1346
|
+
readonly tileSizeRaw?: number;
|
|
1347
|
+
readonly materials: ReadonlyArray<GeometryTileImportMaterial>;
|
|
1348
|
+
readonly maxInputBytes?: number;
|
|
1349
|
+
readonly maxCells?: number | undefined;
|
|
1350
|
+
readonly maxRegions?: number;
|
|
1351
|
+
readonly maxChunks?: number | undefined;
|
|
1352
|
+
readonly codecLimits?: Partial<GeometryTileLimits> | undefined;
|
|
1353
|
+
}
|
|
1354
|
+
|
|
1355
|
+
export declare interface GeometryTileLimits {
|
|
1356
|
+
readonly maxSide: number;
|
|
1357
|
+
readonly maxCells: number;
|
|
1358
|
+
readonly maxPalette: number;
|
|
1359
|
+
readonly maxRuns: number;
|
|
1360
|
+
readonly maxBytes: number;
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
export declare type GeometryTileMaterial = (typeof GeometryTileMaterialSchema)["Type"];
|
|
1364
|
+
|
|
1365
|
+
export declare const GeometryTileMaterialSchema: Schema.Struct<{
|
|
1366
|
+
readonly key: Schema.String;
|
|
1367
|
+
readonly solid: Schema.Boolean;
|
|
1368
|
+
}>;
|
|
1369
|
+
|
|
1370
|
+
export declare interface GeometryTileNavigationLimits {
|
|
1371
|
+
readonly maxDiscovered: number;
|
|
1372
|
+
readonly maxOpen: number;
|
|
1373
|
+
readonly maxPathLength: number;
|
|
1374
|
+
readonly maxAdvanceExpansions: number;
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1377
|
+
export declare interface GeometryTilePathMetrics {
|
|
1378
|
+
readonly discovered: number;
|
|
1379
|
+
readonly expanded: number;
|
|
1380
|
+
readonly traced: number;
|
|
1381
|
+
readonly open: number;
|
|
1382
|
+
readonly pathLength: number;
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
export declare interface GeometryTilePathSearch {
|
|
1386
|
+
readonly status: GeometryTilePathStatus;
|
|
1387
|
+
readonly metrics: GeometryTilePathMetrics;
|
|
1388
|
+
/** Terminal found path only; no partial-path success on exhaustion. */
|
|
1389
|
+
readonly path: ReadonlyArray<GeometryTilePoint> | null;
|
|
1390
|
+
/** Shared node-expansion/parent-trace quota; no measured navBudgetMs claim. */
|
|
1391
|
+
advance(maximumExpansions?: number): GeometryTilePathStatus;
|
|
1392
|
+
cancel(): void;
|
|
1393
|
+
}
|
|
1394
|
+
|
|
1395
|
+
export declare type GeometryTilePathStatus = 'pending' | 'found' | 'unreachable' | 'budget-exhausted' | 'cancelled';
|
|
1396
|
+
|
|
1397
|
+
export declare interface GeometryTilePoint {
|
|
1398
|
+
readonly x: number;
|
|
1399
|
+
readonly y: number;
|
|
1400
|
+
}
|
|
1401
|
+
|
|
1402
|
+
export declare type GeometryTileRun = (typeof GeometryTileRunSchema)["Type"];
|
|
1403
|
+
|
|
1404
|
+
export declare const GeometryTileRunSchema: Schema.Struct<{
|
|
1405
|
+
readonly paletteIndex: Schema.Int;
|
|
1406
|
+
readonly length: Schema.Int;
|
|
1407
|
+
}>;
|
|
1408
|
+
|
|
1409
|
+
export declare interface GeometryTileView {
|
|
1410
|
+
readonly chunk: GeometryTileChunk;
|
|
1411
|
+
/** Local integer cell queries. Outside cells refuse; no missing-neighbor air. */
|
|
1412
|
+
materialAt(x: number, y: number): GeometryTileMaterial;
|
|
1413
|
+
solidAt(x: number, y: number): boolean;
|
|
1414
|
+
materialAtRaw(xRaw: number, yRaw: number): GeometryTileMaterial;
|
|
1415
|
+
cellBounds(x: number, y: number): GeometryTileCellBounds;
|
|
1416
|
+
/** Detached row-major little-bit occupancy, never the retained mutable grid. */
|
|
1417
|
+
occupancy(): Uint8Array;
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
export declare interface GeometryVersionActivation {
|
|
1421
|
+
readonly _tag: 'GeometryVersionActivation';
|
|
1422
|
+
readonly receipts: ReadonlyArray<GeometryMigrationReceipt>;
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
/** One chunk address: layer set and chunk coordinate. */
|
|
1426
|
+
export declare interface GeometryVersionChunkAddress {
|
|
1427
|
+
readonly layerSetId: string;
|
|
1428
|
+
readonly cx: number;
|
|
1429
|
+
readonly cy: number;
|
|
1430
|
+
readonly cz?: number | undefined;
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
/** What replacing `current` by `next` changes, chunk by chunk (by content hash, not blob bytes). */
|
|
1434
|
+
export declare interface GeometryVersionComparison {
|
|
1435
|
+
readonly added: ReadonlyArray<GeometryVersionChunkAddress>;
|
|
1436
|
+
readonly removed: ReadonlyArray<GeometryVersionChunkAddress>;
|
|
1437
|
+
readonly changed: ReadonlyArray<GeometryVersionChunkAddress>;
|
|
1438
|
+
readonly unchanged: number;
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
export declare interface GeometryVersionMigrationStrategies {
|
|
1442
|
+
readonly migrateDelta?: GeometryMigrateDelta;
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
export declare interface GeometryVersionPublication {
|
|
1446
|
+
readonly tenantId: string;
|
|
1447
|
+
readonly kind: GeometryKind;
|
|
1448
|
+
readonly worldId: string;
|
|
1449
|
+
readonly version: string;
|
|
1450
|
+
readonly chunks: ReadonlyArray<GeometryStaticReference>;
|
|
1451
|
+
}
|
|
1452
|
+
|
|
1453
|
+
export declare interface GeometryVersionReceipt {
|
|
1454
|
+
readonly tenantId: string;
|
|
1455
|
+
readonly kind: GeometryKind;
|
|
1456
|
+
readonly worldId: string;
|
|
1457
|
+
readonly version: string;
|
|
1458
|
+
readonly manifestSha256: string;
|
|
1459
|
+
readonly chunks: ReadonlyArray<GeometryStaticReference>;
|
|
1460
|
+
}
|
|
1461
|
+
|
|
1462
|
+
export declare type GeometryVoxelChunk = (typeof GeometryVoxelChunkSchema)["Type"];
|
|
1463
|
+
|
|
1464
|
+
export declare const GeometryVoxelChunkSchema: Schema.Struct<{
|
|
1465
|
+
readonly kind: Schema.Literal<"3d-voxel">;
|
|
1466
|
+
readonly formatVersion: Schema.Literal<1>;
|
|
1467
|
+
readonly address: Schema.Struct<{
|
|
1468
|
+
readonly worldId: Schema.String;
|
|
1469
|
+
readonly layerSetId: Schema.String;
|
|
1470
|
+
readonly cx: Schema.Int;
|
|
1471
|
+
readonly cy: Schema.Int;
|
|
1472
|
+
readonly cz: Schema.Int;
|
|
1473
|
+
}>;
|
|
1474
|
+
readonly version: Schema.String;
|
|
1475
|
+
readonly side: Schema.Int;
|
|
1476
|
+
readonly voxelSizeRaw: Schema.Int;
|
|
1477
|
+
readonly palette: Schema.$Array<Schema.Struct<{
|
|
1478
|
+
readonly key: Schema.String;
|
|
1479
|
+
readonly solid: Schema.Boolean;
|
|
1480
|
+
}>>;
|
|
1481
|
+
readonly sections: Schema.$Array<Schema.Struct<{
|
|
1482
|
+
readonly sx: Schema.Int;
|
|
1483
|
+
readonly sy: Schema.Int;
|
|
1484
|
+
readonly sz: Schema.Int;
|
|
1485
|
+
readonly runs: Schema.$Array<Schema.Struct<{
|
|
1486
|
+
readonly paletteIndex: Schema.Int;
|
|
1487
|
+
readonly length: Schema.Int;
|
|
1488
|
+
}>>;
|
|
1489
|
+
}>>;
|
|
1490
|
+
}>;
|
|
1491
|
+
|
|
1492
|
+
export declare interface GeometryVoxelCodec {
|
|
1493
|
+
readonly limits: GeometryVoxelLimits;
|
|
1494
|
+
readonly schemaHash: number;
|
|
1495
|
+
capture(offered: unknown): GeometryVoxelChunk;
|
|
1496
|
+
create(source: GeometryVoxelSource): GeometryVoxelChunk;
|
|
1497
|
+
encode(chunk: GeometryVoxelChunk): Uint8Array;
|
|
1498
|
+
decode(bytes: Uint8Array): GeometryVoxelChunk;
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
export declare interface GeometryVoxelLimits {
|
|
1502
|
+
readonly maxSide: number;
|
|
1503
|
+
readonly maxVoxels: number;
|
|
1504
|
+
readonly maxPalette: number;
|
|
1505
|
+
readonly maxSections: number;
|
|
1506
|
+
readonly maxRunsPerSection: number;
|
|
1507
|
+
readonly maxBytes: number;
|
|
1508
|
+
}
|
|
1509
|
+
|
|
1510
|
+
export declare type GeometryVoxelSection = (typeof GeometryVoxelSectionSchema)["Type"];
|
|
1511
|
+
|
|
1512
|
+
export declare const GeometryVoxelSectionSchema: Schema.Struct<{
|
|
1513
|
+
readonly sx: Schema.Int;
|
|
1514
|
+
readonly sy: Schema.Int;
|
|
1515
|
+
readonly sz: Schema.Int;
|
|
1516
|
+
readonly runs: Schema.$Array<Schema.Struct<{
|
|
1517
|
+
readonly paletteIndex: Schema.Int;
|
|
1518
|
+
readonly length: Schema.Int;
|
|
1519
|
+
}>>;
|
|
1520
|
+
}>;
|
|
1521
|
+
|
|
1522
|
+
export declare interface GeometryVoxelSource {
|
|
1523
|
+
readonly address: GeometryChunkAddress3D;
|
|
1524
|
+
readonly version: string;
|
|
1525
|
+
readonly side: number;
|
|
1526
|
+
readonly voxelSizeRaw: number;
|
|
1527
|
+
readonly voxels: ReadonlyArray<GeometryTileMaterial>;
|
|
1528
|
+
}
|
|
1529
|
+
|
|
1530
|
+
export declare interface GeometryVoxelView {
|
|
1531
|
+
readonly chunk: GeometryVoxelChunk;
|
|
1532
|
+
materialAt(x: number, y: number, z: number): GeometryTileMaterial;
|
|
1533
|
+
solidAt(x: number, y: number, z: number): boolean;
|
|
1534
|
+
materialAtRaw(xRaw: number, yRaw: number, zRaw: number): GeometryTileMaterial;
|
|
1535
|
+
occupancy(): Uint8Array;
|
|
1536
|
+
}
|
|
1537
|
+
|
|
1538
|
+
export declare interface GeometryVoxImportOptions {
|
|
1539
|
+
readonly worldId: string;
|
|
1540
|
+
readonly layerSetId: string;
|
|
1541
|
+
readonly version: string;
|
|
1542
|
+
readonly origin: {
|
|
1543
|
+
readonly cx: number;
|
|
1544
|
+
readonly cy: number;
|
|
1545
|
+
readonly cz: number;
|
|
1546
|
+
};
|
|
1547
|
+
/** VOX gravity axis is Z. Explicitly retain XYZ or swap Y/Z; never infer engine axes. */
|
|
1548
|
+
readonly axes: 'xyz' | 'xzy';
|
|
1549
|
+
readonly chunkSide?: number;
|
|
1550
|
+
readonly voxelSizeRaw?: number;
|
|
1551
|
+
readonly modelIndex?: number;
|
|
1552
|
+
readonly emptyMaterial: GeometryTileMaterial;
|
|
1553
|
+
readonly materials: ReadonlyArray<{
|
|
1554
|
+
readonly colorIndex: number;
|
|
1555
|
+
readonly material: GeometryTileMaterial;
|
|
1556
|
+
}>;
|
|
1557
|
+
readonly maxInputBytes?: number;
|
|
1558
|
+
readonly maxVoxels?: number;
|
|
1559
|
+
readonly maxChunks?: number | undefined;
|
|
1560
|
+
readonly maxFileChunks?: number;
|
|
1561
|
+
readonly codecLimits?: Partial<GeometryVoxelLimits> | undefined;
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
/** Nonempty half-open raw box. Three-dimensional kinds require both Z fields. */
|
|
1565
|
+
export declare interface GeometryWorldBoxRaw {
|
|
1566
|
+
readonly minXRaw: number;
|
|
1567
|
+
readonly minYRaw: number;
|
|
1568
|
+
readonly maxXRaw: number;
|
|
1569
|
+
readonly maxYRaw: number;
|
|
1570
|
+
readonly minZRaw?: number;
|
|
1571
|
+
readonly maxZRaw?: number;
|
|
1572
|
+
}
|
|
1573
|
+
|
|
1574
|
+
export declare interface GeometryWorldPointRaw {
|
|
1575
|
+
readonly xRaw: number;
|
|
1576
|
+
readonly yRaw: number;
|
|
1577
|
+
readonly zRaw?: number;
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1580
|
+
export declare type GeometryWorldRayHit = GeometryGridRayHit | GeometryShapeRayHit | GeometryHeightfieldRayHit;
|
|
1581
|
+
|
|
1582
|
+
export declare interface GeometryWorldRayOptions extends GeometryGridRayOptions {
|
|
1583
|
+
/** Shapes only; narrows maxOverlapTests for the total shape scan. */
|
|
1584
|
+
readonly maxTests?: number;
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
export declare interface GeometryWorldShapeHit {
|
|
1588
|
+
readonly scope: GeometryPersistenceScope;
|
|
1589
|
+
readonly revision: number;
|
|
1590
|
+
readonly shape: GeometryShape;
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
export declare interface GeometryWorldTilePathOptions extends Partial<GeometryTileNavigationLimits> {
|
|
1594
|
+
readonly maxRegionCells?: number;
|
|
1595
|
+
}
|
|
1596
|
+
|
|
1597
|
+
export declare interface GeometryWorldTilePathRegion {
|
|
1598
|
+
readonly minCx: number;
|
|
1599
|
+
readonly minCy: number;
|
|
1600
|
+
readonly chunksX: number;
|
|
1601
|
+
readonly chunksY: number;
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
export declare interface GeometryWorldTilePathSearch {
|
|
1605
|
+
readonly status: GeometryTilePathStatus;
|
|
1606
|
+
readonly metrics: GeometryTilePathMetrics;
|
|
1607
|
+
/** Global TILE coordinates; only terminal current found paths are returned. */
|
|
1608
|
+
readonly path: ReadonlyArray<GeometryTilePoint> | null;
|
|
1609
|
+
advance(maximumExpansions?: number): GeometryTilePathStatus;
|
|
1610
|
+
cancel(): void;
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
export declare interface GeometryWorldView {
|
|
1614
|
+
readonly kind: GeometryKind;
|
|
1615
|
+
readonly scope: GeometryPreparedScope;
|
|
1616
|
+
/** Discrete AABB/circle resolution in world units against current tile data.
|
|
1617
|
+
* Reuses the Transform solver; no swept movement or velocity integration. */
|
|
1618
|
+
collide(transform: Transform2D, body: CollisionBody2D, options?: GeometryTileCollisionOptions): CollisionResult2D;
|
|
1619
|
+
/** Tiles/voxels only. Unloaded coordinates refuse, never implicit empty terrain. */
|
|
1620
|
+
materialAtRaw(point: GeometryWorldPointRaw): GeometryTileMaterial;
|
|
1621
|
+
/** Tiles/voxels/shapes: the stored solidity. Heightfields (points with `zRaw`): terrain is solid at and
|
|
1622
|
+
* below its surface, the same surface `raycastRaw` hits. Heightfield material is not invented. */
|
|
1623
|
+
solidAtRaw(point: GeometryWorldPointRaw): boolean;
|
|
1624
|
+
/** Heightfield only, with exact existing native interpolation. */
|
|
1625
|
+
heightAtRaw(point: GeometryWorldPointRaw): number;
|
|
1626
|
+
/** Shapes only; hit volumes retain native LOCAL coordinates and exact chunk scope. */
|
|
1627
|
+
shapesAtRaw(point: GeometryWorldPointRaw): ReadonlyArray<GeometryWorldShapeHit>;
|
|
1628
|
+
/** Tiles/voxels return exact rational entry; shapes select exact quadratic
|
|
1629
|
+
* entry and expose enclosing presentation bounds; heightfields (points with
|
|
1630
|
+
* `zRaw`) return the first sampled point at or below the surface, refined to
|
|
1631
|
+
* one raw unit (`raycastGeometryHeightfield`). Missing coverage refuses. */
|
|
1632
|
+
raycastRaw(from: GeometryWorldPointRaw, to: GeometryWorldPointRaw, options?: GeometryWorldRayOptions): GeometryWorldRayHit | null;
|
|
1633
|
+
/** Tiles/voxels/closed native shapes, clipped by half-open chunk ownership. Heightfields need the z extent:
|
|
1634
|
+
* the box touches terrain when the highest surface point over its footprint is at or above `minZRaw`
|
|
1635
|
+
* (`overlapsGeometryHeightfieldBox`). Nonempty half-open raw boxes only; missing data or work exhaustion refuses. */
|
|
1636
|
+
overlapsBoxRaw(box: GeometryWorldBoxRaw, options?: GeometryBoxOverlapOptions): boolean;
|
|
1637
|
+
/** Translation-only tile/voxel sweep. Shares maxOverlapTests; validates the
|
|
1638
|
+
* whole swept bounding region before publishing the earliest overlap. */
|
|
1639
|
+
sweepBoxRaw(from: GeometryWorldBoxRaw, to: GeometryWorldBoxRaw, options?: GeometryBoxOverlapOptions): GeometryGridSweepHit | null;
|
|
1640
|
+
/** Heightfields only (boxes with a z extent): the first raw-grid position that reaches under the surface
|
|
1641
|
+
* (`sweepGeometryHeightfieldBox`), coarse steps of a quarter sample spacing, at most
|
|
1642
|
+
* `geometry.budgets.maxRayCells` overlap evaluations of `maxTests` reads each. */
|
|
1643
|
+
sweepHeightfieldBoxRaw(from: GeometryHeightfieldBoxRaw, to: GeometryHeightfieldBoxRaw, options?: GeometryBoxOverlapOptions): GeometryHeightfieldSweepHit | null;
|
|
1644
|
+
}
|
|
1645
|
+
|
|
1646
|
+
/** App-root relative declaration; it neither opens a path nor proves filesystem custody. */
|
|
1647
|
+
export declare const importedGeometry: (directory: string) => GeometrySource;
|
|
1648
|
+
|
|
1649
|
+
/** Pure glTF2 JSON + supplied binary buffers -> explicitly selected conservative
|
|
1650
|
+
* axis-aligned collision bounds. Real POSITION bytes, metadata bounds checked,
|
|
1651
|
+
* exact native fixed values. Never silently promote render meshes to physics. */
|
|
1652
|
+
export declare const importGltfGeometry: (offered: Uint8Array, options: GeometryGltfImportOptions) => ReadonlyArray<GeometryShapesChunk>;
|
|
1653
|
+
|
|
1654
|
+
/** Import one explicit embedded or supplied standalone LDtk level/layer. Layer
|
|
1655
|
+
* offsets are respected; author origin is explicit, independent of world layout.
|
|
1656
|
+
* External files are never followed and stacked visual tiles never pick a winner. */
|
|
1657
|
+
export declare const importLdtkGeometry: (bytes: Uint8Array, options: LdtkGeometryImportOptions) => ReadonlyArray<GeometryTileChunk>;
|
|
1658
|
+
|
|
1659
|
+
/** Import one explicit orthogonal JSON tile layer, with finite data or infinite
|
|
1660
|
+
* chunks. No external asset access, compression, default padding or SQL. */
|
|
1661
|
+
export declare const importTiledGeometry: (bytes: Uint8Array, options: TiledGeometryImportOptions) => ReadonlyArray<GeometryTileChunk>;
|
|
1662
|
+
|
|
1663
|
+
/** Pure offline VOX150 model import. Exact native 16³-section geometry, explicit
|
|
1664
|
+
* empty/color semantics. Scene-graph transforms/animations refuse; no palette
|
|
1665
|
+
* color is guessed to be solid and no authored SIZE volume is padded. */
|
|
1666
|
+
export declare const importVoxGeometry: (offered: Uint8Array, options: GeometryVoxImportOptions) => ReadonlyArray<GeometryVoxelChunk>;
|
|
1667
|
+
|
|
1668
|
+
export declare interface LdtkGeometryImportOptions extends GeometryTileImportOptions {
|
|
1669
|
+
readonly level: string;
|
|
1670
|
+
readonly layer: string;
|
|
1671
|
+
/** Tiles/AutoLayer must explicitly represent uncovered cells. IntGrid maps zero. */
|
|
1672
|
+
readonly emptyMaterial?: GeometryTileMaterial;
|
|
1673
|
+
/** Select a multi-world project's exact world iid. */
|
|
1674
|
+
readonly worldIid?: string;
|
|
1675
|
+
}
|
|
1676
|
+
|
|
1677
|
+
/** Native prepared capabilities only. This does not install itself into Room hooks or establish owner/session authority. */
|
|
1678
|
+
export declare const makeGeometryActorInventory: (offered: GeometryPreparedInventory) => GeometryActorInventory;
|
|
1679
|
+
|
|
1680
|
+
/** CPU owned reassembly only; real Room admission/view authorization is the
|
|
1681
|
+
* caller's boundary. No automatic application, prediction or remote ACK. */
|
|
1682
|
+
export declare const makeGeometryDeltaReceiver: (offered?: GeometryDeltaReceiverOptions) => GeometryDeltaReceiver;
|
|
1683
|
+
|
|
1684
|
+
/** Native message carrier reassembly only. Caller must verify actual payload SHA
|
|
1685
|
+
* and canonical metadata/root, outside the synchronous reliable callback. */
|
|
1686
|
+
export declare const makeGeometryManifestReceiver: (offered?: GeometryManifestReceiverOptions) => Readonly<{
|
|
1687
|
+
receive: (offered: unknown) => Readonly<{
|
|
1688
|
+
scope: GeometryPreparedScope;
|
|
1689
|
+
payloadSha256: string;
|
|
1690
|
+
bytes: Uint8Array<ArrayBuffer>;
|
|
1691
|
+
}> | null;
|
|
1692
|
+
reset: () => void;
|
|
1693
|
+
observation: () => Readonly<{
|
|
1694
|
+
pending: number;
|
|
1695
|
+
accountedBytes: number;
|
|
1696
|
+
}>;
|
|
1697
|
+
}>;
|
|
1698
|
+
|
|
1699
|
+
/** Same bounded byte carrier reassembly as native manifests, then actual GPD
|
|
1700
|
+
* metadata capture. Caller still performs actual patch SHA/native application. */
|
|
1701
|
+
export declare const makeGeometrySnapshotReceiver: (offered?: GeometrySnapshotReceiverOptions) => Readonly<{
|
|
1702
|
+
receive: (offered: unknown) => GeometryChunkSnapshot | null;
|
|
1703
|
+
drop: (scope: GeometryPersistenceScope, requestId: string) => boolean;
|
|
1704
|
+
reset: () => void;
|
|
1705
|
+
observation: () => Readonly<{
|
|
1706
|
+
pending: number;
|
|
1707
|
+
accountedBytes: number;
|
|
1708
|
+
}>;
|
|
1709
|
+
}>;
|
|
1710
|
+
|
|
1711
|
+
/** CPU-only global coordinate facade over the current genuine actor frame.
|
|
1712
|
+
* No structural callbacks, source, Store, hash, worker, timer or transport work.
|
|
1713
|
+
* Native pointer activation is visible on the next synchronous query. */
|
|
1714
|
+
export declare const makeGeometryWorldView: (offeredWorld: AnyWorldDescriptor, actor: GeometryActorInventory) => GeometryWorldView;
|
|
1715
|
+
|
|
1716
|
+
declare class NotRoomMember extends NotRoomMember_base {
|
|
1717
|
+
}
|
|
1718
|
+
|
|
1719
|
+
declare const NotRoomMember_base: Schema.Class<NotRoomMember, Schema.TaggedStruct<"NotRoomMember", {
|
|
1720
|
+
readonly sessionId: Schema.String;
|
|
1721
|
+
}>, YieldableError>;
|
|
1722
|
+
|
|
1723
|
+
/** Terrain is solid at and below its surface: does the half-open box reach under the surface anywhere? It does
|
|
1724
|
+
* exactly when the highest surface point over its footprint is at or above `minZRaw`. `surface` answers the
|
|
1725
|
+
* native interpolated height at one global raw point (and refuses unloaded coordinates); `spacingRaw` is the
|
|
1726
|
+
* sample spacing shared by every chunk. At most `maxTests` surface samples are read. */
|
|
1727
|
+
export declare const overlapsGeometryHeightfieldBox: (offered: GeometryHeightfieldBoxRaw, surface: (xRaw: number, yRaw: number) => number, spacingRaw: number, maxTests: number) => boolean;
|
|
1728
|
+
|
|
1729
|
+
declare interface PreparedCommon {
|
|
1730
|
+
readonly scope: GeometryPersistenceScope;
|
|
1731
|
+
readonly revision: number;
|
|
1732
|
+
readonly blobSha256: string;
|
|
1733
|
+
readonly contentSha256: string;
|
|
1734
|
+
readonly accountedBytes: number;
|
|
1735
|
+
}
|
|
1736
|
+
|
|
1737
|
+
/** Outside Tick and before SQL CAS. Reconstruct the selected genuine native
|
|
1738
|
+
* output under original caps, not merely declared hashes or a structural codec. */
|
|
1739
|
+
export declare const prepareGeometryCompaction: (offered: GeometryCompactionContext, offeredStrategies?: Partial<GeometryCompactionStrategies>) => Promise<GeometryPatch>;
|
|
1740
|
+
|
|
1741
|
+
/** Outside-Tick full logical/encoded profile admission and native view allocation.
|
|
1742
|
+
* Retains genuine artifacts privately; public entries expose actual synchronous
|
|
1743
|
+
* native query capabilities, never structural providers or source callbacks. */
|
|
1744
|
+
export declare const prepareGeometryInventory: (offeredRoot: GeometryPreparedScope, observations: ReadonlyArray<GeometryPersistenceObservation>, offered?: GeometryPreparedOptions) => GeometryPreparedInventory;
|
|
1745
|
+
|
|
1746
|
+
/** Outside-Tick native preparation only. Trusted SQL caller supplies a complete
|
|
1747
|
+
* ordered journal and its authentic Subject attribution. No authority, lease,
|
|
1748
|
+
* SQL write, player state upload or receipt is inferred by this pure owner.
|
|
1749
|
+
* Remove target's changed cells while preserving later peer changes. No-op
|
|
1750
|
+
* patches cannot establish a new semantic writer and remain no-ops. */
|
|
1751
|
+
export declare const prepareGeometryRollback: (offeredBaseline: GeometryArtifact, baseRevision: number, offeredCurrent: GeometryArtifact, currentRevision: number, offeredEntries: ReadonlyArray<GeometryRollbackEntry>, offeredTarget: GeometryPersistenceSubject | null, offered?: GeometryRollbackOptions) => Promise<GeometryRollbackPreparation>;
|
|
1752
|
+
|
|
1753
|
+
/** Captured author callback only, never invoked during World declaration/catalogue admission. */
|
|
1754
|
+
export declare const procedural: (offered: {
|
|
1755
|
+
readonly seed: number;
|
|
1756
|
+
readonly generator: GeometryGenerator;
|
|
1757
|
+
}) => GeometrySource;
|
|
1758
|
+
|
|
1759
|
+
declare class ProtocolError extends ProtocolError_base {
|
|
1760
|
+
get message(): string;
|
|
1761
|
+
}
|
|
1762
|
+
|
|
1763
|
+
declare const ProtocolError_base: Schema.Class<ProtocolError, Schema.TaggedStruct<"ProtocolError", {
|
|
1764
|
+
readonly detail: Schema.String;
|
|
1765
|
+
}>, YieldableError>;
|
|
1766
|
+
|
|
1767
|
+
/** Deterministic heightfield ray: sample the segment at fixed steps along its ground track and
|
|
1768
|
+
* take the first step at or below the surface (`z <= height`), then halve that step until it is
|
|
1769
|
+
* one raw unit long. Points are floored onto the raw grid (so a hit can come up to one raw unit
|
|
1770
|
+
* early), and every engine that runs the same native interpolation gets the same hit. A surface crossed and re-crossed within one coarse step
|
|
1771
|
+
* can be missed: the step length is the contract's resolution. Missing chunks or an exhausted
|
|
1772
|
+
* sample budget refuse rather than publish a partial answer; a segment that starts below the
|
|
1773
|
+
* surface hits at fraction 0. */
|
|
1774
|
+
export declare const raycastGeometryHeightfield: (offeredFrom: GeometryHeightfieldRayPoint, offeredTo: GeometryHeightfieldRayPoint, sample: (xRaw: number, yRaw: number) => GeometryHeightfieldSample, offered: GeometryHeightfieldRayOptions) => GeometryHeightfieldRayHit | null;
|
|
1775
|
+
|
|
1776
|
+
declare class RoomAuthoringError extends RoomAuthoringError_base {
|
|
1777
|
+
get message(): string;
|
|
1778
|
+
}
|
|
1779
|
+
|
|
1780
|
+
declare const RoomAuthoringError_base: Schema.Class<RoomAuthoringError, Schema.TaggedStruct<"RoomAuthoringError", {
|
|
1781
|
+
readonly room: Schema.String;
|
|
1782
|
+
readonly detail: Schema.String;
|
|
1783
|
+
}>, YieldableError>;
|
|
1784
|
+
|
|
1785
|
+
declare interface RoomChannel {
|
|
1786
|
+
readonly schema: Schema.Codec<unknown, unknown>;
|
|
1787
|
+
readonly direction: 'both' | 'server' | 'client';
|
|
1788
|
+
readonly reliable: boolean;
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
declare type RoomControlError = ProtocolError | BudgetExceeded | NotRoomMember | RoomAuthoringError | RoomForbidden | RoomFull | RoomGone | RoomLocked | RoomPoolWaking | RoomsClosed | SeatExpired;
|
|
1792
|
+
|
|
1793
|
+
declare class RoomForbidden extends RoomForbidden_base {
|
|
1794
|
+
}
|
|
1795
|
+
|
|
1796
|
+
declare const RoomForbidden_base: Schema.Class<RoomForbidden, Schema.TaggedStruct<"RoomForbidden", {
|
|
1797
|
+
readonly roomId: Schema.String;
|
|
1798
|
+
}>, YieldableError>;
|
|
1799
|
+
|
|
1800
|
+
declare class RoomFull extends RoomFull_base {
|
|
1801
|
+
}
|
|
1802
|
+
|
|
1803
|
+
declare const RoomFull_base: Schema.Class<RoomFull, Schema.TaggedStruct<"RoomFull", {
|
|
1804
|
+
readonly roomId: Schema.String;
|
|
1805
|
+
}>, YieldableError>;
|
|
1806
|
+
|
|
1807
|
+
/** API administration resolves actual current SQL Host; wire inputs never select it. */
|
|
1808
|
+
export declare class RoomGeometryAdministrationPort extends RoomGeometryAdministrationPort_base {
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
declare const RoomGeometryAdministrationPort_base: Context.ServiceClass<RoomGeometryAdministrationPort, "@voltro/RoomGeometryAdministrationPort", {
|
|
1812
|
+
reload(roomId: string, request: RoomGeometryReloadRequest, subject: Subject): Effect.Effect<void, GeometryPersistenceError>;
|
|
1813
|
+
rollback(roomId: string, request: RoomGeometryRollbackRequest, subject: Subject): Effect.Effect<void, GeometryPersistenceError>;
|
|
1814
|
+
/** The chunk view: present when the administration knows the Worlds. */
|
|
1815
|
+
readonly chunks?: (roomId: string, subject: Subject) => Effect.Effect<RoomGeometryChunks, GeometryPersistenceError>;
|
|
1816
|
+
}>;
|
|
1817
|
+
|
|
1818
|
+
/** The changed chunks a World cell Room owns, newest first. `truncated` when more exist than the read returns. */
|
|
1819
|
+
declare interface RoomGeometryChunks {
|
|
1820
|
+
readonly roomId: string;
|
|
1821
|
+
readonly worldId: string;
|
|
1822
|
+
readonly zoneId: string;
|
|
1823
|
+
readonly cellId: string;
|
|
1824
|
+
readonly chunks: ReadonlyArray<RoomGeometryChunkState>;
|
|
1825
|
+
readonly truncated: boolean;
|
|
1826
|
+
}
|
|
1827
|
+
|
|
1828
|
+
/** One chunk a World cell Room owns that players changed: its durable revision and whether it
|
|
1829
|
+
* still differs from its static version (`changed: false` after a reset). */
|
|
1830
|
+
declare interface RoomGeometryChunkState {
|
|
1831
|
+
readonly cx: number;
|
|
1832
|
+
readonly cy: number;
|
|
1833
|
+
readonly cz?: number | undefined;
|
|
1834
|
+
readonly layerSetId: string;
|
|
1835
|
+
readonly version: string;
|
|
1836
|
+
readonly revision: number;
|
|
1837
|
+
readonly changed: boolean;
|
|
1838
|
+
readonly updatedAt: number;
|
|
1839
|
+
}
|
|
1840
|
+
|
|
1841
|
+
/** Existing authenticated API-to-Host carrier. Caller authority must be
|
|
1842
|
+
* resolved again at the actual Host; success joins native CPU admission and
|
|
1843
|
+
* retained cleanup, never merely receipt publication. No player state input. */
|
|
1844
|
+
export declare class RoomGeometryControlPort extends RoomGeometryControlPort_base {
|
|
1845
|
+
}
|
|
1846
|
+
|
|
1847
|
+
declare const RoomGeometryControlPort_base: Context.ServiceClass<RoomGeometryControlPort, "@voltro/RoomGeometryControlPort", {
|
|
1848
|
+
reload(hostId: string, roomId: string, request: RoomGeometryReloadRequest, subject: Subject): Effect.Effect<void, RoomControlError>;
|
|
1849
|
+
rollback(hostId: string, roomId: string, request: RoomGeometryRollbackRequest, subject: Subject): Effect.Effect<void, RoomControlError>;
|
|
1850
|
+
}>;
|
|
1851
|
+
|
|
1852
|
+
declare interface RoomGeometryReloadRequest {
|
|
1853
|
+
readonly version: string;
|
|
1854
|
+
readonly requestId: string;
|
|
1855
|
+
}
|
|
1856
|
+
|
|
1857
|
+
/** Administrative intentions only; Host resolves World/current owner/native bytes. */
|
|
1858
|
+
export declare const RoomGeometryReloadRequestSchema: Schema.Struct<{
|
|
1859
|
+
readonly version: Schema.String;
|
|
1860
|
+
readonly requestId: Schema.String;
|
|
1861
|
+
}>;
|
|
1862
|
+
|
|
1863
|
+
/** Administrative intention only. World/version/owner/authority/baseline/patch
|
|
1864
|
+
* are resolved by the actual Host/source, never accepted as client state. */
|
|
1865
|
+
declare interface RoomGeometryRollbackRequest {
|
|
1866
|
+
readonly cx: number;
|
|
1867
|
+
readonly cy: number;
|
|
1868
|
+
readonly cz?: number | undefined;
|
|
1869
|
+
/** The actor whose changes are undone; `null` undoes every actor's changes (chunk reset to its static baseline). */
|
|
1870
|
+
readonly target: GeometryPersistenceSubject | null;
|
|
1871
|
+
readonly requestId: string;
|
|
1872
|
+
}
|
|
1873
|
+
|
|
1874
|
+
export declare const RoomGeometryRollbackRequestSchema: Schema.Struct<{
|
|
1875
|
+
readonly cx: Schema.Int;
|
|
1876
|
+
readonly cy: Schema.Int;
|
|
1877
|
+
readonly cz: Schema.optional<Schema.Int>;
|
|
1878
|
+
readonly target: Schema.NullOr<Schema.Struct<{
|
|
1879
|
+
readonly id: Schema.String;
|
|
1880
|
+
readonly kind: Schema.Literals<readonly ["user", "guest"]>;
|
|
1881
|
+
}>>;
|
|
1882
|
+
readonly requestId: Schema.String;
|
|
1883
|
+
}>;
|
|
1884
|
+
|
|
1885
|
+
declare class RoomGone extends RoomGone_base {
|
|
1886
|
+
}
|
|
1887
|
+
|
|
1888
|
+
declare const RoomGone_base: Schema.Class<RoomGone, Schema.TaggedStruct<"RoomGone", {
|
|
1889
|
+
readonly roomId: Schema.String;
|
|
1890
|
+
}>, YieldableError>;
|
|
1891
|
+
|
|
1892
|
+
declare class RoomLocked extends RoomLocked_base {
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1895
|
+
declare const RoomLocked_base: Schema.Class<RoomLocked, Schema.TaggedStruct<"RoomLocked", {
|
|
1896
|
+
readonly roomId: Schema.String;
|
|
1897
|
+
}>, YieldableError>;
|
|
1898
|
+
|
|
1899
|
+
/** The pool has no host because it scaled to zero; one is starting. Reserve again after `retryAfterMs`. */
|
|
1900
|
+
declare class RoomPoolWaking extends RoomPoolWaking_base {
|
|
1901
|
+
}
|
|
1902
|
+
|
|
1903
|
+
declare const RoomPoolWaking_base: Schema.Class<RoomPoolWaking, Schema.TaggedStruct<"RoomPoolWaking", {
|
|
1904
|
+
readonly pool: Schema.String;
|
|
1905
|
+
readonly retryAfterMs: Schema.Number;
|
|
1906
|
+
}>, YieldableError>;
|
|
1907
|
+
|
|
1908
|
+
/** New Room reservations are closed for this caller (maintenance, a kill switch...): the app's
|
|
1909
|
+
* `admission` refused. `until`: epoch ms when they reopen, if known; `messageKey`: the app's text. */
|
|
1910
|
+
declare class RoomsClosed extends RoomsClosed_base {
|
|
1911
|
+
}
|
|
1912
|
+
|
|
1913
|
+
declare const RoomsClosed_base: Schema.Class<RoomsClosed, Schema.TaggedStruct<"RoomsClosed", {
|
|
1914
|
+
readonly until: Schema.NullOr<Schema.Number>;
|
|
1915
|
+
readonly messageKey: Schema.String;
|
|
1916
|
+
}>, YieldableError>;
|
|
1917
|
+
|
|
1918
|
+
declare class SeatExpired extends SeatExpired_base {
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
declare const SeatExpired_base: Schema.Class<SeatExpired, Schema.TaggedStruct<"SeatExpired", {
|
|
1922
|
+
readonly sessionId: Schema.String;
|
|
1923
|
+
}>, YieldableError>;
|
|
1924
|
+
|
|
1925
|
+
/** Translation-only sweep of a box over heightfield terrain: the box moves on the raw grid from `from` to `to`
|
|
1926
|
+
* (`position p` of `length` raw steps along the longest axis, other axes floored proportionally). Coarse steps of
|
|
1927
|
+
* `stepRaw`; the first step that reaches under the surface is halved down to one raw step. Terrain entered and
|
|
1928
|
+
* left within one coarse step can be missed: the step is the contract's resolution. `overlaps` answers one box
|
|
1929
|
+
* (for example `overlapsGeometryHeightfieldBox` over the World surface); its own budget and refusals apply. */
|
|
1930
|
+
export declare const sweepGeometryHeightfieldBox: (offeredFrom: GeometryHeightfieldBoxRaw, offeredTo: GeometryHeightfieldBoxRaw, overlaps: (box: GeometryHeightfieldBoxRaw) => boolean, offeredOptions: GeometryHeightfieldSweepOptions) => GeometryHeightfieldSweepHit | null;
|
|
1931
|
+
|
|
1932
|
+
export declare interface TiledGeometryImportOptions extends GeometryTileImportOptions {
|
|
1933
|
+
/** Exact path through group names to one tile layer; duplicate names refuse. */
|
|
1934
|
+
readonly layerPath: ReadonlyArray<string>;
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1937
|
+
declare const Transform2D: Schema.Struct<{
|
|
1938
|
+
readonly x: Schema.Number;
|
|
1939
|
+
readonly y: Schema.Number;
|
|
1940
|
+
readonly rot: Schema.Number;
|
|
1941
|
+
readonly vx: Schema.optional<Schema.Number>;
|
|
1942
|
+
readonly vy: Schema.optional<Schema.Number>;
|
|
1943
|
+
}>;
|
|
1944
|
+
|
|
1945
|
+
declare type Transform2D = (typeof Transform2D)["Type"];
|
|
1946
|
+
|
|
1947
|
+
/** Real trusted manifest selects kind and digest. All bytes are owned and
|
|
1948
|
+
* bounded under that actual kind's codec before the first native crypto await. */
|
|
1949
|
+
export declare const verifyGeometryArtifact: <K extends GeometryKind>(kind: K, offered: Uint8Array, expectedBlobSha256: string, limits?: GeometryArtifactLimits<K>) => Promise<GeometryArtifact<Extract<GeometryChunk, {
|
|
1950
|
+
readonly kind: K;
|
|
1951
|
+
}>>>;
|
|
1952
|
+
|
|
1953
|
+
export declare const verifyGeometryTileArtifact: (bytes: Uint8Array, expectedBlobSha256: string, limits?: Partial<GeometryTileLimits>) => Promise<GeometryTileArtifact>;
|
|
1954
|
+
|
|
1955
|
+
declare type WorldBounds = readonly [minimum: WorldPoint, maximum: WorldPoint];
|
|
1956
|
+
|
|
1957
|
+
declare interface WorldCell {
|
|
1958
|
+
readonly id: string;
|
|
1959
|
+
readonly zone: string;
|
|
1960
|
+
readonly column: number;
|
|
1961
|
+
readonly row: number;
|
|
1962
|
+
readonly bounds: WorldBounds;
|
|
1963
|
+
}
|
|
1964
|
+
|
|
1965
|
+
/** Pure whole-cell and clipped World/vertical-margin coverage. A chunk has one
|
|
1966
|
+
* deterministic XY owner: its center, clamped inside the declared World map,
|
|
1967
|
+
* resolved through the existing half-open World zone/cell topology. A cell may
|
|
1968
|
+
* read a straddling chunk while an edit routes to its distinct owning cell. */
|
|
1969
|
+
export declare const worldCellGeometryCoverage: (offeredWorld: AnyWorldDescriptor, offeredRoot: GeometryPreparedScope, position: WorldPosition, offered?: GeometryCellCoverageOptions) => GeometryCellCoverage;
|
|
1970
|
+
|
|
1971
|
+
declare interface WorldDefinition<Player> {
|
|
1972
|
+
readonly name: string;
|
|
1973
|
+
readonly map: {
|
|
1974
|
+
readonly bounds: WorldBounds;
|
|
1975
|
+
};
|
|
1976
|
+
readonly zones: ReadonlyArray<WorldZone>;
|
|
1977
|
+
readonly instances?: ReadonlyArray<WorldInstance>;
|
|
1978
|
+
readonly persistence: {
|
|
1979
|
+
readonly entities: 'world';
|
|
1980
|
+
readonly snapshotEveryMs: number;
|
|
1981
|
+
readonly journal: boolean;
|
|
1982
|
+
};
|
|
1983
|
+
readonly handoff: {
|
|
1984
|
+
readonly marginUnits: number;
|
|
1985
|
+
readonly ghostUnits: number;
|
|
1986
|
+
};
|
|
1987
|
+
readonly spawn: (context: {
|
|
1988
|
+
readonly player: Player;
|
|
1989
|
+
}) => WorldPosition;
|
|
1990
|
+
readonly geometry?: WorldGeometryDefinition | undefined;
|
|
1991
|
+
readonly hosts?: {
|
|
1992
|
+
readonly pool: string;
|
|
1993
|
+
};
|
|
1994
|
+
readonly characters?: 'shared' | 'per-world';
|
|
1995
|
+
readonly transitionCooldownMs?: number;
|
|
1996
|
+
/** Authoring inventory bounds, not measured runtime capacity. */
|
|
1997
|
+
readonly budgets?: {
|
|
1998
|
+
readonly maxZones?: number;
|
|
1999
|
+
readonly maxCells?: number | undefined;
|
|
2000
|
+
readonly maxInstances?: number;
|
|
2001
|
+
};
|
|
2002
|
+
readonly strategies?: {
|
|
2003
|
+
readonly layerPolicy?: WorldLayerPolicy | undefined;
|
|
2004
|
+
readonly transitionPolicy?: WorldTransitionPolicy;
|
|
2005
|
+
readonly onWorldChange?: WorldOnWorldChange;
|
|
2006
|
+
};
|
|
2007
|
+
}
|
|
2008
|
+
|
|
2009
|
+
declare interface WorldDescriptor<Player> extends Omit<WorldDefinition<Player>, 'instances' | 'budgets' | 'characters' | 'transitionCooldownMs' | 'strategies' | 'geometry'> {
|
|
2010
|
+
readonly geometry?: WorldGeometryDescriptor | undefined;
|
|
2011
|
+
readonly _tag: 'WorldDescriptor';
|
|
2012
|
+
readonly instances: ReadonlyArray<Omit<WorldInstance, 'ttl'> & {
|
|
2013
|
+
readonly ttlMs: number;
|
|
2014
|
+
}>;
|
|
2015
|
+
readonly budgets: {
|
|
2016
|
+
readonly maxZones: number;
|
|
2017
|
+
readonly maxCells: number;
|
|
2018
|
+
readonly maxInstances: number;
|
|
2019
|
+
};
|
|
2020
|
+
readonly characters: 'shared' | 'per-world';
|
|
2021
|
+
readonly transitionCooldownMs: number;
|
|
2022
|
+
readonly cellCount: number;
|
|
2023
|
+
readonly strategies: {
|
|
2024
|
+
readonly layerPolicy: WorldLayerPolicy;
|
|
2025
|
+
readonly transitionPolicy: WorldTransitionPolicy;
|
|
2026
|
+
readonly onWorldChange: WorldOnWorldChange;
|
|
2027
|
+
};
|
|
2028
|
+
}
|
|
2029
|
+
|
|
2030
|
+
/** The World cell that owns a chunk: the cell under the chunk's center, clamped inside the
|
|
2031
|
+
* declared World map (the same rule coverage uses to decide which cell may write a chunk). */
|
|
2032
|
+
export declare const worldGeometryChunkOwner: (offeredWorld: AnyWorldDescriptor, coordinate: {
|
|
2033
|
+
readonly cx: number;
|
|
2034
|
+
readonly cy: number;
|
|
2035
|
+
}) => WorldCell;
|
|
2036
|
+
|
|
2037
|
+
export declare interface WorldGeometryDefinition {
|
|
2038
|
+
readonly strategies?: WorldGeometryStrategies | undefined;
|
|
2039
|
+
readonly kind: GeometryKind;
|
|
2040
|
+
readonly static: GeometrySource;
|
|
2041
|
+
readonly chunkSize?: number;
|
|
2042
|
+
readonly dynamic?: {
|
|
2043
|
+
readonly enabled?: boolean | undefined;
|
|
2044
|
+
readonly maxDeltaBytesPerChunk?: number;
|
|
2045
|
+
readonly persist?: {
|
|
2046
|
+
readonly everyMs?: number;
|
|
2047
|
+
readonly onUnload?: boolean;
|
|
2048
|
+
};
|
|
2049
|
+
};
|
|
2050
|
+
readonly collision?: {
|
|
2051
|
+
readonly derive?: 'bitgrid' | 'heightfield' | 'shapes';
|
|
2052
|
+
readonly resolution?: number;
|
|
2053
|
+
};
|
|
2054
|
+
readonly nav?: {
|
|
2055
|
+
readonly derive?: 'grid' | 'none';
|
|
2056
|
+
readonly navBudgetMs?: number;
|
|
2057
|
+
readonly maxAdvanceSteps?: number;
|
|
2058
|
+
};
|
|
2059
|
+
readonly streaming?: {
|
|
2060
|
+
readonly client?: {
|
|
2061
|
+
readonly radiusChunks?: number;
|
|
2062
|
+
readonly prefetchChunks?: number;
|
|
2063
|
+
readonly maxConcurrent?: number | undefined;
|
|
2064
|
+
readonly maxCachedChunks?: number;
|
|
2065
|
+
};
|
|
2066
|
+
readonly cell?: {
|
|
2067
|
+
readonly marginChunks?: number;
|
|
2068
|
+
};
|
|
2069
|
+
};
|
|
2070
|
+
readonly lod?: ReadonlyArray<{
|
|
2071
|
+
readonly beyondChunks: number;
|
|
2072
|
+
readonly fields: ReadonlyArray<string>;
|
|
2073
|
+
}>;
|
|
2074
|
+
readonly budgets?: {
|
|
2075
|
+
readonly maxPreparedChunks?: number;
|
|
2076
|
+
readonly maxPreparedBytes?: number;
|
|
2077
|
+
readonly maxLodLevels?: number;
|
|
2078
|
+
readonly maxRayCells?: number | undefined;
|
|
2079
|
+
readonly maxOverlapTests?: number | undefined;
|
|
2080
|
+
};
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2083
|
+
export declare interface WorldGeometryDescriptor {
|
|
2084
|
+
readonly strategies: GeometryEditStrategies & GeometryDerivationStrategies & GeometryCompactionStrategies & {
|
|
2085
|
+
readonly migrateDelta: GeometryMigrateDelta;
|
|
2086
|
+
};
|
|
2087
|
+
readonly _tag: 'WorldGeometry';
|
|
2088
|
+
readonly kind: GeometryKind;
|
|
2089
|
+
readonly static: GeometrySource;
|
|
2090
|
+
readonly chunkSize: number;
|
|
2091
|
+
readonly chunkSizeRaw: number;
|
|
2092
|
+
readonly dynamic: {
|
|
2093
|
+
readonly enabled: boolean;
|
|
2094
|
+
readonly maxDeltaBytesPerChunk: number;
|
|
2095
|
+
readonly persist: {
|
|
2096
|
+
readonly everyMs: number;
|
|
2097
|
+
readonly onUnload: boolean;
|
|
2098
|
+
};
|
|
2099
|
+
};
|
|
2100
|
+
readonly collision: {
|
|
2101
|
+
readonly derive: 'bitgrid' | 'heightfield' | 'shapes';
|
|
2102
|
+
readonly resolution: number;
|
|
2103
|
+
readonly resolutionRaw: number;
|
|
2104
|
+
};
|
|
2105
|
+
readonly nav: {
|
|
2106
|
+
readonly derive: 'grid' | 'none';
|
|
2107
|
+
readonly navBudgetMs: number;
|
|
2108
|
+
readonly maxAdvanceSteps: number;
|
|
2109
|
+
};
|
|
2110
|
+
readonly streaming: {
|
|
2111
|
+
readonly client: {
|
|
2112
|
+
readonly radiusChunks: number;
|
|
2113
|
+
readonly prefetchChunks: number;
|
|
2114
|
+
readonly maxConcurrent: number;
|
|
2115
|
+
readonly maxCachedChunks: number;
|
|
2116
|
+
};
|
|
2117
|
+
readonly cell: {
|
|
2118
|
+
readonly marginChunks: number;
|
|
2119
|
+
};
|
|
2120
|
+
};
|
|
2121
|
+
readonly lod: ReadonlyArray<{
|
|
2122
|
+
readonly beyondChunks: number;
|
|
2123
|
+
readonly fields: ReadonlyArray<string>;
|
|
2124
|
+
}>;
|
|
2125
|
+
readonly budgets: {
|
|
2126
|
+
readonly maxPreparedChunks: number;
|
|
2127
|
+
readonly maxPreparedBytes: number;
|
|
2128
|
+
readonly maxLodLevels: number;
|
|
2129
|
+
readonly maxRayCells: number;
|
|
2130
|
+
readonly maxOverlapTests: number;
|
|
2131
|
+
};
|
|
2132
|
+
}
|
|
2133
|
+
|
|
2134
|
+
/** Every chunk coordinate covering the declared World map, row by row — the inventory a complete static
|
|
2135
|
+
* version needs so each cell's coverage (including margin chunks) loads. 3D kinds need an explicit vertical
|
|
2136
|
+
* span in raw Q16 units. Refuses beyond `maxChunks` (default 4096) before expanding anything. */
|
|
2137
|
+
export declare const worldGeometryMapCoordinates: (offeredWorld: AnyWorldDescriptor, offered?: Pick<GeometryCellCoverageOptions, "vertical"> & {
|
|
2138
|
+
readonly maxChunks?: number;
|
|
2139
|
+
}) => ReadonlyArray<GeometryPreparedCoordinate>;
|
|
2140
|
+
|
|
2141
|
+
export declare interface WorldGeometryStrategies extends GeometryVersionMigrationStrategies, Partial<GeometryEditStrategies>, Partial<GeometryDerivationStrategies>, Partial<GeometryCompactionStrategies> {
|
|
2142
|
+
}
|
|
2143
|
+
|
|
2144
|
+
declare interface WorldInstance {
|
|
2145
|
+
readonly id: string;
|
|
2146
|
+
readonly room: string;
|
|
2147
|
+
readonly maxGroups: number;
|
|
2148
|
+
readonly ttl: Duration.Input;
|
|
2149
|
+
}
|
|
2150
|
+
|
|
2151
|
+
declare type WorldLayerDecision = {
|
|
2152
|
+
readonly kind: 'use';
|
|
2153
|
+
readonly layer: number;
|
|
2154
|
+
readonly wake: boolean;
|
|
2155
|
+
} | {
|
|
2156
|
+
readonly kind: 'create';
|
|
2157
|
+
readonly layer: number;
|
|
2158
|
+
} | {
|
|
2159
|
+
readonly kind: 'blocked';
|
|
2160
|
+
readonly reason: 'affinity-unavailable' | 'capacity' | 'layer-budget';
|
|
2161
|
+
};
|
|
2162
|
+
|
|
2163
|
+
declare interface WorldLayering {
|
|
2164
|
+
readonly maxPlayers: number;
|
|
2165
|
+
readonly splitAt: number;
|
|
2166
|
+
readonly mergeBelow: number;
|
|
2167
|
+
}
|
|
2168
|
+
|
|
2169
|
+
declare interface WorldLayerInput {
|
|
2170
|
+
readonly policy: WorldLayering;
|
|
2171
|
+
readonly layers: ReadonlyArray<WorldLayerObservation>;
|
|
2172
|
+
readonly groupSize: number;
|
|
2173
|
+
/** Actual server-owned party affinity; never silently choose a different layer. */
|
|
2174
|
+
readonly affinity: number | null;
|
|
2175
|
+
readonly maxLayers: number;
|
|
2176
|
+
}
|
|
2177
|
+
|
|
2178
|
+
declare interface WorldLayerObservation {
|
|
2179
|
+
readonly layer: number;
|
|
2180
|
+
readonly players: number;
|
|
2181
|
+
readonly state: 'live' | 'hibernated' | 'splitting' | 'merging';
|
|
2182
|
+
}
|
|
2183
|
+
|
|
2184
|
+
declare type WorldLayerPolicy = (input: WorldLayerInput) => WorldLayerDecision;
|
|
2185
|
+
|
|
2186
|
+
declare type WorldOnWorldChange = (input: WorldOnWorldChangeInput) => unknown;
|
|
2187
|
+
|
|
2188
|
+
declare interface WorldOnWorldChangeInput {
|
|
2189
|
+
readonly sourceWorldId: string;
|
|
2190
|
+
readonly targetWorldId: string;
|
|
2191
|
+
/** Current server-captured character data, never a player's wire state. */
|
|
2192
|
+
readonly sourceData: unknown;
|
|
2193
|
+
/** Actual server-selected target data before this policy. */
|
|
2194
|
+
readonly targetData: unknown;
|
|
2195
|
+
}
|
|
2196
|
+
|
|
2197
|
+
declare type WorldPoint = readonly [x: number, y: number];
|
|
2198
|
+
|
|
2199
|
+
declare interface WorldPosition {
|
|
2200
|
+
readonly zone: string;
|
|
2201
|
+
readonly at: WorldPoint;
|
|
2202
|
+
}
|
|
2203
|
+
|
|
2204
|
+
declare type WorldTransitionKind = 'cell' | 'layer' | 'zone' | 'world' | 'instance' | 'return' | 'recover';
|
|
2205
|
+
|
|
2206
|
+
declare interface WorldTransitionLocation extends WorldPosition {
|
|
2207
|
+
readonly world: string;
|
|
2208
|
+
readonly pool: string;
|
|
2209
|
+
readonly layer: number;
|
|
2210
|
+
readonly instance: string | null;
|
|
2211
|
+
}
|
|
2212
|
+
|
|
2213
|
+
declare type WorldTransitionMode = 'seamless' | 'portal' | 'recover';
|
|
2214
|
+
|
|
2215
|
+
declare interface WorldTransitionPlan {
|
|
2216
|
+
readonly kind: WorldTransitionKind;
|
|
2217
|
+
readonly mode: WorldTransitionMode;
|
|
2218
|
+
readonly crossPool: boolean;
|
|
2219
|
+
readonly persistBeforeRelease: boolean;
|
|
2220
|
+
readonly sourceCell: string;
|
|
2221
|
+
readonly targetCell: string;
|
|
2222
|
+
}
|
|
2223
|
+
|
|
2224
|
+
declare type WorldTransitionPolicy = (input: WorldTransitionPolicyInput) => WorldTransitionPlan;
|
|
2225
|
+
|
|
2226
|
+
declare interface WorldTransitionPolicyInput {
|
|
2227
|
+
readonly kind: WorldTransitionKind;
|
|
2228
|
+
readonly sourceWorld: AnyWorldDescriptor;
|
|
2229
|
+
readonly targetWorld: AnyWorldDescriptor;
|
|
2230
|
+
readonly source: WorldTransitionLocation;
|
|
2231
|
+
readonly target: WorldTransitionLocation;
|
|
2232
|
+
readonly mode: WorldTransitionMode | 'auto';
|
|
2233
|
+
readonly crossPool: boolean;
|
|
2234
|
+
/** Trusted server recovery classification, not a player intention field. */
|
|
2235
|
+
readonly recovery: boolean;
|
|
2236
|
+
}
|
|
2237
|
+
|
|
2238
|
+
declare interface WorldZone {
|
|
2239
|
+
readonly id: string;
|
|
2240
|
+
readonly bounds: WorldBounds;
|
|
2241
|
+
readonly room: string;
|
|
2242
|
+
readonly neighbors: ReadonlyArray<string>;
|
|
2243
|
+
readonly cells?: {
|
|
2244
|
+
readonly size: number;
|
|
2245
|
+
} | undefined;
|
|
2246
|
+
readonly layering?: WorldLayering;
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2249
|
+
export { }
|