@forgeax/engine-pack 0.1.33 → 0.1.35

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.
@@ -1 +1 @@
1
- {"version":3,"file":"pack-authoring.d.ts","sourceRoot":"","sources":["../src/pack-authoring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack-authoring.d.ts","sourceRoot":"","sources":["../src/pack-authoring.ts"],"names":[],"mappings":"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"}
@@ -265,8 +265,8 @@ function vectorLength(type) {
265
265
  }
266
266
  function parameterValueError(parameter, value, propertyPath) {
267
267
  const { type } = parameter;
268
- if (type === "bool" && typeof value !== "boolean") {
269
- return parameterFailure(propertyPath, "a boolean", value, "bool value has the wrong type");
268
+ if (type === "bool") {
269
+ return typeof value === "boolean" ? void 0 : parameterFailure(propertyPath, "a boolean", value, "bool value has the wrong type");
270
270
  }
271
271
  if (numericType(type)) {
272
272
  if (typeof value !== "number" || !Number.isFinite(value)) {
@@ -327,8 +327,8 @@ function parameterValueError(parameter, value, propertyPath) {
327
327
  }
328
328
  return void 0;
329
329
  }
330
- if (type === "string" && typeof value !== "string") {
331
- return parameterFailure(propertyPath, "a string", value, "string parameter has the wrong type");
330
+ if (type === "string") {
331
+ return typeof value === "string" ? void 0 : parameterFailure(propertyPath, "a string", value, "string parameter has the wrong type");
332
332
  }
333
333
  if (type === "enum") {
334
334
  if (typeof value !== "string") {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors.ts","../src/guid.ts","../src/pack-authoring.ts"],"names":["descriptors","definition","values"],"mappings":"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","file":"pack-authoring.mjs","sourcesContent":["// errors.ts — PackError class (feat-20260513-guid-asset-package-system w15)\n//\n// Four-field surface: .code / .expected / .hint / .detail\n// Structurally parallel to AssetError / RhiError / RemoteError\n// (charter proposition 5 consistent abstraction).\n//\n// .detail is narrowed per .code via PackErrorDetail discriminated union\n// (requirements §6.2 AC-07; plan-strategy §D-5).\n\nimport type { PackErrorCode, PackErrorDetail } from '@forgeax/engine-types';\n\n/**\n * Structured error for the engine-pack disk scanner fail-fast chain.\n *\n * AI users consume via exhaustive switch on .code — no default case needed:\n * ```ts\n * switch (err.code) {\n * case 'pack-guid-collision':\n * console.error(err.detail.paths);\n * break;\n * case 'pack-cyclic-reference':\n * console.error(err.detail.cycle);\n * break;\n * // ...all 8 cases\n * }\n * ```\n */\nexport class PackError extends Error {\n readonly code: PackErrorCode;\n readonly expected: string;\n readonly hint: string;\n readonly detail: PackErrorDetail;\n\n constructor(args: {\n code: PackErrorCode;\n expected: string;\n hint: string;\n detail: PackErrorDetail;\n }) {\n super(`[PackError ${args.code}] expected: ${args.expected}; hint: ${args.hint}`);\n this.name = 'PackError';\n this.code = args.code;\n this.expected = args.expected;\n this.hint = args.hint;\n this.detail = args.detail;\n }\n}\n","import { sha1 } from '@noble/hashes/legacy.js';\nimport { uuidv7obj } from 'uuidv7';\nimport { PackError } from './errors.js';\n\n/**\n * 16-byte UUID branded ABI. Prevents assignment from plain Uint8Array or string.\n * Brand field mirrors the declaration in @forgeax/engine-types for cross-package\n * structural compatibility (both use __guidBrand: 'AssetGuid').\n */\nexport type AssetGuid = Uint8Array & { readonly __guidBrand: 'AssetGuid' };\n\n/** Pack-level identity. It is intentionally not assignable to AssetGuid. */\nexport type PackageId = Uint8Array & { readonly __packageIdBrand: 'PackageId' };\n\n/** Minimal Result alias for this module (structurally compatible with ScanResult). */\nexport type GuidResult<T, E> =\n | { readonly ok: true; readonly value: T }\n | { readonly ok: false; readonly error: E };\n\nfunction brand(bytes: Uint8Array): AssetGuid {\n return bytes as AssetGuid;\n}\n\nconst HEX_BYTE = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n\nfunction bytesToDashForm(bytes: Uint8Array): string {\n const h = HEX_BYTE;\n // biome-ignore lint/style/noNonNullAssertion: length guaranteed 16\n return `${h[bytes[0]!]}${h[bytes[1]!]}${h[bytes[2]!]}${h[bytes[3]!]}-${h[bytes[4]!]}${h[bytes[5]!]}-${h[bytes[6]!]}${h[bytes[7]!]}-${h[bytes[8]!]}${h[bytes[9]!]}-${h[bytes[10]!]}${h[bytes[11]!]}${h[bytes[12]!]}${h[bytes[13]!]}${h[bytes[14]!]}${h[bytes[15]!]}`;\n}\n\nconst UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\n/** Stable author-owned output identity. Paths and payloads are not identity inputs. */\nexport const PACK_SOURCE_KEY_RE = /^[a-z0-9][a-z0-9._-]*(\\/[a-z0-9][a-z0-9._-]*)*$/;\n\nexport function isValidPackSourceKey(value: unknown): value is string {\n return typeof value === 'string' && PACK_SOURCE_KEY_RE.test(value);\n}\n\nexport function isValidAssetGuidString(value: unknown): value is string {\n return typeof value === 'string' && UUID_RE.test(value);\n}\n\nfunction dashFormToBytes(dashForm: string): Uint8Array {\n const hex = dashForm.replace(/-/g, '');\n const bytes = new Uint8Array(16);\n for (let i = 0; i < 16; i++) {\n bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);\n }\n return bytes;\n}\n\nfunction randomUuidBytes(): Uint8Array {\n const uuid = uuidv7obj();\n const bytes = new Uint8Array(16);\n bytes.set(uuid.bytes);\n return bytes;\n}\n\nfunction packageId(value: Uint8Array): PackageId {\n return value as PackageId;\n}\n\n/** Utilities for the pack-level UUID identity. */\nexport const PackageId = {\n parse(dashForm: string): GuidResult<PackageId, PackError> {\n const parsed = AssetGuid.parse(dashForm);\n return parsed.ok ? { ok: true, value: packageId(parsed.value) } : parsed;\n },\n format(value: PackageId): string {\n return bytesToDashForm(value);\n },\n random(): PackageId {\n return packageId(randomUuidBytes());\n },\n} as const;\n\nfunction derivedGuid(namespace: PackageId, sourceKey: string): AssetGuid {\n if (!(namespace instanceof Uint8Array) || namespace.byteLength !== 16) {\n throw new TypeError('AssetGuid.derive requires a 16-byte PackageId');\n }\n if (!isValidPackSourceKey(sourceKey)) {\n const error = new TypeError(\n `AssetGuid.derive received invalid sourceKey ${JSON.stringify(sourceKey)}`,\n ) as TypeError & { readonly code?: string };\n Object.defineProperty(error, 'code', { value: 'pack-source-key-invalid' });\n throw error;\n }\n const name = new TextEncoder().encode(sourceKey);\n const input = new Uint8Array(namespace.byteLength + name.byteLength);\n input.set(namespace, 0);\n input.set(name, namespace.byteLength);\n const digest = sha1(input);\n const result = digest.slice(0, 16);\n // RFC 4122 §4.1.1 / §4.1.3: UUID version 5, RFC variant.\n result[6] = ((result[6] ?? 0) & 0x0f) | 0x50;\n result[8] = ((result[8] ?? 0) & 0x3f) | 0x80;\n return brand(result);\n}\n\n/**\n * Utilities for the AssetGuid branded 16-byte UUID type.\n * Declare the type via `import type { AssetGuid } from '@forgeax/engine-pack/guid'`\n * or `import type { AssetGuid } from '@forgeax/engine-types'`.\n */\nexport const AssetGuid = {\n /**\n * Parse a 36-char RFC 4122 dash-form UUID string into an AssetGuid.\n * Returns Ok(AssetGuid) on success or Err(PackError) with code 'pack-guid-malformed' on failure.\n * Never throws for expected failures (requirements §4.2 / §14 / charter proposition 4).\n */\n parse(dashForm: string): GuidResult<AssetGuid, PackError> {\n if (!isValidAssetGuidString(dashForm)) {\n return {\n ok: false,\n error: new PackError({\n code: 'pack-guid-malformed',\n expected: '36-char RFC 4122 dash-form UUID',\n hint: 'use AssetGuid.random() or a UUIDv7 generator; all GUID fields must be 36-char RFC 4122 dash-form',\n detail: {\n raw: dashForm,\n reason: 'expected 36-char RFC 4122 dash-form UUID',\n },\n }),\n };\n }\n return { ok: true, value: brand(dashFormToBytes(dashForm)) };\n },\n\n /**\n * Format an AssetGuid as a 36-char RFC 4122 lowercase dash-form string.\n */\n format(guid: AssetGuid): string {\n return bytesToDashForm(guid);\n },\n\n /**\n * Test byte-by-byte equality between two AssetGuids.\n */\n equals(a: AssetGuid, b: AssetGuid): boolean {\n for (let i = 0; i < 16; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n },\n\n /**\n * Mint a new time-ordered UUIDv7 as an AssetGuid.\n * Works in both Node.js and browser environments.\n */\n random(): AssetGuid {\n return brand(randomUuidBytes());\n },\n\n /** Derive the stable UUIDv5 projection for one Pack subject and sourceKey. */\n derive(namespace: PackageId, sourceKey: string): AssetGuid {\n return derivedGuid(namespace, sourceKey);\n },\n} as const;\n","import type { Asset, AssetGuid, Result } from '@forgeax/engine-types';\nimport { err, ok } from '@forgeax/engine-types';\nimport {\n AssetGuid as AssetGuidCodec,\n isValidAssetGuidString,\n isValidPackSourceKey,\n PackageId,\n} from './guid.js';\nimport type { ScriptablePackSceneComponentInput } from './scriptable-pack.js';\n\n/** Values deliberately stay finite and serialisable at the authoring boundary. */\nexport type PackParameterScalar = boolean | number | string;\nexport type PackParameterValue = PackParameterScalar | readonly number[] | AssetGuid;\n\nexport type PackParameterType =\n | 'bool'\n | 'u32'\n | 'i32'\n | 'f32'\n | 'f64'\n | 'string'\n | 'enum'\n | 'vec2'\n | 'vec3'\n | 'vec4'\n | 'color'\n | 'asset-guid';\n\nexport const PACK_PARAMETER_TYPES = [\n 'bool',\n 'u32',\n 'i32',\n 'f32',\n 'f64',\n 'string',\n 'enum',\n 'vec2',\n 'vec3',\n 'vec4',\n 'color',\n 'asset-guid',\n] as const satisfies readonly PackParameterType[];\n\nexport interface PackParameterDefinition<\n TName extends string = string,\n TType extends PackParameterType = PackParameterType,\n TDefault extends PackParameterValue = PackParameterValue,\n> {\n readonly name: TName;\n readonly type: TType;\n readonly default: TDefault;\n readonly minimum?: number;\n readonly maximum?: number;\n /** Closed choices are required for `enum` and forbidden for other types. */\n readonly values?: readonly PackParameterScalar[];\n /** Optional authoring-only kind constraint for asset GUID parameters. */\n readonly kind?: Asset['kind'];\n}\n\nexport type PackParameterValueFor<T extends PackParameterType> = T extends 'bool'\n ? boolean\n : T extends 'u32' | 'i32' | 'f32' | 'f64'\n ? number\n : T extends 'string' | 'enum'\n ? string\n : T extends 'vec2'\n ? readonly [number, number]\n : T extends 'vec3'\n ? readonly [number, number, number]\n : T extends 'vec4' | 'color'\n ? readonly [number, number, number, number]\n : T extends 'asset-guid'\n ? AssetGuid\n : never;\n\nexport type PackParameterValues<TParameters extends readonly PackParameterDefinition[]> = Readonly<{\n [TParameter in TParameters[number] as TParameter['name']]: TParameter extends {\n readonly type: infer TType extends PackParameterType;\n }\n ? TType extends 'enum'\n ? TParameter extends { readonly values: readonly (infer TValue)[] }\n ? Extract<TValue, string>\n : string\n : PackParameterValueFor<TType>\n : never;\n}>;\n\nexport interface PackAuthoringError {\n readonly code: PackAuthoringErrorCode;\n readonly expected: string;\n readonly hint: string;\n readonly actual?: string;\n readonly detail: Readonly<Record<string, unknown>>;\n}\n\nexport type PackAuthoringErrorCode =\n | 'pack-package-id-invalid'\n | 'pack-package-id-collision'\n | 'pack-source-key-invalid'\n | 'pack-guid-collision'\n | 'pack-parent-not-found'\n | 'pack-parent-cycle'\n | 'pack-parent-has-no-parameters'\n | 'pack-parameter-invalid'\n | 'pack-content-dependency-stalled'\n | 'pack-output-reference-missing'\n | 'pack-output-reference-conflict'\n | 'pack-output-not-materialized'\n | 'asset-not-ready'\n | 'pack-source-revision-conflict'\n | 'pack-source-path-invalid'\n | 'pack-source-not-found'\n | 'pack-source-mutation-unsupported'\n | 'pack-source-write-failed';\n\nfunction authoringError(\n code: PackAuthoringErrorCode,\n expected: string,\n hint: string,\n detail: Readonly<Record<string, unknown>> = {},\n actual?: string,\n): PackAuthoringError {\n return {\n code,\n expected,\n hint,\n ...(actual === undefined ? {} : { actual }),\n detail,\n };\n}\n\nfunction failure<T = never>(error: PackAuthoringError): Result<T, PackAuthoringError> {\n return err(error);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validateSceneComponents(\n value: unknown,\n): Result<readonly ScriptablePackSceneComponentInput[] | undefined, PackAuthoringError> {\n if (value === undefined) return ok(undefined);\n if (!Array.isArray(value)) {\n return failure(\n parameterFailure(\n '$.sceneComponents',\n 'an array of component schema records',\n value,\n 'sceneComponents is not an array',\n ),\n );\n }\n const components: ScriptablePackSceneComponentInput[] = [];\n const names = new Set<string>();\n for (const [componentIndex, candidate] of value.entries()) {\n if (!isRecord(candidate) || typeof candidate.name !== 'string' || !isRecord(candidate.fields)) {\n return failure(\n parameterFailure(\n `$.sceneComponents[${componentIndex}]`,\n 'a component record with name and fields',\n candidate,\n 'scene component schema is malformed',\n ),\n );\n }\n if (candidate.name.length === 0 || names.has(candidate.name)) {\n return failure(\n parameterFailure(\n `$.sceneComponents[${componentIndex}].name`,\n 'a non-empty unique component name',\n candidate.name,\n 'scene component names must be unique',\n ),\n );\n }\n names.add(candidate.name);\n const fields: Record<string, string | { readonly type: string }> = {};\n for (const [fieldName, field] of Object.entries(candidate.fields)) {\n if (\n (typeof field === 'string' && field.length === 0) ||\n (typeof field !== 'string' &&\n (!isRecord(field) || typeof field.type !== 'string' || field.type.length === 0))\n ) {\n return failure(\n parameterFailure(\n `$.sceneComponents[${componentIndex}].fields.${fieldName}`,\n 'a field type string or { type: string }',\n field,\n 'scene component field schema is malformed',\n ),\n );\n }\n fields[fieldName] = field as string | { readonly type: string };\n }\n components.push({ name: candidate.name, fields });\n }\n return ok(components);\n}\n\nfunction isPackageId(value: unknown): value is PackageId {\n return value instanceof Uint8Array && value.byteLength === 16;\n}\n\nfunction cloneValue<T>(value: T): T {\n if (value instanceof Uint8Array) return value.slice() as T;\n if (Array.isArray(value)) return value.map((item) => cloneValue(item)) as T;\n return value;\n}\n\nfunction sourceKeyFailure(sourceKey: unknown, propertyPath = '$.sourceKey'): PackAuthoringError {\n return authoringError(\n 'pack-source-key-invalid',\n 'a sourceKey matching ^[a-z0-9][a-z0-9._-]*(/[a-z0-9][a-z0-9._-]*)*$',\n 'use a stable lower-case semantic key; do not derive it from file paths or output order',\n { propertyPath, sourceKey },\n typeof sourceKey === 'string' ? sourceKey : undefined,\n );\n}\n\nfunction parameterFailure(\n propertyPath: string,\n expected: string,\n actual: unknown,\n reason: string,\n): PackAuthoringError {\n return authoringError(\n 'pack-parameter-invalid',\n expected,\n 'repair the parameter declaration or the instance values, then inspect and rebuild',\n { propertyPath, reason, actual: typeof actual === 'string' ? actual : JSON.stringify(actual) },\n );\n}\n\nfunction numericType(type: PackParameterType): boolean {\n return type === 'u32' || type === 'i32' || type === 'f32' || type === 'f64';\n}\n\nfunction vectorLength(type: PackParameterType): number | undefined {\n switch (type) {\n case 'vec2':\n return 2;\n case 'vec3':\n return 3;\n case 'vec4':\n case 'color':\n return 4;\n default:\n return undefined;\n }\n}\n\nfunction parameterValueError(\n parameter: PackParameterDefinition,\n value: unknown,\n propertyPath: string,\n): PackAuthoringError | undefined {\n const { type } = parameter;\n if (type === 'bool' && typeof value !== 'boolean') {\n return parameterFailure(propertyPath, 'a boolean', value, 'bool value has the wrong type');\n }\n if (numericType(type)) {\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n return parameterFailure(\n propertyPath,\n 'a finite number',\n value,\n 'numeric value is not finite',\n );\n }\n if ((type === 'u32' || type === 'i32') && !Number.isInteger(value)) {\n return parameterFailure(\n propertyPath,\n 'an integer',\n value,\n 'integer parameter received a fraction',\n );\n }\n if (type === 'u32' && (value < 0 || value > 0xffff_ffff)) {\n return parameterFailure(\n propertyPath,\n 'an unsigned 32-bit integer',\n value,\n 'u32 value is outside [0, 2^32 - 1]',\n );\n }\n if (type === 'i32' && (value < -0x8000_0000 || value > 0x7fff_ffff)) {\n return parameterFailure(\n propertyPath,\n 'a signed 32-bit integer',\n value,\n 'i32 value is outside [-2^31, 2^31 - 1]',\n );\n }\n if (type === 'f32' && !Number.isFinite(Math.fround(value))) {\n return parameterFailure(\n propertyPath,\n 'a finite IEEE-754 32-bit float',\n value,\n 'f32 value overflows binary32',\n );\n }\n if (parameter.minimum !== undefined && value < parameter.minimum) {\n return parameterFailure(\n propertyPath,\n `a number >= ${parameter.minimum}`,\n value,\n 'value is below minimum',\n );\n }\n if (parameter.maximum !== undefined && value > parameter.maximum) {\n return parameterFailure(\n propertyPath,\n `a number <= ${parameter.maximum}`,\n value,\n 'value is above maximum',\n );\n }\n return undefined;\n }\n if (type === 'string' && typeof value !== 'string') {\n return parameterFailure(propertyPath, 'a string', value, 'string parameter has the wrong type');\n }\n if (type === 'enum') {\n if (typeof value !== 'string') {\n return parameterFailure(\n propertyPath,\n 'one of the declared enum strings',\n value,\n 'enum value has the wrong type',\n );\n }\n if (parameter.values === undefined || !parameter.values.includes(value)) {\n return parameterFailure(\n propertyPath,\n 'one of the declared enum values',\n value,\n 'enum value is not declared',\n );\n }\n return undefined;\n }\n const length = vectorLength(type);\n if (length !== undefined) {\n if (\n !Array.isArray(value) ||\n value.length !== length ||\n value.some((component) => typeof component !== 'number' || !Number.isFinite(component))\n ) {\n return parameterFailure(\n propertyPath,\n `a finite numeric vector with ${length} components`,\n value,\n 'vector value has the wrong shape',\n );\n }\n if (type === 'color' && value.some((component) => component < 0 || component > 1)) {\n return parameterFailure(\n propertyPath,\n 'an RGBA color with components in [0, 1]',\n value,\n 'color component is outside [0, 1]',\n );\n }\n return undefined;\n }\n if (type === 'asset-guid') {\n const validString = typeof value === 'string' && isValidAssetGuidString(value);\n if (!(value instanceof Uint8Array && value.byteLength === 16) && !validString) {\n return parameterFailure(\n propertyPath,\n 'a 16-byte AssetGuid or UUID string',\n value,\n 'asset GUID value is malformed',\n );\n }\n return undefined;\n }\n return parameterFailure(\n propertyPath,\n 'a supported Pack parameter type',\n value,\n 'unknown parameter type',\n );\n}\n\nfunction normalizeParameterValue(\n parameter: PackParameterDefinition,\n value: unknown,\n propertyPath: string,\n): Result<PackParameterValue, PackAuthoringError> {\n const error = parameterValueError(parameter, value, propertyPath);\n if (error !== undefined) return failure(error);\n if (parameter.type === 'asset-guid' && typeof value === 'string') {\n const parsed = AssetGuidCodec.parse(value);\n if (!parsed.ok) {\n return failure(\n parameterFailure(\n propertyPath,\n 'a valid AssetGuid UUID string',\n value,\n 'asset GUID parser rejected the value',\n ),\n );\n }\n return ok(parsed.value);\n }\n return ok(cloneValue(value as PackParameterValue));\n}\n\nfunction validateParameterDefinitions(\n parameters: unknown,\n propertyPath = '$.parameters',\n): Result<readonly PackParameterDefinition[], PackAuthoringError> {\n if (!Array.isArray(parameters) || parameters.length === 0) {\n return failure(\n parameterFailure(\n propertyPath,\n 'a non-empty parameter descriptor array',\n parameters,\n 'parameters must be explicit and non-empty',\n ),\n );\n }\n const names = new Set<string>();\n const normalized: PackParameterDefinition[] = [];\n for (const [index, candidate] of parameters.entries()) {\n const path = `${propertyPath}[${index}]`;\n if (!isRecord(candidate))\n return failure(\n parameterFailure(\n path,\n 'a parameter descriptor object',\n candidate,\n 'descriptor is not an object',\n ),\n );\n const name = candidate.name;\n if (typeof name !== 'string' || !/^[A-Za-z][A-Za-z0-9_.-]*$/.test(name)) {\n return failure(\n parameterFailure(\n `${path}.name`,\n 'a unique identifier-like parameter name',\n name,\n 'parameter name is invalid',\n ),\n );\n }\n if (names.has(name))\n return failure(\n parameterFailure(\n `${path}.name`,\n 'a unique parameter name',\n name,\n 'parameter name is duplicated',\n ),\n );\n names.add(name);\n const unknown = Object.keys(candidate).find(\n (key) => !['name', 'type', 'default', 'minimum', 'maximum', 'values', 'kind'].includes(key),\n );\n if (unknown !== undefined) {\n return failure(\n parameterFailure(\n `${path}.${unknown}`,\n 'only name, type, default, minimum, maximum, values, and kind fields',\n candidate[unknown],\n 'parameter descriptors are a closed authoring schema',\n ),\n );\n }\n const type = candidate.type;\n if (typeof type !== 'string' || !(PACK_PARAMETER_TYPES as readonly string[]).includes(type)) {\n return failure(\n parameterFailure(\n `${path}.type`,\n PACK_PARAMETER_TYPES.join(' | '),\n type,\n 'parameter type is not supported',\n ),\n );\n }\n const typed = {\n ...candidate,\n name,\n type: type as PackParameterType,\n } as PackParameterDefinition;\n if (typed.values !== undefined) {\n if (\n typed.type !== 'enum' ||\n !Array.isArray(typed.values) ||\n typed.values.length === 0 ||\n typed.values.some((item) => typeof item !== 'string') ||\n new Set(typed.values).size !== typed.values.length\n ) {\n return failure(\n parameterFailure(\n `${path}.values`,\n 'unique non-empty strings for enum',\n typed.values,\n 'enum values are malformed',\n ),\n );\n }\n } else if (typed.type === 'enum') {\n return failure(\n parameterFailure(\n `${path}.values`,\n 'a non-empty enum choices array',\n typed.values,\n 'enum has no choices',\n ),\n );\n }\n if (\n typed.kind !== undefined &&\n (typed.type !== 'asset-guid' || typeof typed.kind !== 'string')\n ) {\n return failure(\n parameterFailure(\n `${path}.kind`,\n 'a kind constraint only on asset-guid parameters',\n typed.kind,\n 'kind is misplaced',\n ),\n );\n }\n for (const field of ['minimum', 'maximum'] as const) {\n const bound = typed[field];\n if (bound !== undefined && (typeof bound !== 'number' || !Number.isFinite(bound))) {\n return failure(\n parameterFailure(\n `${path}.${field}`,\n 'a finite numeric bound',\n bound,\n 'numeric bound is invalid',\n ),\n );\n }\n }\n if (!numericType(typed.type) && (typed.minimum !== undefined || typed.maximum !== undefined)) {\n return failure(\n parameterFailure(\n path,\n 'minimum/maximum only on numeric parameters',\n typed,\n 'numeric bounds are not meaningful for this parameter type',\n ),\n );\n }\n if (\n typed.minimum !== undefined &&\n typed.maximum !== undefined &&\n typed.minimum > typed.maximum\n ) {\n return failure(\n parameterFailure(path, 'minimum <= maximum', typed, 'numeric bounds are reversed'),\n );\n }\n const defaultResult = normalizeParameterValue(typed, typed.default, `${path}.default`);\n if (!defaultResult.ok) return defaultResult;\n normalized.push({\n ...typed,\n default: defaultResult.value,\n ...(typed.values === undefined ? {} : { values: Object.freeze([...typed.values]) }),\n });\n }\n return ok(Object.freeze(normalized));\n}\n\nexport interface PackBuildReadContext {\n readByGuid<TAsset extends Asset | PackCookSource = Asset>(\n guid: AssetGuid,\n ): Promise<Result<TAsset, unknown>>;\n}\n\nexport interface PackBuildContextWithoutParameters extends PackBuildReadContext {\n readonly packageId: PackageId;\n}\n\nexport interface PackBuildContextWithParameters<\n TParameters extends readonly PackParameterDefinition[],\n> extends PackBuildReadContext {\n readonly packageId: PackageId;\n readonly values: PackParameterValues<TParameters>;\n}\n\nexport type PackBuildContext<TParameters extends readonly PackParameterDefinition[] | undefined> =\n TParameters extends readonly PackParameterDefinition[]\n ? PackBuildContextWithParameters<TParameters>\n : PackBuildContextWithoutParameters;\n\n/** Build-only custom source. The host derives identity and invokes the kind's NativeCooker. */\nexport interface PackCookSource {\n readonly kind: string;\n readonly execution: 'cooked';\n readonly source: unknown;\n}\n\nexport type PackOutputMap = Readonly<Record<string, Asset | PackCookSource>>;\nexport type PackBuildResult<TError = unknown> =\n | Result<PackOutputMap, TError>\n | Promise<Result<PackOutputMap, TError>>;\n\ninterface PackDefinitionBase {\n readonly schemaVersion: '2.0.0';\n readonly packageId: PackageId;\n readonly name?: string;\n /** Neutral component schemas used only to externalize SceneAsset refs at cook time. */\n readonly sceneComponents?: readonly ScriptablePackSceneComponentInput[];\n}\n\nexport type ScriptablePackDefinition<\n TParameters extends readonly PackParameterDefinition[] | undefined = undefined,\n> = PackDefinitionBase &\n (TParameters extends readonly PackParameterDefinition[]\n ? {\n readonly parameters: TParameters;\n readonly build: (context: PackBuildContextWithParameters<TParameters>) => PackBuildResult;\n }\n : {\n readonly build: (context: PackBuildContextWithoutParameters) => PackBuildResult;\n });\n\nexport type PackParameterList = readonly [PackParameterDefinition, ...PackParameterDefinition[]];\ntype NonEmptyParameters = PackParameterList;\ntype NoParameterPackInput = PackDefinitionBase & {\n readonly parameters?: never;\n readonly build: (context: PackBuildContextWithoutParameters) => PackBuildResult;\n};\ntype ScriptablePackDefinitionInput<TParameters extends NonEmptyParameters> = PackDefinitionBase & {\n readonly parameters: TParameters;\n readonly build: (context: PackBuildContextWithParameters<TParameters>) => PackBuildResult;\n};\n\n/** Convert a UUID literal into the distinct Pack-level identity brand. */\nexport function definePackageId(value: string | PackageId): PackageId {\n if (isPackageId(value)) return value.slice() as PackageId;\n const parsed = PackageId.parse(value);\n if (!parsed.ok) {\n const error = authoringError(\n 'pack-package-id-invalid',\n 'a 36-character RFC 4122 UUID packageId',\n 'use PackageId.random() or repair the packageId literal before loading the Pack',\n { value },\n value,\n );\n throw Object.assign(new TypeError(error.hint), error);\n }\n return parsed.value;\n}\n\nfunction cloneDefinition(\n definition: ScriptablePackDefinition<NonEmptyParameters> | ScriptablePackDefinition<undefined>,\n): ScriptablePackDefinition<NonEmptyParameters> | ScriptablePackDefinition<undefined> {\n const parameters =\n 'parameters' in definition\n ? Object.freeze(\n definition.parameters.map((parameter) =>\n Object.freeze({\n ...parameter,\n default: cloneValue(parameter.default),\n ...(parameter.values === undefined\n ? {}\n : { values: Object.freeze(parameter.values.map((value) => cloneValue(value))) }),\n }),\n ),\n )\n : undefined;\n const sceneComponents =\n definition.sceneComponents === undefined\n ? undefined\n : Object.freeze(\n definition.sceneComponents.map((component) =>\n Object.freeze({\n name: component.name,\n fields: Object.freeze({ ...component.fields }),\n }),\n ),\n );\n return Object.freeze({\n ...definition,\n packageId: definition.packageId.slice() as PackageId,\n ...(parameters === undefined ? {} : { parameters }),\n ...(sceneComponents === undefined ? {} : { sceneComponents }),\n }) as ScriptablePackDefinition<NonEmptyParameters> | ScriptablePackDefinition<undefined>;\n}\n\n/**\n * Define the only executable authoring shape. A missing `parameters` property\n * is meaningful: its build context has no `values` member.\n */\nexport function definePack(definition: NoParameterPackInput): ScriptablePackDefinition<undefined>;\nexport function definePack<const TParameters extends NonEmptyParameters>(\n definition: ScriptablePackDefinitionInput<TParameters>,\n): ScriptablePackDefinition<TParameters>;\nexport function definePack(\n definition: NoParameterPackInput | ScriptablePackDefinitionInput<NonEmptyParameters>,\n): ScriptablePackDefinition<NonEmptyParameters> | ScriptablePackDefinition<undefined> {\n const validated = validatePackDefinition(definition);\n if (!validated.ok) throw Object.assign(new TypeError(validated.error.hint), validated.error);\n return cloneDefinition(\n validated.value as\n | ScriptablePackDefinition<NonEmptyParameters>\n | ScriptablePackDefinition<undefined>,\n );\n}\n\n/** Union used only at orchestration boundaries that accept either source form. */\nexport type AnyScriptablePackDefinition =\n | ScriptablePackDefinition<PackParameterList>\n | ScriptablePackDefinition<undefined>;\n\nexport interface ScriptablePackSourceMeta {\n readonly schemaVersion: '2.0.0';\n readonly kind: 'scriptable-pack-source';\n readonly packageId: string;\n readonly source: string;\n readonly parameters?: readonly Readonly<Record<string, unknown>>[];\n}\n\n/** Ephemeral scan evidence; it intentionally contains no output GUID table. */\nexport function projectScriptablePackMeta(\n definition: AnyScriptablePackDefinition,\n sourcePath: string,\n): ScriptablePackSourceMeta {\n return {\n schemaVersion: '2.0.0',\n kind: 'scriptable-pack-source',\n packageId: PackageId.format(definition.packageId),\n source: sourcePath,\n ...('parameters' in definition\n ? {\n parameters: definition.parameters.map((parameter) => ({\n name: parameter.name,\n type: parameter.type,\n default: jsonParameterValue(parameter.default),\n ...(parameter.minimum === undefined ? {} : { minimum: parameter.minimum }),\n ...(parameter.maximum === undefined ? {} : { maximum: parameter.maximum }),\n ...(parameter.values === undefined ? {} : { values: parameter.values }),\n ...(parameter.kind === undefined ? {} : { kind: parameter.kind }),\n })),\n }\n : {}),\n };\n}\n\nfunction jsonParameterValue(value: PackParameterValue): unknown {\n return value instanceof Uint8Array ? AssetGuidCodec.format(value) : value;\n}\n\n/** Runtime validation used by the isolated module loader and source scanner. */\nexport function validatePackDefinition(\n value: unknown,\n sourcePath?: string,\n): Result<\n ScriptablePackDefinition<NonEmptyParameters> | ScriptablePackDefinition<undefined>,\n PackAuthoringError\n> {\n if (!isRecord(value))\n return failure(\n parameterFailure('$', 'a Pack definition object', value, 'definition is not an object'),\n );\n const unknown = Object.keys(value).find(\n (key) =>\n !['schemaVersion', 'packageId', 'name', 'parameters', 'sceneComponents', 'build'].includes(\n key,\n ),\n );\n if (unknown !== undefined) {\n return failure(\n parameterFailure(\n `$.${unknown}`,\n 'only schemaVersion, packageId, name, parameters, sceneComponents, and build fields',\n value[unknown],\n 'legacy static output declarations and external asset tables are not part of v2 authoring',\n ),\n );\n }\n if (value.schemaVersion !== '2.0.0') {\n return failure(\n parameterFailure(\n '$.schemaVersion',\n \"the literal '2.0.0'\",\n value.schemaVersion,\n 'authoring source schema is unsupported',\n ),\n );\n }\n if (!isPackageId(value.packageId)) {\n return failure(\n authoringError(\n 'pack-package-id-invalid',\n 'a 16-byte PackageId',\n 'use definePackageId() for the stable source identity',\n { sourcePath, propertyPath: '$.packageId' },\n typeof value.packageId === 'string' ? value.packageId : undefined,\n ),\n );\n }\n if (value.name !== undefined && typeof value.name !== 'string') {\n return failure(\n parameterFailure('$.name', 'a string when present', value.name, 'display name is malformed'),\n );\n }\n if (typeof value.build !== 'function') {\n return failure(\n parameterFailure('$.build', 'a build function', value.build, 'build is not callable'),\n );\n }\n const sceneComponents = validateSceneComponents(value.sceneComponents);\n if (!sceneComponents.ok) return sceneComponents;\n const hasParameters = Object.hasOwn(value, 'parameters');\n if (!hasParameters) {\n return ok(\n Object.freeze({\n schemaVersion: '2.0.0',\n packageId: value.packageId,\n ...(value.name === undefined ? {} : { name: value.name }),\n ...(sceneComponents.value === undefined ? {} : { sceneComponents: sceneComponents.value }),\n build: value.build,\n }) as ScriptablePackDefinition<undefined>,\n );\n }\n const parameters = validateParameterDefinitions(value.parameters);\n if (!parameters.ok) return parameters;\n return ok(\n Object.freeze({\n schemaVersion: '2.0.0',\n packageId: value.packageId,\n ...(value.name === undefined ? {} : { name: value.name }),\n ...(sceneComponents.value === undefined ? {} : { sceneComponents: sceneComponents.value }),\n parameters: parameters.value,\n build: value.build,\n }) as ScriptablePackDefinition<NonEmptyParameters>,\n );\n}\n\nexport function hasPackParameters(\n value: ScriptablePackDefinition | unknown,\n): value is ScriptablePackDefinition<NonEmptyParameters> {\n return isRecord(value) && Array.isArray(value.parameters) && value.parameters.length > 0;\n}\n\n/** Resolve defaults plus a sparse instance override with shallow replacement. */\nexport function resolvePackParameterValues(\n definition: ScriptablePackDefinition<NonEmptyParameters>,\n overrides: unknown = {},\n inheritedValues?: Readonly<Record<string, PackParameterValue>>,\n): Result<PackParameterValues<NonEmptyParameters>, PackAuthoringError> {\n if (!isRecord(overrides)) {\n return failure(\n parameterFailure(\n '$.values',\n 'an object of sparse parameter overrides',\n overrides,\n 'values is not an object',\n ),\n );\n }\n const descriptors = new Map(\n definition.parameters.map((parameter) => [parameter.name, parameter]),\n );\n for (const name of Object.keys(overrides)) {\n if (!descriptors.has(name)) {\n return failure(\n parameterFailure(\n `$.values.${name}`,\n 'a declared parameter name',\n name,\n 'instance contains an unknown parameter',\n ),\n );\n }\n }\n const values: Record<string, PackParameterValue> = {};\n for (const parameter of definition.parameters) {\n const raw = Object.hasOwn(overrides, parameter.name)\n ? overrides[parameter.name]\n : (inheritedValues?.[parameter.name] ?? parameter.default);\n const normalized = normalizeParameterValue(parameter, raw, `$.values.${parameter.name}`);\n if (!normalized.ok) return normalized;\n values[parameter.name] = normalized.value;\n }\n return ok(Object.freeze(values) as PackParameterValues<NonEmptyParameters>);\n}\n\nexport interface DirectPackJsonAsset {\n readonly kind: string;\n readonly payload: Readonly<Record<string, unknown>>;\n readonly refs: readonly string[];\n readonly name?: string;\n readonly artifacts?: Readonly<Record<string, Readonly<Record<string, unknown>>>>;\n}\n\nexport interface DirectPackJson {\n readonly schemaVersion: '3.0.0';\n readonly packageId: string;\n readonly assets: Readonly<Record<string, DirectPackJsonAsset>>;\n}\n\nexport interface PackInstanceJson {\n readonly schemaVersion: '3.0.0';\n readonly packageId: string;\n readonly parent: string;\n readonly values: Readonly<Record<string, unknown>>;\n}\n\nexport interface ParsedDirectPackJson {\n readonly format: 'direct';\n readonly schemaVersion: '3.0.0';\n readonly packageId: PackageId;\n readonly assets: Readonly<Record<string, DirectPackJsonAsset>>;\n}\n\nexport interface ParsedPackInstanceJson {\n readonly format: 'instance';\n readonly schemaVersion: '3.0.0';\n readonly packageId: PackageId;\n readonly parent: PackageId;\n readonly values: Readonly<Record<string, unknown>>;\n}\n\nexport type ParsedPackJson = ParsedDirectPackJson | ParsedPackInstanceJson;\n\nfunction jsonError(\n propertyPath: string,\n expected: string,\n actual: unknown,\n reason: string,\n): Result<never, PackAuthoringError> {\n return failure(\n authoringError(\n 'pack-parameter-invalid',\n expected,\n 'repair the v3 pack.json authoring data, then rerun scan or rebuild',\n {\n propertyPath,\n reason,\n actual: typeof actual === 'string' ? actual : JSON.stringify(actual),\n },\n ),\n );\n}\n\nfunction parsePackageId(\n value: unknown,\n propertyPath: string,\n): Result<PackageId, PackAuthoringError> {\n if (typeof value !== 'string') {\n return failure(\n authoringError(\n 'pack-package-id-invalid',\n 'a UUID string',\n 'repair packageId in the authoring file',\n { propertyPath, value },\n ),\n );\n }\n const parsed = PackageId.parse(value);\n if (!parsed.ok) {\n return failure(\n authoringError(\n 'pack-package-id-invalid',\n 'a 36-character RFC 4122 UUID',\n 'repair packageId or use the authoring gateway to mint one',\n { propertyPath, value },\n value,\n ),\n );\n }\n return ok(parsed.value);\n}\n\nfunction parsePackJsonAsset(\n value: unknown,\n sourceKey: string,\n): Result<DirectPackJsonAsset, PackAuthoringError> {\n if (!isRecord(value))\n return jsonError(\n `$.assets.${sourceKey}`,\n 'an asset entry object',\n value,\n 'asset entry is not an object',\n );\n const allowed = new Set(['kind', 'payload', 'refs', 'name', 'artifacts']);\n const unknown = Object.keys(value).find((key) => !allowed.has(key));\n if (unknown !== undefined)\n return jsonError(\n `$.assets.${sourceKey}.${unknown}`,\n 'no GUID or extra authoring field',\n value[unknown],\n 'direct v3 entries derive identity from their object key',\n );\n if (typeof value.kind !== 'string' || value.kind.length === 0)\n return jsonError(\n `$.assets.${sourceKey}.kind`,\n 'a non-empty asset kind',\n value.kind,\n 'asset kind is missing',\n );\n if (!isRecord(value.payload))\n return jsonError(\n `$.assets.${sourceKey}.payload`,\n 'a JSON object payload',\n value.payload,\n 'payload must be a plain object',\n );\n if (\n !Array.isArray(value.refs) ||\n value.refs.some((ref) => typeof ref !== 'string' || !isValidAssetGuidString(ref))\n ) {\n return jsonError(\n `$.assets.${sourceKey}.refs`,\n 'an array of UUID references',\n value.refs,\n 'references must already be real AssetGuids',\n );\n }\n if (value.name !== undefined && (typeof value.name !== 'string' || value.name.length === 0))\n return jsonError(\n `$.assets.${sourceKey}.name`,\n 'a non-empty display name when present',\n value.name,\n 'asset name is malformed',\n );\n if (value.artifacts !== undefined && !isRecord(value.artifacts))\n return jsonError(\n `$.assets.${sourceKey}.artifacts`,\n 'an artifact descriptor object when present',\n value.artifacts,\n 'artifacts are not an object',\n );\n const base: DirectPackJsonAsset = {\n kind: value.kind,\n payload: value.payload,\n refs: Object.freeze([...value.refs]) as readonly string[],\n ...(value.name === undefined ? {} : { name: value.name }),\n };\n if (value.artifacts === undefined) return ok(base);\n const withArtifacts: DirectPackJsonAsset = {\n ...base,\n artifacts: value.artifacts as NonNullable<DirectPackJsonAsset['artifacts']>,\n };\n return ok(withArtifacts);\n}\n\n/** Parse the two mutually exclusive v3 pack.json branches. */\nexport function parsePackSourceJson(value: unknown): Result<ParsedPackJson, PackAuthoringError> {\n if (!isRecord(value))\n return jsonError('$', 'a v3 pack.json object', value, 'document is not an object');\n if (value.schemaVersion !== '3.0.0')\n return jsonError(\n '$.schemaVersion',\n \"the literal '3.0.0'\",\n value.schemaVersion,\n 'document schema is not v3',\n );\n const unknown = Object.keys(value).find(\n (key) => !['schemaVersion', 'packageId', 'assets', 'parent', 'values'].includes(key),\n );\n if (unknown !== undefined)\n return jsonError(\n `$.${unknown}`,\n 'no extra top-level authoring fields',\n value[unknown],\n 'keep the v3 document to packageId+assets or packageId+parent+values',\n );\n const packageResult = parsePackageId(value.packageId, '$.packageId');\n if (!packageResult.ok) return packageResult;\n const hasAssets = Object.hasOwn(value, 'assets');\n const hasParent = Object.hasOwn(value, 'parent');\n const hasValues = Object.hasOwn(value, 'values');\n if (hasAssets && (hasParent || hasValues))\n return jsonError(\n '$',\n 'assets or parent+values, never both',\n value,\n 'direct and instance branches are mutually exclusive',\n );\n if (hasAssets) {\n if (!isRecord(value.assets))\n return jsonError(\n '$.assets',\n 'a sourceKey to asset object',\n value.assets,\n 'direct assets are not an object',\n );\n const assets: Record<string, DirectPackJsonAsset> = {};\n for (const [sourceKey, entry] of Object.entries(value.assets)) {\n if (!isValidPackSourceKey(sourceKey))\n return failure(sourceKeyFailure(sourceKey, `$.assets.${sourceKey}`));\n const parsed = parsePackJsonAsset(entry, sourceKey);\n if (!parsed.ok) return parsed;\n assets[sourceKey] = parsed.value;\n }\n return ok({\n format: 'direct',\n schemaVersion: '3.0.0',\n packageId: packageResult.value,\n assets: Object.freeze(assets),\n });\n }\n if (!hasParent || !hasValues || hasAssets)\n return jsonError(\n '$',\n 'parent and values for an instance document',\n value,\n 'instance branch is incomplete',\n );\n const parentResult = parsePackageId(value.parent, '$.parent');\n if (!parentResult.ok) return parentResult;\n if (!isRecord(value.values))\n return jsonError(\n '$.values',\n 'a sparse parameter object',\n value.values,\n 'instance values are not an object',\n );\n return ok({\n format: 'instance',\n schemaVersion: '3.0.0',\n packageId: packageResult.value,\n parent: parentResult.value,\n values: Object.freeze({ ...value.values }),\n });\n}\n\nexport interface DirectPackAssetProjection extends DirectPackJsonAsset {\n readonly guid: string;\n readonly sourceKey: string;\n}\n\nexport interface DirectPackProjection {\n readonly packageId: string;\n readonly assets: readonly DirectPackAssetProjection[];\n}\n\n/** Add the computed GUIDs needed by the ordinary Pack v2 publication path. */\nexport function projectDirectPackJson(\n value: ParsedDirectPackJson | DirectPackJson,\n): Result<DirectPackProjection, PackAuthoringError> {\n const parsed = 'format' in value ? ok(value) : parsePackSourceJson(value);\n if (!parsed.ok) return parsed;\n if (parsed.value.format !== 'direct') {\n return failure(\n authoringError(\n 'pack-parameter-invalid',\n 'a direct v3 pack.json',\n 'projectDirectPackJson accepts the direct branch only',\n { observed: parsed.value.format },\n ),\n );\n }\n const assets: DirectPackAssetProjection[] = [];\n for (const [sourceKey, entry] of Object.entries(parsed.value.assets).sort(([left], [right]) =>\n left.localeCompare(right),\n )) {\n assets.push({\n ...entry,\n guid: AssetGuidCodec.format(AssetGuidCodec.derive(parsed.value.packageId, sourceKey)),\n sourceKey,\n });\n }\n return ok({ packageId: PackageId.format(parsed.value.packageId), assets: Object.freeze(assets) });\n}\n\nexport interface PackParameterRootSubject {\n readonly format: 'source';\n readonly packageId: PackageId;\n readonly parameters: readonly PackParameterDefinition[];\n}\n\nexport interface PackParameterInstanceSubject {\n readonly format: 'instance';\n readonly packageId: PackageId;\n readonly parent: PackageId;\n readonly values: Readonly<Record<string, unknown>>;\n}\n\nexport interface PackDirectSubject {\n readonly format: 'direct';\n readonly packageId: PackageId;\n}\n\nexport type PackParameterInheritanceSubject =\n | PackParameterRootSubject\n | PackParameterInstanceSubject\n | PackDirectSubject;\n\nexport interface ResolvedPackParameterInheritance {\n readonly packageId: PackageId;\n readonly rootPackageId: PackageId;\n readonly values: Readonly<Record<string, PackParameterValue>>;\n readonly parentChain: readonly string[];\n readonly parameters: readonly PackParameterDefinition[];\n}\n\nexport type PackParameterSubjectReader = (\n packageId: PackageId,\n) =>\n | PackParameterInheritanceSubject\n | undefined\n | Promise<PackParameterInheritanceSubject | undefined>;\n\nfunction subjectId(subject: PackParameterInheritanceSubject): string {\n return PackageId.format(subject.packageId).toLowerCase();\n}\n\n/** Resolve one finite parent chain. Every instance keeps its own packageId. */\nexport async function resolvePackParameterInheritance(\n subject: PackParameterInheritanceSubject,\n readParent: PackParameterSubjectReader,\n): Promise<Result<ResolvedPackParameterInheritance, PackAuthoringError>> {\n const visited = new Set<string>();\n\n async function visit(\n current: PackParameterInheritanceSubject,\n path: readonly string[],\n ): Promise<Result<ResolvedPackParameterInheritance, PackAuthoringError>> {\n const currentId = subjectId(current);\n if (visited.has(currentId) || path.includes(currentId)) {\n return failure(\n authoringError(\n 'pack-parent-cycle',\n 'a finite acyclic Pack parent chain',\n 'inspect parentChain and repair the first repeated packageId',\n { packageId: currentId, parentChain: [...path, currentId] },\n ),\n );\n }\n visited.add(currentId);\n const nextPath = [...path, currentId];\n if (current.format === 'direct') {\n return failure(\n authoringError(\n 'pack-parent-has-no-parameters',\n 'a ScriptablePack source with parameters as the parent',\n 'direct packs cannot be instance parents; point the instance at a ScriptablePack source with parameters',\n { packageId: currentId },\n ),\n );\n }\n if (current.format === 'source') {\n const descriptors = validateParameterDefinitions(current.parameters, '$.parameters');\n if (!descriptors.ok) return descriptors;\n if (descriptors.value.length === 0) {\n return failure(\n authoringError(\n 'pack-parent-has-no-parameters',\n 'the parent source to declare a non-empty parameter list',\n 'use clone for an independent zero-parameter Pack instead of creating an empty instance',\n { packageId: currentId },\n ),\n );\n }\n const definition = {\n schemaVersion: '2.0.0',\n packageId: current.packageId,\n parameters: descriptors.value as NonEmptyParameters,\n build: () => ok({}),\n } as ScriptablePackDefinition<NonEmptyParameters>;\n const values = resolvePackParameterValues(definition);\n if (!values.ok) return values;\n return ok({\n packageId: current.packageId,\n rootPackageId: current.packageId,\n values: values.value,\n parentChain: [],\n parameters: descriptors.value,\n });\n }\n const parent = await readParent(current.parent);\n if (parent === undefined) {\n return failure(\n authoringError(\n 'pack-parent-not-found',\n 'the parent packageId to resolve in the source index',\n 'inspect the parent locator or recreate the instance from a live ScriptablePack with parameters',\n { packageId: currentId, parent: PackageId.format(current.parent) },\n ),\n );\n }\n if (\n PackageId.format(parent.packageId).toLowerCase() !==\n PackageId.format(current.parent).toLowerCase()\n ) {\n return failure(\n authoringError(\n 'pack-parent-not-found',\n 'the parent reader to return the requested packageId',\n 'repair the Source Index locator and retry inheritance resolution',\n {\n packageId: currentId,\n requestedParent: PackageId.format(current.parent),\n observedParent: PackageId.format(parent.packageId),\n },\n ),\n );\n }\n const resolvedParent = await visit(parent, nextPath);\n if (!resolvedParent.ok) return resolvedParent;\n const descriptors = resolvedParent.value.parameters;\n const definition = {\n schemaVersion: '2.0.0',\n packageId: resolvedParent.value.rootPackageId,\n parameters: descriptors as NonEmptyParameters,\n build: () => ok({}),\n } as ScriptablePackDefinition<NonEmptyParameters>;\n const values = resolvePackParameterValues(\n definition,\n current.values,\n resolvedParent.value.values,\n );\n if (!values.ok) return values;\n return ok({\n packageId: current.packageId,\n rootPackageId: resolvedParent.value.rootPackageId,\n values: values.value,\n parentChain: [PackageId.format(current.parent), ...resolvedParent.value.parentChain],\n parameters: descriptors,\n });\n }\n\n return visit(subject, []);\n}\n\nexport const resolvePackInheritance = resolvePackParameterInheritance;\n\nexport const PACK_AUTHORING_OPERATION_IDS = [\n 'asset.list',\n 'asset.inspect',\n 'asset.resolve',\n 'asset.verify',\n 'asset-source.create',\n 'asset-source.clone',\n 'asset-source.create-instance',\n 'asset-source.apply-values',\n 'asset-source.rebuild',\n 'asset-source.cold-cook',\n] as const;\n\nexport type PackAuthoringOperationId = (typeof PACK_AUTHORING_OPERATION_IDS)[number];\n\nexport interface PackAuthoringOperation {\n readonly requestId: string;\n readonly expectedRevision?: string;\n readonly operation: PackAuthoringOperationId;\n readonly subject?: string;\n readonly sourcePath?: string;\n readonly targetPath?: string;\n readonly packageId?: string;\n /** Parent package identity used by asset-source.create-instance. */\n readonly parentPackageId?: string;\n /** JSON-facing alias accepted by adapters at the operation boundary. */\n readonly parent?: string;\n readonly sourceKey?: string;\n readonly values?: Readonly<Record<string, unknown>>;\n /** `pack.ts` or `pack.json`; omitted defaults to the target extension. */\n readonly format?: 'pack.ts' | 'pack.json';\n /** Direct v3 entries for asset-source.create. */\n readonly initialAssets?: Readonly<Record<string, DirectPackJsonAsset>>;\n /** Explicit non-empty parameter declarations for a generated pack.ts scaffold. */\n readonly parameters?: readonly Readonly<Record<string, unknown>>[];\n /** Required proof level for asset.resolve. */\n readonly require?: 'identity' | 'present' | 'ready';\n}\n\nexport type PackAuthoringResolutionStatus = 'identity' | 'present' | 'ready';\n\nexport interface PackAuthoringOperationResult {\n readonly operation: PackAuthoringOperationId;\n readonly requestId: string;\n readonly schemaVersion?: 'asset-verification-v1';\n readonly sourcePath?: string;\n readonly targetPath?: string;\n readonly revision?: string;\n readonly packageId?: string;\n readonly parentPackageId?: string;\n readonly sourceKey?: string;\n readonly guid?: string;\n readonly format?: 'pack.ts' | 'pack.json' | 'direct' | 'instance';\n readonly status?: PackAuthoringResolutionStatus;\n readonly kind?: string;\n readonly parameters?: readonly Readonly<Record<string, unknown>>[];\n readonly values?: Readonly<Record<string, unknown>>;\n readonly effectiveValues?: Readonly<Record<string, unknown>>;\n readonly parentChain?: readonly string[];\n readonly assets?: readonly Readonly<Record<string, unknown>>[];\n readonly sources?: readonly Readonly<Record<string, unknown>>[];\n readonly capabilities?: readonly PackAuthoringOperationId[];\n readonly snapshot?: {\n readonly sourceCount: number;\n readonly assetCount: number;\n };\n /** Bounded source/output facts for read-only verification consumers. */\n readonly scope?: {\n readonly sourceCount: number;\n readonly assetCount: number;\n readonly sourcePaths: readonly string[];\n readonly omittedSourceCount: number;\n readonly assetLimit: number;\n readonly truncated: boolean;\n readonly scriptablePackSourceCount: number;\n readonly scriptablePackSources: readonly {\n readonly sourcePath: string;\n readonly packageId: string;\n readonly output: 'unproduced';\n readonly reason: 'producer-not-run';\n }[];\n readonly omittedScriptablePackSourceCount: number;\n };\n readonly summary?: {\n readonly assetCount: number;\n readonly emittedAssetCount: number;\n readonly materialCount: number;\n readonly unproducedAssetCount: number;\n readonly unknownAssetCount: number;\n readonly unmaterializedScriptablePackCount: number;\n };\n}\n\nexport interface PackAuthoringGatewayPort<TResult = unknown> {\n execute(operation: PackAuthoringOperation): Promise<Result<TResult, PackAuthoringError>>;\n}\n\n/** One idempotent gateway wrapper shared by Editor and CLI adapters. */\nexport function createPackAuthoringGateway<TResult = unknown>(\n port: PackAuthoringGatewayPort<TResult>,\n): PackAuthoringGatewayPort<TResult> {\n const requests = new Map<\n string,\n { fingerprint: string; result: Promise<Result<TResult, PackAuthoringError>> }\n >();\n return {\n execute(operation) {\n if (typeof operation.requestId !== 'string' || operation.requestId.trim().length === 0) {\n return Promise.resolve(\n failure(\n authoringError(\n 'pack-source-revision-conflict',\n 'a non-empty caller-minted requestId',\n 'mint a new requestId and retry',\n { requestId: operation.requestId },\n ),\n ),\n );\n }\n let fingerprint: string;\n try {\n fingerprint = JSON.stringify(operation);\n } catch (cause) {\n return Promise.resolve(\n failure(\n authoringError(\n 'pack-parameter-invalid',\n 'a JSON-serialisable authoring operation',\n 'remove non-serialisable operation fields and retry with a new requestId',\n {\n requestId: operation.requestId,\n cause: cause instanceof Error ? cause.message : String(cause),\n },\n ),\n ),\n );\n }\n const previous = requests.get(operation.requestId);\n if (previous !== undefined) {\n if (previous.fingerprint === fingerprint) return previous.result;\n return Promise.resolve(\n failure(\n authoringError(\n 'pack-source-revision-conflict',\n 'one immutable operation per requestId',\n 'read the original result or mint a new requestId',\n { requestId: operation.requestId },\n ),\n ),\n );\n }\n const result = Promise.resolve()\n .then(() => port.execute(operation))\n .catch(\n (cause): Result<TResult, PackAuthoringError> =>\n failure(\n authoringError(\n 'pack-parameter-invalid',\n 'the Pack authoring port to return a structured Result',\n 'repair the gateway port failure, then retry with a new requestId',\n {\n requestId: operation.requestId,\n cause: cause instanceof Error ? cause.message : String(cause),\n },\n ),\n ),\n );\n requests.set(operation.requestId, { fingerprint, result });\n return result;\n },\n };\n}\n\nexport const PACK_AUTHORING_OPERATION_DESCRIPTORS = PACK_AUTHORING_OPERATION_IDS.map((id) => ({\n id,\n domain: id.startsWith('asset-source.') ? 'session' : 'asset',\n readOnly: id.startsWith('asset.'),\n requiresRevision: !id.startsWith('asset.') && id !== 'asset-source.create',\n})) as readonly {\n id: PackAuthoringOperationId;\n domain: 'asset' | 'session';\n readOnly: boolean;\n requiresRevision: boolean;\n}[];\n"]}
1
+ {"version":3,"sources":["../src/errors.ts","../src/guid.ts","../src/pack-authoring.ts"],"names":["descriptors","definition","values"],"mappings":"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","file":"pack-authoring.mjs","sourcesContent":["// errors.ts — PackError class (feat-20260513-guid-asset-package-system w15)\n//\n// Four-field surface: .code / .expected / .hint / .detail\n// Structurally parallel to AssetError / RhiError / RemoteError\n// (charter proposition 5 consistent abstraction).\n//\n// .detail is narrowed per .code via PackErrorDetail discriminated union\n// (requirements §6.2 AC-07; plan-strategy §D-5).\n\nimport type { PackErrorCode, PackErrorDetail } from '@forgeax/engine-types';\n\n/**\n * Structured error for the engine-pack disk scanner fail-fast chain.\n *\n * AI users consume via exhaustive switch on .code — no default case needed:\n * ```ts\n * switch (err.code) {\n * case 'pack-guid-collision':\n * console.error(err.detail.paths);\n * break;\n * case 'pack-cyclic-reference':\n * console.error(err.detail.cycle);\n * break;\n * // ...all 8 cases\n * }\n * ```\n */\nexport class PackError extends Error {\n readonly code: PackErrorCode;\n readonly expected: string;\n readonly hint: string;\n readonly detail: PackErrorDetail;\n\n constructor(args: {\n code: PackErrorCode;\n expected: string;\n hint: string;\n detail: PackErrorDetail;\n }) {\n super(`[PackError ${args.code}] expected: ${args.expected}; hint: ${args.hint}`);\n this.name = 'PackError';\n this.code = args.code;\n this.expected = args.expected;\n this.hint = args.hint;\n this.detail = args.detail;\n }\n}\n","import { sha1 } from '@noble/hashes/legacy.js';\nimport { uuidv7obj } from 'uuidv7';\nimport { PackError } from './errors.js';\n\n/**\n * 16-byte UUID branded ABI. Prevents assignment from plain Uint8Array or string.\n * Brand field mirrors the declaration in @forgeax/engine-types for cross-package\n * structural compatibility (both use __guidBrand: 'AssetGuid').\n */\nexport type AssetGuid = Uint8Array & { readonly __guidBrand: 'AssetGuid' };\n\n/** Pack-level identity. It is intentionally not assignable to AssetGuid. */\nexport type PackageId = Uint8Array & { readonly __packageIdBrand: 'PackageId' };\n\n/** Minimal Result alias for this module (structurally compatible with ScanResult). */\nexport type GuidResult<T, E> =\n | { readonly ok: true; readonly value: T }\n | { readonly ok: false; readonly error: E };\n\nfunction brand(bytes: Uint8Array): AssetGuid {\n return bytes as AssetGuid;\n}\n\nconst HEX_BYTE = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n\nfunction bytesToDashForm(bytes: Uint8Array): string {\n const h = HEX_BYTE;\n // biome-ignore lint/style/noNonNullAssertion: length guaranteed 16\n return `${h[bytes[0]!]}${h[bytes[1]!]}${h[bytes[2]!]}${h[bytes[3]!]}-${h[bytes[4]!]}${h[bytes[5]!]}-${h[bytes[6]!]}${h[bytes[7]!]}-${h[bytes[8]!]}${h[bytes[9]!]}-${h[bytes[10]!]}${h[bytes[11]!]}${h[bytes[12]!]}${h[bytes[13]!]}${h[bytes[14]!]}${h[bytes[15]!]}`;\n}\n\nconst UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\n/** Stable author-owned output identity. Paths and payloads are not identity inputs. */\nexport const PACK_SOURCE_KEY_RE = /^[a-z0-9][a-z0-9._-]*(\\/[a-z0-9][a-z0-9._-]*)*$/;\n\nexport function isValidPackSourceKey(value: unknown): value is string {\n return typeof value === 'string' && PACK_SOURCE_KEY_RE.test(value);\n}\n\nexport function isValidAssetGuidString(value: unknown): value is string {\n return typeof value === 'string' && UUID_RE.test(value);\n}\n\nfunction dashFormToBytes(dashForm: string): Uint8Array {\n const hex = dashForm.replace(/-/g, '');\n const bytes = new Uint8Array(16);\n for (let i = 0; i < 16; i++) {\n bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);\n }\n return bytes;\n}\n\nfunction randomUuidBytes(): Uint8Array {\n const uuid = uuidv7obj();\n const bytes = new Uint8Array(16);\n bytes.set(uuid.bytes);\n return bytes;\n}\n\nfunction packageId(value: Uint8Array): PackageId {\n return value as PackageId;\n}\n\n/** Utilities for the pack-level UUID identity. */\nexport const PackageId = {\n parse(dashForm: string): GuidResult<PackageId, PackError> {\n const parsed = AssetGuid.parse(dashForm);\n return parsed.ok ? { ok: true, value: packageId(parsed.value) } : parsed;\n },\n format(value: PackageId): string {\n return bytesToDashForm(value);\n },\n random(): PackageId {\n return packageId(randomUuidBytes());\n },\n} as const;\n\nfunction derivedGuid(namespace: PackageId, sourceKey: string): AssetGuid {\n if (!(namespace instanceof Uint8Array) || namespace.byteLength !== 16) {\n throw new TypeError('AssetGuid.derive requires a 16-byte PackageId');\n }\n if (!isValidPackSourceKey(sourceKey)) {\n const error = new TypeError(\n `AssetGuid.derive received invalid sourceKey ${JSON.stringify(sourceKey)}`,\n ) as TypeError & { readonly code?: string };\n Object.defineProperty(error, 'code', { value: 'pack-source-key-invalid' });\n throw error;\n }\n const name = new TextEncoder().encode(sourceKey);\n const input = new Uint8Array(namespace.byteLength + name.byteLength);\n input.set(namespace, 0);\n input.set(name, namespace.byteLength);\n const digest = sha1(input);\n const result = digest.slice(0, 16);\n // RFC 4122 §4.1.1 / §4.1.3: UUID version 5, RFC variant.\n result[6] = ((result[6] ?? 0) & 0x0f) | 0x50;\n result[8] = ((result[8] ?? 0) & 0x3f) | 0x80;\n return brand(result);\n}\n\n/**\n * Utilities for the AssetGuid branded 16-byte UUID type.\n * Declare the type via `import type { AssetGuid } from '@forgeax/engine-pack/guid'`\n * or `import type { AssetGuid } from '@forgeax/engine-types'`.\n */\nexport const AssetGuid = {\n /**\n * Parse a 36-char RFC 4122 dash-form UUID string into an AssetGuid.\n * Returns Ok(AssetGuid) on success or Err(PackError) with code 'pack-guid-malformed' on failure.\n * Never throws for expected failures (requirements §4.2 / §14 / charter proposition 4).\n */\n parse(dashForm: string): GuidResult<AssetGuid, PackError> {\n if (!isValidAssetGuidString(dashForm)) {\n return {\n ok: false,\n error: new PackError({\n code: 'pack-guid-malformed',\n expected: '36-char RFC 4122 dash-form UUID',\n hint: 'use AssetGuid.random() or a UUIDv7 generator; all GUID fields must be 36-char RFC 4122 dash-form',\n detail: {\n raw: dashForm,\n reason: 'expected 36-char RFC 4122 dash-form UUID',\n },\n }),\n };\n }\n return { ok: true, value: brand(dashFormToBytes(dashForm)) };\n },\n\n /**\n * Format an AssetGuid as a 36-char RFC 4122 lowercase dash-form string.\n */\n format(guid: AssetGuid): string {\n return bytesToDashForm(guid);\n },\n\n /**\n * Test byte-by-byte equality between two AssetGuids.\n */\n equals(a: AssetGuid, b: AssetGuid): boolean {\n for (let i = 0; i < 16; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n },\n\n /**\n * Mint a new time-ordered UUIDv7 as an AssetGuid.\n * Works in both Node.js and browser environments.\n */\n random(): AssetGuid {\n return brand(randomUuidBytes());\n },\n\n /** Derive the stable UUIDv5 projection for one Pack subject and sourceKey. */\n derive(namespace: PackageId, sourceKey: string): AssetGuid {\n return derivedGuid(namespace, sourceKey);\n },\n} as const;\n","import type { Asset, AssetGuid, Result } from '@forgeax/engine-types';\nimport { err, ok } from '@forgeax/engine-types';\nimport {\n AssetGuid as AssetGuidCodec,\n isValidAssetGuidString,\n isValidPackSourceKey,\n PackageId,\n} from './guid.js';\nimport type { ScriptablePackSceneComponentInput } from './scriptable-pack.js';\n\n/** Values deliberately stay finite and serialisable at the authoring boundary. */\nexport type PackParameterScalar = boolean | number | string;\nexport type PackParameterValue = PackParameterScalar | readonly number[] | AssetGuid;\n\nexport type PackParameterType =\n | 'bool'\n | 'u32'\n | 'i32'\n | 'f32'\n | 'f64'\n | 'string'\n | 'enum'\n | 'vec2'\n | 'vec3'\n | 'vec4'\n | 'color'\n | 'asset-guid';\n\nexport const PACK_PARAMETER_TYPES = [\n 'bool',\n 'u32',\n 'i32',\n 'f32',\n 'f64',\n 'string',\n 'enum',\n 'vec2',\n 'vec3',\n 'vec4',\n 'color',\n 'asset-guid',\n] as const satisfies readonly PackParameterType[];\n\nexport interface PackParameterDefinition<\n TName extends string = string,\n TType extends PackParameterType = PackParameterType,\n TDefault extends PackParameterValue = PackParameterValue,\n> {\n readonly name: TName;\n readonly type: TType;\n readonly default: TDefault;\n readonly minimum?: number;\n readonly maximum?: number;\n /** Closed choices are required for `enum` and forbidden for other types. */\n readonly values?: readonly PackParameterScalar[];\n /** Optional authoring-only kind constraint for asset GUID parameters. */\n readonly kind?: Asset['kind'];\n}\n\nexport type PackParameterValueFor<T extends PackParameterType> = T extends 'bool'\n ? boolean\n : T extends 'u32' | 'i32' | 'f32' | 'f64'\n ? number\n : T extends 'string' | 'enum'\n ? string\n : T extends 'vec2'\n ? readonly [number, number]\n : T extends 'vec3'\n ? readonly [number, number, number]\n : T extends 'vec4' | 'color'\n ? readonly [number, number, number, number]\n : T extends 'asset-guid'\n ? AssetGuid\n : never;\n\nexport type PackParameterValues<TParameters extends readonly PackParameterDefinition[]> = Readonly<{\n [TParameter in TParameters[number] as TParameter['name']]: TParameter extends {\n readonly type: infer TType extends PackParameterType;\n }\n ? TType extends 'enum'\n ? TParameter extends { readonly values: readonly (infer TValue)[] }\n ? Extract<TValue, string>\n : string\n : PackParameterValueFor<TType>\n : never;\n}>;\n\nexport interface PackAuthoringError {\n readonly code: PackAuthoringErrorCode;\n readonly expected: string;\n readonly hint: string;\n readonly actual?: string;\n readonly detail: Readonly<Record<string, unknown>>;\n}\n\nexport type PackAuthoringErrorCode =\n | 'pack-package-id-invalid'\n | 'pack-package-id-collision'\n | 'pack-source-key-invalid'\n | 'pack-guid-collision'\n | 'pack-parent-not-found'\n | 'pack-parent-cycle'\n | 'pack-parent-has-no-parameters'\n | 'pack-parameter-invalid'\n | 'pack-content-dependency-stalled'\n | 'pack-output-reference-missing'\n | 'pack-output-reference-conflict'\n | 'pack-output-not-materialized'\n | 'asset-not-ready'\n | 'pack-source-revision-conflict'\n | 'pack-source-path-invalid'\n | 'pack-source-not-found'\n | 'pack-source-mutation-unsupported'\n | 'pack-source-write-failed';\n\nfunction authoringError(\n code: PackAuthoringErrorCode,\n expected: string,\n hint: string,\n detail: Readonly<Record<string, unknown>> = {},\n actual?: string,\n): PackAuthoringError {\n return {\n code,\n expected,\n hint,\n ...(actual === undefined ? {} : { actual }),\n detail,\n };\n}\n\nfunction failure<T = never>(error: PackAuthoringError): Result<T, PackAuthoringError> {\n return err(error);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validateSceneComponents(\n value: unknown,\n): Result<readonly ScriptablePackSceneComponentInput[] | undefined, PackAuthoringError> {\n if (value === undefined) return ok(undefined);\n if (!Array.isArray(value)) {\n return failure(\n parameterFailure(\n '$.sceneComponents',\n 'an array of component schema records',\n value,\n 'sceneComponents is not an array',\n ),\n );\n }\n const components: ScriptablePackSceneComponentInput[] = [];\n const names = new Set<string>();\n for (const [componentIndex, candidate] of value.entries()) {\n if (!isRecord(candidate) || typeof candidate.name !== 'string' || !isRecord(candidate.fields)) {\n return failure(\n parameterFailure(\n `$.sceneComponents[${componentIndex}]`,\n 'a component record with name and fields',\n candidate,\n 'scene component schema is malformed',\n ),\n );\n }\n if (candidate.name.length === 0 || names.has(candidate.name)) {\n return failure(\n parameterFailure(\n `$.sceneComponents[${componentIndex}].name`,\n 'a non-empty unique component name',\n candidate.name,\n 'scene component names must be unique',\n ),\n );\n }\n names.add(candidate.name);\n const fields: Record<string, string | { readonly type: string }> = {};\n for (const [fieldName, field] of Object.entries(candidate.fields)) {\n if (\n (typeof field === 'string' && field.length === 0) ||\n (typeof field !== 'string' &&\n (!isRecord(field) || typeof field.type !== 'string' || field.type.length === 0))\n ) {\n return failure(\n parameterFailure(\n `$.sceneComponents[${componentIndex}].fields.${fieldName}`,\n 'a field type string or { type: string }',\n field,\n 'scene component field schema is malformed',\n ),\n );\n }\n fields[fieldName] = field as string | { readonly type: string };\n }\n components.push({ name: candidate.name, fields });\n }\n return ok(components);\n}\n\nfunction isPackageId(value: unknown): value is PackageId {\n return value instanceof Uint8Array && value.byteLength === 16;\n}\n\nfunction cloneValue<T>(value: T): T {\n if (value instanceof Uint8Array) return value.slice() as T;\n if (Array.isArray(value)) return value.map((item) => cloneValue(item)) as T;\n return value;\n}\n\nfunction sourceKeyFailure(sourceKey: unknown, propertyPath = '$.sourceKey'): PackAuthoringError {\n return authoringError(\n 'pack-source-key-invalid',\n 'a sourceKey matching ^[a-z0-9][a-z0-9._-]*(/[a-z0-9][a-z0-9._-]*)*$',\n 'use a stable lower-case semantic key; do not derive it from file paths or output order',\n { propertyPath, sourceKey },\n typeof sourceKey === 'string' ? sourceKey : undefined,\n );\n}\n\nfunction parameterFailure(\n propertyPath: string,\n expected: string,\n actual: unknown,\n reason: string,\n): PackAuthoringError {\n return authoringError(\n 'pack-parameter-invalid',\n expected,\n 'repair the parameter declaration or the instance values, then inspect and rebuild',\n { propertyPath, reason, actual: typeof actual === 'string' ? actual : JSON.stringify(actual) },\n );\n}\n\nfunction numericType(type: PackParameterType): boolean {\n return type === 'u32' || type === 'i32' || type === 'f32' || type === 'f64';\n}\n\nfunction vectorLength(type: PackParameterType): number | undefined {\n switch (type) {\n case 'vec2':\n return 2;\n case 'vec3':\n return 3;\n case 'vec4':\n case 'color':\n return 4;\n default:\n return undefined;\n }\n}\n\nfunction parameterValueError(\n parameter: PackParameterDefinition,\n value: unknown,\n propertyPath: string,\n): PackAuthoringError | undefined {\n const { type } = parameter;\n if (type === 'bool') {\n return typeof value === 'boolean'\n ? undefined\n : parameterFailure(propertyPath, 'a boolean', value, 'bool value has the wrong type');\n }\n if (numericType(type)) {\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n return parameterFailure(\n propertyPath,\n 'a finite number',\n value,\n 'numeric value is not finite',\n );\n }\n if ((type === 'u32' || type === 'i32') && !Number.isInteger(value)) {\n return parameterFailure(\n propertyPath,\n 'an integer',\n value,\n 'integer parameter received a fraction',\n );\n }\n if (type === 'u32' && (value < 0 || value > 0xffff_ffff)) {\n return parameterFailure(\n propertyPath,\n 'an unsigned 32-bit integer',\n value,\n 'u32 value is outside [0, 2^32 - 1]',\n );\n }\n if (type === 'i32' && (value < -0x8000_0000 || value > 0x7fff_ffff)) {\n return parameterFailure(\n propertyPath,\n 'a signed 32-bit integer',\n value,\n 'i32 value is outside [-2^31, 2^31 - 1]',\n );\n }\n if (type === 'f32' && !Number.isFinite(Math.fround(value))) {\n return parameterFailure(\n propertyPath,\n 'a finite IEEE-754 32-bit float',\n value,\n 'f32 value overflows binary32',\n );\n }\n if (parameter.minimum !== undefined && value < parameter.minimum) {\n return parameterFailure(\n propertyPath,\n `a number >= ${parameter.minimum}`,\n value,\n 'value is below minimum',\n );\n }\n if (parameter.maximum !== undefined && value > parameter.maximum) {\n return parameterFailure(\n propertyPath,\n `a number <= ${parameter.maximum}`,\n value,\n 'value is above maximum',\n );\n }\n return undefined;\n }\n if (type === 'string') {\n return typeof value === 'string'\n ? undefined\n : parameterFailure(propertyPath, 'a string', value, 'string parameter has the wrong type');\n }\n if (type === 'enum') {\n if (typeof value !== 'string') {\n return parameterFailure(\n propertyPath,\n 'one of the declared enum strings',\n value,\n 'enum value has the wrong type',\n );\n }\n if (parameter.values === undefined || !parameter.values.includes(value)) {\n return parameterFailure(\n propertyPath,\n 'one of the declared enum values',\n value,\n 'enum value is not declared',\n );\n }\n return undefined;\n }\n const length = vectorLength(type);\n if (length !== undefined) {\n if (\n !Array.isArray(value) ||\n value.length !== length ||\n value.some((component) => typeof component !== 'number' || !Number.isFinite(component))\n ) {\n return parameterFailure(\n propertyPath,\n `a finite numeric vector with ${length} components`,\n value,\n 'vector value has the wrong shape',\n );\n }\n if (type === 'color' && value.some((component) => component < 0 || component > 1)) {\n return parameterFailure(\n propertyPath,\n 'an RGBA color with components in [0, 1]',\n value,\n 'color component is outside [0, 1]',\n );\n }\n return undefined;\n }\n if (type === 'asset-guid') {\n const validString = typeof value === 'string' && isValidAssetGuidString(value);\n if (!(value instanceof Uint8Array && value.byteLength === 16) && !validString) {\n return parameterFailure(\n propertyPath,\n 'a 16-byte AssetGuid or UUID string',\n value,\n 'asset GUID value is malformed',\n );\n }\n return undefined;\n }\n return parameterFailure(\n propertyPath,\n 'a supported Pack parameter type',\n value,\n 'unknown parameter type',\n );\n}\n\nfunction normalizeParameterValue(\n parameter: PackParameterDefinition,\n value: unknown,\n propertyPath: string,\n): Result<PackParameterValue, PackAuthoringError> {\n const error = parameterValueError(parameter, value, propertyPath);\n if (error !== undefined) return failure(error);\n if (parameter.type === 'asset-guid' && typeof value === 'string') {\n const parsed = AssetGuidCodec.parse(value);\n if (!parsed.ok) {\n return failure(\n parameterFailure(\n propertyPath,\n 'a valid AssetGuid UUID string',\n value,\n 'asset GUID parser rejected the value',\n ),\n );\n }\n return ok(parsed.value);\n }\n return ok(cloneValue(value as PackParameterValue));\n}\n\nfunction validateParameterDefinitions(\n parameters: unknown,\n propertyPath = '$.parameters',\n): Result<readonly PackParameterDefinition[], PackAuthoringError> {\n if (!Array.isArray(parameters) || parameters.length === 0) {\n return failure(\n parameterFailure(\n propertyPath,\n 'a non-empty parameter descriptor array',\n parameters,\n 'parameters must be explicit and non-empty',\n ),\n );\n }\n const names = new Set<string>();\n const normalized: PackParameterDefinition[] = [];\n for (const [index, candidate] of parameters.entries()) {\n const path = `${propertyPath}[${index}]`;\n if (!isRecord(candidate))\n return failure(\n parameterFailure(\n path,\n 'a parameter descriptor object',\n candidate,\n 'descriptor is not an object',\n ),\n );\n const name = candidate.name;\n if (typeof name !== 'string' || !/^[A-Za-z][A-Za-z0-9_.-]*$/.test(name)) {\n return failure(\n parameterFailure(\n `${path}.name`,\n 'a unique identifier-like parameter name',\n name,\n 'parameter name is invalid',\n ),\n );\n }\n if (names.has(name))\n return failure(\n parameterFailure(\n `${path}.name`,\n 'a unique parameter name',\n name,\n 'parameter name is duplicated',\n ),\n );\n names.add(name);\n const unknown = Object.keys(candidate).find(\n (key) => !['name', 'type', 'default', 'minimum', 'maximum', 'values', 'kind'].includes(key),\n );\n if (unknown !== undefined) {\n return failure(\n parameterFailure(\n `${path}.${unknown}`,\n 'only name, type, default, minimum, maximum, values, and kind fields',\n candidate[unknown],\n 'parameter descriptors are a closed authoring schema',\n ),\n );\n }\n const type = candidate.type;\n if (typeof type !== 'string' || !(PACK_PARAMETER_TYPES as readonly string[]).includes(type)) {\n return failure(\n parameterFailure(\n `${path}.type`,\n PACK_PARAMETER_TYPES.join(' | '),\n type,\n 'parameter type is not supported',\n ),\n );\n }\n const typed = {\n ...candidate,\n name,\n type: type as PackParameterType,\n } as PackParameterDefinition;\n if (typed.values !== undefined) {\n if (\n typed.type !== 'enum' ||\n !Array.isArray(typed.values) ||\n typed.values.length === 0 ||\n typed.values.some((item) => typeof item !== 'string') ||\n new Set(typed.values).size !== typed.values.length\n ) {\n return failure(\n parameterFailure(\n `${path}.values`,\n 'unique non-empty strings for enum',\n typed.values,\n 'enum values are malformed',\n ),\n );\n }\n } else if (typed.type === 'enum') {\n return failure(\n parameterFailure(\n `${path}.values`,\n 'a non-empty enum choices array',\n typed.values,\n 'enum has no choices',\n ),\n );\n }\n if (\n typed.kind !== undefined &&\n (typed.type !== 'asset-guid' || typeof typed.kind !== 'string')\n ) {\n return failure(\n parameterFailure(\n `${path}.kind`,\n 'a kind constraint only on asset-guid parameters',\n typed.kind,\n 'kind is misplaced',\n ),\n );\n }\n for (const field of ['minimum', 'maximum'] as const) {\n const bound = typed[field];\n if (bound !== undefined && (typeof bound !== 'number' || !Number.isFinite(bound))) {\n return failure(\n parameterFailure(\n `${path}.${field}`,\n 'a finite numeric bound',\n bound,\n 'numeric bound is invalid',\n ),\n );\n }\n }\n if (!numericType(typed.type) && (typed.minimum !== undefined || typed.maximum !== undefined)) {\n return failure(\n parameterFailure(\n path,\n 'minimum/maximum only on numeric parameters',\n typed,\n 'numeric bounds are not meaningful for this parameter type',\n ),\n );\n }\n if (\n typed.minimum !== undefined &&\n typed.maximum !== undefined &&\n typed.minimum > typed.maximum\n ) {\n return failure(\n parameterFailure(path, 'minimum <= maximum', typed, 'numeric bounds are reversed'),\n );\n }\n const defaultResult = normalizeParameterValue(typed, typed.default, `${path}.default`);\n if (!defaultResult.ok) return defaultResult;\n normalized.push({\n ...typed,\n default: defaultResult.value,\n ...(typed.values === undefined ? {} : { values: Object.freeze([...typed.values]) }),\n });\n }\n return ok(Object.freeze(normalized));\n}\n\nexport interface PackBuildReadContext {\n readByGuid<TAsset extends Asset | PackCookSource = Asset>(\n guid: AssetGuid,\n ): Promise<Result<TAsset, unknown>>;\n}\n\nexport interface PackBuildContextWithoutParameters extends PackBuildReadContext {\n readonly packageId: PackageId;\n}\n\nexport interface PackBuildContextWithParameters<\n TParameters extends readonly PackParameterDefinition[],\n> extends PackBuildReadContext {\n readonly packageId: PackageId;\n readonly values: PackParameterValues<TParameters>;\n}\n\nexport type PackBuildContext<TParameters extends readonly PackParameterDefinition[] | undefined> =\n TParameters extends readonly PackParameterDefinition[]\n ? PackBuildContextWithParameters<TParameters>\n : PackBuildContextWithoutParameters;\n\n/** Build-only custom source. The host derives identity and invokes the kind's NativeCooker. */\nexport interface PackCookSource {\n readonly kind: string;\n readonly execution: 'cooked';\n readonly source: unknown;\n}\n\nexport type PackOutputMap = Readonly<Record<string, Asset | PackCookSource>>;\nexport type PackBuildResult<TError = unknown> =\n | Result<PackOutputMap, TError>\n | Promise<Result<PackOutputMap, TError>>;\n\ninterface PackDefinitionBase {\n readonly schemaVersion: '2.0.0';\n readonly packageId: PackageId;\n readonly name?: string;\n /** Neutral component schemas used only to externalize SceneAsset refs at cook time. */\n readonly sceneComponents?: readonly ScriptablePackSceneComponentInput[];\n}\n\nexport type ScriptablePackDefinition<\n TParameters extends readonly PackParameterDefinition[] | undefined = undefined,\n> = PackDefinitionBase &\n (TParameters extends readonly PackParameterDefinition[]\n ? {\n readonly parameters: TParameters;\n readonly build: (context: PackBuildContextWithParameters<TParameters>) => PackBuildResult;\n }\n : {\n readonly build: (context: PackBuildContextWithoutParameters) => PackBuildResult;\n });\n\nexport type PackParameterList = readonly [PackParameterDefinition, ...PackParameterDefinition[]];\ntype NonEmptyParameters = PackParameterList;\ntype NoParameterPackInput = PackDefinitionBase & {\n readonly parameters?: never;\n readonly build: (context: PackBuildContextWithoutParameters) => PackBuildResult;\n};\ntype ScriptablePackDefinitionInput<TParameters extends NonEmptyParameters> = PackDefinitionBase & {\n readonly parameters: TParameters;\n readonly build: (context: PackBuildContextWithParameters<TParameters>) => PackBuildResult;\n};\n\n/** Convert a UUID literal into the distinct Pack-level identity brand. */\nexport function definePackageId(value: string | PackageId): PackageId {\n if (isPackageId(value)) return value.slice() as PackageId;\n const parsed = PackageId.parse(value);\n if (!parsed.ok) {\n const error = authoringError(\n 'pack-package-id-invalid',\n 'a 36-character RFC 4122 UUID packageId',\n 'use PackageId.random() or repair the packageId literal before loading the Pack',\n { value },\n value,\n );\n throw Object.assign(new TypeError(error.hint), error);\n }\n return parsed.value;\n}\n\nfunction cloneDefinition(\n definition: ScriptablePackDefinition<NonEmptyParameters> | ScriptablePackDefinition<undefined>,\n): ScriptablePackDefinition<NonEmptyParameters> | ScriptablePackDefinition<undefined> {\n const parameters =\n 'parameters' in definition\n ? Object.freeze(\n definition.parameters.map((parameter) =>\n Object.freeze({\n ...parameter,\n default: cloneValue(parameter.default),\n ...(parameter.values === undefined\n ? {}\n : { values: Object.freeze(parameter.values.map((value) => cloneValue(value))) }),\n }),\n ),\n )\n : undefined;\n const sceneComponents =\n definition.sceneComponents === undefined\n ? undefined\n : Object.freeze(\n definition.sceneComponents.map((component) =>\n Object.freeze({\n name: component.name,\n fields: Object.freeze({ ...component.fields }),\n }),\n ),\n );\n return Object.freeze({\n ...definition,\n packageId: definition.packageId.slice() as PackageId,\n ...(parameters === undefined ? {} : { parameters }),\n ...(sceneComponents === undefined ? {} : { sceneComponents }),\n }) as ScriptablePackDefinition<NonEmptyParameters> | ScriptablePackDefinition<undefined>;\n}\n\n/**\n * Define the only executable authoring shape. A missing `parameters` property\n * is meaningful: its build context has no `values` member.\n */\nexport function definePack(definition: NoParameterPackInput): ScriptablePackDefinition<undefined>;\nexport function definePack<const TParameters extends NonEmptyParameters>(\n definition: ScriptablePackDefinitionInput<TParameters>,\n): ScriptablePackDefinition<TParameters>;\nexport function definePack(\n definition: NoParameterPackInput | ScriptablePackDefinitionInput<NonEmptyParameters>,\n): ScriptablePackDefinition<NonEmptyParameters> | ScriptablePackDefinition<undefined> {\n const validated = validatePackDefinition(definition);\n if (!validated.ok) throw Object.assign(new TypeError(validated.error.hint), validated.error);\n return cloneDefinition(\n validated.value as\n | ScriptablePackDefinition<NonEmptyParameters>\n | ScriptablePackDefinition<undefined>,\n );\n}\n\n/** Union used only at orchestration boundaries that accept either source form. */\nexport type AnyScriptablePackDefinition =\n | ScriptablePackDefinition<PackParameterList>\n | ScriptablePackDefinition<undefined>;\n\nexport interface ScriptablePackSourceMeta {\n readonly schemaVersion: '2.0.0';\n readonly kind: 'scriptable-pack-source';\n readonly packageId: string;\n readonly source: string;\n readonly parameters?: readonly Readonly<Record<string, unknown>>[];\n}\n\n/** Ephemeral scan evidence; it intentionally contains no output GUID table. */\nexport function projectScriptablePackMeta(\n definition: AnyScriptablePackDefinition,\n sourcePath: string,\n): ScriptablePackSourceMeta {\n return {\n schemaVersion: '2.0.0',\n kind: 'scriptable-pack-source',\n packageId: PackageId.format(definition.packageId),\n source: sourcePath,\n ...('parameters' in definition\n ? {\n parameters: definition.parameters.map((parameter) => ({\n name: parameter.name,\n type: parameter.type,\n default: jsonParameterValue(parameter.default),\n ...(parameter.minimum === undefined ? {} : { minimum: parameter.minimum }),\n ...(parameter.maximum === undefined ? {} : { maximum: parameter.maximum }),\n ...(parameter.values === undefined ? {} : { values: parameter.values }),\n ...(parameter.kind === undefined ? {} : { kind: parameter.kind }),\n })),\n }\n : {}),\n };\n}\n\nfunction jsonParameterValue(value: PackParameterValue): unknown {\n return value instanceof Uint8Array ? AssetGuidCodec.format(value) : value;\n}\n\n/** Runtime validation used by the isolated module loader and source scanner. */\nexport function validatePackDefinition(\n value: unknown,\n sourcePath?: string,\n): Result<\n ScriptablePackDefinition<NonEmptyParameters> | ScriptablePackDefinition<undefined>,\n PackAuthoringError\n> {\n if (!isRecord(value))\n return failure(\n parameterFailure('$', 'a Pack definition object', value, 'definition is not an object'),\n );\n const unknown = Object.keys(value).find(\n (key) =>\n !['schemaVersion', 'packageId', 'name', 'parameters', 'sceneComponents', 'build'].includes(\n key,\n ),\n );\n if (unknown !== undefined) {\n return failure(\n parameterFailure(\n `$.${unknown}`,\n 'only schemaVersion, packageId, name, parameters, sceneComponents, and build fields',\n value[unknown],\n 'legacy static output declarations and external asset tables are not part of v2 authoring',\n ),\n );\n }\n if (value.schemaVersion !== '2.0.0') {\n return failure(\n parameterFailure(\n '$.schemaVersion',\n \"the literal '2.0.0'\",\n value.schemaVersion,\n 'authoring source schema is unsupported',\n ),\n );\n }\n if (!isPackageId(value.packageId)) {\n return failure(\n authoringError(\n 'pack-package-id-invalid',\n 'a 16-byte PackageId',\n 'use definePackageId() for the stable source identity',\n { sourcePath, propertyPath: '$.packageId' },\n typeof value.packageId === 'string' ? value.packageId : undefined,\n ),\n );\n }\n if (value.name !== undefined && typeof value.name !== 'string') {\n return failure(\n parameterFailure('$.name', 'a string when present', value.name, 'display name is malformed'),\n );\n }\n if (typeof value.build !== 'function') {\n return failure(\n parameterFailure('$.build', 'a build function', value.build, 'build is not callable'),\n );\n }\n const sceneComponents = validateSceneComponents(value.sceneComponents);\n if (!sceneComponents.ok) return sceneComponents;\n const hasParameters = Object.hasOwn(value, 'parameters');\n if (!hasParameters) {\n return ok(\n Object.freeze({\n schemaVersion: '2.0.0',\n packageId: value.packageId,\n ...(value.name === undefined ? {} : { name: value.name }),\n ...(sceneComponents.value === undefined ? {} : { sceneComponents: sceneComponents.value }),\n build: value.build,\n }) as ScriptablePackDefinition<undefined>,\n );\n }\n const parameters = validateParameterDefinitions(value.parameters);\n if (!parameters.ok) return parameters;\n return ok(\n Object.freeze({\n schemaVersion: '2.0.0',\n packageId: value.packageId,\n ...(value.name === undefined ? {} : { name: value.name }),\n ...(sceneComponents.value === undefined ? {} : { sceneComponents: sceneComponents.value }),\n parameters: parameters.value,\n build: value.build,\n }) as ScriptablePackDefinition<NonEmptyParameters>,\n );\n}\n\nexport function hasPackParameters(\n value: ScriptablePackDefinition | unknown,\n): value is ScriptablePackDefinition<NonEmptyParameters> {\n return isRecord(value) && Array.isArray(value.parameters) && value.parameters.length > 0;\n}\n\n/** Resolve defaults plus a sparse instance override with shallow replacement. */\nexport function resolvePackParameterValues(\n definition: ScriptablePackDefinition<NonEmptyParameters>,\n overrides: unknown = {},\n inheritedValues?: Readonly<Record<string, PackParameterValue>>,\n): Result<PackParameterValues<NonEmptyParameters>, PackAuthoringError> {\n if (!isRecord(overrides)) {\n return failure(\n parameterFailure(\n '$.values',\n 'an object of sparse parameter overrides',\n overrides,\n 'values is not an object',\n ),\n );\n }\n const descriptors = new Map(\n definition.parameters.map((parameter) => [parameter.name, parameter]),\n );\n for (const name of Object.keys(overrides)) {\n if (!descriptors.has(name)) {\n return failure(\n parameterFailure(\n `$.values.${name}`,\n 'a declared parameter name',\n name,\n 'instance contains an unknown parameter',\n ),\n );\n }\n }\n const values: Record<string, PackParameterValue> = {};\n for (const parameter of definition.parameters) {\n const raw = Object.hasOwn(overrides, parameter.name)\n ? overrides[parameter.name]\n : (inheritedValues?.[parameter.name] ?? parameter.default);\n const normalized = normalizeParameterValue(parameter, raw, `$.values.${parameter.name}`);\n if (!normalized.ok) return normalized;\n values[parameter.name] = normalized.value;\n }\n return ok(Object.freeze(values) as PackParameterValues<NonEmptyParameters>);\n}\n\nexport interface DirectPackJsonAsset {\n readonly kind: string;\n readonly payload: Readonly<Record<string, unknown>>;\n readonly refs: readonly string[];\n readonly name?: string;\n readonly artifacts?: Readonly<Record<string, Readonly<Record<string, unknown>>>>;\n}\n\nexport interface DirectPackJson {\n readonly schemaVersion: '3.0.0';\n readonly packageId: string;\n readonly assets: Readonly<Record<string, DirectPackJsonAsset>>;\n}\n\nexport interface PackInstanceJson {\n readonly schemaVersion: '3.0.0';\n readonly packageId: string;\n readonly parent: string;\n readonly values: Readonly<Record<string, unknown>>;\n}\n\nexport interface ParsedDirectPackJson {\n readonly format: 'direct';\n readonly schemaVersion: '3.0.0';\n readonly packageId: PackageId;\n readonly assets: Readonly<Record<string, DirectPackJsonAsset>>;\n}\n\nexport interface ParsedPackInstanceJson {\n readonly format: 'instance';\n readonly schemaVersion: '3.0.0';\n readonly packageId: PackageId;\n readonly parent: PackageId;\n readonly values: Readonly<Record<string, unknown>>;\n}\n\nexport type ParsedPackJson = ParsedDirectPackJson | ParsedPackInstanceJson;\n\nfunction jsonError(\n propertyPath: string,\n expected: string,\n actual: unknown,\n reason: string,\n): Result<never, PackAuthoringError> {\n return failure(\n authoringError(\n 'pack-parameter-invalid',\n expected,\n 'repair the v3 pack.json authoring data, then rerun scan or rebuild',\n {\n propertyPath,\n reason,\n actual: typeof actual === 'string' ? actual : JSON.stringify(actual),\n },\n ),\n );\n}\n\nfunction parsePackageId(\n value: unknown,\n propertyPath: string,\n): Result<PackageId, PackAuthoringError> {\n if (typeof value !== 'string') {\n return failure(\n authoringError(\n 'pack-package-id-invalid',\n 'a UUID string',\n 'repair packageId in the authoring file',\n { propertyPath, value },\n ),\n );\n }\n const parsed = PackageId.parse(value);\n if (!parsed.ok) {\n return failure(\n authoringError(\n 'pack-package-id-invalid',\n 'a 36-character RFC 4122 UUID',\n 'repair packageId or use the authoring gateway to mint one',\n { propertyPath, value },\n value,\n ),\n );\n }\n return ok(parsed.value);\n}\n\nfunction parsePackJsonAsset(\n value: unknown,\n sourceKey: string,\n): Result<DirectPackJsonAsset, PackAuthoringError> {\n if (!isRecord(value))\n return jsonError(\n `$.assets.${sourceKey}`,\n 'an asset entry object',\n value,\n 'asset entry is not an object',\n );\n const allowed = new Set(['kind', 'payload', 'refs', 'name', 'artifacts']);\n const unknown = Object.keys(value).find((key) => !allowed.has(key));\n if (unknown !== undefined)\n return jsonError(\n `$.assets.${sourceKey}.${unknown}`,\n 'no GUID or extra authoring field',\n value[unknown],\n 'direct v3 entries derive identity from their object key',\n );\n if (typeof value.kind !== 'string' || value.kind.length === 0)\n return jsonError(\n `$.assets.${sourceKey}.kind`,\n 'a non-empty asset kind',\n value.kind,\n 'asset kind is missing',\n );\n if (!isRecord(value.payload))\n return jsonError(\n `$.assets.${sourceKey}.payload`,\n 'a JSON object payload',\n value.payload,\n 'payload must be a plain object',\n );\n if (\n !Array.isArray(value.refs) ||\n value.refs.some((ref) => typeof ref !== 'string' || !isValidAssetGuidString(ref))\n ) {\n return jsonError(\n `$.assets.${sourceKey}.refs`,\n 'an array of UUID references',\n value.refs,\n 'references must already be real AssetGuids',\n );\n }\n if (value.name !== undefined && (typeof value.name !== 'string' || value.name.length === 0))\n return jsonError(\n `$.assets.${sourceKey}.name`,\n 'a non-empty display name when present',\n value.name,\n 'asset name is malformed',\n );\n if (value.artifacts !== undefined && !isRecord(value.artifacts))\n return jsonError(\n `$.assets.${sourceKey}.artifacts`,\n 'an artifact descriptor object when present',\n value.artifacts,\n 'artifacts are not an object',\n );\n const base: DirectPackJsonAsset = {\n kind: value.kind,\n payload: value.payload,\n refs: Object.freeze([...value.refs]) as readonly string[],\n ...(value.name === undefined ? {} : { name: value.name }),\n };\n if (value.artifacts === undefined) return ok(base);\n const withArtifacts: DirectPackJsonAsset = {\n ...base,\n artifacts: value.artifacts as NonNullable<DirectPackJsonAsset['artifacts']>,\n };\n return ok(withArtifacts);\n}\n\n/** Parse the two mutually exclusive v3 pack.json branches. */\nexport function parsePackSourceJson(value: unknown): Result<ParsedPackJson, PackAuthoringError> {\n if (!isRecord(value))\n return jsonError('$', 'a v3 pack.json object', value, 'document is not an object');\n if (value.schemaVersion !== '3.0.0')\n return jsonError(\n '$.schemaVersion',\n \"the literal '3.0.0'\",\n value.schemaVersion,\n 'document schema is not v3',\n );\n const unknown = Object.keys(value).find(\n (key) => !['schemaVersion', 'packageId', 'assets', 'parent', 'values'].includes(key),\n );\n if (unknown !== undefined)\n return jsonError(\n `$.${unknown}`,\n 'no extra top-level authoring fields',\n value[unknown],\n 'keep the v3 document to packageId+assets or packageId+parent+values',\n );\n const packageResult = parsePackageId(value.packageId, '$.packageId');\n if (!packageResult.ok) return packageResult;\n const hasAssets = Object.hasOwn(value, 'assets');\n const hasParent = Object.hasOwn(value, 'parent');\n const hasValues = Object.hasOwn(value, 'values');\n if (hasAssets && (hasParent || hasValues))\n return jsonError(\n '$',\n 'assets or parent+values, never both',\n value,\n 'direct and instance branches are mutually exclusive',\n );\n if (hasAssets) {\n if (!isRecord(value.assets))\n return jsonError(\n '$.assets',\n 'a sourceKey to asset object',\n value.assets,\n 'direct assets are not an object',\n );\n const assets: Record<string, DirectPackJsonAsset> = {};\n for (const [sourceKey, entry] of Object.entries(value.assets)) {\n if (!isValidPackSourceKey(sourceKey))\n return failure(sourceKeyFailure(sourceKey, `$.assets.${sourceKey}`));\n const parsed = parsePackJsonAsset(entry, sourceKey);\n if (!parsed.ok) return parsed;\n assets[sourceKey] = parsed.value;\n }\n return ok({\n format: 'direct',\n schemaVersion: '3.0.0',\n packageId: packageResult.value,\n assets: Object.freeze(assets),\n });\n }\n if (!hasParent || !hasValues || hasAssets)\n return jsonError(\n '$',\n 'parent and values for an instance document',\n value,\n 'instance branch is incomplete',\n );\n const parentResult = parsePackageId(value.parent, '$.parent');\n if (!parentResult.ok) return parentResult;\n if (!isRecord(value.values))\n return jsonError(\n '$.values',\n 'a sparse parameter object',\n value.values,\n 'instance values are not an object',\n );\n return ok({\n format: 'instance',\n schemaVersion: '3.0.0',\n packageId: packageResult.value,\n parent: parentResult.value,\n values: Object.freeze({ ...value.values }),\n });\n}\n\nexport interface DirectPackAssetProjection extends DirectPackJsonAsset {\n readonly guid: string;\n readonly sourceKey: string;\n}\n\nexport interface DirectPackProjection {\n readonly packageId: string;\n readonly assets: readonly DirectPackAssetProjection[];\n}\n\n/** Add the computed GUIDs needed by the ordinary Pack v2 publication path. */\nexport function projectDirectPackJson(\n value: ParsedDirectPackJson | DirectPackJson,\n): Result<DirectPackProjection, PackAuthoringError> {\n const parsed = 'format' in value ? ok(value) : parsePackSourceJson(value);\n if (!parsed.ok) return parsed;\n if (parsed.value.format !== 'direct') {\n return failure(\n authoringError(\n 'pack-parameter-invalid',\n 'a direct v3 pack.json',\n 'projectDirectPackJson accepts the direct branch only',\n { observed: parsed.value.format },\n ),\n );\n }\n const assets: DirectPackAssetProjection[] = [];\n for (const [sourceKey, entry] of Object.entries(parsed.value.assets).sort(([left], [right]) =>\n left.localeCompare(right),\n )) {\n assets.push({\n ...entry,\n guid: AssetGuidCodec.format(AssetGuidCodec.derive(parsed.value.packageId, sourceKey)),\n sourceKey,\n });\n }\n return ok({ packageId: PackageId.format(parsed.value.packageId), assets: Object.freeze(assets) });\n}\n\nexport interface PackParameterRootSubject {\n readonly format: 'source';\n readonly packageId: PackageId;\n readonly parameters: readonly PackParameterDefinition[];\n}\n\nexport interface PackParameterInstanceSubject {\n readonly format: 'instance';\n readonly packageId: PackageId;\n readonly parent: PackageId;\n readonly values: Readonly<Record<string, unknown>>;\n}\n\nexport interface PackDirectSubject {\n readonly format: 'direct';\n readonly packageId: PackageId;\n}\n\nexport type PackParameterInheritanceSubject =\n | PackParameterRootSubject\n | PackParameterInstanceSubject\n | PackDirectSubject;\n\nexport interface ResolvedPackParameterInheritance {\n readonly packageId: PackageId;\n readonly rootPackageId: PackageId;\n readonly values: Readonly<Record<string, PackParameterValue>>;\n readonly parentChain: readonly string[];\n readonly parameters: readonly PackParameterDefinition[];\n}\n\nexport type PackParameterSubjectReader = (\n packageId: PackageId,\n) =>\n | PackParameterInheritanceSubject\n | undefined\n | Promise<PackParameterInheritanceSubject | undefined>;\n\nfunction subjectId(subject: PackParameterInheritanceSubject): string {\n return PackageId.format(subject.packageId).toLowerCase();\n}\n\n/** Resolve one finite parent chain. Every instance keeps its own packageId. */\nexport async function resolvePackParameterInheritance(\n subject: PackParameterInheritanceSubject,\n readParent: PackParameterSubjectReader,\n): Promise<Result<ResolvedPackParameterInheritance, PackAuthoringError>> {\n const visited = new Set<string>();\n\n async function visit(\n current: PackParameterInheritanceSubject,\n path: readonly string[],\n ): Promise<Result<ResolvedPackParameterInheritance, PackAuthoringError>> {\n const currentId = subjectId(current);\n if (visited.has(currentId) || path.includes(currentId)) {\n return failure(\n authoringError(\n 'pack-parent-cycle',\n 'a finite acyclic Pack parent chain',\n 'inspect parentChain and repair the first repeated packageId',\n { packageId: currentId, parentChain: [...path, currentId] },\n ),\n );\n }\n visited.add(currentId);\n const nextPath = [...path, currentId];\n if (current.format === 'direct') {\n return failure(\n authoringError(\n 'pack-parent-has-no-parameters',\n 'a ScriptablePack source with parameters as the parent',\n 'direct packs cannot be instance parents; point the instance at a ScriptablePack source with parameters',\n { packageId: currentId },\n ),\n );\n }\n if (current.format === 'source') {\n const descriptors = validateParameterDefinitions(current.parameters, '$.parameters');\n if (!descriptors.ok) return descriptors;\n if (descriptors.value.length === 0) {\n return failure(\n authoringError(\n 'pack-parent-has-no-parameters',\n 'the parent source to declare a non-empty parameter list',\n 'use clone for an independent zero-parameter Pack instead of creating an empty instance',\n { packageId: currentId },\n ),\n );\n }\n const definition = {\n schemaVersion: '2.0.0',\n packageId: current.packageId,\n parameters: descriptors.value as NonEmptyParameters,\n build: () => ok({}),\n } as ScriptablePackDefinition<NonEmptyParameters>;\n const values = resolvePackParameterValues(definition);\n if (!values.ok) return values;\n return ok({\n packageId: current.packageId,\n rootPackageId: current.packageId,\n values: values.value,\n parentChain: [],\n parameters: descriptors.value,\n });\n }\n const parent = await readParent(current.parent);\n if (parent === undefined) {\n return failure(\n authoringError(\n 'pack-parent-not-found',\n 'the parent packageId to resolve in the source index',\n 'inspect the parent locator or recreate the instance from a live ScriptablePack with parameters',\n { packageId: currentId, parent: PackageId.format(current.parent) },\n ),\n );\n }\n if (\n PackageId.format(parent.packageId).toLowerCase() !==\n PackageId.format(current.parent).toLowerCase()\n ) {\n return failure(\n authoringError(\n 'pack-parent-not-found',\n 'the parent reader to return the requested packageId',\n 'repair the Source Index locator and retry inheritance resolution',\n {\n packageId: currentId,\n requestedParent: PackageId.format(current.parent),\n observedParent: PackageId.format(parent.packageId),\n },\n ),\n );\n }\n const resolvedParent = await visit(parent, nextPath);\n if (!resolvedParent.ok) return resolvedParent;\n const descriptors = resolvedParent.value.parameters;\n const definition = {\n schemaVersion: '2.0.0',\n packageId: resolvedParent.value.rootPackageId,\n parameters: descriptors as NonEmptyParameters,\n build: () => ok({}),\n } as ScriptablePackDefinition<NonEmptyParameters>;\n const values = resolvePackParameterValues(\n definition,\n current.values,\n resolvedParent.value.values,\n );\n if (!values.ok) return values;\n return ok({\n packageId: current.packageId,\n rootPackageId: resolvedParent.value.rootPackageId,\n values: values.value,\n parentChain: [PackageId.format(current.parent), ...resolvedParent.value.parentChain],\n parameters: descriptors,\n });\n }\n\n return visit(subject, []);\n}\n\nexport const resolvePackInheritance = resolvePackParameterInheritance;\n\nexport const PACK_AUTHORING_OPERATION_IDS = [\n 'asset.list',\n 'asset.inspect',\n 'asset.resolve',\n 'asset.verify',\n 'asset-source.create',\n 'asset-source.clone',\n 'asset-source.create-instance',\n 'asset-source.apply-values',\n 'asset-source.rebuild',\n 'asset-source.cold-cook',\n] as const;\n\nexport type PackAuthoringOperationId = (typeof PACK_AUTHORING_OPERATION_IDS)[number];\n\nexport interface PackAuthoringOperation {\n readonly requestId: string;\n readonly expectedRevision?: string;\n readonly operation: PackAuthoringOperationId;\n readonly subject?: string;\n readonly sourcePath?: string;\n readonly targetPath?: string;\n readonly packageId?: string;\n /** Parent package identity used by asset-source.create-instance. */\n readonly parentPackageId?: string;\n /** JSON-facing alias accepted by adapters at the operation boundary. */\n readonly parent?: string;\n readonly sourceKey?: string;\n readonly values?: Readonly<Record<string, unknown>>;\n /** `pack.ts` or `pack.json`; omitted defaults to the target extension. */\n readonly format?: 'pack.ts' | 'pack.json';\n /** Direct v3 entries for asset-source.create. */\n readonly initialAssets?: Readonly<Record<string, DirectPackJsonAsset>>;\n /** Explicit non-empty parameter declarations for a generated pack.ts scaffold. */\n readonly parameters?: readonly Readonly<Record<string, unknown>>[];\n /** Required proof level for asset.resolve. */\n readonly require?: 'identity' | 'present' | 'ready';\n}\n\nexport type PackAuthoringResolutionStatus = 'identity' | 'present' | 'ready';\n\nexport interface PackAuthoringOperationResult {\n readonly operation: PackAuthoringOperationId;\n readonly requestId: string;\n readonly schemaVersion?: 'asset-verification-v1';\n readonly sourcePath?: string;\n readonly targetPath?: string;\n readonly revision?: string;\n readonly packageId?: string;\n readonly parentPackageId?: string;\n readonly sourceKey?: string;\n readonly guid?: string;\n readonly format?: 'pack.ts' | 'pack.json' | 'direct' | 'instance';\n readonly status?: PackAuthoringResolutionStatus;\n readonly kind?: string;\n readonly parameters?: readonly Readonly<Record<string, unknown>>[];\n readonly values?: Readonly<Record<string, unknown>>;\n readonly effectiveValues?: Readonly<Record<string, unknown>>;\n readonly parentChain?: readonly string[];\n readonly assets?: readonly Readonly<Record<string, unknown>>[];\n readonly sources?: readonly Readonly<Record<string, unknown>>[];\n readonly capabilities?: readonly PackAuthoringOperationId[];\n readonly snapshot?: {\n readonly sourceCount: number;\n readonly assetCount: number;\n };\n /** Bounded source/output facts for read-only verification consumers. */\n readonly scope?: {\n readonly sourceCount: number;\n readonly assetCount: number;\n readonly sourcePaths: readonly string[];\n readonly omittedSourceCount: number;\n readonly assetLimit: number;\n readonly truncated: boolean;\n readonly scriptablePackSourceCount: number;\n readonly scriptablePackSources: readonly {\n readonly sourcePath: string;\n readonly packageId: string;\n readonly output: 'unproduced';\n readonly reason: 'producer-not-run';\n }[];\n readonly omittedScriptablePackSourceCount: number;\n };\n readonly summary?: {\n readonly assetCount: number;\n readonly emittedAssetCount: number;\n readonly materialCount: number;\n readonly unproducedAssetCount: number;\n readonly unknownAssetCount: number;\n readonly unmaterializedScriptablePackCount: number;\n };\n}\n\nexport interface PackAuthoringGatewayPort<TResult = unknown> {\n execute(operation: PackAuthoringOperation): Promise<Result<TResult, PackAuthoringError>>;\n}\n\n/** One idempotent gateway wrapper shared by Editor and CLI adapters. */\nexport function createPackAuthoringGateway<TResult = unknown>(\n port: PackAuthoringGatewayPort<TResult>,\n): PackAuthoringGatewayPort<TResult> {\n const requests = new Map<\n string,\n { fingerprint: string; result: Promise<Result<TResult, PackAuthoringError>> }\n >();\n return {\n execute(operation) {\n if (typeof operation.requestId !== 'string' || operation.requestId.trim().length === 0) {\n return Promise.resolve(\n failure(\n authoringError(\n 'pack-source-revision-conflict',\n 'a non-empty caller-minted requestId',\n 'mint a new requestId and retry',\n { requestId: operation.requestId },\n ),\n ),\n );\n }\n let fingerprint: string;\n try {\n fingerprint = JSON.stringify(operation);\n } catch (cause) {\n return Promise.resolve(\n failure(\n authoringError(\n 'pack-parameter-invalid',\n 'a JSON-serialisable authoring operation',\n 'remove non-serialisable operation fields and retry with a new requestId',\n {\n requestId: operation.requestId,\n cause: cause instanceof Error ? cause.message : String(cause),\n },\n ),\n ),\n );\n }\n const previous = requests.get(operation.requestId);\n if (previous !== undefined) {\n if (previous.fingerprint === fingerprint) return previous.result;\n return Promise.resolve(\n failure(\n authoringError(\n 'pack-source-revision-conflict',\n 'one immutable operation per requestId',\n 'read the original result or mint a new requestId',\n { requestId: operation.requestId },\n ),\n ),\n );\n }\n const result = Promise.resolve()\n .then(() => port.execute(operation))\n .catch(\n (cause): Result<TResult, PackAuthoringError> =>\n failure(\n authoringError(\n 'pack-parameter-invalid',\n 'the Pack authoring port to return a structured Result',\n 'repair the gateway port failure, then retry with a new requestId',\n {\n requestId: operation.requestId,\n cause: cause instanceof Error ? cause.message : String(cause),\n },\n ),\n ),\n );\n requests.set(operation.requestId, { fingerprint, result });\n return result;\n },\n };\n}\n\nexport const PACK_AUTHORING_OPERATION_DESCRIPTORS = PACK_AUTHORING_OPERATION_IDS.map((id) => ({\n id,\n domain: id.startsWith('asset-source.') ? 'session' : 'asset',\n readOnly: id.startsWith('asset.'),\n requiresRevision: !id.startsWith('asset.') && id !== 'asset-source.create',\n})) as readonly {\n id: PackAuthoringOperationId;\n domain: 'asset' | 'session';\n readOnly: boolean;\n requiresRevision: boolean;\n}[];\n"]}
package/dist/scanner.mjs CHANGED
@@ -7079,8 +7079,8 @@ function vectorLength(type) {
7079
7079
  }
7080
7080
  function parameterValueError(parameter, value, propertyPath) {
7081
7081
  const { type } = parameter;
7082
- if (type === "bool" && typeof value !== "boolean") {
7083
- return parameterFailure(propertyPath, "a boolean", value, "bool value has the wrong type");
7082
+ if (type === "bool") {
7083
+ return typeof value === "boolean" ? void 0 : parameterFailure(propertyPath, "a boolean", value, "bool value has the wrong type");
7084
7084
  }
7085
7085
  if (numericType(type)) {
7086
7086
  if (typeof value !== "number" || !Number.isFinite(value)) {
@@ -7141,8 +7141,8 @@ function parameterValueError(parameter, value, propertyPath) {
7141
7141
  }
7142
7142
  return void 0;
7143
7143
  }
7144
- if (type === "string" && typeof value !== "string") {
7145
- return parameterFailure(propertyPath, "a string", value, "string parameter has the wrong type");
7144
+ if (type === "string") {
7145
+ return typeof value === "string" ? void 0 : parameterFailure(propertyPath, "a string", value, "string parameter has the wrong type");
7146
7146
  }
7147
7147
  if (type === "enum") {
7148
7148
  if (typeof value !== "string") {