Canvas: Implement streaming state updates

Change-Id: I2bc5a51b5792839bde93f927f5ffea22b3250fe2
diff --git a/apps/canvas/config/src/config.ts b/apps/canvas/config/src/config.ts
index b0aa744..dcc4318 100644
--- a/apps/canvas/config/src/config.ts
+++ b/apps/canvas/config/src/config.ts
@@ -189,6 +189,7 @@
 export type Graph = {
 	nodes: AppNode[];
 	edges: Edge[];
+	viewport?: { x: number; y: number; zoom: number };
 };
 
 export function configToGraph(config: Config, networks: Network[], repos: GithubRepository[], current?: Graph): Graph {
diff --git a/apps/canvas/config/src/index.ts b/apps/canvas/config/src/index.ts
index f8db8fe..569d347 100644
--- a/apps/canvas/config/src/index.ts
+++ b/apps/canvas/config/src/index.ts
@@ -52,7 +52,7 @@
 	AgentAccess,
 } from "./graph.js";
 
-export { generateDodoConfig, configToGraph } from "./config.js";
+export { generateDodoConfig, configToGraph, Graph } from "./config.js";
 
 export {
 	GithubRepository,