termesh-core 0.1.1

Internal component of a terminal-native, agent-first IDE.
Documentation
//! Language-neutral task and diagnostic vocabulary.

use std::path::PathBuf;

use crate::SessionId;

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct TaskSpec {
    pub id: String,
    pub label: String,
    pub program: String,
    pub args: Vec<String>,
    pub cwd: PathBuf,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum TaskOrigin {
    Human,
    Agent { session: SessionId },
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum TaskStatus {
    Starting,
    Running,
    Succeeded,
    Failed,
    Cancelled,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ProblemSeverity {
    Error,
    Warning,
}

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Problem {
    pub path: PathBuf,
    pub line: usize,
    pub column: usize,
    pub severity: ProblemSeverity,
    pub message: String,
}