ralph-starter 0.0.1 → 0.1.1-beta.1
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 +707 -17
- package/dist/auth/browser.d.ts +10 -0
- package/dist/auth/browser.d.ts.map +1 -0
- package/dist/auth/browser.js +56 -0
- package/dist/auth/browser.js.map +1 -0
- package/dist/auth/index.d.ts +5 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +5 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oauth-server.d.ts +20 -0
- package/dist/auth/oauth-server.d.ts.map +1 -0
- package/dist/auth/oauth-server.js +168 -0
- package/dist/auth/oauth-server.js.map +1 -0
- package/dist/auth/pkce.d.ts +46 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/pkce.js +57 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/providers/base.d.ts +52 -0
- package/dist/auth/providers/base.d.ts.map +1 -0
- package/dist/auth/providers/base.js +70 -0
- package/dist/auth/providers/base.js.map +1 -0
- package/dist/auth/providers/index.d.ts +23 -0
- package/dist/auth/providers/index.d.ts.map +1 -0
- package/dist/auth/providers/index.js +39 -0
- package/dist/auth/providers/index.js.map +1 -0
- package/dist/auth/providers/linear.d.ts +37 -0
- package/dist/auth/providers/linear.d.ts.map +1 -0
- package/dist/auth/providers/linear.js +46 -0
- package/dist/auth/providers/linear.js.map +1 -0
- package/dist/auth/providers/notion.d.ts +36 -0
- package/dist/auth/providers/notion.d.ts.map +1 -0
- package/dist/auth/providers/notion.js +75 -0
- package/dist/auth/providers/notion.js.map +1 -0
- package/dist/auth/providers/todoist.d.ts +29 -0
- package/dist/auth/providers/todoist.d.ts.map +1 -0
- package/dist/auth/providers/todoist.js +40 -0
- package/dist/auth/providers/todoist.js.map +1 -0
- package/dist/automation/git.d.ts +15 -0
- package/dist/automation/git.d.ts.map +1 -0
- package/dist/automation/git.js +73 -0
- package/dist/automation/git.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +192 -19
- package/dist/cli.js.map +1 -0
- package/dist/commands/auth.d.ts +14 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +243 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/check.d.ts +12 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +124 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/config.d.ts +13 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +374 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/init.d.ts +31 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +353 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/integrations.d.ts +17 -0
- package/dist/commands/integrations.d.ts.map +1 -0
- package/dist/commands/integrations.js +193 -0
- package/dist/commands/integrations.js.map +1 -0
- package/dist/commands/plan.d.ts +5 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +80 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/run.d.ts +26 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +351 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/scaffold.d.ts +9 -0
- package/dist/commands/scaffold.d.ts.map +1 -0
- package/dist/commands/scaffold.js +128 -0
- package/dist/commands/scaffold.js.map +1 -0
- package/dist/commands/setup.d.ts +12 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +27 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/skill.d.ts +6 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +151 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/source.d.ts +17 -0
- package/dist/commands/source.d.ts.map +1 -0
- package/dist/commands/source.js +173 -0
- package/dist/commands/source.js.map +1 -0
- package/dist/config/manager.d.ts +70 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +227 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -2
- package/dist/index.js.map +1 -0
- package/dist/integrations/_template/auth.d.ts +29 -0
- package/dist/integrations/_template/auth.d.ts.map +1 -0
- package/dist/integrations/_template/auth.js +42 -0
- package/dist/integrations/_template/auth.js.map +1 -0
- package/dist/integrations/_template/index.d.ts +8 -0
- package/dist/integrations/_template/index.d.ts.map +1 -0
- package/dist/integrations/_template/index.js +8 -0
- package/dist/integrations/_template/index.js.map +1 -0
- package/dist/integrations/_template/source.d.ts +34 -0
- package/dist/integrations/_template/source.d.ts.map +1 -0
- package/dist/integrations/_template/source.js +124 -0
- package/dist/integrations/_template/source.js.map +1 -0
- package/dist/integrations/base.d.ts +158 -0
- package/dist/integrations/base.d.ts.map +1 -0
- package/dist/integrations/base.js +109 -0
- package/dist/integrations/base.js.map +1 -0
- package/dist/integrations/github/index.d.ts +8 -0
- package/dist/integrations/github/index.d.ts.map +1 -0
- package/dist/integrations/github/index.js +8 -0
- package/dist/integrations/github/index.js.map +1 -0
- package/dist/integrations/github/source.d.ts +26 -0
- package/dist/integrations/github/source.d.ts.map +1 -0
- package/dist/integrations/github/source.js +190 -0
- package/dist/integrations/github/source.js.map +1 -0
- package/dist/integrations/index.d.ts +37 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +71 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/linear/auth.d.ts +37 -0
- package/dist/integrations/linear/auth.d.ts.map +1 -0
- package/dist/integrations/linear/auth.js +45 -0
- package/dist/integrations/linear/auth.js.map +1 -0
- package/dist/integrations/linear/index.d.ts +9 -0
- package/dist/integrations/linear/index.d.ts.map +1 -0
- package/dist/integrations/linear/index.js +9 -0
- package/dist/integrations/linear/index.js.map +1 -0
- package/dist/integrations/linear/source.d.ts +26 -0
- package/dist/integrations/linear/source.d.ts.map +1 -0
- package/dist/integrations/linear/source.js +248 -0
- package/dist/integrations/linear/source.js.map +1 -0
- package/dist/integrations/notion/index.d.ts +8 -0
- package/dist/integrations/notion/index.d.ts.map +1 -0
- package/dist/integrations/notion/index.js +8 -0
- package/dist/integrations/notion/index.js.map +1 -0
- package/dist/integrations/notion/source.d.ts +53 -0
- package/dist/integrations/notion/source.d.ts.map +1 -0
- package/dist/integrations/notion/source.js +463 -0
- package/dist/integrations/notion/source.js.map +1 -0
- package/dist/llm/api.d.ts +29 -0
- package/dist/llm/api.d.ts.map +1 -0
- package/dist/llm/api.js +152 -0
- package/dist/llm/api.js.map +1 -0
- package/dist/llm/index.d.ts +7 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +7 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/providers.d.ts +24 -0
- package/dist/llm/providers.d.ts.map +1 -0
- package/dist/llm/providers.js +51 -0
- package/dist/llm/providers.js.map +1 -0
- package/dist/loop/__tests__/agents.test.d.ts +2 -0
- package/dist/loop/__tests__/agents.test.d.ts.map +1 -0
- package/dist/loop/__tests__/agents.test.js +183 -0
- package/dist/loop/__tests__/agents.test.js.map +1 -0
- package/dist/loop/__tests__/circuit-breaker.test.d.ts +2 -0
- package/dist/loop/__tests__/circuit-breaker.test.d.ts.map +1 -0
- package/dist/loop/__tests__/circuit-breaker.test.js +161 -0
- package/dist/loop/__tests__/circuit-breaker.test.js.map +1 -0
- package/dist/loop/__tests__/cost-tracker.test.d.ts +2 -0
- package/dist/loop/__tests__/cost-tracker.test.d.ts.map +1 -0
- package/dist/loop/__tests__/cost-tracker.test.js +200 -0
- package/dist/loop/__tests__/cost-tracker.test.js.map +1 -0
- package/dist/loop/__tests__/rate-limiter.test.d.ts +2 -0
- package/dist/loop/__tests__/rate-limiter.test.d.ts.map +1 -0
- package/dist/loop/__tests__/rate-limiter.test.js +198 -0
- package/dist/loop/__tests__/rate-limiter.test.js.map +1 -0
- package/dist/loop/__tests__/validation.test.d.ts +2 -0
- package/dist/loop/__tests__/validation.test.d.ts.map +1 -0
- package/dist/loop/__tests__/validation.test.js +234 -0
- package/dist/loop/__tests__/validation.test.js.map +1 -0
- package/dist/loop/agents.d.ts +26 -0
- package/dist/loop/agents.d.ts.map +1 -0
- package/dist/loop/agents.js +188 -0
- package/dist/loop/agents.js.map +1 -0
- package/dist/loop/circuit-breaker.d.ts +61 -0
- package/dist/loop/circuit-breaker.d.ts.map +1 -0
- package/dist/loop/circuit-breaker.js +143 -0
- package/dist/loop/circuit-breaker.js.map +1 -0
- package/dist/loop/cost-tracker.d.ts +90 -0
- package/dist/loop/cost-tracker.d.ts.map +1 -0
- package/dist/loop/cost-tracker.js +229 -0
- package/dist/loop/cost-tracker.js.map +1 -0
- package/dist/loop/estimator.d.ts +20 -0
- package/dist/loop/estimator.d.ts.map +1 -0
- package/dist/loop/estimator.js +123 -0
- package/dist/loop/estimator.js.map +1 -0
- package/dist/loop/executor.d.ts +44 -0
- package/dist/loop/executor.d.ts.map +1 -0
- package/dist/loop/executor.js +646 -0
- package/dist/loop/executor.js.map +1 -0
- package/dist/loop/progress.d.ts +34 -0
- package/dist/loop/progress.d.ts.map +1 -0
- package/dist/loop/progress.js +186 -0
- package/dist/loop/progress.js.map +1 -0
- package/dist/loop/rate-limiter.d.ts +71 -0
- package/dist/loop/rate-limiter.d.ts.map +1 -0
- package/dist/loop/rate-limiter.js +151 -0
- package/dist/loop/rate-limiter.js.map +1 -0
- package/dist/loop/semantic-analyzer.d.ts +33 -0
- package/dist/loop/semantic-analyzer.d.ts.map +1 -0
- package/dist/loop/semantic-analyzer.js +153 -0
- package/dist/loop/semantic-analyzer.js.map +1 -0
- package/dist/loop/skills.d.ts +29 -0
- package/dist/loop/skills.d.ts.map +1 -0
- package/dist/loop/skills.js +174 -0
- package/dist/loop/skills.js.map +1 -0
- package/dist/loop/step-detector.d.ts +17 -0
- package/dist/loop/step-detector.d.ts.map +1 -0
- package/dist/loop/step-detector.js +280 -0
- package/dist/loop/step-detector.js.map +1 -0
- package/dist/loop/task-counter.d.ts +41 -0
- package/dist/loop/task-counter.d.ts.map +1 -0
- package/dist/loop/task-counter.js +99 -0
- package/dist/loop/task-counter.js.map +1 -0
- package/dist/loop/validation.d.ts +28 -0
- package/dist/loop/validation.d.ts.map +1 -0
- package/dist/loop/validation.js +138 -0
- package/dist/loop/validation.js.map +1 -0
- package/dist/mcp/core/init.d.ts +15 -0
- package/dist/mcp/core/init.d.ts.map +1 -0
- package/dist/mcp/core/init.js +272 -0
- package/dist/mcp/core/init.js.map +1 -0
- package/dist/mcp/core/plan.d.ts +15 -0
- package/dist/mcp/core/plan.d.ts.map +1 -0
- package/dist/mcp/core/plan.js +90 -0
- package/dist/mcp/core/plan.js.map +1 -0
- package/dist/mcp/core/run.d.ts +26 -0
- package/dist/mcp/core/run.d.ts.map +1 -0
- package/dist/mcp/core/run.js +114 -0
- package/dist/mcp/core/run.js.map +1 -0
- package/dist/mcp/prompts.d.ts +10 -0
- package/dist/mcp/prompts.d.ts.map +1 -0
- package/dist/mcp/prompts.js +163 -0
- package/dist/mcp/prompts.js.map +1 -0
- package/dist/mcp/resources.d.ts +16 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +114 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +10 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +73 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +15 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +316 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/presets/index.d.ts +36 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +236 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/setup/agent-detector.d.ts +57 -0
- package/dist/setup/agent-detector.d.ts.map +1 -0
- package/dist/setup/agent-detector.js +170 -0
- package/dist/setup/agent-detector.js.map +1 -0
- package/dist/setup/index.d.ts +7 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +7 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/llm-tester.d.ts +33 -0
- package/dist/setup/llm-tester.d.ts.map +1 -0
- package/dist/setup/llm-tester.js +105 -0
- package/dist/setup/llm-tester.js.map +1 -0
- package/dist/setup/wizard.d.ts +19 -0
- package/dist/setup/wizard.d.ts.map +1 -0
- package/dist/setup/wizard.js +313 -0
- package/dist/setup/wizard.js.map +1 -0
- package/dist/sources/__tests__/file.test.d.ts +2 -0
- package/dist/sources/__tests__/file.test.d.ts.map +1 -0
- package/dist/sources/__tests__/file.test.js +126 -0
- package/dist/sources/__tests__/file.test.js.map +1 -0
- package/dist/sources/__tests__/github.test.d.ts +2 -0
- package/dist/sources/__tests__/github.test.d.ts.map +1 -0
- package/dist/sources/__tests__/github.test.js +157 -0
- package/dist/sources/__tests__/github.test.js.map +1 -0
- package/dist/sources/base.d.ts +72 -0
- package/dist/sources/base.d.ts.map +1 -0
- package/dist/sources/base.js +127 -0
- package/dist/sources/base.js.map +1 -0
- package/dist/sources/builtin/file.d.ts +21 -0
- package/dist/sources/builtin/file.d.ts.map +1 -0
- package/dist/sources/builtin/file.js +129 -0
- package/dist/sources/builtin/file.js.map +1 -0
- package/dist/sources/builtin/github-scraper.d.ts +65 -0
- package/dist/sources/builtin/github-scraper.d.ts.map +1 -0
- package/dist/sources/builtin/github-scraper.js +324 -0
- package/dist/sources/builtin/github-scraper.js.map +1 -0
- package/dist/sources/builtin/pdf.d.ts +24 -0
- package/dist/sources/builtin/pdf.d.ts.map +1 -0
- package/dist/sources/builtin/pdf.js +174 -0
- package/dist/sources/builtin/pdf.js.map +1 -0
- package/dist/sources/builtin/url.d.ts +47 -0
- package/dist/sources/builtin/url.d.ts.map +1 -0
- package/dist/sources/builtin/url.js +429 -0
- package/dist/sources/builtin/url.js.map +1 -0
- package/dist/sources/config.d.ts +72 -0
- package/dist/sources/config.d.ts.map +1 -0
- package/dist/sources/config.js +215 -0
- package/dist/sources/config.js.map +1 -0
- package/dist/sources/index.d.ts +47 -0
- package/dist/sources/index.d.ts.map +1 -0
- package/dist/sources/index.js +210 -0
- package/dist/sources/index.js.map +1 -0
- package/dist/sources/integrations/github.d.ts +24 -0
- package/dist/sources/integrations/github.d.ts.map +1 -0
- package/dist/sources/integrations/github.js +193 -0
- package/dist/sources/integrations/github.js.map +1 -0
- package/dist/sources/integrations/linear.d.ts +18 -0
- package/dist/sources/integrations/linear.d.ts.map +1 -0
- package/dist/sources/integrations/linear.js +197 -0
- package/dist/sources/integrations/linear.js.map +1 -0
- package/dist/sources/integrations/notion.d.ts +39 -0
- package/dist/sources/integrations/notion.d.ts.map +1 -0
- package/dist/sources/integrations/notion.js +343 -0
- package/dist/sources/integrations/notion.js.map +1 -0
- package/dist/sources/integrations/todoist.d.ts +18 -0
- package/dist/sources/integrations/todoist.d.ts.map +1 -0
- package/dist/sources/integrations/todoist.js +154 -0
- package/dist/sources/integrations/todoist.js.map +1 -0
- package/dist/sources/types.d.ts +106 -0
- package/dist/sources/types.d.ts.map +1 -0
- package/dist/sources/types.js +9 -0
- package/dist/sources/types.js.map +1 -0
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +3 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/progress-renderer.d.ts +54 -0
- package/dist/ui/progress-renderer.d.ts.map +1 -0
- package/dist/ui/progress-renderer.js +118 -0
- package/dist/ui/progress-renderer.js.map +1 -0
- package/dist/ui/shimmer.d.ts +16 -0
- package/dist/ui/shimmer.d.ts.map +1 -0
- package/dist/ui/shimmer.js +31 -0
- package/dist/ui/shimmer.js.map +1 -0
- package/dist/wizard/ascii-art.d.ts +93 -0
- package/dist/wizard/ascii-art.d.ts.map +1 -0
- package/dist/wizard/ascii-art.js +378 -0
- package/dist/wizard/ascii-art.js.map +1 -0
- package/dist/wizard/idea-prompts.d.ts +18 -0
- package/dist/wizard/idea-prompts.d.ts.map +1 -0
- package/dist/wizard/idea-prompts.js +154 -0
- package/dist/wizard/idea-prompts.js.map +1 -0
- package/dist/wizard/idea-ui.d.ts +34 -0
- package/dist/wizard/idea-ui.d.ts.map +1 -0
- package/dist/wizard/idea-ui.js +225 -0
- package/dist/wizard/idea-ui.js.map +1 -0
- package/dist/wizard/ideas.d.ts +27 -0
- package/dist/wizard/ideas.d.ts.map +1 -0
- package/dist/wizard/ideas.js +511 -0
- package/dist/wizard/ideas.js.map +1 -0
- package/dist/wizard/index.d.ts +11 -0
- package/dist/wizard/index.d.ts.map +1 -0
- package/dist/wizard/index.js +472 -0
- package/dist/wizard/index.js.map +1 -0
- package/dist/wizard/llm.d.ts +14 -0
- package/dist/wizard/llm.d.ts.map +1 -0
- package/dist/wizard/llm.js +420 -0
- package/dist/wizard/llm.js.map +1 -0
- package/dist/wizard/prompts.d.ts +75 -0
- package/dist/wizard/prompts.d.ts.map +1 -0
- package/dist/wizard/prompts.js +455 -0
- package/dist/wizard/prompts.js.map +1 -0
- package/dist/wizard/spec-generator.d.ts +14 -0
- package/dist/wizard/spec-generator.d.ts.map +1 -0
- package/dist/wizard/spec-generator.js +200 -0
- package/dist/wizard/spec-generator.js.map +1 -0
- package/dist/wizard/types.d.ts +53 -0
- package/dist/wizard/types.d.ts.map +1 -0
- package/dist/wizard/types.js +10 -0
- package/dist/wizard/types.js.map +1 -0
- package/dist/wizard/ui.d.ts +57 -0
- package/dist/wizard/ui.d.ts.map +1 -0
- package/dist/wizard/ui.js +211 -0
- package/dist/wizard/ui.js.map +1 -0
- package/package.json +67 -8
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { basename, join } from 'node:path';
|
|
3
|
+
import YAML from 'yaml';
|
|
4
|
+
import { detectBestAgent } from '../../loop/agents.js';
|
|
5
|
+
function detectProject(cwd) {
|
|
6
|
+
// Node.js
|
|
7
|
+
if (existsSync(join(cwd, 'package.json'))) {
|
|
8
|
+
try {
|
|
9
|
+
const pkg = JSON.parse(readFileSync(join(cwd, 'package.json'), 'utf-8'));
|
|
10
|
+
const scripts = pkg.scripts || {};
|
|
11
|
+
return {
|
|
12
|
+
type: 'nodejs',
|
|
13
|
+
name: pkg.name || basename(cwd),
|
|
14
|
+
testCmd: scripts.test ? 'npm test' : undefined,
|
|
15
|
+
buildCmd: scripts.build ? 'npm run build' : undefined,
|
|
16
|
+
lintCmd: scripts.lint ? 'npm run lint' : undefined,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return { type: 'nodejs', name: basename(cwd) };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// Python
|
|
24
|
+
if (existsSync(join(cwd, 'pyproject.toml')) || existsSync(join(cwd, 'setup.py'))) {
|
|
25
|
+
return {
|
|
26
|
+
type: 'python',
|
|
27
|
+
name: basename(cwd),
|
|
28
|
+
testCmd: 'pytest',
|
|
29
|
+
lintCmd: 'ruff check .',
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
// Rust
|
|
33
|
+
if (existsSync(join(cwd, 'Cargo.toml'))) {
|
|
34
|
+
return {
|
|
35
|
+
type: 'rust',
|
|
36
|
+
name: basename(cwd),
|
|
37
|
+
testCmd: 'cargo test',
|
|
38
|
+
buildCmd: 'cargo build',
|
|
39
|
+
lintCmd: 'cargo clippy',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Go
|
|
43
|
+
if (existsSync(join(cwd, 'go.mod'))) {
|
|
44
|
+
return {
|
|
45
|
+
type: 'go',
|
|
46
|
+
name: basename(cwd),
|
|
47
|
+
testCmd: 'go test ./...',
|
|
48
|
+
buildCmd: 'go build ./...',
|
|
49
|
+
lintCmd: 'golangci-lint run',
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return { type: 'unknown', name: basename(cwd) };
|
|
53
|
+
}
|
|
54
|
+
function generateAgentsMd(project) {
|
|
55
|
+
const validationCmds = [project.testCmd, project.buildCmd, project.lintCmd].filter(Boolean);
|
|
56
|
+
return `# AGENTS.md
|
|
57
|
+
|
|
58
|
+
This file defines how Ralph operates in this project.
|
|
59
|
+
|
|
60
|
+
## Validation Commands
|
|
61
|
+
|
|
62
|
+
Run these after each task to ensure quality:
|
|
63
|
+
|
|
64
|
+
\`\`\`bash
|
|
65
|
+
${validationCmds.length > 0 ? validationCmds.join('\n') : '# Add your test/build/lint commands here'}
|
|
66
|
+
\`\`\`
|
|
67
|
+
|
|
68
|
+
## Build Instructions
|
|
69
|
+
|
|
70
|
+
${project.type === 'nodejs' ? '1. Run `npm install` to install dependencies\n2. Run `npm run build` to build (if applicable)\n3. Run `npm test` to verify' : ''}
|
|
71
|
+
${project.type === 'python' ? '1. Create virtual environment: `python -m venv venv`\n2. Install dependencies: `pip install -e .`\n3. Run tests: `pytest`' : ''}
|
|
72
|
+
${project.type === 'rust' ? '1. Run `cargo build` to compile\n2. Run `cargo test` to verify' : ''}
|
|
73
|
+
${project.type === 'go' ? '1. Run `go mod tidy` to sync dependencies\n2. Run `go build ./...` to compile\n3. Run `go test ./...` to verify' : ''}
|
|
74
|
+
${project.type === 'unknown' ? '1. Add your build instructions here' : ''}
|
|
75
|
+
|
|
76
|
+
## Code Patterns
|
|
77
|
+
|
|
78
|
+
- Follow existing code style
|
|
79
|
+
- Add tests for new functionality
|
|
80
|
+
- Keep functions small and focused
|
|
81
|
+
- Use meaningful names
|
|
82
|
+
|
|
83
|
+
## Task Completion
|
|
84
|
+
|
|
85
|
+
A task is complete when:
|
|
86
|
+
1. All validation commands pass
|
|
87
|
+
2. Code is committed (if auto-commit enabled)
|
|
88
|
+
3. No TODO comments left unaddressed
|
|
89
|
+
`;
|
|
90
|
+
}
|
|
91
|
+
function generatePromptBuild() {
|
|
92
|
+
return `# Building Mode
|
|
93
|
+
|
|
94
|
+
You are in BUILDING mode. Execute tasks from the implementation plan.
|
|
95
|
+
|
|
96
|
+
## Process
|
|
97
|
+
|
|
98
|
+
1. Read IMPLEMENTATION_PLAN.md for the current task
|
|
99
|
+
2. Implement the task following patterns in AGENTS.md
|
|
100
|
+
3. Run validation commands after each change
|
|
101
|
+
4. If tests fail, fix the issues before moving on
|
|
102
|
+
5. Mark the task as complete in IMPLEMENTATION_PLAN.md
|
|
103
|
+
6. Move to the next task
|
|
104
|
+
|
|
105
|
+
## Rules
|
|
106
|
+
|
|
107
|
+
- One task at a time
|
|
108
|
+
- Validate after each change
|
|
109
|
+
- Commit working code only
|
|
110
|
+
- Update the plan as you learn
|
|
111
|
+
- Only link to pages that exist - use "#" for placeholder links
|
|
112
|
+
- Use realistic placeholder data (names, dates, content)
|
|
113
|
+
|
|
114
|
+
## Completion Signal
|
|
115
|
+
|
|
116
|
+
When all tasks are done, output: <TASK_DONE>
|
|
117
|
+
If blocked, output: <TASK_BLOCKED> with explanation
|
|
118
|
+
`;
|
|
119
|
+
}
|
|
120
|
+
function generatePromptPlan() {
|
|
121
|
+
return `# Planning Mode
|
|
122
|
+
|
|
123
|
+
You are in PLANNING mode. Analyze specs and create an implementation plan.
|
|
124
|
+
|
|
125
|
+
## Process
|
|
126
|
+
|
|
127
|
+
1. Read all files in specs/ folder
|
|
128
|
+
2. Analyze existing codebase
|
|
129
|
+
3. Identify gaps between specs and implementation
|
|
130
|
+
4. Create prioritized task list in IMPLEMENTATION_PLAN.md
|
|
131
|
+
|
|
132
|
+
## Task Format
|
|
133
|
+
|
|
134
|
+
Each task in IMPLEMENTATION_PLAN.md should have:
|
|
135
|
+
- [ ] Clear, actionable description
|
|
136
|
+
- Acceptance criteria
|
|
137
|
+
- Dependencies (if any)
|
|
138
|
+
|
|
139
|
+
## Rules
|
|
140
|
+
|
|
141
|
+
- Do NOT implement anything
|
|
142
|
+
- Only analyze and plan
|
|
143
|
+
- Keep tasks small (< 30 min each)
|
|
144
|
+
- Order by dependencies
|
|
145
|
+
|
|
146
|
+
## Output
|
|
147
|
+
|
|
148
|
+
Update IMPLEMENTATION_PLAN.md with the task list.
|
|
149
|
+
`;
|
|
150
|
+
}
|
|
151
|
+
function generateImplementationPlan() {
|
|
152
|
+
return `# Implementation Plan
|
|
153
|
+
|
|
154
|
+
> Auto-generated by Ralph. Update as tasks complete.
|
|
155
|
+
|
|
156
|
+
## Status
|
|
157
|
+
|
|
158
|
+
- [ ] Task 1: (describe first task)
|
|
159
|
+
- [ ] Task 2: (describe second task)
|
|
160
|
+
|
|
161
|
+
## Notes
|
|
162
|
+
|
|
163
|
+
Add discoveries and learnings here as you work.
|
|
164
|
+
`;
|
|
165
|
+
}
|
|
166
|
+
function generateExampleSpec(projectName) {
|
|
167
|
+
return `# ${projectName} Specification
|
|
168
|
+
|
|
169
|
+
## Overview
|
|
170
|
+
|
|
171
|
+
Describe what this project does.
|
|
172
|
+
|
|
173
|
+
## Features
|
|
174
|
+
|
|
175
|
+
### Feature 1: (name)
|
|
176
|
+
|
|
177
|
+
Description of the feature.
|
|
178
|
+
|
|
179
|
+
**Acceptance Criteria:**
|
|
180
|
+
- [ ] Criterion 1
|
|
181
|
+
- [ ] Criterion 2
|
|
182
|
+
|
|
183
|
+
### Feature 2: (name)
|
|
184
|
+
|
|
185
|
+
Description of the feature.
|
|
186
|
+
|
|
187
|
+
## Technical Requirements
|
|
188
|
+
|
|
189
|
+
- List technical constraints
|
|
190
|
+
- Performance requirements
|
|
191
|
+
- Security considerations
|
|
192
|
+
`;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Core initialization logic without CLI dependencies
|
|
196
|
+
*/
|
|
197
|
+
export async function initCore(options) {
|
|
198
|
+
const cwd = options.path;
|
|
199
|
+
const filesCreated = [];
|
|
200
|
+
try {
|
|
201
|
+
// Check if directory exists
|
|
202
|
+
if (!existsSync(cwd)) {
|
|
203
|
+
mkdirSync(cwd, { recursive: true });
|
|
204
|
+
}
|
|
205
|
+
// Check if already initialized
|
|
206
|
+
if (existsSync(join(cwd, 'AGENTS.md'))) {
|
|
207
|
+
return {
|
|
208
|
+
success: false,
|
|
209
|
+
path: cwd,
|
|
210
|
+
filesCreated: [],
|
|
211
|
+
error: 'Ralph Playbook files already exist',
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
// Detect project
|
|
215
|
+
const project = detectProject(cwd);
|
|
216
|
+
if (options.name) {
|
|
217
|
+
project.name = options.name;
|
|
218
|
+
}
|
|
219
|
+
// Detect agent
|
|
220
|
+
const agent = await detectBestAgent();
|
|
221
|
+
const agentType = agent?.type || 'claude-code';
|
|
222
|
+
// Create AGENTS.md
|
|
223
|
+
writeFileSync(join(cwd, 'AGENTS.md'), generateAgentsMd(project));
|
|
224
|
+
filesCreated.push('AGENTS.md');
|
|
225
|
+
// Create PROMPT files
|
|
226
|
+
writeFileSync(join(cwd, 'PROMPT_build.md'), generatePromptBuild());
|
|
227
|
+
filesCreated.push('PROMPT_build.md');
|
|
228
|
+
writeFileSync(join(cwd, 'PROMPT_plan.md'), generatePromptPlan());
|
|
229
|
+
filesCreated.push('PROMPT_plan.md');
|
|
230
|
+
// Create implementation plan
|
|
231
|
+
writeFileSync(join(cwd, 'IMPLEMENTATION_PLAN.md'), generateImplementationPlan());
|
|
232
|
+
filesCreated.push('IMPLEMENTATION_PLAN.md');
|
|
233
|
+
// Create specs folder with example
|
|
234
|
+
const specsDir = join(cwd, 'specs');
|
|
235
|
+
if (!existsSync(specsDir)) {
|
|
236
|
+
mkdirSync(specsDir, { recursive: true });
|
|
237
|
+
writeFileSync(join(specsDir, 'example.md'), generateExampleSpec(project.name));
|
|
238
|
+
filesCreated.push('specs/example.md');
|
|
239
|
+
}
|
|
240
|
+
// Create .ralph config
|
|
241
|
+
const ralphDir = join(cwd, '.ralph');
|
|
242
|
+
if (!existsSync(ralphDir)) {
|
|
243
|
+
mkdirSync(ralphDir, { recursive: true });
|
|
244
|
+
const config = {
|
|
245
|
+
agent: agentType,
|
|
246
|
+
auto_commit: true,
|
|
247
|
+
max_iterations: 50,
|
|
248
|
+
validation: {
|
|
249
|
+
test: project.testCmd || null,
|
|
250
|
+
build: project.buildCmd || null,
|
|
251
|
+
lint: project.lintCmd || null,
|
|
252
|
+
},
|
|
253
|
+
};
|
|
254
|
+
writeFileSync(join(ralphDir, 'config.yaml'), YAML.stringify(config));
|
|
255
|
+
filesCreated.push('.ralph/config.yaml');
|
|
256
|
+
}
|
|
257
|
+
return {
|
|
258
|
+
success: true,
|
|
259
|
+
path: cwd,
|
|
260
|
+
filesCreated,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
return {
|
|
265
|
+
success: false,
|
|
266
|
+
path: cwd,
|
|
267
|
+
filesCreated,
|
|
268
|
+
error: error.message,
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/mcp/core/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface PlanCoreOptions {
|
|
2
|
+
path: string;
|
|
3
|
+
auto?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface PlanCoreResult {
|
|
6
|
+
success: boolean;
|
|
7
|
+
planPath: string;
|
|
8
|
+
taskCount: number;
|
|
9
|
+
error?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Core planning logic without CLI dependencies
|
|
13
|
+
*/
|
|
14
|
+
export declare function planCore(options: PlanCoreOptions): Promise<PlanCoreResult>;
|
|
15
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/mcp/core/plan.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA4FhF"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { detectBestAgent, runAgent } from '../../loop/agents.js';
|
|
4
|
+
/**
|
|
5
|
+
* Core planning logic without CLI dependencies
|
|
6
|
+
*/
|
|
7
|
+
export async function planCore(options) {
|
|
8
|
+
const cwd = options.path;
|
|
9
|
+
const planPath = join(cwd, 'IMPLEMENTATION_PLAN.md');
|
|
10
|
+
try {
|
|
11
|
+
// Check for Ralph Playbook files
|
|
12
|
+
const promptPlanPath = join(cwd, 'PROMPT_plan.md');
|
|
13
|
+
const specsDir = join(cwd, 'specs');
|
|
14
|
+
if (!existsSync(promptPlanPath)) {
|
|
15
|
+
return {
|
|
16
|
+
success: false,
|
|
17
|
+
planPath,
|
|
18
|
+
taskCount: 0,
|
|
19
|
+
error: 'Ralph Playbook not found. Run init first.',
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
if (!existsSync(specsDir)) {
|
|
23
|
+
return {
|
|
24
|
+
success: false,
|
|
25
|
+
planPath,
|
|
26
|
+
taskCount: 0,
|
|
27
|
+
error: 'No specs/ folder found. Create specs first.',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// Read planning prompt
|
|
31
|
+
const planPrompt = readFileSync(promptPlanPath, 'utf-8');
|
|
32
|
+
// Detect agent
|
|
33
|
+
const agent = await detectBestAgent();
|
|
34
|
+
if (!agent) {
|
|
35
|
+
return {
|
|
36
|
+
success: false,
|
|
37
|
+
planPath,
|
|
38
|
+
taskCount: 0,
|
|
39
|
+
error: 'No coding agent found.',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Build the full prompt
|
|
43
|
+
const fullPrompt = `${planPrompt}
|
|
44
|
+
|
|
45
|
+
Please analyze the specs/ folder and update IMPLEMENTATION_PLAN.md with a prioritized task list.
|
|
46
|
+
|
|
47
|
+
Focus on:
|
|
48
|
+
1. Reading all specification files in specs/
|
|
49
|
+
2. Understanding the current codebase state
|
|
50
|
+
3. Identifying gaps between specs and implementation
|
|
51
|
+
4. Creating actionable, small tasks
|
|
52
|
+
|
|
53
|
+
Do not implement anything - only plan.`;
|
|
54
|
+
// Run the agent in planning mode
|
|
55
|
+
const result = await runAgent(agent, {
|
|
56
|
+
task: fullPrompt,
|
|
57
|
+
cwd,
|
|
58
|
+
auto: options.auto,
|
|
59
|
+
maxTurns: 5, // Limited turns for planning
|
|
60
|
+
});
|
|
61
|
+
if (result.exitCode !== 0) {
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
planPath,
|
|
65
|
+
taskCount: 0,
|
|
66
|
+
error: `Planning failed: ${result.output.slice(0, 200)}`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// Count tasks in the plan
|
|
70
|
+
let taskCount = 0;
|
|
71
|
+
if (existsSync(planPath)) {
|
|
72
|
+
const planContent = readFileSync(planPath, 'utf-8');
|
|
73
|
+
taskCount = (planContent.match(/- \[[ x]\]/g) || []).length;
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
success: true,
|
|
77
|
+
planPath,
|
|
78
|
+
taskCount,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
return {
|
|
83
|
+
success: false,
|
|
84
|
+
planPath,
|
|
85
|
+
taskCount: 0,
|
|
86
|
+
error: error.message,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/mcp/core/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAcjE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,iCAAiC;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEpC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ;gBACR,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,2CAA2C;aACnD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ;gBACR,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,6CAA6C;aACrD,CAAC;QACJ,CAAC;QAED,uBAAuB;QACvB,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAEzD,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;QAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ;gBACR,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,wBAAwB;aAChC,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,MAAM,UAAU,GAAG,GAAG,UAAU;;;;;;;;;;uCAUG,CAAC;QAEpC,iCAAiC;QACjC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE;YACnC,IAAI,EAAE,UAAU;YAChB,GAAG;YACH,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,CAAC,EAAE,6BAA6B;SAC3C,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ;gBACR,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,oBAAoB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;aACzD,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpD,SAAS,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC9D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ;YACR,SAAS;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,SAAS,EAAE,CAAC;YACZ,KAAK,EAAG,KAAe,CAAC,OAAO;SAChC,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface RunCoreOptions {
|
|
2
|
+
path: string;
|
|
3
|
+
task?: string;
|
|
4
|
+
auto?: boolean;
|
|
5
|
+
commit?: boolean;
|
|
6
|
+
push?: boolean;
|
|
7
|
+
pr?: boolean;
|
|
8
|
+
validate?: boolean;
|
|
9
|
+
maxIterations?: number;
|
|
10
|
+
from?: string;
|
|
11
|
+
project?: string;
|
|
12
|
+
label?: string;
|
|
13
|
+
status?: string;
|
|
14
|
+
limit?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface RunCoreResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
iterations: number;
|
|
19
|
+
commits: string[];
|
|
20
|
+
error?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Core run logic without CLI dependencies
|
|
24
|
+
*/
|
|
25
|
+
export declare function runCore(options: RunCoreOptions): Promise<RunCoreResult>;
|
|
26
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/mcp/core/run.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAsH7E"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { detectBestAgent } from '../../loop/agents.js';
|
|
4
|
+
import { runLoop } from '../../loop/executor.js';
|
|
5
|
+
import { fetchFromSource } from '../../sources/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Core run logic without CLI dependencies
|
|
8
|
+
*/
|
|
9
|
+
export async function runCore(options) {
|
|
10
|
+
const cwd = options.path;
|
|
11
|
+
try {
|
|
12
|
+
// Handle --from source
|
|
13
|
+
let sourceSpec = null;
|
|
14
|
+
if (options.from) {
|
|
15
|
+
const result = await fetchFromSource(options.from, {
|
|
16
|
+
project: options.project,
|
|
17
|
+
label: options.label,
|
|
18
|
+
status: options.status,
|
|
19
|
+
limit: options.limit,
|
|
20
|
+
});
|
|
21
|
+
sourceSpec = result.content;
|
|
22
|
+
// Write to specs directory
|
|
23
|
+
const specsDir = join(cwd, 'specs');
|
|
24
|
+
if (!existsSync(specsDir)) {
|
|
25
|
+
mkdirSync(specsDir, { recursive: true });
|
|
26
|
+
}
|
|
27
|
+
const specFilename = result.title
|
|
28
|
+
? `${result.title.toLowerCase().replace(/[^a-z0-9]+/g, '-')}.md`
|
|
29
|
+
: 'source-spec.md';
|
|
30
|
+
writeFileSync(join(specsDir, specFilename), sourceSpec);
|
|
31
|
+
}
|
|
32
|
+
// Detect agent
|
|
33
|
+
const agent = await detectBestAgent();
|
|
34
|
+
if (!agent) {
|
|
35
|
+
return {
|
|
36
|
+
success: false,
|
|
37
|
+
iterations: 0,
|
|
38
|
+
commits: [],
|
|
39
|
+
error: 'No coding agent found.',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Check for Ralph Playbook files
|
|
43
|
+
const buildPromptPath = join(cwd, 'PROMPT_build.md');
|
|
44
|
+
const implementationPlanPath = join(cwd, 'IMPLEMENTATION_PLAN.md');
|
|
45
|
+
const hasPlaybook = existsSync(buildPromptPath) && existsSync(implementationPlanPath);
|
|
46
|
+
// Get task
|
|
47
|
+
let finalTask = options.task;
|
|
48
|
+
let isBuildMode = false;
|
|
49
|
+
// If we fetched from a source, use that as the task
|
|
50
|
+
if (sourceSpec && !finalTask) {
|
|
51
|
+
finalTask = `Build the following project based on this specification:
|
|
52
|
+
|
|
53
|
+
${sourceSpec}
|
|
54
|
+
|
|
55
|
+
Analyze the specification and implement all required features. Create a proper project structure with all necessary files.`;
|
|
56
|
+
}
|
|
57
|
+
if (!finalTask) {
|
|
58
|
+
// Check for Ralph Playbook build mode
|
|
59
|
+
if (hasPlaybook) {
|
|
60
|
+
const buildPrompt = readFileSync(buildPromptPath, 'utf-8');
|
|
61
|
+
const implementationPlan = readFileSync(implementationPlanPath, 'utf-8');
|
|
62
|
+
finalTask = `${buildPrompt}
|
|
63
|
+
|
|
64
|
+
## Current Implementation Plan
|
|
65
|
+
|
|
66
|
+
${implementationPlan}
|
|
67
|
+
|
|
68
|
+
Work through the tasks in the implementation plan. Mark tasks as complete as you finish them.
|
|
69
|
+
Focus on one task at a time. After completing a task, update IMPLEMENTATION_PLAN.md.`;
|
|
70
|
+
isBuildMode = true;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return {
|
|
74
|
+
success: false,
|
|
75
|
+
iterations: 0,
|
|
76
|
+
commits: [],
|
|
77
|
+
error: 'No task provided and no Ralph Playbook found.',
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Run the loop
|
|
82
|
+
const prTitle = isBuildMode
|
|
83
|
+
? 'Ralph: Implementation from plan'
|
|
84
|
+
: `Ralph: ${finalTask.slice(0, 50)}`;
|
|
85
|
+
const loopOptions = {
|
|
86
|
+
task: finalTask,
|
|
87
|
+
cwd,
|
|
88
|
+
agent,
|
|
89
|
+
maxIterations: options.maxIterations || 50,
|
|
90
|
+
auto: options.auto,
|
|
91
|
+
commit: options.commit,
|
|
92
|
+
push: options.push,
|
|
93
|
+
pr: options.pr,
|
|
94
|
+
prTitle,
|
|
95
|
+
validate: options.validate,
|
|
96
|
+
};
|
|
97
|
+
const result = await runLoop(loopOptions);
|
|
98
|
+
return {
|
|
99
|
+
success: result.success,
|
|
100
|
+
iterations: result.iterations,
|
|
101
|
+
commits: result.commits,
|
|
102
|
+
error: result.error,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
return {
|
|
107
|
+
success: false,
|
|
108
|
+
iterations: 0,
|
|
109
|
+
commits: [],
|
|
110
|
+
error: error.message,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/mcp/core/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GetPromptResult, Prompt } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Pre-built workflow prompts for ralph-starter
|
|
4
|
+
*/
|
|
5
|
+
export declare function getPrompts(): Prompt[];
|
|
6
|
+
/**
|
|
7
|
+
* Get a specific prompt with arguments filled in
|
|
8
|
+
*/
|
|
9
|
+
export declare function handleGetPrompt(name: string, args?: Record<string, string>): GetPromptResult;
|
|
10
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAElF;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,EAAE,CA8DrC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,eAAe,CAiG5F"}
|