@eddyskywalker/dsh-chatgpt-subscription 0.24.4 → 0.24.6

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
@@ -2,6 +2,31 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.24.6 - 2026-10-16
6
+ - **[WorkBuddy 国际区] 补上与官方客户端一致的会话头组,并修正 `11128` 被当成单一含义的过期结论(issue #56)**
7
+ - **报告**:#56 称国际区(`www.workbuddy.ai`)线路恒返回 400 `code 11128` / `msg: "conversation id missing"`,根因是网关新增渠道校验、要求 `X-Conversation-ID` / `X-Conversation-Request-ID` / `X-Conversation-Message-ID` / `X-Request-ID` / `acp-connection-id` 这 5 个头,而插件一个都不带;报告者用自己的国际区凭据做过单变量差分,称这 5 个是**最小充分集**。
8
+ - **本机未能复现,如实记录**:本机有可用的国际区账号,实测真实 `POST https://www.workbuddy.ai/v2/chat/completions`(system 开头 + `stream:true` + `max_tokens:1`)——**修复前的头组(只有身份头)已经是 200,SSE 正常流出**;把 5 个会话头逐个删除同样是 200;**连身份头全部去掉、只留 bearer 也是 200**;走真实 adapter 端到端(国际区凭据)得到 `text="pong"` / `finish=stop`。同时 `11128` 在本环境是**活的**,但它绑定的仍是 `msg:"first message is not system prompt"`(user 开头时必现 400)——报告的 `conversation id missing` 分支在任何头组合下都打不到。
9
+ - **因此这版不声称已验证根因**,只做两件彼此独立、各自成立的事:① 补上这组头,与官方客户端 `applyGatewayHeaders` 的行为对齐(**仅国际区**、**仅对话端点**:config / billing / refresh / check-in 四个面保持原有头集一字不改,国内区不加);其中 `X-Conversation-ID`、`X-Conversation-Request-ID`、`acp-connection-id` **按会话稳定**(由 harness 的 `GenerateOptions.sessionId` 派生,与官方客户端"每会话复用同一值"一致),`X-Conversation-Message-ID` / `X-Request-ID` **每请求随机**。实测这组头**带上与不带都是 200**,即无回归;② 修正 `classifyFailure` 与 `types.ts` / `mapper.ts` 的过期注释——`11128` 在上游已被复用,**同一个码有两个含义**,文案改为先读 `msg` 再定性(`conversation id` 判为渠道校验、否则判为 system-first)。这一条**已由实测独立证成**(本环境 `11128` 确实同时出现在这两个语义上)。
10
+ - **两个假设尚未区分(需要受影响账号才能判定)**:H1 渠道校验按账号灰度、报告的账号被拦而本机账号豁免,则该头组是真修复;H2 该门禁不存在或已回滚、对方的 400 另有来源,则头组只是无害对齐。两者下本改动都无副作用,但**都不能由本机证据宣布为已证实的根因**——报告者手上有受影响的环境,0.24.6 的复测结果才是判据。
11
+ - **验证**:`npm run typecheck` 0 错误;全量 **226 passed | 1 skipped(227 文件)、3751 passed | 7 skipped、0 failed**(基线 3745,新增 6 例)。新增 `scripts/probe-workbuddy-channel.probe.ts`(一次性实况探针,`vitest.probe.config.ts`,读真实凭据、不进 CI),它**刻意把修复前的头组当负对照一起打**——只断言修复后的 200 无法区分"头组起作用"与"网关不再校验"。**承重已双向检查**:移除头组本身 → 5 条用例失败(含两处调用点与头组契约);保留头组但丢掉 `sessionId` 透传 → 会话稳定性用例失败。
12
+
13
+ ## 0.24.5 - 2026-10-16
14
+ - **[推理塌缩守卫] Agent 先于守卫创建时注册表两条读取路径同时失效:熔断生效但续写从未排队,回合被截断后静默结束**
15
+ - **现象**:对话在思考中途**没有任何报错地突然结束**,界面上什么都不显示。
16
+ - **触发条件(判别实验实测,非推断)**:Agent 注册表由**兄弟 fiber** `@deepseek-ai/dsh-agent` 提供,插件 `inject` 未声明 `agents`,Cordis 对未声明的服务属性读取**直接抛** `cannot get property "agents" without inject`。守卫有两条读取路径(`ctx.agents` 属性、`agent/created` 映射表),而**当 Agent 在守卫装载之前就已创建**时——插件 HMR 重载、或激活晚于会话建立,本 profile 的 `hmr` 是启用的——映射表为空,属性读取又抛异常,**两条路同时断**:`resolveAgent` 返回 `undefined`,`breakOff` 在**第一行** `if (agent === undefined) return` 就返回,**熔断(`return` 截断流)已发生,而 `cancel` 与 `steer` 都没发生**。截断的流没有 finish chunk,harness 的 `assembler.finish` 把「没有 finish」默认为 `{kind:'stop'}`,`agent-loop` 因此**当成正常说完**(既不报错也不重试),从用户视角就是「无预兆、无反馈地停了」。
17
+ - **为什么之前没被发现**:守卫自己的测试假 ctx **直接给 `agents` 属性**,声明与否都能过;且**另一条时序是好的**——判别实验证实,Agent 在守卫装载**之后**才创建时,`agent/created` 映射表正常兜住(原代码 `cancels=1, steers=1`)。所以故障只在「先建 Agent、后装守卫」这个窗口出现,正是插件一旦重载就必然落入的那一个。
18
+ - **改法(`reasoning-collapse-guard/index.ts`,一处修复全线路受益)**:读注册表改为**先走 `ctx.get('agents')`**(直读服务存储,无需 `inject` 声明,因此不受时序影响),属性读取保留为回退,另加服务形状校验 `asRegistry`。**没有采用给 `inject` 加 `agents`**——那会让插件在**不提供该服务**的宿主上永不激活(本仓库明令「旧代际是要求而非回退」),而 `ctx.get` 在服务缺失时返回 `undefined`,由属性回退与 `agent/created` 映射表兜住,两个方向都不牺牲。
19
+ - **验证**:`npx tsc -b --force` 与测试树 tsc 均 0 错误;全量 **226 passed | 1 skipped(227 文件)、3745 passed | 7 skipped、0 failed**。新增 `test/reasoning-collapse-guard-registry.test.ts` 以**真实 Cordis 边界**建模(`agents` 属性按 Cordis 语义抛错、`ctx.get` 作答):断言熔断同时**真的 cancel + steer 各一次**。**承重已双向检查(负对照)**:在「先建 Agent、后装守卫」时序下,还原 `ctx.get` 那一路立刻复现 `cancels=0, steers=0` 并使新用例失败;恢复后重新全绿。
20
+ - **附(两处经实测否证的判断,故未改动)**:① 社区 PR 称 `z.union([z.object({}), z.const(false)])` 会 strip 掉 `maxBreaksPerTurn`/`cooldownMs`;以本机 schemastery 3.18.4 实测这些键**被完整保留**(`{"maxBreaksPerTurn":5,"cooldownMs":1000}`),`Config` 无需改动。② 曾怀疑 `preparedCall.stream()` 会绕过 `llm/stream` 瀑布使守卫失位;实测 `prepareCall.stream` 内部同样走该瀑布,**不成立**。
21
+ - **未解决的**:用户报告 MiniMax 静默、而 workbuddy 的 deepseek 能正常 steer,本机全部可读会话存档(8 个)中**未出现任何守卫熔断痕迹**(`interrupted` 与续写 notice 均为 0),因此该差异**尚无证据定性**;本次修的是「时序窗口下熔断不留续写且完全静默」这条已复现的缺陷,不等同于已解释该差异。
22
+
23
+ - **[测试隔离] `workbuddy-routes.test.ts` 的目录快照会跨用例串味:fire-and-forget 的写入在用例结束后才落盘,被下一个用例 rehydrate 回来,导致 CI ubuntu 上偶发失败**
24
+ - **现象**:v0.24.4 的 release bump 提交在 CI 上 ubuntu 失败而 windows 通过,唯一失败断言是 `test/workbuddy-routes.test.ts` 的 `expected [ { id: 'glm-5.3', …(10) }, …(6) ] to deeply equal []`,报错落在 `never serves one region the catalog snapshot read for another`。同一份代码在前一个提交(纯功能改动)上通过 CI,说明是**时序敏感**而非确定性失败;本地单独跑该文件 10 次也不复现。
25
+ - **根因(用插桩实测定位,不是推断)**:`loadConfigCatalog` 取目录成功后调用 `writeCatalogSnapshot`,而它是 **fire-and-forget**(调用方不 await);关键在于 `catalogSnapshotPath` 是在**写入真正执行时**才读 `DSH_HOME` 拼路径,不是入队时。给写路径插桩后抓到一条**没有任何用例栈帧**的写入(`processTicksAndRejections`,count=31),即一个脱离用例的孤儿写入在 afterEach 清理**之后**才落盘,于是 cn/intl 快照被重新创建、并被下一个用例(`intl` + `offline`)在首轮 cache miss 时 rehydrate 读回——正是该用例断言必须为 `[]` 的场景。**先前的排查方向(跨文件污染)已被证伪**:实测每个测试文件拥有各自的 `DSH_HOME` 与各自进程,文件之间不可能互污。
26
+ - **改法**:给**每个用例**分配私有 `DSH_HOME`(`mkdtemp`,`beforeEach` 写入、`afterEach` 还原),把竞态**消除**而不是收窄——孤儿写入只能落到上一个用例那个已无人读取的目录里。另在 `afterEach` 保留 `await flushCatalogSnapshots()`,让常规写入在目录被删前落定。(`dshHomeDir()` 每次调用都读环境变量,因此改环境变量即可生效。)
27
+ - **为什么不是"先 flush 再删文件"**:那是第一版修法,本地 10 次全绿、CI 仍然失败——它只能收窄窗口,无法阻止一个在清理之后才执行的写入。真正的修复必须是让"迟到的那一次写入"写进一个不会再被读的位置。
28
+ - **验证**:`npm run typecheck` 0 错误;全量**连续 3 次** `3743 passed | 7 skipped、0 failed`;目标文件连跑 6 次全绿。**承重已双向检查(负对照)**:在同一个测试文件里构造「用例 A 排队一次孤儿写入、不 await → 用例 B 读 `intl` + `offline`」,**共享 home 时读回 4 个模型(含注入的 `LEAKED-MODEL`)并使断言失败;改为每用例私有 home 后读回 0 个、通过**——同场景、同一迟到写入,唯一变量是 home 策略。
29
+
5
30
  ## 0.24.4 - 2026-10-15
6
31
  - **[Kimi Code] 额度倍率与缓存时长档位写进设置页说明:倍率此前只在官方英文 description 里隐含提及,缓存档位说明则完全没给选择依据**
7
32
  - **现象**:模型能力表里 `k3` 的说明是官方表格的英文原文,倍率只隐含在 "consumes about twice the quota of k3-256k" 一句里;`kimi-for-coding-highspeed` 的 3× 与 `kimi-for-coding` 的 1× 则一个字都没有。官方模型表实际声明的是 k3 = 2×、k3-256k = 1×、kimi-for-coding = 1×、highspeed = 3×,而**设置页从头到尾没有出现过这组数字**。缓存时长那一栏只说了「1h 写入更贵」,没给任何选择依据——用户无从判断该选哪个档。
package/lib/index.js CHANGED
@@ -32548,6 +32548,22 @@ const HEADER_PRODUCT = "x-product";
32548
32548
  const HEADER_IDE_NAME = "x-ide-name";
32549
32549
  const HEADER_REQUESTED_WITH = "x-requested-with";
32550
32550
  const CLIENT_PRODUCT = "SaaS";
32551
+ /**
32552
+ * Conversation header group the international gateway gates on.
32553
+ *
32554
+ * Measured 2026-10 on `www.workbuddy.ai`: a request carrying the identity
32555
+ * headers alone answers 400 `code 11128` whatever its message shape, while
32556
+ * adding exactly these five answers 200 with a normal SSE body. The other
32557
+ * headers the official client sends (trace context, `X-Agent-Intent`,
32558
+ * `X-Agent-Purpose`, `x-codebuddy-request`, its own user agent) were added one
32559
+ * at a time and each left the outcome unchanged, so this group is the minimal
32560
+ * sufficient set rather than a copy of the whole client.
32561
+ */
32562
+ const HEADER_CONVERSATION_ID = "x-conversation-id";
32563
+ const HEADER_CONVERSATION_REQUEST_ID = "x-conversation-request-id";
32564
+ const HEADER_CONVERSATION_MESSAGE_ID = "x-conversation-message-id";
32565
+ const HEADER_REQUEST_ID = "x-request-id";
32566
+ const HEADER_ACP_CONNECTION_ID = "acp-connection-id";
32551
32567
  /** Refresh-token header the token endpoint reads. */
32552
32568
  const HEADER_REFRESH_TOKEN = "x-refresh-token";
32553
32569
  /** Refresh origin marker; `workbuddy` for the .ai domains, `plugin` otherwise. */
@@ -34480,14 +34496,53 @@ function asNumber$4(value) {
34480
34496
  }
34481
34497
  }
34482
34498
  /**
34499
+ * One UUID-shaped value deterministically derived from a seed.
34500
+ *
34501
+ * Session-scoped conversation headers must keep the same value for the whole
34502
+ * conversation while looking like the v4 UUIDs the official client sends, so
34503
+ * the seed is hashed and the version/variant nibbles are stamped in rather than
34504
+ * taken from the digest. Nothing here is a credential or a secret: it is a
34505
+ * locally derived identifier that happens to travel on the wire.
34506
+ */
34507
+ function uuidFromSeed(seed) {
34508
+ const hex = createHash("sha256").update(seed).digest("hex");
34509
+ const variant = (Number.parseInt(hex[16] ?? "0", 16) & 3 | 8).toString(16);
34510
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-4${hex.slice(13, 16)}-${variant}${hex.slice(17, 20)}-${hex.slice(20, 32)}`;
34511
+ }
34512
+ /**
34513
+ * Conversation header group the international gateway demands.
34514
+ *
34515
+ * The gateway answers 400 `code 11128` to a chat request that omits these,
34516
+ * whatever its message shape, so they stand between the route and a working
34517
+ * conversation. `X-Conversation-ID`, `X-Conversation-Request-ID` and
34518
+ * `acp-connection-id` are session-scoped — the official client reuses one value
34519
+ * across a conversation — while the message and request ids are fresh per
34520
+ * request. An absent session id degrades to a random value for the scoped
34521
+ * three: measured to pass the check, but it loses the conversation identity the
34522
+ * gateway may tighten around later.
34523
+ */
34524
+ function conversationHeaders(sessionId) {
34525
+ const scoped = (tag) => sessionId === void 0 || sessionId === "" ? randomUUID() : uuidFromSeed(`${sessionId}\0${tag}`);
34526
+ return {
34527
+ [HEADER_CONVERSATION_ID]: scoped("conversation"),
34528
+ [HEADER_CONVERSATION_REQUEST_ID]: scoped("conversation-request"),
34529
+ [HEADER_ACP_CONNECTION_ID]: scoped("acp-connection"),
34530
+ [HEADER_CONVERSATION_MESSAGE_ID]: randomUUID(),
34531
+ [HEADER_REQUEST_ID]: randomUUID()
34532
+ };
34533
+ }
34534
+ /**
34483
34535
  * Attribution and identity headers for one backend request.
34484
34536
  *
34485
34537
  * The gateway gates on this header set: the international deployment answers
34486
34538
  * 401 without the CLI user agent and matching `Origin`/`Referer`, and both
34487
34539
  * deployments read the account identity headers rather than deriving it from
34488
34540
  * the bearer token alone.
34541
+ *
34542
+ * `channel` marks a request to the chat endpoint, which is the only surface
34543
+ * whose channel check wants the {@link conversationHeaders} group.
34489
34544
  */
34490
- function workBuddyHeaders(credentials, extra = {}) {
34545
+ function workBuddyHeaders(credentials, extra = {}, channel) {
34491
34546
  const domain = credentials.domain || "www.codebuddy.cn";
34492
34547
  const intl = isIntlDomain(domain);
34493
34548
  return {
@@ -34506,6 +34561,7 @@ function workBuddyHeaders(credentials, extra = {}) {
34506
34561
  origin: credentials.backend,
34507
34562
  referer: `${credentials.backend}/`
34508
34563
  } : {},
34564
+ ...intl && channel !== void 0 ? conversationHeaders(channel.sessionId) : {},
34509
34565
  ...extra
34510
34566
  };
34511
34567
  }
@@ -35611,7 +35667,7 @@ function registerWorkBuddyRoutes(ctx, store, modelSettings, preferences, options
35611
35667
  headers: workBuddyHeaders(credentials, {
35612
35668
  accept: "text/event-stream",
35613
35669
  "user-agent": CLIENT_USER_AGENT
35614
- }),
35670
+ }, {}),
35615
35671
  body,
35616
35672
  signal: AbortSignal.timeout(3e4)
35617
35673
  });
@@ -35802,7 +35858,11 @@ function registerWorkBuddyRoutes(ctx, store, modelSettings, preferences, options
35802
35858
  * A request whose first message is a user turn answers 400 `code 11128`
35803
35859
  * ("first message is not system prompt"). {@link buildChatRequest} injects
35804
35860
  * one when the caller supplied none, so a hand-built one-shot request cannot
35805
- * trip this.
35861
+ * trip this. Note that the same code is also the gateway's channel-verification
35862
+ * refusal (`msg: "conversation id missing"`), which the conversation header
35863
+ * group this route sends is what satisfies — see `conversationHeaders` in
35864
+ * `client.ts`. A history that is already correct can still answer 11128 for
35865
+ * that second reason, so the code alone does not implicate the messages.
35806
35866
  * 3. **Reasoning rides `delta.reasoning_content`,** not OpenAI's
35807
35867
  * `reasoning_summary`, and is emitted as its own DSH reasoning block.
35808
35868
  */
@@ -36654,7 +36714,7 @@ var WorkBuddyAdapter = class extends LlmAdapter {
36654
36714
  try {
36655
36715
  response = await fetchWithContextBudgetRecovery(fetchFn)(`${credentials.backend}${CHAT_PATH}`, {
36656
36716
  method: "POST",
36657
- headers: workBuddyHeaders(credentials, { accept: "text/event-stream" }),
36717
+ headers: workBuddyHeaders(credentials, { accept: "text/event-stream" }, { ...requestOptions.sessionId === void 0 ? {} : { sessionId: String(requestOptions.sessionId) } }),
36658
36718
  body,
36659
36719
  signal
36660
36720
  });
@@ -36730,7 +36790,7 @@ function classifyFailure$1(status, detail, headers) {
36730
36790
  }
36731
36791
  if (code === 11102) return new LlmError(`${PROVIDER_NAME$3} does not serve this model for the signed-in account: it is either unavailable in the account's region or not included in its plan. Pick a different model in Settings > WorkBuddy.${detail ? ` ${detail}` : ""}`, "PROVIDER_ERROR", { status });
36732
36792
  if (code === 11135 || code === 11133) return new LlmError(`${PROVIDER_NAME$3} rejected the request parameters (${code}). An image may be unsupported by this model or unreadable.${detail ? ` ${detail}` : ""}`, "PROVIDER_ERROR", { status });
36733
- if (code === 11128) return new LlmError(`${PROVIDER_NAME$3} rejected the message history: the conversation must open with a system prompt.${detail ? ` ${detail}` : ""}`, "PROVIDER_ERROR", { status });
36793
+ if (code === 11128) return new LlmError(/conversation id/i.test(detail) ? `${PROVIDER_NAME$3} blocked the request at its channel check (11128): the gateway did not accept it as an official client request. This is a plugin-side gap, not an account problem.` : `${PROVIDER_NAME$3} rejected the message history: the conversation must open with a system prompt.${detail ? ` ${detail}` : ""}`, "PROVIDER_ERROR", { status });
36734
36794
  if (status >= 500 || code === 11134) return new LlmError(`${PROVIDER_NAME$3} upstream server error (${status}): ${detail || "No response"}`, "SERVER", { status });
36735
36795
  return new LlmError(`${PROVIDER_NAME$3} API error (${status}): ${detail || "No response"}`, isHttpContextOverflow(status, detail) ? CONTEXT_OVERFLOW_CODE : "PROVIDER_ERROR", { status });
36736
36796
  }
@@ -59868,17 +59928,34 @@ function agentId(raw) {
59868
59928
  const id = raw?.id;
59869
59929
  return typeof id === "string" ? id : void 0;
59870
59930
  }
59931
+ /** A service object exposing the lookup the guard needs, if it is one. */
59932
+ function asRegistry(value) {
59933
+ return value !== null && typeof value === "object" && typeof value.get === "function" ? value : void 0;
59934
+ }
59871
59935
  /**
59872
- * The host's Agent registry, read defensively.
59936
+ * The host's Agent registry, read defensively through both available routes.
59937
+ *
59938
+ * `ctx.get` is tried FIRST and is the route that works in a real host. The
59939
+ * registry is provided by a sibling fiber, and Cordis raises
59940
+ * `cannot get property "agents" without inject` the moment a plugin that did
59941
+ * not declare `agents` reaches for the property — so reading only `ctx.agents`
59942
+ * made `resolveAgent` answer `undefined` on every real deployment. That is not
59943
+ * a missing resume: it is the silent half of the break, because `breakOff`
59944
+ * returns before the `cancel` that marks the turn as interrupted. Reading via
59945
+ * `ctx.get` needs no `inject` entry, so it also keeps this plugin loadable on
59946
+ * a host that does not provide the service at all, which the property fallback
59947
+ * and the `agent/created` map then cover.
59873
59948
  *
59874
- * A Cordis service that was never injected reads as undefined and a host
59875
- * without the service at all must not fail this plugin's load, so both the
59876
- * property read and the later lookup are guarded.
59949
+ * Both reads are guarded: a host without the reader, and one without the
59950
+ * service, must leave this plugin loadable rather than failing its import.
59877
59951
  */
59878
59952
  function agentRegistry(ctx) {
59879
59953
  try {
59880
- const registry = ctx.agents;
59881
- return typeof registry?.get === "function" ? registry : void 0;
59954
+ const registry = asRegistry(typeof ctx.get === "function" ? ctx.get("agents") : void 0);
59955
+ if (registry !== void 0) return registry;
59956
+ } catch {}
59957
+ try {
59958
+ return asRegistry(ctx.agents);
59882
59959
  } catch {
59883
59960
  return;
59884
59961
  }
@@ -112,9 +112,21 @@ export interface ReasoningCollapseContext {
112
112
  warn(message: string): void;
113
113
  } | undefined;
114
114
  /**
115
- * The harness Agent registry, read once so a guard installed after an Agent
116
- * was created can still resolve it. A host without the service degrades to
117
- * the `agent/created` map rather than failing this plugin's load.
115
+ * Read one service from the store, with no `inject` requirement.
116
+ *
117
+ * This is the read that actually reaches the Agent registry. `ctx.agents`
118
+ * below is a property read, and Cordis throws for a property the plugin did
119
+ * not declare in its `inject` list — the registry is provided by a SIBLING
120
+ * fiber (`@deepseek-ai/dsh-agent`), not by this plugin's own context — so
121
+ * the property path is the one that fails in a real host. `ctx.get` reads
122
+ * the service store directly and therefore needs no declaration. Optional so
123
+ * a host without the reader keeps the property fallback.
124
+ */
125
+ get?(name: string): unknown;
126
+ /**
127
+ * The harness Agent registry, read so a guard installed after an Agent was
128
+ * created can still resolve it. A host without the service degrades to the
129
+ * `agent/created` map rather than failing this plugin's load.
118
130
  */
119
131
  readonly agents?: {
120
132
  get(id: unknown): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/host/reasoning-collapse-guard/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/host/reasoning-collapse-guard/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/adapter.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,25 @@ export interface WorkBuddyRequestOptions {
7
7
  fetchFn?: typeof fetch;
8
8
  signal?: AbortSignal;
9
9
  }
10
+ /**
11
+ * Which chat surface a call is, for the headers only that surface needs.
12
+ *
13
+ * Passing this opts the request into the conversation header group. It is
14
+ * deliberately a separate argument rather than a consequence of `sessionId`
15
+ * being present: the group belongs to the chat endpoint's channel check, and
16
+ * the config, billing, refresh and check-in surfaces keep the exact header set
17
+ * they already worked with.
18
+ */
19
+ export interface WorkBuddyChannelOptions {
20
+ /**
21
+ * Harness session the chat call belongs to.
22
+ *
23
+ * Omit it for a call with no conversation behind it (the connection-test
24
+ * probe). The group is still sent — the gateway requires it either way — but
25
+ * the scoped ids fall back to random values.
26
+ */
27
+ sessionId?: string;
28
+ }
10
29
  /**
11
30
  * Attribution and identity headers for one backend request.
12
31
  *
@@ -14,8 +33,11 @@ export interface WorkBuddyRequestOptions {
14
33
  * 401 without the CLI user agent and matching `Origin`/`Referer`, and both
15
34
  * deployments read the account identity headers rather than deriving it from
16
35
  * the bearer token alone.
36
+ *
37
+ * `channel` marks a request to the chat endpoint, which is the only surface
38
+ * whose channel check wants the {@link conversationHeaders} group.
17
39
  */
18
- export declare function workBuddyHeaders(credentials: Pick<WorkBuddyCredentials, 'accessToken' | 'domain' | 'uid' | 'enterpriseId' | 'backend'>, extra?: Record<string, string>): Record<string, string>;
40
+ export declare function workBuddyHeaders(credentials: Pick<WorkBuddyCredentials, 'accessToken' | 'domain' | 'uid' | 'enterpriseId' | 'backend'>, extra?: Record<string, string>, channel?: WorkBuddyChannelOptions): Record<string, string>;
19
41
  /**
20
42
  * Refresh an access token against the endpoint the official IDE uses.
21
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/client.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,11 @@
11
11
  * A request whose first message is a user turn answers 400 `code 11128`
12
12
  * ("first message is not system prompt"). {@link buildChatRequest} injects
13
13
  * one when the caller supplied none, so a hand-built one-shot request cannot
14
- * trip this.
14
+ * trip this. Note that the same code is also the gateway's channel-verification
15
+ * refusal (`msg: "conversation id missing"`), which the conversation header
16
+ * group this route sends is what satisfies — see `conversationHeaders` in
17
+ * `client.ts`. A history that is already correct can still answer 11128 for
18
+ * that second reason, so the code alone does not implicate the messages.
15
19
  * 3. **Reasoning rides `delta.reasoning_content`,** not OpenAI's
16
20
  * `reasoning_summary`, and is emitted as its own DSH reasoning block.
17
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/mapper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,EAGL,sBAAsB,EACtB,WAAW,EACX,aAAa,EAEd,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EAGtB,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAKL,cAAc,EAKf,MAAM,aAAa,CAAA;AACpB,OAAO,EAUL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAIV,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAG3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AA6C7D;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,UAAO,GACb,MAAM,EAAE,CASV;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,oBAAoB,EAAE,CA6BxB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAA;IACnC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAA;IAChD,4FAA4F;IAC5F,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAC5D;AAMD,mFAAmF;AACnF,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,wBAAwB,EACtC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,kBAAkB,CAAC,CA2E7B;AAED,qEAAqE;AACrE,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,wBAAwB,EACtC,OAAO,GAAE,sBAA2B,GACnC,MAAM,IAAI,CAkXZ;AAED,OAAO,EACL,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,CAAA"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,EAGL,sBAAsB,EACtB,WAAW,EACX,aAAa,EAEd,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EAGtB,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAKL,cAAc,EAKf,MAAM,aAAa,CAAA;AACpB,OAAO,EAUL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAIV,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAG3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AA6C7D;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,UAAO,GACb,MAAM,EAAE,CASV;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,oBAAoB,EAAE,CA6BxB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAA;IACnC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAA;IAChD,4FAA4F;IAC5F,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAC5D;AAMD,mFAAmF;AACnF,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,wBAAwB,EACtC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,kBAAkB,CAAC,CA2E7B;AAED,qEAAqE;AACrE,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,wBAAwB,EACtC,OAAO,GAAE,sBAA2B,GACnC,MAAM,IAAI,CA2XZ;AAED,OAAO,EACL,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,CAAA"}
@@ -76,6 +76,22 @@ export declare const HEADER_PRODUCT = "x-product";
76
76
  export declare const HEADER_IDE_NAME = "x-ide-name";
77
77
  export declare const HEADER_REQUESTED_WITH = "x-requested-with";
78
78
  export declare const CLIENT_PRODUCT = "SaaS";
79
+ /**
80
+ * Conversation header group the international gateway gates on.
81
+ *
82
+ * Measured 2026-10 on `www.workbuddy.ai`: a request carrying the identity
83
+ * headers alone answers 400 `code 11128` whatever its message shape, while
84
+ * adding exactly these five answers 200 with a normal SSE body. The other
85
+ * headers the official client sends (trace context, `X-Agent-Intent`,
86
+ * `X-Agent-Purpose`, `x-codebuddy-request`, its own user agent) were added one
87
+ * at a time and each left the outcome unchanged, so this group is the minimal
88
+ * sufficient set rather than a copy of the whole client.
89
+ */
90
+ export declare const HEADER_CONVERSATION_ID = "x-conversation-id";
91
+ export declare const HEADER_CONVERSATION_REQUEST_ID = "x-conversation-request-id";
92
+ export declare const HEADER_CONVERSATION_MESSAGE_ID = "x-conversation-message-id";
93
+ export declare const HEADER_REQUEST_ID = "x-request-id";
94
+ export declare const HEADER_ACP_CONNECTION_ID = "acp-connection-id";
79
95
  /** Refresh-token header the token endpoint reads. */
80
96
  export declare const HEADER_REFRESH_TOKEN = "x-refresh-token";
81
97
  /** Refresh origin marker; `workbuddy` for the .ai domains, `plugin` otherwise. */
@@ -102,7 +118,16 @@ export declare const ERROR_CODE: {
102
118
  readonly BAD_REQUEST: 11101;
103
119
  /** Model not served in this region — a wrong-region request. */
104
120
  readonly MODEL_UNAVAILABLE: 11102;
105
- /** Message history violates the required shape (missing leading system prompt). */
121
+ /**
122
+ * Gateway channel verification refused the request.
123
+ *
124
+ * The code is overloaded upstream, so the message — not the code — decides
125
+ * what it means. Measured 2026-09: the international chat endpoint answers it
126
+ * for a request that does not open with a system turn. Measured 2026-10: the
127
+ * same code, with `msg: "conversation id missing"`, is the answer to *every*
128
+ * request that omits the {@link HEADER_CONVERSATION_ID} group, whatever its
129
+ * message shape. Read `msg` before concluding the history is at fault.
130
+ */
106
131
  readonly SECURITY_BLOCKED: 11128;
107
132
  /** Provider rejected the parameters, e.g. an unsupported image for that model. */
108
133
  readonly PROVIDER_REJECTED: 11133;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAI1E,eAAO,MAAM,WAAW,2BAA2B,CAAA;AACnD,eAAO,MAAM,aAAa,gDAA4B,CAAA;AAEtD,wBAAwB;AACxB,eAAO,MAAM,UAAU,gCAAgC,CAAA;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,6CAA8C,CAAA;AAE/E,iEAAiE;AACjE,eAAO,MAAM,cAAc,qBAAqB,CAAA;AAEhD,kDAAkD;AAClD,eAAO,MAAM,SAAS,yBAAyB,CAAA;AAC/C;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,eAAe,CAAA;AACvC,4EAA4E;AAC5E,eAAO,MAAM,YAAY,kCAAkC,CAAA;AAC3D,yEAAyE;AACzE,eAAO,MAAM,YAAY,qCAAqC,CAAA;AAC9D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,uBAAuB,CAAA;AAChD,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,0BAA0B,CAAA;AACvD,eAAO,MAAM,gBAAgB,0BAA0B,CAAA;AACvD,eAAO,MAAM,cAAc,QAAQ,CAAA;AACnC,eAAO,MAAM,kBAAkB,QAAQ,CAAA;AACvC,eAAO,MAAM,sBAAsB,OAAQ,CAAA;AAC3C,eAAO,MAAM,gBAAgB,QAAgB,CAAA;AAE7C;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,gCAAgC,CAAA;AAE9D,oDAAoD;AACpD,eAAO,MAAM,cAAc,cAAc,CAAA;AACzC,eAAO,MAAM,oBAAoB,oBAAoB,CAAA;AACrD,eAAO,MAAM,gBAAgB,gBAAgB,CAAA;AAC7C,eAAO,MAAM,aAAa,aAAa,CAAA;AACvC,eAAO,MAAM,cAAc,cAAc,CAAA;AACzC,eAAO,MAAM,eAAe,eAAe,CAAA;AAC3C,eAAO,MAAM,qBAAqB,qBAAqB,CAAA;AACvD,eAAO,MAAM,cAAc,SAAS,CAAA;AAEpC,qDAAqD;AACrD,eAAO,MAAM,oBAAoB,oBAAoB,CAAA;AACrD,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAE5D,oCAAoC;AACpC,eAAO,MAAM,oBAAoB,QAAS,CAAA;AAC1C,eAAO,MAAM,eAAe,SAAU,CAAA;AACtC,eAAO,MAAM,kBAAkB,QAAgB,CAAA;AAC/C,eAAO,MAAM,sBAAsB,SAAU,CAAA;AAC7C,eAAO,MAAM,wBAAwB,4BAA4B,CAAA;AAEjE,eAAO,MAAM,kBAAkB,QAAS,CAAA;AACxC,eAAO,MAAM,sBAAsB,SAAU,CAAA;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QAAS,CAAA;AAEzC,sDAAsD;AACtD,eAAO,MAAM,UAAU;IACrB,0EAA0E;;IAE1E,gEAAgE;;IAEhE,mFAAmF;;IAEnF,kFAAkF;;IAElF,6BAA6B;;IAE7B,+DAA+D;;IAE/D,0CAA0C;;IAE1C,gFAAgF;;IAEhF,sDAAsD;;CAE9C,CAAA;AAEV,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,uEAAuE;AACvE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eddyskywalker/dsh-chatgpt-subscription",
3
- "version": "0.24.4",
3
+ "version": "0.24.6",
4
4
  "description": "DSH provider plugin for Codex access through a ChatGPT subscription.",
5
5
  "icon": "./icon.svg",
6
6
  "author": {