@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.
Files changed (495) hide show
  1. package/CHANGELOG.md +24329 -0
  2. package/LICENSE +61 -0
  3. package/README.md +9204 -2
  4. package/SECURITY.md +56 -0
  5. package/THIRD-PARTY-NOTICES.md +11322 -0
  6. package/dist/actor.js +1474 -0
  7. package/dist/apiBinding.js +678 -0
  8. package/dist/apiRegistryBinding.js +399 -0
  9. package/dist/apiReservations.js +433 -0
  10. package/dist/baselines.js +73 -0
  11. package/dist/bots.d.ts +1485 -0
  12. package/dist/bots.js +563 -0
  13. package/dist/catalog.js +80 -0
  14. package/dist/checkpointJson.js +24 -0
  15. package/dist/checkpointStore.js +386 -0
  16. package/dist/client.js +56 -0
  17. package/dist/clockSync.js +51 -0
  18. package/dist/collision.js +156 -0
  19. package/dist/commandDelivery.js +101 -0
  20. package/dist/commandRecord.js +11 -0
  21. package/dist/commandWithdrawal.js +183 -0
  22. package/dist/connection.js +497 -0
  23. package/dist/controlCarrier.js +375 -0
  24. package/dist/controlRegistry.js +79 -0
  25. package/dist/controlTarget.js +45 -0
  26. package/dist/controlTransport.js +574 -0
  27. package/dist/developmentBinding.js +113 -0
  28. package/dist/directory.js +323 -0
  29. package/dist/directoryProjection.js +117 -0
  30. package/dist/errors.d.ts +125 -0
  31. package/dist/errors.js +53 -0
  32. package/dist/fixed.d.ts +284 -0
  33. package/dist/fixed.js +10 -0
  34. package/dist/fixed32.js +134 -0
  35. package/dist/fixedCollision.js +60 -0
  36. package/dist/fixedCollision32.js +109 -0
  37. package/dist/fixedMath.js +56 -0
  38. package/dist/fixedRaw.js +11 -0
  39. package/dist/fixedSlabs.js +34 -0
  40. package/dist/fixedTrig.js +48 -0
  41. package/dist/fixedTrig32.js +38 -0
  42. package/dist/fixedVectors.js +113 -0
  43. package/dist/fixedVectors32.js +95 -0
  44. package/dist/fixedWide.js +50 -0
  45. package/dist/fixedWords.js +46 -0
  46. package/dist/gateway.js +57 -0
  47. package/dist/geometry-retention-app/rooms.geometryJournalRetention.workflow.server.tsx +4 -0
  48. package/dist/geometry-retention-app/rooms.geometryJournalRetention.workflow.tsx +14 -0
  49. package/dist/geometry-worker/worker.d.mts +2 -0
  50. package/dist/geometry-worker/worker.mjs +50 -0
  51. package/dist/geometry.d.ts +2249 -0
  52. package/dist/geometry.js +40 -0
  53. package/dist/geometryActivation.js +82 -0
  54. package/dist/geometryActorInventory.js +108 -0
  55. package/dist/geometryAdminClient.js +87 -0
  56. package/dist/geometryAdminData.js +32 -0
  57. package/dist/geometryAdminFixtures.js +50 -0
  58. package/dist/geometryAdminPorts.js +5 -0
  59. package/dist/geometryAdminRpc.js +58 -0
  60. package/dist/geometryAdminRpcRoutes.js +49 -0
  61. package/dist/geometryAdminSchemas.js +39 -0
  62. package/dist/geometryAdministration.js +190 -0
  63. package/dist/geometryAdministrationPorts.js +5 -0
  64. package/dist/geometryApiBinding.js +165 -0
  65. package/dist/geometryAppStorage.js +58 -0
  66. package/dist/geometryArtifacts.js +198 -0
  67. package/dist/geometryAssetBundle.js +117 -0
  68. package/dist/geometryAssetClient.js +25 -0
  69. package/dist/geometryAssetData.js +106 -0
  70. package/dist/geometryAssetHttp.js +123 -0
  71. package/dist/geometryAssetPorts.js +5 -0
  72. package/dist/geometryAssetRpc.js +30 -0
  73. package/dist/geometryAssetRpcRoutes.js +40 -0
  74. package/dist/geometryAssetStorageGrant.js +103 -0
  75. package/dist/geometryBoxOverlap.js +110 -0
  76. package/dist/geometryCatalogueDigest.js +111 -0
  77. package/dist/geometryCellCoverage.js +85 -0
  78. package/dist/geometryCellLoader.js +28 -0
  79. package/dist/geometryChannel.js +134 -0
  80. package/dist/geometryChunkHttp.js +54 -0
  81. package/dist/geometryChunkLeases.js +22 -0
  82. package/dist/geometryClient.d.ts +1429 -0
  83. package/dist/geometryClient.js +149 -0
  84. package/dist/geometryClientChunks.js +330 -0
  85. package/dist/geometryClientDelta.js +25 -0
  86. package/dist/geometryClientHttp.js +37 -0
  87. package/dist/geometryClientInterest.js +109 -0
  88. package/dist/geometryClientStatic.js +34 -0
  89. package/dist/geometryCms.d.ts +763 -0
  90. package/dist/geometryCms.js +217 -0
  91. package/dist/geometryCommitCoordinator.js +241 -0
  92. package/dist/geometryCompactionFixture.js +84 -0
  93. package/dist/geometryCompactionStrategies.js +38 -0
  94. package/dist/geometryConnectionClient.js +23 -0
  95. package/dist/geometryDerivationFixtures.js +141 -0
  96. package/dist/geometryDerivationStrategies.js +27 -0
  97. package/dist/geometryDigest.js +13 -0
  98. package/dist/geometryEditChannel.js +70 -0
  99. package/dist/geometryEditIngress.js +263 -0
  100. package/dist/geometryEdits.js +366 -0
  101. package/dist/geometryEnvelope.js +41 -0
  102. package/dist/geometryGridRaycast.js +92 -0
  103. package/dist/geometryGridSweep.js +92 -0
  104. package/dist/geometryHeightfield.js +166 -0
  105. package/dist/geometryHeightfieldRaycast.js +74 -0
  106. package/dist/geometryHeightfieldSweep.js +85 -0
  107. package/dist/geometryHeightfieldVolume.js +45 -0
  108. package/dist/geometryHost.js +322 -0
  109. package/dist/geometryHostDirectory.js +207 -0
  110. package/dist/geometryHostMutations.js +137 -0
  111. package/dist/geometryHostStreams.js +124 -0
  112. package/dist/geometryHttpBody.js +76 -0
  113. package/dist/geometryHttpRoutes.js +112 -0
  114. package/dist/geometryImportGltf.js +300 -0
  115. package/dist/geometryImportLdtk.js +54 -0
  116. package/dist/geometryImportPng.js +144 -0
  117. package/dist/geometryImportPublication.js +67 -0
  118. package/dist/geometryImportTiled.js +39 -0
  119. package/dist/geometryImportTiles.js +136 -0
  120. package/dist/geometryImportVox.js +130 -0
  121. package/dist/geometryImportedSource.js +101 -0
  122. package/dist/geometryInspectEndpoint.js +248 -0
  123. package/dist/geometryInspection.js +92 -0
  124. package/dist/geometryInstall.js +121 -0
  125. package/dist/geometryJournalArchiveData.js +21 -0
  126. package/dist/geometryJournalArchiveIndex.js +330 -0
  127. package/dist/geometryJournalArchiveTable.js +21 -0
  128. package/dist/geometryJournalCompaction.js +100 -0
  129. package/dist/geometryJournalPatch.js +47 -0
  130. package/dist/geometryJournalRetention.js +112 -0
  131. package/dist/geometryJournalRetentionSchemas.js +36 -0
  132. package/dist/geometryJournalRetentionSweep.js +112 -0
  133. package/dist/geometryJournalRetentionWorkflow.js +28 -0
  134. package/dist/geometryJournalRetentionWorkflowData.js +31 -0
  135. package/dist/geometryJournalStorage.js +148 -0
  136. package/dist/geometryLoader.js +118 -0
  137. package/dist/geometryManifest.js +113 -0
  138. package/dist/geometryManifestChannel.js +93 -0
  139. package/dist/geometryManifestClient.js +122 -0
  140. package/dist/geometryManifestData.js +49 -0
  141. package/dist/geometryManifestPorts.js +5 -0
  142. package/dist/geometryManifestPublication.js +109 -0
  143. package/dist/geometryManifestSource.js +68 -0
  144. package/dist/geometryMigrationJournal.js +14 -0
  145. package/dist/geometryMigrationStrategies.js +7 -0
  146. package/dist/geometryMigrations.js +323 -0
  147. package/dist/geometryNativeMetadata.js +52 -0
  148. package/dist/geometryPatch.js +170 -0
  149. package/dist/geometryPersistence.js +449 -0
  150. package/dist/geometryPersistenceCapture.js +69 -0
  151. package/dist/geometryPersistenceData.js +140 -0
  152. package/dist/geometryPersistencePorts.js +5 -0
  153. package/dist/geometryPlayerAdmission.js +34 -0
  154. package/dist/geometryPlayerEditOwner.js +265 -0
  155. package/dist/geometryPlayerEdits.js +49 -0
  156. package/dist/geometryPrepared.js +188 -0
  157. package/dist/geometryPrivacyFence.js +24 -0
  158. package/dist/geometryProceduralPublication.js +91 -0
  159. package/dist/geometryProceduralWorker.js +164 -0
  160. package/dist/geometryPublication.js +110 -0
  161. package/dist/geometryRayAlgebra.js +116 -0
  162. package/dist/geometryReadClient.js +157 -0
  163. package/dist/geometryReadPorts.js +5 -0
  164. package/dist/geometryReadRpc.js +27 -0
  165. package/dist/geometryReadRpcRoutes.js +47 -0
  166. package/dist/geometryReliablePublication.js +82 -0
  167. package/dist/geometryReloadPorts.js +46 -0
  168. package/dist/geometryReloadSource.js +278 -0
  169. package/dist/geometryRenderCache.js +165 -0
  170. package/dist/geometryRenderLod.js +102 -0
  171. package/dist/geometryRollback.js +125 -0
  172. package/dist/geometryRollbackCoordinator.js +203 -0
  173. package/dist/geometryRollbackPorts.js +46 -0
  174. package/dist/geometryRollbackSource.js +209 -0
  175. package/dist/geometryRollbackStore.js +198 -0
  176. package/dist/geometrySchemas.js +27 -0
  177. package/dist/geometryServer.d.ts +2766 -0
  178. package/dist/geometryServer.js +62 -0
  179. package/dist/geometryShapeRaycast.js +111 -0
  180. package/dist/geometryShapeSegments.js +34 -0
  181. package/dist/geometryShapes.js +223 -0
  182. package/dist/geometrySnapshot.js +76 -0
  183. package/dist/geometrySnapshotChannel.js +160 -0
  184. package/dist/geometrySnapshotClient.js +159 -0
  185. package/dist/geometrySnapshotPreparation.js +76 -0
  186. package/dist/geometrySnapshotServer.js +191 -0
  187. package/dist/geometrySqlOwner.js +21 -0
  188. package/dist/geometryStorage.js +127 -0
  189. package/dist/geometryStorageGrant.js +69 -0
  190. package/dist/geometryStorageIdentity.js +9 -0
  191. package/dist/geometryTileArtifact.js +10 -0
  192. package/dist/geometryTileCodec.js +194 -0
  193. package/dist/geometryTileCollision.js +96 -0
  194. package/dist/geometryTileNavigation.js +128 -0
  195. package/dist/geometryTileView.js +35 -0
  196. package/dist/geometryVersionActivation.js +114 -0
  197. package/dist/geometryVersionClient.js +238 -0
  198. package/dist/geometryVersionCompare.js +40 -0
  199. package/dist/geometryVersionMigration.js +106 -0
  200. package/dist/geometryVoxel.js +253 -0
  201. package/dist/geometryWorldEntitySubject.js +32 -0
  202. package/dist/geometryWorldExtent.js +12 -0
  203. package/dist/geometryWorldMetadata.js +38 -0
  204. package/dist/geometryWorldStrategyFixtures.js +127 -0
  205. package/dist/geometryWorldView.js +307 -0
  206. package/dist/host.js +128 -0
  207. package/dist/hostBinding.js +277 -0
  208. package/dist/hostCellObservation.js +114 -0
  209. package/dist/hostClientCapacity.js +90 -0
  210. package/dist/hostCommandScope.js +64 -0
  211. package/dist/hostController.js +3094 -0
  212. package/dist/hostDeployment.js +65 -0
  213. package/dist/hostDrain.js +152 -0
  214. package/dist/hostDrainPorts.js +5 -0
  215. package/dist/hostDriver.js +179 -0
  216. package/dist/hostLane.js +288 -0
  217. package/dist/hostListener.js +79 -0
  218. package/dist/hostListenerBinding.js +19 -0
  219. package/dist/hostLoopObservation.js +90 -0
  220. package/dist/hostMetrics.js +56 -0
  221. package/dist/hostRegistryBinding.js +418 -0
  222. package/dist/hostSelection.js +16 -0
  223. package/dist/hostShutdown.js +47 -0
  224. package/dist/hostTurnObservation.js +53 -0
  225. package/dist/identities.js +4 -0
  226. package/dist/index.d.ts +8632 -0
  227. package/dist/index.js +232 -0
  228. package/dist/inputReceipts.js +63 -0
  229. package/dist/inputRedundancy.js +55 -0
  230. package/dist/inspect.js +238 -0
  231. package/dist/lockstep.d.ts +436 -0
  232. package/dist/lockstep.js +382 -0
  233. package/dist/lockstepAdmission.js +262 -0
  234. package/dist/lockstepAdmissionCodec.js +94 -0
  235. package/dist/lockstepAdmissionPorts.js +5 -0
  236. package/dist/lockstepClientSession.js +578 -0
  237. package/dist/lockstepDefinition.js +148 -0
  238. package/dist/lockstepHostLoop.js +243 -0
  239. package/dist/lockstepInitialAdmission.js +67 -0
  240. package/dist/lockstepInitialStrategyFixtures.js +45 -0
  241. package/dist/lockstepJournal.js +395 -0
  242. package/dist/lockstepJournalCodec.js +254 -0
  243. package/dist/lockstepJournalPorts.js +5 -0
  244. package/dist/lockstepJournalRebuild.js +208 -0
  245. package/dist/lockstepJournalRows.js +57 -0
  246. package/dist/lockstepMembers.js +131 -0
  247. package/dist/lockstepMessages.js +47 -0
  248. package/dist/lockstepOwnedRoom.js +764 -0
  249. package/dist/lockstepPolicies.js +84 -0
  250. package/dist/lockstepReact.js +47 -0
  251. package/dist/lockstepRecoveryTruth.js +121 -0
  252. package/dist/lockstepRosterConfig.js +32 -0
  253. package/dist/lockstepSeed.js +12 -0
  254. package/dist/lockstepSeedFixture.js +20 -0
  255. package/dist/lockstepServer.d.ts +3897 -0
  256. package/dist/lockstepServer.js +325 -0
  257. package/dist/lockstepServerConfig.js +101 -0
  258. package/dist/lockstepServerRoles.js +403 -0
  259. package/dist/lockstepServerStrategyFixtures.js +33 -0
  260. package/dist/lockstepStrategies.js +6 -0
  261. package/dist/lockstepStrategyFixtures.js +137 -0
  262. package/dist/lockstepTerminal.js +90 -0
  263. package/dist/lockstepTerminalPorts.js +5 -0
  264. package/dist/lockstepTransport.js +773 -0
  265. package/dist/lockstepTransportConfig.js +32 -0
  266. package/dist/lockstepWireRoster.js +34 -0
  267. package/dist/matchRoomProvider.js +32 -0
  268. package/dist/matchRooms.js +19 -0
  269. package/dist/membershipObserver.js +47 -0
  270. package/dist/moderation.js +98 -0
  271. package/dist/movementSpecials.js +104 -0
  272. package/dist/ownership.js +17 -0
  273. package/dist/ownershipWithdrawal.js +18 -0
  274. package/dist/pcg32.js +96 -0
  275. package/dist/ports.d.ts +1241 -0
  276. package/dist/ports.js +11 -0
  277. package/dist/quaternion.js +70 -0
  278. package/dist/react.d.ts +406 -0
  279. package/dist/react.js +109 -0
  280. package/dist/reaper-app/rooms.reaper.workflow.server.tsx +5 -0
  281. package/dist/reaper-app/rooms.reaper.workflow.tsx +13 -0
  282. package/dist/reaper.js +243 -0
  283. package/dist/reaperSchemas.js +42 -0
  284. package/dist/reaperWorkflow.js +70 -0
  285. package/dist/recovery.js +189 -0
  286. package/dist/recoverySeats.js +26 -0
  287. package/dist/replay.d.ts +273 -0
  288. package/dist/replay.js +485 -0
  289. package/dist/replayPorts.js +5 -0
  290. package/dist/replayRecording.js +67 -0
  291. package/dist/replaySchema.js +157 -0
  292. package/dist/replayStorage.d.ts +149 -0
  293. package/dist/replayStorage.js +485 -0
  294. package/dist/reservationBatch.js +422 -0
  295. package/dist/reservationSchemas.js +17 -0
  296. package/dist/reservations.js +259 -0
  297. package/dist/reservePort.js +69 -0
  298. package/dist/resolvedOptions.js +4 -0
  299. package/dist/room.d.ts +1006 -0
  300. package/dist/room.js +284 -0
  301. package/dist/roomAccessSweep.js +95 -0
  302. package/dist/roomAppCommandControl.js +59 -0
  303. package/dist/roomAuthoringStrategy.js +17 -0
  304. package/dist/roomErasure.js +198 -0
  305. package/dist/roomPoolRuntimeDefaults.js +24 -0
  306. package/dist/roomPoolSelection.js +19 -0
  307. package/dist/roomPoolTopology.js +212 -0
  308. package/dist/rpc.d.ts +551 -0
  309. package/dist/rpc.js +112 -0
  310. package/dist/rpcClient.js +152 -0
  311. package/dist/rpcRoutes.js +28 -0
  312. package/dist/runtime.js +1123 -0
  313. package/dist/schemaHistory.js +98 -0
  314. package/dist/seatStore.js +151 -0
  315. package/dist/seatStrategyFixtures.js +52 -0
  316. package/dist/seatSubject.js +32 -0
  317. package/dist/seats.js +130 -0
  318. package/dist/serverSession.js +811 -0
  319. package/dist/serverSessionConfig.js +43 -0
  320. package/dist/sessionAdmission.js +53 -0
  321. package/dist/sidecarAdmission.js +103 -0
  322. package/dist/sidecarConfig.js +116 -0
  323. package/dist/sidecarConfigPublication.js +64 -0
  324. package/dist/sidecarHostListener.js +208 -0
  325. package/dist/sidecarIpc.js +205 -0
  326. package/dist/sidecarPeer.js +310 -0
  327. package/dist/sidecarProcessPort.js +28 -0
  328. package/dist/sidecarRuntime.js +168 -0
  329. package/dist/sidecarSelection.js +142 -0
  330. package/dist/sidecarWire.js +178 -0
  331. package/dist/sidecarWrites.js +163 -0
  332. package/dist/simulation.d.ts +391 -0
  333. package/dist/simulation.js +282 -0
  334. package/dist/simulationAuthoring.js +29 -0
  335. package/dist/simulationBytes.js +27 -0
  336. package/dist/simulationConformance.js +305 -0
  337. package/dist/simulationInputHistoryCapture.js +35 -0
  338. package/dist/simulationInputHistoryWire.js +193 -0
  339. package/dist/simulationOptionsWire.js +78 -0
  340. package/dist/simulationRecoveryWire.js +134 -0
  341. package/dist/simulationReplay.js +127 -0
  342. package/dist/simulationSnapshotWire.js +112 -0
  343. package/dist/simulationState.js +178 -0
  344. package/dist/snapshotBlob.js +126 -0
  345. package/dist/snapshotBlobCleanup.js +93 -0
  346. package/dist/snapshotBlobIndex.js +38 -0
  347. package/dist/snapshotBudget.js +80 -0
  348. package/dist/snapshotChain.js +185 -0
  349. package/dist/snapshotErasure.js +172 -0
  350. package/dist/snapshotInspection.js +105 -0
  351. package/dist/snapshotSegmentBlobs.js +58 -0
  352. package/dist/snapshotUploads.js +166 -0
  353. package/dist/socketTransport.js +253 -0
  354. package/dist/spatial.js +104 -0
  355. package/dist/spectatorPolicy.js +26 -0
  356. package/dist/spectatorProducer.js +89 -0
  357. package/dist/startFailureCause.js +4 -0
  358. package/dist/stateCodec.js +658 -0
  359. package/dist/strategies.d.ts +210 -0
  360. package/dist/strategies.js +8 -0
  361. package/dist/strategiesServer.d.ts +286 -0
  362. package/dist/strategiesServer.js +11 -0
  363. package/dist/strategyFixtures.js +182 -0
  364. package/dist/streamFraming.js +122 -0
  365. package/dist/streamTransport.js +266 -0
  366. package/dist/subjectAdmission.js +50 -0
  367. package/dist/subjectPrivacy.js +281 -0
  368. package/dist/subjectPrivacyBinding.js +90 -0
  369. package/dist/systemManifest.js +182 -0
  370. package/dist/tables.js +159 -0
  371. package/dist/testHarness.js +89 -0
  372. package/dist/testing.d.ts +3684 -0
  373. package/dist/testing.js +221 -0
  374. package/dist/testingPorts.js +271 -0
  375. package/dist/testingServer.d.ts +4060 -0
  376. package/dist/testingServer.js +18 -0
  377. package/dist/transform.d.ts +692 -0
  378. package/dist/transform.js +217 -0
  379. package/dist/transform3d.js +118 -0
  380. package/dist/transformCollection.js +24 -0
  381. package/dist/transformCollection3d.js +24 -0
  382. package/dist/transformCollectionCore.js +156 -0
  383. package/dist/transformFrames.js +121 -0
  384. package/dist/transformPrediction3d.js +127 -0
  385. package/dist/transformRules.js +123 -0
  386. package/dist/transformSchemas.js +20 -0
  387. package/dist/transport.js +32 -0
  388. package/dist/transportAuthoring.js +29 -0
  389. package/dist/transportCleanup.js +22 -0
  390. package/dist/transportConformance.js +124 -0
  391. package/dist/transportConnector.js +82 -0
  392. package/dist/transportEndpoints.js +38 -0
  393. package/dist/transportsServer.d.ts +5515 -0
  394. package/dist/transportsServer.js +6 -0
  395. package/dist/viewProjection.js +16 -0
  396. package/dist/web.d.ts +2286 -0
  397. package/dist/web.js +518 -0
  398. package/dist/webTransportClient.js +173 -0
  399. package/dist/wire.d.ts +992 -0
  400. package/dist/wire.js +492 -0
  401. package/dist/withdrawalPort.js +28 -0
  402. package/dist/world.d.ts +1894 -0
  403. package/dist/world.js +333 -0
  404. package/dist/worldActorReceipts.js +48 -0
  405. package/dist/worldActorTransferSnapshot.js +14 -0
  406. package/dist/worldAdmissionPending.js +8 -0
  407. package/dist/worldBoundaryCoordinator.js +148 -0
  408. package/dist/worldCatalog.js +81 -0
  409. package/dist/worldCellAllocation.js +203 -0
  410. package/dist/worldCellDestination.js +68 -0
  411. package/dist/worldCells.js +489 -0
  412. package/dist/worldChange.js +32 -0
  413. package/dist/worldClient.js +664 -0
  414. package/dist/worldClientControl.js +141 -0
  415. package/dist/worldClientPendingInput.js +16 -0
  416. package/dist/worldClientRpc.js +133 -0
  417. package/dist/worldClientRpcRoutes.js +43 -0
  418. package/dist/worldClientSchemas.js +28 -0
  419. package/dist/worldCommands.js +140 -0
  420. package/dist/worldData.js +42 -0
  421. package/dist/worldDefaultBinding.js +377 -0
  422. package/dist/worldDefaultGroupAdmission.js +82 -0
  423. package/dist/worldDefaultGroupAppServices.js +31 -0
  424. package/dist/worldDefaultGroupCompensation.js +109 -0
  425. package/dist/worldDefaultGroupContinuation.js +96 -0
  426. package/dist/worldDefaultGroupControl.js +72 -0
  427. package/dist/worldDefaultGroupMembers.js +85 -0
  428. package/dist/worldDefaultGroups.js +21 -0
  429. package/dist/worldDefaultPending.js +79 -0
  430. package/dist/worldDefaultService.js +245 -0
  431. package/dist/worldEntities.js +2980 -0
  432. package/dist/worldEntityCodec.js +21 -0
  433. package/dist/worldEntityHandoffView.js +154 -0
  434. package/dist/worldGeometry.js +170 -0
  435. package/dist/worldGhostAdmission.js +65 -0
  436. package/dist/worldGhostDestination.js +118 -0
  437. package/dist/worldGhostGateway.js +132 -0
  438. package/dist/worldGhostHandshake.js +108 -0
  439. package/dist/worldGhostHost.js +42 -0
  440. package/dist/worldGhostIngress.js +132 -0
  441. package/dist/worldGhostNeighborhood.js +70 -0
  442. package/dist/worldGhostNeighbors.js +86 -0
  443. package/dist/worldGhostOutbound.js +110 -0
  444. package/dist/worldGhostPublisher.js +216 -0
  445. package/dist/worldGhostReceiver.js +213 -0
  446. package/dist/worldGhostSender.js +146 -0
  447. package/dist/worldGhostSocket.js +78 -0
  448. package/dist/worldGhostWire.js +172 -0
  449. package/dist/worldGroupCommand.js +49 -0
  450. package/dist/worldGroupDeadline.js +115 -0
  451. package/dist/worldGroupPreparation.js +115 -0
  452. package/dist/worldGroupReadyControl.js +128 -0
  453. package/dist/worldGroupSupervisor.js +120 -0
  454. package/dist/worldHandoffMetrics.js +59 -0
  455. package/dist/worldHandoffView.js +100 -0
  456. package/dist/worldHostSource.js +69 -0
  457. package/dist/worldInspectEndpoint.js +250 -0
  458. package/dist/worldInspection.js +109 -0
  459. package/dist/worldInstanceAdmission.js +31 -0
  460. package/dist/worldInstanceAllocation.js +116 -0
  461. package/dist/worldInstanceDestination.js +64 -0
  462. package/dist/worldInstanceExpiry.js +282 -0
  463. package/dist/worldInstanceExpirySupervisor.js +88 -0
  464. package/dist/worldInstanceLifecycle.js +103 -0
  465. package/dist/worldInstanceState.js +52 -0
  466. package/dist/worldInstances.js +478 -0
  467. package/dist/worldJoin.js +56 -0
  468. package/dist/worldLayers.js +151 -0
  469. package/dist/worldLeases.js +78 -0
  470. package/dist/worldManifest.js +25 -0
  471. package/dist/worldMovement.js +63 -0
  472. package/dist/worldPersistence.js +134 -0
  473. package/dist/worldProjection.js +221 -0
  474. package/dist/worldReact.js +110 -0
  475. package/dist/worldRecoveryActor.js +35 -0
  476. package/dist/worldReturnAnchor.js +49 -0
  477. package/dist/worldRoomHooks.js +57 -0
  478. package/dist/worldRoomPool.js +27 -0
  479. package/dist/worldRoomSteps.js +133 -0
  480. package/dist/worldSeatBinding.js +36 -0
  481. package/dist/worldServer.d.ts +6936 -0
  482. package/dist/worldServer.js +48 -0
  483. package/dist/worldSourceSeatPending.js +9 -0
  484. package/dist/worldStrategyFixtures.js +164 -0
  485. package/dist/worldTesting.js +27 -0
  486. package/dist/worldTransitionDefaults.js +198 -0
  487. package/dist/worldTransitionExecutor.js +519 -0
  488. package/dist/worldTransitionGroup.js +113 -0
  489. package/dist/worldTransitionPhysicalSteps.js +40 -0
  490. package/dist/worldTransitionResolver.js +228 -0
  491. package/dist/worldTransitionSeatGroup.js +64 -0
  492. package/dist/worldTransitionSeats.js +260 -0
  493. package/dist/worldTransitionState.js +95 -0
  494. package/dist/worldTransitions.js +101 -0
  495. package/package.json +189 -4
@@ -0,0 +1,763 @@
1
+ import { CmsApi } from '@voltro/cms';
2
+ import { CmsScope } from '@voltro/cms';
3
+ import { Context } from 'effect';
4
+ import { Duration } from 'effect';
5
+ import { Effect } from 'effect';
6
+ import { Schema } from 'effect';
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
+ declare class BudgetExceeded extends BudgetExceeded_base {
14
+ get message(): string;
15
+ }
16
+
17
+ declare const BudgetExceeded_base: Schema.Class<BudgetExceeded, Schema.TaggedStruct<"BudgetExceeded", {
18
+ readonly budget: Schema.String;
19
+ readonly limit: Schema.Number;
20
+ }>, YieldableError>;
21
+
22
+ /** Explicit optional CMS leaf. The application installs its actual per-layer
23
+ * asset content type; no default table/schema/creator mapping or published
24
+ * version is guessed. Normal geometry/server does not import this leaf. */
25
+ export declare const cmsGeometryAssetManifestSource: (offeredCms: Pick<CmsApi, "contentType">, offered: GeometryCmsAssetSourceOptions) => Context.Service.Shape<typeof GeometryAssetManifestPort>;
26
+
27
+ declare interface GeometryArtifact<C extends GeometryChunk = GeometryChunk> {
28
+ readonly chunk: C;
29
+ readonly blobSha256: string;
30
+ /** Canonical declared content/layout, excluding actual address/version only. */
31
+ readonly contentSha256: string;
32
+ bytes(): Uint8Array;
33
+ }
34
+
35
+ 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>;
36
+
37
+ declare interface GeometryAssetManifest extends GeometryAssetRoot {
38
+ readonly assets: ReadonlyArray<GeometryAssetReference>;
39
+ readonly manifestSha256: string;
40
+ }
41
+
42
+ /** Actual published SQL/CMS catalogue; replacing it never replaces current
43
+ * Storage authorization or attests publication from a caller's digest. */
44
+ declare class GeometryAssetManifestPort extends GeometryAssetManifestPort_base {
45
+ }
46
+
47
+ declare const GeometryAssetManifestPort_base: Context.ServiceClass<GeometryAssetManifestPort, "@voltro/GeometryAssetManifestPort", {
48
+ observe(root: GeometryAssetRoot): Effect.Effect<GeometryAssetManifest, GeometryPersistenceError>;
49
+ }>;
50
+
51
+ declare interface GeometryAssetReference {
52
+ readonly key: string;
53
+ readonly fileId: string;
54
+ readonly bucket: string;
55
+ readonly checksum: string;
56
+ readonly size: number;
57
+ readonly contentType: string;
58
+ }
59
+
60
+ declare interface GeometryAssetRoot {
61
+ readonly tenantId: string;
62
+ readonly worldId: string;
63
+ readonly layerSetId: string;
64
+ readonly version: string;
65
+ }
66
+
67
+ declare type GeometryChunk = GeometryTileChunk | GeometryHeightfieldChunk | GeometryShapesChunk | GeometryVoxelChunk;
68
+
69
+ export declare interface GeometryCmsAssetPolicy extends GeometryAssetRoot {
70
+ readonly contentType: string;
71
+ readonly scope: CmsScope;
72
+ readonly geometryKey: string;
73
+ readonly channel: string;
74
+ readonly geometryKind: string;
75
+ }
76
+
77
+ export declare interface GeometryCmsAssetSourceOptions {
78
+ readonly worlds: ReadonlyArray<AnyWorldDescriptor>;
79
+ readonly contentType: string;
80
+ readonly scope: CmsScope;
81
+ readonly authorize: (policy: GeometryCmsAssetPolicy) => Effect.Effect<void, GeometryPersistenceError>;
82
+ readonly maxAssets?: number;
83
+ readonly maxManifestBytes?: number;
84
+ }
85
+
86
+ export declare interface GeometryCmsSourceOptions extends GeometryImportPublicationOptions {
87
+ readonly authorize: (request: GeometryCmsSourcePolicy) => Effect.Effect<void, GeometryPersistenceError>;
88
+ }
89
+
90
+ export declare interface GeometryCmsSourcePolicy extends GeometryCmsSourceRequest {
91
+ readonly worldId: string;
92
+ readonly kind: string;
93
+ readonly geometryKey: string;
94
+ readonly channel: string;
95
+ }
96
+
97
+ export declare interface GeometryCmsSourceRequest {
98
+ readonly tenantId: string;
99
+ readonly version: string;
100
+ /** Actual installed content type; its standard draft/published lifecycle owns delivery. */
101
+ readonly contentType: string;
102
+ readonly scope: CmsScope;
103
+ /** Read another release channel than the World's own (a GM preview of staging, for example). `authorize`
104
+ * receives it in the policy; the World's live geometry never switches. Default: the World's channel. */
105
+ readonly channel?: string;
106
+ }
107
+
108
+ declare type GeometryCollisionDerive = (context: GeometryDerivationContext) => GeometryChunk;
109
+
110
+ declare type GeometryCompaction = (context: GeometryCompactionContext) => GeometryPatch;
111
+
112
+ /** Genuine immutable native artifacts only. Compaction preserves the current
113
+ * truth; it cannot authorize a different edit, owner, revision or SQL write. */
114
+ declare interface GeometryCompactionContext {
115
+ readonly static: GeometryArtifact;
116
+ readonly current: GeometryArtifact;
117
+ readonly limits: GeometryPatchLimits;
118
+ readonly codecLimits: GeometryArtifactLimits<GeometryKind>;
119
+ }
120
+
121
+ declare interface GeometryCompactionStrategies {
122
+ readonly compaction: GeometryCompaction;
123
+ }
124
+
125
+ declare interface GeometryDeltaMigrationFrom {
126
+ readonly static: GeometryArtifact;
127
+ readonly current: GeometryArtifact;
128
+ readonly revision: number;
129
+ }
130
+
131
+ declare interface GeometryDeltaMigrationTo {
132
+ readonly static: GeometryArtifact;
133
+ }
134
+
135
+ /** Outside-Tick native data only. No query callback, provider, actor, Store or
136
+ * authority capability is accepted as a derivation result. */
137
+ declare interface GeometryDerivationContext {
138
+ readonly chunk: GeometryChunk;
139
+ readonly codecLimits: GeometryArtifactLimits<GeometryKind>;
140
+ }
141
+
142
+ declare interface GeometryDerivationStrategies {
143
+ readonly collisionDerive: GeometryCollisionDerive;
144
+ readonly navDerive: GeometryNavDerive;
145
+ }
146
+
147
+ /** Trusted server snapshot. Never derive these rights, positions, budgets or
148
+ * catalogs from the intent body. App policy must recheck authority at commit. */
149
+ declare interface GeometryEditAuthority {
150
+ readonly dynamicEnabled: boolean;
151
+ readonly ownsChunk: boolean;
152
+ readonly canBuild: boolean;
153
+ readonly cooldownReady: boolean;
154
+ readonly remainingOps: number;
155
+ readonly maxReachRaw: number;
156
+ readonly maxHeightUnits: number;
157
+ readonly position: {
158
+ readonly xRaw: number;
159
+ readonly yRaw: number;
160
+ readonly zRaw: number;
161
+ };
162
+ readonly materials: ReadonlyArray<GeometryTileMaterial>;
163
+ readonly shapes: ReadonlyArray<GeometryShapeTemplate>;
164
+ }
165
+
166
+ declare interface GeometryEditContext {
167
+ readonly chunk: GeometryChunk;
168
+ readonly intent: GeometryEditIntent;
169
+ readonly authority: GeometryEditAuthority;
170
+ readonly placementId: string;
171
+ readonly codecLimits?: GeometryArtifactLimits<GeometryKind> | undefined;
172
+ }
173
+
174
+ /** Player requests an action and its target, never solidity, shape dimensions,
175
+ * an authoritative player position, revision, owner, full chunk or Delta bytes. */
176
+ declare type GeometryEditIntent = {
177
+ readonly op: 'setTile';
178
+ readonly x: number;
179
+ readonly y: number;
180
+ readonly material: string;
181
+ } | {
182
+ readonly op: 'raiseHeight';
183
+ readonly x: number;
184
+ readonly y: number;
185
+ readonly units: number;
186
+ } | {
187
+ readonly op: 'setVoxel';
188
+ readonly x: number;
189
+ readonly y: number;
190
+ readonly z: number;
191
+ readonly material: string;
192
+ } | {
193
+ readonly op: 'placeShape';
194
+ readonly template: string;
195
+ readonly xRaw: number;
196
+ readonly yRaw: number;
197
+ readonly zRaw: number;
198
+ } | {
199
+ readonly op: 'removeShape';
200
+ readonly id: string;
201
+ };
202
+
203
+ declare interface GeometryEditStrategies {
204
+ /** Pure policy slot. Current native Session/SQL ownership and codec integrity cannot be overridden by this slot. */
205
+ readonly opValidator: (context: GeometryEditContext) => void;
206
+ /** Pure rule slot; returned chunk is admitted under the original identity/layout/profile. */
207
+ readonly applyOp: (context: GeometryEditContext) => GeometryChunk;
208
+ }
209
+
210
+ declare type GeometryGenerator = (context: GeometryProceduralContext) => GeometryChunk;
211
+
212
+ declare type GeometryHeightfieldChunk = (typeof GeometryHeightfieldChunkSchema)["Type"];
213
+
214
+ declare const GeometryHeightfieldChunkSchema: Schema.Struct<{
215
+ readonly kind: Schema.Literal<"2d-heightfield">;
216
+ readonly formatVersion: Schema.Literal<1>;
217
+ readonly address: Schema.Struct<{
218
+ readonly worldId: Schema.String;
219
+ readonly layerSetId: Schema.String;
220
+ readonly cx: Schema.Int;
221
+ readonly cy: Schema.Int;
222
+ }>;
223
+ readonly version: Schema.String;
224
+ readonly width: Schema.Int;
225
+ readonly height: Schema.Int;
226
+ readonly sampleSpacingRaw: Schema.Int;
227
+ readonly baseHeightRaw: Schema.Int;
228
+ readonly heightQuantumRaw: Schema.Int;
229
+ readonly heights: Schema.$Array<Schema.Int>;
230
+ }>;
231
+
232
+ declare interface GeometryHeightfieldLimits {
233
+ readonly maxSide: number;
234
+ readonly maxSamples: number;
235
+ readonly maxBytes: number;
236
+ }
237
+
238
+ declare interface GeometryImportPublication {
239
+ /** Offline proposal only: a digest confirms no Storage claim or SQL publication. */
240
+ readonly manifest: GeometryVersionReceipt;
241
+ readonly artifacts: ReadonlyArray<GeometryArtifact>;
242
+ }
243
+
244
+ declare interface GeometryImportPublicationOptions {
245
+ readonly maxChunks?: number | undefined;
246
+ readonly maxArtifactBytes?: number;
247
+ readonly maxManifestBytes?: number;
248
+ readonly codecLimits?: {
249
+ readonly [K in GeometryKind]?: GeometryArtifactLimits<K>;
250
+ } | undefined;
251
+ }
252
+
253
+ declare type GeometryKind = GeometryChunk['kind'];
254
+
255
+ /** Pure native data rule only; no SQL, actor, journal, permission or Subject. */
256
+ declare type GeometryMigrateDelta = (from: GeometryDeltaMigrationFrom, to: GeometryDeltaMigrationTo) => GeometryChunk | null;
257
+
258
+ declare type GeometryNavDerive = (context: GeometryDerivationContext) => GeometryTileChunk | null;
259
+
260
+ declare interface GeometryPatch {
261
+ readonly metadata: GeometryPatchMetadata;
262
+ bytes(): Uint8Array;
263
+ }
264
+
265
+ declare interface GeometryPatchLimits {
266
+ readonly maxBytes: number;
267
+ readonly maxMetadataBytes: number;
268
+ }
269
+
270
+ declare type GeometryPatchMetadata = (typeof GeometryPatchMetadataSchema)["Type"];
271
+
272
+ declare const GeometryPatchMetadataSchema: Schema.Struct<{
273
+ readonly kind: Schema.Literals<readonly ["2d-tiles", "2d-heightfield", "3d-shapes", "3d-voxel"]>;
274
+ readonly formatVersion: Schema.Literal<1>;
275
+ readonly worldId: Schema.String;
276
+ readonly layerSetId: Schema.String;
277
+ readonly cx: Schema.Int;
278
+ readonly cy: Schema.Int;
279
+ readonly cz: Schema.optional<Schema.Int>;
280
+ readonly version: Schema.String;
281
+ readonly baseRevision: Schema.Int;
282
+ readonly revision: Schema.Int;
283
+ readonly baseBlobSha256: Schema.String;
284
+ readonly blobSha256: Schema.String;
285
+ readonly baseContentSha256: Schema.String;
286
+ readonly contentSha256: Schema.String;
287
+ readonly changed: Schema.Boolean;
288
+ readonly stateSchemaHash: Schema.Int;
289
+ }>;
290
+
291
+ declare type GeometryPersistenceError = ProtocolError | BudgetExceeded;
292
+
293
+ declare interface GeometryPersistenceScope {
294
+ readonly tenantId: string;
295
+ readonly kind: GeometryKind;
296
+ readonly worldId: string;
297
+ readonly version: string;
298
+ readonly layerSetId: string;
299
+ readonly cx: number;
300
+ readonly cy: number;
301
+ readonly cz?: number | undefined;
302
+ }
303
+
304
+ declare interface GeometryProceduralContext {
305
+ readonly seed: number;
306
+ readonly kind: GeometryKind;
307
+ readonly address: GeometryChunk['address'];
308
+ readonly version: string;
309
+ }
310
+
311
+ declare type GeometryShapesChunk = (typeof GeometryShapesChunkSchema)["Type"];
312
+
313
+ declare const GeometryShapesChunkSchema: Schema.Struct<{
314
+ readonly kind: Schema.Literal<"3d-shapes">;
315
+ readonly formatVersion: Schema.Literal<1>;
316
+ readonly address: Schema.Struct<{
317
+ readonly worldId: Schema.String;
318
+ readonly layerSetId: Schema.String;
319
+ readonly cx: Schema.Int;
320
+ readonly cy: Schema.Int;
321
+ readonly cz: Schema.Int;
322
+ }>;
323
+ readonly version: Schema.String;
324
+ readonly extentXRaw: Schema.Int;
325
+ readonly extentYRaw: Schema.Int;
326
+ readonly extentZRaw: Schema.Int;
327
+ readonly shapes: Schema.$Array<Schema.Union<readonly [Schema.Struct<{
328
+ readonly halfXRaw: Schema.Int;
329
+ readonly halfYRaw: Schema.Int;
330
+ readonly halfZRaw: Schema.Int;
331
+ readonly id: Schema.String;
332
+ readonly xRaw: Schema.Int;
333
+ readonly yRaw: Schema.Int;
334
+ readonly zRaw: Schema.Int;
335
+ readonly kind: Schema.Literal<"aabb">;
336
+ }>, Schema.Struct<{
337
+ readonly radiusRaw: Schema.Int;
338
+ readonly id: Schema.String;
339
+ readonly xRaw: Schema.Int;
340
+ readonly yRaw: Schema.Int;
341
+ readonly zRaw: Schema.Int;
342
+ readonly kind: Schema.Literal<"sphere">;
343
+ }>]>>;
344
+ }>;
345
+
346
+ declare interface GeometryShapesLimits {
347
+ readonly maxShapes: number;
348
+ readonly maxBytes: number;
349
+ }
350
+
351
+ declare type GeometryShapeTemplate = {
352
+ readonly key: string;
353
+ readonly kind: 'aabb';
354
+ readonly halfXRaw: number;
355
+ readonly halfYRaw: number;
356
+ readonly halfZRaw: number;
357
+ } | {
358
+ readonly key: string;
359
+ readonly kind: 'sphere';
360
+ readonly radiusRaw: number;
361
+ };
362
+
363
+ declare type GeometrySource = {
364
+ readonly _tag: 'GeometrySource';
365
+ readonly kind: 'cms';
366
+ readonly key: string;
367
+ readonly channel: string;
368
+ } | {
369
+ readonly _tag: 'GeometrySource';
370
+ readonly kind: 'imported';
371
+ readonly directory: string;
372
+ } | {
373
+ readonly _tag: 'GeometrySource';
374
+ readonly kind: 'procedural';
375
+ readonly seed: number;
376
+ readonly generator: GeometryGenerator;
377
+ };
378
+
379
+ declare interface GeometryStaticReference extends GeometryPersistenceScope {
380
+ readonly blobSha256: string;
381
+ readonly contentSha256: string;
382
+ }
383
+
384
+ /** Trusted immutable blob source. Neither this Tag nor a digest authorizes publishing a manifest. */
385
+ declare class GeometryStaticSourcePort extends GeometryStaticSourcePort_base {
386
+ }
387
+
388
+ declare const GeometryStaticSourcePort_base: Context.ServiceClass<GeometryStaticSourcePort, "@voltro/GeometryStaticSourcePort", {
389
+ load(reference: GeometryStaticReference): Effect.Effect<Uint8Array, GeometryPersistenceError>;
390
+ }>;
391
+
392
+ declare type GeometryTileChunk = (typeof GeometryTileChunkSchema)["Type"];
393
+
394
+ declare const GeometryTileChunkSchema: Schema.Struct<{
395
+ readonly kind: Schema.Literal<"2d-tiles">;
396
+ readonly formatVersion: Schema.Literal<1>;
397
+ readonly address: Schema.Struct<{
398
+ readonly worldId: Schema.String;
399
+ readonly layerSetId: Schema.String;
400
+ readonly cx: Schema.Int;
401
+ readonly cy: Schema.Int;
402
+ }>;
403
+ readonly version: Schema.String;
404
+ readonly width: Schema.Int;
405
+ readonly height: Schema.Int;
406
+ readonly tileSizeRaw: Schema.Int;
407
+ readonly palette: Schema.$Array<Schema.Struct<{
408
+ readonly key: Schema.String;
409
+ readonly solid: Schema.Boolean;
410
+ }>>;
411
+ readonly runs: Schema.$Array<Schema.Struct<{
412
+ readonly paletteIndex: Schema.Int;
413
+ readonly length: Schema.Int;
414
+ }>>;
415
+ }>;
416
+
417
+ declare interface GeometryTileLimits {
418
+ readonly maxSide: number;
419
+ readonly maxCells: number;
420
+ readonly maxPalette: number;
421
+ readonly maxRuns: number;
422
+ readonly maxBytes: number;
423
+ }
424
+
425
+ declare type GeometryTileMaterial = (typeof GeometryTileMaterialSchema)["Type"];
426
+
427
+ declare const GeometryTileMaterialSchema: Schema.Struct<{
428
+ readonly key: Schema.String;
429
+ readonly solid: Schema.Boolean;
430
+ }>;
431
+
432
+ declare interface GeometryVersionMigrationStrategies {
433
+ readonly migrateDelta?: GeometryMigrateDelta;
434
+ }
435
+
436
+ declare interface GeometryVersionReceipt {
437
+ readonly tenantId: string;
438
+ readonly kind: GeometryKind;
439
+ readonly worldId: string;
440
+ readonly version: string;
441
+ readonly manifestSha256: string;
442
+ readonly chunks: ReadonlyArray<GeometryStaticReference>;
443
+ }
444
+
445
+ declare type GeometryVoxelChunk = (typeof GeometryVoxelChunkSchema)["Type"];
446
+
447
+ declare const GeometryVoxelChunkSchema: Schema.Struct<{
448
+ readonly kind: Schema.Literal<"3d-voxel">;
449
+ readonly formatVersion: Schema.Literal<1>;
450
+ readonly address: Schema.Struct<{
451
+ readonly worldId: Schema.String;
452
+ readonly layerSetId: Schema.String;
453
+ readonly cx: Schema.Int;
454
+ readonly cy: Schema.Int;
455
+ readonly cz: Schema.Int;
456
+ }>;
457
+ readonly version: Schema.String;
458
+ readonly side: Schema.Int;
459
+ readonly voxelSizeRaw: Schema.Int;
460
+ readonly palette: Schema.$Array<Schema.Struct<{
461
+ readonly key: Schema.String;
462
+ readonly solid: Schema.Boolean;
463
+ }>>;
464
+ readonly sections: Schema.$Array<Schema.Struct<{
465
+ readonly sx: Schema.Int;
466
+ readonly sy: Schema.Int;
467
+ readonly sz: Schema.Int;
468
+ readonly runs: Schema.$Array<Schema.Struct<{
469
+ readonly paletteIndex: Schema.Int;
470
+ readonly length: Schema.Int;
471
+ }>>;
472
+ }>>;
473
+ }>;
474
+
475
+ declare interface GeometryVoxelLimits {
476
+ readonly maxSide: number;
477
+ readonly maxVoxels: number;
478
+ readonly maxPalette: number;
479
+ readonly maxSections: number;
480
+ readonly maxRunsPerSection: number;
481
+ readonly maxBytes: number;
482
+ }
483
+
484
+ /** Explicit CMS leaf, borrowing the ordinary published read API and real static
485
+ * source. It declares no new table or plugin and never imports CMS on the normal
486
+ * geometry/server path. Native artifacts still require actual SQL publication. */
487
+ export declare const loadCmsGeometryPublication: (offeredWorld: AnyWorldDescriptor, offeredCms: Pick<CmsApi, "contentType">, offeredStatic: Context.Service.Shape<typeof GeometryStaticSourcePort>, offeredRequest: GeometryCmsSourceRequest, offeredOptions: GeometryCmsSourceOptions) => Effect.Effect<GeometryImportPublication, GeometryPersistenceError>;
488
+
489
+ declare class ProtocolError extends ProtocolError_base {
490
+ get message(): string;
491
+ }
492
+
493
+ declare const ProtocolError_base: Schema.Class<ProtocolError, Schema.TaggedStruct<"ProtocolError", {
494
+ readonly detail: Schema.String;
495
+ }>, YieldableError>;
496
+
497
+ declare type WorldBounds = readonly [minimum: WorldPoint, maximum: WorldPoint];
498
+
499
+ declare interface WorldDefinition<Player> {
500
+ readonly name: string;
501
+ readonly map: {
502
+ readonly bounds: WorldBounds;
503
+ };
504
+ readonly zones: ReadonlyArray<WorldZone>;
505
+ readonly instances?: ReadonlyArray<WorldInstance>;
506
+ readonly persistence: {
507
+ readonly entities: 'world';
508
+ readonly snapshotEveryMs: number;
509
+ readonly journal: boolean;
510
+ };
511
+ readonly handoff: {
512
+ readonly marginUnits: number;
513
+ readonly ghostUnits: number;
514
+ };
515
+ readonly spawn: (context: {
516
+ readonly player: Player;
517
+ }) => WorldPosition;
518
+ readonly geometry?: WorldGeometryDefinition | undefined;
519
+ readonly hosts?: {
520
+ readonly pool: string;
521
+ };
522
+ readonly characters?: 'shared' | 'per-world';
523
+ readonly transitionCooldownMs?: number;
524
+ /** Authoring inventory bounds, not measured runtime capacity. */
525
+ readonly budgets?: {
526
+ readonly maxZones?: number;
527
+ readonly maxCells?: number | undefined;
528
+ readonly maxInstances?: number;
529
+ };
530
+ readonly strategies?: {
531
+ readonly layerPolicy?: WorldLayerPolicy | undefined;
532
+ readonly transitionPolicy?: WorldTransitionPolicy;
533
+ readonly onWorldChange?: WorldOnWorldChange;
534
+ };
535
+ }
536
+
537
+ declare interface WorldDescriptor<Player> extends Omit<WorldDefinition<Player>, 'instances' | 'budgets' | 'characters' | 'transitionCooldownMs' | 'strategies' | 'geometry'> {
538
+ readonly geometry?: WorldGeometryDescriptor | undefined;
539
+ readonly _tag: 'WorldDescriptor';
540
+ readonly instances: ReadonlyArray<Omit<WorldInstance, 'ttl'> & {
541
+ readonly ttlMs: number;
542
+ }>;
543
+ readonly budgets: {
544
+ readonly maxZones: number;
545
+ readonly maxCells: number;
546
+ readonly maxInstances: number;
547
+ };
548
+ readonly characters: 'shared' | 'per-world';
549
+ readonly transitionCooldownMs: number;
550
+ readonly cellCount: number;
551
+ readonly strategies: {
552
+ readonly layerPolicy: WorldLayerPolicy;
553
+ readonly transitionPolicy: WorldTransitionPolicy;
554
+ readonly onWorldChange: WorldOnWorldChange;
555
+ };
556
+ }
557
+
558
+ declare interface WorldGeometryDefinition {
559
+ readonly strategies?: WorldGeometryStrategies | undefined;
560
+ readonly kind: GeometryKind;
561
+ readonly static: GeometrySource;
562
+ readonly chunkSize?: number;
563
+ readonly dynamic?: {
564
+ readonly enabled?: boolean | undefined;
565
+ readonly maxDeltaBytesPerChunk?: number;
566
+ readonly persist?: {
567
+ readonly everyMs?: number;
568
+ readonly onUnload?: boolean;
569
+ };
570
+ };
571
+ readonly collision?: {
572
+ readonly derive?: 'bitgrid' | 'heightfield' | 'shapes';
573
+ readonly resolution?: number;
574
+ };
575
+ readonly nav?: {
576
+ readonly derive?: 'grid' | 'none';
577
+ readonly navBudgetMs?: number;
578
+ readonly maxAdvanceSteps?: number;
579
+ };
580
+ readonly streaming?: {
581
+ readonly client?: {
582
+ readonly radiusChunks?: number;
583
+ readonly prefetchChunks?: number;
584
+ readonly maxConcurrent?: number | undefined;
585
+ readonly maxCachedChunks?: number;
586
+ };
587
+ readonly cell?: {
588
+ readonly marginChunks?: number;
589
+ };
590
+ };
591
+ readonly lod?: ReadonlyArray<{
592
+ readonly beyondChunks: number;
593
+ readonly fields: ReadonlyArray<string>;
594
+ }>;
595
+ readonly budgets?: {
596
+ readonly maxPreparedChunks?: number;
597
+ readonly maxPreparedBytes?: number;
598
+ readonly maxLodLevels?: number;
599
+ readonly maxRayCells?: number | undefined;
600
+ readonly maxOverlapTests?: number | undefined;
601
+ };
602
+ }
603
+
604
+ declare interface WorldGeometryDescriptor {
605
+ readonly strategies: GeometryEditStrategies & GeometryDerivationStrategies & GeometryCompactionStrategies & {
606
+ readonly migrateDelta: GeometryMigrateDelta;
607
+ };
608
+ readonly _tag: 'WorldGeometry';
609
+ readonly kind: GeometryKind;
610
+ readonly static: GeometrySource;
611
+ readonly chunkSize: number;
612
+ readonly chunkSizeRaw: number;
613
+ readonly dynamic: {
614
+ readonly enabled: boolean;
615
+ readonly maxDeltaBytesPerChunk: number;
616
+ readonly persist: {
617
+ readonly everyMs: number;
618
+ readonly onUnload: boolean;
619
+ };
620
+ };
621
+ readonly collision: {
622
+ readonly derive: 'bitgrid' | 'heightfield' | 'shapes';
623
+ readonly resolution: number;
624
+ readonly resolutionRaw: number;
625
+ };
626
+ readonly nav: {
627
+ readonly derive: 'grid' | 'none';
628
+ readonly navBudgetMs: number;
629
+ readonly maxAdvanceSteps: number;
630
+ };
631
+ readonly streaming: {
632
+ readonly client: {
633
+ readonly radiusChunks: number;
634
+ readonly prefetchChunks: number;
635
+ readonly maxConcurrent: number;
636
+ readonly maxCachedChunks: number;
637
+ };
638
+ readonly cell: {
639
+ readonly marginChunks: number;
640
+ };
641
+ };
642
+ readonly lod: ReadonlyArray<{
643
+ readonly beyondChunks: number;
644
+ readonly fields: ReadonlyArray<string>;
645
+ }>;
646
+ readonly budgets: {
647
+ readonly maxPreparedChunks: number;
648
+ readonly maxPreparedBytes: number;
649
+ readonly maxLodLevels: number;
650
+ readonly maxRayCells: number;
651
+ readonly maxOverlapTests: number;
652
+ };
653
+ }
654
+
655
+ declare interface WorldGeometryStrategies extends GeometryVersionMigrationStrategies, Partial<GeometryEditStrategies>, Partial<GeometryDerivationStrategies>, Partial<GeometryCompactionStrategies> {
656
+ }
657
+
658
+ declare interface WorldInstance {
659
+ readonly id: string;
660
+ readonly room: string;
661
+ readonly maxGroups: number;
662
+ readonly ttl: Duration.Input;
663
+ }
664
+
665
+ declare type WorldLayerDecision = {
666
+ readonly kind: 'use';
667
+ readonly layer: number;
668
+ readonly wake: boolean;
669
+ } | {
670
+ readonly kind: 'create';
671
+ readonly layer: number;
672
+ } | {
673
+ readonly kind: 'blocked';
674
+ readonly reason: 'affinity-unavailable' | 'capacity' | 'layer-budget';
675
+ };
676
+
677
+ declare interface WorldLayering {
678
+ readonly maxPlayers: number;
679
+ readonly splitAt: number;
680
+ readonly mergeBelow: number;
681
+ }
682
+
683
+ declare interface WorldLayerInput {
684
+ readonly policy: WorldLayering;
685
+ readonly layers: ReadonlyArray<WorldLayerObservation>;
686
+ readonly groupSize: number;
687
+ /** Actual server-owned party affinity; never silently choose a different layer. */
688
+ readonly affinity: number | null;
689
+ readonly maxLayers: number;
690
+ }
691
+
692
+ declare interface WorldLayerObservation {
693
+ readonly layer: number;
694
+ readonly players: number;
695
+ readonly state: 'live' | 'hibernated' | 'splitting' | 'merging';
696
+ }
697
+
698
+ declare type WorldLayerPolicy = (input: WorldLayerInput) => WorldLayerDecision;
699
+
700
+ declare type WorldOnWorldChange = (input: WorldOnWorldChangeInput) => unknown;
701
+
702
+ declare interface WorldOnWorldChangeInput {
703
+ readonly sourceWorldId: string;
704
+ readonly targetWorldId: string;
705
+ /** Current server-captured character data, never a player's wire state. */
706
+ readonly sourceData: unknown;
707
+ /** Actual server-selected target data before this policy. */
708
+ readonly targetData: unknown;
709
+ }
710
+
711
+ declare type WorldPoint = readonly [x: number, y: number];
712
+
713
+ declare interface WorldPosition {
714
+ readonly zone: string;
715
+ readonly at: WorldPoint;
716
+ }
717
+
718
+ declare type WorldTransitionKind = 'cell' | 'layer' | 'zone' | 'world' | 'instance' | 'return' | 'recover';
719
+
720
+ declare interface WorldTransitionLocation extends WorldPosition {
721
+ readonly world: string;
722
+ readonly pool: string;
723
+ readonly layer: number;
724
+ readonly instance: string | null;
725
+ }
726
+
727
+ declare type WorldTransitionMode = 'seamless' | 'portal' | 'recover';
728
+
729
+ declare interface WorldTransitionPlan {
730
+ readonly kind: WorldTransitionKind;
731
+ readonly mode: WorldTransitionMode;
732
+ readonly crossPool: boolean;
733
+ readonly persistBeforeRelease: boolean;
734
+ readonly sourceCell: string;
735
+ readonly targetCell: string;
736
+ }
737
+
738
+ declare type WorldTransitionPolicy = (input: WorldTransitionPolicyInput) => WorldTransitionPlan;
739
+
740
+ declare interface WorldTransitionPolicyInput {
741
+ readonly kind: WorldTransitionKind;
742
+ readonly sourceWorld: AnyWorldDescriptor;
743
+ readonly targetWorld: AnyWorldDescriptor;
744
+ readonly source: WorldTransitionLocation;
745
+ readonly target: WorldTransitionLocation;
746
+ readonly mode: WorldTransitionMode | 'auto';
747
+ readonly crossPool: boolean;
748
+ /** Trusted server recovery classification, not a player intention field. */
749
+ readonly recovery: boolean;
750
+ }
751
+
752
+ declare interface WorldZone {
753
+ readonly id: string;
754
+ readonly bounds: WorldBounds;
755
+ readonly room: string;
756
+ readonly neighbors: ReadonlyArray<string>;
757
+ readonly cells?: {
758
+ readonly size: number;
759
+ } | undefined;
760
+ readonly layering?: WorldLayering;
761
+ }
762
+
763
+ export { }