# Milestone: 원격 터미널/CLI 터널링 POC (2차)

## 위치

- Roadmap: [ROADMAP.md](../../../ROADMAP.md)
- Phase: [PHASE.md](../PHASE.md)

## 목표

Agent를 설치하기 어려운 host/device를 위해 원격 터미널 브리지 POC를 만든다.
Edge는 terminal session broker가 되고, 대상에 도달 가능한 Node가 SSH/WinRM/serial/local shell 같은 terminal transport를 실행해 relay한다.
특정 Node의 CLI agent를 Socket 경유로 다른 원격지에 연결하는 터널링 제어는 MVP 이후 2차 후보로 함께 검토한다.

## 상태

[보류]

## 구현 잠금

- 상태: 잠금
- 결정 필요: 아래 체크리스트
  - [ ] POC에서 우선 지원할 terminal transport를 local shell만으로 둘지, SSH/WinRM/serial 후보 중 일부를 포함할지 결정한다.
    - [ ] target allowlist, credential 주입, session audit의 최소 보안 기준을 결정한다.
  - [ ] 운영 CLI, Client, Control Plane 중 어느 입력 표면을 POC에 포함할지 결정한다.

## 범위

- CLI persistent terminal profile 기반 remote shell POC
- 특정 Node의 CLI agent를 Socket 기반으로 다른 원격지에 연결하는 터널링 후보
- terminal session open/input/output/resize/signal/close event 모델 초안
- Edge가 session broker, Node가 terminal transport 실행자라는 책임 경계 검증
- 대상 접근 경로와 credential이 있는 경우만 제어할 수 있다는 전제 명시
- target allowlist, timeout, 동시 실행 제한, session audit 요구사항 초안

## 기능

### Epic: [bridge-boundary] Remote Terminal Bridge Boundary

- [ ] [agentless-boundary] 원격 터미널 브리지는 완전 agentless 제어가 아니라 target device에 IOP agent를 설치하지 않는 운영 경로로 정의한다.
- [ ] [edge-broker] Control Plane/Client/운영 CLI는 Edge에 terminal session을 요청하고, Node에 직접 붙지 않는다.
- [ ] [node-transport] Node terminal transport는 adapter/profile 또는 별도 adapter 경계에서 실행된다.
- [ ] [terminal-events] stdin/stdout/stderr, resize, signal, close lifecycle과 adapter execution stream 경계를 IOP native protocol에서 표현한다. 검증: 허용된 target profile로 Edge remote shell session을 열고 입출력 relay가 되는지 확인한다.
- [ ] [security-boundary] target allowlist, credential, timeout, audit 보안 전제를 milestone 산출물에 포함한다.
- [ ] [surface-boundary] OpenAI-compatible API나 A2A task payload에 terminal 제어 기능을 억지로 싣지 않는다.

## 완료 리뷰

- 상태: 없음
- 요청일: 없음
- 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증이 아직 충족되지 않았다.
- 리뷰 필요:
  - [ ] 사용자가 완료 결과를 확인했다
  - [ ] archive 이동을 승인했다
- 리뷰 코멘트: 없음

## 범위 제외

- 접근 경로가 없는 target device의 제어 보장
- Control Plane이 Node 또는 target terminal에 직접 연결
- 모든 terminal transport 구현을 한 번에 지원
- 정책/audit 상세 schema 확정

## 작업 컨텍스트

- 관련 경로: `apps/edge`, `apps/node`, [README.md](../../../../README.md), [edge-smoke.md](../../../../agent-test/local/edge-smoke.md), [node-smoke.md](../../../../agent-test/local/node-smoke.md)
- 표준선(선택): Control Plane/Client/운영 CLI는 Edge에 terminal session을 요청하고, Edge가 Node terminal transport로 중계한다. OpenAI-compatible/A2A payload에 terminal 제어를 싣지 않는다.
- 선행 작업: Edge-Node 실행 스켈레톤, CLI Automation Runtime 안정화
- 후속 작업: 정책, 이력, 감사; Control Plane과 Client의 terminal session 운영 표면
- 보류 사유: 2026-06-14 사용자 지시에 따라 원격 터미널 지원은 현재 활성 작업에서 제외하고 로드맵 후순위로 미룬다. provider 상태/capacity queue와 추가 provider 검증 등 운영 품질 확장을 먼저 진행한다.
- 2차 표기: Outline의 특정 Node CLI agent 원격 터널링 요구를 이 Milestone의 후속 후보로 묶되, MVP 구현 범위에서는 제외한다.
- 확인 필요: bootstrap/enrollment 대상과 remote terminal bridge 대상의 구분. 설치 가능한 대상은 bootstrap/enrollment 경로로, 설치가 어렵거나 일회성 유지보수 대상은 remote terminal bridge 경로로 구분한다.
