popeye-cli 1.0.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 (209) hide show
  1. package/.env.example +25 -0
  2. package/.prettierrc +8 -0
  3. package/README.md +320 -0
  4. package/dist/adapters/claude.d.ts +82 -0
  5. package/dist/adapters/claude.d.ts.map +1 -0
  6. package/dist/adapters/claude.js +230 -0
  7. package/dist/adapters/claude.js.map +1 -0
  8. package/dist/adapters/openai.d.ts +48 -0
  9. package/dist/adapters/openai.d.ts.map +1 -0
  10. package/dist/adapters/openai.js +257 -0
  11. package/dist/adapters/openai.js.map +1 -0
  12. package/dist/auth/claude.d.ts +44 -0
  13. package/dist/auth/claude.d.ts.map +1 -0
  14. package/dist/auth/claude.js +139 -0
  15. package/dist/auth/claude.js.map +1 -0
  16. package/dist/auth/index.d.ts +61 -0
  17. package/dist/auth/index.d.ts.map +1 -0
  18. package/dist/auth/index.js +141 -0
  19. package/dist/auth/index.js.map +1 -0
  20. package/dist/auth/keychain.d.ts +66 -0
  21. package/dist/auth/keychain.d.ts.map +1 -0
  22. package/dist/auth/keychain.js +125 -0
  23. package/dist/auth/keychain.js.map +1 -0
  24. package/dist/auth/openai-entry.d.ts +9 -0
  25. package/dist/auth/openai-entry.d.ts.map +1 -0
  26. package/dist/auth/openai-entry.js +410 -0
  27. package/dist/auth/openai-entry.js.map +1 -0
  28. package/dist/auth/openai.d.ts +71 -0
  29. package/dist/auth/openai.d.ts.map +1 -0
  30. package/dist/auth/openai.js +212 -0
  31. package/dist/auth/openai.js.map +1 -0
  32. package/dist/auth/server.d.ts +32 -0
  33. package/dist/auth/server.d.ts.map +1 -0
  34. package/dist/auth/server.js +213 -0
  35. package/dist/auth/server.js.map +1 -0
  36. package/dist/cli/commands/auth.d.ts +10 -0
  37. package/dist/cli/commands/auth.d.ts.map +1 -0
  38. package/dist/cli/commands/auth.js +162 -0
  39. package/dist/cli/commands/auth.js.map +1 -0
  40. package/dist/cli/commands/config.d.ts +10 -0
  41. package/dist/cli/commands/config.d.ts.map +1 -0
  42. package/dist/cli/commands/config.js +215 -0
  43. package/dist/cli/commands/config.js.map +1 -0
  44. package/dist/cli/commands/create.d.ts +10 -0
  45. package/dist/cli/commands/create.d.ts.map +1 -0
  46. package/dist/cli/commands/create.js +240 -0
  47. package/dist/cli/commands/create.js.map +1 -0
  48. package/dist/cli/commands/index.d.ts +10 -0
  49. package/dist/cli/commands/index.d.ts.map +1 -0
  50. package/dist/cli/commands/index.js +10 -0
  51. package/dist/cli/commands/index.js.map +1 -0
  52. package/dist/cli/commands/resume.d.ts +18 -0
  53. package/dist/cli/commands/resume.d.ts.map +1 -0
  54. package/dist/cli/commands/resume.js +241 -0
  55. package/dist/cli/commands/resume.js.map +1 -0
  56. package/dist/cli/commands/status.d.ts +18 -0
  57. package/dist/cli/commands/status.d.ts.map +1 -0
  58. package/dist/cli/commands/status.js +154 -0
  59. package/dist/cli/commands/status.js.map +1 -0
  60. package/dist/cli/index.d.ts +17 -0
  61. package/dist/cli/index.d.ts.map +1 -0
  62. package/dist/cli/index.js +71 -0
  63. package/dist/cli/index.js.map +1 -0
  64. package/dist/cli/interactive.d.ts +9 -0
  65. package/dist/cli/interactive.d.ts.map +1 -0
  66. package/dist/cli/interactive.js +330 -0
  67. package/dist/cli/interactive.js.map +1 -0
  68. package/dist/cli/output.d.ts +182 -0
  69. package/dist/cli/output.d.ts.map +1 -0
  70. package/dist/cli/output.js +355 -0
  71. package/dist/cli/output.js.map +1 -0
  72. package/dist/config/defaults.d.ts +57 -0
  73. package/dist/config/defaults.d.ts.map +1 -0
  74. package/dist/config/defaults.js +103 -0
  75. package/dist/config/defaults.js.map +1 -0
  76. package/dist/config/index.d.ts +138 -0
  77. package/dist/config/index.d.ts.map +1 -0
  78. package/dist/config/index.js +244 -0
  79. package/dist/config/index.js.map +1 -0
  80. package/dist/config/schema.d.ts +220 -0
  81. package/dist/config/schema.d.ts.map +1 -0
  82. package/dist/config/schema.js +141 -0
  83. package/dist/config/schema.js.map +1 -0
  84. package/dist/generators/index.d.ts +101 -0
  85. package/dist/generators/index.d.ts.map +1 -0
  86. package/dist/generators/index.js +200 -0
  87. package/dist/generators/index.js.map +1 -0
  88. package/dist/generators/python.d.ts +48 -0
  89. package/dist/generators/python.d.ts.map +1 -0
  90. package/dist/generators/python.js +262 -0
  91. package/dist/generators/python.js.map +1 -0
  92. package/dist/generators/templates/index.d.ts +6 -0
  93. package/dist/generators/templates/index.d.ts.map +1 -0
  94. package/dist/generators/templates/index.js +6 -0
  95. package/dist/generators/templates/index.js.map +1 -0
  96. package/dist/generators/templates/python.d.ts +53 -0
  97. package/dist/generators/templates/python.d.ts.map +1 -0
  98. package/dist/generators/templates/python.js +454 -0
  99. package/dist/generators/templates/python.js.map +1 -0
  100. package/dist/generators/templates/typescript.d.ts +53 -0
  101. package/dist/generators/templates/typescript.d.ts.map +1 -0
  102. package/dist/generators/templates/typescript.js +394 -0
  103. package/dist/generators/templates/typescript.js.map +1 -0
  104. package/dist/generators/typescript.d.ts +64 -0
  105. package/dist/generators/typescript.d.ts.map +1 -0
  106. package/dist/generators/typescript.js +271 -0
  107. package/dist/generators/typescript.js.map +1 -0
  108. package/dist/index.d.ts +7 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +12 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/state/index.d.ts +168 -0
  113. package/dist/state/index.d.ts.map +1 -0
  114. package/dist/state/index.js +338 -0
  115. package/dist/state/index.js.map +1 -0
  116. package/dist/state/persistence.d.ts +91 -0
  117. package/dist/state/persistence.d.ts.map +1 -0
  118. package/dist/state/persistence.js +201 -0
  119. package/dist/state/persistence.js.map +1 -0
  120. package/dist/types/cli.d.ts +132 -0
  121. package/dist/types/cli.d.ts.map +1 -0
  122. package/dist/types/cli.js +17 -0
  123. package/dist/types/cli.js.map +1 -0
  124. package/dist/types/consensus.d.ts +111 -0
  125. package/dist/types/consensus.d.ts.map +1 -0
  126. package/dist/types/consensus.js +29 -0
  127. package/dist/types/consensus.js.map +1 -0
  128. package/dist/types/index.d.ts +9 -0
  129. package/dist/types/index.d.ts.map +1 -0
  130. package/dist/types/index.js +13 -0
  131. package/dist/types/index.js.map +1 -0
  132. package/dist/types/project.d.ts +73 -0
  133. package/dist/types/project.d.ts.map +1 -0
  134. package/dist/types/project.js +55 -0
  135. package/dist/types/project.js.map +1 -0
  136. package/dist/types/workflow.d.ts +236 -0
  137. package/dist/types/workflow.d.ts.map +1 -0
  138. package/dist/types/workflow.js +74 -0
  139. package/dist/types/workflow.js.map +1 -0
  140. package/dist/workflow/consensus.d.ts +89 -0
  141. package/dist/workflow/consensus.d.ts.map +1 -0
  142. package/dist/workflow/consensus.js +220 -0
  143. package/dist/workflow/consensus.js.map +1 -0
  144. package/dist/workflow/execution-mode.d.ts +82 -0
  145. package/dist/workflow/execution-mode.d.ts.map +1 -0
  146. package/dist/workflow/execution-mode.js +346 -0
  147. package/dist/workflow/execution-mode.js.map +1 -0
  148. package/dist/workflow/index.d.ts +110 -0
  149. package/dist/workflow/index.d.ts.map +1 -0
  150. package/dist/workflow/index.js +283 -0
  151. package/dist/workflow/index.js.map +1 -0
  152. package/dist/workflow/plan-mode.d.ts +83 -0
  153. package/dist/workflow/plan-mode.d.ts.map +1 -0
  154. package/dist/workflow/plan-mode.js +241 -0
  155. package/dist/workflow/plan-mode.js.map +1 -0
  156. package/dist/workflow/test-runner.d.ts +87 -0
  157. package/dist/workflow/test-runner.d.ts.map +1 -0
  158. package/dist/workflow/test-runner.js +273 -0
  159. package/dist/workflow/test-runner.js.map +1 -0
  160. package/eslint.config.js +25 -0
  161. package/package.json +66 -0
  162. package/src/adapters/claude.ts +298 -0
  163. package/src/adapters/openai.ts +300 -0
  164. package/src/auth/claude.ts +166 -0
  165. package/src/auth/index.ts +171 -0
  166. package/src/auth/keychain.ts +138 -0
  167. package/src/auth/openai-entry.ts +410 -0
  168. package/src/auth/openai.ts +260 -0
  169. package/src/auth/server.ts +252 -0
  170. package/src/cli/commands/auth.ts +194 -0
  171. package/src/cli/commands/config.ts +241 -0
  172. package/src/cli/commands/create.ts +308 -0
  173. package/src/cli/commands/index.ts +10 -0
  174. package/src/cli/commands/resume.ts +304 -0
  175. package/src/cli/commands/status.ts +189 -0
  176. package/src/cli/index.ts +90 -0
  177. package/src/cli/interactive.ts +418 -0
  178. package/src/cli/output.ts +410 -0
  179. package/src/config/defaults.ts +114 -0
  180. package/src/config/index.ts +315 -0
  181. package/src/config/schema.ts +164 -0
  182. package/src/generators/index.ts +251 -0
  183. package/src/generators/python.ts +318 -0
  184. package/src/generators/templates/index.ts +6 -0
  185. package/src/generators/templates/python.ts +465 -0
  186. package/src/generators/templates/typescript.ts +417 -0
  187. package/src/generators/typescript.ts +340 -0
  188. package/src/index.ts +13 -0
  189. package/src/state/index.ts +454 -0
  190. package/src/state/persistence.ts +230 -0
  191. package/src/types/cli.ts +146 -0
  192. package/src/types/consensus.ts +116 -0
  193. package/src/types/index.ts +64 -0
  194. package/src/types/project.ts +85 -0
  195. package/src/types/workflow.ts +149 -0
  196. package/src/workflow/consensus.ts +299 -0
  197. package/src/workflow/execution-mode.ts +517 -0
  198. package/src/workflow/index.ts +396 -0
  199. package/src/workflow/plan-mode.ts +356 -0
  200. package/src/workflow/test-runner.ts +345 -0
  201. package/tests/adapters/openai.test.ts +145 -0
  202. package/tests/config/config.test.ts +208 -0
  203. package/tests/generators/generators.test.ts +185 -0
  204. package/tests/types/consensus.test.ts +152 -0
  205. package/tests/types/project.test.ts +134 -0
  206. package/tests/workflow/consensus.test.ts +221 -0
  207. package/tests/workflow/test-runner.test.ts +214 -0
  208. package/tsconfig.json +25 -0
  209. package/vitest.config.ts +22 -0
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Python project generator
3
+ * Creates complete Python project scaffolding
4
+ */
5
+ import type { ProjectSpec } from '../types/project.js';
6
+ /**
7
+ * Project generation result
8
+ */
9
+ export interface GenerationResult {
10
+ success: boolean;
11
+ projectDir: string;
12
+ filesCreated: string[];
13
+ error?: string;
14
+ }
15
+ /**
16
+ * Generate a complete Python project
17
+ *
18
+ * @param spec - Project specification
19
+ * @param outputDir - Output directory
20
+ * @returns Generation result
21
+ */
22
+ export declare function generatePythonProject(spec: ProjectSpec, outputDir: string): Promise<GenerationResult>;
23
+ /**
24
+ * Get the list of files that would be generated
25
+ *
26
+ * @param projectName - Project name
27
+ * @returns List of relative file paths
28
+ */
29
+ export declare function getPythonProjectFiles(projectName: string): string[];
30
+ /**
31
+ * Validate a Python project structure
32
+ *
33
+ * @param projectDir - Project directory
34
+ * @returns Validation result
35
+ */
36
+ export declare function validatePythonProject(projectDir: string): Promise<{
37
+ valid: boolean;
38
+ missingFiles: string[];
39
+ }>;
40
+ /**
41
+ * Add a new Python module to an existing project
42
+ *
43
+ * @param projectDir - Project directory
44
+ * @param moduleName - Module name
45
+ * @returns Files created
46
+ */
47
+ export declare function addPythonModule(projectDir: string, moduleName: string): Promise<string[]>;
48
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/generators/python.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgBvD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuBD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAuG3B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBnE;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC,CAwBD;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CA2EnB"}
@@ -0,0 +1,262 @@
1
+ /**
2
+ * Python project generator
3
+ * Creates complete Python project scaffolding
4
+ */
5
+ import { promises as fs } from 'node:fs';
6
+ import path from 'node:path';
7
+ import { generatePyprojectToml, generateRequirementsTxt, generateMainInit, generateMainPy, generateConftest, generateTestMain, generateDockerfile, generateDockerCompose, generateGitignore, generateEnvExample, generateReadme, generateMakefile, } from './templates/python.js';
8
+ /**
9
+ * Create a directory if it doesn't exist
10
+ */
11
+ async function ensureDir(dirPath) {
12
+ await fs.mkdir(dirPath, { recursive: true });
13
+ }
14
+ /**
15
+ * Write a file with content
16
+ */
17
+ async function writeFile(filePath, content) {
18
+ await fs.writeFile(filePath, content, 'utf-8');
19
+ }
20
+ /**
21
+ * Convert project name to Python package name
22
+ */
23
+ function toPythonPackageName(name) {
24
+ return name.toLowerCase().replace(/-/g, '_').replace(/[^a-z0-9_]/g, '');
25
+ }
26
+ /**
27
+ * Generate a complete Python project
28
+ *
29
+ * @param spec - Project specification
30
+ * @param outputDir - Output directory
31
+ * @returns Generation result
32
+ */
33
+ export async function generatePythonProject(spec, outputDir) {
34
+ const projectName = spec.name || 'my-project';
35
+ const packageName = toPythonPackageName(projectName);
36
+ const projectDir = path.join(outputDir, projectName);
37
+ const filesCreated = [];
38
+ try {
39
+ // Create project directory structure
40
+ await ensureDir(projectDir);
41
+ await ensureDir(path.join(projectDir, 'src', packageName));
42
+ await ensureDir(path.join(projectDir, 'tests'));
43
+ await ensureDir(path.join(projectDir, 'data'));
44
+ // Generate and write files
45
+ const files = [
46
+ // Root files
47
+ {
48
+ path: path.join(projectDir, 'pyproject.toml'),
49
+ content: generatePyprojectToml(projectName),
50
+ },
51
+ {
52
+ path: path.join(projectDir, 'requirements.txt'),
53
+ content: generateRequirementsTxt(),
54
+ },
55
+ {
56
+ path: path.join(projectDir, '.gitignore'),
57
+ content: generateGitignore(),
58
+ },
59
+ {
60
+ path: path.join(projectDir, '.env.example'),
61
+ content: generateEnvExample(),
62
+ },
63
+ {
64
+ path: path.join(projectDir, 'README.md'),
65
+ content: generateReadme(projectName, spec.idea),
66
+ },
67
+ {
68
+ path: path.join(projectDir, 'Makefile'),
69
+ content: generateMakefile(projectName),
70
+ },
71
+ {
72
+ path: path.join(projectDir, 'Dockerfile'),
73
+ content: generateDockerfile(projectName),
74
+ },
75
+ {
76
+ path: path.join(projectDir, 'docker-compose.yml'),
77
+ content: generateDockerCompose(projectName),
78
+ },
79
+ // Source files
80
+ {
81
+ path: path.join(projectDir, 'src', packageName, '__init__.py'),
82
+ content: generateMainInit(projectName),
83
+ },
84
+ {
85
+ path: path.join(projectDir, 'src', packageName, 'main.py'),
86
+ content: generateMainPy(projectName),
87
+ },
88
+ {
89
+ path: path.join(projectDir, 'src', '__init__.py'),
90
+ content: '# Source root\n',
91
+ },
92
+ // Test files
93
+ {
94
+ path: path.join(projectDir, 'tests', '__init__.py'),
95
+ content: '# Tests package\n',
96
+ },
97
+ {
98
+ path: path.join(projectDir, 'tests', 'conftest.py'),
99
+ content: generateConftest(),
100
+ },
101
+ {
102
+ path: path.join(projectDir, 'tests', 'test_main.py'),
103
+ content: generateTestMain(projectName),
104
+ },
105
+ // Data placeholder
106
+ {
107
+ path: path.join(projectDir, 'data', '.gitkeep'),
108
+ content: '',
109
+ },
110
+ ];
111
+ // Write all files
112
+ for (const file of files) {
113
+ await writeFile(file.path, file.content);
114
+ filesCreated.push(file.path);
115
+ }
116
+ return {
117
+ success: true,
118
+ projectDir,
119
+ filesCreated,
120
+ };
121
+ }
122
+ catch (error) {
123
+ return {
124
+ success: false,
125
+ projectDir,
126
+ filesCreated,
127
+ error: error instanceof Error ? error.message : 'Unknown error',
128
+ };
129
+ }
130
+ }
131
+ /**
132
+ * Get the list of files that would be generated
133
+ *
134
+ * @param projectName - Project name
135
+ * @returns List of relative file paths
136
+ */
137
+ export function getPythonProjectFiles(projectName) {
138
+ const packageName = toPythonPackageName(projectName);
139
+ return [
140
+ 'pyproject.toml',
141
+ 'requirements.txt',
142
+ '.gitignore',
143
+ '.env.example',
144
+ 'README.md',
145
+ 'Makefile',
146
+ 'Dockerfile',
147
+ 'docker-compose.yml',
148
+ `src/${packageName}/__init__.py`,
149
+ `src/${packageName}/main.py`,
150
+ 'src/__init__.py',
151
+ 'tests/__init__.py',
152
+ 'tests/conftest.py',
153
+ 'tests/test_main.py',
154
+ 'data/.gitkeep',
155
+ ];
156
+ }
157
+ /**
158
+ * Validate a Python project structure
159
+ *
160
+ * @param projectDir - Project directory
161
+ * @returns Validation result
162
+ */
163
+ export async function validatePythonProject(projectDir) {
164
+ const missingFiles = [];
165
+ const requiredFiles = [
166
+ 'pyproject.toml',
167
+ 'requirements.txt',
168
+ 'README.md',
169
+ 'src',
170
+ 'tests',
171
+ ];
172
+ for (const file of requiredFiles) {
173
+ const filePath = path.join(projectDir, file);
174
+ try {
175
+ await fs.access(filePath);
176
+ }
177
+ catch {
178
+ missingFiles.push(file);
179
+ }
180
+ }
181
+ return {
182
+ valid: missingFiles.length === 0,
183
+ missingFiles,
184
+ };
185
+ }
186
+ /**
187
+ * Add a new Python module to an existing project
188
+ *
189
+ * @param projectDir - Project directory
190
+ * @param moduleName - Module name
191
+ * @returns Files created
192
+ */
193
+ export async function addPythonModule(projectDir, moduleName) {
194
+ const packageName = toPythonPackageName(moduleName);
195
+ const filesCreated = [];
196
+ // Find the src directory
197
+ const srcDir = path.join(projectDir, 'src');
198
+ const dirs = await fs.readdir(srcDir);
199
+ const packageDir = dirs.find((d) => !d.startsWith('.') && d !== '__init__.py');
200
+ if (!packageDir) {
201
+ throw new Error('Could not find package directory in src/');
202
+ }
203
+ const moduleDir = path.join(srcDir, packageDir, packageName);
204
+ await ensureDir(moduleDir);
205
+ // Create module files
206
+ const initContent = `"""
207
+ ${moduleName} module.
208
+ """
209
+ `;
210
+ await writeFile(path.join(moduleDir, '__init__.py'), initContent);
211
+ filesCreated.push(path.join(moduleDir, '__init__.py'));
212
+ const moduleContent = `"""
213
+ ${moduleName} implementation.
214
+ """
215
+
216
+ import logging
217
+
218
+ logger = logging.getLogger(__name__)
219
+
220
+
221
+ class ${moduleName.charAt(0).toUpperCase() + moduleName.slice(1).replace(/-/g, '')}:
222
+ """
223
+ ${moduleName} class.
224
+ """
225
+
226
+ def __init__(self) -> None:
227
+ """Initialize ${moduleName}."""
228
+ logger.info(f"Initializing {self.__class__.__name__}")
229
+
230
+ def run(self) -> None:
231
+ """
232
+ Run the ${moduleName} logic.
233
+
234
+ This method should be implemented with the actual functionality.
235
+ """
236
+ raise NotImplementedError("Implement this method")
237
+ `;
238
+ await writeFile(path.join(moduleDir, 'module.py'), moduleContent);
239
+ filesCreated.push(path.join(moduleDir, 'module.py'));
240
+ // Create test file
241
+ const testDir = path.join(projectDir, 'tests');
242
+ const testContent = `"""
243
+ Tests for ${moduleName} module.
244
+ """
245
+
246
+ import pytest
247
+
248
+ # from src.${packageDir}.${packageName}.module import ${moduleName.charAt(0).toUpperCase() + moduleName.slice(1).replace(/-/g, '')}
249
+
250
+
251
+ class Test${moduleName.charAt(0).toUpperCase() + moduleName.slice(1).replace(/-/g, '')}:
252
+ """Test cases for ${moduleName}."""
253
+
254
+ def test_placeholder(self) -> None:
255
+ """Placeholder test."""
256
+ assert True
257
+ `;
258
+ await writeFile(path.join(testDir, `test_${packageName}.py`), testContent);
259
+ filesCreated.push(path.join(testDir, `test_${packageName}.py`));
260
+ return filesCreated;
261
+ }
262
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/generators/python.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAY/B;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,OAAe;IACtC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IACxD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAiB,EACjB,SAAiB;IAEjB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IAC9C,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,IAAI,CAAC;QACH,qCAAqC;QACrC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5B,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QAC3D,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAChD,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAE/C,2BAA2B;QAC3B,MAAM,KAAK,GAA6C;YACtD,aAAa;YACb;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC;gBAC7C,OAAO,EAAE,qBAAqB,CAAC,WAAW,CAAC;aAC5C;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC;gBAC/C,OAAO,EAAE,uBAAuB,EAAE;aACnC;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;gBACzC,OAAO,EAAE,iBAAiB,EAAE;aAC7B;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC;gBAC3C,OAAO,EAAE,kBAAkB,EAAE;aAC9B;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;gBACxC,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC;aAChD;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;gBACvC,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC;aACvC;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;gBACzC,OAAO,EAAE,kBAAkB,CAAC,WAAW,CAAC;aACzC;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC;gBACjD,OAAO,EAAE,qBAAqB,CAAC,WAAW,CAAC;aAC5C;YAED,eAAe;YACf;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,CAAC;gBAC9D,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC;aACvC;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC;gBAC1D,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC;aACrC;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC;gBACjD,OAAO,EAAE,iBAAiB;aAC3B;YAED,aAAa;YACb;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,CAAC;gBACnD,OAAO,EAAE,mBAAmB;aAC7B;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,CAAC;gBACnD,OAAO,EAAE,gBAAgB,EAAE;aAC5B;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC;gBACpD,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC;aACvC;YAED,mBAAmB;YACnB;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC;gBAC/C,OAAO,EAAE,EAAE;aACZ;SACF,CAAC;QAEF,kBAAkB;QAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACzC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU;YACV,YAAY;SACb,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU;YACV,YAAY;YACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAErD,OAAO;QACL,gBAAgB;QAChB,kBAAkB;QAClB,YAAY;QACZ,cAAc;QACd,WAAW;QACX,UAAU;QACV,YAAY;QACZ,oBAAoB;QACpB,OAAO,WAAW,cAAc;QAChC,OAAO,WAAW,UAAU;QAC5B,iBAAiB;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,oBAAoB;QACpB,eAAe;KAChB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,UAAkB;IAI5D,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,MAAM,aAAa,GAAG;QACpB,gBAAgB;QAChB,kBAAkB;QAClB,WAAW;QACX,KAAK;QACL,OAAO;KACR,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,YAAY,CAAC,MAAM,KAAK,CAAC;QAChC,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,UAAkB;IAElB,MAAM,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,yBAAyB;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC;IAE/E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IAE3B,sBAAsB;IACtB,MAAM,WAAW,GAAG;EACpB,UAAU;;CAEX,CAAC;IACA,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IAEvD,MAAM,aAAa,GAAG;EACtB,UAAU;;;;;;;;QAQJ,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;;MAE5E,UAAU;;;;wBAIQ,UAAU;;;;;kBAKhB,UAAU;;;;;CAK3B,CAAC;IACA,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;IAClE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAErD,mBAAmB;IACnB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG;YACV,UAAU;;;;;aAKT,UAAU,IAAI,WAAW,kBAAkB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;;;YAGtH,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC9D,UAAU;;;;;CAKjC,CAAC;IACA,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,WAAW,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3E,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,WAAW,KAAK,CAAC,CAAC,CAAC;IAEhE,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Template module exports
3
+ */
4
+ export * as pythonTemplates from './python.js';
5
+ export * as typescriptTemplates from './typescript.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,eAAe,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,mBAAmB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Template module exports
3
+ */
4
+ export * as pythonTemplates from './python.js';
5
+ export * as typescriptTemplates from './typescript.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,eAAe,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,mBAAmB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Python project templates
3
+ * Provides template files for Python project generation
4
+ */
5
+ /**
6
+ * Generate pyproject.toml content
7
+ */
8
+ export declare function generatePyprojectToml(projectName: string): string;
9
+ /**
10
+ * Generate requirements.txt content
11
+ */
12
+ export declare function generateRequirementsTxt(): string;
13
+ /**
14
+ * Generate main __init__.py content
15
+ */
16
+ export declare function generateMainInit(projectName: string): string;
17
+ /**
18
+ * Generate main.py content
19
+ */
20
+ export declare function generateMainPy(projectName: string): string;
21
+ /**
22
+ * Generate conftest.py content
23
+ */
24
+ export declare function generateConftest(): string;
25
+ /**
26
+ * Generate test_main.py content
27
+ */
28
+ export declare function generateTestMain(projectName: string): string;
29
+ /**
30
+ * Generate Dockerfile content
31
+ */
32
+ export declare function generateDockerfile(projectName: string): string;
33
+ /**
34
+ * Generate docker-compose.yml content
35
+ */
36
+ export declare function generateDockerCompose(projectName: string): string;
37
+ /**
38
+ * Generate .gitignore content
39
+ */
40
+ export declare function generateGitignore(): string;
41
+ /**
42
+ * Generate .env.example content
43
+ */
44
+ export declare function generateEnvExample(): string;
45
+ /**
46
+ * Generate README.md content
47
+ */
48
+ export declare function generateReadme(projectName: string, description: string): string;
49
+ /**
50
+ * Generate Makefile content
51
+ */
52
+ export declare function generateMakefile(_projectName: string): string;
53
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/python.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAuDjE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAYhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAS5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA+B1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAoBzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAgC5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAwC9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAyBjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CA6E1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAW3C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyD/E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAgC7D"}