mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-27 15:32:53 +02:00
feat(llm): add BYOK tier + 4 provider adapters (OpenAI, Anthropic, Gemini, Mistral)
Phase 1-3 of BYOK support. Introduces a 5th LLM tier 'byok' that routes to user-provided API keys via direct browser fetches. shared-llm additions: - LlmTier extended with 'byok' (rank 3, between mana-server and cloud) - ByokBackend: LlmBackend implementation that delegates key lookup to an app-provided resolver callback, then dispatches to the right provider adapter - 4 provider adapters: - OpenAI (gpt-5, gpt-4o, o1 family) - Anthropic (Claude Opus/Sonnet/Haiku 4.6) with CORS header - Gemini (2.5 Pro/Flash) — REST API with different message format - Mistral — OpenAI-compatible, reuses shared openai-compat adapter - Pricing table for 20+ models with USD per 1M tokens - estimateCost() + formatCost() helpers Keys stay device-local (IndexedDB in next phase). Browser-direct fetches mean keys never touch Mana's server. Updates two existing tier maps (memoro DetailView, SourceBadge) to include the new tier. Planning doc at docs/architecture/BYOK_PLAN.md. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
3817111f80
commit
a33857fa39
15 changed files with 1026 additions and 11 deletions
|
|
@ -44,6 +44,26 @@ export { LlmOrchestrator, type LlmOrchestratorOptions } from './orchestrator';
|
|||
export { BrowserBackend } from './backends/browser';
|
||||
export { CloudBackend, type CloudBackendOptions } from './backends/cloud';
|
||||
export { ManaServerBackend, type ManaServerBackendOptions } from './backends/mana-server';
|
||||
export {
|
||||
ByokBackend,
|
||||
type ByokBackendOptions,
|
||||
type ByokKeyResolver,
|
||||
type ResolvedByokKey,
|
||||
type ByokUsageCallback,
|
||||
} from './backends/byok';
|
||||
export {
|
||||
BUILTIN_BYOK_PROVIDERS,
|
||||
openaiProvider,
|
||||
anthropicProvider,
|
||||
geminiProvider,
|
||||
mistralProvider,
|
||||
type ByokProvider,
|
||||
type ByokProviderId,
|
||||
type ByokCallOptions,
|
||||
} from './backends/byok-providers';
|
||||
|
||||
// Pricing
|
||||
export { MODEL_PRICING, estimateCost, formatCost, type ModelPricing } from './pricing';
|
||||
|
||||
// Singleton store + Svelte 5 reactive hooks
|
||||
export {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue