agent-bober 0.9.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/agents/bober-architect.md +495 -0
- package/dist/cli/commands/init.js +3 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +3 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +1 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +13 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +2 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/mcp/tools/anchor.d.ts +2 -0
- package/dist/mcp/tools/anchor.d.ts.map +1 -0
- package/dist/mcp/tools/anchor.js +63 -0
- package/dist/mcp/tools/anchor.js.map +1 -0
- package/dist/mcp/tools/architect.d.ts +2 -0
- package/dist/mcp/tools/architect.d.ts.map +1 -0
- package/dist/mcp/tools/architect.js +78 -0
- package/dist/mcp/tools/architect.js.map +1 -0
- package/dist/mcp/tools/brownfield.d.ts +2 -0
- package/dist/mcp/tools/brownfield.d.ts.map +1 -0
- package/dist/mcp/tools/brownfield.js +65 -0
- package/dist/mcp/tools/brownfield.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +18 -11
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +33 -11
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/playwright.d.ts +2 -0
- package/dist/mcp/tools/playwright.d.ts.map +1 -0
- package/dist/mcp/tools/playwright.js +110 -0
- package/dist/mcp/tools/playwright.js.map +1 -0
- package/dist/mcp/tools/react.d.ts +2 -0
- package/dist/mcp/tools/react.d.ts.map +1 -0
- package/dist/mcp/tools/react.js +69 -0
- package/dist/mcp/tools/react.js.map +1 -0
- package/dist/mcp/tools/research.d.ts +2 -0
- package/dist/mcp/tools/research.d.ts.map +1 -0
- package/dist/mcp/tools/research.js +72 -0
- package/dist/mcp/tools/research.js.map +1 -0
- package/dist/mcp/tools/solidity.d.ts +2 -0
- package/dist/mcp/tools/solidity.d.ts.map +1 -0
- package/dist/mcp/tools/solidity.js +63 -0
- package/dist/mcp/tools/solidity.js.map +1 -0
- package/dist/orchestrator/architect-agent.d.ts +34 -0
- package/dist/orchestrator/architect-agent.d.ts.map +1 -0
- package/dist/orchestrator/architect-agent.js +243 -0
- package/dist/orchestrator/architect-agent.js.map +1 -0
- package/dist/orchestrator/pipeline.d.ts.map +1 -1
- package/dist/orchestrator/pipeline.js +39 -1
- package/dist/orchestrator/pipeline.js.map +1 -1
- package/dist/orchestrator/planner-agent.d.ts +1 -1
- package/dist/orchestrator/planner-agent.d.ts.map +1 -1
- package/dist/orchestrator/planner-agent.js +16 -2
- package/dist/orchestrator/planner-agent.js.map +1 -1
- package/dist/state/architect-state.d.ts +25 -0
- package/dist/state/architect-state.d.ts.map +1 -0
- package/dist/state/architect-state.js +96 -0
- package/dist/state/architect-state.js.map +1 -0
- package/dist/state/index.d.ts +1 -0
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +2 -1
- package/dist/state/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/bober.architect/SKILL.md +418 -0
- package/skills/bober.research/SKILL.md +219 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { createClient } from "../providers/factory.js";
|
|
2
|
+
import { saveArchitecture } from "../state/index.js";
|
|
3
|
+
import { logger } from "../utils/logger.js";
|
|
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";
|
|
8
|
+
// ── Constants ──────────────────────────────────────────────────────
|
|
9
|
+
const ARCHITECT_MAX_TURNS = 25;
|
|
10
|
+
const RESEARCH_MAX_LINES = 300;
|
|
11
|
+
// ── ID Generation ──────────────────────────────────────────────────
|
|
12
|
+
function generateArchitectId(userPrompt) {
|
|
13
|
+
const now = new Date();
|
|
14
|
+
const datePart = now
|
|
15
|
+
.toISOString()
|
|
16
|
+
.slice(0, 10)
|
|
17
|
+
.replace(/-/g, "");
|
|
18
|
+
const slug = userPrompt
|
|
19
|
+
.toLowerCase()
|
|
20
|
+
.replace(/[^a-z0-9\s]/g, "")
|
|
21
|
+
.trim()
|
|
22
|
+
.split(/\s+/)
|
|
23
|
+
.slice(0, 5)
|
|
24
|
+
.join("-")
|
|
25
|
+
.slice(0, 40);
|
|
26
|
+
return `arch-${datePart}-${slug}`;
|
|
27
|
+
}
|
|
28
|
+
// ── Research truncation ────────────────────────────────────────────
|
|
29
|
+
function truncateResearch(findings, maxLines = RESEARCH_MAX_LINES) {
|
|
30
|
+
const lines = findings.split("\n");
|
|
31
|
+
if (lines.length <= maxLines)
|
|
32
|
+
return findings;
|
|
33
|
+
return (lines.slice(0, maxLines).join("\n") +
|
|
34
|
+
"\n\n... (truncated — full research doc saved to disk)");
|
|
35
|
+
}
|
|
36
|
+
function parseArchitectResponse(text) {
|
|
37
|
+
const trimmed = text.trim();
|
|
38
|
+
// Try direct parse first
|
|
39
|
+
try {
|
|
40
|
+
const parsed = JSON.parse(trimmed);
|
|
41
|
+
if (typeof parsed === "object" && parsed !== null) {
|
|
42
|
+
return parsed;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// Fall through
|
|
47
|
+
}
|
|
48
|
+
// Try extracting JSON from markdown fences
|
|
49
|
+
const fenceMatch = /```(?:json)?\s*\n?([\s\S]*?)\n?\s*```/.exec(trimmed);
|
|
50
|
+
if (fenceMatch) {
|
|
51
|
+
try {
|
|
52
|
+
const parsed = JSON.parse(fenceMatch[1].trim());
|
|
53
|
+
if (typeof parsed === "object" && parsed !== null) {
|
|
54
|
+
return parsed;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Fall through
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Try finding the first { ... } block
|
|
62
|
+
const braceStart = trimmed.indexOf("{");
|
|
63
|
+
const braceEnd = trimmed.lastIndexOf("}");
|
|
64
|
+
if (braceStart !== -1 && braceEnd > braceStart) {
|
|
65
|
+
try {
|
|
66
|
+
const parsed = JSON.parse(trimmed.slice(braceStart, braceEnd + 1));
|
|
67
|
+
if (typeof parsed === "object" && parsed !== null) {
|
|
68
|
+
return parsed;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Fall through
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Return empty object — caller will handle with defaults
|
|
76
|
+
logger.warn("Could not parse architect JSON response; using defaults.");
|
|
77
|
+
return {};
|
|
78
|
+
}
|
|
79
|
+
// ── Main Entry Point ───────────────────────────────────────────────
|
|
80
|
+
/**
|
|
81
|
+
* Run the 5-checkpoint architect flow in autonomous mode.
|
|
82
|
+
*
|
|
83
|
+
* The architect self-discusses at each checkpoint, reads the codebase for
|
|
84
|
+
* evidence, makes decisions, and produces an architecture document with ADRs.
|
|
85
|
+
* The researchDoc (if provided) is included in the architect's context but
|
|
86
|
+
* the architect does NOT generate application code — documents only.
|
|
87
|
+
*
|
|
88
|
+
* @param userPrompt Feature description passed as the problem space.
|
|
89
|
+
* @param projectRoot Absolute path to the project root.
|
|
90
|
+
* @param config Bober configuration (model, provider settings, etc.).
|
|
91
|
+
* @param researchDoc Optional research findings to provide codebase context.
|
|
92
|
+
* @returns ArchitectResult with the full architecture document and ADRs.
|
|
93
|
+
*/
|
|
94
|
+
export async function runArchitect(userPrompt, projectRoot, config, researchDoc) {
|
|
95
|
+
logger.phase("Architect Phase");
|
|
96
|
+
const architectId = generateArchitectId(userPrompt);
|
|
97
|
+
logger.info(`Architecture ID: ${architectId}`);
|
|
98
|
+
// Load the architect agent definition (system prompt)
|
|
99
|
+
const agentDef = await loadAgentDefinition("bober-architect", projectRoot);
|
|
100
|
+
// Architect gets read-only tools plus write for saving artifacts
|
|
101
|
+
const toolSet = buildToolSet("generator", projectRoot);
|
|
102
|
+
const client = createClient(config.planner.provider ?? null, config.planner.endpoint ?? null, config.planner.providerConfig, config.planner.model, "Architect");
|
|
103
|
+
const model = resolveModel(config.planner.model);
|
|
104
|
+
const researchSection = researchDoc
|
|
105
|
+
? `\n\n## Research Findings\n\n${truncateResearch(researchDoc)}`
|
|
106
|
+
: "";
|
|
107
|
+
const autonomousMessage = `You are the Bober Architect agent running in AUTONOMOUS mode. You have been spawned programmatically as part of the pipeline. There is NO user to interact with — you must self-discuss and self-decide at every checkpoint.
|
|
108
|
+
|
|
109
|
+
## Feature Description (Your Problem Space)
|
|
110
|
+
|
|
111
|
+
${userPrompt}
|
|
112
|
+
|
|
113
|
+
## Architecture ID
|
|
114
|
+
|
|
115
|
+
Use this exact ID for all saved artifacts: **${architectId}**
|
|
116
|
+
|
|
117
|
+
## Project Root
|
|
118
|
+
|
|
119
|
+
${projectRoot}
|
|
120
|
+
${researchSection}
|
|
121
|
+
|
|
122
|
+
## Instructions
|
|
123
|
+
|
|
124
|
+
Run all 5 checkpoints in strict order. For each checkpoint:
|
|
125
|
+
|
|
126
|
+
1. **Read the codebase first** using Glob, Grep, and Read tools. Cite specific file paths and line numbers.
|
|
127
|
+
2. **Self-discuss** — reason about tradeoffs as if presenting to a senior engineer.
|
|
128
|
+
3. **Make a decision** with explicit rationale citing Checkpoint 1 constraints.
|
|
129
|
+
4. **Draft an ADR** for each significant decision (Checkpoint 2 and beyond).
|
|
130
|
+
|
|
131
|
+
### Checkpoint 1: Problem Framing
|
|
132
|
+
Answer all 6 standard questions using the feature description above and any codebase evidence. Produce the Problem Statement section.
|
|
133
|
+
|
|
134
|
+
### Checkpoint 2: Approach Selection
|
|
135
|
+
Present 2-3 architectural approaches in the structured format. Select one with rationale citing Checkpoint 1 constraints. Draft ADR-1 for this selection.
|
|
136
|
+
|
|
137
|
+
### Checkpoint 3: Component Design
|
|
138
|
+
Define all components with TypeScript interface signatures. Each component: responsibility (1 sentence), interface, dependencies. Draft an ADR for key boundary decisions if warranted.
|
|
139
|
+
|
|
140
|
+
### Checkpoint 4: Integration Strategy
|
|
141
|
+
Map the data flow as a concrete call chain. Define the API contracts table. Identify integration risks with severity and mitigation. Draft an ADR for key integration decisions if warranted.
|
|
142
|
+
|
|
143
|
+
### Checkpoint 5: Final Assembly
|
|
144
|
+
Compile all outputs into a single architecture document (cap at 500 lines). Save it to:
|
|
145
|
+
\`.bober/architecture/${architectId}-architecture.md\`
|
|
146
|
+
|
|
147
|
+
Save each ADR to:
|
|
148
|
+
\`.bober/architecture/${architectId}-adr-1.md\`
|
|
149
|
+
\`.bober/architecture/${architectId}-adr-2.md\`
|
|
150
|
+
(etc.)
|
|
151
|
+
|
|
152
|
+
## Output Format
|
|
153
|
+
|
|
154
|
+
After saving all files, respond with EXACTLY this JSON (no markdown fences, no other text):
|
|
155
|
+
{
|
|
156
|
+
"architectureId": "${architectId}",
|
|
157
|
+
"title": "<architecture title>",
|
|
158
|
+
"componentCount": <number of components defined>,
|
|
159
|
+
"decisionCount": <number of ADRs produced>,
|
|
160
|
+
"documentPath": ".bober/architecture/${architectId}-architecture.md",
|
|
161
|
+
"adrPaths": [".bober/architecture/${architectId}-adr-1.md"],
|
|
162
|
+
"summary": "<2-3 sentence summary of the architecture>"
|
|
163
|
+
}`;
|
|
164
|
+
logger.info(`Calling architect model (${config.planner.model} → ${model})...`);
|
|
165
|
+
const result = await runAgenticLoop({
|
|
166
|
+
client,
|
|
167
|
+
model,
|
|
168
|
+
systemPrompt: agentDef.systemPrompt,
|
|
169
|
+
userMessage: autonomousMessage,
|
|
170
|
+
tools: toolSet.schemas,
|
|
171
|
+
toolHandlers: toolSet.handlers,
|
|
172
|
+
maxTurns: ARCHITECT_MAX_TURNS,
|
|
173
|
+
maxTokens: 16384,
|
|
174
|
+
onToolUse: (name, input) => {
|
|
175
|
+
const inputStr = typeof input === "object" && input !== null
|
|
176
|
+
? JSON.stringify(input).slice(0, 100)
|
|
177
|
+
: String(input);
|
|
178
|
+
logger.debug(` [architect] ${name}(${inputStr})`);
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
logger.debug(`Architect completed in ${result.turnsUsed} turns (tools: ${result.toolsCalled.length})`);
|
|
182
|
+
const raw = parseArchitectResponse(result.finalText);
|
|
183
|
+
// Read back the saved architecture document
|
|
184
|
+
let document = "";
|
|
185
|
+
try {
|
|
186
|
+
const { readArchitecture } = await import("../state/index.js");
|
|
187
|
+
document = await readArchitecture(projectRoot, architectId);
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
logger.warn(`Could not read back architecture document for ${architectId}; using empty string.`);
|
|
191
|
+
}
|
|
192
|
+
// Read back saved ADRs
|
|
193
|
+
let adrs = [];
|
|
194
|
+
try {
|
|
195
|
+
const { readADRs } = await import("../state/index.js");
|
|
196
|
+
adrs = await readADRs(projectRoot, architectId);
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
logger.warn(`Could not read back ADRs for ${architectId}; using empty array.`);
|
|
200
|
+
}
|
|
201
|
+
const timestamp = new Date().toISOString();
|
|
202
|
+
const componentCount = typeof raw.componentCount === "number" ? raw.componentCount : 0;
|
|
203
|
+
const decisionCount = typeof raw.decisionCount === "number" ? raw.decisionCount : adrs.length;
|
|
204
|
+
// If the agent did not save the document itself, save a fallback
|
|
205
|
+
if (!document && result.finalText) {
|
|
206
|
+
const fallbackDoc = [
|
|
207
|
+
`# Architecture: ${userPrompt.slice(0, 80)}`,
|
|
208
|
+
``,
|
|
209
|
+
`**Architecture ID:** ${architectId}`,
|
|
210
|
+
`**Generated:** ${timestamp}`,
|
|
211
|
+
`**Status:** draft`,
|
|
212
|
+
``,
|
|
213
|
+
`---`,
|
|
214
|
+
``,
|
|
215
|
+
`## Summary`,
|
|
216
|
+
``,
|
|
217
|
+
raw.summary ?? "Architecture generation completed.",
|
|
218
|
+
``,
|
|
219
|
+
`---`,
|
|
220
|
+
``,
|
|
221
|
+
`## Agent Output`,
|
|
222
|
+
``,
|
|
223
|
+
result.finalText.slice(0, 3000),
|
|
224
|
+
].join("\n");
|
|
225
|
+
try {
|
|
226
|
+
await saveArchitecture(projectRoot, architectId, fallbackDoc);
|
|
227
|
+
document = fallbackDoc;
|
|
228
|
+
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
logger.warn(`Failed to save fallback architecture: ${err instanceof Error ? err.message : String(err)}`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
logger.success(`Architecture saved: ${architectId} (${decisionCount} ADRs)`);
|
|
234
|
+
return {
|
|
235
|
+
id: architectId,
|
|
236
|
+
timestamp,
|
|
237
|
+
document,
|
|
238
|
+
adrs,
|
|
239
|
+
componentCount,
|
|
240
|
+
decisionCount,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=architect-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"architect-agent.js","sourceRoot":"","sources":["../../src/orchestrator/architect-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;AA8BtE,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,CA4NzB"}
|
|
@@ -2,6 +2,7 @@ import { createContract, updateContractStatus, } from "../contracts/sprint-contr
|
|
|
2
2
|
import { createHandoff, summarizeOlderSprints, } from "./context-handoff.js";
|
|
3
3
|
import { runPlanner } from "./planner-agent.js";
|
|
4
4
|
import { runResearch } from "./research-agent.js";
|
|
5
|
+
import { runArchitect } from "./architect-agent.js";
|
|
5
6
|
import { runGenerator } from "./generator-agent.js";
|
|
6
7
|
import { runEvaluatorAgent } from "./evaluator-agent.js";
|
|
7
8
|
import { ensureBoberDir, saveContract, updateContract, appendHistory, readDesign, readOutline, } from "../state/index.js";
|
|
@@ -252,8 +253,45 @@ export async function runPipeline(userPrompt, projectRoot, config) {
|
|
|
252
253
|
},
|
|
253
254
|
});
|
|
254
255
|
}
|
|
256
|
+
// ── Phase 0b: Architecture (optional) ───────────────────────
|
|
257
|
+
let architectDoc;
|
|
258
|
+
if (config.pipeline.architectPhase) {
|
|
259
|
+
await appendHistory(projectRoot, {
|
|
260
|
+
timestamp: new Date().toISOString(),
|
|
261
|
+
event: "architect-started",
|
|
262
|
+
phase: "planning",
|
|
263
|
+
details: { userPrompt: userPrompt.slice(0, 200) },
|
|
264
|
+
});
|
|
265
|
+
const architectResult = await runArchitect(userPrompt, projectRoot, config, researchDoc?.findings);
|
|
266
|
+
// Log a checkpoint event for each ADR produced (one per decision)
|
|
267
|
+
for (let i = 0; i < architectResult.decisionCount; i++) {
|
|
268
|
+
await appendHistory(projectRoot, {
|
|
269
|
+
timestamp: new Date().toISOString(),
|
|
270
|
+
event: "architect-checkpoint",
|
|
271
|
+
phase: "planning",
|
|
272
|
+
details: {
|
|
273
|
+
architectId: architectResult.id,
|
|
274
|
+
checkpointNumber: i + 1,
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
await appendHistory(projectRoot, {
|
|
279
|
+
timestamp: new Date().toISOString(),
|
|
280
|
+
event: "architect-completed",
|
|
281
|
+
phase: "planning",
|
|
282
|
+
details: {
|
|
283
|
+
architectId: architectResult.id,
|
|
284
|
+
componentCount: architectResult.componentCount,
|
|
285
|
+
decisionCount: architectResult.decisionCount,
|
|
286
|
+
documentLines: architectResult.document.split("\n").length,
|
|
287
|
+
},
|
|
288
|
+
});
|
|
289
|
+
// Pass only the document string to the planner — not the full result
|
|
290
|
+
// object. The adrs are already saved to disk.
|
|
291
|
+
architectDoc = architectResult.document;
|
|
292
|
+
}
|
|
255
293
|
// ── Phase 1: Planning ────────────────────────────────────────
|
|
256
|
-
const spec = await runPlanner(userPrompt, projectRoot, config, researchDoc);
|
|
294
|
+
const spec = await runPlanner(userPrompt, projectRoot, config, researchDoc, architectDoc);
|
|
257
295
|
logger.info(`Plan: "${spec.title}" with ${spec.features.length} features`);
|
|
258
296
|
// Log design-created event if design doc was saved by the planner
|
|
259
297
|
try {
|
|
@@ -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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"}
|
|
@@ -8,5 +8,5 @@ import type { ResearchDoc } from "./research-agent.js";
|
|
|
8
8
|
* can explore the codebase. The system prompt is loaded from
|
|
9
9
|
* `agents/bober-planner.md`.
|
|
10
10
|
*/
|
|
11
|
-
export declare function runPlanner(userPrompt: string, projectRoot: string, config: BoberConfig, researchDoc?: ResearchDoc): Promise<PlanSpec>;
|
|
11
|
+
export declare function runPlanner(userPrompt: string, projectRoot: string, config: BoberConfig, researchDoc?: ResearchDoc, architectDoc?: string): Promise<PlanSpec>;
|
|
12
12
|
//# 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":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAUrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"planner-agent.d.ts","sourceRoot":"","sources":["../../src/orchestrator/planner-agent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAUrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAmFvD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,QAAQ,CAAC,CA0EnB"}
|
|
@@ -12,6 +12,7 @@ import { runAgenticLoop } from "./agentic-loop.js";
|
|
|
12
12
|
// ── Constants ──────────────────────────────────────────────────────
|
|
13
13
|
const PLANNER_MAX_TURNS = 15;
|
|
14
14
|
const RESEARCH_MAX_LINES = 300;
|
|
15
|
+
const ARCHITECT_MAX_LINES = 200;
|
|
15
16
|
// ── Research truncation ────────────────────────────────────────────
|
|
16
17
|
/**
|
|
17
18
|
* Truncate research findings to a maximum number of lines.
|
|
@@ -25,6 +26,16 @@ function truncateResearch(findings, maxLines = RESEARCH_MAX_LINES) {
|
|
|
25
26
|
return (lines.slice(0, maxLines).join("\n") +
|
|
26
27
|
"\n\n... (truncated — full research doc saved to disk)");
|
|
27
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Truncate an architecture document to keep the planner's context manageable.
|
|
31
|
+
*/
|
|
32
|
+
function truncateArchitecture(doc, maxLines = ARCHITECT_MAX_LINES) {
|
|
33
|
+
const lines = doc.split("\n");
|
|
34
|
+
if (lines.length <= maxLines)
|
|
35
|
+
return doc;
|
|
36
|
+
return (lines.slice(0, maxLines).join("\n") +
|
|
37
|
+
"\n\n... (truncated — full architecture doc saved to .bober/architecture/)");
|
|
38
|
+
}
|
|
28
39
|
// ── Context gathering ──────────────────────────────────────────────
|
|
29
40
|
async function gatherProjectContext(projectRoot, config) {
|
|
30
41
|
const sections = [];
|
|
@@ -67,7 +78,7 @@ async function gatherProjectContext(projectRoot, config) {
|
|
|
67
78
|
* can explore the codebase. The system prompt is loaded from
|
|
68
79
|
* `agents/bober-planner.md`.
|
|
69
80
|
*/
|
|
70
|
-
export async function runPlanner(userPrompt, projectRoot, config, researchDoc) {
|
|
81
|
+
export async function runPlanner(userPrompt, projectRoot, config, researchDoc, architectDoc) {
|
|
71
82
|
logger.phase("Planning Phase");
|
|
72
83
|
logger.info("Gathering project context...");
|
|
73
84
|
const context = await gatherProjectContext(projectRoot, config);
|
|
@@ -80,6 +91,9 @@ export async function runPlanner(userPrompt, projectRoot, config, researchDoc) {
|
|
|
80
91
|
const researchSection = researchDoc
|
|
81
92
|
? `\n\n## Research Findings\n${truncateResearch(researchDoc.findings)}`
|
|
82
93
|
: "";
|
|
94
|
+
const architectSection = architectDoc
|
|
95
|
+
? `\n\n## Architecture\n${truncateArchitecture(architectDoc)}`
|
|
96
|
+
: "";
|
|
83
97
|
const userMessage = `# Task Description
|
|
84
98
|
${userPrompt}
|
|
85
99
|
|
|
@@ -87,7 +101,7 @@ ${userPrompt}
|
|
|
87
101
|
${projectRoot}
|
|
88
102
|
|
|
89
103
|
# Project Context
|
|
90
|
-
${context}${researchSection}
|
|
104
|
+
${context}${researchSection}${architectSection}
|
|
91
105
|
|
|
92
106
|
Explore the codebase using your tools if you need more context, then produce a PlanSpec JSON.
|
|
93
107
|
Your final response must contain ONLY valid JSON matching the PlanSpec schema (no markdown fences, no explanation).`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planner-agent.js","sourceRoot":"","sources":["../../src/orchestrator/planner-agent.ts"],"names":[],"mappings":"AAAA,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,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,sEAAsE;AAEtE,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,kBAAkB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"planner-agent.js","sourceRoot":"","sources":["../../src/orchestrator/planner-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Save an architecture document to disk.
|
|
3
|
+
* Overwrites any existing document with the same id.
|
|
4
|
+
*/
|
|
5
|
+
export declare function saveArchitecture(projectRoot: string, id: string, content: string): Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Read an architecture document by id.
|
|
8
|
+
* Throws if not found.
|
|
9
|
+
*/
|
|
10
|
+
export declare function readArchitecture(projectRoot: string, id: string): Promise<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Save an individual ADR file for an architecture.
|
|
13
|
+
* ADRs are saved as separate files: <id>-adr-<N>.md
|
|
14
|
+
*/
|
|
15
|
+
export declare function saveADR(projectRoot: string, id: string, adrNumber: number, content: string): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Read all ADR files for an architecture, sorted by ADR number.
|
|
18
|
+
* Returns an empty array if none exist.
|
|
19
|
+
*/
|
|
20
|
+
export declare function readADRs(projectRoot: string, id: string): Promise<string[]>;
|
|
21
|
+
/**
|
|
22
|
+
* List all saved architecture IDs, sorted by filename.
|
|
23
|
+
*/
|
|
24
|
+
export declare function listArchitectures(projectRoot: string): Promise<string[]>;
|
|
25
|
+
//# sourceMappingURL=architect-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"architect-state.d.ts","sourceRoot":"","sources":["../../src/state/architect-state.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BnB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAe9E"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { readFile, writeFile, readdir } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { ensureDir } from "./helpers.js";
|
|
4
|
+
const ARCHITECTURE_DIR = ".bober/architecture";
|
|
5
|
+
function architectureDir(projectRoot) {
|
|
6
|
+
return join(projectRoot, ARCHITECTURE_DIR);
|
|
7
|
+
}
|
|
8
|
+
function architecturePath(projectRoot, id) {
|
|
9
|
+
const safeId = id.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
10
|
+
return join(architectureDir(projectRoot), `${safeId}-architecture.md`);
|
|
11
|
+
}
|
|
12
|
+
function adrPath(projectRoot, id, adrNumber) {
|
|
13
|
+
const safeId = id.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
14
|
+
return join(architectureDir(projectRoot), `${safeId}-adr-${adrNumber}.md`);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Save an architecture document to disk.
|
|
18
|
+
* Overwrites any existing document with the same id.
|
|
19
|
+
*/
|
|
20
|
+
export async function saveArchitecture(projectRoot, id, content) {
|
|
21
|
+
await ensureDir(architectureDir(projectRoot));
|
|
22
|
+
const filePath = architecturePath(projectRoot, id);
|
|
23
|
+
await writeFile(filePath, content, "utf-8");
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Read an architecture document by id.
|
|
27
|
+
* Throws if not found.
|
|
28
|
+
*/
|
|
29
|
+
export async function readArchitecture(projectRoot, id) {
|
|
30
|
+
const filePath = architecturePath(projectRoot, id);
|
|
31
|
+
try {
|
|
32
|
+
return await readFile(filePath, "utf-8");
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
throw new Error(`Architecture document "${id}" not found: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Save an individual ADR file for an architecture.
|
|
40
|
+
* ADRs are saved as separate files: <id>-adr-<N>.md
|
|
41
|
+
*/
|
|
42
|
+
export async function saveADR(projectRoot, id, adrNumber, content) {
|
|
43
|
+
await ensureDir(architectureDir(projectRoot));
|
|
44
|
+
const filePath = adrPath(projectRoot, id, adrNumber);
|
|
45
|
+
await writeFile(filePath, content, "utf-8");
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Read all ADR files for an architecture, sorted by ADR number.
|
|
49
|
+
* Returns an empty array if none exist.
|
|
50
|
+
*/
|
|
51
|
+
export async function readADRs(projectRoot, id) {
|
|
52
|
+
const dir = architectureDir(projectRoot);
|
|
53
|
+
const safeId = id.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
54
|
+
const prefix = `${safeId}-adr-`;
|
|
55
|
+
let entries;
|
|
56
|
+
try {
|
|
57
|
+
entries = await readdir(dir);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Directory doesn't exist yet
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
const adrFiles = entries
|
|
64
|
+
.filter((f) => f.startsWith(prefix) && f.endsWith(".md"))
|
|
65
|
+
.sort((a, b) => {
|
|
66
|
+
// Sort numerically by ADR number
|
|
67
|
+
const numA = parseInt(a.slice(prefix.length, -3), 10);
|
|
68
|
+
const numB = parseInt(b.slice(prefix.length, -3), 10);
|
|
69
|
+
return numA - numB;
|
|
70
|
+
});
|
|
71
|
+
const adrs = [];
|
|
72
|
+
for (const file of adrFiles) {
|
|
73
|
+
const content = await readFile(join(dir, file), "utf-8");
|
|
74
|
+
adrs.push(content);
|
|
75
|
+
}
|
|
76
|
+
return adrs;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* List all saved architecture IDs, sorted by filename.
|
|
80
|
+
*/
|
|
81
|
+
export async function listArchitectures(projectRoot) {
|
|
82
|
+
const dir = architectureDir(projectRoot);
|
|
83
|
+
let entries;
|
|
84
|
+
try {
|
|
85
|
+
entries = await readdir(dir);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Directory doesn't exist yet
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
return entries
|
|
92
|
+
.filter((f) => f.endsWith("-architecture.md"))
|
|
93
|
+
.sort()
|
|
94
|
+
.map((f) => f.slice(0, -"-architecture.md".length));
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=architect-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"architect-state.js","sourceRoot":"","sources":["../../src/state/architect-state.ts"],"names":[],"mappings":"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"}
|
package/dist/state/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { PhaseSchema, HistoryEntrySchema, type Phase, type HistoryEntry, appendH
|
|
|
4
4
|
export { saveResearch, readResearch, listResearch, } from "./research-state.js";
|
|
5
5
|
export { saveDesign, readDesign, } from "./design-state.js";
|
|
6
6
|
export { saveOutline, readOutline, } from "./outline-state.js";
|
|
7
|
+
export { saveArchitecture, readArchitecture, saveADR, readADRs, listArchitectures, } from "./architect-state.js";
|
|
7
8
|
/**
|
|
8
9
|
* Ensure the `.bober/` directory and all required subdirectories exist,
|
|
9
10
|
* including the `research/` subdirectory for research documents.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,SAAS,GACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAEL,WAAW,EACX,kBAAkB,EAElB,KAAK,KAAK,EACV,KAAK,YAAY,EAEjB,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,UAAU,EACV,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,WAAW,GACZ,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,SAAS,GACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAEL,WAAW,EACX,kBAAkB,EAElB,KAAK,KAAK,EACV,KAAK,YAAY,EAEjB,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,UAAU,EACV,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAK9B;;;GAGG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvE"}
|
package/dist/state/index.js
CHANGED
|
@@ -10,8 +10,9 @@ appendHistory, loadHistory, updateProgress, } from "./history.js";
|
|
|
10
10
|
export { saveResearch, readResearch, listResearch, } from "./research-state.js";
|
|
11
11
|
export { saveDesign, readDesign, } from "./design-state.js";
|
|
12
12
|
export { saveOutline, readOutline, } from "./outline-state.js";
|
|
13
|
+
export { saveArchitecture, readArchitecture, saveADR, readADRs, listArchitectures, } from "./architect-state.js";
|
|
13
14
|
const BOBER_DIR = ".bober";
|
|
14
|
-
const SUBDIRS = ["contracts", "specs", "research", "designs", "outlines"];
|
|
15
|
+
const SUBDIRS = ["contracts", "specs", "research", "designs", "outlines", "architecture"];
|
|
15
16
|
/**
|
|
16
17
|
* Ensure the `.bober/` directory and all required subdirectories exist,
|
|
17
18
|
* including the `research/` subdirectory for research documents.
|