mirror of
https://github.com/openai/codex.git
synced 2026-11-01 19:33:35 +00:00
This is a follow-up to https://github.com/openai/codex/pull/15922. That previous PR deleted the old `tui` directory and left the new `tui_app_server` directory in place. This PR renames `tui_app_server` to `tui` and fixes up all references.
51 lines
1.5 KiB
Rust
51 lines
1.5 KiB
Rust
use codex_core::models_manager::collaboration_mode_presets::CollaborationModesConfig;
|
|
use codex_core::models_manager::collaboration_mode_presets::builtin_collaboration_mode_presets;
|
|
use codex_protocol::config_types::CollaborationModeMask;
|
|
use codex_protocol::openai_models::ModelPreset;
|
|
use std::convert::Infallible;
|
|
|
|
#[derive(Debug, Clone)]
|
|
pub(crate) struct ModelCatalog {
|
|
models: Vec<ModelPreset>,
|
|
collaboration_modes_config: CollaborationModesConfig,
|
|
}
|
|
|
|
impl ModelCatalog {
|
|
pub(crate) fn new(
|
|
models: Vec<ModelPreset>,
|
|
collaboration_modes_config: CollaborationModesConfig,
|
|
) -> Self {
|
|
Self {
|
|
models,
|
|
collaboration_modes_config,
|
|
}
|
|
}
|
|
|
|
pub(crate) fn try_list_models(&self) -> Result<Vec<ModelPreset>, Infallible> {
|
|
Ok(self.models.clone())
|
|
}
|
|
|
|
pub(crate) fn list_collaboration_modes(&self) -> Vec<CollaborationModeMask> {
|
|
builtin_collaboration_mode_presets(self.collaboration_modes_config)
|
|
}
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
use pretty_assertions::assert_eq;
|
|
|
|
#[test]
|
|
fn list_collaboration_modes_matches_core_presets() {
|
|
let collaboration_modes_config = CollaborationModesConfig {
|
|
default_mode_request_user_input: true,
|
|
};
|
|
let catalog = ModelCatalog::new(Vec::new(), collaboration_modes_config);
|
|
|
|
assert_eq!(
|
|
catalog.list_collaboration_modes(),
|
|
builtin_collaboration_mode_presets(collaboration_modes_config)
|
|
);
|
|
}
|
|
}
|