feat(code): CLI client with gRPC connection + local tools

phase 3 client core:
- sunbeam code subcommand with project discovery, config loading
- gRPC client connects to Sol, starts bidirectional session
- 7 client-side tool executors: file_read, file_write, search_replace,
  grep, bash, list_directory
- project context: .sunbeam/prompt.md, .sunbeam/config.toml, git info
- tool permission config (always/ask/never per tool)
- simple stdin loop (ratatui TUI in phase 4)
- aligned sunbeam-proto to tonic 0.14
This commit is contained in:
2026-03-23 11:57:24 +00:00
parent f3e67e589b
commit 02e4d7fb37
10 changed files with 838 additions and 4 deletions

View File

@@ -139,6 +139,12 @@ pub enum Verb {
action: Option<PmAction>,
},
/// Terminal coding agent powered by Sol.
Code {
#[command(subcommand)]
action: Option<crate::code::CodeCommand>,
},
/// Self-update from latest mainline commit.
Update,
@@ -1053,6 +1059,8 @@ pub async fn dispatch() -> Result<()> {
}
},
Some(Verb::Code { action }) => crate::code::cmd_code(action).await,
Some(Verb::Update) => sunbeam_sdk::update::cmd_update().await,
Some(Verb::Version) => {