@helixdev/helix-manifest
v0.3.4-staging.25
Published
HELIX Instant world manifest schema and validator — the platform contract between worlds, the CLI, the SDK, and the backend
Downloads
2,409
Readme
@hypersoniclabs/helix-manifest
The HELIX Instant world manifest schema and validator — the single source of truth for bundle validation, shared by every component that touches a world bundle:
- the backend (
helix-backend-apiInstant World module) validates manifests at publish and finalize, - the CLI (
helix-creator-cli) validates a bundle before upload, - the SDK (
helix-web-sdk) consumes the manifest types, - and the MCP agent tooling validates what it generates.
Because all of them import the same validateManifest / validatePackageEnvelope, the rules can
never drift between client and server.
Install
npm install @hypersoniclabs/helix-manifestUsage
import { validateManifest, BUNDLE_MAX_TOTAL_BYTES, bundleContentType } from '@hypersoniclabs/helix-manifest';
const result = validateManifest(JSON.parse(helixJson));
if (!result.valid) throw new Error(result.errors.join('; '));
const manifest = result.manifest; // NormalizedHelixManifest — defaults appliedExports
validateManifest(data)/parseManifest(json)— validate + normalize a worldhelix.json(v0.1–v0.3).validatePackageEnvelope(data)/parsePackageEnvelope(json)— validate thesystem | ability | asset-packenvelope (v1, reserved for the ability-packaging milestone).- 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. - 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. - Types:
HelixManifest,NormalizedHelixManifest,HelixBundleKind,HelixContentRating,HelixPermission,HelixMultiplayerConfig,HelixPackageEnvelope,NormalizedPackageEnvelope.
Develop
npm install
npm test # jest
npm run build # tsc → dist/
npm run lintThe JSON schemas live in schema/ and are bundled into the published package alongside the
compiled dist/.
