/**
 * @license
 * Copyright 2025 OElite Platform
 * SPDX-License-Identifier: Apache-2.0
 */
export const DEFAULT_ARC_MODEL = 'coder-model';
export const DEFAULT_ARC_FLASH_MODEL = 'coder-model';
export const DEFAULT_ARC_EMBEDDING_MODEL = 'text-embedding-v4';
export const DEFAULT_GEMINI_MODEL = 'coder-model';
export const DEFAULT_GEMINI_FLASH_MODEL = 'gemini-2.5-flash';
export const DEFAULT_GEMINI_FLASH_LITE_MODEL = 'gemini-2.5-flash-lite';
export const DEFAULT_GEMINI_MODEL_AUTO = 'auto';
export const DEFAULT_GEMINI_EMBEDDING_MODEL = 'gemini-embedding-001';
// Some thinking models do not default to dynamic thinking which is done by a value of -1
export const DEFAULT_THINKING_MODE = -1;
/**
 * Determines the effective model to use, applying fallback logic if necessary.
 *
 * When fallback mode is active, this function enforces the use of the standard
 * fallback model. However, it makes an exception for "lite" models (any model
 * with "lite" in its name), allowing them to be used to preserve cost savings.
 * This ensures that "pro" models are always downgraded, while "lite" model
 * requests are honored.
 *
 * @param isInFallbackMode Whether the application is in fallback mode.
 * @param requestedModel The model that was originally requested.
 * @returns The effective model name.
 */
export function getEffectiveModel(isInFallbackMode, requestedModel) {
    // If we are not in fallback mode, simply use the requested model.
    if (!isInFallbackMode) {
        return requestedModel;
    }
    // If a "lite" model is requested, honor it. This allows for variations of
    // lite models without needing to list them all as constants.
    if (requestedModel.includes('lite')) {
        return requestedModel;
    }
    // Default fallback for Gemini CLI.
    return DEFAULT_GEMINI_FLASH_MODEL;
}
//# sourceMappingURL=models.js.map