@electric-agent/agent 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"AAaA,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,GAAG,OAAO,CAAC,IAAI,CAAC,CAiKhB"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"AAYA,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,GAAG,OAAO,CAAC,IAAI,CAAC,CA+IhB"}
package/dist/cli/serve.js CHANGED
@@ -8,7 +8,6 @@ import { DockerSandboxProvider } from "@electric-agent/studio/sandbox/docker";
8
8
  import { SpritesSandboxProvider } from "@electric-agent/studio/sandbox/sprites";
9
9
  import { startWebServer } from "@electric-agent/studio/server";
10
10
  import { getStreamConfig } from "@electric-agent/studio/streams";
11
- import { inferProjectName } from "../agents/clarifier.js";
12
11
  export async function serveCommand(opts) {
13
12
  const port = opts.port ?? (process.env.PORT ? parseInt(process.env.PORT, 10) : 4400);
14
13
  const dataDir = opts.dataDir ?? process.env.DATA_DIR ?? ".electric-agent";
@@ -71,27 +70,7 @@ export async function serveCommand(opts) {
71
70
  sandbox = new DockerSandboxProvider();
72
71
  console.log("[serve] Sandbox runtime: Docker (default)");
73
72
  }
74
- // Determine bridge mode:
75
- // BRIDGE_MODE=stdio → always stdin/stdout (required for Daytona without internet)
76
- // BRIDGE_MODE=stream → always hosted Durable Streams (default for Docker & Sprites)
77
- // BRIDGE_MODE=claude-code → Claude Code CLI in sandbox with stream-json I/O
78
- // (unset) → "stdio" for Daytona, "stream" for Docker/Sprites
79
- const bridgeModeEnv = process.env.BRIDGE_MODE?.toLowerCase();
80
- let bridgeMode;
81
- if (bridgeModeEnv === "claude-code") {
82
- bridgeMode = "claude-code";
83
- }
84
- else if (bridgeModeEnv === "stdio") {
85
- bridgeMode = "stdio";
86
- }
87
- else if (bridgeModeEnv === "stream") {
88
- bridgeMode = "stream";
89
- }
90
- else {
91
- // Default: Daytona uses stdio (required — no internet), others use stream
92
- bridgeMode = sandbox.runtime === "daytona" ? "stdio" : "stream";
93
- }
94
- console.log(`[serve] Bridge mode: ${bridgeMode}`);
73
+ console.log(`[serve] Bridge mode: claude-code`);
95
74
  // Create room registry (hydrates from durable stream)
96
75
  console.log("[serve] Hydrating room registry from durable stream...");
97
76
  const rooms = await RoomRegistry.create(streamConfig);
@@ -101,8 +80,7 @@ export async function serveCommand(opts) {
101
80
  rooms,
102
81
  sandbox,
103
82
  streamConfig,
104
- bridgeMode,
105
- inferProjectName,
83
+ bridgeMode: "claude-code",
106
84
  });
107
85
  console.log(`\nWeb UI ready at http://127.0.0.1:${port}`);
108
86
  // Start Caddy reverse proxy for HTTP/2 (required for concurrent SSE streams)
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,7 +2,6 @@
2
2
  import { createRequire } from "node:module";
3
3
  import { Command } from "commander";
4
4
  import dotenv from "dotenv";
5
- import { headlessCommand } from "./cli/headless.js";
6
5
  import { serveCommand } from "./cli/serve.js";
7
6
  import { findUp } from "./find-env.js";
8
7
  import { scaffold } from "./scaffold/index.js";
@@ -15,12 +14,6 @@ program
15
14
  .description("Turn natural-language app descriptions into running reactive Electric SQL + TanStack DB applications")
16
15
  .version(version)
17
16
  .option("--verbose", "Enable verbose logging");
18
- program
19
- .command("headless")
20
- .description("Run in headless mode communicating via hosted Durable Streams")
21
- .action(async () => {
22
- await headlessCommand();
23
- });
24
17
  program
25
18
  .command("serve")
26
19
  .description("Start the web UI server")
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAA;AAErE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACL,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CACX,sGAAsG,CACtG;KACA,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAA;AAE/C,OAAO;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,CAAC;KACxD,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,EAAE,iBAAiB,CAAC;KAChF,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,IAAyD,EAAE,EAAE;IAC3E,MAAM,YAAY,CAAC;QAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACrD,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI;KACf,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEH,OAAO;KACL,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;KAC3C,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;KACxD,MAAM,CAAC,YAAY,EAAE,yBAAyB,CAAC;KAC/C,MAAM,CACN,KAAK,EAAE,GAAW,EAAE,IAAiE,EAAE,EAAE;IACxF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE;QAClC,WAAW,EAAE,IAAI,CAAC,IAAI;QACtB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;KACrB,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAChD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;AAC1D,CAAC,CACD,CAAA;AAEF,OAAO,CAAC,KAAK,EAAE,CAAA"}
@@ -1,4 +1,8 @@
1
- import type { ProgressReporter } from "../progress/reporter.js";
1
+ /** Minimal progress reporter interface (formerly in progress/reporter.ts) */
2
+ interface ProgressReporter {
3
+ log(level: string, message: string): void;
4
+ verboseMode?: boolean;
5
+ }
2
6
  export interface ScaffoldResult {
3
7
  projectDir: string;
4
8
  skippedInstall: boolean;
@@ -20,4 +24,5 @@ export declare function scaffold(projectDir: string, opts?: {
20
24
  projectName?: string;
21
25
  reporter?: ProgressReporter;
22
26
  }): Promise<ScaffoldResult>;
27
+ export {};
23
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAK/D,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,MAAM,EAAE,CAAA;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAC7B,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;IACN,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAC3B,GACC,OAAO,CAAC,cAAc,CAAC,CAkJzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAMA,6EAA6E;AAC7E,UAAU,gBAAgB;IACzB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB;AAKD,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,MAAM,EAAE,CAAA;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAC7B,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;IACN,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAC3B,GACC,OAAO,CAAC,cAAc,CAAC,CAkJzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;AAQ7D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,UAAkB,EAClB,IAKC;IAED,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAA;IAC/B,IAAI,cAAc,GAAG,IAAI,EAAE,WAAW,IAAI,KAAK,CAAA;IAE/C,6BAA6B;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,CAAC;QACJ,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,qCAAqC,CAAC,CAAA;QAC/D,QAAQ,CAAC,gCAAgC,UAAU,KAAK,EAAE;YACzD,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,OAAO;SAChB,CAAC,CAAA;QACF,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAA;QAC7D,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,2DAA2D;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACd,8CAA8C,UAAU,+BAA+B;YACtF,8CAA8C,CAC/C,CAAA;IACF,CAAC;IAED,sCAAsC;IACtC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,uCAAuC,WAAW,KAAK,CAAC,CAAA;IACjF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,QAAQ,EAAE,GAAG,CACZ,OAAO,EACP,mCAAmC,WAAW,qEAAqE,CACnH,CAAA;IACF,CAAC;IACD,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IAC1C,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAA;IAErD,gDAAgD;IAChD,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,2CAA2C,CAAC,CAAA;IACrE,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;IAEhD,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;IACxD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QACvB,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAA;IACzD,CAAC;IAED,+BAA+B;IAC/B,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAA;IACtD,eAAe,CAAC,UAAU,CAAC,CAAA;IAE3B,8CAA8C;IAC9C,cAAc,CAAC,UAAU,CAAC,CAAA;IAE1B,0EAA0E;IAC1E,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAA;IAC1D,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAEjC,gEAAgE;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACpC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAA;IACxD,CAAC;IACD,kEAAkE;IAClE,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;QACjD,CAAC;IACF,CAAC;IAED,kDAAkD;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAChD,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAC9E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAA;IACnF,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,0CAA0C,CAAC,CAAA;IAEpE,2BAA2B;IAC3B,cAAc,CAAC,UAAU,CAAC,CAAA;IAE1B,gCAAgC;IAChC,2EAA2E;IAC3E,uEAAuE;IACvE,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,IAAI,CAAC;YACJ,MAAM,SAAS,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;YAClD,MAAM,QAAQ,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAA;YAClE,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,WAAW,SAAS,aAAa,CAAC,CAAA;YAC3D,QAAQ,CAAC,GAAG,SAAS,WAAW,QAAQ,EAAE,EAAE;gBAC3C,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,OAAO;aAChB,CAAC,CAAA;YACF,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,qCAAqC,CAAC,CAAA;QAChE,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACrB,MAAM,MAAM,GAAI,CAAqC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YAC/E,MAAM,MAAM,GAAI,CAAqC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YAC/E,MAAM,QAAQ,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;YAC9C,IAAI,QAAQ,EAAE,WAAW,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAA;YACpD,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,2BAA2B,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;YACjE,CAAC;YACD,cAAc,GAAG,IAAI,CAAA;QACtB,CAAC;IACF,CAAC;IAED,oEAAoE;IACpE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACpB,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAA;QACxD,IAAI,CAAC;YACJ,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;YAC3D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,YAAY,EAAE,CAAC,CAAA;QAC1D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,oBAAoB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;YAC5E,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEhB,2EAA2E;YAC3E,iEAAiE;YACjE,IAAI,CAAC;gBACJ,QAAQ,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;gBAChE,QAAQ,CAAC,8CAA8C,EAAE;oBACxD,GAAG,EAAE,UAAU;oBACf,KAAK,EAAE,MAAM;iBACb,CAAC,CAAA;gBACF,QAAQ,CAAC,uCAAuC,EAAE;oBACjD,GAAG,EAAE,UAAU;oBACf,KAAK,EAAE,MAAM;iBACb,CAAC,CAAA;gBACF,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAA;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACR,MAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;YAC5E,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,CAAA;AAC9C,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,MAAM,CAAA;IACzE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,MAAM,CAAA;IACpE,6BAA6B;IAC7B,IAAI,CAAC;QACJ,QAAQ,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC7C,OAAO,MAAM,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAA;IACb,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,OAAe;IACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAM;IAElC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAE/C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3C,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACP,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACzD,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACnC,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,kBAAkB,GAA2B;IAClD,cAAc,EAAE,QAAQ;IACxB,oBAAoB,EAAE,QAAQ;IAC9B,kCAAkC,EAAE,QAAQ;IAC5C,sBAAsB,EAAE,OAAO;IAC/B,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,OAAO;CACZ,CAAA;AAED,MAAM,sBAAsB,GAA2B;IACtD,aAAa,EAAE,QAAQ;IACvB,MAAM,EAAE,QAAQ;IAChB,oEAAoE;IACpE,gFAAgF;CAChF,CAAA;AAED,MAAM,aAAa,GAA2B;IAC7C,QAAQ,EAAE,sBAAsB;IAChC,OAAO,EAAE,qBAAqB;IAC9B,SAAS,EAAE,kBAAkB;IAC7B,WAAW,EAAE,2EAA2E;IACxF,UAAU,EAAE,oFAAoF;IAChG,aAAa,EAAE,iCAAiC;IAChD,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,QAAQ;IACtB,kBAAkB,EAAE,8BAA8B;CAClD,CAAA;AAED,SAAS,iBAAiB,CAAC,UAAkB,EAAE,WAAoB;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAM;IAEnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAEzD,iBAAiB;IACjB,IAAI,WAAW,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,GAAG,WAAW,CAAA;IACvB,CAAC;IAED,GAAG,CAAC,YAAY,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACzE,GAAG,CAAC,eAAe,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,GAAG,sBAAsB,EAAE,CAAA;IACnF,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,aAAa,EAAE,CAAA;IAE1D,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACxE,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;IACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAM;IAEpC,IAAI,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAEhD,mFAAmF;IACnF,gEAAgE;IAChE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,iDAAiD,CAAC,CAAA;IAE5F,2EAA2E;IAC3E,+EAA+E;IAC/E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,OAAO,CACxB,2DAA2D,EAC3D,mEAAmE,CACnE,CAAA;IACF,CAAC;IAED,oEAAoE;IACpE,gDAAgD;IAChD,mEAAmE;IACnE,kEAAkE;IAClE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,6BAA6B,CAAC,CAAA;QAChF,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,CAAA;QAC3E,CAAC;IACF,CAAC;IAED,0EAA0E;IAC1E,wDAAwD;IACxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG;YAClB,cAAc;YACd,sBAAsB;YACtB,sEAAsE;YACtE,6BAA6B;YAC7B,UAAU;YACV,QAAQ;SACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACZ,+CAA+C;QAC/C,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,OAAO,UAAU,EAAE,CAAC,CAAA;QAC3E,CAAC;aAAM,CAAC;YACP,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,UAAU,EAAE,CAAC,CAAA;QACnE,CAAC;IACF,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC7C,CAAC;AAED,yEAAyE;AACzE,sEAAsE;AACtE,yEAAyE;AACzE,qEAAqE;AACrE,SAAS,cAAc,CAAC,WAAmB;IAC1C,qCAAqC;AACtC,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAkB;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAA;IAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAM;IAEpC,IAAI,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAEhD,sEAAsE;IACtE,oDAAoD;IACpD,2EAA2E;IAC3E,yEAAyE;IACzE,kDAAkD;IAClD,EAAE;IACF,uEAAuE;IACvE,uEAAuE;IACvE,oCAAoC;IACpC,MAAM,mBAAmB,GACxB,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IAEvF,IAAI,mBAAmB,EAAE,CAAC;QACzB,8BAA8B;QAC9B,OAAO,GAAG,OAAO,CAAC,OAAO,CACxB,uEAAuE,EACvE,EAAE,CACF,CAAA;QACD,uDAAuD;QACvD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAA;QAC9E,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACzC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACzD,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC3D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACvE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAErD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,uBAAuB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;QAC1D,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electric-agent/agent",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "CLI tool that turns natural-language app descriptions into running reactive Electric SQL + TanStack DB applications",
5
5
  "type": "module",
6
6
  "bin": {
@@ -27,8 +27,8 @@
27
27
  "commander": "^13.1.0",
28
28
  "dotenv": "^17.3.1",
29
29
  "zod": "^3.24.1",
30
- "@electric-agent/studio": "1.1.1",
31
- "@electric-agent/protocol": "1.1.0"
30
+ "@electric-agent/protocol": "1.2.0",
31
+ "@electric-agent/studio": "1.3.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^22.15.0",
@@ -0,0 +1,288 @@
1
+ ---
2
+ name: create-app
3
+ description: Create a new Electric SQL + TanStack DB application from a natural-language description. Guides through clarification, planning, data model validation, and code generation. Use this when asked to create, build, or generate a new reactive/local-first app.
4
+ argument-hint: <app description>
5
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Agent, WebSearch, TodoWrite
6
+ ---
7
+
8
+ # Create Electric SQL App
9
+
10
+ You are building a reactive, real-time application using Electric SQL + TanStack DB + Drizzle ORM inside a scaffolded TanStack Start project.
11
+
12
+ Follow the phases below **in strict order**. Do NOT skip phases or jump ahead.
13
+
14
+ ## Phase 0: Clarification
15
+
16
+ Evaluate the description provided in `$ARGUMENTS`.
17
+
18
+ **Score the description (mentally) on this scale:**
19
+ - 80-100: Very detailed — app type + specific features + data model hints
20
+ - 50-79: Recognizable app type but light on specifics
21
+ - 0-49: Too vague to proceed
22
+
23
+ **If the description scores below 70**, use AskUserQuestion to ask 1-3 targeted questions:
24
+ - What are the key features or interactions? (e.g., drag-and-drop, categories, search, due dates)
25
+ - What are the main entities/data objects and their relationships?
26
+ - Should it support multi-user collaboration with real-time sync?
27
+ - Should it work offline and sync when reconnected?
28
+
29
+ Keep questions specific to the described app type. After getting answers, enrich the description mentally and proceed.
30
+
31
+ **If the description scores 70+**, proceed immediately without questions.
32
+
33
+ ## Phase 1: Generate PLAN.md
34
+
35
+ Based on the description, write a complete `PLAN.md` file with this structure:
36
+
37
+ ```markdown
38
+ # [App Name] — Implementation Plan
39
+
40
+ ## App Description
41
+ [1-2 sentences]
42
+
43
+ ## Data Model
44
+
45
+ ### [Entity Name]
46
+ \```typescript
47
+ export const entityName = pgTable("entity_name", {
48
+ id: uuid().primaryKey().defaultRandom(),
49
+ // ALL columns with full types, defaults, and relations
50
+ created_at: timestamp({ withTimezone: true }).notNull().defaultNow(),
51
+ updated_at: timestamp({ withTimezone: true }).notNull().defaultNow(),
52
+ })
53
+ \```
54
+ (Repeat for EVERY entity)
55
+
56
+ ## Implementation Tasks
57
+
58
+ ### Phase 1: Data Model & Migrations
59
+ - [ ] Read guardrails and playbooks (electric-app-guardrails, schemas, collections, mutations, live-queries)
60
+ - [ ] Define all Drizzle table schemas in src/db/schema.ts
61
+ - [ ] Derive Zod schemas in src/db/zod-schemas.ts (drizzle-zod, z from "zod/v4", timestamp overrides)
62
+ - [ ] Run drizzle-kit generate && drizzle-kit migrate
63
+ - [ ] Write schema smoke tests in tests/schema.test.ts
64
+ - [ ] Run pnpm test — STOP if tests fail
65
+
66
+ ### Phase 2: Collections & API Routes
67
+ - [ ] Create collection for each entity in src/db/collections/<entity>.ts
68
+ - [ ] Create Electric shape proxy route: src/routes/api/<entity>.ts
69
+ - [ ] Create mutation routes: src/routes/api/mutations/<entity>.ts
70
+
71
+ ### Phase 3: UI Components
72
+ - [ ] Create page routes with useLiveQuery (ssr: false on leaf routes)
73
+ - [ ] Implement CRUD operations using mutation fetch calls
74
+ - [ ] Style with Radix UI Themes + lucide-react icons
75
+
76
+ ### Phase 4: Build & Lint
77
+ - [ ] pnpm run build passes
78
+ - [ ] pnpm run check passes
79
+
80
+ ### Phase 5: Testing
81
+ - [ ] Collection insert validation tests in tests/collections.test.ts
82
+ - [ ] JSON round-trip tests (parseDates + schema validation)
83
+ - [ ] pnpm test passes
84
+
85
+ ### Phase 6: Architecture Reference
86
+ - [ ] Write ARCHITECTURE.md
87
+
88
+ ## Design Conventions
89
+ - UUID primary keys with defaultRandom()
90
+ - timestamp({ withTimezone: true }) for all dates
91
+ - snake_case for SQL table/column names
92
+ - Foreign keys with onDelete: "cascade" where appropriate
93
+ ```
94
+
95
+ **Present the plan to the user for approval** using AskUserQuestion:
96
+ - "Here is the implementation plan. Should I proceed?"
97
+ - Options: "Approve — start building", "Revise — I have feedback", "Cancel"
98
+ - If "Revise": ask for feedback, regenerate PLAN.md, present again
99
+ - If "Cancel": stop
100
+
101
+ Write the approved PLAN.md to disk.
102
+
103
+ ## Phase 2: Data Model Validation (CRITICAL GATE)
104
+
105
+ This phase validates the data model BEFORE writing any application code. **Do NOT proceed to Phase 3 until tests pass.**
106
+
107
+ ### Step 2a: Write Schema
108
+ Write `src/db/schema.ts` with all Drizzle pgTable definitions from PLAN.md.
109
+
110
+ Conventions:
111
+ - `uuid().primaryKey().defaultRandom()` for IDs
112
+ - `timestamp({ withTimezone: true }).notNull().defaultNow()` for timestamps
113
+ - `.references(() => table.id, { onDelete: "cascade" })` for FKs
114
+ - Do NOT import `relations` from drizzle-orm
115
+
116
+ ### Step 2b: Write Zod Schemas
117
+ Write `src/db/zod-schemas.ts`:
118
+ - Import `z` from `"zod/v4"` (NOT `"zod"`)
119
+ - Use `createSelectSchema` and `createInsertSchema` from `drizzle-zod`
120
+ - Override ALL timestamp columns: `z.union([z.date(), z.string()]).default(() => new Date())`
121
+ - The `.default()` is required for `collection.insert()` to work without timestamps
122
+ - Export both select and insert schemas for each entity
123
+
124
+ ### Step 2c: Run Migrations
125
+ ```bash
126
+ pnpm drizzle-kit generate && pnpm drizzle-kit migrate
127
+ ```
128
+
129
+ ### Step 2d: Write Schema Tests
130
+ Write `tests/schema.test.ts`:
131
+ ```typescript
132
+ import { generateValidRow, generateRowWithout } from "./helpers/schema-test-utils"
133
+ import { entitySelectSchema } from "@/db/zod-schemas"
134
+
135
+ describe("entity schema", () => {
136
+ it("accepts a complete row", () => {
137
+ expect(entitySelectSchema.safeParse(generateValidRow(entitySelectSchema)).success).toBe(true)
138
+ })
139
+ it("rejects without id", () => {
140
+ expect(entitySelectSchema.safeParse(generateRowWithout(entitySelectSchema, "id")).success).toBe(false)
141
+ })
142
+ })
143
+ ```
144
+
145
+ **Rules:**
146
+ - DO NOT import collection files — they connect to Electric on import
147
+ - DO NOT import `@/db` — requires Postgres
148
+ - ONLY import from `@/db/zod-schemas` and `@/db/schema`
149
+ - Use `generateValidRow(schema)` — never hand-write test data
150
+
151
+ ### Step 2e: Run Tests
152
+ ```bash
153
+ pnpm test
154
+ ```
155
+
156
+ **If tests fail**: fix the schema/zod-schemas and re-run. Do NOT proceed until green.
157
+ **If tests pass**: mark Phase 1 tasks as `[x]` in PLAN.md and continue.
158
+
159
+ ## Phase 3: Collections & API Routes
160
+
161
+ ### Collections
162
+ For each entity, create `src/db/collections/<entity>.ts`:
163
+ - Import the select schema from `@/db/zod-schemas`
164
+ - Use absolute URL for `shapeOptions.url`:
165
+ ```typescript
166
+ url: new URL("/api/<entity>", typeof window !== "undefined" ? window.location.origin : "http://localhost:5174").toString()
167
+ ```
168
+
169
+ ### API Routes
170
+
171
+ **Electric Shape Proxy** (`src/routes/api/<entity>.ts`):
172
+ ```typescript
173
+ import { createFileRoute } from "@tanstack/react-router"
174
+ import { proxyElectricRequest } from "@/lib/electric-proxy"
175
+
176
+ export const Route = createFileRoute("/api/<entity>")({
177
+ // @ts-expect-error – server.handlers types lag behind runtime support
178
+ server: {
179
+ handlers: {
180
+ GET: async ({ request }: { request: Request }) => {
181
+ return proxyElectricRequest(request, "<table_name>")
182
+ },
183
+ },
184
+ },
185
+ })
186
+ ```
187
+
188
+ **Mutation Route** (`src/routes/api/mutations/<entity>.ts`):
189
+ - Use `parseDates(await request.json())` for all handlers
190
+ - PUT/PATCH: destructure out `created_at` and `updated_at` before spreading
191
+ - Return `{ txid }` from each mutation
192
+
193
+ ## Phase 4: UI Components
194
+
195
+ - Create page routes with `useLiveQuery` — add `ssr: false` to leaf routes (NOT `__root.tsx`)
196
+ - Wrap `useLiveQuery` components in `ClientOnly` when used from `__root.tsx`
197
+ - Use `lucide-react` for icons (NOT `@radix-ui/react-icons`)
198
+ - Style with Radix UI Themes components
199
+
200
+ ## Phase 5: Build & Verify
201
+
202
+ Run the build tool:
203
+ ```bash
204
+ pnpm run build && pnpm run check
205
+ ```
206
+
207
+ Fix any errors. Re-run until clean.
208
+
209
+ ## Phase 6: Final Tests
210
+
211
+ Write additional tests:
212
+ - `tests/collections.test.ts` — collection insert validation (import from zod-schemas only)
213
+ - JSON round-trip test: `parseDates(JSON.parse(JSON.stringify(row)))` validates correctly
214
+
215
+ Run `pnpm test` — fix until green.
216
+
217
+ ## Phase 7: Architecture Reference
218
+
219
+ Write `ARCHITECTURE.md` in the project root (under 1500 tokens):
220
+ ```markdown
221
+ # [App Name] — Architecture Reference
222
+ _Last updated: [ISO date]_
223
+
224
+ ## App Description
225
+ ## Data Model
226
+ ### [Entity] (`table_name`)
227
+ - **Columns**: ...
228
+ - **Relations**: ...
229
+ - **Collection**: src/db/collections/...
230
+
231
+ ## API Routes
232
+ | Method | Path | File | Purpose |
233
+
234
+ ## UI Routes & Components
235
+ | Route | File | Description |
236
+
237
+ ### Key Components
238
+
239
+ ## Styling
240
+ ## State & Context
241
+ ```
242
+
243
+ ## Critical Rules (from electric-app-guardrails)
244
+
245
+ - `z` from `"zod/v4"` — NEVER from `"zod"`
246
+ - ALL timestamp columns get `z.union([z.date(), z.string()]).default(() => new Date())`
247
+ - NEVER use `z.coerce.date()` — creates ZodEffects rejected by TanStack DB
248
+ - Mutation routes MUST use `parseDates(await request.json())`
249
+ - PUT/PATCH: destructure out `created_at`, `updated_at` before spreading
250
+ - `shapeOptions.url` MUST be absolute URL
251
+ - API routes use `createFileRoute` + `server.handlers` — NOT `createAPIFileRoute` or `createServerFileRoute`
252
+ - Icons from `lucide-react` only
253
+ - `ssr: false` on leaf routes with `useLiveQuery`, NEVER on `__root.tsx`
254
+ - `ClientOnly` wrapper for `useLiveQuery` in `__root.tsx`
255
+ - Schema tests: import from `@/db/zod-schemas` only, NEVER from collections or `@/db`
256
+
257
+ ## Drizzle Workflow Order (ALWAYS follow)
258
+
259
+ 1. Edit `src/db/schema.ts`
260
+ 2. Edit `src/db/zod-schemas.ts` (derive via drizzle-zod)
261
+ 3. `pnpm drizzle-kit generate && pnpm drizzle-kit migrate`
262
+ 4. Create collections
263
+ 5. Create API routes (proxy + mutation)
264
+ 6. Create UI components
265
+
266
+ ## Deployment & Preview (Sprites / Cloud Sandboxes)
267
+
268
+ When the app runs inside a cloud sandbox (Fly.io Sprite), the following constraints apply:
269
+
270
+ - **Port 8080 is the ONLY externally accessible port.** The Sprite HTTP proxy routes all traffic to port 8080 inside the VM. The app MUST listen on this port — this is pre-configured via the `VITE_PORT` environment variable (set to `8080` in sprites, `5173` in Docker).
271
+ - **The app MUST bind to `0.0.0.0`**, not `localhost`. This is pre-configured in `vite.config.ts` via `host: true`.
272
+ - **`allowedHosts: true`** is set in `vite.config.ts` so that Sprite hostnames (`*.sprites.app`) can access the dev server. Without this, Vite rejects requests from non-localhost origins.
273
+ - **The preview URL** follows the pattern: `https://<sprite-name>.sprites.app`
274
+ - **`vite.config.ts` is pre-configured** with `port`, `host: true`, `allowedHosts: true`, and the Electric proxy — **DO NOT MODIFY it**. Changing it WILL break the preview.
275
+
276
+ The `pnpm dev:start` script starts the Vite dev server in the background on the correct port. After finishing all code generation, always run migrations then `pnpm dev:start` so the user can preview.
277
+
278
+ ## Scaffold Files (DO NOT MODIFY)
279
+
280
+ - `src/db/index.ts` — Drizzle client setup
281
+ - `src/db/utils.ts` — parseDates + generateTxId
282
+ - `src/lib/electric-proxy.ts` — Electric shape proxy helper
283
+ - `src/components/ClientOnly.tsx` — SSR wrapper
284
+ - `tests/helpers/schema-test-utils.ts` — generateValidRow/generateRowWithout
285
+ - `vitest.config.ts` — test config
286
+ - `vite.config.ts` — Vite dev server (port, host, allowedHosts, proxy — see Deployment section)
287
+ - `docker-compose.yml` — Postgres + Electric
288
+ - `drizzle.config.ts` — Drizzle config