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.
- package/README.md +24 -24
- package/README.zh-CN.md +24 -24
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +47 -0
- package/dist/cli.js.map +1 -0
- package/dist/developing/agents/developer.d.ts +9 -0
- package/dist/developing/agents/developer.d.ts.map +1 -0
- package/dist/developing/agents/developer.js +34 -0
- package/dist/developing/agents/developer.js.map +1 -0
- package/dist/developing/agents/factory.d.ts +3 -0
- package/dist/developing/agents/factory.d.ts.map +1 -0
- package/dist/developing/agents/factory.js +9 -0
- package/dist/developing/agents/factory.js.map +1 -0
- package/{src/developing/agents/index.ts → dist/developing/agents/index.d.ts} +2 -4
- package/dist/developing/agents/index.d.ts.map +1 -0
- package/dist/developing/agents/index.js +6 -0
- package/dist/developing/agents/index.js.map +1 -0
- package/dist/developing/agents/manager.d.ts +19 -0
- package/dist/developing/agents/manager.d.ts.map +1 -0
- package/dist/developing/agents/manager.js +56 -0
- package/dist/developing/agents/manager.js.map +1 -0
- package/dist/developing/agents/prompts.d.ts +3 -0
- package/dist/developing/agents/prompts.d.ts.map +1 -0
- package/dist/developing/agents/prompts.js +12 -0
- package/dist/developing/agents/prompts.js.map +1 -0
- package/dist/developing/agents/reviewer.d.ts +10 -0
- package/dist/developing/agents/reviewer.d.ts.map +1 -0
- package/dist/developing/agents/reviewer.js +35 -0
- package/dist/developing/agents/reviewer.js.map +1 -0
- package/dist/developing/agents/trajectory-optimizer.d.ts +19 -0
- package/dist/developing/agents/trajectory-optimizer.d.ts.map +1 -0
- package/{src/developing/agents/trajectory-optimizer.ts → dist/developing/agents/trajectory-optimizer.js} +9 -28
- package/dist/developing/agents/trajectory-optimizer.js.map +1 -0
- package/dist/developing/agents/types.d.ts +19 -0
- package/dist/developing/agents/types.d.ts.map +1 -0
- package/dist/developing/agents/types.js +21 -0
- package/dist/developing/agents/types.js.map +1 -0
- package/dist/developing/index.d.ts +3 -0
- package/dist/developing/index.d.ts.map +1 -0
- package/{src/developing/index.ts → dist/developing/index.js} +1 -0
- package/dist/developing/index.js.map +1 -0
- package/dist/developing/pipeline.d.ts +31 -0
- package/dist/developing/pipeline.d.ts.map +1 -0
- package/dist/developing/pipeline.js +175 -0
- package/dist/developing/pipeline.js.map +1 -0
- package/dist/developing/pipelineskill.d.ts +15 -0
- package/dist/developing/pipelineskill.d.ts.map +1 -0
- package/dist/developing/pipelineskill.js +110 -0
- package/dist/developing/pipelineskill.js.map +1 -0
- package/dist/evolve-skill/agents/evaluator.d.ts +10 -0
- package/dist/evolve-skill/agents/evaluator.d.ts.map +1 -0
- package/{src/evolve-skill/agents/evaluator.ts → dist/evolve-skill/agents/evaluator.js} +6 -12
- package/dist/evolve-skill/agents/evaluator.js.map +1 -0
- package/dist/evolve-skill/agents/factory.d.ts +3 -0
- package/dist/evolve-skill/agents/factory.d.ts.map +1 -0
- package/dist/evolve-skill/agents/factory.js +9 -0
- package/dist/evolve-skill/agents/factory.js.map +1 -0
- package/{src/evolve-skill/agents/index.ts → dist/evolve-skill/agents/index.d.ts} +1 -0
- package/dist/evolve-skill/agents/index.d.ts.map +1 -0
- package/dist/evolve-skill/agents/index.js +5 -0
- package/dist/evolve-skill/agents/index.js.map +1 -0
- package/dist/evolve-skill/agents/modifier.d.ts +10 -0
- package/dist/evolve-skill/agents/modifier.d.ts.map +1 -0
- package/{src/evolve-skill/agents/modifier.ts → dist/evolve-skill/agents/modifier.js} +6 -12
- package/dist/evolve-skill/agents/modifier.js.map +1 -0
- package/dist/evolve-skill/agents/runner.d.ts +10 -0
- package/dist/evolve-skill/agents/runner.d.ts.map +1 -0
- package/dist/evolve-skill/agents/runner.js +13 -0
- package/dist/evolve-skill/agents/runner.js.map +1 -0
- package/dist/evolve-skill/index.d.ts +2 -0
- package/dist/evolve-skill/index.d.ts.map +1 -0
- package/dist/evolve-skill/index.js +2 -0
- package/dist/evolve-skill/index.js.map +1 -0
- package/dist/evolve-skill/pipeline.d.ts +19 -0
- package/dist/evolve-skill/pipeline.d.ts.map +1 -0
- package/dist/evolve-skill/pipeline.js +74 -0
- package/dist/evolve-skill/pipeline.js.map +1 -0
- package/dist/pipeline.d.ts +13 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +24 -0
- package/dist/pipeline.js.map +1 -0
- package/metaskills/README.md +10 -10
- package/metaskills/README.zh-CN.md +11 -11
- package/metaskills/academic-army-coding-plan/ENVOLVETASK.md +1 -1
- package/metaskills/academic-army-experiment-plan/ENVOLVETASK.md +1 -1
- package/metaskills/academic-army-experiment-plan/METASKILL.md +0 -1
- package/package.json +37 -3
- package/skills/academic-army-architect/SKILL.md +12 -12
- package/skills/academic-army-architect/references/blueprint-schema.md +27 -0
- package/skills/academic-army-coding-plan/SKILL.md +8 -5
- package/skills/academic-army-experiment-plan/SKILL.md +2 -2
- package/skills/academic-army-repo-scaffold/SKILL.md +1 -1
- package/.editorconfig +0 -9
- package/.github/workflows/publish.yml +0 -44
- package/.prettierrc.json +0 -3
- package/eslint.config.js +0 -28
- package/src/README.md +0 -79
- package/src/README.zh-CN.md +0 -79
- package/src/cli.ts +0 -55
- package/src/developing/README.md +0 -146
- package/src/developing/README.zh-CN.md +0 -146
- package/src/developing/agents/developer.ts +0 -40
- package/src/developing/agents/factory.ts +0 -11
- package/src/developing/agents/manager.ts +0 -74
- package/src/developing/agents/prompts.ts +0 -12
- package/src/developing/agents/reviewer.ts +0 -44
- package/src/developing/agents/types.ts +0 -41
- package/src/developing/pipeline.ts +0 -306
- package/src/developing/pipelineskill.ts +0 -169
- package/src/evolve-skill/README.md +0 -116
- package/src/evolve-skill/README.zh-CN.md +0 -116
- package/src/evolve-skill/agents/factory.ts +0 -11
- package/src/evolve-skill/agents/runner.ts +0 -19
- package/src/evolve-skill/index.ts +0 -1
- package/src/evolve-skill/pipeline.ts +0 -140
- package/src/pipeline.ts +0 -65
- 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
|
|
22
|
-
|
|
23
|
-
| `academic-army-architect`
|
|
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`
|
|
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
|
|
123
|
-
|
|
124
|
-
| `agent-forge.yaml` | Agent and team wiring.
|
|
125
|
-
| `install_mcp.py`
|
|
126
|
-
| `mcp-server/`
|
|
127
|
-
| `skills/`
|
|
128
|
-
| `metaskills/`
|
|
129
|
-
| `runs/`
|
|
130
|
-
| `src/`
|
|
131
|
-
| `output/`
|
|
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
|
|
140
|
-
|
|
141
|
-
| `.env` / `OPENAI_API_KEY` | DeepResearch MCP
|
|
142
|
-
| `agent-forge.yaml`
|
|
143
|
-
| `secret.yaml`
|
|
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
|
|
156
|
-
|
|
157
|
-
| `OPENAI_API_KEY` is missing
|
|
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
|
|
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
|
-
| 步骤
|
|
22
|
-
|
|
23
|
-
| `academic-army-architect`
|
|
24
|
-
| `academic-army-experiment-plan` | `experiment_plan.md` | 实验策略,把论文 claims 映射到证据链、数据集或 workload、指标、baselines、消融、鲁棒性检查和审稿人关心的验证点。
|
|
25
|
-
| `academic-army-coding-plan`
|
|
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`
|
|
126
|
-
| `mcp-server/`
|
|
127
|
-
| `skills/`
|
|
128
|
-
| `metaskills/`
|
|
129
|
-
| `runs/`
|
|
130
|
-
| `src/`
|
|
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
|
|
142
|
-
| `agent-forge.yaml`
|
|
143
|
-
| `secret.yaml`
|
|
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`
|
|
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
|
-
| 开发输出偏离规划
|
|
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 @@
|
|
|
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
|
package/dist/cli.js.map
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
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"}
|