Zum Inhalt springen

Provider und Interfaces

Die wichtigsten öffentlichen Typen liegen in src/lib/types.ts.

  • ProviderKind
  • ProviderConfig
  • ProviderDescriptor
  • AgentProvider
  • AgentRequest
  • AgentDecision
  • BookmarkSorterSettings
  • ProcessBookmarkOptions
  • ProcessBookmarkResult
  • ReviewQueueItem
  • EventLogEntry
  • DashboardState
  • RuntimeMessageMap

src/lib/providers.ts enthält mehrere Implementierungen:

  • OpenAiCompatibleProvider für OpenAI, OpenRouter und LM Studio
  • AnthropicProvider
  • AzureOpenAiProvider
  • OllamaProvider
  • HeuristicFallbackProvider

Nutzen POST /chat/completions mit einer einfachen messages-Liste.

Nutzt POST /messages mit x-api-key und anthropic-version.

Nutzt deploymentspezifische URLs mit api-version.

Nutzt POST /api/chat mit stream: false und format: "json".

buildPrompt() kombiniert:

  • Bookmark-Metadaten
  • Seiteninformationen
  • Einstellungen wie Action- und Folder-Mode
  • eine gekürzte Liste von Kandidatenordnern

Die Prompt-Basis kommt aus settings.promptTemplate oder DEFAULT_PROMPT.

createSafeProvider() schützt den Rest des Systems vor unvollständiger Konfiguration oder Provider-Fehlern beim Erzeugen des Clients. Wenn notwendige Felder fehlen, wird der heuristische Provider verwendet.

Die Zielordner-Auflösung ist inzwischen auf mehrere Module verteilt:

  • bookmark-roots.ts klassifiziert Root-Bereiche wie Lesezeichenleiste oder Andere Lesezeichen
  • bookmark-tree.ts normalisiert Titel und Pfadsegmente
  • bookmark-resolver.ts ergänzt bei Bedarf den bevorzugten Root und löst vorhandene Ordner im Tree auf
  1. ProviderKind in src/lib/types.ts erweitern
  2. PROVIDERS und DEFAULT_SETTINGS in src/lib/default-settings.ts ergänzen
  3. Konfigurationsanforderungen in hasProviderConfiguration() ergänzen
  4. konkrete Provider-Klasse in src/lib/providers.ts implementieren
  5. Auswahl in createProvider() ergänzen
  6. Dashboard-Felder prüfen, falls zusätzliche Konfiguration benötigt wird