colony-agent skeleton: worker, dream, birth, status commands (stubs)
Phase 2 crate scaffolded with clap CLI. All commands are stubs that exit with "not yet implemented". Ready for implementation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
13
Cargo.lock
generated
13
Cargo.lock
generated
@@ -290,6 +290,19 @@ dependencies = [
|
||||
"uuid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "colony-agent"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"colony-types",
|
||||
"reqwest",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tokio",
|
||||
"toml",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "colony-cli"
|
||||
version = "0.1.0"
|
||||
|
||||
17
crates/colony-agent/Cargo.toml
Normal file
17
crates/colony-agent/Cargo.toml
Normal file
@@ -0,0 +1,17 @@
|
||||
[package]
|
||||
name = "colony-agent"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[[bin]]
|
||||
name = "colony-agent"
|
||||
path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
colony-types = { path = "../colony-types" }
|
||||
clap = { version = "4", features = ["derive"] }
|
||||
reqwest = { version = "0.12", features = ["json", "rustls-tls"] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
toml = "0.8"
|
||||
49
crates/colony-agent/src/main.rs
Normal file
49
crates/colony-agent/src/main.rs
Normal file
@@ -0,0 +1,49 @@
|
||||
use clap::{Parser, Subcommand};
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(name = "colony-agent", about = "Ape Colony Agent Runtime — autonomous agent lifecycle")]
|
||||
struct Cli {
|
||||
#[command(subcommand)]
|
||||
command: Commands,
|
||||
}
|
||||
|
||||
#[derive(Subcommand)]
|
||||
enum Commands {
|
||||
/// Start the agent worker loop (pulse + react)
|
||||
Worker,
|
||||
/// Run one dream cycle (memory consolidation)
|
||||
Dream,
|
||||
/// Create a new agent on this VM
|
||||
Birth {
|
||||
name: String,
|
||||
#[arg(long)]
|
||||
instruction: String,
|
||||
},
|
||||
/// Show agent status
|
||||
Status,
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
let cli = Cli::parse();
|
||||
|
||||
match cli.command {
|
||||
Commands::Worker => {
|
||||
eprintln!("colony-agent: worker not yet implemented");
|
||||
std::process::exit(1);
|
||||
}
|
||||
Commands::Dream => {
|
||||
eprintln!("colony-agent: dream not yet implemented");
|
||||
std::process::exit(1);
|
||||
}
|
||||
Commands::Birth { name, instruction } => {
|
||||
eprintln!("colony-agent: birth '{}' with instruction: {}", name, instruction);
|
||||
eprintln!("not yet implemented");
|
||||
std::process::exit(1);
|
||||
}
|
||||
Commands::Status => {
|
||||
eprintln!("colony-agent: status not yet implemented");
|
||||
std::process::exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user