repterm 0.1.0 → 0.1.1
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/api/describe.d.ts +2 -2
- package/dist/api/expect.d.ts +1 -1
- package/dist/api/expect.d.ts.map +1 -1
- package/dist/api/hooks.d.ts +16 -17
- package/dist/api/hooks.d.ts.map +1 -1
- package/dist/api/hooks.js +9 -9
- package/dist/api/hooks.js.map +1 -1
- package/dist/api/steps.d.ts +10 -10
- package/dist/api/steps.d.ts.map +1 -1
- package/dist/api/steps.js +12 -12
- package/dist/api/steps.js.map +1 -1
- package/dist/api/test.d.ts +10 -12
- package/dist/api/test.d.ts.map +1 -1
- package/dist/api/test.js +29 -30
- package/dist/api/test.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/plugin/index.d.ts +2 -2
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +2 -2
- package/dist/plugin/index.js.map +1 -1
- package/dist/runner/config.js +1 -1
- package/dist/runner/config.js.map +1 -1
- package/dist/runner/filter.d.ts +9 -9
- package/dist/runner/filter.js +18 -18
- package/dist/runner/filter.js.map +1 -1
- package/dist/runner/loader.d.ts.map +1 -1
- package/dist/runner/loader.js +11 -13
- package/dist/runner/loader.js.map +1 -1
- package/dist/runner/models.d.ts +58 -58
- package/dist/runner/models.d.ts.map +1 -1
- package/dist/runner/runner.js +9 -9
- package/dist/runner/runner.js.map +1 -1
- package/dist/terminal/terminal.d.ts +21 -40
- package/dist/terminal/terminal.d.ts.map +1 -1
- package/dist/terminal/terminal.js +133 -181
- package/dist/terminal/terminal.js.map +1 -1
- package/package.json +41 -41
|
@@ -2,16 +2,14 @@
|
|
|
2
2
|
* Terminal API implementation
|
|
3
3
|
* Provides high-level terminal interaction (start/send/wait/snapshot)
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* - 录制或交互模式:使用 PTY,支持复杂交互,但 exitCode 不可靠
|
|
5
|
+
* Execution: non-recording/non-interactive uses Bun.spawn (separate stdout/stderr, exact exitCode);
|
|
6
|
+
* recording or interactive uses PTY (rich interaction, exitCode unreliable).
|
|
8
7
|
*/
|
|
9
8
|
import type { TerminalAPI, WaitOptions, RunOptions, PTYProcess, PluginFactory, TerminalWithPlugins, CommandLog } from '../runner/models.js';
|
|
10
9
|
import { TerminalSession } from './session.js';
|
|
11
10
|
import { EventEmitter } from 'events';
|
|
12
11
|
/**
|
|
13
|
-
*
|
|
14
|
-
* 纯函数,可独立单元测试
|
|
12
|
+
* Compute tmux output capture line range. Pure function for unit testing.
|
|
15
13
|
*/
|
|
16
14
|
export declare function calculateOutputRange(beforeCursorY: number, beforeHistorySize: number, afterCursorY: number, afterHistorySize: number, promptLineCount: number): {
|
|
17
15
|
startLine: number;
|
|
@@ -87,18 +85,12 @@ export declare class Terminal extends EventEmitter implements TerminalAPI {
|
|
|
87
85
|
*/
|
|
88
86
|
private selectPane;
|
|
89
87
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* 用法:
|
|
97
|
-
* - 直接 await: 自动调用 wait(),返回 CommandResult
|
|
98
|
-
* - 不 await: 返回 PTYProcess 控制器,可调用 expect/send/wait 等方法
|
|
99
|
-
*
|
|
100
|
-
* @param command - 要执行的命令
|
|
101
|
-
* @param options - 可选配置,包括 interactive: true 启用交互模式
|
|
88
|
+
* Run command; returns PTYProcess.
|
|
89
|
+
* Non-recording/non-interactive: Bun.spawn, separate stdout/stderr, exact exitCode.
|
|
90
|
+
* Recording or interactive: PTY, expect/send, exitCode -1.
|
|
91
|
+
* Usage: await for CommandResult, or use controller (expect/send/wait).
|
|
92
|
+
* @param command - Command to run
|
|
93
|
+
* @param options - e.g. interactive: true
|
|
102
94
|
*/
|
|
103
95
|
run(command: string, options?: RunOptions): PTYProcess;
|
|
104
96
|
/**
|
|
@@ -157,8 +149,7 @@ export declare class Terminal extends EventEmitter implements TerminalAPI {
|
|
|
157
149
|
*/
|
|
158
150
|
getCommandLogs(): CommandLog[];
|
|
159
151
|
/**
|
|
160
|
-
*
|
|
161
|
-
* @internal 由插件系统调用
|
|
152
|
+
* Set plugin factory (create() will inject plugins). @internal
|
|
162
153
|
*/
|
|
163
154
|
setPluginFactory<TPlugins>(factory: PluginFactory<TPlugins>): void;
|
|
164
155
|
/**
|
|
@@ -185,8 +176,7 @@ export declare class Terminal extends EventEmitter implements TerminalAPI {
|
|
|
185
176
|
*/
|
|
186
177
|
isRecording(): boolean;
|
|
187
178
|
/**
|
|
188
|
-
*
|
|
189
|
-
* PTY 模式支持交互式命令,但打字效果仅在 recording 模式下启用
|
|
179
|
+
* Whether PTY mode (recording or pty-only). Typing effect only in recording.
|
|
190
180
|
*/
|
|
191
181
|
isPtyMode(): boolean;
|
|
192
182
|
/**
|
|
@@ -211,37 +201,34 @@ export declare class Terminal extends EventEmitter implements TerminalAPI {
|
|
|
211
201
|
};
|
|
212
202
|
/**
|
|
213
203
|
* Record state before sending Enter (internal use)
|
|
214
|
-
*
|
|
204
|
+
* Single tmux query for history_size and cursor_y to avoid race.
|
|
215
205
|
*/
|
|
216
206
|
private recordBeforeEnterState;
|
|
217
207
|
/**
|
|
218
|
-
*
|
|
219
|
-
* - 提示符占用的行数
|
|
220
|
-
* - 提示符匹配 pattern
|
|
221
|
-
* 通过创建临时 tmux session 来测量,检测过程不会出现在录制中
|
|
208
|
+
* Detect prompt before recording (line count, pattern) via temp tmux session.
|
|
222
209
|
*/
|
|
223
210
|
private detectPromptBeforeRecording;
|
|
224
211
|
/**
|
|
225
|
-
*
|
|
212
|
+
* Analyze prompt line and build match regex
|
|
226
213
|
*/
|
|
227
214
|
private analyzePromptLine;
|
|
228
215
|
/**
|
|
229
|
-
*
|
|
216
|
+
* Get detected prompt line count
|
|
230
217
|
*/
|
|
231
218
|
getPromptLineCount(): number;
|
|
232
219
|
/**
|
|
233
|
-
*
|
|
220
|
+
* Get detected prompt pattern
|
|
234
221
|
*/
|
|
235
222
|
getDetectedPromptPattern(): RegExp | undefined;
|
|
236
223
|
/**
|
|
237
224
|
* Type text with human-like delays (for recording mode)
|
|
238
|
-
* @param text -
|
|
239
|
-
* @param speed -
|
|
240
|
-
* @param variableSpeed -
|
|
225
|
+
* @param text - Text to type
|
|
226
|
+
* @param speed - ms per char, default 80
|
|
227
|
+
* @param variableSpeed - Variable speed for natural typing
|
|
241
228
|
*/
|
|
242
229
|
private typeWithDelay;
|
|
243
230
|
/**
|
|
244
|
-
*
|
|
231
|
+
* Show step title in recording
|
|
245
232
|
*/
|
|
246
233
|
private displayStepTitle;
|
|
247
234
|
/**
|
|
@@ -267,13 +254,7 @@ export declare class Terminal extends EventEmitter implements TerminalAPI {
|
|
|
267
254
|
stepName?: string;
|
|
268
255
|
}): Promise<void>;
|
|
269
256
|
/**
|
|
270
|
-
*
|
|
271
|
-
* 避免 shell 显示续行提示符(如 quote>、pipe heredoc>)
|
|
272
|
-
*
|
|
273
|
-
* Bracketed Paste Mode 使用转义序列包裹粘贴内容:
|
|
274
|
-
* - \x1b[200~ 标记粘贴开始
|
|
275
|
-
* - \x1b[201~ 标记粘贴结束
|
|
276
|
-
* Shell 会将整个内容作为单个输入块处理,不显示续行提示符
|
|
257
|
+
* Bracketed Paste for multiline: \x1b[200~...\x1b[201~ so shell treats as single input, no continuation prompt.
|
|
277
258
|
*/
|
|
278
259
|
private pasteWithTmux;
|
|
279
260
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/terminal/terminal.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/terminal/terminal.ts"],"names":[],"mappings":"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"}
|