academic-army 0.4.0 → 0.5.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 +21 -21
- package/README.zh-CN.md +21 -21
- package/academic_army_mcp_tools/__init__.py +1 -0
- package/{mcp-server → academic_army_mcp_tools}/__main__.py +12 -10
- package/agent-forge.yaml +3 -7
- package/dist/developing-skill/agents/prompts.d.ts +2 -0
- package/dist/developing-skill/agents/prompts.d.ts.map +1 -0
- package/dist/developing-skill/agents/prompts.js +7 -0
- package/dist/developing-skill/agents/prompts.js.map +1 -0
- package/dist/developing-skill/agents/trajectory-optimizer.d.ts.map +1 -1
- package/dist/developing-skill/agents/trajectory-optimizer.js +20 -14
- package/dist/developing-skill/agents/trajectory-optimizer.js.map +1 -1
- package/dist/developing-skill/pipeline.d.ts +4 -2
- package/dist/developing-skill/pipeline.d.ts.map +1 -1
- package/dist/evolve-skill/agents/evaluator.d.ts.map +1 -1
- package/dist/evolve-skill/agents/evaluator.js +15 -7
- package/dist/evolve-skill/agents/evaluator.js.map +1 -1
- package/dist/evolve-skill/agents/modifier.d.ts.map +1 -1
- package/dist/evolve-skill/agents/modifier.js +8 -5
- package/dist/evolve-skill/agents/modifier.js.map +1 -1
- package/dist/evolve-skill/agents/prompts.d.ts +2 -0
- package/dist/evolve-skill/agents/prompts.d.ts.map +1 -0
- package/dist/evolve-skill/agents/prompts.js +7 -0
- package/dist/evolve-skill/agents/prompts.js.map +1 -0
- package/dist/evolve-skill/agents/runner.d.ts.map +1 -1
- package/dist/evolve-skill/agents/runner.js +9 -2
- package/dist/evolve-skill/agents/runner.js.map +1 -1
- package/install_mcp.py +1 -4
- package/metaskills/academic-army-coding-plan/ENVOLVETASK.md +1 -1
- package/metaskills/academic-army-experiment-plan/ENVOLVETASK.md +1 -1
- package/package.json +5 -7
- package/pyproject.toml +21 -0
- package/runs/develop-skill.sh +7 -4
- package/runs/develop.sh +7 -4
- package/skills/academic-army-coding-style/SKILL.md +2526 -2127
- package/mcp-server/requirements.txt +0 -4
- /package/{mcp-server → academic_army_mcp_tools}/deepresearch/__init__.py +0 -0
- /package/{mcp-server → academic_army_mcp_tools}/deepresearch/tools.py +0 -0
- /package/{mcp-server → academic_army_mcp_tools}/writing_master/__init__.py +0 -0
- /package/{mcp-server → academic_army_mcp_tools}/writing_master/tools.py +0 -0
package/README.md
CHANGED
|
@@ -38,10 +38,10 @@ Install package dependencies once:
|
|
|
38
38
|
npm install
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
Install MCP server
|
|
41
|
+
Install the MCP server into the local virtual environment:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
python -m pip install -
|
|
44
|
+
.venv/bin/python -m pip install -e .
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
### 2. Configure AcademicArmy MCP
|
|
@@ -52,7 +52,7 @@ Create `.env` in the repository root:
|
|
|
52
52
|
OPENAI_API_KEY=your_api_key_here
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
For project pipeline runs, use the `academic_army_mcp_tools` server through [`agent-forge.yaml`](agent-forge.yaml). That config launches the
|
|
55
|
+
For project pipeline runs, use the `academic_army_mcp_tools` server through [`agent-forge.yaml`](agent-forge.yaml). That config launches the installed package with `.venv/bin/python -m academic_army_mcp_tools`, independent of each agent thread's working directory.
|
|
56
56
|
|
|
57
57
|
When running AcademicArmy skills directly in Codex, use [`install_mcp.py`](install_mcp.py) to install the same MCP server into Codex so the skills can call `academic_army_mcp_tools.deepresearch` and `academic_army_mcp_tools.writing_master` outside the project pipeline:
|
|
58
58
|
|
|
@@ -70,16 +70,16 @@ Once you are satisfied with the paper blueprint, continue with the next planning
|
|
|
70
70
|
|
|
71
71
|
### 4. Run the development loop
|
|
72
72
|
|
|
73
|
-
After the planning artifacts are ready, write the next high-level development objective into `workspace/goal.md`, then run:
|
|
73
|
+
After the planning artifacts are ready, write the next high-level development objective into `workspace/plan/goal.md`, then run:
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
-
$EDITOR workspace/goal.md
|
|
76
|
+
$EDITOR workspace/plan/goal.md
|
|
77
77
|
bash runs/develop.sh
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
Run [`runs/develop.sh`](runs/develop.sh) to call the `developing-agent-forge` development pipeline, which reads the three planning artifacts plus the current `--goal-path` file and iteratively writes code under `workspace/codebase`. Each time you want the next new task, update `workspace/goal.md` before rerunning the wrapper.
|
|
80
|
+
Run [`runs/develop.sh`](runs/develop.sh) to call the `developing-agent-forge` development pipeline, which reads the three planning artifacts plus the current `--goal-path` file and iteratively writes code under `workspace/codebase`. Each time you want the next new task, update `workspace/plan/goal.md` before rerunning the wrapper.
|
|
81
81
|
|
|
82
|
-
The development loop stores project progress memory under `workspace/
|
|
82
|
+
The development loop stores project progress memory under `workspace/memory/project-progress` and code design memory under `workspace/memory/code-design`. If a new goal starts inheriting old context, edit or delete stale memory files in those directories before rerunning.
|
|
83
83
|
|
|
84
84
|
See [`src/README.md`](src/README.md) for the local TypeScript entry points. The development loop implementation lives in the `developing-agent-forge` package.
|
|
85
85
|
|
|
@@ -103,11 +103,11 @@ npm run evolve-skill
|
|
|
103
103
|
|
|
104
104
|
For the shared CLI and pipeline structure, see [`src/README.md`](src/README.md).
|
|
105
105
|
|
|
106
|
-
For `developing` and `developing-skill`, update the file passed to `--goal-path` when you want to run a new task focus. The prepared wrappers use `workspace/goal.md`. The base development loop comes from `developing-agent-forge`; this repository provides the `developing-skill` trajectory optimizer locally.
|
|
106
|
+
For `developing` and `developing-skill`, update the file passed to `--goal-path` when you want to run a new task focus. The prepared wrappers use `workspace/plan/goal.md`. The base development loop comes from `developing-agent-forge`; this repository provides the `developing-skill` trajectory optimizer locally.
|
|
107
107
|
|
|
108
108
|
### Call MCP Tools
|
|
109
109
|
|
|
110
|
-
AcademicArmy includes
|
|
110
|
+
AcademicArmy includes an installable stdio MCP package in [`academic_army_mcp_tools`](academic_army_mcp_tools). It exposes these tools:
|
|
111
111
|
|
|
112
112
|
- `deepresearch(prompt: str)`: runs the prompt with OpenAI Responses using `gpt-5.5`, high reasoning, web search, background mode, and source inclusion.
|
|
113
113
|
- `writing_master(prompt: str)`: runs the prompt with OpenAI Responses using `gpt-5.5-pro`, high reasoning, web search, background mode, and source inclusion for high-end academic writing review.
|
|
@@ -121,16 +121,16 @@ Find the closest papers to this research idea, compare their methods, and return
|
|
|
121
121
|
|
|
122
122
|
## Project Structure
|
|
123
123
|
|
|
124
|
-
| Path
|
|
125
|
-
|
|
|
126
|
-
| `agent-forge.yaml`
|
|
127
|
-
| `install_mcp.py`
|
|
128
|
-
| `
|
|
129
|
-
| `skills/`
|
|
130
|
-
| `metaskills/`
|
|
131
|
-
| `runs/`
|
|
132
|
-
| `src/`
|
|
133
|
-
| `workspace/`
|
|
124
|
+
| Path | Purpose |
|
|
125
|
+
| -------------------------- | -------------------------------------------------------------------------------------- |
|
|
126
|
+
| `agent-forge.yaml` | Agent and team wiring. |
|
|
127
|
+
| `install_mcp.py` | Installs the project MCP server into Codex for direct skill runs. |
|
|
128
|
+
| `academic_army_mcp_tools/` | Installable stdio MCP implementation that exposes `deepresearch` and `writing_master`. |
|
|
129
|
+
| `skills/` | Prepared AcademicArmy skills. |
|
|
130
|
+
| `metaskills/` | Matching metaskill design/evolution files. |
|
|
131
|
+
| `runs/` | Convenience wrappers around TypeScript pipelines. |
|
|
132
|
+
| `src/` | TypeScript pipeline structure and implementation notes. |
|
|
133
|
+
| `workspace/` | Generated planning artifacts, codebase workspace, memory, and archives. |
|
|
134
134
|
|
|
135
135
|
Agent and team wiring lives in [`agent-forge.yaml`](agent-forge.yaml). The local TypeScript agents are implemented under [`src/evolve-skill/agents`](src/evolve-skill/agents); developing agents come from `developing-agent-forge`.
|
|
136
136
|
|
|
@@ -141,7 +141,7 @@ Prepared AcademicArmy skills live under [`skills/`](skills/), and their matching
|
|
|
141
141
|
| File or variable | Required for | Notes |
|
|
142
142
|
| ------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
143
143
|
| `.env` / `OPENAI_API_KEY` | AcademicArmy MCP | Read by the MCP server and by `install_mcp.py`. |
|
|
144
|
-
| `agent-forge.yaml` | Project pipelines | Launches `academic_army_mcp_tools
|
|
144
|
+
| `agent-forge.yaml` | Project pipelines | Launches installed `.venv` package `academic_army_mcp_tools`; run `.venv/bin/python -m pip install -e .` after changing MCP package code. |
|
|
145
145
|
| `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. |
|
|
146
146
|
|
|
147
147
|
To override or add environment variables directly when installing MCP into Codex, repeat `-e/--env NAME=VALUE`:
|
|
@@ -150,7 +150,7 @@ To override or add environment variables directly when installing MCP into Codex
|
|
|
150
150
|
python install_mcp.py -e OPENAI_API_KEY=your_api_key_here
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
Running the installer refreshes the Codex `academic_army_mcp_tools` entry, registers the current Python executable with `-m
|
|
153
|
+
Running the installer refreshes the Codex `academic_army_mcp_tools` entry, registers the current Python executable with `-m academic_army_mcp_tools`, sets the repository root as the MCP working directory, reads `.env`, and forwards those values to the MCP server.
|
|
154
154
|
|
|
155
155
|
## Troubleshooting
|
|
156
156
|
|
package/README.zh-CN.md
CHANGED
|
@@ -38,10 +38,10 @@ AcademicArmy 的主体核心可以概括为一句话:按图施工。
|
|
|
38
38
|
npm install
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
把 MCP server 安装到本地虚拟环境:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
python -m pip install -
|
|
44
|
+
.venv/bin/python -m pip install -e .
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
### 2. 配置 AcademicArmy MCP
|
|
@@ -52,7 +52,7 @@ python -m pip install -r ./mcp-server/requirements.txt
|
|
|
52
52
|
OPENAI_API_KEY=your_api_key_here
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
运行项目 pipeline 时,通过 [`agent-forge.yaml`](agent-forge.yaml) 使用 `academic_army_mcp_tools
|
|
55
|
+
运行项目 pipeline 时,通过 [`agent-forge.yaml`](agent-forge.yaml) 使用 `academic_army_mcp_tools`。该配置会用 `.venv/bin/python -m academic_army_mcp_tools` 启动已安装的包,不受各个 agent thread 工作目录影响。
|
|
56
56
|
|
|
57
57
|
如果直接在 Codex 中运行 AcademicArmy skills,需要用 [`install_mcp.py`](install_mcp.py) 把同一个 MCP server 安装到 Codex 里,这样 skill 才能在项目 pipeline 之外调用 `academic_army_mcp_tools.deepresearch` 和 `academic_army_mcp_tools.writing_master`:
|
|
58
58
|
|
|
@@ -70,16 +70,16 @@ python install_mcp.py
|
|
|
70
70
|
|
|
71
71
|
### 4. 运行开发循环
|
|
72
72
|
|
|
73
|
-
三份规划产物准备好后,先把下一轮高层开发目标写进 `workspace/goal.md`,然后运行:
|
|
73
|
+
三份规划产物准备好后,先把下一轮高层开发目标写进 `workspace/plan/goal.md`,然后运行:
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
-
$EDITOR workspace/goal.md
|
|
76
|
+
$EDITOR workspace/plan/goal.md
|
|
77
77
|
bash runs/develop.sh
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
运行 [`runs/develop.sh`](runs/develop.sh) 来调用 `developing-agent-forge` 提供的 `developing` pipeline,读取三份规划产物和当前 `--goal-path` 文件,并在 `workspace/codebase` 下迭代写代码。每次想执行下一个新任务时,先更新 `workspace/goal.md`,再重新运行 wrapper。
|
|
80
|
+
运行 [`runs/develop.sh`](runs/develop.sh) 来调用 `developing-agent-forge` 提供的 `developing` pipeline,读取三份规划产物和当前 `--goal-path` 文件,并在 `workspace/codebase` 下迭代写代码。每次想执行下一个新任务时,先更新 `workspace/plan/goal.md`,再重新运行 wrapper。
|
|
81
81
|
|
|
82
|
-
开发循环会把项目进度记忆放在 `workspace/
|
|
82
|
+
开发循环会把项目进度记忆放在 `workspace/memory/project-progress`,把代码设计记忆放在 `workspace/memory/code-design`。如果新 goal 开始继承旧上下文,可以在重新运行前编辑或删除这些目录里的过期 memory 文件。
|
|
83
83
|
|
|
84
84
|
本仓库的 TypeScript 入口和目录结构见 [`src/README.zh-CN.md`](src/README.zh-CN.md)。开发循环实现来自 `developing-agent-forge` 包。
|
|
85
85
|
|
|
@@ -103,11 +103,11 @@ npm run evolve-skill
|
|
|
103
103
|
|
|
104
104
|
TypeScript pipeline 的目录结构和实现说明见 [`src/README.zh-CN.md`](src/README.zh-CN.md)。
|
|
105
105
|
|
|
106
|
-
对于 `developing` 和 `developing-skill`,每次想切换到新的任务重点时,更新传给 `--goal-path` 的文件即可。预设 wrappers 使用的是 `workspace/goal.md`。基础开发循环来自 `developing-agent-forge`;本仓库在本地提供 `developing-skill` trajectory optimizer。
|
|
106
|
+
对于 `developing` 和 `developing-skill`,每次想切换到新的任务重点时,更新传给 `--goal-path` 的文件即可。预设 wrappers 使用的是 `workspace/plan/goal.md`。基础开发循环来自 `developing-agent-forge`;本仓库在本地提供 `developing-skill` trajectory optimizer。
|
|
107
107
|
|
|
108
108
|
### 调用 MCP 工具
|
|
109
109
|
|
|
110
|
-
AcademicArmy 在 [`
|
|
110
|
+
AcademicArmy 在 [`academic_army_mcp_tools`](academic_army_mcp_tools) 包中提供了可安装的 stdio MCP 实现。它暴露这些工具:
|
|
111
111
|
|
|
112
112
|
- `deepresearch(prompt: str)`:把 prompt 交给 OpenAI Responses,以 `gpt-5.5`、high reasoning、web search、background mode 和 source inclusion 的固定配置运行。
|
|
113
113
|
- `writing_master(prompt: str)`:把 prompt 交给 OpenAI Responses,以 `gpt-5.5-pro`、high reasoning、web search、background mode 和 source inclusion 的固定配置运行,用于高阶学术写作咨询。
|
|
@@ -121,16 +121,16 @@ Find the closest papers to this research idea, compare their methods, and return
|
|
|
121
121
|
|
|
122
122
|
## 项目结构
|
|
123
123
|
|
|
124
|
-
| 路径
|
|
125
|
-
|
|
|
126
|
-
| `agent-forge.yaml`
|
|
127
|
-
| `install_mcp.py`
|
|
128
|
-
| `
|
|
129
|
-
| `skills/`
|
|
130
|
-
| `metaskills/`
|
|
131
|
-
| `runs/`
|
|
132
|
-
| `src/`
|
|
133
|
-
| `workspace/`
|
|
124
|
+
| 路径 | 用途 |
|
|
125
|
+
| -------------------------- | ------------------------------------------------------------------ |
|
|
126
|
+
| `agent-forge.yaml` | Agent 和团队 wiring。 |
|
|
127
|
+
| `install_mcp.py` | 把项目 MCP server 安装到 Codex,供直接运行 skill 时使用。 |
|
|
128
|
+
| `academic_army_mcp_tools/` | 可安装的 stdio MCP 实现,暴露 `deepresearch` 和 `writing_master`。 |
|
|
129
|
+
| `skills/` | 已准备的 AcademicArmy skills。 |
|
|
130
|
+
| `metaskills/` | 对应的 metaskill 设计与 evolution 文件。 |
|
|
131
|
+
| `runs/` | TypeScript pipelines 的便捷 wrappers。 |
|
|
132
|
+
| `src/` | TypeScript pipeline 的目录结构和实现说明。 |
|
|
133
|
+
| `workspace/` | 生成的规划产物、代码库工作区、记忆和归档。 |
|
|
134
134
|
|
|
135
135
|
Agent 和团队 wiring 位于 [`agent-forge.yaml`](agent-forge.yaml)。本仓库内的 TypeScript agents 实现于 [`src/evolve-skill/agents`](src/evolve-skill/agents);developing agents 来自 `developing-agent-forge`。
|
|
136
136
|
|
|
@@ -141,7 +141,7 @@ Agent 和团队 wiring 位于 [`agent-forge.yaml`](agent-forge.yaml)。本仓库
|
|
|
141
141
|
| 文件或变量 | 用于 | 说明 |
|
|
142
142
|
| ------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------ |
|
|
143
143
|
| `.env` / `OPENAI_API_KEY` | AcademicArmy MCP | MCP server 和 `install_mcp.py` 会读取。 |
|
|
144
|
-
| `agent-forge.yaml` | 项目 pipelines |
|
|
144
|
+
| `agent-forge.yaml` | 项目 pipelines | 启动 `.venv` 中已安装的 `academic_army_mcp_tools` 包;修改 MCP 包代码后运行 `.venv/bin/python -m pip install -e .`。 |
|
|
145
145
|
| `secret.yaml` | 预设 shell scripts | 预设 wrappers 使用的本地忽略 config overlay。它可以包含密码、API key、runtime 凭据等不能提交或上传到 GitHub 的隐私内容。 |
|
|
146
146
|
|
|
147
147
|
如果需要覆盖或补充环境变量,可以重复使用 `-e/--env NAME=VALUE`:
|
|
@@ -150,7 +150,7 @@ Agent 和团队 wiring 位于 [`agent-forge.yaml`](agent-forge.yaml)。本仓库
|
|
|
150
150
|
python install_mcp.py -e OPENAI_API_KEY=your_api_key_here
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
运行安装脚本时,会刷新 Codex 中的 `academic_army_mcp_tools` 配置项,注册当前 Python 可执行文件和 `-m
|
|
153
|
+
运行安装脚本时,会刷新 Codex 中的 `academic_army_mcp_tools` 配置项,注册当前 Python 可执行文件和 `-m academic_army_mcp_tools`,把仓库根目录设置为 MCP 工作目录,读取 `.env`,并把这些环境变量传给 MCP server。
|
|
154
154
|
|
|
155
155
|
## 常见问题
|
|
156
156
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""AcademicArmy MCP server package."""
|
|
@@ -8,16 +8,7 @@ from .deepresearch import register_deepresearch
|
|
|
8
8
|
from .writing_master import register_writing_master
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
"academic-army",
|
|
13
|
-
instructions=(
|
|
14
|
-
"AcademicArmy MCP server. It exposes project-level tools for research, "
|
|
15
|
-
"blueprint orchestration, and future AcademicArmy workflow functions."
|
|
16
|
-
),
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if __name__ == "__main__":
|
|
11
|
+
def main() -> None:
|
|
21
12
|
load_dotenv(".env")
|
|
22
13
|
|
|
23
14
|
parser = argparse.ArgumentParser()
|
|
@@ -30,6 +21,17 @@ if __name__ == "__main__":
|
|
|
30
21
|
parser.error("-e/--env must be NAME=VALUE")
|
|
31
22
|
os.environ[name] = value
|
|
32
23
|
|
|
24
|
+
mcp = FastMCP(
|
|
25
|
+
"academic-army",
|
|
26
|
+
instructions=(
|
|
27
|
+
"AcademicArmy MCP server. It exposes project-level tools for research, "
|
|
28
|
+
"blueprint orchestration, and future AcademicArmy workflow functions."
|
|
29
|
+
),
|
|
30
|
+
)
|
|
33
31
|
register_deepresearch(mcp)
|
|
34
32
|
register_writing_master(mcp)
|
|
35
33
|
mcp.run(transport="stdio")
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
if __name__ == "__main__":
|
|
37
|
+
main()
|
package/agent-forge.yaml
CHANGED
|
@@ -8,10 +8,8 @@ runtimes:
|
|
|
8
8
|
command: python
|
|
9
9
|
args:
|
|
10
10
|
- -m
|
|
11
|
-
-
|
|
11
|
+
- academic_army_mcp_tools
|
|
12
12
|
cwd: .
|
|
13
|
-
env:
|
|
14
|
-
PYTHONPATH: .
|
|
15
13
|
tool_timeout_sec: 3600
|
|
16
14
|
deepseek-v4-pro:
|
|
17
15
|
kind: claude
|
|
@@ -31,10 +29,8 @@ runtimes:
|
|
|
31
29
|
command: python
|
|
32
30
|
args:
|
|
33
31
|
- -m
|
|
34
|
-
-
|
|
32
|
+
- academic_army_mcp_tools
|
|
35
33
|
cwd: .
|
|
36
|
-
env:
|
|
37
|
-
PYTHONPATH: .
|
|
38
34
|
timeout: 3600000
|
|
39
35
|
deepseek-v4-flash:
|
|
40
36
|
kind: claude
|
|
@@ -97,7 +93,7 @@ threads:
|
|
|
97
93
|
memory:
|
|
98
94
|
runtime: deepseek-v4-flash
|
|
99
95
|
options:
|
|
100
|
-
cwd: &memoryWorkingDir workspace/
|
|
96
|
+
cwd: &memoryWorkingDir workspace/memory
|
|
101
97
|
permissionMode: dontAsk
|
|
102
98
|
allowedTools:
|
|
103
99
|
- Read
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/developing-skill/agents/prompts.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKlD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/developing-skill/agents/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,OAAO;SACX,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trajectory-optimizer.d.ts","sourceRoot":"","sources":["../../../src/developing-skill/agents/trajectory-optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"trajectory-optimizer.d.ts","sourceRoot":"","sources":["../../../src/developing-skill/agents/trajectory-optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAI9E,MAAM,MAAM,4BAA4B,GAAG,wBAAwB,GAAG;IACpE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,wBAAyB,SAAQ,KAAK,CAAC,4BAA4B,CAAC;IAC/E,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAAG,MAAM;CA+BjF"}
|
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
import { Agent } from "coding-agent-forge/agent";
|
|
2
|
+
import { quoteBlock } from "./prompts.js";
|
|
2
3
|
export class TrajectoryOptimizerAgent extends Agent {
|
|
3
4
|
buildPrompt(variables) {
|
|
4
5
|
return `
|
|
5
|
-
|
|
6
|
+
Evaluate and revise the skill so it produces better development trajectories.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
Skill path: ${variables.codingStyleSkillPath}
|
|
9
|
+
Project root: ${variables.targetPath}/.
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
Current goal:
|
|
12
|
+
${quoteBlock(variables.goal)}
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
Task brief:
|
|
15
|
+
${quoteBlock(variables.taskBrief)}
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
Round summary:
|
|
18
|
+
${quoteBlock(variables.taskRoundSummary)}
|
|
14
19
|
|
|
15
|
-
|
|
16
|
-
${variables.
|
|
20
|
+
Metaskill (design goals and tips for this skill):
|
|
21
|
+
${quoteBlock(variables.metaskill)}
|
|
17
22
|
|
|
18
|
-
|
|
19
|
-
${variables.taskBrief}
|
|
23
|
+
Consider these design goals and tips when revising.
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
${variables.taskRoundSummary}
|
|
25
|
+
Evaluate whether the skill produced a good modification trajectory, then revise the skill directly.
|
|
23
26
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
Useful angles include:
|
|
28
|
+
- missing guidance
|
|
29
|
+
- misleading guidance
|
|
30
|
+
- redundant guidance
|
|
31
|
+
- effects on task selection, coding, or review
|
|
32
|
+
- other relevant trajectory issues...
|
|
27
33
|
`;
|
|
28
34
|
}
|
|
29
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trajectory-optimizer.js","sourceRoot":"","sources":["../../../src/developing-skill/agents/trajectory-optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"trajectory-optimizer.js","sourceRoot":"","sources":["../../../src/developing-skill/agents/trajectory-optimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS1C,MAAM,OAAO,wBAAyB,SAAQ,KAAmC;IACrE,WAAW,CAAC,SAAiD;QACrE,OAAO;;;cAGG,SAAS,CAAC,oBAAoB;gBAC5B,SAAS,CAAC,UAAU;;;EAGlC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;;;EAG1B,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;;;EAG/B,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC;;;EAGtC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;;;;;;;;;;;;CAYhC,CAAC;IACA,CAAC;CACF"}
|
|
@@ -11,7 +11,8 @@ export declare const developingSkillArgsOptions: {
|
|
|
11
11
|
};
|
|
12
12
|
readonly "goal-path": {
|
|
13
13
|
readonly type: "string";
|
|
14
|
-
readonly
|
|
14
|
+
readonly multiple: true;
|
|
15
|
+
readonly description: "Goal document path; repeat to concatenate multiple goals in order";
|
|
15
16
|
};
|
|
16
17
|
readonly "achive-dir": {
|
|
17
18
|
readonly type: "string";
|
|
@@ -63,7 +64,8 @@ export declare const developingSkillPipeline: import("coding-agent-forge").Pipel
|
|
|
63
64
|
};
|
|
64
65
|
readonly "goal-path": {
|
|
65
66
|
readonly type: "string";
|
|
66
|
-
readonly
|
|
67
|
+
readonly multiple: true;
|
|
68
|
+
readonly description: "Goal document path; repeat to concatenate multiple goals in order";
|
|
67
69
|
};
|
|
68
70
|
readonly "achive-dir": {
|
|
69
71
|
readonly type: "string";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/developing-skill/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGT,KAAK,eAAe,EAErB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,kCAAkC,EAExC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,MAAM,6BAA6B,GAAG,kCAAkC,GAAG;IAC/E,sBAAsB,EAAE,4BAA4B,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/developing-skill/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGT,KAAK,eAAe,EAErB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,kCAAkC,EAExC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,MAAM,6BAA6B,GAAG,kCAAkC,GAAG;IAC/E,sBAAsB,EAAE,4BAA4B,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUC,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAExF,wBAAsB,eAAe,CACnC,IAAI,EAAE,SAAS,CAAC,6BAA6B,CAAC,EAC9C,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAQlC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAIjD,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,KAAK,CAAC,uBAAuB,CAAC;IACrE,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,MAAM;CAuB5E"}
|
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
import { Agent } from "coding-agent-forge/agent";
|
|
2
|
+
import { quoteBlock } from "./prompts.js";
|
|
2
3
|
export class SkillEvaluatorAgent extends Agent {
|
|
3
4
|
buildPrompt(variables) {
|
|
4
5
|
return `
|
|
5
|
-
Evaluate the artifact
|
|
6
|
+
Evaluate the artifact produced by this skill.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
Artifact path: ${variables.artifactPath}
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
Task descriptions:
|
|
11
|
+
${quoteBlock(variables.taskDescriptions)}
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
Metaskill (design goals and tips for this skill):
|
|
14
|
+
${quoteBlock(variables.metaskill)}
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
Review the artifact against the metaskill.
|
|
14
17
|
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
Useful angles include:
|
|
19
|
+
- problems in content or language
|
|
20
|
+
- missing or misleading guidance
|
|
21
|
+
- redundant parts
|
|
22
|
+
- other relevant issues...
|
|
23
|
+
|
|
24
|
+
Return a concise report that explains how this skill can be optimized.
|
|
17
25
|
`;
|
|
18
26
|
}
|
|
19
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,OAAO,mBAAoB,SAAQ,KAA8B;IAC3D,WAAW,CAAC,SAA4C;QAChE,OAAO;;;iBAGM,SAAS,CAAC,YAAY;;;EAGrC,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC;;;EAGtC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;;;;;;;;;;;CAWhC,CAAC;IACA,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modifier.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/modifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"modifier.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/modifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAIjD,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,sBAAsB,CAAC;IACnE,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,MAAM;CAiB3E"}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { Agent } from "coding-agent-forge/agent";
|
|
2
|
+
import { quoteBlock } from "./prompts.js";
|
|
2
3
|
export class SkillModifierAgent extends Agent {
|
|
3
4
|
buildPrompt(variables) {
|
|
4
5
|
return `
|
|
5
|
-
Revise the skill
|
|
6
|
+
Revise the skill using the evaluation feedback.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
Skill path: ${variables.skillPath}
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
Metaskill (design goals and tips for this skill):
|
|
11
|
+
${quoteBlock(variables.metaskill)}
|
|
10
12
|
|
|
11
13
|
Consider these design goals and tips when revising.
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
Evaluation feedback:
|
|
16
|
+
${quoteBlock(variables.review)}
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
Edit the skill directly.
|
|
16
19
|
`;
|
|
17
20
|
}
|
|
18
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modifier.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/modifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"modifier.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/modifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,OAAO,kBAAmB,SAAQ,KAA6B;IACzD,WAAW,CAAC,SAA2C;QAC/D,OAAO;;;cAGG,SAAS,CAAC,SAAS;;;EAG/B,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;;;;;EAK/B,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;;;CAG7B,CAAC;IACA,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/prompts.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKlD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,OAAO;SACX,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/evolve-skill/agents/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAKjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,oBAAoB,CAAC;IAC/D,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM;CAczE"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { Agent } from "coding-agent-forge/agent";
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
|
+
import { quoteBlock } from "./prompts.js";
|
|
3
4
|
export class SkillRunnerAgent extends Agent {
|
|
4
5
|
buildPrompt(variables) {
|
|
5
6
|
const task = readFileSync(variables.taskPath, "utf8");
|
|
6
7
|
return `
|
|
7
|
-
Use the skill
|
|
8
|
+
Use the skill to complete the task.
|
|
8
9
|
|
|
9
|
-
${
|
|
10
|
+
Skill path: ${variables.skillPath}
|
|
11
|
+
Artifact path: ${variables.artifactPath}
|
|
12
|
+
|
|
13
|
+
Task:
|
|
14
|
+
${quoteBlock(task)}
|
|
15
|
+
|
|
16
|
+
Save all relevant output files in the artifact path.
|
|
10
17
|
`;
|
|
11
18
|
}
|
|
12
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/evolve-skill/agents/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,OAAO,gBAAiB,SAAQ,KAA2B;IACrD,WAAW,CAAC,SAAyC;QAC7D,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO;;;cAGG,SAAS,CAAC,SAAS;iBAChB,SAAS,CAAC,YAAY;;;EAGrC,UAAU,CAAC,IAAI,CAAC;;;CAGjB,CAAC;IACA,CAAC;CACF"}
|
package/install_mcp.py
CHANGED
|
@@ -44,8 +44,6 @@ for item in args.env:
|
|
|
44
44
|
name, value = item.split("=", 1)
|
|
45
45
|
env_items[name] = value
|
|
46
46
|
|
|
47
|
-
env_items.setdefault("PYTHONPATH", str(repo))
|
|
48
|
-
|
|
49
47
|
codex = shutil.which("codex")
|
|
50
48
|
if not codex:
|
|
51
49
|
raise SystemExit("Could not find the codex command line tool in PATH.")
|
|
@@ -59,7 +57,7 @@ subprocess.run(
|
|
|
59
57
|
command = [codex, "mcp", "add"]
|
|
60
58
|
for name, value in env_items.items():
|
|
61
59
|
command += ["--env", f"{name}={value}"]
|
|
62
|
-
command += [SERVER_NAME, "--", str(Path(sys.executable).resolve()), "-m",
|
|
60
|
+
command += [SERVER_NAME, "--", str(Path(sys.executable).resolve()), "-m", SERVER_NAME]
|
|
63
61
|
|
|
64
62
|
subprocess.run(command, check=True)
|
|
65
63
|
|
|
@@ -79,7 +77,6 @@ codex_config.write_text(tomlkit.dumps(config), encoding="utf-8")
|
|
|
79
77
|
print(f"Installed {SERVER_NAME} with {codex}")
|
|
80
78
|
print(f"Python: {Path(sys.executable).resolve()}")
|
|
81
79
|
print(f"Working directory: {repo}")
|
|
82
|
-
print(f"PYTHONPATH: {repo}")
|
|
83
80
|
print(f"Codex config: {codex_config}")
|
|
84
81
|
print(f"Environment variables registered with codex --env: {len(env_items)}")
|
|
85
82
|
print(f"tool_timeout_sec: {args.timeout}")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Create a coding plan based on the paper blueprint in workspace/paper_blueprint.md and the experiment plan in workspace/experiment_plan.md.
|
|
1
|
+
Create a coding plan based on the paper blueprint in workspace/plan/paper_blueprint.md and the experiment plan in workspace/plan/experiment_plan.md.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Create an experiment plan based on the paper blueprint in workspace/paper_blueprint.md.
|
|
1
|
+
Create an experiment plan based on the paper blueprint in workspace/plan/paper_blueprint.md.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "academic-army",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Agent workflows and skills for AcademicArmy.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -23,10 +23,8 @@
|
|
|
23
23
|
"skills",
|
|
24
24
|
"metaskills",
|
|
25
25
|
"runs",
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"mcp-server/deepresearch/*.py",
|
|
29
|
-
"mcp-server/writing_master/*.py",
|
|
26
|
+
"academic_army_mcp_tools/**/*.py",
|
|
27
|
+
"pyproject.toml",
|
|
30
28
|
"install_mcp.py",
|
|
31
29
|
"README.md",
|
|
32
30
|
"README.zh-CN.md",
|
|
@@ -47,8 +45,8 @@
|
|
|
47
45
|
"evolve-skill": "tsx src/cli.ts evolve-skill"
|
|
48
46
|
},
|
|
49
47
|
"dependencies": {
|
|
50
|
-
"coding-agent-forge": ">=1.
|
|
51
|
-
"developing-agent-forge": ">=2.
|
|
48
|
+
"coding-agent-forge": ">=1.5.0",
|
|
49
|
+
"developing-agent-forge": ">=2.9.0"
|
|
52
50
|
},
|
|
53
51
|
"devDependencies": {
|
|
54
52
|
"@eslint/js": "^10.0.1",
|