dsh-connect-workbuddy 5.4.0 → 5.5.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.
@@ -1784,6 +1784,16 @@ const GLOBAL_CONFIG_PATH = "/v3/config";
1784
1784
  * host- and identity-insensitive on the CN side (measured 2026-10-21 on all
1785
1785
  * three CN hosts, under both the CLI and the app user agent: byte-identical),
1786
1786
  * so it is asked as the chat channel's own identity.
1787
+ *
1788
+ * IT DOES NOT EXIST ON THE GLOBAL GATEWAY. Measured 2026-10-22: this exact POST
1789
+ * against `www.workbuddy.ai` answers 404 `Route Not Found` (as do the four
1790
+ * neighbouring spellings tried under both POST and GET), while the same
1791
+ * credential reads that gateway's `/v3/config` normally and finds no load field
1792
+ * on any model. {@link WorkBuddyUpstreamClient.fetchModelBusy} is therefore
1793
+ * expected to THROW for that region — `withBusyLevels` in `src/index.ts` catches
1794
+ * it and ships the roster without levels. Kept as-is rather than region-gated:
1795
+ * the day upstream adds it, this needs no change, and the cost today is one
1796
+ * 404 per refresh that never blocks anything.
1787
1797
  */
1788
1798
  const MODEL_BUSY_PATH = "/v2/chat/busy";
1789
1799
  /**
@@ -5956,7 +5966,7 @@ function generationOf(version) {
5956
5966
  //#endregion
5957
5967
  //#region src/version.ts
5958
5968
  /** The npm package version this build was produced from. */
5959
- const WORKBUDDY_CONNECT_VERSION = "5.4.0";
5969
+ const WORKBUDDY_CONNECT_VERSION = "5.5.0";
5960
5970
  //#endregion
5961
5971
  //#region src/host-heartbeat.ts
5962
5972
  /**
package/lib/index.d.ts CHANGED
@@ -792,6 +792,22 @@ interface WorkBuddyPromo {
792
792
  * `/v3/config`, this endpoint is not channel-sensitive, so the plugin asks it as
793
793
  * the CLI agent it already is on the chat path — no product identity needed.
794
794
  *
795
+ * THE GLOBAL GATEWAY DOES NOT HAVE IT (measured 2026-10-22, and the reason the
796
+ * README says "CN only"). `www.workbuddy.ai` answers that same POST with
797
+ * `404 {"error_msg":"404 Route Not Found"}`, and so do `/v3/chat/busy`,
798
+ * `/v2/models/busy`, `/v2/chat/model/busy` and `/v1/chat/busy` under both POST
799
+ * and GET — twelve path/method pairs, twelve 404s. The credential is fine: the
800
+ * SAME token reads that gateway's `/v3/config` (200, 28 models), and none of
801
+ * those models carries a field whose name mentions busy / load / queue / wait /
802
+ * level / pressure. So this is not a wrong path, a wrong identity or a
803
+ * permission problem — upstream never published the fact for that region. The
804
+ * probe therefore fails there on every refresh; it is caught (see
805
+ * `withBusyLevels` in `src/index.ts`), logged once, and the roster ships with
806
+ * no levels, which the card renders as no badge. Deliberately NOT "fixed" by
807
+ * inferring a level from latency or credits: a made-up load badge is worse than
808
+ * no badge, and the plugin's whole rule here is to never state a fact the
809
+ * upstream did not state.
810
+ *
795
811
  * THE LEVELS ARE THE APP'S OWN ENUM, and anything outside it is `unknown`:
796
812
  * `idle` / `normal` / `busy` / `congested` / `unavailable`. The app's own words
797
813
  * (from its `im-channels` bundle, `chatInput.modelSelector.busy.*`) are
@@ -1597,6 +1613,7 @@ interface CliBridgeSettings {
1597
1613
  allowUnattended?: boolean;
1598
1614
  maxReplyChars?: number;
1599
1615
  injectResult?: boolean;
1616
+ sessionContinuity?: string;
1600
1617
  maxTurnsPerSessionHour?: number;
1601
1618
  maxTurnsPerHour?: number;
1602
1619
  }
@@ -3802,6 +3819,16 @@ interface WorkBuddyStatusRouteOptions {
3802
3819
  * probe.
3803
3820
  */
3804
3821
  accountUsable?(region: WorkBuddyRegion, account: WorkBuddyRecoveryCandidate): Promise<boolean>;
3822
+ /**
3823
+ * The CLI route's live turns, for the composer readout.
3824
+ *
3825
+ * A READ of the bridge's in-memory board, not a computation: the route exists
3826
+ * so a turn that is still running has somewhere to be observed from, and the
3827
+ * board is the only thing that knows. Absent (the bridge is switched off, or
3828
+ * this Host mounted the status routes without it) means "no live turns", which
3829
+ * the chip renders as nothing at all.
3830
+ */
3831
+ cliLive?(): unknown;
3805
3832
  /**
3806
3833
  * Why each of the region's accounts cannot serve right now, keyed by account
3807
3834
  * id. Absent key (or an absent dep) means "no reason known" — the composer