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 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Create command
3
+ * One-shot project creation from an idea
4
+ */
5
+ import { Command } from 'commander';
6
+ /**
7
+ * Create the create command
8
+ */
9
+ export declare function createCreateCommand(): Command;
10
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/create.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAmM7C"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Create command
3
+ * One-shot project creation from an idea
4
+ */
5
+ import { Command } from 'commander';
6
+ import path from 'node:path';
7
+ import { ProjectSpecSchema } from '../../types/project.js';
8
+ import { requireAuth } from '../../auth/index.js';
9
+ import { runWorkflow } from '../../workflow/index.js';
10
+ import { generateProject, projectDirExists, cleanupProject } from '../../generators/index.js';
11
+ import { printHeader, printSection, printSuccess, printError, printWarning, printInfo, printKeyValue, printConsensusResult, startSpinner, updateSpinner, succeedSpinner, failSpinner, stopSpinner, } from '../output.js';
12
+ /**
13
+ * Create the create command
14
+ */
15
+ export function createCreateCommand() {
16
+ const create = new Command('create')
17
+ .description('Create a new project from an idea')
18
+ .argument('<idea>', 'Project idea or description')
19
+ .option('-n, --name <name>', 'Project name')
20
+ .option('-l, --language <lang>', 'Output language (python, typescript)', 'python')
21
+ .option('-m, --model <model>', 'OpenAI model for consensus (gpt-4o, gpt-4o-mini, o1-preview)', 'gpt-4o')
22
+ .option('-o, --output <dir>', 'Output directory', process.cwd())
23
+ .option('--threshold <percent>', 'Consensus threshold percentage', '95')
24
+ .option('--max-iterations <count>', 'Maximum consensus iterations', '5')
25
+ .option('--skip-scaffold', 'Skip initial project scaffolding')
26
+ .action(async (idea, options) => {
27
+ try {
28
+ // Validate inputs
29
+ const language = options.language;
30
+ if (!['python', 'typescript'].includes(language)) {
31
+ printError(`Invalid language: ${language}. Use 'python' or 'typescript'.`);
32
+ process.exit(1);
33
+ }
34
+ const model = options.model;
35
+ const validModels = ['gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'o1-preview', 'o1-mini'];
36
+ if (!validModels.includes(model)) {
37
+ printError(`Invalid model: ${model}. Use one of: ${validModels.join(', ')}`);
38
+ process.exit(1);
39
+ }
40
+ // Generate project name from idea if not provided
41
+ const projectName = options.name || generateProjectName(idea);
42
+ const outputDir = path.resolve(options.output);
43
+ const projectDir = path.join(outputDir, projectName);
44
+ const threshold = parseInt(options.threshold, 10);
45
+ const maxIterations = parseInt(options.maxIterations, 10);
46
+ // Validate project spec
47
+ const specResult = ProjectSpecSchema.safeParse({
48
+ idea,
49
+ name: projectName,
50
+ language,
51
+ openaiModel: model,
52
+ outputDir,
53
+ });
54
+ if (!specResult.success) {
55
+ printError(`Invalid project specification: ${specResult.error.message}`);
56
+ process.exit(1);
57
+ }
58
+ const spec = specResult.data;
59
+ // Print header
60
+ printHeader('Popeye CLI - Project Creation');
61
+ printSection('Project Configuration');
62
+ printKeyValue('Name', projectName);
63
+ printKeyValue('Language', language);
64
+ printKeyValue('Model', model);
65
+ printKeyValue('Output', projectDir);
66
+ printKeyValue('Threshold', `${threshold}%`);
67
+ console.log();
68
+ printSection('Idea');
69
+ console.log(` ${idea}`);
70
+ console.log();
71
+ // Check if directory exists
72
+ if (await projectDirExists(projectDir)) {
73
+ printWarning(`Directory already exists: ${projectDir}`);
74
+ printInfo('Use a different name or output directory');
75
+ process.exit(1);
76
+ }
77
+ // Require authentication
78
+ printSection('Authentication');
79
+ startSpinner('Checking authentication...');
80
+ try {
81
+ await requireAuth();
82
+ succeedSpinner('Authentication verified');
83
+ }
84
+ catch (error) {
85
+ failSpinner('Authentication required');
86
+ printError(error instanceof Error ? error.message : 'Authentication failed');
87
+ process.exit(1);
88
+ }
89
+ // Generate project scaffold
90
+ if (!options.skipScaffold) {
91
+ printSection('Project Scaffolding');
92
+ startSpinner('Creating project structure...');
93
+ const scaffoldResult = await generateProject(spec, outputDir);
94
+ if (!scaffoldResult.success) {
95
+ failSpinner('Scaffolding failed');
96
+ printError(scaffoldResult.error || 'Failed to create project structure');
97
+ process.exit(1);
98
+ }
99
+ succeedSpinner(`Created ${scaffoldResult.filesCreated.length} files`);
100
+ }
101
+ // Run the workflow
102
+ printSection('Workflow Execution');
103
+ const workflowResult = await runWorkflow(spec, {
104
+ projectDir,
105
+ consensusConfig: {
106
+ threshold,
107
+ maxIterations,
108
+ openaiModel: model,
109
+ },
110
+ onProgress: (phase, message) => {
111
+ handleProgressUpdate(phase, message);
112
+ },
113
+ });
114
+ // Stop any running spinner
115
+ stopSpinner();
116
+ // Print results
117
+ console.log();
118
+ if (workflowResult.success) {
119
+ printHeader('Project Created Successfully!');
120
+ printSection('Summary');
121
+ printKeyValue('Location', projectDir);
122
+ printKeyValue('Language', language);
123
+ if (workflowResult.planResult?.consensusResult) {
124
+ printKeyValue('Final Consensus', `${workflowResult.planResult.consensusResult.finalScore}%`);
125
+ printKeyValue('Iterations', workflowResult.planResult.consensusResult.totalIterations.toString());
126
+ }
127
+ if (workflowResult.executionResult) {
128
+ printKeyValue('Tasks Completed', workflowResult.executionResult.completedTasks.toString());
129
+ }
130
+ console.log();
131
+ printSuccess('Your project is ready!');
132
+ console.log();
133
+ printInfo(`cd ${projectDir}`);
134
+ printInfo(language === 'python' ? 'python -m pytest tests/' : 'npm test');
135
+ }
136
+ else {
137
+ printHeader('Project Creation Failed');
138
+ if (workflowResult.error) {
139
+ printError(workflowResult.error);
140
+ }
141
+ if (workflowResult.planResult?.consensusResult) {
142
+ printSection('Consensus Status');
143
+ printConsensusResult(workflowResult.planResult.consensusResult.iterations[workflowResult.planResult.consensusResult.iterations.length - 1]?.result || { score: 0, analysis: '', approved: false, rawResponse: '' });
144
+ }
145
+ // Cleanup on failure
146
+ printWarning('Cleaning up failed project...');
147
+ await cleanupProject(projectDir);
148
+ process.exit(1);
149
+ }
150
+ }
151
+ catch (error) {
152
+ stopSpinner();
153
+ printError(error instanceof Error ? error.message : 'Unknown error');
154
+ process.exit(1);
155
+ }
156
+ });
157
+ return create;
158
+ }
159
+ /**
160
+ * Generate a project name from an idea
161
+ */
162
+ function generateProjectName(idea) {
163
+ // Take first few words, lowercase, replace spaces with hyphens
164
+ return idea
165
+ .toLowerCase()
166
+ .replace(/[^a-z0-9\s]/g, '')
167
+ .split(/\s+/)
168
+ .slice(0, 3)
169
+ .join('-')
170
+ .substring(0, 30) || 'my-project';
171
+ }
172
+ /**
173
+ * Handle progress updates from the workflow
174
+ */
175
+ let currentSpinner = null;
176
+ let lastPhase = '';
177
+ function handleProgressUpdate(phase, message) {
178
+ // Map phases to user-friendly names
179
+ const phaseNames = {
180
+ 'plan-init': 'Initializing',
181
+ 'expand-idea': 'Expanding Idea',
182
+ 'get-context': 'Analyzing Context',
183
+ 'create-plan': 'Creating Plan',
184
+ 'consensus': 'Consensus Review',
185
+ 'execution-start': 'Starting Execution',
186
+ 'task-start': 'Executing Task',
187
+ 'task-complete': 'Task Complete',
188
+ 'task-failed': 'Task Failed',
189
+ 'execution-complete': 'Execution Complete',
190
+ 'complete': 'Complete',
191
+ 'failed': 'Failed',
192
+ 'error': 'Error',
193
+ 'workflow': 'Workflow',
194
+ };
195
+ const phaseName = phaseNames[phase] || phase;
196
+ // Handle phase transitions
197
+ if (phase !== lastPhase) {
198
+ if (currentSpinner) {
199
+ if (phase === 'error' || phase === 'failed') {
200
+ failSpinner();
201
+ }
202
+ else {
203
+ succeedSpinner();
204
+ }
205
+ }
206
+ if (!['complete', 'failed', 'error', 'task-complete', 'task-failed'].includes(phase)) {
207
+ currentSpinner = startSpinner(`${phaseName}: ${message}`);
208
+ }
209
+ lastPhase = phase;
210
+ }
211
+ else if (currentSpinner) {
212
+ updateSpinner(`${phaseName}: ${message}`);
213
+ }
214
+ // Handle terminal phases
215
+ if (phase === 'complete') {
216
+ if (currentSpinner) {
217
+ succeedSpinner(message);
218
+ currentSpinner = null;
219
+ }
220
+ else {
221
+ printSuccess(message);
222
+ }
223
+ }
224
+ else if (phase === 'failed' || phase === 'error') {
225
+ if (currentSpinner) {
226
+ failSpinner(message);
227
+ currentSpinner = null;
228
+ }
229
+ else {
230
+ printError(message);
231
+ }
232
+ }
233
+ else if (phase === 'task-complete') {
234
+ printSuccess(message);
235
+ }
236
+ else if (phase === 'task-failed') {
237
+ printError(message);
238
+ }
239
+ }
240
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cli/commands/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI commands index
3
+ * Exports all command creators
4
+ */
5
+ export { createAuthCommand } from './auth.js';
6
+ export { createCreateCommand } from './create.js';
7
+ export { createStatusCommand, createValidateCommand, createSummaryCommand } from './status.js';
8
+ export { createResumeCommand, createResetCommand, createCancelCommand } from './resume.js';
9
+ export { createConfigCommand } from './config.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI commands index
3
+ * Exports all command creators
4
+ */
5
+ export { createAuthCommand } from './auth.js';
6
+ export { createCreateCommand } from './create.js';
7
+ export { createStatusCommand, createValidateCommand, createSummaryCommand } from './status.js';
8
+ export { createResumeCommand, createResetCommand, createCancelCommand } from './resume.js';
9
+ export { createConfigCommand } from './config.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Resume command
3
+ * Resume an interrupted workflow
4
+ */
5
+ import { Command } from 'commander';
6
+ /**
7
+ * Create the resume command
8
+ */
9
+ export declare function createResumeCommand(): Command;
10
+ /**
11
+ * Create the reset command
12
+ */
13
+ export declare function createResetCommand(): Command;
14
+ /**
15
+ * Create the cancel command
16
+ */
17
+ export declare function createCancelCommand(): Command;
18
+ //# sourceMappingURL=resume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/resume.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAgH7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CA8C5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAyC7C"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Resume command
3
+ * Resume an interrupted workflow
4
+ */
5
+ import { Command } from 'commander';
6
+ import path from 'node:path';
7
+ import { requireAuth } from '../../auth/index.js';
8
+ import { resumeWorkflow, getWorkflowStatus, resetWorkflow, cancelWorkflow, } from '../../workflow/index.js';
9
+ import { printHeader, printSection, printSuccess, printError, printWarning, printInfo, printKeyValue, startSpinner, updateSpinner, succeedSpinner, failSpinner, stopSpinner, } from '../output.js';
10
+ /**
11
+ * Create the resume command
12
+ */
13
+ export function createResumeCommand() {
14
+ const resume = new Command('resume')
15
+ .description('Resume an interrupted project workflow')
16
+ .argument('[directory]', 'Project directory', '.')
17
+ .option('--threshold <percent>', 'Consensus threshold percentage', '95')
18
+ .option('--max-iterations <count>', 'Maximum consensus iterations', '5')
19
+ .option('--max-retries <count>', 'Maximum task retries', '3')
20
+ .action(async (directory, options) => {
21
+ const projectDir = path.resolve(directory);
22
+ const threshold = parseInt(options.threshold, 10);
23
+ const maxIterations = parseInt(options.maxIterations, 10);
24
+ const maxRetries = parseInt(options.maxRetries, 10);
25
+ try {
26
+ // Check project exists
27
+ const status = await getWorkflowStatus(projectDir);
28
+ if (!status.exists || !status.state) {
29
+ printError('No project found at this location');
30
+ printInfo('Run "popeye-cli create <idea>" to create a new project');
31
+ process.exit(1);
32
+ }
33
+ printHeader(`Resuming: ${status.state.name}`);
34
+ printSection('Current State');
35
+ printKeyValue('Phase', status.state.phase);
36
+ printKeyValue('Status', status.state.status);
37
+ if (status.progress) {
38
+ printKeyValue('Progress', `${status.progress.percentComplete}%`);
39
+ }
40
+ if (status.state.status === 'complete') {
41
+ printSuccess('Project is already complete!');
42
+ return;
43
+ }
44
+ // Require authentication
45
+ printSection('Authentication');
46
+ startSpinner('Checking authentication...');
47
+ try {
48
+ await requireAuth();
49
+ succeedSpinner('Authentication verified');
50
+ }
51
+ catch (error) {
52
+ failSpinner('Authentication required');
53
+ printError(error instanceof Error ? error.message : 'Authentication failed');
54
+ process.exit(1);
55
+ }
56
+ // Resume workflow
57
+ printSection('Resuming Workflow');
58
+ const result = await resumeWorkflow(projectDir, {
59
+ consensusConfig: {
60
+ threshold,
61
+ maxIterations,
62
+ },
63
+ maxRetries,
64
+ onProgress: (phase, message) => {
65
+ handleProgressUpdate(phase, message);
66
+ },
67
+ });
68
+ // Stop any running spinner
69
+ stopSpinner();
70
+ // Print results
71
+ console.log();
72
+ if (result.success) {
73
+ printHeader('Workflow Complete!');
74
+ printSection('Summary');
75
+ printKeyValue('Phase', result.state.phase);
76
+ printKeyValue('Status', result.state.status);
77
+ if (result.executionResult) {
78
+ printKeyValue('Tasks Completed', result.executionResult.completedTasks.toString());
79
+ }
80
+ printSuccess('Project workflow completed successfully!');
81
+ }
82
+ else {
83
+ printHeader('Workflow Failed');
84
+ if (result.error) {
85
+ printError(result.error);
86
+ }
87
+ printWarning('Run "popeye-cli resume" to try again');
88
+ process.exit(1);
89
+ }
90
+ }
91
+ catch (error) {
92
+ stopSpinner();
93
+ printError(error instanceof Error ? error.message : 'Unknown error');
94
+ process.exit(1);
95
+ }
96
+ });
97
+ return resume;
98
+ }
99
+ /**
100
+ * Create the reset command
101
+ */
102
+ export function createResetCommand() {
103
+ const reset = new Command('reset')
104
+ .description('Reset project to a specific phase')
105
+ .argument('[directory]', 'Project directory', '.')
106
+ .option('-p, --phase <phase>', 'Phase to reset to (plan, execution)', 'plan')
107
+ .option('-f, --force', 'Force reset without confirmation')
108
+ .action(async (directory, options) => {
109
+ const projectDir = path.resolve(directory);
110
+ const phase = options.phase;
111
+ if (!['plan', 'execution'].includes(phase)) {
112
+ printError(`Invalid phase: ${phase}. Use 'plan' or 'execution'.`);
113
+ process.exit(1);
114
+ }
115
+ try {
116
+ // Check project exists
117
+ const status = await getWorkflowStatus(projectDir);
118
+ if (!status.exists || !status.state) {
119
+ printError('No project found at this location');
120
+ process.exit(1);
121
+ }
122
+ if (!options.force) {
123
+ printWarning(`This will reset the project to the '${phase}' phase.`);
124
+ printWarning('A backup will be created before reset.');
125
+ printInfo('Use --force to skip this warning.');
126
+ // In a real implementation, we'd prompt for confirmation here
127
+ }
128
+ startSpinner(`Resetting to ${phase} phase...`);
129
+ await resetWorkflow(projectDir, phase);
130
+ succeedSpinner(`Reset to ${phase} phase`);
131
+ printSuccess('Project has been reset');
132
+ printInfo('Run "popeye-cli resume" to continue');
133
+ }
134
+ catch (error) {
135
+ failSpinner('Reset failed');
136
+ printError(error instanceof Error ? error.message : 'Unknown error');
137
+ process.exit(1);
138
+ }
139
+ });
140
+ return reset;
141
+ }
142
+ /**
143
+ * Create the cancel command
144
+ */
145
+ export function createCancelCommand() {
146
+ const cancel = new Command('cancel')
147
+ .description('Cancel and delete a project')
148
+ .argument('[directory]', 'Project directory', '.')
149
+ .option('-f, --force', 'Force cancel without confirmation')
150
+ .action(async (directory, options) => {
151
+ const projectDir = path.resolve(directory);
152
+ try {
153
+ // Check project exists
154
+ const status = await getWorkflowStatus(projectDir);
155
+ if (!status.exists) {
156
+ printError('No project found at this location');
157
+ process.exit(1);
158
+ }
159
+ if (!options.force) {
160
+ printWarning('This will delete all project state and cannot be undone.');
161
+ printInfo('Use --force to skip this warning.');
162
+ // In a real implementation, we'd prompt for confirmation here
163
+ }
164
+ startSpinner('Cancelling project...');
165
+ const deleted = await cancelWorkflow(projectDir);
166
+ if (deleted) {
167
+ succeedSpinner('Project cancelled');
168
+ printSuccess('Project state has been deleted');
169
+ }
170
+ else {
171
+ failSpinner('No state to delete');
172
+ }
173
+ }
174
+ catch (error) {
175
+ failSpinner('Cancel failed');
176
+ printError(error instanceof Error ? error.message : 'Unknown error');
177
+ process.exit(1);
178
+ }
179
+ });
180
+ return cancel;
181
+ }
182
+ /**
183
+ * Handle progress updates from the workflow
184
+ */
185
+ let currentSpinner = null;
186
+ let lastPhase = '';
187
+ function handleProgressUpdate(phase, message) {
188
+ const phaseNames = {
189
+ 'plan-init': 'Initializing',
190
+ 'expand-idea': 'Expanding Idea',
191
+ 'get-context': 'Analyzing Context',
192
+ 'create-plan': 'Creating Plan',
193
+ 'consensus': 'Consensus Review',
194
+ 'execution-start': 'Starting Execution',
195
+ 'task-start': 'Executing Task',
196
+ 'task-complete': 'Task Complete',
197
+ 'task-failed': 'Task Failed',
198
+ 'execution-complete': 'Execution Complete',
199
+ 'complete': 'Complete',
200
+ 'failed': 'Failed',
201
+ 'error': 'Error',
202
+ 'workflow': 'Workflow',
203
+ };
204
+ const phaseName = phaseNames[phase] || phase;
205
+ if (phase !== lastPhase) {
206
+ if (currentSpinner) {
207
+ if (phase === 'error' || phase === 'failed') {
208
+ failSpinner();
209
+ }
210
+ else {
211
+ succeedSpinner();
212
+ }
213
+ }
214
+ if (!['complete', 'failed', 'error', 'task-complete', 'task-failed'].includes(phase)) {
215
+ currentSpinner = startSpinner(`${phaseName}: ${message}`);
216
+ }
217
+ lastPhase = phase;
218
+ }
219
+ else if (currentSpinner) {
220
+ updateSpinner(`${phaseName}: ${message}`);
221
+ }
222
+ if (phase === 'complete') {
223
+ if (currentSpinner) {
224
+ succeedSpinner(message);
225
+ currentSpinner = null;
226
+ }
227
+ else {
228
+ printSuccess(message);
229
+ }
230
+ }
231
+ else if (phase === 'failed' || phase === 'error') {
232
+ if (currentSpinner) {
233
+ failSpinner(message);
234
+ currentSpinner = null;
235
+ }
236
+ else {
237
+ printError(message);
238
+ }
239
+ }
240
+ }
241
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/cli/commands/resume.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Status command
3
+ * Shows project status and progress
4
+ */
5
+ import { Command } from 'commander';
6
+ /**
7
+ * Create the status command
8
+ */
9
+ export declare function createStatusCommand(): Command;
10
+ /**
11
+ * Create the validate command
12
+ */
13
+ export declare function createValidateCommand(): Command;
14
+ /**
15
+ * Create the summary command
16
+ */
17
+ export declare function createSummaryCommand(): Command;
18
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAoG7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CA+B/C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAiB9C"}