ralph-teams 1.0.8 → 1.0.10
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/README.md +24 -11
- package/dist/commands/init.d.ts +4 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +17 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +39 -2
- package/dist/config.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,14 +24,25 @@ ralph-teams run
|
|
|
24
24
|
```mermaid
|
|
25
25
|
flowchart TB
|
|
26
26
|
A[User runs Ralph] --> B[Validate PRD and tools]
|
|
27
|
-
B --> C[
|
|
28
|
-
C --> D[
|
|
29
|
-
D --> E[
|
|
30
|
-
E --> F[
|
|
31
|
-
F --> G[
|
|
32
|
-
G --> H
|
|
33
|
-
H
|
|
34
|
-
|
|
27
|
+
B --> C[Create loop branch]
|
|
28
|
+
C --> D[Pick next ready epic]
|
|
29
|
+
D --> E[Create epic worktree & branch]
|
|
30
|
+
E --> F[Start one agent team for that epic]
|
|
31
|
+
F --> G[Plan if needed]
|
|
32
|
+
G --> H[Build and validate each story]
|
|
33
|
+
H --> I{Story result?}
|
|
34
|
+
I -->|Pass| J[Update PRD state]
|
|
35
|
+
I -->|Fail| K[Log failure, continue]
|
|
36
|
+
J --> L{More stories in epic?}
|
|
37
|
+
L -->|Yes| H
|
|
38
|
+
L -->|No| M[Merge epic branch back to loop]
|
|
39
|
+
M --> N{Merge conflict?}
|
|
40
|
+
N -->|Yes| O[Spawn merger agent to resolve]
|
|
41
|
+
N -->|No| P[Epic complete]
|
|
42
|
+
O --> P
|
|
43
|
+
P --> Q{More ready epics?}
|
|
44
|
+
Q -->|Yes| D
|
|
45
|
+
Q -->|No| R[Finish run]
|
|
35
46
|
```
|
|
36
47
|
|
|
37
48
|
# Quick Start:
|
|
@@ -169,7 +180,7 @@ Run `ralph.sh` directly when you want shell-level flags:
|
|
|
169
180
|
|
|
170
181
|
### `ralph-teams init`
|
|
171
182
|
|
|
172
|
-
Creates a new `prd.json` interactively in the current directory by launching an AI PRD-creator session.
|
|
183
|
+
Creates a new `prd.json` interactively in the current directory by launching an AI PRD-creator session. If `ralph.config.yml` does not already exist, `init` also creates it as a commented default template.
|
|
173
184
|
|
|
174
185
|
```bash
|
|
175
186
|
ralph-teams init
|
|
@@ -184,12 +195,14 @@ Flow:
|
|
|
184
195
|
2. the agent discusses the product with you directly
|
|
185
196
|
3. the agent asks follow-up questions until the requirements are clear
|
|
186
197
|
4. the agent generates the full `prd.json` with project metadata, epics, and user stories
|
|
187
|
-
5.
|
|
188
|
-
6.
|
|
198
|
+
5. `init` bootstraps `./ralph.config.yml` with the default commented configuration if the file is missing
|
|
199
|
+
6. the agent writes `./prd.json`
|
|
200
|
+
7. after writing the PRD, the init agent can either continue into implementation planning with you or stop there if you want to skip planning for now
|
|
189
201
|
|
|
190
202
|
Notes:
|
|
191
203
|
|
|
192
204
|
- `init` is grounded by `prd.json.example`
|
|
205
|
+
- `init` does not overwrite an existing `ralph.config.yml`
|
|
193
206
|
- the agent generates epics and user stories automatically
|
|
194
207
|
- the agent should aim for about 5 user stories per epic when the scope supports it
|
|
195
208
|
- `--backend` controls whether the interview/generation uses `claude`, `copilot`, or `codex`
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -2,6 +2,10 @@ interface InitOptions {
|
|
|
2
2
|
backend?: string;
|
|
3
3
|
}
|
|
4
4
|
export declare function buildInitPrompt(prdExample: string, outputPath: string): string;
|
|
5
|
+
export declare function ensureDefaultConfigFile(projectRoot: string): {
|
|
6
|
+
configPath: string;
|
|
7
|
+
created: boolean;
|
|
8
|
+
};
|
|
5
9
|
export declare function initCommand(options?: InitOptions): Promise<void>;
|
|
6
10
|
export {};
|
|
7
11
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAMA,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkBD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA2E9E;AA0CD,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAQrG;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE1E"}
|
package/dist/commands/init.js
CHANGED
|
@@ -37,11 +37,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.buildInitPrompt = buildInitPrompt;
|
|
40
|
+
exports.ensureDefaultConfigFile = ensureDefaultConfigFile;
|
|
40
41
|
exports.initCommand = initCommand;
|
|
41
42
|
const fs = __importStar(require("fs"));
|
|
42
43
|
const path = __importStar(require("path"));
|
|
43
44
|
const child_process_1 = require("child_process");
|
|
44
45
|
const chalk_1 = __importDefault(require("chalk"));
|
|
46
|
+
const config_1 = require("../config");
|
|
45
47
|
function findPrdExample() {
|
|
46
48
|
const candidates = [
|
|
47
49
|
path.resolve(__dirname, '../../prd.json.example'),
|
|
@@ -166,6 +168,14 @@ function ensureBackendAvailable(backend) {
|
|
|
166
168
|
console.error(chalk_1.default.red(`Error: unsupported backend "${backend}"`));
|
|
167
169
|
process.exit(1);
|
|
168
170
|
}
|
|
171
|
+
function ensureDefaultConfigFile(projectRoot) {
|
|
172
|
+
const configPath = path.join(projectRoot, 'ralph.config.yml');
|
|
173
|
+
if (fs.existsSync(configPath)) {
|
|
174
|
+
return { configPath, created: false };
|
|
175
|
+
}
|
|
176
|
+
fs.writeFileSync(configPath, (0, config_1.renderCommentedConfigTemplate)(), 'utf-8');
|
|
177
|
+
return { configPath, created: true };
|
|
178
|
+
}
|
|
169
179
|
async function initCommand(options = {}) {
|
|
170
180
|
const backend = options.backend || 'claude';
|
|
171
181
|
const examplePath = findPrdExample();
|
|
@@ -181,6 +191,13 @@ async function initCommand(options = {}) {
|
|
|
181
191
|
console.log(chalk_1.default.dim(`The agent will discuss requirements with you and write ${outputPath}`));
|
|
182
192
|
console.log(chalk_1.default.dim('The agent will discuss design decisions and dependencies before generating.\n'));
|
|
183
193
|
ensureBackendAvailable(backend);
|
|
194
|
+
const { configPath, created } = ensureDefaultConfigFile(process.cwd());
|
|
195
|
+
if (created) {
|
|
196
|
+
console.log(chalk_1.default.dim(`Bootstrapped ${configPath} with the default commented template.\n`));
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
console.log(chalk_1.default.dim(`Using existing ${configPath}.\n`));
|
|
200
|
+
}
|
|
184
201
|
let child;
|
|
185
202
|
if (backend === 'claude') {
|
|
186
203
|
child = (0, child_process_1.spawn)('claude', ['--dangerously-skip-permissions', prompt], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -40,6 +40,8 @@ export interface RalphConfig {
|
|
|
40
40
|
export type AgentModelField = keyof RalphConfig['agents'];
|
|
41
41
|
/** Default configuration values used when no ralph.config.yml is present. */
|
|
42
42
|
export declare const DEFAULT_CONFIG: RalphConfig;
|
|
43
|
+
export declare function renderConfigYaml(config?: RalphConfig): string;
|
|
44
|
+
export declare function renderCommentedConfigTemplate(config?: RalphConfig): string;
|
|
43
45
|
/**
|
|
44
46
|
* Validates a raw parsed YAML object against the RalphConfig schema.
|
|
45
47
|
* Returns the validated config (with defaults for missing fields) and a list
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE;QACR,yEAAyE;QACzE,WAAW,EAAE,MAAM,CAAC;QACpB,8EAA8E;QAC9E,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,SAAS,EAAE;QACT,+DAA+D;QAC/D,qBAAqB,EAAE,MAAM,CAAC;QAC9B,gEAAgE;QAChE,QAAQ,EAAE,MAAM,CAAC;QACjB,6EAA6E;QAC7E,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,sDAAsD;QACtD,QAAQ,EAAE,MAAM,CAAC;QACjB,oDAAoD;QACpD,OAAO,EAAE,MAAM,CAAC;QAChB,sDAAsD;QACtD,OAAO,EAAE,MAAM,CAAC;QAChB,wDAAwD;QACxD,SAAS,EAAE,MAAM,CAAC;QAClB,qDAAqD;QACrD,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE;QACP,oEAAoE;QACpE,mBAAmB,EAAE,MAAM,CAAC;QAC5B,qEAAqE;QACrE,oBAAoB,EAAE,MAAM,CAAC;QAC7B,0DAA0D;QAC1D,kBAAkB,EAAE,MAAM,CAAC;QAC3B,+DAA+D;QAC/D,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;AAI1D,6EAA6E;AAC7E,eAAO,MAAM,cAAc,EAAE,WAuB5B,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE;QACR,yEAAyE;QACzE,WAAW,EAAE,MAAM,CAAC;QACpB,8EAA8E;QAC9E,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,SAAS,EAAE;QACT,+DAA+D;QAC/D,qBAAqB,EAAE,MAAM,CAAC;QAC9B,gEAAgE;QAChE,QAAQ,EAAE,MAAM,CAAC;QACjB,6EAA6E;QAC7E,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,sDAAsD;QACtD,QAAQ,EAAE,MAAM,CAAC;QACjB,oDAAoD;QACpD,OAAO,EAAE,MAAM,CAAC;QAChB,sDAAsD;QACtD,OAAO,EAAE,MAAM,CAAC;QAChB,wDAAwD;QACxD,SAAS,EAAE,MAAM,CAAC;QAClB,qDAAqD;QACrD,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE;QACP,oEAAoE;QACpE,mBAAmB,EAAE,MAAM,CAAC;QAC5B,qEAAqE;QACrE,oBAAoB,EAAE,MAAM,CAAC;QAC7B,0DAA0D;QAC1D,kBAAkB,EAAE,MAAM,CAAC;QAC3B,+DAA+D;QAC/D,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;AAI1D,6EAA6E;AAC7E,eAAO,MAAM,cAAc,EAAE,WAuB5B,CAAC;AAWF,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,WAA4B,GAAG,MAAM,CAE7E;AAED,wBAAgB,6BAA6B,CAAC,MAAM,GAAE,WAA4B,GAAG,MAAM,CAmB1F;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAqItF;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CA+B3D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,GACxD,WAAW,CAWb;AAED,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAoC7G"}
|
package/dist/config.js
CHANGED
|
@@ -34,6 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.DEFAULT_CONFIG = void 0;
|
|
37
|
+
exports.renderConfigYaml = renderConfigYaml;
|
|
38
|
+
exports.renderCommentedConfigTemplate = renderCommentedConfigTemplate;
|
|
37
39
|
exports.validateConfig = validateConfig;
|
|
38
40
|
exports.loadConfig = loadConfig;
|
|
39
41
|
exports.mergeCliOverrides = mergeCliOverrides;
|
|
@@ -67,6 +69,35 @@ exports.DEFAULT_CONFIG = {
|
|
|
67
69
|
cacheCreationCostPer1k: 0.01875,
|
|
68
70
|
},
|
|
69
71
|
};
|
|
72
|
+
function cloneConfig(config) {
|
|
73
|
+
return {
|
|
74
|
+
timeouts: { ...config.timeouts },
|
|
75
|
+
execution: { ...config.execution },
|
|
76
|
+
agents: { ...config.agents },
|
|
77
|
+
pricing: { ...config.pricing },
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function renderConfigYaml(config = exports.DEFAULT_CONFIG) {
|
|
81
|
+
return `${yaml.dump(config, { noRefs: true, lineWidth: -1 }).trimEnd()}\n`;
|
|
82
|
+
}
|
|
83
|
+
function renderCommentedConfigTemplate(config = exports.DEFAULT_CONFIG) {
|
|
84
|
+
const header = [
|
|
85
|
+
'# Ralph Teams configuration',
|
|
86
|
+
'# Uncomment and edit values as needed.',
|
|
87
|
+
'# A fully commented or empty file means "use built-in defaults".',
|
|
88
|
+
'#',
|
|
89
|
+
];
|
|
90
|
+
const templateConfig = {
|
|
91
|
+
timeouts: config.timeouts,
|
|
92
|
+
execution: config.execution,
|
|
93
|
+
agents: config.agents,
|
|
94
|
+
};
|
|
95
|
+
const commentedBody = `${yaml.dump(templateConfig, { noRefs: true, lineWidth: -1 }).trimEnd()}\n`
|
|
96
|
+
.trimEnd()
|
|
97
|
+
.split('\n')
|
|
98
|
+
.map(line => `# ${line}`);
|
|
99
|
+
return `${[...header, ...commentedBody].join('\n')}\n`;
|
|
100
|
+
}
|
|
70
101
|
/**
|
|
71
102
|
* Validates a raw parsed YAML object against the RalphConfig schema.
|
|
72
103
|
* Returns the validated config (with defaults for missing fields) and a list
|
|
@@ -213,17 +244,23 @@ function validateConfig(raw) {
|
|
|
213
244
|
function loadConfig(projectRoot) {
|
|
214
245
|
const configPath = path.join(projectRoot, 'ralph.config.yml');
|
|
215
246
|
if (!fs.existsSync(configPath)) {
|
|
216
|
-
return
|
|
247
|
+
return cloneConfig(exports.DEFAULT_CONFIG);
|
|
248
|
+
}
|
|
249
|
+
const contents = fs.readFileSync(configPath, 'utf-8');
|
|
250
|
+
if (contents.trim() === '') {
|
|
251
|
+
return cloneConfig(exports.DEFAULT_CONFIG);
|
|
217
252
|
}
|
|
218
253
|
let raw;
|
|
219
254
|
try {
|
|
220
|
-
const contents = fs.readFileSync(configPath, 'utf-8');
|
|
221
255
|
raw = yaml.load(contents);
|
|
222
256
|
}
|
|
223
257
|
catch (err) {
|
|
224
258
|
const msg = err instanceof Error ? err.message : String(err);
|
|
225
259
|
throw new Error(`Invalid YAML in ralph.config.yml: ${msg}`);
|
|
226
260
|
}
|
|
261
|
+
if (raw == null) {
|
|
262
|
+
return cloneConfig(exports.DEFAULT_CONFIG);
|
|
263
|
+
}
|
|
227
264
|
const { config, errors } = validateConfig(raw);
|
|
228
265
|
if (errors.length > 0) {
|
|
229
266
|
throw new Error(`Invalid ralph.config.yml:\n${errors.map(e => ` - ${e}`).join('\n')}`);
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|