add gpl license
improve mcp server error handling
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
name = "own_assist_cli"
|
||||
version = "0.3.0"
|
||||
edition = "2024"
|
||||
license = "GPL-3"
|
||||
|
||||
[dependencies]
|
||||
ollama-rs = { version = "0.3.4", features = ["macros", "headers"] }
|
||||
|
||||
+13
-9
@@ -10,11 +10,11 @@ use crate::model::create_model_from_config;
|
||||
use base64::Engine;
|
||||
use clap::Parser;
|
||||
use cpal::traits::HostTrait;
|
||||
use own_assist_common::config_loader::ConfigLoadingError;
|
||||
use own_assist_common::{exit_msg, init_tracing_subscriber};
|
||||
use own_mcp::AgentChat;
|
||||
use tokio::task::JoinHandle;
|
||||
use tokio_util::sync::CancellationToken;
|
||||
use mcp_server_collection::McpServerError;
|
||||
|
||||
/// partial mcp client with cli and voice interaction
|
||||
#[derive(Parser, Debug)]
|
||||
@@ -68,10 +68,8 @@ async fn chat_loop(mut human_interface: impl HumanInterface, mut agent_chat: Age
|
||||
}
|
||||
|
||||
#[cfg(feature = "built-in-mcp-collection")]
|
||||
fn launch_mcp_server() -> Result<JoinHandle<CancellationToken>, ConfigLoadingError> {
|
||||
let config = mcp_server_collection::config::Config::from_file()?;
|
||||
|
||||
let handle = tokio::task::spawn(mcp_server_collection::serve(config));
|
||||
async fn launch_mcp_server(config: mcp_server_collection::config::Config) -> Result<(CancellationToken, JoinHandle<std::io::Result<()>>), McpServerError> {
|
||||
let handle = mcp_server_collection::serve_in_background(config).await?;
|
||||
|
||||
Ok(handle)
|
||||
}
|
||||
@@ -87,9 +85,13 @@ async fn main() {
|
||||
init_tracing_subscriber();
|
||||
|
||||
#[cfg(feature = "built-in-mcp-collection")]
|
||||
let mcp_server_task = launch_mcp_server()
|
||||
.inspect_err(exit_msg!("error loading server.toml"))
|
||||
.unwrap();
|
||||
let mcp_config = mcp_server_collection::config::Config::from_file().inspect_err(exit_msg!("error loading server.toml"))
|
||||
.unwrap();
|
||||
#[cfg(feature = "built-in-mcp-collection")]
|
||||
let (mcp_server_ct, mcp_server_task) = launch_mcp_server(mcp_config).await
|
||||
.inspect_err(exit_msg!("error launching mcp server"))
|
||||
.unwrap();
|
||||
|
||||
|
||||
let config = Config::from_file()
|
||||
.inspect_err(exit_msg!("error loading assist.toml"))
|
||||
@@ -150,5 +152,7 @@ async fn main() {
|
||||
};
|
||||
|
||||
#[cfg(feature = "built-in-mcp-collection")]
|
||||
mcp_server_task.await.unwrap();
|
||||
mcp_server_ct.cancel();
|
||||
#[cfg(feature = "built-in-mcp-collection")]
|
||||
mcp_server_task.await.unwrap().unwrap();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user