agent-purge 0.2.10 → 0.2.11
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/CONTRIBUTING.md +64 -0
- package/LICENSE +21 -21
- package/README.md +169 -138
- package/backends/index.mjs +204 -244
- package/bench/bench-armor.mjs +844 -832
- package/bench/capture-hot.mjs +58 -0
- package/bench/capture-provider.mjs +66 -0
- package/bench/capture-report.mjs +15 -0
- package/bench/capture-server-hot.mjs +55 -0
- package/bench/capture-system.mjs +36 -0
- package/bench/judge-armor.mjs +119 -119
- package/bin/agent-purge.mjs +906 -780
- package/docs/LEGAL.md +27 -0
- package/docs/architecture.md +39 -0
- package/docs/compatibility.md +78 -0
- package/docs/images/console-desktop.png +0 -0
- package/docs/images/console-mobile.png +0 -0
- package/docs/releasing.md +87 -0
- package/docs/usage.md +158 -0
- package/lib/activation.mjs +38 -0
- package/lib/apply.mjs +227 -0
- package/lib/armed.mjs +38 -38
- package/lib/armor.mjs +225 -222
- package/lib/caps.mjs +182 -173
- package/lib/capture.mjs +324 -0
- package/lib/clean.mjs +124 -0
- package/lib/control.mjs +60 -0
- package/lib/detect.mjs +74 -70
- package/lib/doctor.mjs +7 -7
- package/lib/dsh.mjs +495 -453
- package/lib/environment.mjs +36 -0
- package/lib/evidence.mjs +41 -0
- package/lib/extension.mjs +140 -0
- package/lib/footprints.mjs +59 -0
- package/lib/home.mjs +47 -47
- package/lib/launch-conflicts.mjs +24 -0
- package/lib/launch.mjs +57 -0
- package/lib/opencode.mjs +62 -0
- package/lib/paths.mjs +25 -0
- package/lib/persist.mjs +439 -280
- package/lib/personas.mjs +17 -7
- package/lib/private-server.mjs +54 -0
- package/lib/project.mjs +134 -0
- package/lib/restore.mjs +131 -114
- package/lib/rewrite.mjs +124 -0
- package/lib/root.mjs +37 -0
- package/lib/shim.mjs +203 -160
- package/lib/slashes.mjs +227 -628
- package/lib/spawn.mjs +182 -126
- package/lib/state.mjs +85 -137
- package/lib/templates/personas/neutral.md +30 -30
- package/lib/update.mjs +137 -0
- package/lib/verification.mjs +23 -0
- package/lib/window.mjs +58 -0
- package/lib/wrappers.mjs +49 -0
- package/magpie-plugin/README.md +44 -0
- package/matrix.json +325 -341
- package/package.json +30 -4
- package/web/app.js +525 -0
- package/web/assets/agent-purge.ico +0 -0
- package/web/assets/claude.ico +0 -0
- package/web/assets/codebuddy.png +0 -0
- package/web/assets/codex.webp +0 -0
- package/web/assets/dsh.ico +0 -0
- package/web/assets/grok.ico +0 -0
- package/web/assets/hermes.ico +0 -0
- package/web/assets/omp.png +0 -0
- package/web/assets/opencode.ico +0 -0
- package/web/assets/opencode2.ico +0 -0
- package/web/assets/pi.png +0 -0
- package/web/assets/zcode.png +0 -0
- package/web/model.mjs +49 -0
- package/web/server.mjs +309 -194
- package/web/styles.css +917 -0
- package/web/ui.html +64 -1163
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# 参与开发
|
|
2
|
+
|
|
3
|
+
感谢帮助维护 agent-purge。提交前请用最小可复现步骤说明问题,并为行为修改添加回归测试。
|
|
4
|
+
|
|
5
|
+
## 本地开发
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm ci --ignore-scripts
|
|
9
|
+
npm run check:repo
|
|
10
|
+
npm test
|
|
11
|
+
npm run web
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
运行要求为 Node.js 20+,生产代码不依赖第三方 npm 包。Playwright 和 axe 仅用于开发测试。
|
|
15
|
+
|
|
16
|
+
## 仓库结构
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
bin/ CLI 入口
|
|
20
|
+
lib/ 状态、通道、恢复、进程和验证服务
|
|
21
|
+
backends/ 各执行器的启动适配
|
|
22
|
+
web/ 原生 HTML / CSS / JavaScript 控制台
|
|
23
|
+
magpie-plugin/ 可选网关插件
|
|
24
|
+
bench/ 请求捕获和 CLI armor 使用的评测工具
|
|
25
|
+
test/ 隔离回归、插件与浏览器测试
|
|
26
|
+
scripts/ 构建、发行包验收和仓库检查
|
|
27
|
+
packaging/ Windows 安装脚本与启动器源码
|
|
28
|
+
docs/ 用户指南、兼容性、架构和发布说明
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`bench/` 并非无用测试产物:`agent-purge verify` 和 `armor` 依赖其中的模块,需随运行包保留。测试源码与临时测试结果是不同的东西。
|
|
32
|
+
|
|
33
|
+
## 测试命令
|
|
34
|
+
|
|
35
|
+
| 命令 | 范围 |
|
|
36
|
+
|---|---|
|
|
37
|
+
| `npm run check:repo` | Git 可提交文件、私有/生成文件排除、文档链接、发行白名单 |
|
|
38
|
+
| `npm test` | 核心逻辑、文件恢复、执行器适配、Web API 和插件回归 |
|
|
39
|
+
| `npm run test:package` | 实际 npm tarball 离线安装、CLI/Web 资源 |
|
|
40
|
+
| `npm run test:ui` | 三浏览器、四种宽度、键盘与自动无障碍检查 |
|
|
41
|
+
| `npm run test:harness` | 实际宿主请求捕获;需要本机安装相应宿主 |
|
|
42
|
+
| `npm run test:artifacts` | Windows ZIP 和独立 EXE 验收 |
|
|
43
|
+
|
|
44
|
+
浏览器首次测试先执行:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npx playwright install chromium firefox webkit
|
|
48
|
+
npm run test:ui
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Windows 可用已有 Edge:`$env:PLAYWRIGHT_CHANNEL='msedge'; npm run test:ui -- --project=chromium`。
|
|
52
|
+
|
|
53
|
+
核心测试使用临时 HOME,不应读写真实人设、宿主配置或凭据。真实宿主测试默认使用本地测试 provider;它不是完整的操作系统网络沙箱。不要为通过测试而删除失败项或把模拟回调写成实机通过。
|
|
54
|
+
|
|
55
|
+
## 提交规范
|
|
56
|
+
|
|
57
|
+
- 保留 `package-lock.json`,开发依赖变化必须同步更新。
|
|
58
|
+
- 新测试放进 `test/`,浏览器测试放进 `test/browser/`;不要把一次性调试脚本散落在根目录。
|
|
59
|
+
- 测试输出、原始请求、开发日志归 `out/`;构建产物归 `dist/`。两者不进入 Git 或 npm。
|
|
60
|
+
- `.pi/`、`.opencode/`、个人 `personas/`、`state.json` 和 `.env` 均为本地数据;不要用 `git add -f` 强制提交。
|
|
61
|
+
- `docs/images/` 只保留当前产品截图;图标仅保留代码实际使用的版本。
|
|
62
|
+
- 提交前检查 `git status --short` 与 `git diff --check`,勿直接提交所有本地文件。
|
|
63
|
+
|
|
64
|
+
CI 会运行仓库检查与测试,但不会代替代码审查或自动发布。[架构约定](docs/architecture.md) · [发布流程](docs/releasing.md)
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 ZiChuanLan
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ZiChuanLan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,225 +1,256 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# agent-purge
|
|
2
4
|
|
|
5
|
+
**一份人设,统一管理多个 coding agent。**
|
|
6
|
+
|
|
3
7
|
[](https://www.npmjs.com/package/agent-purge)
|
|
4
8
|
[](https://github.com/ZiChuanLan/agent-purge/stargazers)
|
|
5
9
|
[](LICENSE)
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
<p>
|
|
12
|
+
<a href="https://trendshift.io/repositories/321425?utm_source=trendshift-badge&utm_medium=badge&utm_campaign=badge-trendshift-321425" target="_blank" rel="noopener noreferrer">
|
|
13
|
+
<img src="https://trendshift.io/api/badge/trendshift/repositories/321425/daily?language=JavaScript" alt="ZiChuanLan/agent-purge | Trendshift" width="250" height="55"/>
|
|
14
|
+
</a>
|
|
15
|
+
</p>
|
|
8
16
|
|
|
9
|
-
|
|
10
|
-
agent-purge web # 本地控制台 http://127.0.0.1:7788
|
|
11
|
-
agent-purge codex # 用当前 persona 启动 codex
|
|
12
|
-
agent-purge pi --ask "…" # 一次性提问
|
|
13
|
-
```
|
|
17
|
+
[快速开始](#快速开始) · [人设与模式](#人设与模式) · [应用范围](#应用范围) · [支持情况](#支持情况) · [暂停与卸载](#暂停与卸载) · [免责与合规声明](#免责与合规声明)
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
</div>
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
agent-purge 是一个本地提示词配置工具,为 Codex、Claude Code、OpenCode、pi 等执行器提供统一的人设管理入口。你可以在 Web 控制台中配置,也可以直接通过命令行启动;不同执行器仍保留自己的工具、模型和工作流程。
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
|---|---|---|
|
|
21
|
-
| `install` | 写入该 harness 的托管配置块(Markdown / hooks / 插件) | 常驻,别人启动也生效 |
|
|
22
|
-
| `shim` | 往 PATH 前置同名小壳,转发给 `agent-purge <h>` | 裸敲命令也接管 |
|
|
23
|
-
| `slash` | 会话内 `/purge on\|off\|status` | 热切换,不动磁盘 |
|
|
23
|
+
## 核心能力
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
- **一份配置,多种入口**:CLI 与 Web 共用人设和状态,支持单次启动、常驻配置、会话扩展与项目规则。
|
|
26
|
+
- **按执行器独立设置**:默认跟随全局,也能为某个执行器单独选择人设或模式。
|
|
27
|
+
- **支持热切,也说明边界**:具备每轮回调的动态通道可在下一轮读取变更;静态入口需要新会话。
|
|
28
|
+
- **变更可追溯、可撤销**:记录托管写入和恢复依据;外部修改会保留,恢复冲突明确报错。
|
|
29
|
+
- **本地优先、零生产依赖**:不需要额外云端配置服务,人设与程序分开保存,升级不覆盖用户数据。
|
|
26
30
|
|
|
27
|
-
##
|
|
31
|
+
## 快速开始
|
|
32
|
+
|
|
33
|
+
需要 **Node.js 20+**,并先安装你要使用的 coding agent。
|
|
28
34
|
|
|
29
35
|
```bash
|
|
30
|
-
npm
|
|
36
|
+
npm install -g agent-purge
|
|
37
|
+
agent-purge web
|
|
31
38
|
```
|
|
32
39
|
|
|
33
|
-
|
|
40
|
+
也可以直接使用 `npx agent-purge web`,不进行全局安装。
|
|
34
41
|
|
|
35
|
-
|
|
42
|
+
1. 在「人设库」编辑起步模板,或新建自己的人设。
|
|
43
|
+
2. 回到「控制台」选择人设和模式,保存设置,再开启需要管理的执行器。
|
|
44
|
+
3. 按执行器详情中的提示,新建会话或重新加载插件。
|
|
36
45
|
|
|
37
|
-
|
|
38
|
-
magpie plugin add /path/to/agent-purge/magpie-plugin
|
|
39
|
-
```
|
|
46
|
+
控制台默认地址为 `http://127.0.0.1:7788`。首次打开不会自动接管所有执行器;默认启动项与应用范围分别配置。
|
|
40
47
|
|
|
41
|
-
|
|
48
|
+

|
|
42
49
|
|
|
43
|
-
|
|
50
|
+
[查看窄屏布局](docs/images/console-mobile.png)
|
|
44
51
|
|
|
45
|
-
|
|
52
|
+
<details>
|
|
53
|
+
<summary>其他安装方式:Windows 安装器、便携包与无桌面环境</summary>
|
|
46
54
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
55
|
+
| 形式 | 运行要求 | 适用场景 |
|
|
56
|
+
|---|---|---|
|
|
57
|
+
| npm | Node.js 20+ | 用 npm 安装与升级 |
|
|
58
|
+
| `agent-purge-<版本>-setup.exe` | Windows,外部 Node.js 20+ | 图形安装和卸载 |
|
|
59
|
+
| `agent-purge-<版本>.zip` | Windows,外部 Node.js 20+ | 解压后使用 |
|
|
60
|
+
| `agent-purge.exe` | Windows x64,自带运行时 | 无需另装 Node 的独立便携版 |
|
|
61
|
+
|
|
62
|
+
下载附件以实际 [GitHub Releases](https://github.com/ZiChuanLan/agent-purge/releases) 为准;未发布的版本没有附件。请核对 SHA-256 和签名状态,未签名程序可能出现系统提示。ZIP 中的 EXE 是薄启动器,不是自带运行时的独立版。
|
|
50
63
|
|
|
51
|
-
|
|
64
|
+
SSH / WSL 等无桌面环境使用 `agent-purge web --no-open`。Web 仅监听本机;Linux/macOS 使用 npm 或源码入口,不能运行 Windows EXE。平台验证范围见[兼容性说明](docs/compatibility.md)。
|
|
52
65
|
|
|
53
|
-
|
|
66
|
+
</details>
|
|
54
67
|
|
|
55
|
-
|
|
68
|
+
## 人设与模式
|
|
56
69
|
|
|
57
|
-
|
|
70
|
+
人设正文决定要提供给执行器的提示词;名称和说明只用于管理。首次运行会生成 `neutral` 起步模板,你可以在 Web 中直接编辑,也可以创建自己的 Markdown 文件。
|
|
58
71
|
|
|
59
72
|
```bash
|
|
60
|
-
agent-purge ls
|
|
61
|
-
agent-purge use <id>
|
|
62
|
-
agent-purge
|
|
73
|
+
agent-purge ls # 查看人设
|
|
74
|
+
agent-purge use <id> # 切换并同步已选范围
|
|
75
|
+
agent-purge mode append # 修改全局模式
|
|
76
|
+
agent-purge use <id> --for codex # 只给 Codex 指定人设
|
|
77
|
+
agent-purge use follow --for codex # 恢复跟随全局
|
|
63
78
|
```
|
|
64
79
|
|
|
65
|
-
|
|
80
|
+
### 四种处理模式
|
|
66
81
|
|
|
67
|
-
|
|
82
|
+
| 模式 | 行为 | 注意 |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| `replace`(默认) | 优先替换宿主身份行,尽量保留其他说明 | 身份识别是近似处理;无法读取宿主文本的启动入口按 strict 执行 |
|
|
85
|
+
| `strict` | 用人设替换可控入口中的宿主文本 | 该入口原有说明也会移除;宿主仍可能添加额外文本 |
|
|
86
|
+
| `append` | 保留宿主说明,另加一份人设 | 不替换原身份,需注意规则冲突 |
|
|
87
|
+
| `off` | 停止相应入口注入 | 全局暂停与单次启动参数的作用范围不同 |
|
|
68
88
|
|
|
69
|
-
|
|
89
|
+
**strict 不等于“模型只收到人设”。** 实际角色可能是 `system`、`developer` 或项目上下文,取决于宿主和通道。希望保留宿主说明时,可先试 `append`。
|
|
70
90
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
| `codex` | 启动参数 `-c model_instructions_file=` | 0.163.0 | 21,026 | 24 |
|
|
74
|
-
| `claude` | `--system-prompt-file` + 二进制补丁清残留身份句 | 2.1.304 | 6,379 | 156 |
|
|
75
|
-
| `grok` | `--system-prompt-override` | 1.0.62 | 5,146 | 21 |
|
|
76
|
-
| `omp` | 原生扩展:`before_agent_start` 改写 systemPrompt 数组,会话内 `/purge` 热切;`--ask` 仍走 `--system-prompt` | 17.4.2 | 34,511 | 10,106 |
|
|
77
|
-
| `hermes` | 临时 HOME 里替换 `SOUL.md` | 0.21.5 | 8,139 | 7,554 |
|
|
78
|
-
| `zcode` | UserPromptSubmit hook(user 角色)+ `customSystemPrompt` | 0.16.9 | 9,359 | 9,359 |
|
|
79
|
-
| `opencode` | cwd 下 `.opencode/plugin/*.ts` 原地改 `output.system` | 1.19.3 | 19,332 | 112 |
|
|
80
|
-
| `opencode2` | `plugins/agent-purge-v2.ts` 的 `ctx.session.hook("context")` | 0.0.0-beta-17823 | 8,279 | 3,189 |
|
|
81
|
-
| `dsh` | cordis 插件(三个 profile 各一份) | 0.2.1-rc.2 | 5,713 | 68 |
|
|
82
|
-
| `pi` | 原生扩展,会话内 `/purge` | — | — | — |
|
|
83
|
-
| `antigravity` | 等长替换二进制里的身份句 | 1.23.x | ≈20,498 | — |
|
|
84
|
-
| `codebuddy` | `--system-prompt-file` | 2.171.0 | — | — |
|
|
85
|
-
| `qoder` / `workbuddy` | 不支持(提示词在服务端) | — | — | — |
|
|
91
|
+
<details>
|
|
92
|
+
<summary>手写人设示例与存储位置</summary>
|
|
86
93
|
|
|
87
|
-
|
|
94
|
+
将以下内容保存为 `~/.agent-purge/personas/concise.md`,然后执行 `agent-purge use concise`:
|
|
88
95
|
|
|
89
|
-
|
|
96
|
+
```markdown
|
|
97
|
+
---
|
|
98
|
+
id: concise
|
|
99
|
+
name: 简洁协作
|
|
100
|
+
description: 中文、先结论、修改前先读代码
|
|
101
|
+
---
|
|
90
102
|
|
|
91
|
-
|
|
103
|
+
用简体中文协作。先给结论,再给依据。
|
|
104
|
+
修改代码前先阅读现有实现;不确定时明确说明。
|
|
105
|
+
```
|
|
92
106
|
|
|
93
|
-
|
|
107
|
+
只有正文进入提示词。`description` 用于列表说明,旧键 `desc` 仍兼容;Web 编辑会保留未涉及的元数据。高级匹配、排序与数据目录配置见[使用指南](docs/usage.md#人设文件)。
|
|
94
108
|
|
|
95
|
-
|
|
96
|
-
agent-purge install <h> # 写进该 harness 自己的托管位置,别人启动也生效
|
|
97
|
-
agent-purge uninstall <h> # 摘掉,按字节还原
|
|
98
|
-
```
|
|
109
|
+
也可参考维护者的 [some-magic 人设仓库](https://github.com/ZiChuanLan/some-magic)。
|
|
99
110
|
|
|
100
|
-
|
|
111
|
+
</details>
|
|
101
112
|
|
|
102
|
-
|
|
113
|
+
## 应用范围
|
|
103
114
|
|
|
104
|
-
|
|
115
|
+
只想临时使用,可以通过 agent-purge 启动一次,不必登记常驻通道:
|
|
105
116
|
|
|
106
|
-
|
|
117
|
+
```bash
|
|
118
|
+
agent-purge codex --mode append
|
|
119
|
+
agent-purge pi --ask "解释这段代码"
|
|
120
|
+
agent-purge codex -- --help # -- 后的参数交给宿主
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
要让其他启动入口也读取配置,再按需选择以下通道:
|
|
124
|
+
|
|
125
|
+
| 通道 | 做什么 | 生效时机 |
|
|
107
126
|
|---|---|---|
|
|
108
|
-
| `
|
|
109
|
-
| `
|
|
110
|
-
| `slash` |
|
|
127
|
+
| `install` | 写入宿主的托管配置或插件 | 静态配置需新会话;已加载动态插件下一轮读取 |
|
|
128
|
+
| `shim` | 通过 PATH 中的同名命令转发启动 | 下一次从该命令启动 |
|
|
129
|
+
| `slash` | 安装会话内 `/purge` 扩展 | 取决于宿主扩展和启用状态 |
|
|
130
|
+
| `project` | 写入指定目录的项目规则文件 | 对应目录的新会话 |
|
|
111
131
|
|
|
112
132
|
```bash
|
|
113
|
-
agent-purge
|
|
114
|
-
agent-purge
|
|
115
|
-
agent-purge
|
|
116
|
-
agent-purge
|
|
133
|
+
agent-purge install codex
|
|
134
|
+
agent-purge arm pi --slash
|
|
135
|
+
agent-purge project on pi --dir /path/to/project
|
|
136
|
+
agent-purge status
|
|
117
137
|
```
|
|
118
138
|
|
|
119
|
-
|
|
139
|
+
`arm <h>` 会尝试开启该执行器可用的常驻、命令和 slash 通道,结果逐项报告;项目通道需单独选择。同一人设经多个入口提供时可能重复,建议只开启需要的范围。
|
|
140
|
+
|
|
141
|
+
**使用 magpie 网关?** 可选插件位于 `magpie-plugin/`,不是仓库根目录。安装方法和网关改写边界见 [magpie 插件说明](magpie-plugin/README.md)。
|
|
120
142
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
- 只想彻底关掉某一家:`agent-purge disarm dsh --all`(撤 dsh 三条通道 + 关总电源,别的 harness 不动);
|
|
125
|
-
`arm` 会把上次的 mode 还回去。
|
|
143
|
+
## 支持情况
|
|
144
|
+
|
|
145
|
+
以下为 **2026-11-01 的请求级验证范围**,不是对所有版本的兼容承诺。
|
|
126
146
|
|
|
127
|
-
|
|
147
|
+
| 执行器 | 已验证版本 | 同会话热切 |
|
|
148
|
+
|---|---|---|
|
|
149
|
+
| pi / omp | 1.4.0 / 18.14.1 | 已验证(动态扩展) |
|
|
150
|
+
| OpenCode 1.x / 2.x | 1.19.5 / 2.2.5 | 已验证 |
|
|
151
|
+
| DSH | 0.2.1-rc.5 | 已验证(SDK 同会话;headless/web/desktop 三形态四模式已抓) |
|
|
152
|
+
| Codex / Claude Code | 0.166.0 / 2.1.316 | 启动入口已验证;热切未验证 |
|
|
153
|
+
| CodeBuddy / Grok | 2.179.0 / 1.0.73 | 启动入口已验证;热切未验证 |
|
|
128
154
|
|
|
129
|
-
|
|
155
|
+
首次安装或更新插件代码后,仍需重新加载宿主。**配置写入、历史测试通过、当前会话实际生效,是不同状态。**
|
|
130
156
|
|
|
131
|
-
|
|
157
|
+
Windows 与 WSL/Linux 已执行回归,macOS 尚待实机验证。Hermes、zcode、antigravity 未计为本轮通过。请求角色、宿主残留、浏览器覆盖与已知安装问题统一记录在[兼容性与限制](docs/compatibility.md),不以模型自称身份作为验收依据。
|
|
132
158
|
|
|
133
|
-
|
|
159
|
+
## 暂停与卸载
|
|
160
|
+
|
|
161
|
+
| 目的 | 命令 | 用户人设 |
|
|
162
|
+
|---|---|---|
|
|
163
|
+
| 临时暂停 / 恢复原范围 | `agent-purge pause` / `agent-purge resume` | 保留 |
|
|
164
|
+
| 仅撤销一家常驻配置 | `agent-purge uninstall dsh` | 保留,其他通道不变 |
|
|
165
|
+
| 撤销一家全部已选通道 | `agent-purge disarm dsh` | 保留 |
|
|
166
|
+
| 撤销所有登记的接管 | `agent-purge clean` | 保留 |
|
|
167
|
+
|
|
168
|
+
卸载 npm 程序时,先撤销接管,再移除程序:
|
|
134
169
|
|
|
135
170
|
```bash
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
magpie plugin options magpie-plugin '{"mode":"append"}' # 插件名 = 目录名
|
|
139
|
-
magpie plugin list # 应看到 async gateway hook + Persona 页
|
|
171
|
+
agent-purge clean
|
|
172
|
+
npm uninstall -g agent-purge
|
|
140
173
|
```
|
|
141
174
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
四种模式和 CLI 一致,差别在网关手里只有文本、没有各家启动参数:
|
|
175
|
+
Windows 安装器卸载也会先撤销接管并保留人设。发生恢复冲突时,保留报错指出的文件和凭据,先比较修改再处理;不要直接删除备份。历史会话中已经发送的内容无法撤回。
|
|
145
176
|
|
|
146
|
-
|
|
147
|
-
|---|---|
|
|
148
|
-
| `off` | 不动请求 |
|
|
149
|
-
| `strict` | system 整段换成人设(工具说明也一起没了,harness 可能变笨) |
|
|
150
|
-
| `append` | 人设挂在最前,宿主 system 原样 |
|
|
151
|
-
| `replace` | 人设在前,再删掉宿主 system 里报名字的那句(近似;要干净用 `strict`) |
|
|
177
|
+
需要永久删除数据时,先备份,再按[完整卸载说明](docs/usage.md#暂停撤销和卸载)操作;`self-uninstall --yes` 与普通卸载不同。
|
|
152
178
|
|
|
153
|
-
|
|
179
|
+
## 隐私与使用边界
|
|
154
180
|
|
|
155
|
-
|
|
181
|
+
- **本机管理**:默认数据目录为 `~/.agent-purge/`;Windows 对应 `C:\Users\<用户>\.agent-purge\`。可通过 `AGENT_PURGE_HOME` 调整,程序升级不会覆盖这份目录。
|
|
182
|
+
- **模型请求仍会联网**:启用后,人设会随宿主请求发送给其配置的模型服务;本地管理不等于离线运行。更新检查也会访问 GitHub。
|
|
183
|
+
- **不直接修改宿主权限**:项目管理提示词和配置入口,不破解宿主、不绕过授权;不保证改写后的模型行为。
|
|
184
|
+
- **只在有权管理的环境使用**:Web 仅监听 `127.0.0.1`,不要直接暴露到公网。完整要求见下方声明。
|
|
156
185
|
|
|
157
|
-
##
|
|
186
|
+
## 开发与文档
|
|
158
187
|
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
web/ 控制台(server.mjs + ui.html)
|
|
164
|
-
bench/ 注入成功率实测与裁判脚本(开发用,不参与运行)
|
|
165
|
-
magpie-plugin/ magpie 网关插件(可选,不进 npm 包)
|
|
166
|
-
matrix.json 能力矩阵
|
|
188
|
+
```bash
|
|
189
|
+
npm ci --ignore-scripts
|
|
190
|
+
npm run check:repo
|
|
191
|
+
npm test
|
|
167
192
|
```
|
|
168
193
|
|
|
169
|
-
|
|
194
|
+
| 文档 | 内容 |
|
|
195
|
+
|---|---|
|
|
196
|
+
| [使用指南](docs/usage.md) | 人设文件、分家配置、通道、项目规则、恢复与常见问题 |
|
|
197
|
+
| [兼容性与限制](docs/compatibility.md) | 实测版本、平台范围、请求证据与已知问题 |
|
|
198
|
+
| [参与开发](CONTRIBUTING.md) | 目录结构、测试命令与提交规范 |
|
|
199
|
+
| [架构约定](docs/architecture.md) | 模块边界、配置语义和界面规范 |
|
|
200
|
+
| [发布流程](docs/releasing.md) | 构建、安装验收与发行检查 |
|
|
170
201
|
|
|
171
|
-
|
|
172
|
-
- 所有改动可逆:`agent-purge uninstall <h>` / `disarm` / `--mode off`。
|
|
173
|
-
- 不做文件夹级人设隔离:技术上做得到,但会打破「一份人设、所有入口、一起切换」,卸载也不再是字节还原。
|
|
174
|
-
- 状态只存本机 `state.json`,不上传任何数据。
|
|
202
|
+
回归测试保留在 `test/`,临时日志与构建产物不进入源码仓库。
|
|
175
203
|
|
|
176
204
|
## 免责与合规声明
|
|
177
205
|
|
|
178
|
-
|
|
206
|
+
- **合法、授权使用**:请遵守适用法律、宿主及模型服务条款,不用于未经授权的访问、攻击、数据窃取或其他违法活动。
|
|
207
|
+
- **使用前评估风险**:提示词改写可能影响模型行为。请先备份配置、在隔离环境测试,并审核重要操作与输出。
|
|
208
|
+
- **按现状提供**:软件的许可、保证排除与责任限制以 [MIT LICENSE](LICENSE) 为准;本说明不附加与其冲突的授权限制。
|
|
179
209
|
|
|
180
|
-
|
|
210
|
+
<details>
|
|
211
|
+
<summary><strong>展开完整声明:许可、使用责任、数据隐私与第三方关系</strong></summary>
|
|
181
212
|
|
|
182
|
-
|
|
213
|
+
<!-- legal-body:start -->
|
|
214
|
+
### 许可与适用范围
|
|
183
215
|
|
|
184
|
-
|
|
216
|
+
agent-purge 用于在使用者有权管理的 coding agent 中配置人设和提示词入口。项目采用 [MIT License](LICENSE);本说明用于解释用途、风险和使用责任,不替代 LICENSE,也不对 MIT 授权范围附加额外限制。复制、修改或分发软件时,请按 LICENSE 保留必要的版权和许可声明。
|
|
185
217
|
|
|
186
|
-
|
|
218
|
+
### 合法、授权使用
|
|
187
219
|
|
|
188
|
-
|
|
220
|
+
使用者应遵守适用法律法规、宿主软件与模型服务的条款,以及相关第三方授权。请勿将本项目用于未经授权的访问、攻击、数据窃取、隐私侵害或其他违法活动。安装本工具不代表你获得了操作第三方系统、使用他人数据或调用模型服务的授权。
|
|
189
221
|
|
|
190
|
-
|
|
222
|
+
### 配置与模型行为风险
|
|
191
223
|
|
|
192
|
-
|
|
224
|
+
提示词改写可能改变模型输出、工具调用倾向和原有工作流程;严格替换也可能移除可控入口中的原有说明。本项目不保证模型输出正确、安全、合法或适合特定用途,也不替代宿主的权限控制、沙箱、人工审核和安全策略。
|
|
193
225
|
|
|
194
|
-
|
|
226
|
+
用于重要项目之前,请备份配置并在隔离环境测试。执行敏感操作前应自行审核模型输出;恢复遇到冲突时,保留原文件和恢复凭据,不要直接删除备份。
|
|
195
227
|
|
|
196
|
-
|
|
197
|
-
- 《中华人民共和国网络安全法》
|
|
198
|
-
- 《中华人民共和国数据安全法》
|
|
199
|
-
- 《中华人民共和国个人信息保护法》
|
|
200
|
-
- 以及其他现行有效的法律、行政法规与监管规定
|
|
228
|
+
### 数据与网络
|
|
201
229
|
|
|
202
|
-
|
|
230
|
+
人设和配置默认保存在本机,但启用后会随宿主请求发送给其配置的模型服务。更新检查、软件安装和宿主运行可能访问外部网络。请勿在人设中放入不应发送给服务提供方的密钥、个人信息或机密数据;本工具不提供完整的网络隔离或数据防泄漏保障。
|
|
203
231
|
|
|
204
|
-
|
|
205
|
-
- 诱导、生成或传播危害国家安全、恐怖主义、暴力血腥、涉黄涉赌、诈骗、侵犯公民隐私或知识产权等任何法律明令禁止的违法违禁内容;
|
|
206
|
-
- 违反相关大模型提供商的《服务条款》与《滥用政策》。
|
|
232
|
+
### 保证与责任
|
|
207
233
|
|
|
208
|
-
|
|
234
|
+
软件按 LICENSE 约定以“按现状”方式提供,不作其中所列的明示或默示保证。使用者应评估自身使用场景、保管凭据并审核产生的结果。在适用法律允许的范围内,作者与贡献者的保证排除及责任限制以 LICENSE 为准;本说明不排除法律规定不得排除的责任。
|
|
209
235
|
|
|
210
|
-
|
|
236
|
+
### 第三方独立性
|
|
211
237
|
|
|
212
|
-
|
|
238
|
+
本项目是独立开发的工具,与所支持的 coding agent、模型提供商及其关联主体不存在默认的隶属、授权、合作或背书关系。文中的产品名称和标识归相应权利人所有,兼容性说明不代表第三方对本项目作出认可或担保。
|
|
239
|
+
<!-- legal-body:end -->
|
|
213
240
|
|
|
214
|
-
|
|
215
|
-
## Star History
|
|
241
|
+
</details>
|
|
216
242
|
|
|
217
|
-
[
|
|
243
|
+
完整声明也可在 [docs/LEGAL.md](docs/LEGAL.md) 单独阅读。
|
|
218
244
|
|
|
219
|
-
##
|
|
245
|
+
## 许可与社区
|
|
220
246
|
|
|
221
|
-
MIT
|
|
247
|
+
许可文件:[MIT LICENSE](LICENSE)。使用声明见上节及 [docs/LEGAL.md](docs/LEGAL.md)。
|
|
222
248
|
|
|
223
|
-
|
|
249
|
+
感谢 [LINUX DO](https://linux.do) 社区,以及所有报告问题、补充适配和参与改进的使用者。
|
|
250
|
+
|
|
251
|
+
<details>
|
|
252
|
+
<summary>Star History</summary>
|
|
253
|
+
|
|
254
|
+
[](https://star-history.com/#ZiChuanLan/agent-purge&Date)
|
|
224
255
|
|
|
225
|
-
|
|
256
|
+
</details>
|