13 KiB
Phase: Automation Runtime과 Bridge 확장
상태
[진행중]
목표
Runtime과 Automation 실행 흐름을 공통화하고, agent 설치형 대상과 비설치형 대상의 제어 경로를 분리해 확장한다. CLI 실행, specialized agent 등록, bootstrap/enrollment, OpenAI-compatible workspace agent 실행 계약을 서로 충돌하지 않는 운영 경로로 정리했다. NomadCode가 IOP를 실행 백엔드로 사용할 수 있도록 하는 Responses 기반 workspace agent 실행 계약과 정적 lane/G 결과를 시간대·quota·실행 상태와 결합하는 Agent Task 동적 실행 Target Selector를 완료했다. 후속으로 provider/grade routing을 닫고, Node와 Edge 없는 Desktop Agent가 함께 사용하는 공통 Go Agent Task runtime으로 현재 Python 감시 루프를 전체 동등성 기준에서 이전한다. 원격 터미널/CLI 터널링과 oto scheduler/CI-CD 자동화는 2차 스케치로 잠그고, 현재 활성 구현 범위로 끌어오지 않는다.
Milestone 흐름
완료된 Milestone은 archive 경로를 가리키고, 검토중, 진행중, 계획, 스케치 또는 보류 Milestone은 이 Phase 하위 milestones/ 경로를 가리킨다.
이 흐름은 해당 Phase 안의 상태 정리이며, Phase를 가로지르는 실행 순서는 아니다.
Milestone은 완료, 검토중, 진행중, 계획, 스케치 또는 보류 상태 그룹으로 정리한다.
Phase를 가로지르는 실제 다음 작업 선택은 전역 마일스톤 실행 순서를 우선한다.
-
[완료] CLI Automation Runtime 안정화
- 경로: cli-automation-runtime-stabilization
- 요약: one-shot, persistent terminal, opencode SSE, codex exec 계열 CLI 실행 모드와 운영 command 응답을 같은 adapter execution 모델 안에서 안정화했다.
-
[완료] Agent Bootstrap과 Domain Agent 등록
- 경로: agent-bootstrap-domain-agent-enrollment
- 요약: Edge 직접 연결 specialized domain agent 등록을 위한 MVP enrollment 계약과 후속 구현 Milestone 경계를 확정했다.
-
[완료] Domain Agent Registry 구현
- 경로: domain-agent-registry-implementation
- 요약: Edge-side
generic-node/domain-agent 구분을 config/store, registry/transport, service snapshot에 반영하고 검증을 완료했다.
-
[완료] Domain Agent Bootstrap Command 발급
- 경로: domain-agent-bootstrap-command-issue
- 요약:
iop-edge agent register가 domain agent record와 Linux bootstrap script 인자를 포함한 one-line command를 발급하고 config roundtrip 검증을 완료했다.
-
[완료] IOP 전용 Domain Agent 경로 제거
- 경로: domain-agent-specific-iop-removal
- 요약: 독립 Control Plane 전환에 맞춰 IOP 활성 코드와 문서에서 전용 agent kind, bootstrap, smoke, 운영 문구를 제거했다.
-
[완료] 전역 설계 부채 리팩토링 기반
- 경로: architecture-refactor-foundation
- 요약: 원격 터미널 브리지와 이후 운영 확장 전에 Edge, Node, Control Plane, Client, proto/config 경계의 설계 부채를 정리했고, 잔여 리스크는 후속 선행 안정화 마일스톤으로 넘겼다.
-
[완료] OpenAI Responses Input Surface
- 경로: openai-responses-input-surface
- 요약: Edge OpenAI-compatible 입력 표면에 non-streaming
POST /v1/responses, metadata 전달 계약, response subset,iop-edge smoke openaiResponses 검증을 추가하고 실제 Edge/Node/fake Ollama smoke evidence를 확보했다.
-
[폐기] Specialized Agent proto-socket 연결 기반
- 경로: specialized-agent-proto-socket-foundation
- 요약: domain agent가 독립형 실행 방식으로 전환될 예정이므로 Edge 직접 proto-socket specialized peer 기준의 연결 기반 정리는 폐기한다.
-
[폐기] Domain Agent Registration Online Smoke
- 경로: domain-agent-registration-online-smoke
- 요약: 독립형 실행 방식으로 전환될 예정이므로 Edge 직접 registration online smoke는 폐기한다.
-
[폐기] Domain Agent Registration Unlock Handoff
- 경로: domain-agent-registration-unlock-handoff
- 요약: 독립형 실행 전환으로 Edge 직접 등록 흐름 잠금 해제 handoff가 필요 없어져 폐기한다.
-
[폐기] Domain Agent Message Boundary
- 경로: domain-agent-message-boundary
- 요약: 독립형 실행 전환으로 Edge 직접 domain payload boundary 정리가 현재 범위에서 필요 없어져 폐기한다.
-
[완료] 워크스페이스 포트/환경 표준화
- 경로: workspace-port-env-standardization
- 요약: Control Plane, Edge, Node, Client, OpenAI-compatible, A2A, wire, metrics, DB/cache 포트를 workspace 공통 대역으로 정렬한다.
-
[완료] 브리지 선행 경계 안정화
- 경로: bridge-boundary-hardening
- 요약: 원격 터미널 브리지 POC 전에 남은 호환성/소유권 리스크를 Client HTTP lifecycle, Edge run surface, Node terminal core, typed adapter config 계약으로 고정한다.
-
[완료] Codex App Server 스트리밍 전환
- 경로: codex-app-server-streaming-migration
- 요약: Codex CLI target의 기본
codexprofile을 app-server 기반으로 전환하고 실제codexforeground/background smoke와 app-server session lifecycle 검증을 완료했다.
-
[완료] OpenAI Workspace Agent Execution Contract
- 경로: openai-workspace-agent-execution-contract
- 요약: NomadCode가 IOP CLI를 직접 실행하지 않고 IOP Edge OpenAI-compatible HTTP 호출의
metadata.workspace와 task/source metadata만으로 내부 workspace-bound agent target이 해당 checkout에서 산출물을 만들 수 있게 하는 최우선 contract/serving hardening 작업이다.
-
[완료] 에이전트 작업성 중심 저장소 구조 리팩터링
- 경로: agent-readable-repository-refactor
- 요약: 거대 소스·테스트와 추적 artifact를 책임 단위로 정리하고, task-local read set과 동작 보존형 가독성 ratchet을 검증해 완료했다.
-
[완료] Agent Task 동적 실행 Target Selector
- 경로: agent-task-runtime-target-selector
- 요약: 정적 lane/G 결과를 시간대, quota와 이전 실행 상태에 결합해 작업 단위로 고정되는
adapter + target선택과 failover·selfcheck·task-local blocker·독립 작업 drain 정책을 구현했다. 중복된 최종 audit pair는 임시 Python 구현 폐기 예정에 따른 사용자 결정으로 미실행 종료했다.
-
[계획] Pi CLI Provider Integration
- 경로: pi-cli-provider-integration
- 요약: Node CLI adapter의 실행 profile 후보에 Pi를 추가하고, Pi JSON stream 출력 파서, config 예시, OpenAI-compatible route smoke를 통해
adapter=cli,target=pi를 안정적으로 사용할 수 있게 한다.
-
[계획] CLI Agent Group Grade Routing
- 경로: cli-agent-group-grade-routing
- 요약:
PLAN-local-G08.md,CODE_REVIEW-cloud-G07.md같은 예약어/lane/grade 파일명을 기준으로 CLI provider agent를 목적별 agent group에 라우팅하고, 수동/자동 grade range assignment와 OpenAI-compatiblemetadata.agent_group.task_file계약을 정리한다.
-
[계획] 공통 Agent Task Runtime과 Desktop Agent
- 경로: shared-agent-task-runtime-desktop-agent
- 요약: 현재 Python 감시·dispatcher 동작과 Node CLI runtime을 공통 Go CLI Provider·AgentTaskManager로 이전하고, Node와 Edge 없는 Flutter macOS Desktop Agent가 단일 구현을 공유한다.
-
[스케치] 에이전트 작업 루프 오케스트레이션 MVP
- 경로: agent-workflow-loop-orchestration-mvp
- 요약: 교체 가능한 최초 요청 라우터가 코딩·저장소 조회·일반 요청을 direct, Plan, Milestone과 lane/G0X로 분류하고, 사용자 agent의 tool call로 작업 파일을 만든 뒤 파일 상태, 하이브리드 실행과 상위 모델 리뷰를 연결하는 작업 루프를 스케치한다.
-
[스케치] Provider 사용량 알림과 운영 표면
- 경로: provider-usage-notification-operations-surface
- 요약: 공통 runtime의 quota/status/failure event를 소비해 macOS·Desktop·후속 외부 채널에 전달하고 selection/failover를 중복하지 않는 운영 알림 표면을 스케치한다.
-
[스케치] 원격 코딩/유지보수 작업 환경
- 경로: remote-workspace-operations-environment
- 요약: CLI Agent와 workspace-bound execution을 이용한 원격 코딩/유지보수 환경의 운영 경계를 스케치한다.
-
[스케치] oto 자동화 스케줄러와 CI-CD 연동 (2차)
- 경로: oto-automation-scheduler-second-wave
- 요약: oto를 이용한 자동화, scheduler, CI-CD 연동은 MVP 이후 2차 후보로 스케치한다.
-
[보류] 원격 터미널/CLI 터널링 POC (2차)
- 경로: remote-terminal-bridge-poc
- 요약: Agent를 설치하기 어려운 host/device 또는 특정 Node의 CLI agent를 Socket 경유로 다른 원격지에 연결하는 터널링 POC는 MVP 이후 2차로 보류한다.
Phase 경계
- OpenAI-compatible API와 A2A API에 terminal 제어 기능을 억지로 싣지 않는다.
- Edge는 실행 요청의 broker 역할을 하고, Node는 대상 transport 실행자 역할을 유지한다.
- 독립 Desktop Agent는 Edge를 포함하거나 요구하지 않으며, Node와 동일한 공통 Go CLI Provider·AgentTaskManager를 host adapter로 소비한다.
- 설치 가능한 대상은 bootstrap/enrollment 경로로, 설치가 어렵거나 일회성 유지보수 대상은 remote terminal bridge 경로로 구분한다.
- OpenAI-compatible Responses 표면은 외부 모델 호출 호환을 위한 입력 표면이며, IOP 고유 운영 제어는 native protocol이나 명시 운영 API로 분리한다.
- NomadCode 지원을 위한
metadata.workspace실행 계약은 provider 확장, Lemonade 추가, remote terminal bridge보다 먼저 닫는다. - Agent Task runtime은 사용자 workspace의 Milestone/Plan/Review/work-log 파일을 durable source of truth로 사용하고 app store는 provider/global 설정, project registry와 최소 checkpoint만 소유한다.
- 에이전트 작업 루프 오케스트레이션은 사용자가 agent-ops 스킬을 직접 실행하지 않은 일반 요청을 direct, Plan, Milestone으로 분류하고, Plan/Milestone이면 사용자 agent의 tool call로 작업 파일을 만들고 그 파일 상태를 연결하는 상위 IOP 기능으로 별도 소유한다.
- 공통 Agent Task runtime은 위 오케스트레이션과 Node/Desktop host가 공통으로 소비하는 provider 실행·선택·관측·복구 기반이며, 최초 요청 분류와 작업 파일 생성의 의미를 대체하지 않는다.
- Python dispatcher/selector는 동작·정책·오류 evidence의 참조로만 사용하며 production runtime에서 실행하거나 가져오지 않는다.
- provider 실행, quota/status, stream/session, failure와 AgentTaskManager는 공통 Go package가 단일 구현으로 소유한다. Node와 Desktop host에 이를 복사하거나 중복 선언하지 않는다.
- 선택 엔진은 하나의 provider/model을 반환하는 공통 evaluator와 host별 정책 입력을 분리하며, app 기본값 뒤 project override와 ordered rule priority를 적용한다.
- Provider 사용량 알림은 공통 runtime의 quota/status/failure event를 소비하는 운영 표면으로 두고, provider 선택·retry/failover·task continuation을 다시 구현하지 않는다.
- 원격 터미널/CLI 터널링 POC와 oto scheduler/CI-CD 연동은 현재 활성 작업에서 제외하고, provider 상태/capacity queue와 운영 관측 MVP 이후 재개 후보로 둔다.