# 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가 포함된다.