@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 +9 -0
- package/lib/index.js +275 -19
- package/lib/types/host/minimax-code/mapper.d.ts +9 -0
- package/lib/types/host/minimax-code/mapper.d.ts.map +1 -1
- package/lib/types/host/no-answer-resume/index.d.ts +130 -0
- package/lib/types/host/no-answer-resume/index.d.ts.map +1 -0
- package/lib/types/index.d.ts +7 -0
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +1 -1
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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"}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -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
|
*
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -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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"}
|