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",
|
"uuid",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "colony-agent"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"clap",
|
||||||
|
"colony-types",
|
||||||
|
"reqwest",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
"tokio",
|
||||||
|
"toml",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "colony-cli"
|
name = "colony-cli"
|
||||||
version = "0.1.0"
|
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