dsh-connect-workbuddy 5.15.1 → 5.15.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.15.2 (2026-10-30)
4
+
5
+ > **英文界面下的「最近刷新」不再显示成中文式的时间。** 同步自
6
+ > `dsh-connect-trae` 的 issue #71。
7
+
8
+ ### 变更
9
+
10
+ - **「最近刷新」的时刻跟随读者语言**(同步自 `dsh-connect-trae` 的 issue #71)。
11
+ - **问题**:`formatClock` 把 locale 钉死成 `'zh-CN'`,于是英文界面印的是
12
+ `23:59`(中文习惯的 24 小时制),而不是 `11:59 PM`。用户看的是一个
13
+ **显示**格式,却按一个写死的语言来排。
14
+ - **改法**:`toLocaleTimeString('zh-CN', …)` → `toLocaleTimeString(undefined, …)`,
15
+ 即跟随读者语言——与同仓库 `AccountPool.tsx` 里那个 `formatClock` 的做法一致
16
+ (它本来就用 `Intl.DateTimeFormat(undefined, …)`)。
17
+ - **影响面**:这个 `formatClock` 只有一个调用点——页脚的「最近刷新」
18
+ (`composer.lastRefresh`)。它是「当下」的同一时刻,不需要日期。
19
+ - **没有连带改的**:`AccountPool.tsx` 的池日志时间戳**本来就**跟随读者语言,
20
+ 不在本次范围;`credit-format.ts` 的 `toLocaleString('en-US')` 是金额分组的
21
+ 刻意选择(千分位一致),与语言无关,不动。
22
+
23
+ ### 测试
24
+
25
+ - 新增 **2** 例(2677 总例,较 5.15.1 净增 2):
26
+ - **源码级**:`formatClock` 不得再出现硬编码的 locale。这一条不依赖测试环境的
27
+ locale——行为级断言在 zh-CN 环境下会因两种写法结果相同而失效,源码级不会。
28
+ - **行为级**:渲染出的「最近刷新」时刻必须等于**读者 locale** 对该时刻的写法。
29
+ `lastRefresh` 是「最近一次刷新的时刻」(即当下),所以期望值取渲染前后两个
30
+ 瞬间,容许跨过一分钟边界。
31
+ - **变异验证**:把 locale 改回 `'zh-CN'`,两条用例**同时**转红(源码级点名
32
+ 「still pins a locale」,行为级报出实际渲染值 `19:36` 与期望的 `07:36 PM`)。
33
+ - 全仓 **2677** 例通过(159 文件),类型检查通过。
34
+
3
35
  ## 5.15.1 (2026-10-30)
4
36
 
5
37
  > **积分读数从「权限切换器旁边」挪到「模型选择器左边」。** 两者原本相隔 8px 且都是
package/README.en.md CHANGED
@@ -186,9 +186,9 @@ One class of state in the pool **does not go through a draft**: probe results, c
186
186
 
187
187
  > ⚠️ **For the CN 「channel verification」 400 (`code 11128`), make sure the plugin is ≥ 5.14.1.** From 5.13.1 the plugin rewrites the known fixed fingerprints **before the request is sent**, and 5.14.0 adds the Web-GUI paragraph's SECOND sentence (#167, the branch still reproducing on 5.13.1); 5.12.x and earlier only had the neutral-head + zero-width ladder, which measured **400 on every rung** for the same body (matrix in [#164](https://github.com/dingminhua/dsh-connect-workbuddy/issues/164)). Anyone left on an older build keeps hitting a 400 that is already fixed, and it looks like "fails every single time, restarting does nothing".
188
188
  >
189
- > ⚠️ **Do not treat the marketplace's "latest" as the schedule — it reads an index that lags.** The community marketplace serves a `dsh-plugin-catalog` snapshot, collected per package: **the snapshot built on 2026-10-30 still listed only 5.13.1 for this plugin** while npm `latest` was **5.14.1**, and a desktop host separately flags any release under 24 hours old as "waiting". Trust `npm view dsh-connect-workbuddy version` and [Releases](https://github.com/dingminhua/dsh-connect-workbuddy/releases), and follow [Update](#update) below (pin the **exact version**); or hand [`docs/PINNED-UPGRADE-LAG.md`](docs/PINNED-UPGRADE-LAG.md) §3 to an AI and let it run.
189
+ > ⚠️ **Do not treat the marketplace's "latest" as the schedule — it reads an index that lags.** The community marketplace serves a periodically built snapshot, collected per package: at the 2026-10-30 15:00 observation this plugin still listed only 5.13.1 while npm `latest` was already 5.14.1, and a desktop host separately flags any release under 24 hours old as "waiting". Trust `npm view dsh-connect-workbuddy version` and [Releases](https://github.com/dingminhua/dsh-connect-workbuddy/releases), and follow [Update](#update) below (pin the **exact version**); or hand [`docs/PINNED-UPGRADE-LAG.md`](docs/PINNED-UPGRADE-LAG.md) §3 to an AI and let it run.
190
190
  >
191
- > The other thing that stops people from upgrading: **pnpm's 24-hour release-age window** (`minimumReleaseAge`) **silently resolves a floating range back to the previous version**. When you need this fixed right now, pin the **exact version**: `dsh-connect-workbuddy@5.14.1`.
191
+ > The other thing that stops people from upgrading: **pnpm's 24-hour release-age window** (`minimumReleaseAge`) **silently resolves a floating range back to the previous version**. When you need this fixed right now, pin the **exact version**: `dsh-connect-workbuddy@5.15.1`.
192
192
 
193
193
  ### Supported host range
194
194
 
@@ -250,7 +250,7 @@ Restart the DSH process after install/update/uninstall.
250
250
  > | exact `5.14.1` + `minimumReleaseAgeExclude: [dsh-connect-workbuddy]` in the profile's `pnpm-workspace.yaml` | **5.14.1** ✅ |
251
251
  > | setting absent (pnpm default) | floating `^5.13.1` → **5.14.1** ✅ |
252
252
  >
253
- > To pick up a new release right away, pin it: `dsh plugin --profile desktop add dsh-connect-workbuddy@5.14.1`; if the window refuses it, see [`docs/PINNED-UPGRADE-LAG.md`](docs/PINNED-UPGRADE-LAG.md) §2 for the two routes (wait out the window, or add that exclude line). A floating range catches up once the window elapses.
253
+ > To pick up a new release right away, pin it: `dsh plugin --profile desktop add dsh-connect-workbuddy@5.15.1`; if the window refuses it, see [`docs/PINNED-UPGRADE-LAG.md`](docs/PINNED-UPGRADE-LAG.md) §2 for the two routes (wait out the window, or add that exclude line). A floating range catches up once the window elapses.
254
254
 
255
255
  The plugin also runs under **Web** and **TUI**; pick the command matching your profile:
256
256
 
@@ -267,7 +267,7 @@ dsh plugin --profile dsh-tui add dsh-connect-workbuddy # TUI
267
267
  **Manual update (one command)**:
268
268
 
269
269
  ```sh
270
- dsh plugin --profile desktop add dsh-connect-workbuddy@5.14.1
270
+ dsh plugin --profile desktop add dsh-connect-workbuddy@5.15.1
271
271
  dsh plugin --profile desktop exec dsh-connect-workbuddy doctor # first line carries the version
272
272
  ```
273
273
 
@@ -288,7 +288,7 @@ My profile is desktop.
288
288
 
289
289
  > Do not tell an AI to "retry until it succeeds": inside the window every retry gets the same refusal, and pnpm offers no one-shot bypass.
290
290
 
291
- **Confirming it actually changed**: the first line of `doctor` (`WorkBuddy Connect 5.14.1 on …`), or the top-level `version` in `status --json`. **Do not** look for `/workbuddy status` (the slash command this plugin registers is `/codebuddy`, which forwards to the local CodeBuddy CLI), and **do not** look for a version row in the card's Diagnostics tab (it has exactly eight rows — region, domain, serving account, sign-in expiry, catalog size, enabled count, account pool, last failure — and no version). Restart or reload, then judge.
291
+ **Confirming it actually changed**: the first line of `doctor` (`WorkBuddy Connect 5.15.1 on …`), or the top-level `version` in `status --json`. **Do not** look for `/workbuddy status` (the slash command this plugin registers is `/codebuddy`, which forwards to the local CodeBuddy CLI), and **do not** look for a version row in the card's Diagnostics tab (it has exactly eight rows — region, domain, serving account, sign-in expiry, catalog size, enabled count, account pool, last failure — and no version). Restart or reload, then judge.
292
292
 
293
293
  Details (how the market index and the pnpm window each stop you, and both ways through) are in [`docs/PINNED-UPGRADE-LAG.md`](docs/PINNED-UPGRADE-LAG.md); the same text is posted as a long-term pinned issue.
294
294
 
package/README.md CHANGED
@@ -196,9 +196,9 @@ DSH PiAiAdapter(每个 provider 一套)
196
196
 
197
197
  > ⚠️ **国内区的「渠道校验」400(`code 11128`)请确保插件 ≥ 5.14.0。** 5.13.1 起会在**发出请求之前**按句改写已知的固定指纹,5.14.0 又补上了 Web GUI 段落的第二句(#167,5.13.1 上仍然必现的那一支);5.12.x 及更早只有「中性头 + 零宽扰动」三级救援,在同一份 body 上实测**全部 400**(对照矩阵见 [#164](https://github.com/dingminhua/dsh-connect-workbuddy/issues/164))。停在旧版的人会反复撞上这个已经修好的 400,而表现是「每次必现、重启也没用」。
198
198
  >
199
- > ⚠️ **别把插件市场里那个「最新」当日程表——它读的是一份会落后的索引。** 社区市场走 `dsh-plugin-catalog` 的快照(按包各自收录),**2026-10-30 那份快照里本插件只到 5.13.1**,而 npm `latest` 已是 **5.14.1**;桌面宿主另有「24 小时内发布的版本先标成「新版等待中」」这条规则。以 `npm view dsh-connect-workbuddy version` 与 [Releases](https://github.com/dingminhua/dsh-connect-workbuddy/releases) 为准,按下方[「更新」](#更新)一节做(写**精确版本号**),或者把 [`docs/PINNED-UPGRADE-LAG.md`](docs/PINNED-UPGRADE-LAG.md) §3 那段话丢给 AI 让它替你跑。
199
+ > ⚠️ **别把插件市场里那个「最新」当日程表——它读的是一份会落后的索引。** 社区市场走定期构建的快照(按包各自收录),2026-10-30 15:00 那次观测里本插件还停在 5.13.1,而当时 npm `latest` 已是 5.14.1;桌面宿主另有「24 小时内发布的版本先标成「新版等待中」」这条规则。以 `npm view dsh-connect-workbuddy version` 与 [Releases](https://github.com/dingminhua/dsh-connect-workbuddy/releases) 为准,按下方[「更新」](#更新)一节做(写**精确版本号**),或者把 [`docs/PINNED-UPGRADE-LAG.md`](docs/PINNED-UPGRADE-LAG.md) §3 那段话丢给 AI 让它替你跑。
200
200
  >
201
- > 另一个会让人升级不到的原因:**pnpm 的 24 小时新版本等待期**(`minimumReleaseAge`)会把浮动范围**静默压回上一个版本**。需要立刻修复时请写**精确版本号**:`dsh plugin --profile desktop add dsh-connect-workbuddy@5.14.1`(原因见下方「刚发布的版本请写精确版本号」那条)。
201
+ > 另一个会让人升级不到的原因:**pnpm 的 24 小时新版本等待期**(`minimumReleaseAge`)会把浮动范围**静默压回上一个版本**。需要立刻修复时请写**精确版本号**:`dsh plugin --profile desktop add dsh-connect-workbuddy@5.15.1`(原因见下方「刚发布的版本请写精确版本号」那条)。
202
202
 
203
203
  ### 受支持的宿主范围
204
204
 
@@ -262,7 +262,7 @@ npm install dsh-connect-workbuddy
262
262
  > | 精确 `5.14.1` + profile `pnpm-workspace.yaml` 里 `minimumReleaseAgeExclude: [dsh-connect-workbuddy]` | **5.14.1** ✅ |
263
263
  > | 不设该项(pnpm 默认) | 浮动 `^5.13.1` → **5.14.1** ✅ |
264
264
  >
265
- > 想立刻用上新版,请写精确版本号:`dsh plugin --profile desktop add dsh-connect-workbuddy@5.14.1`;若被等待期拒绝,见 [`docs/PINNED-UPGRADE-LAG.md`](docs/PINNED-UPGRADE-LAG.md) §2 的两条路(等窗口过去,或加那行 exclude)。过了等待期之后,浮动范围会自然跟上。
265
+ > 想立刻用上新版,请写精确版本号:`dsh plugin --profile desktop add dsh-connect-workbuddy@5.15.1`;若被等待期拒绝,见 [`docs/PINNED-UPGRADE-LAG.md`](docs/PINNED-UPGRADE-LAG.md) §2 的两条路(等窗口过去,或加那行 exclude)。过了等待期之后,浮动范围会自然跟上。
266
266
 
267
267
  插件在 **Web**、**Desktop**、**TUI** 三种界面下均可运行,按你使用的 profile 选择对应命令:
268
268
 
@@ -274,12 +274,12 @@ dsh plugin --profile dsh-tui add dsh-connect-workbuddy # TUI
274
274
  ## 更新
275
275
 
276
276
  > **市场里显示几就是几,那是快照;`npm view dsh-connect-workbuddy version` 与 [Releases](https://github.com/dingminhua/dsh-connect-workbuddy/releases) 才是准的。**
277
- > 2026-10-30 实测:社区市场索引(`dsh-plugin-catalog` 当天构建)里本插件仍只列到 **5.13.1**,npm `latest` 已是 **5.14.1**。滞后是**按包各自发生**的——同一份索引里 `@changfenhuang/dsh-genui` 0.15.0、`dsh-client-auto-continue` 0.17.0、`billion-context` 0.1.209 都是新的,所以「别人那个包有新版」不能证明「你这个包也该有」。
277
+ > 2026-10-30 15:00 实测:社区市场索引里本插件还只列到 **5.13.1**,而 npm `latest` 当时已是 **5.14.1**(现在是 5.15.1)。滞后是**按包各自发生**的——同一份索引里 `@changfenhuang/dsh-genui` 0.15.0、`dsh-client-auto-continue` 0.17.0、`billion-context` 0.1.209 都是新的,所以「别人那个包有新版」不能证明「你这个包也该有」。
278
278
 
279
279
  **手动更新(一条命令)**:
280
280
 
281
281
  ```sh
282
- dsh plugin --profile desktop add dsh-connect-workbuddy@5.14.1
282
+ dsh plugin --profile desktop add dsh-connect-workbuddy@5.15.1
283
283
  dsh plugin --profile desktop exec dsh-connect-workbuddy doctor # 第一行就是版本
284
284
  ```
285
285
 
@@ -300,7 +300,7 @@ dsh plugin --profile desktop exec dsh-connect-workbuddy doctor # 第一行就
300
300
 
301
301
  > 别让 AI「反复重试到成功」:等待期内重试只会拿到同一个拒绝,pnpm 没有一次性的绕过开关。
302
302
 
303
- **怎么确认真的升上去了**:`doctor` 的第一行(`WorkBuddy Connect 5.14.1 on …`),或 `status --json` 顶层的 `version`。**不要**找 `/workbuddy status`(本插件注册的斜杠命令是 `/codebuddy`,用于转发本机 CodeBuddy CLI),也**不要**在卡片「诊断」栏找版本号(那一栏只有区域 / 域名 / 服务账号 / 登录有效期 / 目录模型数 / 已启用数 / 账号池 / 最近一次失败八行,没有版本行)。装完**重启或重载**再判断。
303
+ **怎么确认真的升上去了**:`doctor` 的第一行(`WorkBuddy Connect 5.15.1 on …`),或 `status --json` 顶层的 `version`。**不要**找 `/workbuddy status`(本插件注册的斜杠命令是 `/codebuddy`,用于转发本机 CodeBuddy CLI),也**不要**在卡片「诊断」栏找版本号(那一栏只有区域 / 域名 / 服务账号 / 登录有效期 / 目录模型数 / 已启用数 / 账号池 / 最近一次失败八行,没有版本行)。装完**重启或重载**再判断。
304
304
 
305
305
  细节(市场索引与 pnpm 等待期分别怎么拦住你、两条绕过路径)见 [`docs/PINNED-UPGRADE-LAG.md`](docs/PINNED-UPGRADE-LAG.md),同一份正文也贴成了长期置顶 issue。
306
306
 
package/lib/bin.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { C as WorkBuddyCredentialStore, D as defaultDesktopAuthDirs, E as defaultDesktopAuthCandidates, I as workbuddyOwnAuthPath, M as legacyWorkbuddyOwnAuthPath, Qt as hostPeersInfo, Rt as WORKBUDDY_APP_EXECUTABLE_ENV, S as WORKBUDDY_AUTH_FILE_ENV, V as WorkBuddyUpstreamClient, Wt as findWorkbuddyAppExecutableWithSource, a as readHostHeartbeat, c as WORKBUDDY_CONNECT_VERSION, d as rosterSeenPath, f as piAiRuntimeInfo, m as FALLBACK_WORKBUDDY_MODELS_GLOBAL, o as workbuddyHostHeartbeatPath, p as FALLBACK_WORKBUDDY_MODELS, r as isHeartbeatProcessAlive, u as describeRosterSeenPayload } from "./host-heartbeat-891AaZGW.js";
2
+ import { C as WorkBuddyCredentialStore, D as defaultDesktopAuthDirs, E as defaultDesktopAuthCandidates, I as workbuddyOwnAuthPath, M as legacyWorkbuddyOwnAuthPath, Qt as hostPeersInfo, Rt as WORKBUDDY_APP_EXECUTABLE_ENV, S as WORKBUDDY_AUTH_FILE_ENV, V as WorkBuddyUpstreamClient, Wt as findWorkbuddyAppExecutableWithSource, a as readHostHeartbeat, c as WORKBUDDY_CONNECT_VERSION, d as rosterSeenPath, f as piAiRuntimeInfo, m as FALLBACK_WORKBUDDY_MODELS_GLOBAL, o as workbuddyHostHeartbeatPath, p as FALLBACK_WORKBUDDY_MODELS, r as isHeartbeatProcessAlive, u as describeRosterSeenPayload } from "./host-heartbeat-Dj8K0mMq.js";
3
3
  import { readFile } from "node:fs/promises";
4
4
  import { realpathSync } from "node:fs";
5
5
  import { fileURLToPath } from "node:url";
package/lib/client.js CHANGED
@@ -9583,8 +9583,20 @@ window.__ModuleLoader__.load({
9583
9583
  const value = usage.showCreditsInMainUi;
9584
9584
  return typeof value === "boolean" ? value : void 0;
9585
9585
  }
9586
+ /**
9587
+ * A same-day instant, as the READER's locale writes it.
9588
+ *
9589
+ * The locale is `undefined` — the reader's, not a fixed one — so an English UI
9590
+ * shows `11:59 PM` rather than the Chinese convention's `23:59`. It used to
9591
+ * hardcode `'zh-CN'`, which meant the English interface printed a Chinese-style
9592
+ * time. Ported from dsh-connect-trae (issue #71).
9593
+ *
9594
+ * Only for instants that are the same day as the reader: a bare clock time on
9595
+ * a timestamp from another day is a different question (and a different
9596
+ * design), which is why this is not reused for anything but "now".
9597
+ */
9586
9598
  function formatClock(value) {
9587
- return new Date(value).toLocaleTimeString("zh-CN", {
9599
+ return new Date(value).toLocaleTimeString(void 0, {
9588
9600
  hour: "2-digit",
9589
9601
  minute: "2-digit"
9590
9602
  });
@@ -7932,7 +7932,7 @@ function describeRosterSeenPayload(raw) {
7932
7932
  //#endregion
7933
7933
  //#region src/version.ts
7934
7934
  /** The npm package version this build was produced from. */
7935
- const WORKBUDDY_CONNECT_VERSION = "5.15.1";
7935
+ const WORKBUDDY_CONNECT_VERSION = "5.15.2";
7936
7936
  //#endregion
7937
7937
  //#region src/host-heartbeat.ts
7938
7938
  /**
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as parseCreditMultiplier, $t as resolveDshHome, A as isEncryptedCredentialError, At as pickMediaModel, B as WorkBuddyCredentialRejectedError, Bt as deriveAtRestKey, C as WorkBuddyCredentialStore, Ct as IMAGE_TAG_TEXT_TO_IMAGE, D as defaultDesktopAuthDirs, Dt as imageMimeForPath, E as defaultDesktopAuthCandidates, Et as imageDataUrl, F as workbuddyAccountId, Ft as NATIVE_MODALITY_BY_MODEL_ID, G as forceNeutralHead, Gt as isEncryptedFieldWrapper, H as channelGateMemberOf, Ht as fetchAtRestKeyPayload, I as workbuddyOwnAuthPath, It as imageDefaultFor, J as isCredentialRejectedError, Jt as macosNestedAppBundles, K as isContextTooLongBody, Kt as isWorkbuddyBundle, L as CONTEXT_OVERFLOW_MARKER, Lt as nativeModalityOf, M as legacyWorkbuddyOwnAuthPath, Mt as parseQueueAnswer, N as parseWorkBuddyAuth, Nt as queueNoticeText, O as defaultDesktopAuthPath, Ot as isBareBase64Image, P as preferredAccountName, Pt as pruneTempDir, Q as openingEvidenceOfBody, R as CREDENTIAL_REJECTED_CODE, Rt as WORKBUDDY_APP_EXECUTABLE_ENV, S as WORKBUDDY_AUTH_FILE_ENV, St as IMAGE_TAG_IMAGE_TO_IMAGE, T as authFileName, Tt as WorkBuddyImageError, U as classifyUpstreamError, Ut as findWorkbuddyAppExecutable, V as WorkBuddyUpstreamClient, Vt as deriveAtRestKeyId, W as declaredTools, X as knownRegionOf, Xt as readAtRestKey, Y as isFirstMessageGateBody, Yt as openEncryptedField, Z as modelIdOfBody, Zt as workbuddyAppExecutableCandidates, _ as deriveCatalog, _t as WorkBuddyVideoError, a as readHostHeartbeat, at as requestEvidenceOf, b as ENCRYPTED_CREDENTIAL_CODE, bt as resolveVideoParams, c as WORKBUDDY_CONNECT_VERSION, ct as REFUSES_OFF_MODEL_IDS, dt as offDefaultFor, en as withFileLock, et as parseReasoning, f as piAiRuntimeInfo, ft as offRefused, g as applyContextBudgets, gt as VIDEO_TAG_TEXT_TO_VIDEO, h as WorkBuddyCatalog, ht as VIDEO_TAG_IMAGE_TO_VIDEO, i as processStartTimeMs, it as regionOf, j as isVaultAccountId, jt as sniffImageMime, k as hasEncryptedCredentialFields, kt as parseImageDataUrl, l as createFileRosterSeenStore, lt as defaultOffModelIds, m as FALLBACK_WORKBUDDY_MODELS_GLOBAL, mt as withEffectiveOff, n as clearHostHeartbeat, nt as perturbChannelFingerprints, o as workbuddyHostHeartbeatPath, ot as rewriteSessionTitleModel, p as FALLBACK_WORKBUDDY_MODELS, pt as recordRefusal, q as isConversationIdGateBody, qt as macosBundleExecutable, r as isHeartbeatProcessAlive, rt as prepareChatBody, s as writeHostHeartbeat, st as attachBusyLevels, t as WORKBUDDY_HOST_HEARTBEAT_FILENAME, tn as writeFileAtomic, tt as parseUpstreamModel, ut as lastRefusalFor, v as fallbackModelsFor, vt as parseSupportedSecondsRange, w as WorkBuddyEncryptedCredentialError, wt as MAX_INPUT_IMAGE_BYTES, x as WORKBUDDY_AUTH_FILENAME, xt as DEFAULT_IMAGE_SIZE, y as withoutRouters, yt as pickVideoModel, z as WORKBUDDY_FALLBACK_SYSTEM_PROMPT, zt as clearAtRestKeyCache } from "./host-heartbeat-891AaZGW.js";
1
+ import { $ as parseCreditMultiplier, $t as resolveDshHome, A as isEncryptedCredentialError, At as pickMediaModel, B as WorkBuddyCredentialRejectedError, Bt as deriveAtRestKey, C as WorkBuddyCredentialStore, Ct as IMAGE_TAG_TEXT_TO_IMAGE, D as defaultDesktopAuthDirs, Dt as imageMimeForPath, E as defaultDesktopAuthCandidates, Et as imageDataUrl, F as workbuddyAccountId, Ft as NATIVE_MODALITY_BY_MODEL_ID, G as forceNeutralHead, Gt as isEncryptedFieldWrapper, H as channelGateMemberOf, Ht as fetchAtRestKeyPayload, I as workbuddyOwnAuthPath, It as imageDefaultFor, J as isCredentialRejectedError, Jt as macosNestedAppBundles, K as isContextTooLongBody, Kt as isWorkbuddyBundle, L as CONTEXT_OVERFLOW_MARKER, Lt as nativeModalityOf, M as legacyWorkbuddyOwnAuthPath, Mt as parseQueueAnswer, N as parseWorkBuddyAuth, Nt as queueNoticeText, O as defaultDesktopAuthPath, Ot as isBareBase64Image, P as preferredAccountName, Pt as pruneTempDir, Q as openingEvidenceOfBody, R as CREDENTIAL_REJECTED_CODE, Rt as WORKBUDDY_APP_EXECUTABLE_ENV, S as WORKBUDDY_AUTH_FILE_ENV, St as IMAGE_TAG_IMAGE_TO_IMAGE, T as authFileName, Tt as WorkBuddyImageError, U as classifyUpstreamError, Ut as findWorkbuddyAppExecutable, V as WorkBuddyUpstreamClient, Vt as deriveAtRestKeyId, W as declaredTools, X as knownRegionOf, Xt as readAtRestKey, Y as isFirstMessageGateBody, Yt as openEncryptedField, Z as modelIdOfBody, Zt as workbuddyAppExecutableCandidates, _ as deriveCatalog, _t as WorkBuddyVideoError, a as readHostHeartbeat, at as requestEvidenceOf, b as ENCRYPTED_CREDENTIAL_CODE, bt as resolveVideoParams, c as WORKBUDDY_CONNECT_VERSION, ct as REFUSES_OFF_MODEL_IDS, dt as offDefaultFor, en as withFileLock, et as parseReasoning, f as piAiRuntimeInfo, ft as offRefused, g as applyContextBudgets, gt as VIDEO_TAG_TEXT_TO_VIDEO, h as WorkBuddyCatalog, ht as VIDEO_TAG_IMAGE_TO_VIDEO, i as processStartTimeMs, it as regionOf, j as isVaultAccountId, jt as sniffImageMime, k as hasEncryptedCredentialFields, kt as parseImageDataUrl, l as createFileRosterSeenStore, lt as defaultOffModelIds, m as FALLBACK_WORKBUDDY_MODELS_GLOBAL, mt as withEffectiveOff, n as clearHostHeartbeat, nt as perturbChannelFingerprints, o as workbuddyHostHeartbeatPath, ot as rewriteSessionTitleModel, p as FALLBACK_WORKBUDDY_MODELS, pt as recordRefusal, q as isConversationIdGateBody, qt as macosBundleExecutable, r as isHeartbeatProcessAlive, rt as prepareChatBody, s as writeHostHeartbeat, st as attachBusyLevels, t as WORKBUDDY_HOST_HEARTBEAT_FILENAME, tn as writeFileAtomic, tt as parseUpstreamModel, ut as lastRefusalFor, v as fallbackModelsFor, vt as parseSupportedSecondsRange, w as WorkBuddyEncryptedCredentialError, wt as MAX_INPUT_IMAGE_BYTES, x as WORKBUDDY_AUTH_FILENAME, xt as DEFAULT_IMAGE_SIZE, y as withoutRouters, yt as pickVideoModel, z as WORKBUDDY_FALLBACK_SYSTEM_PROMPT, zt as clearAtRestKeyCache } from "./host-heartbeat-Dj8K0mMq.js";
2
2
  import z from "@deepseek-ai/schemastery";
3
3
  import { appendFile, mkdir, open, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
4
4
  import { randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "dsh-connect-workbuddy",
3
3
  "displayName": "DSH Connect WorkBuddy",
4
4
  "description": "把本机登录的 WorkBuddy 模型(国内版与国际版)接入 DeepSeek Harness:每次刷新按上游目录自动读取每个模型的积分倍率,支持逐模型图片输入开关、多账号切换与账号池自动换号,并提供每日签到、卡片与输入框里的胶囊积分读数等只读积分概览。",
5
- "version": "5.15.1",
5
+ "version": "5.15.2",
6
6
  "author": "dingminhua",
7
7
  "copyright": "Copyright (c) 2026 LaoDing",
8
8
  "license": "MIT",