@electric-agent/studio 1.5.0 → 1.7.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,10 +1,17 @@
1
1
  /**
2
2
  * Generates CLAUDE.md files for project workspaces.
3
- *
4
- * Two variants:
5
- * - `generateClaudeMd()` — for Claude Code mode (streamlined, no redundant instructions)
6
- * - `generateElectricAgentClaudeMd()` — for electric-agent mode (full instructions for the SDK agent)
7
3
  */
4
+ export interface GitConfig {
5
+ /** "create" — agent should git init + gh repo create after scaffolding */
6
+ /** "existing" — repo was cloned; agent should commit + push after changes */
7
+ mode: "create" | "existing";
8
+ /** Full repo name, e.g. "owner/repo-name" */
9
+ repoName: string;
10
+ /** Visibility for new repos (only relevant when mode=create) */
11
+ visibility?: "public" | "private";
12
+ /** Branch name (only relevant when mode=existing) */
13
+ branch?: string;
14
+ }
8
15
  export interface ClaudeMdOptions {
9
16
  /** The user's app description */
10
17
  description: string;
@@ -18,8 +25,9 @@ export interface ClaudeMdOptions {
18
25
  iterationRequest?: string;
19
26
  /** Sandbox runtime — affects environment-specific instructions */
20
27
  runtime?: "docker" | "sprites" | "daytona";
28
+ /** Git/GitHub configuration — when set, git instructions are injected */
29
+ git?: GitConfig;
21
30
  }
22
31
  export declare function generateClaudeMd(opts: ClaudeMdOptions): string;
23
- export declare function generateElectricAgentClaudeMd(opts: ClaudeMdOptions): string;
24
32
  export { createAppSkillContent } from "./create-app-skill.js";
25
33
  //# sourceMappingURL=claude-md-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../../src/bridge/claude-md-generator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,eAAe;IAC/B,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kEAAkE;IAClE,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;CAC1C;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAsC9D;AAMD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CA0C3E;AAiSD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../../src/bridge/claude-md-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACzB,0EAA0E;IAC1E,6EAA6E;IAC7E,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC3B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACjC,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,eAAe;IAC/B,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kEAAkE;IAClE,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;IAC1C,yEAAyE;IACzE,GAAG,CAAC,EAAE,SAAS,CAAA;CACf;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CA4C9D;AA4PD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1,13 +1,6 @@
1
1
  /**
2
2
  * Generates CLAUDE.md files for project workspaces.
3
- *
4
- * Two variants:
5
- * - `generateClaudeMd()` — for Claude Code mode (streamlined, no redundant instructions)
6
- * - `generateElectricAgentClaudeMd()` — for electric-agent mode (full instructions for the SDK agent)
7
3
  */
8
- // ---------------------------------------------------------------------------
9
- // Claude Code variant
10
- // ---------------------------------------------------------------------------
11
4
  export function generateClaudeMd(opts) {
12
5
  const sections = [];
13
6
  sections.push(`# ${opts.projectName}`);
@@ -40,51 +33,15 @@ export function generateClaudeMd(opts) {
40
33
  sections.push("");
41
34
  sections.push(SSR_RULES);
42
35
  sections.push("");
43
- return sections.join("\n");
44
- }
45
- // ---------------------------------------------------------------------------
46
- // Electric Agent variant
47
- // ---------------------------------------------------------------------------
48
- export function generateElectricAgentClaudeMd(opts) {
49
- const sections = [];
50
- sections.push(`# ${opts.projectName}`);
51
- sections.push("");
52
- sections.push(PROJECT_CONTEXT);
53
- sections.push("");
54
- const sandbox = sandboxEnvironment(opts.runtime);
55
- if (sandbox) {
56
- sections.push(sandbox);
36
+ const gitSection = gitInstructions(opts.git);
37
+ if (gitSection) {
38
+ sections.push(gitSection);
57
39
  sections.push("");
58
40
  }
59
- if (!opts.isIteration) {
60
- sections.push("## Current Task");
61
- sections.push(opts.description);
62
- sections.push("");
63
- }
64
- sections.push(SCAFFOLD_STRUCTURE);
65
- sections.push("");
66
- sections.push(DRIZZLE_WORKFLOW);
67
- sections.push("");
68
- sections.push(GUARDRAILS);
69
- sections.push("");
70
- sections.push(PLAYBOOK_INSTRUCTIONS_AGENT);
71
- sections.push("");
72
- sections.push(BUILD_INSTRUCTIONS);
73
- sections.push("");
74
- sections.push(devServerInstructions(opts.runtime));
75
- sections.push("");
76
- sections.push(ARCHITECTURE_REFERENCE);
77
- sections.push("");
78
- sections.push(GIT_INSTRUCTIONS);
79
- sections.push("");
80
- sections.push(SSR_RULES);
81
- sections.push("");
82
- sections.push(ERROR_HANDLING);
83
- sections.push("");
84
41
  return sections.join("\n");
85
42
  }
86
43
  // ---------------------------------------------------------------------------
87
- // Shared sections (used by both variants)
44
+ // Shared sections
88
45
  // ---------------------------------------------------------------------------
89
46
  const PROJECT_CONTEXT = "## Project Context\nThis is a reactive, real-time application built with Electric SQL + TanStack DB + Drizzle ORM + TanStack Start.";
90
47
  const SCAFFOLD_STRUCTURE = `## Scaffold Structure (DO NOT EXPLORE)
@@ -211,9 +168,6 @@ const SSR_RULES = `## SSR Configuration (CRITICAL)
211
168
  NEVER add ssr: false to __root.tsx — it renders the HTML shell and must always SSR.
212
169
  Instead, add ssr: false to each LEAF route that uses useLiveQuery or collections.
213
170
  This is needed because useLiveQuery uses useSyncExternalStore without getServerSnapshot.`;
214
- // ---------------------------------------------------------------------------
215
- // Claude Code–only sections
216
- // ---------------------------------------------------------------------------
217
171
  const SKILL_AUTO_TRIGGER = `## App Generation Pipeline (CRITICAL)
218
172
  When building a new app, you MUST use the /create-app skill. This skill is available at .claude/skills/create-app/SKILL.md and provides the structured phased pipeline for generating Electric SQL apps.
219
173
 
@@ -275,84 +229,49 @@ These are read by:
275
229
 
276
230
  You do NOT need to set up database connections or configure Electric. Just define your schema, run migrations, and write your app.`;
277
231
  // ---------------------------------------------------------------------------
278
- // Electric Agent–only sections
232
+ // Git instructions — generated based on the session's git config
279
233
  // ---------------------------------------------------------------------------
280
- const PLAYBOOK_INSTRUCTIONS_AGENT = `## Playbooks (Domain Knowledge)
281
- Playbook skill files are available in node_modules. Read them before implementing each phase:
282
-
283
- ### How to Read Playbooks
284
- Use the Read tool to read playbook SKILL.md files:
285
- - \`node_modules/@electric-sql/playbook/skills/<name>/SKILL.md\`
286
- - \`node_modules/@tanstack/db-playbook/skills/<name>/SKILL.md\`
287
- - \`node_modules/@durable-streams/playbook/skills/<name>/SKILL.md\`
288
-
289
- ### Required Reading Order
290
- 1. Read the electric-app-guardrails playbook FIRST (critical integration rules)
291
- 2. Read "schemas" before writing Drizzle schemas
292
- 3. Read "collections" before creating collection files
293
- 4. Read "mutations" before creating mutation routes
294
- 5. Read "live-queries" before creating UI with useLiveQuery
295
-
296
- ### Important
297
- - ONLY read playbooks relevant to your current phase
298
- - Do NOT use include_references — the SKILL.md content is sufficient`;
299
- const BUILD_INSTRUCTIONS = `## Build & Test
300
- Run these commands to verify your work:
301
- - \`pnpm run build\` — TypeScript compilation
302
- - \`pnpm run check\` — Biome lint + format check
303
- - \`pnpm test\` — Run tests (if tests/ directory exists)
304
-
305
- Build only twice during initial generation: once after finishing all code, once after tests.
306
- During iterations, build after completing changes.`;
307
- const ARCHITECTURE_REFERENCE = `## Architecture Reference
308
-
309
- ### Writing ARCHITECTURE.md (Initial Generation)
310
- After ALL tasks are complete and the build passes, write ARCHITECTURE.md in the project root as your FINAL action. This is a concise navigation index — not documentation. Keep it under 1500 tokens.
311
-
312
- Format:
234
+ function gitInstructions(git) {
235
+ if (!git)
236
+ return "";
237
+ if (git.mode === "create") {
238
+ const visibility = git.visibility === "public" ? "--public" : "--private";
239
+ return `## Git & GitHub (CRITICAL)
240
+ You MUST run these git commands at two points during the session:
241
+
242
+ ### 1. After scaffolding — initialize repo
243
+ Run this right after migrations, BEFORE \`pnpm dev:start\`:
244
+ \`\`\`bash
245
+ git init -b main
246
+ git add -A
247
+ git commit -m "chore: scaffold ${git.repoName.split("/").pop()}"
248
+ gh repo create "${git.repoName}" ${visibility} --source . --remote origin --push
313
249
  \`\`\`
314
- # [App Name] — Architecture Reference
315
- _Last updated: [ISO date]_
316
-
317
- ## App Description
318
- [1-2 sentences]
319
-
320
- ## Data Model
321
- ### [EntityName] (\`table_name\`)
322
- - **Columns**: id (uuid PK), title (text), created_at (timestamptz)
323
- - **Relations**: [none | field → table.id cascade]
324
- - **Collection**: src/db/collections/[entity].ts
325
-
326
- ## API Routes
327
- | Method | Path | File | Purpose |
328
250
 
329
- ## UI Routes & Components
330
- | Route | File | Description |
251
+ ### 2. After app generation is complete — push final code
252
+ Run this as your FINAL action, after the dev server is running and all code is written:
253
+ \`\`\`bash
254
+ git add -A && git commit -m "feat: initial app implementation"
255
+ git push
256
+ \`\`\`
331
257
 
332
- ### Key Components
333
- - src/components/X.tsx — [one line: what it renders]
258
+ Commit types: feat, fix, refactor, style, chore, docs, test`;
259
+ }
260
+ // mode === "existing"
261
+ const branch = git.branch ?? "main";
262
+ return `## Git & GitHub
263
+ This project was cloned from \`${git.repoName}\` (branch: \`${branch}\`). Git and remote are already configured.
334
264
 
335
- ## Styling
336
- - CSS files: [file: purpose]
265
+ After making changes, commit and push:
266
+ \`\`\`bash
267
+ git add -A && git commit -m "type(scope): description"
268
+ git push
337
269
  \`\`\`
338
-
339
- ### Using ARCHITECTURE.md (Iteration Mode)
340
- On iterations, read ARCHITECTURE.md to understand the app structure. Use it to locate files — do NOT scan the filesystem.`;
341
- const GIT_INSTRUCTIONS = `## Git & GitHub CLI
342
- You have git and gh CLI available via Bash. Use them when needed:
343
- - \`git status\` / \`git diff --stat\` — check current state
344
- - \`git add -A && git commit -m "type(scope): description"\` — commit changes
345
- - \`git push -u origin main\` — push to remote
346
- - \`gh repo create "org/name" --private --source . --remote origin --push\` — create repo
347
- - \`gh pr create --title "..." --body "..."\` — create PR
348
270
  Commit types: feat, fix, refactor, style, chore, docs, test`;
271
+ }
349
272
  // ---------------------------------------------------------------------------
350
273
  // Create-app skill content — exported so the server can write it to sandboxes
351
274
  // where the npm-installed electric-agent may not include it yet.
352
275
  // ---------------------------------------------------------------------------
353
276
  export { createAppSkillContent } from "./create-app-skill.js";
354
- const ERROR_HANDLING = `## Error Handling
355
- Before fixing any error, check _agent/errors.md for previous attempts at the same fix.
356
- If you see the same error has failed before, try a different approach.
357
- After fixing an error, log the outcome.`;
358
277
  //# sourceMappingURL=claude-md-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../../src/bridge/claude-md-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../../src/bridge/claude-md-generator.ts"],"names":[],"mappings":"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"}
@@ -157,15 +157,22 @@ function handleUser(msg, state) {
157
157
  }
158
158
  return events;
159
159
  }
160
- function handleResult(msg, state) {
161
- const events = [];
160
+ function handleResult(msg, _state) {
162
161
  const success = msg.subtype === "success";
163
- events.push({
162
+ const event = {
164
163
  type: "session_end",
165
164
  success,
166
165
  ts: ts(),
167
- });
168
- return events;
166
+ };
167
+ if (msg.cost_usd != null)
168
+ event.cost_usd = msg.cost_usd;
169
+ if (msg.num_turns != null)
170
+ event.num_turns = msg.num_turns;
171
+ if (msg.duration_ms != null)
172
+ event.duration_ms = msg.duration_ms;
173
+ if (msg.duration_api_ms != null)
174
+ event.duration_api_ms = msg.duration_api_ms;
175
+ return [event];
169
176
  }
170
177
  // ---------------------------------------------------------------------------
171
178
  // Helpers
@@ -1 +1 @@
1
- {"version":3,"file":"stream-json-parser.js","sourceRoot":"","sources":["../../src/bridge/stream-json-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-json-parser.js","sourceRoot":"","sources":["../../src/bridge/stream-json-parser.ts"],"names":[],"mappings":"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"}