--- ui_doc_type: definition-index surface_type: ops-dev source_evidence: - type: code path: apps/client/lib/client_home_page.dart notes: ClientHomePage mounts IopConsoleShell with overview, edges, nodes, runtime, executionLogs, and agent panels. - type: code path: packages/flutter/iop_console/lib/src/iop_console_shell.dart notes: IopConsoleShell defines the rail navigation and console section slots. - type: docs path: README.md notes: IOP is a Control Plane, Edge, Node operations platform with runtime and automation surfaces. - type: docs path: apps/client/README.md notes: The official Flutter client consumes packages/flutter/iop_console as the IOP-owned widget boundary. - type: user path: null notes: User requested initial agent-ui scaffold creation. --- # UI Definition ## Purpose 이 agent-ui는 IOP 공식 Flutter client의 Control Plane 운영 화면과 `packages/flutter/iop_console` embeddable console surface를 정의한다. 현재 기준은 운영자가 Edge, Node, Runtime, execution event, agent capability 상태를 확인하고 기본 command를 실행하는 ops/dev UI다. ## Surface Type - Type: ops-dev - Notes: product UI layer가 필요하면 brand, public content, asset, token, motion 정의를 별도 갱신에서 추가한다. ## Source Evidence | Type | Path | Notes | |------|------|-------| | code | `apps/client/lib/client_home_page.dart` | `ClientHomePage`가 `IopConsoleShell`에 overview, edges, nodes, runtime, execution logs, agent panel을 주입한다. | | code | `packages/flutter/iop_console/lib/src/iop_console_shell.dart` | 좌측 rail과 section routing이 console shell의 기본 frame을 이룬다. | | docs | `README.md` | IOP가 Control Plane, Edge, Node 운영 계층과 runtime/automation surface를 지향함을 설명한다. | | docs | `apps/client/README.md` | Flutter client와 `iop_console` package의 책임 경계를 설명한다. | | user | 없음 | 사용자가 `agent-ui 생성해`라고 요청했다. | ## Structure - `views/`: console section 또는 운영 업무 단위 정의 - `components/`: 반복 UI 구성요소 정의 - `archive/`: 현재 기준이 아닌 과거 정의/결정 로그 ## Reading Rules - 현재 UI 동기화는 이 디렉터리의 활성 문서를 기준으로 한다. - `archive/**`는 과거 비교, 복원, 특정 근거 확인 요청이 있을 때만 읽는다. ## Sync Rules - frame-view가 있으면 view region id와 frame region id는 동일해야 한다. - view에서 참조한 component id는 `components/` 아래에 정의되어야 한다. - frame은 definition을 대체하지 않는다. - `구현됨`, `계획`, `가정`, `불명확` 상태를 섞어 쓰지 않는다. ## Decision History - 2026-06-25: 기존 Flutter client와 `iop_console` 구현을 근거로 code-first agent-ui scaffold를 생성했다.