academic-army 0.1.0 → 0.1.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.
Files changed (118) hide show
  1. package/README.md +24 -24
  2. package/README.zh-CN.md +24 -24
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +47 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/developing/agents/developer.d.ts +9 -0
  8. package/dist/developing/agents/developer.d.ts.map +1 -0
  9. package/dist/developing/agents/developer.js +34 -0
  10. package/dist/developing/agents/developer.js.map +1 -0
  11. package/dist/developing/agents/factory.d.ts +3 -0
  12. package/dist/developing/agents/factory.d.ts.map +1 -0
  13. package/dist/developing/agents/factory.js +9 -0
  14. package/dist/developing/agents/factory.js.map +1 -0
  15. package/{src/developing/agents/index.ts → dist/developing/agents/index.d.ts} +2 -4
  16. package/dist/developing/agents/index.d.ts.map +1 -0
  17. package/dist/developing/agents/index.js +6 -0
  18. package/dist/developing/agents/index.js.map +1 -0
  19. package/dist/developing/agents/manager.d.ts +19 -0
  20. package/dist/developing/agents/manager.d.ts.map +1 -0
  21. package/dist/developing/agents/manager.js +56 -0
  22. package/dist/developing/agents/manager.js.map +1 -0
  23. package/dist/developing/agents/prompts.d.ts +3 -0
  24. package/dist/developing/agents/prompts.d.ts.map +1 -0
  25. package/dist/developing/agents/prompts.js +12 -0
  26. package/dist/developing/agents/prompts.js.map +1 -0
  27. package/dist/developing/agents/reviewer.d.ts +10 -0
  28. package/dist/developing/agents/reviewer.d.ts.map +1 -0
  29. package/dist/developing/agents/reviewer.js +35 -0
  30. package/dist/developing/agents/reviewer.js.map +1 -0
  31. package/dist/developing/agents/trajectory-optimizer.d.ts +19 -0
  32. package/dist/developing/agents/trajectory-optimizer.d.ts.map +1 -0
  33. package/{src/developing/agents/trajectory-optimizer.ts → dist/developing/agents/trajectory-optimizer.js} +9 -28
  34. package/dist/developing/agents/trajectory-optimizer.js.map +1 -0
  35. package/dist/developing/agents/types.d.ts +19 -0
  36. package/dist/developing/agents/types.d.ts.map +1 -0
  37. package/dist/developing/agents/types.js +21 -0
  38. package/dist/developing/agents/types.js.map +1 -0
  39. package/dist/developing/index.d.ts +3 -0
  40. package/dist/developing/index.d.ts.map +1 -0
  41. package/{src/developing/index.ts → dist/developing/index.js} +1 -0
  42. package/dist/developing/index.js.map +1 -0
  43. package/dist/developing/pipeline.d.ts +31 -0
  44. package/dist/developing/pipeline.d.ts.map +1 -0
  45. package/dist/developing/pipeline.js +175 -0
  46. package/dist/developing/pipeline.js.map +1 -0
  47. package/dist/developing/pipelineskill.d.ts +15 -0
  48. package/dist/developing/pipelineskill.d.ts.map +1 -0
  49. package/dist/developing/pipelineskill.js +110 -0
  50. package/dist/developing/pipelineskill.js.map +1 -0
  51. package/dist/evolve-skill/agents/evaluator.d.ts +10 -0
  52. package/dist/evolve-skill/agents/evaluator.d.ts.map +1 -0
  53. package/{src/evolve-skill/agents/evaluator.ts → dist/evolve-skill/agents/evaluator.js} +6 -12
  54. package/dist/evolve-skill/agents/evaluator.js.map +1 -0
  55. package/dist/evolve-skill/agents/factory.d.ts +3 -0
  56. package/dist/evolve-skill/agents/factory.d.ts.map +1 -0
  57. package/dist/evolve-skill/agents/factory.js +9 -0
  58. package/dist/evolve-skill/agents/factory.js.map +1 -0
  59. package/{src/evolve-skill/agents/index.ts → dist/evolve-skill/agents/index.d.ts} +1 -0
  60. package/dist/evolve-skill/agents/index.d.ts.map +1 -0
  61. package/dist/evolve-skill/agents/index.js +5 -0
  62. package/dist/evolve-skill/agents/index.js.map +1 -0
  63. package/dist/evolve-skill/agents/modifier.d.ts +10 -0
  64. package/dist/evolve-skill/agents/modifier.d.ts.map +1 -0
  65. package/{src/evolve-skill/agents/modifier.ts → dist/evolve-skill/agents/modifier.js} +6 -12
  66. package/dist/evolve-skill/agents/modifier.js.map +1 -0
  67. package/dist/evolve-skill/agents/runner.d.ts +10 -0
  68. package/dist/evolve-skill/agents/runner.d.ts.map +1 -0
  69. package/dist/evolve-skill/agents/runner.js +13 -0
  70. package/dist/evolve-skill/agents/runner.js.map +1 -0
  71. package/dist/evolve-skill/index.d.ts +2 -0
  72. package/dist/evolve-skill/index.d.ts.map +1 -0
  73. package/dist/evolve-skill/index.js +2 -0
  74. package/dist/evolve-skill/index.js.map +1 -0
  75. package/dist/evolve-skill/pipeline.d.ts +19 -0
  76. package/dist/evolve-skill/pipeline.d.ts.map +1 -0
  77. package/dist/evolve-skill/pipeline.js +74 -0
  78. package/dist/evolve-skill/pipeline.js.map +1 -0
  79. package/dist/pipeline.d.ts +13 -0
  80. package/dist/pipeline.d.ts.map +1 -0
  81. package/dist/pipeline.js +24 -0
  82. package/dist/pipeline.js.map +1 -0
  83. package/metaskills/README.md +10 -10
  84. package/metaskills/README.zh-CN.md +11 -11
  85. package/metaskills/academic-army-coding-plan/ENVOLVETASK.md +1 -1
  86. package/metaskills/academic-army-experiment-plan/ENVOLVETASK.md +1 -1
  87. package/metaskills/academic-army-experiment-plan/METASKILL.md +0 -1
  88. package/package.json +37 -3
  89. package/skills/academic-army-architect/SKILL.md +12 -12
  90. package/skills/academic-army-architect/references/blueprint-schema.md +27 -0
  91. package/skills/academic-army-coding-plan/SKILL.md +8 -5
  92. package/skills/academic-army-experiment-plan/SKILL.md +2 -2
  93. package/skills/academic-army-repo-scaffold/SKILL.md +1 -1
  94. package/.editorconfig +0 -9
  95. package/.github/workflows/publish.yml +0 -44
  96. package/.prettierrc.json +0 -3
  97. package/eslint.config.js +0 -28
  98. package/src/README.md +0 -79
  99. package/src/README.zh-CN.md +0 -79
  100. package/src/cli.ts +0 -55
  101. package/src/developing/README.md +0 -146
  102. package/src/developing/README.zh-CN.md +0 -146
  103. package/src/developing/agents/developer.ts +0 -40
  104. package/src/developing/agents/factory.ts +0 -11
  105. package/src/developing/agents/manager.ts +0 -74
  106. package/src/developing/agents/prompts.ts +0 -12
  107. package/src/developing/agents/reviewer.ts +0 -44
  108. package/src/developing/agents/types.ts +0 -41
  109. package/src/developing/pipeline.ts +0 -306
  110. package/src/developing/pipelineskill.ts +0 -169
  111. package/src/evolve-skill/README.md +0 -116
  112. package/src/evolve-skill/README.zh-CN.md +0 -116
  113. package/src/evolve-skill/agents/factory.ts +0 -11
  114. package/src/evolve-skill/agents/runner.ts +0 -19
  115. package/src/evolve-skill/index.ts +0 -1
  116. package/src/evolve-skill/pipeline.ts +0 -140
  117. package/src/pipeline.ts +0 -65
  118. package/tsconfig.json +0 -22
package/README.md CHANGED
@@ -18,11 +18,11 @@ Parts that require fine-grained research should mainly be handled by skills that
18
18
 
19
19
  First use three planning skills to produce three AI-facing Markdown artifacts:
20
20
 
21
- | Step | Artifact | Role |
22
- |---|---|---|
23
- | `academic-army-architect` | `paper_blueprint.md` | The strategic paper blueprint that fixes the paper identity, target venue posture, claims, contribution boundary, candidate method space, evidence needs, and downstream constraints. |
24
- | `academic-army-experiment-plan` | `experiment_plan.md` | The experiment strategy that maps paper claims to evidence, datasets or workloads, metrics, baselines, ablations, robustness checks, and reviewer-facing validation needs. |
25
- | `academic-army-coding-plan` | `coding_plan.md` | The implementation contract that turns the blueprint and experiment plan into logical module boundaries, interface and entrypoint semantics, harnesses, testing categories, raw-result artifact schemas, and method-freeze rules. |
21
+ | Step | Artifact | Role |
22
+ | ------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
23
+ | `academic-army-architect` | `paper_blueprint.md` | The strategic paper blueprint that fixes the paper identity, target venue posture, claims, contribution boundary, candidate method space, evidence needs, and downstream constraints. |
24
+ | `academic-army-experiment-plan` | `experiment_plan.md` | The experiment strategy that maps paper claims to evidence, datasets or workloads, metrics, baselines, ablations, robustness checks, and reviewer-facing validation needs. |
25
+ | `academic-army-coding-plan` | `coding_plan.md` | The implementation contract that turns the blueprint and experiment plan into logical module boundaries, interface and entrypoint semantics, harnesses, testing categories, raw-result artifact schemas, and method-freeze rules. |
26
26
 
27
27
  Each planning skill also writes a Chinese `*.explain.md` companion for human review, but the development runner consumes the three English Markdown files above.
28
28
 
@@ -119,16 +119,16 @@ Find the closest papers to this research idea, compare their methods, and return
119
119
 
120
120
  ## Project Structure
121
121
 
122
- | Path | Purpose |
123
- |---|---|
124
- | `agent-forge.yaml` | Agent and team wiring. |
125
- | `install_mcp.py` | Installs the project MCP server into Codex for direct skill runs. |
126
- | `mcp-server/` | Local stdio MCP implementation that exposes `deepresearch`. |
127
- | `skills/` | Prepared AcademicArmy skills. |
128
- | `metaskills/` | Matching metaskill design/evolution files. |
129
- | `runs/` | Convenience wrappers around TypeScript pipelines. |
130
- | `src/` | TypeScript pipeline structure and implementation notes. |
131
- | `output/` | Generated planning artifacts, codebase output, and archives. |
122
+ | Path | Purpose |
123
+ | ------------------ | ----------------------------------------------------------------- |
124
+ | `agent-forge.yaml` | Agent and team wiring. |
125
+ | `install_mcp.py` | Installs the project MCP server into Codex for direct skill runs. |
126
+ | `mcp-server/` | Local stdio MCP implementation that exposes `deepresearch`. |
127
+ | `skills/` | Prepared AcademicArmy skills. |
128
+ | `metaskills/` | Matching metaskill design/evolution files. |
129
+ | `runs/` | Convenience wrappers around TypeScript pipelines. |
130
+ | `src/` | TypeScript pipeline structure and implementation notes. |
131
+ | `output/` | Generated planning artifacts, codebase output, and archives. |
132
132
 
133
133
  Agent and team wiring lives in [`agent-forge.yaml`](agent-forge.yaml). The current TypeScript agents are implemented under [`src/developing/agents`](src/developing/agents) and [`src/evolve-skill/agents`](src/evolve-skill/agents).
134
134
 
@@ -136,11 +136,11 @@ Prepared AcademicArmy skills live under [`skills/`](skills/), and their matching
136
136
 
137
137
  ## Configuration Reference
138
138
 
139
- | File or variable | Required for | Notes |
140
- |---|---|---|
141
- | `.env` / `OPENAI_API_KEY` | DeepResearch MCP | Read by the MCP server and by `install_mcp.py`. |
142
- | `agent-forge.yaml` | Project pipelines | Launches `academic_army_mcp_tools` as `python -m mcp-server` with `PYTHONPATH=.` and `cwd=.`. |
143
- | `secret.yaml` | Prepared shell scripts | Local ignored config overlay used by the prepared wrappers. It may contain passwords, API keys, runtime credentials, or other private values that must not be committed or uploaded to GitHub. |
139
+ | File or variable | Required for | Notes |
140
+ | ------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
141
+ | `.env` / `OPENAI_API_KEY` | DeepResearch MCP | Read by the MCP server and by `install_mcp.py`. |
142
+ | `agent-forge.yaml` | Project pipelines | Launches `academic_army_mcp_tools` as `python -m mcp-server` with `PYTHONPATH=.` and `cwd=.`. |
143
+ | `secret.yaml` | Prepared shell scripts | Local ignored config overlay used by the prepared wrappers. It may contain passwords, API keys, runtime credentials, or other private values that must not be committed or uploaded to GitHub. |
144
144
 
145
145
  To override or add environment variables directly when installing MCP into Codex, repeat `-e/--env NAME=VALUE`:
146
146
 
@@ -152,11 +152,11 @@ Running the installer refreshes the Codex `academic_army_mcp_tools` entry, regis
152
152
 
153
153
  ## Troubleshooting
154
154
 
155
- | Problem | Likely cause | Fix |
156
- |---|---|---|
157
- | `OPENAI_API_KEY` is missing | `.env` is not present or was not forwarded to Codex MCP. | Create `.env`; when running skills directly in Codex, rerun `python install_mcp.py`. |
155
+ | Problem | Likely cause | Fix |
156
+ | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
157
+ | `OPENAI_API_KEY` is missing | `.env` is not present or was not forwarded to Codex MCP. | Create `.env`; when running skills directly in Codex, rerun `python install_mcp.py`. |
158
158
  | A wrapper cannot find `secret.yaml` | The prepared shell scripts pass a local config overlay for private values such as passwords, API keys, and runtime credentials. | Create local `secret.yaml` or adjust the script to use your config files. Do not commit or upload this file to GitHub. |
159
- | Development output is drifting | The planning artifacts are not specific enough. | Revise `paper_blueprint.md`, `experiment_plan.md`, and `coding_plan.md` before continuing development. |
159
+ | Development output is drifting | The planning artifacts are not specific enough. | Revise `paper_blueprint.md`, `experiment_plan.md`, and `coding_plan.md` before continuing development. |
160
160
 
161
161
  ## Development
162
162
 
package/README.zh-CN.md CHANGED
@@ -18,11 +18,11 @@ AcademicArmy 的主体核心可以概括为一句话:按图施工。
18
18
 
19
19
  先使用三个规划类 skill 交互生成三份面向 AI 执行的 Markdown 产物:
20
20
 
21
- | 步骤 | Artifact | 作用 |
22
- |---|---|---|
23
- | `academic-army-architect` | `paper_blueprint.md` | 论文战略蓝图,用来固定论文身份、目标 venue 姿态、核心 claims、贡献边界、候选方法空间、证据需求和下游约束。 |
24
- | `academic-army-experiment-plan` | `experiment_plan.md` | 实验策略,把论文 claims 映射到证据链、数据集或 workload、指标、baselines、消融、鲁棒性检查和审稿人关心的验证点。 |
25
- | `academic-army-coding-plan` | `coding_plan.md` | 代码实现契约,把论文蓝图和实验方案转成逻辑模块边界、接口与 entrypoint 语义、实验 harness、测试类别、raw result artifact schema 和 method freeze 规则。 |
21
+ | 步骤 | Artifact | 作用 |
22
+ | ------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
23
+ | `academic-army-architect` | `paper_blueprint.md` | 论文战略蓝图,用来固定论文身份、目标 venue 姿态、核心 claims、贡献边界、候选方法空间、证据需求和下游约束。 |
24
+ | `academic-army-experiment-plan` | `experiment_plan.md` | 实验策略,把论文 claims 映射到证据链、数据集或 workload、指标、baselines、消融、鲁棒性检查和审稿人关心的验证点。 |
25
+ | `academic-army-coding-plan` | `coding_plan.md` | 代码实现契约,把论文蓝图和实验方案转成逻辑模块边界、接口与 entrypoint 语义、实验 harness、测试类别、raw result artifact schema 和 method freeze 规则。 |
26
26
 
27
27
  每个规划类 skill 还会同时生成一份中文 `*.explain.md` 解释文件,方便用户审阅;但后续开发 runner 读取的是上面三份英文 Markdown。
28
28
 
@@ -119,16 +119,16 @@ Find the closest papers to this research idea, compare their methods, and return
119
119
 
120
120
  ## 项目结构
121
121
 
122
- | 路径 | 用途 |
123
- |---|---|
124
- | `agent-forge.yaml` | Agent 和团队 wiring。 |
125
- | `install_mcp.py` | 把项目 MCP server 安装到 Codex,供直接运行 skill 时使用。 |
126
- | `mcp-server/` | 本地 stdio MCP 实现,暴露 `deepresearch`。 |
127
- | `skills/` | 已准备的 AcademicArmy skills。 |
128
- | `metaskills/` | 对应的 metaskill 设计与 evolution 文件。 |
129
- | `runs/` | TypeScript pipelines 的便捷 wrappers。 |
130
- | `src/` | TypeScript pipeline 的目录结构和实现说明。 |
131
- | `output/` | 生成的规划产物、代码库输出和归档。 |
122
+ | 路径 | 用途 |
123
+ | ------------------ | --------------------------------------------------------- |
124
+ | `agent-forge.yaml` | Agent 和团队 wiring。 |
125
+ | `install_mcp.py` | 把项目 MCP server 安装到 Codex,供直接运行 skill 时使用。 |
126
+ | `mcp-server/` | 本地 stdio MCP 实现,暴露 `deepresearch`。 |
127
+ | `skills/` | 已准备的 AcademicArmy skills。 |
128
+ | `metaskills/` | 对应的 metaskill 设计与 evolution 文件。 |
129
+ | `runs/` | TypeScript pipelines 的便捷 wrappers。 |
130
+ | `src/` | TypeScript pipeline 的目录结构和实现说明。 |
131
+ | `output/` | 生成的规划产物、代码库输出和归档。 |
132
132
 
133
133
  Agent 和团队 wiring 位于 [`agent-forge.yaml`](agent-forge.yaml)。当前 TypeScript agents 分别实现于 [`src/developing/agents`](src/developing/agents) 和 [`src/evolve-skill/agents`](src/evolve-skill/agents)。
134
134
 
@@ -136,11 +136,11 @@ Agent 和团队 wiring 位于 [`agent-forge.yaml`](agent-forge.yaml)。当前 Ty
136
136
 
137
137
  ## 配置参考
138
138
 
139
- | 文件或变量 | 用于 | 说明 |
140
- |---|---|---|
141
- | `.env` / `OPENAI_API_KEY` | DeepResearch MCP | MCP server 和 `install_mcp.py` 会读取。 |
142
- | `agent-forge.yaml` | 项目 pipelines | 以 `PYTHONPATH=.` 和 `cwd=.` 运行 `python -m mcp-server`。 |
143
- | `secret.yaml` | 预设 shell scripts | 预设 wrappers 使用的本地忽略 config overlay。它可以包含密码、API key、runtime 凭据等不能提交或上传到 GitHub 的隐私内容。 |
139
+ | 文件或变量 | 用于 | 说明 |
140
+ | ------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------ |
141
+ | `.env` / `OPENAI_API_KEY` | DeepResearch MCP | MCP server 和 `install_mcp.py` 会读取。 |
142
+ | `agent-forge.yaml` | 项目 pipelines | 以 `PYTHONPATH=.` 和 `cwd=.` 运行 `python -m mcp-server`。 |
143
+ | `secret.yaml` | 预设 shell scripts | 预设 wrappers 使用的本地忽略 config overlay。它可以包含密码、API key、runtime 凭据等不能提交或上传到 GitHub 的隐私内容。 |
144
144
 
145
145
  如果需要覆盖或补充环境变量,可以重复使用 `-e/--env NAME=VALUE`:
146
146
 
@@ -152,11 +152,11 @@ python install_mcp.py -e OPENAI_API_KEY=your_api_key_here
152
152
 
153
153
  ## 常见问题
154
154
 
155
- | 问题 | 常见原因 | 解决办法 |
156
- |---|---|---|
157
- | 缺少 `OPENAI_API_KEY` | 没有 `.env`,或没有把变量转发给 Codex MCP。 | 创建 `.env`;如果直接在 Codex 中跑 skill,再执行 `python install_mcp.py`。 |
155
+ | 问题 | 常见原因 | 解决办法 |
156
+ | ---------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
157
+ | 缺少 `OPENAI_API_KEY` | 没有 `.env`,或没有把变量转发给 Codex MCP。 | 创建 `.env`;如果直接在 Codex 中跑 skill,再执行 `python install_mcp.py`。 |
158
158
  | Wrapper 找不到 `secret.yaml` | 预设脚本传入了本地 config overlay,用来放密码、API key、runtime 凭据等隐私内容。 | 创建本地 `secret.yaml`,或调整脚本使用你的 config 文件。不要把这个文件提交或上传到 GitHub。 |
159
- | 开发输出偏离规划 | 三份规划产物还不够具体。 | 先修订 `paper_blueprint.md`、`experiment_plan.md` 和 `coding_plan.md`,再继续开发。 |
159
+ | 开发输出偏离规划 | 三份规划产物还不够具体。 | 先修订 `paper_blueprint.md`、`experiment_plan.md` 和 `coding_plan.md`,再继续开发。 |
160
160
 
161
161
  ## 开发
162
162
 
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+ import { runPipelineCli } from "./pipeline.js";
3
+ import { developingPipeline, developingSkillPipeline } from "./developing/index.js";
4
+ import { evolveSkillPipeline } from "./evolve-skill/index.js";
5
+ function defineCli(entry) {
6
+ return {
7
+ name: entry.name,
8
+ description: entry.description,
9
+ run: (args) => runPipelineCli(entry.definition, args),
10
+ };
11
+ }
12
+ const cliDefinitions = [
13
+ defineCli({
14
+ name: "developing",
15
+ description: "Run the code development loop.",
16
+ definition: developingPipeline,
17
+ }),
18
+ defineCli({
19
+ name: "developing-skill",
20
+ description: "Run the code development loop and evolve its skill.",
21
+ definition: developingSkillPipeline,
22
+ }),
23
+ defineCli({
24
+ name: "evolve-skill",
25
+ description: "Run the skill evolution loop.",
26
+ definition: evolveSkillPipeline,
27
+ }),
28
+ ];
29
+ function buildHelp() {
30
+ const pipelineList = cliDefinitions
31
+ .map((pipeline) => ` ${pipeline.name.padEnd(16)} ${pipeline.description}`)
32
+ .join("\n");
33
+ return `Usage: npm run cli -- <pipeline> [...args]
34
+
35
+ Available pipelines:
36
+ ${pipelineList}`;
37
+ }
38
+ const [pipelineName, ...pipelineArgs] = process.argv.slice(2);
39
+ const pipelineDefinition = cliDefinitions.find((pipeline) => pipeline.name === pipelineName);
40
+ if (pipelineDefinition === undefined) {
41
+ console.log(buildHelp());
42
+ process.exitCode = 1;
43
+ }
44
+ else {
45
+ await pipelineDefinition.run(pipelineArgs);
46
+ }
47
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAA2B,cAAc,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,SAAS,SAAS,CAAwD,KAIzE;IACC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,GAAG,EAAE,CAAC,IAAuB,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG;IACrB,SAAS,CAAC;QACR,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,gCAAgC;QAC7C,UAAU,EAAE,kBAAkB;KAC/B,CAAC;IACF,SAAS,CAAC;QACR,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,qDAAqD;QAClE,UAAU,EAAE,uBAAuB;KACpC,CAAC;IACF,SAAS,CAAC;QACR,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,+BAA+B;QAC5C,UAAU,EAAE,mBAAmB;KAChC,CAAC;CACM,CAAC;AAEX,SAAS,SAAS;IAChB,MAAM,YAAY,GAAG,cAAc;SAChC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;SAC1E,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;EAGP,YAAY,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,kBAAkB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;AAE7F,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACzB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;KAAM,CAAC;IACN,MAAM,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { DevelopingAgent, type DevelopingAgentVariables } from "./types.js";
2
+ export type DeveloperVariables = DevelopingAgentVariables & {
3
+ currentTask: string;
4
+ reviewerReport?: string;
5
+ };
6
+ export declare class DeveloperAgent extends DevelopingAgent<DeveloperVariables> {
7
+ protected buildPrompt(variables: Readonly<DeveloperVariables>): string;
8
+ }
9
+ //# sourceMappingURL=developer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer.d.ts","sourceRoot":"","sources":["../../../src/developing/agents/developer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,qBAAa,cAAe,SAAQ,eAAe,CAAC,kBAAkB,CAAC;IACrE,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,MAAM;CA8BvE"}
@@ -0,0 +1,34 @@
1
+ import { codingStyleSkillInstruction } from "./prompts.js";
2
+ import { DevelopingAgent } from "./types.js";
3
+ export class DeveloperAgent extends DevelopingAgent {
4
+ buildPrompt(variables) {
5
+ const codingStyleSkillPath = this.workspaceRelativePath(variables.codingStyleSkillPath);
6
+ const targetPath = this.workspaceRelativePath(variables.targetPath);
7
+ const paperBlueprintPath = this.workspaceRelativePath(variables.paperBlueprintPath);
8
+ const experimentPlanPath = this.workspaceRelativePath(variables.experimentPlanPath);
9
+ const codingPlanPath = this.workspaceRelativePath(variables.codingPlanPath);
10
+ const reviewerReport = variables.reviewerReport ?? "(none)";
11
+ const codingStyleSkillInstructionText = codingStyleSkillInstruction(codingStyleSkillPath);
12
+ return `
13
+ ${codingStyleSkillInstructionText}
14
+
15
+ Work only in the target repository at ${targetPath}/.
16
+
17
+ Read:
18
+ - paper blueprint: ${paperBlueprintPath}
19
+ - experiment plan: ${experimentPlanPath}
20
+ - coding plan: ${codingPlanPath}
21
+
22
+ Current developer task:
23
+ ${variables.currentTask}
24
+
25
+ Reviewer report:
26
+ ${reviewerReport}
27
+
28
+ Modify the target repository code for the current task. If a reviewer report is present, update the code according to that report.
29
+
30
+ Output a concise developer report with the main changes.
31
+ `;
32
+ }
33
+ }
34
+ //# sourceMappingURL=developer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer.js","sourceRoot":"","sources":["../../../src/developing/agents/developer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AAO5E,MAAM,OAAO,cAAe,SAAQ,eAAmC;IAC3D,WAAW,CAAC,SAAuC;QAC3D,MAAM,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpF,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpF,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5E,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,QAAQ,CAAC;QAC5D,MAAM,+BAA+B,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;QAE1F,OAAO;EACT,+BAA+B;;wCAEO,UAAU;;;qBAG7B,kBAAkB;qBAClB,kBAAkB;iBACtB,cAAc;;;EAG7B,SAAS,CAAC,WAAW;;;EAGrB,cAAc;;;;;CAKf,CAAC;IACA,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import type { AgentFactoryMap } from "coding-agent-forge";
2
+ export declare const agentFactories: AgentFactoryMap;
3
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/developing/agents/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D,eAAO,MAAM,cAAc,EAAE,eAI5B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { DeveloperAgent } from "./developer.js";
2
+ import { CodingManagerAgent } from "./manager.js";
3
+ import { CodeReviewerAgent } from "./reviewer.js";
4
+ export const agentFactories = {
5
+ "coding-manager": (thread, constants) => new CodingManagerAgent(thread, constants),
6
+ developer: (thread, constants) => new DeveloperAgent(thread, constants),
7
+ "code-reviewer": (thread, constants) => new CodeReviewerAgent(thread, constants),
8
+ };
9
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/developing/agents/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,gBAAgB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC;IAClF,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;IACvE,eAAe,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC;CACjF,CAAC"}
@@ -1,8 +1,6 @@
1
1
  export { CodingManagerAgent, type CodingManagerVariables } from "./manager.js";
2
2
  export { DeveloperAgent, type DeveloperVariables } from "./developer.js";
3
3
  export { CodeReviewerAgent, type CodeReviewerVariables } from "./reviewer.js";
4
- export {
5
- TrajectoryOptimizerAgent,
6
- type TrajectoryOptimizerVariables,
7
- } from "./trajectory-optimizer.js";
4
+ export { TrajectoryOptimizerAgent, type TrajectoryOptimizerVariables, } from "./trajectory-optimizer.js";
8
5
  export { agentFactories } from "./factory.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/developing/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,wBAAwB,EACxB,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { CodingManagerAgent } from "./manager.js";
2
+ export { DeveloperAgent } from "./developer.js";
3
+ export { CodeReviewerAgent } from "./reviewer.js";
4
+ export { TrajectoryOptimizerAgent, } from "./trajectory-optimizer.js";
5
+ export { agentFactories } from "./factory.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/developing/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA+B,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,cAAc,EAA2B,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAA8B,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { DevelopingAgent, type DevelopingAgentVariables } from "./types.js";
2
+ type SelectCodingManagerVariables = DevelopingAgentVariables & {
3
+ todoPath: string;
4
+ finishMark: string;
5
+ phase: "select";
6
+ };
7
+ type UpdateCodingManagerVariables = DevelopingAgentVariables & {
8
+ todoPath: string;
9
+ finishMark: string;
10
+ phase: "update";
11
+ currentTask: string;
12
+ revisionReport: string;
13
+ };
14
+ export type CodingManagerVariables = SelectCodingManagerVariables | UpdateCodingManagerVariables;
15
+ export declare class CodingManagerAgent extends DevelopingAgent<CodingManagerVariables> {
16
+ protected buildPrompt(variables: Readonly<CodingManagerVariables>): string;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/developing/agents/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE5E,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC;CACjB,CAAC;AAEF,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,4BAA4B,GAAG,4BAA4B,CAAC;AAEjG,qBAAa,kBAAmB,SAAQ,eAAe,CAAC,sBAAsB,CAAC;IAC7E,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,MAAM;CAqD3E"}
@@ -0,0 +1,56 @@
1
+ import { codingStyleSkillInstruction, goalInstruction } from "./prompts.js";
2
+ import { DevelopingAgent } from "./types.js";
3
+ export class CodingManagerAgent extends DevelopingAgent {
4
+ buildPrompt(variables) {
5
+ const codingStyleSkillPath = this.workspaceRelativePath(variables.codingStyleSkillPath);
6
+ const targetPath = this.workspaceRelativePath(variables.targetPath);
7
+ const paperBlueprintPath = this.workspaceRelativePath(variables.paperBlueprintPath);
8
+ const experimentPlanPath = this.workspaceRelativePath(variables.experimentPlanPath);
9
+ const codingPlanPath = this.workspaceRelativePath(variables.codingPlanPath);
10
+ const todoPath = this.workspaceRelativePath(variables.todoPath);
11
+ const codingStyleSkillInstructionText = codingStyleSkillInstruction(codingStyleSkillPath);
12
+ const goalInstructionText = goalInstruction(variables.goal);
13
+ if (variables.phase === "update") {
14
+ return `
15
+ ${codingStyleSkillInstructionText}
16
+
17
+ Update the TODO file after a developer task.
18
+ Work only in the TODO file at ${todoPath}. Scan the target repository at ${targetPath}/ before editing it.
19
+
20
+ Read:
21
+ - paper blueprint: ${paperBlueprintPath}
22
+ - experiment plan: ${experimentPlanPath}
23
+ - coding plan: ${codingPlanPath}
24
+ ${goalInstructionText}
25
+
26
+ Current developer task:
27
+ ${variables.currentTask}
28
+
29
+ Revision report:
30
+ ${variables.revisionReport}
31
+
32
+ The revision report lists each Developer report and Reviewer report from the review loop, ending with whether the Reviewer accepted the changes or the loop reached the max revision iterations.
33
+
34
+ Update the TODO so completed work and future developer tasks match the current repository. If you find a better future plan, update it too.
35
+ `;
36
+ }
37
+ return `
38
+ ${codingStyleSkillInstructionText}
39
+
40
+ Select the next developer task for the target repository.
41
+ Scan the target repository at ${targetPath}/ and the TODO file at ${todoPath}.
42
+
43
+ Read:
44
+ - paper blueprint: ${paperBlueprintPath}
45
+ - experiment plan: ${experimentPlanPath}
46
+ - coding plan: ${codingPlanPath}
47
+ ${goalInstructionText}
48
+
49
+ Choose exactly one new bounded task for the Developer.
50
+
51
+ When no further developer task is needed, return exactly:
52
+ ${variables.finishMark}
53
+ `;
54
+ }
55
+ }
56
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/developing/agents/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AAkB5E,MAAM,OAAO,kBAAmB,SAAQ,eAAuC;IACnE,WAAW,CAAC,SAA2C;QAC/D,MAAM,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpF,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpF,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,+BAA+B,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;QAC1F,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO;EACX,+BAA+B;;;gCAGD,QAAQ,mCAAmC,UAAU;;;qBAGhE,kBAAkB;qBAClB,kBAAkB;iBACtB,cAAc;EAC7B,mBAAmB;;;EAGnB,SAAS,CAAC,WAAW;;;EAGrB,SAAS,CAAC,cAAc;;;;;CAKzB,CAAC;QACE,CAAC;QAED,OAAO;EACT,+BAA+B;;;gCAGD,UAAU,0BAA0B,QAAQ;;;qBAGvD,kBAAkB;qBAClB,kBAAkB;iBACtB,cAAc;EAC7B,mBAAmB;;;;;EAKnB,SAAS,CAAC,UAAU;CACrB,CAAC;IACA,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export declare function codingStyleSkillInstruction(codingStyleSkillPath: string): string;
2
+ export declare function goalInstruction(goal: string): string;
3
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/developing/agents/prompts.ts"],"names":[],"mappings":"AAAA,wBAAgB,2BAA2B,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOpD"}
@@ -0,0 +1,12 @@
1
+ export function codingStyleSkillInstruction(codingStyleSkillPath) {
2
+ return `Load and follow the skill at ${codingStyleSkillPath}. It describes how to keep repository code concise, readable, low-friction, and easy to modify.`;
3
+ }
4
+ export function goalInstruction(goal) {
5
+ return `
6
+ Current goal:
7
+ ${goal}
8
+
9
+ Use this goal as the current high-level objective.
10
+ `;
11
+ }
12
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/developing/agents/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,2BAA2B,CAAC,oBAA4B;IACtE,OAAO,gCAAgC,oBAAoB,iGAAiG,CAAC;AAC/J,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO;;EAEP,IAAI;;;CAGL,CAAC;AACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { DevelopingAgent, type DevelopingAgentVariables } from "./types.js";
2
+ export type CodeReviewerVariables = DevelopingAgentVariables & {
3
+ acceptMark: string;
4
+ currentTask: string;
5
+ developerReport: string;
6
+ };
7
+ export declare class CodeReviewerAgent extends DevelopingAgent<CodeReviewerVariables> {
8
+ protected buildPrompt(variables: Readonly<CodeReviewerVariables>): string;
9
+ }
10
+ //# sourceMappingURL=reviewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewer.d.ts","sourceRoot":"","sources":["../../../src/developing/agents/reviewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,GAAG;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,qBAAqB,CAAC;IAC3E,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,MAAM;CAiC1E"}
@@ -0,0 +1,35 @@
1
+ import { codingStyleSkillInstruction } from "./prompts.js";
2
+ import { DevelopingAgent } from "./types.js";
3
+ export class CodeReviewerAgent extends DevelopingAgent {
4
+ buildPrompt(variables) {
5
+ const codingStyleSkillPath = this.workspaceRelativePath(variables.codingStyleSkillPath);
6
+ const targetPath = this.workspaceRelativePath(variables.targetPath);
7
+ const paperBlueprintPath = this.workspaceRelativePath(variables.paperBlueprintPath);
8
+ const experimentPlanPath = this.workspaceRelativePath(variables.experimentPlanPath);
9
+ const codingPlanPath = this.workspaceRelativePath(variables.codingPlanPath);
10
+ const codingStyleSkillInstructionText = codingStyleSkillInstruction(codingStyleSkillPath);
11
+ return (codingStyleSkillInstructionText +
12
+ `
13
+
14
+ Review the current developer task result. Read only.
15
+
16
+ Read:
17
+ - target repository: ${targetPath}
18
+ - paper blueprint: ${paperBlueprintPath}
19
+ - experiment plan: ${experimentPlanPath}
20
+ - coding plan: ${codingPlanPath}
21
+
22
+ Current developer task:
23
+ ${variables.currentTask}
24
+
25
+ Developer report:
26
+ ${variables.developerReport}
27
+
28
+ If the code for the current task is complete and needs no more changes, output exactly:
29
+ ${variables.acceptMark}
30
+
31
+ Otherwise output the revision feedback for the Developer.
32
+ `);
33
+ }
34
+ }
35
+ //# sourceMappingURL=reviewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../../src/developing/agents/reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AAQ5E,MAAM,OAAO,iBAAkB,SAAQ,eAAsC;IACjE,WAAW,CAAC,SAA0C;QAC9D,MAAM,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpF,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpF,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5E,MAAM,+BAA+B,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;QAE1F,OAAO,CACL,+BAA+B;YAC/B;;;;;uBAKiB,UAAU;qBACZ,kBAAkB;qBAClB,kBAAkB;iBACtB,cAAc;;;EAG7B,SAAS,CAAC,WAAW;;;EAGrB,SAAS,CAAC,eAAe;;;EAGzB,SAAS,CAAC,UAAU;;;CAGrB,CACI,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import { Agent } from "coding-agent-forge/agent";
2
+ import type { DevelopingAgentVariables } from "./types.js";
3
+ type ScanTrajectoryOptimizerVariables = DevelopingAgentVariables & {
4
+ phase: "scan";
5
+ currentTask: string;
6
+ };
7
+ type OptimizeTrajectoryOptimizerVariables = DevelopingAgentVariables & {
8
+ phase: "optimize";
9
+ currentTask: string;
10
+ revisionReport: string;
11
+ todoUpdateReport: string;
12
+ metaskillPath: string;
13
+ };
14
+ export type TrajectoryOptimizerVariables = ScanTrajectoryOptimizerVariables | OptimizeTrajectoryOptimizerVariables;
15
+ export declare class TrajectoryOptimizerAgent extends Agent<TrajectoryOptimizerVariables> {
16
+ protected buildPrompt(variables: Readonly<TrajectoryOptimizerVariables>): string;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=trajectory-optimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trajectory-optimizer.d.ts","sourceRoot":"","sources":["../../../src/developing/agents/trajectory-optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,KAAK,gCAAgC,GAAG,wBAAwB,GAAG;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,oCAAoC,GAAG,wBAAwB,GAAG;IACrE,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GACpC,gCAAgC,GAChC,oCAAoC,CAAC;AAEzC,qBAAa,wBAAyB,SAAQ,KAAK,CAAC,4BAA4B,CAAC;IAC/E,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAAG,MAAM;CA+CjF"}
@@ -1,28 +1,9 @@
1
1
  import { Agent } from "coding-agent-forge/agent";
2
2
  import { readFileSync } from "node:fs";
3
- import type { DevelopingAgentVariables } from "./types.js";
4
-
5
- type ScanTrajectoryOptimizerVariables = DevelopingAgentVariables & {
6
- phase: "scan";
7
- currentTask: string;
8
- };
9
-
10
- type OptimizeTrajectoryOptimizerVariables = DevelopingAgentVariables & {
11
- phase: "optimize";
12
- currentTask: string;
13
- revisionReport: string;
14
- todoUpdateReport: string;
15
- metaskillPath: string;
16
- };
17
-
18
- export type TrajectoryOptimizerVariables =
19
- | ScanTrajectoryOptimizerVariables
20
- | OptimizeTrajectoryOptimizerVariables;
21
-
22
- export class TrajectoryOptimizerAgent extends Agent<TrajectoryOptimizerVariables> {
23
- protected buildPrompt(variables: Readonly<TrajectoryOptimizerVariables>): string {
24
- if (variables.phase === "scan") {
25
- return `
3
+ export class TrajectoryOptimizerAgent extends Agent {
4
+ buildPrompt(variables) {
5
+ if (variables.phase === "scan") {
6
+ return `
26
7
  Read only. Scan the target repository before the Developer starts the current task.
27
8
 
28
9
  Read:
@@ -37,10 +18,9 @@ ${variables.currentTask}
37
18
 
38
19
  Output a concise baseline of the repository state relevant to this task and the main guidance the skill should provide.
39
20
  `;
40
- }
41
-
42
- const metaskill = readFileSync(variables.metaskillPath, "utf8");
43
- return `
21
+ }
22
+ const metaskill = readFileSync(variables.metaskillPath, "utf8");
23
+ return `
44
24
  Revise the skill at ${variables.codingStyleSkillPath} so it produces better development trajectories.
45
25
 
46
26
  The metaskill below contains the design goals and tips of this skill:
@@ -66,5 +46,6 @@ Evaluate whether the skill produced a good modification trajectory, then edit th
66
46
 
67
47
  Output a concise optimizer report with the main skill changes.
68
48
  `;
69
- }
49
+ }
70
50
  }
51
+ //# sourceMappingURL=trajectory-optimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trajectory-optimizer.js","sourceRoot":"","sources":["../../../src/developing/agents/trajectory-optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAoBvC,MAAM,OAAO,wBAAyB,SAAQ,KAAmC;IACrE,WAAW,CAAC,SAAiD;QACrE,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC/B,OAAO;;;;WAIF,SAAS,CAAC,oBAAoB;uBAClB,SAAS,CAAC,UAAU;qBACtB,SAAS,CAAC,kBAAkB;qBAC5B,SAAS,CAAC,kBAAkB;iBAChC,SAAS,CAAC,cAAc;;;EAGvC,SAAS,CAAC,WAAW;;;CAGtB,CAAC;QACE,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO;sBACW,SAAS,CAAC,oBAAoB;;;;EAIlD,SAAS;;;uBAGY,SAAS,CAAC,UAAU;qBACtB,SAAS,CAAC,kBAAkB;qBAC5B,SAAS,CAAC,kBAAkB;iBAChC,SAAS,CAAC,cAAc;;;EAGvC,SAAS,CAAC,WAAW;;;EAGrB,SAAS,CAAC,cAAc;;;EAGxB,SAAS,CAAC,gBAAgB;;;;;CAK3B,CAAC;IACA,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import type { PromptConstants, Thread } from "coding-agent-forge";
2
+ import { Agent } from "coding-agent-forge/agent";
3
+ export type DevelopingAgentVariables = {
4
+ targetPath: string;
5
+ codingStyleSkillPath: string;
6
+ paperBlueprintPath: string;
7
+ experimentPlanPath: string;
8
+ codingPlanPath: string;
9
+ goal: string;
10
+ };
11
+ export type DevelopingAgentConstants = {
12
+ workspacePath: string;
13
+ };
14
+ export declare abstract class DevelopingAgent<Variables extends DevelopingAgentVariables> extends Agent<Variables, DevelopingAgentConstants> {
15
+ protected readonly workspacePath: string;
16
+ constructor(thread: Thread, constants: Readonly<PromptConstants>);
17
+ protected workspaceRelativePath(filePath: string): string;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/developing/agents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAIjD,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,8BAAsB,eAAe,CAAC,SAAS,SAAS,wBAAwB,CAAE,SAAQ,KAAK,CAC7F,SAAS,EACT,wBAAwB,CACzB;IACC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAE7B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC;IAahE,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAG1D"}