MCPcopy Create free account
hub / github.com/ChrisFeldmeier/OpenCodeRust / parse_markdown_agent

Function parse_markdown_agent

crates/opencode-config/src/loader.rs:729–745  ·  view source on GitHub ↗

Parse a markdown file as an agent definition.

(path: &Path, base_dir: &Path)

Source from the content-addressed store, hash-verified

727
728/// Parse a markdown file as an agent definition.
729fn parse_markdown_agent(path: &Path, base_dir: &Path) -> Option<(String, AgentConfig)> {
730 let content = fs::read_to_string(path).ok()?;
731 let (frontmatter, body) = split_frontmatter(&content);
732
733 let name = derive_name_from_path(path, base_dir, &["agent", "agents", "mode", "modes"]);
734
735 let mut config = if let Some(fm) = frontmatter {
736 serde_json::from_value::<AgentConfig>(serde_yaml_frontmatter_to_json(&fm))
737 .unwrap_or_default()
738 } else {
739 AgentConfig::default()
740 };
741
742 config.prompt = Some(body.trim().to_string());
743
744 Some((name, config))
745}
746
747/// Split markdown content into optional YAML frontmatter and body.
748fn split_frontmatter(content: &str) -> (Option<String>, String) {

Calls 3

split_frontmatterFunction · 0.85
derive_name_from_pathFunction · 0.85