feat: used acp agent capabilities for local Inference support check (#9996)
This commit is contained in:
@@ -13,7 +13,6 @@ pub async fn check_token(
|
||||
next: Next,
|
||||
) -> Result<Response, StatusCode> {
|
||||
if request.uri().path() == "/status"
|
||||
|| request.uri().path() == "/features"
|
||||
|| request.uri().path() == "/mcp-ui-proxy"
|
||||
|| request.uri().path() == "/mcp-app-proxy"
|
||||
|| request.uri().path() == "/mcp-app-guest"
|
||||
|
||||
@@ -473,7 +473,6 @@ derive_utoipa!(IconTheme as IconThemeSchema);
|
||||
super::routes::telemetry::send_telemetry_event,
|
||||
super::routes::dictation::transcribe_dictation,
|
||||
super::routes::dictation::get_dictation_config,
|
||||
super::routes::features::get_features,
|
||||
),
|
||||
components(schemas(
|
||||
super::routes::config_management::UpsertConfigQuery,
|
||||
@@ -654,7 +653,6 @@ derive_utoipa!(IconTheme as IconThemeSchema);
|
||||
super::routes::dictation::TranscribeResponse,
|
||||
goose::dictation::providers::DictationProvider,
|
||||
super::routes::dictation::DictationProviderStatus,
|
||||
super::routes::features::FeaturesResponse,
|
||||
DownloadProgress,
|
||||
DownloadStatus,
|
||||
))
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
use axum::{routing::get, Json, Router};
|
||||
use serde::Serialize;
|
||||
use std::collections::HashMap;
|
||||
use utoipa::ToSchema;
|
||||
|
||||
#[derive(Serialize, ToSchema)]
|
||||
pub struct FeaturesResponse {
|
||||
/// Map of feature name to enabled status
|
||||
pub features: HashMap<String, bool>,
|
||||
}
|
||||
|
||||
#[utoipa::path(
|
||||
get,
|
||||
path = "/features",
|
||||
responses(
|
||||
(status = 200, description = "Compile-time feature flags", body = FeaturesResponse),
|
||||
)
|
||||
)]
|
||||
pub async fn get_features() -> Json<FeaturesResponse> {
|
||||
let mut features = HashMap::new();
|
||||
|
||||
features.insert(
|
||||
"local-inference".to_string(),
|
||||
cfg!(feature = "local-inference"),
|
||||
);
|
||||
features.insert("code-mode".to_string(), cfg!(feature = "code-mode"));
|
||||
|
||||
Json(FeaturesResponse { features })
|
||||
}
|
||||
|
||||
pub fn routes() -> Router {
|
||||
Router::new().route("/features", get(get_features))
|
||||
}
|
||||
@@ -3,7 +3,6 @@ pub mod agent;
|
||||
pub mod config_management;
|
||||
pub mod dictation;
|
||||
pub mod errors;
|
||||
pub mod features;
|
||||
#[cfg(feature = "local-inference")]
|
||||
pub mod local_inference;
|
||||
pub mod mcp_app_proxy;
|
||||
@@ -45,8 +44,7 @@ pub fn configure(state: Arc<crate::state::AppState>, secret_key: String) -> Rout
|
||||
.merge(mcp_app_proxy::routes(secret_key))
|
||||
.merge(session_events::routes(state.clone()))
|
||||
.merge(sampling::routes(state.clone()))
|
||||
.merge(dictation::routes(state.clone()))
|
||||
.merge(features::routes());
|
||||
.merge(dictation::routes(state.clone()));
|
||||
|
||||
#[cfg(feature = "local-inference")]
|
||||
let router = router.merge(local_inference::routes(state));
|
||||
|
||||
@@ -257,6 +257,21 @@ fn meta_string(
|
||||
Ok(Some(value.to_string()))
|
||||
}
|
||||
|
||||
fn agent_capabilities_meta() -> Option<Meta> {
|
||||
let mut goose = serde_json::Map::new();
|
||||
if cfg!(feature = "local-inference") {
|
||||
goose.insert("localInference".to_string(), serde_json::json!({}));
|
||||
}
|
||||
|
||||
if goose.is_empty() {
|
||||
return None;
|
||||
}
|
||||
|
||||
let mut meta = serde_json::Map::new();
|
||||
meta.insert("goose".to_string(), serde_json::Value::Object(goose));
|
||||
Some(meta)
|
||||
}
|
||||
|
||||
fn spawn_session_name_update_notifier(
|
||||
cx: ConnectionTo<Client>,
|
||||
) -> tokio::sync::mpsc::UnboundedSender<crate::session::SessionNameUpdate> {
|
||||
@@ -2206,7 +2221,8 @@ impl GooseAcpAgent {
|
||||
.audio(false)
|
||||
.embedded_context(true),
|
||||
)
|
||||
.mcp_capabilities(McpCapabilities::new().http(true));
|
||||
.mcp_capabilities(McpCapabilities::new().http(true))
|
||||
.meta(agent_capabilities_meta());
|
||||
Ok(InitializeResponse::new(args.protocol_version)
|
||||
.agent_info(Implementation::new("goose", env!("CARGO_PKG_VERSION")))
|
||||
.agent_capabilities(capabilities)
|
||||
|
||||
Reference in New Issue
Block a user