developing-agent-forge 2.0.1 → 2.1.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 +25 -25
- package/README.zh-CN.md +30 -30
- package/dist/agents/developer.d.ts +6 -6
- package/dist/agents/developer.d.ts.map +1 -1
- package/dist/agents/developer.js +52 -30
- package/dist/agents/developer.js.map +1 -1
- package/dist/agents/index.d.ts +2 -2
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/manager.d.ts +8 -6
- package/dist/agents/manager.d.ts.map +1 -1
- package/dist/agents/manager.js +99 -23
- package/dist/agents/manager.js.map +1 -1
- package/dist/agents/polytail.d.ts +3 -0
- package/dist/agents/polytail.d.ts.map +1 -0
- package/dist/agents/polytail.js +161 -0
- package/dist/agents/polytail.js.map +1 -0
- package/dist/agents/reviewer.d.ts +6 -2
- package/dist/agents/reviewer.d.ts.map +1 -1
- package/dist/agents/reviewer.js +72 -9
- package/dist/agents/reviewer.js.map +1 -1
- package/dist/agents/trajectory-optimizer.d.ts +3 -3
- package/dist/agents/trajectory-optimizer.d.ts.map +1 -1
- package/dist/agents/trajectory-optimizer.js +28 -17
- package/dist/agents/trajectory-optimizer.js.map +1 -1
- package/dist/pipeline/index.d.ts +1 -1
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +1 -1
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/pipelineskill.d.ts.map +1 -1
- package/dist/pipeline/pipelineskill.js +5 -6
- package/dist/pipeline/pipelineskill.js.map +1 -1
- package/dist/pipeline/project-devloop.d.ts +3 -3
- package/dist/pipeline/project-devloop.d.ts.map +1 -1
- package/dist/pipeline/project-devloop.js +19 -21
- package/dist/pipeline/project-devloop.js.map +1 -1
- package/dist/pipeline/task-devloop.d.ts +8 -2
- package/dist/pipeline/task-devloop.d.ts.map +1 -1
- package/dist/pipeline/task-devloop.js +44 -23
- package/dist/pipeline/task-devloop.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Memory, defaultMemoryAgentNames, } from "memory-agent-forge";
|
|
2
2
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import { TaskDevLoop } from "./task-devloop.js";
|
|
4
|
+
import { TaskDevLoop, } from "./task-devloop.js";
|
|
5
5
|
const MEMORY_DOMAIN_HINT = "Project progress memory for goals, completed tasks, current status, and task-selection context across project iterations.";
|
|
6
|
-
const FINISH_MARK = "FINISHED";
|
|
7
6
|
export class ProjectDevLoop {
|
|
8
7
|
async develop(team, targetPath, codingStyleSkillPath, goal, achiveDir, maxIterations, maxTaskDevLoopIterations, projectProgressMemoryPath, codeDesignMemoryPath, maxMemoryRounds, callbacks, logRecord) {
|
|
9
8
|
const agentVariables = {
|
|
@@ -18,42 +17,41 @@ export class ProjectDevLoop {
|
|
|
18
17
|
console.log(`\n# Project dev loop iteration ${String(iteration)}\n`);
|
|
19
18
|
const archiveDir = path.join(achiveDir, new Date().toISOString().replace(/[:.]/g, "-"));
|
|
20
19
|
await mkdir(archiveDir, { recursive: true });
|
|
21
|
-
const codingManager = await team.createAgent("coding-manager");
|
|
22
|
-
const
|
|
20
|
+
const codingManager = (await team.createAgent("coding-manager"));
|
|
21
|
+
const projectProgressMemoryGuidance = (await codingManager.runStreamed({
|
|
23
22
|
...agentVariables,
|
|
24
23
|
phase: "recall",
|
|
25
24
|
}, logRecord)).trim();
|
|
26
|
-
await writeFile(path.join(archiveDir, "project_devloop_memory_recall_guidance.md"),
|
|
27
|
-
const
|
|
25
|
+
await writeFile(path.join(archiveDir, "project_devloop_memory_recall_guidance.md"), projectProgressMemoryGuidance, "utf8");
|
|
26
|
+
const projectProgressMemory = (await memoryStore.recall(team, MEMORY_DOMAIN_HINT, projectProgressMemoryPath, maxMemoryRounds, projectProgressMemoryGuidance, logRecord))
|
|
28
27
|
.map(({ content }) => content)
|
|
29
28
|
.join("\n\n");
|
|
30
|
-
await writeFile(path.join(archiveDir, "
|
|
31
|
-
const
|
|
29
|
+
await writeFile(path.join(archiveDir, "project_devloop_memory_recalled.md"), projectProgressMemory, "utf8");
|
|
30
|
+
const taskBrief = (await codingManager.runStreamed({
|
|
32
31
|
...agentVariables,
|
|
33
|
-
|
|
34
|
-
finishMark: FINISH_MARK,
|
|
32
|
+
projectProgressMemory,
|
|
35
33
|
phase: "select",
|
|
36
34
|
}, logRecord)).trim();
|
|
37
|
-
await writeFile(path.join(archiveDir, "
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
await writeFile(path.join(archiveDir, "task_brief.md"), taskBrief, "utf8");
|
|
36
|
+
const managerDecision = codingManager.parseDecision(taskBrief);
|
|
37
|
+
if (managerDecision === "FINISHED") {
|
|
38
|
+
console.log("\n# FINISHED\n");
|
|
40
39
|
return;
|
|
41
40
|
}
|
|
42
|
-
await callbacks?.onTaskStart?.(agentVariables,
|
|
43
|
-
const
|
|
41
|
+
await callbacks?.onTaskStart?.(agentVariables, taskBrief);
|
|
42
|
+
const taskResult = await taskDevLoop.develop(team, agentVariables.targetPath, agentVariables.codingStyleSkillPath, agentVariables.goal, archiveDir, maxTaskDevLoopIterations, taskBrief, codeDesignMemoryPath, maxMemoryRounds, logRecord);
|
|
44
43
|
const thingsToRemember = (await codingManager.runStreamed({
|
|
45
44
|
...agentVariables,
|
|
46
|
-
|
|
47
|
-
finishMark: FINISH_MARK,
|
|
45
|
+
projectProgressMemory,
|
|
48
46
|
phase: "update",
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
taskBrief,
|
|
48
|
+
taskRoundSummary: taskResult.taskRoundSummary,
|
|
51
49
|
}, logRecord)).trim();
|
|
52
50
|
await writeFile(path.join(archiveDir, "project_devloop_things_to_remember.md"), thingsToRemember, "utf8");
|
|
53
51
|
await memoryStore.remember(team, MEMORY_DOMAIN_HINT, projectProgressMemoryPath, maxMemoryRounds, thingsToRemember, logRecord);
|
|
54
|
-
await callbacks?.onTaskFinish?.(agentVariables,
|
|
52
|
+
await callbacks?.onTaskFinish?.(agentVariables, taskBrief, taskResult, thingsToRemember);
|
|
55
53
|
}
|
|
56
|
-
throw new Error(`Reached --max-iterations ${String(maxIterations)} before the coding-manager returned
|
|
54
|
+
throw new Error(`Reached --max-iterations ${String(maxIterations)} before the coding-manager returned FINISHED.`);
|
|
57
55
|
}
|
|
58
56
|
}
|
|
59
57
|
//# sourceMappingURL=project-devloop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-devloop.js","sourceRoot":"","sources":["../../src/pipeline/project-devloop.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,uBAAuB,GAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"project-devloop.js","sourceRoot":"","sources":["../../src/pipeline/project-devloop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import type { AgentTeam, RecordCallback } from "coding-agent-forge";
|
|
2
2
|
import { type MemoryAgentVariablesByName } from "memory-agent-forge";
|
|
3
|
-
import type
|
|
3
|
+
import { type CodeReviewerVariables, type DeveloperVariables } from "../agents/index.js";
|
|
4
4
|
export type TaskDevLoopAgentVariablesByName = {
|
|
5
5
|
developer: DeveloperVariables;
|
|
6
6
|
"code-reviewer": CodeReviewerVariables;
|
|
7
7
|
} & MemoryAgentVariablesByName;
|
|
8
|
+
type TaskRoundFinalDecision = "ACCEPT" | "REDIRECT" | "FAILED";
|
|
9
|
+
export type TaskDevLoopResult = {
|
|
10
|
+
finalDecision: TaskRoundFinalDecision;
|
|
11
|
+
taskRoundSummary: string;
|
|
12
|
+
};
|
|
8
13
|
export declare class TaskDevLoop {
|
|
9
|
-
develop(team: AgentTeam<TaskDevLoopAgentVariablesByName>, targetPath: string, codingStyleSkillPath: string, goal: string, archiveDir: string, maxIterations: number,
|
|
14
|
+
develop(team: AgentTeam<TaskDevLoopAgentVariablesByName>, targetPath: string, codingStyleSkillPath: string, goal: string, archiveDir: string, maxIterations: number, taskBrief: string, codeDesignMemoryPath: string, maxMemoryRounds: number, logRecord?: RecordCallback): Promise<TaskDevLoopResult>;
|
|
10
15
|
}
|
|
16
|
+
export {};
|
|
11
17
|
//# sourceMappingURL=task-devloop.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-devloop.d.ts","sourceRoot":"","sources":["../../src/pipeline/task-devloop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"task-devloop.d.ts","sourceRoot":"","sources":["../../src/pipeline/task-devloop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAExB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,+BAA+B,GAAG;IAC5C,SAAS,EAAE,kBAAkB,CAAC;IAC9B,eAAe,EAAE,qBAAqB,CAAC;CACxC,GAAG,0BAA0B,CAAC;AAK/B,KAAK,sBAAsB,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,sBAAsB,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,qBAAa,WAAW;IAChB,OAAO,CACX,IAAI,EAAE,SAAS,CAAC,+BAA+B,CAAC,EAChD,UAAU,EAAE,MAAM,EAClB,oBAAoB,EAAE,MAAM,EAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,iBAAiB,CAAC;CA8J9B"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Memory, defaultMemoryAgentNames, } from "memory-agent-forge";
|
|
2
2
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
const
|
|
5
|
-
const MEMORY_DOMAIN_HINT = "Code design memory for logic relationships between code, design rationale, invariants, and implementation decisions in the target repository.";
|
|
4
|
+
const CODE_DESIGN_MEMORY_DOMAIN_HINT = "Code design memory for logic relationships between code, design rationale, invariants, and implementation decisions in the target repository.";
|
|
6
5
|
export class TaskDevLoop {
|
|
7
|
-
async develop(team, targetPath, codingStyleSkillPath, goal, archiveDir, maxIterations,
|
|
6
|
+
async develop(team, targetPath, codingStyleSkillPath, goal, archiveDir, maxIterations, taskBrief, codeDesignMemoryPath, maxMemoryRounds, logRecord) {
|
|
8
7
|
const agentVariables = {
|
|
9
8
|
targetPath,
|
|
10
9
|
codingStyleSkillPath,
|
|
@@ -12,26 +11,27 @@ export class TaskDevLoop {
|
|
|
12
11
|
};
|
|
13
12
|
await mkdir(archiveDir, { recursive: true });
|
|
14
13
|
const developer = await team.createAgent("developer");
|
|
15
|
-
const codeReviewer = await team.createAgent("code-reviewer");
|
|
14
|
+
const codeReviewer = (await team.createAgent("code-reviewer"));
|
|
16
15
|
const memoryStore = new Memory(defaultMemoryAgentNames);
|
|
17
|
-
const
|
|
16
|
+
const codeDesignMemoryGuidance = (await developer.runStreamed({
|
|
18
17
|
...agentVariables,
|
|
19
|
-
|
|
18
|
+
taskBrief,
|
|
20
19
|
phase: "recall",
|
|
21
20
|
}, logRecord)).trim();
|
|
22
|
-
await writeFile(path.join(archiveDir, "task_devloop_memory_recall_guidance.md"),
|
|
23
|
-
const
|
|
21
|
+
await writeFile(path.join(archiveDir, "task_devloop_memory_recall_guidance.md"), codeDesignMemoryGuidance, "utf8");
|
|
22
|
+
const codeDesignMemory = (await memoryStore.recall(team, CODE_DESIGN_MEMORY_DOMAIN_HINT, codeDesignMemoryPath, maxMemoryRounds, codeDesignMemoryGuidance, logRecord))
|
|
24
23
|
.map(({ content }) => content)
|
|
25
24
|
.join("\n\n");
|
|
26
|
-
await writeFile(path.join(archiveDir, "
|
|
25
|
+
await writeFile(path.join(archiveDir, "task_devloop_memory_recalled.md"), codeDesignMemory, "utf8");
|
|
27
26
|
let previousReviewerReport = "";
|
|
28
27
|
const taskDevReports = [];
|
|
28
|
+
let finalDecision = "FAILED";
|
|
29
29
|
for (let iteration = 1; iteration <= maxIterations; iteration++) {
|
|
30
30
|
console.log(`\n# Developer/reviewer iteration ${String(iteration)}\n`);
|
|
31
31
|
const developerVariables = {
|
|
32
32
|
...agentVariables,
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
taskBrief,
|
|
34
|
+
codeDesignMemory,
|
|
35
35
|
phase: "develop",
|
|
36
36
|
};
|
|
37
37
|
if (previousReviewerReport) {
|
|
@@ -42,36 +42,57 @@ export class TaskDevLoop {
|
|
|
42
42
|
taskDevReports.push(`Developer report ${String(iteration)}:\n${developerReport}`);
|
|
43
43
|
const reviewerReport = (await codeReviewer.runStreamed({
|
|
44
44
|
...agentVariables,
|
|
45
|
-
|
|
46
|
-
currentTask,
|
|
45
|
+
taskBrief,
|
|
47
46
|
developerReport,
|
|
47
|
+
codeDesignMemory,
|
|
48
48
|
}, logRecord)).trim();
|
|
49
49
|
await writeFile(path.join(archiveDir, `code_review_${String(iteration).padStart(3, "0")}.md`), reviewerReport, "utf8");
|
|
50
50
|
taskDevReports.push(`Reviewer report ${String(iteration)}:\n${reviewerReport}`);
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
51
|
+
const reviewDecision = codeReviewer.parseDecision(reviewerReport);
|
|
52
|
+
if (reviewDecision === "ACCEPT") {
|
|
53
53
|
taskDevReports.push("Reviewer accepted the changes.");
|
|
54
|
+
finalDecision = "ACCEPT";
|
|
55
|
+
break;
|
|
54
56
|
}
|
|
55
|
-
if (
|
|
56
|
-
taskDevReports.push("Reviewer
|
|
57
|
+
if (reviewDecision === "REDIRECT") {
|
|
58
|
+
taskDevReports.push("Reviewer redirected the task to the Manager.");
|
|
59
|
+
finalDecision = "REDIRECT";
|
|
60
|
+
break;
|
|
57
61
|
}
|
|
58
|
-
if (
|
|
62
|
+
if (iteration === maxIterations) {
|
|
63
|
+
taskDevReports.push("Reviewer did not accept the changes before the maximum review attempts.");
|
|
64
|
+
finalDecision = "FAILED";
|
|
59
65
|
break;
|
|
60
66
|
}
|
|
61
67
|
previousReviewerReport = reviewerReport;
|
|
62
68
|
}
|
|
63
69
|
const taskDevReport = taskDevReports.join("\n\n");
|
|
64
70
|
await writeFile(path.join(archiveDir, "task_devloop_report.md"), taskDevReport, "utf8");
|
|
71
|
+
const taskRoundSummary = `# Task Round Summary
|
|
72
|
+
|
|
73
|
+
## Task Brief
|
|
74
|
+
${taskBrief}
|
|
75
|
+
|
|
76
|
+
## Final Decision
|
|
77
|
+
${finalDecision}
|
|
78
|
+
|
|
79
|
+
## Developer/Reviewer Reports
|
|
80
|
+
${taskDevReport}
|
|
81
|
+
`;
|
|
82
|
+
await writeFile(path.join(archiveDir, "task_round_summary.md"), taskRoundSummary, "utf8");
|
|
65
83
|
const thingsToRemember = (await developer.runStreamed({
|
|
66
84
|
...agentVariables,
|
|
67
|
-
|
|
68
|
-
|
|
85
|
+
taskBrief,
|
|
86
|
+
codeDesignMemory,
|
|
69
87
|
phase: "update",
|
|
70
|
-
|
|
88
|
+
taskRoundSummary,
|
|
71
89
|
}, logRecord)).trim();
|
|
72
90
|
await writeFile(path.join(archiveDir, "task_devloop_things_to_remember.md"), thingsToRemember, "utf8");
|
|
73
|
-
await memoryStore.remember(team,
|
|
74
|
-
return
|
|
91
|
+
await memoryStore.remember(team, CODE_DESIGN_MEMORY_DOMAIN_HINT, codeDesignMemoryPath, maxMemoryRounds, thingsToRemember, logRecord);
|
|
92
|
+
return {
|
|
93
|
+
finalDecision,
|
|
94
|
+
taskRoundSummary,
|
|
95
|
+
};
|
|
75
96
|
}
|
|
76
97
|
}
|
|
77
98
|
//# sourceMappingURL=task-devloop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-devloop.js","sourceRoot":"","sources":["../../src/pipeline/task-devloop.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,uBAAuB,GAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"task-devloop.js","sourceRoot":"","sources":["../../src/pipeline/task-devloop.ts"],"names":[],"mappings":"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"}
|