proofbridge-cli 1.0.2 → 1.0.4

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
@@ -65,7 +65,33 @@ pb config ui
65
65
 
66
66
  配置保存在 `.pb/pb.config`。模型、思考强度、Base URL 和 API Key 由原生客户端或 CC Switch 管理;切换后需结束当前 PB 工作区,再重新启动以读取新配置。退出工作区使用 `pb kill`;下次运行 `pb` 时会尝试恢复已有会话。
67
67
 
68
- 配置页的 **用量** 入口自动发现本机可读目录中的 Codex、Claude Code 和 PB/CCB 日志,包含独立客户端的记录,并按会话启动目录归类。可按时间、项目和模型筛选,查看明细并导出 CSV;费用按随程序提供的 API 价格估算,并非实际账单。其他平台没有可解析日志时不会显示虚构用量。
68
+ 配置页的 **用量** 入口自动发现本机可读目录中的 Codex、Claude Code 和 PB/CCB 日志,包含独立客户端的记录,并按会话启动目录归类。可按时间、项目和模型筛选,查看输入、输出、缓存读取和缓存写入的精确 Token 数,以及各目录按天或小时的用量趋势,并导出 CSV;费用按随程序提供的 API 价格估算,并非实际账单。其他平台没有可解析日志时不会显示虚构用量。
69
+
70
+ ## 云服务器与多个目录
71
+
72
+ 在想配置的项目目录执行同一个命令:
73
+
74
+ ```bash
75
+ cd /path/to/project-A
76
+ pb config ui
77
+ ```
78
+
79
+ 程序自动分配空闲端口,打印带访问令牌的完整链接。A、B 目录分别运行时,端口、默认令牌和项目配置互相独立;关闭 A 的配置页服务不影响 B。用量页仍按前述规则统计本机日志。
80
+
81
+ 本机桌面使用本地链接;SSH 或交互式无桌面 Linux 自动生成远程链接。Linux 可自动管理已启用的 UFW/firewalld:优先只允许当前 SSH 来源 IP,管理员权限不足时由系统 sudo 提示授权。终端显示实际放行结果;正常退出会清理本次新增规则,已有规则不动。
82
+
83
+ **云安全组、NAT 映射和其他防火墙仍可能阻挡访问**,没有云账号权限时无法自动修改。程序会明确区分主机规则是否已放行与尚未验证的公网连通性。需要时可用 `--public-host 服务器公网IPv4` 指定地址,用 `--port 43313` 指定端口;默认忽略旧配置中固定的 `config_ui.port`,避免目录间冲突。远程地址不明确时可能通过 HTTPS 查询本机出口 IPv4,不发送项目内容或令牌。
84
+
85
+ 链接相当于当前配置页的访问凭据,请勿分享;HTTP 不加密。也可使用回环监听和 SSH 隧道:
86
+
87
+ ```bash
88
+ # 服务器上
89
+ pb config ui --host 127.0.0.1 --port 43313 --no-open
90
+ # 自己电脑上
91
+ ssh -N -L 43313:127.0.0.1:43313 用户名@服务器IP
92
+ ```
93
+
94
+ 保持连接后,在本机浏览器打开服务器输出的完整链接。正常退出请用 Ctrl+C;SIGKILL/断电可能留下已添加的主机规则,终端会打印对应的精确删除命令。目前支持 IPv4 直连,不支持域名或 HTTPS 反向代理。
69
95
 
70
96
  ## 常用命令
71
97
 
package/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.0.4
@@ -30,11 +30,26 @@ async function run(command) {
30
30
  stdio: "inherit",
31
31
  env: npmManagedEnvironment(),
32
32
  });
33
+ const forwards = new Map();
34
+ for (const signal of ["SIGINT", "SIGTERM", "SIGHUP"]) {
35
+ const forward = () => {
36
+ // Terminal Ctrl+C already reaches this non-detached child's process
37
+ // group. Avoid interrupting its cleanup a second time.
38
+ if (signal !== "SIGINT" || !process.stdin.isTTY) child.kill(signal);
39
+ };
40
+ forwards.set(signal, forward);
41
+ process.on(signal, forward);
42
+ }
43
+ const removeForwards = () => {
44
+ for (const [signal, forward] of forwards) process.removeListener(signal, forward);
45
+ };
33
46
  child.on("error", (error) => {
47
+ removeForwards();
34
48
  console.error(error.message || error);
35
49
  process.exit(1);
36
50
  });
37
51
  child.on("exit", (code, signal) => {
52
+ removeForwards();
38
53
  if (signal) {
39
54
  process.kill(process.pid, signal);
40
55
  return;
@@ -1,2 +1,2 @@
1
- 2466349184a9ab4fa224dbeaba652c21c080ac8415cc74473b3d80ebdc2f16a6 pb-linux-x86_64.tar.gz
2
- 358f39c6d81d54342f07d34e08358125d7c1ef7c237792586e76d3e8654bc95c pb-macos-universal.tar.gz
1
+ 368f50ca8f7f5485364e519c58647ba4daa6ea83bf65ed758e280e30046cd86c pb-linux-x86_64.tar.gz
2
+ 6108caf47450fab6c6a1bf34e68965e28e834b860f4e43c6a437c15e86e1878d pb-macos-universal.tar.gz
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "proofbridge-cli",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "ProofBridge: a multi-agent CLI workspace and cross-provider collaboration layer.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "homepage": "https://github.com/Atingaii/proofBridgeCli#readme",