장시간 provider prefill과 stream backpressure가 정상 노드를 끊지 않도록 liveness window를 확장하고 Chronos 분리 완료 문서와 잔여 artifact를 정리한다.
31 lines
1.7 KiB
Markdown
31 lines
1.7 KiB
Markdown
# IOP Edge
|
|
|
|
IOP Edge owns Node registration, dispatch readiness, provider-pool routing, queue admission, leases, reconnect fencing, external inference surfaces, and Control Plane operations.
|
|
|
|
## Provider boundary
|
|
|
|
- Public model ids resolve to provider adapter/target routes.
|
|
- Normalized inference uses ordered run events; OpenAI-compatible passthrough uses provider tunnel frames.
|
|
- `session_id` is correlation only and never resumes local execution state.
|
|
- Cancellation targets an active run id.
|
|
- Edge operations are `health.check`, `node.status`, and `provider.command`.
|
|
- Provider commands are limited to capabilities, transport status, and the Ollama API tunnel.
|
|
- Caller metadata remains an ordinary bounded string map.
|
|
- Edge and Node use a shared tunnel-tolerant liveness profile: a 30-second heartbeat interval and a 45-second response wait. Long provider prefill or streamed-response backpressure does not prematurely fence a healthy connection; a real timeout still closes only the current generation and triggers Node reconnect.
|
|
|
|
Edge and Node preserve standard OpenAI/Anthropic-compatible inference, streaming, tools, usage, provider lifecycle, capacity, queues, and reconnect behavior. They do not own interactive host programs, persistent conversations, terminal emulation, arbitrary host commands, or local filesystem execution context.
|
|
|
|
## Development
|
|
|
|
```bash
|
|
go test -count=1 ./apps/edge/...
|
|
go test -race -count=1 ./apps/edge/internal/service ./apps/edge/internal/openai
|
|
make test-e2e
|
|
```
|
|
|
|
Canonical contracts:
|
|
|
|
- `agent-contract/outer/openai-compatible-api.md`
|
|
- `agent-contract/outer/anthropic-compatible-api.md`
|
|
- `agent-contract/inner/edge-node-runtime-wire.md`
|
|
- `agent-contract/inner/control-plane-edge-wire.md`
|