# 安装与更新

## 前提

- Node.js 24 或更高版本。
- 已安装与本插件 Provider API 兼容的 Pi。
- npm 安装需要访问 npm registry；登录和模型调用需要访问 OpenAI。

## 从 npm 安装

本包发布成功后，在系统终端运行：

```bash
pi install npm:pi-codex-dual@0.2.3
```

随后在 Pi 聊天输入框执行 `/reload`，或重启 Pi。

如果之前安装的是本地目录，先取消该目录的安装登记，避免本地版与 npm 版同时加载：

```bash
pi remove /path/to/pi-codex-dual
pi install npm:pi-codex-dual@0.2.3
```

Windows 示例：`pi remove "F:\pi插件\pi-codex-dual"`。这只是取消本地包登记，不删除源码或账号授权。当前本机测试用户可以继续使用最新版本地目录，无需切换安装来源。

## 本地源码安装

从完整源码目录安装，不要只复制 `src/index.ts`：

```bash
cd /path/to/pi-codex-dual
npm install --omit=dev --ignore-scripts --legacy-peer-deps
pi install .
```

`--legacy-peer-deps` 避免安装另一套 Pi 核心。Pi 核心模块由宿主提供；npm 包安装的运行依赖由 Pi 自动管理。本地目录安装只登记路径，不复制文件，安装后请保留该目录。

## 登录和使用

以下命令在 Pi 聊天输入框中运行：

```text
/login openai-codex
/login openai-codex-b
/dual
```

A 已登录时无需再次登录。B 使用另一浏览器资料或无痕窗口，授权另一个账号。

- `/dual a`、`/dual b`：固定账号。
- `/dual switch`：切换另一账号。
- `/dual auto`：主账号优先 + 自动回退。
- `/dual round-robin`：轮询。
- `/dual threshold 10`：任一有效窗口剩余低于 10% 时提前换号；`off` 关闭。
- `/dual status`：查看状态和阈值。
- `/dual doctor`：本地诊断。

原 `/codex-dual` 命令兼容保留。希望后续会话默认使用双账号时，在 `/model` 中选择 `openai-codex-dual` 的模型，再按 Ctrl+S 保存默认设置。

## 额度显示的配套要求

**本次 npm 发布只包含 pi-codex-dual，不发布 pi-cost-lens。**

右下角额度由 pi-cost-lens 显示。当前 npm 的 `pi-cost-lens@0.1.1` 没有本次 B/自动路由联动修复，需要同步安装更新后的本地 pi-cost-lens。本机更新 ZIP 包含两个插件的源码；仅安装双账号 npm 包不会自动修复旧额度显示插件。

本机目录 `F:\pi插件\pi-cost-lens\pi-cost-lens` 已更新为本地 0.1.3，分别显示 5h/周额度距离下次重置的倒计时，并向双账号反馈额度报告。首次升级 footer 建议重启 Pi，避免旧包装器缓存；无需重新登录。提前换号只在自动/轮询模式下一次请求前生效，默认阈值 10%，只使用 10 分钟内且尚未重置的数据。

## 安全与限制

- 每个账号分别使用自己的订阅额度，插件不能合并或增加额度。
- 不要发送 `auth.json`、Cookie、Token 或 OAuth 回调链接给他人。
- 插件发布内容不包括账号授权、个人配置、会话或运行状态。
- 共享冷却和统计仅针对使用同一 Pi 配置目录的进程。
- 离线测试不验证真实账号的服务端调用或实时额度，请实际使用验证。
