agent-bober 0.5.1 → 0.6.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 +13 -7
- package/agents/bober-evaluator.md +62 -54
- package/agents/bober-generator.md +4 -0
- package/dist/contracts/eval-result.d.ts +339 -0
- package/dist/contracts/eval-result.d.ts.map +1 -1
- package/dist/contracts/eval-result.js +36 -0
- package/dist/contracts/eval-result.js.map +1 -1
- package/dist/evaluators/builtin/playwright.d.ts.map +1 -1
- package/dist/evaluators/builtin/playwright.js +50 -15
- package/dist/evaluators/builtin/playwright.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/agent-loader.d.ts +26 -0
- package/dist/orchestrator/agent-loader.d.ts.map +1 -0
- package/dist/orchestrator/agent-loader.js +125 -0
- package/dist/orchestrator/agent-loader.js.map +1 -0
- package/dist/orchestrator/agentic-loop.d.ts +53 -0
- package/dist/orchestrator/agentic-loop.d.ts.map +1 -0
- package/dist/orchestrator/agentic-loop.js +145 -0
- package/dist/orchestrator/agentic-loop.js.map +1 -0
- package/dist/orchestrator/evaluator-agent.d.ts +4 -1
- package/dist/orchestrator/evaluator-agent.d.ts.map +1 -1
- package/dist/orchestrator/evaluator-agent.js +107 -84
- package/dist/orchestrator/evaluator-agent.js.map +1 -1
- package/dist/orchestrator/generator-agent.d.ts +14 -2
- package/dist/orchestrator/generator-agent.d.ts.map +1 -1
- package/dist/orchestrator/generator-agent.js +96 -73
- package/dist/orchestrator/generator-agent.js.map +1 -1
- package/dist/orchestrator/model-resolver.d.ts +9 -0
- package/dist/orchestrator/model-resolver.d.ts.map +1 -0
- package/dist/orchestrator/model-resolver.js +21 -0
- package/dist/orchestrator/model-resolver.js.map +1 -0
- package/dist/orchestrator/pipeline.d.ts.map +1 -1
- package/dist/orchestrator/pipeline.js +21 -4
- package/dist/orchestrator/pipeline.js.map +1 -1
- package/dist/orchestrator/planner-agent.d.ts +3 -2
- package/dist/orchestrator/planner-agent.d.ts.map +1 -1
- package/dist/orchestrator/planner-agent.js +39 -75
- package/dist/orchestrator/planner-agent.js.map +1 -1
- package/dist/orchestrator/tools/handlers.d.ts +9 -0
- package/dist/orchestrator/tools/handlers.d.ts.map +1 -0
- package/dist/orchestrator/tools/handlers.js +279 -0
- package/dist/orchestrator/tools/handlers.js.map +1 -0
- package/dist/orchestrator/tools/index.d.ts +21 -0
- package/dist/orchestrator/tools/index.d.ts.map +1 -0
- package/dist/orchestrator/tools/index.js +33 -0
- package/dist/orchestrator/tools/index.js.map +1 -0
- package/dist/orchestrator/tools/schemas.d.ts +16 -0
- package/dist/orchestrator/tools/schemas.d.ts.map +1 -0
- package/dist/orchestrator/tools/schemas.js +138 -0
- package/dist/orchestrator/tools/schemas.js.map +1 -0
- package/package.json +1 -1
- package/templates/presets/nextjs/bober.config.json +1 -1
- package/templates/presets/react-vite/bober.config.json +1 -1
|
@@ -1,61 +1,30 @@
|
|
|
1
1
|
import Anthropic from "@anthropic-ai/sdk";
|
|
2
2
|
import { serializeHandoff } from "./context-handoff.js";
|
|
3
3
|
import { logger } from "../utils/logger.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return "claude-sonnet-4-20250514";
|
|
9
|
-
case "sonnet":
|
|
10
|
-
return "claude-sonnet-4-20250514";
|
|
11
|
-
case "haiku":
|
|
12
|
-
return "claude-haiku-4-20250414";
|
|
13
|
-
default:
|
|
14
|
-
return "claude-sonnet-4-20250514";
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
// ── System prompt ──────────────────────────────────────────────────
|
|
18
|
-
const GENERATOR_SYSTEM_PROMPT = `You are the Bober Generator agent. Your job is to implement code changes according to a sprint contract.
|
|
19
|
-
|
|
20
|
-
You will receive a context handoff document containing:
|
|
21
|
-
- The overall plan specification
|
|
22
|
-
- The current sprint contract with success criteria
|
|
23
|
-
- History of completed sprints
|
|
24
|
-
- Any feedback from prior evaluation rounds
|
|
25
|
-
|
|
26
|
-
Your responsibilities:
|
|
27
|
-
1. Implement the changes described in the sprint contract.
|
|
28
|
-
2. Follow the success criteria exactly — each criterion must be met.
|
|
29
|
-
3. Work incrementally: make small, testable changes.
|
|
30
|
-
4. Self-verify before reporting completion.
|
|
31
|
-
5. If you received evaluation feedback, address every issue mentioned.
|
|
32
|
-
|
|
33
|
-
Output format — respond with a JSON object:
|
|
34
|
-
{
|
|
35
|
-
"success": true/false,
|
|
36
|
-
"notes": "Description of what was implemented and any issues encountered",
|
|
37
|
-
"filesChanged": ["list", "of", "changed", "file", "paths"]
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
Guidelines:
|
|
41
|
-
- Follow existing code style and conventions in the project.
|
|
42
|
-
- Do not break existing functionality.
|
|
43
|
-
- If a task cannot be completed, set success to false and explain why in notes.
|
|
44
|
-
- List ALL files that were created, modified, or deleted.
|
|
45
|
-
|
|
46
|
-
Output ONLY the JSON object. No markdown fences, no explanation.`;
|
|
4
|
+
import { resolveModel } from "./model-resolver.js";
|
|
5
|
+
import { loadAgentDefinition } from "./agent-loader.js";
|
|
6
|
+
import { buildToolSet } from "./tools/index.js";
|
|
7
|
+
import { runAgenticLoop } from "./agentic-loop.js";
|
|
47
8
|
// ── Main ───────────────────────────────────────────────────────────
|
|
48
9
|
/**
|
|
49
10
|
* Run the generator agent to implement changes for a sprint.
|
|
50
11
|
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
12
|
+
* Uses a multi-turn agentic loop with full tool access (bash, read/write/edit
|
|
13
|
+
* files, glob, grep). The agent actually reads the codebase, writes code,
|
|
14
|
+
* runs tests, and commits — all via tools.
|
|
15
|
+
*
|
|
16
|
+
* The system prompt is loaded from `agents/bober-generator.md`.
|
|
53
17
|
*/
|
|
54
18
|
export async function runGenerator(handoff, projectRoot, config) {
|
|
55
19
|
const contractId = handoff.currentContract?.id ?? "unknown";
|
|
56
20
|
const feature = handoff.currentContract?.feature ?? "unknown";
|
|
57
21
|
logger.sprint(contractId, `Generating: ${feature}`);
|
|
22
|
+
// Load agent definition (system prompt from .md file)
|
|
23
|
+
const agentDef = await loadAgentDefinition("bober-generator", projectRoot);
|
|
58
24
|
const model = resolveModel(config.generator.model);
|
|
25
|
+
const maxTurns = config.generator.maxTurnsPerSprint;
|
|
26
|
+
// Build tool set (generator gets full access)
|
|
27
|
+
const toolSet = buildToolSet("generator", projectRoot);
|
|
59
28
|
const client = new Anthropic();
|
|
60
29
|
const handoffJson = serializeHandoff(handoff);
|
|
61
30
|
const userMessage = `# Context Handoff
|
|
@@ -65,34 +34,55 @@ ${handoffJson}
|
|
|
65
34
|
${projectRoot}
|
|
66
35
|
|
|
67
36
|
Implement the changes described in the sprint contract. Follow every success criterion.
|
|
68
|
-
|
|
37
|
+
Use your tools to read the codebase, write code, run tests, and verify your work.
|
|
38
|
+
${handoff.issues.length > 0 ? `\n# Previous Issues to Fix\n${handoff.issues.join("\n\n")}` : ""}
|
|
69
39
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
40
|
+
When you are done, your final response must contain ONLY a JSON object with this structure (no markdown fences):
|
|
41
|
+
{
|
|
42
|
+
"contractId": "${contractId}",
|
|
43
|
+
"status": "complete | partial | blocked",
|
|
44
|
+
"criteriaResults": [
|
|
45
|
+
{"criterionId": "sc-X-Y", "met": true/false, "evidence": "<how you verified>"}
|
|
46
|
+
],
|
|
47
|
+
"filesChanged": [
|
|
48
|
+
{"path": "<file path>", "action": "created | modified | deleted", "description": "<what changed>"}
|
|
49
|
+
],
|
|
50
|
+
"testsAdded": ["<test file paths>"],
|
|
51
|
+
"commits": ["<hash> - <message>"],
|
|
52
|
+
"blockers": ["<any unresolved issues>"],
|
|
53
|
+
"notes": "<additional context for the evaluator>"
|
|
54
|
+
}`;
|
|
55
|
+
logger.info(`Calling generator model (${config.generator.model} → ${model})...`);
|
|
56
|
+
// Track which files were written/edited via tools
|
|
57
|
+
const filesWritten = new Set();
|
|
58
|
+
const result = await runAgenticLoop({
|
|
59
|
+
client,
|
|
73
60
|
model,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
61
|
+
systemPrompt: agentDef.systemPrompt,
|
|
62
|
+
userMessage,
|
|
63
|
+
tools: toolSet.schemas,
|
|
64
|
+
toolHandlers: toolSet.handlers,
|
|
65
|
+
maxTurns,
|
|
66
|
+
maxTokens: 16384,
|
|
67
|
+
onToolUse: (name, input) => {
|
|
68
|
+
const inp = input;
|
|
69
|
+
if (name === "write_file" || name === "edit_file") {
|
|
70
|
+
const path = inp.file_path;
|
|
71
|
+
if (path)
|
|
72
|
+
filesWritten.add(path);
|
|
73
|
+
}
|
|
74
|
+
const inputStr = JSON.stringify(inp).slice(0, 120);
|
|
75
|
+
logger.debug(` [generator] ${name}(${inputStr})`);
|
|
76
|
+
},
|
|
82
77
|
});
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (block.type === "text") {
|
|
86
|
-
responseText += block.text;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
logger.debug("Generator response received, parsing...");
|
|
90
|
-
return parseGeneratorResult(responseText);
|
|
78
|
+
logger.debug(`Generator completed in ${result.turnsUsed} turns (${result.toolsCalled.length} tool calls)`);
|
|
79
|
+
return parseGeneratorResult(result.finalText, filesWritten, result);
|
|
91
80
|
}
|
|
81
|
+
// ── JSON parser ────────────────────────────────────────────────────
|
|
92
82
|
/**
|
|
93
83
|
* Parse the generator response text into a GeneratorResult.
|
|
94
84
|
*/
|
|
95
|
-
function parseGeneratorResult(text) {
|
|
85
|
+
function parseGeneratorResult(text, filesWritten, loopResult) {
|
|
96
86
|
let parsed;
|
|
97
87
|
// Try direct parse
|
|
98
88
|
try {
|
|
@@ -126,22 +116,55 @@ function parseGeneratorResult(text) {
|
|
|
126
116
|
if (parsed &&
|
|
127
117
|
typeof parsed === "object" &&
|
|
128
118
|
parsed !== null &&
|
|
129
|
-
"success" in parsed) {
|
|
119
|
+
("success" in parsed || "status" in parsed)) {
|
|
130
120
|
const obj = parsed;
|
|
121
|
+
// Support both old format (success: bool) and new format (status: string)
|
|
122
|
+
const success = "success" in obj
|
|
123
|
+
? Boolean(obj.success)
|
|
124
|
+
: obj.status === "complete";
|
|
125
|
+
// Merge file paths from tool tracking and from the report
|
|
126
|
+
const reportFiles = Array.isArray(obj.filesChanged)
|
|
127
|
+
? obj.filesChanged
|
|
128
|
+
.map((f) => {
|
|
129
|
+
if (typeof f === "string")
|
|
130
|
+
return f;
|
|
131
|
+
if (typeof f === "object" && f !== null && "path" in f)
|
|
132
|
+
return String(f.path);
|
|
133
|
+
return null;
|
|
134
|
+
})
|
|
135
|
+
.filter((f) => f !== null)
|
|
136
|
+
: [];
|
|
137
|
+
const allFiles = [...new Set([...filesWritten, ...reportFiles])];
|
|
131
138
|
return {
|
|
132
|
-
success
|
|
133
|
-
notes: typeof obj.notes === "string"
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
139
|
+
success,
|
|
140
|
+
notes: typeof obj.notes === "string"
|
|
141
|
+
? obj.notes
|
|
142
|
+
: "No notes provided.",
|
|
143
|
+
filesChanged: allFiles,
|
|
137
144
|
commitHash: typeof obj.commitHash === "string" ? obj.commitHash : undefined,
|
|
145
|
+
turnsUsed: loopResult.turnsUsed,
|
|
146
|
+
toolsCalled: loopResult.toolsCalled,
|
|
147
|
+
usage: loopResult.usage,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// If parsing failed entirely, check if we at least wrote files
|
|
151
|
+
if (filesWritten.size > 0) {
|
|
152
|
+
return {
|
|
153
|
+
success: true,
|
|
154
|
+
notes: `Generator wrote ${filesWritten.size} files but did not produce a structured report. Files: ${[...filesWritten].join(", ")}`,
|
|
155
|
+
filesChanged: [...filesWritten],
|
|
156
|
+
turnsUsed: loopResult.turnsUsed,
|
|
157
|
+
toolsCalled: loopResult.toolsCalled,
|
|
158
|
+
usage: loopResult.usage,
|
|
138
159
|
};
|
|
139
160
|
}
|
|
140
|
-
// If parsing failed entirely, return a failure result
|
|
141
161
|
return {
|
|
142
162
|
success: false,
|
|
143
163
|
notes: `Failed to parse generator response. Raw output:\n${text.slice(0, 500)}`,
|
|
144
164
|
filesChanged: [],
|
|
165
|
+
turnsUsed: loopResult.turnsUsed,
|
|
166
|
+
toolsCalled: loopResult.toolsCalled,
|
|
167
|
+
usage: loopResult.usage,
|
|
145
168
|
};
|
|
146
169
|
}
|
|
147
170
|
//# sourceMappingURL=generator-agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator-agent.js","sourceRoot":"","sources":["../../src/orchestrator/generator-agent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAI1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"generator-agent.js","sourceRoot":"","sources":["../../src/orchestrator/generator-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized model name resolution.
|
|
3
|
+
*
|
|
4
|
+
* Maps user-friendly model names (from bober.config.json) to
|
|
5
|
+
* actual Anthropic model IDs. Also accepts exact model IDs
|
|
6
|
+
* as pass-through.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveModel(choice: string): string;
|
|
9
|
+
//# sourceMappingURL=model-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-resolver.d.ts","sourceRoot":"","sources":["../../src/orchestrator/model-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAYnD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized model name resolution.
|
|
3
|
+
*
|
|
4
|
+
* Maps user-friendly model names (from bober.config.json) to
|
|
5
|
+
* actual Anthropic model IDs. Also accepts exact model IDs
|
|
6
|
+
* as pass-through.
|
|
7
|
+
*/
|
|
8
|
+
export function resolveModel(choice) {
|
|
9
|
+
switch (choice) {
|
|
10
|
+
case "opus":
|
|
11
|
+
return "claude-opus-4-6";
|
|
12
|
+
case "sonnet":
|
|
13
|
+
return "claude-sonnet-4-6";
|
|
14
|
+
case "haiku":
|
|
15
|
+
return "claude-haiku-4-5-20251001";
|
|
16
|
+
default:
|
|
17
|
+
// Pass through exact model IDs (e.g. "claude-sonnet-4-6")
|
|
18
|
+
return choice;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=model-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-resolver.js","sourceRoot":"","sources":["../../src/orchestrator/model-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAC;QAC3B,KAAK,QAAQ;YACX,OAAO,mBAAmB,CAAC;QAC7B,KAAK,OAAO;YACV,OAAO,2BAA2B,CAAC;QACrC;YACE,0DAA0D;YAC1D,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/orchestrator/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AA0BtE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/orchestrator/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AA0BtE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAsRD;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,cAAc,CAAC,CAuHzB"}
|
|
@@ -55,9 +55,26 @@ async function runSprintCycle(contract, spec, completedContracts, projectRoot, c
|
|
|
55
55
|
}
|
|
56
56
|
logger.progress(iteration, maxIterations, `Sprint ${currentContract.id} iteration`);
|
|
57
57
|
// Build evaluation feedback from prior round
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
// Pass structured feedback (not just summary) so the generator
|
|
59
|
+
// gets detailed per-criterion failures, file:line references, etc.
|
|
60
|
+
const evalFeedbackParts = [];
|
|
61
|
+
if (lastEvaluation) {
|
|
62
|
+
for (const result of lastEvaluation.results) {
|
|
63
|
+
const status = result.passed ? "PASS" : "FAIL";
|
|
64
|
+
evalFeedbackParts.push(`[${status}] ${result.evaluator}${result.score !== undefined ? ` (score: ${result.score}/100)` : ""}`);
|
|
65
|
+
evalFeedbackParts.push(` Summary: ${result.summary}`);
|
|
66
|
+
const failures = result.details.filter((d) => !d.passed);
|
|
67
|
+
for (const detail of failures) {
|
|
68
|
+
const loc = detail.file
|
|
69
|
+
? ` at ${detail.file}${detail.line !== undefined ? `:${detail.line}` : ""}`
|
|
70
|
+
: "";
|
|
71
|
+
evalFeedbackParts.push(` [${detail.severity.toUpperCase()}] ${detail.message}${loc}`);
|
|
72
|
+
}
|
|
73
|
+
if (!result.passed && result.feedback) {
|
|
74
|
+
evalFeedbackParts.push(` Feedback: ${result.feedback}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
61
78
|
// Summarize older sprints to save context
|
|
62
79
|
const completedSummaryHandoff = createHandoff({
|
|
63
80
|
from: iteration === 1 ? "planner" : "evaluator",
|
|
@@ -68,7 +85,7 @@ async function runSprintCycle(contract, spec, completedContracts, projectRoot, c
|
|
|
68
85
|
sprintHistory: completedContracts,
|
|
69
86
|
instructions: `Implement sprint: ${currentContract.feature}\n\n${currentContract.description}`,
|
|
70
87
|
changedFiles: lastGeneratorResult?.filesChanged ?? [],
|
|
71
|
-
issues:
|
|
88
|
+
issues: evalFeedbackParts.length > 0 ? evalFeedbackParts : [],
|
|
72
89
|
});
|
|
73
90
|
// Compact older sprint history if needed
|
|
74
91
|
const compactedHandoff = summarizeOlderSprints(completedSummaryHandoff, 3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/orchestrator/pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/orchestrator/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@ import type { PlanSpec } from "../contracts/spec.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Run the planner agent to produce a PlanSpec from a user prompt.
|
|
5
5
|
*
|
|
6
|
-
* Uses
|
|
7
|
-
*
|
|
6
|
+
* Uses a multi-turn agentic loop with read-only tools so the planner
|
|
7
|
+
* can explore the codebase. The system prompt is loaded from
|
|
8
|
+
* `agents/bober-planner.md`.
|
|
8
9
|
*/
|
|
9
10
|
export declare function runPlanner(userPrompt: string, projectRoot: string, config: BoberConfig): Promise<PlanSpec>;
|
|
10
11
|
//# sourceMappingURL=planner-agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planner-agent.d.ts","sourceRoot":"","sources":["../../src/orchestrator/planner-agent.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"planner-agent.d.ts","sourceRoot":"","sources":["../../src/orchestrator/planner-agent.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AA6DrD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,QAAQ,CAAC,CA6DnB"}
|
|
@@ -5,55 +5,12 @@ import { PlanSpecSchema } from "../contracts/spec.js";
|
|
|
5
5
|
import { saveSpec } from "../state/index.js";
|
|
6
6
|
import { fileExists } from "../utils/fs.js";
|
|
7
7
|
import { logger } from "../utils/logger.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return "claude-sonnet-4-20250514";
|
|
15
|
-
case "haiku":
|
|
16
|
-
return "claude-haiku-4-20250414";
|
|
17
|
-
default:
|
|
18
|
-
return "claude-sonnet-4-20250514";
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
// ── System prompt ──────────────────────────────────────────────────
|
|
22
|
-
const PLANNER_SYSTEM_PROMPT = `You are the Bober Planner agent. Your job is to take a user's project description and produce a detailed plan specification (PlanSpec) as JSON.
|
|
23
|
-
|
|
24
|
-
You must output ONLY valid JSON matching this schema:
|
|
25
|
-
{
|
|
26
|
-
"id": "spec-<timestamp>",
|
|
27
|
-
"title": "Short plan title",
|
|
28
|
-
"description": "Detailed description of what will be built",
|
|
29
|
-
"projectType": "<mode>[ / <preset>]",
|
|
30
|
-
"techStack": ["list", "of", "technologies"],
|
|
31
|
-
"features": [
|
|
32
|
-
{
|
|
33
|
-
"id": "feature-1",
|
|
34
|
-
"title": "Feature title",
|
|
35
|
-
"description": "What this feature does",
|
|
36
|
-
"priority": "must" | "should" | "could",
|
|
37
|
-
"estimatedSprints": 1,
|
|
38
|
-
"acceptanceCriteria": ["Criterion 1", "Criterion 2"]
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
"nonFunctional": ["NFR 1", "NFR 2"],
|
|
42
|
-
"constraints": ["Constraint 1"],
|
|
43
|
-
"createdAt": "<ISO datetime>",
|
|
44
|
-
"updatedAt": "<ISO datetime>"
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
Guidelines:
|
|
48
|
-
- Break the project into small, independently testable features.
|
|
49
|
-
- Each feature should be completable in 1-3 sprints.
|
|
50
|
-
- Order features by dependency — foundational features first.
|
|
51
|
-
- "must" priority features are the MVP. "should" are important. "could" are nice-to-have.
|
|
52
|
-
- Acceptance criteria must be specific and verifiable.
|
|
53
|
-
- Consider the project's existing tech stack and configuration.
|
|
54
|
-
- Keep sprint sizes reasonable — each sprint should produce a working increment.
|
|
55
|
-
|
|
56
|
-
Output ONLY the JSON object. No markdown fences, no explanation, just the JSON.`;
|
|
8
|
+
import { resolveModel } from "./model-resolver.js";
|
|
9
|
+
import { loadAgentDefinition } from "./agent-loader.js";
|
|
10
|
+
import { buildToolSet } from "./tools/index.js";
|
|
11
|
+
import { runAgenticLoop } from "./agentic-loop.js";
|
|
12
|
+
// ── Constants ──────────────────────────────────────────────────────
|
|
13
|
+
const PLANNER_MAX_TURNS = 15;
|
|
57
14
|
// ── Context gathering ──────────────────────────────────────────────
|
|
58
15
|
async function gatherProjectContext(projectRoot, config) {
|
|
59
16
|
const sections = [];
|
|
@@ -92,56 +49,63 @@ async function gatherProjectContext(projectRoot, config) {
|
|
|
92
49
|
/**
|
|
93
50
|
* Run the planner agent to produce a PlanSpec from a user prompt.
|
|
94
51
|
*
|
|
95
|
-
* Uses
|
|
96
|
-
*
|
|
52
|
+
* Uses a multi-turn agentic loop with read-only tools so the planner
|
|
53
|
+
* can explore the codebase. The system prompt is loaded from
|
|
54
|
+
* `agents/bober-planner.md`.
|
|
97
55
|
*/
|
|
98
56
|
export async function runPlanner(userPrompt, projectRoot, config) {
|
|
99
57
|
logger.phase("Planning Phase");
|
|
100
58
|
logger.info("Gathering project context...");
|
|
101
59
|
const context = await gatherProjectContext(projectRoot, config);
|
|
60
|
+
// Load agent definition (system prompt from .md file)
|
|
61
|
+
const agentDef = await loadAgentDefinition("bober-planner", projectRoot);
|
|
102
62
|
const model = resolveModel(config.planner.model);
|
|
63
|
+
// Build tool set (planner gets read-only tools)
|
|
64
|
+
const toolSet = buildToolSet("planner", projectRoot);
|
|
103
65
|
const client = new Anthropic();
|
|
104
66
|
const userMessage = `# Task Description
|
|
105
67
|
${userPrompt}
|
|
106
68
|
|
|
69
|
+
# Project Root
|
|
70
|
+
${projectRoot}
|
|
71
|
+
|
|
107
72
|
# Project Context
|
|
108
73
|
${context}
|
|
109
74
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
logger.
|
|
113
|
-
const
|
|
75
|
+
Explore the codebase using your tools if you need more context, then produce a PlanSpec JSON.
|
|
76
|
+
Your final response must contain ONLY valid JSON matching the PlanSpec schema (no markdown fences, no explanation).`;
|
|
77
|
+
logger.info(`Calling planner model (${config.planner.model} → ${model})...`);
|
|
78
|
+
const result = await runAgenticLoop({
|
|
79
|
+
client,
|
|
114
80
|
model,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
81
|
+
systemPrompt: agentDef.systemPrompt,
|
|
82
|
+
userMessage,
|
|
83
|
+
tools: toolSet.schemas,
|
|
84
|
+
toolHandlers: toolSet.handlers,
|
|
85
|
+
maxTurns: PLANNER_MAX_TURNS,
|
|
86
|
+
maxTokens: 16384,
|
|
87
|
+
onToolUse: (name, input) => {
|
|
88
|
+
const inputStr = typeof input === "object" && input !== null
|
|
89
|
+
? JSON.stringify(input).slice(0, 100)
|
|
90
|
+
: String(input);
|
|
91
|
+
logger.debug(` [planner] ${name}(${inputStr})`);
|
|
92
|
+
},
|
|
123
93
|
});
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (block.type === "text") {
|
|
128
|
-
responseText += block.text;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
logger.debug("Raw planner response received, parsing...");
|
|
132
|
-
// Try to extract JSON from the response
|
|
133
|
-
const spec = parsePlanSpec(responseText);
|
|
94
|
+
logger.debug(`Planner completed in ${result.turnsUsed} turns (tools: ${result.toolsCalled.length})`);
|
|
95
|
+
// Parse the final response for PlanSpec JSON
|
|
96
|
+
const spec = parsePlanSpec(result.finalText);
|
|
134
97
|
// Save to .bober/specs/
|
|
135
98
|
await saveSpec(projectRoot, spec);
|
|
136
99
|
logger.success(`Plan saved: ${spec.title} (${spec.features.length} features)`);
|
|
137
100
|
return spec;
|
|
138
101
|
}
|
|
102
|
+
// ── JSON parser ────────────────────────────────────────────────────
|
|
139
103
|
/**
|
|
140
104
|
* Parse the planner response text into a validated PlanSpec.
|
|
141
105
|
*/
|
|
142
106
|
function parsePlanSpec(text) {
|
|
143
|
-
// Try direct parse first
|
|
144
107
|
let parsed;
|
|
108
|
+
// Try direct parse first
|
|
145
109
|
try {
|
|
146
110
|
parsed = JSON.parse(text.trim());
|
|
147
111
|
}
|
|
@@ -153,7 +117,7 @@ function parsePlanSpec(text) {
|
|
|
153
117
|
parsed = JSON.parse(fenceMatch[1].trim());
|
|
154
118
|
}
|
|
155
119
|
catch {
|
|
156
|
-
// Fall through
|
|
120
|
+
// Fall through
|
|
157
121
|
}
|
|
158
122
|
}
|
|
159
123
|
// Try finding the first { ... } block
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planner-agent.js","sourceRoot":"","sources":["../../src/orchestrator/planner-agent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"planner-agent.js","sourceRoot":"","sources":["../../src/orchestrator/planner-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type ToolHandler = (input: Record<string, unknown>) => Promise<{
|
|
2
|
+
output: string;
|
|
3
|
+
isError: boolean;
|
|
4
|
+
}>;
|
|
5
|
+
/**
|
|
6
|
+
* Create all tool handlers scoped to a project root.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createToolHandlers(projectRoot: string): Map<string, ToolHandler>;
|
|
9
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/tools/handlers.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAiTnD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,GAClB,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAW1B"}
|