Adapters — swarph_mesh.adapters

Per-provider implementations of LLMAdapter plus the registry surface (get_adapter, register_adapter).

Canonical adapter names (Tier 1 stability — reserved across major versions):

  • gemini

  • deepseek

  • claude

  • openai

  • grok

The registry is intentionally global and singleton. Tests must wrap fixture-driven registrations in reset_registry() try/finally to avoid singleton pollution across test boundaries.

Provider adapters — registry + dispatch.

Phase 1 shipped Gemini (PLAN.md §3 ship-order #1). Phase 4 adds DeepSeek (#2); subsequent Phase 4 PRs add Claude (#3), OpenAI (#4), Grok (#5).

Adapters are singletons per provider — instantiated on first request, reused for the rest of the process. This matches the “adapter registry” shape from PLAN.md §4.

swarph_mesh.adapters.get_adapter(provider, *, api_key=None)[source]

Return the adapter for provider, instantiating on first request.

v0.3.0 ships "gemini" (Phase 1) and "deepseek" (Phase 4). Other providers raise UnknownProvider; subsequent Phase 4 PRs add Claude / OpenAI / Grok.

Parameters:
  • provider (str)

  • api_key (str | None)

Return type:

LLMAdapter

swarph_mesh.adapters.register_adapter(provider, adapter)[source]

Programmatic adapter registration. Test fixtures use this to inject mocks; production consumers normally don’t need it.

Parameters:
Return type:

None

swarph_mesh.adapters.reset_registry()[source]

Test-only: clear the registry. Not part of the public API.

Return type:

None