diff --git a/examples/director-contracts/README.md b/examples/director-contracts/README.md new file mode 100644 index 0000000..7987779 --- /dev/null +++ b/examples/director-contracts/README.md @@ -0,0 +1,18 @@ +# Synthetic Director contract fixtures + +`contracts.json` contains all six core document families and 32 strict method +request/result pairs. The six accompanying document files and `evidence.txt` +are exact-byte references. They are self-authored engineering fixtures with no +third-party assets. No referenced "render", "review", provider, job or payment +was executed; success-shaped values test contract admission only. + +Run from the repository root: + +```bash +python scripts/director_contracts.py --bundle examples/director-contracts/contracts.json --root . +``` + +The example uses 30 seconds at 24 FPS, frames 0–719 and terminal boundary 720. +This time contract is real arithmetic; it is not evidence of a rendered film. +See [the contract guide](../../references/director-contracts.md) for interfaces, +limits and the distinction between structural, exact-byte and native acceptance. diff --git a/examples/director-contracts/asset-spec-fixture.json b/examples/director-contracts/asset-spec-fixture.json new file mode 100644 index 0000000..377da78 --- /dev/null +++ b/examples/director-contracts/asset-spec-fixture.json @@ -0,0 +1,41 @@ +{ + "schema_version": 1, + "kind": "director-asset-spec", + "id": "asset-spec-fixture", + "semantic_version": "1.0.0", + "logical_id": "fixture", + "asset_type": "fixture", + "semantic_role": "fixture", + "visual_characteristics": [], + "capabilities": [], + "source_policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + }, + "candidates": [], + "formats": [], + "scale_meters": 1, + "coordinates": { + "handedness": "right", + "right": "+X", + "up": "+Y", + "forward": "+Z", + "unit": "meter", + "angles": "radian", + "quaternion": "XYZW", + "matrices": "column-vectors", + "time": "second" + }, + "materials": [], + "textures": [], + "polygon_budget": 0, + "memory_budget": 0, + "licensing": "fixture", + "attribution": "fixture", + "dependencies": [], + "review": "unreviewed", + "substitutions": [], + "generation_required": false +} diff --git a/examples/director-contracts/character-identity-fixture.json b/examples/director-contracts/character-identity-fixture.json new file mode 100644 index 0000000..b1b157d --- /dev/null +++ b/examples/director-contracts/character-identity-fixture.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "kind": "director-character-identity", + "id": "character-identity-fixture", + "semantic_version": "1.0.0", + "character_id": "aster-fixture", + "canonical_design": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "geometry": "fixture", + "silhouette": "fixture", + "proportions": [], + "scale_meters": 1, + "palette": [], + "materials": [], + "markings": [], + "asymmetries": [], + "costume": [], + "accessories": [], + "rig": null, + "bone_mapping": [], + "animation_capabilities": [], + "expression_capabilities": [], + "viewpoints": [], + "provenance": [], + "approved_variations": [], + "forbidden_transformations": [] +} diff --git a/examples/director-contracts/contracts.json b/examples/director-contracts/contracts.json new file mode 100644 index 0000000..b8e7332 --- /dev/null +++ b/examples/director-contracts/contracts.json @@ -0,0 +1,4267 @@ +[ + { + "schema_version": 1, + "kind": "director-creative-brief", + "id": "creative-brief-fixture", + "semantic_version": "1.0.0", + "project_id": "fixture", + "request_id": "fixture", + "original_prompt": "Synthetic contract example: two fixture robots inspect a laboratory object.", + "requirements": { + "explicit": [], + "inferred": [], + "locked": [], + "ambiguities": [], + "assumptions": [] + }, + "duration": { + "numerator": 30, + "denominator": 1 + }, + "frame_rate": { + "numerator": 24, + "denominator": 1 + }, + "resolution": [ + 1280, + 720 + ], + "aspect_ratio": { + "numerator": 16, + "denominator": 9 + }, + "characters": [ + "aster-fixture", + "moss-fixture" + ], + "object_count": 1, + "locations": [], + "actions": [], + "mood": "fixture", + "style": "fixture", + "content_restrictions": [], + "outputs": [], + "budget": { + "max_provider_calls": 0, + "max_cpu_seconds": 0, + "max_gpu_seconds": 0, + "max_storage_bytes": 0, + "max_memory_bytes": 0, + "currency": null, + "max_amount": null, + "policy_ref": null + }, + "references": [], + "provenance": [] + }, + { + "schema_version": 1, + "kind": "director-story-plan", + "id": "story-plan-fixture", + "semantic_version": "1.0.0", + "brief": { + "artifact_id": "creative-brief-fixture", + "kind": "director-creative-brief", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/creative-brief-fixture.json", + "sha256": "1e562d24a7f49414dcb905ef1452df71df2c7797792e400d971b5b89b69c8fbf", + "byte_size": 1120, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "logline": "fixture", + "premise": "fixture", + "beginning": "fixture", + "middle": "fixture", + "end": "fixture", + "emotional_progression": [], + "objectives": [], + "discoveries": [], + "spatial_continuity": [], + "motifs": [], + "establishing_information": [], + "outcome": "fixture", + "silent": false, + "communication_methods": [], + "beats": [ + { + "id": "discovery", + "description": "Synthetic discovery beat.", + "actions": [ + "Inspect the object." + ], + "composition": [] + } + ] + }, + { + "schema_version": 1, + "kind": "director-shot-plan", + "id": "shot-plan-fixture", + "semantic_version": "1.0.0", + "story": { + "artifact_id": "story-plan-fixture", + "kind": "director-story-plan", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/story-plan-fixture.json", + "sha256": "0ac5c41b2d022ddf8f5cc8a9dc559cb41988043d349c97457d457010e42ac2ed", + "byte_size": 1094, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "duration_frames": 720, + "frame_rate": { + "numerator": 24, + "denominator": 1 + }, + "shots": [ + { + "id": "shot-a", + "scene_id": "laboratory-fixture", + "beat_ids": [ + "discovery" + ], + "start_frame": 0, + "end_frame": 720, + "duration_frames": 720, + "camera": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "actors": [ + "aster-fixture", + "moss-fixture" + ], + "props": [ + "object-fixture" + ], + "actions": [], + "markers": [], + "environment": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "lighting": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "composition": [], + "entry_constraints": [], + "exit_constraints": [], + "transition": { + "kind": "cut", + "overlap_frames": 0 + }, + "required_assets": [], + "dependencies": [], + "render_settings": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "qa_requirements": [], + "review": "unreviewed" + } + ] + }, + { + "schema_version": 1, + "kind": "director-asset-spec", + "id": "asset-spec-fixture", + "semantic_version": "1.0.0", + "logical_id": "fixture", + "asset_type": "fixture", + "semantic_role": "fixture", + "visual_characteristics": [], + "capabilities": [], + "source_policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + }, + "candidates": [], + "formats": [], + "scale_meters": 1, + "coordinates": { + "handedness": "right", + "right": "+X", + "up": "+Y", + "forward": "+Z", + "unit": "meter", + "angles": "radian", + "quaternion": "XYZW", + "matrices": "column-vectors", + "time": "second" + }, + "materials": [], + "textures": [], + "polygon_budget": 0, + "memory_budget": 0, + "licensing": "fixture", + "attribution": "fixture", + "dependencies": [], + "review": "unreviewed", + "substitutions": [], + "generation_required": false + }, + { + "schema_version": 1, + "kind": "director-character-identity", + "id": "character-identity-fixture", + "semantic_version": "1.0.0", + "character_id": "aster-fixture", + "canonical_design": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "geometry": "fixture", + "silhouette": "fixture", + "proportions": [], + "scale_meters": 1, + "palette": [], + "materials": [], + "markings": [], + "asymmetries": [], + "costume": [], + "accessories": [], + "rig": null, + "bone_mapping": [], + "animation_capabilities": [], + "expression_capabilities": [], + "viewpoints": [], + "provenance": [], + "approved_variations": [], + "forbidden_transformations": [] + }, + { + "schema_version": 1, + "kind": "director-project", + "id": "project-fixture", + "semantic_version": "1.0.0", + "original_request": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "brief": { + "artifact_id": "creative-brief-fixture", + "kind": "director-creative-brief", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/creative-brief-fixture.json", + "sha256": "1e562d24a7f49414dcb905ef1452df71df2c7797792e400d971b5b89b69c8fbf", + "byte_size": 1120, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "story": { + "artifact_id": "story-plan-fixture", + "kind": "director-story-plan", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/story-plan-fixture.json", + "sha256": "0ac5c41b2d022ddf8f5cc8a9dc559cb41988043d349c97457d457010e42ac2ed", + "byte_size": 1094, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "shot_plan": { + "artifact_id": "shot-plan-fixture", + "kind": "director-shot-plan", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/shot-plan-fixture.json", + "sha256": "b4a5e299dddc83d780afcf471a183ab787459ce7c2d781190e073d3844e989ee", + "byte_size": 3163, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "asset_registry": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "characters": [ + { + "artifact_id": "character-identity-fixture", + "kind": "director-character-identity", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/character-identity-fixture.json", + "sha256": "b687c3216782dfd6a42334dfef7e210543f54038c5f2c489e1fef3d3db2a7f08", + "byte_size": 1001, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "scenes": [], + "timelines": [], + "render_configuration": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "execution_graph": null, + "budget_ledger": null, + "acquisition_bindings": [], + "dependencies": [], + "reviews": [], + "exports": [], + "inventory": [ + { + "artifact_id": "creative-brief-fixture", + "kind": "director-creative-brief", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/creative-brief-fixture.json", + "sha256": "1e562d24a7f49414dcb905ef1452df71df2c7797792e400d971b5b89b69c8fbf", + "byte_size": 1120, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + { + "artifact_id": "story-plan-fixture", + "kind": "director-story-plan", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/story-plan-fixture.json", + "sha256": "0ac5c41b2d022ddf8f5cc8a9dc559cb41988043d349c97457d457010e42ac2ed", + "byte_size": 1094, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + { + "artifact_id": "shot-plan-fixture", + "kind": "director-shot-plan", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/shot-plan-fixture.json", + "sha256": "b4a5e299dddc83d780afcf471a183ab787459ce7c2d781190e073d3844e989ee", + "byte_size": 3163, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + { + "artifact_id": "asset-spec-fixture", + "kind": "director-asset-spec", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/asset-spec-fixture.json", + "sha256": "1b3816531d00377f2367b7877c1a43b7e4905ce8cd5476586b59d185eb3990a0", + "byte_size": 901, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + { + "artifact_id": "character-identity-fixture", + "kind": "director-character-identity", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/character-identity-fixture.json", + "sha256": "b687c3216782dfd6a42334dfef7e210543f54038c5f2c489e1fef3d3db2a7f08", + "byte_size": 1001, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "status": "draft", + "milestones": [ + { + "name": "planning", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "assets", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "scene", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "motion", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "rendering", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "video", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "native_editability", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "visual_qa", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "delivery", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + } + ], + "coordinates": { + "handedness": "right", + "right": "+X", + "up": "+Y", + "forward": "+Z", + "unit": "meter", + "angles": "radian", + "quaternion": "XYZW", + "matrices": "column-vectors", + "time": "second" + } + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "CapabilityRegistry.probe", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "CapabilityRegistry-probe-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "operations": [], + "local_probes": [], + "provider_configuration_refs": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "CapabilityRegistry.probe", + "status": "succeeded", + "operation_id": "CapabilityRegistry-probe-fixture", + "input_digest": "f5701a8fcaab55b6b816fa99786a52cf23361cdc1e80b79b045e7f2307b2e014", + "value": { + "capabilities": [], + "expires_at": "2030-01-01T00:00:00Z", + "digest": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "PlanningProvider.generate_structured", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "PlanningProvider-generate_structured-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "stage": "brief", + "original_prompt": "fixture", + "context_refs": [], + "output_schema_id": "test-fixture", + "output_schema_version": 1, + "locked_constraints": [], + "template_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "max_repairs": 0 + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "PlanningProvider.generate_structured", + "status": "succeeded", + "operation_id": "PlanningProvider-generate_structured-fixture", + "input_digest": "450c897924166f675b202c6e65995df48a3aa2fcd0d74c55c54f9a5214899b21", + "value": { + "content": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "assumptions": [], + "provider": null, + "model": null, + "template_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "raw_response": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "repair_history": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "AssetResolver.resolve", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "AssetResolver-resolve-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "specs": [], + "registry_snapshot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "reuse_policy": "fixture", + "license_policy": "fixture" + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "AssetResolver.resolve", + "status": "succeeded", + "operation_id": "AssetResolver-resolve-fixture", + "input_digest": "2593ff4a61761935f56ef9ce40c49c33ce236521122c085ce614e49e21a30d2d", + "value": { + "requirements": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "AcquisitionGateway.prepare", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "AcquisitionGateway-prepare-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "spec": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "input_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "binding_id": "fixture-evidence", + "claim_id": "native-fixture-claim", + "expected_state": "fixture", + "provider_request_id": "fixture-provider-id", + "candidates": [], + "diagnostics": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "AcquisitionGateway.prepare", + "status": "succeeded", + "operation_id": "AcquisitionGateway-prepare-fixture", + "input_digest": "b030544487561b350272d104a8bc3a7de1a253826545b45469469df019cb9620", + "value": { + "binding": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "claim_id": "native-fixture-claim", + "native_state": "fixture", + "provider_request_id": "fixture-provider-id", + "outcome": "known", + "receipt": null + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "AcquisitionGateway.claim", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "AcquisitionGateway-claim-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "spec": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "input_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "binding_id": "fixture-evidence", + "claim_id": "native-fixture-claim", + "expected_state": "fixture", + "provider_request_id": "fixture-provider-id", + "candidates": [], + "diagnostics": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "AcquisitionGateway.claim", + "status": "succeeded", + "operation_id": "AcquisitionGateway-claim-fixture", + "input_digest": "906282bcf3291f91d794ca3fcc05da2d5d123a4a7cc019078dbff94e87005076", + "value": { + "binding": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "claim_id": "native-fixture-claim", + "native_state": "fixture", + "provider_request_id": "fixture-provider-id", + "outcome": "known", + "receipt": null + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "AcquisitionGateway.ingest", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "AcquisitionGateway-ingest-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "spec": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "input_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "binding_id": "fixture-evidence", + "claim_id": "native-fixture-claim", + "expected_state": "fixture", + "provider_request_id": "fixture-provider-id", + "candidates": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "diagnostics": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "AcquisitionGateway.ingest", + "status": "succeeded", + "operation_id": "AcquisitionGateway-ingest-fixture", + "input_digest": "e84996b91ffd83da1110d2323699cd5afc47be2cac205a0ec00cb61093fa12c8", + "value": { + "binding": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "claim_id": "native-fixture-claim", + "native_state": "fixture", + "provider_request_id": "fixture-provider-id", + "outcome": "known", + "receipt": null + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "AcquisitionGateway.fail", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "AcquisitionGateway-fail-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "spec": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "input_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "binding_id": "fixture-evidence", + "claim_id": "native-fixture-claim", + "expected_state": "fixture", + "provider_request_id": "fixture-provider-id", + "candidates": [], + "diagnostics": [ + { + "code": "fixture", + "severity": "info", + "stage": "fixture", + "entity_id": null, + "field_path": "fixture", + "expected": null, + "observed": null, + "retryable": false, + "recommended_action": "fixture", + "evidence": [] + } + ] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "AcquisitionGateway.fail", + "status": "succeeded", + "operation_id": "AcquisitionGateway-fail-fixture", + "input_digest": "bee8a14a66b226daf52fd0c66958a409ba6c53439ef26e60e21d58accb5230bc", + "value": { + "binding": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "claim_id": "native-fixture-claim", + "native_state": "fixture", + "provider_request_id": "fixture-provider-id", + "outcome": "known", + "receipt": null + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "AcquisitionGateway.reconcile", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "AcquisitionGateway-reconcile-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "spec": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "input_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "binding_id": "fixture-evidence", + "claim_id": "native-fixture-claim", + "expected_state": "fixture", + "provider_request_id": "fixture-provider-id", + "candidates": [], + "diagnostics": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "AcquisitionGateway.reconcile", + "status": "succeeded", + "operation_id": "AcquisitionGateway-reconcile-fixture", + "input_digest": "fc0fc0089e4462f7ca47f6c6e6955bc5718b3742ab19612e29adc58aa43a4ac1", + "value": { + "binding": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "claim_id": "native-fixture-claim", + "native_state": "fixture", + "provider_request_id": "fixture-provider-id", + "outcome": "known", + "receipt": null + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "AssetBuildAdapter.build", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "AssetBuildAdapter-build-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "spec": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "inputs": [], + "capability": "fixture", + "provider": null, + "seed": null, + "limits": { + "max_provider_calls": 0, + "max_cpu_seconds": 0, + "max_gpu_seconds": 0, + "max_storage_bytes": 0, + "max_memory_bytes": 0, + "currency": null, + "max_amount": null, + "policy_ref": null + }, + "acquisition_binding": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "AssetBuildAdapter.build", + "status": "succeeded", + "operation_id": "AssetBuildAdapter-build-fixture", + "input_digest": "25efdeac9d8496bf85484f57b18b74edf544be3874ecf1b002f54b7806757163", + "value": { + "artifacts": [], + "meshes": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "materials": [], + "bounds": { + "minimum": [ + -1000000000.0, + -1000000000.0, + -1000000000.0 + ], + "maximum": [ + -1000000000.0, + -1000000000.0, + -1000000000.0 + ] + }, + "vertices": 3, + "triangles": 1, + "coordinates": { + "handedness": "right", + "right": "+X", + "up": "+Y", + "forward": "+Z", + "unit": "meter", + "angles": "radian", + "quaternion": "XYZW", + "matrices": "column-vectors", + "time": "second" + }, + "uncertainty": [], + "origin": "imported", + "backend_receipt": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "RigMotionAdapter.prepare", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "RigMotionAdapter-prepare-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "mesh": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "identity": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "required_anatomy": [], + "actions": [], + "landmarks": [], + "supplied_rig": null, + "motions": [], + "contact_requirements": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "RigMotionAdapter.prepare", + "status": "succeeded", + "operation_id": "RigMotionAdapter-prepare-fixture", + "input_digest": "1162a279605ec6750c9dd1ce44ccaba01f12b7d46a4d47973930c05fb65cebac", + "value": { + "artifacts": [], + "rig": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "bindings": [], + "clips": [], + "deformation_checks": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "unsupported_actions": [], + "contact_diagnostics": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "SceneAssembler.assemble", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "SceneAssembler-assemble-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "shot_plan": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "story_plan": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "assets": [], + "rig_motion": [], + "layout_requirements": [], + "look_requirements": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "SceneAssembler.assemble", + "status": "succeeded", + "operation_id": "SceneAssembler-assemble-fixture", + "input_digest": "070791e2afc86d098bbc2b2ee8673fb9aece3455cd0a0d3658b276d3225edd7d", + "value": { + "artifacts": [], + "scenes": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "node_ids": [], + "actor_ids": [], + "cameras": [], + "lights": [], + "materials": [], + "timelines": [], + "spatial_feasibility": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "native_exports": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "FrameEvaluator.evaluate", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "FrameEvaluator-evaluate-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "scene": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "shot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "frame": { + "numerator": 0, + "denominator": 1 + }, + "frame_rate": { + "numerator": 1, + "denominator": 1 + }, + "dependency_snapshot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "FrameEvaluator.evaluate", + "status": "succeeded", + "operation_id": "FrameEvaluator-evaluate-fixture", + "input_digest": "d634b33c3758389f9c83f4919c6507ffc0ad7284e5a48c716bc5a3f75d0cccf1", + "value": { + "scene": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "frame": { + "numerator": 0, + "denominator": 1 + }, + "node_transforms": [], + "bone_matrices": [], + "skinning_matrices": [], + "morph_weights": [], + "camera_states": [], + "light_states": [], + "material_states": [], + "contacts": [], + "prop_ownership": [], + "active_clips": [], + "diagnostics": [], + "digest": "0000000000000000000000000000000000000000000000000000000000000000" + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "GraphCompiler.compile", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "GraphCompiler-compile-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "plan": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "capabilities": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "resolution": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "budget": { + "max_provider_calls": 0, + "max_cpu_seconds": 0, + "max_gpu_seconds": 0, + "max_storage_bytes": 0, + "max_memory_bytes": 0, + "currency": null, + "max_amount": null, + "policy_ref": null + } + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "GraphCompiler.compile", + "status": "succeeded", + "operation_id": "GraphCompiler-compile-fixture", + "input_digest": "31f636a2e21a3a1681ab769d46ec5300ccd8d96b15f40775ee25c57272b7966a", + "value": { + "nodes": [ + { + "id": "fixture", + "operation": "CapabilityRegistry.probe", + "inputs": [], + "output_schema": "fixture", + "resource_class": "fixture", + "cache_key": "0000000000000000000000000000000000000000000000000000000000000000", + "gates": [], + "native_owner": "fixture" + } + ], + "edges": [], + "critical_path_seconds": null + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "BudgetLedger.reserve", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "BudgetLedger-reserve-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "operation": "fixture", + "estimated_bound": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "retry_allowance": 0, + "rate_evidence": [], + "expected_ledger_revision": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "BudgetLedger.reserve", + "status": "succeeded", + "operation_id": "BudgetLedger-reserve-fixture", + "input_digest": "d2d9a24104a7026008631524513a965a60cd11eb330d9d0014e9b0e2aa85ab32", + "value": { + "reservation_id": "fixture", + "ledger_revision": "0000000000000000000000000000000000000000000000000000000000000000", + "remaining": { + "max_provider_calls": 0, + "max_cpu_seconds": 0, + "max_gpu_seconds": 0, + "max_storage_bytes": 0, + "max_memory_bytes": 0, + "currency": null, + "max_amount": null, + "policy_ref": null + }, + "state": "reserved", + "evidence": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "BudgetLedger.settle", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "BudgetLedger-settle-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "reservation_id": "fixture", + "actual_usage": { + "classification": "actual", + "provider_calls": { + "value": 0, + "explanation": "Synthetic zero-usage contract example; no invocation." + }, + "input_tokens": { + "value": 0, + "explanation": "Synthetic zero-usage contract example; no invocation." + }, + "output_tokens": { + "value": 0, + "explanation": "Synthetic zero-usage contract example; no invocation." + }, + "cpu_seconds": { + "value": 0, + "explanation": "Synthetic zero-usage contract example; no invocation." + }, + "gpu_seconds": { + "value": 0, + "explanation": "Synthetic zero-usage contract example; no invocation." + }, + "storage_bytes": { + "value": 0, + "explanation": "Synthetic zero-usage contract example; no invocation." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "expected_ledger_revision": "0000000000000000000000000000000000000000000000000000000000000000", + "outcome": "complete", + "evidence": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "BudgetLedger.settle", + "status": "succeeded", + "operation_id": "BudgetLedger-settle-fixture", + "input_digest": "910ceca5dec99bc04e8a906fb62a9b67b55d00202c0b5da8feec1dff6d606c87", + "value": { + "reservation_id": "fixture", + "ledger_revision": "0000000000000000000000000000000000000000000000000000000000000000", + "remaining": { + "max_provider_calls": 0, + "max_cpu_seconds": 0, + "max_gpu_seconds": 0, + "max_storage_bytes": 0, + "max_memory_bytes": 0, + "currency": null, + "max_amount": null, + "policy_ref": null + }, + "state": "settled", + "evidence": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "BudgetLedger.release", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "BudgetLedger-release-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "reservation_id": "fixture", + "expected_ledger_revision": "0000000000000000000000000000000000000000000000000000000000000000", + "outcome": "complete", + "evidence": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "BudgetLedger.release", + "status": "succeeded", + "operation_id": "BudgetLedger-release-fixture", + "input_digest": "c4020486bb4289abf414b69c1f70d71aa5e02e1ec0130223806a3d264a2b5c6f", + "value": { + "reservation_id": "fixture", + "ledger_revision": "0000000000000000000000000000000000000000000000000000000000000000", + "remaining": { + "max_provider_calls": 0, + "max_cpu_seconds": 0, + "max_gpu_seconds": 0, + "max_storage_bytes": 0, + "max_memory_bytes": 0, + "currency": null, + "max_amount": null, + "policy_ref": null + }, + "state": "released", + "evidence": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "ExecutionService.submit", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "ExecutionService-submit-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "graph": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "ExecutionService.submit", + "status": "succeeded", + "operation_id": "ExecutionService-submit-fixture", + "input_digest": "3ee173047a357bdce36fde1967d92c2781322289a445609b602d82a12afda592", + "value": { + "job_id": "fixture", + "revision": "0000000000000000000000000000000000000000000000000000000000000000", + "state": "queued", + "nodes": [], + "attempts": 0, + "native_workers": [], + "claims": [], + "progress": null, + "reservations": [], + "diagnostics": [], + "artifacts": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "ExecutionService.status", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "ExecutionService-status-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "job_id": "fixture", + "expected_revision": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "fixture" + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "ExecutionService.status", + "status": "succeeded", + "operation_id": "ExecutionService-status-fixture", + "input_digest": "e9fd1075a77ebf247ef50ab3fbb52a4a0335384c44b000930eda829008ad8eb2", + "value": { + "job_id": "fixture", + "revision": "0000000000000000000000000000000000000000000000000000000000000000", + "state": "queued", + "nodes": [], + "attempts": 0, + "native_workers": [], + "claims": [], + "progress": null, + "reservations": [], + "diagnostics": [], + "artifacts": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "ExecutionService.resume", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "ExecutionService-resume-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "job_id": "fixture", + "expected_revision": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "fixture", + "dependency_snapshot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "ownership_evidence": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "ExecutionService.resume", + "status": "succeeded", + "operation_id": "ExecutionService-resume-fixture", + "input_digest": "4529c0e741160ea57e068fe0431da8cb1f86a27dc6fe8bf5347c7aafd8855cd8", + "value": { + "job_id": "fixture", + "revision": "0000000000000000000000000000000000000000000000000000000000000000", + "state": "queued", + "nodes": [], + "attempts": 0, + "native_workers": [], + "claims": [], + "progress": null, + "reservations": [], + "diagnostics": [], + "artifacts": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "ExecutionService.cancel", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "ExecutionService-cancel-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "job_id": "fixture", + "expected_revision": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "fixture" + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "ExecutionService.cancel", + "status": "succeeded", + "operation_id": "ExecutionService-cancel-fixture", + "input_digest": "f54f421aef49673a3387059f0401f2da55e2fe3911ce1903c69de832e3f11951", + "value": { + "job_id": "fixture", + "revision": "0000000000000000000000000000000000000000000000000000000000000000", + "state": "queued", + "nodes": [], + "attempts": 0, + "native_workers": [], + "claims": [], + "progress": null, + "reservations": [], + "diagnostics": [], + "artifacts": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "RenderAdapter.preflight", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "RenderAdapter-preflight-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "scene_snapshot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "shot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "frame_ranges": [ + { + "start_frame": 0, + "end_frame": 1 + } + ], + "frame_rate": { + "numerator": 1, + "denominator": 1 + }, + "evaluated_state_schema": "fixture", + "engine": "fixture", + "device_policy": "fixture", + "settings": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "budget": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "RenderAdapter.preflight", + "status": "succeeded", + "operation_id": "RenderAdapter-preflight-fixture", + "input_digest": "d3e5c206347a61d05e51d5e4fe3a4d90efcb81c211948b6f20fc205872e921f4", + "value": { + "ready": false, + "missing_capabilities": [], + "diagnostics": [], + "evidence": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "RenderAdapter.submit", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "RenderAdapter-submit-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "scene_snapshot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "shot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "frame_ranges": [ + { + "start_frame": 0, + "end_frame": 1 + } + ], + "frame_rate": { + "numerator": 1, + "denominator": 1 + }, + "evaluated_state_schema": "fixture", + "engine": "fixture", + "device_policy": "fixture", + "settings": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "budget": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "RenderAdapter.submit", + "status": "succeeded", + "operation_id": "RenderAdapter-submit-fixture", + "input_digest": "d4a05b2d80d9282496401da00ec526a97af3f06e947a47f7b39e55c1db196c95", + "value": { + "job_id": "fixture", + "revision": "0000000000000000000000000000000000000000000000000000000000000000", + "state": "queued", + "nodes": [], + "attempts": 0, + "native_workers": [], + "claims": [], + "progress": null, + "reservations": [], + "diagnostics": [], + "artifacts": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "RenderAdapter.status", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "RenderAdapter-status-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "job_id": "fixture", + "expected_revision": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "fixture" + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "RenderAdapter.status", + "status": "succeeded", + "operation_id": "RenderAdapter-status-fixture", + "input_digest": "4190f63427cdabe5e5cfc383d882744f84253d3bc7f6d9187c4c0ffe87a4b41f", + "value": { + "job_id": "fixture", + "revision": "0000000000000000000000000000000000000000000000000000000000000000", + "state": "queued", + "nodes": [], + "attempts": 0, + "native_workers": [], + "claims": [], + "progress": null, + "reservations": [], + "diagnostics": [], + "artifacts": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "RenderAdapter.cancel", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "RenderAdapter-cancel-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "job_id": "fixture", + "expected_revision": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "fixture" + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "RenderAdapter.cancel", + "status": "succeeded", + "operation_id": "RenderAdapter-cancel-fixture", + "input_digest": "252bdf27c49f6604dfb9d47d3a19b5241099c67f045ea4dadbceb3b4c5ba77d4", + "value": { + "job_id": "fixture", + "revision": "0000000000000000000000000000000000000000000000000000000000000000", + "state": "queued", + "nodes": [], + "attempts": 0, + "native_workers": [], + "claims": [], + "progress": null, + "reservations": [], + "diagnostics": [], + "artifacts": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "RenderAdapter.verify", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "RenderAdapter-verify-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "job": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "scene_snapshot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "frames": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "frame_range": { + "start_frame": 0, + "end_frame": 1 + }, + "frame_rate": { + "numerator": 24, + "denominator": 1 + }, + "resolution": [ + 1, + 1 + ] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "RenderAdapter.verify", + "status": "succeeded", + "operation_id": "RenderAdapter-verify-fixture", + "input_digest": "c63f92b1c0d49bfed2352879095862ee63937b2e540bb7e4636be42917969599", + "value": { + "scene_snapshot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "backend": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "frame_range": { + "start_frame": 0, + "end_frame": 1 + }, + "frame_rate": { + "numerator": 24, + "denominator": 1 + }, + "resolution": [ + 1, + 1 + ], + "frames": [ + { + "index": 0, + "timestamp": { + "numerator": 0, + "denominator": 1 + }, + "resolution": [ + 1, + 1 + ], + "artifact": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "decode_evidence": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "dependency_snapshot": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + } + ] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "ExportService.export", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "ExportService-export-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "sources": [], + "target": "native_blend", + "codec": null, + "options": [], + "verification": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "ExportService.export", + "status": "succeeded", + "operation_id": "ExportService-export-fixture", + "input_digest": "b363553e7388e9e81202394cdc5359c85943de88882f61c130c88b1f869cb163", + "value": { + "target": "native_blend", + "outputs": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "format_losses": [], + "verification": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "verified": true, + "decoded_frames": null, + "audio_streams": null + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "ExportService.verify", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "ExportService-verify-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "export": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "sources": [], + "expected_frames": null, + "frame_rate": null, + "zero_audio_streams": false + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "ExportService.verify", + "status": "succeeded", + "operation_id": "ExportService-verify-fixture", + "input_digest": "69d382f762377bd45ee899a0202f1a85d41810333113349a4ed3150e78997786", + "value": { + "target": "native_blend", + "outputs": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "format_losses": [], + "verification": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "verified": true, + "decoded_frames": null, + "audio_streams": null + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "QAService.validate", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "QAService-validate-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "artifacts": [], + "check_profile": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "thresholds": [] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "QAService.validate", + "status": "succeeded", + "operation_id": "QAService-validate-fixture", + "input_digest": "e4833b2f5161e2d73b5f03d29bb71e8bbde117886904ca18bc31c8e06a98bb3c", + "value": { + "measured": [], + "unmeasured": [], + "findings": [], + "status": "passed" + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "QAService.record_review", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "QAService-record_review-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "reviewer_id": "fixture", + "authority": "assistant", + "scope": [], + "decisions": [ + { + "dimension": "fixture", + "verdict": "approved", + "rationale": "fixture" + } + ], + "evidence": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ] + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "QAService.record_review", + "status": "succeeded", + "operation_id": "QAService-record_review-fixture", + "input_digest": "677863c1a3c47c25d3dedc2e671194e1c7cf79ff19a1bb4f0d93ebd2bb6b5ee9", + "value": { + "reviewer_id": "fixture", + "authority": "assistant", + "scope": [], + "decisions": [ + { + "dimension": "fixture", + "verdict": "approved", + "rationale": "fixture" + } + ], + "evidence": [ + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "RevisionService.plan", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "RevisionService-plan-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "instruction": "fixture", + "current_project": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "locked_constraints": [], + "budget": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "capabilities": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "RevisionService.plan", + "status": "succeeded", + "operation_id": "RevisionService-plan-fixture", + "input_digest": "53bed3559c4985b594641231cbb3f75b09dbb61c4cfae09e1df979788fc8159d", + "value": { + "patch": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "changed_ids": [], + "assumptions": [], + "diagnostics": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "RevisionService.apply", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "RevisionService-apply-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "patch": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "expected_revision": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "authorization": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "RevisionService.apply", + "status": "succeeded", + "operation_id": "RevisionService-apply-fixture", + "input_digest": "847fc1c09df60928e86216e5e95459f91ae8b1b41be4b764cee4fd7ab1bdcb16", + "value": { + "project": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "parent": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "changed_ids": [], + "stale_descendants": [], + "preserved_outputs": [], + "diagnostics": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + }, + { + "schema_version": 1, + "kind": "director-request", + "method": "RevisionService.impact", + "context": { + "project_id": "project-fixture", + "project_revision_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "request_id": "RevisionService-impact-fixture", + "idempotency_key": "fixture", + "attempt_id": "fixture", + "capability_snapshot_sha256": "0000000000000000000000000000000000000000000000000000000000000000", + "budget_reservation_id": null, + "cancellation_token": "fixture", + "deadline": "2030-01-01T00:00:00Z", + "policy": { + "network": "deny", + "providers": [], + "paid": "deny", + "policy_ref": null + } + }, + "input": { + "patch": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "graph": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + } + }, + { + "schema_version": 1, + "kind": "director-result", + "method": "RevisionService.impact", + "status": "succeeded", + "operation_id": "RevisionService-impact-fixture", + "input_digest": "d74de07dddc706b92847817a5a723ef8f869d3eeb3c3714d9fe4bbeabbe7c4d0", + "value": { + "changed_ids": [], + "stale_descendants": [], + "preserved_outputs": [], + "diagnostics": [] + }, + "artifacts": [], + "diagnostics": [], + "usage": { + "classification": "unavailable", + "provider_calls": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "input_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "output_tokens": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "cpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "gpu_seconds": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "storage_bytes": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "currency": null, + "amount": { + "value": null, + "explanation": "No actual usage is measured by this synthetic fixture." + }, + "measurement_source": "Synthetic contract fixture; no invocation." + }, + "provenance_receipts": [] + } +] diff --git a/examples/director-contracts/creative-brief-fixture.json b/examples/director-contracts/creative-brief-fixture.json new file mode 100644 index 0000000..2fff80e --- /dev/null +++ b/examples/director-contracts/creative-brief-fixture.json @@ -0,0 +1,55 @@ +{ + "schema_version": 1, + "kind": "director-creative-brief", + "id": "creative-brief-fixture", + "semantic_version": "1.0.0", + "project_id": "fixture", + "request_id": "fixture", + "original_prompt": "Synthetic contract example: two fixture robots inspect a laboratory object.", + "requirements": { + "explicit": [], + "inferred": [], + "locked": [], + "ambiguities": [], + "assumptions": [] + }, + "duration": { + "numerator": 30, + "denominator": 1 + }, + "frame_rate": { + "numerator": 24, + "denominator": 1 + }, + "resolution": [ + 1280, + 720 + ], + "aspect_ratio": { + "numerator": 16, + "denominator": 9 + }, + "characters": [ + "aster-fixture", + "moss-fixture" + ], + "object_count": 1, + "locations": [], + "actions": [], + "mood": "fixture", + "style": "fixture", + "content_restrictions": [], + "outputs": [], + "budget": { + "max_provider_calls": 0, + "max_cpu_seconds": 0, + "max_gpu_seconds": 0, + "max_storage_bytes": 0, + "max_memory_bytes": 0, + "currency": null, + "max_amount": null, + "policy_ref": null + }, + "references": [], + "provenance": [] +} diff --git a/examples/director-contracts/evidence.txt b/examples/director-contracts/evidence.txt new file mode 100644 index 0000000..01bca6e --- /dev/null +++ b/examples/director-contracts/evidence.txt @@ -0,0 +1 @@ +Synthetic Director contract evidence. No provider, render or review was executed. diff --git a/examples/director-contracts/project-fixture.json b/examples/director-contracts/project-fixture.json new file mode 100644 index 0000000..ace693a --- /dev/null +++ b/examples/director-contracts/project-fixture.json @@ -0,0 +1,273 @@ +{ + "schema_version": 1, + "kind": "director-project", + "id": "project-fixture", + "semantic_version": "1.0.0", + "original_request": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "brief": { + "artifact_id": "creative-brief-fixture", + "kind": "director-creative-brief", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/creative-brief-fixture.json", + "sha256": "1e562d24a7f49414dcb905ef1452df71df2c7797792e400d971b5b89b69c8fbf", + "byte_size": 1120, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "story": { + "artifact_id": "story-plan-fixture", + "kind": "director-story-plan", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/story-plan-fixture.json", + "sha256": "0ac5c41b2d022ddf8f5cc8a9dc559cb41988043d349c97457d457010e42ac2ed", + "byte_size": 1094, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "shot_plan": { + "artifact_id": "shot-plan-fixture", + "kind": "director-shot-plan", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/shot-plan-fixture.json", + "sha256": "b4a5e299dddc83d780afcf471a183ab787459ce7c2d781190e073d3844e989ee", + "byte_size": 3163, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "asset_registry": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "characters": [ + { + "artifact_id": "character-identity-fixture", + "kind": "director-character-identity", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/character-identity-fixture.json", + "sha256": "b687c3216782dfd6a42334dfef7e210543f54038c5f2c489e1fef3d3db2a7f08", + "byte_size": 1001, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "scenes": [], + "timelines": [], + "render_configuration": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "execution_graph": null, + "budget_ledger": null, + "acquisition_bindings": [], + "dependencies": [], + "reviews": [], + "exports": [], + "inventory": [ + { + "artifact_id": "creative-brief-fixture", + "kind": "director-creative-brief", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/creative-brief-fixture.json", + "sha256": "1e562d24a7f49414dcb905ef1452df71df2c7797792e400d971b5b89b69c8fbf", + "byte_size": 1120, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + { + "artifact_id": "story-plan-fixture", + "kind": "director-story-plan", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/story-plan-fixture.json", + "sha256": "0ac5c41b2d022ddf8f5cc8a9dc559cb41988043d349c97457d457010e42ac2ed", + "byte_size": 1094, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + { + "artifact_id": "shot-plan-fixture", + "kind": "director-shot-plan", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/shot-plan-fixture.json", + "sha256": "b4a5e299dddc83d780afcf471a183ab787459ce7c2d781190e073d3844e989ee", + "byte_size": 3163, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + { + "artifact_id": "asset-spec-fixture", + "kind": "director-asset-spec", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/asset-spec-fixture.json", + "sha256": "1b3816531d00377f2367b7877c1a43b7e4905ce8cd5476586b59d185eb3990a0", + "byte_size": 901, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + { + "artifact_id": "character-identity-fixture", + "kind": "director-character-identity", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/character-identity-fixture.json", + "sha256": "b687c3216782dfd6a42334dfef7e210543f54038c5f2c489e1fef3d3db2a7f08", + "byte_size": 1001, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + } + ], + "status": "draft", + "milestones": [ + { + "name": "planning", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "assets", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "scene", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "motion", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "rendering", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "video", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "native_editability", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "visual_qa", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + }, + { + "name": "delivery", + "status": "unverified", + "evidence": [], + "diagnostics": [], + "authority": "automated", + "scope": "Synthetic contract fixture only." + } + ], + "coordinates": { + "handedness": "right", + "right": "+X", + "up": "+Y", + "forward": "+Z", + "unit": "meter", + "angles": "radian", + "quaternion": "XYZW", + "matrices": "column-vectors", + "time": "second" + } +} diff --git a/examples/director-contracts/shot-plan-fixture.json b/examples/director-contracts/shot-plan-fixture.json new file mode 100644 index 0000000..98a8f8f --- /dev/null +++ b/examples/director-contracts/shot-plan-fixture.json @@ -0,0 +1,108 @@ +{ + "schema_version": 1, + "kind": "director-shot-plan", + "id": "shot-plan-fixture", + "semantic_version": "1.0.0", + "story": { + "artifact_id": "story-plan-fixture", + "kind": "director-story-plan", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/story-plan-fixture.json", + "sha256": "0ac5c41b2d022ddf8f5cc8a9dc559cb41988043d349c97457d457010e42ac2ed", + "byte_size": 1094, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "duration_frames": 720, + "frame_rate": { + "numerator": 24, + "denominator": 1 + }, + "shots": [ + { + "id": "shot-a", + "scene_id": "laboratory-fixture", + "beat_ids": [ + "discovery" + ], + "start_frame": 0, + "end_frame": 720, + "duration_frames": 720, + "camera": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "actors": [ + "aster-fixture", + "moss-fixture" + ], + "props": [ + "object-fixture" + ], + "actions": [], + "markers": [], + "environment": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "lighting": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "composition": [], + "entry_constraints": [], + "exit_constraints": [], + "transition": { + "kind": "cut", + "overlap_frames": 0 + }, + "required_assets": [], + "dependencies": [], + "render_settings": { + "artifact_id": "fixture-evidence", + "kind": "test-fixture", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/evidence.txt", + "sha256": "a830419a9ea426abae098cca3bd07abd330efbca87490492e7885a6e1fdac075", + "byte_size": 82, + "media_type": "text/plain", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "qa_requirements": [], + "review": "unreviewed" + } + ] +} diff --git a/examples/director-contracts/story-plan-fixture.json b/examples/director-contracts/story-plan-fixture.json new file mode 100644 index 0000000..4c1718a --- /dev/null +++ b/examples/director-contracts/story-plan-fixture.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "kind": "director-story-plan", + "id": "story-plan-fixture", + "semantic_version": "1.0.0", + "brief": { + "artifact_id": "creative-brief-fixture", + "kind": "director-creative-brief", + "schema_version": 1, + "semantic_version": "1.0.0", + "path": "examples/director-contracts/creative-brief-fixture.json", + "sha256": "1e562d24a7f49414dcb905ef1452df71df2c7797792e400d971b5b89b69c8fbf", + "byte_size": 1120, + "media_type": "application/json", + "provenance_ref": null, + "fixture": true, + "dependencies": [] + }, + "logline": "fixture", + "premise": "fixture", + "beginning": "fixture", + "middle": "fixture", + "end": "fixture", + "emotional_progression": [], + "objectives": [], + "discoveries": [], + "spatial_continuity": [], + "motifs": [], + "establishing_information": [], + "outcome": "fixture", + "silent": false, + "communication_methods": [], + "beats": [ + { + "id": "discovery", + "description": "Synthetic discovery beat.", + "actions": [ + "Inspect the object." + ], + "composition": [] + } + ] +} diff --git a/profiles/director.schema.json b/profiles/director.schema.json new file mode 100644 index 0000000..aa66679 --- /dev/null +++ b/profiles/director.schema.json @@ -0,0 +1,22195 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Creative Studio Director v1 contracts", + "description": "Structural admission only; runtime semantics and exact-byte closure are separate checks.", + "$defs": { + "artifact-ref": { + "type": "object", + "additionalProperties": false, + "properties": { + "artifact_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "kind": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "schema_version": { + "type": "integer", + "minimum": 1, + "maximum": 999 + }, + "semantic_version": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?![\\s\\S])" + }, + "path": { + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^(?!(?:[aA][uU][xX]|[cC][oO][mM]1|[cC][oO][mM]2|[cC][oO][mM]3|[cC][oO][mM]4|[cC][oO][mM]5|[cC][oO][mM]6|[cC][oO][mM]7|[cC][oO][mM]8|[cC][oO][mM]9|[cC][oO][nN]|[cC][oO][nN][iI][nN]\\$|[cC][oO][nN][oO][uU][tT]\\$|[lL][pP][tT]1|[lL][pP][tT]2|[lL][pP][tT]3|[lL][pP][tT]4|[lL][pP][tT]5|[lL][pP][tT]6|[lL][pP][tT]7|[lL][pP][tT]8|[lL][pP][tT]9|[nN][uU][lL]|[pP][rR][nN])(?:[./]|(?![\\s\\S])))[^/\\\\:<>\"|?*\\x00-\\x1f\\x7f\\ud800-\\udfff]*[^/\\\\:<>\"|?*\\x00-\\x1f\\x7f\\ud800-\\udfff .](?:/(?!(?:[aA][uU][xX]|[cC][oO][mM]1|[cC][oO][mM]2|[cC][oO][mM]3|[cC][oO][mM]4|[cC][oO][mM]5|[cC][oO][mM]6|[cC][oO][mM]7|[cC][oO][mM]8|[cC][oO][mM]9|[cC][oO][nN]|[cC][oO][nN][iI][nN]\\$|[cC][oO][nN][oO][uU][tT]\\$|[lL][pP][tT]1|[lL][pP][tT]2|[lL][pP][tT]3|[lL][pP][tT]4|[lL][pP][tT]5|[lL][pP][tT]6|[lL][pP][tT]7|[lL][pP][tT]8|[lL][pP][tT]9|[nN][uU][lL]|[pP][rR][nN])(?:[./]|(?![\\s\\S])))[^/\\\\:<>\"|?*\\x00-\\x1f\\x7f\\ud800-\\udfff]*[^/\\\\:<>\"|?*\\x00-\\x1f\\x7f\\ud800-\\udfff .])*(?![\\s\\S])" + }, + "sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "byte_size": { + "type": "integer", + "minimum": 0, + "maximum": 268435456 + }, + "media_type": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "provenance_ref": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + }, + "fixture": { + "type": "boolean" + }, + "dependencies": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 128 + } + }, + "required": [ + "artifact_id", + "kind", + "schema_version", + "semantic_version", + "path", + "sha256", + "byte_size", + "media_type", + "provenance_ref", + "fixture", + "dependencies" + ] + }, + "operation-context": { + "type": "object", + "additionalProperties": false, + "properties": { + "project_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "project_revision_sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "request_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "idempotency_key": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "attempt_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "capability_snapshot_sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "budget_reservation_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "cancellation_token": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "deadline": { + "type": "string", + "format": "date-time", + "maxLength": 64 + }, + "policy": { + "type": "object", + "additionalProperties": false, + "properties": { + "network": { + "enum": [ + "deny", + "allow-configured" + ] + }, + "providers": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "paid": { + "enum": [ + "deny", + "bounded", + "allow-unknown-price" + ] + }, + "policy_ref": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "network", + "providers", + "paid", + "policy_ref" + ] + } + }, + "required": [ + "project_id", + "project_revision_sha256", + "request_id", + "idempotency_key", + "attempt_id", + "capability_snapshot_sha256", + "budget_reservation_id", + "cancellation_token", + "deadline", + "policy" + ] + }, + "diagnostic": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "fps": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "rational": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "milestone": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "enum": [ + "planning", + "assets", + "scene", + "motion", + "rendering", + "video", + "native_editability", + "visual_qa", + "delivery" + ] + }, + "status": { + "enum": [ + "unverified", + "blocked", + "passed", + "failed" + ] + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "authority": { + "enum": [ + "automated", + "assistant", + "human", + "external" + ] + }, + "scope": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "name", + "status", + "evidence", + "diagnostics", + "authority", + "scope" + ] + }, + "budget": { + "type": "object", + "additionalProperties": false, + "properties": { + "max_provider_calls": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_cpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_gpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_storage_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_memory_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "currency": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "max_amount": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "policy_ref": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "max_provider_calls", + "max_cpu_seconds", + "max_gpu_seconds", + "max_storage_bytes", + "max_memory_bytes", + "currency", + "max_amount", + "policy_ref" + ] + }, + "creative-brief": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-creative-brief" + }, + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "semantic_version": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?![\\s\\S])" + }, + "project_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "request_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "original_prompt": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "requirements": { + "type": "object", + "additionalProperties": false, + "properties": { + "explicit": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "inferred": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "locked": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "ambiguities": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "assumptions": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "explicit", + "inferred", + "locked", + "ambiguities", + "assumptions" + ] + }, + "duration": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "frame_rate": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "resolution": { + "type": "array", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 32768 + }, + "minItems": 2, + "maxItems": 2 + }, + "aspect_ratio": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "characters": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "object_count": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "locations": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "actions": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "mood": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "style": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "content_restrictions": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "outputs": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "budget": { + "type": "object", + "additionalProperties": false, + "properties": { + "max_provider_calls": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_cpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_gpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_storage_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_memory_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "currency": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "max_amount": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "policy_ref": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "max_provider_calls", + "max_cpu_seconds", + "max_gpu_seconds", + "max_storage_bytes", + "max_memory_bytes", + "currency", + "max_amount", + "policy_ref" + ] + }, + "references": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "provenance": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "id", + "semantic_version", + "project_id", + "request_id", + "original_prompt", + "requirements", + "duration", + "frame_rate", + "resolution", + "aspect_ratio", + "characters", + "object_count", + "locations", + "actions", + "mood", + "style", + "content_restrictions", + "outputs", + "budget", + "references", + "provenance" + ] + }, + "story-plan": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-story-plan" + }, + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "semantic_version": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?![\\s\\S])" + }, + "brief": { + "$ref": "#/$defs/artifact-ref" + }, + "logline": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "premise": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "beginning": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "middle": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "end": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "emotional_progression": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "objectives": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "discoveries": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "spatial_continuity": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "motifs": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "establishing_information": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "outcome": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "silent": { + "type": "boolean" + }, + "communication_methods": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "beats": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "description": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "actions": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "composition": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "id", + "description", + "actions", + "composition" + ] + }, + "minItems": 1, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "id", + "semantic_version", + "brief", + "logline", + "premise", + "beginning", + "middle", + "end", + "emotional_progression", + "objectives", + "discoveries", + "spatial_continuity", + "motifs", + "establishing_information", + "outcome", + "silent", + "communication_methods", + "beats" + ] + }, + "shot-plan": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-shot-plan" + }, + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "semantic_version": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?![\\s\\S])" + }, + "story": { + "$ref": "#/$defs/artifact-ref" + }, + "duration_frames": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "frame_rate": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "shots": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "scene_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "beat_ids": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "start_frame": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "end_frame": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "duration_frames": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "camera": { + "$ref": "#/$defs/artifact-ref" + }, + "actors": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "props": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "actions": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "markers": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "frame": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "target": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "id", + "frame", + "target", + "action" + ] + }, + "minItems": 0, + "maxItems": 256 + }, + "environment": { + "$ref": "#/$defs/artifact-ref" + }, + "lighting": { + "$ref": "#/$defs/artifact-ref" + }, + "composition": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "entry_constraints": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "exit_constraints": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "transition": { + "type": "object", + "additionalProperties": false, + "properties": { + "kind": { + "enum": [ + "cut", + "dissolve" + ] + }, + "overlap_frames": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + } + }, + "required": [ + "kind", + "overlap_frames" + ] + }, + "required_assets": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "dependencies": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "render_settings": { + "$ref": "#/$defs/artifact-ref" + }, + "qa_requirements": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "review": { + "enum": [ + "unreviewed", + "approved", + "rejected", + "stale", + "not-applicable" + ] + } + }, + "required": [ + "id", + "scene_id", + "beat_ids", + "start_frame", + "end_frame", + "duration_frames", + "camera", + "actors", + "props", + "actions", + "markers", + "environment", + "lighting", + "composition", + "entry_constraints", + "exit_constraints", + "transition", + "required_assets", + "dependencies", + "render_settings", + "qa_requirements", + "review" + ] + }, + "minItems": 1, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "id", + "semantic_version", + "story", + "duration_frames", + "frame_rate", + "shots" + ] + }, + "asset-spec": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-asset-spec" + }, + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "semantic_version": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?![\\s\\S])" + }, + "logical_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "asset_type": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "semantic_role": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "visual_characteristics": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "capabilities": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "source_policy": { + "type": "object", + "additionalProperties": false, + "properties": { + "network": { + "enum": [ + "deny", + "allow-configured" + ] + }, + "providers": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "paid": { + "enum": [ + "deny", + "bounded", + "allow-unknown-price" + ] + }, + "policy_ref": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "network", + "providers", + "paid", + "policy_ref" + ] + }, + "candidates": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "formats": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "scale_meters": { + "type": "number", + "exclusiveMinimum": 0, + "maximum": 1000000000.0 + }, + "coordinates": { + "type": "object", + "additionalProperties": false, + "properties": { + "handedness": { + "const": "right" + }, + "right": { + "const": "+X" + }, + "up": { + "const": "+Y" + }, + "forward": { + "const": "+Z" + }, + "unit": { + "const": "meter" + }, + "angles": { + "const": "radian" + }, + "quaternion": { + "const": "XYZW" + }, + "matrices": { + "const": "column-vectors" + }, + "time": { + "const": "second" + } + }, + "required": [ + "handedness", + "right", + "up", + "forward", + "unit", + "angles", + "quaternion", + "matrices", + "time" + ] + }, + "materials": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "textures": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "polygon_budget": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "memory_budget": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "licensing": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "attribution": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "dependencies": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "review": { + "enum": [ + "unreviewed", + "approved", + "rejected", + "stale", + "not-applicable" + ] + }, + "substitutions": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "generation_required": { + "type": "boolean" + } + }, + "required": [ + "schema_version", + "kind", + "id", + "semantic_version", + "logical_id", + "asset_type", + "semantic_role", + "visual_characteristics", + "capabilities", + "source_policy", + "candidates", + "formats", + "scale_meters", + "coordinates", + "materials", + "textures", + "polygon_budget", + "memory_budget", + "licensing", + "attribution", + "dependencies", + "review", + "substitutions", + "generation_required" + ] + }, + "character-identity": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-character-identity" + }, + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "semantic_version": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?![\\s\\S])" + }, + "character_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "canonical_design": { + "$ref": "#/$defs/artifact-ref" + }, + "geometry": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "silhouette": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "proportions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "ratio": { + "type": "number", + "exclusiveMinimum": 0, + "maximum": 1000000000.0 + } + }, + "required": [ + "name", + "ratio" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "scale_meters": { + "type": "number", + "exclusiveMinimum": 0, + "maximum": 1000000000.0 + }, + "palette": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "materials": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "markings": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "asymmetries": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "costume": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "accessories": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "rig": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + }, + "bone_mapping": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "role": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "bone": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + } + }, + "required": [ + "role", + "bone" + ] + }, + "minItems": 0, + "maxItems": 256 + }, + "animation_capabilities": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "expression_capabilities": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "viewpoints": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "provenance": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "approved_variations": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "forbidden_transformations": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "id", + "semantic_version", + "character_id", + "canonical_design", + "geometry", + "silhouette", + "proportions", + "scale_meters", + "palette", + "materials", + "markings", + "asymmetries", + "costume", + "accessories", + "rig", + "bone_mapping", + "animation_capabilities", + "expression_capabilities", + "viewpoints", + "provenance", + "approved_variations", + "forbidden_transformations" + ] + }, + "project": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-project" + }, + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "semantic_version": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?![\\s\\S])" + }, + "original_request": { + "$ref": "#/$defs/artifact-ref" + }, + "brief": { + "$ref": "#/$defs/artifact-ref" + }, + "story": { + "$ref": "#/$defs/artifact-ref" + }, + "shot_plan": { + "$ref": "#/$defs/artifact-ref" + }, + "asset_registry": { + "$ref": "#/$defs/artifact-ref" + }, + "characters": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "scenes": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "timelines": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "render_configuration": { + "$ref": "#/$defs/artifact-ref" + }, + "execution_graph": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + }, + "budget_ledger": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + }, + "acquisition_bindings": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "dependencies": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "reviews": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "exports": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "inventory": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "status": { + "enum": [ + "draft", + "blocked", + "in-progress", + "complete" + ] + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/$defs/milestone" + }, + "minItems": 9, + "maxItems": 9 + }, + "coordinates": { + "type": "object", + "additionalProperties": false, + "properties": { + "handedness": { + "const": "right" + }, + "right": { + "const": "+X" + }, + "up": { + "const": "+Y" + }, + "forward": { + "const": "+Z" + }, + "unit": { + "const": "meter" + }, + "angles": { + "const": "radian" + }, + "quaternion": { + "const": "XYZW" + }, + "matrices": { + "const": "column-vectors" + }, + "time": { + "const": "second" + } + }, + "required": [ + "handedness", + "right", + "up", + "forward", + "unit", + "angles", + "quaternion", + "matrices", + "time" + ] + } + }, + "required": [ + "schema_version", + "kind", + "id", + "semantic_version", + "original_request", + "brief", + "story", + "shot_plan", + "asset_registry", + "characters", + "scenes", + "timelines", + "render_configuration", + "execution_graph", + "budget_ledger", + "acquisition_bindings", + "dependencies", + "reviews", + "exports", + "inventory", + "status", + "milestones", + "coordinates" + ] + }, + "input-probe": { + "type": "object", + "additionalProperties": false, + "properties": { + "operations": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "local_probes": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "provider_configuration_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "operations", + "local_probes", + "provider_configuration_refs" + ] + }, + "input-planning": { + "type": "object", + "additionalProperties": false, + "properties": { + "stage": { + "enum": [ + "brief", + "story", + "shots", + "revision" + ] + }, + "original_prompt": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "context_refs": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "output_schema_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "output_schema_version": { + "const": 1 + }, + "locked_constraints": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "template_sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "max_repairs": { + "type": "integer", + "minimum": 0, + "maximum": 3 + } + }, + "required": [ + "stage", + "original_prompt", + "context_refs", + "output_schema_id", + "output_schema_version", + "locked_constraints", + "template_sha256", + "max_repairs" + ] + }, + "input-resolve-assets": { + "type": "object", + "additionalProperties": false, + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "registry_snapshot": { + "$ref": "#/$defs/artifact-ref" + }, + "reuse_policy": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "license_policy": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "specs", + "registry_snapshot", + "reuse_policy", + "license_policy" + ] + }, + "input-acquisition": { + "type": "object", + "additionalProperties": false, + "properties": { + "spec": { + "$ref": "#/$defs/artifact-ref" + }, + "input_sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "binding_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "claim_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "expected_state": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "provider_request_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "candidates": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + } + }, + "required": [ + "spec", + "input_sha256", + "binding_id", + "claim_id", + "expected_state", + "provider_request_id", + "candidates", + "diagnostics" + ] + }, + "input-asset-build": { + "type": "object", + "additionalProperties": false, + "properties": { + "spec": { + "$ref": "#/$defs/artifact-ref" + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "capability": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "provider": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "seed": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + { + "type": "null" + } + ] + }, + "limits": { + "type": "object", + "additionalProperties": false, + "properties": { + "max_provider_calls": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_cpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_gpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_storage_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_memory_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "currency": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "max_amount": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "policy_ref": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "max_provider_calls", + "max_cpu_seconds", + "max_gpu_seconds", + "max_storage_bytes", + "max_memory_bytes", + "currency", + "max_amount", + "policy_ref" + ] + }, + "acquisition_binding": { + "$ref": "#/$defs/artifact-ref" + } + }, + "required": [ + "spec", + "inputs", + "capability", + "provider", + "seed", + "limits", + "acquisition_binding" + ] + }, + "input-rig-motion": { + "type": "object", + "additionalProperties": false, + "properties": { + "mesh": { + "$ref": "#/$defs/artifact-ref" + }, + "identity": { + "$ref": "#/$defs/artifact-ref" + }, + "required_anatomy": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "actions": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "landmarks": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "supplied_rig": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + }, + "motions": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "contact_requirements": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "mesh", + "identity", + "required_anatomy", + "actions", + "landmarks", + "supplied_rig", + "motions", + "contact_requirements" + ] + }, + "input-scene-assembly": { + "type": "object", + "additionalProperties": false, + "properties": { + "shot_plan": { + "$ref": "#/$defs/artifact-ref" + }, + "story_plan": { + "$ref": "#/$defs/artifact-ref" + }, + "assets": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "rig_motion": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "layout_requirements": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "look_requirements": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "shot_plan", + "story_plan", + "assets", + "rig_motion", + "layout_requirements", + "look_requirements" + ] + }, + "input-evaluate-frame": { + "type": "object", + "additionalProperties": false, + "properties": { + "scene": { + "$ref": "#/$defs/artifact-ref" + }, + "shot": { + "$ref": "#/$defs/artifact-ref" + }, + "frame": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "frame_rate": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "dependency_snapshot": { + "$ref": "#/$defs/artifact-ref" + } + }, + "required": [ + "scene", + "shot", + "frame", + "frame_rate", + "dependency_snapshot" + ] + }, + "input-compile": { + "type": "object", + "additionalProperties": false, + "properties": { + "plan": { + "$ref": "#/$defs/artifact-ref" + }, + "capabilities": { + "$ref": "#/$defs/artifact-ref" + }, + "resolution": { + "$ref": "#/$defs/artifact-ref" + }, + "budget": { + "type": "object", + "additionalProperties": false, + "properties": { + "max_provider_calls": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_cpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_gpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_storage_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_memory_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "currency": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "max_amount": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "policy_ref": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "max_provider_calls", + "max_cpu_seconds", + "max_gpu_seconds", + "max_storage_bytes", + "max_memory_bytes", + "currency", + "max_amount", + "policy_ref" + ] + } + }, + "required": [ + "plan", + "capabilities", + "resolution", + "budget" + ] + }, + "input-reservation": { + "type": "object", + "additionalProperties": false, + "properties": { + "operation": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "estimated_bound": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "retry_allowance": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "rate_evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "expected_ledger_revision": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + } + }, + "required": [ + "operation", + "estimated_bound", + "retry_allowance", + "rate_evidence", + "expected_ledger_revision" + ] + }, + "input-settlement": { + "type": "object", + "additionalProperties": false, + "properties": { + "reservation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "actual_usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "expected_ledger_revision": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "outcome": { + "enum": [ + "complete", + "failed", + "uncertain" + ] + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "reservation_id", + "actual_usage", + "expected_ledger_revision", + "outcome", + "evidence" + ] + }, + "input-release": { + "type": "object", + "additionalProperties": false, + "properties": { + "reservation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "expected_ledger_revision": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "outcome": { + "enum": [ + "complete", + "failed" + ] + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "reservation_id", + "expected_ledger_revision", + "outcome", + "evidence" + ] + }, + "input-submit": { + "type": "object", + "additionalProperties": false, + "properties": { + "graph": { + "$ref": "#/$defs/artifact-ref" + } + }, + "required": [ + "graph" + ] + }, + "input-job": { + "type": "object", + "additionalProperties": false, + "properties": { + "job_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "expected_revision": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "request_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + } + }, + "required": [ + "job_id", + "expected_revision", + "request_id" + ] + }, + "input-resume": { + "type": "object", + "additionalProperties": false, + "properties": { + "job_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "expected_revision": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "request_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "dependency_snapshot": { + "$ref": "#/$defs/artifact-ref" + }, + "ownership_evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "job_id", + "expected_revision", + "request_id", + "dependency_snapshot", + "ownership_evidence" + ] + }, + "input-render": { + "type": "object", + "additionalProperties": false, + "properties": { + "scene_snapshot": { + "$ref": "#/$defs/artifact-ref" + }, + "shot": { + "$ref": "#/$defs/artifact-ref" + }, + "frame_ranges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "start_frame": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "end_frame": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + } + }, + "required": [ + "start_frame", + "end_frame" + ] + }, + "minItems": 1, + "maxItems": 256 + }, + "frame_rate": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "evaluated_state_schema": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "engine": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "device_policy": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "settings": { + "$ref": "#/$defs/artifact-ref" + }, + "budget": { + "$ref": "#/$defs/artifact-ref" + } + }, + "required": [ + "scene_snapshot", + "shot", + "frame_ranges", + "frame_rate", + "evaluated_state_schema", + "engine", + "device_policy", + "settings", + "budget" + ] + }, + "input-render-verification": { + "type": "object", + "additionalProperties": false, + "properties": { + "job": { + "$ref": "#/$defs/artifact-ref" + }, + "scene_snapshot": { + "$ref": "#/$defs/artifact-ref" + }, + "frames": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "frame_range": { + "type": "object", + "additionalProperties": false, + "properties": { + "start_frame": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "end_frame": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + } + }, + "required": [ + "start_frame", + "end_frame" + ] + }, + "frame_rate": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "resolution": { + "type": "array", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 32768 + }, + "minItems": 2, + "maxItems": 2 + } + }, + "required": [ + "job", + "scene_snapshot", + "frames", + "frame_range", + "frame_rate", + "resolution" + ] + }, + "input-export": { + "type": "object", + "additionalProperties": false, + "properties": { + "sources": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "target": { + "enum": [ + "native_blend", + "glb", + "gltf", + "png_sequence", + "mp4", + "webm", + "archive" + ] + }, + "codec": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "options": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "value": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "name", + "value" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "verification": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "sources", + "target", + "codec", + "options", + "verification" + ] + }, + "input-export-verification": { + "type": "object", + "additionalProperties": false, + "properties": { + "export": { + "$ref": "#/$defs/artifact-ref" + }, + "sources": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "expected_frames": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + { + "type": "null" + } + ] + }, + "frame_rate": { + "anyOf": [ + { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + { + "type": "null" + } + ] + }, + "zero_audio_streams": { + "type": "boolean" + } + }, + "required": [ + "export", + "sources", + "expected_frames", + "frame_rate", + "zero_audio_streams" + ] + }, + "input-qa": { + "type": "object", + "additionalProperties": false, + "properties": { + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "check_profile": { + "$ref": "#/$defs/artifact-ref" + }, + "thresholds": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "value": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "unit": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "name", + "value", + "unit" + ] + }, + "minItems": 0, + "maxItems": 128 + } + }, + "required": [ + "artifacts", + "check_profile", + "thresholds" + ] + }, + "input-review": { + "type": "object", + "additionalProperties": false, + "properties": { + "reviewer_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "authority": { + "enum": [ + "assistant", + "human", + "external" + ] + }, + "scope": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "decisions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimension": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "verdict": { + "enum": [ + "approved", + "rejected", + "unreviewed" + ] + }, + "rationale": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "dimension", + "verdict", + "rationale" + ] + }, + "minItems": 1, + "maxItems": 128 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "reviewer_id", + "authority", + "scope", + "decisions", + "evidence" + ] + }, + "input-revision-plan": { + "type": "object", + "additionalProperties": false, + "properties": { + "instruction": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "current_project": { + "$ref": "#/$defs/artifact-ref" + }, + "locked_constraints": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "budget": { + "$ref": "#/$defs/artifact-ref" + }, + "capabilities": { + "$ref": "#/$defs/artifact-ref" + } + }, + "required": [ + "instruction", + "current_project", + "locked_constraints", + "budget", + "capabilities" + ] + }, + "input-revision-apply": { + "type": "object", + "additionalProperties": false, + "properties": { + "patch": { + "$ref": "#/$defs/artifact-ref" + }, + "expected_revision": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "authorization": { + "$ref": "#/$defs/artifact-ref" + } + }, + "required": [ + "patch", + "expected_revision", + "authorization" + ] + }, + "input-revision-impact": { + "type": "object", + "additionalProperties": false, + "properties": { + "patch": { + "$ref": "#/$defs/artifact-ref" + }, + "graph": { + "$ref": "#/$defs/artifact-ref" + } + }, + "required": [ + "patch", + "graph" + ] + }, + "output-capability-snapshot": { + "type": "object", + "additionalProperties": false, + "properties": { + "capabilities": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "operation": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "version": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "available", + "unavailable", + "untested" + ] + }, + "limits": { + "type": "object", + "additionalProperties": false, + "properties": { + "max_provider_calls": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_cpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_gpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_storage_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_memory_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "currency": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "max_amount": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "policy_ref": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "max_provider_calls", + "max_cpu_seconds", + "max_gpu_seconds", + "max_storage_bytes", + "max_memory_bytes", + "currency", + "max_amount", + "policy_ref" + ] + }, + "probe_evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "execution_verified": { + "type": "boolean" + } + }, + "required": [ + "operation", + "version", + "status", + "limits", + "probe_evidence", + "execution_verified" + ] + }, + "minItems": 0, + "maxItems": 256 + }, + "expires_at": { + "type": "string", + "format": "date-time" + }, + "digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + } + }, + "required": [ + "capabilities", + "expires_at", + "digest" + ] + }, + "output-planning-artifact": { + "type": "object", + "additionalProperties": false, + "properties": { + "content": { + "$ref": "#/$defs/artifact-ref" + }, + "assumptions": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "provider": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "model": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "template_sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "raw_response": { + "$ref": "#/$defs/artifact-ref" + }, + "repair_history": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "content", + "assumptions", + "provider", + "model", + "template_sha256", + "raw_response", + "repair_history" + ] + }, + "output-resolution-plan": { + "type": "object", + "additionalProperties": false, + "properties": { + "requirements": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "spec": { + "$ref": "#/$defs/artifact-ref" + }, + "disposition": { + "enum": [ + "reusable", + "adaptable", + "missing", + "incompatible", + "unreviewed", + "unavailable" + ] + }, + "candidates": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "conversions": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "capabilities": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "budget": { + "type": "object", + "additionalProperties": false, + "properties": { + "max_provider_calls": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_cpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_gpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_storage_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_memory_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "currency": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "max_amount": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "policy_ref": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "max_provider_calls", + "max_cpu_seconds", + "max_gpu_seconds", + "max_storage_bytes", + "max_memory_bytes", + "currency", + "max_amount", + "policy_ref" + ] + } + }, + "required": [ + "spec", + "disposition", + "candidates", + "reasons", + "conversions", + "capabilities", + "budget" + ] + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "requirements" + ] + }, + "output-acquisition-state": { + "type": "object", + "additionalProperties": false, + "properties": { + "binding": { + "$ref": "#/$defs/artifact-ref" + }, + "claim_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "native_state": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "provider_request_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "outcome": { + "enum": [ + "known", + "uncertain" + ] + }, + "receipt": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "binding", + "claim_id", + "native_state", + "provider_request_id", + "outcome", + "receipt" + ] + }, + "output-asset-build-result": { + "type": "object", + "additionalProperties": false, + "properties": { + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "meshes": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "materials": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "bounds": { + "type": "object", + "additionalProperties": false, + "properties": { + "minimum": { + "type": "array", + "items": { + "type": "number", + "minimum": -1000000000.0, + "maximum": 1000000000.0 + }, + "minItems": 3, + "maxItems": 3 + }, + "maximum": { + "type": "array", + "items": { + "type": "number", + "minimum": -1000000000.0, + "maximum": 1000000000.0 + }, + "minItems": 3, + "maxItems": 3 + } + }, + "required": [ + "minimum", + "maximum" + ] + }, + "vertices": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "triangles": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "coordinates": { + "type": "object", + "additionalProperties": false, + "properties": { + "handedness": { + "const": "right" + }, + "right": { + "const": "+X" + }, + "up": { + "const": "+Y" + }, + "forward": { + "const": "+Z" + }, + "unit": { + "const": "meter" + }, + "angles": { + "const": "radian" + }, + "quaternion": { + "const": "XYZW" + }, + "matrices": { + "const": "column-vectors" + }, + "time": { + "const": "second" + } + }, + "required": [ + "handedness", + "right", + "up", + "forward", + "unit", + "angles", + "quaternion", + "matrices", + "time" + ] + }, + "uncertainty": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "origin": { + "enum": [ + "imported", + "generated", + "procedural-fixture", + "authored" + ] + }, + "backend_receipt": { + "$ref": "#/$defs/artifact-ref" + } + }, + "required": [ + "artifacts", + "meshes", + "materials", + "bounds", + "vertices", + "triangles", + "coordinates", + "uncertainty", + "origin", + "backend_receipt" + ] + }, + "output-rig-motion-bundle": { + "type": "object", + "additionalProperties": false, + "properties": { + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "rig": { + "$ref": "#/$defs/artifact-ref" + }, + "bindings": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "clips": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "deformation_checks": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "unsupported_actions": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "contact_diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + } + }, + "required": [ + "artifacts", + "rig", + "bindings", + "clips", + "deformation_checks", + "unsupported_actions", + "contact_diagnostics" + ] + }, + "output-scene-bundle": { + "type": "object", + "additionalProperties": false, + "properties": { + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "scenes": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "node_ids": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "actor_ids": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "cameras": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "lights": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "materials": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "timelines": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "spatial_feasibility": { + "$ref": "#/$defs/artifact-ref" + }, + "native_exports": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "artifacts", + "scenes", + "node_ids", + "actor_ids", + "cameras", + "lights", + "materials", + "timelines", + "spatial_feasibility", + "native_exports" + ] + }, + "output-evaluated-frame": { + "type": "object", + "additionalProperties": false, + "properties": { + "scene": { + "$ref": "#/$defs/artifact-ref" + }, + "frame": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "node_transforms": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "bone_matrices": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "skinning_matrices": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "morph_weights": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "camera_states": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "light_states": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "material_states": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "contacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "prop_ownership": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "active_clips": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + } + }, + "required": [ + "scene", + "frame", + "node_transforms", + "bone_matrices", + "skinning_matrices", + "morph_weights", + "camera_states", + "light_states", + "material_states", + "contacts", + "prop_ownership", + "active_clips", + "diagnostics", + "digest" + ] + }, + "output-execution-graph": { + "type": "object", + "additionalProperties": false, + "properties": { + "nodes": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "operation": { + "enum": [ + "CapabilityRegistry.probe", + "PlanningProvider.generate_structured", + "AssetResolver.resolve", + "AcquisitionGateway.prepare", + "AcquisitionGateway.claim", + "AcquisitionGateway.ingest", + "AcquisitionGateway.fail", + "AcquisitionGateway.reconcile", + "AssetBuildAdapter.build", + "RigMotionAdapter.prepare", + "SceneAssembler.assemble", + "FrameEvaluator.evaluate", + "GraphCompiler.compile", + "BudgetLedger.reserve", + "BudgetLedger.settle", + "BudgetLedger.release", + "ExecutionService.submit", + "ExecutionService.status", + "ExecutionService.resume", + "ExecutionService.cancel", + "RenderAdapter.preflight", + "RenderAdapter.submit", + "RenderAdapter.status", + "RenderAdapter.cancel", + "RenderAdapter.verify", + "ExportService.export", + "ExportService.verify", + "QAService.validate", + "QAService.record_review", + "RevisionService.plan", + "RevisionService.apply", + "RevisionService.impact" + ] + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "output_schema": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "resource_class": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "cache_key": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "gates": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "native_owner": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + } + }, + "required": [ + "id", + "operation", + "inputs", + "output_schema", + "resource_class", + "cache_key", + "gates", + "native_owner" + ] + }, + "minItems": 1, + "maxItems": 1024 + }, + "edges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "source": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "target": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "artifact": { + "$ref": "#/$defs/artifact-ref" + } + }, + "required": [ + "source", + "target", + "artifact" + ] + }, + "minItems": 0, + "maxItems": 4096 + }, + "critical_path_seconds": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "nodes", + "edges", + "critical_path_seconds" + ] + }, + "output-budget-receipt": { + "type": "object", + "additionalProperties": false, + "properties": { + "reservation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "ledger_revision": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "remaining": { + "type": "object", + "additionalProperties": false, + "properties": { + "max_provider_calls": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_cpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_gpu_seconds": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "max_storage_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "max_memory_bytes": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "currency": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "max_amount": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "policy_ref": { + "anyOf": [ + { + "$ref": "#/$defs/artifact-ref" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "max_provider_calls", + "max_cpu_seconds", + "max_gpu_seconds", + "max_storage_bytes", + "max_memory_bytes", + "currency", + "max_amount", + "policy_ref" + ] + }, + "state": { + "enum": [ + "reserved", + "settled", + "released", + "uncertain" + ] + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "reservation_id", + "ledger_revision", + "remaining", + "state", + "evidence" + ] + }, + "output-job-snapshot": { + "type": "object", + "additionalProperties": false, + "properties": { + "job_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "revision": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "state": { + "enum": [ + "queued", + "running", + "partial", + "blocked", + "failed", + "canceled", + "completed" + ] + }, + "nodes": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "attempts": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "native_workers": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "claims": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "progress": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "reservations": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "job_id", + "revision", + "state", + "nodes", + "attempts", + "native_workers", + "claims", + "progress", + "reservations", + "diagnostics", + "artifacts" + ] + }, + "output-preflight-report": { + "type": "object", + "additionalProperties": false, + "properties": { + "ready": { + "type": "boolean" + }, + "missing_capabilities": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "ready", + "missing_capabilities", + "diagnostics", + "evidence" + ] + }, + "output-verified-render-result": { + "type": "object", + "additionalProperties": false, + "properties": { + "scene_snapshot": { + "$ref": "#/$defs/artifact-ref" + }, + "backend": { + "$ref": "#/$defs/artifact-ref" + }, + "frame_range": { + "type": "object", + "additionalProperties": false, + "properties": { + "start_frame": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "end_frame": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + } + }, + "required": [ + "start_frame", + "end_frame" + ] + }, + "frame_rate": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "resolution": { + "type": "array", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 32768 + }, + "minItems": 2, + "maxItems": 2 + }, + "frames": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "index": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "timestamp": { + "type": "object", + "additionalProperties": false, + "properties": { + "numerator": { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + "denominator": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "resolution": { + "type": "array", + "items": { + "type": "integer", + "minimum": 1, + "maximum": 32768 + }, + "minItems": 2, + "maxItems": 2 + }, + "artifact": { + "$ref": "#/$defs/artifact-ref" + }, + "decode_evidence": { + "$ref": "#/$defs/artifact-ref" + }, + "dependency_snapshot": { + "$ref": "#/$defs/artifact-ref" + } + }, + "required": [ + "index", + "timestamp", + "resolution", + "artifact", + "decode_evidence", + "dependency_snapshot" + ] + }, + "minItems": 1, + "maxItems": 100000 + } + }, + "required": [ + "scene_snapshot", + "backend", + "frame_range", + "frame_rate", + "resolution", + "frames" + ] + }, + "output-export-receipt": { + "type": "object", + "additionalProperties": false, + "properties": { + "target": { + "enum": [ + "native_blend", + "glb", + "gltf", + "png_sequence", + "mp4", + "webm", + "archive" + ] + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "format_losses": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "verification": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "verified": { + "type": "boolean" + }, + "decoded_frames": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + { + "type": "null" + } + ] + }, + "audio_streams": { + "anyOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 2000000000 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "target", + "outputs", + "format_losses", + "verification", + "verified", + "decoded_frames", + "audio_streams" + ] + }, + "output-qa-report": { + "type": "object", + "additionalProperties": false, + "properties": { + "measured": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "value": { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + "unit": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "name", + "value", + "unit", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "unmeasured": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "findings": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "status": { + "enum": [ + "passed", + "failed", + "partial", + "unverified" + ] + } + }, + "required": [ + "measured", + "unmeasured", + "findings", + "status" + ] + }, + "output-review-receipt": { + "type": "object", + "additionalProperties": false, + "properties": { + "reviewer_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "authority": { + "enum": [ + "assistant", + "human", + "external" + ] + }, + "scope": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "decisions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "dimension": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "verdict": { + "enum": [ + "approved", + "rejected", + "unreviewed" + ] + }, + "rationale": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "dimension", + "verdict", + "rationale" + ] + }, + "minItems": 1, + "maxItems": 128 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "reviewer_id", + "authority", + "scope", + "decisions", + "evidence" + ] + }, + "output-revision-plan": { + "type": "object", + "additionalProperties": false, + "properties": { + "patch": { + "$ref": "#/$defs/artifact-ref" + }, + "changed_ids": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "assumptions": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + } + }, + "required": [ + "patch", + "changed_ids", + "assumptions", + "diagnostics" + ] + }, + "output-project-revision": { + "type": "object", + "additionalProperties": false, + "properties": { + "project": { + "$ref": "#/$defs/artifact-ref" + }, + "parent": { + "$ref": "#/$defs/artifact-ref" + }, + "changed_ids": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "stale_descendants": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "preserved_outputs": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + } + }, + "required": [ + "project", + "parent", + "changed_ids", + "stale_descendants", + "preserved_outputs", + "diagnostics" + ] + }, + "output-impact-report": { + "type": "object", + "additionalProperties": false, + "properties": { + "changed_ids": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "minItems": 0, + "maxItems": 256 + }, + "stale_descendants": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "preserved_outputs": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + } + }, + "required": [ + "changed_ids", + "stale_descendants", + "preserved_outputs", + "diagnostics" + ] + }, + "request-CapabilityRegistry-probe": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "CapabilityRegistry.probe" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-probe" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-CapabilityRegistry-probe": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "CapabilityRegistry.probe" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-capability-snapshot" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-PlanningProvider-generate_structured": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "PlanningProvider.generate_structured" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-planning" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-PlanningProvider-generate_structured": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "PlanningProvider.generate_structured" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-planning-artifact" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-AssetResolver-resolve": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "AssetResolver.resolve" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-resolve-assets" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-AssetResolver-resolve": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "AssetResolver.resolve" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-resolution-plan" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-AcquisitionGateway-prepare": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "AcquisitionGateway.prepare" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-acquisition" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-AcquisitionGateway-prepare": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "AcquisitionGateway.prepare" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-acquisition-state" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-AcquisitionGateway-claim": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "AcquisitionGateway.claim" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-acquisition" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-AcquisitionGateway-claim": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "AcquisitionGateway.claim" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-acquisition-state" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-AcquisitionGateway-ingest": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "AcquisitionGateway.ingest" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-acquisition" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-AcquisitionGateway-ingest": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "AcquisitionGateway.ingest" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-acquisition-state" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-AcquisitionGateway-fail": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "AcquisitionGateway.fail" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-acquisition" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-AcquisitionGateway-fail": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "AcquisitionGateway.fail" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-acquisition-state" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-AcquisitionGateway-reconcile": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "AcquisitionGateway.reconcile" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-acquisition" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-AcquisitionGateway-reconcile": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "AcquisitionGateway.reconcile" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-acquisition-state" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-AssetBuildAdapter-build": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "AssetBuildAdapter.build" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-asset-build" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-AssetBuildAdapter-build": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "AssetBuildAdapter.build" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-asset-build-result" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-RigMotionAdapter-prepare": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "RigMotionAdapter.prepare" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-rig-motion" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-RigMotionAdapter-prepare": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "RigMotionAdapter.prepare" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-rig-motion-bundle" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-SceneAssembler-assemble": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "SceneAssembler.assemble" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-scene-assembly" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-SceneAssembler-assemble": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "SceneAssembler.assemble" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-scene-bundle" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-FrameEvaluator-evaluate": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "FrameEvaluator.evaluate" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-evaluate-frame" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-FrameEvaluator-evaluate": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "FrameEvaluator.evaluate" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-evaluated-frame" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-GraphCompiler-compile": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "GraphCompiler.compile" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-compile" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-GraphCompiler-compile": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "GraphCompiler.compile" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-execution-graph" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-BudgetLedger-reserve": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "BudgetLedger.reserve" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-reservation" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-BudgetLedger-reserve": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "BudgetLedger.reserve" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-budget-receipt" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-BudgetLedger-settle": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "BudgetLedger.settle" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-settlement" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-BudgetLedger-settle": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "BudgetLedger.settle" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-budget-receipt" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-BudgetLedger-release": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "BudgetLedger.release" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-release" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-BudgetLedger-release": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "BudgetLedger.release" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-budget-receipt" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-ExecutionService-submit": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "ExecutionService.submit" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-submit" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-ExecutionService-submit": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "ExecutionService.submit" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-job-snapshot" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-ExecutionService-status": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "ExecutionService.status" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-job" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-ExecutionService-status": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "ExecutionService.status" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-job-snapshot" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-ExecutionService-resume": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "ExecutionService.resume" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-resume" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-ExecutionService-resume": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "ExecutionService.resume" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-job-snapshot" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-ExecutionService-cancel": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "ExecutionService.cancel" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-job" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-ExecutionService-cancel": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "ExecutionService.cancel" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-job-snapshot" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-RenderAdapter-preflight": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "RenderAdapter.preflight" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-render" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-RenderAdapter-preflight": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "RenderAdapter.preflight" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-preflight-report" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-RenderAdapter-submit": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "RenderAdapter.submit" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-render" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-RenderAdapter-submit": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "RenderAdapter.submit" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-job-snapshot" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-RenderAdapter-status": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "RenderAdapter.status" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-job" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-RenderAdapter-status": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "RenderAdapter.status" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-job-snapshot" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-RenderAdapter-cancel": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "RenderAdapter.cancel" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-job" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-RenderAdapter-cancel": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "RenderAdapter.cancel" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-job-snapshot" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-RenderAdapter-verify": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "RenderAdapter.verify" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-render-verification" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-RenderAdapter-verify": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "RenderAdapter.verify" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-verified-render-result" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-ExportService-export": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "ExportService.export" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-export" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-ExportService-export": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "ExportService.export" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-export-receipt" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-ExportService-verify": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "ExportService.verify" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-export-verification" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-ExportService-verify": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "ExportService.verify" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-export-receipt" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-QAService-validate": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "QAService.validate" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-qa" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-QAService-validate": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "QAService.validate" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-qa-report" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-QAService-record_review": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "QAService.record_review" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-review" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-QAService-record_review": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "QAService.record_review" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-review-receipt" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-RevisionService-plan": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "RevisionService.plan" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-revision-plan" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-RevisionService-plan": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "RevisionService.plan" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-revision-plan" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-RevisionService-apply": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "RevisionService.apply" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-revision-apply" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-RevisionService-apply": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "RevisionService.apply" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-project-revision" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request-RevisionService-impact": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-request" + }, + "method": { + "const": "RevisionService.impact" + }, + "context": { + "$ref": "#/$defs/operation-context" + }, + "input": { + "$ref": "#/$defs/input-revision-impact" + } + }, + "required": [ + "schema_version", + "kind", + "method", + "context", + "input" + ] + }, + "result-RevisionService-impact": { + "type": "object", + "additionalProperties": false, + "properties": { + "schema_version": { + "const": 1 + }, + "kind": { + "const": "director-result" + }, + "method": { + "const": "RevisionService.impact" + }, + "status": { + "enum": [ + "succeeded", + "partial", + "blocked_capability", + "blocked_budget", + "awaiting_external_result", + "awaiting_review", + "failed", + "canceled" + ] + }, + "operation_id": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "input_digest": { + "type": "string", + "pattern": "^[0-9a-f]{64}(?![\\s\\S])" + }, + "value": { + "anyOf": [ + { + "$ref": "#/$defs/output-impact-report" + }, + { + "type": "null" + } + ] + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + }, + "diagnostics": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "code": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "severity": { + "enum": [ + "info", + "warning", + "error" + ] + }, + "stage": { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + "entity_id": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "field_path": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "expected": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "observed": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + }, + "retryable": { + "type": "boolean" + }, + "recommended_action": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + "evidence": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "code", + "severity", + "stage", + "entity_id", + "field_path", + "expected", + "observed", + "retryable", + "recommended_action", + "evidence" + ] + }, + "minItems": 0, + "maxItems": 128 + }, + "usage": { + "type": "object", + "additionalProperties": false, + "properties": { + "classification": { + "enum": [ + "actual", + "estimated", + "unavailable" + ] + }, + "provider_calls": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "input_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "output_tokens": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "cpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "gpu_seconds": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "storage_bytes": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "currency": { + "anyOf": [ + { + "type": "string", + "pattern": "^[A-Z]{3}(?![\\s\\S])" + }, + { + "type": "null" + } + ] + }, + "amount": { + "type": "object", + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number", + "minimum": 0, + "maximum": 1000000000000000.0 + }, + { + "type": "null" + } + ] + }, + "explanation": { + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 4096 + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "value", + "explanation" + ] + }, + "measurement_source": { + "type": "string", + "minLength": 1, + "maxLength": 4096 + } + }, + "required": [ + "classification", + "provider_calls", + "input_tokens", + "output_tokens", + "cpu_seconds", + "gpu_seconds", + "storage_bytes", + "currency", + "amount", + "measurement_source" + ] + }, + "provenance_receipts": { + "type": "array", + "items": { + "$ref": "#/$defs/artifact-ref" + }, + "minItems": 0, + "maxItems": 256 + } + }, + "required": [ + "schema_version", + "kind", + "method", + "status", + "operation_id", + "input_digest", + "value", + "artifacts", + "diagnostics", + "usage", + "provenance_receipts" + ] + }, + "request": { + "oneOf": [ + { + "$ref": "#/$defs/request-CapabilityRegistry-probe" + }, + { + "$ref": "#/$defs/request-PlanningProvider-generate_structured" + }, + { + "$ref": "#/$defs/request-AssetResolver-resolve" + }, + { + "$ref": "#/$defs/request-AcquisitionGateway-prepare" + }, + { + "$ref": "#/$defs/request-AcquisitionGateway-claim" + }, + { + "$ref": "#/$defs/request-AcquisitionGateway-ingest" + }, + { + "$ref": "#/$defs/request-AcquisitionGateway-fail" + }, + { + "$ref": "#/$defs/request-AcquisitionGateway-reconcile" + }, + { + "$ref": "#/$defs/request-AssetBuildAdapter-build" + }, + { + "$ref": "#/$defs/request-RigMotionAdapter-prepare" + }, + { + "$ref": "#/$defs/request-SceneAssembler-assemble" + }, + { + "$ref": "#/$defs/request-FrameEvaluator-evaluate" + }, + { + "$ref": "#/$defs/request-GraphCompiler-compile" + }, + { + "$ref": "#/$defs/request-BudgetLedger-reserve" + }, + { + "$ref": "#/$defs/request-BudgetLedger-settle" + }, + { + "$ref": "#/$defs/request-BudgetLedger-release" + }, + { + "$ref": "#/$defs/request-ExecutionService-submit" + }, + { + "$ref": "#/$defs/request-ExecutionService-status" + }, + { + "$ref": "#/$defs/request-ExecutionService-resume" + }, + { + "$ref": "#/$defs/request-ExecutionService-cancel" + }, + { + "$ref": "#/$defs/request-RenderAdapter-preflight" + }, + { + "$ref": "#/$defs/request-RenderAdapter-submit" + }, + { + "$ref": "#/$defs/request-RenderAdapter-status" + }, + { + "$ref": "#/$defs/request-RenderAdapter-cancel" + }, + { + "$ref": "#/$defs/request-RenderAdapter-verify" + }, + { + "$ref": "#/$defs/request-ExportService-export" + }, + { + "$ref": "#/$defs/request-ExportService-verify" + }, + { + "$ref": "#/$defs/request-QAService-validate" + }, + { + "$ref": "#/$defs/request-QAService-record_review" + }, + { + "$ref": "#/$defs/request-RevisionService-plan" + }, + { + "$ref": "#/$defs/request-RevisionService-apply" + }, + { + "$ref": "#/$defs/request-RevisionService-impact" + } + ] + }, + "result": { + "oneOf": [ + { + "$ref": "#/$defs/result-CapabilityRegistry-probe" + }, + { + "$ref": "#/$defs/result-PlanningProvider-generate_structured" + }, + { + "$ref": "#/$defs/result-AssetResolver-resolve" + }, + { + "$ref": "#/$defs/result-AcquisitionGateway-prepare" + }, + { + "$ref": "#/$defs/result-AcquisitionGateway-claim" + }, + { + "$ref": "#/$defs/result-AcquisitionGateway-ingest" + }, + { + "$ref": "#/$defs/result-AcquisitionGateway-fail" + }, + { + "$ref": "#/$defs/result-AcquisitionGateway-reconcile" + }, + { + "$ref": "#/$defs/result-AssetBuildAdapter-build" + }, + { + "$ref": "#/$defs/result-RigMotionAdapter-prepare" + }, + { + "$ref": "#/$defs/result-SceneAssembler-assemble" + }, + { + "$ref": "#/$defs/result-FrameEvaluator-evaluate" + }, + { + "$ref": "#/$defs/result-GraphCompiler-compile" + }, + { + "$ref": "#/$defs/result-BudgetLedger-reserve" + }, + { + "$ref": "#/$defs/result-BudgetLedger-settle" + }, + { + "$ref": "#/$defs/result-BudgetLedger-release" + }, + { + "$ref": "#/$defs/result-ExecutionService-submit" + }, + { + "$ref": "#/$defs/result-ExecutionService-status" + }, + { + "$ref": "#/$defs/result-ExecutionService-resume" + }, + { + "$ref": "#/$defs/result-ExecutionService-cancel" + }, + { + "$ref": "#/$defs/result-RenderAdapter-preflight" + }, + { + "$ref": "#/$defs/result-RenderAdapter-submit" + }, + { + "$ref": "#/$defs/result-RenderAdapter-status" + }, + { + "$ref": "#/$defs/result-RenderAdapter-cancel" + }, + { + "$ref": "#/$defs/result-RenderAdapter-verify" + }, + { + "$ref": "#/$defs/result-ExportService-export" + }, + { + "$ref": "#/$defs/result-ExportService-verify" + }, + { + "$ref": "#/$defs/result-QAService-validate" + }, + { + "$ref": "#/$defs/result-QAService-record_review" + }, + { + "$ref": "#/$defs/result-RevisionService-plan" + }, + { + "$ref": "#/$defs/result-RevisionService-apply" + }, + { + "$ref": "#/$defs/result-RevisionService-impact" + } + ] + } + }, + "oneOf": [ + { + "$ref": "#/$defs/creative-brief" + }, + { + "$ref": "#/$defs/story-plan" + }, + { + "$ref": "#/$defs/shot-plan" + }, + { + "$ref": "#/$defs/asset-spec" + }, + { + "$ref": "#/$defs/character-identity" + }, + { + "$ref": "#/$defs/project" + }, + { + "$ref": "#/$defs/request" + }, + { + "$ref": "#/$defs/result" + } + ] +} diff --git a/references/director-contracts.md b/references/director-contracts.md new file mode 100644 index 0000000..667a9a3 --- /dev/null +++ b/references/director-contracts.md @@ -0,0 +1,152 @@ +# Director v1 contract foundation + +This implements the data and interface boundary of [issue #24](https://github.com/CompleteTech-Skills/creative-studio/issues/24). +The parent Director phases and production mission remain open. Validation never +invokes a model, generates assets, mutates a native project, renders, spends a +budget or records an artistic approval. + +## Architecture and reuse + +The implementation was based on `bb5a6810afd06cf57185ffdfe2234e0fdc6e6240` and the +existing [Director baseline](director-baseline.md) and [requirements map](director-requirements-map.md). +The actual tree provides 2D acquisition/review/production authorities, rig +import, geometry, skeleton, skinning, animation, native export and local HTTP +services, plus Model3D contracts and file inspection. None is replaced here. +Pending scene, camera, look-development and asset-library PRs remain their +owners' work; no competing implementation was copied from those branches. + +`scripts/director_schema.py` owns the closed Draft 2020-12 definitions and the +32-method registry. `scripts/director_contracts.py` adds semantic admission, +strict shared JSON decoding, bounded exact-byte closure and exact time/position +adapters. It imports the canonical rig coordinate declaration, shared portable +path policy and typed error contract. Schema discovery does not load NumPy, +Blender, browser packages or provider SDKs. The central schema generator +registers the additive `profiles/director.schema.json`; it does not rewrite +legacy definitions. + +The schema's six root documents are CreativeBrief, StoryPlan, ShotPlan, +AssetSpec, CharacterIdentity and DirectorProject. Common ArtifactRef, +OperationContext, Diagnostic, Usage and Milestone definitions are embedded in +the same authoritative schema. Requests use `director-request` with `method`, +`context` and a closed method-specific `input`. Results use `director-result` +with the same method, status, input digest, typed value, artifact references, +diagnostics, usage and provenance receipts. Definitions and generated schemas +are returned as independent copies; callers cannot mutate admission globally. + +Core documents use `schema_version: 1` and an explicit semantic version, with +references bound to that exact declared version. Unknown schema versions are rejected. There is no older +Director format to migrate; future incompatible versions require a separate +explicit migration rather than permissive field dropping. References to +native assets preserve their own exact versions and identifiers. + +## Data, space and time + +An ArtifactRef pins an artifact ID, native kind/schema version, semantic version, +project-relative portable path, exact SHA-256, byte size, media type, provenance +reference, fixture flag and complete dependency references. A directory is +never read as a file: represent it with a `director-inventory` JSON array of +exact file references. Every member must be declared in the bounded closure. +No artifact path may escape the project, use a symlink/device/FIFO, introduce +case/Unicode aliases or conflict with another binding. The reference closure +is limited to 4,096 files, 256 MiB per file and 1 GiB total. + +`validate_bundle(documents, root=None)` checks document IDs, Director links, +exact versions, cross-document story/beat links and dependency cycles. With +`root`, it also checks exact regular-file bytes and ensures referenced Director +document bytes equal the supplied document. It uses descriptor-relative, +no-follow reads; platforms without those primitives return a typed unsupported +platform error. This is a read-only snapshot, not a transactional store or a +native-format decoder. Native asset acceptance must still come from the +appropriate importer/validator; a hash alone is not valid geometry or a review. + +FPS is a positive bounded rational `{numerator, denominator}`. Half-open shot +ranges, marker bounds, explicit dissolve overlaps and coverage are validated. +`duration_frames(30, {"numerator":24,"denominator":1})` returns 720; +`frame_timestamp(719, fps)` is exactly `719/24` and boundary 720 is exactly +30 seconds. Fractional durations that cannot represent an integral frame count +are rejected, never rounded. Legacy 2D milliseconds remain separate. + +The authoritative rig space remains right-handed +Y up, +Z forward, meters, +XYZW quaternions and column-vector transforms. `convert_position` explicitly +maps canonical `(x,y,z)` to Blender `(x,-z,y)` and back. It is a position adapter; +native rig math still owns quaternion/TRS and skeletal conversion. + +## Method contracts and permitted effects + +Each row has separate strict request input and response value definitions under +`$defs/input-*` and `$defs/output-*`. All 32 exact names are enumerated by `METHODS`. +The registry describes adapter obligations; it does not expose an executable +provider, scheduler or controller. + +| Method(s) | Input → output | Permitted effect in the future adapter | +| --- | --- | --- | +| `CapabilityRegistry.probe` | Operations/local probe policy/provider refs → versioned capabilities, limits, probe evidence, expiry and digest | Read-only by default; only requested probes | +| `PlanningProvider.generate_structured` | Stage, original prompt, exact context, output schema, locked constraints, template hash, bounded repairs → content ref, assumptions, provider/model, raw response and repair history | Configured planning call only | +| `AssetResolver.resolve` | Specs, registry snapshot, reuse/license policy → exactly one disposition per spec, candidates, reasons, conversions and needs | Read-only; no purchase/generation | +| `AcquisitionGateway.prepare`, `.claim`, `.ingest`, `.fail`, `.reconcile` | Spec/input hashes, existing binding/claim/state, provider request ID, candidates, diagnostics → native binding/claim/state/receipt and known/uncertain outcome | Delegate existing acquisition lifecycle; preserve original uncertain claim | +| `AssetBuildAdapter.build` | Spec, inputs, provider/capability, seed, limits, authorized acquisition → actual mesh/material refs, bounds, counts, units, uncertainty, origin, receipt | Owned staging and immutable promotion | +| `RigMotionAdapter.prepare` | Exact mesh/identity/rig/motions, anatomy/actions/landmarks/contacts → native rig/binding/clip refs, deformation checks and unsupported actions | Versioned derivatives, preserve originals | +| `SceneAssembler.assemble` | Story/shot/assets/rig refs and layout/look requirements → native scenes, IDs, cameras/lights/materials/timelines, spatial/native evidence | New native revisions; no render implied | +| `FrameEvaluator.evaluate` | Immutable scene/shot, exact rational frame and FPS, dependency snapshot → native evaluated transform/bone/skinning/morph/camera/light/material/contact/ownership/clip snapshots | Pure evaluation; no event duplication | +| `GraphCompiler.compile` | Validated plan/capability/resolution refs, budget → typed nodes, exact input edges, output schemas, resource classes, cache keys, gates and critical-path estimate | Read-only | +| `BudgetLedger.reserve`, `.settle`, `.release` | Operation/idempotency, estimated bounds/retries/rates, expected ledger revision; actual Usage for settlement → reservation, ledger revision, remaining limits, state and evidence | Transactional native accounting | +| `ExecutionService.submit`, `.status`, `.resume`, `.cancel` | Immutable graph or existing job/revision/request; reconciled dependencies/ownership for resume → original job identity/state/attempts/workers/claims/reservations/progress/diagnostics/artifacts | Persist/delegate native transitions; submission stays queued/running | +| `RenderAdapter.preflight`, `.submit`, `.status`, `.cancel`, `.verify` | Pinned scene/shot/ranges/FPS/settings/engine/device/budget, or existing job; exact candidates for verification → preflight, native job or complete ordered independently decoded frame evidence | Delegate renderer; inspect outputs independently | +| `ExportService.export`, `.verify` | Verified sources, target/codec/options or existing export and expected counts → outputs, format losses and independent verification | Stage/publish owned output; preserve masters | +| `QAService.validate`, `.record_review` | Artifacts/checks/thresholds or identified reviewer/scope/decisions/evidence → measurements/unmeasured findings or separate receipt | Append evidence/reviews; never overwrite history | +| `RevisionService.plan`, `.apply`, `.impact` | Original instruction/locks/budget/capabilities; patch/expected revision/authority; patch/graph → plan, immutable child revision or conservative changed/stale/preserved sets | Plan/impact read-only; apply atomic | + +`validate_method_request` and `validate_method_result` enforce method identity. +Supplying the request to result validation binds the exact canonical input +digest and checks operation-specific schema/template, resolution cardinality, +evaluation sample, native job identity, render inputs/counts, export target, +review identity/decisions/evidence and revision parent consistency. An adapter +still owns transactions, replay, leases, actual execution and source decoding. + +## Failure, authorization and evidence + +The result status enum is `succeeded`, `partial`, `blocked_capability`, +`blocked_budget`, `awaiting_external_result`, `awaiting_review`, `failed`, +`canceled`. Non-success requires diagnostics; only succeeded/partial may carry +a typed value. Native durable job states remain distinct. Successful submission +is queued/running, not a completed production. Failed/blocked/canceled results +cannot smuggle a success payload. + +Unknown measurements and prices are null with explanations, never invented +zeroes. Network/paid contexts require an explicit policy reference; paid work +also requires a reservation. Credentials have no schema field and unknown +fields are rejected. Deadline format includes a timezone; expiry/admission is +the capability/scheduler owner's responsibility, not a claim made by parsing. + +The nine milestone states remain independent: planning, assets, scene, motion, +rendering, video, native editability, visual QA and delivery. A passed milestone +needs evidence. Automated authority cannot pass visual QA. A complete project +requires every milestone passed, but declared evidence is not authenticated by +this foundation; authoritative QA/review adapters must validate it. An assistant +receipt never becomes human approval by schema admission. + +## Reproduction and acceptance mapping + +```bash +python scripts/director_contracts.py --check +python scripts/generate_schemas.py --check +python scripts/director_contracts.py --bundle examples/director-contracts/contracts.json --root . +PYTHONPATH=scripts:tests python -m unittest test_director_contracts -v +``` + +The fixture bundle contains six core documents and one request/result pair for +each of the 32 methods. All files are self-authored synthetic contract examples. +Their success-shaped results exist to exercise types, not to assert that +providers, frames, payments, approvals or native jobs ran. + +| #24 acceptance | Implementation and verification boundary | +| --- | --- | +| Six canonical document families plus ArtifactRef/Context/Result/Diagnostic/Usage/Milestone | Authoritative closed definitions; complete synthetic roundtrips | +| Generated schemas, strict versions/IDs/paths/hashes/finite values/references | Shared decoder, schema parity, semantic negatives and exact-byte bundle checks | +| Every mandatory method, status and side effect | 32-method independent enumeration; strict inputs/output values; typed failures and request/result matching | +| Exact clock, common coordinates, versions and independent success/review | Rational arithmetic, shot coverage, explicit position conversion, exact references and separate milestone authorities | + +The corresponding test receipt records fresh local commands and results. Native +provider/render execution, a persistent Director runtime, cancellation behavior, +visual quality, P1/P2/P3 demonstrations and hosted checks are outside #24's +contract-only evidence. No local pass establishes those later gates. diff --git a/scripts/director_contracts.py b/scripts/director_contracts.py new file mode 100644 index 0000000..787c880 --- /dev/null +++ b/scripts/director_contracts.py @@ -0,0 +1,490 @@ +"""Validate Director v1 contracts without invoking planning or production. + +Schema admission is not native asset acceptance. Optional exact-byte closure is +read-only and verifies regular project files; native owners still validate their +formats, rendering and review evidence. +""" +from __future__ import annotations + +import argparse +from copy import deepcopy +from datetime import datetime, timezone +from fractions import Fraction +from functools import lru_cache +import hashlib +import json +import math +import os +from pathlib import Path +import stat +import unicodedata + +from director_schema import DOCUMENTS, METHODS, MILESTONES, definitions, schemas +from rig_contracts import COORDINATES +from rig_errors import RigError, decode_json, finite_json, object_hash, portable_name, require + +MAX_BYTES = 32 * 1024**2 +MAX_FILES = 4096 +MAX_TOTAL_BYTES = 1024**3 +ARTIFACT_KEYS = frozenset(definitions()['artifact-ref']['properties']) + + +def _require(condition, code, message): + require(condition, 'DIRECTOR_' + code, message, stage='director') + + +def _integer(value, name, minimum=0): + # JSON Schema integer admits 24.0; normalize only at arithmetic boundaries, + # retaining the original record and exact-byte digest without rewriting it. + _require(isinstance(value,(int,float)) and not isinstance(value, bool) and + minimum <= value <= 2_000_000_000 and math.isfinite(value) and value==int(value), + 'TIME', name + ' must be a bounded integer.') + return int(value) + + +def _fps(value): + _require(isinstance(value, dict) and set(value)=={'numerator','denominator'},'TIME','Invalid rational FPS.') + a,b=(_integer(value[k],k,1) for k in ('numerator','denominator')) + _require(a<=1_000_000 and b<=1_000_000,'TIME','FPS exceeds the rational bound.') + return Fraction(a,b) + + +def frame_timestamp(frame, fps): + """Exact seconds at a frame boundary (terminal boundaries are permitted).""" + return Fraction(_integer(frame,'frame'),1)/_fps(fps) + + +def duration_frames(seconds, fps): + """Convert an exact rational duration to integral frames; never round.""" + _require(isinstance(seconds,(int,Fraction,dict)) and not isinstance(seconds,bool), + 'TIME','Use exact integer or rational seconds.') + try: + if isinstance(seconds,dict): + _require(set(seconds)=={'numerator','denominator'},'TIME','Invalid rational duration.') + seconds=Fraction(_integer(seconds['numerator'],'duration'),_integer(seconds['denominator'],'denominator',1)) + value=Fraction(seconds)*_fps(fps) + except (ValueError,TypeError,ZeroDivisionError) as exc: + raise RigError('DIRECTOR_TIME','Invalid rational duration.',stage='director') from exc + _require(value.denominator==1,'TIME','Duration is not an integral frame count.') + return _integer(value.numerator,'duration frames',1) + + +def convert_position(position, source='canonical', target='blender'): + """Explicit basis conversion from the established rig authority. + + +Y-up canonical (x,y,z) <-> Blender (x,-z,y); units remain meters. + This position adapter does not replace quaternion/TRS rig math. + """ + _require(isinstance(position,(list,tuple)) and len(position)==3 and + all(isinstance(x,(int,float)) and not isinstance(x,bool) and abs(x)<=1e9 + and math.isfinite(x) for x in position),'COORDINATES','Expected a finite three-vector.') + _require(source in ('canonical','blender') and target in ('canonical','blender'), + 'COORDINATES','Unknown coordinate basis.') + x,y,z=position + if source==target:return [x,y,z] + return [x,-z,y] if source=='canonical' else [x,z,-y] + + +def artifact_references(value): + if isinstance(value,dict): + if set(value)==ARTIFACT_KEYS: + yield value + for child in value.values():yield from artifact_references(child) + elif isinstance(value,list): + for child in value:yield from artifact_references(child) + + +def _walk(value): + yield value + if isinstance(value,dict): + for child in value.values():yield from _walk(child) + elif isinstance(value,list): + for child in value:yield from _walk(child) + + +def _unique(items, name, key='id'): + ids=[x[key] if isinstance(x,dict) else x for x in items] + _require(len(ids)==len(set(ids)),'DUPLICATE','Duplicate '+name+'.') + return set(ids) + + +def _range(value): + _require(value['end_frame']>value['start_frame'],'TIME','Frame range must be nonempty and half-open.') + + +def _semantics(value): + for x in _walk(value): + if not isinstance(x,dict):continue + if set(x)=={'start_frame','end_frame'}:_range(x) + if set(x)=={'numerator','denominator'}: + _require(x['denominator']>0,'TIME','Rational denominator must be positive.') + if set(x)=={'value','explanation'}: + _require(x['value'] is not None or bool(x['explanation']),'USAGE','Unknown measurements need an explanation.') + if 'classification' in x and 'measurement_source' in x: + if x['classification']=='unavailable': + _require(all(x[k]['value'] is None for k in ('provider_calls','input_tokens','output_tokens', + 'cpu_seconds','gpu_seconds','storage_bytes','amount')),'USAGE','Unavailable usage cannot declare measurements.') + _require((x['currency'] is None)==(x['amount']['value'] is None),'USAGE','Currency and amount must be known together.') + for name in ('provider_calls','input_tokens','output_tokens','storage_bytes'): + amount=x[name]['value'] + _require(amount is None or float(amount).is_integer(),'USAGE','Count measurements must be integers.') + if 'policy' in x and 'project_revision_sha256' in x: + policy=x['policy'] + datetime.fromisoformat(x['deadline'].replace('Z','+00:00')) + _require(datetime.fromisoformat(x['deadline'].replace('Z','+00:00')).tzinfo is not None, + 'CONTEXT','Deadline must include a timezone.') + if policy['network']=='allow-configured' or policy['paid']!='deny': + _require(policy['policy_ref'] is not None,'AUTHORIZATION','Network/paid operations require an explicit policy reference.') + if policy['paid']!='deny': + _require(x['budget_reservation_id'] is not None,'AUTHORIZATION','Paid operations require a budget reservation.') + if 'capabilities' in x and 'expires_at' in x: + _unique(x['capabilities'],'capability operations','operation') + for capability in x['capabilities']: + _require(not capability['execution_verified'] or + (capability['status']=='available' and bool(capability['probe_evidence'])), + 'EVIDENCE','Execution verification requires available capability and probe evidence.') + if 'nodes' in x and 'edges' in x and 'critical_path_seconds' in x: + nodes=_unique(x['nodes'],'graph node IDs') + graph={node:set() for node in nodes} + for edge in x['edges']: + _require(edge['source'] in nodes and edge['target'] in nodes,'REFERENCE','Dangling graph edge.') + graph[edge['source']].add(edge['target']) + target=next(n for n in x['nodes'] if n['id']==edge['target']) + _require(edge['artifact'] in target['inputs'],'REFERENCE','Graph edge must pin an exact target input.') + _acyclic(graph,'graph') + if 'state' in x and 'native_workers' in x: + _require(x['progress'] is None or x['progress']<=1,'JOB','Progress must be within zero and one.') + _require(x['state']!='completed' or (x['artifacts'] and x['native_workers']), + 'EVIDENCE','Completed native jobs need output and worker evidence.') + if 'frames' in x and 'backend' in x and 'frame_range' in x: + _range(x['frame_range']) + start,end=x['frame_range']['start_frame'],x['frame_range']['end_frame'] + _require(len(x['frames'])==end-start and + all(frame['index']==start+offset for offset,frame in enumerate(x['frames'])), + 'FRAME','Verified frames must be ordered, complete and unique.') + for frame in x['frames']: + actual=Fraction(_integer(frame['timestamp']['numerator'],'timestamp numerator'), + _integer(frame['timestamp']['denominator'],'timestamp denominator',1)) + _require(actual==frame_timestamp(frame['index'],x['frame_rate']) and frame['resolution']==x['resolution'], + 'FRAME','Frame time or resolution does not match the pinned request.') + if 'verified' in x and 'format_losses' in x: + _require(not x['verified'] or (x['outputs'] and x['verification']),'EVIDENCE','Verified exports need actual output and verification references.') + if x['verified'] and x['target'] in ('mp4','webm'): + _require(x['audio_streams']==0 and x['decoded_frames'] is not None and x['decoded_frames']>0, + 'VIDEO','Verified video must have decoded frames and zero audio streams.') + if 'ready' in x and 'missing_capabilities' in x: + _require(not x['ready'] or (not x['missing_capabilities'] and x['evidence'] and + not any(item['severity']=='error' for item in x['diagnostics'])), + 'EVIDENCE','Ready preflight cannot have missing capabilities/errors and requires probe evidence.') + if 'name' in x and 'authority' in x and 'scope' in x and x['name'] in MILESTONES: + _require(x['status']!='passed' or bool(x['evidence']),'EVIDENCE','Passed milestones require evidence.') + _require(not (x['name']=='visual_qa' and x['status']=='passed' and x['authority']=='automated'), + 'REVIEW','Automated validation cannot grant visual approval.') + kind=value['kind'] + if kind=='director-creative-brief': + _unique(value['characters'],'character IDs') + _require(duration_frames(value['duration'],value['frame_rate'])>0,'TIME','Empty brief.') + _require(Fraction(*[int(n) for n in value['resolution']])==_fps(value['aspect_ratio']), + 'TIME','Aspect ratio differs from resolution.') + elif kind=='director-story-plan': + _unique(value['beats'],'beat IDs') + _require(all(b['actions'] or b['composition'] for b in value['beats']),'STORY','Every beat needs visible action or composition.') + elif kind=='director-shot-plan': + _unique(value['shots'],'shot IDs') + cursor=0 + for shot in value['shots']: + _range(shot) + _unique(shot['actors'],'shot actor IDs') + _unique(shot['props'],'shot prop IDs') + _require(not set(shot['actors']) & set(shot['props']),'DUPLICATE','Actor and prop identities must be distinct.') + overlap=shot['transition']['overlap_frames'] + _require(shot['transition']['kind']=='dissolve' or overlap==0,'TIME','Cuts cannot overlap.') + _require(overlap0 and output['triangles']>0, + 'EVIDENCE','A successful asset build needs actual mesh references and nonzero geometry counts.') + elif method=='RigMotionAdapter.prepare': + _require(output['deformation_checks'],'EVIDENCE','Successful rig/motion preparation needs deformation evidence.') + elif method=='SceneAssembler.assemble': + _require(output['scenes'],'EVIDENCE','Successful assembly needs an authoritative scene reference.') + elif method in ('ExportService.export','ExportService.verify'): + _require(output['verified'] and output['outputs'] and output['verification'], + 'EVIDENCE','Successful export needs actual outputs and independent verification references.') + + +def _acyclic(graph,label): + # Iterative traversal permits the full bounded graph without recursion limits. + visiting,done=set(),set() + for origin in graph: + stack=[(origin,False)] + while stack: + node,leaving=stack.pop() + if leaving: + visiting.remove(node);done.add(node) + elif node not in done: + _require(node not in visiting,'CYCLE','Cyclic '+label+' dependencies.') + visiting.add(node);stack.append((node,True)) + stack.extend((child,False) for child in graph.get(node,())) + + +def validate_document(value): + """Validate structure and semantics; no files are read or effects invoked.""" + finite_json(value) + error=next(_validator().iter_errors(value),None) + _require(error is None,'SCHEMA',error.message[:2048] if error else '') + _semantics(value) + refs=list(artifact_references(value)) + paths={};identities={};aliases={} + for item in refs: + path=portable_name(item['path']) + _require(path==unicodedata.normalize('NFC',path),'PATH','Paths must use Unicode NFC.') + alias=path.casefold() + _require(alias not in aliases or aliases[alias]==path,'PATH','Case-colliding paths.') + identity=(item['artifact_id'],item['semantic_version']) + _require(path not in paths or paths[path]==item,'REFERENCE','Conflicting exact references for a path.') + _require(identity not in identities or identities[identity]==item,'REFERENCE','Conflicting exact artifact identity.') + paths[path]=item;identities[identity]=item;aliases[alias]=path + _require(len(paths)<=MAX_FILES and sum(r['byte_size'] for r in paths.values())<=MAX_TOTAL_BYTES, + 'LIMIT','Artifact closure exceeds bounded storage.') + return value + + +@lru_cache(maxsize=1) +def _validator(): + from jsonschema import Draft202012Validator + return Draft202012Validator(schemas()['director.schema.json'],format_checker=Draft202012Validator.FORMAT_CHECKER) + + +def load_document(path): + return validate_document(decode_json(_read_json_file(path))) + + +def _read_json_file(path): + """Bound and classify the opened input before reading, including CLI inputs.""" + try: + flags=os.O_RDONLY|getattr(os,'O_NOFOLLOW',0)|getattr(os,'O_NONBLOCK',0) + with os.fdopen(os.open(path,flags),'rb') as stream: + info=os.fstat(stream.fileno()) + _require(stat.S_ISREG(info.st_mode),'PATH','JSON input must be a regular file.') + _require(info.st_size<=MAX_BYTES,'LIMIT','Document exceeds 32 MiB.') + data=stream.read(MAX_BYTES+1) + _require(len(data)<=MAX_BYTES,'LIMIT','Document exceeds 32 MiB.') + return data + except OSError as exc: + raise RigError('DIRECTOR_PATH','JSON input is missing or unsafe.',stage='director') from exc + + +def _read_artifact(root, artifact): + """Open every path component relative to the root; reject links and devices.""" + root=Path(root) + # dir_fd/O_NOFOLLOW protects reads even if an untrusted child is exchanged. + _require(hasattr(os,'O_NOFOLLOW') and os.open in os.supports_dir_fd, + 'PLATFORM','Secure descriptor-relative artifact reads are unavailable on this platform.') + flags=os.O_RDONLY|os.O_NOFOLLOW|getattr(os,'O_NONBLOCK',0) + descriptors=[] + try: + fd=os.open(root,flags|getattr(os,'O_DIRECTORY',0));descriptors.append(fd) + parts=artifact['path'].split('/') + for part in parts[:-1]: + fd=os.open(part,flags|getattr(os,'O_DIRECTORY',0),dir_fd=fd);descriptors.append(fd) + _require(stat.S_ISDIR(os.fstat(fd).st_mode),'PATH','Artifact parent is not a directory.') + fd=os.open(parts[-1],flags,dir_fd=fd);descriptors.append(fd) + _require(stat.S_ISREG(os.fstat(fd).st_mode),'PATH','Artifact must be a regular file, never a directory/link/device.') + with os.fdopen(os.dup(fd),'rb') as stream:data=stream.read(int(artifact['byte_size'])+1) + _require(len(data)==artifact['byte_size'] and hashlib.sha256(data).hexdigest()==artifact['sha256'], + 'HASH','Artifact bytes differ from exact reference: '+artifact['path']) + return data + except OSError as exc: + raise RigError('DIRECTOR_PATH','Artifact is missing or unsafe: '+artifact['path'],stage='director') from exc + finally: + for fd in reversed(descriptors):os.close(fd) + + +def validate_bundle(documents, root=None): + """Validate a bounded document set, links and optionally all exact file bytes. + + Without root this is structural/reference validation, never byte acceptance. + Native format validation and production execution belong to their owners. + """ + _require(isinstance(documents,list) and 0"|?*\x00-\x1f\x7f\ud800-\udfff]*' + r'[^/\\:<>"|?*\x00-\x1f\x7f\ud800-\udfff .]') + path=dict(type='string',minLength=1,maxLength=1024,pattern='^'+component+'(?:/'+component+')*'+end) + version = dict(type='string', pattern=r'^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?![\s\S])') + file_ref = obj(dict(artifact_id=ID, kind=ID, schema_version=dict(type='integer', minimum=1, maximum=999), + semantic_version=version, path=path, sha256=HASH, + byte_size=dict(type='integer', minimum=0, maximum=256*1024**2), + media_type=dict(type='string', minLength=1, maxLength=128), + provenance_ref=nullable(ref('artifact-ref')), fixture=dict(type='boolean'), + dependencies=arr(ref('artifact-ref'), 0, 128))) + diagnostic = obj(dict(code=ID, severity={'enum': ['info', 'warning', 'error']}, stage=ID, + entity_id=nullable(ID), field_path=TEXT, expected=nullable(TEXT), + observed=nullable(TEXT), retryable=dict(type='boolean'), + recommended_action=TEXT, evidence=artifacts)) + measurement = obj(dict(value=nullable(NUMBER), explanation=nullable(TEXT))) + usage = obj(dict(classification={'enum': ['actual', 'estimated', 'unavailable']}, + provider_calls=measurement, input_tokens=measurement, output_tokens=measurement, + cpu_seconds=measurement, gpu_seconds=measurement, storage_bytes=measurement, + currency=nullable(dict(type='string', pattern=r'^[A-Z]{3}(?![\s\S])')), + amount=measurement, measurement_source=TEXT)) + policy = obj(dict(network={'enum': ['deny', 'allow-configured']}, providers=ids, + paid={'enum': ['deny', 'bounded', 'allow-unknown-price']}, + policy_ref=nullable(ref('artifact-ref')))) + context = obj(dict(project_id=ID, project_revision_sha256=HASH, request_id=ID, idempotency_key=ID, + attempt_id=ID, capability_snapshot_sha256=HASH, budget_reservation_id=nullable(ID), + cancellation_token=ID, deadline=dict(type='string', format='date-time', maxLength=64), + policy=policy)) + disposition = {'enum': ['reusable', 'adaptable', 'missing', 'incompatible', 'unreviewed', 'unavailable']} + review_state = {'enum': ['unreviewed', 'approved', 'rejected', 'stale', 'not-applicable']} + status = {'enum': STATUSES} + requirements = obj(dict(explicit=texts, inferred=texts, locked=texts, ambiguities=texts, assumptions=texts)) + budget = obj(dict(max_provider_calls=INTEGER, max_cpu_seconds=NUMBER, max_gpu_seconds=NUMBER, + max_storage_bytes=INTEGER, max_memory_bytes=INTEGER, + currency=nullable(TEXT), max_amount=nullable(NUMBER), policy_ref=nullable(ref('artifact-ref')))) + refs = lambda **extra: dict(artifacts=artifacts, **extra) + fields = { + 'creative-brief': dict(project_id=ID, request_id=ID, original_prompt=TEXT, requirements=requirements, + duration=rational, frame_rate=fps, resolution=size, aspect_ratio=fps, + characters=ids, object_count=INTEGER, locations=texts, actions=texts, mood=TEXT, style=TEXT, + content_restrictions=texts, outputs=ids, budget=budget, references=artifacts, provenance=artifacts), + 'story-plan': dict(brief=ref('artifact-ref'), logline=TEXT, premise=TEXT, beginning=TEXT, middle=TEXT, + end=TEXT, emotional_progression=texts, objectives=texts, discoveries=texts, spatial_continuity=texts, + motifs=texts, establishing_information=texts, outcome=TEXT, silent=dict(type='boolean'), + communication_methods=texts, beats=arr(obj(dict(id=ID, description=TEXT, actions=texts, + composition=texts)), 1, 256)), + 'shot-plan': dict(story=ref('artifact-ref'), duration_frames=INTEGER, frame_rate=fps, + shots=arr(obj(dict(id=ID, scene_id=ID, beat_ids=ids, start_frame=INTEGER, end_frame=INTEGER, + duration_frames=INTEGER, camera=ref('artifact-ref'), actors=ids, props=ids, actions=texts, + markers=arr(obj(dict(id=ID, frame=INTEGER, target=ID, action=TEXT)), 0, 256), + environment=ref('artifact-ref'), lighting=ref('artifact-ref'), composition=texts, + entry_constraints=texts, exit_constraints=texts, + transition=obj(dict(kind={'enum': ['cut', 'dissolve']}, overlap_frames=INTEGER)), + required_assets=artifacts, dependencies=artifacts, render_settings=ref('artifact-ref'), + qa_requirements=texts, review=review_state)), 1, 256)), + 'asset-spec': dict(logical_id=ID, asset_type=ID, semantic_role=TEXT, visual_characteristics=texts, + capabilities=ids, source_policy=policy, candidates=artifacts, formats=ids, scale_meters=positive, + coordinates=coordinates, materials=texts, textures=texts, polygon_budget=INTEGER, + memory_budget=INTEGER, licensing=TEXT, attribution=TEXT, dependencies=artifacts, + review=review_state, substitutions=texts, generation_required=dict(type='boolean')), + 'character-identity': dict(character_id=ID, semantic_version=version, canonical_design=ref('artifact-ref'), + geometry=TEXT, silhouette=TEXT, proportions=arr(obj(dict(name=ID, ratio=positive)), 0, 128), + scale_meters=positive, palette=texts, materials=artifacts, markings=texts, asymmetries=texts, + costume=texts, accessories=texts, rig=nullable(ref('artifact-ref')), + bone_mapping=arr(obj(dict(role=ID, bone=ID)), 0, 256), animation_capabilities=ids, + expression_capabilities=ids, viewpoints=ids, provenance=artifacts, + approved_variations=texts, forbidden_transformations=texts), + 'project': dict(original_request=ref('artifact-ref'), brief=ref('artifact-ref'), story=ref('artifact-ref'), + shot_plan=ref('artifact-ref'), asset_registry=ref('artifact-ref'), characters=artifacts, + scenes=artifacts, timelines=artifacts, render_configuration=ref('artifact-ref'), + execution_graph=nullable(ref('artifact-ref')), budget_ledger=nullable(ref('artifact-ref')), + acquisition_bindings=artifacts, dependencies=artifacts, reviews=artifacts, exports=artifacts, + inventory=artifacts, status={'enum': ['draft', 'blocked', 'in-progress', 'complete']}, + milestones=arr(ref('milestone'), 9, 9), coordinates=coordinates), + } + milestone = obj(dict(name={'enum': MILESTONES}, status={'enum': ['unverified', 'blocked', 'passed', 'failed']}, + evidence=artifacts, diagnostics=arr(diagnostic, 0, 128), + authority={'enum': ['automated', 'assistant', 'human', 'external']}, + scope=TEXT)) + inputs = { + 'probe': dict(operations=ids, local_probes=ids, provider_configuration_refs=artifacts), + 'planning': dict(stage={'enum': ['brief', 'story', 'shots', 'revision']}, original_prompt=TEXT, + context_refs=artifacts, output_schema_id=ID, output_schema_version={'const': 1}, + locked_constraints=texts, template_sha256=HASH, max_repairs=dict(type='integer',minimum=0,maximum=3)), + 'resolve-assets': dict(specs=artifacts, registry_snapshot=ref('artifact-ref'), reuse_policy=TEXT, license_policy=TEXT), + 'acquisition': dict(spec=ref('artifact-ref'), input_sha256=HASH, binding_id=nullable(ID), claim_id=nullable(ID), + expected_state=ID, provider_request_id=nullable(ID), candidates=artifacts, + diagnostics=arr(diagnostic,0,128)), + 'asset-build': dict(spec=ref('artifact-ref'), inputs=artifacts, capability=ID, provider=nullable(ID), + seed=nullable(INTEGER), limits=budget, acquisition_binding=ref('artifact-ref')), + 'rig-motion': dict(mesh=ref('artifact-ref'), identity=ref('artifact-ref'), required_anatomy=ids, + actions=ids, landmarks=artifacts, supplied_rig=nullable(ref('artifact-ref')), + motions=artifacts, contact_requirements=texts), + 'scene-assembly': dict(shot_plan=ref('artifact-ref'), story_plan=ref('artifact-ref'), assets=artifacts, + rig_motion=artifacts, layout_requirements=texts, look_requirements=texts), + 'evaluate-frame': dict(scene=ref('artifact-ref'), shot=ref('artifact-ref'), frame=rational, + frame_rate=fps, dependency_snapshot=ref('artifact-ref')), + 'compile': dict(plan=ref('artifact-ref'), capabilities=ref('artifact-ref'), resolution=ref('artifact-ref'), budget=budget), + 'reservation': dict(operation=ID, estimated_bound=usage, retry_allowance=INTEGER, + rate_evidence=artifacts, expected_ledger_revision=HASH), + 'settlement': dict(reservation_id=ID, actual_usage=usage, expected_ledger_revision=HASH, + outcome={'enum':['complete','failed','uncertain']}, evidence=artifacts), + 'release': dict(reservation_id=ID, expected_ledger_revision=HASH, + outcome={'enum':['complete','failed']}, evidence=artifacts), + 'submit': dict(graph=ref('artifact-ref')), + 'job': dict(job_id=ID, expected_revision=HASH, request_id=ID), + 'resume': dict(job_id=ID, expected_revision=HASH, request_id=ID, dependency_snapshot=ref('artifact-ref'), + ownership_evidence=artifacts), + 'render': dict(scene_snapshot=ref('artifact-ref'), shot=ref('artifact-ref'), frame_ranges=arr(interval,1,256), + frame_rate=fps, evaluated_state_schema=ID, engine=ID, device_policy=TEXT, + settings=ref('artifact-ref'), budget=ref('artifact-ref')), + 'render-verification': dict(job=ref('artifact-ref'), scene_snapshot=ref('artifact-ref'), frames=artifacts, + frame_range=interval, frame_rate=fps, resolution=size), + 'export': dict(sources=artifacts, target={'enum':['native_blend','glb','gltf','png_sequence','mp4','webm','archive']}, + codec=nullable(ID), options=arr(obj(dict(name=ID,value=TEXT)),0,128), verification=artifacts), + 'export-verification': dict(export=ref('artifact-ref'), sources=artifacts, expected_frames=nullable(INTEGER), + frame_rate=nullable(fps), zero_audio_streams=dict(type='boolean')), + 'qa': dict(artifacts=artifacts, check_profile=ref('artifact-ref'), + thresholds=arr(obj(dict(name=ID,value=NUMBER,unit=TEXT)),0,128)), + 'review': dict(reviewer_id=ID, authority={'enum':['assistant','human','external']}, scope=texts, + decisions=arr(obj(dict(dimension=ID,verdict={'enum':['approved','rejected','unreviewed']}, + rationale=TEXT)),1,128), evidence=artifacts), + 'revision-plan': dict(instruction=TEXT, current_project=ref('artifact-ref'), locked_constraints=texts, + budget=ref('artifact-ref'), capabilities=ref('artifact-ref')), + 'revision-apply': dict(patch=ref('artifact-ref'), expected_revision=HASH, authorization=ref('artifact-ref')), + 'revision-impact': dict(patch=ref('artifact-ref'), graph=ref('artifact-ref')), + } + outputs = { + 'capability-snapshot': dict(capabilities=arr(obj(dict(operation=ID, version=nullable(TEXT), + status={'enum':['available','unavailable','untested']}, limits=budget, + probe_evidence=artifacts, execution_verified=dict(type='boolean'))),0,256), + expires_at=dict(type='string',format='date-time'), digest=HASH), + 'planning-artifact': dict(content=ref('artifact-ref'), assumptions=texts, provider=nullable(ID), + model=nullable(TEXT), template_sha256=HASH, raw_response=ref('artifact-ref'), repair_history=artifacts), + 'resolution-plan': dict(requirements=arr(obj(dict(spec=ref('artifact-ref'),disposition=disposition, + candidates=artifacts,reasons=texts,conversions=texts,capabilities=ids,budget=budget)),0,256)), + 'acquisition-state': dict(binding=ref('artifact-ref'),claim_id=nullable(ID),native_state=ID, + provider_request_id=nullable(ID),outcome={'enum':['known','uncertain']},receipt=nullable(ref('artifact-ref'))), + 'asset-build-result': refs(meshes=artifacts,materials=artifacts,bounds=obj(dict(minimum=arr(num,3,3),maximum=arr(num,3,3))), + vertices=INTEGER,triangles=INTEGER,coordinates=coordinates,uncertainty=texts, + origin={'enum':['imported','generated','procedural-fixture','authored']},backend_receipt=ref('artifact-ref')), + 'rig-motion-bundle': refs(rig=ref('artifact-ref'),bindings=artifacts,clips=artifacts, + deformation_checks=artifacts,unsupported_actions=ids,contact_diagnostics=arr(diagnostic,0,128)), + 'scene-bundle': refs(scenes=artifacts,node_ids=ids,actor_ids=ids,cameras=artifacts,lights=artifacts, + materials=artifacts,timelines=artifacts,spatial_feasibility=ref('artifact-ref'),native_exports=artifacts), + 'evaluated-frame': dict(scene=ref('artifact-ref'),frame=rational,node_transforms=artifacts, + bone_matrices=artifacts,skinning_matrices=artifacts,morph_weights=artifacts,camera_states=artifacts, + light_states=artifacts,material_states=artifacts,contacts=artifacts,prop_ownership=artifacts, + active_clips=artifacts,diagnostics=arr(diagnostic,0,128),digest=HASH), + 'execution-graph': dict(nodes=arr(obj(dict(id=ID,operation={'enum':list(METHODS)},inputs=artifacts, + output_schema=ID,resource_class=ID,cache_key=HASH,gates=ids,native_owner=ID)),1,1024), + edges=arr(obj(dict(source=ID,target=ID,artifact=ref('artifact-ref'))),0,4096), + critical_path_seconds=nullable(NUMBER)), + 'budget-receipt': dict(reservation_id=ID,ledger_revision=HASH,remaining=budget, + state={'enum':['reserved','settled','released','uncertain']},evidence=artifacts), + 'job-snapshot': dict(job_id=ID,revision=HASH,state={'enum':['queued','running','partial','blocked','failed','canceled','completed']}, + nodes=artifacts,attempts=INTEGER,native_workers=artifacts,claims=artifacts,progress=nullable(NUMBER), + reservations=ids,diagnostics=arr(diagnostic,0,128),artifacts=artifacts), + 'preflight-report': dict(ready=dict(type='boolean'),missing_capabilities=ids,diagnostics=arr(diagnostic,0,128),evidence=artifacts), + 'verified-render-result': dict(scene_snapshot=ref('artifact-ref'),backend=ref('artifact-ref'), + frame_range=interval,frame_rate=fps,resolution=size, + frames=arr(obj(dict(index=INTEGER,timestamp=rational,resolution=size,artifact=ref('artifact-ref'), + decode_evidence=ref('artifact-ref'),dependency_snapshot=ref('artifact-ref'))),1,100000)), + 'export-receipt': dict(target={'enum':['native_blend','glb','gltf','png_sequence','mp4','webm','archive']}, + outputs=artifacts,format_losses=texts,verification=artifacts,verified=dict(type='boolean'), + decoded_frames=nullable(INTEGER),audio_streams=nullable(INTEGER)), + 'qa-report': dict(measured=arr(obj(dict(name=ID,value=NUMBER,unit=TEXT,evidence=artifacts)),0,128), + unmeasured=texts,findings=arr(diagnostic,0,128),status={'enum':['passed','failed','partial','unverified']}), + 'review-receipt': inputs['review'], + 'revision-plan': dict(patch=ref('artifact-ref'),changed_ids=ids,assumptions=texts,diagnostics=arr(diagnostic,0,128)), + 'project-revision': dict(project=ref('artifact-ref'),parent=ref('artifact-ref'),changed_ids=ids, + stale_descendants=artifacts,preserved_outputs=artifacts,diagnostics=arr(diagnostic,0,128)), + 'impact-report': dict(changed_ids=ids,stale_descendants=artifacts,preserved_outputs=artifacts, + diagnostics=arr(diagnostic,0,128)), + } + defs = dict(**{'artifact-ref':file_ref, 'operation-context':context,'diagnostic':diagnostic,'usage':usage, + 'fps':fps,'rational':rational,'milestone':milestone,'budget':budget}) + defs.update({name:document(name, properties) for name,properties in fields.items()}) + defs.update({'input-'+name:obj(properties) for name,properties in inputs.items()}) + defs.update({'output-'+name:obj(properties) for name,properties in outputs.items()}) + requests, results = [], [] + for method,(request,response,effects) in METHODS.items(): + key=method.replace('.','-') + defs['request-'+key] = obj(dict(schema_version={'const':1},kind={'const':'director-request'}, + method={'const':method},context=ref('operation-context'),input=ref('input-'+request))) + defs['result-'+key] = obj(dict(schema_version={'const':1},kind={'const':'director-result'}, + method={'const':method},status=status,operation_id=ID,input_digest=HASH, + value=nullable(ref('output-'+response)),artifacts=artifacts, + diagnostics=arr(diagnostic,0,128),usage=usage,provenance_receipts=artifacts)) + requests.append(ref('request-'+key));results.append(ref('result-'+key)) + defs['request']={'oneOf':requests};defs['result']={'oneOf':results} + return defs + + +DOCUMENTS = ['creative-brief','story-plan','shot-plan','asset-spec','character-identity','project','request','result'] + + +def definitions(): + """Return isolated definitions; caller mutation never changes admission.""" + return deepcopy(_definitions()) + + +def schemas(): + return {'director.schema.json':dict( + **{'$schema':'https://json-schema.org/draft/2020-12/schema'}, + title='Creative Studio Director v1 contracts', + description='Structural admission only; runtime semantics and exact-byte closure are separate checks.', + **{'$defs':definitions(), 'oneOf':[ref(name) for name in DOCUMENTS]})} diff --git a/scripts/generate_schemas.py b/scripts/generate_schemas.py index 9b4d3ae..9082191 100644 --- a/scripts/generate_schemas.py +++ b/scripts/generate_schemas.py @@ -55,11 +55,13 @@ def build(): from decomposition_spec import schemas as decomposition_schemas from rig_contracts import schemas as rig_schemas from model3d_contracts import schemas as model3d_schemas + from director_contracts import schemas as director_schemas return {ROOT/'profiles/profile.schema.json':profile,ROOT/'profiles/asset-inputs.schema.json':inputs, ROOT/'profiles/style-catalog.schema.json':catalog_schema(), **{ROOT / 'profiles' / name: value for name, value in decomposition_schemas().items()}, **{ROOT / 'profiles' / name: value for name, value in rig_schemas().items()}, - **{ROOT / 'profiles' / name: value for name, value in model3d_schemas().items()}} + **{ROOT / 'profiles' / name: value for name, value in model3d_schemas().items()}, + **{ROOT / 'profiles' / name: value for name, value in director_schemas().items()}} if __name__=='__main__': diff --git a/tests/test_director_contracts.py b/tests/test_director_contracts.py new file mode 100644 index 0000000..d64fa4e --- /dev/null +++ b/tests/test_director_contracts.py @@ -0,0 +1,573 @@ +"""Independent admission and compatibility checks for Director P0 contracts. + +The examples are engineering contract fixtures, never provider or render proof. +""" +from copy import deepcopy +from fractions import Fraction +import hashlib +import json +import os +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest + +import jsonschema + +import director_contracts as dc + + +ROOT = Path(__file__).resolve().parents[1] +FIXTURE = ROOT / 'examples/director-contracts/contracts.json' + +# Enumerated independently from issue #18's mandatory-interface addendum. +REQUIRED_METHODS = { + 'CapabilityRegistry.probe', 'PlanningProvider.generate_structured', + 'AssetResolver.resolve', 'AcquisitionGateway.prepare', + 'AcquisitionGateway.claim', 'AcquisitionGateway.ingest', + 'AcquisitionGateway.fail', 'AcquisitionGateway.reconcile', + 'AssetBuildAdapter.build', 'RigMotionAdapter.prepare', + 'SceneAssembler.assemble', 'FrameEvaluator.evaluate', + 'GraphCompiler.compile', 'BudgetLedger.reserve', 'BudgetLedger.settle', + 'BudgetLedger.release', 'ExecutionService.submit', 'ExecutionService.status', + 'ExecutionService.resume', 'ExecutionService.cancel', + 'RenderAdapter.preflight', 'RenderAdapter.submit', 'RenderAdapter.status', + 'RenderAdapter.cancel', 'RenderAdapter.verify', 'ExportService.export', + 'ExportService.verify', 'QAService.validate', 'QAService.record_review', + 'RevisionService.plan', 'RevisionService.apply', 'RevisionService.impact', +} + + +class DirectorContractTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.documents = json.loads(FIXTURE.read_text(encoding='utf-8')) + + def sample(self, kind): + return deepcopy(next(d for d in self.documents if d['kind'] == kind)) + + def method_sample(self, method, kind='director-result'): + return deepcopy(next(d for d in self.documents + if d['kind'] == kind and d['method'] == method)) + + @staticmethod + def diagnostic(): + return {'code': 'INPUT_INVALID', 'severity': 'error', 'stage': 'validation', + 'entity_id': None, 'field_path': 'input', 'expected': 'valid input', + 'observed': 'invalid input', 'retryable': False, + 'recommended_action': 'Correct input.', 'evidence': []} + + @staticmethod + def integral_json_numbers(value): + if isinstance(value, bool): + return value + if isinstance(value, int): + return float(value) + if isinstance(value, dict): + return {key: DirectorContractTests.integral_json_numbers(child) + for key, child in value.items()} + if isinstance(value, list): + return [DirectorContractTests.integral_json_numbers(child) for child in value] + return value + + @staticmethod + def artifact(value): + if isinstance(value, dict): + if {'artifact_id', 'sha256', 'path', 'byte_size'} <= value.keys(): + return value + for child in value.values(): + found = DirectorContractTests.artifact(child) + if found is not None: + return found + elif isinstance(value, list): + for child in value: + found = DirectorContractTests.artifact(child) + if found is not None: + return found + return None + + @staticmethod + def structural_validator(definition=None): + schema = dc.schemas()['director.schema.json'] + if definition: + schema = {'$defs': schema['$defs'], '$ref': '#/$defs/' + definition} + return jsonschema.Draft202012Validator(schema) + + def test_exact_mandatory_methods_and_example_pairs(self): + self.assertEqual(set(dc.METHODS), REQUIRED_METHODS) + for kind in ('director-request', 'director-result'): + with self.subTest(kind=kind): + methods = [d['method'] for d in self.documents if d['kind'] == kind] + self.assertEqual(len(methods), len(REQUIRED_METHODS)) + self.assertEqual(set(methods), REQUIRED_METHODS) + + def test_every_document_roundtrips_and_is_unchanged(self): + before = deepcopy(self.documents) + for document in self.documents: + with self.subTest(kind=document['kind'], method=document.get('method')): + parsed = json.loads(json.dumps(document, allow_nan=False)) + self.structural_validator().validate(parsed) + dc.validate_document(parsed) + self.assertEqual(parsed, document) + self.assertEqual(before, self.documents) + + def test_schema_integral_numeric_forms_preserve_input_representation(self): + for document in self.documents: + with self.subTest(kind=document['kind'], method=document.get('method')): + changed = self.integral_json_numbers(document) + before = json.dumps(changed, sort_keys=True) + self.structural_validator().validate(changed) + dc.validate_document(changed) + self.assertEqual(json.dumps(changed, sort_keys=True), before) + fps = {'numerator': 24.0, 'denominator': 1.0} + self.assertEqual(dc.frame_timestamp(719.0, fps), Fraction(719, 24)) + self.assertEqual(dc.duration_frames({'numerator': 30.0, 'denominator': 1.0}, fps), 720) + + def test_all_documents_reject_unknown_version_and_properties(self): + for document in self.documents: + for key, value in (('schema_version', 2), ('_unrecognized', 'bad')): + with self.subTest(kind=document['kind'], method=document.get('method'), key=key): + changed = deepcopy(document) + changed[key] = value + with self.assertRaises(ValueError): + dc.validate_document(changed) + + def test_schema_generation_is_closed_valid_and_committed(self): + generated = dc.schemas() + self.assertTrue(generated) + for name, schema in generated.items(): + with self.subTest(name=str(name)): + jsonschema.Draft202012Validator.check_schema(schema) + path = Path(name) + if not path.is_absolute(): + path = ROOT / 'profiles' / path + self.assertEqual(json.loads(path.read_text(encoding='utf-8')), schema) + + def test_each_method_enforces_its_own_input_and_output_schema(self): + requests = {d['method']: d for d in self.documents if d['kind'] == 'director-request'} + results = {d['method']: d for d in self.documents if d['kind'] == 'director-result'} + for method in sorted(REQUIRED_METHODS): + with self.subTest(method=method): + request, result = deepcopy(requests[method]), deepcopy(results[method]) + dc.validate_method_request(method, request) + dc.validate_method_result(method, result, request) + request['input']['_unrecognized'] = True + with self.assertRaises(jsonschema.ValidationError): + self.structural_validator().validate(request) + with self.assertRaises(ValueError): + dc.validate_method_request(method, request) + self.assertIsInstance(result['value'], dict) + result['value']['_unrecognized'] = True + with self.assertRaises(jsonschema.ValidationError): + self.structural_validator().validate(result) + with self.assertRaises(ValueError): + dc.validate_method_result(method, result, requests[method]) + + def test_common_types_have_strict_generated_definitions(self): + request, result = self.sample('director-request'), self.sample('director-result') + samples = { + 'artifact-ref': self.artifact(self.documents), + 'operation-context': request['context'], + 'usage': result['usage'], + 'milestone': self.sample('director-project')['milestones'][0], + 'diagnostic': self.diagnostic(), + } + for name, sample in samples.items(): + with self.subTest(name=name): + validator = self.structural_validator(name) + validator.validate(sample) + extra = deepcopy(sample) + extra['_unrecognized'] = True + with self.assertRaises(jsonschema.ValidationError): + validator.validate(extra) + for key in sample: + missing = deepcopy(sample) + del missing[key] + with self.subTest(missing=key), self.assertRaises(jsonschema.ValidationError): + validator.validate(missing) + + def test_artifact_paths_and_exact_identity_are_checked(self): + validator = self.structural_validator('artifact-ref') + original = self.sample('director-project') + for path in ('../escape', '/absolute', 'a/../../escape', 'C:/asset', + 'a\\asset', 'a//asset', 'a/./asset', 'a/CON.txt', + 'a/trailing.', 'a/trailing ', 'a/', 'a/what?', 'a/star*', + 'a/name\n', 'a/name\x00'): + with self.subTest(path=path): + changed = deepcopy(original) + artifact = self.artifact(changed) + artifact['path'] = path + with self.assertRaises(jsonschema.ValidationError): + validator.validate(artifact) + with self.assertRaises(ValueError): + dc.validate_document(changed) + + def test_unknown_usage_requires_explanation_and_counts_are_integral(self): + original = self.sample('director-result') + for update in ( + lambda d: d['usage']['cpu_seconds'].update(explanation=None), + lambda d: d['usage']['provider_calls'].update(value=1), + lambda d: d['usage'].update(currency='USD'), + lambda d: (d['usage'].update(classification='actual'), + d['usage']['provider_calls'].update(value=1.5))): + with self.subTest(update=update): + changed = deepcopy(original) + update(changed) + self.structural_validator().validate(changed) + with self.assertRaises(ValueError): + dc.validate_document(changed) + + def test_context_rejects_implicit_network_and_paid_authority(self): + original = self.sample('director-request') + for policy in ({'network': 'allow-configured'}, {'paid': 'bounded'}, + {'paid': 'allow-unknown-price'}): + changed = deepcopy(original) + changed['context']['policy'].update(policy) + with self.subTest(policy=policy), self.assertRaises(ValueError): + dc.validate_document(changed) + changed = deepcopy(original) + changed['context']['credentials'] = 'must never be serialized' + with self.assertRaises(ValueError): + dc.validate_document(changed) + + def test_all_method_failures_and_cancellations_remain_typed(self): + for method in sorted(REQUIRED_METHODS): + original = self.method_sample(method) + for status in ('blocked_capability', 'blocked_budget', 'awaiting_external_result', + 'awaiting_review', 'failed', 'canceled'): + result = deepcopy(original) + result.update(status=status, value=None, diagnostics=[self.diagnostic()]) + with self.subTest(method=method, status=status): + dc.validate_method_result(method, result) + result['diagnostics'] = [] + with self.assertRaises(ValueError): + dc.validate_method_result(method, result) + result['diagnostics'] = [self.diagnostic()] + result['value'] = original['value'] + with self.assertRaises(ValueError): + dc.validate_method_result(method, result) + + def test_result_digest_and_method_cannot_be_rebound(self): + original = self.method_sample('CapabilityRegistry.probe') + request = self.method_sample('CapabilityRegistry.probe', 'director-request') + changed = deepcopy(original) + changed['input_digest'] = 'f' * 64 + with self.assertRaises(ValueError): + dc.validate_method_result('CapabilityRegistry.probe', changed, request) + with self.assertRaises(ValueError): + dc.validate_method_result('AssetResolver.resolve', original, request) + + def test_results_remain_bound_to_requested_semantics(self): + mutations = { + 'PlanningProvider.generate_structured': + lambda value: value.update(template_sha256='f' * 64), + 'FrameEvaluator.evaluate': + lambda value: value['frame'].update(numerator=1), + 'RenderAdapter.verify': + lambda value: value['frame_rate'].update(numerator=25), + 'ExportService.export': + lambda value: value.update(target='gltf'), + 'ExecutionService.status': + lambda value: value.update(job_id='different-job'), + 'QAService.record_review': + lambda value: value.update(reviewer_id='different-reviewer'), + } + for method, mutate in mutations.items(): + with self.subTest(method=method): + result = self.method_sample(method) + request = self.method_sample(method, 'director-request') + mutate(result['value']) + # It remains a valid isolated document; the matching request + # supplies the cross-record invariant under test. + dc.validate_document(result) + with self.assertRaises(ValueError): + dc.validate_method_result(method, result, request) + + def test_acquisition_reconciliation_preserves_original_claim_and_provider(self): + method = 'AcquisitionGateway.reconcile' + request = self.method_sample(method, 'director-request') + for field in ('claim_id', 'provider_request_id'): + result = self.method_sample(method) + result['value'][field] = 'different-' + field + with self.subTest(field=field), self.assertRaises(ValueError): + dc.validate_method_result(method, result, request) + + def test_budget_receipts_preserve_operation_and_uncertain_reservation(self): + for method, wrong_state in (('BudgetLedger.reserve', 'released'), + ('BudgetLedger.release', 'reserved'), + ('BudgetLedger.settle', 'released')): + result = self.method_sample(method) + request = self.method_sample(method, 'director-request') + result['value']['state'] = wrong_state + with self.subTest(method=method), self.assertRaises(ValueError): + dc.validate_method_result(method, result, request) + request = self.method_sample('BudgetLedger.settle', 'director-request') + request['input']['outcome'] = 'uncertain' + result = self.method_sample('BudgetLedger.settle') + result['input_digest'] = hashlib.sha256(json.dumps( + request, sort_keys=True, separators=(',', ':')).encode()).hexdigest() + result['value']['state'] = 'released' + with self.assertRaises(ValueError): + dc.validate_method_result('BudgetLedger.settle', result, request) + result['value']['state'] = 'uncertain' + dc.validate_method_result('BudgetLedger.settle', result, request) + + def test_graph_edges_need_declared_inputs_and_acyclic_ids(self): + original = self.method_sample('GraphCompiler.compile') + artifact = deepcopy(self.artifact(self.documents)) + graph = original['value'] + first = graph['nodes'][0] + first['id'] = 'first' + first['inputs'] = [deepcopy(artifact)] + second = deepcopy(first) + second['id'] = 'second' + graph['nodes'].append(second) + graph['edges'] = [{'source': 'first', 'target': 'second', 'artifact': artifact}] + dc.validate_document(original) + for update in ( + lambda d: d['value']['edges'][0].update(target='missing'), + lambda d: d['value']['nodes'][1].update(inputs=[]), + lambda d: d['value']['edges'].append( + {'source': 'second', 'target': 'first', 'artifact': deepcopy(artifact)}), + lambda d: d['value']['nodes'][1].update(id='first')): + changed = deepcopy(original) + update(changed) + with self.subTest(update=update), self.assertRaises(ValueError): + dc.validate_document(changed) + + def test_submission_cannot_claim_completed_execution(self): + for method in ('ExecutionService.submit', 'RenderAdapter.submit'): + result = self.method_sample(method) + result['value']['state'] = 'completed' + result['value']['artifacts'] = [deepcopy(self.artifact(self.documents))] + result['value']['native_workers'] = [deepcopy(self.artifact(self.documents))] + with self.subTest(method=method), self.assertRaises(ValueError): + dc.validate_document(result) + + def test_preflight_cannot_be_ready_with_missing_capability_or_error(self): + for field, value in (('missing_capabilities', ['required-renderer']), + ('diagnostics', [self.diagnostic()])): + result = self.method_sample('RenderAdapter.preflight') + result['value'].update(ready=True) + result['value'][field] = value + with self.subTest(field=field), self.assertRaises(ValueError): + dc.validate_document(result) + + def test_project_completion_and_visual_review_are_independent(self): + original = self.sample('director-project') + changed = deepcopy(original) + changed['status'] = 'complete' + with self.assertRaises(ValueError): + dc.validate_document(changed) + changed = deepcopy(original) + visual = next(x for x in changed['milestones'] if x['name'] == 'visual_qa') + visual.update(status='passed', authority='automated', + evidence=[deepcopy(self.artifact(self.documents))]) + with self.assertRaises(ValueError): + dc.validate_document(changed) + changed = deepcopy(original) + changed['milestones'][-1] = deepcopy(changed['milestones'][0]) + with self.assertRaises(ValueError): + dc.validate_document(changed) + + def test_physical_scale_and_identity_mappings_are_unambiguous(self): + for kind in ('director-asset-spec', 'director-character-identity'): + changed = self.sample(kind) + changed['scale_meters'] = 0 + with self.subTest(kind=kind), self.assertRaises(ValueError): + dc.validate_document(changed) + for mappings in ([{'role': 'arm', 'bone': 'bone1'}, {'role': 'arm', 'bone': 'bone2'}], + [{'role': 'left-arm', 'bone': 'bone1'}, {'role': 'right-arm', 'bone': 'bone1'}]): + changed = self.sample('director-character-identity') + changed['bone_mapping'] = mappings + with self.subTest(mappings=mappings), self.assertRaises(ValueError): + dc.validate_document(changed) + changed = self.sample('director-character-identity') + changed['proportions'] = [{'name': 'head-body', 'ratio': 0}] + with self.assertRaises(ValueError): + dc.validate_document(changed) + + def test_success_outputs_require_real_artifact_references(self): + for method, key in (('AssetBuildAdapter.build', 'meshes'), + ('RigMotionAdapter.prepare', 'deformation_checks'), + ('SceneAssembler.assemble', 'scenes'), + ('ExportService.export', 'outputs')): + changed = self.method_sample(method) + changed['value'][key] = [] + with self.subTest(method=method), self.assertRaises(ValueError): + dc.validate_document(changed) + + def test_shots_require_full_half_open_coverage_and_valid_markers(self): + original = self.sample('director-shot-plan') + for update in ( + lambda d: d['shots'][0].update(start_frame=1), + lambda d: d['shots'][0].update(duration_frames=719), + lambda d: d['shots'][0].update(end_frame=0), + lambda d: d['shots'][0]['transition'].update(overlap_frames=1), + lambda d: d.update(shots=d['shots'] + [deepcopy(d['shots'][0])])): + changed = deepcopy(original) + update(changed) + with self.subTest(update=update), self.assertRaises(ValueError): + dc.validate_document(changed) + for frame, target in ((720, 'aster-fixture'), (0, 'absent-actor')): + changed = deepcopy(original) + changed['shots'][0]['markers'] = [ + {'id': 'marker', 'frame': frame, 'target': target, 'action': 'inspect'}] + with self.subTest(frame=frame, target=target), self.assertRaises(ValueError): + dc.validate_document(changed) + + def test_verified_frames_and_silent_video_require_evidence(self): + original = self.method_sample('RenderAdapter.verify') + for update in (lambda d: d['value']['frames'].clear(), + lambda d: d['value']['frames'][0].update(index=1), + lambda d: d['value']['frames'][0]['timestamp'].update(numerator=1), + lambda d: d['value']['frames'][0].update(resolution=[2, 1])): + changed = deepcopy(original) + update(changed) + with self.subTest(update=update), self.assertRaises(ValueError): + dc.validate_document(changed) + result = self.method_sample('ExportService.verify') + result['value'].update(target='mp4', verified=True, audio_streams=1, + decoded_frames=1, outputs=[deepcopy(self.artifact(self.documents))], + verification=[deepcopy(self.artifact(self.documents))]) + with self.assertRaises(ValueError): + dc.validate_document(result) + result['value']['audio_streams'] = 0 + dc.validate_document(result) + + def test_adverse_frame_span_is_rejected_before_unbounded_allocation(self): + result = self.method_sample('RenderAdapter.verify') + result['value']['frame_range']['end_frame'] = 2_000_000_000 + with self.assertRaises(ValueError): + dc.validate_document(result) + + def test_bundle_references_ids_and_versions_are_exact(self): + dc.validate_bundle(self.documents) + with self.assertRaises(ValueError): + dc.validate_bundle(self.documents + [deepcopy(self.documents[0])]) + changed = deepcopy(self.documents) + shot = next(x for x in changed if x['kind'] == 'director-shot-plan') + shot['story']['artifact_id'] = 'absent-story' + with self.assertRaises(ValueError): + dc.validate_bundle(changed) + changed = deepcopy(self.documents) + shot = next(x for x in changed if x['kind'] == 'director-shot-plan') + shot['shots'][0]['beat_ids'] = ['absent-beat'] + with self.assertRaises(ValueError): + dc.validate_bundle(changed) + for field, value in (('schema_version', 2), ('semantic_version', '2.0.0')): + changed = [self.sample('director-creative-brief'), self.sample('director-story-plan')] + changed[1]['brief'][field] = value + with self.subTest(field=field), self.assertRaises(ValueError): + dc.validate_bundle(changed) + + @unittest.skipUnless(hasattr(os, 'O_NOFOLLOW') and os.open in os.supports_dir_fd, + 'Secure descriptor-relative closure is unavailable on this platform.') + def test_byte_closure_rejects_tampering_and_symlink_without_writes(self): + result = self.method_sample('PlanningProvider.generate_structured') + artifact = self.artifact(result) + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + path = root / artifact['path'] + path.parent.mkdir(parents=True) + source = (ROOT / artifact['path']).read_bytes() + path.write_bytes(source) + before = {p.relative_to(root): p.read_bytes() for p in root.rglob('*') if p.is_file()} + dc.validate_bundle([result], root=root) + integral_result = self.integral_json_numbers(result) + representation = json.dumps(integral_result, sort_keys=True) + dc.validate_bundle([integral_result], root=root) + self.assertEqual(json.dumps(integral_result, sort_keys=True), representation) + after = {p.relative_to(root): p.read_bytes() for p in root.rglob('*') if p.is_file()} + self.assertEqual(before, after) + path.write_bytes(bytes([source[0] ^ 1]) + source[1:]) + with self.assertRaises(ValueError): + dc.validate_bundle([result], root=root) + path.unlink() + path.symlink_to(ROOT / artifact['path']) + with self.assertRaises(ValueError): + dc.validate_bundle([result], root=root) + if hasattr(os, 'mkfifo'): + path.unlink() + os.mkfifo(path) + with self.assertRaises(ValueError): + dc.validate_bundle([result], root=root) + + def test_position_basis_is_reversible_and_matches_literal_expectations(self): + self.assertEqual(dc.convert_position([2, 3, 4]), [2, -4, 3]) + self.assertEqual(dc.convert_position([2, -4, 3], 'blender', 'canonical'), [2, 3, 4]) + self.assertEqual(dc.convert_position([-1, 5, 2], 'canonical', 'canonical'), [-1, 5, 2]) + for vector in ([True, 0, 0], [1, 2], [float('nan'), 0, 0], + [0, 0, float('inf')], [10**1000, 0, 0]): + with self.subTest(vector=vector), self.assertRaises(ValueError): + dc.convert_position(vector) + with self.assertRaises(ValueError): + dc.convert_position([1, 2, 3], 'unlisted', 'canonical') + + def test_artifact_hashes_versions_and_ids_reject_malformed_values(self): + original = self.sample('director-project') + validator = self.structural_validator('artifact-ref') + for key, value in (('sha256', '0' * 63), ('sha256', 'G' * 64), + ('sha256', '0' * 64 + '\n'), ('byte_size', -1), + ('byte_size', True), ('semantic_version', 'latest'), + ('artifact_id', 'unsafe\n')): + with self.subTest(key=key, value=value): + changed = deepcopy(original) + artifact = self.artifact(changed) + artifact[key] = value + with self.assertRaises(jsonschema.ValidationError): + validator.validate(artifact) + with self.assertRaises(ValueError): + dc.validate_document(changed) + + def test_exact_half_open_frame_math(self): + fps = {'numerator': 24, 'denominator': 1} + self.assertEqual(dc.duration_frames(30, fps), 720) + self.assertEqual(dc.frame_timestamp(0, fps), Fraction(0)) + self.assertEqual(dc.frame_timestamp(719, fps), Fraction(719, 24)) + self.assertEqual(dc.frame_timestamp(720, fps), Fraction(30)) + self.assertEqual(dc.duration_frames(1001, {'numerator': 30000, 'denominator': 1001}), 30000) + with self.assertRaises(ValueError): + dc.duration_frames(Fraction(1, 100), fps) + for invalid in (-1, True, float('nan'), float('inf')): + with self.subTest(frame=invalid), self.assertRaises(ValueError): + dc.frame_timestamp(invalid, fps) + for invalid in ({'numerator': 0, 'denominator': 1}, + {'numerator': 24, 'denominator': 0}, + {'numerator': True, 'denominator': 1}): + with self.subTest(fps=invalid), self.assertRaises(ValueError): + dc.frame_timestamp(1, invalid) + + def test_decoder_rejects_duplicate_keys_and_nonfinite_numbers(self): + for payload in ('{"schema_version":1,"schema_version":2}', + '{"number":NaN}', '{"number":Infinity}', + '{"number":-Infinity}', '{"number":1e999}', + '{"text":"\\ud800"}'): + with self.subTest(payload=payload), tempfile.TemporaryDirectory() as directory: + path = Path(directory) / 'bad.json' + path.write_text(payload, encoding='utf-8') + with self.assertRaises(ValueError): + dc.load_document(path) + + def test_import_keeps_2d_dependency_boundary(self): + script = ''' +import sys +class RejectOptional: + def find_spec(self, fullname, path=None, target=None): + if fullname.split('.')[0] in {'numpy', 'pygltflib', 'bpy', 'scipy', 'trimesh'}: + raise RuntimeError('Optional backend imported: ' + fullname) +sys.meta_path.insert(0, RejectOptional()) +import director_contracts +director_contracts.schemas() +print('PASS') +''' + result = subprocess.run([sys.executable, '-c', script], + cwd=ROOT, env={'PYTHONPATH': str(ROOT / 'scripts')}, + capture_output=True, text=True, timeout=30) + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) + self.assertEqual(result.stdout.strip(), 'PASS') + + +if __name__ == '__main__': + unittest.main()