@clawos-dev/clawd 0.2.136-beta.288.d5a2c71 → 0.2.136
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/dist/cli.cjs +21 -21
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -33079,6 +33079,11 @@ var SessionManager = class {
|
|
|
33079
33079
|
// manager.resizePty 用此映射把 UI 的 session:pty:resize 同步到 surface 内部 buffer,
|
|
33080
33080
|
// 保证 snapshot serialize 时 cursor positioning 与 UI xterm 实际尺寸一致。
|
|
33081
33081
|
surfacesByToolSid = /* @__PURE__ */ new Map();
|
|
33082
|
+
// TUI 模式:sessionId → UI 最近一次上报的 xterm 尺寸。resizePty 入口无条件记录(含 pty
|
|
33083
|
+
// 尚未 spawn / runner 尚未创建的早到 resize),registerPty / registerSurface 时回放——
|
|
33084
|
+
// 修「mount resize 早于 lazy spawn 被丢」与「respawn 回到 120×40 后无人补发」的尺寸错配。
|
|
33085
|
+
// 键用 sessionId 而非 toolSessionId:/clear 会 reassign tsid,sessionId 跨 respawn 稳定
|
|
33086
|
+
lastUiSizeBySessionId = /* @__PURE__ */ new Map();
|
|
33082
33087
|
// 仅 mode='tui' 需要:index.ts 装配阶段在 observer 构造后注入。
|
|
33083
33088
|
// observer.onEvent 要回灌 manager.feedObserverEvents,所以 observer 必须晚于 manager
|
|
33084
33089
|
// 构造;反过来 manager 又要在 mode='tui' 下 spawn session 时 attach observer。setter 解循环
|
|
@@ -33615,6 +33620,7 @@ var SessionManager = class {
|
|
|
33615
33620
|
});
|
|
33616
33621
|
this.runners.delete(args.sessionId);
|
|
33617
33622
|
this.realUuidBySynth.delete(args.sessionId);
|
|
33623
|
+
this.lastUiSizeBySessionId.delete(args.sessionId);
|
|
33618
33624
|
return { response: { sessionId: args.sessionId }, broadcast };
|
|
33619
33625
|
}
|
|
33620
33626
|
this.deleteOwned(args.sessionId);
|
|
@@ -34130,6 +34136,7 @@ var SessionManager = class {
|
|
|
34130
34136
|
});
|
|
34131
34137
|
this.runners.delete(args.sessionId);
|
|
34132
34138
|
this.realUuidBySynth.delete(args.sessionId);
|
|
34139
|
+
this.lastUiSizeBySessionId.delete(args.sessionId);
|
|
34133
34140
|
return { response: { sessionId: args.sessionId }, broadcast };
|
|
34134
34141
|
}
|
|
34135
34142
|
this.storeFor(args.scope).delete(args.sessionId);
|
|
@@ -34295,6 +34302,14 @@ var SessionManager = class {
|
|
|
34295
34302
|
/** ClaudeTuiAdapter.spawn 后调用,让 manager 持有 pty handle 供 handler input/resize 路由 */
|
|
34296
34303
|
registerPty(toolSessionId, pty) {
|
|
34297
34304
|
this.ptyTransports.set(toolSessionId, pty);
|
|
34305
|
+
const sid = this.sessionIdByToolSid(toolSessionId);
|
|
34306
|
+
const size = sid ? this.lastUiSizeBySessionId.get(sid) : void 0;
|
|
34307
|
+
if (size) {
|
|
34308
|
+
try {
|
|
34309
|
+
pty.resize(size.cols, size.rows);
|
|
34310
|
+
} catch {
|
|
34311
|
+
}
|
|
34312
|
+
}
|
|
34298
34313
|
}
|
|
34299
34314
|
/** spawn 进程 exit 时调用,清理映射防止后续 input 写到已死 pty + 释放 replay 闭包 */
|
|
34300
34315
|
unregisterPty(toolSessionId) {
|
|
@@ -34384,6 +34399,9 @@ var SessionManager = class {
|
|
|
34384
34399
|
/** ClaudeTuiAdapter spawn 时注册 surface ref;同一 tsid 重 spawn 会覆盖 */
|
|
34385
34400
|
registerSurface(toolSessionId, surface) {
|
|
34386
34401
|
this.surfacesByToolSid.set(toolSessionId, surface);
|
|
34402
|
+
const sid = this.sessionIdByToolSid(toolSessionId);
|
|
34403
|
+
const size = sid ? this.lastUiSizeBySessionId.get(sid) : void 0;
|
|
34404
|
+
if (size) surface.resize(size.cols, size.rows);
|
|
34387
34405
|
}
|
|
34388
34406
|
/** spawn 进程 exit 时清理 */
|
|
34389
34407
|
unregisterSurface(toolSessionId) {
|
|
@@ -34396,6 +34414,7 @@ var SessionManager = class {
|
|
|
34396
34414
|
* 找不到 runner / toolSessionId / pty 任一缺失 → 返 false,handler 静默给 UI 报 ok=false 不抛错。
|
|
34397
34415
|
*/
|
|
34398
34416
|
resizePty(sessionId, cols, rows) {
|
|
34417
|
+
this.lastUiSizeBySessionId.set(sessionId, { cols, rows });
|
|
34399
34418
|
const runner = this.runners.get(sessionId);
|
|
34400
34419
|
if (!runner) return false;
|
|
34401
34420
|
const tsid = runner.getState().file.toolSessionId;
|
|
@@ -36775,28 +36794,9 @@ function buildTuiSpawnArgs(ctx, isResume = false) {
|
|
|
36775
36794
|
args.push(isResume ? "--resume" : "--session-id", ctx.toolSessionId);
|
|
36776
36795
|
}
|
|
36777
36796
|
if (ctx.model) args.push("--model", ctx.model);
|
|
36778
|
-
|
|
36779
|
-
case "guest":
|
|
36780
|
-
args.push("--setting-sources", "project,local");
|
|
36781
|
-
break;
|
|
36782
|
-
case "owner":
|
|
36783
|
-
args.push("--setting-sources", "user,project,local");
|
|
36784
|
-
args.push("--permission-mode", "bypassPermissions");
|
|
36785
|
-
break;
|
|
36786
|
-
case void 0:
|
|
36787
|
-
args.push("--permission-mode", ctx.permissionMode || "bypassPermissions");
|
|
36788
|
-
break;
|
|
36789
|
-
default: {
|
|
36790
|
-
const _exhaustive = ctx.personaMode;
|
|
36791
|
-
throw new Error(`unexpected personaMode: ${String(_exhaustive)}`);
|
|
36792
|
-
}
|
|
36793
|
-
}
|
|
36794
|
-
if (ctx.extraSettings) args.push("--settings", ctx.extraSettings);
|
|
36795
|
-
if (ctx.extraSystemPrompt) args.push("--append-system-prompt", ctx.extraSystemPrompt);
|
|
36796
|
-
if (ctx.addDirs) {
|
|
36797
|
-
for (const dir of ctx.addDirs) args.push("--add-dir", dir);
|
|
36798
|
-
}
|
|
36797
|
+
args.push("--permission-mode", ctx.permissionMode ?? "bypassPermissions");
|
|
36799
36798
|
if (ctx.effort) args.push("--effort", ctx.effort);
|
|
36799
|
+
if (ctx.extraSettings) args.push("--settings", ctx.extraSettings);
|
|
36800
36800
|
return args;
|
|
36801
36801
|
}
|
|
36802
36802
|
function jsonlExistsForCtx(ctx) {
|
package/package.json
CHANGED