chore: update project documentation, roadmap, and rules
This commit is contained in:
parent
3cf542a543
commit
a6f932eaa7
12 changed files with 151 additions and 151 deletions
|
|
@ -228,10 +228,10 @@ NomadCode
|
|||
|
||||
`apps/web`은 IOP 전체 Web Portal이며, `apps/control-plane`은 Go 기반 운영 제어 서버다. 주요 통신은 edge-node에서 사용 중인 protobuf-socket을 IOP Wire Protocol 기준으로 Portal-Control Plane, Control Plane-Edge, Edge-Node 방향으로 확장한다. `net/http`는 health/readiness/bootstrap 같은 보조 endpoint 용도로 유지한다.
|
||||
|
||||
## Roadmap
|
||||
## 로드맵
|
||||
|
||||
제품 방향, Phase, Milestone, 우선순위의 canonical source of truth는 `agent-ops/roadmap/ROADMAP.md`다.
|
||||
일반 작업에서 AI가 읽어야 하는 현재 작업 기준은 `agent-ops/roadmap/current.md`가 가리키는 Default Milestone 또는 요청에 맞는 Active Milestone 문서다.
|
||||
제품 방향, 단계, 마일스톤, 우선순위의 단일 기준 문서는 `agent-ops/roadmap/ROADMAP.md`다.
|
||||
일반 작업에서 AI가 읽어야 하는 현재 작업 기준은 `agent-ops/roadmap/current.md`가 가리키는 기본 마일스톤 또는 요청에 맞는 활성 마일스톤 문서다.
|
||||
|
||||
로드맵의 큰 축은 Edge-Node 실행 기반, Edge input surface, CLI Automation runtime, remote terminal bridge, agent bootstrap/OTO enrollment, Control Plane/Portal, policy/history/audit, multi-edge operations로 관리한다.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,73 +1,73 @@
|
|||
# IOP Roadmap
|
||||
# IOP 로드맵
|
||||
|
||||
이 문서는 IOP 제품 방향과 Phase/Milestone의 canonical source of truth다.
|
||||
README와 `docs/**`는 제품 소개, 아키텍처 원칙, 운영 절차를 설명하고, 미래 계획과 우선순위는 이 문서와 각 Milestone 문서에서 관리한다.
|
||||
이 문서는 IOP 제품 방향과 단계/마일스톤의 단일 기준 문서다.
|
||||
README와 `docs/**`는 제품 소개, 아키텍처 원칙, 운영 절차를 설명하고, 미래 계획과 우선순위는 이 문서와 각 마일스톤 문서에서 관리한다.
|
||||
|
||||
## Overall Goal
|
||||
## 전체 목표
|
||||
|
||||
IOP(Inference Operations Platform)는 Control Plane - Edge - Node 계층 구조를 기반으로 모델 서빙과 CLI Agent/Automation 실행을 함께 운영하는 실행 오케스트레이션 플랫폼을 만든다.
|
||||
내부 실행 모델은 `adapter + target`을 기준으로 하며, Edge가 로컬 실행 그룹의 상태와 라우팅을 소유하고 Control Plane은 Edge를 통해 시스템을 관찰하고 제어한다.
|
||||
|
||||
## Current Position
|
||||
## 현재 위치
|
||||
|
||||
- Active Phase: Phase 1. Edge-Node Execution Foundation
|
||||
- Default Milestone: M01 Edge-Node Execution Skeleton
|
||||
- Default Milestone File: `agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md`
|
||||
- Active Milestones:
|
||||
- M01 Edge-Node Execution Skeleton: `agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md`
|
||||
- M02 Edge Input Surfaces: `agent-ops/roadmap/milestones/M02-edge-input-surfaces.md`
|
||||
- 활성 단계: Phase 1. Edge-Node 실행 기반
|
||||
- 기본 마일스톤: M01 Edge-Node 실행 스켈레톤
|
||||
- 기본 마일스톤 문서: `agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md`
|
||||
- 활성 마일스톤:
|
||||
- M01 Edge-Node 실행 스켈레톤: `agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md`
|
||||
- M02 Edge 입력 표면: `agent-ops/roadmap/milestones/M02-edge-input-surfaces.md`
|
||||
|
||||
## Loading Policy
|
||||
## 로딩 정책
|
||||
|
||||
- 일반 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업에서는 `agent-ops/roadmap/current.md`를 먼저 읽는다.
|
||||
- 요청이 Default Milestone 범위에 맞으면 Default Milestone 문서를 같은 세션에서 1회 읽는다.
|
||||
- 요청이 Default Milestone과 맞지 않으면 `current.md`의 Active Milestones 목록에서 가장 관련 있는 Milestone 문서를 같은 세션에서 1회 읽는다.
|
||||
- Active Milestones에도 맞지 않으면 `agent-ops/roadmap/ROADMAP.md`의 Milestone 인덱스를 확인하고 사용자에게 진행/전환 여부를 확인한다.
|
||||
- `agent-ops/roadmap/ROADMAP.md`는 로드맵 생성/갱신, Phase 전환, Milestone 추가/수정 요청이 있을 때만 읽는다.
|
||||
- 작업 요청이 선택된 Milestone의 Goal 또는 Non-Goals와 충돌하면 구현 전에 사용자에게 알리고 방향을 확인한다.
|
||||
- 요청이 기본 마일스톤 범위에 맞으면 기본 마일스톤 문서를 같은 세션에서 1회 읽는다.
|
||||
- 요청이 기본 마일스톤과 맞지 않으면 `current.md`의 활성 마일스톤 목록에서 가장 관련 있는 마일스톤 문서를 같은 세션에서 1회 읽는다.
|
||||
- 활성 마일스톤에도 맞지 않으면 `agent-ops/roadmap/ROADMAP.md`의 마일스톤 인덱스를 확인하고 사용자에게 진행/전환 여부를 확인한다.
|
||||
- `agent-ops/roadmap/ROADMAP.md`는 로드맵 생성/갱신, Phase 전환, 마일스톤 추가/수정 요청이 있을 때만 읽는다.
|
||||
- 작업 요청이 선택된 마일스톤의 목표 또는 제외 범위와 충돌하면 구현 전에 사용자에게 알리고 방향을 확인한다.
|
||||
|
||||
## Status Semantics
|
||||
## 상태 의미
|
||||
|
||||
- `Planned`: 아직 본격 작업 기준으로 삼지 않는 예정 Milestone이다.
|
||||
- `Active`: 구현, 안정화, 문서 정리, 검증이 진행 중인 Milestone이다. 여러 Milestone이 동시에 `Active`일 수 있다.
|
||||
- `Done`: Success Criteria가 충족되어 완료된 Milestone이다.
|
||||
- `Paused`: 일시 중단된 Milestone이다.
|
||||
- `Dropped`: 현재 제품 방향에서 제외된 Milestone이다.
|
||||
- `Planned`: 아직 본격 작업 기준으로 삼지 않는 예정 마일스톤이다.
|
||||
- `Active`: 구현, 안정화, 문서 정리, 검증이 진행 중인 마일스톤이다. 여러 마일스톤이 동시에 `Active`일 수 있다.
|
||||
- `Done`: 성공 기준이 충족되어 완료된 마일스톤이다.
|
||||
- `Paused`: 일시 중단된 마일스톤이다.
|
||||
- `Dropped`: 현재 제품 방향에서 제외된 마일스톤이다.
|
||||
|
||||
`current.md`의 Default Milestone은 여러 `Active` Milestone 중 현재 세션의 기본 작업 초점이다.
|
||||
`current.md`의 기본 마일스톤은 여러 `Active` 마일스톤 중 현재 세션의 기본 작업 초점이다.
|
||||
|
||||
## Phase Overview
|
||||
## 단계 개요
|
||||
|
||||
### Phase 1. Edge-Node Execution Foundation
|
||||
### Phase 1. Edge-Node 실행 기반
|
||||
|
||||
Goal: Edge-Node 소켓 실행 경로, Node adapter execution, CLI session, 최소 외부 입력 표면을 안정화한다.
|
||||
목표: Edge-Node 소켓 실행 경로, Node adapter execution, CLI session, 최소 외부 입력 표면을 안정화한다.
|
||||
|
||||
| Milestone | Status | File |
|
||||
| 마일스톤 | 상태 | 문서 |
|
||||
|---|---|---|
|
||||
| M01 Edge-Node Execution Skeleton | Active | `milestones/M01-edge-node-execution-skeleton.md` |
|
||||
| M02 Edge Input Surfaces | Active | `milestones/M02-edge-input-surfaces.md` |
|
||||
| M01 Edge-Node 실행 스켈레톤 | Active | `milestones/M01-edge-node-execution-skeleton.md` |
|
||||
| M02 Edge 입력 표면 | Active | `milestones/M02-edge-input-surfaces.md` |
|
||||
|
||||
### Phase 2. Automation Runtime and Bridge Expansion
|
||||
### Phase 2. Automation Runtime과 Bridge 확장
|
||||
|
||||
Goal: Runtime과 Automation 실행 흐름을 공통화하고, agent 설치형/비설치형 대상 제어 경로를 분리해 확장한다.
|
||||
목표: Runtime과 Automation 실행 흐름을 공통화하고, agent 설치형/비설치형 대상 제어 경로를 분리해 확장한다.
|
||||
|
||||
| Milestone | Status | File |
|
||||
| 마일스톤 | 상태 | 문서 |
|
||||
|---|---|---|
|
||||
| M03 CLI Automation Runtime Stabilization | Planned | `milestones/M03-cli-automation-runtime-stabilization.md` |
|
||||
| M04 Remote Terminal Bridge POC | Planned | `milestones/M04-remote-terminal-bridge-poc.md` |
|
||||
| M05 Agent Bootstrap and OTO Enrollment | Planned | `milestones/M05-agent-bootstrap-oto-enrollment.md` |
|
||||
| M03 CLI Automation Runtime 안정화 | Planned | `milestones/M03-cli-automation-runtime-stabilization.md` |
|
||||
| M04 원격 터미널 브리지 POC | Planned | `milestones/M04-remote-terminal-bridge-poc.md` |
|
||||
| M05 Agent Bootstrap과 OTO 등록 | Planned | `milestones/M05-agent-bootstrap-oto-enrollment.md` |
|
||||
|
||||
### Phase 3. Control Plane and Portal Operations
|
||||
### Phase 3. Control Plane과 Portal 운영
|
||||
|
||||
Goal: 여러 Edge를 관찰하고 운영하는 중앙 제어면과 Portal을 구축한다.
|
||||
목표: 여러 Edge를 관찰하고 운영하는 중앙 제어면과 Portal을 구축한다.
|
||||
|
||||
| Milestone | Status | File |
|
||||
| 마일스톤 | 상태 | 문서 |
|
||||
|---|---|---|
|
||||
| M06 Control Plane and Portal | Planned | `milestones/M06-control-plane-portal.md` |
|
||||
| M07 Policy History Audit | Planned | `milestones/M07-policy-history-audit.md` |
|
||||
| M08 Multi-Edge Operations | Planned | `milestones/M08-multi-edge-operations.md` |
|
||||
| M06 Control Plane과 Portal | Planned | `milestones/M06-control-plane-portal.md` |
|
||||
| M07 정책, 이력, 감사 | Planned | `milestones/M07-policy-history-audit.md` |
|
||||
| M08 Multi-Edge 운영 | Planned | `milestones/M08-multi-edge-operations.md` |
|
||||
|
||||
## Cross-Cutting Principles
|
||||
## 공통 원칙
|
||||
|
||||
- 내부 실행 용어는 `adapter`, `target`, `execution`을 우선한다. `model`은 OpenAI-compatible 경계나 legacy compatibility에서만 사용한다.
|
||||
- Control Plane은 Node를 직접 연결하거나 직접 스케줄링하지 않는다. Edge가 로컬 Node registry와 런타임 상태의 원본을 가진다.
|
||||
|
|
@ -76,10 +76,10 @@ Goal: 여러 Edge를 관찰하고 운영하는 중앙 제어면과 Portal을 구
|
|||
- OpenAI-compatible API는 모델/chat completion 호환 입력 표면이고, A2A API는 외부 agent 작업 위임 입력 표면이다.
|
||||
- IOP native protocol은 Edge/Node 운영 제어, logical session, background run, command, lifecycle event, remote terminal session 같은 IOP 고유 기능을 다룬다.
|
||||
|
||||
## Roadmap Ownership
|
||||
## 로드맵 소유권
|
||||
|
||||
- 제품 방향, Phase, Milestone, 우선순위: `agent-ops/roadmap/ROADMAP.md`
|
||||
- 현재 작업 기준: `agent-ops/roadmap/current.md`와 요청에 맞는 Default/Active Milestone 문서
|
||||
- 제품 방향, 단계, 마일스톤, 우선순위: `agent-ops/roadmap/ROADMAP.md`
|
||||
- 현재 작업 기준: `agent-ops/roadmap/current.md`와 요청에 맞는 기본/활성 마일스톤 문서
|
||||
- 아키텍처 불변 원칙: `docs/architecture.md`
|
||||
- dev/field 배포 절차: `docs/deploy-dev.md`
|
||||
- 앱별 현재 구현과 사용법: `apps/*/README.md`
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
# Current Roadmap Context
|
||||
# 현재 로드맵 컨텍스트
|
||||
|
||||
- Active Phase: Phase 1. Edge-Node Execution Foundation
|
||||
- Default Milestone: M01 Edge-Node Execution Skeleton
|
||||
- Default Milestone File: agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md
|
||||
- 활성 단계: Phase 1. Edge-Node 실행 기반
|
||||
- 기본 마일스톤: M01 Edge-Node 실행 스켈레톤
|
||||
- 기본 마일스톤 문서: agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md
|
||||
|
||||
## Active Milestones
|
||||
## 활성 마일스톤
|
||||
|
||||
- M01 Edge-Node Execution Skeleton: agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md
|
||||
- M02 Edge Input Surfaces: agent-ops/roadmap/milestones/M02-edge-input-surfaces.md
|
||||
- M01 Edge-Node 실행 스켈레톤: agent-ops/roadmap/milestones/M01-edge-node-execution-skeleton.md
|
||||
- M02 Edge 입력 표면: agent-ops/roadmap/milestones/M02-edge-input-surfaces.md
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
# M01 Edge-Node Execution Skeleton
|
||||
# M01 Edge-Node 실행 스켈레톤
|
||||
|
||||
## Goal
|
||||
## 목표
|
||||
|
||||
Edge와 Node 사이의 기본 실행 파이프라인을 안정화한다.
|
||||
Node 등록, 설정 전달, adapter execution, run event streaming, command request/response, field smoke 기준을 한 흐름으로 검증할 수 있게 만든다.
|
||||
|
||||
## Phase
|
||||
## 단계
|
||||
|
||||
Phase 1. Edge-Node Execution Foundation
|
||||
Phase 1. Edge-Node 실행 기반
|
||||
|
||||
## Status
|
||||
## 상태
|
||||
|
||||
Active
|
||||
|
||||
## Scope
|
||||
## 범위
|
||||
|
||||
- Edge-Node TCP/protobuf 연결과 RegisterRequest/RegisterResponse 흐름
|
||||
- token 기반 node 등록과 NodeConfigPayload 전달
|
||||
|
|
@ -22,7 +22,7 @@ Active
|
|||
- CLI adapter 기반 one-shot/persistent session 실행 검증
|
||||
- edge-local ops console과 `bin/edge.sh`, `bin/node.sh` 기반 field smoke
|
||||
|
||||
## Required Features
|
||||
## 필수 기능
|
||||
|
||||
- NodeStore와 Registry가 사전 등록 node와 연결 node를 구분해 관리한다.
|
||||
- Edge가 node 설정을 mapper를 통해 NodeConfigPayload로 전달한다.
|
||||
|
|
@ -31,7 +31,7 @@ Active
|
|||
- Edge console이 `/nodes`, `/node`, `/session`, `/background`, `/terminate-session`, `/status`, `/capabilities`, `/sessions`, `/transport`를 통해 기본 진단을 제공한다.
|
||||
- Field smoke에서 메시지 2회 왕복, start/delta/complete event, command 응답을 확인할 수 있다.
|
||||
|
||||
## Success Criteria
|
||||
## 성공 기준
|
||||
|
||||
- `bin/edge.sh`와 `bin/node.sh`를 각각 실행해 node 등록을 확인할 수 있다.
|
||||
- Edge console에서 두 번의 메시지 실행이 각각 start, non-empty message/delta, complete event를 표시한다.
|
||||
|
|
@ -39,16 +39,16 @@ Active
|
|||
- persistent profile에서 run cancel과 session terminate의 의미가 구분된다.
|
||||
- 변경 범위에 맞는 Go 테스트 또는 field smoke 기준이 문서와 일치한다.
|
||||
|
||||
## Non-Goals
|
||||
## 제외 범위
|
||||
|
||||
- Control Plane이 Node를 직접 연결하거나 직접 스케줄링하는 구조
|
||||
- Edge 내부에 Node adapter 실행 로직을 복제하는 구조
|
||||
- gRPC 또는 WebSocket을 Edge-Node 기본 transport로 바꾸는 작업
|
||||
- 상세 DB schema, audit model, policy engine 확정
|
||||
|
||||
## Context for Work
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 앱: `apps/edge`, `apps/node`
|
||||
- 관련 문서: `apps/edge/README.md`, `apps/node/README.md`, `docs/deploy-dev.md`
|
||||
- 관련 domain rules: `agent-ops/rules/project/domain/edge/rules.md`, `agent-ops/rules/project/domain/node/rules.md`
|
||||
- 관련 domain rule: `agent-ops/rules/project/domain/edge/rules.md`, `agent-ops/rules/project/domain/node/rules.md`
|
||||
- 사용자 실행 파이프라인을 바꾸면 `agent-ops/rules/project/domain/testing/rules.md`의 검증 기준을 따른다.
|
||||
|
|
|
|||
|
|
@ -1,18 +1,18 @@
|
|||
# M02 Edge Input Surfaces
|
||||
# M02 Edge 입력 표면
|
||||
|
||||
## Goal
|
||||
## 목표
|
||||
|
||||
Edge의 외부 입력 표면을 OpenAI-compatible API와 A2A JSON-RPC API로 분리해 관리하고, 두 입력 모두 내부 `adapter + target` 실행 경로로 수렴시킨다.
|
||||
|
||||
## Phase
|
||||
## 단계
|
||||
|
||||
Phase 1. Edge-Node Execution Foundation
|
||||
Phase 1. Edge-Node 실행 기반
|
||||
|
||||
## Status
|
||||
## 상태
|
||||
|
||||
Active
|
||||
|
||||
## Scope
|
||||
## 범위
|
||||
|
||||
- OpenAI-compatible `/v1/models`, `/v1/chat/completions` 표면
|
||||
- A2A `message/send`, `tasks/get`, `tasks/cancel` 최소 표면
|
||||
|
|
@ -21,7 +21,7 @@ Active
|
|||
- streaming/non-streaming 응답과 background task 상태 저장 기준 정리
|
||||
- 현재 구현된 OpenAI-compatible/A2A baseline을 기준으로 설정, lifecycle, task 상태, 문서 경계를 안정화
|
||||
|
||||
## Required Features
|
||||
## 필수 기능
|
||||
|
||||
- OpenAI-compatible API는 모델/chat completion 호환 입력 표면으로 유지한다.
|
||||
- A2A API는 외부 agent의 작업 위임과 task 상태 공유 표면으로 유지한다.
|
||||
|
|
@ -29,20 +29,20 @@ Active
|
|||
- OpenAI-compatible API에 IOP 고유 운영 제어 기능을 억지로 싣지 않는다.
|
||||
- A2A API를 Control Plane 운영 제어 프로토콜로 확장하지 않는다.
|
||||
|
||||
## Success Criteria
|
||||
## 성공 기준
|
||||
|
||||
- 외부 OpenAI-compatible 요청이 Edge 내부에서 명시적인 adapter/target 실행으로 변환된다.
|
||||
- A2A `message/send`, `tasks/get`, `tasks/cancel`이 task lifecycle과 node cancel 흐름을 일관되게 표현한다.
|
||||
- 입력 표면별 설정과 lifecycle이 중복 없이 관리된다.
|
||||
- 앱별 README는 현재 사용법을 설명하고, 미래 우선순위는 roadmap을 참조한다.
|
||||
|
||||
## Non-Goals
|
||||
## 제외 범위
|
||||
|
||||
- OpenAI-compatible API를 IOP native 운영 제어 프로토콜로 확장
|
||||
- A2A API를 fleet-wide scheduling 또는 Control Plane state ownership 표면으로 확장
|
||||
- vendor-specific extension으로 node 선택, terminal session, lifecycle event를 표현
|
||||
|
||||
## Context for Work
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 앱: `apps/edge`
|
||||
- 관련 문서: `apps/edge/README.md`
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
# M03 CLI Automation Runtime Stabilization
|
||||
# M03 CLI Automation Runtime 안정화
|
||||
|
||||
## Goal
|
||||
## 목표
|
||||
|
||||
CLI Agent와 도구 실행을 안정적인 Automation runtime으로 정리한다.
|
||||
현재 구현된 CLI adapter baseline을 바탕으로 one-shot, persistent terminal, opencode SSE, codex exec 같은 실행 모드를 같은 adapter execution 모델 안에서 안정화한다.
|
||||
|
||||
## Phase
|
||||
## 단계
|
||||
|
||||
Phase 2. Automation Runtime and Bridge Expansion
|
||||
Phase 2. Automation Runtime과 Bridge 확장
|
||||
|
||||
## Status
|
||||
## 상태
|
||||
|
||||
Planned
|
||||
|
||||
## Scope
|
||||
## 범위
|
||||
|
||||
- CLI profile 설정과 output format 처리 안정화
|
||||
- persistent logical session lifecycle 관리
|
||||
|
|
@ -22,26 +22,26 @@ Planned
|
|||
- Node local execution history와 Edge event aggregation 경계 정리
|
||||
- 이미 동작하는 CLI adapter 기능을 재구현하지 않고 hardening, 경계 정리, 검증 기준 보강에 집중
|
||||
|
||||
## Required Features
|
||||
## 필수 기능
|
||||
|
||||
- CLI adapter는 profile별 실행 모드를 `node.Node` 분기 없이 adapter 내부에서 처리한다.
|
||||
- output format별 파싱은 `lineEmitter` 또는 모드별 구현으로 분리한다.
|
||||
- persistent terminal profile은 idle timeout, completion marker, cancel drain 기준을 명확히 가진다.
|
||||
- `NodeCommandRequest` 경로는 실행 요청과 분리된 조회/제어 명령으로 유지한다.
|
||||
|
||||
## Success Criteria
|
||||
## 성공 기준
|
||||
|
||||
- 주요 CLI profile이 동일한 `RunRequest`/`RunEvent` 흐름으로 실행된다.
|
||||
- session list, usage status, transport status가 운영자가 이해할 수 있는 응답을 제공한다.
|
||||
- CLI adapter 변경 시 대상 패키지 테스트와 field smoke 기준이 함께 맞는다.
|
||||
|
||||
## Non-Goals
|
||||
## 제외 범위
|
||||
|
||||
- 모든 외부 자동화 도구를 `iop-node` 하위 프로세스로 흡수
|
||||
- OTO 같은 specialized domain agent를 CLI adapter profile로 대체
|
||||
- CLI adapter 내부에 Control Plane 책임 추가
|
||||
|
||||
## Context for Work
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 앱: `apps/node`
|
||||
- 관련 패키지: `apps/node/internal/adapters/cli`, `apps/node/internal/runtime`, `apps/node/internal/node`
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
# M04 Remote Terminal Bridge POC
|
||||
# M04 원격 터미널 브리지 POC
|
||||
|
||||
## Goal
|
||||
## 목표
|
||||
|
||||
Agent를 설치하기 어려운 host/device를 위해 remote terminal bridge POC를 만든다.
|
||||
Agent를 설치하기 어려운 host/device를 위해 원격 터미널 브리지 POC를 만든다.
|
||||
Edge는 terminal session broker가 되고, 대상에 도달 가능한 Node가 SSH/WinRM/serial/local shell 같은 terminal transport를 실행해 relay한다.
|
||||
|
||||
## Phase
|
||||
## 단계
|
||||
|
||||
Phase 2. Automation Runtime and Bridge Expansion
|
||||
Phase 2. Automation Runtime과 Bridge 확장
|
||||
|
||||
## Status
|
||||
## 상태
|
||||
|
||||
Planned
|
||||
|
||||
## Scope
|
||||
## 범위
|
||||
|
||||
- CLI persistent terminal profile 기반 remote shell POC
|
||||
- terminal session open/input/output/resize/signal/close event 모델 초안
|
||||
|
|
@ -21,29 +21,29 @@ Planned
|
|||
- 대상 접근 경로와 credential이 있는 경우만 제어할 수 있다는 전제 명시
|
||||
- target allowlist, timeout, 동시 실행 제한, session audit 요구사항 초안
|
||||
|
||||
## Required Features
|
||||
## 필수 기능
|
||||
|
||||
- Remote terminal bridge는 완전 agentless 제어가 아니라 target device에 IOP agent를 설치하지 않는 운영 경로로 정의한다.
|
||||
- 원격 터미널 브리지는 완전 agentless 제어가 아니라 target device에 IOP agent를 설치하지 않는 운영 경로로 정의한다.
|
||||
- Control Plane/Portal/운영 CLI는 Edge에 terminal session을 요청하고, Node에 직접 붙지 않는다.
|
||||
- Node terminal transport는 adapter/profile 또는 별도 adapter 경계에서 실행된다.
|
||||
- stdin/stdout/stderr, resize, signal, close lifecycle을 IOP native protocol에서 표현하는 방향을 검증한다.
|
||||
|
||||
## Success Criteria
|
||||
## 성공 기준
|
||||
|
||||
- 허용된 target profile을 통해 Edge에서 remote shell session을 열고 입출력을 relay할 수 있다.
|
||||
- session lifecycle과 adapter execution stream의 경계가 문서화된다.
|
||||
- 보안 전제(target allowlist, credential, timeout, audit)가 milestone 산출물에 포함된다.
|
||||
- OpenAI-compatible API나 A2A task payload에 terminal 제어 기능을 억지로 싣지 않는다.
|
||||
|
||||
## Non-Goals
|
||||
## 제외 범위
|
||||
|
||||
- 접근 경로가 없는 target device의 제어 보장
|
||||
- Control Plane이 Node 또는 target terminal에 직접 연결
|
||||
- 모든 terminal transport 구현을 한 번에 지원
|
||||
- 정책/audit 상세 schema 확정
|
||||
|
||||
## Context for Work
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 앱: `apps/edge`, `apps/node`
|
||||
- 관련 문서: `docs/architecture.md`, `docs/deploy-dev.md`
|
||||
- 선행 Milestone: M01, M03
|
||||
- 선행 마일스톤: M01, M03
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
# M05 Agent Bootstrap and OTO Enrollment
|
||||
# M05 Agent Bootstrap과 OTO 등록
|
||||
|
||||
## Goal
|
||||
## 목표
|
||||
|
||||
Edge가 specialized domain agent를 생성하고 bootstrap command를 발급해 대상 머신에서 agent 설치와 등록을 완료하는 enrollment 흐름을 설계한다.
|
||||
OTO는 build/deploy domain agent의 대표 후보로 둔다.
|
||||
|
||||
## Phase
|
||||
## 단계
|
||||
|
||||
Phase 2. Automation Runtime and Bridge Expansion
|
||||
Phase 2. Automation Runtime과 Bridge 확장
|
||||
|
||||
## Status
|
||||
## 상태
|
||||
|
||||
Planned
|
||||
|
||||
## Scope
|
||||
## 범위
|
||||
|
||||
- Edge agent registry를 generic node와 specialized domain agent를 함께 다룰 수 있는 모델로 확장
|
||||
- agent type별 bootstrap command 발급 표면 설계
|
||||
|
|
@ -21,27 +21,27 @@ Planned
|
|||
- 등록 후 장기 credential 재발급 흐름
|
||||
- OTO agent의 build run, cancel, status, capability, artifact, log event 메시지 경계
|
||||
|
||||
## Required Features
|
||||
## 필수 기능
|
||||
|
||||
- OTO agent는 `iop-node` 하위 프로세스가 아니라 Edge에 직접 outbound 연결하는 specialized domain agent로 둔다.
|
||||
- Agent를 설치할 수 있는 대상은 bootstrap/enrollment를 우선한다.
|
||||
- Agent 설치가 어렵거나 일회성 유지보수 대상이면 remote terminal bridge 경로와 구분한다.
|
||||
- HTTP local/insecure bootstrap 모드는 명시 선택과 추가 검증 조건을 요구한다.
|
||||
|
||||
## Success Criteria
|
||||
## 성공 기준
|
||||
|
||||
- Edge가 agent 생성과 bootstrap command 발급 상태를 표현할 수 있다.
|
||||
- bootstrap command 실행 후 agent config/service 등록과 Edge outbound enrollment 흐름이 문서화된다.
|
||||
- OTO agent와 generic Node의 책임 경계가 registry와 protocol 수준에서 구분된다.
|
||||
|
||||
## Non-Goals
|
||||
## 제외 범위
|
||||
|
||||
- OTO 구현을 `apps/node` adapter로 흡수
|
||||
- Control Plane이 Node나 OTO agent를 직접 스케줄링
|
||||
- bootstrap 보안 검증을 생략한 insecure 기본값
|
||||
|
||||
## Context for Work
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 앱: `apps/edge`, 향후 OTO agent repository
|
||||
- 관련 문서: `docs/deploy-dev.md`, `docs/architecture.md`
|
||||
- 선행 Milestone: M01, M02
|
||||
- 선행 마일스톤: M01, M02
|
||||
|
|
|
|||
|
|
@ -1,18 +1,18 @@
|
|||
# M06 Control Plane and Portal
|
||||
# M06 Control Plane과 Portal
|
||||
|
||||
## Goal
|
||||
## 목표
|
||||
|
||||
여러 Edge를 연결하고 관찰하며 Edge 설정 변경, 명령 전달, 이벤트 수신을 담당하는 Control Plane과 Web Portal 운영면을 구축한다.
|
||||
|
||||
## Phase
|
||||
## 단계
|
||||
|
||||
Phase 3. Control Plane and Portal Operations
|
||||
Phase 3. Control Plane과 Portal 운영
|
||||
|
||||
## Status
|
||||
## 상태
|
||||
|
||||
Planned
|
||||
|
||||
## Scope
|
||||
## 범위
|
||||
|
||||
- Control Plane Go server의 Edge connection 관리
|
||||
- Portal-Control Plane, Control Plane-Edge IOP Wire Protocol 확장
|
||||
|
|
@ -21,27 +21,27 @@ Planned
|
|||
- Edge agent 생성과 bootstrap command 발급 상태 조회/관리
|
||||
- remote terminal bridge session 생성/조회/권한 확인 표면
|
||||
|
||||
## Required Features
|
||||
## 필수 기능
|
||||
|
||||
- Control Plane은 Node를 직접 연결하거나 직접 스케줄링하지 않는다.
|
||||
- Portal은 Control Plane을 통해 Edge 운영 상태를 조회한다.
|
||||
- 브라우저 직접 TCP가 어려운 구간은 Control Plane server-side bridge를 둔다.
|
||||
- `net/http`는 health/readiness/bootstrap 같은 보조 endpoint 용도로 유지한다.
|
||||
|
||||
## Success Criteria
|
||||
## 성공 기준
|
||||
|
||||
- Control Plane이 하나 이상의 Edge 연결 상태를 조회할 수 있다.
|
||||
- Portal이 Edge/Node/agent 상태를 사용자에게 보여줄 수 있다.
|
||||
- Edge 명령 전달과 이벤트 수신 흐름이 IOP Wire Protocol 기준으로 문서화된다.
|
||||
- Control Plane과 Web의 배포/검증 절차가 `docs/deploy-dev.md`와 일치한다.
|
||||
|
||||
## Non-Goals
|
||||
## 제외 범위
|
||||
|
||||
- Control Plane을 Kubernetes식 중앙 스케줄러로 만드는 작업
|
||||
- Edge 내부 DB를 Control Plane DB로 대체
|
||||
- 모든 런타임 상태를 Control Plane 단일 원본으로 만드는 작업
|
||||
|
||||
## Context for Work
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 앱: `apps/control-plane`, `apps/web`
|
||||
- 관련 문서: `apps/control-plane/README.md`, `apps/web/README.md`, `docs/deploy-dev.md`
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
# M07 Policy History Audit
|
||||
# M07 정책, 이력, 감사
|
||||
|
||||
## Goal
|
||||
## 목표
|
||||
|
||||
권한, 정책, 실행 이력, 감사 로그를 제품 운영에 필요한 수준으로 확장한다.
|
||||
특히 remote terminal bridge와 agent bootstrap은 보안/감사 요구사항을 필수 전제로 둔다.
|
||||
특히 원격 터미널 브리지와 agent bootstrap은 보안/감사 요구사항을 필수 전제로 둔다.
|
||||
|
||||
## Phase
|
||||
## 단계
|
||||
|
||||
Phase 3. Control Plane and Portal Operations
|
||||
Phase 3. Control Plane과 Portal 운영
|
||||
|
||||
## Status
|
||||
## 상태
|
||||
|
||||
Planned
|
||||
|
||||
## Scope
|
||||
## 범위
|
||||
|
||||
- permission model과 policy enforcement 지점 정리
|
||||
- Edge/Node 실행 이력과 Control Plane aggregation 경계
|
||||
|
|
@ -22,27 +22,27 @@ Planned
|
|||
- timeout, 동시 실행 제한, 입력/출력 기록 정책
|
||||
- metrics/event API와 운영 리포트 후보
|
||||
|
||||
## Required Features
|
||||
## 필수 기능
|
||||
|
||||
- Edge는 로컬 런타임 상태와 실행 이력의 원본을 유지한다.
|
||||
- Control Plane은 Edge 데이터를 조회/집계하되 Edge 내부 상태 소유권을 대체하지 않는다.
|
||||
- remote terminal bridge는 target allowlist, credential 관리, command/session audit를 필수로 요구한다.
|
||||
- 원격 터미널 브리지는 target allowlist, credential 관리, command/session audit를 필수로 요구한다.
|
||||
- policy/audit 상세 schema는 구현 단계에서 명확한 evidence와 함께 확정한다.
|
||||
|
||||
## Success Criteria
|
||||
## 성공 기준
|
||||
|
||||
- 실행 요청, command, terminal session, bootstrap/enrollment에 대한 audit event 초안이 있다.
|
||||
- 권한과 policy가 Edge/Control Plane/Node 경계 중 어디에서 적용되는지 문서화된다.
|
||||
- 기존 실행 파이프라인을 깨지 않고 history/audit 수집을 붙일 수 있다.
|
||||
|
||||
## Non-Goals
|
||||
## 제외 범위
|
||||
|
||||
- 상세 DB schema를 근거 없이 선확정
|
||||
- 모든 이벤트를 Control Plane 단일 저장소로 강제
|
||||
- 보안 전제가 없는 terminal bridge 또는 insecure bootstrap 기본값
|
||||
|
||||
## Context for Work
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 앱: `apps/edge`, `apps/node`, `apps/control-plane`
|
||||
- 관련 패키지: `packages/auth`, `packages/jobs`, 향후 policy/audit package
|
||||
- 선행 Milestone: M04, M05, M06
|
||||
- 선행 마일스톤: M04, M05, M06
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
# M08 Multi-Edge Operations
|
||||
# M08 Multi-Edge 운영
|
||||
|
||||
## Goal
|
||||
## 목표
|
||||
|
||||
여러 Edge group을 관찰하고 운영하는 fleet-level 기능을 구축한다.
|
||||
Multi-edge scheduling과 fleet-wide state ownership은 Control Plane과 IOP native protocol에서 결정한다.
|
||||
|
||||
## Phase
|
||||
## 단계
|
||||
|
||||
Phase 3. Control Plane and Portal Operations
|
||||
Phase 3. Control Plane과 Portal 운영
|
||||
|
||||
## Status
|
||||
## 상태
|
||||
|
||||
Planned
|
||||
|
||||
## Scope
|
||||
## 범위
|
||||
|
||||
- 여러 Edge group 등록/상태 표시
|
||||
- Edge별 runtime/automation 상태 집계
|
||||
|
|
@ -22,27 +22,27 @@ Planned
|
|||
- OTO 같은 domain agent의 build/deploy 상태, artifact, capability 포함
|
||||
- fleet-wide 명령과 운영 리포트 후보
|
||||
|
||||
## Required Features
|
||||
## 필수 기능
|
||||
|
||||
- Multi-edge 운영 명령과 이벤트 집계는 IOP native protocol을 기준으로 설계한다.
|
||||
- OpenAI-compatible 표면은 특정 Edge/adapter로 라우팅되는 inference 호환 경로로 제한한다.
|
||||
- A2A 표면은 특정 Edge/adapter로 위임되는 agent task 경로로 제한한다.
|
||||
- Edge는 자신의 로컬 런타임 상태와 registry 소유권을 유지한다.
|
||||
|
||||
## Success Criteria
|
||||
## 성공 기준
|
||||
|
||||
- Control Plane이 여러 Edge 상태를 구분해 조회하고 표시할 수 있다.
|
||||
- Edge별 실행 이력과 domain agent 상태가 운영 화면에서 구분된다.
|
||||
- fleet-wide 기능이 Edge의 로컬 상태 소유권을 침범하지 않는다.
|
||||
|
||||
## Non-Goals
|
||||
## 제외 범위
|
||||
|
||||
- Control Plane이 매 요청마다 Node를 직접 할당하는 중앙 스케줄러 역할
|
||||
- OpenAI-compatible API 또는 A2A API를 multi-edge 운영 제어 기본 프로토콜로 사용
|
||||
- Edge federation 상세 설계를 근거 없이 선확정
|
||||
|
||||
## Context for Work
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 앱: `apps/control-plane`, `apps/web`, `apps/edge`
|
||||
- 관련 문서: `docs/architecture.md`
|
||||
- 선행 Milestone: M06, M07
|
||||
- 선행 마일스톤: M06, M07
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
- `bin/` — 사용자가 직접 실행하는 edge/node shell entrypoint이다.
|
||||
- `Makefile` — 빌드와 테스트 진입점을 정의한다.
|
||||
- `docs/` — 아키텍처 및 운영 방향 문서이다.
|
||||
- `agent-ops/roadmap/` — 제품 Goal, Phase, Milestone의 canonical source of truth이다.
|
||||
- `agent-ops/roadmap/` — 제품 목표, 단계, 마일스톤의 단일 기준 문서이다.
|
||||
|
||||
## 기술 스택
|
||||
|
||||
|
|
@ -61,11 +61,11 @@
|
|||
## 마일스톤 컨텍스트 로딩
|
||||
|
||||
- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 `agent-ops/roadmap/current.md`를 먼저 읽는다.
|
||||
- 요청이 Default Milestone 범위에 맞으면 Default Milestone 문서를 같은 세션에서 1회 읽는다.
|
||||
- 요청이 Default Milestone과 맞지 않으면 `current.md`의 Active Milestones 목록에서 가장 관련 있는 Milestone 문서를 같은 세션에서 1회 읽는다.
|
||||
- Active Milestones에도 맞지 않으면 `agent-ops/roadmap/ROADMAP.md`의 Milestone 인덱스를 확인하고 사용자에게 진행/전환 여부를 확인한다.
|
||||
- `agent-ops/roadmap/ROADMAP.md`는 로드맵 생성/갱신, Phase 전환, Milestone 추가/수정 요청이 있을 때만 읽는다.
|
||||
- 작업 요청이 선택된 Milestone의 Goal 또는 Non-Goals와 충돌하면 구현 전에 사용자에게 알리고 방향을 확인한다.
|
||||
- 요청이 기본 마일스톤 범위에 맞으면 기본 마일스톤 문서를 같은 세션에서 1회 읽는다.
|
||||
- 요청이 기본 마일스톤과 맞지 않으면 `current.md`의 활성 마일스톤 목록에서 가장 관련 있는 마일스톤 문서를 같은 세션에서 1회 읽는다.
|
||||
- 활성 마일스톤에도 맞지 않으면 `agent-ops/roadmap/ROADMAP.md`의 마일스톤 인덱스를 확인하고 사용자에게 진행/전환 여부를 확인한다.
|
||||
- `agent-ops/roadmap/ROADMAP.md`는 로드맵 생성/갱신, Phase 전환, 마일스톤 추가/수정 요청이 있을 때만 읽는다.
|
||||
- 작업 요청이 선택된 마일스톤의 목표 또는 제외 범위와 충돌하면 구현 전에 사용자에게 알리고 방향을 확인한다.
|
||||
|
||||
## 도메인 매핑
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue