@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.
- package/dist/bridge/claude-md-generator.d.ts +13 -5
- package/dist/bridge/claude-md-generator.d.ts.map +1 -1
- package/dist/bridge/claude-md-generator.js +37 -118
- package/dist/bridge/claude-md-generator.js.map +1 -1
- package/dist/bridge/stream-json-parser.js +12 -5
- package/dist/bridge/stream-json-parser.js.map +1 -1
- package/dist/client/assets/{index-DDzmxYub.js → index-D5-jqAV-.js} +60 -60
- package/dist/client/assets/index-YyyiO26y.css +1 -0
- package/dist/client/index.html +2 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +110 -10
- package/dist/server.js.map +1 -1
- package/dist/sessions.d.ts +6 -0
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js.map +1 -1
- package/package.json +2 -2
- package/dist/client/assets/index-DcP7prsZ.css +0 -1
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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
|
-
//
|
|
232
|
+
// Git instructions — generated based on the session's git config
|
|
279
233
|
// ---------------------------------------------------------------------------
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
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
|
-
|
|
330
|
-
|
|
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
|
-
|
|
333
|
-
|
|
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
|
-
|
|
336
|
-
|
|
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":"AAAA
|
|
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,
|
|
161
|
-
const events = [];
|
|
160
|
+
function handleResult(msg, _state) {
|
|
162
161
|
const success = msg.subtype === "success";
|
|
163
|
-
|
|
162
|
+
const event = {
|
|
164
163
|
type: "session_end",
|
|
165
164
|
success,
|
|
166
165
|
ts: ts(),
|
|
167
|
-
}
|
|
168
|
-
|
|
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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"}
|