Skip to content

feat: LLMProviders.fromEnv(env) auto-discovery constructor #7

@stackbilt-admin

Description

@stackbilt-admin

Summary

Add a convenience factory method that auto-discovers available LLM providers from a Cloudflare Worker env object, eliminating manual config assembly.

Motivation

From the frontend team (Oracle project): they're manually checking for each key (env.ANTHROPIC_API_KEY, env.OPENAI_API_KEY, env.AI, etc.) and building the config object by hand. This is boilerplate that the package should handle.

Proposed API

// Auto-discover all available providers from worker env
const llm = LLMProviders.fromEnv(env);

// With overrides
const llm = LLMProviders.fromEnv(env, {
  defaultProvider: 'anthropic',
  costOptimization: true,
});

Detection logic

Scan env for known keys:

  • env.ANTHROPIC_API_KEY → configure Anthropic provider
  • env.OPENAI_API_KEY → configure OpenAI provider
  • env.GROQ_API_KEY → configure Groq provider
  • env.CEREBRAS_API_KEY → configure Cerebras provider
  • env.AI (binding) → configure Cloudflare Workers AI provider

Acceptance criteria

  • Static method LLMProviders.fromEnv(env, overrides?)
  • Only configures providers whose keys/bindings are present
  • Supports optional overrides for defaultProvider, costOptimization, etc.
  • Unit tests covering partial env (e.g., only 2 of 5 providers available)
  • Exported from package entry point

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions