developing-agent-forge 2.2.0 → 2.2.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/README.md +28 -4
- package/README.zh-CN.md +28 -4
- package/dist/pipeline/project-devloop.js +3 -3
- package/dist/pipeline/project-devloop.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# developing-agent-forge
|
|
2
|
+
|
|
3
|
+
Goal-driven code development pipelines for coding agents, built on `coding-agent-forge`.
|
|
2
4
|
|
|
3
5
|
[`src`](src) implements a goal-driven code-writing loop.
|
|
4
6
|
|
|
@@ -17,7 +19,22 @@ The usual entry point is [`develop.sh`](develop.sh), which calls `npm run develo
|
|
|
17
19
|
|
|
18
20
|
The pipeline works in the configured `--target-path`, reads the current high-level objective from `--goal-path`, recalls and updates project progress memory under `--project-progress-memory-path`, recalls and updates code design memory under `--code-design-memory-path`, and archives per-iteration task/review artifacts under the configured archive directory.
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
## Package Surface
|
|
23
|
+
|
|
24
|
+
`package.json` publishes an ESM package named `developing-agent-forge` for Node.js `>=20.19`.
|
|
25
|
+
|
|
26
|
+
- CLI bin: `developing-agent-forge`, backed by [`src/cli.ts`](src/cli.ts), with `developing` and `developing-skill` pipelines.
|
|
27
|
+
- Public imports: `developing-agent-forge`, `developing-agent-forge/agents`, and `developing-agent-forge/pipeline`.
|
|
28
|
+
- Runtime dependencies: `coding-agent-forge` for agent/pipeline CLI execution and `memory-agent-forge` for durable memory.
|
|
29
|
+
- Published assets include `dist`, `developing-forge.yaml`, `skills`, `metaskills`, both READMEs, and `LICENSE`.
|
|
30
|
+
|
|
31
|
+
TypeScript API import examples:
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import { developingPipeline, developingSkillPipeline } from "developing-agent-forge";
|
|
35
|
+
import { CodingManagerAgent } from "developing-agent-forge/agents";
|
|
36
|
+
import { ProjectDevLoop } from "developing-agent-forge/pipeline";
|
|
37
|
+
```
|
|
21
38
|
|
|
22
39
|
## Core Idea: Developing And Coding Style
|
|
23
40
|
|
|
@@ -52,7 +69,7 @@ The prepared wrapper passes `--goal-path "output/goal.md"`. Use that file to des
|
|
|
52
69
|
|
|
53
70
|
## TypeScript Development
|
|
54
71
|
|
|
55
|
-
This repository follows the
|
|
72
|
+
This repository requires Node.js `>=20.19` and follows the npm-based TypeScript workflow defined in `package.json`.
|
|
56
73
|
|
|
57
74
|
```bash
|
|
58
75
|
npm ci
|
|
@@ -62,7 +79,12 @@ npm run format:check
|
|
|
62
79
|
npm run build
|
|
63
80
|
```
|
|
64
81
|
|
|
65
|
-
|
|
82
|
+
Useful local script entry points:
|
|
83
|
+
|
|
84
|
+
- `npm run dev -- ...` runs `tsx src/cli.ts`.
|
|
85
|
+
- `npm run developing -- ...` runs `tsx src/cli.ts developing`.
|
|
86
|
+
- `npm run developing-skill -- ...` runs `tsx src/cli.ts developing-skill`.
|
|
87
|
+
- `npm run clean`, `npm run format`, and `npm run format:check` handle generated output and formatting.
|
|
66
88
|
|
|
67
89
|
## Goal File And Memory Context
|
|
68
90
|
|
|
@@ -93,6 +115,8 @@ npm run developing -- \
|
|
|
93
115
|
|
|
94
116
|
The current CLI option name is `--achive-dir`.
|
|
95
117
|
|
|
118
|
+
When using the published package bin directly, replace `npm run developing --` with `developing-agent-forge developing` and keep the same pipeline options.
|
|
119
|
+
|
|
96
120
|
## Options Reference
|
|
97
121
|
|
|
98
122
|
| Option | Description |
|
package/README.zh-CN.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# developing-agent-forge
|
|
2
|
+
|
|
3
|
+
基于 `coding-agent-forge` 构建的 goal-driven 代码开发 pipeline,用于 coding agents。
|
|
2
4
|
|
|
3
5
|
[`src`](src) 实现一个 goal-driven 的代码编写循环。
|
|
4
6
|
|
|
@@ -17,7 +19,22 @@
|
|
|
17
19
|
|
|
18
20
|
pipeline 会在配置的 `--target-path` 中继续写代码,从 `--goal-path` 读取当前高层任务目标,召回并更新 `--project-progress-memory-path` 下的项目进度记忆,召回并更新 `--code-design-memory-path` 下的代码设计记忆,并把每轮 task/review 产物归档到 archive 目录。
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
## 包公开面
|
|
23
|
+
|
|
24
|
+
`package.json` 发布的是名为 `developing-agent-forge` 的 ESM package,要求 Node.js `>=20.19`。
|
|
25
|
+
|
|
26
|
+
- CLI bin:`developing-agent-forge`,由 [`src/cli.ts`](src/cli.ts) 提供,包含 `developing` 和 `developing-skill` 两个 pipeline。
|
|
27
|
+
- 公开 import:`developing-agent-forge`、`developing-agent-forge/agents` 和 `developing-agent-forge/pipeline`。
|
|
28
|
+
- 运行时依赖:`coding-agent-forge` 负责 agent/pipeline CLI 执行,`memory-agent-forge` 负责持久化 memory。
|
|
29
|
+
- 发布内容包含 `dist`、`developing-forge.yaml`、`skills`、`metaskills`、两份 README 和 `LICENSE`。
|
|
30
|
+
|
|
31
|
+
TypeScript API import 示例:
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
import { developingPipeline, developingSkillPipeline } from "developing-agent-forge";
|
|
35
|
+
import { CodingManagerAgent } from "developing-agent-forge/agents";
|
|
36
|
+
import { ProjectDevLoop } from "developing-agent-forge/pipeline";
|
|
37
|
+
```
|
|
21
38
|
|
|
22
39
|
## 核心思想:Developing 和 Coding Style
|
|
23
40
|
|
|
@@ -52,7 +69,7 @@ bash develop.sh
|
|
|
52
69
|
|
|
53
70
|
## TypeScript 开发
|
|
54
71
|
|
|
55
|
-
|
|
72
|
+
这个仓库要求 Node.js `>=20.19`,并使用 `package.json` 中定义的 npm TypeScript 工作流。
|
|
56
73
|
|
|
57
74
|
```bash
|
|
58
75
|
npm ci
|
|
@@ -62,7 +79,12 @@ npm run format:check
|
|
|
62
79
|
npm run build
|
|
63
80
|
```
|
|
64
81
|
|
|
65
|
-
|
|
82
|
+
常用本地脚本入口:
|
|
83
|
+
|
|
84
|
+
- `npm run dev -- ...` 运行 `tsx src/cli.ts`。
|
|
85
|
+
- `npm run developing -- ...` 运行 `tsx src/cli.ts developing`。
|
|
86
|
+
- `npm run developing-skill -- ...` 运行 `tsx src/cli.ts developing-skill`。
|
|
87
|
+
- `npm run clean`、`npm run format` 和 `npm run format:check` 分别处理生成产物和格式化。
|
|
66
88
|
|
|
67
89
|
## Goal 文件和 Memory 上下文
|
|
68
90
|
|
|
@@ -93,6 +115,8 @@ npm run developing -- \
|
|
|
93
115
|
|
|
94
116
|
当前 CLI 参数名是 `--achive-dir`。
|
|
95
117
|
|
|
118
|
+
如果直接使用发布后的 package bin,把 `npm run developing --` 替换成 `developing-agent-forge developing`,其余 pipeline 参数保持不变。
|
|
119
|
+
|
|
96
120
|
## 参数参考
|
|
97
121
|
|
|
98
122
|
| 参数 | 说明 |
|
|
@@ -2,7 +2,7 @@ import { Memory, defaultMemoryAgentNames, } from "memory-agent-forge";
|
|
|
2
2
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { TaskDevLoop, } from "./task-devloop.js";
|
|
5
|
-
const
|
|
5
|
+
const PROJECT_STATE_MEMORY_DOMAIN_HINT = "Project progress memory for goals, completed tasks, current status, and task-selection context across project iterations.";
|
|
6
6
|
export class ProjectDevLoop {
|
|
7
7
|
async develop(team, targetPath, codingStyleSkillPath, goal, achiveDir, maxIterations, maxTaskDevLoopIterations, projectProgressMemoryPath, codeDesignMemoryPath, maxMemoryRounds, callbacks, logRecord) {
|
|
8
8
|
const agentVariables = {
|
|
@@ -25,7 +25,7 @@ export class ProjectDevLoop {
|
|
|
25
25
|
...(lastTaskRoundSummary === undefined ? {} : { lastTaskRoundSummary }),
|
|
26
26
|
}, logRecord)).trim();
|
|
27
27
|
await writeFile(path.join(archiveDir, "project_devloop_memory_recall_guidance.md"), projectProgressMemoryGuidance, "utf8");
|
|
28
|
-
const projectProgressMemory = (await memoryStore.recall(team,
|
|
28
|
+
const projectProgressMemory = (await memoryStore.recall(team, PROJECT_STATE_MEMORY_DOMAIN_HINT, projectProgressMemoryPath, maxMemoryRounds, projectProgressMemoryGuidance, logRecord))
|
|
29
29
|
.map(({ content }) => content)
|
|
30
30
|
.join("\n\n");
|
|
31
31
|
await writeFile(path.join(archiveDir, "project_devloop_memory_recalled.md"), projectProgressMemory, "utf8");
|
|
@@ -57,7 +57,7 @@ export class ProjectDevLoop {
|
|
|
57
57
|
taskRoundSummary: taskResult.taskRoundSummary,
|
|
58
58
|
}, logRecord)).trim();
|
|
59
59
|
await writeFile(path.join(archiveDir, "project_devloop_things_to_remember.md"), thingsToRemember, "utf8");
|
|
60
|
-
await memoryStore.remember(team,
|
|
60
|
+
await memoryStore.remember(team, PROJECT_STATE_MEMORY_DOMAIN_HINT, projectProgressMemoryPath, maxMemoryRounds, thingsToRemember, logRecord);
|
|
61
61
|
await callbacks?.onTaskFinish?.(agentVariables, taskBrief, taskResult, thingsToRemember);
|
|
62
62
|
}
|
|
63
63
|
throw new Error(`Reached --max-iterations ${String(maxIterations)} before the coding-manager returned FINISHED.`);
|
|
@@ -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;AAO7B,OAAO,EACL,WAAW,GAGZ,MAAM,mBAAmB,CAAC;AAE3B,MAAM,
|
|
1
|
+
{"version":3,"file":"project-devloop.js","sourceRoot":"","sources":["../../src/pipeline/project-devloop.ts"],"names":[],"mappings":"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"}
|