bytarch-cli 0.1.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 (90) hide show
  1. package/.genie-cli/config.json +7 -0
  2. package/.genie-cli/plan.json +10 -0
  3. package/bin/bytarch-cli.js +3 -0
  4. package/dist/commands/apply.d.ts +9 -0
  5. package/dist/commands/apply.d.ts.map +1 -0
  6. package/dist/commands/apply.js +118 -0
  7. package/dist/commands/apply.js.map +1 -0
  8. package/dist/commands/config.d.ts +14 -0
  9. package/dist/commands/config.d.ts.map +1 -0
  10. package/dist/commands/config.js +189 -0
  11. package/dist/commands/config.js.map +1 -0
  12. package/dist/commands/edit.d.ts +8 -0
  13. package/dist/commands/edit.d.ts.map +1 -0
  14. package/dist/commands/edit.js +152 -0
  15. package/dist/commands/edit.js.map +1 -0
  16. package/dist/commands/init.d.ts +6 -0
  17. package/dist/commands/init.d.ts.map +1 -0
  18. package/dist/commands/init.js +89 -0
  19. package/dist/commands/init.js.map +1 -0
  20. package/dist/commands/plan.d.ts +10 -0
  21. package/dist/commands/plan.d.ts.map +1 -0
  22. package/dist/commands/plan.js +173 -0
  23. package/dist/commands/plan.js.map +1 -0
  24. package/dist/commands/review.d.ts +13 -0
  25. package/dist/commands/review.d.ts.map +1 -0
  26. package/dist/commands/review.js +240 -0
  27. package/dist/commands/review.js.map +1 -0
  28. package/dist/commands/status.d.ts +9 -0
  29. package/dist/commands/status.d.ts.map +1 -0
  30. package/dist/commands/status.js +122 -0
  31. package/dist/commands/status.js.map +1 -0
  32. package/dist/fs/patcher.d.ts +19 -0
  33. package/dist/fs/patcher.d.ts.map +1 -0
  34. package/dist/fs/patcher.js +210 -0
  35. package/dist/fs/patcher.js.map +1 -0
  36. package/dist/fs/safe-readwrite.d.ts +20 -0
  37. package/dist/fs/safe-readwrite.d.ts.map +1 -0
  38. package/dist/fs/safe-readwrite.js +146 -0
  39. package/dist/fs/safe-readwrite.js.map +1 -0
  40. package/dist/index.d.ts +3 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +123 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/provider/bytarch.d.ts +26 -0
  45. package/dist/provider/bytarch.d.ts.map +1 -0
  46. package/dist/provider/bytarch.js +54 -0
  47. package/dist/provider/bytarch.js.map +1 -0
  48. package/dist/provider/evaluation.d.ts +5 -0
  49. package/dist/provider/evaluation.d.ts.map +1 -0
  50. package/dist/provider/evaluation.js +40 -0
  51. package/dist/provider/evaluation.js.map +1 -0
  52. package/dist/provider/prompts.d.ts +4 -0
  53. package/dist/provider/prompts.d.ts.map +1 -0
  54. package/dist/provider/prompts.js +61 -0
  55. package/dist/provider/prompts.js.map +1 -0
  56. package/dist/ui/prompts.d.ts +43 -0
  57. package/dist/ui/prompts.d.ts.map +1 -0
  58. package/dist/ui/prompts.js +122 -0
  59. package/dist/ui/prompts.js.map +1 -0
  60. package/dist/workspace/config.d.ts +19 -0
  61. package/dist/workspace/config.d.ts.map +1 -0
  62. package/dist/workspace/config.js +102 -0
  63. package/dist/workspace/config.js.map +1 -0
  64. package/dist/workspace/edits.d.ts +24 -0
  65. package/dist/workspace/edits.d.ts.map +1 -0
  66. package/dist/workspace/edits.js +119 -0
  67. package/dist/workspace/edits.js.map +1 -0
  68. package/dist/workspace/plan.d.ts +29 -0
  69. package/dist/workspace/plan.d.ts.map +1 -0
  70. package/dist/workspace/plan.js +101 -0
  71. package/dist/workspace/plan.js.map +1 -0
  72. package/package.json +52 -0
  73. package/src/commands/apply.ts +91 -0
  74. package/src/commands/config.ts +194 -0
  75. package/src/commands/edit.ts +133 -0
  76. package/src/commands/init.ts +62 -0
  77. package/src/commands/plan.ts +163 -0
  78. package/src/commands/review.ts +242 -0
  79. package/src/commands/status.ts +101 -0
  80. package/src/fs/patcher.ts +188 -0
  81. package/src/fs/safe-readwrite.ts +141 -0
  82. package/src/index.ts +123 -0
  83. package/src/provider/bytarch.ts +75 -0
  84. package/src/provider/evaluation.ts +39 -0
  85. package/src/provider/prompts.ts +59 -0
  86. package/src/ui/prompts.ts +163 -0
  87. package/src/workspace/config.ts +86 -0
  88. package/src/workspace/edits.ts +106 -0
  89. package/src/workspace/plan.ts +92 -0
  90. package/tsconfig.json +36 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.InitCommand = void 0;
37
+ const fs = __importStar(require("fs-extra"));
38
+ const path = __importStar(require("path"));
39
+ const prompts_1 = require("../ui/prompts");
40
+ class InitCommand {
41
+ static async execute(options) {
42
+ const projectRoot = process.cwd();
43
+ const workspacePath = path.join(projectRoot, '.genie-cli');
44
+ if (await fs.pathExists(workspacePath)) {
45
+ if (!options.force) {
46
+ const shouldContinue = await prompts_1.UI.confirm({
47
+ message: 'Workspace already exists. Do you want to reinitialize?',
48
+ default: false
49
+ });
50
+ if (!shouldContinue) {
51
+ prompts_1.UI.info('Initialization cancelled.');
52
+ return;
53
+ }
54
+ }
55
+ await fs.remove(workspacePath);
56
+ prompts_1.UI.warning('Removed existing workspace.');
57
+ }
58
+ await fs.ensureDir(workspacePath);
59
+ await fs.ensureDir(path.join(workspacePath, 'edits'));
60
+ await fs.ensureDir(path.join(workspacePath, 'history'));
61
+ const defaultConfig = {
62
+ provider: 'bytarch',
63
+ endpoint: 'https://api.bytarch.dpdns.org/openai/v1/chat/completions',
64
+ model: 'gpt-5-nano',
65
+ apiKey: '',
66
+ dryRun: true
67
+ };
68
+ await fs.writeJson(path.join(workspacePath, 'config.json'), defaultConfig, { spaces: 2 });
69
+ const defaultPlan = {
70
+ id: 'default',
71
+ title: 'Project Plan',
72
+ description: 'Generated project plan',
73
+ items: [],
74
+ rationale: '',
75
+ createdAt: new Date().toISOString(),
76
+ updatedAt: new Date().toISOString()
77
+ };
78
+ await fs.writeJson(path.join(workspacePath, 'plan.json'), defaultPlan, { spaces: 2 });
79
+ prompts_1.UI.success(`Initialized .genie-cli workspace in ${projectRoot}`);
80
+ prompts_1.UI.info('Next steps:');
81
+ prompts_1.UI.list([
82
+ 'Set your API key: bytarch-cli config --set-api-key YOUR_API_KEY',
83
+ 'Generate a plan: bytarch-cli plan "your project description"',
84
+ 'Propose edits: bytarch-cli edit path/to/file.js "your request"'
85
+ ]);
86
+ }
87
+ }
88
+ exports.InitCommand = InitCommand;
89
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAE7B,2CAAmC;AAEnC,MAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAA4B;QAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAE3D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,MAAM,cAAc,GAAG,MAAM,YAAE,CAAC,OAAO,CAAC;oBACtC,OAAO,EAAE,wDAAwD;oBACjE,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;gBAEH,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,YAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;oBACrC,OAAO;gBACT,CAAC;YACH,CAAC;YAED,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC/B,YAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAClC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;QAExD,MAAM,aAAa,GAAG;YACpB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,0DAA0D;YACpE,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAE1F,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,wBAAwB;YACrC,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAEtF,YAAE,CAAC,OAAO,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAC;QACjE,YAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvB,YAAE,CAAC,IAAI,CAAC;YACN,iEAAiE;YACjE,8DAA8D;YAC9D,gEAAgE;SACjE,CAAC,CAAC;IACL,CAAC;CACF;AAxDD,kCAwDC"}
@@ -0,0 +1,10 @@
1
+ export declare class PlanCommand {
2
+ static execute(description: string | undefined, options: {
3
+ context?: string;
4
+ analyze?: boolean;
5
+ }): Promise<void>;
6
+ private static analyzeProject;
7
+ private static getFilesRecursive;
8
+ private static displayPlan;
9
+ }
10
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAQA,qBAAa,WAAW;WACT,OAAO,CAAC,WAAW,EAAE,MAAM,YAAK,EAAE,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;mBAsE1F,cAAc;mBA6Bd,iBAAiB;IAoBtC,OAAO,CAAC,MAAM,CAAC,WAAW;CAkC3B"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.PlanCommand = void 0;
37
+ const path = __importStar(require("path"));
38
+ const config_1 = require("../workspace/config");
39
+ const plan_1 = require("../workspace/plan");
40
+ const bytarch_1 = require("../provider/bytarch");
41
+ const prompts_1 = require("../provider/prompts");
42
+ const evaluation_1 = require("../provider/evaluation");
43
+ const prompts_2 = require("../ui/prompts");
44
+ class PlanCommand {
45
+ static async execute(description = '', options) {
46
+ const projectRoot = process.cwd();
47
+ const workspacePath = path.join(projectRoot, '.genie-cli');
48
+ const configManager = new config_1.ConfigManager(workspacePath);
49
+ const planManager = new plan_1.PlanManager(workspacePath);
50
+ try {
51
+ const config = await configManager.loadConfig();
52
+ const apiKey = configManager.getApiKey(config);
53
+ if (!description) {
54
+ description = await prompts_2.UI.input({
55
+ message: 'Describe your project or goal:',
56
+ validate: (input) => input.length > 0 || 'Please provide a description'
57
+ });
58
+ }
59
+ prompts_2.UI.header('Generating project plan...');
60
+ const provider = new bytarch_1.BytarchProvider(config.endpoint, config.model, apiKey);
61
+ let contextInfo = '';
62
+ if (options.analyze) {
63
+ contextInfo = await this.analyzeProject(projectRoot);
64
+ }
65
+ if (options.context) {
66
+ try {
67
+ const contextContent = await require('fs-extra').readFile(options.context, 'utf8');
68
+ contextInfo += `\\n\\nAdditional context from ${options.context}:\\n${contextContent}`;
69
+ }
70
+ catch (error) {
71
+ prompts_2.UI.warning(`Could not read context file: ${options.context}`);
72
+ }
73
+ }
74
+ const messages = [
75
+ {
76
+ role: 'system',
77
+ content: prompts_1.PLAN_PROMPT
78
+ },
79
+ {
80
+ role: 'user',
81
+ content: `Project description: ${description}\\n${contextInfo ? `Context:\\n${contextInfo}` : ''}\\n\\nGenerate a comprehensive plan for this project.`
82
+ }
83
+ ];
84
+ const response = await provider.chat(messages);
85
+ const planData = (0, evaluation_1.extractJsonFromResponse)(response);
86
+ if (!(0, evaluation_1.isValidPlanResponse)(planData)) {
87
+ throw new Error('Invalid plan response from AI');
88
+ }
89
+ const plan = {
90
+ ...planData,
91
+ createdAt: new Date().toISOString(),
92
+ updatedAt: new Date().toISOString()
93
+ };
94
+ await planManager.savePlan(plan);
95
+ prompts_2.UI.success('Project plan generated successfully!');
96
+ this.displayPlan(plan);
97
+ }
98
+ catch (error) {
99
+ throw new Error(`Failed to generate plan: ${error instanceof Error ? error.message : 'Unknown error'}`);
100
+ }
101
+ }
102
+ static async analyzeProject(projectRoot) {
103
+ const fs = require('fs-extra');
104
+ const path = require('path');
105
+ const analysis = [];
106
+ try {
107
+ const packageJsonPath = path.join(projectRoot, 'package.json');
108
+ if (await fs.pathExists(packageJsonPath)) {
109
+ const packageJson = await fs.readJson(packageJsonPath);
110
+ analysis.push(`Project: ${packageJson.name || 'Unknown'}`);
111
+ analysis.push(`Scripts: ${Object.keys(packageJson.scripts || {}).join(', ')}`);
112
+ analysis.push(`Dependencies: ${Object.keys(packageJson.dependencies || {}).length}`);
113
+ }
114
+ const srcPath = path.join(projectRoot, 'src');
115
+ if (await fs.pathExists(srcPath)) {
116
+ const files = await this.getFilesRecursive(srcPath);
117
+ const jsFiles = files.filter((f) => f.endsWith('.js') || f.endsWith('.ts'));
118
+ analysis.push(`Source files: ${jsFiles.length} (${jsFiles.map((f) => path.extname(f)).join(', ')})`);
119
+ }
120
+ }
121
+ catch (error) {
122
+ prompts_2.UI.warning('Could not analyze project structure');
123
+ }
124
+ return analysis.join('\\n');
125
+ }
126
+ static async getFilesRecursive(dir) {
127
+ const fs = require('fs-extra');
128
+ const path = require('path');
129
+ let files = [];
130
+ const items = await fs.readdir(dir);
131
+ for (const item of items) {
132
+ const fullPath = path.join(dir, item);
133
+ const stat = await fs.stat(fullPath);
134
+ if (stat.isDirectory()) {
135
+ files = files.concat(await this.getFilesRecursive(fullPath));
136
+ }
137
+ else {
138
+ files.push(fullPath);
139
+ }
140
+ }
141
+ return files;
142
+ }
143
+ static displayPlan(plan) {
144
+ prompts_2.UI.divider();
145
+ prompts_2.UI.header(`📋 ${plan.title}`);
146
+ console.log(plan.description);
147
+ console.log('');
148
+ if (plan.rationale) {
149
+ prompts_2.UI.info('Rationale:');
150
+ console.log(plan.rationale);
151
+ console.log('');
152
+ }
153
+ if (plan.items.length === 0) {
154
+ prompts_2.UI.warning('No tasks in the plan.');
155
+ return;
156
+ }
157
+ console.log('Tasks:');
158
+ plan.items.forEach((item, index) => {
159
+ const status = item.status === 'completed' ? '✓' :
160
+ item.status === 'in_progress' ? '⚡' : '○';
161
+ console.log(`${index + 1}. ${status} ${item.title}`);
162
+ if (item.description) {
163
+ console.log(` ${item.description}`);
164
+ }
165
+ if (item.files && item.files.length > 0) {
166
+ console.log(` Files: ${item.files.join(', ')}`);
167
+ }
168
+ console.log('');
169
+ });
170
+ }
171
+ }
172
+ exports.PlanCommand = PlanCommand;
173
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare class ReviewCommand {
2
+ static execute(options: {
3
+ plan?: boolean;
4
+ edits?: boolean;
5
+ }): Promise<void>;
6
+ private static reviewPlan;
7
+ private static reviewEdits;
8
+ private static managePlanItems;
9
+ private static manageEdits;
10
+ private static previewEdit;
11
+ private static getStatusIcon;
12
+ }
13
+ //# sourceMappingURL=review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAKA,qBAAa,aAAa;WACX,OAAO,CAAC,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;mBA4B5D,UAAU;mBA6CV,WAAW;mBA4CX,eAAe;mBAgDf,WAAW;mBAiDX,WAAW;IAahC,OAAO,CAAC,MAAM,CAAC,aAAa;CAQ7B"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ReviewCommand = void 0;
37
+ const path = __importStar(require("path"));
38
+ const plan_1 = require("../workspace/plan");
39
+ const edits_1 = require("../workspace/edits");
40
+ const prompts_1 = require("../ui/prompts");
41
+ class ReviewCommand {
42
+ static async execute(options) {
43
+ const projectRoot = process.cwd();
44
+ const workspacePath = path.join(projectRoot, '.genie-cli');
45
+ const planManager = new plan_1.PlanManager(workspacePath);
46
+ const editManager = new edits_1.EditManager(workspacePath);
47
+ try {
48
+ const showPlan = !options.edits;
49
+ const showEdits = !options.plan;
50
+ if (showPlan) {
51
+ await this.reviewPlan(planManager);
52
+ }
53
+ if (showEdits) {
54
+ await this.reviewEdits(editManager);
55
+ }
56
+ if (!showPlan && !showEdits) {
57
+ prompts_1.UI.info('Nothing to review.');
58
+ }
59
+ }
60
+ catch (error) {
61
+ throw new Error(`Failed to review: ${error instanceof Error ? error.message : 'Unknown error'}`);
62
+ }
63
+ }
64
+ static async reviewPlan(planManager) {
65
+ prompts_1.UI.header('📋 Plan Review');
66
+ const plan = await planManager.loadPlan();
67
+ if (plan.items.length === 0) {
68
+ prompts_1.UI.warning('No tasks in the plan.');
69
+ return;
70
+ }
71
+ console.log(`Plan: ${plan.title}`);
72
+ console.log(`Tasks: ${plan.items.length}`);
73
+ console.log('');
74
+ for (let i = 0; i < plan.items.length; i++) {
75
+ const item = plan.items[i];
76
+ const status = this.getStatusIcon(item.status);
77
+ console.log(`${i + 1}. ${status} ${item.title}`);
78
+ if (item.description) {
79
+ console.log(` ${item.description}`);
80
+ }
81
+ if (item.files && item.files.length > 0) {
82
+ console.log(` Files: ${item.files.join(', ')}`);
83
+ }
84
+ if (item.rationale) {
85
+ console.log(` Rationale: ${item.rationale}`);
86
+ }
87
+ console.log('');
88
+ }
89
+ const shouldManage = await prompts_1.UI.confirm({
90
+ message: 'Manage plan items?',
91
+ default: false
92
+ });
93
+ if (shouldManage) {
94
+ await this.managePlanItems(planManager, plan);
95
+ }
96
+ }
97
+ static async reviewEdits(editManager) {
98
+ prompts_1.UI.header('📝 Edits Review');
99
+ const edits = await editManager.listEdits();
100
+ if (edits.length === 0) {
101
+ prompts_1.UI.warning('No edits found.');
102
+ return;
103
+ }
104
+ const pendingEdits = edits.filter(e => e.status === 'pending' || e.status === 'accepted');
105
+ if (pendingEdits.length === 0) {
106
+ prompts_1.UI.info('No pending edits to review.');
107
+ return;
108
+ }
109
+ console.log(`Pending edits: ${pendingEdits.length}`);
110
+ console.log('');
111
+ for (let i = 0; i < pendingEdits.length; i++) {
112
+ const edit = pendingEdits[i];
113
+ const status = edit.status === 'accepted' ? '✓' : '○';
114
+ console.log(`${i + 1}. ${status} ${edit.path} (${edit.id})`);
115
+ console.log(` ${edit.description}`);
116
+ if (edit.rationale) {
117
+ console.log(` Rationale: ${edit.rationale}`);
118
+ }
119
+ console.log('');
120
+ }
121
+ const shouldManage = await prompts_1.UI.confirm({
122
+ message: 'Manage edits?',
123
+ default: true
124
+ });
125
+ if (shouldManage) {
126
+ await this.manageEdits(editManager, pendingEdits);
127
+ }
128
+ }
129
+ static async managePlanItems(planManager, plan) {
130
+ const action = await prompts_1.UI.select({
131
+ message: 'What would you like to do?',
132
+ choices: [
133
+ { name: 'Update item status', value: 'status' },
134
+ { name: 'Delete item', value: 'delete' },
135
+ { name: 'Done', value: 'done' }
136
+ ]
137
+ });
138
+ if (action === 'done')
139
+ return;
140
+ const itemIndex = await prompts_1.UI.select({
141
+ message: 'Select item:',
142
+ choices: plan.items.map((item, index) => ({
143
+ name: `${item.title}`,
144
+ value: index
145
+ }))
146
+ });
147
+ const item = plan.items[itemIndex];
148
+ if (action === 'status') {
149
+ const newStatus = await prompts_1.UI.select({
150
+ message: 'Select new status:',
151
+ choices: [
152
+ { name: 'Pending', value: 'pending' },
153
+ { name: 'In Progress', value: 'in_progress' },
154
+ { name: 'Completed', value: 'completed' }
155
+ ],
156
+ default: item.status
157
+ });
158
+ await planManager.updatePlanItem(item.id, { status: newStatus });
159
+ prompts_1.UI.success(`Updated ${item.title} status to ${newStatus}`);
160
+ }
161
+ else if (action === 'delete') {
162
+ const shouldDelete = await prompts_1.UI.confirm({
163
+ message: `Delete "${item.title}"?`,
164
+ default: false
165
+ });
166
+ if (shouldDelete) {
167
+ await planManager.removePlanItem(item.id);
168
+ prompts_1.UI.success(`Deleted ${item.title}`);
169
+ }
170
+ }
171
+ }
172
+ static async manageEdits(editManager, edits) {
173
+ const action = await prompts_1.UI.select({
174
+ message: 'What would you like to do?',
175
+ choices: [
176
+ { name: 'Accept/Reject edit', value: 'status' },
177
+ { name: 'Preview patch', value: 'preview' },
178
+ { name: 'Delete edit', value: 'delete' },
179
+ { name: 'Done', value: 'done' }
180
+ ]
181
+ });
182
+ if (action === 'done')
183
+ return;
184
+ const edit = await prompts_1.UI.select({
185
+ message: 'Select edit:',
186
+ choices: edits.map((e) => ({
187
+ name: `${e.path} - ${e.description}`,
188
+ value: e
189
+ }))
190
+ });
191
+ if (action === 'status') {
192
+ const newStatus = await prompts_1.UI.select({
193
+ message: 'Select status:',
194
+ choices: [
195
+ { name: 'Pending', value: 'pending' },
196
+ { name: 'Accepted', value: 'accepted' },
197
+ { name: 'Rejected', value: 'rejected' }
198
+ ],
199
+ default: edit.status
200
+ });
201
+ await editManager.updateEditStatus(edit.id, newStatus);
202
+ prompts_1.UI.success(`Updated ${edit.path} status to ${newStatus}`);
203
+ }
204
+ else if (action === 'preview') {
205
+ await this.previewEdit(edit);
206
+ }
207
+ else if (action === 'delete') {
208
+ const shouldDelete = await prompts_1.UI.confirm({
209
+ message: `Delete edit for ${edit.path}?`,
210
+ default: false
211
+ });
212
+ if (shouldDelete) {
213
+ await editManager.deleteEdit(edit.id);
214
+ prompts_1.UI.success(`Deleted edit for ${edit.path}`);
215
+ }
216
+ }
217
+ }
218
+ static async previewEdit(edit) {
219
+ const { Patcher } = await Promise.resolve().then(() => __importStar(require('../fs/patcher')));
220
+ const projectRoot = process.cwd();
221
+ const patcher = new Patcher(projectRoot);
222
+ try {
223
+ const preview = await patcher.previewPatch(edit);
224
+ console.log(preview);
225
+ }
226
+ catch (error) {
227
+ prompts_1.UI.error(`Failed to preview patch: ${error instanceof Error ? error.message : 'Unknown error'}`);
228
+ }
229
+ }
230
+ static getStatusIcon(status) {
231
+ switch (status) {
232
+ case 'completed': return '✓';
233
+ case 'in_progress': return '⚡';
234
+ case 'pending': return '○';
235
+ default: return '?';
236
+ }
237
+ }
238
+ }
239
+ exports.ReviewCommand = ReviewCommand;
240
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class StatusCommand {
2
+ static execute(options: {
3
+ verbose?: boolean;
4
+ }): Promise<void>;
5
+ private static displayConfig;
6
+ private static displayPlanStatus;
7
+ private static displayEditStatus;
8
+ }
9
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAMA,qBAAa,aAAa;WACX,OAAO,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BnE,OAAO,CAAC,MAAM,CAAC,aAAa;IAU5B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IA0BhC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CA4BjC"}