@xiaoqiong0v0/opencode-ssh-tool 0.6.1 → 0.6.3
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/ansi.d.ts +17 -0
- package/dist/ansi.d.ts.map +1 -0
- package/dist/ansi.js +23 -0
- package/dist/ansi.js.map +1 -0
- package/dist/base-session.d.ts +26 -5
- package/dist/base-session.d.ts.map +1 -1
- package/dist/base-session.js +110 -20
- package/dist/base-session.js.map +1 -1
- package/dist/constants.d.ts +11 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +11 -0
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/shell-adapter.d.ts +26 -0
- package/dist/shell-adapter.d.ts.map +1 -1
- package/dist/shell-adapter.js +46 -0
- package/dist/shell-adapter.js.map +1 -1
- package/dist/utils.d.ts +23 -8
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +113 -240
- package/dist/utils.js.map +1 -1
- package/dist/web/app.js +10 -9
- package/package.json +2 -1
package/dist/utils.js
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
// 工具函数:命令回显定位、模型文本清理、ANSI 清洗、CR 覆盖合并、完成标记剥离
|
|
2
|
-
import
|
|
2
|
+
import headless from "@xterm/headless";
|
|
3
|
+
import { ANSI_SEQ_PATTERN, stripAnsi } from "./ansi.js";
|
|
4
|
+
import { PTY_COLS, PTY_ROWS, TERM_SCROLLBACK_LINES } from "./constants.js";
|
|
3
5
|
import { findLastEndOfBefore } from "./last-match.js";
|
|
6
|
+
import { stripMarkers } from "./shell-adapter.js";
|
|
7
|
+
/** headless 终端构造器(@xterm/headless 为 CommonJS,Node ESM 无法静态识别其具名导出,故从默认导出解构) */
|
|
8
|
+
const { Terminal: TerminalCtor } = headless;
|
|
9
|
+
/** headless 写入回调等待上限(毫秒):超时按已解析内容读取,避免极端情况下永久挂起 */
|
|
10
|
+
const HEADLESS_WRITE_TIMEOUT_MS = 10_000;
|
|
4
11
|
/** 正则转义文本 */
|
|
5
12
|
const escRe = (s) => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
6
13
|
/** 命令回显匹配的宽松字符间隙(ANSI 序列或普通空白/换行,可插在命令字符之间;容忍终端列宽自动换行) */
|
|
7
|
-
const ECHO_WIDE =
|
|
14
|
+
const ECHO_WIDE = `(?:${ANSI_SEQ_PATTERN}|[ \\t\\r\\n])*`;
|
|
15
|
+
/** 行尾 ANSI 容忍串(命令回显行尾可能残留光标定位/模式序列),与 ECHO_WIDE 共用同一模式源 */
|
|
16
|
+
const TAIL_ANSI = `(?:${ANSI_SEQ_PATTERN})*`;
|
|
8
17
|
/**
|
|
9
18
|
* 定位命令回显行在原始流中的结束位置(供流式增量定位使用):
|
|
10
19
|
* 丢弃窗口开头到"命令回显行结束"之前的一切内容(提示符、PS1 填充、光标定位噪音均在内)。
|
|
@@ -13,19 +22,21 @@ const ECHO_WIDE = "(?:\\x1b\\[[0-9;?]*[a-zA-Z]|\\x1b\\][^\\x07\\x1b]*(?:\\x07|\\
|
|
|
13
22
|
* 此时回显是整行拼接,不能要求命令后紧跟换行。
|
|
14
23
|
* @param raw 原始终端流(含 ANSI)
|
|
15
24
|
* @param command 本次执行的命令文本
|
|
16
|
-
* @
|
|
25
|
+
* @param endBound 搜索上界(不含),默认窗口末尾;末次匹配模式下用于避免后续裸命令回显把定位带偏
|
|
26
|
+
* @param first true 取窗口内**首次**匹配(语法错误路径:错误块会重印含标记的整行命令,
|
|
27
|
+
* 末次匹配会落到错误块内的命令拷贝上,导致错误块前半被裁掉)
|
|
28
|
+
* @returns 命令回显结束后的字节偏移(命中必 > 0);未命中命令文本返回 -1(调用方按 `<= 0` 判定"未定位")
|
|
17
29
|
*/
|
|
18
|
-
export function extractOutputStart(raw, command, endBound = raw.length) {
|
|
30
|
+
export function extractOutputStart(raw, command, endBound = raw.length, first = false) {
|
|
19
31
|
const cmd = command.trim();
|
|
20
32
|
if (!cmd)
|
|
21
|
-
return
|
|
33
|
+
return -1;
|
|
22
34
|
// 单条宽松正则一次性匹配命令回显(支持多行命令):
|
|
23
35
|
// 1) 命令字符间容忍 ANSI 间隙(ECHO_WIDE)
|
|
24
36
|
// 2) 命令字面 \033 回显可能变真实 ESC(二选一)
|
|
25
37
|
// 3) 每段命令文本后允许任意行内字符直到行尾([^\r\n]*),兼容追加的完成标记命令
|
|
26
38
|
// 4) 多行命令:bash 逐行回显,行间可能夹 prompt 文本与 ANSI,用宽松段间匹配连接
|
|
27
39
|
const norm = cmd.replace(/\\033/gi, "\x1b");
|
|
28
|
-
const TAIL_ANSI = "(?:\\x1b\\[[0-9;?]*[a-zA-Z]|\\x1b\\][^\\x07\\x1b]*(?:\\x07|\\x1b\\\\)|\\x1b[^\\x1b])*";
|
|
29
40
|
// 行尾:容忍 \r 后跟 ANSI(如 bracketed paste off \x1b[?2004l)再换行,或直接 \n/字符串末尾
|
|
30
41
|
const LINE_END = "(?:(?:\\r?" + TAIL_ANSI + ")\\r?\\n|\\r?$)";
|
|
31
42
|
const lineOf = (line) => {
|
|
@@ -42,6 +53,10 @@ export function extractOutputStart(raw, command, endBound = raw.length) {
|
|
|
42
53
|
// 段间匹配:容忍任意行(prompt、输出行等)直到下一段命令,再用 ECHO_WIDE 收紧命令字符间隙
|
|
43
54
|
const BETWEEN = "[\\s\\S]*?";
|
|
44
55
|
const re = new RegExp(lines.map(lineOf).join(BETWEEN + ECHO_WIDE) + "(?:" + LINE_END + ")", "g");
|
|
56
|
+
if (first) {
|
|
57
|
+
const m = re.exec(raw);
|
|
58
|
+
return m && m.index < endBound ? m.index + m[0].length : -1;
|
|
59
|
+
}
|
|
45
60
|
// 取 [0, endBound) 范围内最后一次匹配:备屏退出(如 cmatrix)会重放主屏历史,
|
|
46
61
|
// 其中含旧命令回显,只有最后一次出现的回显之后才是本次命令的真实输出;
|
|
47
62
|
// endBound 限到完成标记之前,避免连续输入时后续裸命令回显把定位带偏
|
|
@@ -55,7 +70,7 @@ export function extractOutputStart(raw, command, endBound = raw.length) {
|
|
|
55
70
|
* 命中后切到"命令文本结束处":zsh 下程序输出可能直接粘连在回显尾(无换行),不能按换行截断。
|
|
56
71
|
* @param raw 原始终端流(含 ANSI)
|
|
57
72
|
* @param command 本次执行的命令文本
|
|
58
|
-
* @returns 纯程序输出原始流(保留程序自身的 ANSI 颜色/进度条,供 web
|
|
73
|
+
* @returns 纯程序输出原始流(保留程序自身的 ANSI 颜色/进度条,供 web HeadlessScreen 与模型 toModelText)
|
|
59
74
|
*/
|
|
60
75
|
export function extractOutput(raw, command) {
|
|
61
76
|
const end = extractOutputStart(raw, command);
|
|
@@ -63,246 +78,104 @@ export function extractOutput(raw, command) {
|
|
|
63
78
|
return raw;
|
|
64
79
|
return raw.slice(end).replace(/^[\r\n]+/, "");
|
|
65
80
|
}
|
|
81
|
+
/** 行归一化:剥 ANSI、去行尾 \r 与尾空白,用于提示符行比较(提示符常带尾空格与颜色序列) */
|
|
82
|
+
const normLine = (s) => stripAnsi(s).replace(/\r$/, "").trimEnd();
|
|
66
83
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* @param raw 原始终端流(含 ANSI)
|
|
71
|
-
* @returns 纯文本输出(供模型消费 / exec 返回值 / read 命令)
|
|
84
|
+
* 取文本首个非空行(剥 ANSI 后判定),无则返回空串
|
|
85
|
+
* @param s 文本
|
|
86
|
+
* @returns 首个非空行原文(未剥 ANSI);不存在返回 ""
|
|
72
87
|
*/
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
.join("\n");
|
|
88
|
+
function firstNonEmptyLine(s) {
|
|
89
|
+
for (const line of s.split("\n")) {
|
|
90
|
+
if (normLine(line) !== "")
|
|
91
|
+
return line;
|
|
92
|
+
}
|
|
93
|
+
return "";
|
|
80
94
|
}
|
|
81
95
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
96
|
+
* 剥离输出尾部 shell 重印的提示符行(语法错误收尾专用):
|
|
97
|
+
* 命令因语法错误作废后 shell 会重新打印提示符,该行与命令发起前的旧提示符行同形,属终端画面噪音、
|
|
98
|
+
* 非命令输出,保留会让模型多看到一行提示符。候选基准两处:
|
|
99
|
+
* - 捕获窗口首个非空行(窗口含旧提示符行的场景,如后台提交 startPos=0);
|
|
100
|
+
* - 命令发起前缓冲末行(exec 窗口自命令回显起,旧提示符在窗口之外,由调用方单独传入)。
|
|
101
|
+
* @param out 纯输出流(命令回显结束 → 窗口末尾,可能以重印的提示符行结尾)
|
|
102
|
+
* @param window 捕获窗口原始流(用于取窗口开头那行作候选)
|
|
103
|
+
* @param promptRef 命令发起前缓冲末行(旧提示符行,另一候选;空串表示不可用)
|
|
104
|
+
* @returns 末行与任一候选相同(剥 ANSI/尾空白后比较)时剥掉末行;否则原样返回
|
|
86
105
|
*/
|
|
87
|
-
function
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return rows[i];
|
|
100
|
-
};
|
|
101
|
-
const put = (ch) => {
|
|
102
|
-
const cur = row(r);
|
|
103
|
-
if (c < COLS) {
|
|
104
|
-
cur.cols.set(c, ch);
|
|
105
|
-
if (c >= cur.maxCol)
|
|
106
|
-
cur.maxCol = c + 1;
|
|
107
|
-
}
|
|
108
|
-
c++;
|
|
109
|
-
};
|
|
110
|
-
let i = 0;
|
|
111
|
-
const n = s.length;
|
|
112
|
-
while (i < n) {
|
|
113
|
-
const ch = s[i];
|
|
114
|
-
if (ch === "\x1b") {
|
|
115
|
-
// OSC: ESC ] ... BEL/ESC\ — 整段丢弃
|
|
116
|
-
if (i + 1 < n && s[i + 1] === "]") {
|
|
117
|
-
let j = i + 2;
|
|
118
|
-
while (j < n && s[j] !== "\x07" && !(s[j] === "\x1b" && j + 1 < n && s[j + 1] === "\\"))
|
|
119
|
-
j++;
|
|
120
|
-
if (j >= n)
|
|
121
|
-
break;
|
|
122
|
-
i = s[j] === "\x07" ? j + 1 : j + 2;
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
// CSI: ESC [ params... final
|
|
126
|
-
if (i + 1 < n && s[i + 1] === "[") {
|
|
127
|
-
let j = i + 2;
|
|
128
|
-
const start = j;
|
|
129
|
-
while (j < n && !/[A-Za-z@]/.test(s[j]))
|
|
130
|
-
j++;
|
|
131
|
-
if (j >= n)
|
|
132
|
-
break;
|
|
133
|
-
const body = s.slice(start, j);
|
|
134
|
-
const final = s[j];
|
|
135
|
-
const p = (d) => { const v = parseInt(d, 10); return Number.isFinite(v) && v > 0 ? v : 1; };
|
|
136
|
-
const va = (d) => { const v = parseInt(d, 10); return Number.isFinite(v) && v >= 0 ? v : 0; };
|
|
137
|
-
if (final === "m") {
|
|
138
|
-
// SGR:忽略颜色
|
|
139
|
-
}
|
|
140
|
-
else if (final === "A") {
|
|
141
|
-
r = Math.max(0, r - p(body));
|
|
142
|
-
}
|
|
143
|
-
else if (final === "B") {
|
|
144
|
-
r += p(body);
|
|
145
|
-
}
|
|
146
|
-
else if (final === "C") {
|
|
147
|
-
c = Math.min(COLS - 1, c + p(body));
|
|
148
|
-
}
|
|
149
|
-
else if (final === "D") {
|
|
150
|
-
c = Math.max(0, c - p(body));
|
|
151
|
-
}
|
|
152
|
-
else if (final === "H" || final === "f") {
|
|
153
|
-
const m = body.split(";");
|
|
154
|
-
r = Math.max(0, (p(m[0]) - 1));
|
|
155
|
-
c = Math.max(0, (p(m[1]) - 1));
|
|
156
|
-
}
|
|
157
|
-
else if (final === "G" || final.charCodeAt(0) === 96) {
|
|
158
|
-
c = Math.max(0, p(body) - 1);
|
|
159
|
-
}
|
|
160
|
-
else if (final === "d") {
|
|
161
|
-
r = Math.max(0, p(body) - 1);
|
|
162
|
-
}
|
|
163
|
-
else if (final === "s") {
|
|
164
|
-
sr = r;
|
|
165
|
-
sc = c;
|
|
166
|
-
}
|
|
167
|
-
else if (final === "u") {
|
|
168
|
-
r = Math.min(sr, rows.length - 1);
|
|
169
|
-
c = sc;
|
|
170
|
-
}
|
|
171
|
-
else if (final === "h" && body.startsWith("?")) {
|
|
172
|
-
// 私有模式 set:?1049h 进入备屏(保存主屏+光标,清屏)
|
|
173
|
-
if (va(body.slice(1)) === 1049) {
|
|
174
|
-
altRows = rows.map((x) => ({ maxCol: x.maxCol, cols: new Map(x.cols) }));
|
|
175
|
-
sr = r;
|
|
176
|
-
sc = c;
|
|
177
|
-
rows.length = 0;
|
|
178
|
-
r = 0;
|
|
179
|
-
c = 0;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
else if (final === "l" && body.startsWith("?")) {
|
|
183
|
-
// 私有模式 reset:?1049l 退出备屏(恢复主屏+光标)
|
|
184
|
-
if (va(body.slice(1)) === 1049 && altRows) {
|
|
185
|
-
rows.length = 0;
|
|
186
|
-
rows.push(...altRows);
|
|
187
|
-
altRows = null;
|
|
188
|
-
r = Math.min(sr, rows.length - 1);
|
|
189
|
-
c = sc;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
else if (final === "K") {
|
|
193
|
-
const mode = va(body);
|
|
194
|
-
const curRow = row(r);
|
|
195
|
-
if (mode === 2) {
|
|
196
|
-
curRow.cols.clear();
|
|
197
|
-
curRow.maxCol = 0;
|
|
198
|
-
}
|
|
199
|
-
else if (mode === 1) {
|
|
200
|
-
for (let ci = 0; ci <= c; ci++) {
|
|
201
|
-
curRow.cols.delete(ci);
|
|
202
|
-
}
|
|
203
|
-
;
|
|
204
|
-
curRow.maxCol = 0;
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
for (let ci = c; ci < COLS; ci++) {
|
|
208
|
-
curRow.cols.delete(ci);
|
|
209
|
-
}
|
|
210
|
-
;
|
|
211
|
-
curRow.maxCol = Math.min(curRow.maxCol, c);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
else if (final === "J") {
|
|
215
|
-
const mode = va(body);
|
|
216
|
-
if (mode === 2 || mode === 3) {
|
|
217
|
-
rows.length = 0;
|
|
218
|
-
r = 0;
|
|
219
|
-
c = 0;
|
|
220
|
-
}
|
|
221
|
-
else if (mode === 1) {
|
|
222
|
-
rows.length = 0;
|
|
223
|
-
r = 0;
|
|
224
|
-
c = 0;
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
const cur = row(r);
|
|
228
|
-
for (let ci = c; ci < COLS; ci++)
|
|
229
|
-
cur.cols.delete(ci);
|
|
230
|
-
cur.maxCol = Math.min(cur.maxCol, c);
|
|
231
|
-
rows.length = r + 1;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
// 其余 CSI(滚动/插入/删除等)忽略
|
|
235
|
-
i = j + 1;
|
|
236
|
-
continue;
|
|
237
|
-
}
|
|
238
|
-
// ESC 7 保存光标 / ESC 8 恢复光标
|
|
239
|
-
if (s[i + 1] === "7") {
|
|
240
|
-
sr = r;
|
|
241
|
-
sc = c;
|
|
242
|
-
i += 2;
|
|
243
|
-
continue;
|
|
244
|
-
}
|
|
245
|
-
if (s[i + 1] === "8") {
|
|
246
|
-
r = Math.min(sr, rows.length - 1);
|
|
247
|
-
c = sc;
|
|
248
|
-
i += 2;
|
|
249
|
-
continue;
|
|
250
|
-
}
|
|
251
|
-
// 其他 ESC 序列忽略
|
|
252
|
-
i += 2;
|
|
253
|
-
continue;
|
|
254
|
-
}
|
|
255
|
-
if (ch === "\r") {
|
|
256
|
-
c = 0;
|
|
257
|
-
i++;
|
|
258
|
-
continue;
|
|
259
|
-
}
|
|
260
|
-
if (ch === "\n") {
|
|
261
|
-
r++;
|
|
262
|
-
c = 0;
|
|
263
|
-
i++;
|
|
264
|
-
continue;
|
|
265
|
-
}
|
|
266
|
-
if (ch === "\b") {
|
|
267
|
-
if (c > 0)
|
|
268
|
-
c--;
|
|
269
|
-
i++;
|
|
270
|
-
continue;
|
|
271
|
-
}
|
|
272
|
-
if (ch === "\t") {
|
|
273
|
-
const next = (Math.floor(c / 8) + 1) * 8;
|
|
274
|
-
if (next >= COLS) {
|
|
275
|
-
r++;
|
|
276
|
-
c = 0;
|
|
277
|
-
}
|
|
278
|
-
else
|
|
279
|
-
c = next;
|
|
280
|
-
i++;
|
|
281
|
-
continue;
|
|
282
|
-
}
|
|
283
|
-
// 其他控制字符(\x07 BEL 等)跳过
|
|
284
|
-
if (ch.charCodeAt(0) < 32) {
|
|
285
|
-
i++;
|
|
286
|
-
continue;
|
|
287
|
-
}
|
|
288
|
-
put(ch);
|
|
289
|
-
i++;
|
|
106
|
+
export function stripTrailingPromptLine(out, window, promptRef) {
|
|
107
|
+
const nl = out.lastIndexOf("\n");
|
|
108
|
+
if (nl < 0)
|
|
109
|
+
return out;
|
|
110
|
+
const last = normLine(out.slice(nl + 1));
|
|
111
|
+
if (last === "")
|
|
112
|
+
return out;
|
|
113
|
+
for (const cand of [firstNonEmptyLine(window), promptRef]) {
|
|
114
|
+
const ref = normLine(cand);
|
|
115
|
+
// 连行尾 \r 一并去掉:剥掉提示符行后仅剩的 \r 会成为输出末尾的孤立回车
|
|
116
|
+
if (ref !== "" && ref === last)
|
|
117
|
+
return out.slice(0, nl).replace(/\r$/, "");
|
|
290
118
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
119
|
+
return out;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* 把原始终端流转为给模型看的干净文本:用 xterm headless 引擎忠实模拟终端屏幕
|
|
123
|
+
* (处理光标移动/清行/清屏/覆盖/退格/SGR/OSC,含 scrollback),再逐行去尾空白并剔除空行。
|
|
124
|
+
* 比纯文本正则更鲁棒地处理 PSReadLine 行内重绘、进度条 \r 覆盖等场景。
|
|
125
|
+
* @param raw 原始终端流(含 ANSI)
|
|
126
|
+
* @returns Promise:纯文本输出(供模型消费 / exec 返回值 / read 命令);write 为异步,故返回 Promise
|
|
127
|
+
*/
|
|
128
|
+
export async function toModelText(raw) {
|
|
129
|
+
const term = createHeadlessTerminal();
|
|
130
|
+
try {
|
|
131
|
+
await writeHeadless(term, stripMarkers(raw));
|
|
132
|
+
const buf = term.buffer.active;
|
|
133
|
+
const lines = [];
|
|
134
|
+
// 从最早仍保留的行(含 scrollback)读到末行;行尾去尾空白、保留行内空白
|
|
135
|
+
for (let i = 0; i < buf.length; i++)
|
|
136
|
+
lines.push(buf.getLine(i)?.translateToString(true) ?? "");
|
|
137
|
+
return lines
|
|
138
|
+
.map((l) => l.replace(/\r/g, "").trimEnd())
|
|
139
|
+
.filter((l) => l !== "")
|
|
140
|
+
.join("\n");
|
|
141
|
+
}
|
|
142
|
+
finally {
|
|
143
|
+
term.dispose();
|
|
304
144
|
}
|
|
305
|
-
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* 建一个 headless 终端:固定 PTY 尺寸 + scrollback,并开启 proposed API(访问 term.buffer 必需)
|
|
148
|
+
* @returns 新的 headless Terminal 实例
|
|
149
|
+
*/
|
|
150
|
+
function createHeadlessTerminal() {
|
|
151
|
+
return new TerminalCtor({
|
|
152
|
+
cols: PTY_COLS,
|
|
153
|
+
rows: PTY_ROWS,
|
|
154
|
+
scrollback: TERM_SCROLLBACK_LINES,
|
|
155
|
+
allowProposedApi: true,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 向 headless 终端写入并等待解析完成:write 回调触发即兑现,超过超时上限(极端情况守卫)亦兑现
|
|
160
|
+
* @param term headless 终端
|
|
161
|
+
* @param data 待写入的原始流(含 ANSI)
|
|
162
|
+
* @returns Promise:解析完成(或超时)后兑现
|
|
163
|
+
*/
|
|
164
|
+
function writeHeadless(term, data) {
|
|
165
|
+
return new Promise((resolve) => {
|
|
166
|
+
let settled = false;
|
|
167
|
+
const done = () => {
|
|
168
|
+
if (settled)
|
|
169
|
+
return;
|
|
170
|
+
settled = true;
|
|
171
|
+
resolve();
|
|
172
|
+
};
|
|
173
|
+
const timer = setTimeout(done, HEADLESS_WRITE_TIMEOUT_MS);
|
|
174
|
+
term.write(data, () => {
|
|
175
|
+
clearTimeout(timer);
|
|
176
|
+
done();
|
|
177
|
+
});
|
|
178
|
+
});
|
|
306
179
|
}
|
|
307
180
|
/**
|
|
308
181
|
* 末尾空白清理(原为提示符剥离,现仅做清理,不依赖正则匹配具体提示符形状)
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|