{
  "base_url": "http://127.0.0.1:8000/v1",
  "budget": {
    "max_completion_tokens": 4096,
    "reasoning_headroom_tokens": 3072,
    "visible_answer_tokens": 1024
  },
  "checks": [
    "smoke",
    "json",
    "tools",
    "tool-result",
    "responses"
  ],
  "evidence_policy": {
    "allowed_finish_reasons": [
      "stop",
      "tool_calls"
    ],
    "errors": [
      "reasoning evidence was required but not observed"
    ],
    "reasoning": "required"
  },
  "image_expect": [],
  "model": "llm.primary",
  "multimodal_input": null,
  "observations": [
    {
      "content": "```python\nsum(xs)\n```\n\nIf you need it as a function (or want to avoid the built-in, e.g., for a learning exercise):\n\n```python\ndef list_sum(xs): return sum(xs)\n```\n\nor using `functools.reduce`:\n\n```python\nfrom functools import reduce\ntotal = reduce(lambda a, b: a + b, xs, 0)\n```\n\nThe plain `sum(xs)` is the idiomatic choice.",
      "content_chars": 325,
      "content_excerpt": "```python\nsum(xs)\n```\n\nIf you need it as a function (or want to avoid the built-in, e.g., for a learning exercise):\n\n```python\ndef list_sum(xs): return sum(xs)\n```\n\nor using `functools.reduce`:\n\n```py",
      "finish_reason": "stop",
      "passed": true,
      "reasoning_chars": 0,
      "reasoning_excerpt": "",
      "reasoning_field": null,
      "reasoning_tokens": null,
      "seconds": 1.988,
      "test": "smoke",
      "usage": {
        "completion_tokens": 319,
        "prompt_tokens": 28,
        "total_tokens": 347
      },
      "validation_detail": "contains sum("
    },
    {
      "content": "{\"language\":\"python\",\"ok\":true}",
      "content_chars": 31,
      "content_excerpt": "{\"language\":\"python\",\"ok\":true}",
      "finish_reason": "stop",
      "passed": true,
      "reasoning_chars": 0,
      "reasoning_excerpt": "",
      "reasoning_field": null,
      "reasoning_tokens": null,
      "seconds": 0.378,
      "test": "json",
      "usage": {
        "completion_tokens": 53,
        "prompt_tokens": 30,
        "total_tokens": 83
      },
      "validation_detail": "parsed keys=['language', 'ok']"
    },
    {
      "content": "",
      "content_chars": 0,
      "content_excerpt": "",
      "finish_reason": "tool_calls",
      "passed": true,
      "reasoning_chars": 0,
      "reasoning_excerpt": "",
      "reasoning_field": null,
      "reasoning_tokens": null,
      "request_index": 0,
      "seconds": 1.051,
      "test": "tools",
      "usage": {
        "completion_tokens": 38,
        "prompt_tokens": 4967,
        "total_tokens": 5005
      },
      "validation_detail": "valid tool_call get_weather(city='Oakland')"
    },
    {
      "content": "",
      "content_chars": 0,
      "content_excerpt": "",
      "finish_reason": "tool_calls",
      "passed": true,
      "reasoning_chars": 0,
      "reasoning_excerpt": "",
      "reasoning_field": null,
      "reasoning_tokens": null,
      "request_index": 1,
      "seconds": 1.324,
      "test": "tools",
      "usage": {
        "completion_tokens": 38,
        "prompt_tokens": 4967,
        "prompt_tokens_details": {
          "cached_tokens": 4928
        },
        "total_tokens": 5005
      },
      "validation_detail": "valid tool_call get_weather(city='Oakland')"
    },
    {
      "content": "",
      "content_chars": 0,
      "content_excerpt": "",
      "finish_reason": "tool_calls",
      "passed": true,
      "reasoning_chars": 0,
      "reasoning_excerpt": "",
      "reasoning_field": null,
      "reasoning_tokens": null,
      "request_index": 3,
      "seconds": 1.62,
      "test": "tools",
      "usage": {
        "completion_tokens": 38,
        "prompt_tokens": 4967,
        "prompt_tokens_details": {
          "cached_tokens": 4928
        },
        "total_tokens": 5005
      },
      "validation_detail": "valid tool_call get_weather(city='Oakland')"
    },
    {
      "content": "",
      "content_chars": 0,
      "content_excerpt": "",
      "finish_reason": "tool_calls",
      "passed": true,
      "reasoning_chars": 0,
      "reasoning_excerpt": "",
      "reasoning_field": null,
      "reasoning_tokens": null,
      "request_index": 2,
      "seconds": 1.915,
      "test": "tools",
      "usage": {
        "completion_tokens": 38,
        "prompt_tokens": 4967,
        "prompt_tokens_details": {
          "cached_tokens": 4928
        },
        "total_tokens": 5005
      },
      "validation_detail": "valid tool_call get_weather(city='Oakland')"
    },
    {
      "content": "",
      "content_chars": 0,
      "content_excerpt": "",
      "finish_reason": "tool_calls",
      "passed": true,
      "reasoning_chars": 0,
      "reasoning_excerpt": "",
      "reasoning_field": null,
      "reasoning_tokens": null,
      "request_index": 4,
      "seconds": 2.209,
      "test": "tools",
      "usage": {
        "completion_tokens": 38,
        "prompt_tokens": 4967,
        "prompt_tokens_details": {
          "cached_tokens": 4928
        },
        "total_tokens": 5005
      },
      "validation_detail": "valid tool_call get_weather(city='Oakland')"
    },
    {
      "content": "",
      "content_chars": 0,
      "content_excerpt": "",
      "finish_reason": "tool_calls",
      "passed": true,
      "reasoning_chars": 0,
      "reasoning_excerpt": "",
      "reasoning_field": null,
      "reasoning_tokens": null,
      "seconds": 0.36,
      "test": "tool-result-initial",
      "usage": {
        "completion_tokens": 42,
        "prompt_tokens": 166,
        "total_tokens": 208
      },
      "validation_detail": "valid tool_call get_weather(city='Oakland')"
    },
    {
      "content": "OAKLAND 72F",
      "content_chars": 11,
      "content_excerpt": "OAKLAND 72F",
      "finish_reason": "stop",
      "passed": true,
      "reasoning_chars": 0,
      "reasoning_excerpt": "",
      "reasoning_field": null,
      "reasoning_tokens": null,
      "seconds": 0.451,
      "test": "tool-result-continuation",
      "usage": {
        "completion_tokens": 62,
        "prompt_tokens": 70,
        "total_tokens": 132
      },
      "validation_detail": "tool result retained"
    },
    {
      "content_chars": 5,
      "content_excerpt": "READY",
      "finish_reason": "stop",
      "passed": true,
      "reasoning_chars": 0,
      "reasoning_excerpt": "",
      "reasoning_field": null,
      "reasoning_tokens": null,
      "response_status": "completed",
      "seconds": 0.575,
      "test": "responses",
      "usage": {
        "input_tokens": 16,
        "output_tokens": 77,
        "total_tokens": 93
      },
      "validation_detail": "completed exact READY"
    }
  ],
  "ocr_expect": [],
  "passed": false,
  "results": [
    {
      "detail": "2.0s got='```python\\nsum(xs)\\n```\\n\\nIf you need it as a functio' finish='stop' visible=325 reasoning_chars=0 reasoning_tokens=None",
      "name": "smoke (short coding)",
      "passed": true
    },
    {
      "detail": "parsed keys=['language', 'ok'] finish='stop' visible=31 reasoning_chars=0 reasoning_tokens=None",
      "name": "structured JSON",
      "passed": true
    },
    {
      "detail": "5/5 clean (sample: 1.1s valid tool_call get_weather(city='Oakland') finish='tool_calls' visible=0 reasoning_chars=0 reasoning_tokens=None)",
      "name": "shared-prefix tool batch x5",
      "passed": true
    },
    {
      "detail": "0.8s tool result retained finish='stop' visible=11 reasoning_chars=0 reasoning_tokens=None",
      "name": "tool-result continuation",
      "passed": true
    },
    {
      "detail": "0.6s status='completed' output='READY' reasoning_chars=0",
      "name": "Responses API subset",
      "passed": true
    }
  ],
  "schema_version": "preflight/v2",
  "thinking": {
    "chat_template_kwargs": {
      "enable_thinking": true
    },
    "mode": "enabled",
    "reasoning_effort": null
  },
  "video_expect": [],
  "video_input": null
}
