use crate::filesystem::Filesystem;
const PROMPT_PATH: &str = ".lh_system_prompt.txt";
pub(crate) async fn load() -> Option<String> {
let fs = super::shared_opfs();
let bytes = fs.read(PROMPT_PATH).await.ok()?;
if bytes.is_empty() {
return None;
}
let text = String::from_utf8(bytes).ok()?;
let trimmed = text.trim();
if trimmed.is_empty() {
return None;
}
Some(trimmed.to_string())
}
pub(crate) async fn save(content: &str) -> Result<(), String> {
let fs = super::shared_opfs();
let trimmed = content.trim();
if trimmed.is_empty() {
let _ = fs.delete(PROMPT_PATH).await;
return Ok(());
}
fs.write_atomic(PROMPT_PATH, trimmed.as_bytes())
.await
.map_err(|e| format!("write: {e}"))
}