use serde::{Deserialize, Serialize};
#[derive(Serialize)]
pub(super) struct IndexListResponse {
pub indexes: Vec<String>,
}
#[derive(serde::Serialize)]
pub(super) struct IndexDetailEntry {
pub id: String,
pub root_path: Option<String>,
pub size_bytes: Option<u64>,
}
#[derive(Deserialize)]
pub struct CreateIndexRequest {
pub id: String,
pub root_path: std::path::PathBuf,
#[serde(default)]
pub include_paths: Option<Vec<String>>,
#[serde(default)]
pub exclude_globs: Option<Vec<String>>,
#[serde(default)]
pub extensions: Option<Vec<String>>,
#[serde(default)]
pub domain_terms: Option<Vec<String>>,
#[serde(default)]
pub path_filter: Option<Vec<String>>,
#[serde(default)]
pub include_docs: Option<bool>,
#[serde(default)]
pub respect_gitignore: Option<bool>,
#[serde(default)]
pub lexical_only: Option<bool>,
#[serde(default)]
pub skip_kg: Option<bool>,
#[serde(default)]
pub defer_embed: Option<bool>,
#[serde(default)]
pub extra_skip_dirs: Option<Vec<String>>,
#[serde(default)]
pub data_file_max_bytes: Option<u64>,
}
#[derive(Deserialize)]
pub struct IndexFileRequest {
pub path: String,
pub content: String,
}
#[derive(Deserialize)]
pub struct RemoveFileRequest {
pub path: String,
}