tryassay 0.15.0 → 0.16.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/cli.js CHANGED
@@ -18,7 +18,7 @@ const program = new Command();
18
18
  program
19
19
  .name('assay')
20
20
  .description('Assay — AI code verification using the LUCID methodology')
21
- .version('0.13.0');
21
+ .version('0.15.0');
22
22
  program
23
23
  .command('init')
24
24
  .description('Initialize an Assay project in the current directory')
@@ -166,7 +166,7 @@ runtime
166
166
  .description('Generate a verified application from a natural language description')
167
167
  .argument('<description>', 'App description (e.g., "Invoice SaaS for freelancers")')
168
168
  .option('--name <name>', 'Project name (auto-generated from description if omitted)')
169
- .option('--framework <fw>', 'Framework: next.js, express, sveltekit', 'next.js')
169
+ .option('--framework <fw>', 'Framework: next.js, express, sveltekit, electron', 'next.js')
170
170
  .option('--database <db>', 'Database: supabase, postgresql, sqlite', 'supabase')
171
171
  .option('--language <lang>', 'Language: typescript, python', 'typescript')
172
172
  .option('--features <list>', 'Comma-separated feature list')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -5,19 +5,25 @@
5
5
  export async function runtimeCreateCommand(description, opts) {
6
6
  const { AppCreateOrchestrator } = await import('../runtime/app-create-orchestrator.js');
7
7
  // Build tech stack config
8
+ const isElectron = (opts.framework ?? 'next.js').toLowerCase() === 'electron';
8
9
  const techStack = {
9
10
  language: opts.language ?? 'typescript',
10
11
  framework: opts.framework ?? 'next.js',
11
- database: opts.database ?? 'supabase',
12
+ database: opts.database ?? (isElectron ? 'postgresql' : 'supabase'),
12
13
  };
13
- // Build auth model if specified
14
+ // Build auth model if specified (skip for Electron — desktop apps don't need server-side auth)
14
15
  let authModel;
15
16
  if (opts.auth) {
16
- const methods = opts.auth.split(',').map(m => m.trim());
17
- authModel = {
18
- provider: techStack.database === 'supabase' ? 'supabase' : 'nextauth',
19
- methods,
20
- };
17
+ if (isElectron) {
18
+ console.log(' Warning: --auth is ignored for Electron apps (desktop apps manage auth locally)');
19
+ }
20
+ else {
21
+ const methods = opts.auth.split(',').map(m => m.trim());
22
+ authModel = {
23
+ provider: techStack.database === 'supabase' ? 'supabase' : 'nextauth',
24
+ methods,
25
+ };
26
+ }
21
27
  }
22
28
  // Build features list
23
29
  const features = opts.features
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Integration Verifier Tests — run against the real postico-clone/ directory.
3
+ *
4
+ * These tests prove the verifier catches known bugs in a real broken application.
5
+ * If all tests pass, the verifier works. If any fail, it's hallucinated.
6
+ *
7
+ * Usage: npx tsx src/runtime/__tests__/integration-verifier.test.ts
8
+ */
9
+ export {};
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Integration Verifier Tests — run against the real postico-clone/ directory.
3
+ *
4
+ * These tests prove the verifier catches known bugs in a real broken application.
5
+ * If all tests pass, the verifier works. If any fail, it's hallucinated.
6
+ *
7
+ * Usage: npx tsx src/runtime/__tests__/integration-verifier.test.ts
8
+ */
9
+ import { join } from 'node:path';
10
+ import { IntegrationVerifier } from '../integration-verifier.js';
11
+ // ── Test Infrastructure ─────────────────────────────────────
12
+ let passed = 0;
13
+ let failed = 0;
14
+ const failures = [];
15
+ function assert(condition, message) {
16
+ if (condition) {
17
+ passed++;
18
+ console.log(` ✓ ${message}`);
19
+ }
20
+ else {
21
+ failed++;
22
+ failures.push(message);
23
+ console.log(` ✗ ${message}`);
24
+ }
25
+ }
26
+ function assertGreaterOrEqual(actual, expected, message) {
27
+ assert(actual >= expected, `${message} (expected >= ${expected}, got ${actual})`);
28
+ }
29
+ function assertEqual(actual, expected, message) {
30
+ assert(actual === expected, `${message} (expected ${JSON.stringify(expected)}, got ${JSON.stringify(actual)})`);
31
+ }
32
+ // ── Test Suite ───────────────────────────────────────────────
33
+ async function runTests() {
34
+ // The postico-clone is at the project root alongside src/
35
+ const projectRoot = join(import.meta.dirname, '..', '..', '..');
36
+ const posticoPath = join(projectRoot, 'postico-clone');
37
+ console.log(`\nRunning IntegrationVerifier against: ${posticoPath}\n`);
38
+ const verifier = new IntegrationVerifier(posticoPath, 'electron');
39
+ const result = await verifier.verify();
40
+ console.log(`Total checks: ${result.checks.length}`);
41
+ console.log(`Passed: ${result.passedCount}, Failed: ${result.failedCount}`);
42
+ console.log(`Overall verdict: ${result.verdict}\n`);
43
+ // ── Test 1: Detects missing Router provider ──────────────
44
+ console.log('Test 1: Detects missing Router provider');
45
+ const routingChecks = result.checks.filter(c => c.type === 'routing_provider');
46
+ assertGreaterOrEqual(routingChecks.length, 1, 'Should have at least 1 routing check');
47
+ const routingFails = routingChecks.filter(c => c.verdict === 'FAIL');
48
+ assertGreaterOrEqual(routingFails.length, 1, 'Should FAIL on routing_provider (no Router wraps components using hooks)');
49
+ if (routingFails.length > 0) {
50
+ assert(routingFails[0].evidence.includes('useNavigate') || routingFails[0].evidence.includes('router hooks') || routingFails[0].evidence.includes('react-router'), 'Evidence should mention router hooks or useNavigate');
51
+ }
52
+ console.log('');
53
+ // ── Test 2: Detects missing IPC handlers ─────────────────
54
+ console.log('Test 2: Detects missing IPC handlers (table:data:*)');
55
+ const ipcChecks = result.checks.filter(c => c.type === 'ipc_handler_coverage');
56
+ assert(ipcChecks.length > 0, 'Should have IPC handler checks');
57
+ // The table:data:* channels are invoked in preload but NOT handled in main
58
+ const missingTableChannels = ipcChecks.filter(c => c.verdict === 'FAIL' && c.evidence.includes('table:data:'));
59
+ assertGreaterOrEqual(missingTableChannels.length, 4, 'Should detect 4 missing table:data:* handlers (fetch, insert, update, delete)');
60
+ // Connection and query channels SHOULD pass (they have handlers)
61
+ const handledChannels = ipcChecks.filter(c => c.verdict === 'PASS');
62
+ assert(handledChannels.length > 0, 'Some IPC channels should PASS (connection:*, query:*, history:*)');
63
+ console.log('');
64
+ // ── Test 3: Detects stub functions ───────────────────────
65
+ console.log('Test 3: Detects stub functions (connect, disconnect)');
66
+ const stubChecks = result.checks.filter(c => c.type === 'stub_function');
67
+ assertGreaterOrEqual(stubChecks.length, 2, 'Should detect at least 2 stub functions');
68
+ const stubFails = stubChecks.filter(c => c.verdict === 'FAIL');
69
+ assertGreaterOrEqual(stubFails.length, 2, 'Should FAIL on at least 2 stubs (connect and disconnect)');
70
+ // Check that the evidence mentions the stub functions
71
+ const stubNames = stubFails.map(c => c.evidence.toLowerCase());
72
+ assert(stubNames.some(e => e.includes('connect')), 'Should detect connect as a stub');
73
+ assert(stubNames.some(e => e.includes('disconnect')), 'Should detect disconnect as a stub');
74
+ console.log('');
75
+ // ── Test 4: Detects unreachable pages ────────────────────
76
+ console.log('Test 4: Detects unreachable pages');
77
+ const pageChecks = result.checks.filter(c => c.type === 'unreachable_page');
78
+ assert(pageChecks.length > 0, 'Should have page reachability checks');
79
+ const unreachablePages = pageChecks.filter(c => c.verdict === 'FAIL');
80
+ assertGreaterOrEqual(unreachablePages.length, 3, 'Should detect 3 unreachable pages (ConnectionListPage, ConnectionFormPage, TableDataPage)');
81
+ const unreachableNames = unreachablePages.map(c => c.evidence);
82
+ assert(unreachableNames.some(e => e.includes('ConnectionListPage')), 'ConnectionListPage should be unreachable');
83
+ assert(unreachableNames.some(e => e.includes('ConnectionFormPage')), 'ConnectionFormPage should be unreachable');
84
+ assert(unreachableNames.some(e => e.includes('TableDataPage')), 'TableDataPage should be unreachable');
85
+ // WorkspacePage IS reachable (imported by App.tsx)
86
+ const reachablePages = pageChecks.filter(c => c.verdict === 'PASS');
87
+ assert(reachablePages.some(e => e.evidence.includes('WorkspacePage')), 'WorkspacePage should be reachable (imported by App.tsx)');
88
+ console.log('');
89
+ // ── Test 5: Overall verdict is FAIL ──────────────────────
90
+ console.log('Test 5: Overall verdict');
91
+ assertEqual(result.verdict, 'FAIL', 'Overall verdict should be FAIL for the broken postico-clone');
92
+ assert(result.failedCount > 0, 'Failed count should be > 0');
93
+ assertEqual(result.framework, 'electron', 'Framework should be electron');
94
+ console.log('');
95
+ // ── Summary ──────────────────────────────────────────────
96
+ console.log('════════════════════════════════════════════════════');
97
+ console.log(` RESULTS: ${passed} passed, ${failed} failed`);
98
+ if (failures.length > 0) {
99
+ console.log(`\n FAILURES:`);
100
+ for (const f of failures) {
101
+ console.log(` ✗ ${f}`);
102
+ }
103
+ }
104
+ console.log('════════════════════════════════════════════════════');
105
+ // ── Detailed check output ────────────────────────────────
106
+ console.log('\n── All checks detail ──');
107
+ for (const check of result.checks) {
108
+ const icon = check.verdict === 'PASS' ? '✓' : '✗';
109
+ console.log(` ${icon} [${check.type}] ${check.verdict}: ${check.evidence.slice(0, 120)}`);
110
+ }
111
+ console.log('');
112
+ if (failed > 0) {
113
+ process.exit(1);
114
+ }
115
+ }
116
+ runTests().catch(err => {
117
+ console.error('Test runner crashed:', err);
118
+ process.exit(2);
119
+ });
120
+ //# sourceMappingURL=integration-verifier.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration-verifier.test.js","sourceRoot":"","sources":["../../../src/runtime/__tests__/integration-verifier.test.ts"],"names":[],"mappings":"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"}
@@ -105,11 +105,34 @@ Respond with JSON:
105
105
  "Every feature references its schema entities and API routes"
106
106
  ]
107
107
  }`;
108
+ // Append Electron-specific guidance when framework is electron
109
+ const isElectron = task.constraints.some(c => /framework:\s*electron/i.test(c));
110
+ const electronAddendum = isElectron ? `
111
+
112
+ ELECTRON-SPECIFIC INSTRUCTIONS (MANDATORY):
113
+ - This is an Electron desktop application, NOT a web app.
114
+ - Use "ipcChannels" instead of "apiRoutes". The "apiRoutes" array MUST be empty.
115
+ - Each IPC channel has: channel (e.g. "db:query"), direction ("renderer-to-main"|"main-to-renderer"|"bidirectional"), description, requestType, responseType, featureId.
116
+ - Plan the directory structure as:
117
+ src/main/ — Main process (Node.js): app lifecycle, IPC handlers, database connections (pg library)
118
+ src/preload/ — contextBridge exposing typed APIs to renderer process
119
+ src/renderer/ — React UI (Vite-bundled): pages, components, App.tsx
120
+ - Omit "authPlan" entirely — desktop apps do not need server-side auth.
121
+ - Use "electron-vite" as the build tool. Set deployConfig.platform to "electron".
122
+ - The renderer process CANNOT access Node.js APIs directly — all Node.js work goes through IPC.
123
+ - Features should reference their IPC channels in the "ipcChannels" array (channel names).
124
+ - Include ipcChannels in your JSON response alongside schema, pages, and features.
125
+
126
+ Example ipcChannels:
127
+ "ipcChannels": [
128
+ { "channel": "db:query", "direction": "renderer-to-main", "description": "Execute SQL query", "requestType": "{ sql: string, params?: unknown[] }", "responseType": "{ rows: unknown[], fields: string[] }", "featureId": "query-editor" }
129
+ ]
130
+ ` : '';
108
131
  const userPrompt = `TASK: ${task.goal}
109
132
 
110
133
  CONSTRAINTS:
111
134
  ${task.constraints.map(c => `- ${c}`).join('\n')}
112
-
135
+ ${electronAddendum}
113
136
  CONTEXT:
114
137
  ${contextSnippets || 'No additional context provided.'}
115
138
 
@@ -147,6 +170,7 @@ Design the complete architecture now. Remember to state your claims explicitly.`
147
170
  apiRoutes: Array.isArray(parsed.apiRoutes) ? parsed.apiRoutes : [],
148
171
  pages: Array.isArray(parsed.pages) ? parsed.pages : [],
149
172
  features: Array.isArray(parsed.features) ? parsed.features : [],
173
+ ipcChannels: Array.isArray(parsed.ipcChannels) ? parsed.ipcChannels : [],
150
174
  dependencyOrder: Array.isArray(parsed.dependencyOrder) ? parsed.dependencyOrder : [],
151
175
  authPlan: parsed.authPlan ?? null,
152
176
  deployConfig: parsed.deployConfig ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"planner-agent.js","sourceRoot":"","sources":["../../../src/runtime/agents/planner-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planner-agent.js","sourceRoot":"","sources":["../../../src/runtime/agents/planner-agent.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,8 @@ export declare class AppCreateOrchestrator extends EventEmitter {
55
55
  private slugify;
56
56
  /** Get framework-specific directory convention instruction for agent prompts. */
57
57
  private getDirectoryConvention;
58
+ /** Map an IPC channel name to its expected handler file path. e.g. "db:query" -> "src/main/ipc/db.ts" */
59
+ private ipcChannelToFilePath;
58
60
  private routeToFilePath;
59
61
  private pageToFilePath;
60
62
  private fileExists;
@@ -13,6 +13,7 @@ import { MessageBus } from './message-bus.js';
13
13
  import { CompositionVerifier } from './composition-verifier.js';
14
14
  import { MultiAgentLoop } from './multi-agent-loop.js';
15
15
  import { BuildVerifier } from './build-verifier.js';
16
+ import { IntegrationVerifier } from './integration-verifier.js';
16
17
  // ── Default safety policy ───────────────────────────────────
17
18
  const DEFAULT_SAFETY = {
18
19
  formalOverridesConsensus: true,
@@ -50,14 +51,14 @@ export class AppCreateOrchestrator extends EventEmitter {
50
51
  const plan = await this.runPlanningPhase(projectPath);
51
52
  if (!plan) {
52
53
  this.emitPhase({ phase: 'failed', reason: 'Planning failed after retries' });
53
- return this.makeResult('failed', projectPath, null, [], null, null);
54
+ return this.makeResult('failed', projectPath, null, [], null, null, null);
54
55
  }
55
56
  // Phase: verifying_plan
56
57
  this.emitPhase({ phase: 'verifying_plan' });
57
58
  const planValid = this.verifyPlanStructure(plan);
58
59
  if (!planValid) {
59
60
  this.emitPhase({ phase: 'failed', reason: 'Plan verification failed — invalid structure' });
60
- return this.makeResult('failed', projectPath, plan, [], null, null);
61
+ return this.makeResult('failed', projectPath, plan, [], null, null, null);
61
62
  }
62
63
  this.audit('verification_completed', {
63
64
  phase: 'verifying_plan',
@@ -177,6 +178,7 @@ export class AppCreateOrchestrator extends EventEmitter {
177
178
  maxRepairAttempts: maxAttempts,
178
179
  codeModel: this.options.models?.code,
179
180
  onReconcileDeps: () => this.reconcileDependencies(projectPath),
181
+ framework: this.description.techStack.framework,
180
182
  });
181
183
  buildVerification = await buildVerifier.verify();
182
184
  this.audit('verification_completed', {
@@ -191,6 +193,19 @@ export class AppCreateOrchestrator extends EventEmitter {
191
193
  totalDurationMs: buildVerification.totalDurationMs,
192
194
  });
193
195
  }
196
+ // Phase: integration verifying
197
+ let integrationVerification = null;
198
+ if (!this.options.skipBuildVerification) {
199
+ this.emitPhase({ phase: 'integration_verifying' });
200
+ const integrationVerifier = new IntegrationVerifier(projectPath, this.description.techStack.framework);
201
+ integrationVerification = await integrationVerifier.verify();
202
+ this.audit('verification_completed', {
203
+ phase: 'integration_verifying',
204
+ passed: integrationVerification.passedCount,
205
+ failed: integrationVerification.failedCount,
206
+ verdict: integrationVerification.verdict,
207
+ });
208
+ }
194
209
  // Phase: cross-verifying
195
210
  this.emitPhase({ phase: 'cross_verifying' });
196
211
  const crossVerification = await this.runCrossVerification(projectPath, plan);
@@ -204,9 +219,10 @@ export class AppCreateOrchestrator extends EventEmitter {
204
219
  const allCompleted = featureResults.every(r => r.status === 'completed');
205
220
  const anyCompleted = featureResults.some(r => r.status === 'completed');
206
221
  const buildOk = !buildVerification || buildVerification.status === 'pass' || buildVerification.status === 'repaired' || buildVerification.status === 'skipped';
207
- const finalStatus = allCompleted && buildOk ? 'completed' : anyCompleted ? 'partial' : 'failed';
222
+ const integrationOk = !integrationVerification || integrationVerification.verdict === 'PASS';
223
+ const finalStatus = allCompleted && buildOk && integrationOk ? 'completed' : anyCompleted ? 'partial' : 'failed';
208
224
  this.emitPhase({ phase: 'completed' });
209
- return this.makeResult(finalStatus, projectPath, plan, featureResults, buildVerification, crossVerification);
225
+ return this.makeResult(finalStatus, projectPath, plan, featureResults, buildVerification, integrationVerification, crossVerification);
210
226
  }
211
227
  // ── Planning Phase ─────────────────────────────────────────
212
228
  async runPlanningPhase(projectPath) {
@@ -450,7 +466,20 @@ Include a .env.local file with placeholder values for all required environment v
450
466
  evidence: found ? `Found in project files` : `Not found in schema/migration files`,
451
467
  });
452
468
  }
453
- // Check 4: Dependency consistency features that depend on others were built after them
469
+ // Check 4: IPC channel handlers exist (Electron only)
470
+ if (this.description.techStack.framework.toLowerCase() === 'electron' && plan.ipcChannels) {
471
+ for (const channel of plan.ipcChannels) {
472
+ const expectedPath = this.ipcChannelToFilePath(channel.channel);
473
+ const exists = await this.fileExists(join(projectPath, expectedPath));
474
+ checks.push({
475
+ type: 'ipc_channel_exists',
476
+ description: `IPC channel "${channel.channel}" has handler at ${expectedPath}`,
477
+ verdict: exists ? 'PASS' : 'FAIL',
478
+ evidence: exists ? `File exists: ${expectedPath}` : `Missing: ${expectedPath}`,
479
+ });
480
+ }
481
+ }
482
+ // Check 5: Dependency consistency — features that depend on others were built after them
454
483
  for (const feature of plan.features) {
455
484
  for (const dep of feature.dependsOn) {
456
485
  const depIndex = plan.dependencyOrder.indexOf(dep);
@@ -622,19 +651,40 @@ Include a .env.local file with placeholder values for all required environment v
622
651
  // ── Feature Goal Builder ─────────────────────────────────
623
652
  /** Build the goal string for a feature (shared between buildFeature and buildFeatureDirect). */
624
653
  buildFeatureGoal(plan, feature, completedFeatures) {
654
+ const isElectron = this.description.techStack.framework.toLowerCase() === 'electron';
625
655
  const relevantSchema = plan.schema
626
656
  .filter(e => feature.schemaEntities.includes(e.name))
627
657
  .map(e => `${e.name}: ${e.fields.map(f => `${f.name}:${f.type}`).join(', ')}`)
628
658
  .join('\n');
629
- const relevantRoutes = plan.apiRoutes
630
- .filter(r => r.featureId === feature.id)
631
- .map(r => `${r.method} ${r.path} — ${r.description}`)
632
- .join('\n');
633
659
  const relevantPages = plan.pages
634
660
  .filter(p => p.featureId === feature.id)
635
661
  .map(p => `${p.path} — ${p.component}: ${p.description ?? ''}`)
636
662
  .join('\n');
637
663
  const dirConvention = this.getDirectoryConvention();
664
+ // For Electron, use IPC channels instead of API routes
665
+ let routeSection;
666
+ if (isElectron) {
667
+ const relevantChannels = (plan.ipcChannels ?? [])
668
+ .filter(ch => ch.featureId === feature.id)
669
+ .map(ch => `${ch.channel} (${ch.direction}) — ${ch.description}`)
670
+ .join('\n');
671
+ routeSection = `IPC channels to implement:
672
+ ${relevantChannels || 'None'}`;
673
+ }
674
+ else {
675
+ const relevantRoutes = plan.apiRoutes
676
+ .filter(r => r.featureId === feature.id)
677
+ .map(r => `${r.method} ${r.path} — ${r.description}`)
678
+ .join('\n');
679
+ routeSection = `API routes to implement:
680
+ ${relevantRoutes || 'None'}`;
681
+ }
682
+ const stackDesc = isElectron
683
+ ? `Electron + React + Vite (electron-vite), pg for PostgreSQL, ${this.description.techStack.language}`
684
+ : `${this.description.techStack.framework}, ${this.description.techStack.database}, ${this.description.techStack.language}`;
685
+ const importNote = isElectron
686
+ ? `IMPORTANT: If you import any npm packages not in the standard Electron/React stack, include a file "package.additions.json" listing them: { "dependencies": { "package-name": "latest" } }`
687
+ : `IMPORTANT: If you import any npm packages not in the standard Next.js/React stack, include a file "package.additions.json" listing them: { "dependencies": { "package-name": "latest" } }`;
638
688
  return `Implement feature: ${feature.name}
639
689
 
640
690
  Feature description: Build the "${feature.name}" feature for a ${this.description.techStack.framework} application.
@@ -644,18 +694,17 @@ ${dirConvention}
644
694
  Schema entities:
645
695
  ${relevantSchema || 'None'}
646
696
 
647
- API routes to implement:
648
- ${relevantRoutes || 'None'}
697
+ ${routeSection}
649
698
 
650
699
  Pages to implement:
651
700
  ${relevantPages || 'None'}
652
701
 
653
- Tech stack: ${this.description.techStack.framework}, ${this.description.techStack.database}, ${this.description.techStack.language}
702
+ Tech stack: ${stackDesc}
654
703
 
655
704
  Previously completed features: ${completedFeatures.join(', ') || 'None'}
656
705
 
657
- Implement all API routes, pages, and business logic for this feature. Write complete, working code — no TODOs or stubs.
658
- IMPORTANT: If you import any npm packages not in the standard Next.js/React stack, include a file "package.additions.json" listing them: { "dependencies": { "package-name": "latest" } }`;
706
+ Implement all ${isElectron ? 'IPC handlers' : 'API routes'}, pages, and business logic for this feature. Write complete, working code — no TODOs or stubs.
707
+ ${importNote}`;
659
708
  }
660
709
  // ── Post-Build: Dependency Reconciliation ─────────────────
661
710
  /**
@@ -720,7 +769,7 @@ IMPORTANT: If you import any npm packages not in the standard Next.js/React stac
720
769
  'node:events', 'node:fs', 'node:path', 'node:crypto', 'node:url', 'node:http', 'node:https',
721
770
  'node:stream', 'node:util', 'node:os', 'node:child_process', 'node:buffer', 'node:assert',
722
771
  'events', 'fs', 'path', 'crypto', 'url', 'http', 'https', 'stream', 'util', 'os',
723
- 'child_process', 'buffer', 'assert', 'fs/promises', 'react', 'react-dom', 'next',
772
+ 'child_process', 'buffer', 'assert', 'fs/promises', 'react', 'react-dom', 'next', 'electron',
724
773
  ]);
725
774
  // Add missing packages
726
775
  let changed = false;
@@ -822,13 +871,14 @@ IMPORTANT: If you import any npm packages not in the standard Next.js/React stac
822
871
  };
823
872
  this.emit('progress', progress);
824
873
  }
825
- makeResult(status, projectPath, plan, featureResults, buildVerification, crossVerification) {
874
+ makeResult(status, projectPath, plan, featureResults, buildVerification, integrationVerification, crossVerification) {
826
875
  return {
827
876
  status,
828
877
  projectPath,
829
878
  plan,
830
879
  featureResults,
831
880
  buildVerification,
881
+ integrationVerification,
832
882
  crossVerification,
833
883
  totalDurationMs: Date.now() - this.startTime,
834
884
  auditTrail: this.auditTrail,
@@ -861,13 +911,31 @@ IMPORTANT: If you import any npm packages not in the standard Next.js/React stac
861
911
  if (fw.includes('svelte')) {
862
912
  return `DIRECTORY CONVENTION (MANDATORY): Use "src/routes/" for pages and "src/lib/" for shared code.`;
863
913
  }
914
+ if (fw.includes('electron')) {
915
+ return `DIRECTORY CONVENTION (MANDATORY — Electron):
916
+ src/main/ — Main process (Node.js): app lifecycle, IPC handlers, pg database connections
917
+ src/preload/ — contextBridge exposing typed APIs to renderer (preload.ts)
918
+ src/renderer/ — React UI (Vite-bundled): pages, components, App.tsx
919
+ Use electron-vite for build tooling. All Node.js work (database, filesystem) goes through IPC handlers in src/main/.
920
+ The renderer process communicates with main via contextBridge APIs exposed in src/preload/.`;
921
+ }
864
922
  return `DIRECTORY CONVENTION: Use "src/" as the source root.`;
865
923
  }
924
+ /** Map an IPC channel name to its expected handler file path. e.g. "db:query" -> "src/main/ipc/db.ts" */
925
+ ipcChannelToFilePath(channel) {
926
+ const namespace = channel.split(':')[0] ?? channel;
927
+ return `src/main/ipc/${namespace}.ts`;
928
+ }
866
929
  routeToFilePath(routePath, framework) {
867
930
  if (framework.toLowerCase().includes('next')) {
868
931
  // /api/users -> app/api/users/route.ts
869
932
  return `app${routePath}/route.ts`;
870
933
  }
934
+ if (framework.toLowerCase().includes('electron')) {
935
+ // Electron doesn't have HTTP routes — map to IPC handler files
936
+ const parts = routePath.replace(/^\/api/, '').replace(/^\//, '');
937
+ return `src/main/ipc/${parts || 'index'}.ts`;
938
+ }
871
939
  // Express or similar: src/routes/<path>.ts
872
940
  const parts = routePath.replace(/^\/api/, '').replace(/^\//, '');
873
941
  return `src/routes/${parts || 'index'}.ts`;
@@ -882,6 +950,13 @@ IMPORTANT: If you import any npm packages not in the standard Next.js/React stac
882
950
  const normalized = pagePath === '/' ? '' : pagePath;
883
951
  return `src/routes${normalized}/+page.svelte`;
884
952
  }
953
+ if (framework.toLowerCase().includes('electron')) {
954
+ // Electron renderer pages: /query-editor -> src/renderer/pages/QueryEditor.tsx
955
+ if (pagePath === '/' || pagePath === '')
956
+ return 'src/renderer/App.tsx';
957
+ const name = pagePath.replace(/^\//, '').split('/').map(s => s.charAt(0).toUpperCase() + s.slice(1)).join('');
958
+ return `src/renderer/pages/${name}.tsx`;
959
+ }
885
960
  // Generic: src/pages/<path>.tsx
886
961
  const normalized = pagePath === '/' ? '/index' : pagePath;
887
962
  return `src/pages${normalized}.tsx`;