Canvas: Generate graph state out of dodo-app config

Restructure code, create shared config lib.

Change-Id: I2cf06d35c486d4557484daf8618a2c215316fa7e
diff --git a/apps/canvas/config/package.json b/apps/canvas/config/package.json
new file mode 100644
index 0000000..c5b04e6
--- /dev/null
+++ b/apps/canvas/config/package.json
@@ -0,0 +1,34 @@
+{
+  "name": "config",
+  "version": "1.0.0",
+  "description": "",
+  "license": "ISC",
+  "author": "",
+  "type": "module",
+  "main": "dist/index.js",
+  "scripts": {
+    "build": "tsc",
+    "format": "prettier --write src/**/*.{js,ts,jsx,tsx} --list-different",
+    "format-check": "prettier --check src/**/*.{js,ts,jsx,tsx}",
+    "lint": "eslint ."
+  },
+  "dependencies": {
+    "zod": "^3.24.4",
+    "@xyflow/react": "^12.3.3",
+    "uuid": "^11.0.2"
+  },
+  "devDependencies": {
+    "eslint": "^9.13.0",
+    "prettier": "3.5.3",
+    "typescript": "^5.8.3",
+    "typescript-eslint": "^8.11.0"
+  },
+  "prettier": {
+    "printWidth": 120,
+    "tabWidth": 4,
+    "useTabs": true,
+    "singleQuote": false,
+    "trailingComma": "all",
+    "arrowParens": "always"
+  }
+}