Skip to main content

codex_external_agent_migration/
lib.rs

1//! Migration helpers for importing external-agent configuration into Codex.
2
3mod config_values;
4mod detect;
5mod hooks_cla;
6mod hooks_common;
7mod hooks_cur;
8mod mcp;
9mod memory;
10mod memory_import;
11mod migration_source;
12mod model;
13mod plugins;
14mod reporting;
15mod rewrite;
16mod scope;
17mod service;
18pub mod sessions;
19mod source;
20mod source_cla;
21mod source_cur;
22mod subagents;
23mod utils;
24
25use std::io;
26
27pub use hooks_cla::hook_migration_event_names_cla;
28pub use hooks_cla::hooks_migration_description_cla;
29pub use hooks_cla::import_hooks_cla;
30#[cfg(test)]
31use hooks_common::EXTERNAL_AGENT_HOOKS_SUBDIR;
32#[cfg(test)]
33use hooks_common::EXTERNAL_AGENT_MIGRATED_HOOKS_SUBDIR;
34#[cfg(test)]
35use hooks_common::SOURCE_EXTERNAL_AGENT_NAME;
36#[cfg(test)]
37use hooks_common::copy_hook_scripts;
38pub(crate) use hooks_common::external_agent_config_dir;
39#[cfg(test)]
40use hooks_common::external_agent_project_dir_env_var;
41pub(crate) use hooks_common::json_u64;
42pub(crate) use hooks_common::rewrite_hook_command_for_source;
43#[cfg(test)]
44use hooks_common::shell_single_quote;
45pub(crate) use hooks_common::write_hook_migration;
46pub use hooks_cur::hook_migration_event_names_cur;
47pub use hooks_cur::import_hooks_cur;
48#[cfg(test)]
49use mcp::EXTERNAL_AGENT_MCP_CONFIG_FILE;
50pub use mcp::build_mcp_config_from_external;
51pub use mcp::build_mcp_config_from_json_file;
52#[cfg(test)]
53use mcp::external_agent_project_config_file;
54#[cfg(test)]
55use mcp::parse_env_placeholder;
56pub use memory::ExternalMemoryFile;
57pub use memory::discover_external_memory_files;
58pub use rewrite::RewriteProfile;
59pub use service::ExternalAgentConfigDetectOptions;
60pub use service::ExternalAgentConfigImportItemResult;
61pub use service::ExternalAgentConfigImportOutcome;
62pub use service::ExternalAgentConfigImportRawError;
63pub use service::ExternalAgentConfigImportSuccess;
64pub use service::ExternalAgentConfigMigrationItem;
65pub use service::ExternalAgentConfigMigrationItemType;
66pub use service::ExternalAgentConfigService;
67pub use service::ExternalAgentSessionImportLimits;
68pub use service::MigrationDetails;
69pub use service::NamedMigration;
70pub use service::PendingPluginImport;
71pub use service::PluginImportOutcome;
72pub use service::PluginsMigration;
73pub use service::record_import_error;
74pub(crate) use source::ClaSource;
75pub(crate) use source::CurSource;
76pub(crate) use source::InstructionSourceGroup;
77#[cfg(test)]
78use subagents::FrontmatterValue;
79#[cfg(test)]
80use subagents::agent_metadata;
81pub use subagents::count_missing_subagents;
82pub use subagents::import_subagents_with_rewrite_profile;
83pub use subagents::missing_subagent_names;
84#[cfg(test)]
85use subagents::parse_document_content;
86#[cfg(test)]
87use subagents::render_agent_toml;
88#[cfg(test)]
89use subagents::subagent_target_file;
90
91fn invalid_data_error(message: impl Into<String>) -> io::Error {
92    io::Error::new(io::ErrorKind::InvalidData, message.into())
93}
94
95#[cfg(test)]
96#[path = "lib_tests.rs"]
97mod tests;