pub use dk_protocol::{
CallEdgeRef, CodebaseSummary, ConflictDetail, DependencyRef, MergeConflict, MergeSuccess,
RecentOverwriteWarning, SubmitError, SymbolOverwrite, SymbolRef, SymbolResult,
VerifyStepResult, WatchEvent,
};
#[derive(Debug, Clone)]
pub enum Change {
Add { path: String, content: String },
Modify { path: String, content: String },
Delete { path: String },
}
impl Change {
pub fn add(path: impl Into<String>, content: impl Into<String>) -> Self {
Change::Add {
path: path.into(),
content: content.into(),
}
}
pub fn modify(path: impl Into<String>, content: impl Into<String>) -> Self {
Change::Modify {
path: path.into(),
content: content.into(),
}
}
pub fn delete(path: impl Into<String>) -> Self {
Change::Delete { path: path.into() }
}
}
#[derive(Debug, Clone, Copy)]
pub enum Depth {
Signatures,
Full,
CallGraph,
}
#[derive(Debug, Clone)]
pub enum Filter {
All,
Symbols,
Files,
}
#[derive(Debug)]
pub struct ConnectResult {
pub session_id: String,
pub changeset_id: String,
pub codebase_version: String,
pub summary: Option<CodebaseSummary>,
}
#[derive(Debug)]
pub struct ContextResult {
pub symbols: Vec<SymbolResult>,
pub call_graph: Vec<CallEdgeRef>,
pub dependencies: Vec<DependencyRef>,
pub estimated_tokens: u32,
}
#[derive(Debug)]
pub struct SubmitResult {
pub changeset_id: String,
pub status: String,
pub errors: Vec<SubmitError>,
}
#[derive(Debug)]
pub enum MergeResult {
Success(MergeSuccess),
Conflict(MergeConflict),
OverwriteWarning(RecentOverwriteWarning),
}