{
  "schema_version": 1,
  "run_id": "20260828-104940-source",
  "page_id": "page_001",
  "page_index": 1,
  "page_dir": "/var/www/html/share/editppt-tmp/20260828-104940-source/pages/page_001",
  "source_image": "/var/www/html/share/editppt-tmp/20260828-104940-source/pages/page_001/source.png",
  "source_size_px": {
    "width": 1536,
    "height": 1024
  },
  "slide": {
    "width": 16.0,
    "height": 10.666666666666666,
    "size_mode": "source",
    "px_per_inch": 96
  },
  "content_box": {
    "left": 0,
    "top": 0.0,
    "width": 16.0,
    "height": 10.666666666666666,
    "fit": "contain"
  },
  "max_concurrent_pages": 6,
  "allowed_write_scope": "/var/www/html/share/editppt-tmp/20260828-104940-source/pages/page_001",
  "forbidden_paths": [
    "/var/www/html/share/editppt-tmp/20260828-104940-source/deck_manifest.json",
    "/var/www/html/share/editppt-tmp/20260828-104940-source/page_jobs.json",
    "/var/www/html/share/editppt-tmp/20260828-104940-source/notes_manifest.json",
    "/var/www/html/share/editppt-tmp/20260828-104940-source/final",
    "/var/www/html/share/editppt-tmp/20260828-104940-source/input"
  ],
  "required_outputs": {
    "manifest": "/var/www/html/share/editppt-tmp/20260828-104940-source/pages/page_001/manifest.json",
    "imagegen_jobs": "/var/www/html/share/editppt-tmp/20260828-104940-source/pages/page_001/imagegen-jobs.json",
    "page_pptx": "/var/www/html/share/editppt-tmp/20260828-104940-source/pages/page_001/page.pptx",
    "preview": "/var/www/html/share/editppt-tmp/20260828-104940-source/pages/page_001/preview.png",
    "contact_sheet": "/var/www/html/share/editppt-tmp/20260828-104940-source/pages/page_001/split_assets_contact.png",
    "validation": "/var/www/html/share/editppt-tmp/20260828-104940-source/pages/page_001/validation.json",
    "page_result": "/var/www/html/share/editppt-tmp/20260828-104940-source/pages/page_001/page_result.json"
  },
  "image_backend": {
    "backend_id": "editppt-image-cli",
    "tool_name": "editppt image",
    "tool_call": "editppt image generate/edit",
    "fallback_command": "editppt image",
    "runtime_home": "~/.editppt",
    "model": "gpt-image-2",
    "requires_openai_api_key": false,
    "mode_policy": "generate-or-edit-per-asset",
    "chroma_key_helper": "editppt image process-sheet",
    "input_context_policy": "pass edit targets and strict visual references via editppt image edit --image",
    "save_path_policy": "write outputs directly to page dir or copy selected outputs before manifest references them",
    "handoff_rule": "call editppt image generate/edit serially; the CLI selects Codex OAuth first and OpenAI-compatible API fallback second"
  }
}
