{
  "input_type": "image",
  "job_dir": "/var/www/html/share/editppt-tmp/20260828-104940-source",
  "page_count": 1,
  "inputs": [
    "input/source.png"
  ],
  "pages": [
    {
      "page_index": 1,
      "source_page": 1,
      "source_image": "pages/page_001/source.png",
      "page_dir": "pages/page_001",
      "manifest": "pages/page_001/manifest.json",
      "validation": "pages/page_001/validation.json",
      "input": "source.png",
      "agent_status": "pending",
      "page_id": "page_001",
      "status": "pending",
      "page_request": "pages/page_001/page_request.json",
      "dispatch": null,
      "result": null,
      "accepted": false
    }
  ],
  "notes_manifest": "notes_manifest.json",
  "output": "final/source_edited.pptx",
  "validation": "validation.json",
  "schema_version": 1,
  "run_id": "20260828-104940-source",
  "prepared_at": "2026-08-28T02:49:40Z",
  "page_jobs": "page_jobs.json",
  "run_state": "run_state.json",
  "max_concurrent_pages": 6,
  "slide": {
    "width": 16.0,
    "height": 10.666666666666666,
    "size_mode": "source",
    "px_per_inch": 96
  },
  "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"
  },
  "completed_at": "2026-08-28T06:31:09Z"
}
