@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/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
- /** 进程退出兜底:关闭全部连接 + 关闭本进程持有的 HTTP 服务 */
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 = getSession(sessionID, name);
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
- host: st.host,
88
- user: st.user,
89
- port: st.port,
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
- ssh_exec: tool({
262
- description: T.ssh_exec[lang],
306
+ term_exec: tool({
307
+ description: T.term_exec[lang],
263
308
  args: {
264
- command: tool.schema.string().describe(T.ssh_exec_args.command[lang]),
265
- waitResult: tool.schema.boolean().optional().describe(T.ssh_exec_args.waitResult[lang]),
266
- name: tool.schema.string().optional().describe(T.ssh_exec_args.name[lang]),
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 = getSession(sessionID, args.name);
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("ssh_exec_denied", { command: args.command });
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: "ssh_exec",
328
+ permission: "term_exec",
284
329
  patterns: [args.command],
285
- always: [`ssh_exec:${args.command}`],
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("ssh_exec", { command: args.command, ok: result.ok, submitted: result.submitted, interactive: result.interactive, running: result.running });
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
- ssh_read: tool({
319
- description: T.ssh_read[lang],
363
+ term_read: tool({
364
+ description: T.term_read[lang],
320
365
  args: {
321
- source: tool.schema.enum(["buffer", "history"]).optional().describe(T.ssh_read_args.source[lang]),
322
- lines: tool.schema.number().optional().describe(T.ssh_read_args.lines[lang]),
323
- direction: tool.schema.enum(["tail", "head"]).optional().describe(T.ssh_read_args.direction[lang]),
324
- limit: tool.schema.number().optional().describe(T.ssh_read_args.limit[lang]),
325
- includeCommand: tool.schema.boolean().optional().describe(T.ssh_read_args.includeCommand[lang]),
326
- name: tool.schema.string().optional().describe(T.ssh_read_args.name[lang]),
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 = getSession(context.sessionID, args.name);
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: session.getStatus().host,
408
+ host: "host" in st ? st.host : undefined,
363
409
  },
364
410
  };
365
411
  },
366
412
  }),
367
- ssh_send: tool({
368
- description: T.ssh_send[lang],
413
+ term_send: tool({
414
+ description: T.term_send[lang],
369
415
  args: {
370
- text: tool.schema.string().describe(T.ssh_send_args.text[lang]),
371
- name: tool.schema.string().optional().describe(T.ssh_send_args.name[lang]),
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 = getSession(context.sessionID, args.name);
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("ssh_send", { text: args.text.slice(0, 60), name: args.name ?? DEFAULT_NAME });
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
- ssh_status: tool({
386
- description: T.ssh_status[lang],
431
+ term_status: tool({
432
+ description: T.term_status[lang],
387
433
  args: {
388
- name: tool.schema.string().optional().describe(T.ssh_status_args.name[lang]),
434
+ name: tool.schema.string().optional().describe(T.term_status_args.name[lang]),
389
435
  },
390
436
  async execute(args, context) {
391
- const map = getSessionMap(context.sessionID);
392
- if (!map || map.size === 0)
393
- return tr("no_sessions", lang);
394
- // 未指定 name 列出全部终端状态
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
- const sessions = session ? [session] : [...map.values()];
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
- `host: ${st.host}@${st.user}:${st.port}`,
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
- ssh_disconnect: tool({
429
- description: T.ssh_disconnect[lang],
486
+ term_disconnect: tool({
487
+ description: T.term_disconnect[lang],
430
488
  args: {
431
- name: tool.schema.string().optional().describe(T.ssh_disconnect_args.name[lang]),
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 map = getSessionMap(sessionID);
436
- if (!map || map.size === 0)
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 host = [...map.values()][0]?.getStatus().host;
499
+ const firstHost = [...(smap?.values() ?? [])][0]?.getStatus().host;
441
500
  cleanupAllSessions(sessionID);
442
- return tr("disconnected_all_ok", lang).replace("{host}", host ?? "-");
501
+ cleanupAllLocalSessions(sessionID);
502
+ return tr("disconnected_all_ok", lang).replace("{host}", firstHost ?? "-");
443
503
  }
444
- const session = map.get(args.name);
445
- if (!session)
446
- return tr("no_sessions", lang);
447
- const host = session.getStatus().host;
448
- cleanupSession(sessionID, args.name);
449
- return tr("disconnected_ok", lang).replace("{host}", host ?? "-");
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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"}