1use std::path::PathBuf;
4
5use crate::SessionId;
6
7#[derive(Debug, Clone, PartialEq, Eq)]
8pub struct TaskSpec {
9 pub id: String,
10 pub label: String,
11 pub program: String,
12 pub args: Vec<String>,
13 pub cwd: PathBuf,
14}
15
16#[derive(Debug, Clone, Copy, PartialEq, Eq)]
17pub enum TaskOrigin {
18 Human,
19 Agent { session: SessionId },
20}
21
22#[derive(Debug, Clone, Copy, PartialEq, Eq)]
23pub enum TaskStatus {
24 Starting,
25 Running,
26 Succeeded,
27 Failed,
28 Cancelled,
29}
30
31#[derive(Debug, Clone, Copy, PartialEq, Eq)]
32pub enum ProblemSeverity {
33 Error,
34 Warning,
35}
36
37#[derive(Debug, Clone, PartialEq, Eq)]
38pub struct Problem {
39 pub path: PathBuf,
40 pub line: usize,
41 pub column: usize,
42 pub severity: ProblemSeverity,
43 pub message: String,
44}