@zhushanwen/zcode-subagent-cli 0.8.2 → 0.8.4
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/bin/zcode-subagent-cli.mjs +1 -1
- package/dist/{chunk-Z6IPBSKG.js → chunk-RHWM2M5A.js} +151 -63
- package/dist/index.cjs +151 -63
- package/dist/index.d.cts +31 -31
- package/dist/index.d.ts +31 -31
- package/dist/index.js +1 -1
- package/dist/main.cjs +151 -63
- package/dist/main.js +1 -1
- package/package.json +4 -4
package/dist/index.d.cts
CHANGED
|
@@ -3,19 +3,19 @@ import { FrameWriter } from '@zhushanwen/subagent-engine-sdk/server';
|
|
|
3
3
|
|
|
4
4
|
/** 入站帧来源( readline 已拆行的请求帧 + 反向请求应答帧混流)。 */
|
|
5
5
|
interface EngineProtocolServerOptions {
|
|
6
|
-
/** stdout
|
|
6
|
+
/** stdout 写侧(每帧一行 JSON)。 */
|
|
7
7
|
write: FrameWriter;
|
|
8
8
|
/** 引擎实例(缺省 createDefaultZcodeEngine——测试注入 fake/DI 实例)。 */
|
|
9
9
|
engine?: EnginePort;
|
|
10
|
-
/**
|
|
10
|
+
/** 反向请求计时侧(armEngineSelfDestruct 产物;缺省不计时——测试用)。 */
|
|
11
11
|
reverseClock?: ReverseRequestClock;
|
|
12
12
|
/** 应答等待缺省超时(反向请求两阶段等待上限兜底;默认 REVERSE_TIMEOUT_DEFAULT_MS)。 */
|
|
13
13
|
reverseTimeoutMs?: number;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
* 引擎协议服务器。生命周期 =
|
|
16
|
+
* 引擎协议服务器。生命周期 = 进程生命周期(单引擎实例,无重建逻辑——崩溃重建归
|
|
17
17
|
* core EngineClient:杀进程再 spawn)。dispose 方法释放引擎常驻资源但进程不退出
|
|
18
|
-
* (后续请求仍可服务——引擎进程退出归宿主 /
|
|
18
|
+
* (后续请求仍可服务——引擎进程退出归宿主 / 自灭检查)。
|
|
19
19
|
*/
|
|
20
20
|
declare class EngineProtocolServer {
|
|
21
21
|
private readonly write;
|
|
@@ -44,10 +44,10 @@ declare class EngineProtocolServer {
|
|
|
44
44
|
private validateModel;
|
|
45
45
|
private emitEvent;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* 发反向请求并等应答(帧④必须应答)。计时侧登记:发出 → clock.started;收到
|
|
48
48
|
* ack 形态应答 → clock.acked(两阶段第一段,等待不计超时);终结 → clock.settled。
|
|
49
|
-
* 应答超时兜底 reject
|
|
50
|
-
*
|
|
49
|
+
* 应答超时兜底 reject——数据范围通道(host/log 等)core 10s 应答,reject 由调用方
|
|
50
|
+
* 吞掉留痕(数据范围丢失不拖死主链路)。
|
|
51
51
|
*/
|
|
52
52
|
/**
|
|
53
53
|
* fire-and-forget 反向请求(`void this.reverseRequestInternal(...)` 形态)的
|
|
@@ -56,10 +56,10 @@ declare class EngineProtocolServer {
|
|
|
56
56
|
* 默认崩引擎进程)。失败只降级该次通道上报,warn 留痕不断流。
|
|
57
57
|
*/
|
|
58
58
|
private warnReverseFailure;
|
|
59
|
-
/**
|
|
59
|
+
/** 反向请求发送(对外公开:main.ts 的 host/log 桥接消费;内部 run 通道同路)。 */
|
|
60
60
|
reverseRequest(method: string, params: unknown): Promise<unknown>;
|
|
61
61
|
private reverseRequestInternal;
|
|
62
|
-
/** 反向请求应答落位(ack 两阶段:{ack:true}/{unsupported:true}/{ok:true} 均先 ack
|
|
62
|
+
/** 反向请求应答落位(ack 两阶段:{ack:true}/{unsupported:true}/{ok:true} 均先 ack 计时侧)。 */
|
|
63
63
|
private settleReverse;
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -126,10 +126,10 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
126
126
|
* 常驻路径主编排:模型解析(v2 单源校验)→ 惰性连接 + runTurn(事件时序前移:
|
|
127
127
|
* text_delta 流式、终态后 message_end/turn_end)→ schema 仿真重试 → outcome/handle。
|
|
128
128
|
* onHandleReady 在 create 应答后(§3.4 不变量 3;原 onPoolResolved prepare 期
|
|
129
|
-
* 声明已随 [池抽象降级 2026-09-13] poolKey
|
|
129
|
+
* 声明已随 [池抽象降级 2026-09-13] poolKey 协议范围退役删除)。
|
|
130
130
|
*/
|
|
131
131
|
private runViaAppServer;
|
|
132
|
-
/** pre-aborted
|
|
132
|
+
/** pre-aborted 短路收尾:合成中止 outcome + 'shared' 锚定 handle。 */
|
|
133
133
|
private abortedAppServerRun;
|
|
134
134
|
/**
|
|
135
135
|
* 首轮执行 + 双重试编排(常驻路径):
|
|
@@ -140,11 +140,11 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
140
140
|
* 新建会话)。重试轮 prompt 用 basePrompt 原样重跑(失败形态非 schema),文案补
|
|
141
141
|
* 「已自动重试一次」句(retried 标记仅对真实发生的重试生效)。
|
|
142
142
|
*
|
|
143
|
-
* 两次重试一次封顶各自独立(D6
|
|
143
|
+
* 两次重试一次封顶各自独立(D6 不采用①:多次重试/指数退避不做——重跑一轮=整任务
|
|
144
144
|
* 重算,一次封顶)。组合序:瞬时重试在前、schema 重试在后——瞬时重试轮 parsed 且
|
|
145
145
|
* 校验失败时仍进 schema 重试(末次 attempt 语义,schema 重试编排保持现状不动)。
|
|
146
146
|
*
|
|
147
|
-
* 重试轮是独立会话的独立 LLM 调用:token 计入 outcome.usage
|
|
147
|
+
* 重试轮是独立会话的独立 LLM 调用:token 计入 outcome.usage 总量;事件范围
|
|
148
148
|
* text_delta 按实际流出(含失败轮——journal 记录真实流水),message_end/turn_end
|
|
149
149
|
* 只在最终轮终态后合成(不变量 2/5)。
|
|
150
150
|
*/
|
|
@@ -156,19 +156,19 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
156
156
|
private appServerHandle;
|
|
157
157
|
/**
|
|
158
158
|
* 单轮常驻执行:runTurn 组合面 + D3 abort 链 + 事件前移(text_delta 实时流出;
|
|
159
|
-
* 终态数据经 read
|
|
159
|
+
* 终态数据经 read 兜底收尾后才 resolve——不变量 1/2)。
|
|
160
160
|
*
|
|
161
161
|
* @param opts retried:瞬时重试轮标记——失败文案补「已自动重试一次」句(F-1/F-4)。
|
|
162
162
|
*/
|
|
163
163
|
private attemptAppServerTurn;
|
|
164
164
|
/**
|
|
165
165
|
* [attemptAppServerTurn 拆分] 失败分流(catch 半边):
|
|
166
|
-
* - signal 已 aborted →
|
|
166
|
+
* - signal 已 aborted → 中止终态收尾;
|
|
167
167
|
* - [P0-1 U4] 连接崩溃收割形态(failAllTurns 的错误,D6 可重试形态)判据:
|
|
168
|
-
* 非 RPC error
|
|
168
|
+
* 非 RPC error(服务端无明确应答——有应答即精确错误归类,非瞬时崩溃)且
|
|
169
169
|
* conn 不存活。时序可靠性:catch 时刻紧随 onClose 收割,连接重建仅由
|
|
170
170
|
* conn.request 惰性触发——本链路中 runTurn finally 的 closeSession 对死连接
|
|
171
|
-
* 短路(channel 侧 !alive
|
|
171
|
+
* 短路(channel 侧 !alive 检查)、stop 只属 abort 链(已被 signal.aborted
|
|
172
172
|
* 短路)——此刻无 request 可重建,判据可靠;
|
|
173
173
|
* - 其余 → 精确错误终态。
|
|
174
174
|
*/
|
|
@@ -186,7 +186,7 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
186
186
|
* D3 abort 链执行体(用户取消入口,fire-and-forget——与 turn promise 并行推进):
|
|
187
187
|
* stop 帧(超时 ZCODE_APPSERVER_STOP_TIMEOUT_MS)→ grace 窗口内 turn 落定即止
|
|
188
188
|
* (不杀共享进程)→ 超窗 killChain(conn.shutdown 全序:SIGTERM→grace→SIGKILL)。
|
|
189
|
-
* turn 的最终落定由 attempt 主路径 await
|
|
189
|
+
* turn 的最终落定由 attempt 主路径 await 收尾,本链不直接产出终态。abort 与 create
|
|
190
190
|
* 竞态(signal 先到、session 未建立):等会话建立(带上限)再发 stop——否则 stop
|
|
191
191
|
* 永远发不出,直接连坐杀共享进程。
|
|
192
192
|
*/
|
|
@@ -199,7 +199,7 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
199
199
|
* workspace.workspacePath 按任务传递——D10 基线不预设任务级进程 cwd)。
|
|
200
200
|
* spawn 经 fs 拦截 wrapper(appserver-launcher:cli config 读取重定向为
|
|
201
201
|
* 「真实文件 + v2 provider 注入」——CLI 形态 app-server 在共享宿主 HOME 下的
|
|
202
|
-
*
|
|
202
|
+
* 唯一凭据供数通路,机制与漂移风险见该文件头注)。
|
|
203
203
|
*/
|
|
204
204
|
private ensureAppServerRuntime;
|
|
205
205
|
/**
|
|
@@ -212,16 +212,16 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
212
212
|
* [P0-1 U5/D7] grace race 输掉(close 迟到/永不到达——stdio 被孙进程持有排空不
|
|
213
213
|
* 尽等病态形态)时,channel.dispose() 内置的 dispose 收割(failAllTurns 先于退订,
|
|
214
214
|
* SessionChannel.dispose)兜底在途 turn——在途 turn 收敛为「grace 窗口内明确失败」
|
|
215
|
-
* (设计 §3.4
|
|
215
|
+
* (设计 §3.4 退化路径完成);race 窗口与 awaitConnFinalized 同源同量级
|
|
216
216
|
* (ZCODE_APPSERVER_HARVEST_GRACE_MS)。正常 close 先到时 onClose 收割先行,
|
|
217
217
|
* dispose 收割幂等 no-op(零回归)。
|
|
218
218
|
*/
|
|
219
219
|
private shutdownRuntimeAndDisposeChannel;
|
|
220
220
|
/**
|
|
221
|
-
* [R1 D6 主体]
|
|
221
|
+
* [R1 D6 主体] 引擎停机路径:①fire 全部在途会话的 session/close 帧(不等待
|
|
222
222
|
* 应答——D6① 顺序规定:close 帧必须先于 SIGTERM,否则对面来不及处理即被杀)→
|
|
223
|
-
* ②同步 SIGTERM(conn.shutdown 调用内 killChain
|
|
224
|
-
* Promise 前完成)→ ③grace → SIGKILL
|
|
223
|
+
* ②同步 SIGTERM(conn.shutdown 调用内 killChain 前缀同步执行——同步部分在返回
|
|
224
|
+
* Promise 前完成)→ ③grace → SIGKILL(异步侧,Promise resolve 于进程退出)。
|
|
225
225
|
* 幂等:运行时字段取走即置空,二次调用零副作用;dispose 后首个 run 经
|
|
226
226
|
* ensureAppServerRuntime 自动重建(与崩溃重建同一代码路径,不变量 4)。
|
|
227
227
|
*/
|
|
@@ -247,7 +247,7 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
247
247
|
* [engine-ref-translation D1] 派发期模型 ref 翻译(EnginePort 可选成员实装):
|
|
248
248
|
* pi 词汇 ref → zcode 原生 ref(zai-coding-cn/* → account:bigmodel-individual-*
|
|
249
249
|
* 大小写归一,2026-10-16 用户裁决(证据驱动修正目标家族)),其余透传。编排层在 record stamp 前调用——
|
|
250
|
-
* record
|
|
250
|
+
* record/上报侧呈现实际发给引擎的 ref;翻译失败抛错 = 显式失败(不静默回落)。
|
|
251
251
|
* 幂等:翻译产物(account:/个人 id)再入恒等,引擎内 resolveZcodeModelRef 的
|
|
252
252
|
* 同名翻译分支零冲突。
|
|
253
253
|
*/
|
|
@@ -271,9 +271,9 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
271
271
|
* 权威,无双实现)。校验失败原样抛 ZcodePrepareError,由编排层
|
|
272
272
|
* (engine/model-validation.ts)包装成「引擎与模型不配套」文案。
|
|
273
273
|
*
|
|
274
|
-
* [R4/D6-②] 缺席语义:本实现是进程内形态 +
|
|
274
|
+
* [R4/D6-②] 缺席语义:本实现是进程内形态 + 协议诊断范围(宿主 cli 形态消费的是
|
|
275
275
|
* RemoteEngine 的 manifest 本地判定,不经本方法——SDK protocol methods.ts 明示
|
|
276
|
-
* validateModel
|
|
276
|
+
* validateModel 为诊断范围)。缺席 modelRef 时返回空串 canonical(= create 帧省略
|
|
277
277
|
* model 键、CLI 自身缺省解析——2026-09-29 account 体系迁移后 plan 家族兜底 id
|
|
278
278
|
* 已不可用;record 留痕侧按 R4/D6-② 空串归一为「用户未指定」条件留空)。帧应答
|
|
279
279
|
* 形态维持 {canonicalRef: string}(SDK port-contract 契约必填——「帧字段缺席」
|
|
@@ -290,7 +290,7 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
290
290
|
* (zcodeSessionDbPath(engineDataDir),tier1 白名单集合见方法体——宿主路径仅
|
|
291
291
|
* 「共享 HOME 时代」存量兼容);旧 records(池时代)的相对路径仍按池目录锚定
|
|
292
292
|
* 解析(read 兼容旧数据,池目录不存在时自然落②级 journal 降级)。[池抽象降级
|
|
293
|
-
* 2026-09-13] 锚定 key 用常量 SHARED_POOL_KEY
|
|
293
|
+
* 2026-09-13] 锚定 key 用常量 SHARED_POOL_KEY 承载——协议范围 poolKey 已删,池
|
|
294
294
|
* 时代真实池 key 不再随 handle 传输;若旧 record 的池目录恰为 shared 布局则①级
|
|
295
295
|
* 仍可达,其余池 key 的旧 record 直接走②级 journal 降级(30 天 TTL 同尺度衰减,
|
|
296
296
|
* 行为安全)。
|
|
@@ -326,8 +326,8 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
326
326
|
* [U6 / §3.2.6 要点 3] resume 锚 → 历史前缀(interact-resume 的读半段)。
|
|
327
327
|
*
|
|
328
328
|
* 无锚 / 非 zcode 锚形态 → undefined(行为不变)。读通道失败(会话失效 / 控制
|
|
329
|
-
* 面错误)=
|
|
330
|
-
* 于 create 应答,分钟级窗 +
|
|
329
|
+
* 面错误)= 锚真失效的权威信号——宿主侧库派生视图预检查已退役(app-server 写盘滞后
|
|
330
|
+
* 于 create 应答,分钟级窗 + 部分行永不写盘,预检查系统性误判;resume 走
|
|
331
331
|
* app-server resident 内存态才是真实活性判据),因此此处不再静默降级为无前缀
|
|
332
332
|
* 裸跑,而是返回锚失效声明段:让模型知情「延续但无历史」,基于最新消息独立
|
|
333
333
|
* 续推,而非在缺上下文时臆测连续性。用户消息照常执行,不炸轮。
|
|
@@ -366,7 +366,7 @@ declare function createDefaultZcodeEngine(): ZcodeEngine;
|
|
|
366
366
|
* 的 mtime TTL,refs 计数/deletePoolNativeState 已删,设计 D1/F11);journal
|
|
367
367
|
* 路径不变(仍 `engines/zcode/shared/journal-<taskId>.jsonl`)。
|
|
368
368
|
* `cleanupExpiredJournals` 会把 `engines/<engineId>/` 下每个子目录枚举,
|
|
369
|
-
* `session-db/` 中的 `db.sqlite*` 不匹配任何删除条件(GC
|
|
369
|
+
* `session-db/` 中的 `db.sqlite*` 不匹配任何删除条件(GC 检查 = 验收场景 A9)。
|
|
370
370
|
*
|
|
371
371
|
* @param engineDataDir 引擎数据目录(`deps.engineDataDir()`;禁硬编码,一律由入参推导)
|
|
372
372
|
*/
|
|
@@ -384,7 +384,7 @@ declare function hostZcodeDbPath(): string;
|
|
|
384
384
|
* 会话 db 白名单集合(①级读取的唯一放行来源,封闭集合——设计 D2/不变量 3):
|
|
385
385
|
* `[隔离库(现役), 宿主库(仅存量兼容)]`。
|
|
386
386
|
*
|
|
387
|
-
* record/handle 来自 append-only JSONL
|
|
387
|
+
* record/handle 来自 append-only JSONL(不可信来源),两读取站点只做「集合成员判定」,
|
|
388
388
|
* 只放行集合内精确绝对路径,其余拒绝①级、降 journal——防任意文件读。集合形态
|
|
389
389
|
* (而非 `||` 列表)使未来第三个合法路径只需改本函数。
|
|
390
390
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -3,19 +3,19 @@ import { FrameWriter } from '@zhushanwen/subagent-engine-sdk/server';
|
|
|
3
3
|
|
|
4
4
|
/** 入站帧来源( readline 已拆行的请求帧 + 反向请求应答帧混流)。 */
|
|
5
5
|
interface EngineProtocolServerOptions {
|
|
6
|
-
/** stdout
|
|
6
|
+
/** stdout 写侧(每帧一行 JSON)。 */
|
|
7
7
|
write: FrameWriter;
|
|
8
8
|
/** 引擎实例(缺省 createDefaultZcodeEngine——测试注入 fake/DI 实例)。 */
|
|
9
9
|
engine?: EnginePort;
|
|
10
|
-
/**
|
|
10
|
+
/** 反向请求计时侧(armEngineSelfDestruct 产物;缺省不计时——测试用)。 */
|
|
11
11
|
reverseClock?: ReverseRequestClock;
|
|
12
12
|
/** 应答等待缺省超时(反向请求两阶段等待上限兜底;默认 REVERSE_TIMEOUT_DEFAULT_MS)。 */
|
|
13
13
|
reverseTimeoutMs?: number;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
* 引擎协议服务器。生命周期 =
|
|
16
|
+
* 引擎协议服务器。生命周期 = 进程生命周期(单引擎实例,无重建逻辑——崩溃重建归
|
|
17
17
|
* core EngineClient:杀进程再 spawn)。dispose 方法释放引擎常驻资源但进程不退出
|
|
18
|
-
* (后续请求仍可服务——引擎进程退出归宿主 /
|
|
18
|
+
* (后续请求仍可服务——引擎进程退出归宿主 / 自灭检查)。
|
|
19
19
|
*/
|
|
20
20
|
declare class EngineProtocolServer {
|
|
21
21
|
private readonly write;
|
|
@@ -44,10 +44,10 @@ declare class EngineProtocolServer {
|
|
|
44
44
|
private validateModel;
|
|
45
45
|
private emitEvent;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* 发反向请求并等应答(帧④必须应答)。计时侧登记:发出 → clock.started;收到
|
|
48
48
|
* ack 形态应答 → clock.acked(两阶段第一段,等待不计超时);终结 → clock.settled。
|
|
49
|
-
* 应答超时兜底 reject
|
|
50
|
-
*
|
|
49
|
+
* 应答超时兜底 reject——数据范围通道(host/log 等)core 10s 应答,reject 由调用方
|
|
50
|
+
* 吞掉留痕(数据范围丢失不拖死主链路)。
|
|
51
51
|
*/
|
|
52
52
|
/**
|
|
53
53
|
* fire-and-forget 反向请求(`void this.reverseRequestInternal(...)` 形态)的
|
|
@@ -56,10 +56,10 @@ declare class EngineProtocolServer {
|
|
|
56
56
|
* 默认崩引擎进程)。失败只降级该次通道上报,warn 留痕不断流。
|
|
57
57
|
*/
|
|
58
58
|
private warnReverseFailure;
|
|
59
|
-
/**
|
|
59
|
+
/** 反向请求发送(对外公开:main.ts 的 host/log 桥接消费;内部 run 通道同路)。 */
|
|
60
60
|
reverseRequest(method: string, params: unknown): Promise<unknown>;
|
|
61
61
|
private reverseRequestInternal;
|
|
62
|
-
/** 反向请求应答落位(ack 两阶段:{ack:true}/{unsupported:true}/{ok:true} 均先 ack
|
|
62
|
+
/** 反向请求应答落位(ack 两阶段:{ack:true}/{unsupported:true}/{ok:true} 均先 ack 计时侧)。 */
|
|
63
63
|
private settleReverse;
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -126,10 +126,10 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
126
126
|
* 常驻路径主编排:模型解析(v2 单源校验)→ 惰性连接 + runTurn(事件时序前移:
|
|
127
127
|
* text_delta 流式、终态后 message_end/turn_end)→ schema 仿真重试 → outcome/handle。
|
|
128
128
|
* onHandleReady 在 create 应答后(§3.4 不变量 3;原 onPoolResolved prepare 期
|
|
129
|
-
* 声明已随 [池抽象降级 2026-09-13] poolKey
|
|
129
|
+
* 声明已随 [池抽象降级 2026-09-13] poolKey 协议范围退役删除)。
|
|
130
130
|
*/
|
|
131
131
|
private runViaAppServer;
|
|
132
|
-
/** pre-aborted
|
|
132
|
+
/** pre-aborted 短路收尾:合成中止 outcome + 'shared' 锚定 handle。 */
|
|
133
133
|
private abortedAppServerRun;
|
|
134
134
|
/**
|
|
135
135
|
* 首轮执行 + 双重试编排(常驻路径):
|
|
@@ -140,11 +140,11 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
140
140
|
* 新建会话)。重试轮 prompt 用 basePrompt 原样重跑(失败形态非 schema),文案补
|
|
141
141
|
* 「已自动重试一次」句(retried 标记仅对真实发生的重试生效)。
|
|
142
142
|
*
|
|
143
|
-
* 两次重试一次封顶各自独立(D6
|
|
143
|
+
* 两次重试一次封顶各自独立(D6 不采用①:多次重试/指数退避不做——重跑一轮=整任务
|
|
144
144
|
* 重算,一次封顶)。组合序:瞬时重试在前、schema 重试在后——瞬时重试轮 parsed 且
|
|
145
145
|
* 校验失败时仍进 schema 重试(末次 attempt 语义,schema 重试编排保持现状不动)。
|
|
146
146
|
*
|
|
147
|
-
* 重试轮是独立会话的独立 LLM 调用:token 计入 outcome.usage
|
|
147
|
+
* 重试轮是独立会话的独立 LLM 调用:token 计入 outcome.usage 总量;事件范围
|
|
148
148
|
* text_delta 按实际流出(含失败轮——journal 记录真实流水),message_end/turn_end
|
|
149
149
|
* 只在最终轮终态后合成(不变量 2/5)。
|
|
150
150
|
*/
|
|
@@ -156,19 +156,19 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
156
156
|
private appServerHandle;
|
|
157
157
|
/**
|
|
158
158
|
* 单轮常驻执行:runTurn 组合面 + D3 abort 链 + 事件前移(text_delta 实时流出;
|
|
159
|
-
* 终态数据经 read
|
|
159
|
+
* 终态数据经 read 兜底收尾后才 resolve——不变量 1/2)。
|
|
160
160
|
*
|
|
161
161
|
* @param opts retried:瞬时重试轮标记——失败文案补「已自动重试一次」句(F-1/F-4)。
|
|
162
162
|
*/
|
|
163
163
|
private attemptAppServerTurn;
|
|
164
164
|
/**
|
|
165
165
|
* [attemptAppServerTurn 拆分] 失败分流(catch 半边):
|
|
166
|
-
* - signal 已 aborted →
|
|
166
|
+
* - signal 已 aborted → 中止终态收尾;
|
|
167
167
|
* - [P0-1 U4] 连接崩溃收割形态(failAllTurns 的错误,D6 可重试形态)判据:
|
|
168
|
-
* 非 RPC error
|
|
168
|
+
* 非 RPC error(服务端无明确应答——有应答即精确错误归类,非瞬时崩溃)且
|
|
169
169
|
* conn 不存活。时序可靠性:catch 时刻紧随 onClose 收割,连接重建仅由
|
|
170
170
|
* conn.request 惰性触发——本链路中 runTurn finally 的 closeSession 对死连接
|
|
171
|
-
* 短路(channel 侧 !alive
|
|
171
|
+
* 短路(channel 侧 !alive 检查)、stop 只属 abort 链(已被 signal.aborted
|
|
172
172
|
* 短路)——此刻无 request 可重建,判据可靠;
|
|
173
173
|
* - 其余 → 精确错误终态。
|
|
174
174
|
*/
|
|
@@ -186,7 +186,7 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
186
186
|
* D3 abort 链执行体(用户取消入口,fire-and-forget——与 turn promise 并行推进):
|
|
187
187
|
* stop 帧(超时 ZCODE_APPSERVER_STOP_TIMEOUT_MS)→ grace 窗口内 turn 落定即止
|
|
188
188
|
* (不杀共享进程)→ 超窗 killChain(conn.shutdown 全序:SIGTERM→grace→SIGKILL)。
|
|
189
|
-
* turn 的最终落定由 attempt 主路径 await
|
|
189
|
+
* turn 的最终落定由 attempt 主路径 await 收尾,本链不直接产出终态。abort 与 create
|
|
190
190
|
* 竞态(signal 先到、session 未建立):等会话建立(带上限)再发 stop——否则 stop
|
|
191
191
|
* 永远发不出,直接连坐杀共享进程。
|
|
192
192
|
*/
|
|
@@ -199,7 +199,7 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
199
199
|
* workspace.workspacePath 按任务传递——D10 基线不预设任务级进程 cwd)。
|
|
200
200
|
* spawn 经 fs 拦截 wrapper(appserver-launcher:cli config 读取重定向为
|
|
201
201
|
* 「真实文件 + v2 provider 注入」——CLI 形态 app-server 在共享宿主 HOME 下的
|
|
202
|
-
*
|
|
202
|
+
* 唯一凭据供数通路,机制与漂移风险见该文件头注)。
|
|
203
203
|
*/
|
|
204
204
|
private ensureAppServerRuntime;
|
|
205
205
|
/**
|
|
@@ -212,16 +212,16 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
212
212
|
* [P0-1 U5/D7] grace race 输掉(close 迟到/永不到达——stdio 被孙进程持有排空不
|
|
213
213
|
* 尽等病态形态)时,channel.dispose() 内置的 dispose 收割(failAllTurns 先于退订,
|
|
214
214
|
* SessionChannel.dispose)兜底在途 turn——在途 turn 收敛为「grace 窗口内明确失败」
|
|
215
|
-
* (设计 §3.4
|
|
215
|
+
* (设计 §3.4 退化路径完成);race 窗口与 awaitConnFinalized 同源同量级
|
|
216
216
|
* (ZCODE_APPSERVER_HARVEST_GRACE_MS)。正常 close 先到时 onClose 收割先行,
|
|
217
217
|
* dispose 收割幂等 no-op(零回归)。
|
|
218
218
|
*/
|
|
219
219
|
private shutdownRuntimeAndDisposeChannel;
|
|
220
220
|
/**
|
|
221
|
-
* [R1 D6 主体]
|
|
221
|
+
* [R1 D6 主体] 引擎停机路径:①fire 全部在途会话的 session/close 帧(不等待
|
|
222
222
|
* 应答——D6① 顺序规定:close 帧必须先于 SIGTERM,否则对面来不及处理即被杀)→
|
|
223
|
-
* ②同步 SIGTERM(conn.shutdown 调用内 killChain
|
|
224
|
-
* Promise 前完成)→ ③grace → SIGKILL
|
|
223
|
+
* ②同步 SIGTERM(conn.shutdown 调用内 killChain 前缀同步执行——同步部分在返回
|
|
224
|
+
* Promise 前完成)→ ③grace → SIGKILL(异步侧,Promise resolve 于进程退出)。
|
|
225
225
|
* 幂等:运行时字段取走即置空,二次调用零副作用;dispose 后首个 run 经
|
|
226
226
|
* ensureAppServerRuntime 自动重建(与崩溃重建同一代码路径,不变量 4)。
|
|
227
227
|
*/
|
|
@@ -247,7 +247,7 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
247
247
|
* [engine-ref-translation D1] 派发期模型 ref 翻译(EnginePort 可选成员实装):
|
|
248
248
|
* pi 词汇 ref → zcode 原生 ref(zai-coding-cn/* → account:bigmodel-individual-*
|
|
249
249
|
* 大小写归一,2026-10-16 用户裁决(证据驱动修正目标家族)),其余透传。编排层在 record stamp 前调用——
|
|
250
|
-
* record
|
|
250
|
+
* record/上报侧呈现实际发给引擎的 ref;翻译失败抛错 = 显式失败(不静默回落)。
|
|
251
251
|
* 幂等:翻译产物(account:/个人 id)再入恒等,引擎内 resolveZcodeModelRef 的
|
|
252
252
|
* 同名翻译分支零冲突。
|
|
253
253
|
*/
|
|
@@ -271,9 +271,9 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
271
271
|
* 权威,无双实现)。校验失败原样抛 ZcodePrepareError,由编排层
|
|
272
272
|
* (engine/model-validation.ts)包装成「引擎与模型不配套」文案。
|
|
273
273
|
*
|
|
274
|
-
* [R4/D6-②] 缺席语义:本实现是进程内形态 +
|
|
274
|
+
* [R4/D6-②] 缺席语义:本实现是进程内形态 + 协议诊断范围(宿主 cli 形态消费的是
|
|
275
275
|
* RemoteEngine 的 manifest 本地判定,不经本方法——SDK protocol methods.ts 明示
|
|
276
|
-
* validateModel
|
|
276
|
+
* validateModel 为诊断范围)。缺席 modelRef 时返回空串 canonical(= create 帧省略
|
|
277
277
|
* model 键、CLI 自身缺省解析——2026-09-29 account 体系迁移后 plan 家族兜底 id
|
|
278
278
|
* 已不可用;record 留痕侧按 R4/D6-② 空串归一为「用户未指定」条件留空)。帧应答
|
|
279
279
|
* 形态维持 {canonicalRef: string}(SDK port-contract 契约必填——「帧字段缺席」
|
|
@@ -290,7 +290,7 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
290
290
|
* (zcodeSessionDbPath(engineDataDir),tier1 白名单集合见方法体——宿主路径仅
|
|
291
291
|
* 「共享 HOME 时代」存量兼容);旧 records(池时代)的相对路径仍按池目录锚定
|
|
292
292
|
* 解析(read 兼容旧数据,池目录不存在时自然落②级 journal 降级)。[池抽象降级
|
|
293
|
-
* 2026-09-13] 锚定 key 用常量 SHARED_POOL_KEY
|
|
293
|
+
* 2026-09-13] 锚定 key 用常量 SHARED_POOL_KEY 承载——协议范围 poolKey 已删,池
|
|
294
294
|
* 时代真实池 key 不再随 handle 传输;若旧 record 的池目录恰为 shared 布局则①级
|
|
295
295
|
* 仍可达,其余池 key 的旧 record 直接走②级 journal 降级(30 天 TTL 同尺度衰减,
|
|
296
296
|
* 行为安全)。
|
|
@@ -326,8 +326,8 @@ declare class ZcodeEngine implements EnginePort {
|
|
|
326
326
|
* [U6 / §3.2.6 要点 3] resume 锚 → 历史前缀(interact-resume 的读半段)。
|
|
327
327
|
*
|
|
328
328
|
* 无锚 / 非 zcode 锚形态 → undefined(行为不变)。读通道失败(会话失效 / 控制
|
|
329
|
-
* 面错误)=
|
|
330
|
-
* 于 create 应答,分钟级窗 +
|
|
329
|
+
* 面错误)= 锚真失效的权威信号——宿主侧库派生视图预检查已退役(app-server 写盘滞后
|
|
330
|
+
* 于 create 应答,分钟级窗 + 部分行永不写盘,预检查系统性误判;resume 走
|
|
331
331
|
* app-server resident 内存态才是真实活性判据),因此此处不再静默降级为无前缀
|
|
332
332
|
* 裸跑,而是返回锚失效声明段:让模型知情「延续但无历史」,基于最新消息独立
|
|
333
333
|
* 续推,而非在缺上下文时臆测连续性。用户消息照常执行,不炸轮。
|
|
@@ -366,7 +366,7 @@ declare function createDefaultZcodeEngine(): ZcodeEngine;
|
|
|
366
366
|
* 的 mtime TTL,refs 计数/deletePoolNativeState 已删,设计 D1/F11);journal
|
|
367
367
|
* 路径不变(仍 `engines/zcode/shared/journal-<taskId>.jsonl`)。
|
|
368
368
|
* `cleanupExpiredJournals` 会把 `engines/<engineId>/` 下每个子目录枚举,
|
|
369
|
-
* `session-db/` 中的 `db.sqlite*` 不匹配任何删除条件(GC
|
|
369
|
+
* `session-db/` 中的 `db.sqlite*` 不匹配任何删除条件(GC 检查 = 验收场景 A9)。
|
|
370
370
|
*
|
|
371
371
|
* @param engineDataDir 引擎数据目录(`deps.engineDataDir()`;禁硬编码,一律由入参推导)
|
|
372
372
|
*/
|
|
@@ -384,7 +384,7 @@ declare function hostZcodeDbPath(): string;
|
|
|
384
384
|
* 会话 db 白名单集合(①级读取的唯一放行来源,封闭集合——设计 D2/不变量 3):
|
|
385
385
|
* `[隔离库(现役), 宿主库(仅存量兼容)]`。
|
|
386
386
|
*
|
|
387
|
-
* record/handle 来自 append-only JSONL
|
|
387
|
+
* record/handle 来自 append-only JSONL(不可信来源),两读取站点只做「集合成员判定」,
|
|
388
388
|
* 只放行集合内精确绝对路径,其余拒绝①级、降 journal——防任意文件读。集合形态
|
|
389
389
|
* (而非 `||` 列表)使未来第三个合法路径只需改本函数。
|
|
390
390
|
*
|