@xiaoqiong0v0/opencode-ssh-tool 0.6.15 → 0.6.16

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.
Files changed (54) hide show
  1. package/dist/agent.d.ts +4 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +17 -2
  4. package/dist/agent.js.map +1 -1
  5. package/dist/base-session.d.ts +64 -32
  6. package/dist/base-session.d.ts.map +1 -1
  7. package/dist/base-session.js +235 -106
  8. package/dist/base-session.js.map +1 -1
  9. package/dist/constants.d.ts +7 -1
  10. package/dist/constants.d.ts.map +1 -1
  11. package/dist/constants.js +7 -1
  12. package/dist/constants.js.map +1 -1
  13. package/dist/i18n.d.ts +20 -0
  14. package/dist/i18n.d.ts.map +1 -1
  15. package/dist/i18n.js +20 -0
  16. package/dist/i18n.js.map +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +28 -4
  19. package/dist/index.js.map +1 -1
  20. package/dist/local-session.d.ts +3 -1
  21. package/dist/local-session.d.ts.map +1 -1
  22. package/dist/local-session.js +82 -4
  23. package/dist/local-session.js.map +1 -1
  24. package/dist/log.d.ts +8 -0
  25. package/dist/log.d.ts.map +1 -1
  26. package/dist/log.js +28 -1
  27. package/dist/log.js.map +1 -1
  28. package/dist/parse-check.d.ts +20 -0
  29. package/dist/parse-check.d.ts.map +1 -0
  30. package/dist/parse-check.js +505 -0
  31. package/dist/parse-check.js.map +1 -0
  32. package/dist/precheck.d.ts +32 -0
  33. package/dist/precheck.d.ts.map +1 -0
  34. package/dist/precheck.js +105 -0
  35. package/dist/precheck.js.map +1 -0
  36. package/dist/server.d.ts.map +1 -1
  37. package/dist/server.js +41 -5
  38. package/dist/server.js.map +1 -1
  39. package/dist/session-store.d.ts +33 -0
  40. package/dist/session-store.d.ts.map +1 -1
  41. package/dist/session-store.js +55 -0
  42. package/dist/session-store.js.map +1 -1
  43. package/dist/session.js +1 -1
  44. package/dist/session.js.map +1 -1
  45. package/dist/shell-adapter.d.ts +14 -0
  46. package/dist/shell-adapter.d.ts.map +1 -1
  47. package/dist/shell-adapter.js +58 -10
  48. package/dist/shell-adapter.js.map +1 -1
  49. package/dist/utils.d.ts +8 -34
  50. package/dist/utils.d.ts.map +1 -1
  51. package/dist/utils.js +22 -64
  52. package/dist/utils.js.map +1 -1
  53. package/dist/web/app.js +1 -1
  54. package/package.json +1 -1
@@ -13,9 +13,11 @@ export declare class LocalSession extends BaseSession {
13
13
  private _term;
14
14
  private _proc;
15
15
  private _program;
16
- /** Windows ConPTY(本地/容器会话)裸 \n 不提交行,多行命令须用 \r 分隔 */
16
+ /** 本地 PTY 提交分隔符:Windows ConPTY 用 \r;Unix PTY 用 \n(不依赖 ICRNL 转换) */
17
17
  protected _lineSep: string;
18
18
  protected get _extraResult(): Partial<ExecResult>;
19
+ /** 本地会话:发送前语法预检可接 */
20
+ get isLocal(): boolean;
19
21
  protected _ready(): boolean;
20
22
  protected _write(data: string): void;
21
23
  protected _closeTransport(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"local-session.d.ts","sourceRoot":"","sources":["../src/local-session.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAG/C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAWD,qBAAa,YAAa,SAAQ,WAAW;IAC3C,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,QAAQ,CAAK;IAErB,oDAAoD;IACpD,UAAmB,QAAQ,SAAO;IAElC,SAAS,KAAK,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAAc;IAE/D,SAAS,CAAC,MAAM,IAAI,OAAO,CAE1B;IAED,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEnC;IAED,SAAS,CAAC,eAAe,IAAI,IAAI,CAIhC;IAED;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CA4D/F;IAED,SAAS,IAAI,WAAW,CAUvB;CACF"}
1
+ {"version":3,"file":"local-session.d.ts","sourceRoot":"","sources":["../src/local-session.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK/C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAwED,qBAAa,YAAa,SAAQ,WAAW;IAC3C,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,QAAQ,CAAK;IAErB,mEAAmE;IACnE,UAAmB,QAAQ,SAA6C;IAExE,SAAS,KAAK,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAAc;IAE/D,qBAAqB;IACrB,IAAI,OAAO,IAAI,OAAO,CAAgB;IAEtC,SAAS,CAAC,MAAM,IAAI,OAAO,CAE1B;IAED,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEnC;IAED,SAAS,CAAC,eAAe,IAAI,IAAI,CAIhC;IAED;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAkE/F;IAED,SAAS,IAAI,WAAW,CAUvB;CACF"}
@@ -4,6 +4,8 @@ import { INJECT_TIMEOUT_MS, PTY_COLS, PTY_ROWS } from "./constants.js";
4
4
  import { tr } from "./i18n.js";
5
5
  import { BaseSession } from "./base-session.js";
6
6
  import log from "./log.js";
7
+ import { delimiter, join } from "node:path";
8
+ import { statSync } from "node:fs";
7
9
  /** 命令行字符串拆分为参数数组(Bun.spawn 要求数组形式;支持双/单引号分组) */
8
10
  function splitCommand(cmd) {
9
11
  const args = [];
@@ -13,13 +15,82 @@ function splitCommand(cmd) {
13
15
  args.push(m[1] ?? m[2] ?? m[3]);
14
16
  return args;
15
17
  }
18
+ /**
19
+ * 在 PATH 中查找指定可执行文件,跳过 WindowsApps 下的 Store 执行别名
20
+ *(Bun.spawn 在 service/ConPTY 上下文拉不起该重解析点)。
21
+ * @param names 候选文件名(按优先级)
22
+ * @returns 第一个真实可执行文件路径;找不到返回 null
23
+ */
24
+ function findRealOnPath(names) {
25
+ // Windows 环境变量实际键名通常是 `Path`;Bun 的 process.env 可能不像 Node 那样大小写不敏感
26
+ const pathEnv = process.env.PATH || process.env.Path || process.env.path || "";
27
+ const dirs = pathEnv.split(delimiter);
28
+ for (const dir of dirs) {
29
+ for (const name of names) {
30
+ const p = join(dir, name);
31
+ try {
32
+ if (!statSync(p).isFile())
33
+ continue;
34
+ if (/[\\/]WindowsApps[\\/]/i.test(p))
35
+ continue; // Store 别名:跳过
36
+ return p;
37
+ }
38
+ catch {
39
+ /* 不存在/不可访问 */
40
+ }
41
+ }
42
+ }
43
+ return null;
44
+ }
45
+ /**
46
+ * Windows 下规范化 PowerShell 启动命令:
47
+ * - 优先找**真实** `pwsh.exe`(跳过 WindowsApps 别名),使用其全路径;
48
+ * - 找不到则回退 `powershell.exe`(5.1),并记一行日志;
49
+ * - 两者都没有时退回 `pwsh.exe`,让上层给出可行动错误。
50
+ * 已有 -NoLogo 不重复添加;非 win32 或非 pwsh 首参原样返回。
51
+ * @param argv 拆分后的命令参数
52
+ * @returns 规范化后的参数
53
+ */
54
+ function normalizeLocalArgv(argv) {
55
+ if (process.platform !== "win32" || argv.length === 0)
56
+ return argv;
57
+ const exe = argv[0].toLowerCase();
58
+ if (exe !== "pwsh" && exe !== "pwsh.exe")
59
+ return argv;
60
+ const rest = argv.slice(1);
61
+ const addNoLogo = rest.some((a) => a.toLowerCase() === "-nologo") ? [] : ["-NoLogo"];
62
+ const pwsh = findRealOnPath(["pwsh.exe"]);
63
+ if (pwsh)
64
+ return [pwsh, ...addNoLogo, ...rest];
65
+ const psOnPath = findRealOnPath(["powershell.exe"]);
66
+ // PATH 取不到时的绝对兜底(%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe)
67
+ const sysRoot = process.env.SystemRoot || process.env.windir;
68
+ let ps = psOnPath;
69
+ if (!ps && sysRoot) {
70
+ const psDefault = join(sysRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
71
+ try {
72
+ if (statSync(psDefault).isFile())
73
+ ps = psDefault;
74
+ }
75
+ catch {
76
+ /* 没有 5.1 */
77
+ }
78
+ }
79
+ if (ps) {
80
+ log.info("未找到可用的 PowerShell 7(pwsh 仅 Store 别名),回退到 powershell 5.1");
81
+ return [ps, ...addNoLogo, ...rest];
82
+ }
83
+ return ["pwsh.exe", ...addNoLogo, ...rest];
84
+ }
16
85
  export class LocalSession extends BaseSession {
17
86
  _term = null;
18
87
  _proc = null;
19
88
  _program = "";
20
- /** Windows ConPTY(本地/容器会话)裸 \n 不提交行,多行命令须用 \r 分隔 */
21
- _lineSep = "\r";
89
+ /** 本地 PTY 提交分隔符:Windows ConPTY 用 \r;Unix PTY 用 \n(不依赖 ICRNL 转换) */
90
+ _lineSep = process.platform === "win32" ? "\r" : "\n";
22
91
  get _extraResult() { return {}; }
92
+ /** 本地会话:发送前语法预检可接 */
93
+ get isLocal() { return true; }
23
94
  _ready() {
24
95
  return this._connected && this._term !== null && this._adapter !== null;
25
96
  }
@@ -47,7 +118,7 @@ export class LocalSession extends BaseSession {
47
118
  // 内联 terminal 选项:让 Bun 走 terminal_info 路径、向子进程传 pty_slave_fd,
48
119
  // 子进程才能 setsid+TIOCSCTTY 取得自己的控制终端。若改为传入已 new 出的 Terminal 对象,
49
120
  // Bun 不传该 fd,子进程会沿用 opencode TUI 的 pts,导致 sudo 等读 /dev/tty 的程序抢占 TUI 屏幕/键盘。
50
- const proc = Bun.spawn(splitCommand(opts.command), {
121
+ const proc = Bun.spawn(normalizeLocalArgv(splitCommand(opts.command)), {
51
122
  cwd: opts.cwd,
52
123
  terminal: {
53
124
  cols: PTY_COLS,
@@ -99,7 +170,14 @@ export class LocalSession extends BaseSession {
99
170
  const msg = e instanceof Error ? e.message : String(e);
100
171
  log.error(`本地终端启动失败 ${opts.command} (session ${this.sessionID}, term ${this.name})`, msg);
101
172
  this.close();
102
- return { ok: false, error: msg };
173
+ // 把底层 EPIPE/ENOENT 转成可行动提示(原始错误附后,便于排障)
174
+ let friendly = msg;
175
+ if (/EPIPE|broken pipe/i.test(msg))
176
+ friendly = `${tr("local_start_epipe", this._lang)}: ${msg}`;
177
+ else if (/ENOENT|Executable not found|not found in \$PATH/i.test(msg)) {
178
+ friendly = `${tr("local_start_not_found", this._lang).replace("{cmd}", opts.command)}: ${msg}`;
179
+ }
180
+ return { ok: false, error: friendly };
103
181
  }
104
182
  }
105
183
  getStatus() {
@@ -1 +1 @@
1
- {"version":3,"file":"local-session.js","sourceRoot":"","sources":["../src/local-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-session.js","sourceRoot":"","sources":["../src/local-session.ts"],"names":[],"mappings":"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"}
package/dist/log.d.ts CHANGED
@@ -61,6 +61,14 @@ export declare function describeSend(payload: string): string;
61
61
  * @param windowMs 去重窗口(默认 3000ms)
62
62
  */
63
63
  export declare function infoDedup(key: string, msg: string, windowMs?: number): void;
64
+ /**
65
+ * 清理过期的跨进程去重标记文件(默认 7 天)。
66
+ * `.log-dedup` 的 key 可能含动态 ws 端口/连接序号,长期运行会累积;文件只存 `{ts,count}`,
67
+ * 过期删除不影响功能(下次命中窗口会重新创建)。读/删失败静默忽略,绝不阻断日志或插件。
68
+ * @param maxAgeMs 最大保留时长(毫秒)
69
+ * @returns 无
70
+ */
71
+ export declare function sweepDedupDir(maxAgeMs?: number): void;
64
72
  /**
65
73
  * 跨进程短窗去重:多个 opencode 插件实例(各自独立进程)写同一日志文件时,
66
74
  * 用共享目录下的标记文件记录上次输出时刻与合并计数,窗口内的重复只记一次;
package/dist/log.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAqBA,QAAA,MAAM,GAAG,uDAAoC,CAAA;AAoC7C;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGvC;AAKD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAIxD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,MAAM,CAIlD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,MAAM,CAQpD;AAUD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWpD;AAkBD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAkB,GAAG,IAAI,CAgBpF;AAaD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAO,GAAG,IAAI,CA6C/E;eAEc,GAAG"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAqBA,QAAA,MAAM,GAAG,uDAAoC,CAAA;AAoC7C;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGvC;AAKD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAIxD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,MAAM,CAIlD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,MAAM,CAQpD;AAUD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWpD;AAkBD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAkB,GAAG,IAAI,CAgBpF;AAgBD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,SAAmB,GAAG,IAAI,CAc/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAO,GAAG,IAAI,CA6C/E;eAEc,GAAG"}
package/dist/log.js CHANGED
@@ -13,7 +13,7 @@
13
13
  // 把受影响的 `<主会话ID>/<终端名>` 列表打进同一行。独立服务是另一进程,只能看到 key=`sid:name`,
14
14
  // 拿不到 opencode 会话之外的上下文(其日志可按 sid 过滤,但无法按插件进程过滤)。
15
15
  import createLogger from "@xiaoqiong0v0/opencode-plugin-logger";
16
- import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
16
+ import { mkdirSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync } from "node:fs";
17
17
  import { homedir } from "node:os";
18
18
  import { join } from "node:path";
19
19
  import { stripAnsi } from "./ansi.js";
@@ -202,6 +202,33 @@ function dedupSafeName(key) {
202
202
  }
203
203
  /** 已排定"窗口结束回补汇总"定时器的跨进程 key(避免同进程重复排定) */
204
204
  const sharedTimerKeys = new Set();
205
+ /** 去重标记文件最长保留时间(7 天):只影响跨进程去重状态,删除安全 */
206
+ const DEDUP_MAX_AGE_MS = 7 * 24 * 60 * 60 * 1000;
207
+ /**
208
+ * 清理过期的跨进程去重标记文件(默认 7 天)。
209
+ * `.log-dedup` 的 key 可能含动态 ws 端口/连接序号,长期运行会累积;文件只存 `{ts,count}`,
210
+ * 过期删除不影响功能(下次命中窗口会重新创建)。读/删失败静默忽略,绝不阻断日志或插件。
211
+ * @param maxAgeMs 最大保留时长(毫秒)
212
+ * @returns 无
213
+ */
214
+ export function sweepDedupDir(maxAgeMs = DEDUP_MAX_AGE_MS) {
215
+ try {
216
+ for (const name of readdirSync(SHARED_DEDUP_DIR)) {
217
+ const file = join(SHARED_DEDUP_DIR, name);
218
+ try {
219
+ const st = statSync(file);
220
+ if (st.isFile() && Date.now() - st.mtimeMs > maxAgeMs)
221
+ rmSync(file, { force: true });
222
+ }
223
+ catch {
224
+ /* 单个文件被占用/已删除:跳过 */
225
+ }
226
+ }
227
+ }
228
+ catch {
229
+ /* 目录不存在:忽略 */
230
+ }
231
+ }
205
232
  /**
206
233
  * 跨进程短窗去重:多个 opencode 插件实例(各自独立进程)写同一日志文件时,
207
234
  * 用共享目录下的标记文件记录上次输出时刻与合并计数,窗口内的重复只记一次;
package/dist/log.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export type ParseIssue = {
2
+ errorId: string;
3
+ line: number;
4
+ col: number;
5
+ text: string;
6
+ };
7
+ export type ParseCheckResult = {
8
+ ok: true;
9
+ } | {
10
+ ok: false;
11
+ errors: ParseIssue[];
12
+ };
13
+ /**
14
+ * 发送前校验命令语法(不执行命令)。
15
+ * @param shell 目标 shell 标识(pwsh/powershell → PowerShell;bash/zsh → `-n`;含 wsl 视为 bash 走 WSL)
16
+ * @param text 待校验的命令文本(原样,不做任何归一化)
17
+ * @returns 通过 `{ok:true}`;有语法错误 `{ok:false, errors}`;不支持或解析器不可用一律 `{ok:true}`
18
+ */
19
+ export declare function validateCommand(shell: string, text: string): Promise<ParseCheckResult>;
20
+ //# sourceMappingURL=parse-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-check.d.ts","sourceRoot":"","sources":["../src/parse-check.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AACrF,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,UAAU,EAAE,CAAA;CAAE,CAAA;AA2FjF;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAa5F"}