JSPM

@codragraph/graphstore

2.1.5
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 497
  • Score
    100M100P100Q94060F
  • License Apache-2.0

Dolt-like content-addressed versioning for the CodraGraph knowledge graph — snapshots, branches, diffs, three-way merge.

Package Exports

  • @codragraph/graphstore
  • @codragraph/graphstore/cas
  • @codragraph/graphstore/diff
  • @codragraph/graphstore/dist/cas/fs-cas.d.ts
  • @codragraph/graphstore/dist/cas/fs-cas.d.ts.map
  • @codragraph/graphstore/dist/cas/fs-cas.js
  • @codragraph/graphstore/dist/cas/fs-cas.js.map
  • @codragraph/graphstore/dist/cas/interface.d.ts
  • @codragraph/graphstore/dist/cas/interface.d.ts.map
  • @codragraph/graphstore/dist/cas/interface.js
  • @codragraph/graphstore/dist/cas/interface.js.map
  • @codragraph/graphstore/dist/diff/semantic.d.ts
  • @codragraph/graphstore/dist/diff/semantic.d.ts.map
  • @codragraph/graphstore/dist/diff/semantic.js
  • @codragraph/graphstore/dist/diff/semantic.js.map
  • @codragraph/graphstore/dist/diff/structural.d.ts
  • @codragraph/graphstore/dist/diff/structural.d.ts.map
  • @codragraph/graphstore/dist/diff/structural.js
  • @codragraph/graphstore/dist/diff/structural.js.map
  • @codragraph/graphstore/dist/gc/sweep.d.ts
  • @codragraph/graphstore/dist/gc/sweep.d.ts.map
  • @codragraph/graphstore/dist/gc/sweep.js
  • @codragraph/graphstore/dist/gc/sweep.js.map
  • @codragraph/graphstore/dist/history/branch.d.ts
  • @codragraph/graphstore/dist/history/branch.d.ts.map
  • @codragraph/graphstore/dist/history/branch.js
  • @codragraph/graphstore/dist/history/branch.js.map
  • @codragraph/graphstore/dist/history/commit.d.ts
  • @codragraph/graphstore/dist/history/commit.d.ts.map
  • @codragraph/graphstore/dist/history/commit.js
  • @codragraph/graphstore/dist/history/commit.js.map
  • @codragraph/graphstore/dist/history/log.d.ts
  • @codragraph/graphstore/dist/history/log.d.ts.map
  • @codragraph/graphstore/dist/history/log.js
  • @codragraph/graphstore/dist/history/log.js.map
  • @codragraph/graphstore/dist/index.d.ts
  • @codragraph/graphstore/dist/index.d.ts.map
  • @codragraph/graphstore/dist/index.js
  • @codragraph/graphstore/dist/index.js.map
  • @codragraph/graphstore/dist/merge/three-way.d.ts
  • @codragraph/graphstore/dist/merge/three-way.d.ts.map
  • @codragraph/graphstore/dist/merge/three-way.js
  • @codragraph/graphstore/dist/merge/three-way.js.map
  • @codragraph/graphstore/dist/snapshot/content-codec.d.ts
  • @codragraph/graphstore/dist/snapshot/content-codec.d.ts.map
  • @codragraph/graphstore/dist/snapshot/content-codec.js
  • @codragraph/graphstore/dist/snapshot/content-codec.js.map
  • @codragraph/graphstore/dist/snapshot/materializer.d.ts
  • @codragraph/graphstore/dist/snapshot/materializer.d.ts.map
  • @codragraph/graphstore/dist/snapshot/materializer.js
  • @codragraph/graphstore/dist/snapshot/materializer.js.map
  • @codragraph/graphstore/dist/snapshot/row-source.d.ts
  • @codragraph/graphstore/dist/snapshot/row-source.d.ts.map
  • @codragraph/graphstore/dist/snapshot/row-source.js
  • @codragraph/graphstore/dist/snapshot/row-source.js.map
  • @codragraph/graphstore/dist/snapshot/serializer.d.ts
  • @codragraph/graphstore/dist/snapshot/serializer.d.ts.map
  • @codragraph/graphstore/dist/snapshot/serializer.js
  • @codragraph/graphstore/dist/snapshot/serializer.js.map
  • @codragraph/graphstore/dist/types.d.ts
  • @codragraph/graphstore/dist/types.d.ts.map
  • @codragraph/graphstore/dist/types.js
  • @codragraph/graphstore/dist/types.js.map
  • @codragraph/graphstore/history
  • @codragraph/graphstore/snapshot
  • @codragraph/graphstore/types

Readme

@codragraph/graphstore

Dolt-like content-addressed versioning for the CodraGraph knowledge graph.

Your codebase has git history. Your agent's understanding of it should too.

This package adds a versioning layer underneath the existing LadybugDB-backed query path. Each codragraph analyze produces an immutable, content-addressed snapshot of the knowledge graph, including FeatureCluster nodes and their feature membership/dependency edges. Branches, merges, and structured diffs operate on those snapshots; querying a historical snapshot materializes it back into an ephemeral LadybugDB so the existing Cypher/MCP surface keeps working unchanged.

Status

Developer preview. Capabilities:

  • Content-addressed object store (FsCAS)
  • Snapshot serializer (graph rows → CAS)
  • Snapshot materializer (CAS → fresh LadybugDB)
  • Branches (filesystem refs)
  • Commits + log
  • Structural diff (added/removed nodes & edges by table)
  • Semantic diff — signature / visibility / body / location / metadata classification
  • Three-way merge with conflict detection
  • Mark-and-sweep gc

Layout

src/
├── types.ts                  Branded ObjectId, Snapshot, Commit, Branch, GraphDiff
├── cas/
│   ├── interface.ts          ContentAddressedStore { put, get, has, list }
│   └── fs-cas.ts             Filesystem CAS — .codragraph/graphstore/objects/<aa>/<rest>
├── snapshot/
│   ├── row-source.ts         RowSource / RowSink — abstract over LadybugDB
│   ├── serializer.ts         Walk RowSource → emit Snapshot
│   └── materializer.ts       Read Snapshot → write rows into RowSink
├── history/
│   ├── commit.ts             createCommit, readCommit
│   ├── branch.ts             createBranch, listBranches, getHead, setHead, HEAD
│   └── log.ts                walkCommits backward
├── diff/
│   ├── structural.ts         Diff between two Snapshot ids
│   └── semantic.ts           Higher-level diff with change classification
└── merge/
    └── three-way.ts          LCA-based three-way merge with conflict detection

Quick start

Most users get graphstore through @codragraph/cli; install this package directly only when you want to embed content-addressed graph versioning in your own tool.

import { FsCAS } from "@codragraph/graphstore/cas";
import { serializeSnapshot, materializeSnapshot } from "@codragraph/graphstore/snapshot";
import { createCommit, getHead, setHead } from "@codragraph/graphstore/history";
import { diffSnapshots } from "@codragraph/graphstore/diff";

const cas = new FsCAS({ root: ".codragraph/graphstore" });

// Take a snapshot
const snapshot = await serializeSnapshot({ source: cgdbRowSource, cas });
const commit = await createCommit({
  cas,
  snapshot: snapshot.id,
  parents: [],
  author: { name: "anit", email: "anit@example.com" },
  message: "initial index",
});
await setHead({ root: ".codragraph/graphstore", branch: "main", commit: commit.id });

// Diff two snapshots
const diff = await diffSnapshots({ cas, from: snapA.id, to: snapB.id });

License

Apache-2.0. You can use, modify, redistribute, bundle, and host this package commercially, subject to the Apache-2.0 notice and attribution requirements.