@hypersoniclabs/helix-manifest 0.3.18 → 0.3.42

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 (125) hide show
  1. package/README.md +19 -2
  2. package/dist/schema/manifest-v0.2.schema.json +1 -1
  3. package/dist/schema/manifest-v0.3.schema.json +420 -109
  4. package/dist/schema/package-envelope-v1.schema.json +2 -2
  5. package/dist/schema/scene-v2.schema.json +594 -36
  6. package/dist/src/bundle-rules.js +3 -1
  7. package/dist/src/bundle-rules.js.map +1 -1
  8. package/dist/src/continuum/build-package.d.ts +26 -0
  9. package/dist/src/continuum/build-package.js +120 -0
  10. package/dist/src/continuum/build-package.js.map +1 -0
  11. package/dist/src/continuum/canonical-json.d.ts +8 -0
  12. package/dist/src/continuum/canonical-json.js +211 -0
  13. package/dist/src/continuum/canonical-json.js.map +1 -0
  14. package/dist/src/continuum/cid.d.ts +10 -0
  15. package/dist/src/continuum/cid.js +33 -0
  16. package/dist/src/continuum/cid.js.map +1 -0
  17. package/dist/src/continuum/graph.d.ts +11 -0
  18. package/dist/src/continuum/graph.js +225 -0
  19. package/dist/src/continuum/graph.js.map +1 -0
  20. package/dist/src/continuum/index.d.ts +14 -0
  21. package/dist/src/continuum/index.js +31 -0
  22. package/dist/src/continuum/index.js.map +1 -0
  23. package/dist/src/continuum/listing.d.ts +22 -0
  24. package/dist/src/continuum/listing.js +53 -0
  25. package/dist/src/continuum/listing.js.map +1 -0
  26. package/dist/src/continuum/material.d.ts +109 -0
  27. package/dist/src/continuum/material.js +563 -0
  28. package/dist/src/continuum/material.js.map +1 -0
  29. package/dist/src/continuum/package.d.ts +161 -0
  30. package/dist/src/continuum/package.js +653 -0
  31. package/dist/src/continuum/package.js.map +1 -0
  32. package/dist/src/continuum/ready-set.d.ts +16 -0
  33. package/dist/src/continuum/ready-set.js +62 -0
  34. package/dist/src/continuum/ready-set.js.map +1 -0
  35. package/dist/src/continuum/runtime-profile.d.ts +20 -0
  36. package/dist/src/continuum/runtime-profile.js +54 -0
  37. package/dist/src/continuum/runtime-profile.js.map +1 -0
  38. package/dist/src/continuum/scene-document.d.ts +356 -0
  39. package/dist/src/continuum/scene-document.js +992 -0
  40. package/dist/src/continuum/scene-document.js.map +1 -0
  41. package/dist/src/continuum/scene-publication.d.ts +28 -0
  42. package/dist/src/continuum/scene-publication.js +250 -0
  43. package/dist/src/continuum/scene-publication.js.map +1 -0
  44. package/dist/src/continuum/unreal-world.d.ts +117 -0
  45. package/dist/src/continuum/unreal-world.js +338 -0
  46. package/dist/src/continuum/unreal-world.js.map +1 -0
  47. package/dist/src/continuum/uuid.d.ts +4 -0
  48. package/dist/src/continuum/uuid.js +18 -0
  49. package/dist/src/continuum/uuid.js.map +1 -0
  50. package/dist/src/continuum/validation.d.ts +26 -0
  51. package/dist/src/continuum/validation.js +124 -0
  52. package/dist/src/continuum/validation.js.map +1 -0
  53. package/dist/src/continuum/world-release.d.ts +30 -0
  54. package/dist/src/continuum/world-release.js +142 -0
  55. package/dist/src/continuum/world-release.js.map +1 -0
  56. package/dist/src/index.d.ts +415 -12
  57. package/dist/src/index.js +1835 -96
  58. package/dist/src/index.js.map +1 -1
  59. package/dist/src/interactable-package.d.ts +10 -2
  60. package/dist/src/interactable-package.js +36 -4
  61. package/dist/src/interactable-package.js.map +1 -1
  62. package/dist/src/interactive-item.d.ts +3 -0
  63. package/dist/src/interactive-item.js +49 -1
  64. package/dist/src/interactive-item.js.map +1 -1
  65. package/dist/src/placements/bounds.d.ts +3 -0
  66. package/dist/src/placements/bounds.js +21 -0
  67. package/dist/src/placements/bounds.js.map +1 -0
  68. package/dist/src/placements/distant.d.ts +37 -0
  69. package/dist/src/placements/distant.js +135 -0
  70. package/dist/src/placements/distant.js.map +1 -0
  71. package/dist/src/placements/generate.d.ts +11 -0
  72. package/dist/src/placements/generate.js +102 -0
  73. package/dist/src/placements/generate.js.map +1 -0
  74. package/dist/src/placements/region.d.ts +5 -0
  75. package/dist/src/placements/region.js +202 -0
  76. package/dist/src/placements/region.js.map +1 -0
  77. package/dist/src/placements/types.d.ts +108 -0
  78. package/dist/src/placements/types.js +14 -0
  79. package/dist/src/placements/types.js.map +1 -0
  80. package/dist/src/placements/validate.d.ts +8 -0
  81. package/dist/src/placements/validate.js +213 -0
  82. package/dist/src/placements/validate.js.map +1 -0
  83. package/dist/src/runtime-delivery.d.ts +30 -0
  84. package/dist/src/runtime-delivery.js +182 -0
  85. package/dist/src/runtime-delivery.js.map +1 -0
  86. package/dist/src/scene-hlod.d.ts +101 -0
  87. package/dist/src/scene-hlod.js +252 -0
  88. package/dist/src/scene-hlod.js.map +1 -0
  89. package/dist/src/scene-v2.d.ts +271 -16
  90. package/dist/src/scene-v2.js +593 -26
  91. package/dist/src/scene-v2.js.map +1 -1
  92. package/dist/src/terrain/constants.d.ts +13 -0
  93. package/dist/src/terrain/constants.js +18 -0
  94. package/dist/src/terrain/constants.js.map +1 -0
  95. package/dist/src/terrain/heightfield.d.ts +69 -0
  96. package/dist/src/terrain/heightfield.js +228 -0
  97. package/dist/src/terrain/heightfield.js.map +1 -0
  98. package/dist/tsconfig.build.tsbuildinfo +1 -1
  99. package/docs/architecture/README.md +21 -0
  100. package/docs/architecture/change-journal.md +94 -0
  101. package/docs/architecture/compaction-packet.md +51 -0
  102. package/docs/architecture/decision-log/ADR-0001-template.md +21 -0
  103. package/docs/architecture/decision-log/ADR-0002-continuum-contract-ownership.md +35 -0
  104. package/docs/architecture/invariants.md +43 -0
  105. package/docs/architecture/runtime-flows.md +81 -0
  106. package/docs/architecture/system-map.md +37 -0
  107. package/docs/distant-trees.md +35 -0
  108. package/docs/helix-placements.md +83 -0
  109. package/docs/helix-residence-scene.md +84 -0
  110. package/docs/helix-scene-hlod.md +70 -0
  111. package/docs/helix-scene-v2.md +271 -44
  112. package/docs/helix-terrain.md +177 -0
  113. package/docs/module-action-dispatch.md +26 -0
  114. package/docs/module-bank-reference.md +56 -0
  115. package/docs/native-material-bindings.md +21 -0
  116. package/examples/minimal-home.scene-v2.json +271 -63
  117. package/fixtures/continuum/jcs-v1.json +41 -0
  118. package/fixtures/multiplayer/continuum-record-player.module.json +1782 -0
  119. package/fixtures/multiplayer/continuum-record-player.provenance.json +17 -0
  120. package/fixtures/scene-v2/devices-v1.json +36 -0
  121. package/package.json +2 -1
  122. package/schema/manifest-v0.2.schema.json +1 -1
  123. package/schema/manifest-v0.3.schema.json +420 -109
  124. package/schema/package-envelope-v1.schema.json +2 -2
  125. package/schema/scene-v2.schema.json +594 -36
package/README.md CHANGED
@@ -32,14 +32,15 @@ const manifest = result.manifest; // NormalizedHelixManifest — defaults applie
32
32
  - `validateManifest(data)` / `parseManifest(json)` — validate + normalize a world `helix.json` (v0.1–v0.3).
33
33
  - `validatePackageEnvelope(data)` / `parsePackageEnvelope(json)` — validate the `system | ability | asset-pack | interactable` envelope.
34
34
  - `validateInteractablePackageManifest(data)` / `validateInteractableServerFragment(data)` — validate a portable interactable manifest, run its authority fragment through the world grammar, and recompute its budget.
35
+ - `validatePlatformRuntimeDelivery({ descriptor, manifestSystems, entryHtml })` — the shared CLI/server gate for system-bearing World builds. It accepts safe compatible `^`/`~` ranges or explicit exact pins, requires the built import map to match, and rejects legacy bundled delivery.
35
36
  - `validateSceneDocument(data, options?)` / `parseSceneDocument(json, options?)` — validate and normalize a portable HELIX Scene v2 document shared by Home and World profiles.
36
37
  - `validateSceneDocumentForPublication(data, options)` — the publication-safe gate whose type requires an Ed25519 implementation-signature verifier.
37
38
  - `normalizeSceneDocument(scene)` — return a detached, defaulted copy of an already validated Scene v2 document.
38
39
  - `canonicalSceneDocumentPayload(scene)` / `computeSceneDocumentIntegrity(scene)` / `verifySceneDocumentIntegrity(scene)` — RFC 8785 canonical payload and SHA-256 identity helpers; only the top-level self field is excluded.
39
- - Scene vocabulary: `HELIX_SCENE_FORMAT`, `HELIX_SCENE_VERSION`, `HELIX_SCENE_MEDIA_TYPE`, `HELIX_SCENE_CAPS`, behavior/runtime-extension/signing-key allow-lists, `sceneResourceMimeCompatible`, `sceneBundleUriMatchesResource`, `sceneProfileMemoryCommitmentMiB`, `behaviorImplementationSignaturePayload`, `HELIX_TO_UNREAL_ADAPTER`, and `helixPositionToUnrealCm(position)`.
40
+ - Scene vocabulary: `HELIX_SCENE_FORMAT`, `HELIX_SCENE_VERSION`, `HELIX_SCENE_MEDIA_TYPE`, `HELIX_SCENE_CAPS`, `HELIX_SCENE_DEVICE_CAPABILITY`, behavior/runtime-extension/signing-key allow-lists, `isSceneContinuumItemDefinition`, `sceneResourceMimeCompatible`, `sceneBundleUriMatchesResource`, `sceneProfileMemoryCommitmentMiB`, `behaviorImplementationSignaturePayload`, `HELIX_TO_UNREAL_ADAPTER`, and `helixPositionToUnrealCm(position)`.
40
41
  - Bundle rules: `BUNDLE_MAX_FILES`, `BUNDLE_MAX_FILE_BYTES`, `BUNDLE_MAX_TOTAL_BYTES`, `BUNDLE_PATH_PATTERN`, `bundleContentType(path)`, `bundleLimitsForKind(kind)`, `classifyBundleFile(kind, path)`, `ASSET_EXTENSIONS`.
41
42
  - Vocabulary + federation maps: `BUNDLE_KINDS`, `MAIN_BACKEND_PACKAGE_TYPE`, `MAIN_BACKEND_CONTENT_RATING`, `PERMISSIONS_V01`, `PERMISSIONS_V03`, `PLATFORM_MAX_PLAYERS_PER_ROOM`, `MANIFEST_FILENAME`, `MANIFEST_VERSIONS`.
42
- - Types: `HelixManifest`, `NormalizedHelixManifest`, `HelixBundleKind`, `HelixContentRating`, `HelixPermission`, `HelixMultiplayerConfig`, `HelixPackageEnvelope`, `NormalizedPackageEnvelope`, `HelixSceneV2`, and the exported Scene v2 section types.
43
+ - Types: `HelixManifest`, `NormalizedHelixManifest`, `HelixBundleKind`, `HelixContentRating`, `HelixPermission`, `HelixMultiplayerConfig`, `HelixPackageEnvelope`, `NormalizedPackageEnvelope`, `HelixScenePin`, `HelixSceneV2`, and the exported Scene v2 section types.
43
44
 
44
45
  ## HELIX Scene v2
45
46
 
@@ -50,10 +51,26 @@ physical lighting intent, surfaces, collision/navigation, streaming/LOD and
50
51
  registered declarative behavior. It never contains executable code or arbitrary
51
52
  remote URLs.
52
53
 
54
+ Scene item definitions accept legacy exact Vault descriptors or exact Continuum
55
+ Package Version pins. Optional `deviceLinks` connect stable item instances by
56
+ named Package-owned ports and require the fail-closed `helix.scene-devices/1`
57
+ capability.
58
+
53
59
  See [the creator contract](docs/helix-scene-v2.md) and the
54
60
  [dual-profile example](examples/minimal-home.scene-v2.json). The published JSON
55
61
  Schema is `schema/scene-v2.schema.json`.
56
62
 
63
+ ## Module bank references
64
+
65
+ A module-v1 world names the interactables it hosts as
66
+ `itx:<slug>@<version>#<sha256>` references. The digest is the package
67
+ registry's published `checksumSha256` for that version — read, never computed.
68
+
69
+ See [the module bank reference contract](docs/module-bank-reference.md).
70
+
71
+ See [module Device action dispatch](docs/module-action-dispatch.md) for ordered,
72
+ atomic `firstMatch` action cases and their empty-case semantics.
73
+
57
74
  ## Develop
58
75
 
59
76
  ```bash
@@ -73,7 +73,7 @@
73
73
  "type": "object",
74
74
  "additionalProperties": { "type": "string", "minLength": 1 },
75
75
  "propertyNames": { "pattern": "^[a-z0-9](?:[a-z0-9-]{1,48})[a-z0-9]$" },
76
- "description": "Pinned system dependencies as slug -> semver range (e.g. { \"humanoid-character\": \"^0.1\" }). Resolved to exact active versions at build; the resolved code + asset-pack CDN bases are baked into the immutable build. The asset-pack is discovered via the system's own envelope, not pinned here."
76
+ "description": "Platform system dependencies as slug -> semver range (e.g. { \"humanoid-character\": \"^0.2\" }). Compatible ^/~ ranges resolve through the host runtime on fresh launch; exact versions remain immutable pins. The asset-pack is discovered via the system's own envelope, not pinned here."
77
77
  },
78
78
  "abilities": {
79
79
  "type": "object",