# rinco-pi-effort

[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Node](https://img.shields.io/badge/node-%3E%3D22.19.0-339933.svg)](https://nodejs.org) [![Pi extension](https://img.shields.io/badge/pi-extension-6C5CE7.svg)](https://github.com/earendil-works/pi-coding-agent)

[Pi](https://github.com/earendil-works/pi-coding-agent) 扩展，提供交互式 TUI 齿轮选择器，通过 `/effort` 命令选择模型的思考/推理力度（off、minimal、low、medium、high、xhigh、max），用方向键操作，无需手动输入。

## 快速开始

在 `settings.json` 中添加 `rinco-pi-effort` 扩展：

```json
{
  "pi": {
    "extensions": ["rinco-pi-effort"]
  }
}
```

然后在 Pi 中运行：

```
/effort
```

## 演示

对话框以居中、可缩放的齿轮轨道形式呈现，随着终端宽度变窄，标签会自动从完整标签 → 短标签 → 极简标签切换，确保从全屏到小窗口都能正常使用：

```
╭─ Thinking Effort ────────────────────────────────────────────────────╮
│                                                                        │
│              OFF   MINIMAL   LOW   MEDIUM   HIGH   XHIGH   MAX        │
│              ○───────○───────○───────●───────○───────○───────○       │
│                          GEAR 4 · MEDIUM                              │
│         ←/→ move · Home/End · confirm/Space · cancel                  │
│                                                                        │
╰────────────────────────────────────────────────────────────────────────╯
```

### 控制键

| 按键 | 操作 |
|------|------|
| `←` / `→` | 向左/右移动选择 |
| `Home` / `End` | 跳转到第一个/最后一个级别 |
| `Enter` / `Space` | 确认选择 |
| `Esc` | 取消 |

### 思考力度级别

| 级别 | 说明 |
|------|------|
| `off` | 无思考力度 |
| `minimal` | 最低推理 |
| `low` | 低推理 |
| `medium` | 中等推理 |
| `high` | 高推理 |
| `xhigh` | 极高推理 |
| `max` | 最大推理 |

当未选择模型或当前模型不支持推理时，该命令不会弹出对话框，而是显示一条警告提示。

## 安装

### 作为 Pi 扩展安装

```json
{
  "pi": {
    "extensions": [
      "rinco-pi-effort"
    ]
  }
}
```

### 从本地路径加载

```json
{
  "pi": {
    "extensions": [
      "./extensions/effort/index.ts"
    ]
  }
}
```

## 兼容性

已在 `@earendil-works/pi-coding-agent` 和 `@earendil-works/pi-tui` 的 `0.83.0` 版本上测试通过。`^0.83.0` 的 peer dependency 范围仅允许 `0.83.x` 内的补丁更新（根据 semver 对 `0.x` 版本的 caret 规则），因此任一包的主/次版本更新都需要在此处显式更新版本号，并在新版本上重新验证。要求 Node.js `>=22.19.0`（与 `pi-coding-agent` 自身的最低要求相同）。

## 开发

```bash
# 安装依赖
npm install
```

<!-- AUTO-GENERATED: scripts (source: package.json#scripts) -->
| 命令 | 说明 |
|------|------|
| `npm test` | 运行扩展的单元测试（Node 内置测试运行器，使用 `--experimental-strip-types`） |
<!-- /AUTO-GENERATED -->

## 参与贡献

参见 [CONTRIBUTING.md](CONTRIBUTING.md)（英文）了解环境搭建、测试规范、代码风格和 PR 清单。

## 许可证

[MIT](../LICENSE) © Rinisnotarobot