@xiaoqiong0v0/opencode-ssh-tool 0.2.6 → 0.3.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/README.md +28 -18
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/i18n.d.ts +60 -30
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +60 -30
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +164 -59
- package/dist/index.js.map +1 -1
- package/dist/local-session.d.ts +117 -0
- package/dist/local-session.d.ts.map +1 -0
- package/dist/local-session.js +365 -0
- package/dist/local-session.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +138 -39
- package/dist/server.js.map +1 -1
- package/dist/session-store.d.ts +4 -0
- package/dist/session-store.d.ts.map +1 -1
- package/dist/session-store.js.map +1 -1
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +13 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import { SessionHistory } from "./history.js";
|
|
|
10
10
|
import { T, getLang, tr } from "./i18n.js";
|
|
11
11
|
import { createDecider } from "./permission.js";
|
|
12
12
|
import { SshSession } from "./session.js";
|
|
13
|
+
import { LocalSession } from "./local-session.js";
|
|
13
14
|
import {} from "./server.js";
|
|
14
15
|
import { ensureServer } from "./server-manager.js";
|
|
15
16
|
import { writeSessionState, removeSessionState } from "./session-store.js";
|
|
@@ -32,17 +33,22 @@ function sanitizeName(name) {
|
|
|
32
33
|
}
|
|
33
34
|
/** 会话表:key = opencode sessionID → 内层 key = 终端名 → SshSession(内部状态,不导出) */
|
|
34
35
|
const sshSessions = new Map();
|
|
36
|
+
/** 本地/容器会话表:key = sessionID → 终端名 → LocalSession(Bun.Terminal,内部状态) */
|
|
37
|
+
const localSessions = new Map();
|
|
35
38
|
/** 会话元信息(标题/目录,供 HTTP 页面显示),key = sessionID */
|
|
36
39
|
const sessionMeta = new Map();
|
|
37
40
|
/** HTTP 终端记录服务句柄(本进程持有,可能为 null) */
|
|
38
41
|
let httpServer = null;
|
|
39
42
|
/** HTTP 服务已知地址(本进程启动或复用时记录,供展示) */
|
|
40
43
|
let httpUrl = "";
|
|
41
|
-
/**
|
|
44
|
+
/** 进程退出兜底:关闭全部连接(SSH + 本地终端)+ 关闭本进程持有的 HTTP 服务 */
|
|
42
45
|
process.on("exit", () => {
|
|
43
46
|
for (const map of sshSessions.values())
|
|
44
47
|
for (const s of map.values())
|
|
45
48
|
s.close();
|
|
49
|
+
for (const map of localSessions.values())
|
|
50
|
+
for (const s of map.values())
|
|
51
|
+
s.close();
|
|
46
52
|
if (httpServer) {
|
|
47
53
|
try {
|
|
48
54
|
httpServer.close();
|
|
@@ -71,22 +77,25 @@ function listSessionEntries() {
|
|
|
71
77
|
return entries;
|
|
72
78
|
}
|
|
73
79
|
/**
|
|
74
|
-
*
|
|
80
|
+
* 同步某终端状态到共享文件(跨进程聚合展示用,SSH 与本地/容器通用)
|
|
75
81
|
* @param sessionID opencode 会话 ID
|
|
76
82
|
* @param name 终端名(默认 default)
|
|
77
83
|
*/
|
|
78
84
|
function syncSessionState(sessionID, name = DEFAULT_NAME) {
|
|
79
|
-
const session =
|
|
85
|
+
const session = resolveSession(sessionID, name);
|
|
80
86
|
if (!session)
|
|
81
87
|
return;
|
|
82
88
|
const st = session.getStatus();
|
|
83
89
|
const meta = sessionMeta.get(sessionID);
|
|
90
|
+
const isLocal = !("host" in st) || !st.host;
|
|
84
91
|
writeSessionState(cacheRoot(), {
|
|
85
92
|
sessionID,
|
|
86
93
|
name,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
kind: isLocal ? "local" : "ssh",
|
|
95
|
+
host: "host" in st ? st.host : undefined,
|
|
96
|
+
user: "user" in st ? st.user : undefined,
|
|
97
|
+
port: "port" in st ? st.port : undefined,
|
|
98
|
+
program: "program" in st ? st.program : undefined,
|
|
90
99
|
connected: st.connected,
|
|
91
100
|
busy: st.busy,
|
|
92
101
|
pending: st.pending,
|
|
@@ -97,6 +106,41 @@ function syncSessionState(sessionID, name = DEFAULT_NAME) {
|
|
|
97
106
|
updatedAt: Date.now(),
|
|
98
107
|
});
|
|
99
108
|
}
|
|
109
|
+
/** 按 sessionID 取本地/容器终端表(无则返回 undefined) */
|
|
110
|
+
function getLocalSessionMap(sessionID) {
|
|
111
|
+
return localSessions.get(sessionID);
|
|
112
|
+
}
|
|
113
|
+
/** 按 sessionID + 终端名取本地/容器会话(name 默认 default) */
|
|
114
|
+
function getLocalSession(sessionID, name = DEFAULT_NAME) {
|
|
115
|
+
return getLocalSessionMap(sessionID)?.get(name);
|
|
116
|
+
}
|
|
117
|
+
/** 解析终端会话:优先 SSH,其次本地/容器(合并后的操作工具统一用此查找) */
|
|
118
|
+
function resolveSession(sessionID, name = DEFAULT_NAME) {
|
|
119
|
+
return getSession(sessionID, name) ?? getLocalSession(sessionID, name);
|
|
120
|
+
}
|
|
121
|
+
/** 清理指定本地终端:关闭 + 删状态文件 + 从会话表移除 */
|
|
122
|
+
function cleanupLocalSession(sessionID, name = DEFAULT_NAME) {
|
|
123
|
+
const map = getLocalSessionMap(sessionID);
|
|
124
|
+
const session = map?.get(name);
|
|
125
|
+
if (session) {
|
|
126
|
+
session.close();
|
|
127
|
+
map.delete(name);
|
|
128
|
+
if (map.size === 0)
|
|
129
|
+
localSessions.delete(sessionID);
|
|
130
|
+
}
|
|
131
|
+
removeSessionState(cacheRoot(), sessionID, name);
|
|
132
|
+
}
|
|
133
|
+
/** 清理一个 sessionID 下全部本地终端 */
|
|
134
|
+
function cleanupAllLocalSessions(sessionID) {
|
|
135
|
+
const map = getLocalSessionMap(sessionID);
|
|
136
|
+
if (map) {
|
|
137
|
+
for (const s of map.values())
|
|
138
|
+
s.close();
|
|
139
|
+
for (const name of map.keys())
|
|
140
|
+
removeSessionState(cacheRoot(), sessionID, name);
|
|
141
|
+
localSessions.delete(sessionID);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
100
144
|
/** 插件缓存根目录(历史消息对存文件,随会话清理) */
|
|
101
145
|
function cacheRoot() {
|
|
102
146
|
const home = process.env.USERPROFILE || process.env.HOME || homedir();
|
|
@@ -193,6 +237,7 @@ export const OpenCodeSshTool = async () => {
|
|
|
193
237
|
const sid = info?.id;
|
|
194
238
|
if (sid) {
|
|
195
239
|
cleanupAllSessions(sid);
|
|
240
|
+
cleanupAllLocalSessions(sid);
|
|
196
241
|
sessionMeta.delete(sid);
|
|
197
242
|
log.info(`会话 ${sid} 删除,已清理`);
|
|
198
243
|
}
|
|
@@ -258,31 +303,31 @@ export const OpenCodeSshTool = async () => {
|
|
|
258
303
|
};
|
|
259
304
|
},
|
|
260
305
|
}),
|
|
261
|
-
|
|
262
|
-
description: T.
|
|
306
|
+
term_exec: tool({
|
|
307
|
+
description: T.term_exec[lang],
|
|
263
308
|
args: {
|
|
264
|
-
command: tool.schema.string().describe(T.
|
|
265
|
-
waitResult: tool.schema.boolean().optional().describe(T.
|
|
266
|
-
name: tool.schema.string().optional().describe(T.
|
|
309
|
+
command: tool.schema.string().describe(T.term_exec_args.command[lang]),
|
|
310
|
+
waitResult: tool.schema.boolean().optional().describe(T.term_exec_args.waitResult[lang]),
|
|
311
|
+
name: tool.schema.string().optional().describe(T.term_exec_args.name[lang]),
|
|
267
312
|
},
|
|
268
313
|
async execute(args, context) {
|
|
269
314
|
const { sessionID } = context;
|
|
270
|
-
const session =
|
|
315
|
+
const session = resolveSession(sessionID, args.name);
|
|
271
316
|
if (!session)
|
|
272
317
|
return tr("not_connected", lang);
|
|
273
|
-
//
|
|
318
|
+
// 权限判定:先黑后白再问(SSH 与本地/容器一致)
|
|
274
319
|
const decision = decide(args.command);
|
|
275
320
|
if (decision === "deny") {
|
|
276
|
-
log.tool("
|
|
321
|
+
log.tool("term_exec_denied", { command: args.command });
|
|
277
322
|
return tr("denied_danger", lang);
|
|
278
323
|
}
|
|
279
324
|
if (decision === "ask") {
|
|
280
325
|
log.info(`[ask] 命令需审批,调用 context.ask: ${args.command.slice(0, 60)}`);
|
|
281
326
|
try {
|
|
282
327
|
await context.ask({
|
|
283
|
-
permission: "
|
|
328
|
+
permission: "term_exec",
|
|
284
329
|
patterns: [args.command],
|
|
285
|
-
always: [`
|
|
330
|
+
always: [`term_exec:${args.command}`],
|
|
286
331
|
metadata: { title: args.command.slice(0, 60) },
|
|
287
332
|
});
|
|
288
333
|
log.info(`[ask] context.ask 返回(已允许): ${args.command.slice(0, 60)}`);
|
|
@@ -295,9 +340,9 @@ export const OpenCodeSshTool = async () => {
|
|
|
295
340
|
// 默认异步提交(立即返回,不占上下文);waitResult=true 同步等结果
|
|
296
341
|
const result = args.waitResult ? await session.exec(args.command) : await session.submit(args.command);
|
|
297
342
|
syncSessionState(sessionID, args.name ?? DEFAULT_NAME);
|
|
298
|
-
log.tool("
|
|
343
|
+
log.tool("term_exec", { command: args.command, ok: result.ok, submitted: result.submitted, interactive: result.interactive, running: result.running });
|
|
299
344
|
const meta = {
|
|
300
|
-
host: result.host,
|
|
345
|
+
host: ("host" in result ? result.host : undefined),
|
|
301
346
|
command: result.command,
|
|
302
347
|
duration: result.duration,
|
|
303
348
|
submitted: result.submitted,
|
|
@@ -315,18 +360,18 @@ export const OpenCodeSshTool = async () => {
|
|
|
315
360
|
};
|
|
316
361
|
},
|
|
317
362
|
}),
|
|
318
|
-
|
|
319
|
-
description: T.
|
|
363
|
+
term_read: tool({
|
|
364
|
+
description: T.term_read[lang],
|
|
320
365
|
args: {
|
|
321
|
-
source: tool.schema.enum(["buffer", "history"]).optional().describe(T.
|
|
322
|
-
lines: tool.schema.number().optional().describe(T.
|
|
323
|
-
direction: tool.schema.enum(["tail", "head"]).optional().describe(T.
|
|
324
|
-
limit: tool.schema.number().optional().describe(T.
|
|
325
|
-
includeCommand: tool.schema.boolean().optional().describe(T.
|
|
326
|
-
name: tool.schema.string().optional().describe(T.
|
|
366
|
+
source: tool.schema.enum(["buffer", "history"]).optional().describe(T.term_read_args.source[lang]),
|
|
367
|
+
lines: tool.schema.number().optional().describe(T.term_read_args.lines[lang]),
|
|
368
|
+
direction: tool.schema.enum(["tail", "head"]).optional().describe(T.term_read_args.direction[lang]),
|
|
369
|
+
limit: tool.schema.number().optional().describe(T.term_read_args.limit[lang]),
|
|
370
|
+
includeCommand: tool.schema.boolean().optional().describe(T.term_read_args.includeCommand[lang]),
|
|
371
|
+
name: tool.schema.string().optional().describe(T.term_read_args.name[lang]),
|
|
327
372
|
},
|
|
328
373
|
async execute(args, context) {
|
|
329
|
-
const session =
|
|
374
|
+
const session = resolveSession(context.sessionID, args.name);
|
|
330
375
|
if (!session)
|
|
331
376
|
return tr("not_connected", lang);
|
|
332
377
|
const source = args.source ?? "history";
|
|
@@ -351,6 +396,7 @@ export const OpenCodeSshTool = async () => {
|
|
|
351
396
|
? tr("browser_full_record", lang).replace("{url}", httpUrl)
|
|
352
397
|
: tr("server_not_enabled", lang);
|
|
353
398
|
const titleKey = direction === "tail" ? "history_title" : "history_title_head";
|
|
399
|
+
const st = session.getStatus();
|
|
354
400
|
return {
|
|
355
401
|
title: tr(titleKey, lang).replace("{n}", String(selected.length)).replace("{total}", String(total)),
|
|
356
402
|
output: text + browserLine,
|
|
@@ -359,43 +405,50 @@ export const OpenCodeSshTool = async () => {
|
|
|
359
405
|
returned: selected.length,
|
|
360
406
|
total,
|
|
361
407
|
sessionID: context.sessionID,
|
|
362
|
-
host:
|
|
408
|
+
host: "host" in st ? st.host : undefined,
|
|
363
409
|
},
|
|
364
410
|
};
|
|
365
411
|
},
|
|
366
412
|
}),
|
|
367
|
-
|
|
368
|
-
description: T.
|
|
413
|
+
term_send: tool({
|
|
414
|
+
description: T.term_send[lang],
|
|
369
415
|
args: {
|
|
370
|
-
text: tool.schema.string().describe(T.
|
|
371
|
-
name: tool.schema.string().optional().describe(T.
|
|
416
|
+
text: tool.schema.string().describe(T.term_send_args.text[lang]),
|
|
417
|
+
name: tool.schema.string().optional().describe(T.term_send_args.name[lang]),
|
|
372
418
|
},
|
|
373
419
|
async execute(args, context) {
|
|
374
|
-
const session =
|
|
420
|
+
const session = resolveSession(context.sessionID, args.name);
|
|
375
421
|
if (!session)
|
|
376
422
|
return tr("not_connected", lang);
|
|
377
423
|
const r = session.send(args.text);
|
|
378
424
|
if (!r.ok)
|
|
379
425
|
return tr("err_not_connected", lang);
|
|
380
426
|
syncSessionState(context.sessionID, args.name ?? DEFAULT_NAME);
|
|
381
|
-
log.tool("
|
|
427
|
+
log.tool("term_send", { text: args.text.slice(0, 60), name: args.name ?? DEFAULT_NAME });
|
|
382
428
|
return { title: tr("send_title", lang), output: tr("send_ok", lang).replace("{text}", args.text.slice(0, 60)) };
|
|
383
429
|
},
|
|
384
430
|
}),
|
|
385
|
-
|
|
386
|
-
description: T.
|
|
431
|
+
term_status: tool({
|
|
432
|
+
description: T.term_status[lang],
|
|
387
433
|
args: {
|
|
388
|
-
name: tool.schema.string().optional().describe(T.
|
|
434
|
+
name: tool.schema.string().optional().describe(T.term_status_args.name[lang]),
|
|
389
435
|
},
|
|
390
436
|
async execute(args, context) {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
const session = args.name ? map.get(args.name) : undefined;
|
|
396
|
-
if (args.name && !session)
|
|
437
|
+
// 合并 SSH 与本地/容器会话状态
|
|
438
|
+
const smap = getSessionMap(context.sessionID);
|
|
439
|
+
const lmap = getLocalSessionMap(context.sessionID);
|
|
440
|
+
if ((!smap || smap.size === 0) && (!lmap || lmap.size === 0))
|
|
397
441
|
return tr("no_sessions", lang);
|
|
398
|
-
|
|
442
|
+
let sessions;
|
|
443
|
+
if (args.name) {
|
|
444
|
+
const s = resolveSession(context.sessionID, args.name);
|
|
445
|
+
if (!s)
|
|
446
|
+
return tr("no_sessions", lang);
|
|
447
|
+
sessions = [s];
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
sessions = [...(smap?.values() ?? []), ...(lmap?.values() ?? [])];
|
|
451
|
+
}
|
|
399
452
|
const parts = [];
|
|
400
453
|
for (const s of sessions) {
|
|
401
454
|
const st = s.getStatus();
|
|
@@ -403,12 +456,17 @@ export const OpenCodeSshTool = async () => {
|
|
|
403
456
|
parts.push(tr("session_disconnected", lang));
|
|
404
457
|
continue;
|
|
405
458
|
}
|
|
459
|
+
// SSH 显示 host@user:port;本地/容器显示 program
|
|
460
|
+
const connLine = "host" in st && st.host
|
|
461
|
+
? `host: ${st.host}@${st.user}:${st.port}`
|
|
462
|
+
: `program: ${st.program ?? "-"}`;
|
|
406
463
|
parts.push([
|
|
407
464
|
`name: ${st.name ?? "default"}`,
|
|
465
|
+
`type: ${"host" in st ? "ssh" : "local"}`,
|
|
408
466
|
`connected: ${st.connected}`,
|
|
409
467
|
`busy: ${st.busy}`,
|
|
410
468
|
`pending: ${st.pending} bytes`,
|
|
411
|
-
|
|
469
|
+
connLine,
|
|
412
470
|
st.lastActive ? `lastActive: ${new Date(st.lastActive).toISOString()}` : null,
|
|
413
471
|
st.connectedAt ? `connectedAt: ${new Date(st.connectedAt).toISOString()}` : null,
|
|
414
472
|
].filter(Boolean).join("\n"));
|
|
@@ -425,28 +483,75 @@ export const OpenCodeSshTool = async () => {
|
|
|
425
483
|
return { title: tr("status_title", lang), output: parts.join("\n\n") + serverLines.join("\n") };
|
|
426
484
|
},
|
|
427
485
|
}),
|
|
428
|
-
|
|
429
|
-
description: T.
|
|
486
|
+
term_disconnect: tool({
|
|
487
|
+
description: T.term_disconnect[lang],
|
|
430
488
|
args: {
|
|
431
|
-
name: tool.schema.string().optional().describe(T.
|
|
489
|
+
name: tool.schema.string().optional().describe(T.term_disconnect_args.name[lang]),
|
|
432
490
|
},
|
|
433
491
|
async execute(args, context) {
|
|
434
492
|
const { sessionID } = context;
|
|
435
|
-
const
|
|
436
|
-
|
|
493
|
+
const smap = getSessionMap(sessionID);
|
|
494
|
+
const lmap = getLocalSessionMap(sessionID);
|
|
495
|
+
if ((!smap || smap.size === 0) && (!lmap || lmap.size === 0))
|
|
437
496
|
return tr("no_sessions", lang);
|
|
438
|
-
// 未指定 name →
|
|
497
|
+
// 未指定 name → 断开全部终端(SSH + 本地);否则断开指定终端(自动识别类型)
|
|
439
498
|
if (!args.name) {
|
|
440
|
-
const
|
|
499
|
+
const firstHost = [...(smap?.values() ?? [])][0]?.getStatus().host;
|
|
441
500
|
cleanupAllSessions(sessionID);
|
|
442
|
-
|
|
501
|
+
cleanupAllLocalSessions(sessionID);
|
|
502
|
+
return tr("disconnected_all_ok", lang).replace("{host}", firstHost ?? "-");
|
|
443
503
|
}
|
|
444
|
-
const
|
|
445
|
-
if (
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
504
|
+
const ssh = getSession(sessionID, args.name);
|
|
505
|
+
if (ssh) {
|
|
506
|
+
const host = ssh.getStatus().host;
|
|
507
|
+
cleanupSession(sessionID, args.name);
|
|
508
|
+
return tr("disconnected_ok", lang).replace("{host}", host ?? "-");
|
|
509
|
+
}
|
|
510
|
+
const local = getLocalSession(sessionID, args.name);
|
|
511
|
+
if (local) {
|
|
512
|
+
const program = local.getStatus().program;
|
|
513
|
+
cleanupLocalSession(sessionID, args.name);
|
|
514
|
+
return tr("disconnected_ok", lang).replace("{host}", program ?? "-");
|
|
515
|
+
}
|
|
516
|
+
return tr("no_sessions", lang);
|
|
517
|
+
},
|
|
518
|
+
}),
|
|
519
|
+
local_connect: tool({
|
|
520
|
+
description: T.local_connect[lang],
|
|
521
|
+
args: {
|
|
522
|
+
command: tool.schema.string().describe(T.local_connect_args.command[lang]),
|
|
523
|
+
name: tool.schema.string().optional().describe(T.local_connect_args.name[lang]),
|
|
524
|
+
cwd: tool.schema.string().optional().describe(T.local_connect_args.cwd[lang]),
|
|
525
|
+
},
|
|
526
|
+
async execute(args, context) {
|
|
527
|
+
const { sessionID } = context;
|
|
528
|
+
const name = args.name ?? DEFAULT_NAME;
|
|
529
|
+
if (sanitizeName(name) === null) {
|
|
530
|
+
return tr("invalid_name", lang);
|
|
531
|
+
}
|
|
532
|
+
// 同名终端已有 → 先关旧的
|
|
533
|
+
const map = getLocalSessionMap(sessionID);
|
|
534
|
+
const old = map?.get(name);
|
|
535
|
+
if (old) {
|
|
536
|
+
old.close();
|
|
537
|
+
map.delete(name);
|
|
538
|
+
}
|
|
539
|
+
const session = new LocalSession(sessionID, new SessionHistory(join(cacheRoot(), sessionID), `local-${name}`, cfg.history.maxMessages), name);
|
|
540
|
+
const result = await session.connect({ command: args.command, cwd: args.cwd });
|
|
541
|
+
log.tool("local_connect", { command: args.command, name });
|
|
542
|
+
if (!result.ok) {
|
|
543
|
+
session.close();
|
|
544
|
+
return { title: tr("local_connect_title_fail", lang), output: result.error ?? tr("unknown_error", lang) };
|
|
545
|
+
}
|
|
546
|
+
if (!map)
|
|
547
|
+
localSessions.set(sessionID, new Map());
|
|
548
|
+
localSessions.get(sessionID).set(name, session);
|
|
549
|
+
syncSessionState(sessionID, name);
|
|
550
|
+
return {
|
|
551
|
+
title: tr("local_connect_title_ok", lang),
|
|
552
|
+
output: tr("local_connect_ok", lang).replace("{cmd}", args.command).replace("{name}", name),
|
|
553
|
+
metadata: { command: args.command, name },
|
|
554
|
+
};
|
|
450
555
|
},
|
|
451
556
|
}),
|
|
452
557
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { SessionHistory } from "./history.js";
|
|
2
|
+
/** 命令执行结果 */
|
|
3
|
+
export interface LocalExecResult {
|
|
4
|
+
ok: boolean;
|
|
5
|
+
output: string;
|
|
6
|
+
interactive?: boolean;
|
|
7
|
+
running?: boolean;
|
|
8
|
+
timeout?: boolean;
|
|
9
|
+
submitted?: boolean;
|
|
10
|
+
error?: string;
|
|
11
|
+
command?: string;
|
|
12
|
+
duration?: number;
|
|
13
|
+
}
|
|
14
|
+
/** 会话状态 */
|
|
15
|
+
export interface LocalStatus {
|
|
16
|
+
connected: boolean;
|
|
17
|
+
busy: boolean;
|
|
18
|
+
pending: number;
|
|
19
|
+
name?: string;
|
|
20
|
+
program?: string;
|
|
21
|
+
lastActive?: number;
|
|
22
|
+
connectedAt?: number;
|
|
23
|
+
}
|
|
24
|
+
export declare class LocalSession {
|
|
25
|
+
private readonly sessionID;
|
|
26
|
+
private readonly name;
|
|
27
|
+
private _term;
|
|
28
|
+
private _proc;
|
|
29
|
+
private _connected;
|
|
30
|
+
private _remoteBusy;
|
|
31
|
+
private _buffer;
|
|
32
|
+
private _program;
|
|
33
|
+
private _connectedAt;
|
|
34
|
+
private _lastActive;
|
|
35
|
+
private _runningStartPos;
|
|
36
|
+
private _runningSentinel;
|
|
37
|
+
private _runningCommand;
|
|
38
|
+
private _watchTimer;
|
|
39
|
+
private _closed;
|
|
40
|
+
private readonly _history;
|
|
41
|
+
constructor(sessionID: string, history: SessionHistory, name?: string);
|
|
42
|
+
/**
|
|
43
|
+
* 启动本地/容器 PTY 终端(复用哨兵法执行架构)
|
|
44
|
+
* @param opts 命令(如 "pwsh" / "docker exec -it <容器> bash")与工作目录
|
|
45
|
+
* @returns 是否启动成功
|
|
46
|
+
*/
|
|
47
|
+
connect(opts: {
|
|
48
|
+
command: string;
|
|
49
|
+
cwd?: string;
|
|
50
|
+
}): Promise<{
|
|
51
|
+
ok: boolean;
|
|
52
|
+
error?: string;
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* 异步提交命令:立即返回,命令后台执行,输出由后台监听收集进 history
|
|
56
|
+
* @param command 命令
|
|
57
|
+
* @returns 提交结果(立即返回,不等待命令完成)
|
|
58
|
+
*/
|
|
59
|
+
submit(command: string): Promise<LocalExecResult>;
|
|
60
|
+
/**
|
|
61
|
+
* 在当前终端执行命令(哨兵法,同步等待),保留 cwd/环境
|
|
62
|
+
* @param command 命令
|
|
63
|
+
* @param timeout 超时毫秒,默认 30s
|
|
64
|
+
* @returns 执行结果
|
|
65
|
+
*/
|
|
66
|
+
exec(command: string, timeout?: number): Promise<LocalExecResult>;
|
|
67
|
+
/**
|
|
68
|
+
* 读取并清空未消费缓冲(交互/轮询场景)
|
|
69
|
+
* @returns 未消费输出
|
|
70
|
+
*/
|
|
71
|
+
readBuffer(): Promise<{
|
|
72
|
+
ok: boolean;
|
|
73
|
+
output: string;
|
|
74
|
+
error?: string;
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* 发送文本/按键到终端(交互场景:sudo 密码、确认、中断等)
|
|
78
|
+
* 转义序列:\r 或 \n = 回车,\x03 = Ctrl-C,\x04 = Ctrl-D,\x1a = Ctrl-Z,\x1b = ESC
|
|
79
|
+
* @param text 要发送的文本或按键序列
|
|
80
|
+
* @returns 是否发送成功
|
|
81
|
+
*/
|
|
82
|
+
send(text: string): {
|
|
83
|
+
ok: boolean;
|
|
84
|
+
error?: string;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* 获取会话状态
|
|
88
|
+
* @returns 状态对象
|
|
89
|
+
*/
|
|
90
|
+
getStatus(): LocalStatus;
|
|
91
|
+
/**
|
|
92
|
+
* 获取消息对记录(供渲染/落盘)
|
|
93
|
+
* @returns 消息对存储
|
|
94
|
+
*/
|
|
95
|
+
getHistory(): SessionHistory;
|
|
96
|
+
/**
|
|
97
|
+
* 获取当前运行中命令的实时缓冲(合并覆盖后,不消费 buffer,保留 ANSI)
|
|
98
|
+
* @returns 运行中命令的当前进度文本;无运行命令则返回空串
|
|
99
|
+
*/
|
|
100
|
+
getRunningOutput(): string;
|
|
101
|
+
/**
|
|
102
|
+
* 关闭终端,清理会话态(幂等)
|
|
103
|
+
*/
|
|
104
|
+
close(): void;
|
|
105
|
+
/** 追加输出到未消费 buffer,超限时截断头部(保留尾部)并修正运行索引 */
|
|
106
|
+
private _appendBuffer;
|
|
107
|
+
private _waitSentinel;
|
|
108
|
+
/** 后台哨兵监听:轮询到哨兵 → 收集输出进 history + busy=false */
|
|
109
|
+
private _startBackgroundWatch;
|
|
110
|
+
/** 在缓冲中定位哨兵行起始位置(哨兵串开头,容忍行前 ANSI bracketed-paste 序列) */
|
|
111
|
+
private _findSentinel;
|
|
112
|
+
/** 清理后台运行上下文 */
|
|
113
|
+
private _clearRunningContext;
|
|
114
|
+
/** 输出截断保护 */
|
|
115
|
+
private _truncate;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=local-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-session.d.ts","sourceRoot":"","sources":["../src/local-session.ts"],"names":[],"mappings":"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"}
|