popeye-cli 1.2.1 → 1.3.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.
Files changed (114) hide show
  1. package/.env.example +4 -1
  2. package/CONTRIBUTING.md +10 -0
  3. package/README.md +111 -2
  4. package/dist/adapters/claude.d.ts +3 -2
  5. package/dist/adapters/claude.d.ts.map +1 -1
  6. package/dist/adapters/claude.js +214 -0
  7. package/dist/adapters/claude.js.map +1 -1
  8. package/dist/adapters/grok.d.ts +2 -1
  9. package/dist/adapters/grok.d.ts.map +1 -1
  10. package/dist/adapters/grok.js.map +1 -1
  11. package/dist/adapters/index.d.ts +8 -0
  12. package/dist/adapters/index.d.ts.map +1 -0
  13. package/dist/adapters/index.js +12 -0
  14. package/dist/adapters/index.js.map +1 -0
  15. package/dist/adapters/openai.d.ts +2 -2
  16. package/dist/adapters/openai.d.ts.map +1 -1
  17. package/dist/adapters/openai.js.map +1 -1
  18. package/dist/cli/commands/create.d.ts.map +1 -1
  19. package/dist/cli/commands/create.js +25 -5
  20. package/dist/cli/commands/create.js.map +1 -1
  21. package/dist/cli/interactive.d.ts.map +1 -1
  22. package/dist/cli/interactive.js +47 -6
  23. package/dist/cli/interactive.js.map +1 -1
  24. package/dist/generators/all.d.ts +40 -0
  25. package/dist/generators/all.d.ts.map +1 -0
  26. package/dist/generators/all.js +826 -0
  27. package/dist/generators/all.js.map +1 -0
  28. package/dist/generators/fullstack.d.ts +9 -0
  29. package/dist/generators/fullstack.d.ts.map +1 -1
  30. package/dist/generators/fullstack.js.map +1 -1
  31. package/dist/generators/index.d.ts +3 -1
  32. package/dist/generators/index.d.ts.map +1 -1
  33. package/dist/generators/index.js +33 -0
  34. package/dist/generators/index.js.map +1 -1
  35. package/dist/generators/templates/index.d.ts +2 -0
  36. package/dist/generators/templates/index.d.ts.map +1 -1
  37. package/dist/generators/templates/index.js +2 -0
  38. package/dist/generators/templates/index.js.map +1 -1
  39. package/dist/generators/templates/website.d.ts +85 -0
  40. package/dist/generators/templates/website.d.ts.map +1 -0
  41. package/dist/generators/templates/website.js +877 -0
  42. package/dist/generators/templates/website.js.map +1 -0
  43. package/dist/generators/website.d.ts +56 -0
  44. package/dist/generators/website.d.ts.map +1 -0
  45. package/dist/generators/website.js +269 -0
  46. package/dist/generators/website.js.map +1 -0
  47. package/dist/types/consensus.d.ts +8 -3
  48. package/dist/types/consensus.d.ts.map +1 -1
  49. package/dist/types/index.d.ts +2 -2
  50. package/dist/types/index.d.ts.map +1 -1
  51. package/dist/types/index.js +2 -2
  52. package/dist/types/index.js.map +1 -1
  53. package/dist/types/project.d.ts +115 -1
  54. package/dist/types/project.d.ts.map +1 -1
  55. package/dist/types/project.js +41 -1
  56. package/dist/types/project.js.map +1 -1
  57. package/dist/workflow/consensus.d.ts +2 -1
  58. package/dist/workflow/consensus.d.ts.map +1 -1
  59. package/dist/workflow/consensus.js.map +1 -1
  60. package/dist/workflow/index.d.ts +6 -0
  61. package/dist/workflow/index.d.ts.map +1 -1
  62. package/dist/workflow/index.js +8 -0
  63. package/dist/workflow/index.js.map +1 -1
  64. package/dist/workflow/plan-mode.d.ts +3 -3
  65. package/dist/workflow/plan-mode.d.ts.map +1 -1
  66. package/dist/workflow/plan-mode.js.map +1 -1
  67. package/dist/workflow/plan-parser.d.ts +97 -0
  68. package/dist/workflow/plan-parser.d.ts.map +1 -0
  69. package/dist/workflow/plan-parser.js +235 -0
  70. package/dist/workflow/plan-parser.js.map +1 -0
  71. package/dist/workflow/plan-storage.d.ts +40 -12
  72. package/dist/workflow/plan-storage.d.ts.map +1 -1
  73. package/dist/workflow/plan-storage.js +47 -20
  74. package/dist/workflow/plan-storage.js.map +1 -1
  75. package/dist/workflow/seo-tests.d.ts +43 -0
  76. package/dist/workflow/seo-tests.d.ts.map +1 -0
  77. package/dist/workflow/seo-tests.js +192 -0
  78. package/dist/workflow/seo-tests.js.map +1 -0
  79. package/dist/workflow/separation-guard.d.ts +35 -0
  80. package/dist/workflow/separation-guard.d.ts.map +1 -0
  81. package/dist/workflow/separation-guard.js +154 -0
  82. package/dist/workflow/separation-guard.js.map +1 -0
  83. package/dist/workflow/test-runner.d.ts.map +1 -1
  84. package/dist/workflow/test-runner.js +128 -0
  85. package/dist/workflow/test-runner.js.map +1 -1
  86. package/dist/workflow/workspace-manager.d.ts +31 -20
  87. package/dist/workflow/workspace-manager.d.ts.map +1 -1
  88. package/dist/workflow/workspace-manager.js +38 -9
  89. package/dist/workflow/workspace-manager.js.map +1 -1
  90. package/package.json +1 -1
  91. package/src/adapters/claude.ts +221 -4
  92. package/src/adapters/grok.ts +2 -1
  93. package/src/adapters/index.ts +15 -0
  94. package/src/adapters/openai.ts +2 -2
  95. package/src/cli/commands/create.ts +25 -5
  96. package/src/cli/interactive.ts +47 -6
  97. package/src/generators/all.ts +897 -0
  98. package/src/generators/fullstack.ts +10 -0
  99. package/src/generators/index.ts +54 -0
  100. package/src/generators/templates/index.ts +2 -0
  101. package/src/generators/templates/website.ts +906 -0
  102. package/src/generators/website.ts +350 -0
  103. package/src/types/consensus.ts +9 -3
  104. package/src/types/index.ts +33 -0
  105. package/src/types/project.ts +139 -2
  106. package/src/workflow/consensus.ts +3 -2
  107. package/src/workflow/index.ts +8 -0
  108. package/src/workflow/plan-mode.ts +3 -3
  109. package/src/workflow/plan-parser.ts +317 -0
  110. package/src/workflow/plan-storage.ts +69 -30
  111. package/src/workflow/seo-tests.ts +246 -0
  112. package/src/workflow/separation-guard.ts +200 -0
  113. package/src/workflow/test-runner.ts +149 -0
  114. package/src/workflow/workspace-manager.ts +68 -31
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Workspace manager module
3
- * Handles loading, saving, and querying workspace configuration for fullstack projects
3
+ * Handles loading, saving, and querying workspace configuration for fullstack/all projects
4
4
  * Also provides app-specific context for AI reviews
5
5
  */
6
6
  import { promises as fs } from 'node:fs';
@@ -89,6 +89,8 @@ export class WorkspaceManager {
89
89
  names.push('frontend');
90
90
  if (this.config.apps.backend)
91
91
  names.push('backend');
92
+ if (this.config.apps.website)
93
+ names.push('website');
92
94
  return names;
93
95
  }
94
96
  /**
@@ -330,7 +332,8 @@ export class WorkspaceManager {
330
332
  }
331
333
  // Read test files
332
334
  if (includeTests) {
333
- const testDir = path.join(appPath, appName === 'frontend' ? 'src' : 'tests');
335
+ // Frontend and website use 'src' for tests, backend uses 'tests'
336
+ const testDir = path.join(appPath, (appName === 'frontend' || appName === 'website') ? 'src' : 'tests');
334
337
  try {
335
338
  const testFiles = await this.findTestFiles(testDir, app.language);
336
339
  context.testFiles = testFiles.slice(0, 5); // Limit test files
@@ -376,6 +379,14 @@ export class WorkspaceManager {
376
379
  if (backend) {
377
380
  context.backend = backend;
378
381
  }
382
+ // Get website context (for 'all' projects)
383
+ const website = await this.getAppReviewContext('website', {
384
+ maxFiles: maxFilesPerApp,
385
+ includeTests,
386
+ });
387
+ if (website) {
388
+ context.website = website;
389
+ }
379
390
  // Get shared contracts
380
391
  const contractsPath = this.getContractsPath();
381
392
  if (contractsPath) {
@@ -431,7 +442,7 @@ export class WorkspaceManager {
431
442
  return lines.join('\n');
432
443
  }
433
444
  /**
434
- * Format fullstack context for review prompt
445
+ * Format fullstack/all context for review prompt
435
446
  */
436
447
  formatFullstackContextForReview(context) {
437
448
  const lines = [];
@@ -453,29 +464,44 @@ export class WorkspaceManager {
453
464
  if (context.backend) {
454
465
  lines.push(this.formatContextForReview(context.backend));
455
466
  }
467
+ if (context.website) {
468
+ lines.push(this.formatContextForReview(context.website));
469
+ }
456
470
  return lines.join('\n');
457
471
  }
458
472
  /**
459
473
  * Determine review app target based on plan content
460
- * Analyzes plan text to determine if it's frontend, backend, or unified
474
+ * Analyzes plan text to determine if it's frontend, backend, website, or unified
461
475
  */
462
476
  categorizeByPlanContent(planContent) {
463
477
  const lowerContent = planContent.toLowerCase();
464
- // Frontend indicators
478
+ // Frontend indicators (app frontend - React/Vue components)
465
479
  const frontendKeywords = [
466
480
  'react', 'component', 'jsx', 'tsx', 'css', 'tailwind', 'ui',
467
- 'button', 'form', 'page', 'layout', 'style', 'vite', 'frontend',
481
+ 'button', 'form', 'layout', 'style', 'vite', 'frontend',
468
482
  'client', 'browser', 'dom', 'render', 'hook', 'state',
483
+ 'apps/frontend',
469
484
  ];
470
485
  // Backend indicators
471
486
  const backendKeywords = [
472
487
  'api', 'endpoint', 'route', 'database', 'model', 'schema',
473
488
  'fastapi', 'flask', 'django', 'express', 'server', 'backend',
474
489
  'authentication', 'middleware', 'orm', 'sql', 'query', 'crud',
490
+ 'apps/backend',
491
+ ];
492
+ // Website indicators (marketing/landing pages, SEO)
493
+ const websiteKeywords = [
494
+ 'website', 'landing', 'marketing', 'seo', 'meta', 'sitemap',
495
+ 'static', 'astro', 'next', 'gatsby', 'blog', 'content',
496
+ 'apps/website', '[web]', 'web page', 'homepage',
475
497
  ];
476
498
  const frontendScore = frontendKeywords.filter(kw => lowerContent.includes(kw)).length;
477
499
  const backendScore = backendKeywords.filter(kw => lowerContent.includes(kw)).length;
478
- // Threshold for classification
500
+ const websiteScore = websiteKeywords.filter(kw => lowerContent.includes(kw)).length;
501
+ // Threshold for classification - check website first as it's most specific
502
+ if (websiteScore > Math.max(frontendScore, backendScore) && websiteScore >= 2) {
503
+ return 'website';
504
+ }
479
505
  if (frontendScore > backendScore * 2 && frontendScore >= 3) {
480
506
  return 'frontend';
481
507
  }
@@ -564,16 +590,19 @@ export class WorkspaceManager {
564
590
  unified: path.join(plansDir, 'master', 'unified', 'feedback.md'),
565
591
  frontend: path.join(plansDir, 'master', 'frontend', 'feedback.md'),
566
592
  backend: path.join(plansDir, 'master', 'backend', 'feedback.md'),
593
+ website: path.join(plansDir, 'master', 'website', 'feedback.md'),
567
594
  },
568
595
  getMilestonePaths: (milestoneId) => ({
569
596
  unified: path.join(plansDir, `milestone-${milestoneId}`, 'unified', 'feedback.md'),
570
597
  frontend: path.join(plansDir, `milestone-${milestoneId}`, 'frontend', 'feedback.md'),
571
598
  backend: path.join(plansDir, `milestone-${milestoneId}`, 'backend', 'feedback.md'),
599
+ website: path.join(plansDir, `milestone-${milestoneId}`, 'website', 'feedback.md'),
572
600
  }),
573
601
  getTaskPaths: (milestoneId, taskId) => ({
574
602
  unified: path.join(plansDir, `milestone-${milestoneId}`, 'tasks', `task-${taskId}`, 'unified', 'feedback.md'),
575
603
  frontend: path.join(plansDir, `milestone-${milestoneId}`, 'tasks', `task-${taskId}`, 'frontend', 'feedback.md'),
576
604
  backend: path.join(plansDir, `milestone-${milestoneId}`, 'tasks', `task-${taskId}`, 'backend', 'feedback.md'),
605
+ website: path.join(plansDir, `milestone-${milestoneId}`, 'tasks', `task-${taskId}`, 'website', 'feedback.md'),
577
606
  }),
578
607
  };
579
608
  }
@@ -612,7 +641,7 @@ export async function isWorkspaceProject(projectDir) {
612
641
  * Get app context for AI code generation
613
642
  *
614
643
  * @param projectDir - Project directory
615
- * @param appName - App name
644
+ * @param appName - App name (frontend, backend, or website)
616
645
  * @returns Object with app info and context files
617
646
  */
618
647
  export async function getAppContext(projectDir, appName) {
@@ -664,7 +693,7 @@ export async function getBuildCommands(projectDir) {
664
693
  * Get app-specific review context
665
694
  *
666
695
  * @param projectDir - Project directory
667
- * @param appName - App name (frontend or backend)
696
+ * @param appName - App name (frontend, backend, or website)
668
697
  * @returns Review context with source files and metadata
669
698
  */
670
699
  export async function getAppReviewContext(projectDir, appName) {
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../src/workflow/workspace-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../src/workflow/workspace-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "popeye-cli",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "Fully autonomous code generation tool powered by Claude CLI and OpenAI consensus",
5
5
  "main": "./dist/index.js",
6
6
  "bin": {
@@ -7,6 +7,7 @@ import { promises as fs } from 'node:fs';
7
7
  import path from 'node:path';
8
8
  import { homedir } from 'os';
9
9
  import { query, type SDKMessage } from '@anthropic-ai/claude-agent-sdk';
10
+ import type { OutputLanguage } from '../types/project.js';
10
11
 
11
12
  /**
12
13
  * Options for executing a prompt through Claude
@@ -900,7 +901,7 @@ function isConversationalResponse(response: string): boolean {
900
901
  function buildPlanPrompt(
901
902
  specification: string,
902
903
  context: string,
903
- language: 'python' | 'typescript' | 'fullstack'
904
+ language: OutputLanguage
904
905
  ): string {
905
906
  // Base instructions that apply to all projects
906
907
  const baseInstructions = `
@@ -1015,6 +1016,222 @@ Your response MUST be the complete plan in this EXACT format:
1015
1016
  6. Each task MUST start with an action verb: Implement, Create, Build, Add, Configure, Set up, Write, Design, etc.
1016
1017
  7. Each task MUST be specific and implementable
1017
1018
 
1019
+ IMPORTANT: Output the COMPLETE plan now. Start with "# Development Plan:" on the first line.
1020
+ `.trim();
1021
+ }
1022
+
1023
+ // "All" project format (FE + BE + Website)
1024
+ if (language === 'all') {
1025
+ return `
1026
+ ${baseInstructions}
1027
+
1028
+ ## Project Type: ALL (Frontend + Backend + Website)
1029
+ - **Frontend**: React + Vite + TypeScript + Tailwind CSS (apps/frontend)
1030
+ - **Backend**: FastAPI (Python) + PostgreSQL (apps/backend)
1031
+ - **Website**: Next.js SSG/SSR marketing site (apps/website)
1032
+ - **Shared**: Design tokens, UI components (packages/)
1033
+ - **Structure**: Monorepo with apps/ and packages/
1034
+
1035
+ ## Specification
1036
+ ${specification}
1037
+
1038
+ ${context ? `## Additional Context\n${context}` : ''}
1039
+
1040
+ ## Required Plan Format for All-in-One Projects
1041
+
1042
+ Your response MUST be the complete plan in this EXACT format:
1043
+
1044
+ # Development Plan: [Project Name]
1045
+
1046
+ ## Overview
1047
+ [2-3 sentence summary covering app, API, and website]
1048
+
1049
+ ## Architecture
1050
+ - **Frontend App**: React SPA at apps/frontend/
1051
+ - **Backend API**: FastAPI service at apps/backend/
1052
+ - **Marketing Website**: Next.js at apps/website/
1053
+ - **Shared Packages**: packages/ui, packages/design-tokens
1054
+
1055
+ ---
1056
+
1057
+ ## Milestone 1: [Name]
1058
+ **Description**: [What this milestone achieves]
1059
+
1060
+ ### Frontend Tasks
1061
+
1062
+ #### Task 1.1 [FE]: [Actionable task name]
1063
+ **App**: frontend
1064
+ **Files**:
1065
+ - \`apps/frontend/src/components/...\`
1066
+ **Dependencies**: None
1067
+ **Acceptance Criteria**:
1068
+ - [ ] Criterion 1
1069
+
1070
+ ### Backend Tasks
1071
+
1072
+ #### Task 1.2 [BE]: [Actionable task name]
1073
+ **App**: backend
1074
+ **Files**:
1075
+ - \`apps/backend/src/...\`
1076
+ **Dependencies**: None
1077
+ **Acceptance Criteria**:
1078
+ - [ ] Criterion 1
1079
+
1080
+ ### Website Tasks
1081
+
1082
+ #### Task 1.3 [WEB]: [Actionable task name]
1083
+ **App**: website
1084
+ **Files**:
1085
+ - \`apps/website/src/app/...\`
1086
+ **Dependencies**: None
1087
+ **Acceptance Criteria**:
1088
+ - [ ] Page renders with proper SEO metadata
1089
+ - [ ] Page passes Lighthouse performance check
1090
+
1091
+ ### Integration Tasks
1092
+
1093
+ #### Task 1.4 [INT]: [Actionable task name]
1094
+ **App**: unified
1095
+ **Dependencies**: Task 1.1, Task 1.2
1096
+ **Acceptance Criteria**:
1097
+ - [ ] Integration criterion
1098
+
1099
+ ---
1100
+
1101
+ ## Milestone 2: [Name]
1102
+ [Continue same pattern...]
1103
+
1104
+ ---
1105
+
1106
+ ## Test Plan
1107
+
1108
+ ### Frontend Tests (apps/frontend)
1109
+ - Vitest + Testing Library for unit tests
1110
+ - Playwright for E2E
1111
+
1112
+ ### Backend Tests (apps/backend)
1113
+ - pytest for unit tests
1114
+ - pytest + TestClient for integration
1115
+
1116
+ ### Website Tests (apps/website)
1117
+ - Vitest for component tests
1118
+ - SEO acceptance tests (sitemap, robots, metadata)
1119
+ - Lighthouse performance checks
1120
+
1121
+ ### Integration Tests
1122
+ - API contract validation
1123
+ - E2E user flows across all apps
1124
+
1125
+ ## Risks & Mitigations
1126
+ [Include frontend, backend, website, and integration risks separately]
1127
+
1128
+ ---
1129
+
1130
+ ## CRITICAL REQUIREMENTS FOR "ALL" PROJECTS:
1131
+ 1. **Tag every task** with [FE], [BE], [WEB], or [INT]
1132
+ - [FE] = Frontend app task
1133
+ - [BE] = Backend API task
1134
+ - [WEB] = Marketing website task
1135
+ - [INT] = Integration/unified task
1136
+ 2. **Specify App field** for each task (frontend, backend, website, or unified)
1137
+ 3. **List exact file paths** under the appropriate apps/ or packages/ directory
1138
+ 4. **Group tasks** under "Frontend Tasks", "Backend Tasks", "Website Tasks", or "Integration Tasks" headers
1139
+ 5. **Website tasks MUST include SEO requirements** in acceptance criteria
1140
+ 6. **Website must NOT import from apps/frontend/** - use packages/ui instead
1141
+ 7. Each task MUST start with an action verb
1142
+ 8. Include at least 3 milestones
1143
+
1144
+ IMPORTANT: Output the COMPLETE plan now. Start with "# Development Plan:" on the first line.
1145
+ `.trim();
1146
+ }
1147
+
1148
+ // Website-only format
1149
+ if (language === 'website') {
1150
+ return `
1151
+ ${baseInstructions}
1152
+
1153
+ ## Project Type: WEBSITE (Next.js Marketing Site)
1154
+ - **Framework**: Next.js 14+ App Router
1155
+ - **Styling**: Tailwind CSS
1156
+ - **Content**: MDX for blog/docs
1157
+ - **SEO**: Sitemap, robots.txt, OpenGraph
1158
+
1159
+ ## Specification
1160
+ ${specification}
1161
+
1162
+ ${context ? `## Additional Context\n${context}` : ''}
1163
+
1164
+ ## Required Plan Format for Website Projects
1165
+
1166
+ Your response MUST be the complete plan in this EXACT format:
1167
+
1168
+ # Development Plan: [Project Name]
1169
+
1170
+ ## Overview
1171
+ [2-3 sentence summary of the marketing website]
1172
+
1173
+ ## Architecture
1174
+ - **Framework**: Next.js App Router
1175
+ - **Styling**: Tailwind CSS
1176
+ - **Content**: MDX for blog posts and documentation
1177
+ - **Deployment**: Vercel/Docker
1178
+
1179
+ ---
1180
+
1181
+ ## Milestone 1: [Name]
1182
+ **Description**: [What this milestone achieves]
1183
+
1184
+ ### Task 1.1: [Actionable task name]
1185
+ **Files**:
1186
+ - \`src/app/page.tsx\`
1187
+ - \`src/components/...\`
1188
+ **Dependencies**: None
1189
+ **Acceptance Criteria**:
1190
+ - [ ] Page renders correctly
1191
+ - [ ] SEO metadata is properly configured
1192
+ - [ ] Page passes Lighthouse performance check (90+ score)
1193
+
1194
+ ### Task 1.2: [Another actionable task]
1195
+ ...
1196
+
1197
+ ---
1198
+
1199
+ ## Milestone 2: [Name]
1200
+ ...
1201
+
1202
+ ---
1203
+
1204
+ ## SEO Requirements (ALL pages must have)
1205
+
1206
+ 1. **Metadata exports** in every page.tsx:
1207
+ - title (unique per page)
1208
+ - description
1209
+ - openGraph data
1210
+ 2. **sitemap.ts** - Auto-generated sitemap
1211
+ 3. **robots.ts** - robots.txt configuration
1212
+ 4. **OG images** - Default and per-page OpenGraph images
1213
+ 5. **Structured data** - JSON-LD where applicable
1214
+
1215
+ ## Test Plan
1216
+ - Vitest for component tests
1217
+ - SEO acceptance tests
1218
+ - Lighthouse performance audits
1219
+ - Accessibility testing
1220
+
1221
+ ## Risks & Mitigations
1222
+ [Include SEO, performance, and content risks]
1223
+
1224
+ ---
1225
+
1226
+ ## Requirements for Tasks
1227
+
1228
+ 1. Each task MUST start with an action verb
1229
+ 2. Each task MUST include SEO considerations
1230
+ 3. Each milestone MUST have at least 3-5 specific tasks
1231
+ 4. The plan MUST have at least 3 milestones
1232
+ 5. Files to create/modify MUST be listed for each task
1233
+ 6. Acceptance criteria MUST include SEO requirements where applicable
1234
+
1018
1235
  IMPORTANT: Output the COMPLETE plan now. Start with "# Development Plan:" on the first line.
1019
1236
  `.trim();
1020
1237
  }
@@ -1149,7 +1366,7 @@ IMPORTANT: Output the COMPLETE plan now. Start with "# Development Plan:" on the
1149
1366
  export async function createPlan(
1150
1367
  specification: string,
1151
1368
  context: string = '',
1152
- language: 'python' | 'typescript' | 'fullstack' = 'python',
1369
+ language: OutputLanguage = 'python',
1153
1370
  onProgress?: (message: string) => void
1154
1371
  ): Promise<ClaudeExecuteResult> {
1155
1372
  const prompt = buildPlanPrompt(specification, context, language);
@@ -1243,7 +1460,7 @@ function buildRevisionPrompt(
1243
1460
  originalPlan: string,
1244
1461
  feedback: string,
1245
1462
  concerns: string[],
1246
- language: 'python' | 'typescript' | 'fullstack'
1463
+ language: OutputLanguage
1247
1464
  ): string {
1248
1465
  const basePrompt = `
1249
1466
  CRITICAL: You must output the COMPLETE revised plan in your response.
@@ -1301,7 +1518,7 @@ export async function revisePlan(
1301
1518
  originalPlan: string,
1302
1519
  feedback: string,
1303
1520
  concerns: string[],
1304
- language: 'python' | 'typescript' | 'fullstack' = 'python',
1521
+ language: OutputLanguage = 'python',
1305
1522
  onProgress?: (message: string) => void
1306
1523
  ): Promise<ClaudeExecuteResult> {
1307
1524
  const prompt = buildRevisionPrompt(originalPlan, feedback, concerns, language);
@@ -7,6 +7,7 @@
7
7
 
8
8
  import OpenAI from 'openai';
9
9
  import type { ConsensusResult, ArbitrationResult } from '../types/consensus.js';
10
+ import type { OutputLanguage } from '../types/project.js';
10
11
  import { getGrokToken, GROK_API_URL } from '../auth/grok.js';
11
12
  import { DEFAULT_GROK_MODEL } from '../types/consensus.js';
12
13
 
@@ -409,7 +410,7 @@ export async function listAvailableModels(): Promise<string[]> {
409
410
  */
410
411
  export async function expandIdea(
411
412
  idea: string,
412
- language: 'python' | 'typescript' | 'fullstack'
413
+ language: OutputLanguage
413
414
  ): Promise<string> {
414
415
  const client = await createClient();
415
416
 
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Adapters module - Re-exports all AI provider adapters
3
+ */
4
+
5
+ // Claude (primary adapter for code execution)
6
+ export * from './claude.js';
7
+
8
+ // OpenAI (for consensus reviews) - namespaced to avoid collisions
9
+ export * as openai from './openai.js';
10
+
11
+ // Gemini (for consensus reviews and arbitration)
12
+ export * as gemini from './gemini.js';
13
+
14
+ // Grok (for consensus reviews and arbitration)
15
+ export * as grok from './grok.js';
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import OpenAI from 'openai';
7
- import type { ConsensusResult, ConsensusConfig, OpenAIModel } from '../types/index.js';
7
+ import type { ConsensusResult, ConsensusConfig, OpenAIModel, OutputLanguage } from '../types/index.js';
8
8
  import { getOpenAIToken } from '../auth/index.js';
9
9
  import { DEFAULT_CONSENSUS_CONFIG } from '../types/consensus.js';
10
10
 
@@ -256,7 +256,7 @@ export async function listAvailableModels(): Promise<string[]> {
256
256
  */
257
257
  export async function expandIdea(
258
258
  idea: string,
259
- language: 'python' | 'typescript' | 'fullstack'
259
+ language: OutputLanguage
260
260
  ): Promise<string> {
261
261
  const client = await createClient();
262
262
 
@@ -35,7 +35,7 @@ export function createCreateCommand(): Command {
35
35
  .option('-n, --name <name>', 'Project name')
36
36
  .option(
37
37
  '-l, --language <lang>',
38
- 'Output language (python, typescript, fullstack)',
38
+ 'Output language (python/be, typescript/fe, fullstack/fs, website/web, all)',
39
39
  'python'
40
40
  )
41
41
  .option(
@@ -64,10 +64,30 @@ export function createCreateCommand(): Command {
64
64
  )
65
65
  .action(async (idea: string, options) => {
66
66
  try {
67
- // Validate inputs
68
- const language = options.language as OutputLanguage;
69
- if (!['python', 'typescript', 'fullstack'].includes(language)) {
70
- printError(`Invalid language: ${language}. Use 'python', 'typescript', or 'fullstack'.`);
67
+ // Map language aliases and validate
68
+ const langAliases: Record<string, OutputLanguage> = {
69
+ // Backend aliases
70
+ 'py': 'python',
71
+ 'python': 'python',
72
+ 'be': 'python',
73
+ 'backend': 'python',
74
+ // Frontend aliases
75
+ 'ts': 'typescript',
76
+ 'typescript': 'typescript',
77
+ 'fe': 'typescript',
78
+ 'frontend': 'typescript',
79
+ // Fullstack aliases
80
+ 'fs': 'fullstack',
81
+ 'fullstack': 'fullstack',
82
+ // Website aliases
83
+ 'web': 'website',
84
+ 'website': 'website',
85
+ // All aliases
86
+ 'all': 'all',
87
+ };
88
+ const language = langAliases[options.language.toLowerCase()];
89
+ if (!language) {
90
+ printError(`Invalid language: ${options.language}. Use 'be', 'fe', 'fs', 'web', or 'all'.`);
71
91
  process.exit(1);
72
92
  }
73
93