마일스톤 작업 생성 동기화를 진행하기 위해 Plane project별 active sync 설정을 Core DB에 저장하고 조회할 수 있는 persistence 경계와 검증 산출물을 함께 정리한다.
6.4 KiB
6.4 KiB
Milestone: Workbench Provider Slot Composition
위치
- Roadmap:
agent-roadmap/ROADMAP.md - Phase:
agent-roadmap/phase/project-workspace-management-ux/PHASE.md
목표
NomadCode Flutter 앱의 상단 titlebar와 우측 icon rail 기반 workbench shell을 유지하면서, IOP 전용 iopContent 같은 1회성 slot을 provider 기반 slot registry로 추상화한다. IOP와 OTO는 각각 provider adapter로 등록되어 우측 rail item과 중앙 content에 삽입될 수 있고, 기본 NomadCode client는 외부 제품 package 없이도 독립적으로 빌드되어야 한다.
상태
[계획]
구현 잠금
- 상태: 해제
- 결정 필요: 없음
범위
- NomadCode desktop/workbench shell의 상단 titlebar + 우측 icon rail + center content 구조 유지
- 기존 IOP 전용 slot을 provider slot registry와 provider descriptor/adapter 경계로 일반화
- IOP, OTO 같은 외부 Flutter console package를 선택적 provider로 등록하는 구조
- provider별 rail item, placeholder, center content, agent capability pack 조립 경계
- 기본
apps/client가 IOP/OTO package를 import하지 않고도 빌드되는 dependency boundary - 포함 빌드 또는 별도 composition package가 IOP/OTO provider를 주입하는 방식
기능
Epic: [workbench-shell] NomadCode right-rail workbench
NomadCode는 여러 도메인 관리 화면을 우측 icon rail과 중앙 content host로 전환하는 제품 shell을 소유한다.
- [titlebar] NomadCode shell은 상단 titlebar 영역을 제공하고, 앱/워크스페이스/현재 컨텍스트 상태를 이 영역에서 표현한다.
- [right-rail] NomadCode shell은 VS Code activity bar처럼 아이콘만 있는 우측 rail을 제공한다.
- [center-content] 우측 rail item 선택에 따라 중앙 content가 Agent, Workflow, Web Context, Settings, provider slot 등으로 전환된다.
- [layout-shape] 상단 titlebar와 우측 rail이 ㄱ자 구조를 만들고, 중앙 content는 host 도메인 화면을 침범 없이 표시한다. 검증: narrow/wide layout에서 titlebar, rail, center content가 겹치지 않는다.
Epic: [provider-slots] Provider slot registry
Workbench는 IOP/OTO 같은 제품별 console을 하드코딩된 enum/field가 아니라 provider descriptor 목록으로 조립한다.
- [slot-contract] provider slot descriptor는 id, label, icon, center content builder, optional placeholder, optional agent capability pack 주입 지점을 갖는다.
- [slot-registry] NomadCode workbench shell은 기본 section과 provider slot을 하나의 rail model로 합성한다. 검증: IOP/OTO slot을 추가해도 shell enum과 switch에 제품별 분기가 늘어나지 않는다.
- [provider-adapter] 각 provider adapter는 외부 console package public API와 NomadCode slot contract 사이만 연결한다.
- [dependency-boundary] 기본
apps/clientdependency graph에는 IOP/OTO package import가 없다. 검증: provider package가 없는 환경에서도 기본 client analyze/build가 실패하지 않는다.
Epic: [agent-surface] Shared agent shell composition
채팅형 agent shell은 NomadCode, IOP, OTO가 함께 쓰는 공통 package로 두고, 각 제품은 capability pack만 등록한다.
- [agent-shell-package] 메시지, tool call, 승인 UI, capability registry를 포함한 공통
agent_shellpackage를 NomadCode 제품 shell에서 사용할 수 있다. - [nomad-agent] NomadCode agent capability는 WebView 화면 관찰/조작, workflow/task/workspace, project context 같은 NomadCode 책임 범위만 제공한다.
- [provider-agent-pack] IOP/OTO 포함 빌드는 같은 agent shell registry에 각 provider의 agent capability pack을 추가 등록할 수 있다.
Epic: [provider-embeds] IOP and OTO native Flutter embeds
IOP와 OTO 관리는 webview나 별도 앱이 아니라 각 repository의 embeddable Flutter console package를 provider slot으로 삽입한다.
- [iop-provider] IOP 포함 빌드는
iop_console또는 동등한 IOP-owned package를 provider slot으로 등록하고, 기존 IOP placeholder를 native Flutter console로 대체한다. - [oto-provider] OTO 포함 빌드는
oto_consolepackage를 provider slot으로 등록하고, 우측 rail에 OTO slot을 추가해 중앙 content에 OTO console을 표시한다. - [host-config] NomadCode는 provider별 endpoint/auth/token reference/theme/navigation callback을 주입하고, provider package 내부 state와 NomadCode 제품 state를 느슨하게 연결한다.
- [remove-cleanly] IOP 또는 OTO provider를 제거해도 NomadCode Agent, Workflow, Web Context, Settings rail item과 중앙 content 전환은 유지된다.
완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증이 아직 충족되지 않았다.
- 리뷰 필요:
- 사용자가 완료 결과를 확인했다
- archive 이동을 승인했다
- 리뷰 코멘트: 없음
범위 제외
- IOP/OTO 관리 UI 자체 구현과 각 제품의 Control Plane/Runner/Edge 운영 책임
- IOP/OTO 내부 모델 라우팅, adapter/target 실행 정책, runtime 최적화 구현
- NomadCode default app에 IOP/OTO package를 직접 의존시키는 구조
- 런타임 동적 plugin framework 도입
- WebView를 통해 IOP/OTO 화면을 띄우는 대체 구현
작업 컨텍스트
- 관련 경로:
apps/client/,packages/contracts/,services/core/ - 외부 관련 경로:
../iop/apps/client/,../iop/packages/flutter/iop_console/,../oto/apps/client/,../oto/packages/flutter/oto_console/,../agent-shell/ - 표준선(선택): NomadCode shell은 상단 titlebar + 우측 icon rail + center content 구조를 소유한다.
- 표준선(선택): 외부 제품 UI는 provider adapter/composition layer에서만 import하고, default build는 외부 제품 package 없이 빌드 가능해야 한다.
- 표준선(선택): Agent shell은 공통 package, NomadCode/IOP/OTO는 각각 capability pack으로 조립한다.
- 선행 작업: Client Integration Standardization, Project Workspace Management UX
- 선행 확인 대상:
../iop/packages/flutter/iop_console/,../oto/packages/flutter/oto_console/ - 후속 작업: 실제 desktop/mobile project workspace 화면 구현, workflow/provider 관리 탭별 세부 content 구현
- 확인 필요: 후속 구현 계획에서 app/flavor/package 중 어떤 optional composition 방식을 택할지 확정한다.