developing-agent-forge 2.5.2 → 2.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 CHANGED
@@ -16,7 +16,7 @@ The usual entry point is [`develop.sh`](develop.sh), which calls `npm run develo
16
16
  - the target codebase directory
17
17
  - the development archive directory, passed through the current CLI option name `--achive-dir`
18
18
 
19
- 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
+ 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 and streamed agent records under the configured archive directory.
20
20
 
21
21
  ## Package Surface
22
22
 
@@ -144,6 +144,7 @@ The pipeline maintains:
144
144
  | Artifact | Where it lives |
145
145
  | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
146
146
  | Memory files | Under the configured project progress and code design memory directories; maintained by `memory-agent-forge`. |
147
+ | Agent record log | `records.jsonl` inside each timestamped archive folder; each streamed agent record is appended while the pretty record output is still printed to stdout. |
147
148
  | Timestamped archive folders | Under the configured archive directory; contains each Task Brief, memory recall guidance, recalled memory, Developer reports, Reviewer feedback, summaries, and things to remember. |
148
149
 
149
150
  ## Important Files
package/README.zh-CN.md CHANGED
@@ -16,7 +16,7 @@
16
16
  - 目标代码库目录
17
17
  - development archive 目录;当前 CLI 参数名仍是 `--achive-dir`
18
18
 
19
- pipeline 会在配置的 `--target-path` 中继续写代码,从 `--goal-path` 读取当前高层任务目标,召回并更新 `--project-progress-memory-path` 下的项目进度记忆,召回并更新 `--code-design-memory-path` 下的代码设计记忆,并把每轮 task/review 产物归档到 archive 目录。
19
+ pipeline 会在配置的 `--target-path` 中继续写代码,从 `--goal-path` 读取当前高层任务目标,召回并更新 `--project-progress-memory-path` 下的项目进度记忆,召回并更新 `--code-design-memory-path` 下的代码设计记忆,并把每轮 task/review 产物和 streamed agent records 归档到 archive 目录。
20
20
 
21
21
  ## 包公开面
22
22
 
@@ -144,6 +144,7 @@ pipeline 会维护:
144
144
  | Artifact | 位置 |
145
145
  | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
146
146
  | Memory files | 配置的 project progress 和 code design memory 目录下,由 `memory-agent-forge` 维护。 |
147
+ | Agent record log | 每个按时间戳归档的文件夹内的 `records.jsonl`;每条 streamed agent record 会追加写入,同时 pretty record 输出仍会打印到 stdout。 |
147
148
  | 按时间戳归档的文件夹 | 配置的 archive 目录下,保存 Task Brief、memory recall guidance、recalled memory、Developer reports、Reviewer feedback、summaries 和 things to remember。 |
148
149
 
149
150
  ## 重要文件
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAKV,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEL,KAAK,kCAAkC,EACvC,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC,CAAC;AAEF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,SAAS,CAAC,kCAAkC,CAAC,EACnD,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAUD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCM,CAAC;AAEzC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAoD7B,CAAC"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAIV,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEL,KAAK,kCAAkC,EACvC,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC,CAAC;AAEF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,SAAS,CAAC,kCAAkC,CAAC,EACnD,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAUD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCM,CAAC;AAEzC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAoD7B,CAAC"}
@@ -4,11 +4,8 @@ import path from "node:path";
4
4
  import { ProjectDevLoop, } from "./project-devloop.js";
5
5
  import { agentFactories } from "./factory.js";
6
6
  export async function developing(team, options) {
7
- const logRecord = (thread, record) => {
8
- console.log(thread.recordToPrettyString(record));
9
- };
10
7
  const goal = await readGoal(options.goalPath);
11
- await new ProjectDevLoop().develop(team, options.targetPath, goal, options.achiveDir, options.maxIterations, options.maxTaskDevLoopIterations, options.projectProgressMemoryPath, options.codeDesignMemoryPath, options.maxMemoryRounds, options.memoryCleanInterval, options.callbacks, logRecord);
8
+ await new ProjectDevLoop().develop(team, options.targetPath, goal, options.achiveDir, options.maxIterations, options.maxTaskDevLoopIterations, options.projectProgressMemoryPath, options.codeDesignMemoryPath, options.maxMemoryRounds, options.memoryCleanInterval, options.callbacks);
12
9
  }
13
10
  async function readGoal(goalPath) {
14
11
  const goal = (await readFile(path.resolve(goalPath), "utf8")).trim();
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/pipeline/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/pipeline/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AgentTeam, RecordCallback } from "coding-agent-forge";
1
+ import type { AgentTeam } from "coding-agent-forge";
2
2
  import { type MemoryAgentVariablesByName } from "memory-agent-forge";
3
3
  import type { CodingManagerVariables, DevelopingAgentVariables } from "../agents/index.js";
4
4
  import { type TaskDevLoopAgentVariablesByName, type TaskDevLoopResult } from "./task-devloop.js";
@@ -10,6 +10,6 @@ export type ProjectDevLoopCallbacks = {
10
10
  onTaskFinish?: (agentVariables: DevelopingAgentVariables, taskBrief: string, taskResult: TaskDevLoopResult, thingsToRemember: string) => Promise<void> | void;
11
11
  };
12
12
  export declare class ProjectDevLoop {
13
- develop(team: AgentTeam<ProjectDevLoopAgentVariablesByName>, targetPath: string, goal: string, achiveDir: string, maxIterations: number, maxTaskDevLoopIterations: number, projectProgressMemoryPath: string, codeDesignMemoryPath: string, maxMemoryRounds: number, memoryCleanInterval: number, callbacks?: ProjectDevLoopCallbacks, logRecord?: RecordCallback): Promise<void>;
13
+ develop(team: AgentTeam<ProjectDevLoopAgentVariablesByName>, targetPath: string, goal: string, achiveDir: string, maxIterations: number, maxTaskDevLoopIterations: number, projectProgressMemoryPath: string, codeDesignMemoryPath: string, maxMemoryRounds: number, memoryCleanInterval: number, callbacks?: ProjectDevLoopCallbacks): Promise<void>;
14
14
  }
15
15
  //# sourceMappingURL=project-devloop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-devloop.d.ts","sourceRoot":"","sources":["../../src/pipeline/project-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,EAEV,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAK3B,MAAM,MAAM,kCAAkC,GAAG,+BAA+B,GAAG;IACjF,gBAAgB,EAAE,sBAAsB,CAAC;CAC1C,GAAG,0BAA0B,CAAC;AAE/B,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,CACZ,cAAc,EAAE,wBAAwB,EACxC,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CACb,cAAc,EAAE,wBAAwB,EACxC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,iBAAiB,EAC7B,gBAAgB,EAAE,MAAM,KACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,qBAAa,cAAc;IACnB,OAAO,CACX,IAAI,EAAE,SAAS,CAAC,kCAAkC,CAAC,EACnD,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,wBAAwB,EAAE,MAAM,EAChC,yBAAyB,EAAE,MAAM,EACjC,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,MAAM,EAC3B,SAAS,CAAC,EAAE,uBAAuB,EACnC,SAAS,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,IAAI,CAAC;CAyIjB"}
1
+ {"version":3,"file":"project-devloop.d.ts","sourceRoot":"","sources":["../../src/pipeline/project-devloop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAEV,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAK3B,MAAM,MAAM,kCAAkC,GAAG,+BAA+B,GAAG;IACjF,gBAAgB,EAAE,sBAAsB,CAAC;CAC1C,GAAG,0BAA0B,CAAC;AAE/B,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,CACZ,cAAc,EAAE,wBAAwB,EACxC,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CACb,cAAc,EAAE,wBAAwB,EACxC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,iBAAiB,EAC7B,gBAAgB,EAAE,MAAM,KACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,qBAAa,cAAc;IACnB,OAAO,CACX,IAAI,EAAE,SAAS,CAAC,kCAAkC,CAAC,EACnD,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,wBAAwB,EAAE,MAAM,EAChC,yBAAyB,EAAE,MAAM,EACjC,oBAAoB,EAAE,MAAM,EAC5B,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,MAAM,EAC3B,SAAS,CAAC,EAAE,uBAAuB,GAClC,OAAO,CAAC,IAAI,CAAC;CAiJjB"}
@@ -1,10 +1,11 @@
1
1
  import { Memory, defaultMemoryAgentNames, } from "memory-agent-forge";
2
+ import { appendFileSync } from "node:fs";
2
3
  import { mkdir, writeFile } from "node:fs/promises";
3
4
  import path from "node:path";
4
5
  import { TaskDevLoop, } from "./task-devloop.js";
5
6
  const PROJECT_STATE_MEMORY_DOMAIN_HINT = "Project progress memory for goals, completed tasks, current status, and task-selection context across project iterations.";
6
7
  export class ProjectDevLoop {
7
- async develop(team, targetPath, goal, achiveDir, maxIterations, maxTaskDevLoopIterations, projectProgressMemoryPath, codeDesignMemoryPath, maxMemoryRounds, memoryCleanInterval, callbacks, logRecord) {
8
+ async develop(team, targetPath, goal, achiveDir, maxIterations, maxTaskDevLoopIterations, projectProgressMemoryPath, codeDesignMemoryPath, maxMemoryRounds, memoryCleanInterval, callbacks) {
8
9
  const agentVariables = {
9
10
  targetPath: path.resolve(targetPath),
10
11
  goal,
@@ -17,6 +18,10 @@ export class ProjectDevLoop {
17
18
  console.log(`\n# Project dev loop iteration ${String(iteration)}\n`);
18
19
  const archiveDir = path.join(achiveDir, new Date().toISOString().replace(/[:.]/g, "-"));
19
20
  await mkdir(archiveDir, { recursive: true });
21
+ const logRecord = (thread, record) => {
22
+ appendFileSync(path.join(archiveDir, "records.jsonl"), `${JSON.stringify(record)}\n`, "utf8");
23
+ console.log(thread.recordToPrettyString(record));
24
+ };
20
25
  const codingManager = (await team.createAgent("coding-manager"));
21
26
  const projectProgressMemoryGuidance = (await codingManager.runStreamed({
22
27
  ...agentVariables,
@@ -1 +1 @@
1
- {"version":3,"file":"project-devloop.js","sourceRoot":"","sources":["../../src/pipeline/project-devloop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-devloop.js","sourceRoot":"","sources":["../../src/pipeline/project-devloop.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "developing-agent-forge",
3
- "version": "2.5.2",
3
+ "version": "2.6.0",
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.3",
49
- "memory-agent-forge": "^1.2.2"
48
+ "coding-agent-forge": ">=1.3.5",
49
+ "memory-agent-forge": ">=1.2.5"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@eslint/js": "^9.39.4",