@forgeax/engine-pack 0.1.24 → 0.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/build.d.ts +1 -1
  2. package/dist/build.d.ts.map +1 -1
  3. package/dist/build.mjs +60 -5
  4. package/dist/build.mjs.map +1 -1
  5. package/dist/cli-asset.mjs.map +1 -1
  6. package/dist/evidence/material-cook.d.ts +15 -0
  7. package/dist/evidence/material-cook.d.ts.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.mjs +53 -2
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/material-cook.d.ts +1 -1
  13. package/dist/material-cook.d.ts.map +1 -1
  14. package/dist/material-cook.mjs +53 -2
  15. package/dist/material-cook.mjs.map +1 -1
  16. package/dist/pack-authoring-node.mjs.map +1 -1
  17. package/dist/scanner.d.ts +3 -1
  18. package/dist/scanner.d.ts.map +1 -1
  19. package/dist/scanner.mjs +7 -3
  20. package/dist/scanner.mjs.map +1 -1
  21. package/package.json +2 -2
  22. package/src/__tests__/material-declaration-boundary.unit.test.ts +35 -0
  23. package/src/__tests__/material-surface-consumer-census.test.ts +24 -0
  24. package/src/__tests__/material-surface-publication.unit.test.ts +159 -0
  25. package/src/__tests__/material-surface-wire.unit.test.ts +30 -0
  26. package/src/build.ts +2 -0
  27. package/src/evidence/material-cook.ts +91 -4
  28. package/src/index.ts +2 -0
  29. package/src/material-cook.ts +2 -0
  30. package/src/scanner.ts +7 -3
  31. package/src/schema/material-cook.schema.json +43 -0
  32. package/dist/__tests__/ai-recovery.unit.test.d.ts +0 -2
  33. package/dist/__tests__/ai-recovery.unit.test.d.ts.map +0 -1
  34. package/dist/__tests__/artifact-path.test.d.ts +0 -2
  35. package/dist/__tests__/artifact-path.test.d.ts.map +0 -1
  36. package/dist/__tests__/asset-evidence-error-hints.test.d.ts +0 -2
  37. package/dist/__tests__/asset-evidence-error-hints.test.d.ts.map +0 -1
  38. package/dist/__tests__/asset-evidence-lifecycle.test.d.ts +0 -2
  39. package/dist/__tests__/asset-evidence-lifecycle.test.d.ts.map +0 -1
  40. package/dist/__tests__/asset-evidence-schema.test.d.ts +0 -2
  41. package/dist/__tests__/asset-evidence-schema.test.d.ts.map +0 -1
  42. package/dist/__tests__/atlas-cli-region-mismatch.test.d.ts +0 -2
  43. package/dist/__tests__/atlas-cli-region-mismatch.test.d.ts.map +0 -1
  44. package/dist/__tests__/atlas-error-code-owner.test-d.d.ts +0 -2
  45. package/dist/__tests__/atlas-error-code-owner.test-d.d.ts.map +0 -1
  46. package/dist/__tests__/cli-asset-evidence.integration.test.d.ts +0 -2
  47. package/dist/__tests__/cli-asset-evidence.integration.test.d.ts.map +0 -1
  48. package/dist/__tests__/cli.unit.test.d.ts +0 -2
  49. package/dist/__tests__/cli.unit.test.d.ts.map +0 -1
  50. package/dist/__tests__/evidence-source-inventory.unit.test.d.ts +0 -2
  51. package/dist/__tests__/evidence-source-inventory.unit.test.d.ts.map +0 -1
  52. package/dist/__tests__/guid-collision.unit.test.d.ts +0 -2
  53. package/dist/__tests__/guid-collision.unit.test.d.ts.map +0 -1
  54. package/dist/__tests__/guid-validator-surface.unit.test.d.ts +0 -2
  55. package/dist/__tests__/guid-validator-surface.unit.test.d.ts.map +0 -1
  56. package/dist/__tests__/inventory-schema.test.d.ts +0 -2
  57. package/dist/__tests__/inventory-schema.test.d.ts.map +0 -1
  58. package/dist/__tests__/material-cook-dependencies.unit.test.d.ts +0 -2
  59. package/dist/__tests__/material-cook-dependencies.unit.test.d.ts.map +0 -1
  60. package/dist/__tests__/material-cook-receipt-layer-plan.unit.test.d.ts +0 -2
  61. package/dist/__tests__/material-cook-receipt-layer-plan.unit.test.d.ts.map +0 -1
  62. package/dist/__tests__/material-cook-receipt.unit.test.d.ts +0 -2
  63. package/dist/__tests__/material-cook-receipt.unit.test.d.ts.map +0 -1
  64. package/dist/__tests__/material-cook-schema.unit.test.d.ts +0 -2
  65. package/dist/__tests__/material-cook-schema.unit.test.d.ts.map +0 -1
  66. package/dist/__tests__/mesh-bin-consumer-surface.unit.test.d.ts +0 -2
  67. package/dist/__tests__/mesh-bin-consumer-surface.unit.test.d.ts.map +0 -1
  68. package/dist/__tests__/mesh-bin-contract.unit.test.d.ts +0 -2
  69. package/dist/__tests__/mesh-bin-contract.unit.test.d.ts.map +0 -1
  70. package/dist/__tests__/meta-schema-optional.test.d.ts +0 -2
  71. package/dist/__tests__/meta-schema-optional.test.d.ts.map +0 -1
  72. package/dist/__tests__/meta-source-overrides.unit.test.d.ts +0 -2
  73. package/dist/__tests__/meta-source-overrides.unit.test.d.ts.map +0 -1
  74. package/dist/__tests__/native-cooker-registry.test.d.ts +0 -2
  75. package/dist/__tests__/native-cooker-registry.test.d.ts.map +0 -1
  76. package/dist/__tests__/offline-evidence-artifact-verification-owner.test-d.d.ts +0 -2
  77. package/dist/__tests__/offline-evidence-artifact-verification-owner.test-d.d.ts.map +0 -1
  78. package/dist/__tests__/offline-evidence.integration.test.d.ts +0 -2
  79. package/dist/__tests__/offline-evidence.integration.test.d.ts.map +0 -1
  80. package/dist/__tests__/owner-chain.integration.test.d.ts +0 -2
  81. package/dist/__tests__/owner-chain.integration.test.d.ts.map +0 -1
  82. package/dist/__tests__/pack-authoring-gateway.unit.test.d.ts +0 -2
  83. package/dist/__tests__/pack-authoring-gateway.unit.test.d.ts.map +0 -1
  84. package/dist/__tests__/pack-authoring.unit.test.d.ts +0 -2
  85. package/dist/__tests__/pack-authoring.unit.test.d.ts.map +0 -1
  86. package/dist/__tests__/pack-scanner.unit.test.d.ts +0 -2
  87. package/dist/__tests__/pack-scanner.unit.test.d.ts.map +0 -1
  88. package/dist/__tests__/pack-v2-fixture-migration.test.d.ts +0 -2
  89. package/dist/__tests__/pack-v2-fixture-migration.test.d.ts.map +0 -1
  90. package/dist/__tests__/pack-v2-schema.test.d.ts +0 -2
  91. package/dist/__tests__/pack-v2-schema.test.d.ts.map +0 -1
  92. package/dist/__tests__/pack.unit.test.d.ts +0 -2
  93. package/dist/__tests__/pack.unit.test.d.ts.map +0 -1
  94. package/dist/__tests__/package-finalizer.contract.test.d.ts +0 -2
  95. package/dist/__tests__/package-finalizer.contract.test.d.ts.map +0 -1
  96. package/dist/__tests__/producer-contract-schema.unit.test.d.ts +0 -2
  97. package/dist/__tests__/producer-contract-schema.unit.test.d.ts.map +0 -1
  98. package/dist/__tests__/resolve-asset-source.test.d.ts +0 -2
  99. package/dist/__tests__/resolve-asset-source.test.d.ts.map +0 -1
  100. package/dist/__tests__/runtime-projection.unit.test.d.ts +0 -2
  101. package/dist/__tests__/runtime-projection.unit.test.d.ts.map +0 -1
  102. package/dist/__tests__/runtime.browser.test.d.ts +0 -2
  103. package/dist/__tests__/runtime.browser.test.d.ts.map +0 -1
  104. package/dist/__tests__/scanner-blacklist.test.d.ts +0 -2
  105. package/dist/__tests__/scanner-blacklist.test.d.ts.map +0 -1
  106. package/dist/__tests__/scanner-inventory.contract.test.d.ts +0 -2
  107. package/dist/__tests__/scanner-inventory.contract.test.d.ts.map +0 -1
  108. package/dist/__tests__/scanner-inventory.test.d.ts +0 -2
  109. package/dist/__tests__/scanner-inventory.test.d.ts.map +0 -1
  110. package/dist/__tests__/scanner-mount-cycle.test.d.ts +0 -2
  111. package/dist/__tests__/scanner-mount-cycle.test.d.ts.map +0 -1
  112. package/dist/__tests__/scriptable-pack-cli.integration.test.d.ts +0 -2
  113. package/dist/__tests__/scriptable-pack-cli.integration.test.d.ts.map +0 -1
  114. package/dist/__tests__/scriptable-pack-ddc-key.unit.test.d.ts +0 -2
  115. package/dist/__tests__/scriptable-pack-ddc-key.unit.test.d.ts.map +0 -1
  116. package/dist/__tests__/topology-actions.unit.test.d.ts +0 -2
  117. package/dist/__tests__/topology-actions.unit.test.d.ts.map +0 -1
  118. package/dist/__tests__/topology.unit.test.d.ts +0 -2
  119. package/dist/__tests__/topology.unit.test.d.ts.map +0 -1
@@ -11,6 +11,17 @@ export interface MaterialCookArtifact {
11
11
  readonly digest: string;
12
12
  readonly bytes: Uint8Array;
13
13
  }
14
+ /** Backend capability projection for one immutable cooked material artifact. */
15
+ export interface MaterialCookVariantContext {
16
+ readonly backend: 'webgpu' | 'webgl2' | 'wgpu-native';
17
+ readonly capability: 'storage-buffer' | 'uniform-fallback';
18
+ }
19
+ /** Additional backend artifact published with one material generation. */
20
+ export interface MaterialCookVariant {
21
+ readonly context: MaterialCookVariantContext;
22
+ readonly specializationKey: string;
23
+ readonly artifact: MaterialCookArtifact;
24
+ }
14
25
  export interface MaterialCookWasmProvenance {
15
26
  readonly sourceContentKey: string;
16
27
  readonly artifactSha256: string;
@@ -56,6 +67,10 @@ export interface CookedMaterialRecord {
56
67
  readonly materialGuid?: string;
57
68
  readonly publicationGeneration?: number;
58
69
  readonly specializationKey?: string;
70
+ /** Compiler context used by the primary `artifact` entry. */
71
+ readonly variantContext?: MaterialCookVariantContext;
72
+ /** Additional immutable artifacts for other backend capability lanes. */
73
+ readonly variants?: readonly MaterialCookVariant[];
59
74
  readonly artifactDigest?: string;
60
75
  readonly sourceClosure?: readonly string[];
61
76
  readonly parameterContract?: MaterialParameterContract;
@@ -1 +1 @@
1
- {"version":3,"file":"material-cook.d.ts","sourceRoot":"","sources":["../../src/evidence/material-cook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"material-cook.d.ts","sourceRoot":"","sources":["../../src/evidence/material-cook.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { type CookedMaterialRecord, collectMaterialCookRefs, createMaterialArtifactDigest, createMaterialCookIdentity, isStandardMaterialRecord, isStandardRootModule, type MaterialCookArtifact, type MaterialCookIdentity, type MaterialCookIdentityExpectation, type MaterialCookIdentityInput, type MaterialCookReceipt, type MaterialCookRecordError, type MaterialCookRefs, type MaterialCookWasmProvenance, materialLayerPlanIdentity, projectCookedMaterialRecord, serializeCookedMaterialRecord, serializeMaterialCookReceipt, validateCookedMaterialRecord, validateMaterialCookReceipt, } from './evidence/material-cook.js';
1
+ export { type CookedMaterialRecord, collectMaterialCookRefs, createMaterialArtifactDigest, createMaterialCookIdentity, isStandardMaterialRecord, isStandardRootModule, type MaterialCookArtifact, type MaterialCookIdentity, type MaterialCookIdentityExpectation, type MaterialCookIdentityInput, type MaterialCookReceipt, type MaterialCookRecordError, type MaterialCookRefs, type MaterialCookVariant, type MaterialCookVariantContext, type MaterialCookWasmProvenance, materialLayerPlanIdentity, projectCookedMaterialRecord, serializeCookedMaterialRecord, serializeMaterialCookReceipt, validateCookedMaterialRecord, validateMaterialCookReceipt, } from './evidence/material-cook.js';
2
2
  export { buildOfflineAssetEvidence, packageVerification } from './evidence/offline-evidence.js';
3
3
  export { AssetGuid, isValidAssetGuidString, isValidPackSourceKey, PACK_SOURCE_KEY_RE, PackageId, } from './guid.js';
4
4
  export { decodeMeshBinHeader, MESH_BIN_DIGEST_BYTES, MESH_BIN_HEADER_V4_BYTES, MESH_BIN_PROJECTION_VERSION, MESH_BIN_VERSION, type MeshBinContractError, type MeshBinHeaderResult, type MeshBinHeaderV4, writeMeshBinHeader, } from './mesh-bin-contract.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,oBAAoB,EACzB,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EACL,KAAK,WAAW,EAChB,yBAAyB,EACzB,oCAAoC,EACpC,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,GACtC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAW,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE5F,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI1D,YAAY,EACV,aAAa,EACb,cAAc,EACd,KAAK,EACL,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,EACT,MAAM,EACN,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAWvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,oBAAoB,EACzB,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EACL,KAAK,WAAW,EAChB,yBAAyB,EACzB,oCAAoC,EACpC,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,GACtC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAW,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE5F,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI1D,YAAY,EACV,aAAa,EACb,cAAc,EACd,KAAK,EACL,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,SAAS,EACT,MAAM,EACN,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAWvE"}
package/dist/index.mjs CHANGED
@@ -6819,7 +6819,8 @@ var STANDARD_ROOT_MODULES = /* @__PURE__ */ new Set([
6819
6819
  "forgeax::default-standard-pbr",
6820
6820
  "forgeax::pbr-skin",
6821
6821
  "forgeax_material::standard",
6822
- "forgeax_material::pbr-skin"
6822
+ "forgeax_material::pbr-skin",
6823
+ "forgeax::default-shadow-caster"
6823
6824
  ]);
6824
6825
  function isStandardRootModule(module) {
6825
6826
  return STANDARD_ROOT_MODULES.has(module);
@@ -6927,6 +6928,14 @@ function invalid(field, actual) {
6927
6928
  }
6928
6929
  });
6929
6930
  }
6931
+ function normalizeArtifactBytes(value) {
6932
+ if (Array.isArray(value)) {
6933
+ return value.every((byte) => Number.isInteger(byte) && byte >= 0 && byte <= 255) ? Uint8Array.from(value) : void 0;
6934
+ }
6935
+ if (!ArrayBuffer.isView(value)) return void 0;
6936
+ const view = value;
6937
+ return new Uint8Array(view.buffer, view.byteOffset, view.byteLength).slice();
6938
+ }
6930
6939
  var IDENTITY_FIELDS = [
6931
6940
  "materialContractDigest",
6932
6941
  "sourceRevision",
@@ -7032,6 +7041,33 @@ function validateCookedMaterialRecord(value) {
7032
7041
  return invalid("publicationGeneration", candidate.publicationGeneration);
7033
7042
  if (candidate.specializationKey !== void 0 && typeof candidate.specializationKey !== "string")
7034
7043
  return invalid("specializationKey");
7044
+ if (candidate.variantContext !== void 0) {
7045
+ if (candidate.variantContext === null || typeof candidate.variantContext !== "object")
7046
+ return invalid("variantContext");
7047
+ const context = candidate.variantContext;
7048
+ if (context.backend !== "webgpu" && context.backend !== "webgl2" && context.backend !== "wgpu-native" || context.capability !== "storage-buffer" && context.capability !== "uniform-fallback")
7049
+ return invalid("variantContext", candidate.variantContext);
7050
+ }
7051
+ if (candidate.variants !== void 0) {
7052
+ if (!Array.isArray(candidate.variants)) return invalid("variants");
7053
+ for (const [index, value2] of candidate.variants.entries()) {
7054
+ if (value2 === null || typeof value2 !== "object") return invalid(`variants[${index}]`);
7055
+ const variant = value2;
7056
+ const context = variant.context;
7057
+ if (context === null || typeof context !== "object")
7058
+ return invalid(`variants[${index}].context`);
7059
+ const contextRecord = context;
7060
+ if (contextRecord.backend !== "webgpu" && contextRecord.backend !== "webgl2" && contextRecord.backend !== "wgpu-native" || contextRecord.capability !== "storage-buffer" && contextRecord.capability !== "uniform-fallback")
7061
+ return invalid(`variants[${index}].context`, context);
7062
+ if (typeof variant.specializationKey !== "string" || variant.specializationKey.length === 0)
7063
+ return invalid(`variants[${index}].specializationKey`);
7064
+ if (variant.artifact === null || typeof variant.artifact !== "object")
7065
+ return invalid(`variants[${index}].artifact`);
7066
+ const variantArtifact = variant.artifact;
7067
+ if (typeof variantArtifact.mediaType !== "string" || typeof variantArtifact.path !== "string" || typeof variantArtifact.digest !== "string" || normalizeArtifactBytes(variantArtifact.bytes) === void 0)
7068
+ return invalid(`variants[${index}].artifact`);
7069
+ }
7070
+ }
7035
7071
  if (candidate.artifactDigest !== void 0 && typeof candidate.artifactDigest !== "string")
7036
7072
  return invalid("artifactDigest");
7037
7073
  if (candidate.sourceClosure !== void 0 && (!Array.isArray(candidate.sourceClosure) || candidate.sourceClosure.some((path) => typeof path !== "string")))
@@ -7088,8 +7124,21 @@ function validateCookedMaterialRecord(value) {
7088
7124
  ...candidate,
7089
7125
  artifact: {
7090
7126
  ...artifact,
7091
- bytes: ArrayBuffer.isView(artifact.bytes) ? Uint8Array.from(artifact.bytes) : Uint8Array.from(artifact.bytes)
7127
+ bytes: normalizeArtifactBytes(artifact.bytes)
7092
7128
  },
7129
+ ...Array.isArray(candidate.variants) ? {
7130
+ variants: candidate.variants.map((value2) => {
7131
+ const variant = value2;
7132
+ const variantArtifact = variant.artifact;
7133
+ return {
7134
+ ...variant,
7135
+ artifact: {
7136
+ ...variantArtifact,
7137
+ bytes: normalizeArtifactBytes(variantArtifact.bytes)
7138
+ }
7139
+ };
7140
+ })
7141
+ } : {},
7093
7142
  receipt: receiptResult.value
7094
7143
  };
7095
7144
  return ok(normalized);
@@ -7099,6 +7148,8 @@ function projectCookedMaterialRecord(record) {
7099
7148
  resolved: record.resolved,
7100
7149
  refs: record.refs,
7101
7150
  artifact: record.artifact,
7151
+ ...record.variantContext === void 0 ? {} : { variantContext: record.variantContext },
7152
+ ...record.variants === void 0 ? {} : { variants: record.variants },
7102
7153
  receipt: record.receipt,
7103
7154
  schemaVersion: record.schemaVersion
7104
7155
  };