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.
- package/.genie-cli/config.json +7 -0
- package/.genie-cli/plan.json +10 -0
- package/bin/bytarch-cli.js +3 -0
- package/dist/commands/apply.d.ts +9 -0
- package/dist/commands/apply.d.ts.map +1 -0
- package/dist/commands/apply.js +118 -0
- package/dist/commands/apply.js.map +1 -0
- package/dist/commands/config.d.ts +14 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +189 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/edit.d.ts +8 -0
- package/dist/commands/edit.d.ts.map +1 -0
- package/dist/commands/edit.js +152 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +89 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/plan.d.ts +10 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +173 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/review.d.ts +13 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +240 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +122 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/fs/patcher.d.ts +19 -0
- package/dist/fs/patcher.d.ts.map +1 -0
- package/dist/fs/patcher.js +210 -0
- package/dist/fs/patcher.js.map +1 -0
- package/dist/fs/safe-readwrite.d.ts +20 -0
- package/dist/fs/safe-readwrite.d.ts.map +1 -0
- package/dist/fs/safe-readwrite.js +146 -0
- package/dist/fs/safe-readwrite.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +123 -0
- package/dist/index.js.map +1 -0
- package/dist/provider/bytarch.d.ts +26 -0
- package/dist/provider/bytarch.d.ts.map +1 -0
- package/dist/provider/bytarch.js +54 -0
- package/dist/provider/bytarch.js.map +1 -0
- package/dist/provider/evaluation.d.ts +5 -0
- package/dist/provider/evaluation.d.ts.map +1 -0
- package/dist/provider/evaluation.js +40 -0
- package/dist/provider/evaluation.js.map +1 -0
- package/dist/provider/prompts.d.ts +4 -0
- package/dist/provider/prompts.d.ts.map +1 -0
- package/dist/provider/prompts.js +61 -0
- package/dist/provider/prompts.js.map +1 -0
- package/dist/ui/prompts.d.ts +43 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +122 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/workspace/config.d.ts +19 -0
- package/dist/workspace/config.d.ts.map +1 -0
- package/dist/workspace/config.js +102 -0
- package/dist/workspace/config.js.map +1 -0
- package/dist/workspace/edits.d.ts +24 -0
- package/dist/workspace/edits.d.ts.map +1 -0
- package/dist/workspace/edits.js +119 -0
- package/dist/workspace/edits.js.map +1 -0
- package/dist/workspace/plan.d.ts +29 -0
- package/dist/workspace/plan.d.ts.map +1 -0
- package/dist/workspace/plan.js +101 -0
- package/dist/workspace/plan.js.map +1 -0
- package/package.json +52 -0
- package/src/commands/apply.ts +91 -0
- package/src/commands/config.ts +194 -0
- package/src/commands/edit.ts +133 -0
- package/src/commands/init.ts +62 -0
- package/src/commands/plan.ts +163 -0
- package/src/commands/review.ts +242 -0
- package/src/commands/status.ts +101 -0
- package/src/fs/patcher.ts +188 -0
- package/src/fs/safe-readwrite.ts +141 -0
- package/src/index.ts +123 -0
- package/src/provider/bytarch.ts +75 -0
- package/src/provider/evaluation.ts +39 -0
- package/src/provider/prompts.ts +59 -0
- package/src/ui/prompts.ts +163 -0
- package/src/workspace/config.ts +86 -0
- package/src/workspace/edits.ts +106 -0
- package/src/workspace/plan.ts +92 -0
- package/tsconfig.json +36 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import * as fs from 'fs-extra';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
|
|
4
|
+
export interface PlanItem {
|
|
5
|
+
id: string;
|
|
6
|
+
title: string;
|
|
7
|
+
description: string;
|
|
8
|
+
status: 'pending' | 'in_progress' | 'completed';
|
|
9
|
+
rationale?: string;
|
|
10
|
+
files?: string[];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface Plan {
|
|
14
|
+
id: string;
|
|
15
|
+
title: string;
|
|
16
|
+
description: string;
|
|
17
|
+
items: PlanItem[];
|
|
18
|
+
rationale: string;
|
|
19
|
+
createdAt: string;
|
|
20
|
+
updatedAt: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export class PlanManager {
|
|
24
|
+
private workspacePath: string;
|
|
25
|
+
private planPath: string;
|
|
26
|
+
|
|
27
|
+
constructor(workspacePath: string) {
|
|
28
|
+
this.workspacePath = workspacePath;
|
|
29
|
+
this.planPath = path.join(workspacePath, 'plan.json');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async loadPlan(): Promise<Plan> {
|
|
33
|
+
try {
|
|
34
|
+
if (await fs.pathExists(this.planPath)) {
|
|
35
|
+
const data = await fs.readJson(this.planPath);
|
|
36
|
+
return data;
|
|
37
|
+
}
|
|
38
|
+
} catch (error) {
|
|
39
|
+
console.warn('Failed to load plan, creating default:', error);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return this.createDefaultPlan();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async savePlan(plan: Plan): Promise<void> {
|
|
46
|
+
plan.updatedAt = new Date().toISOString();
|
|
47
|
+
await fs.writeJson(this.planPath, plan, { spaces: 2 });
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async updatePlanItem(itemId: string, updates: Partial<PlanItem>): Promise<Plan> {
|
|
51
|
+
const plan = await this.loadPlan();
|
|
52
|
+
|
|
53
|
+
const updateItem = (items: PlanItem[]): PlanItem[] => {
|
|
54
|
+
return items.map(item => {
|
|
55
|
+
if (item.id === itemId) {
|
|
56
|
+
return { ...item, ...updates };
|
|
57
|
+
}
|
|
58
|
+
return item;
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
plan.items = updateItem(plan.items);
|
|
63
|
+
await this.savePlan(plan);
|
|
64
|
+
return plan;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
async addPlanItem(item: PlanItem): Promise<Plan> {
|
|
68
|
+
const plan = await this.loadPlan();
|
|
69
|
+
plan.items.push(item);
|
|
70
|
+
await this.savePlan(plan);
|
|
71
|
+
return plan;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async removePlanItem(itemId: string): Promise<Plan> {
|
|
75
|
+
const plan = await this.loadPlan();
|
|
76
|
+
plan.items = plan.items.filter(item => item.id !== itemId);
|
|
77
|
+
await this.savePlan(plan);
|
|
78
|
+
return plan;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
private createDefaultPlan(): Plan {
|
|
82
|
+
return {
|
|
83
|
+
id: 'default',
|
|
84
|
+
title: 'Project Plan',
|
|
85
|
+
description: 'Generated project plan',
|
|
86
|
+
items: [],
|
|
87
|
+
rationale: '',
|
|
88
|
+
createdAt: new Date().toISOString(),
|
|
89
|
+
updatedAt: new Date().toISOString()
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"lib": ["ES2022"],
|
|
6
|
+
"outDir": "./dist",
|
|
7
|
+
"rootDir": "./src",
|
|
8
|
+
"strict": true,
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
"forceConsistentCasingInFileNames": true,
|
|
12
|
+
"declaration": true,
|
|
13
|
+
"declarationMap": true,
|
|
14
|
+
"sourceMap": true,
|
|
15
|
+
"removeComments": false,
|
|
16
|
+
"noImplicitAny": true,
|
|
17
|
+
"strictNullChecks": true,
|
|
18
|
+
"strictFunctionTypes": true,
|
|
19
|
+
"noImplicitReturns": true,
|
|
20
|
+
"noFallthroughCasesInSwitch": true,
|
|
21
|
+
"moduleResolution": "node",
|
|
22
|
+
"allowSyntheticDefaultImports": true,
|
|
23
|
+
"experimentalDecorators": true,
|
|
24
|
+
"emitDecoratorMetadata": true,
|
|
25
|
+
"resolveJsonModule": true
|
|
26
|
+
},
|
|
27
|
+
"include": [
|
|
28
|
+
"src/**/*"
|
|
29
|
+
],
|
|
30
|
+
"exclude": [
|
|
31
|
+
"node_modules",
|
|
32
|
+
"dist",
|
|
33
|
+
"**/*.test.ts",
|
|
34
|
+
"**/*.spec.ts"
|
|
35
|
+
]
|
|
36
|
+
}
|