feat(tui): tambah command /todo dan /usage untuk buka overlay
Overlay Todo dan Usage sebelumnya tidak punya trigger sama sekali di jalur interaksi normal (cuma bisa lewat restore snapshot sesi) -- sekarang mengikuti pola /workflow yang sudah ada. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
2f1a4d85a1
commit
aa2b6acb95
@@ -69,6 +69,12 @@ pub fn apply_command(command: Command) -> Vec<Action> {
|
|||||||
Command::WorkflowRun { script } => {
|
Command::WorkflowRun { script } => {
|
||||||
vec![Action::RunWorkflow { script }]
|
vec![Action::RunWorkflow { script }]
|
||||||
}
|
}
|
||||||
|
Command::TodoOpen => {
|
||||||
|
vec![Action::OpenOverlay(Overlay::Todo)]
|
||||||
|
}
|
||||||
|
Command::UsageOpen => {
|
||||||
|
vec![Action::OpenOverlay(Overlay::Usage)]
|
||||||
|
}
|
||||||
Command::Unknown(cmd) => {
|
Command::Unknown(cmd) => {
|
||||||
vec![Action::SystemNote {
|
vec![Action::SystemNote {
|
||||||
kind: "error".to_string(),
|
kind: "error".to_string(),
|
||||||
|
|||||||
@@ -90,6 +90,8 @@ const COMMANDS: &[&str] = &[
|
|||||||
"/model add",
|
"/model add",
|
||||||
"/workflow",
|
"/workflow",
|
||||||
"/workflow run",
|
"/workflow run",
|
||||||
|
"/todo",
|
||||||
|
"/usage",
|
||||||
"/compact",
|
"/compact",
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ pub enum Command {
|
|||||||
WorkflowRun {
|
WorkflowRun {
|
||||||
script: String,
|
script: String,
|
||||||
},
|
},
|
||||||
|
TodoOpen,
|
||||||
|
UsageOpen,
|
||||||
Unknown(String),
|
Unknown(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,6 +77,23 @@ pub fn parse_command(text: &str) -> Command {
|
|||||||
"/workflow" => Command::WorkflowRun {
|
"/workflow" => Command::WorkflowRun {
|
||||||
script: arg1.to_string(),
|
script: arg1.to_string(),
|
||||||
},
|
},
|
||||||
|
"/todo" => Command::TodoOpen,
|
||||||
|
"/usage" => Command::UsageOpen,
|
||||||
_ => Command::Unknown(cmd.to_string()),
|
_ => Command::Unknown(cmd.to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parses_todo_open() {
|
||||||
|
assert_eq!(parse_command("/todo"), Command::TodoOpen);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn parses_usage_open() {
|
||||||
|
assert_eq!(parse_command("/usage"), Command::UsageOpen);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ Input:
|
|||||||
/workflow Open workflow panel
|
/workflow Open workflow panel
|
||||||
/workflow run <p> Run a workflow with prompt <p>
|
/workflow run <p> Run a workflow with prompt <p>
|
||||||
/mode workflow Open workflow panel
|
/mode workflow Open workflow panel
|
||||||
|
/todo Open task list
|
||||||
|
/usage Open usage details
|
||||||
/compact Compact conversation history
|
/compact Compact conversation history
|
||||||
/exit Exit application
|
/exit Exit application
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user