@ictechgy/lterm 1.0.0 → 1.0.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/README.ko.md +8 -3
- package/README.md +8 -3
- package/package.json +5 -5
package/README.ko.md
CHANGED
|
@@ -70,7 +70,7 @@ Homebrew와 npm 모두 `PATH`에 `lterm` 명령을 설치합니다. `lterm --ver
|
|
|
70
70
|
GitHub에서 Cargo로 설치 (Releases 페이지의 최신 태그를 사용하세요):
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
cargo install --git https://github.com/ictechgy/light_terminal --tag v1.0.
|
|
73
|
+
cargo install --git https://github.com/ictechgy/light_terminal --tag v1.0.1
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
저장소를 클론한 뒤 직접 빌드하려면 Rust 1.85 이상이 필요합니다.
|
|
@@ -128,6 +128,7 @@ lterm -a api
|
|
|
128
128
|
| 세션 이름 변경 | `lterm rename api api-renamed` | 없음 |
|
|
129
129
|
| 세션 status theme 설정 | `lterm status-theme api green` | `theme` |
|
|
130
130
|
| 정제된 scrollback 읽기 | `lterm logs api --start=-80 --end=-1` | `capture` |
|
|
131
|
+
| 정제된 scrollback 위에 입력 컴포저 열기 | `lterm compose api` | `mobile` |
|
|
131
132
|
| 세션 출력 또는 종료 대기 | `lterm wait api --contains READY --timeout 30s --json` | 없음 |
|
|
132
133
|
| 세션을 감시하고 완료 시 알림 | `lterm watch api --exit --notify` | 없음 |
|
|
133
134
|
| PTY에 입력 쓰기 | `lterm input api 'echo hello' --enter` | `send` |
|
|
@@ -229,12 +230,16 @@ lterm sessions --children
|
|
|
229
230
|
lterm sessions --all
|
|
230
231
|
lterm processes api --orphans
|
|
231
232
|
lterm logs api --start=-80 --end=-1
|
|
233
|
+
lterm compose api
|
|
232
234
|
lterm wait api --contains READY --timeout 30s --json
|
|
233
235
|
lterm watch api --exit --notify
|
|
234
236
|
lterm input api 'echo hello' --enter
|
|
235
237
|
```
|
|
236
238
|
|
|
237
|
-
위의 일반 alias는 tmux 용어를 몰라도 agent terminal을 일상적으로 다루기 쉽게 하기 위한 표면입니다. `sessions`는 영속 작업을 나열하고, `processes`는 child process tree를 확인하고, `logs`는 정제된 scrollback을 읽고, `wait` / `watch`는 marker 또는 종료 조건을 script와 agent가 관측할 수 있게
|
|
239
|
+
위의 일반 alias는 tmux 용어를 몰라도 agent terminal을 일상적으로 다루기 쉽게 하기 위한 표면입니다. `sessions`는 영속 작업을 나열하고, `processes`는 child process tree를 확인하고, `logs`는 정제된 scrollback을 읽고, `compose`는 정제된 scrollback과 하단 고정 prompt로 텍스트를 commit할 수 있게 하며, `wait` / `watch`는 marker 또는 종료 조건을 script와 agent가 관측할 수 있게 하고, `input`은 대상 PTY에 텍스트를 씁니다. `mobile`은 `compose`의 visible alias입니다. 호환 이름 `list` / `ls`, `ps`, `capture`, `send`는 스크립트와 기존 사용 습관에서도 계속 사용할 수 있습니다.
|
|
240
|
+
|
|
241
|
+
자동화와 테스트에는 `lterm compose api --once --message 'hello'`를 사용하면 한 번의 정제된 capture/send 사이클을 실행합니다. `logs`와 같은 session-or-pane target 모델에서 마지막 `--tail` 정제 라인(기본값: 80)을 capture한 뒤, 기본으로 Enter(`\r`)를 붙여 `lterm input --enter`와 맞추며, `--no-enter`를 추가하면 message byte만 정확히 보냅니다. `compose` / `mobile`은 attach client가 아니며 attached-client 수나 PTY geometry를 바꾸지 않습니다.
|
|
242
|
+
Interactive compose 화면은 `--refresh`(기본값: 500ms), 로컬 입력, 터미널 resize 이벤트마다 갱신됩니다. Enter를 누르면 현재 입력 buffer를 commit하고(빈 buffer도 commit됨), 위 one-shot 규칙처럼 기본으로 `\r`을 덧붙입니다. Ctrl-C, Ctrl-D, Esc는 PTY로 전달하지 않고 로컬 composer를 종료합니다.
|
|
238
243
|
|
|
239
244
|
**세션 종료:**
|
|
240
245
|
|
|
@@ -398,7 +403,7 @@ lterm ssh devbox main -- -p 2222 -i ~/.ssh/id_ed25519
|
|
|
398
403
|
|
|
399
404
|
**터미널 출력은 그대로 전달됩니다.** `lterm resume`(호환 이름: `lterm attach`)은 full-screen 터미널 프로그램과 cmux/OSC 알림이 정상 동작하도록 PTY byte를 그대로 통과시킵니다. 로컬 상태 바는 클라이언트 쪽 표시 요소일 뿐이며, 완전한 raw 모드 터미널이 필요하면 `--no-status`를 사용하세요. 신뢰할 수 없는 child 프로그램은 tmux/screen에서와 마찬가지로 attach된 터미널에 escape sequence를 출력할 수 있습니다. **`lterm`을 escape-sequence sanitizer나 sandbox로 사용하지 마세요.**
|
|
400
405
|
|
|
401
|
-
**Capture 출력은 사람/AI가 읽기 쉽도록 정제됩니다.** `lterm logs`(호환 이름: `lterm capture`)
|
|
406
|
+
**Capture 출력은 사람/AI가 읽기 쉽도록 정제됩니다.** `lterm logs`(호환 이름: `lterm capture`), `lterm compose`(alias: `lterm mobile`), `tmux capture-pane`은 captured scrollback을 출력할 때 일반적인 터미널 제어 시퀀스를 제거합니다. `compose`는 attach가 아닌 view에서 기존 input/send 경로로 텍스트를 commit하며, raw attached PTY stream을 변환하지 않습니다.
|
|
402
407
|
|
|
403
408
|
**프로세스 가시성.** `lterm processes [session]`(호환 이름: `lterm ps [session]`)은 process-group id와 함께 각 세션 child 아래의 process tree를 보여 줍니다. `--orphans`를 추가하면 기록된 session root의 descendant가 아니지만 같은 process group에 남아 있는 row도 함께 보여 주므로, Codex/OMX/MCP subprocess가 누적되어 메모리 누수처럼 커지기 전에 확인할 수 있습니다. 시스템 `ps`는 절대 경로로 호출하며, 형식이 잘못된 process row는 추측하지 않고 건너뜁니다.
|
|
404
409
|
|
package/README.md
CHANGED
|
@@ -75,7 +75,7 @@ For the 1.0 command/output stability boundary, see the
|
|
|
75
75
|
With Cargo from GitHub (use the latest tag from the Releases page):
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
-
cargo install --git https://github.com/ictechgy/light_terminal --tag v1.0.
|
|
78
|
+
cargo install --git https://github.com/ictechgy/light_terminal --tag v1.0.1
|
|
79
79
|
```
|
|
80
80
|
|
|
81
81
|
From this checkout, use Rust 1.85 or newer:
|
|
@@ -133,6 +133,7 @@ lterm -a api
|
|
|
133
133
|
| Rename a session | `lterm rename api api-renamed` | None |
|
|
134
134
|
| Set a session status theme | `lterm status-theme api green` | `theme` |
|
|
135
135
|
| Read sanitized scrollback | `lterm logs api --start=-80 --end=-1` | `capture` |
|
|
136
|
+
| Open a sanitized scrollback composer for input | `lterm compose api` | `mobile` |
|
|
136
137
|
| Wait for session output or exit | `lterm wait api --contains READY --timeout 30s --json` | None |
|
|
137
138
|
| Watch a session and notify on completion | `lterm watch api --exit --notify` | None |
|
|
138
139
|
| Write input to a PTY | `lterm input api 'echo hello' --enter` | `send` |
|
|
@@ -233,12 +234,16 @@ lterm sessions --children
|
|
|
233
234
|
lterm sessions --all
|
|
234
235
|
lterm processes api --orphans
|
|
235
236
|
lterm logs api --start=-80 --end=-1
|
|
237
|
+
lterm compose api
|
|
236
238
|
lterm wait api --contains READY --timeout 30s --json
|
|
237
239
|
lterm watch api --exit --notify
|
|
238
240
|
lterm input api 'echo hello' --enter
|
|
239
241
|
```
|
|
240
242
|
|
|
241
|
-
The generic aliases above are meant for day-to-day agent-terminal use: `sessions` lists persistent work, `processes` inspects child process trees, `logs` reads sanitized scrollback, `wait` / `watch` make marker-or-exit conditions observable for scripts and agents, and `input` writes text to the target PTY.
|
|
243
|
+
The generic aliases above are meant for day-to-day agent-terminal use: `sessions` lists persistent work, `processes` inspects child process trees, `logs` reads sanitized scrollback, `compose` shows sanitized scrollback with a fixed bottom prompt for committing text, `wait` / `watch` make marker-or-exit conditions observable for scripts and agents, and `input` writes text to the target PTY. `mobile` is a visible alias for `compose`; the compatibility names `list` / `ls`, `ps`, `capture`, and `send` remain available for scripts and muscle memory.
|
|
244
|
+
|
|
245
|
+
For automation and tests, `lterm compose api --once --message 'hello'` performs one sanitized capture/send cycle. It captures the last `--tail` sanitized lines (default: 80) from the same session-or-pane target model as `logs`, then appends Enter (`\r`) by default, matching `lterm input --enter`; add `--no-enter` to send the exact message bytes. `compose` / `mobile` is not an attach client and does not change attached-client counts or PTY geometry.
|
|
246
|
+
In interactive compose, the view refreshes on `--refresh` (default: 500ms) and after local input or resize events. Pressing Enter commits the current input buffer (empty buffers are committed too) and appends `\r` by default, matching the one-shot rule above. Ctrl-C, Ctrl-D, and Esc exit the local composer instead of forwarding to the PTY.
|
|
242
247
|
|
|
243
248
|
**Stop a session:**
|
|
244
249
|
|
|
@@ -398,7 +403,7 @@ the old code until they are stopped.
|
|
|
398
403
|
|
|
399
404
|
**Terminal output is forwarded as-is.** `lterm resume` (compatibility name: `lterm attach`) passes PTY bytes through so full-screen terminal programs and cmux/OSC notifications keep working. The local status bar is purely a client-side decoration; use `--no-status` for a fully raw terminal surface. Untrusted child programs can still emit terminal escape sequences to an attached terminal — exactly as under tmux/screen. **Do not use `lterm` as an escape-sequence sanitizer or sandbox.**
|
|
400
405
|
|
|
401
|
-
**Capture output is sanitized for human/AI consumption.** `lterm logs` (compatibility name: `lterm capture`) and `tmux capture-pane` strip common terminal control sequences before printing scrollback.
|
|
406
|
+
**Capture output is sanitized for human/AI consumption.** `lterm logs` (compatibility name: `lterm capture`), `lterm compose` (alias: `lterm mobile`), and `tmux capture-pane` strip common terminal control sequences before printing scrollback. `compose` is a non-attached view that commits text through the existing input/send path; it does not transform raw attached PTY streams.
|
|
402
407
|
|
|
403
408
|
**Process visibility.** `lterm processes [session]` (or compatibility name `lterm ps [session]`) shows the process tree rooted at each session child, including process-group ids. Add `--orphans` to also include same-process-group rows that are no longer descendants of the recorded session root, so long-running Codex/OMX/MCP subprocess buildup stays visible before it becomes a memory-leak surprise. The system `ps` is invoked by absolute path, and malformed process rows are skipped rather than guessed at.
|
|
404
409
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ictechgy/lterm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Lightweight tmux-compatible terminal session daemon with cmux-friendly notifications.",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/ictechgy/light_terminal#readme",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"LICENSE-MIT"
|
|
31
31
|
],
|
|
32
32
|
"optionalDependencies": {
|
|
33
|
-
"lterm-darwin-arm64": "1.0.
|
|
34
|
-
"lterm-darwin-x64": "1.0.
|
|
35
|
-
"lterm-linux-arm64": "1.0.
|
|
36
|
-
"lterm-linux-x64": "1.0.
|
|
33
|
+
"lterm-darwin-arm64": "1.0.1",
|
|
34
|
+
"lterm-darwin-x64": "1.0.1",
|
|
35
|
+
"lterm-linux-arm64": "1.0.1",
|
|
36
|
+
"lterm-linux-x64": "1.0.1"
|
|
37
37
|
},
|
|
38
38
|
"engines": {
|
|
39
39
|
"node": ">=16"
|