/**
 * built-in-llm-providers.ts
 *
 * Canonical hostname allow-list for all LLM provider adapters shipped with
 * @connexum/ai-governance.  The RawHttpInterceptor uses this as its default
 * allow-list so that calls made through the official SDK adapters pass through
 * without triggering the unknown-host policy.
 *
 * Rules:
 *   - Exact domain matching.  Sub-domains must be listed separately unless
 *     the suffix matcher is used (entries prefixed with a leading dot ".").
 *   - A leading "." means "this domain and any sub-domain".  For example
 *     ".amazonaws.com" matches "bedrock-runtime.us-east-1.amazonaws.com".
 *   - Ollama runs on localhost and is intentionally excluded.  It is
 *     registered via addAllowedOrigin() at the application level because the
 *     base URL is user-configurable.
 *
 * @connexum/ai-governance
 */
// ---------------------------------------------------------------------------
// Canonical list
// ---------------------------------------------------------------------------
/**
 * Built-in LLM provider records derived from every adapter in
 * src/llm-adapters/.
 *
 * Adapter files:
 *   claude.ts        -> api.anthropic.com
 *   openai.ts        -> api.openai.com
 *   gemini.ts        -> generativelanguage.googleapis.com
 *   google.ts        -> aiplatform.googleapis.com (Vertex AI, sub-domain per region)
 *   azure-openai.ts  -> *.openai.azure.com (sub-domain per Azure resource)
 *   bedrock.ts       -> bedrock-runtime.*.amazonaws.com (sub-domain per region)
 *   ollama.ts        -> excluded (loopback, user-configurable)
 */
export const BUILT_IN_LLM_PROVIDERS = [
    {
        name: 'Anthropic (Claude)',
        hosts: ['api.anthropic.com'],
        adapterFile: 'claude.ts',
    },
    {
        name: 'OpenAI',
        hosts: ['api.openai.com'],
        adapterFile: 'openai.ts',
    },
    {
        name: 'Google Generative Language (Gemini)',
        hosts: ['generativelanguage.googleapis.com'],
        adapterFile: 'gemini.ts',
    },
    {
        name: 'Google Vertex AI (aiplatform)',
        // Regional sub-domains: <region>-aiplatform.googleapis.com
        hosts: ['.googleapis.com'],
        adapterFile: 'google.ts',
    },
    {
        name: 'Azure OpenAI',
        // Resource-specific sub-domains: <resource>.openai.azure.com
        hosts: ['.openai.azure.com'],
        adapterFile: 'azure-openai.ts',
    },
    {
        name: 'AWS Bedrock',
        // Regional sub-domains: bedrock-runtime.<region>.amazonaws.com
        hosts: ['.amazonaws.com'],
        adapterFile: 'bedrock.ts',
    },
];
// ---------------------------------------------------------------------------
// Flat hostname set (used internally by RawHttpInterceptor)
// ---------------------------------------------------------------------------
/**
 * Flat array of all host entries across all built-in providers.
 * Returned as-is; the interceptor applies suffix semantics for "." prefixes.
 */
export const BUILT_IN_LLM_HOSTNAMES = BUILT_IN_LLM_PROVIDERS
    .flatMap((p) => p.hosts);
//# sourceMappingURL=built-in-llm-providers.js.map