Files
zeekay 9002ba71e9 brain: ~/.hanzo unification + canonical scale-out backends + interface parity
• Path: ~/.hanzo-bot/brain/brain.db → ~/.hanzo/brain/brain.db.
    Shared across every Hanzo SDK on a machine (bot, mcp, dev, python).
    No more per-product directories — every artifact under one root.

  • Pluggable BrainStore now advertises every canonical backend with
    install-on-demand messaging. listBackends() shows:
      sqlite      (in-core default, ships)
      qdrant      → @hanzo/bot-memory-qdrant      (~/work/hanzo/vector)
      meilisearch → @hanzo/bot-memory-meilisearch (~/work/hanzo/search)
      postgres    → @hanzo/bot-memory-postgres    (multi-tenant team)
      lancedb     → @hanzo/bot-memory-lancedb     (already shipped)
      libsql      → @hanzo/bot-memory-libsql      (Turso/sqld multi-replica)
      replicate   → @hanzo/bot-memory-replicate   (~/work/hanzo/replicate
                                                   SQLite WAL → S3 backup)
      vfs         → @hanzo/bot-memory-vfs         (~/work/hanzo/vfs S3
                                                   streaming block FS)

  • README docs the scaling decision tree per workload size.

  • Bot deploys the same ~/.hanzo paths as hanzo-mcp + python-sdk, so
    a brain.db written by one runtime is read by all of them.
2026-05-10 19:29:28 -07:00

57 lines
1.5 KiB
JSON

{
"id": "brain",
"kind": "memory",
"uiHints": {
"memory.url": {
"label": "Brain storage URL",
"placeholder": "(leave empty for ~/.hanzo/brain/brain.db SQLite)",
"help": "Postgres URL or path. Empty → embedded SQLite single-binary mode."
},
"memory.embeddingModel": {
"label": "Embedding model",
"placeholder": "text-embedding-3-small",
"advanced": true
},
"memory.embeddingApiKey": {
"label": "Embedding API key",
"sensitive": true,
"placeholder": "sk-…",
"advanced": true
},
"graph.enabled": {
"label": "Self-wiring knowledge graph",
"help": "Run zero-LLM typed-link extraction on every page write (recommended)."
},
"recipes": {
"label": "Enabled recipes",
"help": "Daily ingest recipes to run. e.g. ['email', 'calendar']",
"advanced": true
}
},
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"memory": {
"type": "object",
"additionalProperties": false,
"properties": {
"url": { "type": "string" },
"embeddingModel": { "type": "string" },
"embeddingApiKey": { "type": "string" },
"dataDir": { "type": "string" }
}
},
"graph": {
"type": "object",
"additionalProperties": false,
"properties": { "enabled": { "type": "boolean", "default": true } }
},
"recipes": {
"type": "array",
"items": { "type": "string" }
}
}
}
}