Skip to main content

cc_switch_lib/
lib.rs

1// Core modules
2mod app_config;
3mod claude_mcp;
4mod claude_plugin;
5mod codex_config;
6pub mod commands;
7mod config;
8mod database;
9mod deeplink;
10mod error;
11mod gemini_config;
12mod gemini_mcp;
13mod hermes_config;
14mod import_export;
15mod mcp;
16mod openclaw_config;
17mod opencode_config;
18mod prompt;
19mod prompt_files;
20mod provider;
21mod provider_defaults;
22mod proxy;
23mod services;
24mod settings;
25mod store;
26mod sync_policy;
27mod usage_script;
28
29#[cfg(test)]
30pub(crate) mod test_support;
31
32// CLI module
33pub mod cli;
34
35// Public exports
36pub use app_config::{AppType, McpApps, McpServer, MultiAppConfig};
37pub use claude_plugin::{
38    sync_claude_plugin_on_provider_switch, sync_claude_plugin_on_settings_toggle,
39};
40pub use codex_config::{
41    codex_config_text_from_settings, get_codex_auth_path, get_codex_config_path,
42    write_codex_live_atomic,
43};
44pub use config::{
45    check_legacy_config_dir_migration_needed, get_app_config_dir, get_claude_mcp_path,
46    get_claude_settings_path, legacy_config_migration_paths, migrate_legacy_config_dir_if_needed,
47    read_json_file, skip_legacy_config_dir_migration,
48};
49pub use database::{Database, FailoverQueueItem};
50pub use deeplink::{import_provider_from_deeplink, parse_deeplink_url, DeepLinkImportRequest};
51pub use error::AppError;
52pub use import_export::export_config_to_file;
53pub use mcp::{
54    import_from_claude, import_from_codex, import_from_gemini, read_codex_live_mcp_servers_map,
55    remove_server_from_claude, remove_server_from_codex, remove_server_from_gemini,
56    sync_enabled_to_claude, sync_enabled_to_codex, sync_enabled_to_gemini,
57    sync_single_server_to_claude, sync_single_server_to_codex, sync_single_server_to_gemini,
58};
59pub use provider::{Provider, ProviderMeta};
60pub use proxy::{ProxyConfig, ProxyServerInfo, ProxyStatus};
61pub use services::{
62    AuthService, ConfigService, CredentialStatus, EndpointLatency, ExtraUsage, HealthStatus,
63    ManagedAuthAccount, ManagedAuthDeviceCodeResponse, ManagedAuthStatus, McpLiveDriftEntry,
64    McpLiveDriftKind, McpLiveDriftReport, McpService, PromptService, ProviderService, ProxyService,
65    QuotaTier, SkillService, SpeedtestService, StreamCheckConfig, StreamCheckResult,
66    StreamCheckService, SubscriptionQuota, SyncDecision, WebDavSyncService, WebDavSyncSummary,
67};
68pub use settings::{
69    get_enable_claude_plugin_integration, get_skip_claude_onboarding, get_webdav_sync_settings,
70    set_enable_claude_plugin_integration, set_skip_claude_onboarding, set_webdav_sync_settings,
71    update_settings, update_webdav_sync_status, webdav_jianguoyun_preset, AppSettings,
72    WebDavSyncSettings, WebDavSyncStatus,
73};
74pub use store::AppState;