@hyzyn/dsh-tty 0.11.0 → 0.15.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/lib/sftp.d.ts CHANGED
@@ -49,11 +49,39 @@ export interface SftpUpload {
49
49
  /** 写入完成(流 close)resolve,写入失败 reject——路由 await 它再回包。 */
50
50
  done: Promise<void>;
51
51
  }
52
+ /**
53
+ * 传输任务(0.12.0):双栏 ⇨/⇦ 的服务端直传任务化——start 立刻返回 id,
54
+ * 客户端轮询 /cancel 端点中止。无它时一个目录递归直传在 HTTP 请求里同步跑
55
+ * 完,浏览器无法打断(只能关窗口,服务端还在写远端)。
56
+ */
57
+ export interface SftpTransferJob {
58
+ id: string;
59
+ direction: 'up' | 'down';
60
+ /** 起始路径对(进度行展示用)。 */
61
+ localPath: string;
62
+ remotePath: string;
63
+ /** 已完成字节 / 总字节(总字节在开传前递归统计,统计中可为 0)。 */
64
+ bytes: number;
65
+ total: number;
66
+ /** 当前正在搬运的文件相对名(展示用)。 */
67
+ current: string;
68
+ state: 'running' | 'done' | 'error' | 'canceled';
69
+ error?: string;
70
+ }
71
+ /** 取消感知的传输选项(直传任务内部用;HTTP 上传/下载路由不传 signal)。 */
72
+ export interface SftpTransferOptions {
73
+ signal?: AbortSignal;
74
+ /** 每搬运一个文件前回调(进度行显示当前文件名)。 */
75
+ onFile?: (name: string) => void;
76
+ /** 字节累加(进度条分子)。 */
77
+ onBytes?: (delta: number) => void;
78
+ }
52
79
  export declare class SftpManager {
53
80
  private readonly logger;
54
81
  private readonly store;
55
82
  private readonly conns;
56
83
  private sweeper;
84
+ private readonly jobs;
57
85
  constructor(logger: SftpLogger, store: HostKeyStore);
58
86
  /** 插件卸载:关定时器与全部连接(幂等)。 */
59
87
  disposeAll(): void;
@@ -90,13 +118,35 @@ export declare class SftpManager {
90
118
  /**
91
119
  * 本机文件 / 目录 → 远程(双栏「→ 传输」)。目录递归建目录后逐个上传;
92
120
  * 同名文件直接覆盖(openUpload 'w')。不经过浏览器,字节不出宿主进程。
121
+ * signal 中止时销毁读写流并删除半截的远程文件(删除失败只记日志)。
93
122
  */
94
- uploadFromLocal(spec: SshSpec, localPath: string, remotePath: string): Promise<void>;
123
+ uploadFromLocal(spec: SshSpec, localPath: string, remotePath: string, options?: SftpTransferOptions): Promise<void>;
95
124
  /**
96
125
  * 远程文件 / 目录 → 本机(双栏「← 传输」)。目录递归建本地目录后逐个下载;
97
126
  * 同名文件直接覆盖('w' 写流)。远程符号链接按文件下载(跟随目标)。
127
+ * signal 中止时销毁读写流并删除半截的本机文件(删除失败只记日志)。
128
+ */
129
+ downloadToLocal(spec: SshSpec, remotePath: string, localPath: string, options?: SftpTransferOptions): Promise<void>;
130
+ /**
131
+ * 带字节计数与取消感知的 pipe:source→sink 之间插一个 PassThrough 只做
132
+ * 「数了就转发」;取消时 destroy 它——pipeline 随即结束并销毁两端流,
133
+ * 不留悬挂的 SFTP 句柄,也不会误报成「传输失败」。
134
+ */
135
+ private pipeCounted;
136
+ /** 删远端文件(取消后的半截清理):失败只记日志,不影响取消本身。 */
137
+ deleteRemoteQuiet(spec: SshSpec, path: string): Promise<void>;
138
+ /**
139
+ * 预扫描总字节数(直传进度分母):目录递归累加文件大小,只数「源头一侧」
140
+ * ——up 数本机、down 数远程(对侧尚未创建,数不到也不该数)。目的是让
141
+ * 进度条有真实百分比:纯统计(不搬运),单项失败按 0 计、不阻断传输。
98
142
  */
99
- downloadToLocal(spec: SshSpec, remotePath: string, localPath: string): Promise<void>;
143
+ private estimateBytes;
144
+ /** 开一个可取消的直传任务(路由 /transfer 的 start 分支)。 */
145
+ startTransfer(spec: SshSpec, direction: 'up' | 'down', localPath: string, remotePath: string): SftpTransferJob;
146
+ /** 任务快照(路由 /transfer?job=<id> 轮询)。 */
147
+ getTransfer(id: string): SftpTransferJob | undefined;
148
+ /** 中止任务(路由 /transfer 的 cancel 分支);已终态的任务返回 undefined。 */
149
+ cancelTransfer(id: string): SftpTransferJob | undefined;
100
150
  /** 取(或建立)该 spec 的 SFTP 通道;连接断开的旧条目在此处自动重建。 */
101
151
  private acquire;
102
152
  private ensureSweeper;
package/lib/sftp.js CHANGED
@@ -17,9 +17,11 @@
17
17
  * (同端口转发);SFTP 的权限边界与 SSH 终端登录一致(同一账号)。
18
18
  */
19
19
  import { Client } from 'ssh2';
20
+ import { randomUUID } from 'node:crypto';
20
21
  import { createReadStream, createWriteStream } from 'node:fs';
21
- import { mkdir as fsMkdir, readdir as fsReaddir, stat as fsStat } from 'node:fs/promises';
22
+ import { mkdir as fsMkdir, readdir as fsReaddir, rm as fsRm, stat as fsStat } from 'node:fs/promises';
22
23
  import { basename, dirname, join as pathJoin } from 'node:path';
24
+ import { PassThrough } from 'node:stream';
23
25
  import { pipeline } from 'node:stream/promises';
24
26
  import { applyHostKeyPolicy, buildConnectConfig, sshTarget } from './ssh.js';
25
27
  /** 连接空闲回收阈值:窗口内无任何操作即断开(下次操作自动重连)。 */
@@ -32,6 +34,17 @@ const DOT_ENTRIES = new Set(['.', '..']);
32
34
  function joinRemotePath(base, name) {
33
35
  return (base.endsWith('/') ? base : base + '/') + name;
34
36
  }
37
+ function throwIfCanceled(options) {
38
+ if (options?.signal?.aborted === true)
39
+ throw new TransferCanceledError();
40
+ }
41
+ /** 取消信号:不是「失败」,单独一类以便任务终态区分 canceled / error。 */
42
+ class TransferCanceledError extends Error {
43
+ constructor() {
44
+ super('传输已取消');
45
+ this.name = 'TransferCanceledError';
46
+ }
47
+ }
35
48
  function signatureOf(spec) {
36
49
  return JSON.stringify(spec);
37
50
  }
@@ -40,6 +53,7 @@ export class SftpManager {
40
53
  store;
41
54
  conns = new Map();
42
55
  sweeper = null;
56
+ jobs = new Map();
43
57
  constructor(logger, store) {
44
58
  this.logger = logger;
45
59
  this.store = store;
@@ -53,6 +67,10 @@ export class SftpManager {
53
67
  for (const rt of this.conns.values())
54
68
  this.close(rt);
55
69
  this.conns.clear();
70
+ // 在途直传任务一并中止(防止卸载后还在写远端/本机)
71
+ for (const entry of [...this.jobs.values()])
72
+ entry.cancel();
73
+ this.jobs.clear();
56
74
  }
57
75
  /* -------------------------------------------------------------- */
58
76
  /* 文件操作 */
@@ -237,61 +255,228 @@ export class SftpManager {
237
255
  });
238
256
  stream.on('close', () => resolve());
239
257
  });
258
+ // 必挂一个 no-op 分支:客户端中断 / 取消会让流以 destroy 收尾(不是正常
259
+ // close),done 随之 reject——调用方可能已走别的路径返回,此时这个
260
+ // rejection 无人处理会变成 unhandled rejection 并拖垮宿主进程。
261
+ // 挂 handler 不改变语义:await done 仍会拿到同一个 rejection。
262
+ done.catch(() => { });
240
263
  return { stream, done };
241
264
  }
242
265
  /* -------------------------------------------------------------- */
243
- /* 双栏直传(0.9.0):本机路径 ↔ 远程路径,服务端流式搬运 */
266
+ /* 双栏直传(0.9.0,0.12.0 任务化 + 可取消):本机路径 ↔ 远程路径 */
244
267
  /* -------------------------------------------------------------- */
245
268
  /**
246
269
  * 本机文件 / 目录 → 远程(双栏「→ 传输」)。目录递归建目录后逐个上传;
247
270
  * 同名文件直接覆盖(openUpload 'w')。不经过浏览器,字节不出宿主进程。
271
+ * signal 中止时销毁读写流并删除半截的远程文件(删除失败只记日志)。
248
272
  */
249
- async uploadFromLocal(spec, localPath, remotePath) {
273
+ async uploadFromLocal(spec, localPath, remotePath, options) {
250
274
  const root = localPath.trim();
251
275
  const info = await fsStat(root).catch(() => {
252
276
  throw new Error('本机路径不存在: ' + root);
253
277
  });
278
+ throwIfCanceled(options);
254
279
  if (info.isDirectory()) {
255
280
  await this.mkdir(spec, remotePath, true);
256
281
  const children = await fsReaddir(root, { withFileTypes: true });
257
282
  for (const child of children) {
258
- await this.uploadFromLocal(spec, pathJoin(root, child.name), joinRemotePath(remotePath, child.name));
283
+ throwIfCanceled(options);
284
+ await this.uploadFromLocal(spec, pathJoin(root, child.name), joinRemotePath(remotePath, child.name), options);
259
285
  }
260
286
  return;
261
287
  }
262
288
  if (!info.isFile())
263
289
  throw new Error('不支持传输的文件类型: ' + root);
290
+ const label = basename(root);
291
+ options?.onFile?.(label);
264
292
  const { stream, done } = await this.openUpload(spec, remotePath, false);
265
- await pipeline(createReadStream(root), stream).catch((error) => {
266
- throw new Error(`上传失败(${basename(root)}): ${error instanceof Error ? error.message : String(error)}`);
267
- });
293
+ try {
294
+ await this.pipeCounted(createReadStream(root), stream, options);
295
+ }
296
+ catch (error) {
297
+ // 取消:pipeline 已收尾(写流随之销毁),此时删半截文件才不会有写入竞态。
298
+ // 不 await done——被 destroy 打断的写流不会走正常 close,等它只会挂住。
299
+ if (options?.signal?.aborted === true) {
300
+ await this.deleteRemoteQuiet(spec, remotePath);
301
+ throw new TransferCanceledError();
302
+ }
303
+ throw new Error(`上传失败(${label}): ${error instanceof Error ? error.message : String(error)}`);
304
+ }
268
305
  await done;
269
306
  }
270
307
  /**
271
308
  * 远程文件 / 目录 → 本机(双栏「← 传输」)。目录递归建本地目录后逐个下载;
272
309
  * 同名文件直接覆盖('w' 写流)。远程符号链接按文件下载(跟随目标)。
310
+ * signal 中止时销毁读写流并删除半截的本机文件(删除失败只记日志)。
273
311
  */
274
- async downloadToLocal(spec, remotePath, localPath) {
312
+ async downloadToLocal(spec, remotePath, localPath, options) {
275
313
  const target = remotePath.trim();
276
314
  const sftp = await this.acquire(spec);
277
315
  const stats = await new Promise((resolve, reject) => {
278
316
  sftp.stat(target, (error, found) => (error != null ? reject(new Error(`远程路径不存在: ${target}(${error.message})`)) : resolve(found)));
279
317
  });
318
+ throwIfCanceled(options);
280
319
  if (stats.isDirectory()) {
281
320
  await fsMkdir(localPath, { recursive: true });
282
321
  const list = await this.list(spec, target);
283
322
  for (const entry of list.entries) {
284
323
  if (DOT_ENTRIES.has(entry.name))
285
324
  continue;
286
- await this.downloadToLocal(spec, joinRemotePath(target, entry.name), pathJoin(localPath, entry.name));
325
+ throwIfCanceled(options);
326
+ await this.downloadToLocal(spec, joinRemotePath(target, entry.name), pathJoin(localPath, entry.name), options);
287
327
  }
288
328
  return;
289
329
  }
290
330
  await fsMkdir(dirname(localPath), { recursive: true });
331
+ const label = basename(target);
332
+ options?.onFile?.(label);
291
333
  const { stream } = await this.openDownload(spec, target);
292
- await pipeline(stream, createWriteStream(localPath)).catch((error) => {
293
- throw new Error(`下载失败(${basename(target)}): ${error instanceof Error ? error.message : String(error)}`);
294
- });
334
+ try {
335
+ await this.pipeCounted(stream, createWriteStream(localPath), options);
336
+ }
337
+ catch (error) {
338
+ // 取消:pipeline 已收尾(本机写流随之关闭),此时删半截文件才安全
339
+ if (options?.signal?.aborted === true) {
340
+ await fsRm(localPath, { force: true }).catch(() => {
341
+ /* 半截文件清理是尽力而为 */
342
+ });
343
+ throw new TransferCanceledError();
344
+ }
345
+ throw new Error(`下载失败(${label}): ${error instanceof Error ? error.message : String(error)}`);
346
+ }
347
+ }
348
+ /**
349
+ * 带字节计数与取消感知的 pipe:source→sink 之间插一个 PassThrough 只做
350
+ * 「数了就转发」;取消时 destroy 它——pipeline 随即结束并销毁两端流,
351
+ * 不留悬挂的 SFTP 句柄,也不会误报成「传输失败」。
352
+ */
353
+ async pipeCounted(source, sink, options) {
354
+ if (options === undefined || (options.signal === undefined && options.onBytes === undefined)) {
355
+ await pipeline(source, sink);
356
+ return;
357
+ }
358
+ const meter = new PassThrough();
359
+ if (options.onBytes !== undefined) {
360
+ const onBytes = options.onBytes;
361
+ meter.on('data', (chunk) => onBytes(chunk.length));
362
+ }
363
+ if (options.signal !== undefined) {
364
+ const signal = options.signal;
365
+ const abort = () => meter.destroy();
366
+ if (signal.aborted)
367
+ abort();
368
+ else
369
+ signal.addEventListener('abort', abort, { once: true });
370
+ }
371
+ await pipeline(source, meter, sink);
372
+ }
373
+ /** 删远端文件(取消后的半截清理):失败只记日志,不影响取消本身。 */
374
+ async deleteRemoteQuiet(spec, path) {
375
+ try {
376
+ const sftp = await this.acquire(spec);
377
+ await new Promise((resolve) => {
378
+ sftp.unlink(path.trim(), () => resolve());
379
+ });
380
+ }
381
+ catch (error) {
382
+ this.logger.warn(`[dsh-tty] sftp 半截文件清理失败(${path}): ${error instanceof Error ? error.message : String(error)}`);
383
+ }
384
+ }
385
+ /**
386
+ * 预扫描总字节数(直传进度分母):目录递归累加文件大小,只数「源头一侧」
387
+ * ——up 数本机、down 数远程(对侧尚未创建,数不到也不该数)。目的是让
388
+ * 进度条有真实百分比:纯统计(不搬运),单项失败按 0 计、不阻断传输。
389
+ */
390
+ async estimateBytes(spec, direction, localPath, remotePath) {
391
+ try {
392
+ if (direction === 'up') {
393
+ const info = await fsStat(localPath);
394
+ if (!info.isDirectory())
395
+ return info.isFile() ? info.size : 0;
396
+ let total = 0;
397
+ const children = await fsReaddir(localPath, { withFileTypes: true });
398
+ for (const child of children) {
399
+ total += await this.estimateBytes(spec, direction, pathJoin(localPath, child.name), joinRemotePath(remotePath, child.name));
400
+ }
401
+ return total;
402
+ }
403
+ const sftp = await this.acquire(spec);
404
+ const stats = await new Promise((resolve) => {
405
+ sftp.stat(remotePath, (error, found) => (error != null ? resolve(null) : resolve(found)));
406
+ });
407
+ if (stats === null)
408
+ return 0;
409
+ if (!stats.isDirectory())
410
+ return Number(stats.size ?? 0);
411
+ let total = 0;
412
+ const list = await this.list(spec, remotePath).catch(() => ({ entries: [] }));
413
+ for (const entry of list.entries) {
414
+ if (DOT_ENTRIES.has(entry.name))
415
+ continue;
416
+ total += await this.estimateBytes(spec, direction, pathJoin(localPath, entry.name), joinRemotePath(remotePath, entry.name));
417
+ }
418
+ return total;
419
+ }
420
+ catch {
421
+ /* 统计是尽力而为:失败退化为不定进度,不影响传输本身 */
422
+ return 0;
423
+ }
424
+ }
425
+ /** 开一个可取消的直传任务(路由 /transfer 的 start 分支)。 */
426
+ startTransfer(spec, direction, localPath, remotePath) {
427
+ const job = {
428
+ id: randomUUID(),
429
+ direction,
430
+ localPath,
431
+ remotePath,
432
+ bytes: 0,
433
+ total: 0,
434
+ current: '',
435
+ state: 'running',
436
+ };
437
+ const controller = new AbortController();
438
+ this.jobs.set(job.id, { job, cancel: () => controller.abort() });
439
+ const options = {
440
+ signal: controller.signal,
441
+ onFile: (name) => {
442
+ job.current = name;
443
+ },
444
+ onBytes: (delta) => {
445
+ job.bytes += delta;
446
+ },
447
+ };
448
+ void (async () => {
449
+ try {
450
+ job.total = await this.estimateBytes(spec, direction, localPath, remotePath);
451
+ if (direction === 'up')
452
+ await this.uploadFromLocal(spec, localPath, remotePath, options);
453
+ else
454
+ await this.downloadToLocal(spec, remotePath, localPath, options);
455
+ job.state = 'done';
456
+ }
457
+ catch (error) {
458
+ job.state = controller.signal.aborted ? 'canceled' : 'error';
459
+ job.error = error instanceof Error ? error.message : String(error);
460
+ }
461
+ finally {
462
+ // 终态保留 60s 供客户端最后一次轮询取到结果,之后自动回收
463
+ setTimeout(() => this.jobs.delete(job.id), 60_000).unref?.();
464
+ }
465
+ })();
466
+ return job;
467
+ }
468
+ /** 任务快照(路由 /transfer?job=<id> 轮询)。 */
469
+ getTransfer(id) {
470
+ return this.jobs.get(id)?.job;
471
+ }
472
+ /** 中止任务(路由 /transfer 的 cancel 分支);已终态的任务返回 undefined。 */
473
+ cancelTransfer(id) {
474
+ const entry = this.jobs.get(id);
475
+ if (entry === undefined)
476
+ return undefined;
477
+ if (entry.job.state === 'running')
478
+ entry.cancel();
479
+ return entry.job;
295
480
  }
296
481
  /* -------------------------------------------------------------- */
297
482
  /* 连接池 */
package/lib/sftp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sftp.js","sourceRoot":"","sources":["../src/sftp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sftp.js","sourceRoot":"","sources":["../src/sftp.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,13 @@ export declare function pluginRuntimeDir(): string;
10
10
  * 注入集成(zsh → ZDOTDIR 桩;bash → --rcfile 桩)。integration=false 或不
11
11
  * 支持的 shell 返回最简包装层。
12
12
  */
13
+ /**
14
+ * 带自定义命令的本地 spawn 计划(0.14.0):给「开一个标签直接跑某条命令」用
15
+ * (如 dsh-docker 的 `docker exec -it <容器> sh`)。命令由**宿主侧插件**提供,
16
+ * 信任级与插件本身相同;TERM / COLORTERM 仍走白名单值。
17
+ * 命令必须单行(换行会破坏 -c 包装层),由调用方(src/index.ts 的帧解析)保证。
18
+ */
19
+ export declare function buildCommandSpawn(shell: string, term: string, colorTerm: string, command: string): ShellSpawnPlan;
13
20
  export declare function buildShellSpawn(shell: string, term: string, colorTerm: string, integration: boolean): ShellSpawnPlan;
14
21
  /** POSIX 单引号安全包裹(路径/值进 inner.sh 与 -c 包装层用)。 */
15
22
  export declare function shSingleQuote(value: string): string;
@@ -250,6 +250,16 @@ function ensureBashStubRc() {
250
250
  * 注入集成(zsh → ZDOTDIR 桩;bash → --rcfile 桩)。integration=false 或不
251
251
  * 支持的 shell 返回最简包装层。
252
252
  */
253
+ /**
254
+ * 带自定义命令的本地 spawn 计划(0.14.0):给「开一个标签直接跑某条命令」用
255
+ * (如 dsh-docker 的 `docker exec -it <容器> sh`)。命令由**宿主侧插件**提供,
256
+ * 信任级与插件本身相同;TERM / COLORTERM 仍走白名单值。
257
+ * 命令必须单行(换行会破坏 -c 包装层),由调用方(src/index.ts 的帧解析)保证。
258
+ */
259
+ export function buildCommandSpawn(shell, term, colorTerm, command) {
260
+ const pre = `export TERM='${term}'; export COLORTERM='${colorTerm}';`;
261
+ return { argv: [shell, '-c', `${pre} exec ${command}`], env: {} };
262
+ }
253
263
  export function buildShellSpawn(shell, term, colorTerm, integration) {
254
264
  const pre = `export TERM='${term}'; export COLORTERM='${colorTerm}';`;
255
265
  const exec = `exec "${shell}"`;
@@ -1 +1 @@
1
- {"version":3,"file":"shell-integration.js","sourceRoot":"","sources":["../src/shell-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAQ1C,gDAAgD;AAChD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;IACvE,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,8DAA8D;AAC9D,SAAS,cAAc,CAAC,IAAY,EAAE,OAAe;IACnD,IAAI,CAAC;QACH,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,OAAO;YAAE,OAAM;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAA;IACxC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC3B,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACvB,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACnC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAC/C,CAAC;AAED,+CAA+C;AAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;AAE1C,MAAM,SAAS,GAAG;IAChB,EAAE;IACF,qCAAqC;IACrC,yCAAyC;IACzC,iCAAiC;IACjC,iCAAiC;IACjC,yDAAyD;IACzD,6DAA6D;IAC7D,2BAA2B;IAC3B,uDAAuD;IACvD,uDAAuD;IACvD,0DAA0D;IAC1D,iEAAiE;IACjE,0DAA0D;IAC1D,QAAQ;IACR,oCAAoC;IACpC,oCAAoC;IACpC,uCAAuC;IACvC,8CAA8C;IAC9C,MAAM;IACN,oDAAoD;IACpD,iDAAiD;IACjD,wDAAwD;IACxD,wCAAwC;IACxC,yBAAyB;IACzB,gCAAgC;IAChC,iGAAiG;IACjG,6CAA6C;IAC7C,qGAAqG;IACrG,QAAQ;IACR,KAAK;IACL,wBAAwB;IACxB,iBAAiB;IACjB,qCAAqC;IACrC,2CAA2C;IAC3C,+DAA+D;IAC/D,+BAA+B;IAC/B,oDAAoD;IACpD,KAAK;IACL,yBAAyB;IACzB,wBAAwB;IACxB,+BAA+B;IAC/B,KAAK;IACL,wCAAwC;IACxC,0CAA0C;IAC1C,IAAI;IACJ,qCAAqC;IACrC,EAAE;CACH,CAAA;AAED,MAAM,YAAY,GAAG;IACnB,EAAE;IACF,qCAAqC;IACrC,yCAAyC;IACzC,iCAAiC;IACjC,sBAAsB;IACtB,iDAAiD;IACjD,2BAA2B;IAC3B,uDAAuD;IACvD,uDAAuD;IACvD,0DAA0D;IAC1D,iEAAiE;IACjE,0DAA0D;IAC1D,QAAQ;IACR,oCAAoC;IACpC,oCAAoC;IACpC,uCAAuC;IACvC,8CAA8C;IAC9C,MAAM;IACN,wEAAwE;IACxE,yBAAyB;IACzB,gCAAgC;IAChC,iGAAiG;IACjG,6CAA6C;IAC7C,qGAAqG;IACrG,QAAQ;IACR,KAAK;IACL,wBAAwB;IACxB,iBAAiB;IACjB,4CAA4C;IAC5C,2CAA2C;IAC3C,+DAA+D;IAC/D,+BAA+B;IAC/B,wDAAwD;IACxD,KAAK;CACN,CAAA;AAED,MAAM,aAAa,GAAG;IACpB,IAAI;IACJ,qCAAqC;IACrC,EAAE;CACH,CAAA;AAED,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QACpD,sDAAsD;QACtD,wCAAwC;QACxC,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAU,EAAE,CAAC;YAChE,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;gBAC9B,uDAAuD;gBACvD,8BAA8B,GAAG,IAAI,GAAG,uCAAuC,GAAG,IAAI,GAAG,GAAG;gBAC5F,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACf,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;YAClC,uEAAuE;YACvE,gFAAgF;YAChF,GAAG,SAAS;SACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACb,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxB,OAAO,GAAG,CAAA;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACrD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC9B,cAAc,CAAC,EAAE,EAAE;YACjB,uEAAuE;YACvE,kDAAkD;YAClD,GAAG,YAAY;YACf,mCAAmC;YACnC,uCAAuC;YACvC,8EAA8E;YAC9E,8GAA8G;YAC9G,sCAAsC;YACtC,wBAAwB;YACxB,qBAAqB;YACrB,0CAA0C;YAC1C,UAAU;YACV,iDAAiD;YACjD,wDAAwD;YACxD,sBAAsB;YACtB,wCAAwC;YACxC,kCAAkC;YAClC,sDAAsD;YACtD,iBAAiB;YACjB,UAAU;YACV,uCAAuC;YACvC,kCAAkC;YAClC,sFAAsF;YACtF,iBAAiB;YACjB,UAAU;YACV,QAAQ;YACR,mEAAmE;YACnE,qDAAqD;YACrD,gEAAgE;YAChE,sDAAsD;YACtD,kDAAkD;YAClD,+DAA+D;YAC/D,yCAAyC;YACzC,mDAAmD;YACnD,2BAA2B;YAC3B,+BAA+B;YAC/B,4DAA4D;YAC5D,YAAY;YACZ,0BAA0B;YAC1B,iCAAiC;YACjC,oBAAoB;YACpB,OAAO;YACP,6DAA6D;YAC7D,4DAA4D;YAC5D,sDAAsD;YACtD,mCAAmC;YACnC,8BAA8B;YAC9B,mGAAmG;YACnG,UAAU;YACV,MAAM;YACN,GAAG,aAAa;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACb,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,IAAY,EAAE,SAAiB,EAAE,WAAoB;IAClG,MAAM,GAAG,GAAG,gBAAgB,IAAI,wBAAwB,SAAS,IAAI,CAAA;IACrE,MAAM,IAAI,GAAG,SAAS,KAAK,GAAG,CAAA;IAC9B,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAA;YAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO;oBACL,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,6CAA6C,OAAO,EAAE,uBAAuB,OAAO,MAAM,IAAI,EAAE,CAAC;oBAC3H,GAAG,EAAE,EAAE;iBACR,CAAA;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;YACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO;oBACL,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,cAAc,MAAM,GAAG,CAAC;oBAC1D,GAAG,EAAE,EAAE;iBACR,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;AAC3D,CAAC;AAED;;wEAEwE;AAExE,+CAA+C;AAC/C,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,SAAiB,EAAE,WAAoB;IAC3F,MAAM,KAAK,GAAG;QACZ,WAAW;QACX,uDAAuD;QACvD,oBAAoB,aAAa,CAAC,SAAS,CAAC,EAAE;KAC/C,CAAA;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAA;YAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CACR,kDAAkD,EAClD,kBAAkB,aAAa,CAAC,OAAO,CAAC,EAAE,EAC1C,QAAQ,aAAa,CAAC,KAAK,CAAC,EAAE,CAC/B,CAAA;gBACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAChC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;YACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,QAAQ,aAAa,CAAC,KAAK,CAAC,aAAa,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,QAAQ,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"shell-integration.js","sourceRoot":"","sources":["../src/shell-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAQ1C,gDAAgD;AAChD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;IACvE,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,8DAA8D;AAC9D,SAAS,cAAc,CAAC,IAAY,EAAE,OAAe;IACnD,IAAI,CAAC;QACH,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,OAAO;YAAE,OAAM;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAA;IACxC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC3B,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACvB,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACnC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAC/C,CAAC;AAED,+CAA+C;AAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;AAE1C,MAAM,SAAS,GAAG;IAChB,EAAE;IACF,qCAAqC;IACrC,yCAAyC;IACzC,iCAAiC;IACjC,iCAAiC;IACjC,yDAAyD;IACzD,6DAA6D;IAC7D,2BAA2B;IAC3B,uDAAuD;IACvD,uDAAuD;IACvD,0DAA0D;IAC1D,iEAAiE;IACjE,0DAA0D;IAC1D,QAAQ;IACR,oCAAoC;IACpC,oCAAoC;IACpC,uCAAuC;IACvC,8CAA8C;IAC9C,MAAM;IACN,oDAAoD;IACpD,iDAAiD;IACjD,wDAAwD;IACxD,wCAAwC;IACxC,yBAAyB;IACzB,gCAAgC;IAChC,iGAAiG;IACjG,6CAA6C;IAC7C,qGAAqG;IACrG,QAAQ;IACR,KAAK;IACL,wBAAwB;IACxB,iBAAiB;IACjB,qCAAqC;IACrC,2CAA2C;IAC3C,+DAA+D;IAC/D,+BAA+B;IAC/B,oDAAoD;IACpD,KAAK;IACL,yBAAyB;IACzB,wBAAwB;IACxB,+BAA+B;IAC/B,KAAK;IACL,wCAAwC;IACxC,0CAA0C;IAC1C,IAAI;IACJ,qCAAqC;IACrC,EAAE;CACH,CAAA;AAED,MAAM,YAAY,GAAG;IACnB,EAAE;IACF,qCAAqC;IACrC,yCAAyC;IACzC,iCAAiC;IACjC,sBAAsB;IACtB,iDAAiD;IACjD,2BAA2B;IAC3B,uDAAuD;IACvD,uDAAuD;IACvD,0DAA0D;IAC1D,iEAAiE;IACjE,0DAA0D;IAC1D,QAAQ;IACR,oCAAoC;IACpC,oCAAoC;IACpC,uCAAuC;IACvC,8CAA8C;IAC9C,MAAM;IACN,wEAAwE;IACxE,yBAAyB;IACzB,gCAAgC;IAChC,iGAAiG;IACjG,6CAA6C;IAC7C,qGAAqG;IACrG,QAAQ;IACR,KAAK;IACL,wBAAwB;IACxB,iBAAiB;IACjB,4CAA4C;IAC5C,2CAA2C;IAC3C,+DAA+D;IAC/D,+BAA+B;IAC/B,wDAAwD;IACxD,KAAK;CACN,CAAA;AAED,MAAM,aAAa,GAAG;IACpB,IAAI;IACJ,qCAAqC;IACrC,EAAE;CACH,CAAA;AAED,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QACpD,sDAAsD;QACtD,wCAAwC;QACxC,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAU,EAAE,CAAC;YAChE,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;gBAC9B,uDAAuD;gBACvD,8BAA8B,GAAG,IAAI,GAAG,uCAAuC,GAAG,IAAI,GAAG,GAAG;gBAC5F,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACf,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;YAClC,uEAAuE;YACvE,gFAAgF;YAChF,GAAG,SAAS;SACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACb,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxB,OAAO,GAAG,CAAA;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACrD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC9B,cAAc,CAAC,EAAE,EAAE;YACjB,uEAAuE;YACvE,kDAAkD;YAClD,GAAG,YAAY;YACf,mCAAmC;YACnC,uCAAuC;YACvC,8EAA8E;YAC9E,8GAA8G;YAC9G,sCAAsC;YACtC,wBAAwB;YACxB,qBAAqB;YACrB,0CAA0C;YAC1C,UAAU;YACV,iDAAiD;YACjD,wDAAwD;YACxD,sBAAsB;YACtB,wCAAwC;YACxC,kCAAkC;YAClC,sDAAsD;YACtD,iBAAiB;YACjB,UAAU;YACV,uCAAuC;YACvC,kCAAkC;YAClC,sFAAsF;YACtF,iBAAiB;YACjB,UAAU;YACV,QAAQ;YACR,mEAAmE;YACnE,qDAAqD;YACrD,gEAAgE;YAChE,sDAAsD;YACtD,kDAAkD;YAClD,+DAA+D;YAC/D,yCAAyC;YACzC,mDAAmD;YACnD,2BAA2B;YAC3B,+BAA+B;YAC/B,4DAA4D;YAC5D,YAAY;YACZ,0BAA0B;YAC1B,iCAAiC;YACjC,oBAAoB;YACpB,OAAO;YACP,6DAA6D;YAC7D,4DAA4D;YAC5D,sDAAsD;YACtD,mCAAmC;YACnC,8BAA8B;YAC9B,mGAAmG;YACnG,UAAU;YACV,MAAM;YACN,GAAG,aAAa;SACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACb,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACxB,OAAO,EAAE,CAAA;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,IAAY,EAAE,SAAiB,EAAE,OAAe;IAC/F,MAAM,GAAG,GAAG,gBAAgB,IAAI,wBAAwB,SAAS,IAAI,CAAA;IACrE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,SAAS,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,IAAY,EAAE,SAAiB,EAAE,WAAoB;IAClG,MAAM,GAAG,GAAG,gBAAgB,IAAI,wBAAwB,SAAS,IAAI,CAAA;IACrE,MAAM,IAAI,GAAG,SAAS,KAAK,GAAG,CAAA;IAC9B,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAA;YAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO;oBACL,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,6CAA6C,OAAO,EAAE,uBAAuB,OAAO,MAAM,IAAI,EAAE,CAAC;oBAC3H,GAAG,EAAE,EAAE;iBACR,CAAA;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;YACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO;oBACL,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,cAAc,MAAM,GAAG,CAAC;oBAC1D,GAAG,EAAE,EAAE;iBACR,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;AAC3D,CAAC;AAED;;wEAEwE;AAExE,+CAA+C;AAC/C,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,SAAiB,EAAE,WAAoB;IAC3F,MAAM,KAAK,GAAG;QACZ,WAAW;QACX,uDAAuD;QACvD,oBAAoB,aAAa,CAAC,SAAS,CAAC,EAAE;KAC/C,CAAA;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAA;YAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CACR,kDAAkD,EAClD,kBAAkB,aAAa,CAAC,OAAO,CAAC,EAAE,EAC1C,QAAQ,aAAa,CAAC,KAAK,CAAC,EAAE,CAC/B,CAAA;gBACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAChC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;YACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,QAAQ,aAAa,CAAC,KAAK,CAAC,aAAa,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,QAAQ,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAChC,CAAC"}
package/lib/ssh.d.ts CHANGED
@@ -78,6 +78,13 @@ export interface SshSpawnOptions {
78
78
  persist?: {
79
79
  name: string;
80
80
  };
81
+ /**
82
+ * 自定义远程命令(0.14.0):给「开一个标签直接跑某条命令」用(如
83
+ * `docker exec -it <容器> sh`)。设置后走 `conn.exec(command, {pty})`,
84
+ * 不建登录 shell、也不做 tmux 持久化(命令的生命周期本就短)。
85
+ * 命令由宿主侧插件提供,单行(由帧解析保证)。
86
+ */
87
+ command?: string;
81
88
  }
82
89
  /** 主机指纹钉扎存储(宿主半体实现为 LiveConfig + settings 持久化)。 */
83
90
  export interface HostKeyStore {
package/lib/ssh.js CHANGED
@@ -179,6 +179,18 @@ export async function spawnSsh(spec, options) {
179
179
  resolve(ch);
180
180
  });
181
181
  };
182
+ /** 自定义命令(0.14.0):`conn.exec(command, {pty})`,与 tmux 分支同形。 */
183
+ const openCommand = () => {
184
+ conn.exec(options.command ?? '', { pty: { term: options.term, cols: options.cols, rows: options.rows } }, (error, ch) => {
185
+ settled = true;
186
+ if (error !== undefined && error !== null) {
187
+ conn.end();
188
+ reject(new Error(`远程命令启动失败: ${error.message}`));
189
+ return;
190
+ }
191
+ resolve(ch);
192
+ });
193
+ };
182
194
  /** 持久会话:远程 `exec tmux new-session -A`(pty channel,语义与 shell 一致)。 */
183
195
  const openTmux = () => {
184
196
  // 链式 set-option 幂等重放(attach 已有 server 时也生效);首 pane 在
@@ -237,7 +249,10 @@ export async function spawnSsh(spec, options) {
237
249
  });
238
250
  };
239
251
  conn.on('ready', () => {
240
- if (options.persist !== undefined)
252
+ // 命令标签(0.14.0)优先:不做 tmux 持久化(命令短命,attach 没意义)
253
+ if (options.command !== undefined && options.command !== '')
254
+ openCommand();
255
+ else if (options.persist !== undefined)
241
256
  openWithPersist();
242
257
  else
243
258
  openShell();