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.
- package/.env.example +4 -1
- package/CONTRIBUTING.md +10 -0
- package/README.md +111 -2
- package/dist/adapters/claude.d.ts +3 -2
- package/dist/adapters/claude.d.ts.map +1 -1
- package/dist/adapters/claude.js +214 -0
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/grok.d.ts +2 -1
- package/dist/adapters/grok.d.ts.map +1 -1
- package/dist/adapters/grok.js.map +1 -1
- package/dist/adapters/index.d.ts +8 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +12 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/openai.d.ts +2 -2
- package/dist/adapters/openai.d.ts.map +1 -1
- package/dist/adapters/openai.js.map +1 -1
- package/dist/cli/commands/create.d.ts.map +1 -1
- package/dist/cli/commands/create.js +25 -5
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +47 -6
- package/dist/cli/interactive.js.map +1 -1
- package/dist/generators/all.d.ts +40 -0
- package/dist/generators/all.d.ts.map +1 -0
- package/dist/generators/all.js +826 -0
- package/dist/generators/all.js.map +1 -0
- package/dist/generators/fullstack.d.ts +9 -0
- package/dist/generators/fullstack.d.ts.map +1 -1
- package/dist/generators/fullstack.js.map +1 -1
- package/dist/generators/index.d.ts +3 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +33 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/templates/index.d.ts +2 -0
- package/dist/generators/templates/index.d.ts.map +1 -1
- package/dist/generators/templates/index.js +2 -0
- package/dist/generators/templates/index.js.map +1 -1
- package/dist/generators/templates/website.d.ts +85 -0
- package/dist/generators/templates/website.d.ts.map +1 -0
- package/dist/generators/templates/website.js +877 -0
- package/dist/generators/templates/website.js.map +1 -0
- package/dist/generators/website.d.ts +56 -0
- package/dist/generators/website.d.ts.map +1 -0
- package/dist/generators/website.js +269 -0
- package/dist/generators/website.js.map +1 -0
- package/dist/types/consensus.d.ts +8 -3
- package/dist/types/consensus.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/project.d.ts +115 -1
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/project.js +41 -1
- package/dist/types/project.js.map +1 -1
- package/dist/workflow/consensus.d.ts +2 -1
- package/dist/workflow/consensus.d.ts.map +1 -1
- package/dist/workflow/consensus.js.map +1 -1
- package/dist/workflow/index.d.ts +6 -0
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +8 -0
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/plan-mode.d.ts +3 -3
- package/dist/workflow/plan-mode.d.ts.map +1 -1
- package/dist/workflow/plan-mode.js.map +1 -1
- package/dist/workflow/plan-parser.d.ts +97 -0
- package/dist/workflow/plan-parser.d.ts.map +1 -0
- package/dist/workflow/plan-parser.js +235 -0
- package/dist/workflow/plan-parser.js.map +1 -0
- package/dist/workflow/plan-storage.d.ts +40 -12
- package/dist/workflow/plan-storage.d.ts.map +1 -1
- package/dist/workflow/plan-storage.js +47 -20
- package/dist/workflow/plan-storage.js.map +1 -1
- package/dist/workflow/seo-tests.d.ts +43 -0
- package/dist/workflow/seo-tests.d.ts.map +1 -0
- package/dist/workflow/seo-tests.js +192 -0
- package/dist/workflow/seo-tests.js.map +1 -0
- package/dist/workflow/separation-guard.d.ts +35 -0
- package/dist/workflow/separation-guard.d.ts.map +1 -0
- package/dist/workflow/separation-guard.js +154 -0
- package/dist/workflow/separation-guard.js.map +1 -0
- package/dist/workflow/test-runner.d.ts.map +1 -1
- package/dist/workflow/test-runner.js +128 -0
- package/dist/workflow/test-runner.js.map +1 -1
- package/dist/workflow/workspace-manager.d.ts +31 -20
- package/dist/workflow/workspace-manager.d.ts.map +1 -1
- package/dist/workflow/workspace-manager.js +38 -9
- package/dist/workflow/workspace-manager.js.map +1 -1
- package/package.json +1 -1
- package/src/adapters/claude.ts +221 -4
- package/src/adapters/grok.ts +2 -1
- package/src/adapters/index.ts +15 -0
- package/src/adapters/openai.ts +2 -2
- package/src/cli/commands/create.ts +25 -5
- package/src/cli/interactive.ts +47 -6
- package/src/generators/all.ts +897 -0
- package/src/generators/fullstack.ts +10 -0
- package/src/generators/index.ts +54 -0
- package/src/generators/templates/index.ts +2 -0
- package/src/generators/templates/website.ts +906 -0
- package/src/generators/website.ts +350 -0
- package/src/types/consensus.ts +9 -3
- package/src/types/index.ts +33 -0
- package/src/types/project.ts +139 -2
- package/src/workflow/consensus.ts +3 -2
- package/src/workflow/index.ts +8 -0
- package/src/workflow/plan-mode.ts +3 -3
- package/src/workflow/plan-parser.ts +317 -0
- package/src/workflow/plan-storage.ts +69 -30
- package/src/workflow/seo-tests.ts +246 -0
- package/src/workflow/separation-guard.ts +200 -0
- package/src/workflow/test-runner.ts +149 -0
- package/src/workflow/workspace-manager.ts +68 -31
|
@@ -35,6 +35,16 @@ import {
|
|
|
35
35
|
generateFastAPIRequirements,
|
|
36
36
|
} from './templates/fullstack.js';
|
|
37
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Options for fullstack project generation
|
|
40
|
+
*/
|
|
41
|
+
export interface FullstackGeneratorOptions {
|
|
42
|
+
skipBackend?: boolean;
|
|
43
|
+
skipFrontend?: boolean;
|
|
44
|
+
strictMode?: boolean;
|
|
45
|
+
includeExamples?: boolean;
|
|
46
|
+
}
|
|
47
|
+
|
|
38
48
|
/**
|
|
39
49
|
* Create a directory if it doesn't exist
|
|
40
50
|
*/
|
package/src/generators/index.ts
CHANGED
|
@@ -22,6 +22,16 @@ import {
|
|
|
22
22
|
validateFullstackProject,
|
|
23
23
|
getFullstackProjectFiles,
|
|
24
24
|
} from './fullstack.js';
|
|
25
|
+
import {
|
|
26
|
+
generateWebsiteProject,
|
|
27
|
+
validateWebsiteProject,
|
|
28
|
+
getWebsiteProjectFiles,
|
|
29
|
+
} from './website.js';
|
|
30
|
+
import {
|
|
31
|
+
generateAllProject,
|
|
32
|
+
validateAllProject,
|
|
33
|
+
getAllProjectFiles,
|
|
34
|
+
} from './all.js';
|
|
25
35
|
|
|
26
36
|
// Re-export (explicitly to avoid name conflicts)
|
|
27
37
|
export {
|
|
@@ -45,7 +55,20 @@ export {
|
|
|
45
55
|
generateFullstackProject,
|
|
46
56
|
validateFullstackProject,
|
|
47
57
|
getFullstackProjectFiles,
|
|
58
|
+
type FullstackGeneratorOptions,
|
|
48
59
|
} from './fullstack.js';
|
|
60
|
+
export {
|
|
61
|
+
generateWebsiteProject,
|
|
62
|
+
validateWebsiteProject,
|
|
63
|
+
getWebsiteProjectFiles,
|
|
64
|
+
type WebsiteGeneratorOptions,
|
|
65
|
+
} from './website.js';
|
|
66
|
+
export {
|
|
67
|
+
generateAllProject,
|
|
68
|
+
validateAllProject,
|
|
69
|
+
getAllProjectFiles,
|
|
70
|
+
type AllGeneratorOptions,
|
|
71
|
+
} from './all.js';
|
|
49
72
|
export * from './templates/index.js';
|
|
50
73
|
|
|
51
74
|
/**
|
|
@@ -66,6 +89,10 @@ export async function generateProject(
|
|
|
66
89
|
return generateTypeScriptProject(spec, outputDir);
|
|
67
90
|
case 'fullstack':
|
|
68
91
|
return generateFullstackProject(spec, outputDir);
|
|
92
|
+
case 'website':
|
|
93
|
+
return generateWebsiteProject(spec, outputDir);
|
|
94
|
+
case 'all':
|
|
95
|
+
return generateAllProject(spec, outputDir);
|
|
69
96
|
default:
|
|
70
97
|
return {
|
|
71
98
|
success: false,
|
|
@@ -97,6 +124,10 @@ export async function validateProject(
|
|
|
97
124
|
return validateTypeScriptProject(projectDir);
|
|
98
125
|
case 'fullstack':
|
|
99
126
|
return validateFullstackProject(projectDir);
|
|
127
|
+
case 'website':
|
|
128
|
+
return validateWebsiteProject(projectDir);
|
|
129
|
+
case 'all':
|
|
130
|
+
return validateAllProject(projectDir);
|
|
100
131
|
default:
|
|
101
132
|
return {
|
|
102
133
|
valid: false,
|
|
@@ -122,7 +153,14 @@ export async function addModule(
|
|
|
122
153
|
case 'python':
|
|
123
154
|
return addPythonModule(projectDir, moduleName);
|
|
124
155
|
case 'typescript':
|
|
156
|
+
case 'website':
|
|
125
157
|
return addTypeScriptModule(projectDir, moduleName);
|
|
158
|
+
case 'fullstack':
|
|
159
|
+
case 'all':
|
|
160
|
+
// For workspace projects, determine which app to add to
|
|
161
|
+
throw new Error(
|
|
162
|
+
'Use addModule with specific app path for workspace projects: apps/frontend or apps/backend'
|
|
163
|
+
);
|
|
126
164
|
default:
|
|
127
165
|
throw new Error(`Unsupported language: ${language}`);
|
|
128
166
|
}
|
|
@@ -143,6 +181,10 @@ export function getProjectFiles(projectName: string, language: OutputLanguage):
|
|
|
143
181
|
return getTypeScriptProjectFiles(projectName);
|
|
144
182
|
case 'fullstack':
|
|
145
183
|
return getFullstackProjectFiles(projectName);
|
|
184
|
+
case 'website':
|
|
185
|
+
return getWebsiteProjectFiles(projectName);
|
|
186
|
+
case 'all':
|
|
187
|
+
return getAllProjectFiles(projectName);
|
|
146
188
|
default:
|
|
147
189
|
return [];
|
|
148
190
|
}
|
|
@@ -162,6 +204,10 @@ export function getTestCommand(language: OutputLanguage): string {
|
|
|
162
204
|
return 'npm test';
|
|
163
205
|
case 'fullstack':
|
|
164
206
|
return 'cd apps/backend && pytest && cd ../frontend && npm test';
|
|
207
|
+
case 'website':
|
|
208
|
+
return 'npm test';
|
|
209
|
+
case 'all':
|
|
210
|
+
return 'npm run test:all';
|
|
165
211
|
default:
|
|
166
212
|
return 'echo "No test command configured"';
|
|
167
213
|
}
|
|
@@ -181,6 +227,10 @@ export function getBuildCommand(language: OutputLanguage): string {
|
|
|
181
227
|
return 'npm run build';
|
|
182
228
|
case 'fullstack':
|
|
183
229
|
return 'cd apps/backend && pip install -e . && cd ../frontend && npm run build';
|
|
230
|
+
case 'website':
|
|
231
|
+
return 'npm run build';
|
|
232
|
+
case 'all':
|
|
233
|
+
return 'npm run build';
|
|
184
234
|
default:
|
|
185
235
|
return 'echo "No build command configured"';
|
|
186
236
|
}
|
|
@@ -200,6 +250,10 @@ export function getLintCommand(language: OutputLanguage): string {
|
|
|
200
250
|
return 'npm run lint';
|
|
201
251
|
case 'fullstack':
|
|
202
252
|
return 'cd apps/backend && ruff check . && cd ../frontend && npm run lint';
|
|
253
|
+
case 'website':
|
|
254
|
+
return 'npm run lint';
|
|
255
|
+
case 'all':
|
|
256
|
+
return 'npm run lint:all';
|
|
203
257
|
default:
|
|
204
258
|
return 'echo "No lint command configured"';
|
|
205
259
|
}
|