dsh-workbuddy-bridge 0.2.0 → 0.3.0

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
@@ -1,3 +1,7 @@
1
+ <p align="center">
2
+ <img src="icon.svg" alt="dsh-workbuddy-bridge" width="80" height="80">
3
+ </p>
4
+
1
5
  <p align="center">
2
6
  <h1 align="center">dsh-workbuddy-bridge</h1>
3
7
  </p>
@@ -13,6 +17,10 @@
13
17
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="MIT 许可证"></a>
14
18
  </p>
15
19
 
20
+ <p>
21
+ 各版本改动 → <a href="https://github.com/zlZayn/dsh-workbuddy-bridge/releases">Releases</a>(与 npm 版本一一对应)
22
+ </p>
23
+
16
24
  <p>
17
25
  <strong><a href="README.md">简体中文</a></strong> · <a href="README_en.md">English</a>
18
26
  </p>
@@ -28,42 +36,45 @@
28
36
  各自用自己的账号与积分。模型直接出现在 DSH 的模型选择器里,不必为它单独配一个 provider。
29
37
 
30
38
  <p align="center">
31
- <img src="assets/1.png" alt="WorkBuddy 模型出现在 DSH 模型选择器中" width="300">
39
+ <img src="assets/model-picker.png" alt="WorkBuddy 模型出现在 DSH 模型选择器中" width="300">
32
40
  <br>
33
41
  <em>国内版在模型选择器中自成一组,模型名后直接跟积分倍率与促销徽章;装国际版则出现「WorkBuddy AI」组。</em>
34
42
  </p>
35
43
 
36
- ## 它能做什么
44
+ ## 能力
37
45
 
38
- - **开箱即用** —— 装完启用,模型分组自己出现,没有必填项。
39
- - **两版互不串号** —— 国内版是「WorkBuddy」分组、国际版是「WorkBuddy AI」分组;模型、账号与积分互不混用,
40
- 各自只跟随自己那版 App 的登录状态。退出其中一版,对应分组消失,另一版不受影响。
41
- - **推理档位** —— 上游声明了档位的模型直接可选;没声明的模型可以在插件页里**手动检测**
42
- (见[为什么是手动检测](#为什么是手动检测))。未检测或没有可用档位的模型继续用 WorkBuddy 的默认档位。
43
- - **模型显隐** —— 卡片的「模型」标签里勾选哪些模型出现在选择器里,按登录账号分别保存;
44
- 隐藏只影响可选择性,已在用该模型的会话照常继续。
45
- - **积分与账户** —— 插件页里看登录账号、剩余积分、各套餐余量,并可手动刷新模型列表。
46
- - **图片输入** —— 多数模型可直接粘贴或拖入图片;少数纯文字模型会明确说明不支持。
47
- - **三种界面** —— Web / Desktop / TUI 都能跑;只有 TUI 不提供手动检测。
46
+ - **开箱即用** —— 装完启用,模型分组自己出现。
47
+ - **两版隔离** —— 国内版与国际版各自分组,模型、账号、积分互不混用,只跟随各自 App 的登录状态。
48
+ - **推理档位** —— 上游声明了档位的模型直接可选;没声明的可在插件页**手动检测**。
49
+ 灯泡表示「这个模型能切档位」,不是「检测过」——已声明的模型也显示灯泡,只是不需要检测。
50
+ - **积分可见** —— 每条回复下方显示本次消耗,模型选择器旁常驻剩余积分。观测不到就不显示。
51
+ - **模型显隐** —— 卡片「模型」标签里勾选哪些模型出现在选择器里,按登录账号分别保存。
52
+ - **图片输入** —— 多数模型可直接粘贴或拖入图片;纯文字模型会明确说明。
53
+ - **三种界面** —— Web / Desktop / TUI;仅 TUI 无手动检测。
48
54
 
49
55
  <p align="center">
50
- <img src="assets/2.png" alt="插件详情页:配置表单与两张状态卡片" width="560">
56
+ <img src="assets/composer-row.png" alt="输入区那一行:剩余积分与推理档位灯泡并排" width="560">
51
57
  <br>
52
- <em>插件页里的样子:上面是配置表单,下面两张卡片各跟随自己 App 的登录状态。</em>
58
+ <em>对话窗口里每天看到的样子:左边是剩余积分,右边是推理档位灯泡——都在模型选择器旁。</em>
59
+ </p>
60
+
61
+ <p align="center">
62
+ <img src="assets/plugin-page.png" alt="插件详情页:配置表单与两张状态卡片" width="480">
63
+ <br>
64
+ <em>插件页:上面是配置表单,下面两张卡片各跟随自己 App 的登录状态。</em>
53
65
  </p>
54
66
 
55
67
  ## 安装
56
68
 
57
- 前置只有一条:已安装并登录 **WorkBuddy 桌面 App**(国际版为 WorkBuddy AI App)—— 插件复用 App 的登录状态,
58
- 账号切换自动跟随。
69
+ 前置只有一条:已安装并登录 **WorkBuddy 桌面 App**(国际版为 WorkBuddy AI App)—— 插件复用 App 的登录状态。
59
70
 
60
71
  ```sh
61
72
  dsh plugin --profile web add dsh-workbuddy-bridge
62
73
  dsh web
63
74
  ```
64
75
 
65
- Desktop 与 TUI 把 `--profile web` 换成 `desktop` / `dsh-tui` 即可(TUI 需终端插件
66
- `@deepseek-harness-tui/dsh-tui` ≥ `0.10.0-beta.5`,且用 pnpm 11 安装,详见其文档)。
76
+ Desktop 与 TUI 把 `--profile web` 换成 `desktop` / `dsh-tui`(TUI 需终端插件
77
+ `@deepseek-harness-tui/dsh-tui` ≥ `0.10.0-beta.5`,详见其文档)。
67
78
 
68
79
  也可以从源码安装:
69
80
 
@@ -76,54 +87,41 @@ dsh plugin --profile web add "$PWD"
76
87
 
77
88
  ## 插件页
78
89
 
79
- 侧边栏 **插件(Plugins)** → 已安装 → 点 **DSH WorkBuddy Bridge** 进详情页。配置区就在描述下面,直接可改,保存即生效:
80
-
81
- - **登录文件路径**(国内版 / 国际版)—— 留空即用 App 自己的位置,一般不用填。
82
- - **允许推理档位检测**、**使用上游声明的最大上下文窗口** —— 两个开关,默认够用。
90
+ 侧边栏 **插件(Plugins)** → 已安装 → 点 **DSH WorkBuddy Bridge**。配置区在描述下面,保存即生效:
83
91
 
84
- 配置改动立即生效,不需要重启;卡片上的实时状态(账号、积分、模型列表)则来自下面的两张卡。
92
+ - **登录文件路径**(国内版 / 国际版)—— 留空即用 App 自己的位置。
93
+ - **允许推理档位检测**、**使用上游声明的最大上下文窗口** —— 两个开关。
85
94
 
86
95
  <p align="center">
87
- <img src="assets/6.png" alt="模型标签:显隐、窗口、倍率" width="300">
88
- <img src="assets/7.png" alt="检测标签:推理档位检测" width="300">
96
+ <img src="assets/models-tab.png" alt="模型标签:显隐、窗口、倍率" width="480">
89
97
  <br>
90
- <em>展开「WorkBuddy(国内版)」卡片:左「模型」标签管理显隐、看窗口与倍率;右「检测」标签一模型一行,点「开始检测」确认它接受哪些推理档位,结果也回写到模型选择器里。</em>
98
+ <em>「模型」标签:勾选哪些模型出现在选择器里,同时看窗口与倍率。</em>
91
99
  </p>
92
100
 
93
101
  <p align="center">
94
- <img src="assets/3.png" alt="积分标签:合计与套餐余量" width="640">
102
+ <img src="assets/detection-tab.png" alt="检测标签:每个推理模型一行" width="300">
103
+ <img src="assets/credits-tab.png" alt="积分标签:合计与套餐余量" width="300">
95
104
  <br>
96
- <em>「积分」标签:合计一行,下面是各套餐余量条。</em>
105
+ <em>左「检测」:每个推理模型一行,点按钮确认它接受哪些推理档位;右「积分」:合计一行,下面是各套餐余量条。</em>
97
106
  </p>
98
107
 
99
108
  ## 为什么是手动检测
100
109
 
101
- WorkBuddy 的推理档位信息分散在上游接口与客户端私有 UI 逻辑里,且模型目录变化很快;而实测有些模型
102
- **接受** `reasoning_effort` 却忽略未知值、回退到默认行为 —— 一次请求成功并不能证明某个档位真的可用。
103
- 所以插件不猜:先由你在配置里授权,再按需对单个模型发少量真实请求确认。检测可能消耗少量积分;
104
- 结果只表示**上游当前接受该档位**,不承诺它改变推理效果、速度或积分消耗。
110
+ 上游不保证档位信息可靠——实测有的模型**接受** `reasoning_effort` 却忽略未知值。
111
+ 所以插件不猜:按需对单个模型发少量真实请求确认;结果只表示**上游当前接受该档位**,
112
+ 不承诺它改变推理行为。已声明档位的模型跳过这一步,直接用声明值。
113
+ 机制与取舍见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。
105
114
 
106
- ## 命令行
107
-
108
- 不改界面也能查状态:
109
-
110
- ```sh
111
- dsh plugin --profile web exec dsh-workbuddy-bridge status # 登录状态与剩余积分
112
- dsh plugin --profile web exec dsh-workbuddy-bridge status --json # 机器可读
113
- dsh plugin --profile web exec dsh-workbuddy-bridge doctor # 诊断 App 发现与凭据
114
- dsh plugin --profile web exec dsh-workbuddy-bridge logout # 清理插件自留的凭据副本
115
- ```
116
-
117
- 默认操作国内版,加 `--provider workbuddy-ai` 操作国际版。`logout` 不动桌面 App 自己的登录。
115
+ <p align="center">
116
+ <img src="assets/reasoning-levels-declared.png" alt="推理档位控件:上游已声明档位、检测按钮禁用" width="300">
117
+ <br>
118
+ <em>已声明档位的模型:灯泡点亮、档位直接可选,检测按钮禁用。</em>
119
+ </p>
118
120
 
119
- ## 兼容与已知限制
121
+ ## 兼容与限制
120
122
 
121
- - 只支持 **DSH `0.1.7` 线**;下限以 [package.json](package.json) 的 `engines.dsh` 为准,不做跨代兼容。
122
- - **凭据发现按平台**:macOS 直接支持;Windows 依次探测 Local 与 Roaming AppData(实测可用);
123
- WSL 优先读挂载的 Windows 用户目录。找不到时用 `WORKBUDDY_AUTH_FILE`(国际版 `WORKBUDDY_AI_AUTH_FILE`)指定。
124
- - **国际版目录来自 App 界面接口**(私有实现,上游改动可能失效);国内版走官方 CLI 同款接口。
125
- - 无凭据时该版模型分组不再显示 —— 插件不会展示一份选了必然报错的兜底列表。
126
- - 企业账号积分目前仅覆盖国内版。
123
+ 无凭据的分组不显示。宿主版本下限、平台支持、目录来源与已知缺口
124
+ → [docs/COMPATIBILITY.md](docs/COMPATIBILITY.md)。
127
125
 
128
126
  设计取舍 → [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md);发版流程 → [docs/PUBLISHING.md](docs/PUBLISHING.md);
129
127
  维护者文档地图 → [AGENTS.md](AGENTS.md)。
@@ -131,8 +129,7 @@ dsh plugin --profile web exec dsh-workbuddy-bridge logout # 清理插
131
129
  ## 免责声明
132
130
 
133
131
  - 本项目**仅供个人学习和研究使用**,仅驱动使用者自己的 WorkBuddy 账号在本机调用,请勿用于商业用途或超出个人合理使用的场景。
134
- - 使用者需遵守 WorkBuddy 的服务条款;因使用本项目产生的任何后果(包括但不限于账号被限制、额度被清空、服务中断),由使用者自行承担。
135
- - 本项目作者不对任何因使用或滥用本项目产生的直接或间接损失负责。
132
+ - 使用者需遵守 WorkBuddy 的服务条款;因使用本项目产生的任何后果,由使用者自行承担。
136
133
  - 本项目与腾讯、WorkBuddy、DeepSeek 均无关联,未获其授权或认可;文中出现的名称仅用于描述兼容关系,其商标权利归各自所有。
137
134
 
138
135
  ## 致谢
@@ -142,4 +139,8 @@ dsh plugin --profile web exec dsh-workbuddy-bridge logout # 清理插
142
139
 
143
140
  ## 许可
144
141
 
145
- [MIT](LICENSE)。
142
+ [MIT](LICENSE)。
143
+
144
+ ## 贡献
145
+
146
+ 流程与本地钩子 → [CONTRIBUTING.md](CONTRIBUTING.md)。缺陷与需求走仓库 Issues。
package/README_en.md CHANGED
@@ -1,3 +1,7 @@
1
+ <p align="center">
2
+ <img src="icon.svg" alt="dsh-workbuddy-bridge" width="80" height="80">
3
+ </p>
4
+
1
5
  <p align="center">
2
6
  <h1 align="center">dsh-workbuddy-bridge</h1>
3
7
  </p>
@@ -12,6 +16,10 @@
12
16
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="MIT License"></a>
13
17
  </p>
14
18
 
19
+ <p>
20
+ Per-version changes → <a href="https://github.com/zlZayn/dsh-workbuddy-bridge/releases">Releases</a> (one-to-one with npm versions)
21
+ </p>
22
+
15
23
  <p>
16
24
  <strong><a href="README.md">简体中文</a></strong> · <a href="README_en.md">English</a>
17
25
  </p>
@@ -29,30 +37,36 @@ appears; install both and the two groups sit side by side, each with its own acc
29
37
  models appear directly in the DSH model picker — no separate provider to configure.
30
38
 
31
39
  <p align="center">
32
- <img src="assets/1.png" alt="WorkBuddy models in the DSH model picker" width="300">
40
+ <img src="assets/model-picker.png" alt="WorkBuddy models in the DSH model picker" width="300">
33
41
  <br>
34
42
  <em>The CN version forms its own group in the model picker, each model carrying its credit rate and promo
35
43
  badge; installing the international version adds a "WorkBuddy AI" group the same way.</em>
36
44
  </p>
37
45
 
38
- ## What it does
46
+ ## Capabilities
39
47
 
40
48
  - **Zero configuration** — install, enable, and the model group appears by itself.
41
- - **The two versions never cross** — "WorkBuddy" for the CN app, "WorkBuddy AI" for the international one;
42
- models, accounts and credit stay separate, and each group follows its own app's sign-in. Sign out of one
43
- and its group disappears while the other is unaffected.
49
+ - **Two isolated versions** — "WorkBuddy" (CN) and "WorkBuddy AI" (international) each form their own group;
50
+ models, accounts and credit never mix, and each follows only its own app's sign-in.
44
51
  - **Reasoning levels** — models that declare levels expose them directly; the rest can be **checked manually**
45
- on the plugin page (see [Why detection is manual](#why-detection-is-manual)). Unchecked models keep
46
- WorkBuddy's default level.
47
- - **Model visibility** — tick which models appear in the picker on the card's "Models" tab; saved per
48
- signed-in account. Hiding only affects pickability — chats already using a hidden model keep working.
49
- - **Credit and account** — the plugin page shows the signed-in account, remaining credit and per-package
50
- allowances, with a manual model-list refresh.
51
- - **Image input** — most models accept pasted or dropped images; the few text-only models say so explicitly.
52
- - **Three surfaces** — Web, Desktop and TUI all work; only the TUI lacks manual detection.
52
+ on the plugin page. The bulb means "this model can switch levels", not "it has been detected" — a declared
53
+ model shows the bulb too, it just has nothing to detect.
54
+ - **Credit in view** — each reply shows what it consumed, and remaining credit sits beside the model picker.
55
+ Nothing renders when a figure cannot be observed.
56
+ - **Model visibility** — tick which models appear in the picker on the card's "Models" tab, saved per
57
+ signed-in account.
58
+ - **Image input** — most models accept pasted or dropped images; text-only models say so explicitly.
59
+ - **Three surfaces** — Web, Desktop and TUI; only the TUI lacks manual detection.
53
60
 
54
61
  <p align="center">
55
- <img src="assets/2.png" alt="Plugin detail page: the configuration form and the two status cards" width="560">
62
+ <img src="assets/composer-row.png" alt="The composer row: remaining credit beside the reasoning-level bulb" width="560">
63
+ <br>
64
+ <em>The everyday view in the conversation window: remaining credit on the left, the reasoning-level bulb on
65
+ the right — both beside the model picker.</em>
66
+ </p>
67
+
68
+ <p align="center">
69
+ <img src="assets/plugin-page.png" alt="Plugin detail page: the configuration form and the two status cards" width="480">
56
70
  <br>
57
71
  <em>The plugin page: the configuration form on top, two cards below, each following its own app's sign-in.</em>
58
72
  </p>
@@ -60,7 +74,7 @@ models appear directly in the DSH model picker — no separate provider to confi
60
74
  ## Install
61
75
 
62
76
  One prerequisite: the **WorkBuddy desktop app** is installed and signed in (WorkBuddy AI for the
63
- international version) — the plugin reuses the app's sign-in state and follows account switches.
77
+ international version) — the plugin reuses the app's sign-in state.
64
78
 
65
79
  ```sh
66
80
  dsh plugin --profile web add dsh-workbuddy-bridge
@@ -68,7 +82,7 @@ dsh web
68
82
  ```
69
83
 
70
84
  For Desktop and TUI swap `--profile web` for `desktop` / `dsh-tui` (the TUI needs the terminal plugin
71
- `@deepseek-harness-tui/dsh-tui` ≥ `0.10.0-beta.5`, installed with pnpm 11 — see its docs).
85
+ `@deepseek-harness-tui/dsh-tui` ≥ `0.10.0-beta.5` — see its docs).
72
86
 
73
87
  Or from source:
74
88
 
@@ -81,64 +95,46 @@ dsh plugin --profile web add "$PWD"
81
95
 
82
96
  ## The plugin page
83
97
 
84
- Sidebar **Plugins** → installed → click **DSH WorkBuddy Bridge**. The configuration area sits right under the
85
- description, editable in place, saved immediately:
86
-
87
- - **Sign-in file paths** (CN / international) — leave blank to use the app's own location; usually unnecessary.
88
- - **Allow reasoning-level detection** and **use the largest declared context window** — two switches, defaults are fine.
98
+ Sidebar **Plugins** → installed → click **DSH WorkBuddy Bridge**. The configuration area sits right under
99
+ the description and takes effect on save:
89
100
 
90
- Configuration takes effect immediately — no restart needed. The live state on the cards (account, credit,
91
- model list) comes from the two cards below.
101
+ - **Sign-in file paths** (CN / international) — leave blank to use the app's own location.
102
+ - **Allow reasoning-level detection** and **use the largest declared context window** — two switches.
92
103
 
93
104
  <p align="center">
94
- <img src="assets/6.png" alt="Models tab: visibility, windows, rates" width="300">
95
- <img src="assets/7.png" alt="Detection tab: reasoning-level detection" width="300">
105
+ <img src="assets/models-tab.png" alt="Models tab: visibility, windows, rates" width="480">
96
106
  <br>
97
- <em>Expanding the "WorkBuddy (CN)" card: the Models tab (left) manages visibility and shows windows and
98
- rates; the Detection tab (right) is one row per model — press Detect to confirm which reasoning levels
99
- it accepts, and the results also land in the model picker.</em>
107
+ <em>The Models tab: tick which models appear in the picker, and read each one's window and rate.</em>
100
108
  </p>
101
109
 
102
110
  <p align="center">
103
- <img src="assets/3.png" alt="Credits tab: total and per-package allowances" width="640">
111
+ <img src="assets/detection-tab.png" alt="Detection tab: one row per reasoning model" width="300">
112
+ <img src="assets/credits-tab.png" alt="Credits tab: total and per-package allowances" width="300">
104
113
  <br>
105
- <em>The Credits tab: the total on one line, each package's allowance as a bar below.</em>
114
+ <em>Left, "Detection": one row per reasoning model — press the button to confirm which reasoning levels it
115
+ accepts. Right, "Credits": the total on one line, each package's allowance as a bar below.</em>
106
116
  </p>
107
117
 
108
118
  ## Why detection is manual
109
119
 
110
- WorkBuddy's reasoning-level information is scattered across upstream endpoints and private client UI logic,
111
- and the model catalog changes fast. Worse, testing showed some models **accept** `reasoning_effort` but
112
- silently ignore unknown values — one successful request does not prove a level actually works. So the plugin
113
- does not guess: you authorize detection in the configuration first, then each model is confirmed with a few
114
- real requests on demand. Detection may consume a small amount of credit; a result only means **the upstream
115
- currently accepts that level** — it does not promise any change in quality, speed, or cost.
120
+ The upstream does not guarantee that level information is reliable — some models were observed to
121
+ **accept** `reasoning_effort` while silently ignoring unknown values. So the plugin does not guess: it
122
+ confirms one model at a time with a few real requests on demand, and a result only means **the upstream
123
+ currently accepts that level** — it does not promise any change in behaviour. Models that declare their
124
+ levels skip this step and use the declared set directly.
125
+ Mechanism and trade-offs in [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
116
126
 
117
- ## Command line
118
-
119
- Check status without the UI:
120
-
121
- ```sh
122
- dsh plugin --profile web exec dsh-workbuddy-bridge status # sign-in state and credit
123
- dsh plugin --profile web exec dsh-workbuddy-bridge status --json # machine-readable
124
- dsh plugin --profile web exec dsh-workbuddy-bridge doctor # diagnose app discovery and credentials
125
- dsh plugin --profile web exec dsh-workbuddy-bridge logout # remove the plugin's local credential copy
126
- ```
127
-
128
- Targets the CN version by default; add `--provider workbuddy-ai` for the international one. `logout` does not
129
- touch the desktop app's own sign-in.
127
+ <p align="center">
128
+ <img src="assets/reasoning-levels-declared.png" alt="The reasoning-level control: levels declared upstream, detect disabled" width="300">
129
+ <br>
130
+ <em>A model with declared levels: the bulb is lit, the levels are directly selectable, and detection is disabled.</em>
131
+ </p>
130
132
 
131
- ## Compatibility and known limits
133
+ ## Compatibility and limits
132
134
 
133
- - Supports the **DSH `0.1.7` line** only; the floor lives in [package.json](package.json) `engines.dsh` — no
134
- cross-generation compatibility.
135
- - **Credential discovery is per platform**: macOS supported directly; Windows probes Local then Roaming
136
- AppData (tested working); WSL reads the mounted Windows user profile first. When nothing is found, point
137
- `WORKBUDDY_AUTH_FILE` (international: `WORKBUDDY_AI_AUTH_FILE`) at the actual file.
138
- - **The international catalog comes from the app's UI endpoint** (private, may break upstream); the CN version
139
- uses the same official CLI endpoint.
140
- - With no credentials the group does not appear — the plugin never shows a fallback list that would only error.
141
- - Enterprise credit covers the CN version only.
135
+ A group without credentials does not appear. The host version floor, platform support, catalog sources and
136
+ known gaps
137
+ → [docs/COMPATIBILITY.md](docs/COMPATIBILITY.md).
142
138
 
143
139
  Design notes → [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md); release process → [docs/PUBLISHING.md](docs/PUBLISHING.md);
144
140
  maintainer map → [AGENTS.md](AGENTS.md).
@@ -147,9 +143,7 @@ maintainer map → [AGENTS.md](AGENTS.md).
147
143
 
148
144
  - This project is **for personal study and research only**; it drives your own WorkBuddy account on your own
149
145
  machine. Do not use it commercially or beyond reasonable personal use.
150
- - You must comply with WorkBuddy's terms of service; any consequences (account restriction, credit forfeiture,
151
- service interruption) are your own responsibility.
152
- - The authors accept no liability for direct or indirect loss caused by use or misuse of this project.
146
+ - You must comply with WorkBuddy's terms of service; any consequences are your own responsibility.
153
147
  - Not affiliated with, nor endorsed by, Tencent, WorkBuddy, or DeepSeek; names appear only to describe
154
148
  compatibility, and trademarks belong to their owners.
155
149
 
@@ -160,4 +154,8 @@ maintainer map → [AGENTS.md](AGENTS.md).
160
154
 
161
155
  ## License
162
156
 
163
- [MIT](LICENSE).
157
+ [MIT](LICENSE).
158
+
159
+ ## Contributing
160
+
161
+ Process and local hooks → [CONTRIBUTING.md](CONTRIBUTING.md). Bugs and requests go to the repo Issues.
package/lib/bin.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { D as cnAppDiscovery, E as WorkBuddyAtRestKeyProvider, O as WorkBuddyUpstreamClient, X as resolveAppVersion, b as WorkBuddyCredentialStore, f as WORKBUDDY_BRIDGE_VERSION, g as FALLBACK_WORKBUDDY_MODELS, h as FALLBACK_WORKBUDDY_AI_MODELS, i as variantFor, l as readHostHeartbeat, n as CN_VARIANT, r as WORKBUDDY_VARIANTS, s as isHeartbeatProcessAlive, u as workbuddyHostHeartbeatPath } from "./variants-DP0Ho0Tc.js";
2
+ import { D as WorkBuddyAtRestKeyProvider, O as cnAppDiscovery, Z as resolveAppVersion, _ as FALLBACK_WORKBUDDY_MODELS, f as WORKBUDDY_BRIDGE_VERSION, g as FALLBACK_WORKBUDDY_AI_MODELS, i as variantFor, k as WorkBuddyUpstreamClient, l as readHostHeartbeat, n as CN_VARIANT, r as WORKBUDDY_VARIANTS, s as isHeartbeatProcessAlive, u as workbuddyHostHeartbeatPath, x as WorkBuddyCredentialStore } from "./variants-3SmUZ0e_.js";
3
3
  import { realpathSync } from "node:fs";
4
4
  import { fileURLToPath } from "node:url";
5
5
  //#region src/cli/bin.ts