# Edge 입력 표면

## 목표

Edge의 외부 입력 표면을 OpenAI-compatible API와 A2A JSON-RPC API로 분리해 관리하고, 두 입력 모두 내부 `adapter + target` 실행 경로로 수렴시킨다.

## 단계

Edge-Node 실행 기반

## 상태

완료

## 구현 잠금

- 상태: 해제
- 이유: 완료된 Milestone이며 완료 기준과 완료 근거가 문서화되어 있다. 후속 확장은 별도 Milestone에서 다룬다.
- 해제 조건:
  - [x] 완료 기준과 완료 근거가 문서화됨
  - [x] 후속 확장은 별도 Milestone에서 다룸
- 잠금 중 금지:
  - 해당 없음

## 범위

- OpenAI-compatible `/v1/models`, `/v1/chat/completions` baseline 표면
- A2A `message/send`, `tasks/get`, `tasks/cancel` 최소 표면
- Edge input manager lifecycle/config 정리
- 외부 `model` 또는 A2A task 입력을 내부 `adapter + target + session_id`로 변환하는 경계
- streaming/non-streaming 응답과 background task 상태 저장 기준 정리
- 현재 구현된 OpenAI-compatible/A2A baseline을 기준으로 설정, lifecycle, task 상태, 문서 경계를 안정화

## 필수 기능

- [x] [openai-surface] OpenAI-compatible API는 모델/chat completion 호환 입력 표면으로 유지한다.
- [x] [a2a-surface] A2A API는 외부 agent의 작업 위임과 task 상태 공유 표면으로 유지한다.
- [x] [edge-service-path] 두 입력 표면 모두 Edge service와 edge-node transport를 우회하지 않는다.
- [x] [openai-boundary] OpenAI-compatible API에 IOP 고유 운영 제어 기능을 억지로 싣지 않는다.
- [x] [a2a-boundary] A2A API를 Control Plane 운영 제어 프로토콜로 확장하지 않는다.

## 완료 기준

- [x] 외부 OpenAI-compatible 요청이 Edge 내부에서 명시적인 adapter/target 실행으로 변환된다.
- [x] A2A `message/send`, `tasks/get`, `tasks/cancel`이 task lifecycle과 node cancel 흐름을 일관되게 표현한다.
- [x] 입력 표면별 설정과 lifecycle이 중복 없이 관리된다.
- [x] 앱별 README는 현재 사용법을 설명하고, 미래 우선순위는 roadmap을 참조한다.

## 범위 제외

- OpenAI-compatible Responses API 표면 구현
- OpenAI-compatible API를 IOP native 운영 제어 프로토콜로 확장
- A2A API를 fleet-wide scheduling 또는 Control Plane state ownership 표면으로 확장
- vendor-specific extension으로 node 선택, terminal session, lifecycle event를 표현

## 작업 컨텍스트

- 관련 앱: `apps/edge`
- 관련 문서: `apps/edge/README.md`
- 관련 패키지: `apps/edge/internal/openai`, `apps/edge/internal/input/a2a`, `apps/edge/internal/service`
- 방향성 메모: OpenAI-compatible API는 외부 모델 기반 호출, A2A API는 외부 agent 작업 위임, IOP native protocol은 proto-socket 기반 운영/고유 기능 표면으로 유지한다. Responses API 지원은 후속 `모델 서빙과 부하 라우팅` Milestone에서 다룬다.
- platform-common 계약 변경 시 `proto/iop`와 `packages/config`를 함께 확인한다.
- 완료 근거: 2026-05-23 `go test ./...`, `make test-e2e` 통과. `make test-e2e`에는 OpenAI-compatible Ollama 보조 smoke가 포함된다.
