* Fix some bugs in capture of EP examples from running app
* Tweak markdown format for EP examples
* Store repo and revision in TOML front matter
* Represent cursor position using a comment line
* Allow multiple expected patches in evals
* Remove line-based scoring criteria for evals
* Add a `synthesize` subcommand to the EP cli that generates examples
from git commits
Release Notes:
- N/A
32 lines
1.3 KiB
Rust
32 lines
1.3 KiB
Rust
use std::{
|
|
path::{Path, PathBuf},
|
|
sync::LazyLock,
|
|
};
|
|
|
|
pub static DATA_DIR: LazyLock<PathBuf> = LazyLock::new(|| {
|
|
let dir = dirs::home_dir().unwrap().join(".zed_ep");
|
|
ensure_dir(&dir)
|
|
});
|
|
pub static CACHE_DIR: LazyLock<PathBuf> = LazyLock::new(|| ensure_dir(&DATA_DIR.join("cache")));
|
|
pub static REPOS_DIR: LazyLock<PathBuf> = LazyLock::new(|| ensure_dir(&DATA_DIR.join("repos")));
|
|
pub static WORKTREES_DIR: LazyLock<PathBuf> =
|
|
LazyLock::new(|| ensure_dir(&DATA_DIR.join("worktrees")));
|
|
pub static RUN_DIR: LazyLock<PathBuf> = LazyLock::new(|| {
|
|
DATA_DIR
|
|
.join("runs")
|
|
.join(chrono::Local::now().format("%d-%m-%y-%H_%M_%S").to_string())
|
|
});
|
|
pub static LATEST_EXAMPLE_RUN_DIR: LazyLock<PathBuf> = LazyLock::new(|| DATA_DIR.join("latest"));
|
|
pub static LATEST_FAILED_EXAMPLES_DIR: LazyLock<PathBuf> =
|
|
LazyLock::new(|| DATA_DIR.join("latest_failed"));
|
|
pub static LLM_CACHE_DB: LazyLock<PathBuf> = LazyLock::new(|| CACHE_DIR.join("llm_cache.sqlite"));
|
|
pub static SYNTHESIZE_STATE_FILE: LazyLock<PathBuf> =
|
|
LazyLock::new(|| DATA_DIR.join("synthesize_state.json"));
|
|
pub static FAILED_EXAMPLES_DIR: LazyLock<PathBuf> =
|
|
LazyLock::new(|| ensure_dir(&RUN_DIR.join("failed")));
|
|
|
|
fn ensure_dir(path: &Path) -> PathBuf {
|
|
std::fs::create_dir_all(path).expect("Failed to create directory");
|
|
path.to_path_buf()
|
|
}
|