developing-agent-forge 2.5.0 → 2.5.2
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/developing-forge.yaml +14 -32
- package/dist/agents/developer.js +24 -30
- package/dist/agents/developer.js.map +1 -1
- package/dist/agents/manager.d.ts.map +1 -1
- package/dist/agents/manager.js +21 -30
- package/dist/agents/manager.js.map +1 -1
- package/dist/agents/prompts.d.ts.map +1 -1
- package/dist/agents/prompts.js +1 -3
- package/dist/agents/prompts.js.map +1 -1
- package/dist/agents/reviewer.d.ts.map +1 -1
- package/dist/agents/reviewer.js +12 -25
- package/dist/agents/reviewer.js.map +1 -1
- package/package.json +3 -3
package/developing-forge.yaml
CHANGED
|
@@ -3,14 +3,14 @@ runtimes:
|
|
|
3
3
|
kind: codex
|
|
4
4
|
|
|
5
5
|
threads:
|
|
6
|
-
develop:
|
|
6
|
+
develop-manager:
|
|
7
7
|
runtime: codex
|
|
8
8
|
options:
|
|
9
9
|
model: gpt-5.5
|
|
10
10
|
sandboxMode: danger-full-access
|
|
11
11
|
workingDirectory: &developerWorkspacePath output/codebase
|
|
12
12
|
|
|
13
|
-
develop-
|
|
13
|
+
develop-coding:
|
|
14
14
|
runtime: codex
|
|
15
15
|
options:
|
|
16
16
|
model: gpt-5.3-codex-spark
|
|
@@ -25,42 +25,24 @@ threads:
|
|
|
25
25
|
workingDirectory: &memoryWorkingDir output/developing
|
|
26
26
|
|
|
27
27
|
agents:
|
|
28
|
-
coding-manager:
|
|
29
|
-
thread: develop
|
|
30
|
-
constants:
|
|
28
|
+
coding-manager: &managerAgentConfig
|
|
29
|
+
thread: develop-manager
|
|
30
|
+
constants: &developAgentConstants
|
|
31
31
|
workspacePath: *developerWorkspacePath
|
|
32
32
|
|
|
33
33
|
developer:
|
|
34
|
-
thread: develop-
|
|
35
|
-
constants:
|
|
36
|
-
workspacePath: *developerWorkspacePath
|
|
37
|
-
|
|
38
|
-
code-reviewer:
|
|
39
|
-
thread: develop
|
|
40
|
-
constants:
|
|
41
|
-
workspacePath: *developerWorkspacePath
|
|
42
|
-
|
|
43
|
-
memory-reader:
|
|
44
|
-
thread: memory
|
|
45
|
-
constants:
|
|
46
|
-
workingDir: *memoryWorkingDir
|
|
34
|
+
thread: develop-coding
|
|
35
|
+
constants: *developAgentConstants
|
|
47
36
|
|
|
48
|
-
|
|
49
|
-
thread: memory
|
|
50
|
-
constants:
|
|
51
|
-
workingDir: *memoryWorkingDir
|
|
52
|
-
|
|
53
|
-
memory-modifier:
|
|
54
|
-
thread: memory
|
|
55
|
-
constants:
|
|
56
|
-
workingDir: *memoryWorkingDir
|
|
37
|
+
code-reviewer: *managerAgentConfig
|
|
57
38
|
|
|
58
|
-
memory-
|
|
39
|
+
memory-reader: &memoryAgentConfig
|
|
59
40
|
thread: memory
|
|
60
41
|
constants:
|
|
61
42
|
workingDir: *memoryWorkingDir
|
|
62
43
|
|
|
63
|
-
memory-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
44
|
+
memory-modify-planner: *memoryAgentConfig
|
|
45
|
+
memory-modifier: *memoryAgentConfig
|
|
46
|
+
memory-create-planner: *memoryAgentConfig
|
|
47
|
+
memory-creator: *memoryAgentConfig
|
|
48
|
+
memory-cleaner: *memoryAgentConfig
|
package/dist/agents/developer.js
CHANGED
|
@@ -21,14 +21,13 @@ function buildRecallPrompt(goalInstructionText, targetPath, taskBrief) {
|
|
|
21
21
|
return `
|
|
22
22
|
${goalInstructionText}
|
|
23
23
|
|
|
24
|
-
Target
|
|
24
|
+
Target: ${targetPath}/.
|
|
25
25
|
|
|
26
|
-
Task
|
|
26
|
+
Task:
|
|
27
27
|
${taskBrief}
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Output concise code design memory recall guidance.
|
|
29
|
+
Output recall guidance only: code/design memory needed for this task.
|
|
30
|
+
No recalled content. No implementation advice.
|
|
32
31
|
`;
|
|
33
32
|
}
|
|
34
33
|
function buildDevelopPrompt(goalInstructionText, targetPath, taskBrief, codeDesignMemory, reviewerReport) {
|
|
@@ -37,52 +36,47 @@ ${ponytailSkillPrompt}
|
|
|
37
36
|
|
|
38
37
|
${goalInstructionText}
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
${codeDesignMemory}
|
|
42
|
-
|
|
43
|
-
Work in the target repository at ${targetPath}/.
|
|
39
|
+
Target: ${targetPath}/.
|
|
44
40
|
|
|
45
|
-
Task
|
|
41
|
+
Task:
|
|
46
42
|
${taskBrief}
|
|
47
43
|
|
|
44
|
+
Code/design memory:
|
|
45
|
+
${codeDesignMemory}
|
|
46
|
+
|
|
48
47
|
Reviewer report:
|
|
49
48
|
${reviewerReport}
|
|
50
49
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
Use your own judgment to inspect, edit, and verify. If you make no changes, explain why no change is appropriate on disk.
|
|
54
|
-
Make sure your report matches the actual on-disk repository state after your work.
|
|
50
|
+
Perform the task. Address reviewer concerns unless marked "(none)".
|
|
51
|
+
Inspect, edit, verify. If no changes, explain why.
|
|
55
52
|
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
53
|
+
Final state report includes:
|
|
54
|
+
- Changes made
|
|
55
|
+
- Inspection results
|
|
56
|
+
- Commands used
|
|
57
|
+
- Reason for completion
|
|
58
|
+
- Any blockers
|
|
62
59
|
|
|
63
|
-
|
|
64
|
-
## Memory Candidates
|
|
60
|
+
End with reusable code/design insights under "## Memory Candidates".
|
|
65
61
|
`;
|
|
66
62
|
}
|
|
67
63
|
function buildUpdatePrompt(goalInstructionText, targetPath, taskBrief, codeDesignMemory, taskRoundSummary) {
|
|
68
64
|
return `
|
|
69
65
|
${goalInstructionText}
|
|
70
66
|
|
|
71
|
-
Target
|
|
67
|
+
Target: ${targetPath}/.
|
|
72
68
|
|
|
73
|
-
Task
|
|
69
|
+
Task:
|
|
74
70
|
${taskBrief}
|
|
75
71
|
|
|
76
|
-
|
|
72
|
+
Previous code/design memory:
|
|
77
73
|
${codeDesignMemory}
|
|
78
74
|
|
|
79
|
-
|
|
75
|
+
Round summary:
|
|
80
76
|
${taskRoundSummary}
|
|
81
77
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
Remember only reusable code/design memory: module relationships, architecture constraints, invariants, interface design, review rules, and pitfalls. Do not store long transcripts, one-off command output, runtime noise, or project progress state.
|
|
85
|
-
When reviewer memory candidates and developer memory candidates conflict, prefer reviewer candidates for code quality, design constraints, and pitfalls.
|
|
78
|
+
List reusable code/design insights only (interfaces, constraints, rules).
|
|
79
|
+
Exclude execution details.
|
|
86
80
|
`;
|
|
87
81
|
}
|
|
88
82
|
//# sourceMappingURL=developer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developer.js","sourceRoot":"","sources":["../../src/agents/developer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AA0B5E,MAAM,OAAO,cAAe,SAAQ,eAAmC;IAC3D,WAAW,CAAC,SAAuC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5D,QAAQ,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,KAAK,QAAQ;gBACX,OAAO,iBAAiB,CAAC,mBAAmB,EAAE,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACjF,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,QAAQ,CAAC;gBAC5D,OAAO,kBAAkB,CACvB,mBAAmB,EACnB,UAAU,EACV,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,gBAAgB,EAC1B,cAAc,CACf,CAAC;YACJ,CAAC;YACD,KAAK,QAAQ;gBACX,OAAO,iBAAiB,CACtB,mBAAmB,EACnB,UAAU,EACV,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,gBAAgB,EAC1B,SAAS,CAAC,gBAAgB,CAC3B,CAAC;QACN,CAAC;IACH,CAAC;CACF;AAED,SAAS,iBAAiB,CACxB,mBAA2B,EAC3B,UAAkB,EAClB,SAAiB;IAEjB,OAAO;EACP,mBAAmB;;
|
|
1
|
+
{"version":3,"file":"developer.js","sourceRoot":"","sources":["../../src/agents/developer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AA0B5E,MAAM,OAAO,cAAe,SAAQ,eAAmC;IAC3D,WAAW,CAAC,SAAuC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5D,QAAQ,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,KAAK,QAAQ;gBACX,OAAO,iBAAiB,CAAC,mBAAmB,EAAE,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACjF,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,QAAQ,CAAC;gBAC5D,OAAO,kBAAkB,CACvB,mBAAmB,EACnB,UAAU,EACV,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,gBAAgB,EAC1B,cAAc,CACf,CAAC;YACJ,CAAC;YACD,KAAK,QAAQ;gBACX,OAAO,iBAAiB,CACtB,mBAAmB,EACnB,UAAU,EACV,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,gBAAgB,EAC1B,SAAS,CAAC,gBAAgB,CAC3B,CAAC;QACN,CAAC;IACH,CAAC;CACF;AAED,SAAS,iBAAiB,CACxB,mBAA2B,EAC3B,UAAkB,EAClB,SAAiB;IAEjB,OAAO;EACP,mBAAmB;;UAEX,UAAU;;;EAGlB,SAAS;;;;CAIV,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CACzB,mBAA2B,EAC3B,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,cAAsB;IAEtB,OAAO;EACP,mBAAmB;;EAEnB,mBAAmB;;UAEX,UAAU;;;EAGlB,SAAS;;;EAGT,gBAAgB;;;EAGhB,cAAc;;;;;;;;;;;;;CAaf,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CACxB,mBAA2B,EAC3B,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,gBAAwB;IAExB,OAAO;EACP,mBAAmB;;UAEX,UAAU;;;EAGlB,SAAS;;;EAGT,gBAAgB;;;EAGhB,gBAAgB;;;;CAIjB,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE5E,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,KAAK,EAAE,QAAQ,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B,4BAA4B,GAC5B,4BAA4B,GAC5B,4BAA4B,CAAC;AAEjC,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,YAAY,CAAC;AAI9D,qBAAa,kBAAmB,SAAQ,eAAe,CAAC,sBAAsB,CAAC;IAC9D,WAAW,CACxB,SAAS,EAAE,sBAAsB,EACjC,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE5E,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,KAAK,EAAE,QAAQ,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B,4BAA4B,GAC5B,4BAA4B,GAC5B,4BAA4B,CAAC;AAEjC,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,YAAY,CAAC;AAI9D,qBAAa,kBAAmB,SAAQ,eAAe,CAAC,sBAAsB,CAAC;IAC9D,WAAW,CACxB,SAAS,EAAE,sBAAsB,EACjC,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC;IAyClB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,qBAAqB;IAQ3D,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,MAAM;CA6B3E"}
|
package/dist/agents/manager.js
CHANGED
|
@@ -15,15 +15,14 @@ export class CodingManagerAgent extends DevelopingAgent {
|
|
|
15
15
|
catch {
|
|
16
16
|
for (let attempt = 1; attempt <= MAX_FORMAT_CORRECTION_ATTEMPTS; attempt++) {
|
|
17
17
|
managerOutput = (await this.thread.runStreamed(`
|
|
18
|
-
|
|
19
|
-
The output must start with exactly one of:
|
|
18
|
+
Incorrect format. First non-empty line must be:
|
|
20
19
|
FINISHED
|
|
21
20
|
# Task Brief
|
|
22
21
|
|
|
23
22
|
Previous output:
|
|
24
23
|
${managerOutput}
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
Correct it.
|
|
27
26
|
`, onRecord)).trim();
|
|
28
27
|
try {
|
|
29
28
|
this.parseDecision(managerOutput);
|
|
@@ -49,7 +48,7 @@ Please correct it.
|
|
|
49
48
|
const targetPath = this.workspaceRelativePath(variables.targetPath);
|
|
50
49
|
const goalInstructionText = goalInstruction(variables.goal);
|
|
51
50
|
const lastTaskRoundSummary = "lastTaskRoundSummary" in variables && variables.lastTaskRoundSummary
|
|
52
|
-
? `Last
|
|
51
|
+
? `Last round:
|
|
53
52
|
${variables.lastTaskRoundSummary}`
|
|
54
53
|
: "";
|
|
55
54
|
switch (variables.phase) {
|
|
@@ -66,74 +65,66 @@ function buildRecallPrompt(goalInstructionText, targetPath, lastTaskRoundSummary
|
|
|
66
65
|
return `
|
|
67
66
|
${goalInstructionText}
|
|
68
67
|
|
|
69
|
-
Target
|
|
68
|
+
Target: ${targetPath}/.
|
|
70
69
|
|
|
71
70
|
${lastTaskRoundSummary}
|
|
72
71
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
Output concise project progress memory recall guidance.
|
|
72
|
+
Output recall guidance only: project-progress memory needed before choosing next task.
|
|
73
|
+
No recalled content. No task decision.
|
|
76
74
|
`;
|
|
77
75
|
}
|
|
78
76
|
function buildSelectPrompt(goalInstructionText, targetPath, projectProgressMemory, lastTaskRoundSummary) {
|
|
79
77
|
return `
|
|
80
78
|
${goalInstructionText}
|
|
81
79
|
|
|
82
|
-
Target
|
|
80
|
+
Target: ${targetPath}/.
|
|
83
81
|
|
|
84
|
-
|
|
82
|
+
Project progress memory:
|
|
85
83
|
${projectProgressMemory}
|
|
86
84
|
|
|
87
85
|
${lastTaskRoundSummary}
|
|
88
86
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
Choose exactly one new bounded task for the Developer.
|
|
87
|
+
If no task remains, output exactly:
|
|
88
|
+
FINISHED
|
|
92
89
|
|
|
93
|
-
|
|
90
|
+
Otherwise specify one bounded Developer task:
|
|
94
91
|
|
|
95
92
|
# Task Brief
|
|
96
93
|
|
|
97
94
|
## Objective
|
|
98
95
|
|
|
99
|
-
|
|
96
|
+
Concrete repo improvement.
|
|
100
97
|
|
|
101
98
|
## Context
|
|
102
99
|
|
|
103
|
-
|
|
100
|
+
Why now.
|
|
104
101
|
|
|
105
102
|
## Boundaries
|
|
106
103
|
|
|
107
|
-
|
|
104
|
+
Scope, risks, key paths. Empty if unknown.
|
|
108
105
|
|
|
109
106
|
## Reviewer Focus
|
|
110
107
|
|
|
111
|
-
What
|
|
112
|
-
|
|
113
|
-
Keep the brief bounded enough for one Developer attempt. Use natural language; do not introduce task-type schemas, check schemas, or mode enums unless they are simply part of the prose.
|
|
114
|
-
|
|
115
|
-
When no further developing task is needed, return exactly:
|
|
116
|
-
FINISHED
|
|
108
|
+
What to check.
|
|
117
109
|
`;
|
|
118
110
|
}
|
|
119
111
|
function buildUpdatePrompt(goalInstructionText, targetPath, projectProgressMemory, taskBrief, taskRoundSummary) {
|
|
120
112
|
return `
|
|
121
113
|
${goalInstructionText}
|
|
122
114
|
|
|
123
|
-
Target
|
|
115
|
+
Target: ${targetPath}/.
|
|
124
116
|
|
|
125
|
-
Task
|
|
117
|
+
Task:
|
|
126
118
|
${taskBrief}
|
|
127
119
|
|
|
128
|
-
|
|
120
|
+
Previous project progress memory:
|
|
129
121
|
${projectProgressMemory}
|
|
130
122
|
|
|
131
|
-
|
|
123
|
+
Round summary:
|
|
132
124
|
${taskRoundSummary}
|
|
133
125
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
Remember only reusable project state: current goal progress, completed direction, blockers or redirect reasons, and useful next-step context. Do not store long transcripts, one-off runtime noise, or code-design details that belong in code design memory.
|
|
126
|
+
Record reusable project progress insights (completed milestones, blockers, next steps).
|
|
127
|
+
Exclude execution details and code specifics.
|
|
137
128
|
`;
|
|
138
129
|
}
|
|
139
130
|
//# sourceMappingURL=manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AA0B5E,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AAC9D,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,MAAM,OAAO,kBAAmB,SAAQ,eAAuC;IACpE,KAAK,CAAC,WAAW,CACxB,SAAiC,EACjC,QAAyB;QAEzB,IAAI,aAAa,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAClC,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,8BAA8B,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC3E,aAAa,GAAG,CACd,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC3B
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/agents/prompts.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/agents/prompts.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD"}
|
package/dist/agents/prompts.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/agents/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO;;EAEP,IAAI
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/agents/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO;;EAEP,IAAI;CACL,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../src/agents/reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,GAAG;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAI9D,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,qBAAqB,CAAC;IAC5D,WAAW,CACxB,SAAS,EAAE,qBAAqB,EAChC,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../src/agents/reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,GAAG;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAI9D,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,qBAAqB,CAAC;IAC5D,WAAW,CACxB,SAAS,EAAE,qBAAqB,EAChC,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC;IAsClB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc;IAQrD,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,MAAM;CAmC1E"}
|
package/dist/agents/reviewer.js
CHANGED
|
@@ -13,8 +13,7 @@ export class CodeReviewerAgent extends DevelopingAgent {
|
|
|
13
13
|
catch {
|
|
14
14
|
for (let attempt = 1; attempt <= MAX_FORMAT_CORRECTION_ATTEMPTS; attempt++) {
|
|
15
15
|
reviewerReport = (await this.thread.runStreamed(`
|
|
16
|
-
|
|
17
|
-
The output must start with exactly one of:
|
|
16
|
+
Incorrect format. First non-empty line must be:
|
|
18
17
|
ACCEPT
|
|
19
18
|
REVISE
|
|
20
19
|
REDIRECT
|
|
@@ -22,7 +21,7 @@ REDIRECT
|
|
|
22
21
|
Previous output:
|
|
23
22
|
${reviewerReport}
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
Correct it.
|
|
26
25
|
`, onRecord)).trim();
|
|
27
26
|
try {
|
|
28
27
|
this.parseDecision(reviewerReport);
|
|
@@ -52,42 +51,30 @@ ${ponytailReviewSkillPrompt}
|
|
|
52
51
|
|
|
53
52
|
${goalInstructionText}
|
|
54
53
|
|
|
55
|
-
|
|
56
|
-
Review the current code. Read only.
|
|
54
|
+
Target: ${targetPath}/. Read only.
|
|
57
55
|
|
|
58
|
-
Task
|
|
56
|
+
Task:
|
|
59
57
|
${variables.taskBrief}
|
|
60
58
|
|
|
61
|
-
|
|
59
|
+
Code/design memory:
|
|
62
60
|
${variables.codeDesignMemory}
|
|
63
61
|
|
|
64
62
|
Developer report:
|
|
65
63
|
${variables.developerReport}
|
|
66
64
|
|
|
67
|
-
Review
|
|
65
|
+
Review: task completion, report accuracy, code health.
|
|
68
66
|
|
|
69
|
-
|
|
70
|
-
- whether the Objective is actually improved
|
|
71
|
-
- whether the evidence supports the Developer's claims
|
|
72
|
-
- whether the code quality and design remain healthy
|
|
73
|
-
- whether the change respects existing code relationships and design memory
|
|
74
|
-
- whether the next action should be revision, manager redirection, or acceptance
|
|
75
|
-
|
|
76
|
-
On the first non-empty line, output exactly one decision:
|
|
67
|
+
First non-empty line must equal one of:
|
|
77
68
|
ACCEPT
|
|
78
69
|
REVISE
|
|
79
70
|
REDIRECT
|
|
80
71
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
For REVISE, give the smallest actionable feedback for the same task direction.
|
|
86
|
-
For REDIRECT, explain the manager-level reason in one short paragraph.
|
|
72
|
+
ACCEPT: good enough.
|
|
73
|
+
REVISE: smallest same-direction fix.
|
|
74
|
+
REDIRECT: manager must rethink direction, scope, dependency, or premise.
|
|
87
75
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
## Memory Candidates
|
|
76
|
+
Feedback required if REVISE or REDIRECT.
|
|
77
|
+
End with reusable insights under "## Memory Candidates".
|
|
91
78
|
`;
|
|
92
79
|
}
|
|
93
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../src/agents/reviewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AAS5E,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;AAC9D,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,MAAM,OAAO,iBAAkB,SAAQ,eAAsC;IAClE,KAAK,CAAC,WAAW,CACxB,SAAgC,EAChC,QAAyB;QAEzB,IAAI,cAAc,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,cAAc,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,8BAA8B,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC3E,cAAc,GAAG,CACf,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC3B
|
|
1
|
+
{"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../src/agents/reviewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AAS5E,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;AAC9D,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,MAAM,OAAO,iBAAkB,SAAQ,eAAsC;IAClE,KAAK,CAAC,WAAW,CACxB,SAAgC,EAChC,QAAyB;QAEzB,IAAI,cAAc,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACnC,OAAO,cAAc,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,8BAA8B,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC3E,cAAc,GAAG,CACf,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC3B;;;;;;;EAOV,cAAc;;;CAGf,EACW,QAAQ,CACT,CACF,CAAC,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC;oBACH,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBACnC,OAAO,cAAc,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,OAAO,KAAK,8BAA8B,EAAE,CAAC;wBAC/C,MAAM,IAAI,KAAK,CACb,kEAAkE,MAAM,CAAC,8BAA8B,CAAC,uBAAuB,CAChI,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,aAAa,CAAC,cAAsB;QAClC,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;QACvE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,CAAmB,CAAC;IACpC,CAAC;IAES,WAAW,CAAC,SAA0C;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5D,OAAO;EACT,yBAAyB;;EAEzB,mBAAmB;;UAEX,UAAU;;;EAGlB,SAAS,CAAC,SAAS;;;EAGnB,SAAS,CAAC,gBAAgB;;;EAG1B,SAAS,CAAC,eAAe;;;;;;;;;;;;;;;CAe1B,CAAC;IACA,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "developing-agent-forge",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.2",
|
|
4
4
|
"description": "Goal-driven code development pipelines for coding agents, built on coding-agent-forge.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"developing": "tsx src/cli.ts developing"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"coding-agent-forge": "^1.3.
|
|
49
|
-
"memory-agent-forge": "^1.2.
|
|
48
|
+
"coding-agent-forge": "^1.3.3",
|
|
49
|
+
"memory-agent-forge": "^1.2.2"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@eslint/js": "^9.39.4",
|