@eddyskywalker/dsh-chatgpt-subscription 0.25.1 → 0.26.1

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,24 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.26.1 - 2026-10-17
6
+ - **[WorkBuddy] 一次上游 401 把整个号池写成「需要重新登录」且永不恢复:线路跑着跑着忽然全部国区账号要重登**
7
+ - **现象**:运行中的一轮突然失败,报 `WorkBuddy(CodeBuddy 订阅) rejected the stored credential (401). Sign in again with the CodeBuddy desktop client.`;随后设置卡片里**每一个**国区账号都显示「需要重新登录」,只有重新登录(重新加号)才能恢复。
8
+ - **本机实证(非推断)**:解密号池文件读到事发那几秒——22:52:42 / 22:52:48 两个国际区账号先被 429 冷却,同一个请求随即把两个国区账号依次判 401;22:54:05 / 22:54:41 用户重新登录,`authStatus` 才被清掉。同时用库里的 bearer 打两个面:`GET /v3/config` → **200**,`POST /v2/chat/completions` → **401 + APISIX HTML**;同一枚 token 在一个面被接受、在另一个面被拒,即这个 401 是 chat 路由/会话层的判定,不是「token 坏了」。库里 5 枚国区 bearer 中 4 枚在 chat 面拿到 `400 {"code":11101}`(鉴权已过),只有会话被后登录顶掉的那枚 401。
9
+ - **根因**:`classifyFailure` 对 401 一律 `INVALID_CREDENTIAL`(403 有正文翻案,401 没有),请求循环随即对**每个**被拒账号写 `markAuthFailed → authStatus='expired'` 再轮下一个——**一个请求就能把整池写死**;而本线路从不调用 `clearAuthFailed`,也没有 heal,写死的行再也回不来。雪上加霜的是本地时钟:access token 有效期约 28 天,`needsRefresh` 几乎永远不会在 401 时触发,于是「会话被顶掉」直接等于「永久 401 + 全池登出 + 只能人工重登」。签到路径(`checkin.ts`)一直有「401 → 强制续期一次再重试」的处理,chat 路径却没有。
10
+ - **改法(三处)**:① chat 请求收到 401 时,先对**同一个账号**强制 `renewCredential` 一次并用新 token 重放同一份 body;续期成功=凭据还活着,什么都不写;续期被上游拒绝=真死,由号池既有的 `refreshFailureStatus` 写标记——**请求期不再写 `markAuthFailed`**。② 新增 `healStaleAuthFailures`:选号前与列表前重新对照权威存储,账号已换另一枚**未过期** token 就清掉标记并采用它,仍持着被拒那枚的保留标记。③ 两处都守「一次」纪律:一次续期、一次重放,第二次仍 401 就换号或如实报错,不写永久状态。
11
+ - **验证**:`npm run typecheck` 0 错误;全量 **231 passed | 1 skipped(232 文件)、3813 passed | 7 skipped、0 failed**(基线 3809,新增 4 例)。**承重已双向检查**:关掉续期 → 2 例红;把 `markAuthFailed` 加回请求期 → 1 例红;关掉 heal → 1 例红;恢复后全绿。
12
+ - **升级提示**:升级前已被标成「需要重新登录」的账号,若权威存储里已有更新过的 token 会自动恢复;没有的更动过的仍需重新登录一次。
13
+
14
+ ## 0.26.0 - 2026-10-17
15
+
16
+ - **[MiniMax Code] 无答案轮次现在会自动续跑跑完(社区 PR #61),并把「续跑预算」真正做成有界**
17
+ - **问题**:0.24.7 之后,模型把整轮花在思考上、只回 thinking 块就 `end_turn` 的轮次不再静默停住,而是**明确报错**——诚实,但这一轮仍然没跑完。harness 没有「模型啥也没干就停了」这个失败模式的表示,所以报完错这一轮就结束了,没有任何东西接着往下做。PR #61 新增 host 侧钩子监听 `llm/stream` 瀑布,认出这条失败后 steer 一句续跑提示,让这一轮跑完。**关键约束(PR 已论证且经复核)**:steer 必须在 Agent 空闲时发——`Agent.steer` 往 inbox 里 splice 并调 `wakeDriver`,而 `wakeDriver` 只在 `phase.kind === 'idle'` 时开新回合;回合还在 running 时发,什么都不 latch,消息会一直躺在 inbox 里没人读。因此这里等 `whenIdle()`。失败靠 `mapper.ts` 导出的 `NO_ANSWER_PHRASE` 识别,不抄句子。配置:`"noAnswerResume": { "maxResumes": 2, "text": "..." }`,`"noAnswerResume": false` 关闭。
18
+ - **合并后另行修复的两个缺陷(在发版前发现,若直接发布会让默认安装的用户被无限烧请求)**:① **`maxResumes` 实际不封顶**——`settle()` 从生成器的 `finally` 调用,而 `finally` 在**正常结束、被放弃、抛错**三种退出上都会跑;流被放弃时根本没见到 finish chunk,`answerless` 一定是 false,只要此前吐过正文 `answered` 就是 true,于是那句 `if (answered) consecutive = 0` 把计数清零。生产上有两条常规路径会踩到:用户按停止(harness `for await` + `throwIfAborted`),以及**推理塌缩守卫**——它在 `llm/stream` 上先注册,因此处在 Cordis 瀑布的**外层**,`return` 时不给 finish chunk。实测 `maxResumes: 2` 却续跑了 6 次。改法:只有**读到底**的流才结算,被放弃或抛错的流什么都不能证明,既不消耗预算也不清零、且不写日志。② **计数不是「连续」,日志在说谎**——只有「答出来了」的轮次才清零,于是 `aborted finish` / `max-tokens` / `TIMEOUT` / 其他 `PROVIDER_ERROR` 都不会打断连击:三段**不相邻**的无答案轮照样打出 `gave up after 2 answerless turns in a row`,预算被花掉一次之后该功能在本会话余下时间里静默失效。改法:**任何**正常结束且非无答案的轮次都清零连击,让标识符、注释与日志三者一致。
19
+ - **另外三处加固**:③ 每会话状态在 `agent/disposed` 时清理(照搬塌缩守卫的做法),不再为进程生命周期内每个会话常驻一条;④ 插件销毁后排队中的续跑不再 steer,且一个会话同时只持有一条排队续跑(同一轮重试 settle 两次不会投递两次);⑤ `isVisible` 改为 `trim()`,与产出方 `hasVisibleOutput` 完全一致,避免消费方与产出方对「这一轮算不算答了」产生分歧。
20
+ - **验证**:`npm run typecheck` 0 错误;`test/no-answer-resume.test.ts` **22 passed**(贡献者的 15 例 + 7 例回归:`iterator.return()` 放弃、中途抛错、`TIMEOUT` 轮次、销毁时有续跑在排队、空闲前两次 settle);`test/reasoning-collapse-guard.test.ts` 80 passed;全量 **231 passed | 1 skipped(232 文件)、3809 passed | 7 skipped、0 failed**。**承重已双向检查**:把源码还原到合并提交后重跑,新增用例 **7 failed | 15 passed**,失败项正是上述缺陷,恢复后重新全绿。
21
+ - **复核结论(对照真实 harness 源码逐条核对)**:`llm/stream` 瀑布签名、`{ global: true }` 为真实的 `EventOptions` 字段、`GenerateOptions.sessionId`/`purpose`、`StreamChunk` 的 finish/delta 形状、`Agent.steer`+`whenIdle` 语义(空闲 steer 会开新回合、忙碌 steer 会 latch 并被 live driver 认领、只有 `cancel()` 才丢弃)、`ctx.get('agents')` 是**合法的免 inject 读取**而 `ctx.agents` 会抛——全部为真;`NO_ANSWER_PHRASE` 只有一个产出方,不存在跨线路误判。
22
+ - **未做**:真正的「不让它发生」仍要靠请求侧降档(effort 从 max 降到 xhigh/high),那是部署配置、不在本仓;本版只让**已经发生**的轮次跑完。子代理会话同样会被续跑(`purpose` 为 undefined 且自带 sessionId),若日后需要只对主线生效,应以 `request.provider` 收窄,留作后续。
5
23
  ## 0.25.1 - 2026-10-17
6
24
 
7
25
  - **[Harness & 调度预设] 适配 DSH 0.2.1-rc.1 / 0.2.1-rc.2,并修复调度模式在 0.2.1 下报 `unknown prompt variable "{{cwd}}"` 的启动失败**
package/README.md CHANGED
@@ -629,6 +629,13 @@ DSH 设置页的「Subagent」卡片会把勾选的模型写成会话级的允
629
629
 
630
630
  目录里通常同时存在当前凭据与若干带时间戳的历史快照。插件**优先取 `workbuddy-desktop.info` / `codebuddy-desktop.info` 这类规范文件名**,其余按 token 剩余有效期取最长的一个——只按文件 mtime 选会选到过期快照。卡片会列出目录里所有可用凭据,标明各自区域。
631
631
 
632
+ **失败分类与重试**:这条线路把失败分成「换号能解决」与「换号也一样」两类,判据不是状态码本身。
633
+
634
+ - **401 不等于凭据失效**:实测同一枚 bearer 在 `GET /v3/config` 上是 200、在 `POST /v2/chat/completions` 上是 401(APISIX 生成的 HTML 拒绝页)。本线路的 access token 有效期约 28 天,本地时钟**几乎永远不会**在 401 时触发续期,因此这类 401 多半是会话被顶掉或网关/路由层拒绝。收到 401 时先对**同一个账号**强制续期一次(`POST /v2/plugin/auth/token/refresh`)并用新 token **原样重放同一份请求体**:续期成功即说明凭据还活着,不写任何账号状态;**只有续期本身被上游拒绝**才把该账号记为需要重新登录,此时才换号。
635
+ - **请求期不写「需要重新登录」**:401 只让该账号退出**本次请求**的轮换,不写号池状态。此前一次 lane 级的 401 会在同一个请求里把每一个账号依次写成 `expired`,而号池没有任何清除路径,于是整条线路要求全部重新登录。
636
+ - **自愈**:被标记的账号在**每个请求前**与卡片列表前都会重新对照权威存储(桌面账号看 CodeBuddy 自己的凭据文件、托管账号看插件的加密存储);换了另一枚**未过期** token 就清掉标记并采用新凭据,仍持着被拒那枚的账号保留标记。
637
+ - **429 冷却换号**:按 `Retry-After`(缺省 5 分钟,上限 10 分钟)冷却该账号,并用同一份 body 换下一个账号重试。
638
+
632
639
  **上游接口**:
633
640
 
634
641
  | 用途 | 路径(前缀为区域后端) |
package/lib/index.js CHANGED
@@ -31336,7 +31336,7 @@ function projectAccount$2(input) {
31336
31336
  * Takes the summary shape as well as the pool row, because both the card's list
31337
31337
  * and the routing read ask the same question about it.
31338
31338
  */
31339
- function isMarkedFailed(account) {
31339
+ function isMarkedFailed$1(account) {
31340
31340
  return account.authStatus !== void 0 && account.authStatus !== "ok";
31341
31341
  }
31342
31342
  /** The alias an account is labelled with when the user has not named it. */
@@ -31575,7 +31575,7 @@ var MinimaxCodeAccountPool = class extends AccountPoolCore {
31575
31575
  */
31576
31576
  async listAccounts() {
31577
31577
  const summaries = await super.listAccounts();
31578
- if (!summaries.some(isMarkedFailed)) return summaries;
31578
+ if (!summaries.some(isMarkedFailed$1)) return summaries;
31579
31579
  await this.healStaleAuthFailures().catch(() => void 0);
31580
31580
  return await super.listAccounts();
31581
31581
  }
@@ -31591,7 +31591,7 @@ var MinimaxCodeAccountPool = class extends AccountPoolCore {
31591
31591
  */
31592
31592
  async getEffectiveAccount(excludeIds, fetchFn = fetch) {
31593
31593
  const data = await this.read();
31594
- if (data.accounts.some(isMarkedFailed)) await this.healStaleAuthFailures(data).catch(() => void 0);
31594
+ if (data.accounts.some(isMarkedFailed$1)) await this.healStaleAuthFailures(data).catch(() => void 0);
31595
31595
  return await super.getEffectiveAccount(excludeIds, fetchFn);
31596
31596
  }
31597
31597
  /**
@@ -31610,7 +31610,7 @@ var MinimaxCodeAccountPool = class extends AccountPoolCore {
31610
31610
  * because that one genuinely needs a sign-in.
31611
31611
  */
31612
31612
  async healStaleAuthFailures(current) {
31613
- const failedAccounts = (current ?? await this.read()).accounts.filter(isMarkedFailed);
31613
+ const failedAccounts = (current ?? await this.read()).accounts.filter(isMarkedFailed$1);
31614
31614
  if (failedAccounts.length === 0) return false;
31615
31615
  const targets = new Map(failedAccounts.map((account) => [account.id, {
31616
31616
  credentials: account.credentials,
@@ -36784,7 +36784,7 @@ var WorkBuddyAdapter = class extends LlmAdapter {
36784
36784
  const pool = this.accountPool;
36785
36785
  const tried = /* @__PURE__ */ new Set();
36786
36786
  let response;
36787
- while (true) {
36787
+ rotation: while (true) {
36788
36788
  let credentials;
36789
36789
  let accountId;
36790
36790
  if (pool === null) {
@@ -36804,27 +36804,41 @@ var WorkBuddyAdapter = class extends LlmAdapter {
36804
36804
  tried.add(accountId);
36805
36805
  credentials = effective.credentials;
36806
36806
  }
36807
- try {
36808
- response = await fetchWithContextBudgetRecovery(fetchFn)(`${credentials.backend}${CHAT_PATH}`, {
36809
- method: "POST",
36810
- headers: workBuddyHeaders(credentials, { accept: "text/event-stream" }, { ...requestOptions.sessionId === void 0 ? {} : { sessionId: String(requestOptions.sessionId) } }),
36811
- body,
36812
- signal
36813
- });
36814
- } catch (error) {
36815
- if (signal.aborted) throw new LlmError("WorkBuddy request aborted", "ABORTED", { cause: error });
36816
- throw new LlmError(`WorkBuddy request failed: ${error instanceof Error ? error.message : String(error)}`, "TRANSPORT", { cause: error });
36807
+ let renewed = false;
36808
+ let refusedDetail = "";
36809
+ while (true) {
36810
+ try {
36811
+ response = await fetchWithContextBudgetRecovery(fetchFn)(`${credentials.backend}${CHAT_PATH}`, {
36812
+ method: "POST",
36813
+ headers: workBuddyHeaders(credentials, { accept: "text/event-stream" }, { ...requestOptions.sessionId === void 0 ? {} : { sessionId: String(requestOptions.sessionId) } }),
36814
+ body,
36815
+ signal
36816
+ });
36817
+ } catch (error) {
36818
+ if (signal.aborted) throw new LlmError("WorkBuddy request aborted", "ABORTED", { cause: error });
36819
+ throw new LlmError(`WorkBuddy request failed: ${error instanceof Error ? error.message : String(error)}`, "TRANSPORT", { cause: error });
36820
+ }
36821
+ if (response.ok) break;
36822
+ refusedDetail = (await response.text().catch(() => "")).slice(0, 600);
36823
+ if (renewed || response.status !== 401 || pool === null || accountId === void 0) break;
36824
+ renewed = true;
36825
+ const refusedAccount = accountId;
36826
+ try {
36827
+ credentials = await pool.renewCredential(refusedAccount, fetchFn, credentials);
36828
+ } catch (error) {
36829
+ const verdict = error instanceof LlmError ? error : new LlmError(`${PROVIDER_NAME$3} credential could not be renewed after the service refused it: ${error instanceof Error ? error.message : String(error)}`, "INVALID_CREDENTIAL", { cause: error });
36830
+ if (await pool.hasAnotherAvailableAccount(tried)) continue rotation;
36831
+ throw verdict;
36832
+ }
36817
36833
  }
36818
36834
  if (response.ok) break;
36819
- const detail = (await response.text().catch(() => "")).slice(0, 600);
36820
- const failure = classifyFailure$1(response.status, detail, response.headers);
36835
+ const failure = classifyFailure$1(response.status, refusedDetail, response.headers);
36821
36836
  if (pool !== null && accountId !== void 0) {
36822
36837
  const after = retryAfterMs$1(response.headers);
36823
36838
  if (failure.code === "RATE_LIMIT") {
36824
36839
  await pool.markCooldown(accountId, after ?? 3e5, `${PROVIDER_NAME$3} 429`).catch(() => void 0);
36825
36840
  if (await pool.hasAnotherAvailableAccount(tried)) continue;
36826
36841
  } else if (failure.code === "INVALID_CREDENTIAL") {
36827
- await pool.markAuthFailed(accountId, failure.message).catch(() => void 0);
36828
36842
  if (await pool.hasAnotherAvailableAccount(tried)) continue;
36829
36843
  }
36830
36844
  }
@@ -37262,6 +37276,65 @@ var WorkBuddyAccountPool = class extends AccountPoolCore {
37262
37276
  return this.listAccounts();
37263
37277
  }
37264
37278
  /**
37279
+ * A stale `authStatus` is cleared once the credential in force has moved on.
37280
+ *
37281
+ * The marker records that ONE token was refused; it does not record that the
37282
+ * sign-in is gone. This line can still produce it from a token-endpoint
37283
+ * refusal, and the copy that refusal was about can be replaced afterwards by
37284
+ * whoever owns it — the IDE rotates a desktop account's token on its own
37285
+ * schedule, and the daily check-in renews a managed one and writes it back to
37286
+ * this plugin's store. Nothing else in the system ever revisits an
37287
+ * `authStatus`, so without this a row stays out of rotation for good and the
37288
+ * card keeps saying "需要重新登录" for an account that is signed in.
37289
+ *
37290
+ * The verdict is re-checked against what the store holds NOW: a row whose
37291
+ * account has a DIFFERENT, unexpired token is routable again and adopts it,
37292
+ * while a row still holding the refused token keeps its marker — that one
37293
+ * really does need a sign-in.
37294
+ */
37295
+ async healStaleAuthFailures(current) {
37296
+ if (!(current ?? await this.read()).accounts.some(isMarkedFailed)) return false;
37297
+ const live = await this.store.list().catch(() => []);
37298
+ if (live.length === 0) return false;
37299
+ const byId = /* @__PURE__ */ new Map();
37300
+ for (const credentials of live) byId.set(workBuddyAccountId(credentials), credentials);
37301
+ return await this.updatePool((draft) => {
37302
+ let changed = false;
37303
+ for (const account of draft.accounts) {
37304
+ if (!isMarkedFailed(account)) continue;
37305
+ const candidate = byId.get(account.id);
37306
+ if (candidate === void 0) continue;
37307
+ if (candidate.accessToken === account.credentials.accessToken) continue;
37308
+ if (isExpired(candidate)) continue;
37309
+ account.authStatus = void 0;
37310
+ account.authFailedReason = void 0;
37311
+ account.credentials = candidate;
37312
+ changed = true;
37313
+ }
37314
+ return changed;
37315
+ });
37316
+ }
37317
+ /** Account summaries, with a marker the credentials have outlived cleared. */
37318
+ async listAccounts() {
37319
+ const summaries = await super.listAccounts();
37320
+ if (!summaries.some(isMarkedFailed)) return summaries;
37321
+ await this.healStaleAuthFailures().catch(() => void 0);
37322
+ return await super.listAccounts();
37323
+ }
37324
+ /**
37325
+ * Pick an account, healing a stale marker first.
37326
+ *
37327
+ * The healing belongs on the request path, not only on the card: an account
37328
+ * marked expired is excluded by the core's eligibility rule, so until the
37329
+ * marker is gone the next request is answered with "全部 N 个账号都需要重新登录"
37330
+ * for a credential the store has already replaced.
37331
+ */
37332
+ async getEffectiveAccount(excludeIds, fetchFn = fetch, forceRefresh = false) {
37333
+ const data = await this.read();
37334
+ if (data.accounts.some(isMarkedFailed)) await this.healStaleAuthFailures(data).catch(() => void 0);
37335
+ return await super.getEffectiveAccount(excludeIds, fetchFn, forceRefresh);
37336
+ }
37337
+ /**
37265
37338
  * Pick the account for the next request.
37266
37339
  *
37267
37340
  * A desktop account's credential is re-read from the IDE's file first: the IDE
@@ -37328,6 +37401,15 @@ var WorkBuddyAccountPool = class extends AccountPoolCore {
37328
37401
  super.deleteAccountFromPool(data, accountId);
37329
37402
  }
37330
37403
  };
37404
+ /**
37405
+ * Whether a row's credential was reported as refused and never cleared.
37406
+ *
37407
+ * Mirrors the core's own eligibility predicate (`authStatus` present and not
37408
+ * `ok`), so the heal agrees with the rule that excluded the row.
37409
+ */
37410
+ function isMarkedFailed(account) {
37411
+ return account.authStatus !== void 0 && account.authStatus !== "ok";
37412
+ }
37331
37413
  //#endregion
37332
37414
  //#region src/host/claude/types.ts
37333
37415
  /**
@@ -59895,7 +59977,7 @@ const DEFAULT_GUARD_OPTIONS = {
59895
59977
  semanticStrictConfirmations: 5,
59896
59978
  now: () => Date.now()
59897
59979
  };
59898
- function pruneUndefined(options) {
59980
+ function pruneUndefined$1(options) {
59899
59981
  const result = {};
59900
59982
  for (const [key, value] of Object.entries(options)) if (value !== void 0) result[key] = value;
59901
59983
  return result;
@@ -59908,7 +59990,7 @@ function pruneUndefined(options) {
59908
59990
  function resolveGuardOptions(options = {}) {
59909
59991
  const resolved = {
59910
59992
  ...DEFAULT_GUARD_OPTIONS,
59911
- ...pruneUndefined(options)
59993
+ ...pruneUndefined$1(options)
59912
59994
  };
59913
59995
  if (!Number.isInteger(resolved.windowChars) || resolved.windowChars < 1) throw new Error(`reasoning-collapse-guard: invalid windowChars ${String(resolved.windowChars)} — must be an integer >= 1`);
59914
59996
  if (!Number.isInteger(resolved.ngramSize) || resolved.ngramSize < 2) throw new Error(`reasoning-collapse-guard: invalid ngramSize ${String(resolved.ngramSize)} — must be an integer >= 2`);
@@ -60074,7 +60156,7 @@ function createBreakerState() {
60074
60156
  * merge-extensible `MessageSourceMap`, so the resume carries real provenance
60075
60157
  * instead of impersonating a human turn.
60076
60158
  */
60077
- function createResumeMessage(text) {
60159
+ function createResumeMessage$1(text) {
60078
60160
  return createUserMessage({
60079
60161
  content: [{
60080
60162
  type: "text",
@@ -60092,12 +60174,12 @@ function appendWindow(current, addition, limit) {
60092
60174
  return combined.length > limit ? combined.slice(-limit) : combined;
60093
60175
  }
60094
60176
  /** An Agent's session identity as the plain string a request carries. */
60095
- function agentId(raw) {
60177
+ function agentId$1(raw) {
60096
60178
  const id = raw?.id;
60097
60179
  return typeof id === "string" ? id : void 0;
60098
60180
  }
60099
60181
  /** A service object exposing the lookup the guard needs, if it is one. */
60100
- function asRegistry(value) {
60182
+ function asRegistry$1(value) {
60101
60183
  return value !== null && typeof value === "object" && typeof value.get === "function" ? value : void 0;
60102
60184
  }
60103
60185
  /**
@@ -60117,13 +60199,13 @@ function asRegistry(value) {
60117
60199
  * Both reads are guarded: a host without the reader, and one without the
60118
60200
  * service, must leave this plugin loadable rather than failing its import.
60119
60201
  */
60120
- function agentRegistry(ctx) {
60202
+ function agentRegistry$1(ctx) {
60121
60203
  try {
60122
- const registry = asRegistry(typeof ctx.get === "function" ? ctx.get("agents") : void 0);
60204
+ const registry = asRegistry$1(typeof ctx.get === "function" ? ctx.get("agents") : void 0);
60123
60205
  if (registry !== void 0) return registry;
60124
60206
  } catch {}
60125
60207
  try {
60126
- return asRegistry(ctx.agents);
60208
+ return asRegistry$1(ctx.agents);
60127
60209
  } catch {
60128
60210
  return;
60129
60211
  }
@@ -60138,11 +60220,11 @@ function agentRegistry(ctx) {
60138
60220
  * is a hard error rather than a runaway. A generation that predates the field
60139
60221
  * leaves it undefined, which is the pre-existing behaviour.
60140
60222
  */
60141
- function conversationCall(request) {
60223
+ function conversationCall$1(request) {
60142
60224
  return request.purpose === void 0;
60143
60225
  }
60144
60226
  /** Error text for one warn line, without importing a generation-bound helper. */
60145
- function describeError(error) {
60227
+ function describeError$1(error) {
60146
60228
  return error instanceof Error ? `${error.name}: ${error.message}` : String(error);
60147
60229
  }
60148
60230
  /**
@@ -60174,14 +60256,14 @@ function installReasoningCollapseGuard(ctx, options = {}) {
60174
60256
  remember(payload.agent);
60175
60257
  });
60176
60258
  const releaseDisposed = ctx.on("agent/disposed", (payload) => {
60177
- const id = agentId(payload.agent);
60259
+ const id = agentId$1(payload.agent);
60178
60260
  if (id !== void 0) known.delete(id);
60179
60261
  });
60180
60262
  const releaseStream = ctx.on("llm/stream", guardStream, { global: true });
60181
60263
  function remember(raw) {
60182
60264
  const agent = raw;
60183
60265
  if (agent === void 0 || agent === null) return;
60184
- const id = agentId(agent);
60266
+ const id = agentId$1(agent);
60185
60267
  if (id !== void 0) known.set(id, agent);
60186
60268
  }
60187
60269
  /**
@@ -60196,7 +60278,7 @@ function installReasoningCollapseGuard(ctx, options = {}) {
60196
60278
  function resolveAgent(sessionId) {
60197
60279
  if (sessionId === void 0) return void 0;
60198
60280
  try {
60199
- const registered = agentRegistry(ctx)?.get(sessionId);
60281
+ const registered = agentRegistry$1(ctx)?.get(sessionId);
60200
60282
  if (registered !== void 0 && registered !== null) return registered;
60201
60283
  } catch {}
60202
60284
  return known.get(sessionId);
@@ -60242,9 +60324,9 @@ function installReasoningCollapseGuard(ctx, options = {}) {
60242
60324
  queueMicrotask(() => {
60243
60325
  state.resuming = false;
60244
60326
  try {
60245
- agent.steer?.(createResumeMessage(text));
60327
+ agent.steer?.(createResumeMessage$1(text));
60246
60328
  } catch (error) {
60247
- ctx.logger?.warn(`reasoning-collapse-guard: could not queue the resume: ${describeError(error)}`);
60329
+ ctx.logger?.warn(`reasoning-collapse-guard: could not queue the resume: ${describeError$1(error)}`);
60248
60330
  }
60249
60331
  });
60250
60332
  }
@@ -60292,7 +60374,7 @@ function installReasoningCollapseGuard(ctx, options = {}) {
60292
60374
  }
60293
60375
  function guardStream(request, next) {
60294
60376
  const state = breakerFor(request.signal ?? STATIC_KEY);
60295
- if (state.exhausted || !watchedModel(request.model) || !conversationCall(request)) return next();
60377
+ if (state.exhausted || !watchedModel(request.model) || !conversationCall$1(request)) return next();
60296
60378
  const agent = resolveAgent(request.sessionId);
60297
60379
  async function* guarded() {
60298
60380
  let window = "";
@@ -60335,15 +60417,259 @@ function installReasoningCollapseGuard(ctx, options = {}) {
60335
60417
  return guarded();
60336
60418
  }
60337
60419
  return () => {
60338
- releaseListener(releaseStream);
60339
- releaseListener(releaseCreated);
60340
- releaseListener(releaseDisposed);
60420
+ releaseListener$1(releaseStream);
60421
+ releaseListener$1(releaseCreated);
60422
+ releaseListener$1(releaseDisposed);
60341
60423
  known.clear();
60342
60424
  };
60343
60425
  }
60344
60426
  /** Shared key for the rare request that carries no abort signal. */
60345
60427
  const STATIC_KEY = {};
60346
60428
  /** Cordis event handles are either a disposer function or a disposable object. */
60429
+ function releaseListener$1(handle) {
60430
+ if (typeof handle === "function") {
60431
+ handle();
60432
+ return;
60433
+ }
60434
+ handle?.dispose?.();
60435
+ }
60436
+ const DEFAULT_NO_ANSWER_RESUME_OPTIONS = {
60437
+ maxResumes: 2,
60438
+ text: "Your previous response ended without an answer and without calling a tool. Continue from where you left off: either state the conclusion you already reached, or make the single next tool call that moves the task forward. Do not restart the analysis."
60439
+ };
60440
+ function pruneUndefined(options) {
60441
+ const result = {};
60442
+ if (options.maxResumes !== void 0) result.maxResumes = options.maxResumes;
60443
+ if (options.text !== void 0) result.text = options.text;
60444
+ return result;
60445
+ }
60446
+ /**
60447
+ * Validate caller options fail-loud and fill in defaults.
60448
+ *
60449
+ * A resume budget below one would disable the hook while looking enabled, and an
60450
+ * empty continuation would wake the Agent with nothing to act on — both are
60451
+ * configuration mistakes worth failing on rather than silently ignoring.
60452
+ */
60453
+ function resolveNoAnswerResumeOptions(options = {}) {
60454
+ const resolved = {
60455
+ ...DEFAULT_NO_ANSWER_RESUME_OPTIONS,
60456
+ ...pruneUndefined(options)
60457
+ };
60458
+ if (!Number.isInteger(resolved.maxResumes) || resolved.maxResumes < 1) throw new Error(`no-answer-resume: invalid maxResumes ${String(resolved.maxResumes)} — must be an integer >= 1`);
60459
+ if (typeof resolved.text !== "string" || resolved.text.trim() === "") throw new Error("no-answer-resume: invalid text — must be a non-empty string");
60460
+ return resolved;
60461
+ }
60462
+ /** The message a resume carries, with this package's own provenance. */
60463
+ function createResumeMessage(text) {
60464
+ return createUserMessage({
60465
+ content: [{
60466
+ type: "text",
60467
+ text
60468
+ }],
60469
+ source: {
60470
+ kind: PLUGIN_MESSAGE_SOURCE_KIND,
60471
+ form: "notice",
60472
+ summary: boundContextSummary("The turn ended without an answer; it was resumed.")
60473
+ }
60474
+ });
60475
+ }
60476
+ /** An Agent's session identity as the plain string a request carries. */
60477
+ function agentId(raw) {
60478
+ const id = raw?.id;
60479
+ return typeof id === "string" ? id : void 0;
60480
+ }
60481
+ /** The map key one session's state lives under; requests carry no id at all. */
60482
+ function sessionKey(sessionId) {
60483
+ return sessionId ?? "";
60484
+ }
60485
+ function asRegistry(value) {
60486
+ return value !== null && typeof value === "object" && typeof value.get === "function" ? value : void 0;
60487
+ }
60488
+ /** The host's Agent registry, read defensively through both available routes. */
60489
+ function agentRegistry(ctx) {
60490
+ try {
60491
+ const registry = asRegistry(typeof ctx.get === "function" ? ctx.get("agents") : void 0);
60492
+ if (registry !== void 0) return registry;
60493
+ } catch {}
60494
+ try {
60495
+ return asRegistry(ctx.agents);
60496
+ } catch {
60497
+ return;
60498
+ }
60499
+ }
60500
+ /** Error text for one warn line, without importing a generation-bound helper. */
60501
+ function describeError(error) {
60502
+ return error instanceof Error ? `${error.name}: ${error.message}` : String(error);
60503
+ }
60504
+ /** Whether one request is a conversation call this hook may resume. */
60505
+ function conversationCall(request) {
60506
+ return request.purpose === void 0;
60507
+ }
60508
+ /**
60509
+ * Whether one finish chunk is the answerless-turn failure this hook resumes.
60510
+ *
60511
+ * Matched on the code plus the phrase the reporting line exports, never on the
60512
+ * whole message: the rest of it carries diagnostics that may change.
60513
+ */
60514
+ function isAnswerlessFailure(chunk) {
60515
+ const reason = chunk.reason;
60516
+ if (reason === void 0 || reason.kind !== "error") return false;
60517
+ const failure = reason.failure;
60518
+ if (failure === void 0 || failure.code !== "PROVIDER_ERROR") return false;
60519
+ return typeof failure.message === "string" && failure.message.includes("ended the turn without an answer or a tool call");
60520
+ }
60521
+ /**
60522
+ * Whether a chunk proves the response carried something a reader can act on.
60523
+ *
60524
+ * Whitespace is trimmed exactly as the mapper trims it when it decides
60525
+ * answerlessness (`hasVisibleOutput`): a delta of blanks is not an answer, and
60526
+ * a consumer that disagreed with the producer about that would classify a turn
60527
+ * the provider already called answered — or the reverse.
60528
+ */
60529
+ function isVisible(chunk) {
60530
+ if (chunk.type === "tool-call-delta") return true;
60531
+ return chunk.type === "text-delta" && typeof chunk.text === "string" && chunk.text.trim() !== "";
60532
+ }
60533
+ /**
60534
+ * Install the answerless-turn resume hook on a Context.
60535
+ *
60536
+ * Inert unless the host exposes the event bus, so a harness without it keeps the
60537
+ * built-in behaviour instead of failing this plugin's load.
60538
+ *
60539
+ * @param ctx - plugin context.
60540
+ * @param options - see {@link NoAnswerResumeOptions}; validated fail-loud.
60541
+ * @returns a disposer removing every listener, or undefined when the host
60542
+ * exposes no event bus.
60543
+ */
60544
+ function installNoAnswerResume(ctx, options = {}) {
60545
+ const resolved = resolveNoAnswerResumeOptions(options);
60546
+ if (typeof ctx.on !== "function") return void 0;
60547
+ const sessions = /* @__PURE__ */ new Map();
60548
+ let disposed = false;
60549
+ /**
60550
+ * The Agent that owns one request, or undefined when this host cannot name it.
60551
+ *
60552
+ * Read per resume, not once at install: a Cordis context throws when a service
60553
+ * is not injected yet, and this plugin may well load before the registry that
60554
+ * comes up moments later.
60555
+ */
60556
+ function resolveAgent(sessionId) {
60557
+ if (sessionId === void 0) return void 0;
60558
+ try {
60559
+ const registered = agentRegistry(ctx)?.get(sessionId);
60560
+ if (registered !== void 0 && registered !== null) return registered;
60561
+ } catch {}
60562
+ }
60563
+ function stateFor(sessionId) {
60564
+ const key = sessionKey(sessionId);
60565
+ let state = sessions.get(key);
60566
+ if (state === void 0) {
60567
+ state = {
60568
+ consecutive: 0,
60569
+ pending: false
60570
+ };
60571
+ sessions.set(key, state);
60572
+ }
60573
+ return state;
60574
+ }
60575
+ /**
60576
+ * Steer one continuation, once the Agent has no turn in flight.
60577
+ *
60578
+ * `whenIdle` is the whole point: a steer sent while the turn is still running
60579
+ * is spliced into the inbox with no wake latched behind it, so it would never
60580
+ * be read. A generation without `whenIdle` cannot be asked, so the resume is
60581
+ * attempted on a microtask and the log says the pickup is not guaranteed.
60582
+ *
60583
+ * `fire` can run long after it was queued, and by then the plugin may be
60584
+ * gone. The slot is only released once a resume actually reaches the Agent:
60585
+ * holding it across a queue that ends in disposal would strand the session.
60586
+ */
60587
+ function resume(state, agent, attempt, sessionId) {
60588
+ const fire = () => {
60589
+ if (disposed) return;
60590
+ state.pending = false;
60591
+ try {
60592
+ agent.steer?.(createResumeMessage(resolved.text));
60593
+ ctx.logger?.info?.(`no-answer-resume: resumed attempt ${attempt}/${resolved.maxResumes} (session ${sessionId ?? "unidentified"})`);
60594
+ } catch (error) {
60595
+ ctx.logger?.warn(`no-answer-resume: could not queue the resume: ${describeError(error)}`);
60596
+ }
60597
+ };
60598
+ const idle = typeof agent.whenIdle === "function" ? agent.whenIdle() : void 0;
60599
+ if (idle === void 0) {
60600
+ ctx.logger?.warn("no-answer-resume: this host cannot report when the Agent is idle; the resume may not be picked up");
60601
+ queueMicrotask(fire);
60602
+ return;
60603
+ }
60604
+ Promise.resolve(idle).then(fire, () => fire());
60605
+ }
60606
+ /**
60607
+ * Decide what one completed stream means for its session.
60608
+ *
60609
+ * The budget counts *consecutive* answerless turns, so every completed turn
60610
+ * that did not report the failure ends the streak — not only the ones that
60611
+ * answered. An aborted finish, a max-tokens finish, a TIMEOUT or any other
60612
+ * provider error is just as much an interruption: a streak that survived one
60613
+ * of them would spend the budget on answerless turns that never were
60614
+ * adjacent, report them as "in a row", and then stop resuming for the rest of
60615
+ * the session. `answered` closes the mirror image: the mapper only reports
60616
+ * this failure when nothing visible was emitted, so a turn that did emit
60617
+ * something is not an unanswered turn whichever chunk says otherwise.
60618
+ *
60619
+ * Only called for a stream that ran to its end — an abandoned or thrown one
60620
+ * proves nothing, so it is not asked about at all.
60621
+ */
60622
+ function settle(sessionId, answered, answerless) {
60623
+ const state = stateFor(sessionId);
60624
+ if (!answerless || answered) {
60625
+ state.consecutive = 0;
60626
+ state.pending = false;
60627
+ return;
60628
+ }
60629
+ if (state.pending) return;
60630
+ if (state.consecutive >= resolved.maxResumes) {
60631
+ ctx.logger?.warn(`no-answer-resume: gave up after ${state.consecutive} answerless turns in a row (session ${sessionId ?? "unidentified"})`);
60632
+ return;
60633
+ }
60634
+ const agent = resolveAgent(sessionId);
60635
+ if (agent === void 0 || typeof agent.steer !== "function") {
60636
+ ctx.logger?.warn(`no-answer-resume: no Agent to resume (session ${sessionId ?? "unidentified"})`);
60637
+ return;
60638
+ }
60639
+ state.consecutive += 1;
60640
+ state.pending = true;
60641
+ resume(state, agent, state.consecutive, sessionId);
60642
+ }
60643
+ function resumeStream(request, next) {
60644
+ return (async function* () {
60645
+ let answered = false;
60646
+ let answerless = false;
60647
+ let completed = false;
60648
+ try {
60649
+ for await (const chunk of next()) {
60650
+ if (isVisible(chunk)) answered = true;
60651
+ if (chunk.type === "finish" && isAnswerlessFailure(chunk)) answerless = true;
60652
+ yield chunk;
60653
+ }
60654
+ completed = true;
60655
+ } finally {
60656
+ if (completed && conversationCall(request)) settle(request.sessionId, answered, answerless);
60657
+ }
60658
+ })();
60659
+ }
60660
+ const releaseDisposed = ctx.on("agent/disposed", (payload) => {
60661
+ const id = agentId(payload.agent);
60662
+ if (id !== void 0) sessions.delete(sessionKey(id));
60663
+ });
60664
+ const releaseStream = ctx.on("llm/stream", resumeStream, { global: true });
60665
+ return () => {
60666
+ disposed = true;
60667
+ releaseListener(releaseStream);
60668
+ releaseListener(releaseDisposed);
60669
+ sessions.clear();
60670
+ };
60671
+ }
60672
+ /** Cordis event handles are either a disposer function or a disposable object. */
60347
60673
  function releaseListener(handle) {
60348
60674
  if (typeof handle === "function") {
60349
60675
  handle();
@@ -60367,6 +60693,7 @@ const Config = z.object({
60367
60693
  subagentModelInheritTools: z.array(z.string()).default(DEFAULT_SUBAGENT_INHERIT_TOOLS),
60368
60694
  subagentModelScope: z.union([z.const("session"), z.const("preference")]).default("session"),
60369
60695
  reasoningCollapseGuard: z.union([z.object({}), z.const(false)]).default({}),
60696
+ noAnswerResume: z.union([z.object({}), z.const(false)]).default({}),
60370
60697
  codexStreamIdleTimeoutMs: z.number().min(1).max(MAX_TIMER_DELAY_MS).step(1).default(DEFAULT_STREAM_IDLE_TIMEOUT_MS)
60371
60698
  });
60372
60699
  const inject = [
@@ -60455,6 +60782,17 @@ function apply(ctx, pluginConfig = {}) {
60455
60782
  return dispose;
60456
60783
  }, "dsh-chatgpt-subscription: reasoning collapse guard");
60457
60784
  }
60785
+ if (pluginConfig.noAnswerResume !== false) {
60786
+ const resumeOptions = pluginConfig.noAnswerResume ?? {};
60787
+ ctx.effect(() => {
60788
+ const dispose = installNoAnswerResume(ctx, resumeOptions);
60789
+ if (dispose === void 0) {
60790
+ ctx.logger.warn("[dsh-chatgpt-subscription] no-answer resume skipped: this harness exposes no event bus");
60791
+ return () => void 0;
60792
+ }
60793
+ return dispose;
60794
+ }, "dsh-chatgpt-subscription: no-answer resume");
60795
+ }
60458
60796
  const probeEnvFile = relayProbeEnvFile();
60459
60797
  if (relayProbeEnabled(process.env, { envFile: probeEnvFile })) {
60460
60798
  const probePath = relayProbeLogPath(process.env, { envFile: probeEnvFile });
@@ -269,6 +269,15 @@ export interface MinimaxStreamStateOptions {
269
269
  provider?: string;
270
270
  }
271
271
  export declare function createStreamState(options?: MinimaxStreamStateOptions): MinimaxStreamState;
272
+ /**
273
+ * The phrase this line stamps on the failure it reports for a turn that ended
274
+ * without an answer or a tool call.
275
+ *
276
+ * Exported so a host-side hook can recognise that failure by construction,
277
+ * instead of copying the sentence. Only the phrase is matched, never the whole
278
+ * message: the rest of it carries diagnostics that may change.
279
+ */
280
+ export declare const NO_ANSWER_PHRASE = "ended the turn without an answer or a tool call";
272
281
  /** Flush every open block, then emit usage and the terminal finish. */
273
282
  export declare function closeMinimaxStream(state: MinimaxStreamState): StreamChunk[];
274
283
  /** Raise when a stream ended without the terminal event the protocol promises. */
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AAGH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EAEzB,KAAK,eAAe,EAEpB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAA;AAWpC,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EAEpB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,CAAA;AACD,OAAO,EACL,iBAAiB,EAGjB,8BAA8B,EAC9B,+BAA+B,EAE/B,uBAAuB,EAGvB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,GACrB,CAAA;AACD,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAA;AAE5D,mEAAmE;AACnE,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AA0B7C,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAgcD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAgBrC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oCAAoC,MAAM,CAAA;AAEvD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAW5G;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,oBAAoB,CAAC,EAAE,MAAM,GAC5B,MAAM,CAKR;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAA;AA2EtC;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAelE;AAGD,kFAAkF;AAClF,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,qEAAqE;IACrE,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,+DAA+D;AAC/D,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,eAAe,EACxB,MAAM,GAAE,qBAA0C,EAClD,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmEzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,GAAE,MAA8B,GACpC,MAAM,CAUR;AAMD,8DAA8D;AAC9D,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,oDAAoD;AACpD,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,kBAAkB,CAAA;IAC/B,6FAA6F;IAC7F,YAAY,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAA;IACvC,yDAAyD;IACzD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE;QAC3B,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAAA;QACtC,IAAI,EAAE,MAAM,CAAA;QACZ,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAC,CAAA;IACF,MAAM,EAAE,oBAAoB,EAAE,CAAA;IAC9B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC3E,qDAAqD;IACrD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACvC,mDAAmD;IACnD,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,kBAAkB,CA6BzF;AA6ED;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,oDAAoD,CAAA;AA4BjF,uEAAuE;AACvE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,WAAW,EAAE,CA0C3E;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAIpE;AAED,oDAAoD;AACpD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,WAAW,EAAE,CA8M/F;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAEnE;AAED,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,CAAA"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Resume a turn that ended without an answer.
3
+ *
4
+ * One line's forced thinking can spend a whole response reasoning and then end
5
+ * the turn with `end_turn`, leaving no text and no tool call. That line reports
6
+ * it as a failure, which is honest but leaves the turn unfinished: the harness
7
+ * has no representation for "the model stopped before it did anything", so the
8
+ * caller sees a failed turn and nothing else.
9
+ *
10
+ * This hook closes that gap. It watches the `llm/stream` waterfall, recognises
11
+ * that specific failure, and steers one continuation so the turn finishes.
12
+ *
13
+ * The budget counts `consecutive` answerless turns, so it only ever grows on
14
+ * a turn that ran to its end and reported the failure. A stream that was
15
+ * abandoned — the caller pressed Stop mid-answer, or the collapse guard returned
16
+ * upstream of this hook — never delivered its finish chunk and therefore says
17
+ * nothing at all: it neither spends the budget nor clears the streak.
18
+ *
19
+ * The steer has to land while the Agent is **idle**. `Agent.steer` splices into
20
+ * the inbox and calls `wakeDriver`, and `wakeDriver` only opens a new turn from
21
+ * `idle`: sent while a turn is still running it latches nothing and the message
22
+ * sits unread. So the resume waits on `whenIdle()` rather than racing the turn
23
+ * boundary — the collapse guard reaches the same place by cancelling first and
24
+ * steering on a microtask, which is not available here because nothing is being
25
+ * cancelled.
26
+ *
27
+ * @module
28
+ */
29
+ /** The subset of `llm/stream` options this hook reads. */
30
+ export interface ResumeStreamOptions {
31
+ /** Stamped by the agent loop on every request it builds. */
32
+ readonly sessionId?: string | undefined;
33
+ /** Absent on an ordinary conversation request; set on an auxiliary call. */
34
+ readonly purpose?: string | undefined;
35
+ }
36
+ /** A chunk as it crosses the stream boundary; only the shape is read. */
37
+ export interface ResumeChunk {
38
+ readonly type: string;
39
+ readonly text?: string | undefined;
40
+ readonly blockType?: string | undefined;
41
+ readonly reason?: {
42
+ readonly kind?: string | undefined;
43
+ readonly failure?: {
44
+ readonly code?: string | undefined;
45
+ readonly message?: string | undefined;
46
+ } | undefined;
47
+ } | undefined;
48
+ }
49
+ /** Live Agent methods the hook calls. Optional so an older shape stays loadable. */
50
+ export interface ResumeAgentLike {
51
+ /** The Agent's session identity — the same value the loop stamps on requests. */
52
+ readonly id?: unknown;
53
+ steer?(message: unknown): void;
54
+ /** Resolves once the Agent has no work in flight. */
55
+ whenIdle?(): Promise<unknown>;
56
+ }
57
+ /** The `llm/stream` waterfall listener this hook registers. */
58
+ export type ResumeStreamListener = (options: ResumeStreamOptions, next: () => AsyncIterable<ResumeChunk>) => AsyncIterable<ResumeChunk>;
59
+ /**
60
+ * The `agent/disposed` listener this hook registers.
61
+ *
62
+ * The payload carries the Agent whose `id` keys this hook's per-session state,
63
+ * so a session that closes takes its entry with it instead of leaving the streak
64
+ * — and the memory behind it — behind for the life of the process.
65
+ */
66
+ export type ResumeAgentEventListener = (payload: {
67
+ agent: unknown;
68
+ }) => void;
69
+ /** Either listener {@link NoAnswerResumeContext.on} accepts. */
70
+ export type ResumeListener = ResumeStreamListener | ResumeAgentEventListener;
71
+ /** Listener options accepted by the harness event bus. */
72
+ export interface ResumeListenerOptions {
73
+ /** Receive the event regardless of context filter checks. */
74
+ readonly global?: boolean;
75
+ }
76
+ /** Configuration for {@link installNoAnswerResume}. */
77
+ export interface NoAnswerResumeOptions {
78
+ /** Consecutive answerless turns resumed before giving up (default 2). */
79
+ maxResumes?: number;
80
+ /** The continuation injected on each resume. */
81
+ text?: string;
82
+ }
83
+ /** {@link NoAnswerResumeOptions} with every default filled in. */
84
+ export interface ResolvedNoAnswerResumeOptions {
85
+ maxResumes: number;
86
+ text: string;
87
+ }
88
+ /** The continuation this hook injects, unless the deployment states its own. */
89
+ export declare const NO_ANSWER_RESUME: string;
90
+ export declare const DEFAULT_NO_ANSWER_RESUME_OPTIONS: ResolvedNoAnswerResumeOptions;
91
+ /**
92
+ * The Context surface the hook needs, declared structurally so it loads on every
93
+ * supported harness generation without importing generation-bound types.
94
+ *
95
+ * `get` is the read that reaches the Agent registry in a real host: the registry
96
+ * is provided by a sibling fiber, and Cordis throws for a property this plugin did
97
+ * not declare in its `inject` list.
98
+ */
99
+ export interface NoAnswerResumeContext {
100
+ on?: (event: 'llm/stream' | 'agent/disposed', listener: ResumeListener, options?: ResumeListenerOptions) => unknown;
101
+ logger?: {
102
+ info?(message: string): void;
103
+ warn(message: string): void;
104
+ } | undefined;
105
+ get?(name: string): unknown;
106
+ readonly agents?: {
107
+ get(id: unknown): unknown;
108
+ } | undefined;
109
+ }
110
+ /**
111
+ * Validate caller options fail-loud and fill in defaults.
112
+ *
113
+ * A resume budget below one would disable the hook while looking enabled, and an
114
+ * empty continuation would wake the Agent with nothing to act on — both are
115
+ * configuration mistakes worth failing on rather than silently ignoring.
116
+ */
117
+ export declare function resolveNoAnswerResumeOptions(options?: NoAnswerResumeOptions): ResolvedNoAnswerResumeOptions;
118
+ /**
119
+ * Install the answerless-turn resume hook on a Context.
120
+ *
121
+ * Inert unless the host exposes the event bus, so a harness without it keeps the
122
+ * built-in behaviour instead of failing this plugin's load.
123
+ *
124
+ * @param ctx - plugin context.
125
+ * @param options - see {@link NoAnswerResumeOptions}; validated fail-loud.
126
+ * @returns a disposer removing every listener, or undefined when the host
127
+ * exposes no event bus.
128
+ */
129
+ export declare function installNoAnswerResume(ctx: NoAnswerResumeContext, options?: NoAnswerResumeOptions): (() => void) | undefined;
130
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/host/no-answer-resume/index.ts"],"names":[],"mappings":"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"}
@@ -106,6 +106,38 @@ export declare class WorkBuddyAccountPool extends AccountPoolCore<WorkBuddyCrede
106
106
  * account in place, where the user can hide or delete the managed ones.
107
107
  */
108
108
  syncDesktopAccounts(): Promise<WorkBuddyAccountSummaryDto[]>;
109
+ /**
110
+ * A stale `authStatus` is cleared once the credential in force has moved on.
111
+ *
112
+ * The marker records that ONE token was refused; it does not record that the
113
+ * sign-in is gone. This line can still produce it from a token-endpoint
114
+ * refusal, and the copy that refusal was about can be replaced afterwards by
115
+ * whoever owns it — the IDE rotates a desktop account's token on its own
116
+ * schedule, and the daily check-in renews a managed one and writes it back to
117
+ * this plugin's store. Nothing else in the system ever revisits an
118
+ * `authStatus`, so without this a row stays out of rotation for good and the
119
+ * card keeps saying "需要重新登录" for an account that is signed in.
120
+ *
121
+ * The verdict is re-checked against what the store holds NOW: a row whose
122
+ * account has a DIFFERENT, unexpired token is routable again and adopts it,
123
+ * while a row still holding the refused token keeps its marker — that one
124
+ * really does need a sign-in.
125
+ */
126
+ private healStaleAuthFailures;
127
+ /** Account summaries, with a marker the credentials have outlived cleared. */
128
+ listAccounts(): Promise<WorkBuddyAccountSummaryDto[]>;
129
+ /**
130
+ * Pick an account, healing a stale marker first.
131
+ *
132
+ * The healing belongs on the request path, not only on the card: an account
133
+ * marked expired is excluded by the core's eligibility rule, so until the
134
+ * marker is gone the next request is answered with "全部 N 个账号都需要重新登录"
135
+ * for a credential the store has already replaced.
136
+ */
137
+ getEffectiveAccount(excludeIds?: ReadonlySet<string>, fetchFn?: typeof fetch, forceRefresh?: boolean): Promise<{
138
+ account: WorkBuddyPoolAccount;
139
+ credentials: WorkBuddyCredentials;
140
+ }>;
109
141
  /**
110
142
  * Pick the account for the next request.
111
143
  *
@@ -1 +1 @@
1
- {"version":3,"file":"account-pool.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/account-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-pool.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/account-pool.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":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/host/workbuddy/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Context } from '@deepseek-ai/cordis';
2
2
  import z from '@deepseek-ai/schemastery';
3
3
  import { type GuardOptions } from './host/reasoning-collapse-guard/index.ts';
4
+ import { type NoAnswerResumeOptions } from './host/no-answer-resume/index.ts';
4
5
  /** Optional deployment configuration for this plugin. */
5
6
  export interface Config {
6
7
  /** Independent web fetch selection; auto preserves proxy/search-driven selection.
@@ -45,6 +46,12 @@ export interface Config {
45
46
  * leave the built-in behaviour alone; the shipped defaults apply otherwise.
46
47
  */
47
48
  reasoningCollapseGuard?: GuardOptions | false;
49
+ /**
50
+ * Resume a turn that ended without an answer or a tool call. Omit the key
51
+ * (or set it to `false`) to leave the turn failed; the shipped defaults
52
+ * apply otherwise.
53
+ */
54
+ noAnswerResume?: NoAnswerResumeOptions | false;
48
55
  /**
49
56
  * Idle budget for one Codex Responses stream, in milliseconds.
50
57
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.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.25.1",
3
+ "version": "0.26.1",
4
4
  "description": "DSH provider plugin for Codex access through a ChatGPT subscription.",
5
5
  "icon": "./icon.svg",
6
6
  "author": {