harn_cli/commands/
persona_dispatch.rs1use crate::cli::{PersonaArgs, PersonaCommand, PersonaSupervisionCommand};
2
3pub(crate) async fn run(args: PersonaArgs) -> Result<(), String> {
4 let PersonaArgs {
5 command,
6 manifest,
7 state_dir,
8 } = args;
9 let manifest = manifest.as_deref();
10 match command {
11 PersonaCommand::New(args) => super::persona_scaffold::run_new(&args).await,
12 PersonaCommand::CompilePrompt(args) => {
13 super::persona_prompt::run_compile_prompt(&args).await
14 }
15 PersonaCommand::Materialize(args) if args.activate => {
16 super::persona_apply::run(manifest, &args).await
17 }
18 PersonaCommand::Materialize(args) => super::persona_scaffold::run_materialize(&args).await,
19 PersonaCommand::Doctor(args) => super::persona_doctor::run_doctor(manifest, &args).await,
20 PersonaCommand::Check(args) => {
21 super::persona::run_check(manifest, &args);
22 Ok(())
23 }
24 PersonaCommand::List(args) => {
25 super::persona::run_list(manifest, &args);
26 Ok(())
27 }
28 PersonaCommand::Inspect(args) => {
29 super::persona::run_inspect(manifest, &args);
30 Ok(())
31 }
32 PersonaCommand::Activate(args) => super::persona_activation::run_activate(manifest, &args),
33 PersonaCommand::Deactivate(args) => {
34 super::persona_activation::run_deactivate(manifest, &args)
35 }
36 PersonaCommand::Activations(args) => {
37 super::persona_activation::run_activations(manifest, &args)
38 }
39 PersonaCommand::Status(args) => {
40 super::persona::run_status(manifest, &state_dir, &args).await
41 }
42 PersonaCommand::Pause(args) => super::persona::run_pause(manifest, &state_dir, &args).await,
43 PersonaCommand::Resume(args) => {
44 super::persona::run_resume(manifest, &state_dir, &args).await
45 }
46 PersonaCommand::Disable(args) => {
47 super::persona::run_disable(manifest, &state_dir, &args).await
48 }
49 PersonaCommand::Tick(args) => super::persona::run_tick(manifest, &state_dir, &args).await,
50 PersonaCommand::Trigger(args) => {
51 super::persona::run_trigger(manifest, &state_dir, &args).await
52 }
53 PersonaCommand::Spend(args) => super::persona::run_spend(manifest, &state_dir, &args).await,
54 PersonaCommand::Supervision(args) => match args.command {
55 PersonaSupervisionCommand::Tail(args) => {
56 super::persona_supervision::run_tail(manifest, &state_dir, &args).await
57 }
58 },
59 }
60}