sqlite-graphrag 1.1.6

Persistent GraphRAG memory for Claude Code, Codex, Cursor, and 27 AI agents — one self-contained ~19 MiB Rust binary, zero daemon. Never re-explain your codebase again. Hybrid retrieval (FTS5 BM25 + cosine similarity + multi-hop graph traversal) surfaces the right memory in milliseconds. Embedding and entity enrichment run as parallel REST calls against your cloud LLM — no fragile headless subprocesses, no ONNX runtime, no model downloads. Soft-delete with full version history, transactional atomic writes, BLAKE3-tracked mutations. OAuth-only: raw API keys ABORT the spawn.
Documentation
{
  "$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"
}