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.
@@ -2,16 +2,14 @@
2
2
  * Terminal API implementation
3
3
  * Provides high-level terminal interaction (start/send/wait/snapshot)
4
4
  *
5
- * 执行架构:
6
- * - 非录制、非交互模式:使用 Bun.spawn,stdout/stderr 分离,exitCode 精确
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
- * 计算 tmux 输出捕获的行范围
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
- * 执行命令,返回 PTYProcess
91
- *
92
- * 执行模式:
93
- * - 非录制、非交互(默认):使用 Bun.spawn,stdout/stderr 分离,exitCode 精确
94
- * - 录制或交互:使用 PTY,支持 expect/send,但 exitCode 返回 -1
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
- * 设置插件工厂(用于 create() 自动注入插件)
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
- * 是否使用 PTY 模式(录制或 pty-only
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
- * 使用单次 tmux 查询原子获取 history_size cursor_y,避免竞态条件
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
- * 获取检测到的提示符匹配 pattern
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 - 每字符延迟 (ms),默认 80ms
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
- * 使用 Bracketed Paste Mode 粘贴多行命令
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":"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"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/terminal/terminal.ts"],"names":[],"mappings":"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"}