{
  "version": 1,
  "source_base": "ATEEL_Resolution_CONTRAN_215-2006_1.1.8",
  "updated_at": "2026-07-15T13:58:42.461917+00:00",
  "steps": [
    {
      "step": "source_language",
      "status": "ok",
      "message": "Portuguese (PT)",
      "at": "2026-07-15T13:55:53.694887+00:00"
    },
    {
      "step": "pipeline_start",
      "status": "info",
      "message": "OpenRouter pipeline started for ATEEL_Resolution_CONTRAN_215-2006_1.1.8",
      "at": "2026-07-15T13:55:53.695115+00:00"
    },
    {
      "step": "text_extract",
      "status": "ok",
      "message": "Wrote row plain-text extract: text.txt",
      "at": "2026-07-15T13:55:53.708915+00:00",
      "detail": "35 rows",
      "duration_seconds": 0.01
    },
    {
      "step": "style_terminology",
      "status": "info",
      "message": "Trimmed 3 duplicate or excess terminology entries (full).",
      "at": "2026-07-15T13:56:02.949427+00:00",
      "detail": "limit=25 entries, 2000 chars"
    },
    {
      "step": "style_terminology",
      "status": "info",
      "message": "Trimmed 2 duplicate or excess terminology entries (compact).",
      "at": "2026-07-15T13:56:02.950485+00:00",
      "detail": "limit=12 entries, 800 chars"
    },
    {
      "step": "style_extract",
      "status": "ok",
      "message": "Extracted document glossary (3491 tokens).",
      "at": "2026-07-15T13:56:02.950838+00:00",
      "detail": "model=openai/gpt-4.1-mini",
      "duration_seconds": 9.24
    },
    {
      "step": "style_merge",
      "status": "ok",
      "message": "LLM-merged document style with VW style style guide (full).",
      "at": "2026-07-15T13:56:56.399255+00:00",
      "detail": "model=openai/gpt-4.1-mini, tokens=4996",
      "duration_seconds": 53.45
    },
    {
      "step": "style_compact",
      "status": "info",
      "message": "Style guide compaction level",
      "at": "2026-07-15T13:56:56.399926+00:00",
      "detail": "model=openai/gpt-4.1-mini, level=1, target≤7650",
      "duration_seconds": 0.0
    },
    {
      "step": "style_terminology",
      "status": "info",
      "message": "Trimmed 1 duplicate or excess terminology entries (compact).",
      "at": "2026-07-15T13:57:07.570427+00:00",
      "detail": "limit=12 entries, 800 chars"
    },
    {
      "step": "style_compact",
      "status": "info",
      "message": "Style guide compaction level",
      "at": "2026-07-15T13:57:07.571097+00:00",
      "detail": "model=openai/gpt-4.1-mini, level=2, target≤3612"
    },
    {
      "step": "style_compact",
      "status": "ok",
      "message": "Compacted merged style guide (2 levels).",
      "at": "2026-07-15T13:57:16.271344+00:00",
      "detail": "model=openai/gpt-4.1-mini, tokens=5385"
    },
    {
      "step": "style_select",
      "status": "info",
      "message": "Using merged style (VW style + document).",
      "at": "2026-07-15T13:57:16.274384+00:00"
    },
    {
      "step": "style_select",
      "status": "ok",
      "message": "Using full + full glossary style guide for openai/gpt-4.1-mini (est. 3918/1047576 tokens)",
      "at": "2026-07-15T13:57:16.275093+00:00"
    },
    {
      "step": "consistency_check",
      "status": "ok",
      "message": "Found 15 consistency issue(s) across 15 row(s).",
      "at": "2026-07-15T13:58:21.976222+00:00",
      "detail": "model=openai/gpt-4.1-mini, tokens=5860",
      "duration_seconds": 25.48
    },
    {
      "step": "consistency_retranslate",
      "status": "ok",
      "message": "Re-translated 15 row(s) after consistency check.",
      "at": "2026-07-15T13:58:39.802274+00:00",
      "duration_seconds": 17.83
    },
    {
      "step": "row_translation",
      "status": "ok",
      "message": "Completed 50/35 rows.",
      "at": "2026-07-15T13:58:42.460986+00:00",
      "detail": "tokens=296246",
      "duration_seconds": 86.18
    },
    {
      "step": "pipeline_end",
      "status": "ok",
      "message": "Translation completed (50/35 rows, 296246 tokens).",
      "at": "2026-07-15T13:58:42.461846+00:00"
    }
  ]
}
