ralph-wiggum-ui 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/dist/cli/commands/add.d.ts +10 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/add.js +87 -0
- package/dist/cli/commands/add.js.map +1 -0
- package/dist/cli/commands/init.d.ts +5 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +91 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/list.d.ts +9 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +90 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/run.d.ts +10 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +200 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +10 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +57 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/status.d.ts +5 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +63 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +76 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/lib/config.d.ts +53 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +164 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/index.d.ts +11 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +18 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/logger.d.ts +72 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +159 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/preflight.d.ts +45 -0
- package/dist/lib/preflight.d.ts.map +1 -0
- package/dist/lib/preflight.js +173 -0
- package/dist/lib/preflight.js.map +1 -0
- package/dist/lib/progress.d.ts +41 -0
- package/dist/lib/progress.d.ts.map +1 -0
- package/dist/lib/progress.js +122 -0
- package/dist/lib/progress.js.map +1 -0
- package/dist/lib/tasks.d.ts +77 -0
- package/dist/lib/tasks.d.ts.map +1 -0
- package/dist/lib/tasks.js +259 -0
- package/dist/lib/tasks.js.map +1 -0
- package/dist/lib/templates.d.ts +25 -0
- package/dist/lib/templates.d.ts.map +1 -0
- package/dist/lib/templates.js +86 -0
- package/dist/lib/templates.js.map +1 -0
- package/dist/server/api.d.ts +7 -0
- package/dist/server/api.d.ts.map +1 -0
- package/dist/server/api.js +258 -0
- package/dist/server/api.js.map +1 -0
- package/dist/server/index.d.ts +15 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +59 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/runner.d.ts +15 -0
- package/dist/server/runner.d.ts.map +1 -0
- package/dist/server/runner.js +265 -0
- package/dist/server/runner.js.map +1 -0
- package/dist/types/index.d.ts +129 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +37 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/assets/index-DBOjIoHW.js +137 -0
- package/dist/ui/assets/index-mu6cQFl4.css +1 -0
- package/dist/ui/favicon.svg +3 -0
- package/dist/ui/index.html +14 -0
- package/package.json +78 -0
- package/templates/AGENTS.md +48 -0
- package/templates/prompt.md +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-flight checks to ensure the environment is ready for Ralph Wiggum UI
|
|
3
|
+
*/
|
|
4
|
+
import type { PreflightCheckResult, PreflightResults } from '../types/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Check if Node.js version is 18+
|
|
7
|
+
*/
|
|
8
|
+
export declare function checkNodeVersion(): PreflightCheckResult;
|
|
9
|
+
/**
|
|
10
|
+
* Check if Claude Code CLI is installed
|
|
11
|
+
*/
|
|
12
|
+
export declare function checkClaudeCodeInstalled(): Promise<PreflightCheckResult>;
|
|
13
|
+
/**
|
|
14
|
+
* Check if Git is installed
|
|
15
|
+
*/
|
|
16
|
+
export declare function checkGitInstalled(): Promise<PreflightCheckResult>;
|
|
17
|
+
/**
|
|
18
|
+
* Check if current directory is a Git repository
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkGitRepository(cwd: string): PreflightCheckResult;
|
|
21
|
+
/**
|
|
22
|
+
* Check if .ralph-wiggum-ui directory already exists
|
|
23
|
+
*/
|
|
24
|
+
export declare function checkRalphDirNotExists(cwd: string): PreflightCheckResult;
|
|
25
|
+
/**
|
|
26
|
+
* Check if .ralph-wiggum-ui directory exists (for commands that require it)
|
|
27
|
+
*/
|
|
28
|
+
export declare function checkRalphDirExists(cwd: string): PreflightCheckResult;
|
|
29
|
+
/**
|
|
30
|
+
* Check if package.json exists (to detect project type)
|
|
31
|
+
*/
|
|
32
|
+
export declare function checkPackageJson(cwd: string): PreflightCheckResult;
|
|
33
|
+
/**
|
|
34
|
+
* Get current Git branch
|
|
35
|
+
*/
|
|
36
|
+
export declare function getCurrentBranch(cwd: string): string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Run all pre-flight checks for initialization
|
|
39
|
+
*/
|
|
40
|
+
export declare function runInitPreflightChecks(cwd: string): Promise<PreflightResults>;
|
|
41
|
+
/**
|
|
42
|
+
* Run pre-flight checks for commands that require Ralph to be initialized
|
|
43
|
+
*/
|
|
44
|
+
export declare function runOperationalPreflightChecks(cwd: string): Promise<PreflightResults>;
|
|
45
|
+
//# sourceMappingURL=preflight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/lib/preflight.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGhF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,oBAAoB,CAavD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAiB9E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAiBvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAYpE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAYxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAYrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAYlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,CAAC,CAc3B;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,CAAC,CAW3B"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-flight checks to ensure the environment is ready for Ralph Wiggum UI
|
|
3
|
+
*/
|
|
4
|
+
import { execSync } from 'child_process';
|
|
5
|
+
import { existsSync } from 'fs';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
import which from 'which';
|
|
8
|
+
import { RALPH_DIR } from '../types/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Check if Node.js version is 18+
|
|
11
|
+
*/
|
|
12
|
+
export function checkNodeVersion() {
|
|
13
|
+
const version = process.version;
|
|
14
|
+
const major = parseInt(version.slice(1).split('.')[0] ?? '0', 10);
|
|
15
|
+
const passed = major >= 18;
|
|
16
|
+
return {
|
|
17
|
+
name: 'Node.js version',
|
|
18
|
+
passed,
|
|
19
|
+
message: passed
|
|
20
|
+
? `Node.js ${version} detected`
|
|
21
|
+
: `Node.js 18+ required, found ${version}`,
|
|
22
|
+
required: true,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Check if Claude Code CLI is installed
|
|
27
|
+
*/
|
|
28
|
+
export async function checkClaudeCodeInstalled() {
|
|
29
|
+
try {
|
|
30
|
+
const claudePath = await which('claude');
|
|
31
|
+
return {
|
|
32
|
+
name: 'Claude Code CLI',
|
|
33
|
+
passed: true,
|
|
34
|
+
message: `Claude Code found at ${claudePath}`,
|
|
35
|
+
required: true,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return {
|
|
40
|
+
name: 'Claude Code CLI',
|
|
41
|
+
passed: false,
|
|
42
|
+
message: 'Claude Code CLI not found. Install from https://claude.ai/code',
|
|
43
|
+
required: true,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if Git is installed
|
|
49
|
+
*/
|
|
50
|
+
export async function checkGitInstalled() {
|
|
51
|
+
try {
|
|
52
|
+
const gitPath = await which('git');
|
|
53
|
+
return {
|
|
54
|
+
name: 'Git',
|
|
55
|
+
passed: true,
|
|
56
|
+
message: `Git found at ${gitPath}`,
|
|
57
|
+
required: true,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return {
|
|
62
|
+
name: 'Git',
|
|
63
|
+
passed: false,
|
|
64
|
+
message: 'Git not found. Please install Git.',
|
|
65
|
+
required: true,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Check if current directory is a Git repository
|
|
71
|
+
*/
|
|
72
|
+
export function checkGitRepository(cwd) {
|
|
73
|
+
const gitDir = join(cwd, '.git');
|
|
74
|
+
const isGitRepo = existsSync(gitDir);
|
|
75
|
+
return {
|
|
76
|
+
name: 'Git repository',
|
|
77
|
+
passed: isGitRepo,
|
|
78
|
+
message: isGitRepo
|
|
79
|
+
? 'Git repository detected'
|
|
80
|
+
: 'Not a Git repository. Run `git init` first.',
|
|
81
|
+
required: true,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Check if .ralph-wiggum-ui directory already exists
|
|
86
|
+
*/
|
|
87
|
+
export function checkRalphDirNotExists(cwd) {
|
|
88
|
+
const ralphDir = join(cwd, RALPH_DIR);
|
|
89
|
+
const exists = existsSync(ralphDir);
|
|
90
|
+
return {
|
|
91
|
+
name: 'Ralph directory',
|
|
92
|
+
passed: !exists,
|
|
93
|
+
message: exists
|
|
94
|
+
? `${RALPH_DIR} already exists. Remove it or run from a different directory.`
|
|
95
|
+
: `${RALPH_DIR} will be created`,
|
|
96
|
+
required: true,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Check if .ralph-wiggum-ui directory exists (for commands that require it)
|
|
101
|
+
*/
|
|
102
|
+
export function checkRalphDirExists(cwd) {
|
|
103
|
+
const ralphDir = join(cwd, RALPH_DIR);
|
|
104
|
+
const exists = existsSync(ralphDir);
|
|
105
|
+
return {
|
|
106
|
+
name: 'Ralph initialized',
|
|
107
|
+
passed: exists,
|
|
108
|
+
message: exists
|
|
109
|
+
? `${RALPH_DIR} found`
|
|
110
|
+
: `${RALPH_DIR} not found. Run \`npx ralph-wiggum-ui init\` first.`,
|
|
111
|
+
required: true,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Check if package.json exists (to detect project type)
|
|
116
|
+
*/
|
|
117
|
+
export function checkPackageJson(cwd) {
|
|
118
|
+
const packageJsonPath = join(cwd, 'package.json');
|
|
119
|
+
const exists = existsSync(packageJsonPath);
|
|
120
|
+
return {
|
|
121
|
+
name: 'package.json',
|
|
122
|
+
passed: exists,
|
|
123
|
+
message: exists
|
|
124
|
+
? 'package.json found'
|
|
125
|
+
: 'package.json not found. Some features may be limited.',
|
|
126
|
+
required: false,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get current Git branch
|
|
131
|
+
*/
|
|
132
|
+
export function getCurrentBranch(cwd) {
|
|
133
|
+
try {
|
|
134
|
+
const branch = execSync('git branch --show-current', {
|
|
135
|
+
cwd,
|
|
136
|
+
encoding: 'utf-8',
|
|
137
|
+
}).trim();
|
|
138
|
+
return branch || null;
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Run all pre-flight checks for initialization
|
|
146
|
+
*/
|
|
147
|
+
export async function runInitPreflightChecks(cwd) {
|
|
148
|
+
const checks = [
|
|
149
|
+
checkNodeVersion(),
|
|
150
|
+
await checkClaudeCodeInstalled(),
|
|
151
|
+
await checkGitInstalled(),
|
|
152
|
+
checkGitRepository(cwd),
|
|
153
|
+
checkRalphDirNotExists(cwd),
|
|
154
|
+
checkPackageJson(cwd),
|
|
155
|
+
];
|
|
156
|
+
const requiredChecks = checks.filter((c) => c.required);
|
|
157
|
+
const allPassed = requiredChecks.every((c) => c.passed);
|
|
158
|
+
return { allPassed, checks };
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Run pre-flight checks for commands that require Ralph to be initialized
|
|
162
|
+
*/
|
|
163
|
+
export async function runOperationalPreflightChecks(cwd) {
|
|
164
|
+
const checks = [
|
|
165
|
+
checkRalphDirExists(cwd),
|
|
166
|
+
await checkClaudeCodeInstalled(),
|
|
167
|
+
await checkGitInstalled(),
|
|
168
|
+
];
|
|
169
|
+
const requiredChecks = checks.filter((c) => c.required);
|
|
170
|
+
const allPassed = requiredChecks.every((c) => c.passed);
|
|
171
|
+
return { allPassed, checks };
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/lib/preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress file management for Ralph Wiggum UI
|
|
3
|
+
*
|
|
4
|
+
* The progress.txt file accumulates learnings across task executions,
|
|
5
|
+
* providing context for future iterations.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Create the initial progress file
|
|
9
|
+
*/
|
|
10
|
+
export declare function createProgressFile(cwd: string, project: string): void;
|
|
11
|
+
/**
|
|
12
|
+
* Check if progress file exists
|
|
13
|
+
*/
|
|
14
|
+
export declare function progressFileExists(cwd: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Read the progress file
|
|
17
|
+
*/
|
|
18
|
+
export declare function readProgressFile(cwd: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Append a progress entry for a completed task
|
|
21
|
+
*/
|
|
22
|
+
export declare function appendProgressEntry(cwd: string, entry: {
|
|
23
|
+
taskId: string;
|
|
24
|
+
taskTitle: string;
|
|
25
|
+
summary: string;
|
|
26
|
+
filesChanged?: string[];
|
|
27
|
+
learnings?: string[];
|
|
28
|
+
}): void;
|
|
29
|
+
/**
|
|
30
|
+
* Add a pattern to the Codebase Patterns section
|
|
31
|
+
*/
|
|
32
|
+
export declare function addCodebasePattern(cwd: string, pattern: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Get the Codebase Patterns section
|
|
35
|
+
*/
|
|
36
|
+
export declare function getCodebasePatterns(cwd: string): string[];
|
|
37
|
+
/**
|
|
38
|
+
* Reset the progress file (for a new feature branch)
|
|
39
|
+
*/
|
|
40
|
+
export declare function resetProgressFile(cwd: string, project: string): void;
|
|
41
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/lib/progress.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAmBrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE;IACL,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,GACA,IAAI,CAwBN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAuBrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEpE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress file management for Ralph Wiggum UI
|
|
3
|
+
*
|
|
4
|
+
* The progress.txt file accumulates learnings across task executions,
|
|
5
|
+
* providing context for future iterations.
|
|
6
|
+
*/
|
|
7
|
+
import { readFileSync, writeFileSync, appendFileSync, existsSync } from 'fs';
|
|
8
|
+
import { PROGRESS_FILE } from '../types/index.js';
|
|
9
|
+
import { getRalphFilePath } from './config.js';
|
|
10
|
+
/**
|
|
11
|
+
* Create the initial progress file
|
|
12
|
+
*/
|
|
13
|
+
export function createProgressFile(cwd, project) {
|
|
14
|
+
const filePath = getRalphFilePath(cwd, PROGRESS_FILE);
|
|
15
|
+
const content = `# Ralph Progress Log
|
|
16
|
+
|
|
17
|
+
Project: ${project}
|
|
18
|
+
Started: ${new Date().toISOString()}
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Codebase Patterns
|
|
23
|
+
|
|
24
|
+
<!-- Add reusable patterns discovered during implementation -->
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Progress
|
|
29
|
+
|
|
30
|
+
`;
|
|
31
|
+
writeFileSync(filePath, content, 'utf-8');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if progress file exists
|
|
35
|
+
*/
|
|
36
|
+
export function progressFileExists(cwd) {
|
|
37
|
+
const filePath = getRalphFilePath(cwd, PROGRESS_FILE);
|
|
38
|
+
return existsSync(filePath);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Read the progress file
|
|
42
|
+
*/
|
|
43
|
+
export function readProgressFile(cwd) {
|
|
44
|
+
const filePath = getRalphFilePath(cwd, PROGRESS_FILE);
|
|
45
|
+
if (!existsSync(filePath)) {
|
|
46
|
+
throw new Error(`Progress file not found: ${filePath}`);
|
|
47
|
+
}
|
|
48
|
+
return readFileSync(filePath, 'utf-8');
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Append a progress entry for a completed task
|
|
52
|
+
*/
|
|
53
|
+
export function appendProgressEntry(cwd, entry) {
|
|
54
|
+
const filePath = getRalphFilePath(cwd, PROGRESS_FILE);
|
|
55
|
+
const timestamp = new Date().toISOString().replace('T', ' ').substring(0, 19);
|
|
56
|
+
let content = `\n### ${timestamp} - ${entry.taskId}: ${entry.taskTitle}\n\n`;
|
|
57
|
+
content += `${entry.summary}\n`;
|
|
58
|
+
if (entry.filesChanged && entry.filesChanged.length > 0) {
|
|
59
|
+
content += `\n**Files changed:**\n`;
|
|
60
|
+
for (const file of entry.filesChanged) {
|
|
61
|
+
content += `- ${file}\n`;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (entry.learnings && entry.learnings.length > 0) {
|
|
65
|
+
content += `\n**Learnings for future iterations:**\n`;
|
|
66
|
+
for (const learning of entry.learnings) {
|
|
67
|
+
content += `- ${learning}\n`;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
content += `\n---\n`;
|
|
71
|
+
appendFileSync(filePath, content, 'utf-8');
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Add a pattern to the Codebase Patterns section
|
|
75
|
+
*/
|
|
76
|
+
export function addCodebasePattern(cwd, pattern) {
|
|
77
|
+
const filePath = getRalphFilePath(cwd, PROGRESS_FILE);
|
|
78
|
+
let content = readFileSync(filePath, 'utf-8');
|
|
79
|
+
// Find the Codebase Patterns section and add the pattern
|
|
80
|
+
const patternsMarker = '## Codebase Patterns';
|
|
81
|
+
const progressMarker = '## Progress';
|
|
82
|
+
const patternsIndex = content.indexOf(patternsMarker);
|
|
83
|
+
const progressIndex = content.indexOf(progressMarker);
|
|
84
|
+
if (patternsIndex === -1 || progressIndex === -1) {
|
|
85
|
+
// Fallback: just append
|
|
86
|
+
appendFileSync(filePath, `\n- ${pattern}\n`, 'utf-8');
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// Insert the pattern before the Progress section
|
|
90
|
+
const before = content.substring(0, progressIndex);
|
|
91
|
+
const after = content.substring(progressIndex);
|
|
92
|
+
const newContent = before.trimEnd() + `\n- ${pattern}\n\n` + after;
|
|
93
|
+
writeFileSync(filePath, newContent, 'utf-8');
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get the Codebase Patterns section
|
|
97
|
+
*/
|
|
98
|
+
export function getCodebasePatterns(cwd) {
|
|
99
|
+
const content = readProgressFile(cwd);
|
|
100
|
+
const patternsMarker = '## Codebase Patterns';
|
|
101
|
+
const progressMarker = '## Progress';
|
|
102
|
+
const patternsIndex = content.indexOf(patternsMarker);
|
|
103
|
+
const progressIndex = content.indexOf(progressMarker);
|
|
104
|
+
if (patternsIndex === -1 || progressIndex === -1) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
const patternsSection = content.substring(patternsIndex + patternsMarker.length, progressIndex);
|
|
108
|
+
// Extract bullet points
|
|
109
|
+
const patterns = patternsSection
|
|
110
|
+
.split('\n')
|
|
111
|
+
.filter((line) => line.trim().startsWith('-'))
|
|
112
|
+
.map((line) => line.replace(/^-\s*/, '').trim())
|
|
113
|
+
.filter((line) => line.length > 0);
|
|
114
|
+
return patterns;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Reset the progress file (for a new feature branch)
|
|
118
|
+
*/
|
|
119
|
+
export function resetProgressFile(cwd, project) {
|
|
120
|
+
createProgressFile(cwd, project);
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/lib/progress.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,OAAe;IAC7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG;;WAEP,OAAO;WACP,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;;;;;;;;;CAYlC,CAAC;IACA,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACtD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAW,EACX,KAMC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9E,IAAI,OAAO,GAAG,SAAS,SAAS,MAAM,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,SAAS,MAAM,CAAC;IAC7E,OAAO,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC;IAEhC,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,wBAAwB,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACtC,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,0CAA0C,CAAC;QACtD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACvC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,SAAS,CAAC;IAErB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,OAAe;IAC7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACtD,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE9C,yDAAyD;IACzD,MAAM,cAAc,GAAG,sBAAsB,CAAC;IAC9C,MAAM,cAAc,GAAG,aAAa,CAAC;IAErC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAEtD,IAAI,aAAa,KAAK,CAAC,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;QACjD,wBAAwB;QACxB,cAAc,CAAC,QAAQ,EAAE,OAAO,OAAO,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,iDAAiD;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,OAAO,MAAM,GAAG,KAAK,CAAC;IACnE,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEtC,MAAM,cAAc,GAAG,sBAAsB,CAAC;IAC9C,MAAM,cAAc,GAAG,aAAa,CAAC;IAErC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAEtD,IAAI,aAAa,KAAK,CAAC,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CACvC,aAAa,GAAG,cAAc,CAAC,MAAM,EACrC,aAAa,CACd,CAAC;IAEF,wBAAwB;IACxB,MAAM,QAAQ,GAAG,eAAe;SAC7B,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC7C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SAC/C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAErC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,OAAe;IAC5D,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task (User Story) management for Ralph Wiggum UI
|
|
3
|
+
*/
|
|
4
|
+
import type { PRD, UserStory, TaskStatus, StatusResponse } from '../types/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Generate a new task ID
|
|
7
|
+
*/
|
|
8
|
+
export declare function generateTaskId(existingIds: string[]): string;
|
|
9
|
+
/**
|
|
10
|
+
* Create an empty PRD
|
|
11
|
+
*/
|
|
12
|
+
export declare function createEmptyPRD(project: string, branch: string): PRD;
|
|
13
|
+
/**
|
|
14
|
+
* Load the PRD file
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadPRD(cwd: string): PRD;
|
|
17
|
+
/**
|
|
18
|
+
* Save the PRD file
|
|
19
|
+
*/
|
|
20
|
+
export declare function savePRD(cwd: string, prd: PRD): void;
|
|
21
|
+
/**
|
|
22
|
+
* Check if PRD file exists
|
|
23
|
+
*/
|
|
24
|
+
export declare function prdExists(cwd: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Add a new task to the PRD
|
|
27
|
+
*/
|
|
28
|
+
export declare function addTask(cwd: string, task: Omit<UserStory, 'id' | 'createdAt' | 'status' | 'priority'>): UserStory;
|
|
29
|
+
/**
|
|
30
|
+
* Update an existing task
|
|
31
|
+
*/
|
|
32
|
+
export declare function updateTask(cwd: string, taskId: string, updates: Partial<Omit<UserStory, 'id' | 'createdAt'>>): UserStory;
|
|
33
|
+
/**
|
|
34
|
+
* Delete a task
|
|
35
|
+
*/
|
|
36
|
+
export declare function deleteTask(cwd: string, taskId: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Get all tasks
|
|
39
|
+
*/
|
|
40
|
+
export declare function getAllTasks(cwd: string): UserStory[];
|
|
41
|
+
/**
|
|
42
|
+
* Get tasks by status
|
|
43
|
+
*/
|
|
44
|
+
export declare function getTasksByStatus(cwd: string, status: TaskStatus): UserStory[];
|
|
45
|
+
/**
|
|
46
|
+
* Get the next pending task (highest priority)
|
|
47
|
+
*/
|
|
48
|
+
export declare function getNextTask(cwd: string): UserStory | null;
|
|
49
|
+
/**
|
|
50
|
+
* Get a task by ID
|
|
51
|
+
*/
|
|
52
|
+
export declare function getTaskById(cwd: string, taskId: string): UserStory | null;
|
|
53
|
+
/**
|
|
54
|
+
* Reorder tasks (update priorities)
|
|
55
|
+
*/
|
|
56
|
+
export declare function reorderTasks(cwd: string, taskIds: string[]): void;
|
|
57
|
+
/**
|
|
58
|
+
* Get status summary
|
|
59
|
+
*/
|
|
60
|
+
export declare function getStatusSummary(cwd: string): StatusResponse;
|
|
61
|
+
/**
|
|
62
|
+
* Mark a task as in progress
|
|
63
|
+
*/
|
|
64
|
+
export declare function markTaskInProgress(cwd: string, taskId: string): UserStory;
|
|
65
|
+
/**
|
|
66
|
+
* Mark a task as completed
|
|
67
|
+
*/
|
|
68
|
+
export declare function markTaskCompleted(cwd: string, taskId: string, notes?: string): UserStory;
|
|
69
|
+
/**
|
|
70
|
+
* Mark a task as failed
|
|
71
|
+
*/
|
|
72
|
+
export declare function markTaskFailed(cwd: string, taskId: string, error?: string): UserStory;
|
|
73
|
+
/**
|
|
74
|
+
* Reset a failed task back to pending
|
|
75
|
+
*/
|
|
76
|
+
export declare function resetTask(cwd: string, taskId: string): UserStory;
|
|
77
|
+
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/lib/tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIpF;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAW5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CASnE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAgBxC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAKnD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAG9C;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC,GAChE,SAAS,CAwBX;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GACpD,SAAS,CA4BX;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAU5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAGpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,EAAE,CAG7E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAWzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAajE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAmC5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAEzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAQxF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAQrF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAgBhE"}
|