Codex Handbook
memories/write/src/extensions/ad_hoc.rs 30 lines
use crate::memory_extensions_root;use std::path::Path;use tokio::io::AsyncWriteExt;pub(super) const INSTRUCTIONS: &str =    include_str!("../../templates/extensions/ad_hoc/instructions.md");pub(super) async fn seed_instructions(memory_root: &Path) -> std::io::Result<()> {    let extension_root = memory_extensions_root(memory_root).join("ad_hoc");    let instructions_path = extension_root.join("instructions.md");    tokio::fs::create_dir_all(&extension_root).await?;    match tokio::fs::OpenOptions::new()        .write(true)        .create_new(true)        .open(&instructions_path)        .await    {        Ok(mut file) => {            file.write_all(INSTRUCTIONS.as_bytes()).await?;            file.flush().await        }        Err(err) if err.kind() == std::io::ErrorKind::AlreadyExists => Ok(()),        Err(err) => Err(err),    }}#[cfg(test)]#[path = "ad_hoc_tests.rs"]mod tests;