@plasius/asset-contracts 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { GpuInterfaceRef, Sha256Hex, ShaderStyleProfileRef, GpuInterfaceManifest, ShaderVersionManifest, ShaderStyleProfileManifest, ShaderValidationEvidenceRef, ShaderVersionRef } from '@plasius/gpu-shader';
2
2
  export { GPU_SHADER_STORE_FEATURE_FLAG, GPU_SHADER_STYLE_SELECTION_CAPABILITY, GpuInterfaceManifest, GpuInterfaceRef, ModelGpuCompatibilityDescriptor, Sha256Hex, ShaderStyleProfileManifest, ShaderStyleProfileRef, ShaderValidationEvidenceRef, ShaderVersionManifest, ShaderVersionRef } from '@plasius/gpu-shader';
3
- import { ResourcePackageManifest, GpuModelDiagnosticInput, GpuModelDiagnosticStandard, GpuModelDiagnosticMode } from '@plasius/gpu-model-core';
3
+ import { ResourcePackageManifest, GpuModelResourceGraph, GpuModelResourceLocation, GpuModelTextureEmbeddingPolicy, GpuModelProvenance, GpuModelMaterial, GpuModelTexture, GpuModelDiagnosticInput, GpuModelDiagnosticStandard, GpuModelDiagnosticMode } from '@plasius/gpu-model-core';
4
4
 
5
5
  /**
6
6
  * Validates the legacy asset-version token grammar.
@@ -1888,6 +1888,69 @@ declare class ModelResourceManifestError extends TypeError {
1888
1888
  */
1889
1889
  declare function qualifyModelResourceManifest(input: ModelResourceManifestQualificationInput): Promise<AssetManifest>;
1890
1890
 
1891
+ /** Hard ceilings for the additive package role boundary; callers cannot raise them. */
1892
+ declare const MODEL_TEXTURE_RESOURCE_LIMITS: Readonly<{
1893
+ resources: 16384;
1894
+ derived: 4096;
1895
+ nodes: 65536;
1896
+ values: 262144;
1897
+ characters: 2097152;
1898
+ depth: 16;
1899
+ timeoutMs: 60000;
1900
+ }>;
1901
+ /** An embedded resource names its owning entrypoint; external resources name their exact graph path. */
1902
+ interface ModelTextureResourceBinding {
1903
+ readonly resourceId: string;
1904
+ readonly filePath: string;
1905
+ }
1906
+ /** Declarative derived output; source identities remain independent of output hashes and paths. */
1907
+ interface ModelDerivedTextureResource {
1908
+ readonly role: "gpu-upload" | "texture-atlas";
1909
+ readonly filePath: string;
1910
+ readonly sourceResourceIds: readonly string[];
1911
+ }
1912
+ /** Existing exact-byte inventory plus a privately verified canonical graph and explicit export bindings. */
1913
+ interface ModelTextureResourceQualificationInput extends Omit<ModelResourceManifestQualificationInput, "signal" | "timeoutMs"> {
1914
+ readonly graph: GpuModelResourceGraph;
1915
+ readonly resources: readonly ModelTextureResourceBinding[];
1916
+ readonly derived: readonly ModelDerivedTextureResource[];
1917
+ }
1918
+ /** Deadline and cancellation cover hashing and bounded synchronous qualification. */
1919
+ interface ModelTextureResourceQualificationOptions {
1920
+ readonly signal?: AbortSignal;
1921
+ readonly timeoutMs?: number;
1922
+ }
1923
+ /** JSON resource identity without a Blob, renderer allocation or credential-bearing URL. */
1924
+ interface QualifiedModelTextureResource extends ModelTextureResourceBinding {
1925
+ readonly kind: "image" | "buffer";
1926
+ readonly contentHash: string;
1927
+ readonly byteLength: number;
1928
+ readonly mimeType: string;
1929
+ readonly location: GpuModelResourceLocation;
1930
+ readonly exportEmbeddingPolicy: GpuModelTextureEmbeddingPolicy;
1931
+ }
1932
+ /** Trusted package metadata, including authored sourceMetadata; not a public-safe diagnostic projection. */
1933
+ interface QualifiedModelTextureResources {
1934
+ readonly contractVersion: 1;
1935
+ readonly manifest: AssetManifest;
1936
+ readonly source: GpuModelProvenance;
1937
+ readonly resources: readonly QualifiedModelTextureResource[];
1938
+ readonly materials: readonly GpuModelMaterial[];
1939
+ readonly textures: readonly GpuModelTexture[];
1940
+ readonly derived: readonly ModelDerivedTextureResource[];
1941
+ }
1942
+ /** Fixed, value-free errors. No caller metadata or upstream exception text is exposed. */
1943
+ declare class ModelTextureResourceError extends TypeError {
1944
+ readonly code: "invalid-input" | "limit-exceeded" | "unverified-graph" | "package-mismatch" | "resource-mismatch" | "role-mismatch" | "aborted" | "deadline-exceeded";
1945
+ constructor(code: "invalid-input" | "limit-exceeded" | "unverified-graph" | "package-mismatch" | "resource-mismatch" | "role-mismatch" | "aborted" | "deadline-exceeded");
1946
+ }
1947
+ /**
1948
+ * Qualify reload metadata without parsing formats, allocating GPU objects or
1949
+ * replacing authored resource identities. Metadata is trusted package content;
1950
+ * adapters must sanitize it before public use. This is not promotion evidence.
1951
+ */
1952
+ declare function qualifyModelTextureResources(input: ModelTextureResourceQualificationInput, options?: ModelTextureResourceQualificationOptions): Promise<QualifiedModelTextureResources>;
1953
+
1891
1954
  /** Hard ceilings for public conversion evidence, including private input metadata. */
1892
1955
  declare const MODEL_CONVERSION_DIAGNOSTIC_LIMITS: Readonly<{
1893
1956
  issues: 100;
@@ -2149,4 +2212,4 @@ declare function createAssetPromotionRecord<TManifest extends AssetManifest>(inp
2149
2212
  /** Digest-verifies and promotes a typed GPU asset without a generic-factory bypass. */
2150
2213
  declare function createGpuAssetPromotionRecord<TManifest extends GpuAssetManifest>(input: AssetPromotionRecord<TManifest>, files: ReadonlyMap<string, Uint8Array>): Promise<AssetPromotionRecord<TManifest>>;
2151
2214
 
2152
- export { ASSET_CONTRACTS_PACKAGE, ASSET_FILE_ROLES, ASSET_JOB_STATES, ASSET_JSON_CONTENT_TYPE, ASSET_KINDS, ASSET_PIPELINE_MCP_CAPABILITY, ASSET_PIPELINE_REVIEW_CAPABILITY, ASSET_PROMOTION_OUTCOMES, ASSET_REVIEW_SEVERITIES, ASSET_SCREENSHOT_KINDS, ASSET_SOURCE_ADAPTERS, ASSET_WGSL_CONTENT_TYPE, type AssetFileDescriptor, type AssetFileRole, type AssetJobRecord, type AssetJobState, type AssetKind, type AssetManifest, type AssetPromotionOutcome, type AssetPromotionRecord, type AssetReviewFinding, type AssetReviewReport, type AssetReviewSeverity, type AssetScreenshotKind, type AssetScreenshotPlanItem, type AssetSourceAdapter, type BudgetExceededModelGeneratorResult, CANONICAL_MODEL_COORDINATE_SYSTEM, type CancelledModelGeneratorResult, type ConfirmableModelCandidateV2, type DiagnosticModelCandidateV2, type DisabledModelGeneratorResult, type ExistingModelCandidateAssetRef, type FailedModelGeneratorResult, type GeneratedModelGeneratorResult, type GpuAssetFileValidationInput, type GpuAssetManifest, type GpuInterfaceAssetManifest, type GpuInterfaceRefInput, MODEL_ASSET_KINDS, MODEL_CANDIDATE_HARD_GATE_KINDS, MODEL_CONFIRMATION_VIEW_KINDS, MODEL_CONFIRMATION_VIEW_SIZE_PX, MODEL_CONVERSION_DIAGNOSTIC_LIMITS, MODEL_GENERATOR_DISABLED_REASON_CODE, MODEL_MATCH_ASSURANCE_BANDS, MODEL_MATCH_ASSURANCE_THRESHOLDS, MODEL_PROVENANCE_KINDS, MODEL_RANKER_ASSURANCE_CEILING_REASON_CODE, MODEL_RANKER_EVIDENCE_MODES, MODEL_REQUEST_MAX_REVISION, MODEL_RESOLUTION_CONTRACT_VERSION, MODEL_RESOLUTION_STATES, MODEL_RESOLUTION_V2_COMPATIBILITY_STATES, MODEL_RESOLUTION_V2_CONTRACT_VERSION, MODEL_RESOLUTION_V2_JSON_SCHEMAS, MODEL_RESOLUTION_V2_STATES, MODEL_RESOURCE_MANIFEST_LIMITS, MODEL_RIGHTS_STATUSES, MODEL_TEXT_ONLY_ASSURANCE_CEILING_REASON_CODE, type ModelAssemblyChild, type ModelAssemblyChildAssetRef, type ModelAssetKind, type ModelAssetManifest, type ModelAssetManifestInput, type ModelAssetRef, type ModelAttribution, type ModelBoundsMetres, type ModelBoundsMetresV2, type ModelCandidate, type ModelCandidateAssetRef, type ModelCandidateConfirmation, type ModelCandidateConfirmationBindingV2, type ModelCandidateConfirmationV2, type ModelCandidateHardGateEvidence, type ModelCandidateHardGateKind, type ModelCandidateV2, type ModelCollisionKind, type ModelCollisionPolicyEvidence, type ModelCollisionRecord, type ModelConfirmationView, type ModelConfirmationViewKind, type ModelConfirmationViews, type ModelConversionDiagnosticCode, ModelConversionDiagnosticsError, type ModelConversionDiagnosticsInput, type ModelConversionDiagnosticsOptions, type ModelConversionLoss, type ModelConversionResourceBinding, type ModelConverterDiagnostic, type ModelConverterEvidence, type ModelDiagnosticSeverity, type ModelDimensionsMetres, type ModelDimensionsMetresV2, type ModelFidelityAspect, type ModelFidelityEvidence, type ModelFidelityGateEvidence, type ModelFidelityOutcome, type ModelGeneratorArtifact, type ModelGeneratorArtifactRole, type ModelGeneratorBudgetName, type ModelGeneratorBudgetViolation, type ModelGeneratorBudgets, type ModelGeneratorCallOptions, type ModelGeneratorCancellationReason, type ModelGeneratorFailureReason, type ModelGeneratorIdentity, type ModelGeneratorPort, type ModelGeneratorRequest, type ModelGeneratorResult, type ModelGeneratorSourceBundle, type ModelGeneratorUnavailableReason, type ModelGeneratorUsage, type ModelHardConstraintEvaluation, type ModelHardConstraints, type ModelHardConstraintsV2, type ModelLodLevel, type ModelLodRecord, type ModelMatchAssessment, type ModelMatchAssurance, type ModelPartitionPolicy, type ModelProcessingManifest, type ModelProcessingManifestV2, type ModelPromotionReceipt, type ModelPromotionReceiptV2, type ModelProvenance, type ModelProvenanceKind, type ModelQuaternion, type ModelRankerEvidenceMode, type ModelRankerRef, type ModelRefinementQuestionV2, type ModelRenderEvidence, type ModelRequestSpec, type ModelRequestSpecV2, type ModelRequirementPolicy, type ModelResolution, type ModelResolutionState, type ModelResolutionStateV2, type ModelResolutionV2, type ModelResourceFileInput, ModelResourceManifestError, type ModelResourceManifestQualificationInput, type ModelResourceRef, type ModelRightsAssessment, type ModelRightsStatus, type ModelSoftPreferences, type ModelSourceIngestionLimitsV2, type ModelTechnicalProfile, type ModelTransform, type ModelVector3, PVOX_ASSEMBLY_CLOSURE_HASH_DOMAIN, PVOX_ASSET_MANIFEST_VERSION, PVOX_BINARY_CLOSURE_HASH_DOMAIN, PVOX_BOND_RECORD_BYTES, PVOX_BRICK_EDGE_VOXELS, PVOX_CANONICAL_UTF8_LENGTH_PREFIX_BYTES, PVOX_CAPABILITIES, PVOX_CAPABILITY_SET_HASH_DOMAIN, PVOX_COLLISION_BRICK_MASK_BYTES, PVOX_COLLISION_SECTION_COUNT, PVOX_CONFIRMATION_BINDING_HASH_DOMAIN, PVOX_CONTENT_TYPE, PVOX_DEFAULT_LIMITS, PVOX_DEFAULT_SOURCE_INGESTION_LIMITS, PVOX_DIRECTORY_ENTRY_BYTE_LENGTH, PVOX_DIRECTORY_HASH_DOMAIN, PVOX_EDIT_JOURNAL_GENESIS_HASH, PVOX_EDIT_JOURNAL_HASH_DOMAIN, PVOX_EDIT_JOURNAL_VERSION, PVOX_EDIT_OVERLAY_ROOT_HASH_DOMAIN, PVOX_EVALUATION_CLOSURE_HASH_DOMAIN, PVOX_FEATURE_FLAG_ID, PVOX_FIDELITY_PROFILE_IDS, PVOX_FIDELITY_PROFILE_VERSION, PVOX_FILE_EXTENSION, PVOX_FORMAT_VERSION, PVOX_HASH_DOMAINS, PVOX_HASH_PREIMAGE_LAYOUTS, PVOX_HEADER_BYTE_LENGTH, PVOX_HIERARCHY_NODE_RECORD_BYTES, PVOX_INTERIOR_LAYER_RECORD_BYTES, PVOX_LEVEL_SPAN_RECORD_BYTES, PVOX_LOD_RECORD_BYTES, PVOX_MAGIC, PVOX_MASS_PROPERTY_RECORD_BYTES, PVOX_MATERIAL_REGION_RECORD_BYTES, PVOX_MAX_ABSOLUTE_COORDINATE_METRES, PVOX_MAX_CANONICAL_HASH_UTF8_BYTES_V1, PVOX_MAX_EDIT_PATCHES, PVOX_MAX_ENCODED_BRICK_PAYLOAD_BYTES, PVOX_MAX_HASH_PREIMAGE_BYTES_V1, PVOX_MAX_HIERARCHY_NODES, PVOX_MAX_LOCAL_SAMPLES_PER_BRICK, PVOX_MAX_RUNS_PER_BRICK, PVOX_MAX_SECTIONS, PVOX_MIN_BRICK_DESCRIPTOR_BYTES, PVOX_MIN_ENCODED_COLLISION_SAMPLE_BYTES, PVOX_MIN_ENCODED_SURFACE_SAMPLE_BYTES, PVOX_MIN_STATIC_SECTION_COUNT, PVOX_MODEL_REQUEST_POLICY_ID, PVOX_NAMED_JSON_CLOSURE_SPECS_V1, PVOX_NATIVE_RENDERER_ID, PVOX_NATIVE_REVIEW_SETTINGS_ID, PVOX_NON_OVERRIDABLE_GATE_KINDS, PVOX_PAGE_KINDS, PVOX_PAGE_SET_HASH_DOMAIN, PVOX_PAGE_SIZE_BYTES, PVOX_PARTITION_RECORD_BYTES, PVOX_PHYSICAL_EVIDENCE_HASH_DOMAIN, PVOX_PHYSICAL_EVIDENCE_RECORD_BYTES, PVOX_PHYSICAL_INVENTORY_HASH_DOMAIN, PVOX_PHYSICAL_PROPERTIES, PVOX_PHYSICAL_PROPERTY_POLICIES, PVOX_PHYSICAL_PROPERTY_POLICY_ID, PVOX_PHYSICAL_PROPERTY_POLICY_VERSION, PVOX_PHYSICAL_PROPERTY_RECORD_BYTES, PVOX_PHYSICAL_REGION_INVENTORY_VERSION, PVOX_PROCESSING_CLOSURE_HASH_DOMAIN, PVOX_PUBLICATION_HASH_DOMAIN, PVOX_RENDER_BRICK_MASK_BYTES, PVOX_RENDER_EVIDENCE_HASH_DOMAIN, PVOX_REQUEST_SEMANTIC_PROFILE_HASH_DOMAIN, PVOX_REQUIRED_OAUTH_CAPABILITIES, PVOX_ROOT_HASH_DOMAIN, PVOX_ROOT_HEADER_COMPILATION_INPUT_HASH_OFFSET, PVOX_ROOT_HEADER_COORDINATE_BASIS_METRES_Y_UP_NEGATIVE_Z_FORWARD_CCW, PVOX_ROOT_HEADER_DIRECTORY_HASH_OFFSET, PVOX_ROOT_HEADER_FLAGS_V1, PVOX_ROOT_HEADER_GEOMETRY_MODE_CODES_V1, PVOX_ROOT_HEADER_HASH_RULE, PVOX_ROOT_HEADER_INLINE_RESERVED_BYTE_LENGTH, PVOX_ROOT_HEADER_INLINE_RESERVED_OFFSET, PVOX_ROOT_HEADER_LAYOUT_V1, PVOX_ROOT_HEADER_MAXIMUM_FIXED_POINT_FRACTION_BITS_V1, PVOX_ROOT_HEADER_MAXIMUM_HIERARCHY_DEPTH_V1, PVOX_ROOT_HEADER_MINIMUM_FIXED_POINT_FRACTION_BITS_V1, PVOX_ROOT_HEADER_RUNTIME_REQUEST_PROFILE_HASH_OFFSET, PVOX_ROOT_HEADER_TRAILING_RESERVED_BYTE_LENGTH, PVOX_ROOT_HEADER_TRAILING_RESERVED_OFFSET, PVOX_ROOT_RECORD_BYTES, PVOX_RUNTIME_CAPABILITY_PROFILE_IDS, PVOX_RUNTIME_REQUEST_PROFILE_HASH_DOMAIN, PVOX_SECTION_ALIGNMENT_BYTES, PVOX_SECTION_HASH_DOMAIN, PVOX_SECTION_REGISTRY, PVOX_SHA256_BYTE_LENGTH, PVOX_SHA256_HEX_LENGTH, PVOX_SURFACE_PROPERTY_RECORD_BYTES, type PhysicalPropertyEvidence, type PhysicalPropertyKind, type PhysicalPropertyProvenance, type ProposedModelCandidateAssetRef, type PvoxAssemblyChild, type PvoxAssemblyClosureHashInputV1, type PvoxAssetManifest, type PvoxAssetManifestV1, type PvoxAuthenticatedResourceMetadata, type PvoxBinaryClosureHashInputV1, type PvoxBrickPatchDescriptor, type PvoxCapability, type PvoxCapabilityStatus, type PvoxCatalogAssemblyChildRef, type PvoxCompilerEvidence, type PvoxEditJournal, type PvoxEditJournalCurrentState, type PvoxEditOperation, type PvoxEditOverlayPatchHashInputV1, type PvoxEditOverlayRootHashInputV1, type PvoxEvaluationClosureHashInputV1, type PvoxFidelityEvidence, type PvoxFidelityProfileId, type PvoxGateEvidence, type PvoxGeometryMode, type PvoxHashAttestation, type PvoxLodLevel, type PvoxLodRecord, type PvoxModelMatchAssessmentV2, type PvoxModelResolutionJsonSchema, type PvoxNamedJsonClosureV1, type PvoxNonOverridableGateKind, type PvoxPageHashRecordV1, type PvoxPageRecord, type PvoxPageSpatialKey, type PvoxPhysicalEvidenceHashInputV1, type PvoxPhysicalEvidenceRegionMaterialV1, type PvoxPhysicalInventoryHashInputV1, type PvoxPhysicalInventoryHashRecordV1, type PvoxPhysicalRegionInventoryEntry, type PvoxPhysicalRegionInventoryV1, type PvoxProcessingClosureHashInputV1, type PvoxRenderEvidence, type PvoxRequestedGeometryMode, type PvoxReviewedStructuralEvidence, type PvoxReviewedStructuralEvidenceKind, type PvoxRootHeaderGeometryModeV1, type PvoxRootHeaderInputV1, type PvoxRootSectionHashRecordV1, type PvoxRuntimeCapabilityProfileId, type PvoxRuntimeLimitsV1, type PvoxRuntimeRequestProfileV1, type PvoxStagedAssemblyChildRef, type QualifiedModelConversionDiagnostic, type QualifiedModelConversionDiagnostics, STATIC_WORLD_V1_MODEL_POLICY, type ShaderAssetManifest, type ShaderStyleProfileAssetManifest, type ShaderStyleProfileRefInput, type ShaderValidationEvidenceAssetManifest, type ShaderVersionRefInput, type StagedModelAssemblyChildRef, type TypedAssetManifest, UNIFIED_ASSET_PIPELINE_FEATURE_FLAG_ID, type UnavailableModelGeneratorResult, type VoxelCapabilityAssessment, type VoxelTechnicalProfile, assertAssetId, assertAssetVersion, assertImmutableAssetVersion, calculatePvoxMinimumArtifactByteLength, canonicalizeModelRequestSemanticProfileV1, canonicalizePvoxHashProjectionV1, canonicalizePvoxNamedJsonClosureV1, classifyModelMatchAssurance, createAssetFileDescriptor, createAssetJobRecord, createAssetManifest, createAssetPromotionRecord, createAssetReviewReport, createDisabledModelGeneratorPort, createGpuAssetManifest, createGpuAssetPromotionRecord, createGpuInterfaceAssetManifest, createGpuInterfaceRef, createModelAssetManifest, createModelAssetRef, createModelCandidate, createModelCandidateConfirmation, createModelCandidateConfirmationV2, createModelCandidateV2, createModelGeneratorRequest, createModelGeneratorResult, createModelMatchAssessment, createModelProcessingManifest, createModelProcessingManifestV2, createModelProvenance, createModelRequestSpec, createModelRequestSpecV2, createModelResolution, createModelResolutionV2, createModelResourceRef, createModelRightsAssessment, createModelTechnicalProfile, createPhysicalPropertyEvidence, createPvoxAssetManifest, createPvoxAssetManifestV1, createPvoxEditJournal, createPvoxEditJournalChain, createPvoxFidelityEvidence, createPvoxGateEvidence, createPvoxModelMatchAssessmentV2, createPvoxPhysicalRegionInventoryV1, createShaderAssetManifest, createShaderStyleProfileAssetManifest, createShaderStyleProfileRef, createShaderValidationEvidenceAssetManifest, createShaderValidationEvidenceRef, createShaderVersionRef, createStandardScreenshotPlan, createVoxelCapabilityAssessment, createVoxelTechnicalProfile, decodePvoxSha256HexV1, encodePvoxAssemblyClosureHashPreimageV1, encodePvoxBinaryClosureHashPreimageV1, encodePvoxCanonicalUtf8V1, encodePvoxCapabilitySetHashPreimageV1, encodePvoxDirectoryHashPreimageV1, encodePvoxEditOverlayRootHashPreimageV1, encodePvoxEvaluationClosureHashPreimageV1, encodePvoxI64LeV1, encodePvoxNamedJsonClosurePreimageV1, encodePvoxPageSetHashPreimageV1, encodePvoxPhysicalEvidenceHashPreimageV1, encodePvoxPhysicalInventoryHashPreimageV1, encodePvoxProcessingClosureHashPreimageV1, encodePvoxRootHashPreimageV1, encodePvoxRootHeaderV1, encodePvoxSectionHashPreimageV1, encodePvoxU16LeV1, encodePvoxU32LeV1, encodePvoxU64LeV1, evaluateModelHardConstraints, evaluateModelHardConstraintsForProfile, isAssetFileRole, isAssetId, isAssetJobState, isAssetKind, isAssetPromotionOutcome, isAssetSourceAdapter, isModelCandidateConfirmable, isModelCandidateV2Confirmable, isModelResolutionState, isModelResolutionStateV2, normalizeAssetId, normalizePvoxRootHeaderForHashV1, projectPvoxNamedJsonClosureV1, qualifyModelConversionDiagnostics, qualifyModelResourceManifest, toLegacyModelResolutionState, validateGpuAssetFiles };
2215
+ export { ASSET_CONTRACTS_PACKAGE, ASSET_FILE_ROLES, ASSET_JOB_STATES, ASSET_JSON_CONTENT_TYPE, ASSET_KINDS, ASSET_PIPELINE_MCP_CAPABILITY, ASSET_PIPELINE_REVIEW_CAPABILITY, ASSET_PROMOTION_OUTCOMES, ASSET_REVIEW_SEVERITIES, ASSET_SCREENSHOT_KINDS, ASSET_SOURCE_ADAPTERS, ASSET_WGSL_CONTENT_TYPE, type AssetFileDescriptor, type AssetFileRole, type AssetJobRecord, type AssetJobState, type AssetKind, type AssetManifest, type AssetPromotionOutcome, type AssetPromotionRecord, type AssetReviewFinding, type AssetReviewReport, type AssetReviewSeverity, type AssetScreenshotKind, type AssetScreenshotPlanItem, type AssetSourceAdapter, type BudgetExceededModelGeneratorResult, CANONICAL_MODEL_COORDINATE_SYSTEM, type CancelledModelGeneratorResult, type ConfirmableModelCandidateV2, type DiagnosticModelCandidateV2, type DisabledModelGeneratorResult, type ExistingModelCandidateAssetRef, type FailedModelGeneratorResult, type GeneratedModelGeneratorResult, type GpuAssetFileValidationInput, type GpuAssetManifest, type GpuInterfaceAssetManifest, type GpuInterfaceRefInput, MODEL_ASSET_KINDS, MODEL_CANDIDATE_HARD_GATE_KINDS, MODEL_CONFIRMATION_VIEW_KINDS, MODEL_CONFIRMATION_VIEW_SIZE_PX, MODEL_CONVERSION_DIAGNOSTIC_LIMITS, MODEL_GENERATOR_DISABLED_REASON_CODE, MODEL_MATCH_ASSURANCE_BANDS, MODEL_MATCH_ASSURANCE_THRESHOLDS, MODEL_PROVENANCE_KINDS, MODEL_RANKER_ASSURANCE_CEILING_REASON_CODE, MODEL_RANKER_EVIDENCE_MODES, MODEL_REQUEST_MAX_REVISION, MODEL_RESOLUTION_CONTRACT_VERSION, MODEL_RESOLUTION_STATES, MODEL_RESOLUTION_V2_COMPATIBILITY_STATES, MODEL_RESOLUTION_V2_CONTRACT_VERSION, MODEL_RESOLUTION_V2_JSON_SCHEMAS, MODEL_RESOLUTION_V2_STATES, MODEL_RESOURCE_MANIFEST_LIMITS, MODEL_RIGHTS_STATUSES, MODEL_TEXTURE_RESOURCE_LIMITS, MODEL_TEXT_ONLY_ASSURANCE_CEILING_REASON_CODE, type ModelAssemblyChild, type ModelAssemblyChildAssetRef, type ModelAssetKind, type ModelAssetManifest, type ModelAssetManifestInput, type ModelAssetRef, type ModelAttribution, type ModelBoundsMetres, type ModelBoundsMetresV2, type ModelCandidate, type ModelCandidateAssetRef, type ModelCandidateConfirmation, type ModelCandidateConfirmationBindingV2, type ModelCandidateConfirmationV2, type ModelCandidateHardGateEvidence, type ModelCandidateHardGateKind, type ModelCandidateV2, type ModelCollisionKind, type ModelCollisionPolicyEvidence, type ModelCollisionRecord, type ModelConfirmationView, type ModelConfirmationViewKind, type ModelConfirmationViews, type ModelConversionDiagnosticCode, ModelConversionDiagnosticsError, type ModelConversionDiagnosticsInput, type ModelConversionDiagnosticsOptions, type ModelConversionLoss, type ModelConversionResourceBinding, type ModelConverterDiagnostic, type ModelConverterEvidence, type ModelDerivedTextureResource, type ModelDiagnosticSeverity, type ModelDimensionsMetres, type ModelDimensionsMetresV2, type ModelFidelityAspect, type ModelFidelityEvidence, type ModelFidelityGateEvidence, type ModelFidelityOutcome, type ModelGeneratorArtifact, type ModelGeneratorArtifactRole, type ModelGeneratorBudgetName, type ModelGeneratorBudgetViolation, type ModelGeneratorBudgets, type ModelGeneratorCallOptions, type ModelGeneratorCancellationReason, type ModelGeneratorFailureReason, type ModelGeneratorIdentity, type ModelGeneratorPort, type ModelGeneratorRequest, type ModelGeneratorResult, type ModelGeneratorSourceBundle, type ModelGeneratorUnavailableReason, type ModelGeneratorUsage, type ModelHardConstraintEvaluation, type ModelHardConstraints, type ModelHardConstraintsV2, type ModelLodLevel, type ModelLodRecord, type ModelMatchAssessment, type ModelMatchAssurance, type ModelPartitionPolicy, type ModelProcessingManifest, type ModelProcessingManifestV2, type ModelPromotionReceipt, type ModelPromotionReceiptV2, type ModelProvenance, type ModelProvenanceKind, type ModelQuaternion, type ModelRankerEvidenceMode, type ModelRankerRef, type ModelRefinementQuestionV2, type ModelRenderEvidence, type ModelRequestSpec, type ModelRequestSpecV2, type ModelRequirementPolicy, type ModelResolution, type ModelResolutionState, type ModelResolutionStateV2, type ModelResolutionV2, type ModelResourceFileInput, ModelResourceManifestError, type ModelResourceManifestQualificationInput, type ModelResourceRef, type ModelRightsAssessment, type ModelRightsStatus, type ModelSoftPreferences, type ModelSourceIngestionLimitsV2, type ModelTechnicalProfile, type ModelTextureResourceBinding, ModelTextureResourceError, type ModelTextureResourceQualificationInput, type ModelTextureResourceQualificationOptions, type ModelTransform, type ModelVector3, PVOX_ASSEMBLY_CLOSURE_HASH_DOMAIN, PVOX_ASSET_MANIFEST_VERSION, PVOX_BINARY_CLOSURE_HASH_DOMAIN, PVOX_BOND_RECORD_BYTES, PVOX_BRICK_EDGE_VOXELS, PVOX_CANONICAL_UTF8_LENGTH_PREFIX_BYTES, PVOX_CAPABILITIES, PVOX_CAPABILITY_SET_HASH_DOMAIN, PVOX_COLLISION_BRICK_MASK_BYTES, PVOX_COLLISION_SECTION_COUNT, PVOX_CONFIRMATION_BINDING_HASH_DOMAIN, PVOX_CONTENT_TYPE, PVOX_DEFAULT_LIMITS, PVOX_DEFAULT_SOURCE_INGESTION_LIMITS, PVOX_DIRECTORY_ENTRY_BYTE_LENGTH, PVOX_DIRECTORY_HASH_DOMAIN, PVOX_EDIT_JOURNAL_GENESIS_HASH, PVOX_EDIT_JOURNAL_HASH_DOMAIN, PVOX_EDIT_JOURNAL_VERSION, PVOX_EDIT_OVERLAY_ROOT_HASH_DOMAIN, PVOX_EVALUATION_CLOSURE_HASH_DOMAIN, PVOX_FEATURE_FLAG_ID, PVOX_FIDELITY_PROFILE_IDS, PVOX_FIDELITY_PROFILE_VERSION, PVOX_FILE_EXTENSION, PVOX_FORMAT_VERSION, PVOX_HASH_DOMAINS, PVOX_HASH_PREIMAGE_LAYOUTS, PVOX_HEADER_BYTE_LENGTH, PVOX_HIERARCHY_NODE_RECORD_BYTES, PVOX_INTERIOR_LAYER_RECORD_BYTES, PVOX_LEVEL_SPAN_RECORD_BYTES, PVOX_LOD_RECORD_BYTES, PVOX_MAGIC, PVOX_MASS_PROPERTY_RECORD_BYTES, PVOX_MATERIAL_REGION_RECORD_BYTES, PVOX_MAX_ABSOLUTE_COORDINATE_METRES, PVOX_MAX_CANONICAL_HASH_UTF8_BYTES_V1, PVOX_MAX_EDIT_PATCHES, PVOX_MAX_ENCODED_BRICK_PAYLOAD_BYTES, PVOX_MAX_HASH_PREIMAGE_BYTES_V1, PVOX_MAX_HIERARCHY_NODES, PVOX_MAX_LOCAL_SAMPLES_PER_BRICK, PVOX_MAX_RUNS_PER_BRICK, PVOX_MAX_SECTIONS, PVOX_MIN_BRICK_DESCRIPTOR_BYTES, PVOX_MIN_ENCODED_COLLISION_SAMPLE_BYTES, PVOX_MIN_ENCODED_SURFACE_SAMPLE_BYTES, PVOX_MIN_STATIC_SECTION_COUNT, PVOX_MODEL_REQUEST_POLICY_ID, PVOX_NAMED_JSON_CLOSURE_SPECS_V1, PVOX_NATIVE_RENDERER_ID, PVOX_NATIVE_REVIEW_SETTINGS_ID, PVOX_NON_OVERRIDABLE_GATE_KINDS, PVOX_PAGE_KINDS, PVOX_PAGE_SET_HASH_DOMAIN, PVOX_PAGE_SIZE_BYTES, PVOX_PARTITION_RECORD_BYTES, PVOX_PHYSICAL_EVIDENCE_HASH_DOMAIN, PVOX_PHYSICAL_EVIDENCE_RECORD_BYTES, PVOX_PHYSICAL_INVENTORY_HASH_DOMAIN, PVOX_PHYSICAL_PROPERTIES, PVOX_PHYSICAL_PROPERTY_POLICIES, PVOX_PHYSICAL_PROPERTY_POLICY_ID, PVOX_PHYSICAL_PROPERTY_POLICY_VERSION, PVOX_PHYSICAL_PROPERTY_RECORD_BYTES, PVOX_PHYSICAL_REGION_INVENTORY_VERSION, PVOX_PROCESSING_CLOSURE_HASH_DOMAIN, PVOX_PUBLICATION_HASH_DOMAIN, PVOX_RENDER_BRICK_MASK_BYTES, PVOX_RENDER_EVIDENCE_HASH_DOMAIN, PVOX_REQUEST_SEMANTIC_PROFILE_HASH_DOMAIN, PVOX_REQUIRED_OAUTH_CAPABILITIES, PVOX_ROOT_HASH_DOMAIN, PVOX_ROOT_HEADER_COMPILATION_INPUT_HASH_OFFSET, PVOX_ROOT_HEADER_COORDINATE_BASIS_METRES_Y_UP_NEGATIVE_Z_FORWARD_CCW, PVOX_ROOT_HEADER_DIRECTORY_HASH_OFFSET, PVOX_ROOT_HEADER_FLAGS_V1, PVOX_ROOT_HEADER_GEOMETRY_MODE_CODES_V1, PVOX_ROOT_HEADER_HASH_RULE, PVOX_ROOT_HEADER_INLINE_RESERVED_BYTE_LENGTH, PVOX_ROOT_HEADER_INLINE_RESERVED_OFFSET, PVOX_ROOT_HEADER_LAYOUT_V1, PVOX_ROOT_HEADER_MAXIMUM_FIXED_POINT_FRACTION_BITS_V1, PVOX_ROOT_HEADER_MAXIMUM_HIERARCHY_DEPTH_V1, PVOX_ROOT_HEADER_MINIMUM_FIXED_POINT_FRACTION_BITS_V1, PVOX_ROOT_HEADER_RUNTIME_REQUEST_PROFILE_HASH_OFFSET, PVOX_ROOT_HEADER_TRAILING_RESERVED_BYTE_LENGTH, PVOX_ROOT_HEADER_TRAILING_RESERVED_OFFSET, PVOX_ROOT_RECORD_BYTES, PVOX_RUNTIME_CAPABILITY_PROFILE_IDS, PVOX_RUNTIME_REQUEST_PROFILE_HASH_DOMAIN, PVOX_SECTION_ALIGNMENT_BYTES, PVOX_SECTION_HASH_DOMAIN, PVOX_SECTION_REGISTRY, PVOX_SHA256_BYTE_LENGTH, PVOX_SHA256_HEX_LENGTH, PVOX_SURFACE_PROPERTY_RECORD_BYTES, type PhysicalPropertyEvidence, type PhysicalPropertyKind, type PhysicalPropertyProvenance, type ProposedModelCandidateAssetRef, type PvoxAssemblyChild, type PvoxAssemblyClosureHashInputV1, type PvoxAssetManifest, type PvoxAssetManifestV1, type PvoxAuthenticatedResourceMetadata, type PvoxBinaryClosureHashInputV1, type PvoxBrickPatchDescriptor, type PvoxCapability, type PvoxCapabilityStatus, type PvoxCatalogAssemblyChildRef, type PvoxCompilerEvidence, type PvoxEditJournal, type PvoxEditJournalCurrentState, type PvoxEditOperation, type PvoxEditOverlayPatchHashInputV1, type PvoxEditOverlayRootHashInputV1, type PvoxEvaluationClosureHashInputV1, type PvoxFidelityEvidence, type PvoxFidelityProfileId, type PvoxGateEvidence, type PvoxGeometryMode, type PvoxHashAttestation, type PvoxLodLevel, type PvoxLodRecord, type PvoxModelMatchAssessmentV2, type PvoxModelResolutionJsonSchema, type PvoxNamedJsonClosureV1, type PvoxNonOverridableGateKind, type PvoxPageHashRecordV1, type PvoxPageRecord, type PvoxPageSpatialKey, type PvoxPhysicalEvidenceHashInputV1, type PvoxPhysicalEvidenceRegionMaterialV1, type PvoxPhysicalInventoryHashInputV1, type PvoxPhysicalInventoryHashRecordV1, type PvoxPhysicalRegionInventoryEntry, type PvoxPhysicalRegionInventoryV1, type PvoxProcessingClosureHashInputV1, type PvoxRenderEvidence, type PvoxRequestedGeometryMode, type PvoxReviewedStructuralEvidence, type PvoxReviewedStructuralEvidenceKind, type PvoxRootHeaderGeometryModeV1, type PvoxRootHeaderInputV1, type PvoxRootSectionHashRecordV1, type PvoxRuntimeCapabilityProfileId, type PvoxRuntimeLimitsV1, type PvoxRuntimeRequestProfileV1, type PvoxStagedAssemblyChildRef, type QualifiedModelConversionDiagnostic, type QualifiedModelConversionDiagnostics, type QualifiedModelTextureResource, type QualifiedModelTextureResources, STATIC_WORLD_V1_MODEL_POLICY, type ShaderAssetManifest, type ShaderStyleProfileAssetManifest, type ShaderStyleProfileRefInput, type ShaderValidationEvidenceAssetManifest, type ShaderVersionRefInput, type StagedModelAssemblyChildRef, type TypedAssetManifest, UNIFIED_ASSET_PIPELINE_FEATURE_FLAG_ID, type UnavailableModelGeneratorResult, type VoxelCapabilityAssessment, type VoxelTechnicalProfile, assertAssetId, assertAssetVersion, assertImmutableAssetVersion, calculatePvoxMinimumArtifactByteLength, canonicalizeModelRequestSemanticProfileV1, canonicalizePvoxHashProjectionV1, canonicalizePvoxNamedJsonClosureV1, classifyModelMatchAssurance, createAssetFileDescriptor, createAssetJobRecord, createAssetManifest, createAssetPromotionRecord, createAssetReviewReport, createDisabledModelGeneratorPort, createGpuAssetManifest, createGpuAssetPromotionRecord, createGpuInterfaceAssetManifest, createGpuInterfaceRef, createModelAssetManifest, createModelAssetRef, createModelCandidate, createModelCandidateConfirmation, createModelCandidateConfirmationV2, createModelCandidateV2, createModelGeneratorRequest, createModelGeneratorResult, createModelMatchAssessment, createModelProcessingManifest, createModelProcessingManifestV2, createModelProvenance, createModelRequestSpec, createModelRequestSpecV2, createModelResolution, createModelResolutionV2, createModelResourceRef, createModelRightsAssessment, createModelTechnicalProfile, createPhysicalPropertyEvidence, createPvoxAssetManifest, createPvoxAssetManifestV1, createPvoxEditJournal, createPvoxEditJournalChain, createPvoxFidelityEvidence, createPvoxGateEvidence, createPvoxModelMatchAssessmentV2, createPvoxPhysicalRegionInventoryV1, createShaderAssetManifest, createShaderStyleProfileAssetManifest, createShaderStyleProfileRef, createShaderValidationEvidenceAssetManifest, createShaderValidationEvidenceRef, createShaderVersionRef, createStandardScreenshotPlan, createVoxelCapabilityAssessment, createVoxelTechnicalProfile, decodePvoxSha256HexV1, encodePvoxAssemblyClosureHashPreimageV1, encodePvoxBinaryClosureHashPreimageV1, encodePvoxCanonicalUtf8V1, encodePvoxCapabilitySetHashPreimageV1, encodePvoxDirectoryHashPreimageV1, encodePvoxEditOverlayRootHashPreimageV1, encodePvoxEvaluationClosureHashPreimageV1, encodePvoxI64LeV1, encodePvoxNamedJsonClosurePreimageV1, encodePvoxPageSetHashPreimageV1, encodePvoxPhysicalEvidenceHashPreimageV1, encodePvoxPhysicalInventoryHashPreimageV1, encodePvoxProcessingClosureHashPreimageV1, encodePvoxRootHashPreimageV1, encodePvoxRootHeaderV1, encodePvoxSectionHashPreimageV1, encodePvoxU16LeV1, encodePvoxU32LeV1, encodePvoxU64LeV1, evaluateModelHardConstraints, evaluateModelHardConstraintsForProfile, isAssetFileRole, isAssetId, isAssetJobState, isAssetKind, isAssetPromotionOutcome, isAssetSourceAdapter, isModelCandidateConfirmable, isModelCandidateV2Confirmable, isModelResolutionState, isModelResolutionStateV2, normalizeAssetId, normalizePvoxRootHeaderForHashV1, projectPvoxNamedJsonClosureV1, qualifyModelConversionDiagnostics, qualifyModelResourceManifest, qualifyModelTextureResources, toLegacyModelResolutionState, validateGpuAssetFiles };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { GpuInterfaceRef, Sha256Hex, ShaderStyleProfileRef, GpuInterfaceManifest, ShaderVersionManifest, ShaderStyleProfileManifest, ShaderValidationEvidenceRef, ShaderVersionRef } from '@plasius/gpu-shader';
2
2
  export { GPU_SHADER_STORE_FEATURE_FLAG, GPU_SHADER_STYLE_SELECTION_CAPABILITY, GpuInterfaceManifest, GpuInterfaceRef, ModelGpuCompatibilityDescriptor, Sha256Hex, ShaderStyleProfileManifest, ShaderStyleProfileRef, ShaderValidationEvidenceRef, ShaderVersionManifest, ShaderVersionRef } from '@plasius/gpu-shader';
3
- import { ResourcePackageManifest, GpuModelDiagnosticInput, GpuModelDiagnosticStandard, GpuModelDiagnosticMode } from '@plasius/gpu-model-core';
3
+ import { ResourcePackageManifest, GpuModelResourceGraph, GpuModelResourceLocation, GpuModelTextureEmbeddingPolicy, GpuModelProvenance, GpuModelMaterial, GpuModelTexture, GpuModelDiagnosticInput, GpuModelDiagnosticStandard, GpuModelDiagnosticMode } from '@plasius/gpu-model-core';
4
4
 
5
5
  /**
6
6
  * Validates the legacy asset-version token grammar.
@@ -1888,6 +1888,69 @@ declare class ModelResourceManifestError extends TypeError {
1888
1888
  */
1889
1889
  declare function qualifyModelResourceManifest(input: ModelResourceManifestQualificationInput): Promise<AssetManifest>;
1890
1890
 
1891
+ /** Hard ceilings for the additive package role boundary; callers cannot raise them. */
1892
+ declare const MODEL_TEXTURE_RESOURCE_LIMITS: Readonly<{
1893
+ resources: 16384;
1894
+ derived: 4096;
1895
+ nodes: 65536;
1896
+ values: 262144;
1897
+ characters: 2097152;
1898
+ depth: 16;
1899
+ timeoutMs: 60000;
1900
+ }>;
1901
+ /** An embedded resource names its owning entrypoint; external resources name their exact graph path. */
1902
+ interface ModelTextureResourceBinding {
1903
+ readonly resourceId: string;
1904
+ readonly filePath: string;
1905
+ }
1906
+ /** Declarative derived output; source identities remain independent of output hashes and paths. */
1907
+ interface ModelDerivedTextureResource {
1908
+ readonly role: "gpu-upload" | "texture-atlas";
1909
+ readonly filePath: string;
1910
+ readonly sourceResourceIds: readonly string[];
1911
+ }
1912
+ /** Existing exact-byte inventory plus a privately verified canonical graph and explicit export bindings. */
1913
+ interface ModelTextureResourceQualificationInput extends Omit<ModelResourceManifestQualificationInput, "signal" | "timeoutMs"> {
1914
+ readonly graph: GpuModelResourceGraph;
1915
+ readonly resources: readonly ModelTextureResourceBinding[];
1916
+ readonly derived: readonly ModelDerivedTextureResource[];
1917
+ }
1918
+ /** Deadline and cancellation cover hashing and bounded synchronous qualification. */
1919
+ interface ModelTextureResourceQualificationOptions {
1920
+ readonly signal?: AbortSignal;
1921
+ readonly timeoutMs?: number;
1922
+ }
1923
+ /** JSON resource identity without a Blob, renderer allocation or credential-bearing URL. */
1924
+ interface QualifiedModelTextureResource extends ModelTextureResourceBinding {
1925
+ readonly kind: "image" | "buffer";
1926
+ readonly contentHash: string;
1927
+ readonly byteLength: number;
1928
+ readonly mimeType: string;
1929
+ readonly location: GpuModelResourceLocation;
1930
+ readonly exportEmbeddingPolicy: GpuModelTextureEmbeddingPolicy;
1931
+ }
1932
+ /** Trusted package metadata, including authored sourceMetadata; not a public-safe diagnostic projection. */
1933
+ interface QualifiedModelTextureResources {
1934
+ readonly contractVersion: 1;
1935
+ readonly manifest: AssetManifest;
1936
+ readonly source: GpuModelProvenance;
1937
+ readonly resources: readonly QualifiedModelTextureResource[];
1938
+ readonly materials: readonly GpuModelMaterial[];
1939
+ readonly textures: readonly GpuModelTexture[];
1940
+ readonly derived: readonly ModelDerivedTextureResource[];
1941
+ }
1942
+ /** Fixed, value-free errors. No caller metadata or upstream exception text is exposed. */
1943
+ declare class ModelTextureResourceError extends TypeError {
1944
+ readonly code: "invalid-input" | "limit-exceeded" | "unverified-graph" | "package-mismatch" | "resource-mismatch" | "role-mismatch" | "aborted" | "deadline-exceeded";
1945
+ constructor(code: "invalid-input" | "limit-exceeded" | "unverified-graph" | "package-mismatch" | "resource-mismatch" | "role-mismatch" | "aborted" | "deadline-exceeded");
1946
+ }
1947
+ /**
1948
+ * Qualify reload metadata without parsing formats, allocating GPU objects or
1949
+ * replacing authored resource identities. Metadata is trusted package content;
1950
+ * adapters must sanitize it before public use. This is not promotion evidence.
1951
+ */
1952
+ declare function qualifyModelTextureResources(input: ModelTextureResourceQualificationInput, options?: ModelTextureResourceQualificationOptions): Promise<QualifiedModelTextureResources>;
1953
+
1891
1954
  /** Hard ceilings for public conversion evidence, including private input metadata. */
1892
1955
  declare const MODEL_CONVERSION_DIAGNOSTIC_LIMITS: Readonly<{
1893
1956
  issues: 100;
@@ -2149,4 +2212,4 @@ declare function createAssetPromotionRecord<TManifest extends AssetManifest>(inp
2149
2212
  /** Digest-verifies and promotes a typed GPU asset without a generic-factory bypass. */
2150
2213
  declare function createGpuAssetPromotionRecord<TManifest extends GpuAssetManifest>(input: AssetPromotionRecord<TManifest>, files: ReadonlyMap<string, Uint8Array>): Promise<AssetPromotionRecord<TManifest>>;
2151
2214
 
2152
- export { ASSET_CONTRACTS_PACKAGE, ASSET_FILE_ROLES, ASSET_JOB_STATES, ASSET_JSON_CONTENT_TYPE, ASSET_KINDS, ASSET_PIPELINE_MCP_CAPABILITY, ASSET_PIPELINE_REVIEW_CAPABILITY, ASSET_PROMOTION_OUTCOMES, ASSET_REVIEW_SEVERITIES, ASSET_SCREENSHOT_KINDS, ASSET_SOURCE_ADAPTERS, ASSET_WGSL_CONTENT_TYPE, type AssetFileDescriptor, type AssetFileRole, type AssetJobRecord, type AssetJobState, type AssetKind, type AssetManifest, type AssetPromotionOutcome, type AssetPromotionRecord, type AssetReviewFinding, type AssetReviewReport, type AssetReviewSeverity, type AssetScreenshotKind, type AssetScreenshotPlanItem, type AssetSourceAdapter, type BudgetExceededModelGeneratorResult, CANONICAL_MODEL_COORDINATE_SYSTEM, type CancelledModelGeneratorResult, type ConfirmableModelCandidateV2, type DiagnosticModelCandidateV2, type DisabledModelGeneratorResult, type ExistingModelCandidateAssetRef, type FailedModelGeneratorResult, type GeneratedModelGeneratorResult, type GpuAssetFileValidationInput, type GpuAssetManifest, type GpuInterfaceAssetManifest, type GpuInterfaceRefInput, MODEL_ASSET_KINDS, MODEL_CANDIDATE_HARD_GATE_KINDS, MODEL_CONFIRMATION_VIEW_KINDS, MODEL_CONFIRMATION_VIEW_SIZE_PX, MODEL_CONVERSION_DIAGNOSTIC_LIMITS, MODEL_GENERATOR_DISABLED_REASON_CODE, MODEL_MATCH_ASSURANCE_BANDS, MODEL_MATCH_ASSURANCE_THRESHOLDS, MODEL_PROVENANCE_KINDS, MODEL_RANKER_ASSURANCE_CEILING_REASON_CODE, MODEL_RANKER_EVIDENCE_MODES, MODEL_REQUEST_MAX_REVISION, MODEL_RESOLUTION_CONTRACT_VERSION, MODEL_RESOLUTION_STATES, MODEL_RESOLUTION_V2_COMPATIBILITY_STATES, MODEL_RESOLUTION_V2_CONTRACT_VERSION, MODEL_RESOLUTION_V2_JSON_SCHEMAS, MODEL_RESOLUTION_V2_STATES, MODEL_RESOURCE_MANIFEST_LIMITS, MODEL_RIGHTS_STATUSES, MODEL_TEXT_ONLY_ASSURANCE_CEILING_REASON_CODE, type ModelAssemblyChild, type ModelAssemblyChildAssetRef, type ModelAssetKind, type ModelAssetManifest, type ModelAssetManifestInput, type ModelAssetRef, type ModelAttribution, type ModelBoundsMetres, type ModelBoundsMetresV2, type ModelCandidate, type ModelCandidateAssetRef, type ModelCandidateConfirmation, type ModelCandidateConfirmationBindingV2, type ModelCandidateConfirmationV2, type ModelCandidateHardGateEvidence, type ModelCandidateHardGateKind, type ModelCandidateV2, type ModelCollisionKind, type ModelCollisionPolicyEvidence, type ModelCollisionRecord, type ModelConfirmationView, type ModelConfirmationViewKind, type ModelConfirmationViews, type ModelConversionDiagnosticCode, ModelConversionDiagnosticsError, type ModelConversionDiagnosticsInput, type ModelConversionDiagnosticsOptions, type ModelConversionLoss, type ModelConversionResourceBinding, type ModelConverterDiagnostic, type ModelConverterEvidence, type ModelDiagnosticSeverity, type ModelDimensionsMetres, type ModelDimensionsMetresV2, type ModelFidelityAspect, type ModelFidelityEvidence, type ModelFidelityGateEvidence, type ModelFidelityOutcome, type ModelGeneratorArtifact, type ModelGeneratorArtifactRole, type ModelGeneratorBudgetName, type ModelGeneratorBudgetViolation, type ModelGeneratorBudgets, type ModelGeneratorCallOptions, type ModelGeneratorCancellationReason, type ModelGeneratorFailureReason, type ModelGeneratorIdentity, type ModelGeneratorPort, type ModelGeneratorRequest, type ModelGeneratorResult, type ModelGeneratorSourceBundle, type ModelGeneratorUnavailableReason, type ModelGeneratorUsage, type ModelHardConstraintEvaluation, type ModelHardConstraints, type ModelHardConstraintsV2, type ModelLodLevel, type ModelLodRecord, type ModelMatchAssessment, type ModelMatchAssurance, type ModelPartitionPolicy, type ModelProcessingManifest, type ModelProcessingManifestV2, type ModelPromotionReceipt, type ModelPromotionReceiptV2, type ModelProvenance, type ModelProvenanceKind, type ModelQuaternion, type ModelRankerEvidenceMode, type ModelRankerRef, type ModelRefinementQuestionV2, type ModelRenderEvidence, type ModelRequestSpec, type ModelRequestSpecV2, type ModelRequirementPolicy, type ModelResolution, type ModelResolutionState, type ModelResolutionStateV2, type ModelResolutionV2, type ModelResourceFileInput, ModelResourceManifestError, type ModelResourceManifestQualificationInput, type ModelResourceRef, type ModelRightsAssessment, type ModelRightsStatus, type ModelSoftPreferences, type ModelSourceIngestionLimitsV2, type ModelTechnicalProfile, type ModelTransform, type ModelVector3, PVOX_ASSEMBLY_CLOSURE_HASH_DOMAIN, PVOX_ASSET_MANIFEST_VERSION, PVOX_BINARY_CLOSURE_HASH_DOMAIN, PVOX_BOND_RECORD_BYTES, PVOX_BRICK_EDGE_VOXELS, PVOX_CANONICAL_UTF8_LENGTH_PREFIX_BYTES, PVOX_CAPABILITIES, PVOX_CAPABILITY_SET_HASH_DOMAIN, PVOX_COLLISION_BRICK_MASK_BYTES, PVOX_COLLISION_SECTION_COUNT, PVOX_CONFIRMATION_BINDING_HASH_DOMAIN, PVOX_CONTENT_TYPE, PVOX_DEFAULT_LIMITS, PVOX_DEFAULT_SOURCE_INGESTION_LIMITS, PVOX_DIRECTORY_ENTRY_BYTE_LENGTH, PVOX_DIRECTORY_HASH_DOMAIN, PVOX_EDIT_JOURNAL_GENESIS_HASH, PVOX_EDIT_JOURNAL_HASH_DOMAIN, PVOX_EDIT_JOURNAL_VERSION, PVOX_EDIT_OVERLAY_ROOT_HASH_DOMAIN, PVOX_EVALUATION_CLOSURE_HASH_DOMAIN, PVOX_FEATURE_FLAG_ID, PVOX_FIDELITY_PROFILE_IDS, PVOX_FIDELITY_PROFILE_VERSION, PVOX_FILE_EXTENSION, PVOX_FORMAT_VERSION, PVOX_HASH_DOMAINS, PVOX_HASH_PREIMAGE_LAYOUTS, PVOX_HEADER_BYTE_LENGTH, PVOX_HIERARCHY_NODE_RECORD_BYTES, PVOX_INTERIOR_LAYER_RECORD_BYTES, PVOX_LEVEL_SPAN_RECORD_BYTES, PVOX_LOD_RECORD_BYTES, PVOX_MAGIC, PVOX_MASS_PROPERTY_RECORD_BYTES, PVOX_MATERIAL_REGION_RECORD_BYTES, PVOX_MAX_ABSOLUTE_COORDINATE_METRES, PVOX_MAX_CANONICAL_HASH_UTF8_BYTES_V1, PVOX_MAX_EDIT_PATCHES, PVOX_MAX_ENCODED_BRICK_PAYLOAD_BYTES, PVOX_MAX_HASH_PREIMAGE_BYTES_V1, PVOX_MAX_HIERARCHY_NODES, PVOX_MAX_LOCAL_SAMPLES_PER_BRICK, PVOX_MAX_RUNS_PER_BRICK, PVOX_MAX_SECTIONS, PVOX_MIN_BRICK_DESCRIPTOR_BYTES, PVOX_MIN_ENCODED_COLLISION_SAMPLE_BYTES, PVOX_MIN_ENCODED_SURFACE_SAMPLE_BYTES, PVOX_MIN_STATIC_SECTION_COUNT, PVOX_MODEL_REQUEST_POLICY_ID, PVOX_NAMED_JSON_CLOSURE_SPECS_V1, PVOX_NATIVE_RENDERER_ID, PVOX_NATIVE_REVIEW_SETTINGS_ID, PVOX_NON_OVERRIDABLE_GATE_KINDS, PVOX_PAGE_KINDS, PVOX_PAGE_SET_HASH_DOMAIN, PVOX_PAGE_SIZE_BYTES, PVOX_PARTITION_RECORD_BYTES, PVOX_PHYSICAL_EVIDENCE_HASH_DOMAIN, PVOX_PHYSICAL_EVIDENCE_RECORD_BYTES, PVOX_PHYSICAL_INVENTORY_HASH_DOMAIN, PVOX_PHYSICAL_PROPERTIES, PVOX_PHYSICAL_PROPERTY_POLICIES, PVOX_PHYSICAL_PROPERTY_POLICY_ID, PVOX_PHYSICAL_PROPERTY_POLICY_VERSION, PVOX_PHYSICAL_PROPERTY_RECORD_BYTES, PVOX_PHYSICAL_REGION_INVENTORY_VERSION, PVOX_PROCESSING_CLOSURE_HASH_DOMAIN, PVOX_PUBLICATION_HASH_DOMAIN, PVOX_RENDER_BRICK_MASK_BYTES, PVOX_RENDER_EVIDENCE_HASH_DOMAIN, PVOX_REQUEST_SEMANTIC_PROFILE_HASH_DOMAIN, PVOX_REQUIRED_OAUTH_CAPABILITIES, PVOX_ROOT_HASH_DOMAIN, PVOX_ROOT_HEADER_COMPILATION_INPUT_HASH_OFFSET, PVOX_ROOT_HEADER_COORDINATE_BASIS_METRES_Y_UP_NEGATIVE_Z_FORWARD_CCW, PVOX_ROOT_HEADER_DIRECTORY_HASH_OFFSET, PVOX_ROOT_HEADER_FLAGS_V1, PVOX_ROOT_HEADER_GEOMETRY_MODE_CODES_V1, PVOX_ROOT_HEADER_HASH_RULE, PVOX_ROOT_HEADER_INLINE_RESERVED_BYTE_LENGTH, PVOX_ROOT_HEADER_INLINE_RESERVED_OFFSET, PVOX_ROOT_HEADER_LAYOUT_V1, PVOX_ROOT_HEADER_MAXIMUM_FIXED_POINT_FRACTION_BITS_V1, PVOX_ROOT_HEADER_MAXIMUM_HIERARCHY_DEPTH_V1, PVOX_ROOT_HEADER_MINIMUM_FIXED_POINT_FRACTION_BITS_V1, PVOX_ROOT_HEADER_RUNTIME_REQUEST_PROFILE_HASH_OFFSET, PVOX_ROOT_HEADER_TRAILING_RESERVED_BYTE_LENGTH, PVOX_ROOT_HEADER_TRAILING_RESERVED_OFFSET, PVOX_ROOT_RECORD_BYTES, PVOX_RUNTIME_CAPABILITY_PROFILE_IDS, PVOX_RUNTIME_REQUEST_PROFILE_HASH_DOMAIN, PVOX_SECTION_ALIGNMENT_BYTES, PVOX_SECTION_HASH_DOMAIN, PVOX_SECTION_REGISTRY, PVOX_SHA256_BYTE_LENGTH, PVOX_SHA256_HEX_LENGTH, PVOX_SURFACE_PROPERTY_RECORD_BYTES, type PhysicalPropertyEvidence, type PhysicalPropertyKind, type PhysicalPropertyProvenance, type ProposedModelCandidateAssetRef, type PvoxAssemblyChild, type PvoxAssemblyClosureHashInputV1, type PvoxAssetManifest, type PvoxAssetManifestV1, type PvoxAuthenticatedResourceMetadata, type PvoxBinaryClosureHashInputV1, type PvoxBrickPatchDescriptor, type PvoxCapability, type PvoxCapabilityStatus, type PvoxCatalogAssemblyChildRef, type PvoxCompilerEvidence, type PvoxEditJournal, type PvoxEditJournalCurrentState, type PvoxEditOperation, type PvoxEditOverlayPatchHashInputV1, type PvoxEditOverlayRootHashInputV1, type PvoxEvaluationClosureHashInputV1, type PvoxFidelityEvidence, type PvoxFidelityProfileId, type PvoxGateEvidence, type PvoxGeometryMode, type PvoxHashAttestation, type PvoxLodLevel, type PvoxLodRecord, type PvoxModelMatchAssessmentV2, type PvoxModelResolutionJsonSchema, type PvoxNamedJsonClosureV1, type PvoxNonOverridableGateKind, type PvoxPageHashRecordV1, type PvoxPageRecord, type PvoxPageSpatialKey, type PvoxPhysicalEvidenceHashInputV1, type PvoxPhysicalEvidenceRegionMaterialV1, type PvoxPhysicalInventoryHashInputV1, type PvoxPhysicalInventoryHashRecordV1, type PvoxPhysicalRegionInventoryEntry, type PvoxPhysicalRegionInventoryV1, type PvoxProcessingClosureHashInputV1, type PvoxRenderEvidence, type PvoxRequestedGeometryMode, type PvoxReviewedStructuralEvidence, type PvoxReviewedStructuralEvidenceKind, type PvoxRootHeaderGeometryModeV1, type PvoxRootHeaderInputV1, type PvoxRootSectionHashRecordV1, type PvoxRuntimeCapabilityProfileId, type PvoxRuntimeLimitsV1, type PvoxRuntimeRequestProfileV1, type PvoxStagedAssemblyChildRef, type QualifiedModelConversionDiagnostic, type QualifiedModelConversionDiagnostics, STATIC_WORLD_V1_MODEL_POLICY, type ShaderAssetManifest, type ShaderStyleProfileAssetManifest, type ShaderStyleProfileRefInput, type ShaderValidationEvidenceAssetManifest, type ShaderVersionRefInput, type StagedModelAssemblyChildRef, type TypedAssetManifest, UNIFIED_ASSET_PIPELINE_FEATURE_FLAG_ID, type UnavailableModelGeneratorResult, type VoxelCapabilityAssessment, type VoxelTechnicalProfile, assertAssetId, assertAssetVersion, assertImmutableAssetVersion, calculatePvoxMinimumArtifactByteLength, canonicalizeModelRequestSemanticProfileV1, canonicalizePvoxHashProjectionV1, canonicalizePvoxNamedJsonClosureV1, classifyModelMatchAssurance, createAssetFileDescriptor, createAssetJobRecord, createAssetManifest, createAssetPromotionRecord, createAssetReviewReport, createDisabledModelGeneratorPort, createGpuAssetManifest, createGpuAssetPromotionRecord, createGpuInterfaceAssetManifest, createGpuInterfaceRef, createModelAssetManifest, createModelAssetRef, createModelCandidate, createModelCandidateConfirmation, createModelCandidateConfirmationV2, createModelCandidateV2, createModelGeneratorRequest, createModelGeneratorResult, createModelMatchAssessment, createModelProcessingManifest, createModelProcessingManifestV2, createModelProvenance, createModelRequestSpec, createModelRequestSpecV2, createModelResolution, createModelResolutionV2, createModelResourceRef, createModelRightsAssessment, createModelTechnicalProfile, createPhysicalPropertyEvidence, createPvoxAssetManifest, createPvoxAssetManifestV1, createPvoxEditJournal, createPvoxEditJournalChain, createPvoxFidelityEvidence, createPvoxGateEvidence, createPvoxModelMatchAssessmentV2, createPvoxPhysicalRegionInventoryV1, createShaderAssetManifest, createShaderStyleProfileAssetManifest, createShaderStyleProfileRef, createShaderValidationEvidenceAssetManifest, createShaderValidationEvidenceRef, createShaderVersionRef, createStandardScreenshotPlan, createVoxelCapabilityAssessment, createVoxelTechnicalProfile, decodePvoxSha256HexV1, encodePvoxAssemblyClosureHashPreimageV1, encodePvoxBinaryClosureHashPreimageV1, encodePvoxCanonicalUtf8V1, encodePvoxCapabilitySetHashPreimageV1, encodePvoxDirectoryHashPreimageV1, encodePvoxEditOverlayRootHashPreimageV1, encodePvoxEvaluationClosureHashPreimageV1, encodePvoxI64LeV1, encodePvoxNamedJsonClosurePreimageV1, encodePvoxPageSetHashPreimageV1, encodePvoxPhysicalEvidenceHashPreimageV1, encodePvoxPhysicalInventoryHashPreimageV1, encodePvoxProcessingClosureHashPreimageV1, encodePvoxRootHashPreimageV1, encodePvoxRootHeaderV1, encodePvoxSectionHashPreimageV1, encodePvoxU16LeV1, encodePvoxU32LeV1, encodePvoxU64LeV1, evaluateModelHardConstraints, evaluateModelHardConstraintsForProfile, isAssetFileRole, isAssetId, isAssetJobState, isAssetKind, isAssetPromotionOutcome, isAssetSourceAdapter, isModelCandidateConfirmable, isModelCandidateV2Confirmable, isModelResolutionState, isModelResolutionStateV2, normalizeAssetId, normalizePvoxRootHeaderForHashV1, projectPvoxNamedJsonClosureV1, qualifyModelConversionDiagnostics, qualifyModelResourceManifest, toLegacyModelResolutionState, validateGpuAssetFiles };
2215
+ export { ASSET_CONTRACTS_PACKAGE, ASSET_FILE_ROLES, ASSET_JOB_STATES, ASSET_JSON_CONTENT_TYPE, ASSET_KINDS, ASSET_PIPELINE_MCP_CAPABILITY, ASSET_PIPELINE_REVIEW_CAPABILITY, ASSET_PROMOTION_OUTCOMES, ASSET_REVIEW_SEVERITIES, ASSET_SCREENSHOT_KINDS, ASSET_SOURCE_ADAPTERS, ASSET_WGSL_CONTENT_TYPE, type AssetFileDescriptor, type AssetFileRole, type AssetJobRecord, type AssetJobState, type AssetKind, type AssetManifest, type AssetPromotionOutcome, type AssetPromotionRecord, type AssetReviewFinding, type AssetReviewReport, type AssetReviewSeverity, type AssetScreenshotKind, type AssetScreenshotPlanItem, type AssetSourceAdapter, type BudgetExceededModelGeneratorResult, CANONICAL_MODEL_COORDINATE_SYSTEM, type CancelledModelGeneratorResult, type ConfirmableModelCandidateV2, type DiagnosticModelCandidateV2, type DisabledModelGeneratorResult, type ExistingModelCandidateAssetRef, type FailedModelGeneratorResult, type GeneratedModelGeneratorResult, type GpuAssetFileValidationInput, type GpuAssetManifest, type GpuInterfaceAssetManifest, type GpuInterfaceRefInput, MODEL_ASSET_KINDS, MODEL_CANDIDATE_HARD_GATE_KINDS, MODEL_CONFIRMATION_VIEW_KINDS, MODEL_CONFIRMATION_VIEW_SIZE_PX, MODEL_CONVERSION_DIAGNOSTIC_LIMITS, MODEL_GENERATOR_DISABLED_REASON_CODE, MODEL_MATCH_ASSURANCE_BANDS, MODEL_MATCH_ASSURANCE_THRESHOLDS, MODEL_PROVENANCE_KINDS, MODEL_RANKER_ASSURANCE_CEILING_REASON_CODE, MODEL_RANKER_EVIDENCE_MODES, MODEL_REQUEST_MAX_REVISION, MODEL_RESOLUTION_CONTRACT_VERSION, MODEL_RESOLUTION_STATES, MODEL_RESOLUTION_V2_COMPATIBILITY_STATES, MODEL_RESOLUTION_V2_CONTRACT_VERSION, MODEL_RESOLUTION_V2_JSON_SCHEMAS, MODEL_RESOLUTION_V2_STATES, MODEL_RESOURCE_MANIFEST_LIMITS, MODEL_RIGHTS_STATUSES, MODEL_TEXTURE_RESOURCE_LIMITS, MODEL_TEXT_ONLY_ASSURANCE_CEILING_REASON_CODE, type ModelAssemblyChild, type ModelAssemblyChildAssetRef, type ModelAssetKind, type ModelAssetManifest, type ModelAssetManifestInput, type ModelAssetRef, type ModelAttribution, type ModelBoundsMetres, type ModelBoundsMetresV2, type ModelCandidate, type ModelCandidateAssetRef, type ModelCandidateConfirmation, type ModelCandidateConfirmationBindingV2, type ModelCandidateConfirmationV2, type ModelCandidateHardGateEvidence, type ModelCandidateHardGateKind, type ModelCandidateV2, type ModelCollisionKind, type ModelCollisionPolicyEvidence, type ModelCollisionRecord, type ModelConfirmationView, type ModelConfirmationViewKind, type ModelConfirmationViews, type ModelConversionDiagnosticCode, ModelConversionDiagnosticsError, type ModelConversionDiagnosticsInput, type ModelConversionDiagnosticsOptions, type ModelConversionLoss, type ModelConversionResourceBinding, type ModelConverterDiagnostic, type ModelConverterEvidence, type ModelDerivedTextureResource, type ModelDiagnosticSeverity, type ModelDimensionsMetres, type ModelDimensionsMetresV2, type ModelFidelityAspect, type ModelFidelityEvidence, type ModelFidelityGateEvidence, type ModelFidelityOutcome, type ModelGeneratorArtifact, type ModelGeneratorArtifactRole, type ModelGeneratorBudgetName, type ModelGeneratorBudgetViolation, type ModelGeneratorBudgets, type ModelGeneratorCallOptions, type ModelGeneratorCancellationReason, type ModelGeneratorFailureReason, type ModelGeneratorIdentity, type ModelGeneratorPort, type ModelGeneratorRequest, type ModelGeneratorResult, type ModelGeneratorSourceBundle, type ModelGeneratorUnavailableReason, type ModelGeneratorUsage, type ModelHardConstraintEvaluation, type ModelHardConstraints, type ModelHardConstraintsV2, type ModelLodLevel, type ModelLodRecord, type ModelMatchAssessment, type ModelMatchAssurance, type ModelPartitionPolicy, type ModelProcessingManifest, type ModelProcessingManifestV2, type ModelPromotionReceipt, type ModelPromotionReceiptV2, type ModelProvenance, type ModelProvenanceKind, type ModelQuaternion, type ModelRankerEvidenceMode, type ModelRankerRef, type ModelRefinementQuestionV2, type ModelRenderEvidence, type ModelRequestSpec, type ModelRequestSpecV2, type ModelRequirementPolicy, type ModelResolution, type ModelResolutionState, type ModelResolutionStateV2, type ModelResolutionV2, type ModelResourceFileInput, ModelResourceManifestError, type ModelResourceManifestQualificationInput, type ModelResourceRef, type ModelRightsAssessment, type ModelRightsStatus, type ModelSoftPreferences, type ModelSourceIngestionLimitsV2, type ModelTechnicalProfile, type ModelTextureResourceBinding, ModelTextureResourceError, type ModelTextureResourceQualificationInput, type ModelTextureResourceQualificationOptions, type ModelTransform, type ModelVector3, PVOX_ASSEMBLY_CLOSURE_HASH_DOMAIN, PVOX_ASSET_MANIFEST_VERSION, PVOX_BINARY_CLOSURE_HASH_DOMAIN, PVOX_BOND_RECORD_BYTES, PVOX_BRICK_EDGE_VOXELS, PVOX_CANONICAL_UTF8_LENGTH_PREFIX_BYTES, PVOX_CAPABILITIES, PVOX_CAPABILITY_SET_HASH_DOMAIN, PVOX_COLLISION_BRICK_MASK_BYTES, PVOX_COLLISION_SECTION_COUNT, PVOX_CONFIRMATION_BINDING_HASH_DOMAIN, PVOX_CONTENT_TYPE, PVOX_DEFAULT_LIMITS, PVOX_DEFAULT_SOURCE_INGESTION_LIMITS, PVOX_DIRECTORY_ENTRY_BYTE_LENGTH, PVOX_DIRECTORY_HASH_DOMAIN, PVOX_EDIT_JOURNAL_GENESIS_HASH, PVOX_EDIT_JOURNAL_HASH_DOMAIN, PVOX_EDIT_JOURNAL_VERSION, PVOX_EDIT_OVERLAY_ROOT_HASH_DOMAIN, PVOX_EVALUATION_CLOSURE_HASH_DOMAIN, PVOX_FEATURE_FLAG_ID, PVOX_FIDELITY_PROFILE_IDS, PVOX_FIDELITY_PROFILE_VERSION, PVOX_FILE_EXTENSION, PVOX_FORMAT_VERSION, PVOX_HASH_DOMAINS, PVOX_HASH_PREIMAGE_LAYOUTS, PVOX_HEADER_BYTE_LENGTH, PVOX_HIERARCHY_NODE_RECORD_BYTES, PVOX_INTERIOR_LAYER_RECORD_BYTES, PVOX_LEVEL_SPAN_RECORD_BYTES, PVOX_LOD_RECORD_BYTES, PVOX_MAGIC, PVOX_MASS_PROPERTY_RECORD_BYTES, PVOX_MATERIAL_REGION_RECORD_BYTES, PVOX_MAX_ABSOLUTE_COORDINATE_METRES, PVOX_MAX_CANONICAL_HASH_UTF8_BYTES_V1, PVOX_MAX_EDIT_PATCHES, PVOX_MAX_ENCODED_BRICK_PAYLOAD_BYTES, PVOX_MAX_HASH_PREIMAGE_BYTES_V1, PVOX_MAX_HIERARCHY_NODES, PVOX_MAX_LOCAL_SAMPLES_PER_BRICK, PVOX_MAX_RUNS_PER_BRICK, PVOX_MAX_SECTIONS, PVOX_MIN_BRICK_DESCRIPTOR_BYTES, PVOX_MIN_ENCODED_COLLISION_SAMPLE_BYTES, PVOX_MIN_ENCODED_SURFACE_SAMPLE_BYTES, PVOX_MIN_STATIC_SECTION_COUNT, PVOX_MODEL_REQUEST_POLICY_ID, PVOX_NAMED_JSON_CLOSURE_SPECS_V1, PVOX_NATIVE_RENDERER_ID, PVOX_NATIVE_REVIEW_SETTINGS_ID, PVOX_NON_OVERRIDABLE_GATE_KINDS, PVOX_PAGE_KINDS, PVOX_PAGE_SET_HASH_DOMAIN, PVOX_PAGE_SIZE_BYTES, PVOX_PARTITION_RECORD_BYTES, PVOX_PHYSICAL_EVIDENCE_HASH_DOMAIN, PVOX_PHYSICAL_EVIDENCE_RECORD_BYTES, PVOX_PHYSICAL_INVENTORY_HASH_DOMAIN, PVOX_PHYSICAL_PROPERTIES, PVOX_PHYSICAL_PROPERTY_POLICIES, PVOX_PHYSICAL_PROPERTY_POLICY_ID, PVOX_PHYSICAL_PROPERTY_POLICY_VERSION, PVOX_PHYSICAL_PROPERTY_RECORD_BYTES, PVOX_PHYSICAL_REGION_INVENTORY_VERSION, PVOX_PROCESSING_CLOSURE_HASH_DOMAIN, PVOX_PUBLICATION_HASH_DOMAIN, PVOX_RENDER_BRICK_MASK_BYTES, PVOX_RENDER_EVIDENCE_HASH_DOMAIN, PVOX_REQUEST_SEMANTIC_PROFILE_HASH_DOMAIN, PVOX_REQUIRED_OAUTH_CAPABILITIES, PVOX_ROOT_HASH_DOMAIN, PVOX_ROOT_HEADER_COMPILATION_INPUT_HASH_OFFSET, PVOX_ROOT_HEADER_COORDINATE_BASIS_METRES_Y_UP_NEGATIVE_Z_FORWARD_CCW, PVOX_ROOT_HEADER_DIRECTORY_HASH_OFFSET, PVOX_ROOT_HEADER_FLAGS_V1, PVOX_ROOT_HEADER_GEOMETRY_MODE_CODES_V1, PVOX_ROOT_HEADER_HASH_RULE, PVOX_ROOT_HEADER_INLINE_RESERVED_BYTE_LENGTH, PVOX_ROOT_HEADER_INLINE_RESERVED_OFFSET, PVOX_ROOT_HEADER_LAYOUT_V1, PVOX_ROOT_HEADER_MAXIMUM_FIXED_POINT_FRACTION_BITS_V1, PVOX_ROOT_HEADER_MAXIMUM_HIERARCHY_DEPTH_V1, PVOX_ROOT_HEADER_MINIMUM_FIXED_POINT_FRACTION_BITS_V1, PVOX_ROOT_HEADER_RUNTIME_REQUEST_PROFILE_HASH_OFFSET, PVOX_ROOT_HEADER_TRAILING_RESERVED_BYTE_LENGTH, PVOX_ROOT_HEADER_TRAILING_RESERVED_OFFSET, PVOX_ROOT_RECORD_BYTES, PVOX_RUNTIME_CAPABILITY_PROFILE_IDS, PVOX_RUNTIME_REQUEST_PROFILE_HASH_DOMAIN, PVOX_SECTION_ALIGNMENT_BYTES, PVOX_SECTION_HASH_DOMAIN, PVOX_SECTION_REGISTRY, PVOX_SHA256_BYTE_LENGTH, PVOX_SHA256_HEX_LENGTH, PVOX_SURFACE_PROPERTY_RECORD_BYTES, type PhysicalPropertyEvidence, type PhysicalPropertyKind, type PhysicalPropertyProvenance, type ProposedModelCandidateAssetRef, type PvoxAssemblyChild, type PvoxAssemblyClosureHashInputV1, type PvoxAssetManifest, type PvoxAssetManifestV1, type PvoxAuthenticatedResourceMetadata, type PvoxBinaryClosureHashInputV1, type PvoxBrickPatchDescriptor, type PvoxCapability, type PvoxCapabilityStatus, type PvoxCatalogAssemblyChildRef, type PvoxCompilerEvidence, type PvoxEditJournal, type PvoxEditJournalCurrentState, type PvoxEditOperation, type PvoxEditOverlayPatchHashInputV1, type PvoxEditOverlayRootHashInputV1, type PvoxEvaluationClosureHashInputV1, type PvoxFidelityEvidence, type PvoxFidelityProfileId, type PvoxGateEvidence, type PvoxGeometryMode, type PvoxHashAttestation, type PvoxLodLevel, type PvoxLodRecord, type PvoxModelMatchAssessmentV2, type PvoxModelResolutionJsonSchema, type PvoxNamedJsonClosureV1, type PvoxNonOverridableGateKind, type PvoxPageHashRecordV1, type PvoxPageRecord, type PvoxPageSpatialKey, type PvoxPhysicalEvidenceHashInputV1, type PvoxPhysicalEvidenceRegionMaterialV1, type PvoxPhysicalInventoryHashInputV1, type PvoxPhysicalInventoryHashRecordV1, type PvoxPhysicalRegionInventoryEntry, type PvoxPhysicalRegionInventoryV1, type PvoxProcessingClosureHashInputV1, type PvoxRenderEvidence, type PvoxRequestedGeometryMode, type PvoxReviewedStructuralEvidence, type PvoxReviewedStructuralEvidenceKind, type PvoxRootHeaderGeometryModeV1, type PvoxRootHeaderInputV1, type PvoxRootSectionHashRecordV1, type PvoxRuntimeCapabilityProfileId, type PvoxRuntimeLimitsV1, type PvoxRuntimeRequestProfileV1, type PvoxStagedAssemblyChildRef, type QualifiedModelConversionDiagnostic, type QualifiedModelConversionDiagnostics, type QualifiedModelTextureResource, type QualifiedModelTextureResources, STATIC_WORLD_V1_MODEL_POLICY, type ShaderAssetManifest, type ShaderStyleProfileAssetManifest, type ShaderStyleProfileRefInput, type ShaderValidationEvidenceAssetManifest, type ShaderVersionRefInput, type StagedModelAssemblyChildRef, type TypedAssetManifest, UNIFIED_ASSET_PIPELINE_FEATURE_FLAG_ID, type UnavailableModelGeneratorResult, type VoxelCapabilityAssessment, type VoxelTechnicalProfile, assertAssetId, assertAssetVersion, assertImmutableAssetVersion, calculatePvoxMinimumArtifactByteLength, canonicalizeModelRequestSemanticProfileV1, canonicalizePvoxHashProjectionV1, canonicalizePvoxNamedJsonClosureV1, classifyModelMatchAssurance, createAssetFileDescriptor, createAssetJobRecord, createAssetManifest, createAssetPromotionRecord, createAssetReviewReport, createDisabledModelGeneratorPort, createGpuAssetManifest, createGpuAssetPromotionRecord, createGpuInterfaceAssetManifest, createGpuInterfaceRef, createModelAssetManifest, createModelAssetRef, createModelCandidate, createModelCandidateConfirmation, createModelCandidateConfirmationV2, createModelCandidateV2, createModelGeneratorRequest, createModelGeneratorResult, createModelMatchAssessment, createModelProcessingManifest, createModelProcessingManifestV2, createModelProvenance, createModelRequestSpec, createModelRequestSpecV2, createModelResolution, createModelResolutionV2, createModelResourceRef, createModelRightsAssessment, createModelTechnicalProfile, createPhysicalPropertyEvidence, createPvoxAssetManifest, createPvoxAssetManifestV1, createPvoxEditJournal, createPvoxEditJournalChain, createPvoxFidelityEvidence, createPvoxGateEvidence, createPvoxModelMatchAssessmentV2, createPvoxPhysicalRegionInventoryV1, createShaderAssetManifest, createShaderStyleProfileAssetManifest, createShaderStyleProfileRef, createShaderValidationEvidenceAssetManifest, createShaderValidationEvidenceRef, createShaderVersionRef, createStandardScreenshotPlan, createVoxelCapabilityAssessment, createVoxelTechnicalProfile, decodePvoxSha256HexV1, encodePvoxAssemblyClosureHashPreimageV1, encodePvoxBinaryClosureHashPreimageV1, encodePvoxCanonicalUtf8V1, encodePvoxCapabilitySetHashPreimageV1, encodePvoxDirectoryHashPreimageV1, encodePvoxEditOverlayRootHashPreimageV1, encodePvoxEvaluationClosureHashPreimageV1, encodePvoxI64LeV1, encodePvoxNamedJsonClosurePreimageV1, encodePvoxPageSetHashPreimageV1, encodePvoxPhysicalEvidenceHashPreimageV1, encodePvoxPhysicalInventoryHashPreimageV1, encodePvoxProcessingClosureHashPreimageV1, encodePvoxRootHashPreimageV1, encodePvoxRootHeaderV1, encodePvoxSectionHashPreimageV1, encodePvoxU16LeV1, encodePvoxU32LeV1, encodePvoxU64LeV1, evaluateModelHardConstraints, evaluateModelHardConstraintsForProfile, isAssetFileRole, isAssetId, isAssetJobState, isAssetKind, isAssetPromotionOutcome, isAssetSourceAdapter, isModelCandidateConfirmable, isModelCandidateV2Confirmable, isModelResolutionState, isModelResolutionStateV2, normalizeAssetId, normalizePvoxRootHeaderForHashV1, projectPvoxNamedJsonClosureV1, qualifyModelConversionDiagnostics, qualifyModelResourceManifest, qualifyModelTextureResources, toLegacyModelResolutionState, validateGpuAssetFiles };
package/dist/index.js CHANGED
@@ -196,11 +196,11 @@ function assertNoDirectUrl(value, fieldName) {
196
196
  }
197
197
  }
198
198
  function requiredToken(value, fieldName) {
199
- const token2 = requiredString(value, fieldName, 128);
200
- if (!TOKEN_PATTERN.test(token2)) {
199
+ const token3 = requiredString(value, fieldName, 128);
200
+ if (!TOKEN_PATTERN.test(token3)) {
201
201
  throw new Error(`${fieldName} must be a token up to 128 characters.`);
202
202
  }
203
- return token2;
203
+ return token3;
204
204
  }
205
205
  function requiredModelPathSegment(value, fieldName) {
206
206
  const segment = requiredString(value, fieldName, 128);
@@ -6701,9 +6701,9 @@ function snapshot(value, budget, depth = 0) {
6701
6701
  return value;
6702
6702
  }
6703
6703
  if (Array.isArray(value)) return Object.freeze(list(value).map((item) => snapshot(item, budget, depth + 1)));
6704
- const fields2 = record(value);
6705
- for (const key of Object.keys(fields2)) fields2[key] = snapshot(fields2[key], budget, depth + 1);
6706
- return Object.freeze(fields2);
6704
+ const fields3 = record(value);
6705
+ for (const key of Object.keys(fields3)) fields3[key] = snapshot(fields3[key], budget, depth + 1);
6706
+ return Object.freeze(fields3);
6707
6707
  }
6708
6708
  function path(value) {
6709
6709
  if (typeof value !== "string" || value.length > 1024 || !value.length) fail();
@@ -6812,6 +6812,176 @@ async function qualify(input) {
6812
6812
  return Object.freeze({ ...manifest, files: Object.freeze([...manifest.files].sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0)) });
6813
6813
  }
6814
6814
 
6815
+ // src/model-texture-resources.ts
6816
+ import { isGpuModelResourceGraph } from "@plasius/gpu-model-core";
6817
+ var MODEL_TEXTURE_RESOURCE_LIMITS = Object.freeze({ resources: 16384, derived: 4096, nodes: 65536, values: 262144, characters: 2097152, depth: 16, timeoutMs: 6e4 });
6818
+ var ModelTextureResourceError = class extends TypeError {
6819
+ constructor(code) {
6820
+ super(`Invalid model texture resources: ${code}`);
6821
+ this.code = code;
6822
+ this.name = "ModelTextureResourceError";
6823
+ }
6824
+ code;
6825
+ };
6826
+ function fail2(code = "invalid-input") {
6827
+ throw new ModelTextureResourceError(code);
6828
+ }
6829
+ function fields(value, allowed) {
6830
+ if (!value || typeof value !== "object" || ![Object.prototype, null].includes(Object.getPrototypeOf(value))) fail2();
6831
+ const keys = Reflect.ownKeys(value);
6832
+ if (keys.length > 1024) fail2("limit-exceeded");
6833
+ const result = /* @__PURE__ */ Object.create(null);
6834
+ for (const key of keys) {
6835
+ if (typeof key !== "string" || key.length > 128 || ["__proto__", "prototype", "constructor"].includes(key) || allowed && !allowed.includes(key)) fail2();
6836
+ const property = Object.getOwnPropertyDescriptor(value, key);
6837
+ if (!("value" in property) || !property.enumerable) fail2();
6838
+ result[key] = property.value;
6839
+ }
6840
+ return result;
6841
+ }
6842
+ function array(value, maximum) {
6843
+ if (!Array.isArray(value) || Object.getPrototypeOf(value) !== Array.prototype) fail2();
6844
+ if (value.length > maximum) fail2("limit-exceeded");
6845
+ if (Reflect.ownKeys(value).length !== value.length + 1) fail2();
6846
+ const result = [];
6847
+ for (let i = 0; i < value.length; i++) {
6848
+ const property = Object.getOwnPropertyDescriptor(value, String(i));
6849
+ if (!property || !("value" in property) || !property.enumerable) fail2();
6850
+ result.push(property.value);
6851
+ }
6852
+ return result;
6853
+ }
6854
+ function snapshot2(value, budget, depth = 0) {
6855
+ if (--budget.values < 0 || depth > MODEL_TEXTURE_RESOURCE_LIMITS.depth) fail2("limit-exceeded");
6856
+ if (value === null || value === void 0 || typeof value === "boolean") return value;
6857
+ if (typeof value === "number" && Number.isFinite(value)) return value;
6858
+ if (typeof value === "string") {
6859
+ budget.characters -= value.length;
6860
+ if (value.length > 2048 || budget.characters < 0) fail2("limit-exceeded");
6861
+ return value;
6862
+ }
6863
+ if (Array.isArray(value)) return Object.freeze(array(value, MODEL_TEXTURE_RESOURCE_LIMITS.resources).map((v) => snapshot2(v, budget, depth + 1)));
6864
+ const result = fields(value);
6865
+ for (const key of Object.keys(result)) {
6866
+ budget.characters -= key.length;
6867
+ if (budget.characters < 0) fail2("limit-exceeded");
6868
+ result[key] = snapshot2(result[key], budget, depth + 1);
6869
+ }
6870
+ return Object.freeze(result);
6871
+ }
6872
+ function token2(value) {
6873
+ if (typeof value !== "string" || !/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u.test(value)) fail2();
6874
+ return value;
6875
+ }
6876
+ var compare = (a, b) => a < b ? -1 : a > b ? 1 : 0;
6877
+ var imageMime = (value) => ["image/png", "image/jpeg", "image/webp", "image/ktx2"].includes(value);
6878
+ var bufferMime = (value) => ["application/octet-stream", "application/vnd.plasius.gpu-buffer"].includes(value);
6879
+ function storageRole(role, file) {
6880
+ const valid = role === "texture" ? file.role === "texture" && imageMime(file.contentType) : role === "material" || role === "animation" ? file.role === "metadata" && file.contentType === "application/json" : role === "mesh" ? file.role === "binary" && bufferMime(file.contentType) || file.role === "model" && (file.contentType.startsWith("model/") || ["application/json", "application/octet-stream", "text/plain"].includes(file.contentType)) : role === "auxiliary" && (file.role === "binary" && bufferMime(file.contentType) || file.role === "metadata" && file.contentType === "application/json");
6881
+ if (!valid) fail2("role-mismatch");
6882
+ }
6883
+ async function qualifyModelTextureResources(input, options = {}) {
6884
+ let timer;
6885
+ let signal;
6886
+ let onAbort;
6887
+ try {
6888
+ const started = performance.now();
6889
+ const controls = fields(options, ["signal", "timeoutMs"]);
6890
+ const timeoutMs = controls.timeoutMs === void 0 ? 1e4 : controls.timeoutMs;
6891
+ if (typeof timeoutMs !== "number" || !Number.isSafeInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > MODEL_TEXTURE_RESOURCE_LIMITS.timeoutMs) fail2();
6892
+ signal = controls.signal;
6893
+ const aborted = Object.getOwnPropertyDescriptor(AbortSignal.prototype, "aborted").get;
6894
+ const check = () => {
6895
+ if (signal !== void 0 && aborted.call(signal)) fail2("aborted");
6896
+ if (performance.now() - started >= timeoutMs) fail2("deadline-exceeded");
6897
+ };
6898
+ check();
6899
+ const root = fields(input, ["manifest", "packageManifest", "files", "graph", "resources", "derived"]);
6900
+ const graph = root.graph;
6901
+ if (!isGpuModelResourceGraph(graph)) fail2("unverified-graph");
6902
+ if (graph.nodes.length > MODEL_TEXTURE_RESOURCE_LIMITS.nodes) fail2("limit-exceeded");
6903
+ const budget = { values: MODEL_TEXTURE_RESOURCE_LIMITS.values, characters: MODEL_TEXTURE_RESOURCE_LIMITS.characters };
6904
+ const inventory = snapshot2(root.packageManifest, budget);
6905
+ const bindings = array(snapshot2(root.resources, budget), MODEL_TEXTURE_RESOURCE_LIMITS.resources).map((value) => {
6906
+ const binding = fields(value, ["resourceId", "filePath"]);
6907
+ return Object.freeze({ resourceId: token2(binding.resourceId), filePath: tokenPath(binding.filePath) });
6908
+ });
6909
+ const derived = array(snapshot2(root.derived, budget), MODEL_TEXTURE_RESOURCE_LIMITS.derived).map((value) => {
6910
+ const record2 = fields(value, ["role", "filePath", "sourceResourceIds"]);
6911
+ if (record2.role !== "gpu-upload" && record2.role !== "texture-atlas") fail2("role-mismatch");
6912
+ const ids = array(record2.sourceResourceIds, MODEL_TEXTURE_RESOURCE_LIMITS.resources).map(token2);
6913
+ if (!ids.length || new Set(ids).size !== ids.length) fail2("resource-mismatch");
6914
+ return Object.freeze({ role: record2.role, filePath: tokenPath(record2.filePath), sourceResourceIds: Object.freeze(ids.sort(compare)) });
6915
+ });
6916
+ check();
6917
+ const interrupted = new Promise((_resolve, reject) => {
6918
+ timer = setTimeout(() => reject(new ModelTextureResourceError("deadline-exceeded")), Math.max(1, timeoutMs - (performance.now() - started)));
6919
+ onAbort = () => reject(new ModelTextureResourceError("aborted"));
6920
+ if (signal) AbortSignal.prototype.addEventListener.call(signal, "abort", onAbort, { once: true });
6921
+ });
6922
+ const manifest = await Promise.race([
6923
+ qualifyModelResourceManifest({ manifest: root.manifest, files: root.files, packageManifest: inventory, signal, timeoutMs }),
6924
+ interrupted
6925
+ ]);
6926
+ check();
6927
+ const files = new Map(manifest.files.map((file) => [file.path, file]));
6928
+ const roles = new Map(inventory.entries.map((entry) => [entry.path, entry.role]));
6929
+ for (const entry of inventory.entries) storageRole(entry.role, files.get(entry.path));
6930
+ const resources = new Map(graph.nodes.filter((node) => node.kind === "resource").map((node) => [node.id, node.value]));
6931
+ if (bindings.length !== resources.size || new Set(bindings.map((b) => b.resourceId)).size !== bindings.length) fail2("resource-mismatch");
6932
+ const resourceFiles = /* @__PURE__ */ new Set();
6933
+ const qualified = bindings.map((binding) => {
6934
+ const value = resources.get(binding.resourceId);
6935
+ const file = files.get(binding.filePath);
6936
+ if (!value || !file) fail2("resource-mismatch");
6937
+ const { resource, location, exportEmbeddingPolicy } = value;
6938
+ if (location.kind === "external") {
6939
+ if (binding.filePath !== location.relativePath || file.sha256 !== resource.contentHash || file.byteLength !== resource.byteLength || file.contentType !== resource.mimeType) fail2("resource-mismatch");
6940
+ if (resource.kind === "image" ? roles.get(file.path) !== "texture" : file.role !== "binary") fail2("role-mismatch");
6941
+ } else if (binding.filePath !== manifest.entrypoint || file.role !== "model") fail2("resource-mismatch");
6942
+ resourceFiles.add(binding.filePath);
6943
+ return Object.freeze({ ...binding, kind: resource.kind, contentHash: resource.contentHash, byteLength: resource.byteLength, mimeType: resource.mimeType, location, exportEmbeddingPolicy });
6944
+ });
6945
+ const outputFiles = /* @__PURE__ */ new Set();
6946
+ for (const output of derived) {
6947
+ const file = files.get(output.filePath);
6948
+ if (!file || outputFiles.has(output.filePath) || resourceFiles.has(output.filePath)) fail2("resource-mismatch");
6949
+ outputFiles.add(output.filePath);
6950
+ for (const id of output.sourceResourceIds) {
6951
+ const source2 = resources.get(id);
6952
+ if (!source2 || output.role === "texture-atlas" && source2.resource.kind !== "image") fail2("resource-mismatch");
6953
+ }
6954
+ if (output.role === "gpu-upload" ? file.role !== "binary" || !bufferMime(file.contentType) || roles.get(file.path) !== "auxiliary" : file.role !== "texture" || !imageMime(file.contentType) || roles.get(file.path) !== "texture") fail2("role-mismatch");
6955
+ }
6956
+ const materials = graph.nodes.filter((node) => node.kind === "material").map((node) => node.value);
6957
+ const textures = graph.nodes.filter((node) => node.kind === "texture").map((node) => node.value);
6958
+ const source = graph.nodes.find((node) => node.kind === "provenance");
6959
+ if (source.kind !== "provenance") fail2();
6960
+ snapshot2({ materials, textures, source: source.value }, budget);
6961
+ check();
6962
+ return Object.freeze({
6963
+ contractVersion: 1,
6964
+ manifest,
6965
+ source: source.value,
6966
+ resources: Object.freeze(qualified.sort((a, b) => compare(a.resourceId, b.resourceId))),
6967
+ materials: Object.freeze(materials),
6968
+ textures: Object.freeze(textures),
6969
+ derived: Object.freeze(derived.sort((a, b) => compare(a.filePath, b.filePath)))
6970
+ });
6971
+ } catch (error) {
6972
+ if (error instanceof ModelTextureResourceError) throw error;
6973
+ if (error instanceof ModelResourceManifestError) return fail2(error.code === "aborted" || error.code === "deadline-exceeded" || error.code === "limit-exceeded" ? error.code : "package-mismatch");
6974
+ return fail2();
6975
+ } finally {
6976
+ if (timer !== void 0) clearTimeout(timer);
6977
+ if (signal && onAbort) AbortSignal.prototype.removeEventListener.call(signal, "abort", onAbort);
6978
+ }
6979
+ }
6980
+ function tokenPath(value) {
6981
+ if (typeof value !== "string" || !value.length || value.length > 1024) fail2();
6982
+ return value;
6983
+ }
6984
+
6815
6985
  // src/model-conversion-diagnostics.ts
6816
6986
  var MODEL_CONVERSION_DIAGNOSTIC_LIMITS = Object.freeze({ issues: 100, resources: 100, values: 16384, depth: 12, string: 2048, characters: 262144, timeoutMs: 6e4 });
6817
6987
  var ModelConversionDiagnosticsError = class extends TypeError {
@@ -6822,50 +6992,50 @@ var ModelConversionDiagnosticsError = class extends TypeError {
6822
6992
  }
6823
6993
  code;
6824
6994
  };
6825
- function fail2(code = "invalid-input") {
6995
+ function fail3(code = "invalid-input") {
6826
6996
  throw new ModelConversionDiagnosticsError(code);
6827
6997
  }
6828
- function fields(value) {
6829
- if (!value || typeof value !== "object" || ![Object.prototype, null].includes(Object.getPrototypeOf(value))) fail2();
6998
+ function fields2(value) {
6999
+ if (!value || typeof value !== "object" || ![Object.prototype, null].includes(Object.getPrototypeOf(value))) fail3();
6830
7000
  const result = /* @__PURE__ */ Object.create(null);
6831
7001
  const keys = Reflect.ownKeys(value);
6832
- if (keys.length > 1024) fail2("limit-exceeded");
7002
+ if (keys.length > 1024) fail3("limit-exceeded");
6833
7003
  for (const key of keys) {
6834
- if (typeof key !== "string" || key.length > 128 || ["__proto__", "prototype", "constructor"].includes(key)) fail2();
7004
+ if (typeof key !== "string" || key.length > 128 || ["__proto__", "prototype", "constructor"].includes(key)) fail3();
6835
7005
  const descriptor = Object.getOwnPropertyDescriptor(value, key);
6836
- if (!("value" in descriptor) || !descriptor.enumerable) fail2();
7006
+ if (!("value" in descriptor) || !descriptor.enumerable) fail3();
6837
7007
  result[key] = descriptor.value;
6838
7008
  }
6839
7009
  return result;
6840
7010
  }
6841
7011
  function only(record2, keys) {
6842
- if (Object.keys(record2).some((key) => !keys.includes(key))) fail2();
7012
+ if (Object.keys(record2).some((key) => !keys.includes(key))) fail3();
6843
7013
  }
6844
- function snapshot2(value, budget, depth = 0) {
6845
- if (--budget.values < 0 || depth > MODEL_CONVERSION_DIAGNOSTIC_LIMITS.depth) fail2("limit-exceeded");
7014
+ function snapshot3(value, budget, depth = 0) {
7015
+ if (--budget.values < 0 || depth > MODEL_CONVERSION_DIAGNOSTIC_LIMITS.depth) fail3("limit-exceeded");
6846
7016
  if (value === null || typeof value === "boolean") return value;
6847
7017
  if (typeof value === "string") {
6848
7018
  budget.characters -= value.length;
6849
- if (value.length > MODEL_CONVERSION_DIAGNOSTIC_LIMITS.string || budget.characters < 0) fail2("limit-exceeded");
7019
+ if (value.length > MODEL_CONVERSION_DIAGNOSTIC_LIMITS.string || budget.characters < 0) fail3("limit-exceeded");
6850
7020
  return value;
6851
7021
  }
6852
7022
  if (typeof value === "number" && Number.isFinite(value)) return value;
6853
7023
  if (Array.isArray(value)) {
6854
- if (Object.getPrototypeOf(value) !== Array.prototype || value.length > 1024) fail2("limit-exceeded");
6855
- if (Reflect.ownKeys(value).length !== value.length + 1) fail2();
7024
+ if (Object.getPrototypeOf(value) !== Array.prototype || value.length > 1024) fail3("limit-exceeded");
7025
+ if (Reflect.ownKeys(value).length !== value.length + 1) fail3();
6856
7026
  const result = [];
6857
7027
  for (let i = 0; i < value.length; i++) {
6858
7028
  const descriptor = Object.getOwnPropertyDescriptor(value, String(i));
6859
- if (!descriptor || !("value" in descriptor) || !descriptor.enumerable) fail2();
6860
- result.push(snapshot2(descriptor.value, budget, depth + 1));
7029
+ if (!descriptor || !("value" in descriptor) || !descriptor.enumerable) fail3();
7030
+ result.push(snapshot3(descriptor.value, budget, depth + 1));
6861
7031
  }
6862
7032
  return Object.freeze(result);
6863
7033
  }
6864
- const record2 = fields(value);
7034
+ const record2 = fields2(value);
6865
7035
  for (const key of Object.keys(record2)) {
6866
7036
  budget.characters -= key.length;
6867
- if (budget.characters < 0) fail2("limit-exceeded");
6868
- record2[key] = snapshot2(record2[key], budget, depth + 1);
7037
+ if (budget.characters < 0) fail3("limit-exceeded");
7038
+ record2[key] = snapshot3(record2[key], budget, depth + 1);
6869
7039
  }
6870
7040
  return Object.freeze(record2);
6871
7041
  }
@@ -6878,34 +7048,34 @@ async function qualifyModelConversionDiagnostics(input, options = {}) {
6878
7048
  let onAbort;
6879
7049
  try {
6880
7050
  const start = performance.now();
6881
- const controls = fields(options);
7051
+ const controls = fields2(options);
6882
7052
  only(controls, ["signal", "timeoutMs"]);
6883
7053
  const timeoutMs = controls.timeoutMs === void 0 ? 1e4 : controls.timeoutMs;
6884
- if (typeof timeoutMs !== "number" || !Number.isSafeInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > MODEL_CONVERSION_DIAGNOSTIC_LIMITS.timeoutMs) fail2();
7054
+ if (typeof timeoutMs !== "number" || !Number.isSafeInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > MODEL_CONVERSION_DIAGNOSTIC_LIMITS.timeoutMs) fail3();
6885
7055
  signal = controls.signal;
6886
7056
  const aborted = Object.getOwnPropertyDescriptor(AbortSignal.prototype, "aborted").get;
6887
7057
  const check = () => {
6888
- if (signal !== void 0 && aborted.call(signal)) fail2("aborted");
6889
- if (performance.now() - start >= timeoutMs) fail2("deadline-exceeded");
7058
+ if (signal !== void 0 && aborted.call(signal)) fail3("aborted");
7059
+ if (performance.now() - start >= timeoutMs) fail3("deadline-exceeded");
6890
7060
  };
6891
7061
  check();
6892
- const args = fields(snapshot2(input, { values: MODEL_CONVERSION_DIAGNOSTIC_LIMITS.values, characters: MODEL_CONVERSION_DIAGNOSTIC_LIMITS.characters }));
7062
+ const args = fields2(snapshot3(input, { values: MODEL_CONVERSION_DIAGNOSTIC_LIMITS.values, characters: MODEL_CONVERSION_DIAGNOSTIC_LIMITS.characters }));
6893
7063
  only(args, ["outcome", "source", "report", "resources"]);
6894
- if (!["completed", "unsupported", "failed"].includes(args.outcome)) fail2();
7064
+ if (!["completed", "unsupported", "failed"].includes(args.outcome)) fail3();
6895
7065
  const source = createModelProvenance(args.source);
6896
- const reportInput = fields(args.report);
7066
+ const reportInput = fields2(args.report);
6897
7067
  const maximumIssues = MODEL_CONVERSION_DIAGNOSTIC_LIMITS.issues - (args.outcome === "completed" ? 0 : 1);
6898
- if (!Array.isArray(reportInput.issues) || reportInput.issues.length > maximumIssues) fail2("limit-exceeded");
6899
- if (!Array.isArray(args.resources) || args.resources.length > MODEL_CONVERSION_DIAGNOSTIC_LIMITS.resources) fail2("limit-exceeded");
7068
+ if (!Array.isArray(reportInput.issues) || reportInput.issues.length > maximumIssues) fail3("limit-exceeded");
7069
+ if (!Array.isArray(args.resources) || args.resources.length > MODEL_CONVERSION_DIAGNOSTIC_LIMITS.resources) fail3("limit-exceeded");
6900
7070
  const resources = /* @__PURE__ */ new Map();
6901
7071
  const identities = /* @__PURE__ */ new Map();
6902
7072
  for (const value of args.resources) {
6903
- const binding = fields(value);
7073
+ const binding = fields2(value);
6904
7074
  only(binding, ["path", "resource"]);
6905
- if (typeof binding.path !== "string" || !binding.path.startsWith("/") || binding.path === "/" || resources.has(binding.path)) fail2();
7075
+ if (typeof binding.path !== "string" || !binding.path.startsWith("/") || binding.path === "/" || resources.has(binding.path)) fail3();
6906
7076
  const resource = createModelResourceRef(binding.resource);
6907
7077
  const identity = JSON.stringify(resource);
6908
- if (identities.has(resource.uri) && identities.get(resource.uri) !== identity) fail2();
7078
+ if (identities.has(resource.uri) && identities.get(resource.uri) !== identity) fail3();
6909
7079
  identities.set(resource.uri, identity);
6910
7080
  resources.set(binding.path, resource);
6911
7081
  }
@@ -6920,7 +7090,7 @@ async function qualifyModelConversionDiagnostics(input, options = {}) {
6920
7090
  const report = core.evaluateGpuModelDiagnostics(reportInput);
6921
7091
  const diagnostics = report.diagnostics.map((diagnostic) => {
6922
7092
  const resource = resources.get(diagnostic.path);
6923
- if (diagnostic.path !== "/" && !resource) fail2("unbound-resource");
7093
+ if (diagnostic.path !== "/" && !resource) fail3("unbound-resource");
6924
7094
  const base = resource ? { resource } : {};
6925
7095
  switch (diagnostic.kind) {
6926
7096
  case "warning":
@@ -6952,7 +7122,7 @@ async function qualifyModelConversionDiagnostics(input, options = {}) {
6952
7122
  });
6953
7123
  } catch (error) {
6954
7124
  if (error instanceof ModelConversionDiagnosticsError) throw error;
6955
- return fail2();
7125
+ return fail3();
6956
7126
  } finally {
6957
7127
  if (timer !== void 0) clearTimeout(timer);
6958
7128
  if (signal && onAbort) AbortSignal.prototype.removeEventListener.call(signal, "abort", onAbort);
@@ -7762,9 +7932,11 @@ export {
7762
7932
  MODEL_RESOLUTION_V2_STATES,
7763
7933
  MODEL_RESOURCE_MANIFEST_LIMITS,
7764
7934
  MODEL_RIGHTS_STATUSES,
7935
+ MODEL_TEXTURE_RESOURCE_LIMITS,
7765
7936
  MODEL_TEXT_ONLY_ASSURANCE_CEILING_REASON_CODE,
7766
7937
  ModelConversionDiagnosticsError,
7767
7938
  ModelResourceManifestError,
7939
+ ModelTextureResourceError,
7768
7940
  PVOX_ASSEMBLY_CLOSURE_HASH_DOMAIN,
7769
7941
  PVOX_ASSET_MANIFEST_VERSION,
7770
7942
  PVOX_BINARY_CLOSURE_HASH_DOMAIN,
@@ -7957,6 +8129,7 @@ export {
7957
8129
  projectPvoxNamedJsonClosureV1,
7958
8130
  qualifyModelConversionDiagnostics,
7959
8131
  qualifyModelResourceManifest,
8132
+ qualifyModelTextureResources,
7960
8133
  toLegacyModelResolutionState,
7961
8134
  validateGpuAssetFiles
7962
8135
  };