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) => Box::pin(super::persona_scaffold::run_new(&args)).await,
12 PersonaCommand::CompilePrompt(args) => {
13 Box::pin(super::persona_prompt::run_compile_prompt(&args)).await
14 }
15 PersonaCommand::Materialize(args) if args.activate => {
16 Box::pin(super::persona_apply::run(manifest, &args)).await
17 }
18 PersonaCommand::Materialize(args) => {
19 Box::pin(super::persona_scaffold::run_materialize(&args)).await
20 }
21 PersonaCommand::Doctor(args) => {
22 Box::pin(super::persona_doctor::run_doctor(manifest, &args)).await
23 }
24 PersonaCommand::Check(args) => {
25 super::persona::run_check(manifest, &args);
26 Ok(())
27 }
28 PersonaCommand::List(args) => {
29 super::persona::run_list(manifest, &args);
30 Ok(())
31 }
32 PersonaCommand::Inspect(args) => {
33 super::persona::run_inspect(manifest, &args);
34 Ok(())
35 }
36 PersonaCommand::Activate(args) => super::persona_activation::run_activate(manifest, &args),
37 PersonaCommand::Deactivate(args) => {
38 super::persona_activation::run_deactivate(manifest, &args)
39 }
40 PersonaCommand::Activations(args) => {
41 super::persona_activation::run_activations(manifest, &args)
42 }
43 PersonaCommand::Status(args) => {
44 Box::pin(super::persona::run_status(manifest, &state_dir, &args)).await
45 }
46 PersonaCommand::Pause(args) => {
47 Box::pin(super::persona::run_pause(manifest, &state_dir, &args)).await
48 }
49 PersonaCommand::Resume(args) => {
50 Box::pin(super::persona::run_resume(manifest, &state_dir, &args)).await
51 }
52 PersonaCommand::Disable(args) => {
53 Box::pin(super::persona::run_disable(manifest, &state_dir, &args)).await
54 }
55 PersonaCommand::Tick(args) => {
56 Box::pin(super::persona::run_tick(manifest, &state_dir, &args)).await
57 }
58 PersonaCommand::Trigger(args) => {
59 Box::pin(super::persona::run_trigger(manifest, &state_dir, &args)).await
60 }
61 PersonaCommand::Spend(args) => {
62 Box::pin(super::persona::run_spend(manifest, &state_dir, &args)).await
63 }
64 PersonaCommand::Supervision(args) => match args.command {
65 PersonaSupervisionCommand::Tail(args) => {
66 Box::pin(super::persona_supervision::run_tail(
67 manifest, &state_dir, &args,
68 ))
69 .await
70 }
71 },
72 }
73}