--- ui_doc_type: component component_id: node-card status: 구현됨 source_evidence: - type: code path: apps/client/lib/widgets/nodes_panel_sections.dart notes: NodeStatusCard renders one Card per node with status, label, config, adapters, and provider catalog. - type: docs path: README.md notes: Node is the Edge-connected executor responsible for runtime adapter execution. - type: user path: null notes: Initial scaffold requested by user. --- # Node Card Component ID: `node-card` Status: `구현됨` ## Source Evidence | Type | Path | Notes | |------|------|-------| | code | `apps/client/lib/widgets/nodes_panel_sections.dart` | `NodeStatusCard`가 alias/id, connected badge, label, config, adapter chip을 가진 card를 렌더링한다. | | docs | `README.md` | Node는 Edge에 연결되는 실제 실행자다. | | user | 없음 | 초기 agent-ui 생성을 요청했다. | ## Purpose 단일 Node의 identity, connectivity, execution config를 한눈에 보여준다. ## Used By - `nodes`: `nodes.node-list`, `nodes.node-status`, `nodes.adapter-config` ## Anatomy - alias or node id - connection badge - optional label - concurrency limit - adapter chips - provider catalog section ## Variants - connected - offline - with config - without config ## States - default - loading: view-level state - empty: no adapters configured - error: view-level state - disabled: 없음 ## Rules - alias가 있으면 alias를 primary label로 사용한다. - adapter enabled/disabled는 badge color와 icon을 함께 사용한다. ## Decision History - 2026-06-25: `NodesPanel`의 Node card pattern을 component로 정의했다. - 2026-07-18: 구현 근거를 책임 분리된 `NodeStatusCard`와 `nodes_panel_sections.dart`로 동기화했다.