{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": true,
"definitions": {
"HealthCheck": {
"additionalProperties": true,
"properties": {
"detail": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"ok": {
"type": "boolean"
}
},
"required": [
"name",
"ok"
],
"type": "object"
},
"HealthCounts": {
"additionalProperties": true,
"properties": {
"entities": {
"format": "int64",
"type": "integer"
},
"memories": {
"format": "int64",
"type": "integer"
},
"memories_total": {
"description": "Alias of `memories` for the documented contract in SKILL.md.",
"format": "int64",
"type": "integer"
},
"relationships": {
"format": "int64",
"type": "integer"
},
"vec_memories": {
"format": "int64",
"type": "integer"
}
},
"required": [
"entities",
"memories",
"memories_total",
"relationships",
"vec_memories"
],
"type": "object"
}
},
"properties": {
"applies_to_ratio": {
"description": "Fraction of relationships that use the `applies_to` relation type (0.0–1.0). Omitted when there are no relationships or when `applies_to` is absent.",
"format": "double",
"type": [
"number",
"null"
]
},
"checks": {
"items": {
"$ref": "#/definitions/HealthCheck"
},
"type": "array"
},
"counts": {
"$ref": "#/definitions/HealthCounts"
},
"db_path": {
"type": "string"
},
"db_size_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"elapsed_ms": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"fts_ok": {
"type": "boolean"
},
"fts_query_ok": {
"description": "Whether a live FTS5 MATCH query against fts_memories succeeded.",
"type": "boolean"
},
"hub_warning": {
"description": "Human-readable warning when `top_hub_entity` exceeds 50 connections. Omitted when degree is within acceptable bounds or there are no entities.",
"type": [
"string",
"null"
]
},
"integrity": {
"type": "string"
},
"integrity_ok": {
"type": "boolean"
},
"journal_mode": {
"description": "SQLite journaling mode (wal, delete, truncate, persist, memory, off).",
"type": "string"
},
"llm_slots_occupied": {
"description": "LLM embedding slots currently occupied (slot file exists).",
"format": "uint32",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"llm_slots_stale": {
"description": "LLM embedding slots held by dead processes (stale).",
"format": "uint32",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"llm_slots_total": {
"description": "Total LLM embedding slots available on this host.",
"format": "uint32",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"mentions_ratio": {
"description": "Fraction of relationships that use the `mentions` relation type (0.0–1.0). Omitted when there are no relationships in the database.",
"format": "double",
"type": [
"number",
"null"
]
},
"mentions_warning": {
"description": "Human-readable warning when `mentions` relationships dominate the graph (ratio > 0.5). Omitted when the ratio is within acceptable bounds or there are no relationships.",
"type": [
"string",
"null"
]
},
"missing_entities": {
"description": "List of entities referenced by memories but absent from the entities table. Empty in a healthy DB. Per the contract documented in SKILL.md.",
"items": {
"type": "string"
},
"type": "array"
},
"model_ok": {
"type": "boolean"
},
"namespace": {
"description": "Namespace filter applied to the counts. None means global (sum across all namespaces).",
"type": [
"string",
"null"
]
},
"non_normalized_count": {
"description": "Number of entities whose name differs from its normalized kebab-case form.",
"format": "int64",
"type": [
"integer",
"null"
]
},
"normalization_warning": {
"description": "Warning when non-normalized entities are detected.",
"type": [
"string",
"null"
]
},
"relation_concentration_warning": {
"description": "Human-readable warning when a single relation type occupies more than 40 % of edges. Omitted when concentration is within acceptable bounds or there are no relationships.",
"type": [
"string",
"null"
]
},
"schema_ok": {
"type": "boolean"
},
"schema_version": {
"description": "MAX(version) from refinery_schema_history — number of the last applied migration. Distinct from PRAGMA schema_version (SQLite DDL counter) and PRAGMA user_version (canonical SCHEMA_USER_VERSION from __debug_schema).",
"format": "uint32",
"minimum": 0.0,
"type": "integer"
},
"sqlite_version": {
"description": "SQLite version string, e.g. `\"3.46.0\"`.",
"type": "string"
},
"status": {
"type": "string"
},
"super_hub_count": {
"description": "Number of entities with degree exceeding the super-hub threshold (default 50).",
"format": "int64",
"type": [
"integer",
"null"
]
},
"super_hub_warning": {
"description": "Warning listing top super-hub entity names.",
"type": [
"string",
"null"
]
},
"top_hub_degree": {
"description": "Number of connections (degree) of `top_hub_entity`. Omitted when there are no entities in the database.",
"format": "int64",
"type": [
"integer",
"null"
]
},
"top_hub_entity": {
"description": "Name of the entity with the highest connection count in the namespace. Omitted when there are no entities in the database.",
"type": [
"string",
"null"
]
},
"top_relation": {
"description": "The relation type with the highest edge count in the namespace. Omitted when there are no relationships in the database.",
"type": [
"string",
"null"
]
},
"top_relation_ratio": {
"description": "Fraction of all edges occupied by `top_relation` (0.0–1.0). Omitted when there are no relationships in the database.",
"format": "double",
"type": [
"number",
"null"
]
},
"vec_chunks_coverage_pct": {
"format": "double",
"type": "number"
},
"vec_chunks_missing": {
"description": "v1.1.1 (P6a): memory_chunks rows without a row in chunk_embeddings/vec_chunks.",
"format": "int64",
"type": "integer"
},
"vec_chunks_ok": {
"type": "boolean"
},
"vec_entities_coverage_pct": {
"format": "double",
"type": "number"
},
"vec_entities_missing": {
"description": "v1.1.1 (P6a): entities without a row in entity_embeddings/vec_entities. Completeness (coverage), distinct from the table-existence consistency reported by `vec_entities_ok`.",
"format": "int64",
"type": "integer"
},
"vec_entities_ok": {
"type": "boolean"
},
"vec_memories_coverage_pct": {
"description": "v1.1.1 (P6a): vector coverage percentages in [0.0, 100.0] — fraction of source rows (active memories / entities / chunks) that have a vector. 100.0 when there is nothing to cover.",
"format": "double",
"type": "number"
},
"vec_memories_missing": {
"format": "int64",
"type": "integer"
},
"vec_memories_ok": {
"type": "boolean"
},
"vec_memories_orphaned": {
"format": "int64",
"type": "integer"
},
"wal_size_mb": {
"description": "WAL file size in MB (0.0 if WAL does not exist or journal_mode != wal).",
"format": "double",
"type": "number"
}
},
"required": [
"checks",
"counts",
"db_path",
"db_size_bytes",
"elapsed_ms",
"fts_ok",
"fts_query_ok",
"integrity",
"integrity_ok",
"journal_mode",
"missing_entities",
"model_ok",
"schema_ok",
"schema_version",
"sqlite_version",
"status",
"vec_chunks_coverage_pct",
"vec_chunks_missing",
"vec_chunks_ok",
"vec_entities_coverage_pct",
"vec_entities_missing",
"vec_entities_ok",
"vec_memories_coverage_pct",
"vec_memories_missing",
"vec_memories_ok",
"vec_memories_orphaned",
"wal_size_mb"
],
"title": "HealthResponse",
"type": "object"
}