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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ralph-starter",
3
- "version": "0.1.1-beta.1",
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": "^12.1.0",
67
+ "commander": "^14.0.2",
68
68
  "execa": "^9.5.2",
69
69
  "gradient-string": "^3.0.0",
70
- "inquirer": "^12.3.2",
71
- "ora": "^8.1.1",
72
- "pdf-parse": "^1.1.1",
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.22.0"
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": "^22.10.7",
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": "^15.2.0",
86
+ "lint-staged": "^16.2.7",
87
87
  "typescript": "^5.7.3",
88
88
  "vitest": "^2.1.8"
89
89
  },
@@ -1,9 +0,0 @@
1
- interface ScaffoldOptions {
2
- name?: string;
3
- typescript?: boolean;
4
- run?: boolean;
5
- auto?: boolean;
6
- }
7
- export declare function scaffoldCommand(template: string, options: ScaffoldOptions): Promise<void>;
8
- export {};
9
- //# sourceMappingURL=scaffold.d.ts.map
@@ -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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"}