@rainmanhhh/pi-web 0.15.24 → 0.15.26
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 +8 -17
- package/README.zh-CN.md +8 -17
- package/dist/server.mjs +130 -130
- package/dist/static/assets/CodeMirrorEditor-DIiHnHN2.js +39 -0
- package/dist/static/assets/{abnfDiagram-VCTEODGH-UwdvHVXf.js → abnfDiagram-VCTEODGH-DLG-FvFC.js} +1 -1
- package/dist/static/assets/architecture-7GRP2DOG-V-hLMD7V.js +1 -0
- package/dist/static/assets/{architectureDiagram-5GKGNRK7-CX6L-ldY.js → architectureDiagram-5GKGNRK7-BHXs2K7Q.js} +1 -1
- package/dist/static/assets/{blockDiagram-I7D4REHJ-Ch3JYe8H.js → blockDiagram-I7D4REHJ-DG50vMTb.js} +1 -1
- package/dist/static/assets/{c4Diagram-7LVT6UL2-DYB17uzZ.js → c4Diagram-7LVT6UL2-CpYmjg4f.js} +1 -1
- package/dist/static/assets/channel-BGfmKd3N.js +1 -0
- package/dist/static/assets/{chunk-4HAMMTFA-DNEWn6n4.js → chunk-4HAMMTFA-CxuZzCf5.js} +1 -1
- package/dist/static/assets/{chunk-75Z2AOVW-Hnetna_D.js → chunk-75Z2AOVW-BHdGga9h.js} +1 -1
- package/dist/static/assets/{chunk-DU6HZSFF-DOWQ-_3y.js → chunk-DU6HZSFF-C9NyR4eD.js} +3 -3
- package/dist/static/assets/{chunk-F27PBJKO-CqVBJ9H2.js → chunk-F27PBJKO-DpyXeodJ.js} +1 -1
- package/dist/static/assets/{chunk-GMAD6QVW-Ixn9yech.js → chunk-GMAD6QVW-78XWZVBD.js} +1 -1
- package/dist/static/assets/{chunk-GVQU2GXP-Yl40EqQl.js → chunk-GVQU2GXP-BS_zah4P.js} +1 -1
- package/dist/static/assets/{chunk-IMKFNOWR-BaItQwNa.js → chunk-IMKFNOWR-DZmAlHvE.js} +1 -1
- package/dist/static/assets/{chunk-L3NEJ4N5-Dywr0Cdu.js → chunk-L3NEJ4N5-9M0F_QJ3.js} +1 -1
- package/dist/static/assets/{chunk-OSK3NFVY-CCJYET20.js → chunk-OSK3NFVY-DEKeRwkT.js} +1 -1
- package/dist/static/assets/{chunk-P2QGCYS3-C32Ly-X6.js → chunk-P2QGCYS3-DVCHs6L2.js} +1 -1
- package/dist/static/assets/{chunk-POPQ4Y6H-Dqy60leL.js → chunk-POPQ4Y6H-Br1gO1bK.js} +1 -1
- package/dist/static/assets/{chunk-PWAF6VOD-BJSwn3ig.js → chunk-PWAF6VOD-s9nE5cJ5.js} +1 -1
- package/dist/static/assets/{chunk-SHT3W25Y-BtUDInpv.js → chunk-SHT3W25Y-vN-1POTV.js} +1 -1
- package/dist/static/assets/{chunk-SVP7TREG-B78oLN_Q.js → chunk-SVP7TREG-C5iCGGrR.js} +1 -1
- package/dist/static/assets/{chunk-TICWLB2K-DHN8xs74.js → chunk-TICWLB2K-iKss14Kx.js} +1 -1
- package/dist/static/assets/classDiagram-ZZMXUADV-B-Q38QiL.js +1 -0
- package/dist/static/assets/classDiagram-v2-VYDZK3BY-B-Q38QiL.js +1 -0
- package/dist/static/assets/{cynefin-OW5HDTMX-CkI7CnlQ.js → cynefin-OW5HDTMX-wUBY8mye.js} +1 -1
- package/dist/static/assets/{cynefinDiagram-5FMLGOSQ-CW0k4UqV.js → cynefinDiagram-5FMLGOSQ-BBfqNYxW.js} +1 -1
- package/dist/static/assets/{dagre-GXQ25YYZ-wxBOguO_.js → dagre-GXQ25YYZ-u2Fx5giL.js} +1 -1
- package/dist/static/assets/{diagram-S7CK7UJ4-DGObBccp.js → diagram-S7CK7UJ4-ewrQdUCW.js} +1 -1
- package/dist/static/assets/{diagram-UQ7AKVKN-tbKb--1k.js → diagram-UQ7AKVKN-BRyo1B2Q.js} +1 -1
- package/dist/static/assets/{diagram-VSXAHHWV-XhAHjaT2.js → diagram-VSXAHHWV-Dz7e2BMM.js} +1 -1
- package/dist/static/assets/{diagram-VX7I27RA-D4TgpaZ9.js → diagram-VX7I27RA-BXlAuUBB.js} +1 -1
- package/dist/static/assets/{diagram-Z3DM3KII-mVAOnzUS.js → diagram-Z3DM3KII-K5C_v28j.js} +1 -1
- package/dist/static/assets/{ebnfDiagram-PWID7BFC-DjunDWW1.js → ebnfDiagram-PWID7BFC-ClXS6KpV.js} +1 -1
- package/dist/static/assets/{erDiagram-RLTQ6QDP-D99C8ZW3.js → erDiagram-RLTQ6QDP-C0ClhOqP.js} +1 -1
- package/dist/static/assets/eventmodeling-NTZA5JFV-Y_lBwv0_.js +1 -0
- package/dist/static/assets/flowDiagram-HODETNUW-B8dGoyK0.js +1 -0
- package/dist/static/assets/{ganttDiagram-EL5Y4UJY-CKAQpH9x.js → ganttDiagram-EL5Y4UJY-BdDphtij.js} +1 -1
- package/dist/static/assets/{gitGraph-4MIJSDKK-Cu9TC3Iu.js → gitGraph-4MIJSDKK-Br2lT4sS.js} +1 -1
- package/dist/static/assets/{gitGraphDiagram-WWUBYQGX-CqfHIbFa.js → gitGraphDiagram-WWUBYQGX-D1yoSahN.js} +1 -1
- package/dist/static/assets/{highlighted-body-KPVGNVTW-Fja8F_Os.js → highlighted-body-KPVGNVTW-McvGMRtr.js} +1 -1
- package/dist/static/assets/index-BbcgQFTP.js +509 -0
- package/dist/static/assets/{info-A6RAGUB7-COzlP4yP.js → info-A6RAGUB7-Dw-ff4ue.js} +1 -1
- package/dist/static/assets/{infoDiagram-27XIBGKW-33yIRJWR.js → infoDiagram-27XIBGKW-BjW3vxPT.js} +1 -1
- package/dist/static/assets/{ishikawaDiagram-5VMMS53U-DR6BkjxP.js → ishikawaDiagram-5VMMS53U-F6-IKFvV.js} +1 -1
- package/dist/static/assets/{journeyDiagram-3NMN7TZE-BmXH9Pn5.js → journeyDiagram-3NMN7TZE-9AAgKEGW.js} +1 -1
- package/dist/static/assets/{kanban-definition-UXKFOSKX-AiPpHBBF.js → kanban-definition-UXKFOSKX-DcYAikOJ.js} +1 -1
- package/dist/static/assets/{line-DFmi1thr.js → line-DAWpylln.js} +1 -1
- package/dist/static/assets/mermaid-HWGCJPDP-BXpzT6aa.js +1 -0
- package/dist/static/assets/{mermaid-parser.core-DSKhpDc8.js → mermaid-parser.core-Cr8Iaj6Q.js} +3 -3
- package/dist/static/assets/{mermaid.core-Bqi0eIx-.js → mermaid.core-DADvtc6n.js} +4 -4
- package/dist/static/assets/{mindmap-definition-YA3MSWOX-BvI_gBJZ.js → mindmap-definition-YA3MSWOX-DUAml3Om.js} +1 -1
- package/dist/static/assets/{packet-AYTQ26CC-DWTTQZ0Y.js → packet-AYTQ26CC-BIVAICp6.js} +1 -1
- package/dist/static/assets/{pegDiagram-XKGWAZYB-CDeyaW60.js → pegDiagram-XKGWAZYB-ChBMBDW1.js} +1 -1
- package/dist/static/assets/{pie-WAS4IAKB-BmMq_rXY.js → pie-WAS4IAKB-CGXvuPuR.js} +1 -1
- package/dist/static/assets/{pieDiagram-E7YTZNPT-Cxjc8odb.js → pieDiagram-E7YTZNPT-BJJF9uQl.js} +1 -1
- package/dist/static/assets/{quadrantDiagram-AXDQQJYC-CGLh3Zx7.js → quadrantDiagram-AXDQQJYC-Cu8bhfPR.js} +1 -1
- package/dist/static/assets/{radar-RG4KPBEZ-D2UBqT07.js → radar-RG4KPBEZ-DWPq4hx7.js} +1 -1
- package/dist/static/assets/{railroad-74A4TZTK-Dvutk0qU.js → railroad-74A4TZTK-BVEvewKD.js} +1 -1
- package/dist/static/assets/railroad-abnf-HS5TGJTU-Dbg1QZp2.js +1 -0
- package/dist/static/assets/railroad-ebnf-LZEXJU2U-AHWHMsNp.js +1 -0
- package/dist/static/assets/railroad-peg-WCYAUIDC-D-ymX7et.js +1 -0
- package/dist/static/assets/{railroadDiagram-O6MQD6OU-8ARj9u4y.js → railroadDiagram-O6MQD6OU-B07t3cRv.js} +1 -1
- package/dist/static/assets/{requirementDiagram-BXWQKSXE-D1Hurj_t.js → requirementDiagram-BXWQKSXE-BaODdgPK.js} +1 -1
- package/dist/static/assets/{sankeyDiagram-P5KCCOFB-CohpFThf.js → sankeyDiagram-P5KCCOFB-DH8OuyTA.js} +1 -1
- package/dist/static/assets/{sequenceDiagram-WJ2MYXX4-BW1kmrfN.js → sequenceDiagram-WJ2MYXX4-7p-N2D3K.js} +1 -1
- package/dist/static/assets/{stateDiagram-D77RDMKH-CzH3BX9p.js → stateDiagram-D77RDMKH-BKd2u1p9.js} +1 -1
- package/dist/static/assets/stateDiagram-v2-MP3YSRHH-Cpa6Xfgi.js +1 -0
- package/dist/static/assets/{swimlanes-42K2YHIH-xuA8d44M.js → swimlanes-42K2YHIH-CBSChLpa.js} +1 -1
- package/dist/static/assets/swimlanesDiagram-VR7AAH4N-CZUKsELT.js +8 -0
- package/dist/static/assets/{timeline-definition-24CTP7MA-dXiHnZv0.js → timeline-definition-24CTP7MA-BCtBUg1c.js} +1 -1
- package/dist/static/assets/{treeView-Q6P3EWNA-B42vrHJz.js → treeView-Q6P3EWNA-ug13Qt_I.js} +1 -1
- package/dist/static/assets/{treemap-WGGIJYW6-C46-ebg2.js → treemap-WGGIJYW6-JqS-DR-B.js} +1 -1
- package/dist/static/assets/{vennDiagram-4TSXK5OY-BeF9n8on.js → vennDiagram-4TSXK5OY-EiEPohHX.js} +1 -1
- package/dist/static/assets/{wardley-WFR3VGLG-uDdA_PxQ.js → wardley-WFR3VGLG-BBmilDRw.js} +1 -1
- package/dist/static/assets/{wardleyDiagram-VM6X3IG4-WyQNY9gl.js → wardleyDiagram-VM6X3IG4-CQk7nQMV.js} +1 -1
- package/dist/static/assets/{xychartDiagram-S5SC5T6Z-DWWdkumu.js → xychartDiagram-S5SC5T6Z-UzNgGjo0.js} +1 -1
- package/dist/static/index.html +7 -7
- package/dist/static/recommended-plugins.json +40 -8
- package/package.json +5 -5
- package/public/recommended-plugins.json +40 -8
- package/dist/static/assets/CodeMirrorEditor-CTDVDayM.js +0 -39
- package/dist/static/assets/architecture-7GRP2DOG-Bq5hsoWf.js +0 -1
- package/dist/static/assets/channel-C2C-dG17.js +0 -1
- package/dist/static/assets/classDiagram-ZZMXUADV-ZU1HrE1k.js +0 -1
- package/dist/static/assets/classDiagram-v2-VYDZK3BY-ZU1HrE1k.js +0 -1
- package/dist/static/assets/eventmodeling-NTZA5JFV-4GaXk7nv.js +0 -1
- package/dist/static/assets/flowDiagram-HODETNUW-DVbJXemA.js +0 -1
- package/dist/static/assets/index-BVtzcVfG.js +0 -508
- package/dist/static/assets/mermaid-HWGCJPDP-Cq1zCBTs.js +0 -1
- package/dist/static/assets/railroad-abnf-HS5TGJTU-DoRoWoaF.js +0 -1
- package/dist/static/assets/railroad-ebnf-LZEXJU2U-BkrdA5Ys.js +0 -1
- package/dist/static/assets/railroad-peg-WCYAUIDC-CMCIfMt8.js +0 -1
- package/dist/static/assets/stateDiagram-v2-MP3YSRHH-DibSFBCa.js +0 -1
- package/dist/static/assets/swimlanesDiagram-VR7AAH4N-B3pmfIz0.js +0 -8
package/README.md
CHANGED
|
@@ -48,28 +48,18 @@ Set `PI_WEB_PASSWORD` to protect the web interface and every API endpoint with H
|
|
|
48
48
|
Pi Web can invoke a high-privilege agent. Basic Auth does not encrypt the password in transit, so do not expose plain HTTP to the internet. Use HTTPS through a trusted reverse proxy or a trusted VPN for remote access.
|
|
49
49
|
API requests accept loopback names, IP literals, and exact comma-separated names in `PI_WEB_ALLOWED_HOSTS`. Configure that variable when a trusted reverse proxy uses a different external hostname. `PI_WEB_HOSTNAME` is a legacy alias for the same allow-list — it does **not** control the bind address (use `HOST` for that).
|
|
50
50
|
|
|
51
|
-
##
|
|
51
|
+
## Runtime: Node.js or Bun
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
The published bundle declares `#!/usr/bin/env node`, and every launcher honours that shebang — the Windows npm shim calls Node, and Bun spawns a Node process too. So **Node is the default runtime everywhere**.
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
Bun is supported as well and starts faster (its file I/O helps most with projects that have many session files). Bun respects shebangs, so using it is explicit — `--bun` goes **before** the package name:
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
NO_PROXY=localhost,127.0.0.1 \
|
|
61
|
-
npx @rainmanhhh/pi-web@latest
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
On Windows PowerShell:
|
|
65
|
-
|
|
66
|
-
```powershell
|
|
67
|
-
$env:HTTP_PROXY = "http://127.0.0.1:7890"
|
|
68
|
-
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
|
|
69
|
-
$env:NO_PROXY = "localhost,127.0.0.1"
|
|
70
|
-
npx @rainmanhhh/pi-web@latest
|
|
58
|
+
bunx --bun @rainmanhhh/pi-web@latest # run without installing
|
|
59
|
+
bunx --bun pi-web # when installed globally
|
|
71
60
|
```
|
|
72
61
|
|
|
62
|
+
Plain `bunx pi-web` still runs on Node. Node remains the tested configuration; if something misbehaves under Bun, retry on Node first to tell runtime differences apart from real bugs.
|
|
73
63
|
## Features
|
|
74
64
|
|
|
75
65
|
- **Pick work back up**: browse previous pi conversations by project without digging through terminal history or session paths.
|
|
@@ -92,6 +82,7 @@ npx @rainmanhhh/pi-web@latest
|
|
|
92
82
|
- **Git worktrees**: see [Worktrees in Pi Web](./docs/worktrees.md) for when the switcher appears, how new worktrees are created, and what removal does.
|
|
93
83
|
- **Forks vs in-session branches**: Fork creates a new `.jsonl` file. "Edit from here" creates another branch inside the same session file.
|
|
94
84
|
- **Internationalization**: see [Internationalization](./docs/i18n.md) for using translations and adding languages or UI text.
|
|
85
|
+
- **Proxy support**: Pi Web does **not** read `HTTP_PROXY`, `HTTPS_PROXY`, or `NO_PROXY`. To reach upstream model APIs through a proxy, use a system-level tool (TUN / transparent proxy) instead — it needs no application support and covers every request.
|
|
95
86
|
|
|
96
87
|
## Development
|
|
97
88
|
|
|
@@ -144,7 +135,7 @@ server/
|
|
|
144
135
|
routes/ # API handlers: agent, auth, cwd, files, git, models,
|
|
145
136
|
# sessions, skills, worktrees, preferences, project-trust, …
|
|
146
137
|
static.ts # serves dist/static in production (single-process mode)
|
|
147
|
-
mount.ts #
|
|
138
|
+
mount.ts # route-module adapter for Hono (one route.ts per path)
|
|
148
139
|
scripts/ # e2e-stop, cdp-capture helpers
|
|
149
140
|
tests/e2e/ # Playwright specs and fixtures
|
|
150
141
|
vite.config.ts # dev server (:30001), /api proxy → :30002, build outDir
|
package/README.zh-CN.md
CHANGED
|
@@ -46,28 +46,18 @@ PI_WEB_PASSWORD='足够长的随机密码' pi-web # 启用 Basic Auth(用户
|
|
|
46
46
|
Pi Web 可以调用高权限智能体。Basic Auth 不会加密传输中的密码,因此不要把明文 HTTP 暴露到互联网。远程访问时应使用可信反向代理提供 HTTPS,或通过可信 VPN 访问。
|
|
47
47
|
API 请求仅接受 loopback 名称、IP 字面量,以及 `PI_WEB_ALLOWED_HOSTS` 中以逗号分隔的精确主机名。可信反向代理使用不同的外部主机名时,请配置该变量。`PI_WEB_HOSTNAME` 是该白名单的旧别名,**不**控制监听地址(绑定地址请用 `HOST`)。
|
|
48
48
|
|
|
49
|
-
##
|
|
49
|
+
## 运行时:Node.js 还是 Bun
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
发布产物里声明的是 `#!/usr/bin/env node`,各启动器都会遵循这个 shebang —— Windows 的 npm shim 调用 Node,Bun 也会启动 Node 进程来执行。因此**默认运行时始终是 Node**。
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
Pi Web 同样支持 Bun,且启动更快(会话文件很多的项目收益最明显)。Bun 默认尊重 shebang,所以要显式指定,`--bun` 必须写在包名**之前**:
|
|
54
54
|
|
|
55
55
|
```bash
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
NO_PROXY=localhost,127.0.0.1 \
|
|
59
|
-
npx @rainmanhhh/pi-web@latest
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Windows PowerShell:
|
|
63
|
-
|
|
64
|
-
```powershell
|
|
65
|
-
$env:HTTP_PROXY = "http://127.0.0.1:7890"
|
|
66
|
-
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
|
|
67
|
-
$env:NO_PROXY = "localhost,127.0.0.1"
|
|
68
|
-
npx @rainmanhhh/pi-web@latest
|
|
56
|
+
bunx --bun @rainmanhhh/pi-web@latest # 无需安装,直接运行
|
|
57
|
+
bunx --bun pi-web # 已全局安装时
|
|
69
58
|
```
|
|
70
59
|
|
|
60
|
+
直接 `bunx pi-web` 仍然跑在 Node 上。Node 是经过充分测试的配置;如果在 Bun 下出现异常,请先换回 Node 复现,以区分运行时差异与程序缺陷。
|
|
71
61
|
## 功能介绍
|
|
72
62
|
|
|
73
63
|
- **把历史工作接回来**:打开网页就能按项目找到以前的 pi 对话,不必在终端里翻文件或记住会话路径。
|
|
@@ -90,6 +80,7 @@ npx @rainmanhhh/pi-web@latest
|
|
|
90
80
|
- **Git worktree**:什么时候显示切换器、新建目录在哪里、删除会影响什么,见 [Pi Web 里的 Worktree](./docs/worktrees.zh-CN.md)。
|
|
91
81
|
- **Fork 与会话内分支不同**:Fork 会创建新的 `.jsonl` 文件;“Edit from here” 是同一会话文件里的分支。
|
|
92
82
|
- **国际化**:翻译使用与新增语言/UI 文案的方法见 [Internationalization](./docs/i18n.md)。
|
|
83
|
+
- **代理支持**:Pi Web **不会**读取 `HTTP_PROXY`、`HTTPS_PROXY` 和 `NO_PROXY`。需要让服务端请求走代理时,请改用系统层方案(TUN / 透明代理)——无需应用配合,且覆盖所有请求。
|
|
93
84
|
|
|
94
85
|
## 开发
|
|
95
86
|
|
|
@@ -142,7 +133,7 @@ server/
|
|
|
142
133
|
routes/ # API 处理器:agent、auth、cwd、files、git、models、
|
|
143
134
|
# sessions、skills、worktrees、preferences、project-trust 等
|
|
144
135
|
static.ts # 生产环境提供 dist/static(单进程模式)
|
|
145
|
-
mount.ts #
|
|
136
|
+
mount.ts # 路由模块(每个路径一个 route.ts)到 Hono 的适配
|
|
146
137
|
scripts/ # e2e-stop、cdp-capture 辅助脚本
|
|
147
138
|
tests/e2e/ # Playwright 测试与 fixtures
|
|
148
139
|
vite.config.ts # dev server(:30001)、/api 代理 → :30002、build outDir
|