f363717f5f
Add a new 'github' model provider backed by the Copilot API (api.githubcopilot.com), with OAuth device flow for authentication. - New src/auth/github.ts: device flow login, token storage at ~/.config/flynn/auth.json with 0600 permissions - New src/models/github.ts: OpenAI-compatible client with streaming, tool calling, and Copilot-specific headers - Add 'github' to provider enum in config schema - Register provider in daemon factory and TUI client factory - Refactor TUI to use provider-agnostic client factory (was hardcoded to AnthropicClient for all tiers) - Add /login command to TUI for interactive OAuth authorization - Add Copilot model cost tracking entries
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
export { AnthropicClient, type AnthropicClientConfig } from './anthropic.js';
|
|
export { OpenAIClient, type OpenAIClientConfig } from './openai.js';
|
|
export { GeminiClient, type GeminiClientConfig } from './gemini.js';
|
|
export { BedrockClient, type BedrockClientConfig } from './bedrock.js';
|
|
export { GitHubModelsClient, type GitHubModelsClientConfig } from './github.js';
|
|
export { OllamaClient, type OllamaClientConfig } from './local/index.js';
|
|
export { LlamaCppClient, type LlamaCppClientConfig } from './local/index.js';
|
|
export { ModelRouter, type ModelRouterConfig, type ModelTier } from './router.js';
|
|
export { withRetry, isRetryable, DEFAULT_RETRY_CONFIG, type RetryConfig } from './retry.js';
|
|
export { estimateCost, MODEL_COSTS_PER_MILLION } from './costs.js';
|
|
export {
|
|
isSupportedImage,
|
|
attachmentToImageSource,
|
|
buildUserMessage,
|
|
getMessageText,
|
|
hasImages,
|
|
} from './media.js';
|
|
export type {
|
|
Message,
|
|
MessageContentPart,
|
|
ImageSource,
|
|
ChatRequest,
|
|
ChatResponse,
|
|
ChatStreamEvent,
|
|
TokenUsage,
|
|
ModelClient,
|
|
StreamingModelClient,
|
|
ToolDefinition,
|
|
ModelToolCall,
|
|
ContentBlock,
|
|
ToolResultEntry,
|
|
ToolMessage,
|
|
ConversationMessage,
|
|
} from './types.js';
|