@eddyskywalker/dsh-chatgpt-subscription 0.24.5 → 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 +8 -0
- package/lib/index.js +65 -5
- package/lib/types/host/workbuddy/adapter.d.ts.map +1 -1
- package/lib/types/host/workbuddy/client.d.ts +23 -1
- package/lib/types/host/workbuddy/client.d.ts.map +1 -1
- package/lib/types/host/workbuddy/mapper.d.ts +5 -1
- package/lib/types/host/workbuddy/mapper.d.ts.map +1 -1
- package/lib/types/host/workbuddy/routes.d.ts.map +1 -1
- package/lib/types/host/workbuddy/types.d.ts +26 -1
- package/lib/types/host/workbuddy/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
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
|
+
|
|
5
13
|
## 0.24.5 - 2026-10-16
|
|
6
14
|
- **[推理塌缩守卫] Agent 先于守卫创建时注册表两条读取路径同时失效:熔断生效但续写从未排队,回合被截断后静默结束**
|
|
7
15
|
- **现象**:对话在思考中途**没有任何报错地突然结束**,界面上什么都不显示。
|
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
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EACV,QAAQ,EACR,iBAAiB,EAEjB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAGL,WAAW,EACX,aAAa,EAGd,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EAEtB,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAQL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAQL,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAkB7D;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,EAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GACjC,iBAAiB,GAAG,SAAS,CAQ/B;AAED,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,QAAgB,CAAA;AAE7C,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,2EAA2E;IAC3E,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,oBAAoB,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAA;IACnF;;;;;OAKG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAA;CACnC;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IAK5C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAGtC,KAAK,sBAA4B,EACjC,aAAa,yBAA+B,EAC5C,WAAW,CAAC,EAAE,wBAAwB,YAAA,EACtC,OAAO,GAAE,uBAA4B;IAMxD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAI/C,mBAAmB,IAAI,mBAAmB;IAI1C,mBAAmB,IAAI,SAAS;IAIhC,OAAO,CAAC,QAAQ;YAIF,WAAW;IAQzB;;;;;;;OAOG;YACW,OAAO;IAOrB;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;IA4B/D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsCpG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO/F,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,CAAC,WAAW,CAAC;IAenE;;;;;;;;;;;;;;OAcG;YACW,SAAS;YAeR,aAAa;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EACV,QAAQ,EACR,iBAAiB,EAEjB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAGL,WAAW,EACX,aAAa,EAGd,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EAEtB,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAQL,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAQL,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAkB7D;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,EAChC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GACjC,iBAAiB,GAAG,SAAS,CAQ/B;AAED,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,QAAgB,CAAA;AAE7C,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,2EAA2E;IAC3E,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,oBAAoB,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAA;IACnF;;;;;OAKG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAA;CACnC;AAED,qBAAa,gBAAiB,SAAQ,UAAU;IAK5C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAGtC,KAAK,sBAA4B,EACjC,aAAa,yBAA+B,EAC5C,WAAW,CAAC,EAAE,wBAAwB,YAAA,EACtC,OAAO,GAAE,uBAA4B;IAMxD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAI/C,mBAAmB,IAAI,mBAAmB;IAI1C,mBAAmB,IAAI,SAAS;IAIhC,OAAO,CAAC,QAAQ;YAIF,WAAW;IAQzB;;;;;;;OAOG;YACW,OAAO;IAOrB;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;IA4B/D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsCpG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO/F,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,CAAC,WAAW,CAAC;IAenE;;;;;;;;;;;;;;OAcG;YACW,SAAS;YAeR,aAAa;CAuJ7B;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CA6GV;AA4DD,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK3D;AAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -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
|
|
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":"
|
|
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":"AAAA
|
|
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,
|
|
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
|
-
/**
|
|
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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/types.ts"],"names":[],"mappings":"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"}
|