copilot_provider#

Maps inference.provider/model/base_url config to the env vars the Copilot CLI needs for BYOK (bring-your-own-key) model access.

Mirrors the pattern in kernelfoundry.algorithm.inference_server (register_inference_provider / _resolve_inference_target), but for “how do I map a provider onto Copilot CLI env vars” instead of “which class do I instantiate”. Public providers (openai, anthropic) are registered here, internal providers can be registered by an internal plugin module on import.

Functions

register_copilot_env_resolver(provider, resolver)

Register (or override) the Copilot CLI env resolver for an inference provider name.

resolve_copilot_env(provider, model[, base_url])

Return Copilot CLI COPILOT_* env var overrides for provider/model, or None.

kernelfoundry.algorithm.utils.copilot_provider.register_copilot_env_resolver(provider: str, resolver: Callable[[...], dict[str, str] | None]) → None[source]#

Register (or override) the Copilot CLI env resolver for an inference provider name.

kernelfoundry.algorithm.utils.copilot_provider.resolve_copilot_env(provider: str | None, model: str, base_url: str | None = None) → dict[str, str] | None[source]#

Return Copilot CLI COPILOT_* env var overrides for provider/model, or None.

Returns None (rather than raising) when provider has no registered resolver, or when the resolver can’t find the credentials it needs (e.g. a missing API key) – logging a warning either way. None means “leave Copilot’s env untouched”, so the CLI falls back to its own default model / whatever COPILOT_* vars the caller has already exported by hand.