"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.modelThrottledBanner = exports.modelUnavailableBanner = exports.getModelSelectionChatItem = exports.modelSelectionForRegion = exports.BedrockModel = void 0;
const mynah_ui_1 = require("@aws/mynah-ui");
/**
 * @deprecated use aws/chat/listAvailableModels server request instead
 */
var BedrockModel;
(function (BedrockModel) {
    BedrockModel["CLAUDE_SONNET_4_20250514_V1_0"] = "CLAUDE_SONNET_4_20250514_V1_0";
    BedrockModel["CLAUDE_3_7_SONNET_20250219_V1_0"] = "CLAUDE_3_7_SONNET_20250219_V1_0";
})(BedrockModel || (exports.BedrockModel = BedrockModel = {}));
const modelRecord = {
    [BedrockModel.CLAUDE_3_7_SONNET_20250219_V1_0]: { label: 'Claude Sonnet 3.7' },
    [BedrockModel.CLAUDE_SONNET_4_20250514_V1_0]: { label: 'Claude Sonnet 4' },
};
const modelOptions = Object.entries(modelRecord).map(([value, { label }]) => ({
    value,
    label,
}));
const modelSelection = {
    type: 'select',
    id: 'model-selection',
    options: modelOptions,
    mandatory: true,
    hideMandatoryIcon: true,
    border: false,
    autoWidth: true,
};
/**
 * @deprecated use aws/chat/listAvailableModels server request instead
 */
exports.modelSelectionForRegion = {
    'us-east-1': modelSelection,
    'eu-central-1': {
        ...modelSelection,
        options: modelOptions.filter(option => option.value !== BedrockModel.CLAUDE_SONNET_4_20250514_V1_0),
    },
};
const getModelSelectionChatItem = (modelName) => ({
    type: mynah_ui_1.ChatItemType.DIRECTIVE,
    contentHorizontalAlignment: 'center',
    fullWidth: true,
    body: `Switched model to ${modelName}`,
});
exports.getModelSelectionChatItem = getModelSelectionChatItem;
exports.modelUnavailableBanner = {
    messageId: 'model-unavailable-banner',
    header: {
        icon: 'warning',
        iconStatus: 'warning',
        body: '### Model Unavailable',
    },
    body: `The model you've selected is experiencing high load. Please switch to another model and try again.`,
    canBeDismissed: true,
};
exports.modelThrottledBanner = {
    messageId: 'model-throttled-banner',
    header: {
        icon: 'warning',
        iconStatus: 'warning',
        body: '### Model Unavailable',
    },
    body: `I am experiencing high traffic, please try again shortly.`,
    canBeDismissed: true,
};
//# sourceMappingURL=modelSelection.js.map