use serde::{Deserialize, Serialize};
use std::path::PathBuf;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ResolveOptions {
pub data_dir: Option<PathBuf>,
pub actor: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct InitOptions {
pub no_agents_md: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InitResult {
pub actor_id: String,
pub data_dir: PathBuf,
pub created_agents_md: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IssueCreateOptions {
pub title: String,
pub body: String,
pub labels: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueCreateResult {
pub issue_id: String,
pub event_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IssueListOptions {
pub state: Option<String>,
pub label: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueListResult {
pub issues: Vec<libgrite_core::IssueSummary>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IssueShowOptions {
pub issue_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueShowResult {
pub issue: libgrite_core::IssueProjection,
pub events: Vec<libgrite_core::Event>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IssueUpdateOptions {
pub issue_id: String,
pub title: Option<String>,
pub body: Option<String>,
pub acquire_lock: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueUpdateResult {
pub issue_id: String,
pub event_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IssueCommentOptions {
pub issue_id: String,
pub body: String,
pub acquire_lock: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueCommentResult {
pub issue_id: String,
pub event_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IssueStateOptions {
pub issue_id: String,
pub acquire_lock: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueStateResult {
pub issue_id: String,
pub event_id: String,
pub action: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IssueLabelOptions {
pub issue_id: String,
pub add: Vec<String>,
pub remove: Vec<String>,
pub acquire_lock: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueLabelResult {
pub issue_id: String,
pub event_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IssueAssignOptions {
pub issue_id: String,
pub add: Vec<String>,
pub remove: Vec<String>,
pub acquire_lock: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueAssignResult {
pub issue_id: String,
pub event_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IssueLinkOptions {
pub issue_id: String,
pub url: String,
pub note: Option<String>,
pub acquire_lock: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueLinkResult {
pub issue_id: String,
pub event_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IssueAttachOptions {
pub issue_id: String,
pub name: String,
pub sha256: String,
pub mime: String,
pub acquire_lock: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueAttachResult {
pub issue_id: String,
pub event_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DepAddOptions {
pub issue_id: String,
pub target_id: String,
pub dep_type: String,
pub acquire_lock: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DepAddResult {
pub issue_id: String,
pub target_id: String,
pub event_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DepRemoveOptions {
pub issue_id: String,
pub target_id: String,
pub dep_type: String,
pub acquire_lock: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DepRemoveResult {
pub issue_id: String,
pub target_id: String,
pub event_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DepListOptions {
pub issue_id: String,
pub reverse: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DepListResult {
pub deps: Vec<libgrite_core::IssueProjection>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DepTopoOptions {
pub state: Option<String>,
pub label: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DepTopoResult {
pub issues: Vec<libgrite_core::IssueProjection>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ActorInitOptions {
pub label: Option<String>,
pub generate_key: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ActorInitResult {
pub actor_id: String,
pub label: Option<String>,
pub data_dir: PathBuf,
pub public_key: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ActorShowOptions {
pub id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ActorUseOptions {
pub id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ActorListResult {
pub actors: Vec<libgrite_core::ActorConfig>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ActorShowResult {
pub actor: libgrite_core::ActorConfig,
pub source: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DbStatsOptions {}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DbStatsResult {
pub path: PathBuf,
pub event_count: usize,
pub issue_count: usize,
pub size_bytes: u64,
pub last_rebuild_ts: Option<u64>,
pub events_since_rebuild: usize,
pub days_since_rebuild: Option<u32>,
pub rebuild_recommended: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DbCheckOptions {
pub verify_parents: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DbCheckResult {
pub checked_events: usize,
pub hash_mismatches: Vec<String>,
pub parent_errors: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DbVerifyOptions {
pub verbose: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DbVerifyResult {
pub checked_events: usize,
pub invalid_signatures: Vec<String>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
pub enum ExportFormat {
#[default]
Json,
Md,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ExportOptions {
pub format: ExportFormat,
pub since: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ExportResult {
pub output_path: PathBuf,
pub event_count: usize,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct RebuildOptions {
pub from_snapshot: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RebuildResult {
pub event_count: usize,
pub issue_count: usize,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SyncOptions {
pub remote: String,
pub pull: bool,
pub push: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SyncResult {
pub pulled_events: usize,
pub pushed_events: usize,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SnapshotCreateOptions {}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SnapshotCreateResult {
pub snapshot_ref: String,
pub event_count: usize,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SnapshotListOptions {}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SnapshotEntry {
pub oid: String,
pub timestamp: u64,
pub ref_name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SnapshotListResult {
pub snapshots: Vec<SnapshotEntry>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SnapshotGcOptions {
pub keep: usize,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SnapshotGcResult {
pub removed: usize,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DaemonStartOptions {
pub idle_timeout: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DaemonStartResult {
pub pid: u32,
pub endpoint: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DaemonStatusResult {
pub running: bool,
pub pid: Option<u32>,
pub endpoint: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct LockAcquireOptions {
pub resource: String,
pub ttl: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LockAcquireResult {
pub resource: String,
pub expires_at: u64,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct LockReleaseOptions {
pub resource: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct LockRenewOptions {
pub resource: String,
pub ttl: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LockRenewResult {
pub resource: String,
pub expires_at: u64,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct LockStatusOptions {}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LockStatusResult {
pub locks: Vec<libgrite_core::Lock>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DoctorOptions {
pub fix: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DoctorResult {
pub checks: Vec<DoctorCheckResult>,
pub fixed: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DoctorCheckResult {
pub name: String,
pub ok: bool,
pub message: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ContextIndexOptions {
pub paths: Vec<String>,
pub force: bool,
pub pattern: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ContextIndexResult {
pub indexed_files: usize,
pub indexed_symbols: usize,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ContextQueryOptions {
pub query: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ContextQueryResult {
pub symbols: Vec<libgrite_core::SymbolInfo>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ContextShowOptions {
pub path: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ContextShowResult {
pub file: libgrite_core::FileContext,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ContextProjectOptions {
pub key: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ContextProjectResult {
pub entries: Vec<libgrite_core::ProjectContextEntry>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ContextSetOptions {
pub key: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ContextSetResult {
pub key: String,
pub event_id: String,
}