/**
 * LLM Provider Abstraction Types
 *
 * Supports multiple LLM providers for AI-powered features:
 * - Anthropic (Claude)
 * - OpenAI (GPT-4, GPT-4o)
 * - Azure OpenAI
 * - AWS Bedrock
 * - Ollama (local)
 * - Google Vertex AI
 * - Cloudflare Workers AI (gpt-oss-120b)
 */
/**
 * Model alias to full model ID mapping
 *
 * SINGLE SOURCE OF TRUTH for model aliases.
 * When providers release new models, update this mapping ONLY.
 *
 * Usage:
 * - Use aliases (opus, sonnet, haiku) in AGENT.md, SKILL.md, and configs
 * - resolveModelAlias('opus') → 'claude-opus-4-8'
 *
 * Updated: 2026-06-01
 */
export const MODEL_ALIASES = {
    // Anthropic Claude aliases
    'opus': 'claude-opus-4-8',
    'sonnet': 'claude-sonnet-4-6',
    'haiku': 'claude-haiku-4-5-20251001',
    // AWS Bedrock aliases (includes provider prefix)
    'bedrock:opus': 'anthropic.claude-opus-4-8-v1:0',
    'bedrock:sonnet': 'anthropic.claude-sonnet-4-6-v1:0',
    'bedrock:haiku': 'anthropic.claude-haiku-4-5-20251001-v1:0',
    // Cloudflare Workers AI aliases
    'workers-ai:gpt-oss': '@cf/openai/gpt-oss-120b',
};
/**
 * Resolve model alias to full model ID
 *
 * @param modelOrAlias - Model alias (opus, sonnet, haiku) or full model ID
 * @param provider - Optional provider context for provider-specific resolution
 * @returns Full model ID
 *
 * @example
 * resolveModelAlias('opus') // → 'claude-opus-4-8'
 * resolveModelAlias('opus', 'bedrock') // → 'anthropic.claude-opus-4-8-v1:0'
 * resolveModelAlias('claude-opus-4-8') // → 'claude-opus-4-8' (passthrough)
 */
export function resolveModelAlias(modelOrAlias, provider) {
    // Check provider-specific alias first
    if (provider) {
        const providerAlias = `${provider}:${modelOrAlias}`;
        if (MODEL_ALIASES[providerAlias]) {
            return MODEL_ALIASES[providerAlias];
        }
    }
    // Check generic alias
    if (MODEL_ALIASES[modelOrAlias]) {
        return MODEL_ALIASES[modelOrAlias];
    }
    // Return as-is (already a full model ID)
    return modelOrAlias;
}
/**
 * Default pricing for known models (USD per 1M tokens)
 * Updated: 2026-04-16
 */
export const MODEL_PRICING = {
    // Anthropic (use full IDs for API calls, aliases for display)
    'claude-opus-4-8': { inputPer1M: 5, outputPer1M: 25 },
    'claude-opus-4-7': { inputPer1M: 5, outputPer1M: 25 },
    'claude-opus-4-6': { inputPer1M: 5, outputPer1M: 25 },
    'claude-sonnet-4-6': { inputPer1M: 3, outputPer1M: 15 },
    'claude-haiku-4-5-20251001': { inputPer1M: 1, outputPer1M: 5 },
    // Aliases pointing to same pricing
    'opus': { inputPer1M: 5, outputPer1M: 25 },
    'sonnet': { inputPer1M: 3, outputPer1M: 15 },
    'haiku': { inputPer1M: 1, outputPer1M: 5 },
    // OpenAI
    'gpt-5.3': { inputPer1M: 5, outputPer1M: 15 },
    'gpt-5.3-mini': { inputPer1M: 0.15, outputPer1M: 0.6 },
    'o3-mini': { inputPer1M: 3, outputPer1M: 12 },
    // Google
    'gemini-3-pro': { inputPer1M: 1.25, outputPer1M: 5 },
    'gemini-3-flash': { inputPer1M: 0.075, outputPer1M: 0.3 },
    // Local (free)
    'ollama/*': { inputPer1M: 0, outputPer1M: 0 },
    // Cloudflare Workers AI
    '@cf/openai/gpt-oss-120b': { inputPer1M: 0.35, outputPer1M: 0.75 },
};
/**
 * Recommended models by use case
 */
export const RECOMMENDED_MODELS = {
    // Deep analysis - needs reasoning
    'deep-analysis': {
        'claude-code': 'opus', // Uses MAX subscription via CLI - Opus 4.8 for best quality
        'anthropic': 'claude-sonnet-4-6',
        'openai': 'gpt-5.3',
        'azure-openai': 'gpt-5.3',
        'bedrock': 'anthropic.claude-sonnet-4-6-v1:0',
        'ollama': 'llama3.1:70b',
        'vertex-ai': 'gemini-3-pro',
        'workers-ai': '@cf/openai/gpt-oss-120b',
    },
    // Quick tasks - cost-effective
    'quick-task': {
        'claude-code': 'haiku', // Uses MAX subscription via CLI
        'anthropic': 'claude-haiku-4-5-20251001',
        'openai': 'gpt-5.3-mini',
        'azure-openai': 'gpt-5.3-mini',
        'bedrock': 'anthropic.claude-haiku-4-5-20251001-v1:0',
        'ollama': 'llama3.1:8b',
        'vertex-ai': 'gemini-3-flash',
        'workers-ai': '@cf/openai/gpt-oss-120b',
    },
};
//# sourceMappingURL=types.js.map