agent-bober 0.5.3 → 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/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
|
@@ -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":"AAGA,OAAO,EACL,cAAc,EACd,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,aAAa,EACb,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAmB5C,sEAAsE;AAEtE,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,SAAS,qBAAqB;IAC5B,WAAW,GAAG,KAAK,CAAC;IAEpB,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,WAAW,EAAE,CAAC;YAChB,6BAA6B;YAC7B,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,WAAW,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAChF,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;AAED,sEAAsE;AAEtE,KAAK,UAAU,mBAAmB,CAChC,WAAmB,EACnB,MAAmB;IAEnB,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;QACzB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;QACzB,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,EAAE;QACf,aAAa;KACd,CAAC;AACJ,CAAC;AAED,sEAAsE;AAEtE,KAAK,UAAU,cAAc,CAC3B,QAAwB,EACxB,IAAc,EACd,kBAAoC,EACpC,WAAmB,EACnB,MAAmB,EACnB,cAA8B;IAE9B,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;IACrD,IAAI,eAAe,GAAG,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACpE,MAAM,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAEnD,IAAI,cAA+C,CAAC;IACpD,IAAI,mBAAgD,CAAC;IAErD,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,IAAI,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;QAChE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,UAAU,eAAe,CAAC,EAAE,6BAA6B,SAAS,GAAG,CAAC,CAAC;YACnF,MAAM;QACR,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,eAAe,CAAC,EAAE,YAAY,CAAC,CAAC;QAEpF,6CAA6C;QAC7C,+DAA+D;QAC/D,mEAAmE;QACnE,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC/C,iBAAiB,CAAC,IAAI,CACpB,IAAI,MAAM,KAAK,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACtG,CAAC;gBACF,iBAAiB,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEvD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACzD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;oBAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI;wBACrB,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC3E,CAAC,CAAC,EAAE,CAAC;oBACP,iBAAiB,CAAC,IAAI,CACpB,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAC/D,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACtC,iBAAiB,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,uBAAuB,GAAG,aAAa,CAAC;YAC5C,IAAI,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;YAC/C,EAAE,EAAE,WAAW;YACf,cAAc;YACd,IAAI;YACJ,eAAe;YACf,aAAa,EAAE,kBAAkB;YACjC,YAAY,EAAE,qBAAqB,eAAe,CAAC,OAAO,OAAO,eAAe,CAAC,WAAW,EAAE;YAC9F,YAAY,EAAE,mBAAmB,EAAE,YAAY,IAAI,EAAE;YACrD,MAAM,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;SAC9D,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAE3E,8DAA8D;QAC9D,MAAM,CAAC,KAAK,CAAC,UAAU,eAAe,CAAC,EAAE,sBAAsB,SAAS,GAAG,CAAC,CAAC;QAE7E,MAAM,aAAa,CAAC,WAAW,EAAE;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,eAAe,CAAC,EAAE;YAC5B,OAAO,EAAE,EAAE,SAAS,EAAE;SACvB,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,MAAM,YAAY,CACxC,gBAAgB,EAChB,WAAW,EACX,MAAM,CACP,CAAC;QACF,mBAAmB,GAAG,eAAe,CAAC;QAEtC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,+BAA+B,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;YACpE,eAAe,GAAG;gBAChB,GAAG,eAAe;gBAClB,cAAc,EAAE,eAAe,CAAC,KAAK;aACtC,CAAC;YACF,MAAM,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAEnD,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACtC,SAAS;YACX,CAAC;YAED,+CAA+C;YAC/C,eAAe,GAAG,oBAAoB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;YACxE,eAAe,GAAG;gBAChB,GAAG,eAAe;gBAClB,iBAAiB,EAAE,kDAAkD;aACtE,CAAC;YACF,MAAM,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACnD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;QACxD,CAAC;QAED,eAAe,GAAG;YAChB,GAAG,eAAe;YAClB,cAAc,EAAE,eAAe,CAAC,KAAK;SACtC,CAAC;QAEF,yBAAyB;QACzB,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,SAAS,CAChC,WAAW,EACX,UAAU,eAAe,CAAC,OAAO,YAAY,eAAe,CAAC,EAAE,WAAW,SAAS,GAAG,CACvF,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;gBAC3C,mBAAmB,GAAG,EAAE,GAAG,eAAe,EAAE,UAAU,EAAE,CAAC;YAC3D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CACV,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC3E,CAAC;YACJ,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,MAAM,CAAC,KAAK,CAAC,UAAU,eAAe,CAAC,EAAE,sBAAsB,SAAS,GAAG,CAAC,CAAC;QAE7E,eAAe,GAAG,oBAAoB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QACtE,MAAM,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAEnD,MAAM,aAAa,CAAC,WAAW,EAAE;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,eAAe,CAAC,EAAE;YAC5B,OAAO,EAAE,EAAE,SAAS,EAAE;SACvB,CAAC,CAAC;QAEH,8BAA8B;QAC9B,IAAI,YAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;QAC9C,CAAC;QAED,MAAM,WAAW,GAAmB;YAClC,GAAG,gBAAgB;YACnB,IAAI,EAAE,WAAW;YACjB,EAAE,EAAE,WAAW;YACf,YAAY;SACb,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,iBAAiB,CACxC,WAAW,EACX,WAAW,EACX,MAAM,CACP,CAAC;QACF,cAAc,GAAG,UAAU,CAAC;QAE5B,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,UAAU,eAAe,CAAC,EAAE,0BAA0B,CAAC,CAAC;YAEvE,eAAe,GAAG,oBAAoB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YAClE,eAAe,GAAG;gBAChB,GAAG,eAAe;gBAClB,iBAAiB,EAAE,UAAU,CAAC,OAAO;aACtC,CAAC;YACF,MAAM,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAEnD,MAAM,aAAa,CAAC,WAAW,EAAE;gBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,eAAe,CAAC,EAAE;gBAC5B,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE;aACrD,CAAC,CAAC;YAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC;QACzF,CAAC;QAED,oBAAoB;QACpB,MAAM,CAAC,IAAI,CACT,4BAA4B,SAAS,IAAI,aAAa,MAAM,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC/F,CAAC;QAEF,eAAe,GAAG;YAChB,GAAG,eAAe;YAClB,iBAAiB,EAAE,UAAU,CAAC,OAAO;SACtC,CAAC;QACF,MAAM,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAEnD,MAAM,aAAa,CAAC,WAAW,EAAE;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,eAAe,CAAC,EAAE;YAC5B,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE;SACrD,CAAC,CAAC;QAEH,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,CACV,UAAU,eAAe,CAAC,EAAE,6BAA6B,aAAa,IAAI,CAC3E,CAAC;YACF,eAAe,GAAG,oBAAoB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;YACxE,MAAM,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACnD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;QACnD,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;IAED,iCAAiC;IACjC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACnE,CAAC;AAED,sEAAsE;AAEtE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAkB,EAClB,WAAmB,EACnB,MAAmB;IAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IAExC,IAAI,CAAC;QACH,4CAA4C;QAC5C,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;QAElC,MAAM,aAAa,CAAC,WAAW,EAAE;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SAClD,CAAC,CAAC;QAEH,gEAAgE;QAChE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAE/D,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;QAE3E,MAAM,aAAa,CAAC,WAAW,EAAE;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE;gBACP,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;aACnC;SACF,CAAC,CAAC;QAEH,gEAAgE;QAChE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAEjC,wCAAwC;QACxC,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,cAAc,CAC7B,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3C,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,cAAc,GAAG,GAAG,CAAC,EAAE;gBACxC,WAAW,EAAE,EAAE;gBACf,kBAAkB,EAAE,kBAAkB;aACvC,CAAC,CAAC,CACJ,CAAC;YACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,gBAAgB,GAAqB,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAqB,EAAE,CAAC;QAE3C,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,MAAM;YACR,CAAC;YAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,QAAQ,EACR,IAAI,EACJ,gBAAgB,EAChB,WAAW,EACX,MAAM,EACN,cAAc,CACf,CAAC;YAEF,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAEpC,4CAA4C;gBAC5C,IACE,MAAM,CAAC,MAAM,CAAC,gBAAgB;oBAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,cAAc,EACzC,CAAC;oBACD,MAAM,CAAC,KAAK,CACV,UAAU,MAAM,CAAC,QAAQ,CAAC,EAAE,wDAAwD,CACrF,CAAC;oBACF,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,OAAO,GACX,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5D,MAAM,aAAa,CAAC,WAAW,EAAE;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;YACtC,OAAO,EAAE;gBACP,SAAS,EAAE,gBAAgB,CAAC,MAAM;gBAClC,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,UAAU,EAAE,QAAQ;aACrB;SACF,CAAC,CAAC;QAEH,OAAO;YACL,OAAO;YACP,IAAI;YACJ,gBAAgB;YAChB,aAAa;YACb,QAAQ;SACT,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { readFile, writeFile, mkdir } from "node:fs/promises";
|
|
2
|
+
import { resolve, relative, isAbsolute } from "node:path";
|
|
3
|
+
import { execa } from "execa";
|
|
4
|
+
// ── Constants ──────────────────────────────────────────────────────
|
|
5
|
+
/** Max characters per tool result to prevent context blow-up. */
|
|
6
|
+
const MAX_OUTPUT_CHARS = 100_000;
|
|
7
|
+
/** Default bash command timeout in ms. */
|
|
8
|
+
const DEFAULT_BASH_TIMEOUT = 120_000;
|
|
9
|
+
/** Max files returned by glob. */
|
|
10
|
+
const MAX_GLOB_RESULTS = 500;
|
|
11
|
+
/** Max lines returned by grep. */
|
|
12
|
+
const MAX_GREP_LINES = 300;
|
|
13
|
+
// ── Path sandboxing ────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Resolve and validate a file path, ensuring it stays within projectRoot.
|
|
16
|
+
* Returns the absolute path or throws if the path escapes the sandbox.
|
|
17
|
+
*/
|
|
18
|
+
function sandboxPath(projectRoot, inputPath) {
|
|
19
|
+
const abs = isAbsolute(inputPath)
|
|
20
|
+
? resolve(inputPath)
|
|
21
|
+
: resolve(projectRoot, inputPath);
|
|
22
|
+
// Ensure the resolved path is within the project root
|
|
23
|
+
const rel = relative(projectRoot, abs);
|
|
24
|
+
if (rel.startsWith("..") || isAbsolute(rel)) {
|
|
25
|
+
throw new Error(`Path "${inputPath}" resolves outside the project root. Access denied.`);
|
|
26
|
+
}
|
|
27
|
+
return abs;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Truncate output to MAX_OUTPUT_CHARS with a notice.
|
|
31
|
+
*/
|
|
32
|
+
function truncate(text, limit = MAX_OUTPUT_CHARS) {
|
|
33
|
+
if (text.length <= limit)
|
|
34
|
+
return text;
|
|
35
|
+
return (text.slice(0, limit) +
|
|
36
|
+
`\n\n[Output truncated at ${limit.toLocaleString()} characters. Use more specific commands or read_file with offset/limit.]`);
|
|
37
|
+
}
|
|
38
|
+
// ── Tool handlers ──────────────────────────────────────────────────
|
|
39
|
+
function createBashHandler(projectRoot) {
|
|
40
|
+
return async (input) => {
|
|
41
|
+
const command = input.command;
|
|
42
|
+
const timeout = input.timeout ?? DEFAULT_BASH_TIMEOUT;
|
|
43
|
+
if (!command) {
|
|
44
|
+
return { output: "Error: 'command' parameter is required.", isError: true };
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
const result = await execa("sh", ["-c", command], {
|
|
48
|
+
cwd: projectRoot,
|
|
49
|
+
timeout,
|
|
50
|
+
reject: false,
|
|
51
|
+
all: true,
|
|
52
|
+
env: { ...process.env },
|
|
53
|
+
});
|
|
54
|
+
const output = result.all ?? result.stdout ?? "";
|
|
55
|
+
const exitCode = result.exitCode ?? -1;
|
|
56
|
+
const parts = [];
|
|
57
|
+
if (exitCode !== 0) {
|
|
58
|
+
parts.push(`Exit code: ${exitCode}`);
|
|
59
|
+
}
|
|
60
|
+
parts.push(output);
|
|
61
|
+
if (result.stderr && !result.all?.includes(result.stderr)) {
|
|
62
|
+
parts.push(`stderr:\n${result.stderr}`);
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
output: truncate(parts.join("\n")),
|
|
66
|
+
isError: exitCode !== 0,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
71
|
+
if (message.includes("ETIMEDOUT") || message.includes("timed out")) {
|
|
72
|
+
return {
|
|
73
|
+
output: `Command timed out after ${timeout}ms. Use a longer timeout or a more specific command.`,
|
|
74
|
+
isError: true,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
return { output: `Error executing command: ${message}`, isError: true };
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function createReadFileHandler(projectRoot) {
|
|
82
|
+
return async (input) => {
|
|
83
|
+
const filePath = input.file_path;
|
|
84
|
+
if (!filePath) {
|
|
85
|
+
return { output: "Error: 'file_path' parameter is required.", isError: true };
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const abs = sandboxPath(projectRoot, filePath);
|
|
89
|
+
const content = await readFile(abs, "utf-8");
|
|
90
|
+
const lines = content.split("\n");
|
|
91
|
+
const offset = Math.max(1, input.offset ?? 1);
|
|
92
|
+
const limit = input.limit ?? lines.length;
|
|
93
|
+
const slice = lines.slice(offset - 1, offset - 1 + limit);
|
|
94
|
+
const numbered = slice
|
|
95
|
+
.map((line, i) => `${String(offset + i).padStart(6)}\t${line}`)
|
|
96
|
+
.join("\n");
|
|
97
|
+
return { output: truncate(numbered), isError: false };
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
101
|
+
if (message.includes("ENOENT")) {
|
|
102
|
+
return { output: `File not found: ${filePath}`, isError: true };
|
|
103
|
+
}
|
|
104
|
+
return { output: `Error reading file: ${message}`, isError: true };
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function createWriteFileHandler(projectRoot) {
|
|
109
|
+
return async (input) => {
|
|
110
|
+
const filePath = input.file_path;
|
|
111
|
+
const content = input.content;
|
|
112
|
+
if (!filePath) {
|
|
113
|
+
return { output: "Error: 'file_path' parameter is required.", isError: true };
|
|
114
|
+
}
|
|
115
|
+
if (content === undefined || content === null) {
|
|
116
|
+
return { output: "Error: 'content' parameter is required.", isError: true };
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
const abs = sandboxPath(projectRoot, filePath);
|
|
120
|
+
// Create parent directories
|
|
121
|
+
const dir = abs.substring(0, abs.lastIndexOf("/"));
|
|
122
|
+
await mkdir(dir, { recursive: true });
|
|
123
|
+
await writeFile(abs, content, "utf-8");
|
|
124
|
+
const bytes = content.length;
|
|
125
|
+
return {
|
|
126
|
+
output: `Wrote ${bytes} bytes to ${filePath}`,
|
|
127
|
+
isError: false,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
132
|
+
return { output: `Error writing file: ${message}`, isError: true };
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function createEditFileHandler(projectRoot) {
|
|
137
|
+
return async (input) => {
|
|
138
|
+
const filePath = input.file_path;
|
|
139
|
+
const oldText = input.old_text;
|
|
140
|
+
const newText = input.new_text;
|
|
141
|
+
if (!filePath) {
|
|
142
|
+
return { output: "Error: 'file_path' parameter is required.", isError: true };
|
|
143
|
+
}
|
|
144
|
+
if (!oldText) {
|
|
145
|
+
return { output: "Error: 'old_text' parameter is required.", isError: true };
|
|
146
|
+
}
|
|
147
|
+
if (newText === undefined || newText === null) {
|
|
148
|
+
return { output: "Error: 'new_text' parameter is required.", isError: true };
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
const abs = sandboxPath(projectRoot, filePath);
|
|
152
|
+
const content = await readFile(abs, "utf-8");
|
|
153
|
+
const idx = content.indexOf(oldText);
|
|
154
|
+
if (idx === -1) {
|
|
155
|
+
// Show a snippet of the file to help the agent find the right text
|
|
156
|
+
const preview = content.slice(0, 500);
|
|
157
|
+
return {
|
|
158
|
+
output: `Error: old_text not found in ${filePath}. ` +
|
|
159
|
+
`The text must match exactly including whitespace and indentation.\n\n` +
|
|
160
|
+
`File starts with:\n${preview}`,
|
|
161
|
+
isError: true,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
const updated = content.slice(0, idx) + newText + content.slice(idx + oldText.length);
|
|
165
|
+
await writeFile(abs, updated, "utf-8");
|
|
166
|
+
return {
|
|
167
|
+
output: `Applied edit to ${filePath}: replaced ${oldText.length} chars with ${newText.length} chars.`,
|
|
168
|
+
isError: false,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
173
|
+
if (message.includes("ENOENT")) {
|
|
174
|
+
return { output: `File not found: ${filePath}`, isError: true };
|
|
175
|
+
}
|
|
176
|
+
return { output: `Error editing file: ${message}`, isError: true };
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
function createGlobHandler(projectRoot) {
|
|
181
|
+
return async (input) => {
|
|
182
|
+
const pattern = input.pattern;
|
|
183
|
+
if (!pattern) {
|
|
184
|
+
return { output: "Error: 'pattern' parameter is required.", isError: true };
|
|
185
|
+
}
|
|
186
|
+
const searchDir = input.path
|
|
187
|
+
? sandboxPath(projectRoot, input.path)
|
|
188
|
+
: projectRoot;
|
|
189
|
+
try {
|
|
190
|
+
// Use the glob package (already a dependency)
|
|
191
|
+
const { glob } = await import("glob");
|
|
192
|
+
const matches = await glob(pattern, {
|
|
193
|
+
cwd: searchDir,
|
|
194
|
+
nodir: true,
|
|
195
|
+
ignore: ["node_modules/**", ".git/**", "dist/**"],
|
|
196
|
+
});
|
|
197
|
+
if (matches.length === 0) {
|
|
198
|
+
return { output: `No files found matching "${pattern}"`, isError: false };
|
|
199
|
+
}
|
|
200
|
+
const limited = matches.slice(0, MAX_GLOB_RESULTS);
|
|
201
|
+
let output = limited.join("\n");
|
|
202
|
+
if (matches.length > MAX_GLOB_RESULTS) {
|
|
203
|
+
output += `\n\n[${matches.length - MAX_GLOB_RESULTS} more files not shown. Use a more specific pattern.]`;
|
|
204
|
+
}
|
|
205
|
+
return { output, isError: false };
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
209
|
+
return { output: `Error during glob: ${message}`, isError: true };
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
function createGrepHandler(projectRoot) {
|
|
214
|
+
return async (input) => {
|
|
215
|
+
const pattern = input.pattern;
|
|
216
|
+
if (!pattern) {
|
|
217
|
+
return { output: "Error: 'pattern' parameter is required.", isError: true };
|
|
218
|
+
}
|
|
219
|
+
const searchPath = input.path
|
|
220
|
+
? sandboxPath(projectRoot, input.path)
|
|
221
|
+
: projectRoot;
|
|
222
|
+
try {
|
|
223
|
+
const args = ["-rn", "--color=never"];
|
|
224
|
+
// Add context lines
|
|
225
|
+
const context = input.context;
|
|
226
|
+
if (context && context > 0) {
|
|
227
|
+
args.push(`-C`, String(context));
|
|
228
|
+
}
|
|
229
|
+
// Add glob filter
|
|
230
|
+
const globPattern = input.glob;
|
|
231
|
+
if (globPattern) {
|
|
232
|
+
args.push(`--include=${globPattern}`);
|
|
233
|
+
}
|
|
234
|
+
// Always exclude common dirs
|
|
235
|
+
args.push("--exclude-dir=node_modules", "--exclude-dir=.git", "--exclude-dir=dist");
|
|
236
|
+
args.push(pattern, searchPath);
|
|
237
|
+
const result = await execa("grep", args, {
|
|
238
|
+
cwd: projectRoot,
|
|
239
|
+
reject: false,
|
|
240
|
+
all: true,
|
|
241
|
+
timeout: 30_000,
|
|
242
|
+
});
|
|
243
|
+
const output = result.all ?? result.stdout ?? "";
|
|
244
|
+
if (result.exitCode === 1 && !output.trim()) {
|
|
245
|
+
return { output: `No matches found for pattern "${pattern}"`, isError: false };
|
|
246
|
+
}
|
|
247
|
+
// Limit output lines
|
|
248
|
+
const lines = output.split("\n");
|
|
249
|
+
if (lines.length > MAX_GREP_LINES) {
|
|
250
|
+
const truncated = lines.slice(0, MAX_GREP_LINES).join("\n");
|
|
251
|
+
return {
|
|
252
|
+
output: truncated +
|
|
253
|
+
`\n\n[${lines.length - MAX_GREP_LINES} more lines. Use a more specific pattern or glob filter.]`,
|
|
254
|
+
isError: false,
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
return { output: truncate(output), isError: false };
|
|
258
|
+
}
|
|
259
|
+
catch (err) {
|
|
260
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
261
|
+
return { output: `Error during grep: ${message}`, isError: true };
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
// ── Factory ────────────────────────────────────────────────────────
|
|
266
|
+
/**
|
|
267
|
+
* Create all tool handlers scoped to a project root.
|
|
268
|
+
*/
|
|
269
|
+
export function createToolHandlers(projectRoot) {
|
|
270
|
+
const handlers = new Map();
|
|
271
|
+
handlers.set("bash", createBashHandler(projectRoot));
|
|
272
|
+
handlers.set("read_file", createReadFileHandler(projectRoot));
|
|
273
|
+
handlers.set("write_file", createWriteFileHandler(projectRoot));
|
|
274
|
+
handlers.set("edit_file", createEditFileHandler(projectRoot));
|
|
275
|
+
handlers.set("glob", createGlobHandler(projectRoot));
|
|
276
|
+
handlers.set("grep", createGrepHandler(projectRoot));
|
|
277
|
+
return handlers;
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/orchestrator/tools/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type Anthropic from "@anthropic-ai/sdk";
|
|
2
|
+
import type { ToolHandler } from "./handlers.js";
|
|
3
|
+
export type { ToolHandler } from "./handlers.js";
|
|
4
|
+
type Tool = Anthropic.Messages.Tool;
|
|
5
|
+
export type AgentRole = "planner" | "generator" | "evaluator";
|
|
6
|
+
export interface ToolSet {
|
|
7
|
+
/** Tool schemas to pass to `client.messages.create({ tools })`. */
|
|
8
|
+
schemas: Tool[];
|
|
9
|
+
/** Handler functions keyed by tool name. */
|
|
10
|
+
handlers: Map<string, ToolHandler>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Build a tool set for a specific agent role.
|
|
14
|
+
*
|
|
15
|
+
* Returns only the tools appropriate for that role:
|
|
16
|
+
* - **planner**: read_file, glob, grep (read-only, no execution)
|
|
17
|
+
* - **generator**: all 6 tools (full filesystem + bash access)
|
|
18
|
+
* - **evaluator**: bash, read_file, glob, grep (can run commands, cannot write/edit files)
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildToolSet(role: AgentRole, projectRoot: string): ToolSet;
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/orchestrator/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAI/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD,KAAK,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;AAEpC,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAE9D,MAAM,WAAW,OAAO;IACtB,mEAAmE;IACnE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,4CAA4C;IAC5C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACpC;AAYD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAkBT"}
|