Document process monitoring handoff

Add ACP discovery and configuration support
This commit is contained in:
Ryan Ward
2026-07-30 11:53:33 -05:00
parent ad24374f6d
commit 1a0aac51b6
18 changed files with 1280 additions and 664 deletions
+55
View File
@@ -901,6 +901,50 @@ pub struct OpenAIProviderConfig {
impl settings_value::SettingsValue for OpenAIProviderConfig {}
/// Cached metadata and runtime session options for an ACP agent.
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, schemars::JsonSchema)]
pub struct AcpAgentSettings {
pub id: String,
pub name: String,
#[serde(default)]
pub version: Option<String>,
#[serde(default)]
pub description: Option<String>,
#[serde(default)]
pub icon_url: Option<String>,
#[serde(default)]
pub capabilities: Vec<String>,
#[serde(default)]
pub config_options: Vec<AcpConfigOptionSettings>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, schemars::JsonSchema)]
pub struct AcpConfigOptionSettings {
pub id: String,
pub name: String,
#[serde(default)]
pub description: Option<String>,
#[serde(default)]
pub category: Option<String>,
pub kind: String,
#[serde(default)]
pub current_value: serde_json::Value,
#[serde(default)]
pub options: Vec<AcpConfigValueSettings>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, schemars::JsonSchema)]
pub struct AcpConfigValueSettings {
pub value: serde_json::Value,
pub name: String,
#[serde(default)]
pub description: Option<String>,
}
impl settings_value::SettingsValue for AcpAgentSettings {}
// Nested ACP discovery data is intentionally persisted as one setting so refreshes are atomic.
define_settings_group!(AISettings, settings: [
// If `false`, all AI features are disabled.
is_any_ai_enabled: IsAnyAIEnabled {
@@ -1270,6 +1314,17 @@ define_settings_group!(AISettings, settings: [
description: "Arguments passed to the local Agent Client Protocol agent executable.",
feature_flag: FeatureFlag::AgentClientProtocol,
}
// Cached ACP registry and runtime discovery data. Values are refreshed when the agent is queried.
acp_agents: AcpAgents {
type: Vec<AcpAgentSettings>,
default: Vec::new(),
supported_platforms: SupportedPlatforms::OR(SupportedPlatforms::MAC.into(), SupportedPlatforms::LINUX.into()),
sync_to_cloud: SyncToCloud::Never,
private: false,
toml_path: "ai.acp.agents",
description: "Cached ACP agent metadata, capabilities, and session configuration options.",
feature_flag: FeatureFlag::AgentClientProtocol,
}
// Whether to use locally loaded AWS credentials for Bedrock-enabled requests.
bedrock_enabled: BedrockEnabled {
type: bool,