--- ui_doc_type: component component_id: agent-dock-panel status: 구현됨 source_evidence: - type: code path: apps/client/lib/src/app/nomadcode_workbench_shell.dart notes: _AgentDockPanel이 agent_shell package의 AgentShell을 mount한다. - type: docs path: README.md notes: Agent dock은 공통 agent_shell package를 사용한다는 제품 경계. - type: docs path: apps/client/README.md notes: Agent dock panel attached to the right rail 설명. - type: user path: null notes: agent-ui 생성 요청. --- # Agent Dock Panel Component ID: `agent-dock-panel` Status: `구현됨` ## Source Evidence | Type | Path | Notes | |------|------|-------| | code | `apps/client/lib/src/app/nomadcode_workbench_shell.dart` | _AgentDockPanel이 agent_shell package의 AgentShell을 mount한다. | | docs | `README.md` | Agent dock은 공통 agent_shell package를 사용한다는 제품 경계. | | docs | `apps/client/README.md` | Agent dock panel attached to the right rail 설명. | | user | 없음 | agent-ui 생성 요청. | ## Purpose Workbench 우측 rail에 붙는 agent interaction surface를 제공한다. NomadCode-specific workflow logic은 shell 밖의 product section이나 future integration에서 다루고, dock 자체는 `agent_shell` 기반 공통 대화 표면으로 유지한다. ## Used By - `workbench-shell`: `workbench-shell.agent-dock` ## Anatomy - Right-side bordered panel - `AgentShell` - Initial assistant message - Input placeholder ## Variants - default: desktop attached panel - compact: width가 좁으면 center content를 숨기고 dock width를 우선한다. ## States - default - closed: rail state로만 표현되며 panel은 render되지 않는다. - loading: AgentShell 내부 정책을 따른다. - empty: initial message가 기본으로 존재한다. - error: AgentShell 내부 정책을 따른다. - disabled: 없음 ## Rules - dock open/closed 상태는 workbench shell이 소유한다. - `agent_shell` package에 NomadCode-specific workflow, web context, IOP product logic을 넣지 않는다. ## Decision History - 2026-06-24: 구현된 Agent dock panel을 component로 등록했다.