# ============================================================================
# models.yaml — CANONICAL model registry for the think-like-fable kit.
# ----------------------------------------------------------------------------
# Source of truth for BOTH:
#   (1) orchestration routing (pairs with executors.yaml — this file adds the
#       per-model confidence/cost/specs the routing table reasons over), and
#   (2) the observify /models page (rendered to reports/models.html in the
#       kit-atlas aesthetic; observify caches a synced copy).
#
# Priority fields, per owner (Wolf) — always shown FIRST on the page:
#   confidence  — BOTH the kit's MEASURED track record (from executors.yaml +
#                 scars) AND external BENCHMARKS, side by side.
#   specialty   — what the model is best at, in one line.
#   cost        — $/1M tokens (or $0 local / subscription), up top.
# Then EXHAUSTIVE: context, max output, cutoff, modalities, reasoning tiers,
# features, rate limits, benchmarks, release, provenance URLs.
#
# kit_status per model (the gap-analysis indicator on the page):
#   active     — WIRED into executors.yaml today (the kit dispatches to it).
#   available  — the family offers it; the kit is NOT using it (⚠ addressable).
#   restricted — exists but not self-serve accessible (approval/partner-gated).
#   hardware_gated — free/local but this estate can't host it (RAM/VRAM).
#   deprecated — still selectable but retiring soon (do not add).
#   retired    — no longer selectable (listed only so nothing references it).
#
# Specs verified from PRIMARY sources 2026-07-23 (per-model provenance URLs).
# IDs and prices drift — re-probe at intake (read-the-damn-docs). "not public"
# is an honest value, never a guess.
version: 1
authored: "2026-07-23"

# The kit's escalation ladder (from executors.yaml, for context on this page):
#   ollama-local -> codex-oss-local -> agy-cli -> grok-cli -> codex-cli
#   -> in-family implementer (claude) -> conductor -> ceiling
# Free-first by COST (two free local rungs first), then weakest-capable-first
# across the paid CLOUD vendors (agy -> grok -> codex -> claude); Claude is the
# most expensive, exhausted LAST. One retry per rung; skipping down is free.

families:

  # ==========================================================================
  - id: openai
    label: "OpenAI — GPT / Codex"
    kit_lanes: ["codex-cli (paid, 5h quota windows)", "codex-oss-local (FREE local gpt-oss via `codex --oss`)"]
    role_in_kit: "the roster's BUILDER — single-writer owned-file edits, bounded well-specified coding"
    access: "codex exec -m <id>   (ALWAYS pass -m explicitly on detached launches)"
    kit_confidence_family: >
      BUILDER. Reliably ships correct-STRUCTURE with wrong-DETAIL — numeric/unit-scaling bugs
      slip past its own selftest gate (Observify 2026-07-18: Hz->GHz off 1000, milli-C
      unconverted, `free -h` Gi/Mi regex). PAIR EVERY codex build with a read-only agy
      correctness review (+ grok security on a sensitive surface) before ship. Commit-incapable
      by default (L127 — cannot create .git/index.lock; the conductor adopt-commits).
    models:

      - id: gpt-5.6-sol
        kit_status: active
        specialty: "Flagship builder — hard/core rounds; PILOTS a new lane (establishes the procedure + judgment calls)."
        confidence:
          kit: "Highest codex tier. Use to PILOT a lane, then hand the crank to Luna. Structure-solid, audit the numeric detail."
          benchmarks:
            GPQA_Diamond: "94.6%"
            SWE_bench_Pro: "64.6%"
            Terminal_bench_2.1: "88.8% (Ultra mode 91.9%)"
            FrontierMath_v2_T1-3: "89%"
            ARC_AGI_2: "92.5%"
            AA_Coding_Agent_Index: "80"
        cost: { input_per_mtok: 5.00, output_per_mtok: 30.00, cached_input_per_mtok: 0.50, batch: "50% off ($2.50/$15)", overage: ">272K input tokens billed 2x in / 1.5x out" }
        context_window: 1050000
        max_output: 128000
        knowledge_cutoff: "2026-02-16"
        modalities: { input: [text, image], output: [text] }
        reasoning: { is_reasoning_model: true, effort_tiers: ["none","low","medium","high","xhigh (API)","Ultra runs 4 parallel agents (product-level)"] }
        features: ["function/tool calling","structured outputs / JSON schema","streaming","vision (image in)","prompt caching","Batch API","Responses-API tools (web/file search, code interpreter, hosted shell, apply patch, computer use, MCP, programmatic tool calling in a V8 sandbox)"]
        no_support: ["fine-tuning","audio/video"]
        rate_limits: "Tier 5: 15,000 RPM / 40M TPM / 15B batch-queue tokens (scales down by tier)"
        release: "GA 2026-07-09 (preview 2026-06-25)"
        provenance: ["https://developers.openai.com/api/docs/models/gpt-5.6-sol","https://developers.openai.com/api/docs/pricing","https://deploymentsafety.openai.com/gpt-5-6/gpt-5-6.pdf"]
        notes: "Bare alias `gpt-5.6` routes to Sol. System card: High capability in Cybersecurity + Bio/Chem risk (not Critical)."

      - id: gpt-5.6-terra
        kit_status: active
        specialty: "Value tier — bulk, fully-specified features; ~half Sol's cost, ~GPT-5.5-competitive."
        confidence:
          kit: "The everyday workhorse for well-specified feature tickets. Same build-audit pairing as Sol."
          benchmarks: { GPQA_Diamond: "92.9%", SWE_bench_Pro: "63.4%", Terminal_bench_2.1: "87.4%", AA_Coding_Agent_Index: "77.4" }
        cost: { input_per_mtok: 2.50, output_per_mtok: 15.00, cached_input_per_mtok: 0.25, batch: "50% off" }
        context_window: 1050000
        max_output: 128000
        knowledge_cutoff: "2026-02-16"
        modalities: { input: [text, image], output: [text] }
        reasoning: { is_reasoning_model: true, effort_tiers: ["configurable none..max"] }
        features: ["same tool/feature surface as Sol"]
        no_support: ["fine-tuning"]
        rate_limits: "Tier 5: 15,000 RPM / 40M TPM"
        release: "GA 2026-07-09"
        provenance: ["https://developers.openai.com/api/docs/models/gpt-5.6-terra"]

      - id: gpt-5.6-luna
        kit_status: active
        specialty: "Fast/floor tier — crank-turning in an ESTABLISHED lane (review cycles, checklist passes, extraction, classification, routing)."
        confidence:
          kit: "A REAL executor tier for pattern-following inside a piloted lane: +30% throughput vs Sol at flat error rate (terminus 2026-07-18). NOT for establishing a lane. If output drifts from the piloted shape, that IS its ceiling — step back up."
          benchmarks: { GPQA_Diamond: "92.3%", SWE_bench_Pro: "62.7%", Terminal_bench_2.1: "84.7%", long_context_MRCR: "~41.3% (3rd-party, weaker at long lengths — flagged)" }
        cost: { input_per_mtok: 1.00, output_per_mtok: 6.00, cached_input_per_mtok: 0.10, batch: "50% off" }
        context_window: 1050000
        max_output: 128000
        knowledge_cutoff: "2026-02-16"
        modalities: { input: [text, image], output: [text] }
        reasoning: { is_reasoning_model: true, effort_tiers: ["configurable"] }
        features: ["same tool/feature surface as Sol/Terra"]
        no_support: ["fine-tuning"]
        rate_limits: "Tier 1-5: 500-30,000 RPM / 500K-180M TPM"
        release: "GA 2026-07-09"
        provenance: ["https://developers.openai.com/api/docs/models/gpt-5.6-luna"]

      - id: gpt-5.3-codex
        kit_status: active
        specialty: "Agentic-coding specialist — long autonomous coding sessions."
        confidence:
          kit: "The codex-family coding specialist; same structure-solid / audit-the-detail posture as the 5.6 tiers."
          benchmarks: { SWE_bench_Pro_public: "56.8%", Terminal_bench_2.0: "77.3%", OSWorld_Verified: "64.7%" }
        cost: { input_per_mtok: 1.75, output_per_mtok: 14.00, cached_input_per_mtok: 0.175, batch: "50% off ($0.875/$7)" }
        context_window: 400000
        max_output: 128000
        knowledge_cutoff: "2025-08-31"
        modalities: { input: [text, image], output: [text] }
        reasoning: { is_reasoning_model: true, effort_tiers: ["low","medium","high","xhigh"] }
        features: ["streaming","function calling","structured outputs"]
        no_support: ["fine-tuning","predicted outputs"]
        release: "2026-02-05"
        provenance: ["https://developers.openai.com/api/docs/models/gpt-5.3-codex","https://deploymentsafety.openai.com/gpt-5-6/gpt-5-6.pdf"]
        notes: "⚠ verify current ChatGPT gating (was Pro-gated at Feb 2026 launch per secondary sources)."

      - id: gpt-oss-20b
        kit_status: active
        ollama_tag: "gpt-oss:20b"
        specialty: "FREE local CODING floor (via `codex --oss`) — bounded, fully-specified coding: boilerplate, mechanical refactor, test scaffold, codegen, tight first-draft. Also the glue tier."
        confidence:
          kit: "The free floor: every bounded well-specified coding ticket TRIES it before a paid token. NOT for ambiguous/architectural/high-stakes work — fills ambiguity with plausible-wrong; L92/L95 bite HARDEST here. MUST be oriented (seven levers) + audited at the SAME gates. Prove on one low-stakes unit before trust. ⚠ Ollama defaults to a small context window — set num_ctx>=32768 or it loses the spec."
          benchmarks: { class: "~o3-mini", MMLU: "85.3%", GPQA_Diamond: "71.5% (no-tools)", AIME_2025_with_tools: "98.7%" }
        cost: { paid: 0, note: "FREE — local compute only. Runs in ~16GB RAM (fits this Mac's 48GB)." }
        params: { total: "21B", active_per_token: "3.6B (MoE, 24 layers)" }
        quantization: "native MXFP4 (MoE) / BF16"
        context_window: 128000
        knowledge_cutoff: "not public (model card 2025-08)"
        modalities: { input: [text], output: [text] }
        reasoning: { is_reasoning_model: true, effort_tiers: ["low","medium","high"], note: "harmony chat format exposes full CoT" }
        features: ["function/tool calling","structured outputs","fine-tunable","license: Apache-2.0"]
        release: "2025-08-05"
        provenance: ["https://github.com/openai/gpt-oss","https://ollama.com/blog/codex","https://cdn.openai.com/pdf/419b6906-9da6-406c-a19d-1bb078ac7637/oai_gpt-oss_model_card.pdf"]

      - id: gpt-oss-120b
        kit_status: hardware_gated
        ollama_tag: "gpt-oss:120b"
        specialty: "Larger free local model (~o4-mini class) — near-parity with o4-mini on core reasoning."
        confidence:
          kit: "⚠ NOT hostable on this Mac (needs ~80GB; the Mac has 48GB). Would be a stronger free coding tier on an 80GB+ host. Available to wire ONLY if a bigger box joins the estate."
          benchmarks: { class: "~o4-mini", MMLU: "90%", GPQA_Diamond: "80.1% (no-tools)", AIME_2025_with_tools: "97.9%", SWE_bench_Pro: "16.2% (general model, not an agentic-coding specialist)" }
        cost: { paid: 0, note: "FREE local — but needs a single 80GB GPU (H100/MI300X class)." }
        params: { total: "117B", active_per_token: "5.1B (MoE, 36 layers)" }
        quantization: "MXFP4 (MoE)"
        context_window: 128000
        modalities: { input: [text], output: [text] }
        reasoning: { is_reasoning_model: true, effort_tiers: ["low","medium","high"] }
        features: ["function calling","structured outputs","fine-tunable on a single H100","license: Apache-2.0"]
        release: "2025-08-05"
        provenance: ["https://github.com/openai/gpt-oss","https://huggingface.co/openai/gpt-oss-120b"]

      - id: gpt-5.4-mini
        kit_status: available
        specialty: "Cheap high-volume subagent/coding model (OpenAI's current 'mini' — the strongest mini for coding/computer-use/subagents)."
        confidence:
          kit: "⚠ AVAILABLE — NOT WIRED. The kit's `mini-class` label is AMBIGUOUS: there is NO gpt-5.6-mini (the mini lineage stopped at 5.4). Decide whether the kit means gpt-5.4-mini (a real mini id, 400K ctx, cheaper) OR gpt-5.6-luna (the 5.6 floor). Wire one explicitly."
          benchmarks: { note: "OpenAI: 'strongest mini model for coding, computer use, subagent deployments'" }
        cost: { input_per_mtok: 0.75, output_per_mtok: 4.50, cached_input_per_mtok: 0.075 }
        context_window: 400000
        max_output: 128000
        knowledge_cutoff: "2025-08-31"
        modalities: { input: [text, image], output: [text] }
        reasoning: { is_reasoning_model: true, effort_tiers: ["none (default)","low","medium","high","xhigh"] }
        release: "snapshot gpt-5.4-mini-2026-03-17"
        provenance: ["https://developers.openai.com/api/docs/models/gpt-5.4-mini"]

      - id: gpt-5.4-nano
        kit_status: available
        specialty: "True floor — cheapest current GPT-family text model for trivial high-volume work."
        confidence:
          kit: "⚠ AVAILABLE — NOT WIRED. A candidate free-adjacent cheap floor below gpt-5.4-mini for glue/classification if the local tier is busy."
          benchmarks: { note: "not public" }
        cost: { input_per_mtok: 0.20, output_per_mtok: 1.25, cached_input_per_mtok: 0.02 }
        context_window: 400000
        max_output: 128000
        knowledge_cutoff: "2025-08-31"
        modalities: { input: [text, image], output: [text] }
        release: "5.4 generation"
        provenance: ["https://developers.openai.com/api/docs/pricing"]

      # --- non-agentic (same OPENAI_API_KEY; an agent calls these as TOOLS) ---
      - id: "openai · image generation"
        kit_status: non_agentic
        specialty: "Text/image → image generation. Callable as a tool for creating/editing visuals."
        cost: "gpt-image-2 1024²: $0.006 / $0.053 / $0.211 (low/med/high) · gpt-image-1-mini: $0.005–0.052 (cheapest)"
        confidence: { kit: "TOOL-CALLABLE with the same OPENAI_API_KEY the codex agents use — not an executor itself. Invoke via the Images/Responses API." }
        models: "gpt-image-2 (flagship, snapshot 2026-04-21, $8/$30 per 1M) · gpt-image-1.5 & gpt-image-1-mini (retire 2026-12-01) · dall-e-2/3 SHUT DOWN 2026-05-12"
        modality: "text + image → image (png/jpeg/webp, ≤50MB in)"
        provenance: ["https://developers.openai.com/api/docs/guides/image-generation","https://developers.openai.com/api/docs/pricing"]

      - id: "openai · video generation (Sora)"
        kit_status: non_agentic
        specialty: "Text/image → video with audio. Callable as a tool for generated clips."
        cost: "sora-2: $0.10/sec (720p) · sora-2-pro: $0.30–0.70/sec by resolution · batch ~half"
        confidence: { kit: "TOOL-CALLABLE with the same key. Heavy/slow — batch it." }
        models: "sora-2 (720×1280 / 1280×720) · sora-2-pro (up to 1920×1080)"
        modality: "text / image → video + audio"
        provenance: ["https://developers.openai.com/api/docs/models/sora-2"]

      - id: "openai · speech-to-text"
        kit_status: non_agentic
        specialty: "Audio → text transcription. Callable as a tool for voice input / meeting notes / captions."
        cost: "whisper-1 & gpt-4o-transcribe: $0.006/min · gpt-4o-mini-transcribe: $0.003/min · realtime-whisper: $0.017/min"
        confidence: { kit: "TOOL-CALLABLE with the same key. gpt-4o-transcribe-diarize adds speaker labels." }
        models: "whisper-1 (25MB cap, multilingual) · gpt-4o-transcribe · gpt-4o-mini-transcribe · gpt-4o-transcribe-diarize · gpt-realtime-whisper (streaming)"
        modality: "audio → text"
        provenance: ["https://developers.openai.com/api/docs/guides/speech-to-text"]

      - id: "openai · text-to-speech"
        kit_status: non_agentic
        specialty: "Text → speech. Callable as a tool for voice output / narration."
        cost: "tts-1: $15/1M chars · tts-1-hd: $30/1M chars · gpt-4o-mini-tts: $0.60/1M in + $12/1M audio out"
        confidence: { kit: "TOOL-CALLABLE with the same key. gpt-4o-mini-tts is steerable (instruction-guided voice). Plus gpt-realtime-translate ($0.034/min) for live speech→speech translation." }
        models: "tts-1 · tts-1-hd (9 voices) · gpt-4o-mini-tts (13 voices, 2000-tok cap)"
        modality: "text → audio (mp3/opus/aac/flac/wav/pcm)"
        provenance: ["https://developers.openai.com/api/docs/guides/text-to-speech"]

      - id: "openai · embeddings"
        kit_status: non_agentic
        specialty: "Text → vector. Callable as a tool for RAG retrieval / clustering / semantic search."
        cost: "text-embedding-3-small: $0.02/1M · text-embedding-3-large: $0.13/1M · ada-002: $0.10/1M"
        confidence: { kit: "TOOL-CALLABLE with the same key — a paid alternative to the local nomic-embed-text floor when a hosted embedder is wanted. 3-large supports the `dimensions` param to shorten output." }
        models: "text-embedding-3-small (1536 dims) · text-embedding-3-large (3072 dims) · text-embedding-ada-002"
        specs: "8191-token max input; input-only pricing"
        provenance: ["https://developers.openai.com/api/docs/guides/embeddings"]

      - id: "openai · moderation"
        kit_status: non_agentic
        specialty: "Text+image → safety classification. Callable as a pre/post-flight guard (harassment/hate/self-harm/sexual/violence)."
        cost: "FREE"
        confidence: { kit: "TOOL-CALLABLE with the same key at $0. A cheap safety gate an agent can call before acting on / emitting content." }
        models: "omni-moderation-latest (snapshot 2024-09-26; images ≤20MB)"
        modality: "text + image → classification scores"
        provenance: ["https://developers.openai.com/api/docs/guides/moderation"]

  # ==========================================================================
  - id: anthropic
    label: "Anthropic — Claude"
    kit_lanes: ["claude-code (`claude -p --model <id>`)"]
    role_in_kit: "in-family implementer / conductor / CEILING — exhausted LAST (most expensive), spent on what weaker vendors cannot do. Commit-capable (unlike codex)."
    access: "claude -p \"<prompt>\" --model <id>"
    kit_confidence_family: >
      The ceiling tier and the conductor's own family (its scarcest pool BY CONSTRUCTION — the
      orchestrator spends it all day). Commit-capable where codex is not. Buffers -p output, so
      monitor claude workers via GROUND TRUTH (commits/ledger), not log tail. Route delegable
      side-tasks to OTHER families first (family_parity + quota thrift).
    models:

      - id: claude-opus-4-8
        kit_status: active
        specialty: "The kit's ceiling / critical tier — hardest core rounds, long-horizon wrong-is-expensive work."
        confidence:
          kit: "Ceiling. Spent LAST, on what the weaker/cheaper vendors cannot do. ~4x less likely than Opus 4.7 to let code flaws pass — a strong auditor as well as builder."
          benchmarks: { SWE_bench_Verified: "88.6% (3rd-party)", SWE_bench_Pro: "69.2%", GPQA_Diamond: "93.6% (3rd-party)", Terminal_bench_2.1: "74.6%/82.7% (sources disagree — flagged)" }
        cost: { input_per_mtok: 5.00, output_per_mtok: 25.00, cache_write_5m: 6.25, cache_read: 0.50, batch: "50% off", fast_mode: "$10/$50 flat (beta)" }
        context_window: 1000000
        max_output: 128000
        knowledge_cutoff: "2026-01 (reliable + training)"
        modalities: { input: [text, image, PDF], output: [text] }
        reasoning: { adaptive_thinking: "yes, OFF by default", effort_tiers: ["low","medium","high (default)","xhigh","max"], extended_budget_tokens: "not supported (400)" }
        features: ["tool use","structured outputs","streaming","vision","prompt caching (incl. automatic)","Batch API","citations","computer use (beta)","MCP connector (beta)","Files API (beta)","code execution","web search/fetch","task budgets (beta)","fast mode (beta, Opus-only)","mid-conversation system messages (Opus 4.8 only)"]
        rate_limits: "Shared Opus 4.x bucket. Scale tier: 10,000 RPM / 10M ITPM / 2M OTPM"
        release: "2026-05-28"
        provenance: ["https://platform.claude.com/docs/en/about-claude/models/overview","https://platform.claude.com/docs/en/about-claude/pricing"]
        notes: "IDs are pinned dateless snapshots (no -latest alias in the 4.6+ scheme)."

      - id: claude-fable-5
        kit_status: active
        specialty: "This workspace's pinned authoring model (Claude 5 family) — always-on adaptive thinking, SOTA-class reasoning."
        confidence:
          kit: "The packet-workspace ceiling (CLAUDE.md pins Fable 5). Thinking is ALWAYS ON (adaptive); raw CoT never returned. Its own (smaller) rate-limit bucket."
          benchmarks: { SWE_bench_Verified: "95.0% (3rd-party)", SWE_bench_Pro: "80.3%", Terminal_bench_2.1: "88.0%", Humanity_Last_Exam_tools: "64.5%" }
        cost: { input_per_mtok: 10.00, output_per_mtok: 50.00, cache_write_5m: 12.50, cache_read: 1.00, batch: "50% off" }
        context_window: 1000000
        max_output: 128000
        knowledge_cutoff: "2026-01"
        modalities: { input: [text, image, PDF], output: [text] }
        reasoning: { adaptive_thinking: "ALWAYS ON (disabled -> 400)", effort_tiers: ["low","medium","high","xhigh","max"], cot: "never returned raw (summarized/omitted only)" }
        features: ["effort","task budgets (beta)","memory tool","code execution","programmatic tool calling","context editing (beta)","compaction (beta)","vision","refusal stop-reason + server-side fallbacks"]
        rate_limits: "OWN bucket (smaller). Scale: 4,000 RPM / 4M ITPM / 800K OTPM"
        release: "GA 2026-06-09 (redeployed 2026-07-01 after an export-control pause)"
        provenance: ["https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5"]
        notes: "Requires 30-day retention (a 'Covered Model') — NOT available under zero-data-retention. Sister model Mythos 5 = same weights, classifiers removed (restricted — see below)."

      - id: claude-sonnet-5
        kit_status: active
        specialty: "The kit's standard / implementer tier — strong agentic coding at a fraction of Opus cost."
        confidence:
          kit: "The default implementer for standard work; adaptive thinking ON by default; first Sonnet with xhigh effort + hi-res vision. NOTE: substantially WEAKER than Opus 4.8 at cyber-exploit dev (0% on a Firefox exploit set) — route authorized-security work to Opus/Mythos, not Sonnet."
          benchmarks: { SWE_bench_Verified: "breaks 80%", SWE_bench_Pro: "63.2%", OSWorld_Verified: "81.2%", Terminal_bench_2.1: "80.4%", GPQA_Diamond: "96.2% (3rd-party, flagged high)" }
        cost: { intro_through_2026-08-31: "$2 in / $10 out", standard_from_2026-09-01: "$3 in / $15 out", cache_read_intro: 0.20, batch: "50% off" }
        context_window: 1000000
        max_output: 128000
        knowledge_cutoff: "2026-01"
        modalities: { input: [text, image, PDF], output: [text], vision: "hi-res 2576px long edge" }
        reasoning: { adaptive_thinking: "yes, ON by default", effort_tiers: ["low","medium","high (default)","xhigh","max"] }
        features: ["tool use","structured outputs","prompt caching (incl. automatic)","Batch API","citations","computer use (beta)","MCP connector (beta)","Files API (beta)","task budgets (beta)","compaction (beta)"]
        rate_limits: "Own bucket, same ceilings as Opus 4.x. Scale: 10,000 RPM / 10M ITPM / 2M OTPM"
        release: "2026-06-30"
        provenance: ["https://platform.claude.com/docs/en/about-claude/models/overview","https://www.anthropic.com/news/claude-sonnet-5"]

      - id: claude-haiku-4-5-20251001
        kit_status: active
        alias: "claude-haiku-4-5"
        specialty: "Light / mechanical tier — cheap, fast; ~90% of Sonnet 4.5 agentic-coding at a fraction of the cost."
        confidence:
          kit: "The cheap fast tier for mechanical/light work. Pre-4.6 API shape: supports CLASSIC budget_tokens thinking, NO adaptive/effort. Anthropic's 'safest model yet' by internal metrics."
          benchmarks: { SWE_bench_Verified: "73.3%", Terminal_bench: "40.2% (no thinking) / 41.75% (32K budget)" }
        cost: { input_per_mtok: 1.00, output_per_mtok: 5.00, cache_write_5m: 1.25, cache_read: 0.10, batch: "50% off" }
        context_window: 200000
        max_output: 64000
        knowledge_cutoff: "reliable 2025-02 / training 2025-07"
        modalities: { input: [text, image, PDF], output: [text] }
        reasoning: { extended_budget_tokens: "SUPPORTED (classic API)", adaptive_thinking: "no", effort: "not supported" }
        features: ["tool use","structured outputs","streaming","vision","prompt caching","Batch API","citations","MCP connector","Files API","interleaved thinking (legacy beta header)"]
        rate_limits: "General bucket. Scale: 10,000 RPM / 10M ITPM / 2M OTPM"
        release: "2025-10-15"
        provenance: ["https://platform.claude.com/docs/en/about-claude/models/overview","https://www.anthropic.com/news/claude-haiku-4-5"]
        notes: "The only currently-wired model below 1M context / 128K output."

      # --- available / restricted / deprecated (NOT wired — the gap list) ---
      - id: claude-mythos-5
        kit_status: restricted
        specialty: "Same weights as Fable 5 with SAFETY CLASSIFIERS REMOVED — for vetted cyberdefense/biosecurity work."
        confidence:
          kit: "⚠ RESTRICTED — invite-only via Project Glasswing (~150 orgs). NO self-serve key, no Console toggle, no waitlist. The ONLY Claude with cyber safeguards lifted — directly relevant to Wolf's authorized bug-bounty/pentest work IF a Glasswing partnership is approved. Un-wireable today: no code path makes it selectable."
        cost: { input_per_mtok: 10.00, output_per_mtok: 50.00, note: "identical to Fable 5" }
        context_window: 1000000
        max_output: 128000
        knowledge_cutoff: "2026-01"
        release: "2026-06-09"
        provenance: ["https://platform.claude.com/docs/en/about-claude/models/overview"]

      - id: claude-opus-4-7
        kit_status: available
        specialty: "Previous-gen Opus flagship (one rung below 4.8)."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED. Same price as 4.8, strictly weaker. Only value: a version-pinned reproducibility fallback if 4.8 regresses." }
        cost: { input_per_mtok: 5.00, output_per_mtok: 25.00 }
        context_window: 1000000
        max_output: 128000
        release: "2026-04-16 (Active; retire not before 2027-04-16)"
        provenance: ["https://platform.claude.com/docs/en/about-claude/model-deprecations"]

      - id: claude-sonnet-4-6
        kit_status: available
        specialty: "Previous-gen Sonnet (predecessor to Sonnet 5)."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED. Currently MORE expensive ($3/$15) than Sonnet 5's intro rate and weaker. No reason to add." }
        cost: { input_per_mtok: 3.00, output_per_mtok: 15.00 }
        context_window: 1000000
        max_output: 128000
        release: "2026-02-18 (Active; retire not before 2027-02-17)"
        provenance: ["https://platform.claude.com/docs/en/about-claude/model-deprecations"]

      - id: claude-opus-4-5
        kit_status: available
        specialty: "Last Opus before the 4.6+ adaptive-only generation — supports BOTH budget_tokens AND effort."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED. Only relevant if a component needs a fixed thinking-token CEILING (budget_tokens) rather than adaptive/effort. 200K ctx." }
        cost: { input_per_mtok: 5.00, output_per_mtok: 25.00 }
        context_window: 200000
        max_output: 64000
        release: "2025-11-24 (Active; retire not before 2026-11-24)"
        provenance: ["https://platform.claude.com/docs/en/about-claude/model-deprecations"]

      - id: claude-sonnet-4-5
        kit_status: available
        specialty: "Pre-4.6 Sonnet — classic budget_tokens thinking, 200K ctx."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED, and the EARLIEST retirement floor of any Active model (not before 2026-09-29). Superseded by Sonnet 5 at a lower intro price." }
        cost: { input_per_mtok: 3.00, output_per_mtok: 15.00 }
        context_window: 200000
        max_output: 64000
        release: "2025-09-29 (Active; retire not before 2026-09-29)"
        provenance: ["https://platform.claude.com/docs/en/about-claude/model-deprecations"]

      - id: claude-opus-4-1
        kit_status: deprecated
        specialty: "Two-gen-old Opus."
        confidence: { kit: "⚠ DEPRECATED — RETIRES 2026-08-05 (~2 weeks). 3x the price of 4.8 for less capability. If ANY kit config hardcodes `claude-opus-4-1`, that is a LIVE BUG to fix before it 404s." }
        cost: { input_per_mtok: 15.00, output_per_mtok: 75.00 }
        context_window: 200000
        max_output: 32000
        release: "2025-08-05 (retires 2026-08-05)"
        provenance: ["https://platform.claude.com/docs/en/about-claude/model-deprecations"]

      - id: claude-haiku-3-5
        kit_status: retired
        specialty: "Old cheap tier."
        confidence: { kit: "⚠ RETIRED on the first-party API (2026-02-19). Listed ONLY so nothing references `claude-3-5-haiku-20241022`. (Still on Bedrock/Vertex with their own schedules.)" }
        provenance: ["https://platform.claude.com/docs/en/about-claude/model-deprecations"]

      # --- non-agentic ---
      - id: "anthropic · (text-only family)"
        kit_status: non_agentic
        specialty: "Anthropic ships NO non-agentic models — no image, video, audio, or embedding models. Claude is a text/vision-in → text family only."
        cost: "n/a"
        confidence: { kit: "For image/audio/video/embedding TOOLS, an agent on the Claude key must reach ANOTHER family (OpenAI/Google/xAI) or a local model. Claude itself accepts image + PDF INPUT (vision) but only emits text." }
        provenance: ["https://platform.claude.com/docs/en/about-claude/models/overview"]

  # ==========================================================================
  - id: xai
    label: "xAI — Grok"
    kit_lanes: ["grok-cli (Grok Build, SuperGrok OAuth — subscription quota, not per-token)"]
    role_in_kit: "adversarial SECURITY-review lens — the SECOND lens next to agy; also wide cheap parallel recon / N-variant prototyping."
    access: "grok -p \"<prompt>\" -m <id>   (OAuth ties to SuperGrok; --effort low|medium|high)"
    kit_confidence_family: >
      HIGH-RECALL / LOW-PRECISION and inconsistent — treat EVERY output as a LEAD, never a final
      answer. Adjudicate every grok finding against the actual code; NEVER block a ship on an
      unverified grok flag. It earns its seat by occasionally catching the real one nobody else
      did (Observify 2026-07-18: 2 rounds ALL false-positives, 1 round 2 REAL findings — a TOCTOU
      + a tail-path arbitrary-read the builder AND agy both missed, 1 round empty). SuperGrok is
      the DURABLE review pool — its window outlasts agy's; when agy caps for days, grok survives.
    models:

      - id: grok-4.5
        kit_status: active
        specialty: "Flagship — adversarial security/recon lens; coding + agentic work; mandatory reasoning."
        confidence:
          kit: "The kit's grok default. Security lens: lead-only, adjudicate every finding. Reasoning is MANDATORY (cannot disable). Vision + live web/X search."
          benchmarks: { SWE_bench_Pro: "64.7%", Terminal_bench_2.1: "83.3%", DeepSWE_1.1: "53%", AA_Intelligence_Index: "54 (rank ~#4)", AA_Coding_Agent_Index: "76", hallucination: "AA-Omniscience 54% (up from 25% on 4.3 — flagged)" }
        cost: { input_per_mtok: 2.00, output_per_mtok: 6.00, cached_input_per_mtok: 0.30, over_200k: "$4 in / $12 out", note: "SuperGrok OAuth via the CLI draws subscription quota, not per-token billing" }
        context_window: 500000
        max_output: "not public"
        knowledge_cutoff: "2026-02-01 (single-source, flagged)"
        modalities: { input: [text, image], output: [text], live_search: "web + X real-time" }
        reasoning: { is_reasoning_model: true, mandatory: true, effort_tiers: ["low","medium","high (default)"], note: "presence/frequency penalty + stop are rejected" }
        features: ["function/tool calling","structured outputs","vision","live web/X search","native subagents (Grok Build harness)","--worktree per-agent"]
        rate_limits: "150 req/s, 50M TPM (API tier); regions us-east-1/us-west-2 (+EU)"
        release: "~2026-07-16 (x.ai/news; 3rd-party says Jul 8 — flagged)"
        provenance: ["https://docs.x.ai/developers/models/grok-4.5","https://docs.x.ai/developers/pricing","https://docs.x.ai/build/cli/reference"]
        notes: "Aliases grok-4.5-latest, grok-build-latest."

      - id: grok-4.3
        kit_status: available
        specialty: "General-purpose flagship-adjacent — cheaper than 4.5, TWICE the context (1M)."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED. A candidate BIG-CONTEXT + cheaper grok lane (1M ctx vs 4.5's 500K). Also the silent redirect target for all retired grok-4/grok-3 slugs. Benchmarks mostly 3rd-party/low-confidence." }
        cost: { input_per_mtok: 1.25, output_per_mtok: 2.50, cached_input_per_mtok: 0.20, over_200k: "$2.50/$5", batch: "-20%" }
        context_window: 1000000
        modalities: { input: [text, image], output: [text] }
        reasoning: { is_reasoning_model: true }
        release: "~2026-04-30 (AA article; no x.ai/news post)"
        provenance: ["https://docs.x.ai/developers/models/grok-4.3"]

      - id: grok-build-0.1
        kit_status: available
        specialty: "Dedicated CODING/agentic-engineering model (successor to grok-code-fast-1) — the cheapest current xAI text model."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED. A cheap dedicated CODING lane worth piloting against codex/gpt-oss on bounded tickets. Predecessor grok-code-fast-1 scored 70.8% SWE-Bench Verified, 190 TPS (xAI's own claim, old slug)." }
        cost: { input_per_mtok: 1.00, output_per_mtok: 2.00, cached_input_per_mtok: 0.20, over_200k: "$2/$4" }
        context_window: 256000
        modalities: { input: [text, image], output: [text] }
        reasoning: { is_reasoning_model: true }
        features: ["function calling","structured outputs"]
        release: "~2026-05 (day unconfirmed)"
        provenance: ["https://docs.x.ai/developers/models/grok-build-0.1"]
        notes: "Aliases: grok-code-fast-1, grok-code-fast (old names redirect here)."

      - id: grok-4.20-multi-agent-0309
        kit_status: available
        specialty: "Parallel multi-agent 'deep research' mode (successor to consumer 'Heavy') — reasoning.effort controls agent count (4 or 16)."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED. A native parallel-agent deep-research lane; overlaps what the kit does with its own fan-out, so lower priority — but a candidate for single-call wide recon. Lower rate limits (9 req/s)." }
        cost: { input_per_mtok: 1.25, output_per_mtok: 2.50, cached_input_per_mtok: 0.20, over_200k: "$2.50/$5" }
        context_window: 1000000
        reasoning: { is_reasoning_model: true, effort_controls_agent_count: "4 or 16 agents" }
        rate_limits: "9 req/s, 2.5M TPM (multi-agent fan-out cost)"
        release: "~2026-03"
        provenance: ["https://docs.x.ai/developers/models/grok-4.20-multi-agent-0309"]

      - id: grok-4.20-reasoning-and-non-reasoning
        kit_status: available
        specialty: "grok-4.20-0309-reasoning (reasoning-on) and -non-reasoning (lowest hallucination, strict prompt adherence) — 1M context."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED. The non-reasoning variant's 'lowest hallucination / strict adherence' profile is interesting for schema-forced extraction; the reasoning variant is a cheaper 1M-ctx alternative to 4.5." }
        cost: { input_per_mtok: 1.25, output_per_mtok: 2.50, cached_input_per_mtok: 0.20 }
        context_window: 1000000
        reasoning: { note: "one variant reasoning-on, one reasoning-off" }
        provenance: ["https://docs.x.ai/developers/models/grok-4.20-0309-reasoning","https://docs.x.ai/developers/models/grok-4.20-0309-non-reasoning"]

      - id: grok-4-and-grok-3-legacy
        kit_status: retired
        specialty: "grok-4, grok-4-fast, grok-4.1-fast, grok-4-0709, grok-3, grok-code-fast-1, grok-3-mini."
        confidence: { kit: "⚠ RETIRED 2026-05-15 — these slugs silently redirect to grok-4.3 / grok-build-0.1 and bill at the successor's rate. Listed so nothing hardcodes a dead grok-4/grok-3 id. (grok-3-mini fully retires 2026-08-15.)" }
        provenance: ["https://docs.x.ai/developers/migration/may-15-retirement"]

      # --- non-agentic (same xAI key / SuperGrok; callable as agent TOOLS) ---
      - id: "xai · image generation"
        kit_status: non_agentic
        specialty: "Text/image → image generation."
        cost: "grok-imagine-image: $0.02/image · grok-imagine-image-quality: $0.05/image (flat)"
        confidence: { kit: "TOOL-CALLABLE with the same xAI key. Up to 10 images/request, 1K/2K, many aspect ratios. (grok-imagine-image-pro + grok-2-image retired 2026.)" }
        models: "grok-imagine-image · grok-imagine-image-quality (default 'best')"
        modality: "text + image → image"
        provenance: ["https://docs.x.ai/developers/models/grok-imagine-image"]

      - id: "xai · video generation"
        kit_status: non_agentic
        specialty: "Text/image/video → video."
        cost: "grok-imagine-video: $0.050/sec (≤720p) · grok-imagine-video-1.5: $0.080/sec (adds 1080p)"
        confidence: { kit: "TOOL-CALLABLE with the same key. 1–15s generation." }
        models: "grok-imagine-video · grok-imagine-video-1.5"
        modality: "text / image / video → video"
        provenance: ["https://docs.x.ai/developers/models/grok-imagine-video"]

      - id: "xai · speech (TTS + STT)"
        kit_status: non_agentic
        specialty: "Text→speech and audio→text, via /v1/tts and /v1/stt endpoints."
        cost: "TTS: $15/1M chars · STT: $0.10/hr (REST) / $0.20/hr (streaming)"
        confidence: { kit: "TOOL-CALLABLE with the same key. TTS voices (eve/ara/leo/rex/sal + cloning); STT does word-timestamps + diarization, 25 languages." }
        modality: "TTS text→audio · STT audio→text"
        provenance: ["https://docs.x.ai/developers/rest-api-reference/inference/voice"]

      - id: "xai · embeddings — NONE"
        kit_status: non_agentic
        specialty: "xAI exposes NO standalone embeddings model (confirmed negative)."
        cost: "n/a"
        confidence: { kit: "⚠ For RAG/embeddings, an agent on the xAI key must use ANOTHER family's embedder (OpenAI text-embedding-3, Google gemini-embedding-2) or the local nomic-embed-text. xAI's Collections API embeds internally with no selectable model/price." }
        provenance: ["https://docs.x.ai/developers/files/collections"]

  # ==========================================================================
  - id: local
    label: "Local open-weight (Ollama) — free floor"
    kit_lanes: ["ollama-local (glue: classify/label/normalize/triage)","codex-oss-local (gpt-oss coding — see the OpenAI family)"]
    role_in_kit: "the free FLOOR — zero quota, spend before any API token. Glue + retrieval; Holt's on-device brain runs here."
    access: "ollama run <model> \"<prompt>\"   (needs `ollama serve`; model pulled first)"
    kit_confidence_family: >
      Free and unlimited, but WEAKER — fills ambiguity with plausible-wrong and emits confident,
      fluent, WRONG output with NO cap signature to warn you (L92/L95 bite hardest). Use for
      glue and bounded work; orient it (seven levers) and audit at the SAME build-failing gates.
      ⚠ Ollama defaults to a SMALL context window — a silently-truncated weak model is worse than
      a weak model; set num_ctx explicitly. (gpt-oss:20b / :120b live in the OpenAI family above —
      they are OpenAI open-weights also run here via `codex --oss`.)
    models:

      - id: qwen3:8b
        kit_status: active
        specialty: "Holt's on-device BRAIN — closed-book graduate-exam answering on the Raspberry Pi (the Pi's model ceiling; 14b times out on the Pi). Hybrid thinking."
        confidence:
          kit: "The Pi's ACTIVE brain for Holt closed-book answering. Certifies Holt-as-deployed, so it is the HONEST exam model (using a bigger Mac model would inflate the grade). Instruct/thinking benchmarks NOT public at 8B; base-model figures only."
          benchmarks: { note: "8B thinking-checkpoint benchmarks NOT public. Qwen3-8B-Base: MMLU 76.9, GPQA 44.4, GSM8K 89.8, MATH 60.8" }
        cost: { paid: 0, note: "FREE local. q4_K_M 5.2GB / q8_0 8.9GB / fp16 16GB. Runs on a Raspberry Pi 5 (kit's own claim, not a vendor spec)." }
        params: { total: "8.2B (dense, 36 layers, GQA 32Q/8KV)", non_embedding: "6.95B" }
        context_window: "config max_position 40960 (Ollama shows ~40K); native 32768 → 131072 via YaRN (Qwen sources disagree — flagged)"
        modalities: { input: [text], output: [text] }
        reasoning: { is_reasoning_model: true, hybrid: "thinking / non-thinking toggle (/think, /no_think, enable_thinking)" }
        features: ["tool calling (Qwen-Agent + MCP)","license: Apache-2.0"]
        release: "2025-04-29 (Qwen3)"
        provenance: ["https://huggingface.co/Qwen/Qwen3-8B","https://ollama.com/library/qwen3","https://arxiv.org/abs/2505.09388"]

      - id: nomic-embed-text
        kit_status: active
        specialty: "Embedding backbone — text→vector for retrieval/RAG, clustering, classification (NOT a chat model)."
        confidence:
          kit: "Pulled on the Mac; the retrieval/embedding tier. ⚠ REQUIRES task-instruction prefixes (search_document: / search_query: / clustering: / classification:) or quality degrades. ⚠ Ollama defaults its context to 2K vs the model's native 8192 — raise num_ctx for long-doc RAG."
          benchmarks: { MTEB_avg: "62.28 (768-dim); beats OpenAI ada-002 & text-embedding-3-small on MTEB + long-context LoCo" }
        cost: { paid: 0, note: "FREE local. 274MB — runs on anything incl. a Pi." }
        params: { total: "137M (nomic-bert-2048 encoder)" }
        context_window: 8192
        embedding: { dimensions: "768 (Matryoshka truncatable to 512/256/128/64)", max_seq_tokens: 8192 }
        modalities: { input: [text], output: ["dense vector"] }
        features: ["Matryoshka dims","task-prefix required","license: Apache-2.0"]
        release: "2024-02-14 (v1.5)"
        provenance: ["https://huggingface.co/nomic-ai/nomic-embed-text-v1.5","https://arxiv.org/abs/2402.01613"]

      - id: qwen3:1.7b
        kit_status: available
        specialty: "Tiny nano glue tier — hybrid thinking at 1.7B for the cheapest local classification/labeling."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED (not confirmed pulled). A candidate nano glue model below gpt-oss:20b for trivial classification/triage on tight-RAM hosts. Base figures only: MMLU 62.6, GPQA 28.3." }
        cost: { paid: 0, note: "FREE local. q4_K_M 1.4GB / q8_0 2.2GB / fp16 4.1GB — Pi-class." }
        params: { total: "1.7B (dense, 28 layers, GQA 16Q/8KV)", non_embedding: "1.4B" }
        context_window: 32768
        modalities: { input: [text], output: [text] }
        reasoning: { is_reasoning_model: true, hybrid: "thinking/non-thinking toggle" }
        features: ["tool calling (Qwen-Agent)","license: Apache-2.0"]
        release: "2025-04-29"
        provenance: ["https://huggingface.co/Qwen/Qwen3-1.7B","https://ollama.com/library/qwen3"]
        notes: "Qwen3 also ships 0.6b / 4b / 14b / 32b dense + 30B-A3B / 235B-A22B MoE — other unused sizes if a bigger local tier is wanted."

  # ==========================================================================
  - id: google
    label: "Google — Gemini"
    kit_lanes: ["agy-cli (`agy -p ... --model <id>`; passthrough to the Gemini API registry)"]
    role_in_kit: "the big-window READ-ONLY CORRECTNESS / architecture auditor — whole-monorepo + full external docs in one context."
    access: "agy -p \"<prompt>\" --mode plan --model <id>   (READ-ONLY posture: --mode plan, NOT --dangerously-skip-permissions)"
    kit_confidence_family: >
      The MOST RELIABLE correctness/architecture reviewer in the roster — clean, line-cited
      findings (Observify 2026-07-18: caught 4 real unit/logic bugs + a request-path issue codex
      shipped). READ-ONLY BY CONVENTION — enforce at the LAUNCH POSTURE (`--mode plan`), not the
      prompt: given write access it EDITED the single-writer file it was reviewing (correct fix,
      but an L46 breach). The big-window seat. LIGHT subscription — caps FAST (multi-day / ~6.5-day
      reset); a green 1-token probe does NOT prove run-room. Pin explicit model ids, not `-latest`
      aliases — a silent repoint mid-audit is a reproducibility risk. ⚠ the kit does not record
      which Gemini tier agy uses — confirm with `agy models`.
    models:

      - id: gemini-3.1-pro-preview
        kit_status: active
        specialty: "Flagship Pro — the correctness/architecture auditor's tier: 1M context, strongest reasoning, best for whole-repo + docs audits."
        confidence:
          kit: "The likely agy auditor tier (big window + top correctness). ⚠ Still labeled 'Preview' (Gemini 3.5 Pro delayed). Deep Think mode is GATED (AI Ultra / early-access) — do not assume agy reaches it. Confirm the exact tier with `agy models`."
          benchmarks: { GPQA_Diamond: "94.3%", SWE_bench_Verified: "80.6%", SWE_bench_Pro: "54.2%", Terminal_bench_2.0: "68.5%", ARC_AGI_2: "77.1%", MMLU: "92.6%", HLE: "44.4% (51.4% w/ tools)" }
        cost: { input_per_mtok: 2.00, output_per_mtok: 12.00, cached_input_per_mtok: 0.20, over_200k: "$4 in / $18 out", batch: "$1/$6", cache_storage: "$4.50/1M/hr", search_grounding: "5k/mo free then $14/1k" }
        context_window: 1048576
        max_output: 65536
        knowledge_cutoff: "2025-01"
        modalities: { input: [text, image, audio, video, PDF], output: [text] }
        reasoning: { is_reasoning_model: true, thinking_level: ["minimal","low","medium","high (default)"], deep_think: "gated (AI Ultra / early-access only)", note: "keep temperature at default 1.0" }
        features: ["function/tool calling","structured outputs (incl. with tools)","streaming","code execution","Google Search + Maps grounding","URL context","Batch API","context caching","File Search / Files API","flex + priority inference"]
        no_support: ["audio/image generation","Live API","computer-use tool"]
        rate_limits: "no static table — AI Studio dashboard, account-specific (tier by spend)"
        release: "Preview 2026-02-19"
        provenance: ["https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview","https://ai.google.dev/gemini-api/docs/pricing","https://storage.googleapis.com/deepmind-media/Model-Cards/Gemini-3-1-Pro-Model-Card.pdf"]
        notes: "Free tier NOT available for Pro-class (pulled ~Apr 2026). Also `-customtools` variant that de-prioritizes bash/shell in favor of declared tools."

      - id: gemini-3.6-flash
        kit_status: available
        specialty: "Current Flash — fast/mid, cheaper than Pro, FRESH knowledge cutoff (Mar 2026), computer-use tool."
        confidence:
          kit: "⚠ AVAILABLE — NOT WIRED. A cheaper, FASTER auditor/reviewer tier with the NEWEST cutoff (Mar 2026 vs Pro's Jan 2025) — attractive for high-volume review passes or when agy's Pro quota is scarce. Free tier available (rate-limited)."
          benchmarks: { SWE_bench_Pro: "58.7%", OSWorld_Verified: "83.0%", Terminal_bench_2.1: "78.0%", MLE_Bench: "63.9%", MRCR_128k: "91.8%" }
        cost: { input_per_mtok: 1.50, output_per_mtok: 7.50, cached_input_per_mtok: 0.15, batch: "$0.75/$3.75" }
        context_window: 1048576
        max_output: 65536
        knowledge_cutoff: "2026-03"
        modalities: { input: [text, image, audio, video, PDF], output: [text] }
        reasoning: { is_reasoning_model: true, thinking_level: ["minimal","low","medium","high"] }
        features: ["function calling","structured outputs","code execution","Search + Maps grounding","URL context","Batch API","context caching","computer-use (preview)"]
        release: "GA 2026-07-21"
        provenance: ["https://ai.google.dev/gemini-api/docs/models/gemini-3.6-flash","https://deepmind.google/models/model-cards/gemini-3-6-flash/"]

      - id: gemini-3.5-flash-lite
        kit_status: available
        specialty: "Cheapest current Gemini — fast (~350 tok/s), Mar-2026 cutoff, computer-use built-in."
        confidence:
          kit: "⚠ AVAILABLE — NOT WIRED. A very cheap Gemini glue/triage/classification tier ($0.30/$2.50) with a fresh cutoff — a candidate free-tier-eligible reviewer for high volume when the local floor is busy."
          benchmarks: { SWE_bench_Pro: "54.2%", Terminal_bench_2.1: "54.0%", OSWorld_Verified: "74.0%" }
        cost: { input_per_mtok: 0.30, output_per_mtok: 2.50, cached_input_per_mtok: 0.03, batch: "$0.15/$1.25" }
        context_window: 1048576
        max_output: 65536
        knowledge_cutoff: "2026-03"
        modalities: { input: [text, image, audio, video, PDF], output: [text] }
        reasoning: { is_reasoning_model: true, thinking_level: ["minimal","low","higher"] }
        features: ["function calling","structured outputs","code execution","Search grounding","Batch API","context caching","computer-use tool"]
        release: "GA 2026-07-21"
        provenance: ["https://deepmind.google/models/model-cards/gemini-3-5-flash-lite/","https://ai.google.dev/gemini-api/docs/pricing"]

      - id: gemini-3.5-flash-cyber
        kit_status: restricted
        specialty: "Gemini fine-tuned for VULNERABILITY DISCOVERY & fixing — the CodeMender pilot model."
        confidence:
          kit: "⚠ RESTRICTED — governments + trusted partners only (CodeMender pilot); NOT generally available, no public spec sheet. Directly relevant to Wolf's authorized bug-bounty/pentest work IF partner access is granted — un-wireable to `agy` today."
        release: "2026-07-21"
        provenance: ["https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-6-flash-3-5-flash-lite-3-5-flash-cyber/"]

      - id: gemini-3.5-flash
        kit_status: available
        specialty: "Previous Flash (predecessor to 3.6) — still GA."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED. Superseded by 3.6 Flash (cheaper output, fresher cutoff); no reason to pick over 3.6. Jan-2025 cutoff." }
        cost: { input_per_mtok: 1.50, output_per_mtok: 9.00, cached_input_per_mtok: 0.15 }
        context_window: 1048576
        max_output: 65536
        knowledge_cutoff: "2025-01"
        release: "GA 2026-05-19"
        provenance: ["https://ai.google.dev/gemini-api/docs/models/gemini-3.5-flash"]

      - id: gemini-2.5-pro
        kit_status: available
        specialty: "Previous-gen Pro flagship — still GA as a fallback tier."
        confidence: { kit: "⚠ AVAILABLE — NOT WIRED. Older-gen fallback if the 3.x Pro quota is exhausted; classic thinking_budget (128-32768, no full disable). Weaker than 3.1 Pro." }
        cost: { input_per_mtok: 1.25, output_per_mtok: 10.00, over_200k: "$2.50/$15", cached_input_per_mtok: 0.13 }
        context_window: 1048576
        max_output: 65536
        knowledge_cutoff: "2025-01"
        reasoning: { thinking_budget: "128-32768 or -1 dynamic (cannot fully disable)" }
        benchmarks: { GPQA_Diamond: "86.4%", SWE_bench_Verified: "59.6% (single) / 67.2% (multi)", AIME_2025: "88.0%", Aider_Polyglot: "82.2%" }
        release: "GA 2025-06-17"
        provenance: ["https://ai.google.dev/gemini-api/docs/models/gemini-2.5-pro"]
        notes: "Gemini 2.5 Flash ($0.30/$2.50, thinking_budget 0-24576) and 2.5 Flash-Lite ($0.10/$0.40) also still GA — cheap legacy fallbacks."

      - id: gemini-3-pro-preview-and-2.0-legacy
        kit_status: deprecated
        specialty: "gemini-3-pro-preview (Nov 2025), gemini-2.0-flash, gemini-2.0-flash-lite."
        confidence: { kit: "⚠ RETIRED — gemini-3-pro-preview shut down 2026-03-09 (migrate to 3.1 Pro Preview); Gemini 2.0 Flash/Flash-Lite shut down 2026-06-01. Listed so nothing targets a dead Gemini id." }
        provenance: ["https://ai.google.dev/gemini-api/docs/changelog"]

      # --- non-agentic (same Gemini API key `agy` uses; callable as agent TOOLS) ---
      - id: "google · image generation"
        kit_status: non_agentic
        specialty: "Text/image → image generation & editing (Nano Banana / Imagen)."
        cost: "gemini-3.1-flash-image (Nano Banana 2): $0.045–0.151/img by res · gemini-3-pro-image (Pro, 4K): $0.134–0.24 · flash-lite-image: $0.034/img"
        confidence: { kit: "TOOL-CALLABLE with the same Gemini key. Nano Banana 2 is strong at layout/text-in-image. (Imagen 4 deprecated — shuts down 2026-08-17.)" }
        models: "gemini-3.1-flash-image · gemini-3.1-flash-lite-image · gemini-3-pro-image · gemini-2.5-flash-image (legacy)"
        modality: "text + image → image (up to 4K)"
        provenance: ["https://ai.google.dev/gemini-api/docs/imagen","https://ai.google.dev/gemini-api/docs/pricing"]

      - id: "google · video generation (Veo)"
        kit_status: non_agentic
        specialty: "Text/image → video WITH native audio."
        cost: "veo-3.1-generate-preview: $0.40/sec (720p/1080p), $0.60 (4K) · veo-3.1-fast: $0.10–0.30/sec · veo-3.1-lite: $0.05–0.08/sec"
        confidence: { kit: "TOOL-CALLABLE with the same key. Native audio (Veo 3.x). ⚠ Veo 2/3 past their announced shutdown but docs still list them — smoke-test before depending." }
        models: "veo-3.1-generate-preview · veo-3.1-fast · veo-3.1-lite · gemini-omni-flash-preview (conversational video edit)"
        modality: "text / image → video + audio"
        provenance: ["https://ai.google.dev/gemini-api/docs/veo"]

      - id: "google · text-to-speech & music"
        kit_status: non_agentic
        specialty: "Text→speech (30 voices, 90+ langs) and text→music (Lyria)."
        cost: "TTS gemini-3.1-flash-tts: $1/1M in + $20/1M audio out · Lyria 3 Pro: $0.08/song · Lyria 3 Clip (30s): $0.04/song"
        confidence: { kit: "TOOL-CALLABLE with the same key. TTS single/dual-speaker, expressive tags. Lyria makes full songs from a prompt + lyrics." }
        models: "gemini-3.1-flash-tts-preview · gemini-2.5-{flash,pro}-preview-tts · lyria-3-pro-preview · lyria-3-clip-preview · lyria-realtime-exp"
        modality: "text → audio (PCM 24kHz) · text → music (mp3/wav)"
        provenance: ["https://ai.google.dev/gemini-api/docs/speech-generation","https://ai.google.dev/gemini-api/docs/music-generation"]

      - id: "google · embeddings (multimodal)"
        kit_status: non_agentic
        specialty: "Text/image/audio/video/PDF → unified embedding vector. The first MULTIMODAL embedder — a strong RAG tool."
        cost: "gemini-embedding-2: text $0.20/1M · image $0.45/1M · audio $6.50/1M · video $12/1M · gemini-embedding-001: $0.15/1M text-only"
        confidence: { kit: "TOOL-CALLABLE with the same key. gemini-embedding-2 embeds ALL modalities into one space (128–3072 flexible dims, 8192-tok input) — the hosted upgrade over local nomic-embed-text for multimodal retrieval. (text-embedding-004 shut down 2026-01-14; -001 and -2 spaces are incompatible.)" }
        models: "gemini-embedding-2 (multimodal) · gemini-embedding-001 (text, 2048-tok)"
        modality: "text/image/audio/video/PDF → vector"
        provenance: ["https://ai.google.dev/gemini-api/docs/embeddings"]

      - id: "google · Live API / realtime voice"
        kit_status: non_agentic
        specialty: "Bidirectional real-time audio dialogue + live speech-to-speech translation."
        cost: "gemini-3.1-flash-live: audio $3/1M in ($0.005/min), $12/1M out ($0.018/min) · gemini-3.5-live-translate: ~$0.0053/$0.0315 per min"
        confidence: { kit: "TOOL-CALLABLE with the same key (WebSocket). A2A voice + 70-lang live translation. Also fills Gemini's STT gap — there is NO standalone Gemini transcription model; for pure STT use Google Cloud Speech-to-Text (a SEPARATE product/key) or send audio to a chat model." }
        models: "gemini-3.1-flash-live-preview · gemini-3.5-live-translate-preview · gemini-2.5-flash-native-audio-preview"
        modality: "audio+text+image+video → audio+text"
        provenance: ["https://ai.google.dev/gemini-api/docs/live"]

      - id: "google · specialist (computer-use, robotics)"
        kit_status: non_agentic
        specialty: "Purpose-built action models: screen control and embodied/robot reasoning."
        cost: "gemini-2.5-computer-use-preview: $1.25/$10 per 1M · gemini-robotics-er-1.6-preview: $1/$5 per 1M"
        confidence: { kit: "TOOL-CALLABLE with the same key, but lean agentic (they emit ACTIONS): computer-use returns click/type/navigate for browser automation; robotics-ER does spatial/physical task planning. Borderline agentic — flagged." }
        models: "gemini-2.5-computer-use-preview-10-2025 · gemini-robotics-er-1.6-preview"
        provenance: ["https://ai.google.dev/gemini-api/docs/models"]

