lean_ctx/core/triage/
profile.rs1#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
2pub struct TaskProfileLocal {
3 pub task_class: String,
4 pub intent: String,
5 pub complexity: String,
6 pub scope: TaskScopeLocal,
7 pub context_need_milli: u16,
8 pub reasoning_need_milli: u16,
9 pub risk_signal_milli: u16,
10 pub confidence_milli: u16,
11}
12
13#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, serde::Serialize, serde::Deserialize)]
14pub enum TaskScopeLocal {
15 #[default]
16 SingleFile,
17 MultiFile,
18 CrossModule,
19 CrossProject,
20}
21
22impl Default for TaskProfileLocal {
23 fn default() -> Self {
24 Self {
25 task_class: String::new(),
26 intent: String::new(),
27 complexity: "low".into(),
28 scope: TaskScopeLocal::default(),
29 context_need_milli: 0,
30 reasoning_need_milli: 0,
31 risk_signal_milli: 0,
32 confidence_milli: 0,
33 }
34 }
35}
36
37#[cfg(test)]
38mod tests {
39 use super::*;
40 #[test]
41 fn default_scope_is_single_file() {
42 assert_eq!(TaskScopeLocal::default(), TaskScopeLocal::SingleFile);
43 }
44 #[test]
45 fn default_complexity_is_low() {
46 assert_eq!(TaskProfileLocal::default().complexity, "low");
47 }
48 #[test]
49 fn default_confidence_is_zero() {
50 assert_eq!(TaskProfileLocal::default().confidence_milli, 0);
51 }
52}