Metadata-Version: 2.4
Name: agentforge-memory-kuzu
Version: 0.4.0
Summary: Embedded, file-backed GraphStore for AgentForge (Kùzu)
Project-URL: Homepage, https://github.com/Scaffoldic/agentforge-py
Project-URL: Repository, https://github.com/Scaffoldic/agentforge-py
Project-URL: Documentation, https://github.com/Scaffoldic/agentforge-py
Project-URL: Changelog, https://github.com/Scaffoldic/agentforge-py/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/Scaffoldic/agentforge-py/issues
Author: The AgentForge Authors
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: agent,ai,cypher,embedded,graph,knowledge-graph,kuzu
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.13
Requires-Dist: agentforge-core~=0.4.0
Requires-Dist: kuzu>=0.11.3
Description-Content-Type: text/markdown

# agentforge-memory-kuzu

Embedded, file-backed `GraphStore` for [AgentForge](https://github.com/Scaffoldic/agentforge-py),
backed by [Kùzu](https://kuzudb.com/) — a persistent property graph in a
single directory, in-process, no server (feat-027).

It is the graph analogue of the SQLite `MemoryStore`: zero-ops local
development, CI, single-host deployments, and embedded products. The driver
implements the locked `GraphStore` contract and passes
`run_graph_conformance`, so it is swap-compatible with the Neo4j and
SurrealDB drivers.

```python
from agentforge_memory_kuzu import KuzuGraphStore
from agentforge_core.values.graph import GraphNode, GraphEdge

async with await KuzuGraphStore.from_path(".ckg") as store:
    await store.add_node(GraphNode(id="a", labels=("Func",)))
    await store.add_node(GraphNode(id="b", labels=("Func",)))
    await store.add_edge(GraphEdge(src="b", dst="a", edge_type="CALLS"))
    callers = await store.get_edges("a", edge_type="CALLS", direction="in")
```

Via YAML, anywhere a `graph_stores` driver is accepted:

```yaml
store:
  driver: kuzu
  config:
    path: .ckg          # directory; created if absent
```
