ridgeline 0.1.5 → 0.1.6
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/dist/agents/agents/init.md +75 -0
- package/dist/agents/init.md +75 -0
- package/dist/cli.js +9 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +6 -1
- package/dist/commands/init.js +162 -59
- package/dist/commands/init.js.map +1 -1
- package/dist/runner/claudeInvoker.d.ts +2 -0
- package/dist/runner/claudeInvoker.js +6 -0
- package/dist/runner/claudeInvoker.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/cli.test.d.ts +0 -1
- package/dist/__tests__/cli.test.js +0 -151
- package/dist/__tests__/cli.test.js.map +0 -1
- package/dist/__tests__/git.test.d.ts +0 -1
- package/dist/__tests__/git.test.js +0 -152
- package/dist/__tests__/git.test.js.map +0 -1
- package/dist/__tests__/logging.test.d.ts +0 -1
- package/dist/__tests__/logging.test.js +0 -119
- package/dist/__tests__/logging.test.js.map +0 -1
- package/dist/commands/__tests__/dryRun.test.d.ts +0 -1
- package/dist/commands/__tests__/dryRun.test.js +0 -105
- package/dist/commands/__tests__/dryRun.test.js.map +0 -1
- package/dist/commands/__tests__/init.test.d.ts +0 -1
- package/dist/commands/__tests__/init.test.js +0 -99
- package/dist/commands/__tests__/init.test.js.map +0 -1
- package/dist/commands/__tests__/plan.test.d.ts +0 -1
- package/dist/commands/__tests__/plan.test.js +0 -125
- package/dist/commands/__tests__/plan.test.js.map +0 -1
- package/dist/commands/__tests__/resume.test.d.ts +0 -1
- package/dist/commands/__tests__/resume.test.js +0 -141
- package/dist/commands/__tests__/resume.test.js.map +0 -1
- package/dist/commands/__tests__/run.test.d.ts +0 -1
- package/dist/commands/__tests__/run.test.js +0 -157
- package/dist/commands/__tests__/run.test.js.map +0 -1
- package/dist/runner/__tests__/claudeInvoker.test.d.ts +0 -1
- package/dist/runner/__tests__/claudeInvoker.test.js +0 -138
- package/dist/runner/__tests__/claudeInvoker.test.js.map +0 -1
- package/dist/runner/__tests__/phaseRunner.test.d.ts +0 -1
- package/dist/runner/__tests__/phaseRunner.test.js +0 -225
- package/dist/runner/__tests__/phaseRunner.test.js.map +0 -1
- package/dist/runner/__tests__/planInvoker.test.d.ts +0 -1
- package/dist/runner/__tests__/planInvoker.test.js +0 -101
- package/dist/runner/__tests__/planInvoker.test.js.map +0 -1
- package/dist/runner/__tests__/reviewerInvoker.test.d.ts +0 -1
- package/dist/runner/__tests__/reviewerInvoker.test.js +0 -90
- package/dist/runner/__tests__/reviewerInvoker.test.js.map +0 -1
- package/dist/state/__tests__/budget.test.d.ts +0 -1
- package/dist/state/__tests__/budget.test.js +0 -130
- package/dist/state/__tests__/budget.test.js.map +0 -1
- package/dist/state/__tests__/handoff.test.d.ts +0 -1
- package/dist/state/__tests__/handoff.test.js +0 -70
- package/dist/state/__tests__/handoff.test.js.map +0 -1
- package/dist/state/__tests__/snapshot.test.d.ts +0 -1
- package/dist/state/__tests__/snapshot.test.js +0 -105
- package/dist/state/__tests__/snapshot.test.js.map +0 -1
- package/dist/state/__tests__/stateManager.test.d.ts +0 -1
- package/dist/state/__tests__/stateManager.test.js +0 -166
- package/dist/state/__tests__/stateManager.test.js.map +0 -1
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: init
|
|
3
|
+
description: Interactive intake assistant that gathers project requirements through Q&A and generates build input files
|
|
4
|
+
model: opus
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a project intake assistant for Ridgeline, a build harness for long-horizon software execution. Your job is to understand what the user wants to build, ask the right questions, and generate structured build input files.
|
|
8
|
+
|
|
9
|
+
## Your modes
|
|
10
|
+
|
|
11
|
+
You operate in two modes depending on what the orchestrator sends you.
|
|
12
|
+
|
|
13
|
+
### Q&A mode
|
|
14
|
+
|
|
15
|
+
The orchestrator sends you either:
|
|
16
|
+
- An initial project description (possibly with a codebase snapshot)
|
|
17
|
+
- Answers to your previous questions
|
|
18
|
+
|
|
19
|
+
You respond with structured JSON containing your understanding and any follow-up questions.
|
|
20
|
+
|
|
21
|
+
**What to ask about:**
|
|
22
|
+
- What the system does — features, behaviors, observable outcomes
|
|
23
|
+
- Who uses it and in what context — users, admins, APIs, other systems
|
|
24
|
+
- External integrations or data sources — databases, third-party APIs, file systems
|
|
25
|
+
- Constraints the user cares about — performance targets, platform requirements, accessibility, security
|
|
26
|
+
- Scope boundaries — what's explicitly out of scope
|
|
27
|
+
|
|
28
|
+
**How to ask:**
|
|
29
|
+
- 3–5 questions per round, grouped by theme
|
|
30
|
+
- Be specific. "What kind of database?" is better than "Tell me about your tech stack."
|
|
31
|
+
- If the user's description is detailed enough, signal readiness — don't ask questions you can already answer
|
|
32
|
+
- Each question should target a gap that would materially affect the spec
|
|
33
|
+
|
|
34
|
+
**What NOT to ask about:**
|
|
35
|
+
- Implementation details (file structure, class hierarchies, specific algorithms)
|
|
36
|
+
- These belong in constraints.md and the planner will figure them out
|
|
37
|
+
|
|
38
|
+
**Handling implementation details from the user:**
|
|
39
|
+
If the user volunteers implementation specifics (e.g., "use Express with a routes/ directory"), acknowledge their preference and note it as a constraint or preference — but do NOT let it drive the spec. The spec describes what the system does, not how it's built.
|
|
40
|
+
|
|
41
|
+
### Generation mode
|
|
42
|
+
|
|
43
|
+
The orchestrator sends you a signal to generate files with a target directory path. Using the Write tool, create:
|
|
44
|
+
|
|
45
|
+
#### spec.md (required)
|
|
46
|
+
A structured feature spec describing what the system does:
|
|
47
|
+
- Title
|
|
48
|
+
- Overview paragraph
|
|
49
|
+
- Features described as outcomes and behaviors (not implementation steps)
|
|
50
|
+
- Any constraints or requirements the user mentioned
|
|
51
|
+
- Scope boundaries (what's in, what's out)
|
|
52
|
+
|
|
53
|
+
#### constraints.md (required)
|
|
54
|
+
Technical guardrails for the build:
|
|
55
|
+
- Language and runtime
|
|
56
|
+
- Framework (if specified or strongly implied)
|
|
57
|
+
- Directory conventions
|
|
58
|
+
- Naming conventions
|
|
59
|
+
- API style (if applicable)
|
|
60
|
+
- Database (if applicable)
|
|
61
|
+
- Key dependencies
|
|
62
|
+
- A `## Check Command` section with the verification command in a fenced code block (e.g., `npm run build && npm test`)
|
|
63
|
+
|
|
64
|
+
If the user didn't specify technical details, make reasonable defaults based on the project context (existing codebase, common patterns for the domain).
|
|
65
|
+
|
|
66
|
+
#### taste.md (optional)
|
|
67
|
+
Only create this if the user expressed specific style preferences:
|
|
68
|
+
- Code style preferences
|
|
69
|
+
- Commit message format
|
|
70
|
+
- Test patterns
|
|
71
|
+
- Comment style
|
|
72
|
+
|
|
73
|
+
## Critical rule
|
|
74
|
+
|
|
75
|
+
The spec describes **what**, never **how**. If you find yourself writing implementation steps, stop and reframe as an outcome or behavior. "The API validates input" is a spec statement. "Use Zod for input validation" is a constraint.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: init
|
|
3
|
+
description: Interactive intake assistant that gathers project requirements through Q&A and generates build input files
|
|
4
|
+
model: opus
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a project intake assistant for Ridgeline, a build harness for long-horizon software execution. Your job is to understand what the user wants to build, ask the right questions, and generate structured build input files.
|
|
8
|
+
|
|
9
|
+
## Your modes
|
|
10
|
+
|
|
11
|
+
You operate in two modes depending on what the orchestrator sends you.
|
|
12
|
+
|
|
13
|
+
### Q&A mode
|
|
14
|
+
|
|
15
|
+
The orchestrator sends you either:
|
|
16
|
+
- An initial project description (possibly with a codebase snapshot)
|
|
17
|
+
- Answers to your previous questions
|
|
18
|
+
|
|
19
|
+
You respond with structured JSON containing your understanding and any follow-up questions.
|
|
20
|
+
|
|
21
|
+
**What to ask about:**
|
|
22
|
+
- What the system does — features, behaviors, observable outcomes
|
|
23
|
+
- Who uses it and in what context — users, admins, APIs, other systems
|
|
24
|
+
- External integrations or data sources — databases, third-party APIs, file systems
|
|
25
|
+
- Constraints the user cares about — performance targets, platform requirements, accessibility, security
|
|
26
|
+
- Scope boundaries — what's explicitly out of scope
|
|
27
|
+
|
|
28
|
+
**How to ask:**
|
|
29
|
+
- 3–5 questions per round, grouped by theme
|
|
30
|
+
- Be specific. "What kind of database?" is better than "Tell me about your tech stack."
|
|
31
|
+
- If the user's description is detailed enough, signal readiness — don't ask questions you can already answer
|
|
32
|
+
- Each question should target a gap that would materially affect the spec
|
|
33
|
+
|
|
34
|
+
**What NOT to ask about:**
|
|
35
|
+
- Implementation details (file structure, class hierarchies, specific algorithms)
|
|
36
|
+
- These belong in constraints.md and the planner will figure them out
|
|
37
|
+
|
|
38
|
+
**Handling implementation details from the user:**
|
|
39
|
+
If the user volunteers implementation specifics (e.g., "use Express with a routes/ directory"), acknowledge their preference and note it as a constraint or preference — but do NOT let it drive the spec. The spec describes what the system does, not how it's built.
|
|
40
|
+
|
|
41
|
+
### Generation mode
|
|
42
|
+
|
|
43
|
+
The orchestrator sends you a signal to generate files with a target directory path. Using the Write tool, create:
|
|
44
|
+
|
|
45
|
+
#### spec.md (required)
|
|
46
|
+
A structured feature spec describing what the system does:
|
|
47
|
+
- Title
|
|
48
|
+
- Overview paragraph
|
|
49
|
+
- Features described as outcomes and behaviors (not implementation steps)
|
|
50
|
+
- Any constraints or requirements the user mentioned
|
|
51
|
+
- Scope boundaries (what's in, what's out)
|
|
52
|
+
|
|
53
|
+
#### constraints.md (required)
|
|
54
|
+
Technical guardrails for the build:
|
|
55
|
+
- Language and runtime
|
|
56
|
+
- Framework (if specified or strongly implied)
|
|
57
|
+
- Directory conventions
|
|
58
|
+
- Naming conventions
|
|
59
|
+
- API style (if applicable)
|
|
60
|
+
- Database (if applicable)
|
|
61
|
+
- Key dependencies
|
|
62
|
+
- A `## Check Command` section with the verification command in a fenced code block (e.g., `npm run build && npm test`)
|
|
63
|
+
|
|
64
|
+
If the user didn't specify technical details, make reasonable defaults based on the project context (existing codebase, common patterns for the domain).
|
|
65
|
+
|
|
66
|
+
#### taste.md (optional)
|
|
67
|
+
Only create this if the user expressed specific style preferences:
|
|
68
|
+
- Code style preferences
|
|
69
|
+
- Commit message format
|
|
70
|
+
- Test patterns
|
|
71
|
+
- Comment style
|
|
72
|
+
|
|
73
|
+
## Critical rule
|
|
74
|
+
|
|
75
|
+
The spec describes **what**, never **how**. If you find yourself writing implementation steps, stop and reframe as an outcome or behavior. "The API validates input" is a spec statement. "Use Zod for input validation" is a constraint.
|
package/dist/cli.js
CHANGED
|
@@ -107,7 +107,10 @@ program
|
|
|
107
107
|
program
|
|
108
108
|
.command("init [build-name]")
|
|
109
109
|
.description("Interactive helper to scaffold build input files")
|
|
110
|
-
.
|
|
110
|
+
.option("--model <name>", "Model for init assistant", "opus")
|
|
111
|
+
.option("--verbose", "Stream assistant output to terminal", false)
|
|
112
|
+
.option("--timeout <minutes>", "Max duration per turn in minutes", "10")
|
|
113
|
+
.action(async (buildName, opts) => {
|
|
111
114
|
if (!buildName) {
|
|
112
115
|
const readline = require("node:readline");
|
|
113
116
|
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
@@ -123,7 +126,11 @@ program
|
|
|
123
126
|
process.exit(1);
|
|
124
127
|
}
|
|
125
128
|
try {
|
|
126
|
-
await (0, init_1.runInit)(buildName
|
|
129
|
+
await (0, init_1.runInit)(buildName, {
|
|
130
|
+
model: opts.model ?? "opus",
|
|
131
|
+
verbose: Boolean(opts.verbose),
|
|
132
|
+
timeout: parseInt(String(opts.timeout ?? "10"), 10),
|
|
133
|
+
});
|
|
127
134
|
}
|
|
128
135
|
catch (err) {
|
|
129
136
|
console.error(`Error: ${err}`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAA6B;AAC7B,gDAAiC;AACjC,yCAAmC;AAEnC,0CAAyC;AACzC,0CAAyC;AACzC,8CAA6C;AAC7C,wCAAyC;AACzC,8CAA6C;AAE7C,oFAAoF;AAC7E,MAAM,WAAW,GAAG,CACzB,OAA2B,EAC3B,QAAgB,EAChB,QAAgB,EAChB,UAAkB,EACH,EAAE;IACjB,IAAI,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAChD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACpD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAA;IACpD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAZY,QAAA,WAAW,eAYvB;AAED,8CAA8C;AACvC,MAAM,iBAAiB,GAAG,CAAC,eAAuB,EAAiB,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;QAC7E,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AARY,QAAA,iBAAiB,qBAQ7B;AAED,6CAA6C;AACtC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,IAAkD,EAAmB,EAAE;IACtH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE/C,MAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,IAAI,CAAC,WAAiC,EACtC,QAAQ,EACR,gBAAgB,EAChB,YAAY,CACb,CAAA;IACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,sCAAsC;YACtC,OAAO,QAAQ,mBAAmB;YAClC,OAAO,YAAY,mBAAmB;YACtC,mCAAmC,SAAS,gCAAgC,CAC7E,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,IAAI,CAAC,KAA2B,EAChC,QAAQ,EACR,UAAU,EACV,YAAY,CACb,CAAA;IAED,MAAM,YAAY,GAAI,IAAI,CAAC,KAAgB,IAAI,IAAA,yBAAiB,EAAC,eAAe,CAAC,CAAA;IAEjF,OAAO;QACL,SAAS;QACT,QAAQ;QACR,eAAe;QACf,SAAS;QACT,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;QAChD,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC9C,SAAS;QACT,KAAK,EAAG,IAAI,CAAC,KAAgB,IAAI,MAAM;QACvC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACxD,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QAC1D,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B,YAAY;QACZ,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;KAC/E,CAAA;AACH,CAAC,CAAA;AA5CY,QAAA,aAAa,iBA4CzB;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
package/dist/commands/init.js
CHANGED
|
@@ -36,84 +36,187 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.runInit = void 0;
|
|
37
37
|
const fs = __importStar(require("node:fs"));
|
|
38
38
|
const path = __importStar(require("node:path"));
|
|
39
|
-
const
|
|
39
|
+
const readline = __importStar(require("node:readline"));
|
|
40
40
|
const logging_1 = require("../logging");
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
41
|
+
const claudeInvoker_1 = require("../runner/claudeInvoker");
|
|
42
|
+
const snapshot_1 = require("../state/snapshot");
|
|
43
|
+
const MAX_CLARIFICATION_ROUNDS = 3;
|
|
44
|
+
const QA_JSON_SCHEMA = JSON.stringify({
|
|
45
|
+
type: "object",
|
|
46
|
+
properties: {
|
|
47
|
+
ready: { type: "boolean" },
|
|
48
|
+
questions: {
|
|
49
|
+
type: "array",
|
|
50
|
+
items: { type: "string" },
|
|
51
|
+
},
|
|
52
|
+
summary: { type: "string" },
|
|
53
|
+
},
|
|
54
|
+
required: ["ready"],
|
|
55
|
+
});
|
|
56
|
+
const resolveAgentPrompt = (filename) => {
|
|
57
|
+
const distPath = path.join(__dirname, "agents", filename);
|
|
58
|
+
if (fs.existsSync(distPath))
|
|
59
|
+
return fs.readFileSync(distPath, "utf-8");
|
|
60
|
+
const srcPath = path.join(__dirname, "..", "agents", filename);
|
|
61
|
+
if (fs.existsSync(srcPath))
|
|
62
|
+
return fs.readFileSync(srcPath, "utf-8");
|
|
63
|
+
throw new Error(`Agent prompt not found: ${filename}`);
|
|
64
|
+
};
|
|
65
|
+
const askQuestion = (rl, prompt) => {
|
|
66
|
+
return new Promise((resolve) => {
|
|
67
|
+
rl.question(prompt, (answer) => {
|
|
68
|
+
resolve(answer.trim());
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
const parseQAResponse = (resultText) => {
|
|
73
|
+
try {
|
|
74
|
+
return JSON.parse(resultText);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// If JSON parsing fails, treat as ready with the text as summary
|
|
78
|
+
return { ready: true, summary: resultText };
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
const runInit = async (buildName, opts) => {
|
|
75
82
|
const ridgelineDir = path.join(process.cwd(), ".ridgeline");
|
|
76
83
|
const buildDir = path.join(ridgelineDir, "builds", buildName);
|
|
77
84
|
const phasesDir = path.join(buildDir, "phases");
|
|
78
85
|
// Create directory structure
|
|
79
86
|
fs.mkdirSync(phasesDir, { recursive: true });
|
|
80
87
|
(0, logging_1.logInfo)(`Created build directory: ${buildDir}`);
|
|
88
|
+
// Generate codebase snapshot if project has existing code
|
|
89
|
+
let snapshot = "";
|
|
90
|
+
const hasExistingCode = fs.readdirSync(process.cwd()).some((f) => !f.startsWith(".") && f !== "node_modules" && f !== ".ridgeline");
|
|
91
|
+
if (hasExistingCode) {
|
|
92
|
+
snapshot = (0, snapshot_1.generateSnapshot)(process.cwd(), buildDir);
|
|
93
|
+
(0, logging_1.logInfo)("Generated codebase snapshot");
|
|
94
|
+
}
|
|
81
95
|
// Check for existing project-level files
|
|
82
96
|
const projectConstraints = path.join(ridgelineDir, "constraints.md");
|
|
83
97
|
const projectTaste = path.join(ridgelineDir, "taste.md");
|
|
84
|
-
let
|
|
98
|
+
let existingFileHints = "";
|
|
85
99
|
if (fs.existsSync(projectConstraints)) {
|
|
86
|
-
|
|
100
|
+
existingFileHints += `\nNote: Project-level constraints.md exists at ${projectConstraints}. The user may want to reuse it rather than creating a new one.\n`;
|
|
87
101
|
}
|
|
88
102
|
if (fs.existsSync(projectTaste)) {
|
|
89
|
-
|
|
103
|
+
existingFileHints += `\nNote: Project-level taste.md exists at ${projectTaste}. The user may want to reuse it rather than creating a new one.\n`;
|
|
90
104
|
}
|
|
91
|
-
const systemPrompt =
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
"--allowedTools", "Write,Read",
|
|
98
|
-
], {
|
|
99
|
-
cwd: process.cwd(),
|
|
100
|
-
stdio: "inherit",
|
|
105
|
+
const systemPrompt = resolveAgentPrompt("init.md");
|
|
106
|
+
const timeoutMs = opts.timeout * 60 * 1000;
|
|
107
|
+
// Set up readline for user interaction
|
|
108
|
+
const rl = readline.createInterface({
|
|
109
|
+
input: process.stdin,
|
|
110
|
+
output: process.stdout,
|
|
101
111
|
});
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
112
|
+
try {
|
|
113
|
+
// Step 1: Get initial description from user
|
|
114
|
+
console.log("");
|
|
115
|
+
const description = await askQuestion(rl, "Describe what you want to build:\n> ");
|
|
116
|
+
if (!description) {
|
|
117
|
+
(0, logging_1.logError)("A description is required");
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
// Step 2: Intake turn — send description to Claude
|
|
121
|
+
console.log("\nAnalyzing your description...");
|
|
122
|
+
let userPrompt = `The user wants to create a new build called "${buildName}".\n\nUser description:\n${description}`;
|
|
123
|
+
if (snapshot) {
|
|
124
|
+
userPrompt += `\n\n## Existing Codebase Snapshot\n${snapshot}`;
|
|
125
|
+
}
|
|
126
|
+
if (existingFileHints) {
|
|
127
|
+
userPrompt += `\n\n## Existing Project Files\n${existingFileHints}`;
|
|
128
|
+
}
|
|
129
|
+
let result = await (0, claudeInvoker_1.invokeClaude)({
|
|
130
|
+
systemPrompt,
|
|
131
|
+
userPrompt,
|
|
132
|
+
model: opts.model,
|
|
133
|
+
cwd: process.cwd(),
|
|
134
|
+
verbose: opts.verbose,
|
|
135
|
+
timeoutMs,
|
|
136
|
+
jsonSchema: QA_JSON_SCHEMA,
|
|
137
|
+
});
|
|
138
|
+
let sessionId = result.sessionId;
|
|
139
|
+
let qa = parseQAResponse(result.result);
|
|
140
|
+
// Step 3: Clarification loop
|
|
141
|
+
for (let round = 0; round < MAX_CLARIFICATION_ROUNDS && !qa.ready; round++) {
|
|
142
|
+
// Display summary if present
|
|
143
|
+
if (qa.summary) {
|
|
144
|
+
console.log(`\nHere's what I understand so far:\n ${qa.summary}`);
|
|
145
|
+
}
|
|
146
|
+
// Display and collect answers to questions
|
|
147
|
+
if (qa.questions && qa.questions.length > 0) {
|
|
148
|
+
console.log("\nI have a few questions:\n");
|
|
149
|
+
const answers = [];
|
|
150
|
+
for (let i = 0; i < qa.questions.length; i++) {
|
|
151
|
+
const answer = await askQuestion(rl, ` ${i + 1}. ${qa.questions[i]}\n > `);
|
|
152
|
+
answers.push(answer);
|
|
153
|
+
}
|
|
154
|
+
// Send answers back to Claude
|
|
155
|
+
console.log("\nProcessing your answers...");
|
|
156
|
+
const answersPrompt = qa.questions
|
|
157
|
+
.map((q, i) => `Q: ${q}\nA: ${answers[i]}`)
|
|
158
|
+
.join("\n\n");
|
|
159
|
+
result = await (0, claudeInvoker_1.invokeClaude)({
|
|
160
|
+
systemPrompt,
|
|
161
|
+
userPrompt: `User answers to follow-up questions:\n\n${answersPrompt}`,
|
|
162
|
+
model: opts.model,
|
|
163
|
+
cwd: process.cwd(),
|
|
164
|
+
verbose: opts.verbose,
|
|
165
|
+
timeoutMs,
|
|
166
|
+
sessionId,
|
|
167
|
+
jsonSchema: QA_JSON_SCHEMA,
|
|
168
|
+
});
|
|
169
|
+
sessionId = result.sessionId;
|
|
170
|
+
qa = parseQAResponse(result.result);
|
|
108
171
|
}
|
|
109
172
|
else {
|
|
110
|
-
|
|
173
|
+
// No questions but not ready — shouldn't happen, but break to avoid infinite loop
|
|
174
|
+
break;
|
|
111
175
|
}
|
|
176
|
+
}
|
|
177
|
+
// Step 4: Generation turn
|
|
178
|
+
if (qa.summary) {
|
|
179
|
+
console.log(`\nFinal understanding:\n ${qa.summary}`);
|
|
180
|
+
}
|
|
181
|
+
console.log("\nGenerating build files...");
|
|
182
|
+
await (0, claudeInvoker_1.invokeClaude)({
|
|
183
|
+
systemPrompt,
|
|
184
|
+
userPrompt: `Generate the build input files now. Write them to: ${buildDir}/\n\nUse the Write tool to create spec.md, constraints.md, and optionally taste.md in that directory.`,
|
|
185
|
+
model: opts.model,
|
|
186
|
+
allowedTools: ["Write", "Read", "Glob", "Grep"],
|
|
187
|
+
cwd: process.cwd(),
|
|
188
|
+
verbose: opts.verbose,
|
|
189
|
+
timeoutMs,
|
|
190
|
+
sessionId,
|
|
112
191
|
});
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
192
|
+
// Step 5: Verify and report
|
|
193
|
+
console.log("");
|
|
194
|
+
const createdFiles = [];
|
|
195
|
+
for (const filename of ["spec.md", "constraints.md", "taste.md"]) {
|
|
196
|
+
if (fs.existsSync(path.join(buildDir, filename))) {
|
|
197
|
+
createdFiles.push(filename);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (createdFiles.length === 0) {
|
|
201
|
+
(0, logging_1.logError)("No build files were created. Try running init again.");
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
(0, logging_1.logInfo)("Created:");
|
|
205
|
+
for (const f of createdFiles) {
|
|
206
|
+
console.log(` ${path.join(buildDir, f)}`);
|
|
207
|
+
}
|
|
208
|
+
if (!createdFiles.includes("spec.md")) {
|
|
209
|
+
(0, logging_1.logError)("Warning: spec.md was not created — this is required for planning");
|
|
210
|
+
}
|
|
211
|
+
if (!createdFiles.includes("constraints.md")) {
|
|
212
|
+
(0, logging_1.logError)("Warning: constraints.md was not created — this is required for planning");
|
|
213
|
+
}
|
|
214
|
+
console.log("");
|
|
215
|
+
(0, logging_1.logInfo)(`Next: ridgeline plan ${buildName}`);
|
|
216
|
+
}
|
|
217
|
+
finally {
|
|
218
|
+
rl.close();
|
|
219
|
+
}
|
|
117
220
|
};
|
|
118
221
|
exports.runInit = runInit;
|
|
119
222
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,12 @@ const invokeClaude = (opts) => {
|
|
|
44
44
|
if (opts.allowedTools && opts.allowedTools.length > 0) {
|
|
45
45
|
args.push("--allowedTools", opts.allowedTools.join(","));
|
|
46
46
|
}
|
|
47
|
+
if (opts.sessionId) {
|
|
48
|
+
args.push("--resume", opts.sessionId);
|
|
49
|
+
}
|
|
50
|
+
if (opts.jsonSchema) {
|
|
51
|
+
args.push("--json-schema", opts.jsonSchema);
|
|
52
|
+
}
|
|
47
53
|
// System prompt passed via --system-prompt flag
|
|
48
54
|
args.push("--system-prompt", opts.systemPrompt);
|
|
49
55
|
const proc = (0, node_child_process_1.spawn)("claude", args, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeInvoker.js","sourceRoot":"","sources":["../../src/runner/claudeInvoker.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;
|
|
1
|
+
{"version":3,"file":"claudeInvoker.js","sourceRoot":"","sources":["../../src/runner/claudeInvoker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|