@eddyskywalker/dsh-chatgpt-subscription 0.25.1 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.26.0 - 2026-10-17
6
+
7
+ - **[MiniMax Code] 无答案轮次现在会自动续跑跑完(社区 PR #61),并把「续跑预算」真正做成有界**
8
+ - **问题**: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` 关闭。
9
+ - **合并后另行修复的两个缺陷(在发版前发现,若直接发布会让默认安装的用户被无限烧请求)**:① **`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`,预算被花掉一次之后该功能在本会话余下时间里静默失效。改法:**任何**正常结束且非无答案的轮次都清零连击,让标识符、注释与日志三者一致。
10
+ - **另外三处加固**:③ 每会话状态在 `agent/disposed` 时清理(照搬塌缩守卫的做法),不再为进程生命周期内每个会话常驻一条;④ 插件销毁后排队中的续跑不再 steer,且一个会话同时只持有一条排队续跑(同一轮重试 settle 两次不会投递两次);⑤ `isVisible` 改为 `trim()`,与产出方 `hasVisibleOutput` 完全一致,避免消费方与产出方对「这一轮算不算答了」产生分歧。
11
+ - **验证**:`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**,失败项正是上述缺陷,恢复后重新全绿。
12
+ - **复核结论(对照真实 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` 只有一个产出方,不存在跨线路误判。
13
+ - **未做**:真正的「不让它发生」仍要靠请求侧降档(effort 从 max 降到 xhigh/high),那是部署配置、不在本仓;本版只让**已经发生**的轮次跑完。子代理会话同样会被续跑(`purpose` 为 undefined 且自带 sessionId),若日后需要只对主线生效,应以 `request.provider` 收窄,留作后续。
5
14
  ## 0.25.1 - 2026-10-17
6
15
 
7
16
  - **[Harness & 调度预设] 适配 DSH 0.2.1-rc.1 / 0.2.1-rc.2,并修复调度模式在 0.2.1 下报 `unknown prompt variable "{{cwd}}"` 的启动失败**
package/lib/index.js CHANGED
@@ -59895,7 +59895,7 @@ const DEFAULT_GUARD_OPTIONS = {
59895
59895
  semanticStrictConfirmations: 5,
59896
59896
  now: () => Date.now()
59897
59897
  };
59898
- function pruneUndefined(options) {
59898
+ function pruneUndefined$1(options) {
59899
59899
  const result = {};
59900
59900
  for (const [key, value] of Object.entries(options)) if (value !== void 0) result[key] = value;
59901
59901
  return result;
@@ -59908,7 +59908,7 @@ function pruneUndefined(options) {
59908
59908
  function resolveGuardOptions(options = {}) {
59909
59909
  const resolved = {
59910
59910
  ...DEFAULT_GUARD_OPTIONS,
59911
- ...pruneUndefined(options)
59911
+ ...pruneUndefined$1(options)
59912
59912
  };
59913
59913
  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
59914
  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 +60074,7 @@ function createBreakerState() {
60074
60074
  * merge-extensible `MessageSourceMap`, so the resume carries real provenance
60075
60075
  * instead of impersonating a human turn.
60076
60076
  */
60077
- function createResumeMessage(text) {
60077
+ function createResumeMessage$1(text) {
60078
60078
  return createUserMessage({
60079
60079
  content: [{
60080
60080
  type: "text",
@@ -60092,12 +60092,12 @@ function appendWindow(current, addition, limit) {
60092
60092
  return combined.length > limit ? combined.slice(-limit) : combined;
60093
60093
  }
60094
60094
  /** An Agent's session identity as the plain string a request carries. */
60095
- function agentId(raw) {
60095
+ function agentId$1(raw) {
60096
60096
  const id = raw?.id;
60097
60097
  return typeof id === "string" ? id : void 0;
60098
60098
  }
60099
60099
  /** A service object exposing the lookup the guard needs, if it is one. */
60100
- function asRegistry(value) {
60100
+ function asRegistry$1(value) {
60101
60101
  return value !== null && typeof value === "object" && typeof value.get === "function" ? value : void 0;
60102
60102
  }
60103
60103
  /**
@@ -60117,13 +60117,13 @@ function asRegistry(value) {
60117
60117
  * Both reads are guarded: a host without the reader, and one without the
60118
60118
  * service, must leave this plugin loadable rather than failing its import.
60119
60119
  */
60120
- function agentRegistry(ctx) {
60120
+ function agentRegistry$1(ctx) {
60121
60121
  try {
60122
- const registry = asRegistry(typeof ctx.get === "function" ? ctx.get("agents") : void 0);
60122
+ const registry = asRegistry$1(typeof ctx.get === "function" ? ctx.get("agents") : void 0);
60123
60123
  if (registry !== void 0) return registry;
60124
60124
  } catch {}
60125
60125
  try {
60126
- return asRegistry(ctx.agents);
60126
+ return asRegistry$1(ctx.agents);
60127
60127
  } catch {
60128
60128
  return;
60129
60129
  }
@@ -60138,11 +60138,11 @@ function agentRegistry(ctx) {
60138
60138
  * is a hard error rather than a runaway. A generation that predates the field
60139
60139
  * leaves it undefined, which is the pre-existing behaviour.
60140
60140
  */
60141
- function conversationCall(request) {
60141
+ function conversationCall$1(request) {
60142
60142
  return request.purpose === void 0;
60143
60143
  }
60144
60144
  /** Error text for one warn line, without importing a generation-bound helper. */
60145
- function describeError(error) {
60145
+ function describeError$1(error) {
60146
60146
  return error instanceof Error ? `${error.name}: ${error.message}` : String(error);
60147
60147
  }
60148
60148
  /**
@@ -60174,14 +60174,14 @@ function installReasoningCollapseGuard(ctx, options = {}) {
60174
60174
  remember(payload.agent);
60175
60175
  });
60176
60176
  const releaseDisposed = ctx.on("agent/disposed", (payload) => {
60177
- const id = agentId(payload.agent);
60177
+ const id = agentId$1(payload.agent);
60178
60178
  if (id !== void 0) known.delete(id);
60179
60179
  });
60180
60180
  const releaseStream = ctx.on("llm/stream", guardStream, { global: true });
60181
60181
  function remember(raw) {
60182
60182
  const agent = raw;
60183
60183
  if (agent === void 0 || agent === null) return;
60184
- const id = agentId(agent);
60184
+ const id = agentId$1(agent);
60185
60185
  if (id !== void 0) known.set(id, agent);
60186
60186
  }
60187
60187
  /**
@@ -60196,7 +60196,7 @@ function installReasoningCollapseGuard(ctx, options = {}) {
60196
60196
  function resolveAgent(sessionId) {
60197
60197
  if (sessionId === void 0) return void 0;
60198
60198
  try {
60199
- const registered = agentRegistry(ctx)?.get(sessionId);
60199
+ const registered = agentRegistry$1(ctx)?.get(sessionId);
60200
60200
  if (registered !== void 0 && registered !== null) return registered;
60201
60201
  } catch {}
60202
60202
  return known.get(sessionId);
@@ -60242,9 +60242,9 @@ function installReasoningCollapseGuard(ctx, options = {}) {
60242
60242
  queueMicrotask(() => {
60243
60243
  state.resuming = false;
60244
60244
  try {
60245
- agent.steer?.(createResumeMessage(text));
60245
+ agent.steer?.(createResumeMessage$1(text));
60246
60246
  } catch (error) {
60247
- ctx.logger?.warn(`reasoning-collapse-guard: could not queue the resume: ${describeError(error)}`);
60247
+ ctx.logger?.warn(`reasoning-collapse-guard: could not queue the resume: ${describeError$1(error)}`);
60248
60248
  }
60249
60249
  });
60250
60250
  }
@@ -60292,7 +60292,7 @@ function installReasoningCollapseGuard(ctx, options = {}) {
60292
60292
  }
60293
60293
  function guardStream(request, next) {
60294
60294
  const state = breakerFor(request.signal ?? STATIC_KEY);
60295
- if (state.exhausted || !watchedModel(request.model) || !conversationCall(request)) return next();
60295
+ if (state.exhausted || !watchedModel(request.model) || !conversationCall$1(request)) return next();
60296
60296
  const agent = resolveAgent(request.sessionId);
60297
60297
  async function* guarded() {
60298
60298
  let window = "";
@@ -60335,15 +60335,259 @@ function installReasoningCollapseGuard(ctx, options = {}) {
60335
60335
  return guarded();
60336
60336
  }
60337
60337
  return () => {
60338
- releaseListener(releaseStream);
60339
- releaseListener(releaseCreated);
60340
- releaseListener(releaseDisposed);
60338
+ releaseListener$1(releaseStream);
60339
+ releaseListener$1(releaseCreated);
60340
+ releaseListener$1(releaseDisposed);
60341
60341
  known.clear();
60342
60342
  };
60343
60343
  }
60344
60344
  /** Shared key for the rare request that carries no abort signal. */
60345
60345
  const STATIC_KEY = {};
60346
60346
  /** Cordis event handles are either a disposer function or a disposable object. */
60347
+ function releaseListener$1(handle) {
60348
+ if (typeof handle === "function") {
60349
+ handle();
60350
+ return;
60351
+ }
60352
+ handle?.dispose?.();
60353
+ }
60354
+ const DEFAULT_NO_ANSWER_RESUME_OPTIONS = {
60355
+ maxResumes: 2,
60356
+ 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."
60357
+ };
60358
+ function pruneUndefined(options) {
60359
+ const result = {};
60360
+ if (options.maxResumes !== void 0) result.maxResumes = options.maxResumes;
60361
+ if (options.text !== void 0) result.text = options.text;
60362
+ return result;
60363
+ }
60364
+ /**
60365
+ * Validate caller options fail-loud and fill in defaults.
60366
+ *
60367
+ * A resume budget below one would disable the hook while looking enabled, and an
60368
+ * empty continuation would wake the Agent with nothing to act on — both are
60369
+ * configuration mistakes worth failing on rather than silently ignoring.
60370
+ */
60371
+ function resolveNoAnswerResumeOptions(options = {}) {
60372
+ const resolved = {
60373
+ ...DEFAULT_NO_ANSWER_RESUME_OPTIONS,
60374
+ ...pruneUndefined(options)
60375
+ };
60376
+ if (!Number.isInteger(resolved.maxResumes) || resolved.maxResumes < 1) throw new Error(`no-answer-resume: invalid maxResumes ${String(resolved.maxResumes)} — must be an integer >= 1`);
60377
+ if (typeof resolved.text !== "string" || resolved.text.trim() === "") throw new Error("no-answer-resume: invalid text — must be a non-empty string");
60378
+ return resolved;
60379
+ }
60380
+ /** The message a resume carries, with this package's own provenance. */
60381
+ function createResumeMessage(text) {
60382
+ return createUserMessage({
60383
+ content: [{
60384
+ type: "text",
60385
+ text
60386
+ }],
60387
+ source: {
60388
+ kind: PLUGIN_MESSAGE_SOURCE_KIND,
60389
+ form: "notice",
60390
+ summary: boundContextSummary("The turn ended without an answer; it was resumed.")
60391
+ }
60392
+ });
60393
+ }
60394
+ /** An Agent's session identity as the plain string a request carries. */
60395
+ function agentId(raw) {
60396
+ const id = raw?.id;
60397
+ return typeof id === "string" ? id : void 0;
60398
+ }
60399
+ /** The map key one session's state lives under; requests carry no id at all. */
60400
+ function sessionKey(sessionId) {
60401
+ return sessionId ?? "";
60402
+ }
60403
+ function asRegistry(value) {
60404
+ return value !== null && typeof value === "object" && typeof value.get === "function" ? value : void 0;
60405
+ }
60406
+ /** The host's Agent registry, read defensively through both available routes. */
60407
+ function agentRegistry(ctx) {
60408
+ try {
60409
+ const registry = asRegistry(typeof ctx.get === "function" ? ctx.get("agents") : void 0);
60410
+ if (registry !== void 0) return registry;
60411
+ } catch {}
60412
+ try {
60413
+ return asRegistry(ctx.agents);
60414
+ } catch {
60415
+ return;
60416
+ }
60417
+ }
60418
+ /** Error text for one warn line, without importing a generation-bound helper. */
60419
+ function describeError(error) {
60420
+ return error instanceof Error ? `${error.name}: ${error.message}` : String(error);
60421
+ }
60422
+ /** Whether one request is a conversation call this hook may resume. */
60423
+ function conversationCall(request) {
60424
+ return request.purpose === void 0;
60425
+ }
60426
+ /**
60427
+ * Whether one finish chunk is the answerless-turn failure this hook resumes.
60428
+ *
60429
+ * Matched on the code plus the phrase the reporting line exports, never on the
60430
+ * whole message: the rest of it carries diagnostics that may change.
60431
+ */
60432
+ function isAnswerlessFailure(chunk) {
60433
+ const reason = chunk.reason;
60434
+ if (reason === void 0 || reason.kind !== "error") return false;
60435
+ const failure = reason.failure;
60436
+ if (failure === void 0 || failure.code !== "PROVIDER_ERROR") return false;
60437
+ return typeof failure.message === "string" && failure.message.includes("ended the turn without an answer or a tool call");
60438
+ }
60439
+ /**
60440
+ * Whether a chunk proves the response carried something a reader can act on.
60441
+ *
60442
+ * Whitespace is trimmed exactly as the mapper trims it when it decides
60443
+ * answerlessness (`hasVisibleOutput`): a delta of blanks is not an answer, and
60444
+ * a consumer that disagreed with the producer about that would classify a turn
60445
+ * the provider already called answered — or the reverse.
60446
+ */
60447
+ function isVisible(chunk) {
60448
+ if (chunk.type === "tool-call-delta") return true;
60449
+ return chunk.type === "text-delta" && typeof chunk.text === "string" && chunk.text.trim() !== "";
60450
+ }
60451
+ /**
60452
+ * Install the answerless-turn resume hook on a Context.
60453
+ *
60454
+ * Inert unless the host exposes the event bus, so a harness without it keeps the
60455
+ * built-in behaviour instead of failing this plugin's load.
60456
+ *
60457
+ * @param ctx - plugin context.
60458
+ * @param options - see {@link NoAnswerResumeOptions}; validated fail-loud.
60459
+ * @returns a disposer removing every listener, or undefined when the host
60460
+ * exposes no event bus.
60461
+ */
60462
+ function installNoAnswerResume(ctx, options = {}) {
60463
+ const resolved = resolveNoAnswerResumeOptions(options);
60464
+ if (typeof ctx.on !== "function") return void 0;
60465
+ const sessions = /* @__PURE__ */ new Map();
60466
+ let disposed = false;
60467
+ /**
60468
+ * The Agent that owns one request, or undefined when this host cannot name it.
60469
+ *
60470
+ * Read per resume, not once at install: a Cordis context throws when a service
60471
+ * is not injected yet, and this plugin may well load before the registry that
60472
+ * comes up moments later.
60473
+ */
60474
+ function resolveAgent(sessionId) {
60475
+ if (sessionId === void 0) return void 0;
60476
+ try {
60477
+ const registered = agentRegistry(ctx)?.get(sessionId);
60478
+ if (registered !== void 0 && registered !== null) return registered;
60479
+ } catch {}
60480
+ }
60481
+ function stateFor(sessionId) {
60482
+ const key = sessionKey(sessionId);
60483
+ let state = sessions.get(key);
60484
+ if (state === void 0) {
60485
+ state = {
60486
+ consecutive: 0,
60487
+ pending: false
60488
+ };
60489
+ sessions.set(key, state);
60490
+ }
60491
+ return state;
60492
+ }
60493
+ /**
60494
+ * Steer one continuation, once the Agent has no turn in flight.
60495
+ *
60496
+ * `whenIdle` is the whole point: a steer sent while the turn is still running
60497
+ * is spliced into the inbox with no wake latched behind it, so it would never
60498
+ * be read. A generation without `whenIdle` cannot be asked, so the resume is
60499
+ * attempted on a microtask and the log says the pickup is not guaranteed.
60500
+ *
60501
+ * `fire` can run long after it was queued, and by then the plugin may be
60502
+ * gone. The slot is only released once a resume actually reaches the Agent:
60503
+ * holding it across a queue that ends in disposal would strand the session.
60504
+ */
60505
+ function resume(state, agent, attempt, sessionId) {
60506
+ const fire = () => {
60507
+ if (disposed) return;
60508
+ state.pending = false;
60509
+ try {
60510
+ agent.steer?.(createResumeMessage(resolved.text));
60511
+ ctx.logger?.info?.(`no-answer-resume: resumed attempt ${attempt}/${resolved.maxResumes} (session ${sessionId ?? "unidentified"})`);
60512
+ } catch (error) {
60513
+ ctx.logger?.warn(`no-answer-resume: could not queue the resume: ${describeError(error)}`);
60514
+ }
60515
+ };
60516
+ const idle = typeof agent.whenIdle === "function" ? agent.whenIdle() : void 0;
60517
+ if (idle === void 0) {
60518
+ ctx.logger?.warn("no-answer-resume: this host cannot report when the Agent is idle; the resume may not be picked up");
60519
+ queueMicrotask(fire);
60520
+ return;
60521
+ }
60522
+ Promise.resolve(idle).then(fire, () => fire());
60523
+ }
60524
+ /**
60525
+ * Decide what one completed stream means for its session.
60526
+ *
60527
+ * The budget counts *consecutive* answerless turns, so every completed turn
60528
+ * that did not report the failure ends the streak — not only the ones that
60529
+ * answered. An aborted finish, a max-tokens finish, a TIMEOUT or any other
60530
+ * provider error is just as much an interruption: a streak that survived one
60531
+ * of them would spend the budget on answerless turns that never were
60532
+ * adjacent, report them as "in a row", and then stop resuming for the rest of
60533
+ * the session. `answered` closes the mirror image: the mapper only reports
60534
+ * this failure when nothing visible was emitted, so a turn that did emit
60535
+ * something is not an unanswered turn whichever chunk says otherwise.
60536
+ *
60537
+ * Only called for a stream that ran to its end — an abandoned or thrown one
60538
+ * proves nothing, so it is not asked about at all.
60539
+ */
60540
+ function settle(sessionId, answered, answerless) {
60541
+ const state = stateFor(sessionId);
60542
+ if (!answerless || answered) {
60543
+ state.consecutive = 0;
60544
+ state.pending = false;
60545
+ return;
60546
+ }
60547
+ if (state.pending) return;
60548
+ if (state.consecutive >= resolved.maxResumes) {
60549
+ ctx.logger?.warn(`no-answer-resume: gave up after ${state.consecutive} answerless turns in a row (session ${sessionId ?? "unidentified"})`);
60550
+ return;
60551
+ }
60552
+ const agent = resolveAgent(sessionId);
60553
+ if (agent === void 0 || typeof agent.steer !== "function") {
60554
+ ctx.logger?.warn(`no-answer-resume: no Agent to resume (session ${sessionId ?? "unidentified"})`);
60555
+ return;
60556
+ }
60557
+ state.consecutive += 1;
60558
+ state.pending = true;
60559
+ resume(state, agent, state.consecutive, sessionId);
60560
+ }
60561
+ function resumeStream(request, next) {
60562
+ return (async function* () {
60563
+ let answered = false;
60564
+ let answerless = false;
60565
+ let completed = false;
60566
+ try {
60567
+ for await (const chunk of next()) {
60568
+ if (isVisible(chunk)) answered = true;
60569
+ if (chunk.type === "finish" && isAnswerlessFailure(chunk)) answerless = true;
60570
+ yield chunk;
60571
+ }
60572
+ completed = true;
60573
+ } finally {
60574
+ if (completed && conversationCall(request)) settle(request.sessionId, answered, answerless);
60575
+ }
60576
+ })();
60577
+ }
60578
+ const releaseDisposed = ctx.on("agent/disposed", (payload) => {
60579
+ const id = agentId(payload.agent);
60580
+ if (id !== void 0) sessions.delete(sessionKey(id));
60581
+ });
60582
+ const releaseStream = ctx.on("llm/stream", resumeStream, { global: true });
60583
+ return () => {
60584
+ disposed = true;
60585
+ releaseListener(releaseStream);
60586
+ releaseListener(releaseDisposed);
60587
+ sessions.clear();
60588
+ };
60589
+ }
60590
+ /** Cordis event handles are either a disposer function or a disposable object. */
60347
60591
  function releaseListener(handle) {
60348
60592
  if (typeof handle === "function") {
60349
60593
  handle();
@@ -60367,6 +60611,7 @@ const Config = z.object({
60367
60611
  subagentModelInheritTools: z.array(z.string()).default(DEFAULT_SUBAGENT_INHERIT_TOOLS),
60368
60612
  subagentModelScope: z.union([z.const("session"), z.const("preference")]).default("session"),
60369
60613
  reasoningCollapseGuard: z.union([z.object({}), z.const(false)]).default({}),
60614
+ noAnswerResume: z.union([z.object({}), z.const(false)]).default({}),
60370
60615
  codexStreamIdleTimeoutMs: z.number().min(1).max(MAX_TIMER_DELAY_MS).step(1).default(DEFAULT_STREAM_IDLE_TIMEOUT_MS)
60371
60616
  });
60372
60617
  const inject = [
@@ -60455,6 +60700,17 @@ function apply(ctx, pluginConfig = {}) {
60455
60700
  return dispose;
60456
60701
  }, "dsh-chatgpt-subscription: reasoning collapse guard");
60457
60702
  }
60703
+ if (pluginConfig.noAnswerResume !== false) {
60704
+ const resumeOptions = pluginConfig.noAnswerResume ?? {};
60705
+ ctx.effect(() => {
60706
+ const dispose = installNoAnswerResume(ctx, resumeOptions);
60707
+ if (dispose === void 0) {
60708
+ ctx.logger.warn("[dsh-chatgpt-subscription] no-answer resume skipped: this harness exposes no event bus");
60709
+ return () => void 0;
60710
+ }
60711
+ return dispose;
60712
+ }, "dsh-chatgpt-subscription: no-answer resume");
60713
+ }
60458
60714
  const probeEnvFile = relayProbeEnvFile();
60459
60715
  if (relayProbeEnabled(process.env, { envFile: probeEnvFile })) {
60460
60716
  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":"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"}
@@ -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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"}
@@ -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.0",
4
4
  "description": "DSH provider plugin for Codex access through a ChatGPT subscription.",
5
5
  "icon": "./icon.svg",
6
6
  "author": {