@oldsuns/pi-switch 0.2.1 → 0.2.3

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 CHANGED
@@ -6,26 +6,30 @@ CLI:`pi-switch` · npm 包:`@oldsuns/pi-switch` · Node 薄壳 + Rust/napi
6
6
 
7
7
  ## 功能
8
8
 
9
- - **主页**:provider / model 计数、默认模型、关键路径
9
+ - **主页**:provider / model 计数、默认模型、关键路径;启动后台静默检查 npm 新版本,有更新时弹出确认对话框可一键安装
10
10
  - **配置 (Profiles)**:本地 provider 库与 Pi 启用子集;新建 / 编辑 / 删除 / 复制;在线导入模型
11
11
  - **会话 (Sessions)**:浏览 JSONL session、筛选、预览、复制消息、删除
12
- - **设置 (Settings)**:语言、models.dev 元数据、默认参数、重载、校验、备份、OpenCode 导入
12
+ - **设置 (Settings)**:语言、models.dev 元数据、默认参数、重载、校验、备份、OpenCode 导入、自动检查更新、手动检查更新
13
13
  - 完整库保存在 `~/.pi-switch/providers.json`,只有已启用项写入 Pi 的 `models.json`
14
14
 
15
15
  ## 要求
16
16
 
17
17
  - Node.js `>= 20`
18
- - 本地构建原生模块需要 Rust 工具链与 `@napi-rs/cli`
19
- - 预构建目标:macOS (x64/arm64)、Linux (gnu/musl x64)、Windows (msvc x64)
18
+ - 预构建原生模块当前仅覆盖 Windows (msvc x64)——直接 `npm install -g` 即装即用
19
+ - 本地构建原生模块(仅开发者)需要 Rust 工具链与 `@napi-rs/cli`
20
20
 
21
- ## 安装与运行
21
+ ## 快速开始
22
22
 
23
23
  ```bash
24
- npm install
25
- npm run build:native:debug
26
- node ./bin/pi-switch.js
24
+ # 全局安装
25
+ npm install -g @oldsuns/pi-switch
26
+
27
+ # 打开 TUI
28
+ pi-switch
27
29
  ```
28
30
 
31
+ 首次运行会自动把现有的 `~/.pi/agent/models.json` 全量导入本地库,**不修改** Pi 配置;随后即可在 Profiles 中勾选要加入 Pi 的 provider / model。
32
+
29
33
  CLI:
30
34
 
31
35
  ```bash
@@ -36,6 +40,18 @@ pi-switch --version # / -v
36
40
  pi-switch --help # / -h / help
37
41
  ```
38
42
 
43
+ Windows 上无需 Rust:预构建原生模块随 npm 包分发,`pi-switch` 开箱即用。本地开发见下文「开发者」。
44
+
45
+ ## 开发者
46
+
47
+ 从源码构建:
48
+
49
+ ```bash
50
+ npm install
51
+ npm run build:native:debug
52
+ node ./bin/pi-switch.js
53
+ ```
54
+
39
55
  ## 界面与快捷键
40
56
 
41
57
  全局导航:`j/k` 或方向键移动;菜单中 `Enter` / `l` 进入内容,`h` / `Esc` / `Tab` 回菜单;`?` 帮助;`q` 退出(多数界面 `Ctrl+C` 也退出,会话预览除外)。
@@ -87,6 +103,8 @@ Session 根目录优先级:`PI_CODING_AGENT_SESSION_DIR` → `PI_CODING_AGENT_
87
103
  |----|------|
88
104
  | 语言 | English / 中文(`en` / `zh-CN`) |
89
105
  | 从 models.dev 获取模型信息 | 开关实时元数据(默认开) |
106
+ | 自动检查更新 | 启动时后台自动检查 npm `@oldsuns/pi-switch` 新版本(开关,默认开) |
107
+ | 检查更新(手动) | 立即检查新版本(绕过 24h 缓存) |
90
108
  | 默认模型参数 | 仅关闭实时元数据时显示,用于导入缺省 |
91
109
  | 重载配置 | 从磁盘重读 |
92
110
  | 验证配置 | doctor |
@@ -131,6 +149,7 @@ Session 根目录优先级:`PI_CODING_AGENT_SESSION_DIR` → `PI_CODING_AGENT_
131
149
  | `~/.config/opencode/opencode.json` | OpenCode 只读导入源 |
132
150
  | `~/.pi-switch/backups/` | version 2 备份(providers + models + settings),最多 10 份 |
133
151
  | `~/.pi-switch/write.lock` | 写入互斥锁 |
152
+ | `~/.pi-switch/update.json` | npm 新版本检查缓存(`lastCheck` + `latest` + `dismissed`,每 24h 最多联网一次) |
134
153
 
135
154
  `settings.json` 中与 pi-switch 相关的字段:
136
155
 
@@ -139,6 +158,7 @@ Session 根目录优先级:`PI_CODING_AGENT_SESSION_DIR` → `PI_CODING_AGENT_
139
158
  | `defaultProvider` + `defaultModel` | 默认模型(成对存在或同时缺省) |
140
159
  | `piSwitch.language` | `en` \| `zh-CN` |
141
160
  | `piSwitch.fetchModelMetadata` | 是否拉 models.dev(默认 `true`) |
161
+ | `piSwitch.checkForUpdates` | 是否启动时检查 npm 新版本(默认 `true`) |
142
162
  | `piSwitch.modelDefaults` | 关闭实时元数据时的导入缺省(context / maxTokens / cost) |
143
163
 
144
164
  ## 数据安全
@@ -151,6 +171,22 @@ Session 根目录优先级:`PI_CODING_AGENT_SESSION_DIR` → `PI_CODING_AGENT_
151
171
  - Session 删除只作用于选中的 JSONL,并校验路径必须位于 session 根目录内;优先调用系统 `trash`,失败后再永久删除。
152
172
  - 正常退出、错误和 panic 都会恢复 raw mode、alternate screen 与光标。
153
173
 
174
+ ## 自动更新检查与安装
175
+
176
+ 启动时若 Settings 中「自动检查更新」开启(默认开),pi-switch 会在后台线程静默访问 npm registry 查询 `@oldsuns/pi-switch` 的 `latest` 版本,与当前版本对比:
177
+
178
+ - 有新版本:弹出确认对话框(显示 `当前 → 最新`),用户可选择立即安装或跳过。跳过后同一版本不再弹窗,但主页仍显示横幅。手动检查(Settings 中「检查更新」)始终弹窗。
179
+ - 无新版本、离线或请求失败:静默无提示,不打扰用户。
180
+
181
+ 安装流程:
182
+
183
+ 1. 用户在确认对话框按 `Enter/y` 确认 → 后台执行 `npm install -g @oldsuns/pi-switch`,显示加载动画。
184
+ 2. 安装成功 → 通知「更新已安装,请重启 pi-switch 生效」。
185
+ 3. 安装失败 → 弹出错误通知(如权限不足、网络问题)。
186
+ 4. 用户按 `Esc/n` 跳过 → 记录已跳过的版本到缓存,同一版本不再自动弹窗;主页横幅仍提示有新版本。
187
+
188
+ 检查结果缓存在 `~/.pi-switch/update.json`,自动检查每 24h 最多联网一次。后台线程独立于目录导入任务,不阻塞 UI。Settings 中可随时关闭「自动检查更新」。
189
+
154
190
  ## 验证
155
191
 
156
192
  ```bash
@@ -164,3 +200,7 @@ npm run pack:check
164
200
  ## 许可
165
201
 
166
202
  MIT
203
+
204
+ ## 致谢
205
+
206
+ 感谢 [LINUX DO](https://linux.do) 社区的讨论与反馈。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oldsuns/pi-switch",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "A focused terminal UI for Pi provider and model configuration",
5
5
  "type": "module",
6
6
  "bin": {
@@ -38,10 +38,17 @@
38
38
  "provider",
39
39
  "models"
40
40
  ],
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "https://github.com/OldSuns/pi-switch.git"
44
+ },
41
45
  "license": "MIT",
42
46
  "engines": {
43
47
  "node": ">=20"
44
48
  },
49
+ "publishConfig": {
50
+ "access": "public"
51
+ },
45
52
  "devDependencies": {
46
53
  "@napi-rs/cli": "^3.7.1"
47
54
  }
Binary file