validate-agent-ui 규칙이 요구하는 상태값 스키마에 맞춰 기존 code-first agent-ui 문서의 legacy 상태 표기를 정규화한다.
99 lines
3.4 KiB
Markdown
99 lines
3.4 KiB
Markdown
---
|
|
ui_doc_type: view
|
|
view_id: nodes
|
|
status: 구현됨
|
|
frame: null
|
|
source_evidence:
|
|
- type: code
|
|
path: apps/client/lib/widgets/nodes_panel.dart
|
|
notes: NodesPanel renders active edge selector, node cards, adapter chips, and provider catalog cards.
|
|
- type: code
|
|
path: apps/client/lib/client_home_page.dart
|
|
notes: ClientHomePage injects NodesPanel into the shell nodes section.
|
|
- type: docs
|
|
path: README.md
|
|
notes: Nodes are Edge-connected executors responsible for adapter execution and runtime status.
|
|
- type: user
|
|
path: null
|
|
notes: Initial scaffold requested by user.
|
|
regions:
|
|
- nodes.header
|
|
- nodes.edge-selector
|
|
- nodes.node-list
|
|
- nodes.node-status
|
|
- nodes.adapter-config
|
|
- nodes.provider-catalog
|
|
---
|
|
|
|
# Nodes
|
|
|
|
View ID: `nodes`
|
|
|
|
Frame:
|
|
- 없음
|
|
|
|
Status: `구현됨`
|
|
|
|
## Source Evidence
|
|
|
|
| Type | Path | Notes |
|
|
|------|------|-------|
|
|
| code | `apps/client/lib/widgets/nodes_panel.dart` | `NodesPanel`이 Edge selector, node card, adapter chip, provider catalog를 렌더링한다. |
|
|
| code | `apps/client/lib/client_home_page.dart` | shell nodes section에 `NodesPanel`을 주입한다. |
|
|
| docs | `README.md` | Node는 Edge에 연결되는 실제 실행자이며 runtime status를 보고한다. |
|
|
| user | 없음 | 초기 agent-ui 생성을 요청했다. |
|
|
|
|
## Purpose
|
|
|
|
선택 Edge에 등록된 Node와 provider runtime 상태를 빠르게 점검한다.
|
|
|
|
## Primary Users
|
|
|
|
- IOP operator
|
|
- runtime/provider capacity를 확인하는 engineer
|
|
|
|
## Primary Tasks
|
|
|
|
- active Edge 선택
|
|
- Node 연결 상태 확인
|
|
- Node config와 adapter enablement 확인
|
|
- provider catalog의 health, load, model, lifecycle capability 확인
|
|
|
|
## Information Priority
|
|
|
|
1. active Edge와 Node 연결 상태
|
|
2. Node config, concurrency, adapter 상태
|
|
3. provider catalog capacity와 lifecycle capability
|
|
|
|
## Regions
|
|
|
|
| Region ID | Purpose | Component | Priority | Notes |
|
|
|-----------|---------|-----------|----------|-------|
|
|
| `nodes.header` | view title, refresh action 표시 | 없음 | high | `Nodes View` heading을 포함한다. |
|
|
| `nodes.edge-selector` | active Edge 선택 | `edge-selector` | high | Edge 목록이 있을 때 dropdown을 보여준다. |
|
|
| `nodes.node-list` | Node card 목록 표시 | `node-card` | high | alias, node id, connection badge를 포함한다. |
|
|
| `nodes.node-status` | Node connected/offline 상태 표시 | `status-badge` | high | card header badge로 표시된다. |
|
|
| `nodes.adapter-config` | Node adapter enablement 표시 | `status-badge` | medium | adapter chip으로 enabled/disabled를 나타낸다. |
|
|
| `nodes.provider-catalog` | provider snapshot 목록 표시 | `provider-snapshot-card` | medium | provider health, capacity, queue, served models를 포함한다. |
|
|
|
|
## Actions
|
|
|
|
| Action ID | Trigger | Result | Guard |
|
|
|-----------|---------|--------|-------|
|
|
| `nodes.select-edge` | Active Edge dropdown change | 선택 Edge의 status view로 전환한다. | Edge 목록이 있어야 한다. |
|
|
| `nodes.refresh` | Refresh icon button | 선택 Edge status를 다시 fetch한다. | 선택 Edge가 있어야 한다. |
|
|
|
|
## States
|
|
|
|
- loading: 선택 Edge status fetch 중 spinner를 표시한다.
|
|
- empty: Edge가 없거나 Node가 없으면 안내 메시지를 표시한다.
|
|
- error: status fetch 실패 메시지를 표시한다.
|
|
- permission-denied: 현재 구현 근거 없음
|
|
|
|
## Open Questions
|
|
|
|
- 없음
|
|
|
|
## Decision History
|
|
|
|
- 2026-06-25: `NodesPanel` 구현을 기준으로 nodes view를 정의했다.
|