{
  "run_id": "20260322T104930010242Z",
  "generated_at": "2026-03-22T11:05:44.451131Z",
  "stages": [
    {
      "ts_start": "2026-03-22T10:49:30.365664Z",
      "ts_end": "2026-03-22T10:49:31.253821Z",
      "duration_sec": 0.888,
      "stage": "chunks",
      "status": "ok",
      "run_id": "20260322T104930010242Z",
      "agent": "Ingestion & Chunking Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/input/道祖是克苏鲁.txt",
          "kind": "novel_text"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/01_chunks.json",
          "kind": "chunks"
        }
      ],
      "metrics": {
        "chunks": 12,
        "max_chars": 1800,
        "limit_chunks": 12,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T10:49:31.270604Z",
      "ts_end": "2026-03-22T10:49:31.356187Z",
      "duration_sec": 0.086,
      "stage": "ontology",
      "status": "ok",
      "run_id": "20260322T104930010242Z",
      "agent": "Ontology & Taxonomy Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/01_chunks.json",
          "kind": "chunks"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/01b_ontology_samples.json",
          "kind": "ontology_samples"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/01c_ontology_candidates.json",
          "kind": "ontology_candidates"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "metrics": {
        "samples": 12,
        "candidate_entity_types": 4,
        "candidate_relation_types": 6,
        "taxonomy_entity_types": 13,
        "taxonomy_relations": 6,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T10:49:31.374690Z",
      "ts_end": "2026-03-22T11:01:38.500868Z",
      "duration_sec": 727.126,
      "stage": "kg",
      "status": "ok",
      "run_id": "20260322T104930010242Z",
      "agent": "Knowledge Graph Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/01_chunks.json",
          "kind": "chunks"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/02_kg.json",
          "kind": "kg_summary"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/02_kg_store.json",
          "kind": "kg_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/02_kg_observations.jsonl",
          "kind": "kg_observations"
        }
      ],
      "metrics": {
        "entities": 69,
        "relations": 80,
        "observations": 266,
        "ambiguous_entity_forks": 6,
        "chunks": 12,
        "ontology_loaded": true,
        "high_density_chunks": 6,
        "supplement_chunks": 4,
        "max_entity_limit": 14,
        "max_relation_limit": 14,
        "kg_observation_rows": 266,
        "kg_observation_rows_dropped": 0,
        "kg_entity_redirect_applied": 1,
        "kg_relation_redirect_applied": 0,
        "stub_cleanup_dropped_entities": 0,
        "stub_cleanup_dropped_relations": 0,
        "stub_cleanup_merged_duplicate_entities": 0,
        "stub_cleanup_merged_same_name_entities": 1,
        "stub_cleanup_merged_duplicate_relations": 0,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T11:01:38.524702Z",
      "ts_end": "2026-03-22T11:01:38.618159Z",
      "duration_sec": 0.093,
      "stage": "type_consolidation",
      "status": "ok",
      "run_id": "20260322T104930010242Z",
      "agent": "Ontology & Taxonomy Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/02_kg_store.json",
          "kind": "kg_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/02b_type_candidates.json",
          "kind": "type_candidates"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/02c_type_consolidation.json",
          "kind": "type_consolidation"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "metrics": {
        "candidates": 60,
        "apply_type_count": 5,
        "apply_subtype_count": 21,
        "review_type_count": 8,
        "review_subtype_count": 16,
        "other_before": 9,
        "other_after": 4,
        "ontology_loaded": true,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T11:01:38.645355Z",
      "ts_end": "2026-03-22T11:05:44.371496Z",
      "duration_sec": 245.726,
      "stage": "scenes",
      "status": "ok",
      "run_id": "20260322T104930010242Z",
      "agent": "Scene Segmentation Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/01_chunks.json",
          "kind": "chunks"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/logs/stage_artifacts/scenes/20260322T104930010242Z__03_scenes.json",
          "kind": "scenes_snapshot"
        }
      ],
      "metrics": {
        "scenes": 44,
        "chunks": 12,
        "continued_scenes": 0,
        "scene_with_characters": 43,
        "scene_with_locations": 21,
        "kg_context_loaded": true,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T11:05:44.394437Z",
      "ts_end": "2026-03-22T11:05:44.414082Z",
      "duration_sec": 0.02,
      "stage": "chronology",
      "status": "ok",
      "run_id": "20260322T104930010242Z",
      "agent": "Chronology & Narrative Time Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/03b_chronology.json",
          "kind": "chronology"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_chronology_smoke_20260322/logs/stage_artifacts/chronology/20260322T104930010242Z__03b_chronology.json",
          "kind": "chronology_snapshot"
        }
      ],
      "metrics": {
        "scenes": 44,
        "chronology_groups": 35,
        "chronology_edges": 52,
        "chronology_conflicts": 0,
        "low_confidence_scenes": 1,
        "explicit_anchors": 20,
        "resumed": false
      }
    }
  ],
  "llm_calls": {
    "total": 28,
    "ok": 28,
    "error": 0
  },
  "run_errors": 0
}