{
  "components": {
    "schemas": {
      "AcTile": {
        "additionalProperties": false,
        "properties": {
          "current": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current"
          },
          "current_numeric": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Numeric"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "source": {
            "title": "Source",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "target",
          "source",
          "status",
          "current",
          "current_numeric"
        ],
        "title": "AcTile",
        "type": "object"
      },
      "AcceptRequest": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "default": "blake",
            "title": "Actor",
            "type": "string"
          },
          "override_gate": {
            "default": false,
            "title": "Override Gate",
            "type": "boolean"
          },
          "review_rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Review Rationale",
            "type": "string"
          }
        },
        "required": [
          "review_rationale"
        ],
        "title": "AcceptRequest",
        "type": "object"
      },
      "AnnotateRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "contradicts",
              "supersedes",
              "coexistent",
              "false-positive"
            ],
            "title": "Action",
            "type": "string"
          },
          "by": {
            "default": "blake",
            "title": "By",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": [
          "action",
          "rationale"
        ],
        "title": "AnnotateRequest",
        "type": "object"
      },
      "AskRequest": {
        "additionalProperties": false,
        "properties": {
          "intent_hint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Intent Hint"
          },
          "question": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Question",
            "type": "string"
          },
          "scope": {
            "default": "life",
            "title": "Scope",
            "type": "string"
          }
        },
        "required": [
          "question"
        ],
        "title": "AskRequest",
        "type": "object"
      },
      "AskResponse": {
        "properties": {
          "anchors": {
            "items": {
              "type": "string"
            },
            "title": "Anchors",
            "type": "array"
          },
          "answer": {
            "title": "Answer",
            "type": "string"
          },
          "citations": {
            "items": {
              "$ref": "#/components/schemas/Citation"
            },
            "title": "Citations",
            "type": "array"
          },
          "confidence": {
            "title": "Confidence",
            "type": "number"
          },
          "intent": {
            "title": "Intent",
            "type": "string"
          },
          "latency_ms": {
            "title": "Latency Ms",
            "type": "number"
          },
          "question": {
            "title": "Question",
            "type": "string"
          },
          "temporal": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Temporal"
          },
          "usd": {
            "title": "Usd",
            "type": "number"
          }
        },
        "required": [
          "question",
          "intent",
          "answer",
          "citations",
          "anchors",
          "temporal",
          "confidence",
          "latency_ms",
          "usd"
        ],
        "title": "AskResponse",
        "type": "object"
      },
      "AttendeeIn": {
        "additionalProperties": false,
        "description": "Wire peer of `atlas.ingest.calendar_builder.AttendeeRecord`.",
        "properties": {
          "display_name": {
            "default": "",
            "title": "Display Name",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "is_organizer": {
            "default": false,
            "title": "Is Organizer",
            "type": "boolean"
          },
          "response_status": {
            "title": "Response Status",
            "type": "string"
          }
        },
        "required": [
          "email",
          "response_status"
        ],
        "title": "AttendeeIn",
        "type": "object"
      },
      "BatchResult": {
        "additionalProperties": false,
        "description": "Aggregated batch response — one of these for each structured endpoint.",
        "properties": {
          "records_processed": {
            "title": "Records Processed",
            "type": "integer"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/RecordResult"
            },
            "title": "Results",
            "type": "array"
          },
          "triples_written_total": {
            "title": "Triples Written Total",
            "type": "integer"
          }
        },
        "required": [
          "records_processed",
          "triples_written_total",
          "results"
        ],
        "title": "BatchResult",
        "type": "object"
      },
      "Body_post_voice_audio_v1_capture_voice_audio_post": {
        "properties": {
          "audio": {
            "contentMediaType": "application/octet-stream",
            "title": "Audio",
            "type": "string"
          },
          "device": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device"
          },
          "note_kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note Kind"
          }
        },
        "required": [
          "audio"
        ],
        "title": "Body_post_voice_audio_v1_capture_voice_audio_post",
        "type": "object"
      },
      "BulkDeferRequest": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "default": "blake",
            "title": "Actor",
            "type": "string"
          },
          "proposal_ids": {
            "items": {
              "type": "integer"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Proposal Ids",
            "type": "array"
          },
          "review_rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Review Rationale",
            "type": "string"
          }
        },
        "required": [
          "proposal_ids",
          "review_rationale"
        ],
        "title": "BulkDeferRequest",
        "type": "object"
      },
      "BulkGateRequest": {
        "additionalProperties": false,
        "properties": {
          "proposal_ids": {
            "items": {
              "type": "integer"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Proposal Ids",
            "type": "array"
          }
        },
        "required": [
          "proposal_ids"
        ],
        "title": "BulkGateRequest",
        "type": "object"
      },
      "BulkItemResult": {
        "additionalProperties": false,
        "description": "One row in a bulk-action response. `ok=False` means the proposal\nwas skipped (missing, terminal state, etc.); `detail` carries why.",
        "properties": {
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "ok": {
            "title": "Ok",
            "type": "boolean"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          }
        },
        "required": [
          "id",
          "ok"
        ],
        "title": "BulkItemResult",
        "type": "object"
      },
      "BulkRejectRequest": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "default": "blake",
            "title": "Actor",
            "type": "string"
          },
          "proposal_ids": {
            "items": {
              "type": "integer"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Proposal Ids",
            "type": "array"
          },
          "rejection_reason_tag": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejection Reason Tag"
          },
          "review_rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Review Rationale",
            "type": "string"
          }
        },
        "required": [
          "proposal_ids",
          "review_rationale"
        ],
        "title": "BulkRejectRequest",
        "type": "object"
      },
      "CalendarBatchIn": {
        "additionalProperties": false,
        "properties": {
          "records": {
            "items": {
              "$ref": "#/components/schemas/CalendarRecordIn"
            },
            "minItems": 1,
            "title": "Records",
            "type": "array"
          }
        },
        "required": [
          "records"
        ],
        "title": "CalendarBatchIn",
        "type": "object"
      },
      "CalendarRecordIn": {
        "additionalProperties": false,
        "description": "Wire peer of `atlas.ingest.calendar_builder.CalendarRecord`.",
        "properties": {
          "attendees": {
            "items": {
              "$ref": "#/components/schemas/AttendeeIn"
            },
            "title": "Attendees",
            "type": "array"
          },
          "calendar_id": {
            "title": "Calendar Id",
            "type": "string"
          },
          "description": {
            "default": "",
            "title": "Description",
            "type": "string"
          },
          "end": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End"
          },
          "event_id": {
            "title": "Event Id",
            "type": "string"
          },
          "event_iri": {
            "title": "Event Iri",
            "type": "string"
          },
          "recurrence_rule": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recurrence Rule"
          },
          "start": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "calendar_id",
          "summary",
          "event_iri"
        ],
        "title": "CalendarRecordIn",
        "type": "object"
      },
      "Citation": {
        "properties": {
          "chunk_id": {
            "title": "Chunk Id",
            "type": "string"
          },
          "snippet": {
            "title": "Snippet",
            "type": "string"
          },
          "source_iri": {
            "title": "Source Iri",
            "type": "string"
          }
        },
        "required": [
          "chunk_id",
          "source_iri",
          "snippet"
        ],
        "title": "Citation",
        "type": "object"
      },
      "CodeArtifactIn": {
        "additionalProperties": false,
        "description": "A bundle of commits/prs/reviews for one github event.\n\nThe github connector emits one of these per github API event (PushEvent →\ncommits; PullRequestEvent → pr; PullRequestReviewEvent → review). Bundling\nmatches `RDFStarWriter.write_code_artifact`'s natural shape and lets one\ntransaction cover the whole event.",
        "properties": {
          "commits": {
            "items": {
              "$ref": "#/components/schemas/CommitRecordIn"
            },
            "title": "Commits",
            "type": "array"
          },
          "prs": {
            "items": {
              "$ref": "#/components/schemas/PullRequestRecordIn"
            },
            "title": "Prs",
            "type": "array"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/ReviewRecordIn"
            },
            "title": "Reviews",
            "type": "array"
          }
        },
        "title": "CodeArtifactIn",
        "type": "object"
      },
      "CodeBatchIn": {
        "additionalProperties": false,
        "properties": {
          "records": {
            "items": {
              "$ref": "#/components/schemas/CodeArtifactIn"
            },
            "minItems": 1,
            "title": "Records",
            "type": "array"
          }
        },
        "required": [
          "records"
        ],
        "title": "CodeBatchIn",
        "type": "object"
      },
      "CommitRecordIn": {
        "additionalProperties": false,
        "description": "Wire peer of `atlas.ingest.code_builder.CommitRecord`.",
        "properties": {
          "author_iri": {
            "title": "Author Iri",
            "type": "string"
          },
          "author_login": {
            "title": "Author Login",
            "type": "string"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "repo": {
            "title": "Repo",
            "type": "string"
          },
          "sha": {
            "title": "Sha",
            "type": "string"
          },
          "short_sha": {
            "title": "Short Sha",
            "type": "string"
          },
          "timestamp": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timestamp"
          }
        },
        "required": [
          "sha",
          "short_sha",
          "repo",
          "author_login",
          "message",
          "iri",
          "author_iri"
        ],
        "title": "CommitRecordIn",
        "type": "object"
      },
      "ConfidenceStats": {
        "additionalProperties": false,
        "description": "Plan 010-B: epistemic confidence health tiles.\n\nlow_confidence_triples_count is derived from the confidence_events SQLite\ntable (migration 0015). If the migration hasn't run yet, the value is 0\n(graceful degradation — the old API contract is unchanged).",
        "properties": {
          "avg_confidence_last_30d": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avg Confidence Last 30D"
          },
          "low_confidence_triples_count": {
            "default": 0,
            "title": "Low Confidence Triples Count",
            "type": "integer"
          },
          "total_evidence_events": {
            "default": 0,
            "title": "Total Evidence Events",
            "type": "integer"
          }
        },
        "title": "ConfidenceStats",
        "type": "object"
      },
      "ContactCommitment": {
        "additionalProperties": false,
        "description": "A still-open commitment/promise involving the contact.",
        "properties": {
          "source_iri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Iri"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "valid_from": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid From"
          }
        },
        "required": [
          "summary"
        ],
        "title": "ContactCommitment",
        "type": "object"
      },
      "ContactContradiction": {
        "additionalProperties": false,
        "description": "An open contradiction whose subject is this contact.",
        "properties": {
          "detected_at": {
            "title": "Detected At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "object_a": {
            "title": "Object A",
            "type": "string"
          },
          "object_b": {
            "title": "Object B",
            "type": "string"
          },
          "predicate": {
            "title": "Predicate",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "predicate",
          "object_a",
          "object_b",
          "status",
          "detected_at"
        ],
        "title": "ContactContradiction",
        "type": "object"
      },
      "ContactEvent": {
        "additionalProperties": false,
        "description": "Calendar/meeting event involving the contact (from urn:atlas:graph:events).",
        "properties": {
          "end": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End"
          },
          "event_iri": {
            "title": "Event Iri",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role"
          },
          "start": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start"
          }
        },
        "required": [
          "event_iri"
        ],
        "title": "ContactEvent",
        "type": "object"
      },
      "ContactInteraction": {
        "additionalProperties": false,
        "properties": {
          "event_time": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event Time"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "event_time",
          "summary"
        ],
        "title": "ContactInteraction",
        "type": "object"
      },
      "ContactPreference": {
        "additionalProperties": false,
        "description": "A stable preference fact relevant to the contact (predicate/object pair).",
        "properties": {
          "predicate": {
            "title": "Predicate",
            "type": "string"
          },
          "valid_from": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid From"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": [
          "predicate",
          "value"
        ],
        "title": "ContactPreference",
        "type": "object"
      },
      "ContextItem": {
        "properties": {
          "fence": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fence"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "pinned": {
            "default": false,
            "title": "Pinned",
            "type": "boolean"
          },
          "score": {
            "title": "Score",
            "type": "number"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          },
          "text": {
            "title": "Text",
            "type": "string"
          },
          "valid_from": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid From"
          }
        },
        "required": [
          "text",
          "kind",
          "score"
        ],
        "title": "ContextItem",
        "type": "object"
      },
      "ContextPostRequest": {
        "additionalProperties": false,
        "properties": {
          "episode_summary": {
            "minLength": 1,
            "title": "Episode Summary",
            "type": "string"
          },
          "facts": {
            "items": {
              "type": "string"
            },
            "title": "Facts",
            "type": "array"
          },
          "lessons": {
            "items": {
              "type": "string"
            },
            "title": "Lessons",
            "type": "array"
          },
          "pinned": {
            "default": false,
            "title": "Pinned",
            "type": "boolean"
          },
          "provenance": {
            "$ref": "#/components/schemas/Provenance"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          }
        },
        "required": [
          "episode_summary",
          "provenance"
        ],
        "title": "ContextPostRequest",
        "type": "object"
      },
      "ContextPostResponse": {
        "properties": {
          "iris": {
            "items": {
              "type": "string"
            },
            "title": "Iris",
            "type": "array"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "written": {
            "title": "Written",
            "type": "integer"
          }
        },
        "required": [
          "iris",
          "written",
          "status"
        ],
        "title": "ContextPostResponse",
        "type": "object"
      },
      "ContextResponse": {
        "properties": {
          "budget_kb": {
            "title": "Budget Kb",
            "type": "integer"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ContextItem"
            },
            "title": "Items",
            "type": "array"
          },
          "returned_kb": {
            "title": "Returned Kb",
            "type": "number"
          },
          "total_candidates": {
            "title": "Total Candidates",
            "type": "integer"
          },
          "truncated": {
            "title": "Truncated",
            "type": "boolean"
          }
        },
        "required": [
          "items",
          "budget_kb",
          "returned_kb",
          "truncated",
          "total_candidates"
        ],
        "title": "ContextResponse",
        "type": "object"
      },
      "ContradictionItem": {
        "additionalProperties": false,
        "properties": {
          "annotated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Annotated At"
          },
          "annotated_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Annotated By"
          },
          "annotation_rationale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Annotation Rationale"
          },
          "detected_at": {
            "title": "Detected At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "llm_confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Llm Confidence"
          },
          "llm_rationale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Llm Rationale"
          },
          "llm_verdict": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Llm Verdict"
          },
          "object_a": {
            "title": "Object A",
            "type": "string"
          },
          "object_b": {
            "title": "Object B",
            "type": "string"
          },
          "predicate": {
            "title": "Predicate",
            "type": "string"
          },
          "source_a": {
            "title": "Source A",
            "type": "string"
          },
          "source_b": {
            "title": "Source B",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "subject_iri": {
            "title": "Subject Iri",
            "type": "string"
          }
        },
        "required": [
          "id",
          "subject_iri",
          "predicate",
          "object_a",
          "object_b",
          "source_a",
          "source_b",
          "kind",
          "status",
          "detected_at"
        ],
        "title": "ContradictionItem",
        "type": "object"
      },
      "CorpusStats": {
        "additionalProperties": false,
        "properties": {
          "chunks_total": {
            "title": "Chunks Total",
            "type": "integer"
          },
          "embedding_coverage_pct": {
            "title": "Embedding Coverage Pct",
            "type": "number"
          },
          "entities_total": {
            "title": "Entities Total",
            "type": "integer"
          },
          "sources_total": {
            "title": "Sources Total",
            "type": "integer"
          },
          "top_sources": {
            "items": {
              "$ref": "#/components/schemas/TopSource"
            },
            "title": "Top Sources",
            "type": "array"
          },
          "triples_total": {
            "title": "Triples Total",
            "type": "integer"
          }
        },
        "required": [
          "chunks_total",
          "entities_total",
          "triples_total",
          "sources_total",
          "embedding_coverage_pct",
          "top_sources"
        ],
        "title": "CorpusStats",
        "type": "object"
      },
      "CorpusStatus": {
        "additionalProperties": false,
        "properties": {
          "audited": {
            "title": "Audited",
            "type": "integer"
          },
          "by_type": {
            "additionalProperties": {
              "additionalProperties": {
                "type": "integer"
              },
              "type": "object"
            },
            "title": "By Type",
            "type": "object"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "total",
          "audited",
          "by_type"
        ],
        "title": "CorpusStatus",
        "type": "object"
      },
      "CostStats": {
        "additionalProperties": false,
        "properties": {
          "budget_monthly_usd": {
            "title": "Budget Monthly Usd",
            "type": "number"
          },
          "budget_remaining_usd": {
            "title": "Budget Remaining Usd",
            "type": "number"
          },
          "by_model_last_7d": {
            "additionalProperties": {
              "type": "number"
            },
            "title": "By Model Last 7D",
            "type": "object"
          },
          "last_30_days_usd": {
            "title": "Last 30 Days Usd",
            "type": "number"
          },
          "last_7_days_usd": {
            "title": "Last 7 Days Usd",
            "type": "number"
          },
          "month_to_date_usd": {
            "title": "Month To Date Usd",
            "type": "number"
          },
          "today_usd": {
            "title": "Today Usd",
            "type": "number"
          }
        },
        "required": [
          "today_usd",
          "last_7_days_usd",
          "last_30_days_usd",
          "month_to_date_usd",
          "budget_monthly_usd",
          "budget_remaining_usd",
          "by_model_last_7d"
        ],
        "title": "CostStats",
        "type": "object"
      },
      "CostSummary": {
        "additionalProperties": false,
        "description": "Plan 018-E: top-level LLM cost summary + cross-link to /v1/stats/llm.\n\nA thin re-roll of the cost panel highlighting the post-Portkey\nobservability surface. The full per-tier / per-service / per-task\nrollup lives at `/v1/stats/llm`.",
        "properties": {
          "budget_remaining_usd": {
            "title": "Budget Remaining Usd",
            "type": "number"
          },
          "details_endpoint": {
            "default": "/v1/stats/llm",
            "title": "Details Endpoint",
            "type": "string"
          },
          "last_30_days_usd": {
            "title": "Last 30 Days Usd",
            "type": "number"
          },
          "month_to_date_usd": {
            "title": "Month To Date Usd",
            "type": "number"
          }
        },
        "required": [
          "last_30_days_usd",
          "month_to_date_usd",
          "budget_remaining_usd"
        ],
        "title": "CostSummary",
        "type": "object"
      },
      "DetectResponse": {
        "additionalProperties": false,
        "properties": {
          "inserted": {
            "title": "Inserted",
            "type": "integer"
          },
          "skipped_existing": {
            "title": "Skipped Existing",
            "type": "integer"
          },
          "total_candidates": {
            "title": "Total Candidates",
            "type": "integer"
          }
        },
        "required": [
          "inserted",
          "skipped_existing",
          "total_candidates"
        ],
        "title": "DetectResponse",
        "type": "object"
      },
      "DocumentBatchIn": {
        "additionalProperties": false,
        "properties": {
          "records": {
            "items": {
              "$ref": "#/components/schemas/DocumentRecordIn"
            },
            "minItems": 1,
            "title": "Records",
            "type": "array"
          }
        },
        "required": [
          "records"
        ],
        "title": "DocumentBatchIn",
        "type": "object"
      },
      "DocumentRecordIn": {
        "additionalProperties": false,
        "description": "Wire peer of `atlas.ingest.doc_builder.DocumentRecord`.",
        "properties": {
          "file_name": {
            "title": "File Name",
            "type": "string"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "sections": {
            "items": {
              "$ref": "#/components/schemas/SectionIn"
            },
            "title": "Sections",
            "type": "array"
          },
          "source_iri": {
            "title": "Source Iri",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "source_iri",
          "file_name",
          "title",
          "iri"
        ],
        "title": "DocumentRecordIn",
        "type": "object"
      },
      "DriftAlertEntry": {
        "additionalProperties": false,
        "properties": {
          "after_exemplars": {
            "items": {
              "type": "string"
            },
            "title": "After Exemplars",
            "type": "array"
          },
          "alert_id": {
            "title": "Alert Id",
            "type": "string"
          },
          "before_exemplars": {
            "items": {
              "type": "string"
            },
            "title": "Before Exemplars",
            "type": "array"
          },
          "change_point_ts": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Change Point Ts"
          },
          "class_iri": {
            "title": "Class Iri",
            "type": "string"
          },
          "cosine_distance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cosine Distance"
          },
          "raised_at": {
            "title": "Raised At",
            "type": "string"
          }
        },
        "required": [
          "alert_id",
          "class_iri",
          "change_point_ts",
          "before_exemplars",
          "after_exemplars",
          "cosine_distance",
          "raised_at"
        ],
        "title": "DriftAlertEntry",
        "type": "object"
      },
      "DriftAlertsResponse": {
        "additionalProperties": false,
        "properties": {
          "alerts": {
            "items": {
              "$ref": "#/components/schemas/DriftAlertEntry"
            },
            "title": "Alerts",
            "type": "array"
          },
          "computed_at": {
            "title": "Computed At",
            "type": "string"
          }
        },
        "required": [
          "alerts",
          "computed_at"
        ],
        "title": "DriftAlertsResponse",
        "type": "object"
      },
      "EcosystemIn": {
        "additionalProperties": false,
        "properties": {
          "detect_manifest": {
            "items": {
              "type": "string"
            },
            "title": "Detect Manifest",
            "type": "array"
          },
          "install_by_lock": {
            "items": {
              "items": {},
              "type": "array"
            },
            "title": "Install By Lock",
            "type": "array"
          },
          "install_manifest": {
            "items": {
              "type": "string"
            },
            "title": "Install Manifest",
            "type": "array"
          },
          "language": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Language",
            "type": "string"
          },
          "relocate_kind": {
            "maxLength": 50,
            "minLength": 1,
            "title": "Relocate Kind",
            "type": "string"
          },
          "run_env": {
            "additionalProperties": true,
            "title": "Run Env",
            "type": "object"
          },
          "status": {
            "default": "active",
            "title": "Status",
            "type": "string"
          },
          "version_files": {
            "items": {
              "type": "string"
            },
            "title": "Version Files",
            "type": "array"
          }
        },
        "required": [
          "language",
          "relocate_kind"
        ],
        "title": "EcosystemIn",
        "type": "object"
      },
      "EcosystemOut": {
        "properties": {
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "detect_manifest": {
            "items": {
              "type": "string"
            },
            "title": "Detect Manifest",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "install_by_lock": {
            "items": {
              "items": {},
              "type": "array"
            },
            "title": "Install By Lock",
            "type": "array"
          },
          "install_manifest": {
            "items": {
              "type": "string"
            },
            "title": "Install Manifest",
            "type": "array"
          },
          "language": {
            "title": "Language",
            "type": "string"
          },
          "relocate_kind": {
            "title": "Relocate Kind",
            "type": "string"
          },
          "run_env": {
            "additionalProperties": true,
            "title": "Run Env",
            "type": "object"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          },
          "version_files": {
            "items": {
              "type": "string"
            },
            "title": "Version Files",
            "type": "array"
          }
        },
        "required": [
          "id",
          "language",
          "detect_manifest",
          "version_files",
          "install_by_lock",
          "install_manifest",
          "relocate_kind",
          "run_env",
          "status",
          "created_at",
          "updated_at"
        ],
        "title": "EcosystemOut",
        "type": "object"
      },
      "EmailBatchIn": {
        "additionalProperties": false,
        "properties": {
          "records": {
            "items": {
              "$ref": "#/components/schemas/EmailRecordIn"
            },
            "minItems": 1,
            "title": "Records",
            "type": "array"
          }
        },
        "required": [
          "records"
        ],
        "title": "EmailBatchIn",
        "type": "object"
      },
      "EmailRecordIn": {
        "additionalProperties": false,
        "description": "Wire peer of `atlas.ingest.email_builder.EmailRecord`.",
        "properties": {
          "event_time": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event Time"
          },
          "has_attachment": {
            "default": false,
            "title": "Has Attachment",
            "type": "boolean"
          },
          "message_id": {
            "title": "Message Id",
            "type": "string"
          },
          "message_iri": {
            "title": "Message Iri",
            "type": "string"
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/RecipientIn"
            },
            "title": "Recipients",
            "type": "array"
          },
          "subject": {
            "title": "Subject",
            "type": "string"
          },
          "thread_id": {
            "title": "Thread Id",
            "type": "string"
          },
          "thread_iri": {
            "title": "Thread Iri",
            "type": "string"
          }
        },
        "required": [
          "message_id",
          "thread_id",
          "subject",
          "message_iri",
          "thread_iri"
        ],
        "title": "EmailRecordIn",
        "type": "object"
      },
      "EntityDetailResponse": {
        "additionalProperties": false,
        "properties": {
          "aliases": {
            "items": {
              "type": "string"
            },
            "title": "Aliases",
            "type": "array"
          },
          "canonical_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canonical Name"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "triples": {
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Triples",
            "type": "array"
          },
          "types": {
            "items": {
              "type": "string"
            },
            "title": "Types",
            "type": "array"
          }
        },
        "required": [
          "iri",
          "types",
          "canonical_name",
          "aliases",
          "triples"
        ],
        "title": "EntityDetailResponse",
        "type": "object"
      },
      "EntityListItem": {
        "additionalProperties": false,
        "properties": {
          "canonical_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canonical Name"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "triple_count": {
            "title": "Triple Count",
            "type": "integer"
          },
          "types": {
            "items": {
              "type": "string"
            },
            "title": "Types",
            "type": "array"
          }
        },
        "required": [
          "iri",
          "canonical_name",
          "types",
          "triple_count"
        ],
        "title": "EntityListItem",
        "type": "object"
      },
      "EntityListResponse": {
        "additionalProperties": false,
        "properties": {
          "entities": {
            "items": {
              "$ref": "#/components/schemas/EntityListItem"
            },
            "title": "Entities",
            "type": "array"
          },
          "limit": {
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "title": "Offset",
            "type": "integer"
          }
        },
        "required": [
          "entities",
          "limit",
          "offset"
        ],
        "title": "EntityListResponse",
        "type": "object"
      },
      "EvidenceItem": {
        "additionalProperties": false,
        "properties": {
          "evidence_ref": {
            "title": "Evidence Ref",
            "type": "string"
          },
          "evidence_type": {
            "title": "Evidence Type",
            "type": "string"
          },
          "excerpt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excerpt"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "evidence_type",
          "evidence_ref",
          "excerpt"
        ],
        "title": "EvidenceItem",
        "type": "object"
      },
      "GetContactContextOutput": {
        "additionalProperties": false,
        "properties": {
          "canonical_name": {
            "title": "Canonical Name",
            "type": "string"
          },
          "commitments": {
            "items": {
              "$ref": "#/components/schemas/ContactCommitment"
            },
            "title": "Commitments",
            "type": "array"
          },
          "contradictions": {
            "items": {
              "$ref": "#/components/schemas/ContactContradiction"
            },
            "title": "Contradictions",
            "type": "array"
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/ContactEvent"
            },
            "title": "Events",
            "type": "array"
          },
          "last_touch": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Touch"
          },
          "org": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Org"
          },
          "person_iri": {
            "title": "Person Iri",
            "type": "string"
          },
          "preferences": {
            "items": {
              "$ref": "#/components/schemas/ContactPreference"
            },
            "title": "Preferences",
            "type": "array"
          },
          "recent_interactions": {
            "items": {
              "$ref": "#/components/schemas/ContactInteraction"
            },
            "title": "Recent Interactions",
            "type": "array"
          },
          "warm_intro_paths": {
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Warm Intro Paths",
            "type": "array"
          }
        },
        "required": [
          "person_iri",
          "canonical_name",
          "recent_interactions"
        ],
        "title": "GetContactContextOutput",
        "type": "object"
      },
      "GradeRequest": {
        "additionalProperties": false,
        "properties": {
          "drain_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Drain Run Id"
          },
          "outcome": {
            "enum": [
              "pass",
              "fail"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          }
        },
        "required": [
          "outcome"
        ],
        "title": "GradeRequest",
        "type": "object"
      },
      "GrowthCommit": {
        "additionalProperties": false,
        "properties": {
          "accepted_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted By"
          },
          "kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kind"
          },
          "proposal_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposal Id"
          },
          "rationale_excerpt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale Excerpt"
          }
        },
        "required": [
          "proposal_id",
          "accepted_by",
          "kind",
          "rationale_excerpt"
        ],
        "title": "GrowthCommit",
        "type": "object"
      },
      "GrowthPoint": {
        "additionalProperties": false,
        "properties": {
          "class_count": {
            "title": "Class Count",
            "type": "integer"
          },
          "commits": {
            "items": {
              "$ref": "#/components/schemas/GrowthCommit"
            },
            "title": "Commits",
            "type": "array"
          },
          "date": {
            "title": "Date",
            "type": "string"
          },
          "predicate_count": {
            "title": "Predicate Count",
            "type": "integer"
          }
        },
        "required": [
          "date",
          "class_count",
          "predicate_count"
        ],
        "title": "GrowthPoint",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "HeadingIn": {
        "additionalProperties": false,
        "description": "Wire peer of `atlas.ingest.doc_builder.HeadingRecord`.",
        "properties": {
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "level": {
            "maximum": 6.0,
            "minimum": 1.0,
            "title": "Level",
            "type": "integer"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text",
          "level",
          "iri"
        ],
        "title": "HeadingIn",
        "type": "object"
      },
      "HealthReportResponse": {
        "additionalProperties": false,
        "properties": {
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "snapshot": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Snapshot"
          }
        },
        "title": "HealthReportResponse",
        "type": "object"
      },
      "HealthResponse": {
        "properties": {
          "status": {
            "title": "Status",
            "type": "string"
          },
          "stores": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Stores",
            "type": "object"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "status",
          "version",
          "stores"
        ],
        "title": "HealthResponse",
        "type": "object"
      },
      "IngestAccepted": {
        "additionalProperties": false,
        "description": "Response for POST /v1/ingest.",
        "properties": {
          "accepted_at": {
            "format": "date-time",
            "title": "Accepted At",
            "type": "string"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/JobStatus",
            "default": "NEW"
          }
        },
        "required": [
          "job_id",
          "accepted_at"
        ],
        "title": "IngestAccepted",
        "type": "object"
      },
      "IngestJobView": {
        "additionalProperties": false,
        "description": "Response for GET /v1/jobs/{id}.",
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "source": {
            "title": "Source",
            "type": "string"
          },
          "source_iri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Iri"
          },
          "stage": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stage"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/atlas__ingest__events__JobStats"
          },
          "status": {
            "$ref": "#/components/schemas/JobStatus"
          }
        },
        "required": [
          "job_id",
          "source",
          "status",
          "started_at"
        ],
        "title": "IngestJobView",
        "type": "object"
      },
      "IngestProvenance": {
        "additionalProperties": false,
        "description": "Metadata supplied by the caller establishing when/by-whom the content arose.",
        "properties": {
          "actor": {
            "default": "blake",
            "title": "Actor",
            "type": "string"
          },
          "event_time": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event Time"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref"
          }
        },
        "title": "IngestProvenance",
        "type": "object"
      },
      "IngestRequest": {
        "additionalProperties": false,
        "description": "Input to POST /v1/ingest.",
        "properties": {
          "extraction_text_override": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extraction Text Override"
          },
          "is_email": {
            "default": false,
            "title": "Is Email",
            "type": "boolean"
          },
          "is_html": {
            "default": false,
            "title": "Is Html",
            "type": "boolean"
          },
          "provenance": {
            "$ref": "#/components/schemas/IngestProvenance"
          },
          "raw_text": {
            "minLength": 1,
            "title": "Raw Text",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/IngestSource"
          },
          "structured_hints": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/StructuredHint"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "raw_text"
        ],
        "title": "IngestRequest",
        "type": "object"
      },
      "IngestSource": {
        "additionalProperties": false,
        "description": "Who / what produced this ingestion payload.\n\nFor agent-push, `kind='agent'` with a framework + skill identifier lets us\nattribute provenance correctly. For connectors, `kind='connector'` with the\nconnector name (gmail, gcal, pipedrive).",
        "properties": {
          "connector": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Connector"
          },
          "framework": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Framework"
          },
          "kind": {
            "default": "manual",
            "enum": [
              "agent",
              "connector",
              "manual",
              "voice"
            ],
            "title": "Kind",
            "type": "string"
          },
          "resource_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Id"
          },
          "run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Run Id"
          },
          "skill": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Skill"
          }
        },
        "title": "IngestSource",
        "type": "object"
      },
      "IngestStats": {
        "additionalProperties": false,
        "properties": {
          "ingest_rate_last_7d_per_day": {
            "title": "Ingest Rate Last 7D Per Day",
            "type": "number"
          },
          "last_ingest_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Ingest At"
          }
        },
        "required": [
          "last_ingest_at",
          "ingest_rate_last_7d_per_day"
        ],
        "title": "IngestStats",
        "type": "object"
      },
      "JobFailure": {
        "additionalProperties": false,
        "properties": {
          "error_excerpt": {
            "title": "Error Excerpt",
            "type": "string"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "source": {
            "title": "Source",
            "type": "string"
          },
          "ts": {
            "title": "Ts",
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "source",
          "error_excerpt",
          "ts"
        ],
        "title": "JobFailure",
        "type": "object"
      },
      "JobStatus": {
        "enum": [
          "NEW",
          "PROCESSING",
          "COMPLETE",
          "FAILED"
        ],
        "title": "JobStatus",
        "type": "string"
      },
      "LLMReviewSummary": {
        "additionalProperties": false,
        "description": "Plan 014.1-B: LLM review fields surfaced on proposal detail.",
        "properties": {
          "classification": {
            "title": "Classification",
            "type": "string"
          },
          "ontoclean_violations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Ontoclean Violations",
            "type": "array"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "score": {
            "title": "Score",
            "type": "number"
          },
          "shadow_mode": {
            "default": true,
            "title": "Shadow Mode",
            "type": "boolean"
          }
        },
        "required": [
          "score",
          "classification",
          "rationale"
        ],
        "title": "LLMReviewSummary",
        "type": "object"
      },
      "LLMRollupCell": {
        "additionalProperties": false,
        "properties": {
          "calls": {
            "title": "Calls",
            "type": "integer"
          },
          "input_tokens": {
            "title": "Input Tokens",
            "type": "integer"
          },
          "output_tokens": {
            "title": "Output Tokens",
            "type": "integer"
          },
          "usd": {
            "title": "Usd",
            "type": "number"
          }
        },
        "required": [
          "calls",
          "input_tokens",
          "output_tokens",
          "usd"
        ],
        "title": "LLMRollupCell",
        "type": "object"
      },
      "LLMStatsResponse": {
        "additionalProperties": false,
        "properties": {
          "by_service": {
            "additionalProperties": {
              "$ref": "#/components/schemas/LLMRollupCell"
            },
            "title": "By Service",
            "type": "object"
          },
          "by_task": {
            "additionalProperties": {
              "$ref": "#/components/schemas/LLMRollupCell"
            },
            "title": "By Task",
            "type": "object"
          },
          "by_tier": {
            "additionalProperties": {
              "$ref": "#/components/schemas/LLMRollupCell"
            },
            "title": "By Tier",
            "type": "object"
          },
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "source": {
            "title": "Source",
            "type": "string"
          },
          "totals": {
            "$ref": "#/components/schemas/LLMRollupCell"
          },
          "window": {
            "additionalProperties": true,
            "title": "Window",
            "type": "object"
          }
        },
        "required": [
          "window",
          "totals",
          "by_tier",
          "by_service",
          "by_task",
          "source",
          "generated_at"
        ],
        "title": "LLMStatsResponse",
        "type": "object"
      },
      "LastConsolidationRun": {
        "additionalProperties": false,
        "description": "Summary of the most recent consolidation run. Null if none ever ran.",
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "contradictions_resolved": {
            "title": "Contradictions Resolved",
            "type": "integer"
          },
          "duration_s": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration S"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "triples_merged": {
            "title": "Triples Merged",
            "type": "integer"
          }
        },
        "required": [
          "run_id",
          "completed_at",
          "status",
          "duration_s",
          "triples_merged",
          "contradictions_resolved"
        ],
        "title": "LastConsolidationRun",
        "type": "object"
      },
      "LatestRunResponse": {
        "additionalProperties": false,
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "corpus_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Corpus Version"
          },
          "run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Run Id"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "summary": {
            "additionalProperties": true,
            "title": "Summary",
            "type": "object"
          },
          "tiles": {
            "items": {
              "$ref": "#/components/schemas/AcTile"
            },
            "title": "Tiles",
            "type": "array"
          }
        },
        "required": [
          "run_id",
          "corpus_version",
          "started_at",
          "completed_at",
          "summary",
          "tiles"
        ],
        "title": "LatestRunResponse",
        "type": "object"
      },
      "LessonResponse": {
        "additionalProperties": false,
        "properties": {
          "applies_when": {
            "items": {
              "type": "string"
            },
            "title": "Applies When",
            "type": "array"
          },
          "failure_count": {
            "title": "Failure Count",
            "type": "integer"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "outcome_confidence": {
            "title": "Outcome Confidence",
            "type": "number"
          },
          "signature": {
            "title": "Signature",
            "type": "string"
          },
          "success_count": {
            "title": "Success Count",
            "type": "integer"
          }
        },
        "required": [
          "iri",
          "signature",
          "applies_when",
          "success_count",
          "failure_count",
          "outcome_confidence"
        ],
        "title": "LessonResponse",
        "type": "object"
      },
      "MemoryFactResponse": {
        "properties": {
          "agent": {
            "title": "Agent",
            "type": "string"
          },
          "confidence": {
            "title": "Confidence",
            "type": "number"
          },
          "fact_type": {
            "title": "Fact Type",
            "type": "string"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "key": {
            "title": "Key",
            "type": "string"
          },
          "life_context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Life Context"
          },
          "valid_from": {
            "title": "Valid From",
            "type": "string"
          },
          "valid_to": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid To"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": [
          "iri",
          "fact_type",
          "key",
          "value",
          "confidence",
          "valid_from",
          "valid_to",
          "agent",
          "life_context"
        ],
        "title": "MemoryFactResponse",
        "type": "object"
      },
      "MemoryHealthResponse": {
        "additionalProperties": false,
        "description": "Full semantic memory health payload — powers the /data-quality/health dashboard.\n\nAll seven tiles are present even when their source tables are empty (graceful\ndegradation: zeros and None values rather than 500 errors).\n\nPlan 010-C AC-C.3.",
        "properties": {
          "avg_confidence_last_30d": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avg Confidence Last 30D"
          },
          "consolidation_cost_30d_usd": {
            "title": "Consolidation Cost 30D Usd",
            "type": "number"
          },
          "entity_merge_queue_depth": {
            "title": "Entity Merge Queue Depth",
            "type": "integer"
          },
          "generated_at": {
            "title": "Generated At",
            "type": "string"
          },
          "last_consolidation_run": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LastConsolidationRun"
              },
              {
                "type": "null"
              }
            ]
          },
          "open_contradictions": {
            "title": "Open Contradictions",
            "type": "integer"
          },
          "stale_derived_artifacts": {
            "title": "Stale Derived Artifacts",
            "type": "integer"
          },
          "triple_count_by_memory_level": {
            "$ref": "#/components/schemas/TripleCountByMemoryLevel"
          }
        },
        "required": [
          "last_consolidation_run",
          "open_contradictions",
          "entity_merge_queue_depth",
          "avg_confidence_last_30d",
          "stale_derived_artifacts",
          "triple_count_by_memory_level",
          "consolidation_cost_30d_usd",
          "generated_at"
        ],
        "title": "MemoryHealthResponse",
        "type": "object"
      },
      "MemoryStatsResponse": {
        "properties": {
          "agents": {
            "items": {
              "type": "string"
            },
            "title": "Agents",
            "type": "array"
          },
          "facts_by_type": {
            "items": {
              "$ref": "#/components/schemas/TypeStats"
            },
            "title": "Facts By Type",
            "type": "array"
          },
          "last_write_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Write At"
          },
          "last_write_snippet": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Write Snippet"
          },
          "oldest_fact_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Oldest Fact At"
          },
          "preference_collisions": {
            "title": "Preference Collisions",
            "type": "integer"
          },
          "total_active_facts": {
            "title": "Total Active Facts",
            "type": "integer"
          }
        },
        "required": [
          "total_active_facts",
          "facts_by_type",
          "preference_collisions",
          "last_write_at",
          "last_write_snippet",
          "oldest_fact_at",
          "agents"
        ],
        "title": "MemoryStatsResponse",
        "type": "object"
      },
      "MemoryWriteRequest": {
        "description": "Memory write from the Hermes plugin.",
        "example": {
          "action": "add",
          "agent": "hermes",
          "content": "Blake prefers concise, direct responses",
          "target": "user"
        },
        "properties": {
          "action": {
            "description": "'add', 'replace', or 'remove'",
            "title": "Action",
            "type": "string"
          },
          "agent": {
            "default": "hermes",
            "description": "Agent identifier (default: 'hermes')",
            "title": "Agent",
            "type": "string"
          },
          "content": {
            "description": "Full text of the memory note",
            "minLength": 1,
            "title": "Content",
            "type": "string"
          },
          "life_context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optional life-domain tag — values from atlas:lifeContext vocabulary: work | personal | health | education | finance | civic | hobby | brand | spiritual",
            "title": "Life Context"
          },
          "old_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Text to retire (for replace/remove)",
            "title": "Old Text"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Hermes session ID for PROV-O attribution",
            "title": "Session Id"
          },
          "target": {
            "description": "'user' or 'memory'",
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "target",
          "action",
          "content"
        ],
        "title": "MemoryWriteRequest",
        "type": "object"
      },
      "MemoryWriteResponse": {
        "properties": {
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "iri",
          "status"
        ],
        "title": "MemoryWriteResponse",
        "type": "object"
      },
      "MineRequest": {
        "additionalProperties": false,
        "properties": {
          "budget_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Budget Usd"
          },
          "enrich": {
            "default": false,
            "title": "Enrich",
            "type": "boolean"
          },
          "min_cluster_size": {
            "default": 10,
            "title": "Min Cluster Size",
            "type": "integer"
          },
          "threshold": {
            "default": 20,
            "title": "Threshold",
            "type": "integer"
          }
        },
        "title": "MineRequest",
        "type": "object"
      },
      "MineResponse": {
        "additionalProperties": false,
        "properties": {
          "enriched_count": {
            "default": 0,
            "title": "Enriched Count",
            "type": "integer"
          },
          "mined_count": {
            "title": "Mined Count",
            "type": "integer"
          },
          "skipped_enrich": {
            "default": 0,
            "title": "Skipped Enrich",
            "type": "integer"
          },
          "skipped_existing": {
            "title": "Skipped Existing",
            "type": "integer"
          },
          "usd_spent": {
            "default": 0.0,
            "title": "Usd Spent",
            "type": "number"
          }
        },
        "required": [
          "mined_count",
          "skipped_existing"
        ],
        "title": "MineResponse",
        "type": "object"
      },
      "MinerDiagnostics": {
        "additionalProperties": false,
        "properties": {
          "miner_name": {
            "title": "Miner Name",
            "type": "string"
          },
          "suggested_config": {
            "items": {
              "$ref": "#/components/schemas/SuggestedConfig"
            },
            "title": "Suggested Config",
            "type": "array"
          },
          "top_iri_prefixes": {
            "items": {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "type": "object"
            },
            "title": "Top Iri Prefixes",
            "type": "array"
          },
          "top_rejection_reasons": {
            "items": {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "type": "object"
            },
            "title": "Top Rejection Reasons",
            "type": "array"
          },
          "total_in_window": {
            "title": "Total In Window",
            "type": "integer"
          },
          "total_rejected": {
            "title": "Total Rejected",
            "type": "integer"
          },
          "window_days": {
            "title": "Window Days",
            "type": "integer"
          }
        },
        "required": [
          "miner_name",
          "window_days",
          "total_in_window",
          "total_rejected",
          "top_rejection_reasons",
          "top_iri_prefixes",
          "suggested_config"
        ],
        "title": "MinerDiagnostics",
        "type": "object"
      },
      "MinerScorecardItem": {
        "additionalProperties": false,
        "properties": {
          "accept_rate": {
            "description": "accepted / (accepted + rejected) — 0.0 if denominator is 0. Deferred + open rows don't count as a decision yet.",
            "title": "Accept Rate",
            "type": "number"
          },
          "accepted": {
            "title": "Accepted",
            "type": "integer"
          },
          "deferred": {
            "title": "Deferred",
            "type": "integer"
          },
          "mined": {
            "title": "Mined",
            "type": "integer"
          },
          "miner_name": {
            "title": "Miner Name",
            "type": "string"
          },
          "open": {
            "title": "Open",
            "type": "integer"
          },
          "rejected": {
            "title": "Rejected",
            "type": "integer"
          }
        },
        "required": [
          "miner_name",
          "mined",
          "accepted",
          "rejected",
          "deferred",
          "open",
          "accept_rate"
        ],
        "title": "MinerScorecardItem",
        "type": "object"
      },
      "NamespaceSummaryOut": {
        "additionalProperties": false,
        "properties": {
          "class_count": {
            "title": "Class Count",
            "type": "integer"
          },
          "predicate_count": {
            "title": "Predicate Count",
            "type": "integer"
          },
          "prefix": {
            "title": "Prefix",
            "type": "string"
          },
          "term_count": {
            "title": "Term Count",
            "type": "integer"
          },
          "uri": {
            "title": "Uri",
            "type": "string"
          }
        },
        "required": [
          "prefix",
          "uri",
          "term_count",
          "class_count",
          "predicate_count"
        ],
        "title": "NamespaceSummaryOut",
        "type": "object"
      },
      "OntoCleanProposalRequest": {
        "additionalProperties": false,
        "description": "Payload for `POST /v1/ontology/proposals`.\n\nAll four meta-properties are required. `identity_criteria_doc` is\nonly required when `identity == \"+I\"` (the linter enforces this).\n`dependence_on` is only required when `dependence == \"+D\"`.",
        "properties": {
          "className": {
            "minLength": 1,
            "title": "Classname",
            "type": "string"
          },
          "dependence": {
            "title": "Dependence",
            "type": "string"
          },
          "dependence_on": {
            "items": {
              "type": "string"
            },
            "title": "Dependence On",
            "type": "array"
          },
          "identity": {
            "title": "Identity",
            "type": "string"
          },
          "identity_criteria_doc": {
            "default": "",
            "title": "Identity Criteria Doc",
            "type": "string"
          },
          "parent": {
            "minLength": 1,
            "title": "Parent",
            "type": "string"
          },
          "rationale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "rigidity": {
            "title": "Rigidity",
            "type": "string"
          },
          "unity": {
            "title": "Unity",
            "type": "string"
          }
        },
        "required": [
          "className",
          "parent",
          "rigidity",
          "identity",
          "unity",
          "dependence"
        ],
        "title": "OntoCleanProposalRequest",
        "type": "object"
      },
      "OntoCleanProposalResponse": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "proposal_id": {
            "title": "Proposal Id",
            "type": "integer"
          },
          "proposal_iri": {
            "title": "Proposal Iri",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": [
          "proposal_id",
          "proposal_iri",
          "kind",
          "status",
          "warnings"
        ],
        "title": "OntoCleanProposalResponse",
        "type": "object"
      },
      "OntologyBaseline": {
        "additionalProperties": false,
        "properties": {
          "class_count": {
            "title": "Class Count",
            "type": "integer"
          },
          "predicate_count": {
            "title": "Predicate Count",
            "type": "integer"
          }
        },
        "required": [
          "class_count",
          "predicate_count"
        ],
        "title": "OntologyBaseline",
        "type": "object"
      },
      "OntologyGrowthResponse": {
        "additionalProperties": false,
        "properties": {
          "timeline": {
            "items": {
              "$ref": "#/components/schemas/GrowthPoint"
            },
            "title": "Timeline",
            "type": "array"
          },
          "window_days": {
            "title": "Window Days",
            "type": "integer"
          }
        },
        "required": [
          "window_days",
          "timeline"
        ],
        "title": "OntologyGrowthResponse",
        "type": "object"
      },
      "OxigraphBulkLoadRequest": {
        "additionalProperties": false,
        "description": "Request body for /v1/admin/oxigraph/bulk-load.",
        "properties": {
          "s3_bucket": {
            "minLength": 1,
            "title": "S3 Bucket",
            "type": "string"
          },
          "s3_key": {
            "minLength": 1,
            "title": "S3 Key",
            "type": "string"
          }
        },
        "required": [
          "s3_bucket",
          "s3_key"
        ],
        "title": "OxigraphBulkLoadRequest",
        "type": "object"
      },
      "OxigraphBulkLoadResponse": {
        "additionalProperties": false,
        "description": "Result of a successful bulk-load.",
        "properties": {
          "bytes_downloaded": {
            "title": "Bytes Downloaded",
            "type": "integer"
          },
          "named_graphs": {
            "title": "Named Graphs",
            "type": "integer"
          },
          "quads_loaded": {
            "title": "Quads Loaded",
            "type": "integer"
          },
          "seconds": {
            "title": "Seconds",
            "type": "number"
          }
        },
        "required": [
          "quads_loaded",
          "named_graphs",
          "bytes_downloaded",
          "seconds"
        ],
        "title": "OxigraphBulkLoadResponse",
        "type": "object"
      },
      "PolicyFlags": {
        "additionalProperties": false,
        "properties": {
          "embed": {
            "title": "Embed",
            "type": "boolean"
          },
          "fts_index": {
            "title": "Fts Index",
            "type": "boolean"
          },
          "llm_extract": {
            "title": "Llm Extract",
            "type": "boolean"
          },
          "spacy_extract": {
            "title": "Spacy Extract",
            "type": "boolean"
          },
          "tag": {
            "title": "Tag",
            "type": "string"
          }
        },
        "required": [
          "tag",
          "llm_extract",
          "embed",
          "spacy_extract",
          "fts_index"
        ],
        "title": "PolicyFlags",
        "type": "object"
      },
      "PromoteTagRequest": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "default": "blake",
            "maxLength": 64,
            "minLength": 1,
            "title": "Actor",
            "type": "string"
          },
          "canonical_name": {
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[a-z0-9][a-z0-9-]*$",
            "title": "Canonical Name",
            "type": "string"
          },
          "criterion": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Criterion",
            "type": "string"
          },
          "example": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Example",
            "type": "string"
          },
          "match_patterns": {
            "items": {
              "type": "string"
            },
            "title": "Match Patterns",
            "type": "array"
          },
          "source_cluster_cohesion": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Cluster Cohesion"
          },
          "source_cluster_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Cluster Count"
          }
        },
        "required": [
          "canonical_name",
          "criterion",
          "example"
        ],
        "title": "PromoteTagRequest",
        "type": "object"
      },
      "PromoteTagResponse": {
        "additionalProperties": false,
        "properties": {
          "promoted_tag": {
            "title": "Promoted Tag",
            "type": "string"
          },
          "rows_retagged": {
            "title": "Rows Retagged",
            "type": "integer"
          }
        },
        "required": [
          "promoted_tag",
          "rows_retagged"
        ],
        "title": "PromoteTagResponse",
        "type": "object"
      },
      "ProposalDetail": {
        "additionalProperties": false,
        "properties": {
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/EvidenceItem"
            },
            "title": "Evidence",
            "type": "array"
          },
          "proposal": {
            "$ref": "#/components/schemas/ProposalItem"
          }
        },
        "required": [
          "proposal",
          "evidence"
        ],
        "title": "ProposalDetail",
        "type": "object"
      },
      "ProposalItem": {
        "additionalProperties": false,
        "properties": {
          "combined_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Combined Score"
          },
          "confidence": {
            "title": "Confidence",
            "type": "number"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "gate_report": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Report"
          },
          "gate_verdict": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Verdict"
          },
          "gloss": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gloss"
          },
          "gloss_generated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gloss Generated At"
          },
          "gloss_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gloss Model"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "llm_review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LLMReviewSummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "miner_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Miner Name"
          },
          "proposed_iri": {
            "title": "Proposed Iri",
            "type": "string"
          },
          "rationale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "rejection_reason_tag": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejection Reason Tag"
          },
          "review_rationale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Rationale"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          },
          "reviewed_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed By"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "support_count": {
            "title": "Support Count",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "kind",
          "proposed_iri",
          "rationale",
          "status",
          "confidence",
          "support_count",
          "gate_verdict",
          "gate_report",
          "reviewed_by",
          "reviewed_at",
          "review_rationale",
          "created_at"
        ],
        "title": "ProposalItem",
        "type": "object"
      },
      "ProposalResponse": {
        "properties": {
          "chunk_iri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chunk Iri"
          },
          "confidence": {
            "title": "Confidence",
            "type": "number"
          },
          "content": {
            "title": "Content",
            "type": "string"
          },
          "correlation_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Correlation Id"
          },
          "fact_type": {
            "title": "Fact Type",
            "type": "string"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "life_context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Life Context"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "iri",
          "fact_type",
          "content",
          "life_context",
          "confidence",
          "status",
          "correlation_id",
          "chunk_iri"
        ],
        "title": "ProposalResponse",
        "type": "object"
      },
      "ProposalSearchRequest": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kind"
          },
          "q": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Q",
            "type": "string"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "top_k": {
            "default": 20,
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Top K",
            "type": "integer"
          }
        },
        "required": [
          "q"
        ],
        "title": "ProposalSearchRequest",
        "type": "object"
      },
      "ProposedTag": {
        "additionalProperties": false,
        "properties": {
          "canonical_name_candidate": {
            "title": "Canonical Name Candidate",
            "type": "string"
          },
          "cohesion": {
            "title": "Cohesion",
            "type": "number"
          },
          "match_patterns": {
            "items": {
              "type": "string"
            },
            "title": "Match Patterns",
            "type": "array"
          },
          "rationale_count": {
            "title": "Rationale Count",
            "type": "integer"
          },
          "sample_rationales": {
            "items": {
              "type": "string"
            },
            "title": "Sample Rationales",
            "type": "array"
          }
        },
        "required": [
          "canonical_name_candidate",
          "rationale_count",
          "sample_rationales",
          "cohesion",
          "match_patterns"
        ],
        "title": "ProposedTag",
        "type": "object"
      },
      "Provenance": {
        "additionalProperties": false,
        "properties": {
          "fence": {
            "description": "Non-forgeable origin tag; must be recognized + allowed for the principal (fence-403)",
            "minLength": 1,
            "title": "Fence",
            "type": "string"
          },
          "session_id": {
            "description": "Originating session id (mandatory)",
            "minLength": 1,
            "title": "Session Id",
            "type": "string"
          },
          "valid_from": {
            "description": "ISO-8601 timestamp the delta is valid from",
            "minLength": 1,
            "title": "Valid From",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "fence",
          "valid_from"
        ],
        "title": "Provenance",
        "type": "object"
      },
      "PullRequestRecordIn": {
        "additionalProperties": false,
        "description": "Wire peer of `atlas.ingest.code_builder.PullRequestRecord`.",
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "author_iri": {
            "title": "Author Iri",
            "type": "string"
          },
          "author_login": {
            "title": "Author Login",
            "type": "string"
          },
          "body_snippet": {
            "default": "",
            "title": "Body Snippet",
            "type": "string"
          },
          "closes_issue": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closes Issue"
          },
          "commit_iris": {
            "items": {
              "type": "string"
            },
            "title": "Commit Iris",
            "type": "array"
          },
          "head_branch": {
            "default": "",
            "title": "Head Branch",
            "type": "string"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "pr_number": {
            "title": "Pr Number",
            "type": "integer"
          },
          "repo": {
            "title": "Repo",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "pr_number",
          "repo",
          "title",
          "action",
          "author_login",
          "iri",
          "author_iri"
        ],
        "title": "PullRequestRecordIn",
        "type": "object"
      },
      "RecipientIn": {
        "additionalProperties": false,
        "description": "Wire peer of `atlas.ingest.email_builder.RecipientRecord`.",
        "properties": {
          "address": {
            "title": "Address",
            "type": "string"
          },
          "display_name": {
            "default": "",
            "title": "Display Name",
            "type": "string"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "role": {
            "enum": [
              "from",
              "to",
              "cc",
              "bcc"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "role",
          "address",
          "iri"
        ],
        "title": "RecipientIn",
        "type": "object"
      },
      "RecordResult": {
        "additionalProperties": false,
        "description": "Per-record outcome inside a batch response.",
        "properties": {
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "ok": {
            "title": "Ok",
            "type": "boolean"
          },
          "record_iri": {
            "title": "Record Iri",
            "type": "string"
          },
          "triples_written": {
            "default": 0,
            "title": "Triples Written",
            "type": "integer"
          }
        },
        "required": [
          "record_iri",
          "job_id",
          "ok"
        ],
        "title": "RecordResult",
        "type": "object"
      },
      "RegenerateGlossResponse": {
        "additionalProperties": false,
        "properties": {
          "gloss": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gloss"
          },
          "gloss_generated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gloss Generated At"
          },
          "gloss_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gloss Model"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "gloss",
          "gloss_model",
          "gloss_generated_at"
        ],
        "title": "RegenerateGlossResponse",
        "type": "object"
      },
      "ReificationDedupResponse": {
        "additionalProperties": false,
        "properties": {
          "blocked": {
            "title": "Blocked",
            "type": "boolean"
          },
          "distinct_facts": {
            "title": "Distinct Facts",
            "type": "integer"
          },
          "dry_run": {
            "title": "Dry Run",
            "type": "boolean"
          },
          "duplicates_removed": {
            "title": "Duplicates Removed",
            "type": "integer"
          },
          "groups_remaining": {
            "title": "Groups Remaining",
            "type": "integer"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "statements_after": {
            "title": "Statements After",
            "type": "integer"
          },
          "statements_before": {
            "title": "Statements Before",
            "type": "integer"
          }
        },
        "required": [
          "dry_run",
          "blocked",
          "statements_before",
          "statements_after",
          "distinct_facts",
          "duplicates_removed",
          "groups_remaining",
          "message"
        ],
        "title": "ReificationDedupResponse",
        "type": "object"
      },
      "RejectRequest": {
        "additionalProperties": false,
        "description": "Reject payload with optional taxonomy tag. Added in 007-A.",
        "properties": {
          "actor": {
            "default": "blake",
            "title": "Actor",
            "type": "string"
          },
          "rejection_reason_tag": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejection Reason Tag"
          },
          "review_rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Review Rationale",
            "type": "string"
          }
        },
        "required": [
          "review_rationale"
        ],
        "title": "RejectRequest",
        "type": "object"
      },
      "RejectionHistogramResponse": {
        "additionalProperties": false,
        "properties": {
          "other_samples": {
            "items": {
              "type": "string"
            },
            "title": "Other Samples",
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Tags",
            "type": "object"
          },
          "window_days": {
            "title": "Window Days",
            "type": "integer"
          }
        },
        "required": [
          "window_days",
          "tags",
          "other_samples"
        ],
        "title": "RejectionHistogramResponse",
        "type": "object"
      },
      "RejectionTagInfo": {
        "additionalProperties": false,
        "properties": {
          "auto_detect": {
            "title": "Auto Detect",
            "type": "boolean"
          },
          "criterion": {
            "title": "Criterion",
            "type": "string"
          },
          "example": {
            "title": "Example",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name",
          "criterion",
          "example",
          "auto_detect"
        ],
        "title": "RejectionTagInfo",
        "type": "object"
      },
      "RepoIn": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "status": {
            "default": "active",
            "title": "Status",
            "type": "string"
          },
          "url": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "name",
          "url"
        ],
        "title": "RepoIn",
        "type": "object"
      },
      "RepoOut": {
        "properties": {
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "updated_at": {
            "title": "Updated At",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "url",
          "status",
          "description",
          "created_at",
          "updated_at"
        ],
        "title": "RepoOut",
        "type": "object"
      },
      "ResolveRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "accept",
              "reject",
              "split"
            ],
            "title": "Action",
            "type": "string"
          },
          "decided_by": {
            "default": "blake",
            "title": "Decided By",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": [
          "action",
          "rationale"
        ],
        "title": "ResolveRequest",
        "type": "object"
      },
      "ResolveResponse": {
        "additionalProperties": false,
        "properties": {
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/PolicyFlags"
          },
          "tag": {
            "title": "Tag",
            "type": "string"
          }
        },
        "required": [
          "iri",
          "tag",
          "policy"
        ],
        "title": "ResolveResponse",
        "type": "object"
      },
      "RetrievalFeedbackRequest": {
        "additionalProperties": false,
        "properties": {
          "query_id": {
            "maxLength": 128,
            "minLength": 1,
            "title": "Query Id",
            "type": "string"
          },
          "rationale": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "result_iri": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Result Iri",
            "type": "string"
          },
          "result_position": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Result Position"
          },
          "thumb": {
            "enum": [
              "up",
              "down"
            ],
            "title": "Thumb",
            "type": "string"
          }
        },
        "required": [
          "query_id",
          "result_iri",
          "thumb"
        ],
        "title": "RetrievalFeedbackRequest",
        "type": "object"
      },
      "RetrievalFeedbackResponse": {
        "additionalProperties": false,
        "properties": {
          "feedback_id": {
            "title": "Feedback Id",
            "type": "string"
          },
          "recorded_at": {
            "title": "Recorded At",
            "type": "string"
          }
        },
        "required": [
          "feedback_id",
          "recorded_at"
        ],
        "title": "RetrievalFeedbackResponse",
        "type": "object"
      },
      "ReviewItem": {
        "additionalProperties": false,
        "properties": {
          "candidate_iris": {
            "items": {
              "type": "string"
            },
            "title": "Candidate Iris",
            "type": "array"
          },
          "confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "resolution": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolution"
          },
          "resolved_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved At"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "candidate_iris",
          "status",
          "confidence",
          "created_at"
        ],
        "title": "ReviewItem",
        "type": "object"
      },
      "ReviewRationaleRequest": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "default": "blake",
            "title": "Actor",
            "type": "string"
          },
          "review_rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Review Rationale",
            "type": "string"
          }
        },
        "required": [
          "review_rationale"
        ],
        "title": "ReviewRationaleRequest",
        "type": "object"
      },
      "ReviewRecordIn": {
        "additionalProperties": false,
        "description": "Wire peer of `atlas.ingest.code_builder.ReviewRecord`.",
        "properties": {
          "body_snippet": {
            "default": "",
            "title": "Body Snippet",
            "type": "string"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "pr_iri": {
            "title": "Pr Iri",
            "type": "string"
          },
          "pr_number": {
            "title": "Pr Number",
            "type": "integer"
          },
          "repo": {
            "title": "Repo",
            "type": "string"
          },
          "reviewer_iri": {
            "title": "Reviewer Iri",
            "type": "string"
          },
          "reviewer_login": {
            "title": "Reviewer Login",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "reviewer_login",
          "pr_number",
          "repo",
          "state",
          "iri",
          "reviewer_iri",
          "pr_iri"
        ],
        "title": "ReviewRecordIn",
        "type": "object"
      },
      "RunRow": {
        "additionalProperties": false,
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "corpus_version": {
            "title": "Corpus Version",
            "type": "string"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "started_at": {
            "title": "Started At",
            "type": "string"
          },
          "summary": {
            "additionalProperties": true,
            "title": "Summary",
            "type": "object"
          }
        },
        "required": [
          "run_id",
          "corpus_version",
          "started_at",
          "completed_at",
          "summary"
        ],
        "title": "RunRow",
        "type": "object"
      },
      "SchemaTermDetail": {
        "additionalProperties": false,
        "properties": {
          "children": {
            "items": {
              "$ref": "#/components/schemas/TermEntryOut"
            },
            "title": "Children",
            "type": "array"
          },
          "example_instances": {
            "items": {
              "type": "string"
            },
            "title": "Example Instances",
            "type": "array"
          },
          "parents": {
            "items": {
              "$ref": "#/components/schemas/TermEntryOut"
            },
            "title": "Parents",
            "type": "array"
          },
          "term": {
            "$ref": "#/components/schemas/TermEntryOut"
          },
          "used_by_proposals": {
            "title": "Used By Proposals",
            "type": "integer"
          }
        },
        "required": [
          "term",
          "parents",
          "children",
          "example_instances",
          "used_by_proposals"
        ],
        "title": "SchemaTermDetail",
        "type": "object"
      },
      "SchemaViewOut": {
        "additionalProperties": false,
        "properties": {
          "classes": {
            "items": {
              "$ref": "#/components/schemas/TermEntryOut"
            },
            "title": "Classes",
            "type": "array"
          },
          "comments": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Comments",
            "type": "object"
          },
          "domain_range_triples": {
            "items": {
              "maxItems": 3,
              "minItems": 3,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              ],
              "type": "array"
            },
            "title": "Domain Range Triples",
            "type": "array"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Labels",
            "type": "object"
          },
          "namespaces": {
            "items": {
              "$ref": "#/components/schemas/NamespaceSummaryOut"
            },
            "title": "Namespaces",
            "type": "array"
          },
          "predicates": {
            "items": {
              "$ref": "#/components/schemas/TermEntryOut"
            },
            "title": "Predicates",
            "type": "array"
          },
          "subclass_edges": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "title": "Subclass Edges",
            "type": "array"
          },
          "subproperty_edges": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "title": "Subproperty Edges",
            "type": "array"
          }
        },
        "required": [
          "classes",
          "predicates",
          "subclass_edges",
          "subproperty_edges",
          "domain_range_triples",
          "namespaces",
          "labels",
          "comments"
        ],
        "title": "SchemaViewOut",
        "type": "object"
      },
      "SearchHitOut": {
        "additionalProperties": false,
        "description": "Ranked hit from semantic search. `score ∈ [0, 1]`;\nrejected rows have their score multiplied by 0.7 to demote\nthem below live results while keeping them discoverable.",
        "properties": {
          "proposal": {
            "$ref": "#/components/schemas/ProposalItem"
          },
          "raw_cosine": {
            "title": "Raw Cosine",
            "type": "number"
          },
          "rejected_demoted": {
            "title": "Rejected Demoted",
            "type": "boolean"
          },
          "score": {
            "title": "Score",
            "type": "number"
          }
        },
        "required": [
          "score",
          "raw_cosine",
          "rejected_demoted",
          "proposal"
        ],
        "title": "SearchHitOut",
        "type": "object"
      },
      "SectionIn": {
        "additionalProperties": false,
        "description": "Wire peer of `atlas.ingest.doc_builder.SectionRecord`.",
        "properties": {
          "body_text": {
            "default": "",
            "title": "Body Text",
            "type": "string"
          },
          "heading": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/HeadingIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "parent_iri": {
            "title": "Parent Iri",
            "type": "string"
          },
          "section_index": {
            "title": "Section Index",
            "type": "integer"
          }
        },
        "required": [
          "section_index",
          "parent_iri",
          "iri"
        ],
        "title": "SectionIn",
        "type": "object"
      },
      "SourceTagItem": {
        "additionalProperties": false,
        "properties": {
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "prefix": {
            "title": "Prefix",
            "type": "string"
          },
          "tag": {
            "title": "Tag",
            "type": "string"
          },
          "tagged_at": {
            "title": "Tagged At",
            "type": "string"
          },
          "tagged_by": {
            "title": "Tagged By",
            "type": "string"
          }
        },
        "required": [
          "prefix",
          "tag",
          "tagged_at",
          "tagged_by"
        ],
        "title": "SourceTagItem",
        "type": "object"
      },
      "StatsResponse": {
        "additionalProperties": false,
        "properties": {
          "confidence": {
            "$ref": "#/components/schemas/ConfidenceStats",
            "default": {
              "low_confidence_triples_count": 0,
              "total_evidence_events": 0
            }
          },
          "corpus": {
            "$ref": "#/components/schemas/CorpusStats"
          },
          "cost": {
            "$ref": "#/components/schemas/CostStats"
          },
          "cost_summary": {
            "$ref": "#/components/schemas/CostSummary"
          },
          "ingest": {
            "$ref": "#/components/schemas/IngestStats"
          },
          "jobs": {
            "$ref": "#/components/schemas/atlas__api__stats_routes__JobStats"
          }
        },
        "required": [
          "corpus",
          "jobs",
          "cost",
          "cost_summary",
          "ingest"
        ],
        "title": "StatsResponse",
        "type": "object"
      },
      "StatusResponse": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          },
          "reviewed_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed By"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "status"
        ],
        "title": "StatusResponse",
        "type": "object"
      },
      "StructuralMetricsResponse": {
        "additionalProperties": false,
        "properties": {
          "attribute_richness": {
            "title": "Attribute Richness",
            "type": "number"
          },
          "class_richness": {
            "title": "Class Richness",
            "type": "number"
          },
          "hierarchy_depth_p50": {
            "title": "Hierarchy Depth P50",
            "type": "number"
          },
          "hierarchy_depth_p95": {
            "title": "Hierarchy Depth P95",
            "type": "number"
          },
          "inheritance_richness": {
            "title": "Inheritance Richness",
            "type": "number"
          },
          "populated_classes": {
            "title": "Populated Classes",
            "type": "integer"
          },
          "shape_coverage": {
            "title": "Shape Coverage",
            "type": "number"
          },
          "total_classes_declared": {
            "title": "Total Classes Declared",
            "type": "integer"
          }
        },
        "required": [
          "class_richness",
          "attribute_richness",
          "inheritance_richness",
          "hierarchy_depth_p50",
          "hierarchy_depth_p95",
          "shape_coverage",
          "total_classes_declared",
          "populated_classes"
        ],
        "title": "StructuralMetricsResponse",
        "type": "object"
      },
      "StructuredHint": {
        "additionalProperties": false,
        "description": "Optional hints from agent-push payloads.\n\nAgents are trusted contributors but not authoritative — hints are validated\nby the pipeline; hallucinated entity types are rejected by the agent-push\nvalidator prompt (phase B later stage).",
        "properties": {
          "entities": {
            "default": [],
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Entities",
            "type": "array"
          },
          "relations": {
            "default": [],
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Relations",
            "type": "array"
          }
        },
        "title": "StructuredHint",
        "type": "object"
      },
      "SuggestedConfig": {
        "additionalProperties": false,
        "properties": {
          "current": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "setting": {
            "title": "Setting",
            "type": "string"
          },
          "suggested": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested"
          }
        },
        "required": [
          "setting",
          "rationale"
        ],
        "title": "SuggestedConfig",
        "type": "object"
      },
      "TermEntryOut": {
        "additionalProperties": false,
        "properties": {
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "parent_iri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Iri"
          },
          "prefixed_iri": {
            "title": "Prefixed Iri",
            "type": "string"
          },
          "range": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Range"
          },
          "usage_count": {
            "default": 0,
            "title": "Usage Count",
            "type": "integer"
          }
        },
        "required": [
          "iri",
          "prefixed_iri",
          "label",
          "comment",
          "kind"
        ],
        "title": "TermEntryOut",
        "type": "object"
      },
      "TimelineEntry": {
        "properties": {
          "canonical_name": {
            "title": "Canonical Name",
            "type": "string"
          },
          "event_time": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event Time"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          }
        },
        "required": [
          "iri",
          "kind",
          "canonical_name",
          "event_time",
          "summary"
        ],
        "title": "TimelineEntry",
        "type": "object"
      },
      "TopSource": {
        "additionalProperties": false,
        "properties": {
          "chunks": {
            "title": "Chunks",
            "type": "integer"
          },
          "source_iri": {
            "title": "Source Iri",
            "type": "string"
          }
        },
        "required": [
          "source_iri",
          "chunks"
        ],
        "title": "TopSource",
        "type": "object"
      },
      "TripleCountByMemoryLevel": {
        "additionalProperties": false,
        "description": "Per named-graph triple counts, mapped to the 5-level memory taxonomy.\n\nL1 (sensory) is not stored in Atlas — omitted.\nL2 (working context) lives in conversations graph.\nL3 (episodic) spans conversations + emails + events.\nL4 (semantic) spans identity + documents + code.",
        "properties": {
          "code": {
            "default": 0,
            "title": "Code",
            "type": "integer"
          },
          "conversations": {
            "default": 0,
            "title": "Conversations",
            "type": "integer"
          },
          "default": {
            "default": 0,
            "title": "Default",
            "type": "integer"
          },
          "documents": {
            "default": 0,
            "title": "Documents",
            "type": "integer"
          },
          "emails": {
            "default": 0,
            "title": "Emails",
            "type": "integer"
          },
          "events": {
            "default": 0,
            "title": "Events",
            "type": "integer"
          },
          "identity": {
            "default": 0,
            "title": "Identity",
            "type": "integer"
          }
        },
        "title": "TripleCountByMemoryLevel",
        "type": "object"
      },
      "TypeStats": {
        "properties": {
          "avg_confidence": {
            "title": "Avg Confidence",
            "type": "number"
          },
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "fact_type": {
            "title": "Fact Type",
            "type": "string"
          }
        },
        "required": [
          "fact_type",
          "count",
          "avg_confidence"
        ],
        "title": "TypeStats",
        "type": "object"
      },
      "UpsertTagRequest": {
        "additionalProperties": false,
        "properties": {
          "notes": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "prefix": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Prefix",
            "type": "string"
          },
          "tag": {
            "enum": [
              "public",
              "work-only",
              "sensitive",
              "exclude"
            ],
            "title": "Tag",
            "type": "string"
          },
          "tagged_by": {
            "default": "blake",
            "title": "Tagged By",
            "type": "string"
          }
        },
        "required": [
          "prefix",
          "tag"
        ],
        "title": "UpsertTagRequest",
        "type": "object"
      },
      "UsageReportEntry": {
        "additionalProperties": false,
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "last_updated": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Updated"
          }
        },
        "required": [
          "iri",
          "count"
        ],
        "title": "UsageReportEntry",
        "type": "object"
      },
      "UsageReportResponse": {
        "additionalProperties": false,
        "properties": {
          "classes": {
            "items": {
              "$ref": "#/components/schemas/UsageReportEntry"
            },
            "title": "Classes",
            "type": "array"
          },
          "computed_at": {
            "title": "Computed At",
            "type": "string"
          },
          "predicates": {
            "items": {
              "$ref": "#/components/schemas/UsageReportEntry"
            },
            "title": "Predicates",
            "type": "array"
          },
          "window_days": {
            "title": "Window Days",
            "type": "integer"
          }
        },
        "required": [
          "window_days",
          "classes",
          "predicates",
          "computed_at"
        ],
        "title": "UsageReportResponse",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "VoiceTextCapture": {
        "additionalProperties": false,
        "description": "Pre-transcribed voice note (iOS Shortcut path).",
        "properties": {
          "device": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device"
          },
          "note_kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note Kind"
          },
          "recorded_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recorded At"
          },
          "text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "VoiceTextCapture",
        "type": "object"
      },
      "WikiChangeOut": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "object": {
            "title": "Object",
            "type": "string"
          },
          "predicate": {
            "title": "Predicate",
            "type": "string"
          }
        },
        "required": [
          "predicate",
          "object",
          "kind"
        ],
        "title": "WikiChangeOut",
        "type": "object"
      },
      "WikiCitation": {
        "additionalProperties": false,
        "properties": {
          "chunk_id": {
            "title": "Chunk Id",
            "type": "string"
          },
          "source_iri": {
            "title": "Source Iri",
            "type": "string"
          }
        },
        "required": [
          "chunk_id",
          "source_iri"
        ],
        "title": "WikiCitation",
        "type": "object"
      },
      "WikiPageResponse": {
        "additionalProperties": false,
        "properties": {
          "changes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/WikiChangeOut"
            },
            "title": "Changes",
            "type": "array"
          },
          "citations": {
            "items": {
              "$ref": "#/components/schemas/WikiCitation"
            },
            "title": "Citations",
            "type": "array"
          },
          "iri": {
            "title": "Iri",
            "type": "string"
          },
          "markdown": {
            "title": "Markdown",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "iri",
          "title",
          "markdown",
          "citations"
        ],
        "title": "WikiPageResponse",
        "type": "object"
      },
      "atlas__api__stats_routes__JobStats": {
        "additionalProperties": false,
        "properties": {
          "last_30_days": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Last 30 Days",
            "type": "object"
          },
          "last_7_days": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Last 7 Days",
            "type": "object"
          },
          "recent_failures": {
            "items": {
              "$ref": "#/components/schemas/JobFailure"
            },
            "title": "Recent Failures",
            "type": "array"
          }
        },
        "required": [
          "last_7_days",
          "last_30_days",
          "recent_failures"
        ],
        "title": "JobStats",
        "type": "object"
      },
      "atlas__ingest__events__JobStats": {
        "additionalProperties": true,
        "description": "Aggregate per-stage telemetry written to ingestion_jobs.stats JSON.",
        "properties": {
          "chunks_inserted": {
            "default": 0,
            "title": "Chunks Inserted",
            "type": "integer"
          },
          "entailment_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entailment Ms"
          },
          "entities_resolved": {
            "default": 0,
            "title": "Entities Resolved",
            "type": "integer"
          },
          "entity_resolution_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entity Resolution Ms"
          },
          "extraction_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extraction Ms"
          },
          "llm_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Llm Ms"
          },
          "normalize_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Normalize Ms"
          },
          "spacy_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Spacy Ms"
          },
          "tokens_in": {
            "default": 0,
            "title": "Tokens In",
            "type": "integer"
          },
          "tokens_out": {
            "default": 0,
            "title": "Tokens Out",
            "type": "integer"
          },
          "triples_inserted": {
            "default": 0,
            "title": "Triples Inserted",
            "type": "integer"
          },
          "usd": {
            "default": 0.0,
            "title": "Usd",
            "type": "number"
          },
          "write_ms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Write Ms"
          }
        },
        "title": "JobStats",
        "type": "object"
      }
    }
  },
  "info": {
    "description": "Local-first RDF-grounded personal memory substrate. Knowledge bank — not an execution engine. See plans/MASTER_PLAN.md §11.",
    "title": "Atlas",
    "version": "0.1.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/health": {
      "get": {
        "description": "Phase A health check. Phase B extends with store connectivity probes.",
        "operationId": "health_health_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Health"
      }
    },
    "/v1/admin/ecosystem": {
      "get": {
        "operationId": "list_ecosystem_v1_admin_ecosystem_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EcosystemOut"
                  },
                  "title": "Response List Ecosystem V1 Admin Ecosystem Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Ecosystem",
        "tags": [
          "ecosystem"
        ]
      },
      "post": {
        "operationId": "create_ecosystem_v1_admin_ecosystem_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EcosystemIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcosystemOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Ecosystem",
        "tags": [
          "ecosystem"
        ]
      }
    },
    "/v1/admin/ecosystem/{row_id}": {
      "delete": {
        "operationId": "delete_ecosystem_v1_admin_ecosystem__row_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "row_id",
            "required": true,
            "schema": {
              "title": "Row Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Ecosystem",
        "tags": [
          "ecosystem"
        ]
      },
      "get": {
        "operationId": "get_ecosystem_v1_admin_ecosystem__row_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "row_id",
            "required": true,
            "schema": {
              "title": "Row Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcosystemOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Ecosystem",
        "tags": [
          "ecosystem"
        ]
      },
      "put": {
        "operationId": "update_ecosystem_v1_admin_ecosystem__row_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "row_id",
            "required": true,
            "schema": {
              "title": "Row Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EcosystemIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcosystemOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Ecosystem",
        "tags": [
          "ecosystem"
        ]
      }
    },
    "/v1/admin/oxigraph/bulk-load": {
      "post": {
        "description": "Download an N-Quads dump from S3 and bulk-load into Oxigraph.\n\nCalls `Store.bulk_load` on the live Oxigraph instance — same process that\nholds the writer lock, so this doesn't deadlock or contend. Re-loading\nthe same dump is idempotent (set semantics).",
        "operationId": "post_oxigraph_bulk_load_v1_admin_oxigraph_bulk_load_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OxigraphBulkLoadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OxigraphBulkLoadResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Oxigraph Bulk Load",
        "tags": [
          "admin"
        ]
      }
    },
    "/v1/admin/reification-dedup": {
      "post": {
        "description": "Collapse duplicate reified statements onto their L1 content-derived node\nIRIs. `dry_run=true` (default) reports counts and mutates nothing; a real\napply also needs `ATLAS_REIFICATION_DEDUP_APPLY=1`.\n\nA whole-corpus apply holds the store long enough to starve the writer's\nhealth check (ECS kills the task mid-run — safe but incomplete). Pass\n`max_groups` to process a bounded batch per call and loop on\n`groups_remaining > 0` so the writer stays responsive.",
        "operationId": "post_reification_dedup_v1_admin_reification_dedup_post",
        "parameters": [
          {
            "in": "query",
            "name": "dry_run",
            "required": false,
            "schema": {
              "default": true,
              "title": "Dry Run",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "max_groups",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Max Groups"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReificationDedupResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Reification Dedup",
        "tags": [
          "admin"
        ]
      }
    },
    "/v1/admin/repos": {
      "get": {
        "description": "List every registered repo, newest first.",
        "operationId": "list_repos_v1_admin_repos_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RepoOut"
                  },
                  "title": "Response List Repos V1 Admin Repos Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Repos",
        "tags": [
          "repos"
        ]
      },
      "post": {
        "description": "Register a new repo.",
        "operationId": "create_repo_v1_admin_repos_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RepoIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Repo",
        "tags": [
          "repos"
        ]
      }
    },
    "/v1/admin/repos/{repo_id}": {
      "delete": {
        "operationId": "delete_repo_v1_admin_repos__repo_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "repo_id",
            "required": true,
            "schema": {
              "title": "Repo Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Repo",
        "tags": [
          "repos"
        ]
      },
      "get": {
        "operationId": "get_repo_v1_admin_repos__repo_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "repo_id",
            "required": true,
            "schema": {
              "title": "Repo Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Repo",
        "tags": [
          "repos"
        ]
      },
      "put": {
        "operationId": "update_repo_v1_admin_repos__repo_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "repo_id",
            "required": true,
            "schema": {
              "title": "Repo Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RepoIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update Repo",
        "tags": [
          "repos"
        ]
      }
    },
    "/v1/ask": {
      "post": {
        "description": "Answer Blake's question against the knowledge bank with citations.",
        "operationId": "post_ask_v1_ask_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AskRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AskResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Ask",
        "tags": [
          "ask"
        ]
      }
    },
    "/v1/capture/voice": {
      "post": {
        "description": "Pre-transcribed voice note. iOS Shortcut's primary path (battery-friendly).",
        "operationId": "post_voice_text_v1_capture_voice_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoiceTextCapture"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestAccepted"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Voice Text",
        "tags": [
          "voice"
        ]
      }
    },
    "/v1/capture/voice/audio": {
      "post": {
        "description": "Raw-audio path. Saves the blob and returns 501 until Phase E wires Whisper.\n\nv1 recommendation: transcribe client-side on iOS (Shortcuts has a\nspeech-to-text block), POST /voice with the text. Cheaper, lower-latency,\nand doesn't require Atlas to load a 70MB+ model.",
        "operationId": "post_voice_audio_v1_capture_voice_audio_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_post_voice_audio_v1_capture_voice_audio_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestAccepted"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Voice Audio",
        "tags": [
          "voice"
        ]
      }
    },
    "/v1/contact/{iri}/context": {
      "get": {
        "description": "Return a structured \"what do I know about this contact?\" snapshot.\n\n`iri` is the contact's Atlas IRI (e.g. `https://atlas.blakeaber.dev/person/jane-doe`\nor `https://atlas.blakeaber.dev/person/email:greg@apex.com`).\n\nAlways returns 200 with a well-formed schema even when the named graphs\nhold no data for the IRI — empty arrays for events/commitments/\npreferences/contradictions are the cold-corpus signal.",
        "operationId": "get_contact_context_route_v1_contact__iri__context_get",
        "parameters": [
          {
            "in": "path",
            "name": "iri",
            "required": true,
            "schema": {
              "title": "Iri",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "recency",
            "required": false,
            "schema": {
              "default": "90d",
              "title": "Recency",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fence",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fence"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetContactContextOutput"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Contact Context Route",
        "tags": [
          "contact"
        ]
      }
    },
    "/v1/contradictions": {
      "get": {
        "operationId": "list_contradictions_v1_contradictions_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "open",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ContradictionItem"
                  },
                  "title": "Response List Contradictions V1 Contradictions Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Contradictions",
        "tags": [
          "contradictions"
        ]
      }
    },
    "/v1/contradictions/detect": {
      "post": {
        "operationId": "detect_contradictions_v1_contradictions_detect_post",
        "parameters": [
          {
            "in": "query",
            "name": "limit_per_kind",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit Per Kind",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetectResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Detect Contradictions",
        "tags": [
          "contradictions"
        ]
      }
    },
    "/v1/contradictions/{candidate_id}": {
      "get": {
        "operationId": "show_contradiction_v1_contradictions__candidate_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContradictionItem"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Show Contradiction",
        "tags": [
          "contradictions"
        ]
      }
    },
    "/v1/contradictions/{candidate_id}/annotate": {
      "post": {
        "operationId": "annotate_contradiction_v1_contradictions__candidate_id__annotate_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContradictionItem"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Annotate Contradiction",
        "tags": [
          "contradictions"
        ]
      }
    },
    "/v1/entities": {
      "get": {
        "description": "Browseable, paginated entity list ordered by mention-count (triple_count).\n\nLets a user discover entities without already knowing an IRI. Projects the\nentity set directly from the triple store (distinct typed subjects).",
        "operationId": "list_entities_route_v1_entities_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Entities Route",
        "tags": [
          "entities"
        ]
      }
    },
    "/v1/entities/{iri}": {
      "get": {
        "operationId": "get_entity_route_v1_entities__iri__get",
        "parameters": [
          {
            "in": "path",
            "name": "iri",
            "required": true,
            "schema": {
              "title": "Iri",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Entity Route",
        "tags": [
          "entities"
        ]
      }
    },
    "/v1/eval/corpus": {
      "get": {
        "description": "Return audit progress for one corpus version.",
        "operationId": "corpus_status_v1_eval_corpus_get",
        "parameters": [
          {
            "in": "query",
            "name": "corpus_version",
            "required": false,
            "schema": {
              "default": "v1",
              "title": "Corpus Version",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CorpusStatus"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Corpus Status",
        "tags": [
          "eval"
        ]
      }
    },
    "/v1/eval/latest": {
      "get": {
        "description": "Return the most recent eval run with AC tiles. Tiles are always 11.",
        "operationId": "latest_run_v1_eval_latest_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LatestRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Latest Run",
        "tags": [
          "eval"
        ]
      }
    },
    "/v1/eval/runs": {
      "get": {
        "description": "List recent runs (most recent first).",
        "operationId": "list_recent_runs_v1_eval_runs_get",
        "parameters": [
          {
            "in": "query",
            "name": "corpus_version",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Corpus Version"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RunRow"
                  },
                  "title": "Response List Recent Runs V1 Eval Runs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Recent Runs",
        "tags": [
          "eval"
        ]
      }
    },
    "/v1/feedback/retrieval": {
      "post": {
        "description": "Record a thumbs-up/down on a retrieval result.\n\nIdempotent: a (query_id, result_iri) pair can be thumbed multiple\ntimes — each thumb is its own row with a new feedback_id, so the\ndashboard can show \"thumb history\" rather than only the latest vote.",
        "operationId": "post_retrieval_feedback_v1_feedback_retrieval_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetrievalFeedbackRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetrievalFeedbackResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Retrieval Feedback",
        "tags": [
          "feedback"
        ]
      }
    },
    "/v1/ingest": {
      "post": {
        "description": "Accept content; enqueue pipeline; return 202 immediately.",
        "operationId": "post_ingest_v1_ingest_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IngestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestAccepted"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Ingest",
        "tags": [
          "ingest"
        ]
      }
    },
    "/v1/ingest/calendar": {
      "post": {
        "operationId": "post_ingest_calendar_v1_ingest_calendar_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarBatchIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Ingest Calendar",
        "tags": [
          "ingest",
          "structured"
        ]
      }
    },
    "/v1/ingest/code": {
      "post": {
        "description": "Each `records[i]` is one CodeArtifactIn bundling commits+prs+reviews for one github event.\n\nOne transaction = one artifact = one write_code_artifact call. Per-artifact errors\nare isolated; the whole batch never aborts on a single bad artifact.",
        "operationId": "post_ingest_code_v1_ingest_code_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CodeBatchIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Ingest Code",
        "tags": [
          "ingest",
          "structured"
        ]
      }
    },
    "/v1/ingest/document": {
      "post": {
        "operationId": "post_ingest_document_v1_ingest_document_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentBatchIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Ingest Document",
        "tags": [
          "ingest",
          "structured"
        ]
      }
    },
    "/v1/ingest/email": {
      "post": {
        "operationId": "post_ingest_email_v1_ingest_email_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailBatchIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post Ingest Email",
        "tags": [
          "ingest",
          "structured"
        ]
      }
    },
    "/v1/jobs/{job_id}": {
      "get": {
        "operationId": "get_job_v1_jobs__job_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestJobView"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Job",
        "tags": [
          "ingest"
        ]
      }
    },
    "/v1/lessons/{iri}": {
      "get": {
        "operationId": "get_lesson_v1_lessons__iri__get",
        "parameters": [
          {
            "in": "path",
            "name": "iri",
            "required": true,
            "schema": {
              "title": "Iri",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Lesson",
        "tags": [
          "lessons"
        ]
      }
    },
    "/v1/lessons/{iri}/grade": {
      "post": {
        "description": "Record an OBJECTIVE outcome (pass/fail) and increment the server count.\n\nThe ``grade:lesson`` scope is REQUIRED — an ``ingest:episode`` consumer is\ndenied 403 (it cannot grade its own memory). The count is server-derived;\nthe request body cannot carry it (``extra='forbid'`` → 422).",
        "operationId": "grade_lesson_v1_lessons__iri__grade_post",
        "parameters": [
          {
            "in": "path",
            "name": "iri",
            "required": true,
            "schema": {
              "title": "Iri",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GradeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Grade Lesson",
        "tags": [
          "lessons"
        ]
      }
    },
    "/v1/memory/context": {
      "get": {
        "description": "Return a bounded working set, deterministically ranked. ``budget_kb`` caps the\npayload so context never blows up regardless of corpus size.\n\nTrack B 0-F: the response carries a strong ``ETag`` (stable hash of the ranked\nworking set) and honors ``If-None-Match`` → ``304 Not Modified``, so the client's\nread-through mirror revalidates cheaply and Atlas stays off the hot path.\n\nBUG-051 L2: reads are served from the lock-free in-process L1 snapshot\n(``read_active_facts_cached``) instead of a live cross-graph SPARQL scan, so\na GET never blocks behind sustained ingest writes. The fence filter,\nranker, budget, ETag and 304 logic below are UNCHANGED. If the snapshot is\nstill cold (just-restarted process) the response carries\n``X-Atlas-L1-Cold: true`` and increments ``l1_read_cold_total``.",
        "operationId": "get_context_v1_memory_context_get",
        "parameters": [
          {
            "description": "Filter to this provenance fence",
            "in": "query",
            "name": "fence",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter to this provenance fence",
              "title": "Fence"
            }
          },
          {
            "description": "Hard cap on returned payload (KB)",
            "in": "query",
            "name": "budget_kb",
            "required": false,
            "schema": {
              "default": 12,
              "description": "Hard cap on returned payload (KB)",
              "maximum": 128,
              "minimum": 1,
              "title": "Budget Kb",
              "type": "integer"
            }
          },
          {
            "description": "Comma-separated intent tags for topic ranking",
            "in": "query",
            "name": "intent",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated intent tags for topic ranking",
              "title": "Intent"
            }
          },
          {
            "in": "query",
            "name": "max_age_days",
            "required": false,
            "schema": {
              "default": 90,
              "maximum": 3650,
              "minimum": 1,
              "title": "Max Age Days",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-None-Match"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContextResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Pull a bounded, deterministically-ranked L1 working set",
        "tags": [
          "l1-context"
        ]
      },
      "post": {
        "description": "Persist a session delta as an L2 episode. Provenance is mandatory (Pydantic\nrejects a missing ``provenance`` with 422).\n\nTrack B fence-403 (AGE-735): the L1 write path now enforces the SAME\nnon-forgeable-fence guarantee as ``/v1/ingest`` — it requires the\n``ingest:episode`` scope, the client-set ``provenance.fence`` must be a\nrecognized fence (422 otherwise), and the PRINCIPAL must be allowed to use it\n(an agent principal cannot write under a reserved ``connector:*``/``cloud:*``\nfence → 403). admin (``admin:*``) may use any fence.",
        "operationId": "post_context_v1_memory_context_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContextPostRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContextPostResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Push a typed L1 session delta (provenance mandatory)",
        "tags": [
          "l1-context"
        ]
      }
    },
    "/v1/memory/hermes/read": {
      "get": {
        "description": "Return all active memory facts for the given agent.\n\nIntended for Hermes session-boot injection. The Hermes plugin calls this\nwith a 2s read timeout; on timeout it falls back to its MEMORY.md cache.",
        "operationId": "read_memory_facts_v1_memory_hermes_read_get",
        "parameters": [
          {
            "description": "Agent to query facts for",
            "in": "query",
            "name": "agent",
            "required": false,
            "schema": {
              "default": "hermes",
              "description": "Agent to query facts for",
              "title": "Agent",
              "type": "string"
            }
          },
          {
            "description": "Exclude facts older than N days",
            "in": "query",
            "name": "max_age_days",
            "required": false,
            "schema": {
              "default": 90,
              "description": "Exclude facts older than N days",
              "maximum": 3650,
              "minimum": 1,
              "title": "Max Age Days",
              "type": "integer"
            }
          },
          {
            "description": "Apply confidence decay to older facts",
            "in": "query",
            "name": "apply_decay",
            "required": false,
            "schema": {
              "default": true,
              "description": "Apply confidence decay to older facts",
              "title": "Apply Decay",
              "type": "boolean"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MemoryFactResponse"
                  },
                  "title": "Response Read Memory Facts V1 Memory Hermes Read Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Read active memory facts for an agent",
        "tags": [
          "hermes-memory"
        ]
      }
    },
    "/v1/memory/hermes/write": {
      "post": {
        "description": "Receive a Hermes memory write and persist it as an Atlas RDF triple.\n\n- action='add': writes a new fact\n- action='replace': retires old_text match + writes new fact\n- action='remove': retires old_text match only (no new fact)",
        "operationId": "write_memory_fact_v1_memory_hermes_write_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemoryWriteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemoryWriteResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Write a memory fact from Hermes",
        "tags": [
          "hermes-memory"
        ]
      }
    },
    "/v1/memory/proposals": {
      "get": {
        "description": "List FactProposals by status (pending | confirmed | rejected).",
        "operationId": "list_proposals_v1_memory_proposals_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "pending",
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ProposalResponse"
                  },
                  "title": "Response List Proposals V1 Memory Proposals Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Proposals",
        "tags": [
          "hermes-memory-proposals"
        ]
      }
    },
    "/v1/memory/proposals/{proposal_iri}/confirm": {
      "post": {
        "description": "Confirm a FactProposal: create the real fact triple + mark proposal confirmed.\n\nAC-012.15: on confirm, creates UserFact/Preference/etc. triple with\nfactAgent=\"extracted-via-pipeline\" and prov attribution back to the chunk.",
        "operationId": "confirm_proposal_v1_memory_proposals__proposal_iri__confirm_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_iri",
            "required": true,
            "schema": {
              "title": "Proposal Iri",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Confirm Proposal V1 Memory Proposals  Proposal Iri  Confirm Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Confirm Proposal",
        "tags": [
          "hermes-memory-proposals"
        ]
      }
    },
    "/v1/memory/proposals/{proposal_iri}/reject": {
      "post": {
        "description": "Reject a FactProposal — marks status='rejected'; no fact triple created.\n\nAC-012.15: reject path produces no UserFact triple and doesn't pollute\nthe active fact set. The proposal remains in the store for audit.",
        "operationId": "reject_proposal_v1_memory_proposals__proposal_iri__reject_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_iri",
            "required": true,
            "schema": {
              "title": "Proposal Iri",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Reject Proposal V1 Memory Proposals  Proposal Iri  Reject Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reject Proposal",
        "tags": [
          "hermes-memory-proposals"
        ]
      }
    },
    "/v1/memory/stats": {
      "get": {
        "description": "Return aggregate stats for the /data-quality/memory dashboard.\n\nBacked by SPARQL over the live Oxigraph store + the preference collision scanner.",
        "operationId": "get_memory_stats_v1_memory_stats_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemoryStatsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Memory facts dashboard aggregate stats",
        "tags": [
          "hermes-memory-stats"
        ]
      }
    },
    "/v1/ontology/drift-alerts": {
      "get": {
        "description": "Plan 014-E. Returns open (unresolved) class-embedding drift alerts\nraised by the weekly drift cron. Each alert includes the change-point\ntimestamp + before/after exemplar IRIs so reviewers can decide\nwhether to refine the SHACL shape, split the class, or accept the\nnew scope.",
        "operationId": "get_drift_alerts_v1_ontology_drift_alerts_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DriftAlertsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Drift Alerts",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/health-report": {
      "get": {
        "description": "Plan 014-B. Returns the most recent ontology-health snapshot\nwritten by `atlas.jobs.health_report`. Snapshots live in\n`atlas_ontology_health_reports` (lazy-created by the cron).\n\nEmpty state: returns `{\"snapshot\": null, \"message\": \"no snapshot yet\"}`\nwhen the cron hasn't been run.",
        "operationId": "get_health_report_v1_ontology_health_report_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthReportResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Health Report",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/metrics/miner-diagnostics/{miner_name}": {
      "get": {
        "description": "Per-miner drill-down for the algorithm-diagnostic drawer.",
        "operationId": "miner_diagnostics_v1_ontology_metrics_miner_diagnostics__miner_name__get",
        "parameters": [
          {
            "in": "path",
            "name": "miner_name",
            "required": true,
            "schema": {
              "title": "Miner Name",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "window_days",
            "required": false,
            "schema": {
              "default": 30,
              "title": "Window Days",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MinerDiagnostics"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Miner Diagnostics",
        "tags": [
          "ontology-metrics"
        ]
      }
    },
    "/v1/ontology/metrics/miner-scorecard": {
      "get": {
        "description": "Per-miner aggregate over the last N days.\n\nGroups by `miner_name`. NULL-miner rows (pre-007 data) are bucketed\ninto \"(unknown)\" so Blake sees them rather than wondering where\nrows went. Miners with zero in-window rows are simply absent.",
        "operationId": "miner_scorecard_v1_ontology_metrics_miner_scorecard_get",
        "parameters": [
          {
            "in": "query",
            "name": "window_days",
            "required": false,
            "schema": {
              "default": 30,
              "title": "Window Days",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MinerScorecardItem"
                  },
                  "title": "Response Miner Scorecard V1 Ontology Metrics Miner Scorecard Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Miner Scorecard",
        "tags": [
          "ontology-metrics"
        ]
      }
    },
    "/v1/ontology/metrics/ontology-growth": {
      "get": {
        "description": "Daily time series of cumulative class + predicate counts.\n\nReads `audit_log.event_type = 'ontology.commit'` events within the\nwindow, joins each commit's `details.proposal_id` against\n`ontology_proposals` to get the kind + rationale excerpt, and\nproduces a point per day with a cumulative running total.\n\n\"class\" vs. \"predicate\" follows the proposal `kind`: `class` +\n`subclass` → class counts; everything else (`predicate`,\n`subproperty`, `domain_range`) → predicate counts.",
        "operationId": "ontology_growth_v1_ontology_metrics_ontology_growth_get",
        "parameters": [
          {
            "in": "query",
            "name": "window_days",
            "required": false,
            "schema": {
              "default": 30,
              "title": "Window Days",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OntologyGrowthResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ontology Growth",
        "tags": [
          "ontology-metrics"
        ]
      }
    },
    "/v1/ontology/metrics/ontology-terms-baseline": {
      "get": {
        "description": "Current class + predicate counts parsed from `ontology/atlas.ttl`.\n\nUsed as the right-edge anchor for the growth chart: the chart's\ncumulative counts are deltas from audit_log; this endpoint tells\nthe UI what absolute count the \"today\" point represents.",
        "operationId": "ontology_terms_baseline_v1_ontology_metrics_ontology_terms_baseline_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OntologyBaseline"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ontology Terms Baseline",
        "tags": [
          "ontology-metrics"
        ]
      }
    },
    "/v1/ontology/metrics/promote-tag": {
      "post": {
        "description": "Insert into `rejection_tag_registry` + re-tag matching historical rows.\n\nRe-tagging only touches `rejection_reason_tag IS NULL` or `'other'`\nrows — never overwrites a starter-tag classification. Match is\ncase-insensitive substring against `review_rationale`.",
        "operationId": "promote_tag_v1_ontology_metrics_promote_tag_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromoteTagRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromoteTagResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Promote Tag",
        "tags": [
          "ontology-metrics"
        ]
      }
    },
    "/v1/ontology/metrics/proposed-tags": {
      "get": {
        "description": "Run string-similarity clustering over recent \"other\" rationales.",
        "operationId": "proposed_tags_v1_ontology_metrics_proposed_tags_get",
        "parameters": [
          {
            "in": "query",
            "name": "window_days",
            "required": false,
            "schema": {
              "default": 30,
              "title": "Window Days",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ProposedTag"
                  },
                  "title": "Response Proposed Tags V1 Ontology Metrics Proposed Tags Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Proposed Tags",
        "tags": [
          "ontology-metrics"
        ]
      }
    },
    "/v1/ontology/metrics/rejection-histogram": {
      "get": {
        "description": "Count of rejection-reason-tags over the window.\n\nUnseen tags (zero count in-window) are omitted so the UI can plot\nbars for exactly what's present. `other_samples` returns up to\n10 freeform rationales from rows where `rejection_reason_tag` is\nNULL — these are the \"I just typed a reason\" rejects that 007-E\nwill mine for canonical-tag promotion.",
        "operationId": "rejection_histogram_v1_ontology_metrics_rejection_histogram_get",
        "parameters": [
          {
            "in": "query",
            "name": "window_days",
            "required": false,
            "schema": {
              "default": 30,
              "title": "Window Days",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RejectionHistogramResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Rejection Histogram",
        "tags": [
          "ontology-metrics"
        ]
      }
    },
    "/v1/ontology/mine": {
      "post": {
        "description": "Run the 006-B miner (+ optional 006-C enrichment) from the UI.\n\nSynchronous — returns the summary when done. For large corpora this\ncan take 30-60s; the CLI is the preferred path for batch enrichment\nruns that need progress reporting.",
        "operationId": "trigger_mine_v1_ontology_mine_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MineResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Trigger Mine",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals": {
      "get": {
        "description": "List ontology proposals.\n\nPlan 014.1-C additions:\n- Returns `combined_score` and `llm_review` per proposal when available.\n- Sorts by `combined_score DESC` (tied: recency DESC) when scores exist;\n  falls back to `confidence DESC, support_count DESC`.\n- `llm_classification` filter pill: 'accept' | 'review' | 'reject'",
        "operationId": "list_proposals_v1_ontology_proposals_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Kind"
            }
          },
          {
            "in": "query",
            "name": "miner",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Miner"
            }
          },
          {
            "in": "query",
            "name": "llm_classification",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Llm Classification"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ProposalItem"
                  },
                  "title": "Response List Proposals V1 Ontology Proposals Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Proposals",
        "tags": [
          "ontology"
        ]
      },
      "post": {
        "description": "Plan 014-G. Gated entrypoint for human-authored new-class\nproposals. Every payload is linted by `OntoCleanLinter` before it\nlands in `ontology_proposals`:\n\n- Hard violations → HTTP 400 with the violations list. The proposal\n  does NOT enter the queue.\n- Lint warnings → proposal lands with `status='mined'` but the\n  warnings ride along in the rationale so reviewers see them.\n- Clean proposal → 201 with the row id + canonical IRI.\n\nThis is the Plan 014 Guardrail #6 surface: \"OntoClean must pass for\nevery new class proposal.\" Algorithm-emitted proposals (Phase F's\nintermediate_parent etc.) bypass this surface because they don't\nyet carry OntoClean assertions — those flow through the existing\nmining path and pick up OntoClean review at human-acceptance time.",
        "operationId": "create_class_proposal_v1_ontology_proposals_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OntoCleanProposalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OntoCleanProposalResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create Class Proposal",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/bulk-defer": {
      "post": {
        "operationId": "bulk_defer_v1_ontology_proposals_bulk_defer_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkDeferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BulkItemResult"
                  },
                  "title": "Response Bulk Defer V1 Ontology Proposals Bulk Defer Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Defer",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/bulk-gate": {
      "post": {
        "description": "Run the consistency gate across N proposals.\n\nEach gate invocation spins up a scratch Oxigraph store — sequential\nrather than parallel for simplicity; ~2s per proposal. Capped at\n200 per call so the caller can chunk if needed.",
        "operationId": "bulk_gate_v1_ontology_proposals_bulk_gate_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkGateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "additionalProperties": true,
                    "type": "object"
                  },
                  "title": "Response Bulk Gate V1 Ontology Proposals Bulk Gate Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Gate",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/bulk-reject": {
      "post": {
        "description": "Reject N proposals with a shared rationale + optional shared tag.\n\nPer-id failures (404, already-terminal) are reported in the response\nrather than aborting the batch. Successful flips commit together at\nthe end.",
        "operationId": "bulk_reject_v1_ontology_proposals_bulk_reject_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkRejectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BulkItemResult"
                  },
                  "title": "Response Bulk Reject V1 Ontology Proposals Bulk Reject Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Bulk Reject",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/search": {
      "post": {
        "description": "Semantic search over proposals by topic.\n\nEmbeds `payload.q` via Voyage, runs cosine similarity against\nstored embeddings, applies `kind` / `status` filters, returns\nranked hits.\n\nWhen Voyage is disabled (no `VOYAGE_API_KEY`), returns empty\nrather than failing — consistent with the graceful-degrade\npattern from Plan 003-B.4.",
        "operationId": "search_proposals_v1_ontology_proposals_search_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProposalSearchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SearchHitOut"
                  },
                  "title": "Response Search Proposals V1 Ontology Proposals Search Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Search Proposals",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/{proposal_id}": {
      "get": {
        "operationId": "get_proposal_v1_ontology_proposals__proposal_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProposalDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Proposal",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/{proposal_id}/accept": {
      "post": {
        "description": "Accept a proposal. Requires a passed gate (pass or warn) unless\n`override_gate=true` is set — override is logged via review_rationale.\nDoes NOT write to `ontology/atlas.ttl` (that's 006-F).",
        "operationId": "accept_proposal_v1_ontology_proposals__proposal_id__accept_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Accept Proposal",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/{proposal_id}/defer": {
      "post": {
        "operationId": "defer_proposal_v1_ontology_proposals__proposal_id__defer_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewRationaleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Defer Proposal",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/{proposal_id}/gate": {
      "post": {
        "operationId": "run_gate_v1_ontology_proposals__proposal_id__gate_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Run Gate V1 Ontology Proposals  Proposal Id  Gate Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Run Gate",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/{proposal_id}/regenerate-gloss": {
      "post": {
        "description": "One-row re-enrichment that rewrites only the gloss column.\n\nReuses the existing Haiku enrichment path. Doesn't mutate\nrationale / confidence / status — safe to call on any row,\nany lifecycle state. Emits an `ontology.gloss.regenerated`\naudit-log entry with old + new gloss for traceability.",
        "operationId": "regenerate_gloss_v1_ontology_proposals__proposal_id__regenerate_gloss_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegenerateGlossResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Regenerate Gloss",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/{proposal_id}/reject": {
      "post": {
        "description": "Reject a proposal with an optional taxonomy tag. The tag is\nused by 007-C's scorecard + 007-D's rejection histogram; `None`\n/ missing is treated as \"untagged\" (or freeform 'other').",
        "operationId": "reject_proposal_v1_ontology_proposals__proposal_id__reject_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Reject Proposal",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/proposals/{proposal_id}/similar": {
      "get": {
        "description": "Return proposals most semantically similar to the given one.\n\nUses the stored embedding of `proposal_id` as the query vector;\nexcludes `proposal_id` itself from results. Optional `skip_miner`\nexcludes all proposals with that `miner_name` — used by the 007-E\ndiagnostic drawer to surface cross-miner near-duplicates.",
        "operationId": "get_similar_proposals_v1_ontology_proposals__proposal_id__similar_get",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "top_k",
            "required": false,
            "schema": {
              "default": 20,
              "title": "Top K",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "skip_miner",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Skip Miner"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SearchHitOut"
                  },
                  "title": "Response Get Similar Proposals V1 Ontology Proposals  Proposal Id  Similar Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Similar Proposals",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/rejection-tags": {
      "get": {
        "description": "Return starter tags + promoted tags from `rejection_tag_registry`.\n\n007-E extension: the reject dialog sees both sources merged so\npromoted canonical tags are available in the dropdown. Starter\ntags stay first for muscle-memory stability.",
        "operationId": "list_rejection_tags_v1_ontology_rejection_tags_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RejectionTagInfo"
                  },
                  "title": "Response List Rejection Tags V1 Ontology Rejection Tags Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Rejection Tags",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/schema": {
      "get": {
        "description": "Return Atlas's current ratified schema — classes, predicates,\nsubclass/subproperty hierarchies, labels, comments, usage counts.\n\nParses `ontology/atlas.ttl` + imports, augments with Oxigraph\nusage counts. Cached with TTL mtime invalidation; usage counts\nrecomputed per request (Oxigraph is authoritative + lightweight\nto query at current scale).",
        "operationId": "get_schema_v1_ontology_schema_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemaViewOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Schema",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/schema/search": {
      "get": {
        "description": "Ranked fuzzy search over `label + comment + iri_suffix`.\n\nCase-insensitive. Empty `q` returns an empty list. `limit`\nclamped to [1, 200] (422 otherwise).",
        "operationId": "schema_search_v1_ontology_schema_search_get",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "title": "Q",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TermEntryOut"
                  },
                  "title": "Response Schema Search V1 Ontology Schema Search Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Schema Search",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/schema/term": {
      "get": {
        "description": "Return drill-down detail for a single term.\n\n`iri` accepts either a full IRI (`https://atlas.blakeaber.dev/ns/Note`)\nor a prefixed form (`atlas:Note`). Returns parents (subclass/subproperty\nancestors), children, up to 5 example instances from Oxigraph, and\nthe count of proposals referencing this term.",
        "operationId": "schema_term_detail_v1_ontology_schema_term_get",
        "parameters": [
          {
            "in": "query",
            "name": "iri",
            "required": true,
            "schema": {
              "title": "Iri",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemaTermDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Schema Term Detail",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/structural": {
      "get": {
        "description": "Plan 014-B. Read-only OntoQA-style structural metrics computed live\nover Oxigraph + the Plan 014-A counter tables. Daily health-report\ncron calls this endpoint instead of opening Oxigraph directly (avoids\nthe LMDB exclusive-lock conflict between API process + cron process).",
        "operationId": "get_structural_metrics_v1_ontology_structural_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StructuralMetricsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Structural Metrics",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/ontology/usage-report": {
      "get": {
        "description": "Plan 014-A. Returns sorted class + predicate counts from the\nPlan 014 counter tables, optionally restricted to a trailing-N-days\nwindow via the last_updated timestamp.\n\nNote: window_days bounds last_updated, NOT per-instance creation date.\nPhase 014-B's daily cron computes precise time-windowed counts by\nwalking Oxigraph directly. This endpoint is for fast dashboards.",
        "operationId": "get_usage_report_v1_ontology_usage_report_get",
        "parameters": [
          {
            "in": "query",
            "name": "window_days",
            "required": false,
            "schema": {
              "default": 30,
              "title": "Window Days",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageReportResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Usage Report",
        "tags": [
          "ontology"
        ]
      }
    },
    "/v1/registry": {
      "get": {
        "description": "The consumable registry snapshot: active rows + a content sha.\n\nThe orchestrator (control plane) calls this at drain start, validates the\nrows, and writes a pinned ``registry/ecosystem.<sha>.json`` to S3 for the\nno-NAT worker. The sha is stable for identical row content.",
        "operationId": "get_registry_v1_registry_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Get Registry V1 Registry Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Registry",
        "tags": [
          "ecosystem"
        ]
      }
    },
    "/v1/review/count": {
      "get": {
        "description": "Return total pending count. Used by Today cockpit to show the badge.",
        "operationId": "count_pending_v1_review_count_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "integer"
                  },
                  "title": "Response Count Pending V1 Review Count Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Count Pending",
        "tags": [
          "review"
        ]
      }
    },
    "/v1/review/queue": {
      "get": {
        "description": "Return pending (default) or all resolved items from the review queue.",
        "operationId": "list_queue_v1_review_queue_get",
        "parameters": [
          {
            "in": "query",
            "name": "status_filter",
            "required": false,
            "schema": {
              "default": "pending",
              "title": "Status Filter",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ReviewItem"
                  },
                  "title": "Response List Queue V1 Review Queue Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Queue",
        "tags": [
          "review"
        ]
      }
    },
    "/v1/review/{item_id}/resolve": {
      "post": {
        "description": "Resolve a review item. Records resolution + provenance in the queue row\nand an audit_log entry. On `accept`, the merge is **applied** to the graph\nvia the shared `apply_entity_merge` core (the same code the MCP\n`merge_entities` apply path uses) — sameAs redirect + mergeProvenance +\n`validTo` on superseded triples (never-delete) + an audit row. Pipedrive-\nsourced candidates are refused (409) — they never auto-merge.",
        "operationId": "resolve_item_v1_review__item_id__resolve_post",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Resolve Item V1 Review  Item Id  Resolve Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resolve Item",
        "tags": [
          "review"
        ]
      }
    },
    "/v1/sources/tags": {
      "get": {
        "operationId": "list_tags_route_v1_sources_tags_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SourceTagItem"
                  },
                  "title": "Response List Tags Route V1 Sources Tags Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Tags Route",
        "tags": [
          "sources"
        ]
      },
      "post": {
        "operationId": "upsert_tag_route_v1_sources_tags_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertTagRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceTagItem"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Upsert Tag Route",
        "tags": [
          "sources"
        ]
      }
    },
    "/v1/sources/tags/resolve": {
      "get": {
        "operationId": "resolve_tag_route_v1_sources_tags_resolve_get",
        "parameters": [
          {
            "in": "query",
            "name": "iri",
            "required": true,
            "schema": {
              "title": "Iri",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResolveResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resolve Tag Route",
        "tags": [
          "sources"
        ]
      }
    },
    "/v1/sources/tags/{prefix}": {
      "delete": {
        "operationId": "delete_tag_route_v1_sources_tags__prefix__delete",
        "parameters": [
          {
            "in": "path",
            "name": "prefix",
            "required": true,
            "schema": {
              "title": "Prefix",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete Tag Route",
        "tags": [
          "sources"
        ]
      }
    },
    "/v1/stats": {
      "get": {
        "description": "Operational snapshot — corpus / jobs / cost / ingest.\n\nEvery number is a SQL aggregate computed at request time. Call this\nbefore/after bulk ingest to confirm scale, cost, and health.",
        "operationId": "get_stats_v1_stats_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Stats",
        "tags": [
          "stats"
        ]
      }
    },
    "/v1/stats/health": {
      "get": {
        "description": "Semantic memory health snapshot — powers the /data-quality/health dashboard.\n\nAggregates seven tiles from the consolidation, contradiction, entity review,\nconfidence, and named-graph subsystems into a single JSON response. Each tile\ndegrades gracefully to zero/null if its backing table doesn't exist (e.g. in\na pre-migration environment).\n\nPlan 010-C AC-C.3.",
        "operationId": "get_memory_health_v1_stats_health_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemoryHealthResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Memory Health",
        "tags": [
          "stats"
        ]
      }
    },
    "/v1/stats/llm": {
      "get": {
        "description": "Per-tier / per-service / per-task LLM rollup over the last `days`.\n\nReads from the dedicated `cost_events` store. The endpoint complements\nraw CloudWatch Logs Insights queries against `/aws/bedrock/modelinvocations`:\nuse this for aggregate views, go to CloudWatch for single-call debugging.\nSee `agentic-hub/docs/ops/llm-observability.md` for the full surface map.",
        "operationId": "get_llm_stats_v1_stats_llm_get",
        "parameters": [
          {
            "description": "Rollup window in days.",
            "in": "query",
            "name": "days",
            "required": false,
            "schema": {
              "default": 30,
              "description": "Rollup window in days.",
              "maximum": 90,
              "minimum": 1,
              "title": "Days",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LLMStatsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Llm Stats",
        "tags": [
          "stats"
        ]
      }
    },
    "/v1/timeline/{entity_iri}": {
      "get": {
        "description": "Per-entity timeline — returns events/interactions sorted by event_time.\n\nPhase C stub: returns empty list. Full implementation in the next wake.",
        "operationId": "get_timeline_v1_timeline__entity_iri__get",
        "parameters": [
          {
            "in": "path",
            "name": "entity_iri",
            "required": true,
            "schema": {
              "title": "Entity Iri",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TimelineEntry"
                  },
                  "title": "Response Get Timeline V1 Timeline  Entity Iri  Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Timeline",
        "tags": [
          "ask"
        ]
      }
    },
    "/v1/today": {
      "get": {
        "description": "Today cockpit — reads real state from Atlas (no longer a stub).\n\nReads real Atlas state:\n- `upcoming_meetings`: today-onward CalendarEvents (schema:startDate) from the\n  events named graph.\n- `overdue_emails`: the most-recent EmailMessages (schema:dateCreated) from the\n  emails named graph (Atlas has no answered/unanswered flag, so \"needs\n  attention\" = most recent inbound).\n- `agent_runs`: the most recent ingestion_jobs (the ingest-worker pulls).\nEvery section degrades to empty on error — this page must never 500.",
        "operationId": "get_today_v1_today_get",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Get Today V1 Today Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Today",
        "tags": [
          "ask"
        ]
      }
    },
    "/v1/wiki/{iri}": {
      "get": {
        "operationId": "get_wiki_page_v1_wiki__iri__get",
        "parameters": [
          {
            "in": "path",
            "name": "iri",
            "required": true,
            "schema": {
              "title": "Iri",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "viewer",
            "required": false,
            "schema": {
              "default": "blake",
              "title": "Viewer",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WikiPageResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get Wiki Page",
        "tags": [
          "wiki"
        ]
      }
    },
    "/version": {
      "get": {
        "operationId": "version_version_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "title": "Response Version Version Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Version"
      }
    }
  }
}