kb10
Kickside KB10 — the document/graph knowledge-base engine. Owns the kb10_* schema and node/edge/embedding store, durable embeddable/queryable/deletable bindings, and the kb_store engine contract used by kickside/knowledge.
Run
wippy run kickside/kb10kickside/kb10
The document/graph knowledge-base engine for Kickside.
This module owns:
- The
kb10_*schema (kb10_stores,kb10_nodes,kb10_embeddings,kb10_edges, FTS) created by its single baseline migration. - The node/edge/embedding store (
kickside.kb10.persist:kb10_store) — the only code that reads/writes those tables. - The engine funcs: contextual document embedding (
embed_func), two-stage adaptive query (query_func), and teardown (delete_func). The sharedembed_reference_func(content-provider dispatch) lives in knowledge. - The bindings:
kb_storeimplementskickside.knowledge:kb_store(default), the engine seam knowledge's control plane uses to reach a KB's store.kb_store_materializerimplementskickside.knowledge:kb_store_materializer, the internal durable source-thread seam for document/summary/chunk materialization.embeddable/queryableimplement the Kickside KB surface (kickside.contract:embeddable/queryable) pluskickside.contract:deletable.
Boundary
kb10 is an implementation module. Knowledge's control plane (KB CRUD, browse/graph API, concept-graph enrichment/retrieval, digest) never imports this module's persistence — it resolves the kickside.knowledge:kb_store contract, which kb10 binds by default. Source injection resolves the internal kickside.knowledge:kb_store_materializer contract from the durable thread projection worker.
kb10 depends on kickside/knowledge only for the contract definition it implements and for the graph_retrieval library query_func invokes on graph-type KBs.
Engine descriptors
kb10 exposes document, graph, and wiki as declarative
kickside.kb_engine entries. Each entry declares the same embeddable/queryable
bindings, the kickside.knowledge:kb_store control-plane contract, and the
internal kickside.knowledge:kb_store_materializer contract. The knowledge
module discovers those descriptors; it does not special-case kb10 for create,
read/list, query, delete, or source projection.
Test
make test
Boots kb10 + knowledge + component/uploads/dataflow/llm and runs the co-located *_test.lua suites against an in-memory SQLite database. Embedding/ingest suites issue real llm.embed calls — OPENAI_API_KEY must be set.