# 开发与维护

> 维护者说明。只列结论。

## 运行与测试

```bash
npx tsc --noEmit     # 类型检查
npm test             # 全部单元测试（35 个）
npm run serve        # 单独起 HTTP 配额面板（调试，默认 8123）
```

本地作为 pi 扩展安装：`pi install /Users/robin/myProject/pi-ocgo`。

## 已验证的实现要点

- 能力 A：`before_provider_request` 仅当 `payload.messages` 存在 `role:"developer"` 时改写，否则原样透传。
- 能力 B：`before_provider_headers` 注入 `Authorization`（粘合 + 轮换）；`after_provider_response` 探测 429 触发轮换。
- 能力 C：`message_end` 读 `AssistantMessage.usage`（含 cacheRead/cacheWrite）自动记录；`/ocgo cost` 汇总 + 峰谷估算 + 缓存命中率。

## 已验收

- `/ocgo status` 列出 key 与状态。
- 含 `developer` 的请求 → 上游收 `system`；不含则原样。
- 单会话内重复请求始终同一 key（Session 粘合）。
- 每次响应自动记录 `prompt/completion/cached/cache_write`。
- `/ocgo usage` 展示 rolling/weekly/monthly 三窗口 percent + 重置时间。
- `/ocgo cost` 展示 token 总量、估算金额（含峰谷）、缓存命中率。
- 429 / 配额耗尽 → 自动切下一可用 key，失败 key 进冷却/封禁。
- 全 key 封禁时不无限循环，报告最早解禁时间。
- key 文件 `0600`，命令不回显明文 key。

## Roadmap

- [ ] 能力 A 改写规则：默认直接 `developer→system`；`mergeSystems` 选项已在 core 实现，可在配置切换。
- [ ] dsh 封装：`dsh/` 薄封装复用 `src/core/`。
- [ ] 官方 API 若有变动，重跑 `docs/OPENCODE-API.md` 核对。
