ralph-starter 0.0.1 → 0.1.1-beta.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/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 +376 -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 +59 -8
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import inquirer from 'inquirer';
|
|
5
|
+
import ora from 'ora';
|
|
6
|
+
import YAML from 'yaml';
|
|
7
|
+
import { initGitRepo, isGitRepo } from '../automation/git.js';
|
|
8
|
+
import { detectAvailableAgents, printAgentStatus } from '../loop/agents.js';
|
|
9
|
+
export function detectProject(cwd) {
|
|
10
|
+
// Node.js
|
|
11
|
+
if (existsSync(join(cwd, 'package.json'))) {
|
|
12
|
+
try {
|
|
13
|
+
const pkg = JSON.parse(readFileSync(join(cwd, 'package.json'), 'utf-8'));
|
|
14
|
+
const scripts = pkg.scripts || {};
|
|
15
|
+
return {
|
|
16
|
+
type: 'nodejs',
|
|
17
|
+
name: pkg.name || 'project',
|
|
18
|
+
testCmd: scripts.test ? 'npm test' : undefined,
|
|
19
|
+
buildCmd: scripts.build ? 'npm run build' : undefined,
|
|
20
|
+
lintCmd: scripts.lint ? 'npm run lint' : undefined,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return { type: 'nodejs', name: 'project' };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Python
|
|
28
|
+
if (existsSync(join(cwd, 'pyproject.toml')) || existsSync(join(cwd, 'setup.py'))) {
|
|
29
|
+
return {
|
|
30
|
+
type: 'python',
|
|
31
|
+
name: 'project',
|
|
32
|
+
testCmd: 'pytest',
|
|
33
|
+
lintCmd: 'ruff check .',
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
// Rust
|
|
37
|
+
if (existsSync(join(cwd, 'Cargo.toml'))) {
|
|
38
|
+
return {
|
|
39
|
+
type: 'rust',
|
|
40
|
+
name: 'project',
|
|
41
|
+
testCmd: 'cargo test',
|
|
42
|
+
buildCmd: 'cargo build',
|
|
43
|
+
lintCmd: 'cargo clippy',
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
// Go
|
|
47
|
+
if (existsSync(join(cwd, 'go.mod'))) {
|
|
48
|
+
return {
|
|
49
|
+
type: 'go',
|
|
50
|
+
name: 'project',
|
|
51
|
+
testCmd: 'go test ./...',
|
|
52
|
+
buildCmd: 'go build ./...',
|
|
53
|
+
lintCmd: 'golangci-lint run',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return { type: 'unknown', name: 'project' };
|
|
57
|
+
}
|
|
58
|
+
export function detectRalphPlaybook(cwd) {
|
|
59
|
+
const files = {
|
|
60
|
+
agentsMd: existsSync(join(cwd, 'AGENTS.md')),
|
|
61
|
+
implementationPlan: existsSync(join(cwd, 'IMPLEMENTATION_PLAN.md')),
|
|
62
|
+
promptBuild: existsSync(join(cwd, 'PROMPT_build.md')),
|
|
63
|
+
promptPlan: existsSync(join(cwd, 'PROMPT_plan.md')),
|
|
64
|
+
specsDir: existsSync(join(cwd, 'specs')),
|
|
65
|
+
ralphConfig: existsSync(join(cwd, '.ralph', 'config.yaml')),
|
|
66
|
+
};
|
|
67
|
+
// Consider it a playbook if AGENTS.md exists (primary marker)
|
|
68
|
+
const hasPlaybook = files.agentsMd;
|
|
69
|
+
// Check for README.md and extract first paragraph as description
|
|
70
|
+
let readme;
|
|
71
|
+
const readmePath = join(cwd, 'README.md');
|
|
72
|
+
if (existsSync(readmePath)) {
|
|
73
|
+
try {
|
|
74
|
+
const content = readFileSync(readmePath, 'utf-8');
|
|
75
|
+
// Extract first non-heading, non-empty paragraph
|
|
76
|
+
const lines = content.split('\n');
|
|
77
|
+
let description;
|
|
78
|
+
for (const line of lines) {
|
|
79
|
+
const trimmed = line.trim();
|
|
80
|
+
// Skip empty lines, headings, and blockquotes
|
|
81
|
+
if (!trimmed || trimmed.startsWith('#') || trimmed.startsWith('>')) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
// Found first content paragraph
|
|
85
|
+
description = trimmed;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
readme = { exists: true, description };
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
readme = { exists: true };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return { hasPlaybook, files, readme };
|
|
95
|
+
}
|
|
96
|
+
function generateAgentsMd(project) {
|
|
97
|
+
const validationCmds = [project.testCmd, project.buildCmd, project.lintCmd].filter(Boolean);
|
|
98
|
+
return `# AGENTS.md
|
|
99
|
+
|
|
100
|
+
This file defines how Ralph operates in this project.
|
|
101
|
+
|
|
102
|
+
## Validation Commands
|
|
103
|
+
|
|
104
|
+
Run these after each task to ensure quality:
|
|
105
|
+
|
|
106
|
+
\`\`\`bash
|
|
107
|
+
${validationCmds.length > 0 ? validationCmds.join('\n') : '# Add your test/build/lint commands here'}
|
|
108
|
+
\`\`\`
|
|
109
|
+
|
|
110
|
+
## Build Instructions
|
|
111
|
+
|
|
112
|
+
${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' : ''}
|
|
113
|
+
${project.type === 'python' ? '1. Create virtual environment: `python -m venv venv`\n2. Install dependencies: `pip install -e .`\n3. Run tests: `pytest`' : ''}
|
|
114
|
+
${project.type === 'rust' ? '1. Run `cargo build` to compile\n2. Run `cargo test` to verify' : ''}
|
|
115
|
+
${project.type === 'go' ? '1. Run `go mod tidy` to sync dependencies\n2. Run `go build ./...` to compile\n3. Run `go test ./...` to verify' : ''}
|
|
116
|
+
${project.type === 'unknown' ? '1. Add your build instructions here' : ''}
|
|
117
|
+
|
|
118
|
+
## Code Patterns
|
|
119
|
+
|
|
120
|
+
- Follow existing code style
|
|
121
|
+
- Add tests for new functionality
|
|
122
|
+
- Keep functions small and focused
|
|
123
|
+
- Use meaningful names
|
|
124
|
+
|
|
125
|
+
## Task Completion
|
|
126
|
+
|
|
127
|
+
A task is complete when:
|
|
128
|
+
1. All validation commands pass
|
|
129
|
+
2. Code is committed (if auto-commit enabled)
|
|
130
|
+
3. No TODO comments left unaddressed
|
|
131
|
+
`;
|
|
132
|
+
}
|
|
133
|
+
function generatePromptBuild() {
|
|
134
|
+
return `# Building Mode
|
|
135
|
+
|
|
136
|
+
You are in BUILDING mode. Execute tasks from the implementation plan.
|
|
137
|
+
|
|
138
|
+
## Process
|
|
139
|
+
|
|
140
|
+
1. Read IMPLEMENTATION_PLAN.md for the current task
|
|
141
|
+
2. Implement the task following patterns in AGENTS.md
|
|
142
|
+
3. Run validation commands after each change
|
|
143
|
+
4. If tests fail, fix the issues before moving on
|
|
144
|
+
5. Mark the task as complete in IMPLEMENTATION_PLAN.md
|
|
145
|
+
6. Move to the next task
|
|
146
|
+
|
|
147
|
+
## Rules
|
|
148
|
+
|
|
149
|
+
- One task at a time
|
|
150
|
+
- Validate after each change
|
|
151
|
+
- Commit working code only
|
|
152
|
+
- Update the plan as you learn
|
|
153
|
+
- Only link to pages that exist - use "#" for placeholder links
|
|
154
|
+
- Use realistic placeholder data (names, dates, content)
|
|
155
|
+
|
|
156
|
+
## Completion Signal
|
|
157
|
+
|
|
158
|
+
When all tasks are done, output: <TASK_DONE>
|
|
159
|
+
If blocked, output: <TASK_BLOCKED> with explanation
|
|
160
|
+
`;
|
|
161
|
+
}
|
|
162
|
+
function generatePromptPlan() {
|
|
163
|
+
return `# Planning Mode
|
|
164
|
+
|
|
165
|
+
You are in PLANNING mode. Analyze specs and create an implementation plan.
|
|
166
|
+
|
|
167
|
+
## Process
|
|
168
|
+
|
|
169
|
+
1. Read all files in specs/ folder
|
|
170
|
+
2. Analyze existing codebase
|
|
171
|
+
3. Identify gaps between specs and implementation
|
|
172
|
+
4. Create prioritized task list in IMPLEMENTATION_PLAN.md
|
|
173
|
+
|
|
174
|
+
## Task Format
|
|
175
|
+
|
|
176
|
+
Each task in IMPLEMENTATION_PLAN.md should have:
|
|
177
|
+
- [ ] Clear, actionable description
|
|
178
|
+
- Acceptance criteria
|
|
179
|
+
- Dependencies (if any)
|
|
180
|
+
|
|
181
|
+
## Rules
|
|
182
|
+
|
|
183
|
+
- Do NOT implement anything
|
|
184
|
+
- Only analyze and plan
|
|
185
|
+
- Keep tasks small (< 30 min each)
|
|
186
|
+
- Order by dependencies
|
|
187
|
+
|
|
188
|
+
## Output
|
|
189
|
+
|
|
190
|
+
Update IMPLEMENTATION_PLAN.md with the task list.
|
|
191
|
+
`;
|
|
192
|
+
}
|
|
193
|
+
function generateImplementationPlan() {
|
|
194
|
+
return `# Implementation Plan
|
|
195
|
+
|
|
196
|
+
> Auto-generated by Ralph. Update as tasks complete.
|
|
197
|
+
|
|
198
|
+
## Status
|
|
199
|
+
|
|
200
|
+
- [ ] Task 1: (describe first task)
|
|
201
|
+
- [ ] Task 2: (describe second task)
|
|
202
|
+
|
|
203
|
+
## Notes
|
|
204
|
+
|
|
205
|
+
Add discoveries and learnings here as you work.
|
|
206
|
+
`;
|
|
207
|
+
}
|
|
208
|
+
export async function initCommand(_options) {
|
|
209
|
+
const cwd = process.cwd();
|
|
210
|
+
const spinner = ora();
|
|
211
|
+
console.log();
|
|
212
|
+
console.log(chalk.cyan.bold('Initialize Ralph Wiggum'));
|
|
213
|
+
console.log(chalk.dim('Set up autonomous AI coding loops (Ralph Playbook)'));
|
|
214
|
+
console.log();
|
|
215
|
+
// Check if already initialized
|
|
216
|
+
if (existsSync(join(cwd, 'AGENTS.md'))) {
|
|
217
|
+
console.log(chalk.yellow('Ralph Playbook files already exist.'));
|
|
218
|
+
console.log(chalk.dim('Files: AGENTS.md, PROMPT_*.md, specs/'));
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
// Detect project
|
|
222
|
+
const project = detectProject(cwd);
|
|
223
|
+
console.log(chalk.dim(`Detected: ${project.type === 'unknown' ? 'New project' : project.type}`));
|
|
224
|
+
console.log();
|
|
225
|
+
// Check git
|
|
226
|
+
const hasGit = await isGitRepo(cwd);
|
|
227
|
+
if (!hasGit) {
|
|
228
|
+
const { initGit } = await inquirer.prompt([
|
|
229
|
+
{
|
|
230
|
+
type: 'confirm',
|
|
231
|
+
name: 'initGit',
|
|
232
|
+
message: 'No git repo found. Initialize one?',
|
|
233
|
+
default: true,
|
|
234
|
+
},
|
|
235
|
+
]);
|
|
236
|
+
if (initGit) {
|
|
237
|
+
await initGitRepo(cwd);
|
|
238
|
+
console.log(chalk.green('Git repository initialized'));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Detect available agents
|
|
242
|
+
spinner.start('Detecting available agents...');
|
|
243
|
+
const agents = await detectAvailableAgents();
|
|
244
|
+
const availableAgents = agents.filter((a) => a.available);
|
|
245
|
+
spinner.stop();
|
|
246
|
+
if (availableAgents.length === 0) {
|
|
247
|
+
console.log(chalk.red('No coding agents found!'));
|
|
248
|
+
printAgentStatus(agents);
|
|
249
|
+
console.log(chalk.yellow('Please install one of the agents above first.'));
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
printAgentStatus(agents);
|
|
253
|
+
// Select default agent
|
|
254
|
+
let selectedAgent;
|
|
255
|
+
if (availableAgents.length === 1) {
|
|
256
|
+
selectedAgent = availableAgents[0];
|
|
257
|
+
console.log(chalk.dim(`Using: ${selectedAgent.name}`));
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
const { agent } = await inquirer.prompt([
|
|
261
|
+
{
|
|
262
|
+
type: 'list',
|
|
263
|
+
name: 'agent',
|
|
264
|
+
message: 'Select default coding agent:',
|
|
265
|
+
choices: availableAgents.map((a) => ({
|
|
266
|
+
name: a.name,
|
|
267
|
+
value: a,
|
|
268
|
+
})),
|
|
269
|
+
},
|
|
270
|
+
]);
|
|
271
|
+
selectedAgent = agent;
|
|
272
|
+
}
|
|
273
|
+
// Create Ralph Playbook files
|
|
274
|
+
spinner.start('Creating Ralph Playbook files...');
|
|
275
|
+
// AGENTS.md
|
|
276
|
+
writeFileSync(join(cwd, 'AGENTS.md'), generateAgentsMd(project));
|
|
277
|
+
// PROMPT files
|
|
278
|
+
writeFileSync(join(cwd, 'PROMPT_build.md'), generatePromptBuild());
|
|
279
|
+
writeFileSync(join(cwd, 'PROMPT_plan.md'), generatePromptPlan());
|
|
280
|
+
// Implementation plan
|
|
281
|
+
writeFileSync(join(cwd, 'IMPLEMENTATION_PLAN.md'), generateImplementationPlan());
|
|
282
|
+
// specs folder (empty - user creates their own specs)
|
|
283
|
+
const specsDir = join(cwd, 'specs');
|
|
284
|
+
if (!existsSync(specsDir)) {
|
|
285
|
+
mkdirSync(specsDir, { recursive: true });
|
|
286
|
+
}
|
|
287
|
+
spinner.succeed('Ralph Playbook files created');
|
|
288
|
+
// Create .ralph config
|
|
289
|
+
const ralphDir = join(cwd, '.ralph');
|
|
290
|
+
if (!existsSync(ralphDir)) {
|
|
291
|
+
mkdirSync(ralphDir, { recursive: true });
|
|
292
|
+
const config = {
|
|
293
|
+
agent: selectedAgent.type,
|
|
294
|
+
auto_commit: true,
|
|
295
|
+
max_iterations: 50,
|
|
296
|
+
validation: {
|
|
297
|
+
test: project.testCmd || null,
|
|
298
|
+
build: project.buildCmd || null,
|
|
299
|
+
lint: project.lintCmd || null,
|
|
300
|
+
},
|
|
301
|
+
};
|
|
302
|
+
writeFileSync(join(ralphDir, 'config.yaml'), YAML.stringify(config));
|
|
303
|
+
}
|
|
304
|
+
// Create .claude/CLAUDE.md if using Claude Code
|
|
305
|
+
if (selectedAgent.type === 'claude-code') {
|
|
306
|
+
const claudeDir = join(cwd, '.claude');
|
|
307
|
+
if (!existsSync(claudeDir)) {
|
|
308
|
+
mkdirSync(claudeDir, { recursive: true });
|
|
309
|
+
}
|
|
310
|
+
const claudeMd = `# Project
|
|
311
|
+
|
|
312
|
+
This project uses Ralph Wiggum methodology for autonomous AI development.
|
|
313
|
+
|
|
314
|
+
## Quick Reference
|
|
315
|
+
|
|
316
|
+
- **Planning**: \`ralph-starter plan\` - Analyze specs and create task list
|
|
317
|
+
- **Building**: \`ralph-starter run\` - Execute tasks from the plan
|
|
318
|
+
- **Specs**: See \`specs/\` folder for requirements
|
|
319
|
+
- **Plan**: See \`IMPLEMENTATION_PLAN.md\` for current tasks
|
|
320
|
+
|
|
321
|
+
## Workflow
|
|
322
|
+
|
|
323
|
+
1. Write specs in \`specs/\` folder
|
|
324
|
+
2. Run \`ralph-starter plan\` to generate tasks
|
|
325
|
+
3. Run \`ralph-starter run --commit\` to execute
|
|
326
|
+
|
|
327
|
+
## Validation
|
|
328
|
+
|
|
329
|
+
Always run these after changes:
|
|
330
|
+
${project.testCmd ? `- \`${project.testCmd}\`` : ''}
|
|
331
|
+
${project.buildCmd ? `- \`${project.buildCmd}\`` : ''}
|
|
332
|
+
${project.lintCmd ? `- \`${project.lintCmd}\`` : ''}
|
|
333
|
+
`;
|
|
334
|
+
writeFileSync(join(claudeDir, 'CLAUDE.md'), claudeMd);
|
|
335
|
+
console.log(chalk.dim('Created .claude/CLAUDE.md'));
|
|
336
|
+
}
|
|
337
|
+
console.log();
|
|
338
|
+
console.log(chalk.green.bold('Ralph Playbook initialized!'));
|
|
339
|
+
console.log();
|
|
340
|
+
console.log(chalk.yellow('Created files:'));
|
|
341
|
+
console.log(chalk.gray(' AGENTS.md # How to build/test'));
|
|
342
|
+
console.log(chalk.gray(' PROMPT_build.md # Building mode instructions'));
|
|
343
|
+
console.log(chalk.gray(' PROMPT_plan.md # Planning mode instructions'));
|
|
344
|
+
console.log(chalk.gray(' IMPLEMENTATION_PLAN.md # Task list'));
|
|
345
|
+
console.log(chalk.gray(' specs/ # Add your specs here'));
|
|
346
|
+
console.log();
|
|
347
|
+
console.log(chalk.yellow('Next steps:'));
|
|
348
|
+
console.log(chalk.gray(' 1. Add your specs to the specs/ folder'));
|
|
349
|
+
console.log(chalk.gray(' 2. Run: ralph-starter plan # Generate task list'));
|
|
350
|
+
console.log(chalk.gray(' 3. Run: ralph-starter run # Execute tasks'));
|
|
351
|
+
console.log();
|
|
352
|
+
}
|
|
353
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAc,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgBxF,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,UAAU;IACV,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACzE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;YAClC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;gBAC3B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC9C,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;gBACrD,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;aACnD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,SAAS;IACT,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QACjF,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;IAED,OAAO;IACP,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;IAED,KAAK;IACL,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,gBAAgB;YAC1B,OAAO,EAAE,mBAAmB;SAC7B,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC;AAkBD,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,KAAK,GAAG;QACZ,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC5C,kBAAkB,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;QACnE,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACrD,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACnD,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;KAC5D,CAAC;IAEF,8DAA8D;IAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEnC,iEAAiE;IACjE,IAAI,MAAmC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClD,iDAAiD;YACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,WAA+B,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,8CAA8C;gBAC9C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnE,SAAS;gBACX,CAAC;gBACD,gCAAgC;gBAChC,WAAW,GAAG,OAAO,CAAC;gBACtB,MAAM;YACR,CAAC;YACD,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAoB;IAC5C,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5F,OAAO;;;;;;;;;EASP,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0CAA0C;;;;;EAKlG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,4HAA4H,CAAC,CAAC,CAAC,EAAE;EAC7J,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,2HAA2H,CAAC,CAAC,CAAC,EAAE;EAC5J,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,EAAE;EAC/F,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,iHAAiH,CAAC,CAAC,CAAC,EAAE;EAC9I,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;CAexE,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BR,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BR,CAAC;AACF,CAAC;AAED,SAAS,0BAA0B;IACjC,OAAO;;;;;;;;;;;;CAYR,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAqB;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IAEtB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,+BAA+B;IAC/B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,iBAAiB;IACjB,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,YAAY;IACZ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,oCAAoC;gBAC7C,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAClD,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,uBAAuB;IACvB,IAAI,aAAoB,CAAC;IACzB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACtC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,8BAA8B;gBACvC,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;QACH,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,8BAA8B;IAC9B,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAElD,YAAY;IACZ,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjE,eAAe;IACf,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACnE,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAEjE,sBAAsB;IACtB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAEjF,sDAAsD;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAEhD,uBAAuB;IACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,aAAa,CAAC,IAAI;YACzB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,EAAE;YAClB,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;gBAC7B,KAAK,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;gBAC/B,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;aAC9B;SACF,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,gDAAgD;IAChD,IAAI,aAAa,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;EAoBnB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE;EACjD,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE;EACnD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE;CAClD,CAAC;QAEE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface IntegrationsCommandOptions {
|
|
2
|
+
project?: string;
|
|
3
|
+
label?: string;
|
|
4
|
+
status?: string;
|
|
5
|
+
limit?: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Integrations command - list, help, and test integrations
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ralph-starter integrations list - List all integrations with status
|
|
12
|
+
* ralph-starter integrations help <name> - Show help for a specific integration
|
|
13
|
+
* ralph-starter integrations test <name> - Test integration connectivity
|
|
14
|
+
* ralph-starter integrations fetch <name> - Fetch and preview data
|
|
15
|
+
*/
|
|
16
|
+
export declare function integrationsCommand(action: string, args: string[], options?: IntegrationsCommandOptions): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=integrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/commands/integrations.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,0BAA0B;IACzC,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;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,IAAI,CAAC,CAoCf"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { fetchFromIntegration, getIntegration, getIntegrationsInfo, } from '../integrations/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Integrations command - list, help, and test integrations
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ralph-starter integrations list - List all integrations with status
|
|
9
|
+
* ralph-starter integrations help <name> - Show help for a specific integration
|
|
10
|
+
* ralph-starter integrations test <name> - Test integration connectivity
|
|
11
|
+
* ralph-starter integrations fetch <name> - Fetch and preview data
|
|
12
|
+
*/
|
|
13
|
+
export async function integrationsCommand(action, args, options) {
|
|
14
|
+
switch (action) {
|
|
15
|
+
case 'list':
|
|
16
|
+
case 'ls':
|
|
17
|
+
await listIntegrations();
|
|
18
|
+
break;
|
|
19
|
+
case 'help':
|
|
20
|
+
if (args.length < 1) {
|
|
21
|
+
console.error(chalk.red('Usage: ralph-starter integrations help <name>'));
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
showIntegrationHelp(args[0]);
|
|
25
|
+
break;
|
|
26
|
+
case 'test':
|
|
27
|
+
if (args.length < 1) {
|
|
28
|
+
console.error(chalk.red('Usage: ralph-starter integrations test <name>'));
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
await testIntegration(args[0]);
|
|
32
|
+
break;
|
|
33
|
+
case 'fetch':
|
|
34
|
+
case 'preview':
|
|
35
|
+
if (args.length < 2) {
|
|
36
|
+
console.error(chalk.red('Usage: ralph-starter integrations fetch <name> <identifier>'));
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
await fetchAndPreview(args[0], args[1], options);
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
showCommandHelp();
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async function listIntegrations() {
|
|
47
|
+
const spinner = ora('Loading integrations...').start();
|
|
48
|
+
try {
|
|
49
|
+
const integrations = await getIntegrationsInfo();
|
|
50
|
+
spinner.stop();
|
|
51
|
+
console.log();
|
|
52
|
+
console.log(chalk.bold.cyan('Available Integrations'));
|
|
53
|
+
console.log(chalk.dim('─'.repeat(60)));
|
|
54
|
+
console.log();
|
|
55
|
+
for (const integration of integrations) {
|
|
56
|
+
// Status indicator
|
|
57
|
+
const statusIcon = integration.available ? chalk.green('✓') : chalk.yellow('○');
|
|
58
|
+
// Auth methods
|
|
59
|
+
const authBadges = integration.authMethods.map((m) => {
|
|
60
|
+
switch (m) {
|
|
61
|
+
case 'cli':
|
|
62
|
+
return chalk.blue('CLI');
|
|
63
|
+
case 'api-key':
|
|
64
|
+
return chalk.magenta('API Key');
|
|
65
|
+
case 'oauth':
|
|
66
|
+
return chalk.cyan('OAuth');
|
|
67
|
+
case 'none':
|
|
68
|
+
return chalk.gray('No Auth');
|
|
69
|
+
default:
|
|
70
|
+
return m;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
// Display
|
|
74
|
+
console.log(` ${statusIcon} ${chalk.bold(integration.displayName)} ${chalk.dim(`(${integration.name})`)}`);
|
|
75
|
+
console.log(` ${chalk.dim(integration.description)}`);
|
|
76
|
+
console.log(` ${chalk.dim('Auth:')} ${authBadges.join(', ')}`);
|
|
77
|
+
if (!integration.available) {
|
|
78
|
+
console.log(` ${chalk.yellow('→')} Run: ${chalk.cyan(`ralph-starter integrations help ${integration.name}`)}`);
|
|
79
|
+
}
|
|
80
|
+
console.log();
|
|
81
|
+
}
|
|
82
|
+
console.log(chalk.dim('─'.repeat(60)));
|
|
83
|
+
console.log(chalk.dim('Use "ralph-starter integrations help <name>" for setup instructions'));
|
|
84
|
+
console.log();
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
spinner.fail('Failed to load integrations');
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function showIntegrationHelp(name) {
|
|
92
|
+
const integration = getIntegration(name);
|
|
93
|
+
if (!integration) {
|
|
94
|
+
console.error(chalk.red(`Unknown integration: ${name}`));
|
|
95
|
+
console.error(chalk.dim('\nUse "ralph-starter integrations list" to see available integrations'));
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
console.log();
|
|
99
|
+
console.log(integration.getHelp());
|
|
100
|
+
console.log();
|
|
101
|
+
}
|
|
102
|
+
async function testIntegration(name) {
|
|
103
|
+
const spinner = ora(`Testing ${name}...`).start();
|
|
104
|
+
const integration = getIntegration(name);
|
|
105
|
+
if (!integration) {
|
|
106
|
+
spinner.fail(`Unknown integration: ${name}`);
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
const available = await integration.isAvailable();
|
|
111
|
+
const authMethod = await integration.getConfiguredAuthMethod();
|
|
112
|
+
if (available && authMethod) {
|
|
113
|
+
spinner.succeed(chalk.green(`${integration.displayName}: Connected via ${authMethod}`));
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
spinner.fail(chalk.yellow(`${integration.displayName}: Not configured`));
|
|
117
|
+
console.log();
|
|
118
|
+
console.log(chalk.dim('Run the following for setup instructions:'));
|
|
119
|
+
console.log(chalk.cyan(` ralph-starter integrations help ${name}`));
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
spinner.fail(`${integration.displayName}: ${error.message}`);
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async function fetchAndPreview(name, identifier, options) {
|
|
129
|
+
const spinner = ora(`Fetching from ${name}...`).start();
|
|
130
|
+
try {
|
|
131
|
+
const result = await fetchFromIntegration(name, identifier, {
|
|
132
|
+
project: options?.project,
|
|
133
|
+
label: options?.label,
|
|
134
|
+
status: options?.status,
|
|
135
|
+
limit: options?.limit || 5,
|
|
136
|
+
});
|
|
137
|
+
spinner.succeed('Content fetched');
|
|
138
|
+
console.log();
|
|
139
|
+
console.log(chalk.bold.cyan('Source:'), result.source);
|
|
140
|
+
if (result.title) {
|
|
141
|
+
console.log(chalk.bold.cyan('Title:'), result.title);
|
|
142
|
+
}
|
|
143
|
+
if (result.metadata) {
|
|
144
|
+
console.log(chalk.bold.cyan('Metadata:'), JSON.stringify(result.metadata, null, 2));
|
|
145
|
+
}
|
|
146
|
+
console.log();
|
|
147
|
+
console.log(chalk.bold('Preview:'));
|
|
148
|
+
console.log(chalk.dim('─'.repeat(60)));
|
|
149
|
+
// Show first 50 lines
|
|
150
|
+
const lines = result.content.split('\n');
|
|
151
|
+
const preview = lines.slice(0, 50).join('\n');
|
|
152
|
+
console.log(preview);
|
|
153
|
+
if (lines.length > 50) {
|
|
154
|
+
console.log(chalk.dim(`\n... and ${lines.length - 50} more lines`));
|
|
155
|
+
}
|
|
156
|
+
console.log(chalk.dim('─'.repeat(60)));
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
spinner.fail('Failed to fetch content');
|
|
160
|
+
console.error(chalk.red(error.message));
|
|
161
|
+
process.exit(1);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function showCommandHelp() {
|
|
165
|
+
console.log(`
|
|
166
|
+
${chalk.bold('ralph-starter integrations')} - Manage integrations
|
|
167
|
+
|
|
168
|
+
${chalk.bold('Commands:')}
|
|
169
|
+
list List all integrations with status
|
|
170
|
+
help <name> Show help for a specific integration
|
|
171
|
+
test <name> Test integration connectivity
|
|
172
|
+
fetch <name> <identifier> Fetch and preview data
|
|
173
|
+
|
|
174
|
+
${chalk.bold('Fetch Options:')}
|
|
175
|
+
--project <name> Project/repo name
|
|
176
|
+
--label <name> Filter by label
|
|
177
|
+
--status <status> Filter by status (e.g., open, closed)
|
|
178
|
+
--limit <n> Maximum items to fetch
|
|
179
|
+
|
|
180
|
+
${chalk.bold('Available Integrations:')}
|
|
181
|
+
github GitHub issues and PRs
|
|
182
|
+
linear Linear issues
|
|
183
|
+
notion Notion pages (public and private)
|
|
184
|
+
|
|
185
|
+
${chalk.bold('Examples:')}
|
|
186
|
+
ralph-starter integrations list
|
|
187
|
+
ralph-starter integrations help github
|
|
188
|
+
ralph-starter integrations test linear
|
|
189
|
+
ralph-starter integrations fetch github owner/repo
|
|
190
|
+
ralph-starter integrations fetch notion "https://notion.so/Page-abc123"
|
|
191
|
+
`);
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=integrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/commands/integrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmF5E"}
|