ralph-starter 0.1.1-beta.1 → 0.1.1-beta.4
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 +8 -0
- package/dist/cli.js +12 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/config.js +1 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/run.d.ts +2 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +84 -10
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/source.d.ts +1 -0
- package/dist/commands/source.d.ts.map +1 -1
- package/dist/commands/source.js +26 -8
- package/dist/commands/source.js.map +1 -1
- package/dist/mcp/core/run.d.ts.map +1 -1
- package/dist/mcp/core/run.js +4 -1
- package/dist/mcp/core/run.js.map +1 -1
- package/dist/sources/index.d.ts.map +1 -1
- package/dist/sources/index.js +2 -1
- package/dist/sources/index.js.map +1 -1
- package/dist/sources/integrations/github.d.ts +4 -1
- package/dist/sources/integrations/github.d.ts.map +1 -1
- package/dist/sources/integrations/github.js +151 -12
- package/dist/sources/integrations/github.js.map +1 -1
- package/dist/sources/types.d.ts +4 -0
- package/dist/sources/types.d.ts.map +1 -1
- package/dist/wizard/ascii-art.d.ts +0 -42
- package/dist/wizard/ascii-art.d.ts.map +1 -1
- package/dist/wizard/ascii-art.js +0 -173
- package/dist/wizard/ascii-art.js.map +1 -1
- package/package.json +8 -8
- package/dist/commands/scaffold.d.ts +0 -9
- package/dist/commands/scaffold.d.ts.map +0 -1
- package/dist/commands/scaffold.js +0 -128
- package/dist/commands/scaffold.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ralph-starter",
|
|
3
|
-
"version": "0.1.1-beta.
|
|
3
|
+
"version": "0.1.1-beta.4",
|
|
4
4
|
"description": "Ralph Wiggum made easy. One command to run autonomous AI coding loops with auto-commit, PRs, and Docker sandbox.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -64,26 +64,26 @@
|
|
|
64
64
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
65
65
|
"chalk": "^5.3.0",
|
|
66
66
|
"chalk-animation": "^2.0.3",
|
|
67
|
-
"commander": "^
|
|
67
|
+
"commander": "^14.0.2",
|
|
68
68
|
"execa": "^9.5.2",
|
|
69
69
|
"gradient-string": "^3.0.0",
|
|
70
|
-
"inquirer": "^
|
|
71
|
-
"ora": "^
|
|
72
|
-
"pdf-parse": "^
|
|
70
|
+
"inquirer": "^13.2.2",
|
|
71
|
+
"ora": "^9.1.0",
|
|
72
|
+
"pdf-parse": "^2.4.5",
|
|
73
73
|
"simple-git": "^3.27.0",
|
|
74
74
|
"yaml": "^2.7.0",
|
|
75
|
-
"zod": "^3.
|
|
75
|
+
"zod": "^4.3.6"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"@biomejs/biome": "^2.3.13",
|
|
79
79
|
"@commitlint/cli": "^20.3.1",
|
|
80
80
|
"@commitlint/config-conventional": "^20.3.1",
|
|
81
81
|
"@types/inquirer": "^9.0.7",
|
|
82
|
-
"@types/node": "^
|
|
82
|
+
"@types/node": "^25.1.0",
|
|
83
83
|
"commitizen": "^4.3.1",
|
|
84
84
|
"cz-conventional-changelog": "^3.3.0",
|
|
85
85
|
"husky": "^9.1.0",
|
|
86
|
-
"lint-staged": "^
|
|
86
|
+
"lint-staged": "^16.2.7",
|
|
87
87
|
"typescript": "^5.7.3",
|
|
88
88
|
"vitest": "^2.1.8"
|
|
89
89
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"AAWA,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAcD,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmG/F"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync, readdirSync } from 'fs';
|
|
2
|
-
import { join, dirname } from 'path';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
import inquirer from 'inquirer';
|
|
5
|
-
import chalk from 'chalk';
|
|
6
|
-
import ora from 'ora';
|
|
7
|
-
import Handlebars from 'handlebars';
|
|
8
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
-
const TEMPLATES_DIR = join(__dirname, '..', '..', 'templates');
|
|
10
|
-
export async function scaffoldCommand(template, options) {
|
|
11
|
-
const spinner = ora();
|
|
12
|
-
// Check if template exists
|
|
13
|
-
const templatePath = join(TEMPLATES_DIR, template);
|
|
14
|
-
if (!existsSync(templatePath)) {
|
|
15
|
-
const available = getAvailableTemplates();
|
|
16
|
-
console.log(chalk.red(`Template "${template}" not found.`));
|
|
17
|
-
console.log();
|
|
18
|
-
console.log(chalk.yellow('Available templates:'));
|
|
19
|
-
available.forEach(t => console.log(chalk.gray(` - ${t}`)));
|
|
20
|
-
process.exit(1);
|
|
21
|
-
}
|
|
22
|
-
// Load template config
|
|
23
|
-
const configPath = join(templatePath, 'ralph.yaml');
|
|
24
|
-
let templateConfig = { name: template, description: '' };
|
|
25
|
-
if (existsSync(configPath)) {
|
|
26
|
-
// For now, we'll use a simple JSON config instead of YAML
|
|
27
|
-
// TODO: Add yaml parsing
|
|
28
|
-
}
|
|
29
|
-
// Get project name
|
|
30
|
-
let projectName = options.name;
|
|
31
|
-
if (!projectName && !options.auto) {
|
|
32
|
-
const answers = await inquirer.prompt([
|
|
33
|
-
{
|
|
34
|
-
type: 'input',
|
|
35
|
-
name: 'projectName',
|
|
36
|
-
message: 'Project name:',
|
|
37
|
-
default: `my-${template}-app`,
|
|
38
|
-
validate: (input) => {
|
|
39
|
-
if (!input.trim())
|
|
40
|
-
return 'Project name is required';
|
|
41
|
-
if (existsSync(input))
|
|
42
|
-
return 'Directory already exists';
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
]);
|
|
47
|
-
projectName = answers.projectName;
|
|
48
|
-
}
|
|
49
|
-
projectName = projectName || `my-${template}-app`;
|
|
50
|
-
// Check if directory exists
|
|
51
|
-
if (existsSync(projectName)) {
|
|
52
|
-
console.log(chalk.red(`Directory "${projectName}" already exists.`));
|
|
53
|
-
process.exit(1);
|
|
54
|
-
}
|
|
55
|
-
// Gather template variables
|
|
56
|
-
const variables = {
|
|
57
|
-
projectName,
|
|
58
|
-
typescript: options.typescript !== false,
|
|
59
|
-
};
|
|
60
|
-
// TODO: Ask template-specific questions from ralph.yaml
|
|
61
|
-
console.log();
|
|
62
|
-
console.log(chalk.cyan(`Creating ${template} project: ${chalk.bold(projectName)}`));
|
|
63
|
-
console.log();
|
|
64
|
-
// Create project directory
|
|
65
|
-
spinner.start('Creating project directory...');
|
|
66
|
-
mkdirSync(projectName, { recursive: true });
|
|
67
|
-
spinner.succeed('Project directory created');
|
|
68
|
-
// Copy template files
|
|
69
|
-
spinner.start('Copying template files...');
|
|
70
|
-
const templateFilesPath = join(templatePath, 'template');
|
|
71
|
-
if (existsSync(templateFilesPath)) {
|
|
72
|
-
copyTemplateDir(templateFilesPath, projectName, variables);
|
|
73
|
-
}
|
|
74
|
-
spinner.succeed('Template files copied');
|
|
75
|
-
// Copy .claude folder if it exists (with template processing)
|
|
76
|
-
const claudeConfigPath = join(templatePath, '.claude');
|
|
77
|
-
if (existsSync(claudeConfigPath)) {
|
|
78
|
-
spinner.start('Setting up Claude Code configuration...');
|
|
79
|
-
mkdirSync(join(projectName, '.claude'), { recursive: true });
|
|
80
|
-
copyTemplateDir(claudeConfigPath, join(projectName, '.claude'), variables);
|
|
81
|
-
spinner.succeed('Claude Code configuration ready');
|
|
82
|
-
}
|
|
83
|
-
console.log();
|
|
84
|
-
console.log(chalk.green('Project created successfully!'));
|
|
85
|
-
console.log();
|
|
86
|
-
console.log(chalk.yellow('Next steps:'));
|
|
87
|
-
console.log(chalk.gray(` cd ${projectName}`));
|
|
88
|
-
console.log(chalk.gray(' npm install'));
|
|
89
|
-
console.log(chalk.gray(' ralph-starter run # Start Claude Code loop'));
|
|
90
|
-
console.log();
|
|
91
|
-
// Optionally start the loop
|
|
92
|
-
if (options.run) {
|
|
93
|
-
const { runLoop } = await import('./run.js');
|
|
94
|
-
await runLoop(projectName, {});
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
function getAvailableTemplates() {
|
|
98
|
-
if (!existsSync(TEMPLATES_DIR)) {
|
|
99
|
-
return [];
|
|
100
|
-
}
|
|
101
|
-
return readdirSync(TEMPLATES_DIR, { withFileTypes: true })
|
|
102
|
-
.filter(dirent => dirent.isDirectory())
|
|
103
|
-
.map(dirent => dirent.name);
|
|
104
|
-
}
|
|
105
|
-
function copyTemplateDir(src, dest, variables) {
|
|
106
|
-
const entries = readdirSync(src, { withFileTypes: true });
|
|
107
|
-
for (const entry of entries) {
|
|
108
|
-
const srcPath = join(src, entry.name);
|
|
109
|
-
const destPath = join(dest, entry.name);
|
|
110
|
-
if (entry.isDirectory()) {
|
|
111
|
-
mkdirSync(destPath, { recursive: true });
|
|
112
|
-
copyTemplateDir(srcPath, destPath, variables);
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
// Process template variables in file content
|
|
116
|
-
let content = readFileSync(srcPath, 'utf-8');
|
|
117
|
-
// Only process .hbs files or files that contain handlebars syntax
|
|
118
|
-
if (entry.name.endsWith('.hbs') || content.includes('{{')) {
|
|
119
|
-
const template = Handlebars.compile(content);
|
|
120
|
-
content = template(variables);
|
|
121
|
-
}
|
|
122
|
-
// Remove .hbs extension if present
|
|
123
|
-
const finalPath = destPath.replace(/\.hbs$/, '');
|
|
124
|
-
writeFileSync(finalPath, content);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=scaffold.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"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"}
|