pub mod autogen;
pub mod crewai;
pub mod langgraph;
pub mod pydantic_ai;
pub mod swarm;
use crate::error::Result;
use crate::schema::{Agent, Memory, Model, Tool};
use std::path::Path;
#[derive(Debug, Default)]
pub struct ExtractedAssets {
pub agents: Vec<Agent>,
pub tools: Vec<Tool>,
pub models: Vec<Model>,
pub memory: Vec<Memory>,
}
pub fn extract_from_file(path: &Path, framework: &str) -> Result<ExtractedAssets> {
match framework {
"pydantic-ai" => pydantic_ai::extract(path),
"langgraph" => langgraph::extract(path),
"crewai" => crewai::extract(path),
"autogen" => autogen::extract(path),
"swarm" => swarm::extract(path),
_ => {
Ok(ExtractedAssets::default())
}
}
}
#[cfg(test)]
mod tests {
#[test]
fn test_extractor_module() {
}
}