fa417a347d44a8ba56969aa0a80917b8b6efc408
Offline-verifiable building blocks for GitHub Copilot; network paths are the flagged live-verification risk and are covered by pure unit tests only. - copilot/device_flow.rs: OAuth device flow (RFC 8628). No hardcoded client id — ai-harness must register its own GitHub OAuth app and pass it in. Pure parse_poll_response (pending/slow_down/success/failed) + slow_down interval bump; request_device_code/poll_once/poll_for_token (injected sleep). - copilot/token.rs: copilot_internal/v2/token exchange with cache + single-flight refresh (tokio::Mutex) and direct-Bearer fallback on 401/403/404; needs_refresh honors a 120s skew and expires_at==0 = never. - copilot/provider.rs: CopilotProvider over api.githubcopilot.com, routing each model to chat/responses/anthropic codec by its /models supported_endpoints (parse_models + codec_for_endpoints); headers (X-GitHub-Api-Version, Openai-Intent, x-initiator, Copilot-Vision-Request, anthropic-beta for anthropic models). - 11 unit tests (device-flow parsing, token refresh math, codec routing, /models parsing). Deferred (needs live API + TUI work): EngineHandle::login device-flow modal, startup /models fetch, auth.json-backed registry wiring. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ai-harness
A terminal AI coding harness in Rust — ratatui TUI, GitHub Copilot / OpenAI / Anthropic providers, and fully config-driven multi-agent orchestration inspired by opencode and oh-my-opencode-slim.
Status: design phase. The full design lives in docs/.
Languages
Rust
100%