546aeeed70
Adds the team_model graph layer (the "it learned" view) and its visualization,
per docs/graph.md. Demo-backed first; built on origin/main conventions.
- shared: PodGraph / node / edge / metric types + GraphNodeDoc / GraphEdgeDoc
- backend/src/graph: demo graph data; Mongo store (loadPodGraph w/ demo
fallback, seedGraph, reachFrom via $graphLookup); graph:seed script
- backend/src/server.ts: additive GET /api/pods/:id/graph + /graph/reach/:node
- frontend: dark-Bauhaus GraphView + fetch helper, reachable from a
"Team memory" toggle in App.tsx
- docs/graph.md: spec (data model, $graphLookup, API, demo-first plan)
Demo-backed: the route serves a grounded demo graph when team_model has no
graph yet; graph:seed writes team_model + graph_nodes/graph_edges so the
$graphLookup traversal is real. Swap loadPodGraph to live team_model later.
Known follow-ups before merge: branch is based on 65a0791; origin/main is now
at 1294b84, so this needs a rebase + App.tsx conflict resolution (teammate
rewrote App.tsx with live room view / one-click join).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
20 lines
563 B
TypeScript
20 lines
563 B
TypeScript
import { seedGraph } from './store.js';
|
|
|
|
/**
|
|
* Seed a pod's continual-learning graph into Mongo (team_model + graph_nodes +
|
|
* graph_edges). Usage: `pnpm graph:seed [podId]` (defaults to demo-pod).
|
|
*/
|
|
const podId = process.argv[2] ?? 'demo-pod';
|
|
|
|
seedGraph(podId)
|
|
.then((graph) => {
|
|
console.log(
|
|
`[graph] seeded ${graph.nodes.length} nodes / ${graph.edges.length} edges for pod "${podId}"`,
|
|
);
|
|
process.exit(0);
|
|
})
|
|
.catch((err: unknown) => {
|
|
console.error(`[graph] seed failed: ${(err as Error).message}`);
|
|
process.exit(1);
|
|
});
|