feat (acp): used typed request and response for add, get session extensions (#9890)

This commit is contained in:
Lifei Zhou
2026-06-22 10:41:08 +10:00
committed by GitHub
parent d2a921a75d
commit 2712c066bc
11 changed files with 798 additions and 743 deletions
@@ -26,18 +26,16 @@ pub struct CustomMethodSchema {
#[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)]
#[request(method = "_goose/unstable/session/extensions/add", response = EmptyResponse)]
#[serde(rename_all = "camelCase")]
pub struct AddExtensionRequest {
pub struct AddSessionExtensionRequest {
pub session_id: String,
/// Extension configuration (see ExtensionConfig variants: Stdio, StreamableHttp, Builtin, Platform).
#[serde(default)]
pub config: serde_json::Value,
pub extension: GooseExtension,
}
/// Remove an extension from an active session.
#[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)]
#[request(method = "_goose/unstable/session/extensions/remove", response = EmptyResponse)]
#[serde(rename_all = "camelCase")]
pub struct RemoveExtensionRequest {
pub struct RemoveSessionExtensionRequest {
pub session_id: String,
pub name: String,
}
@@ -303,7 +301,7 @@ pub struct GetSessionExtensionsRequest {
#[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcResponse)]
pub struct GetSessionExtensionsResponse {
pub extensions: Vec<serde_json::Value>,
pub extensions: Vec<GooseExtension>,
}
/// Read allowlisted user preferences. Empty `keys` means all supported preferences.
+2 -2
View File
@@ -2,12 +2,12 @@
"methods": [
{
"method": "_goose/unstable/session/extensions/add",
"requestType": "AddExtensionRequest_unstable",
"requestType": "AddSessionExtensionRequest_unstable",
"responseType": "EmptyResponse"
},
{
"method": "_goose/unstable/session/extensions/remove",
"requestType": "RemoveExtensionRequest_unstable",
"requestType": "RemoveSessionExtensionRequest_unstable",
"responseType": "EmptyResponse"
},
{
+348 -346
View File
@@ -2,30 +2,365 @@
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "GooseExtensions",
"$defs": {
"AddExtensionRequest_unstable": {
"AddSessionExtensionRequest_unstable": {
"type": "object",
"properties": {
"sessionId": {
"type": "string"
},
"config": {
"description": "Extension configuration (see ExtensionConfig variants: Stdio, StreamableHttp, Builtin, Platform).",
"default": null
"extension": {
"$ref": "#/$defs/GooseExtension"
}
},
"required": [
"sessionId"
"sessionId",
"extension"
],
"description": "Add an extension to an active session.",
"x-side": "agent",
"x-method": "_goose/unstable/session/extensions/add"
},
"GooseExtension": {
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"display_name": {
"type": [
"string",
"null"
]
},
"timeout": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"bundled": {
"type": [
"boolean",
"null"
]
},
"type": {
"type": "string",
"const": "builtin"
}
},
"required": [
"type",
"name"
]
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"display_name": {
"type": [
"string",
"null"
]
},
"bundled": {
"type": [
"boolean",
"null"
]
},
"type": {
"type": "string",
"const": "platform"
}
},
"required": [
"type",
"name"
]
},
{
"type": "object",
"properties": {
"server": {
"$ref": "#/$defs/McpServer"
},
"envKeys": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": [
"string",
"null"
]
},
"timeout": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"socket": {
"type": [
"string",
"null"
]
},
"bundled": {
"type": [
"boolean",
"null"
]
},
"type": {
"type": "string",
"const": "mcp"
}
},
"required": [
"type",
"server"
]
}
]
},
"McpServer": {
"anyOf": [
{
"$ref": "#/$defs/McpServerHttp",
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "http"
}
},
"required": [
"type"
],
"description": "HTTP transport configuration\n\nOnly available when the Agent capabilities indicate `mcp_capabilities.http` is `true`."
},
{
"$ref": "#/$defs/McpServerSse",
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "sse"
}
},
"required": [
"type"
],
"description": "SSE transport configuration\n\nOnly available when the Agent capabilities indicate `mcp_capabilities.sse` is `true`."
},
{
"$ref": "#/$defs/McpServerStdio",
"description": "Stdio transport configuration\n\nAll Agents MUST support this transport."
}
],
"description": "Configuration for connecting to an MCP (Model Context Protocol) server.\n\nMCP servers provide tools and context that the agent can use when\nprocessing prompts.\n\nSee protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)"
},
"HttpHeader": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the HTTP header."
},
"value": {
"type": "string",
"description": "The value to set for the HTTP header."
},
"_meta": {
"type": [
"object",
"null"
],
"additionalProperties": {},
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)"
}
},
"required": [
"name",
"value"
],
"description": "An HTTP header to set when making requests to the MCP server."
},
"McpServerHttp": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Human-readable name identifying this MCP server."
},
"url": {
"type": "string",
"description": "URL to the MCP server."
},
"headers": {
"type": "array",
"items": {
"$ref": "#/$defs/HttpHeader"
},
"description": "HTTP headers to set when making requests to the MCP server."
},
"_meta": {
"type": [
"object",
"null"
],
"additionalProperties": {},
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)"
},
"type": {
"type": "string",
"const": "http"
}
},
"required": [
"type",
"name",
"url",
"headers"
],
"description": "HTTP transport configuration for MCP."
},
"McpServerSse": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Human-readable name identifying this MCP server."
},
"url": {
"type": "string",
"description": "URL to the MCP server."
},
"headers": {
"type": "array",
"items": {
"$ref": "#/$defs/HttpHeader"
},
"description": "HTTP headers to set when making requests to the MCP server."
},
"_meta": {
"type": [
"object",
"null"
],
"additionalProperties": {},
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)"
},
"type": {
"type": "string",
"const": "sse"
}
},
"required": [
"type",
"name",
"url",
"headers"
],
"description": "SSE transport configuration for MCP."
},
"McpServerStdio": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Human-readable name identifying this MCP server."
},
"command": {
"type": "string",
"description": "Path to the MCP server executable."
},
"args": {
"type": "array",
"items": {
"type": "string"
},
"description": "Command-line arguments to pass to the MCP server."
},
"env": {
"type": "array",
"items": {
"$ref": "#/$defs/EnvVariable"
},
"description": "Environment variables to set when launching the MCP server."
},
"_meta": {
"type": [
"object",
"null"
],
"additionalProperties": {},
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)"
}
},
"required": [
"name",
"command",
"args",
"env"
],
"description": "Stdio transport configuration for MCP."
},
"EnvVariable": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the environment variable."
},
"value": {
"type": "string",
"description": "The value to set for the environment variable."
},
"_meta": {
"type": [
"object",
"null"
],
"additionalProperties": {},
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)"
}
},
"required": [
"name",
"value"
],
"description": "An environment variable to set when launching an MCP server."
},
"EmptyResponse": {
"type": "object",
"description": "Empty success response for operations that return no data.",
"x-side": "agent"
},
"RemoveExtensionRequest_unstable": {
"RemoveSessionExtensionRequest_unstable": {
"type": "object",
"properties": {
"sessionId": {
@@ -703,341 +1038,6 @@
"enabled"
]
},
"GooseExtension": {
"oneOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"display_name": {
"type": [
"string",
"null"
]
},
"timeout": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"bundled": {
"type": [
"boolean",
"null"
]
},
"type": {
"type": "string",
"const": "builtin"
}
},
"required": [
"type",
"name"
]
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"display_name": {
"type": [
"string",
"null"
]
},
"bundled": {
"type": [
"boolean",
"null"
]
},
"type": {
"type": "string",
"const": "platform"
}
},
"required": [
"type",
"name"
]
},
{
"type": "object",
"properties": {
"server": {
"$ref": "#/$defs/McpServer"
},
"envKeys": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": [
"string",
"null"
]
},
"timeout": {
"type": [
"integer",
"null"
],
"minimum": 0
},
"socket": {
"type": [
"string",
"null"
]
},
"bundled": {
"type": [
"boolean",
"null"
]
},
"type": {
"type": "string",
"const": "mcp"
}
},
"required": [
"type",
"server"
]
}
]
},
"McpServer": {
"anyOf": [
{
"$ref": "#/$defs/McpServerHttp",
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "http"
}
},
"required": [
"type"
],
"description": "HTTP transport configuration\n\nOnly available when the Agent capabilities indicate `mcp_capabilities.http` is `true`."
},
{
"$ref": "#/$defs/McpServerSse",
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "sse"
}
},
"required": [
"type"
],
"description": "SSE transport configuration\n\nOnly available when the Agent capabilities indicate `mcp_capabilities.sse` is `true`."
},
{
"$ref": "#/$defs/McpServerStdio",
"description": "Stdio transport configuration\n\nAll Agents MUST support this transport."
}
],
"description": "Configuration for connecting to an MCP (Model Context Protocol) server.\n\nMCP servers provide tools and context that the agent can use when\nprocessing prompts.\n\nSee protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)"
},
"HttpHeader": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the HTTP header."
},
"value": {
"type": "string",
"description": "The value to set for the HTTP header."
},
"_meta": {
"type": [
"object",
"null"
],
"additionalProperties": {},
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)"
}
},
"required": [
"name",
"value"
],
"description": "An HTTP header to set when making requests to the MCP server."
},
"McpServerHttp": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Human-readable name identifying this MCP server."
},
"url": {
"type": "string",
"description": "URL to the MCP server."
},
"headers": {
"type": "array",
"items": {
"$ref": "#/$defs/HttpHeader"
},
"description": "HTTP headers to set when making requests to the MCP server."
},
"_meta": {
"type": [
"object",
"null"
],
"additionalProperties": {},
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)"
},
"type": {
"type": "string",
"const": "http"
}
},
"required": [
"type",
"name",
"url",
"headers"
],
"description": "HTTP transport configuration for MCP."
},
"McpServerSse": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Human-readable name identifying this MCP server."
},
"url": {
"type": "string",
"description": "URL to the MCP server."
},
"headers": {
"type": "array",
"items": {
"$ref": "#/$defs/HttpHeader"
},
"description": "HTTP headers to set when making requests to the MCP server."
},
"_meta": {
"type": [
"object",
"null"
],
"additionalProperties": {},
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)"
},
"type": {
"type": "string",
"const": "sse"
}
},
"required": [
"type",
"name",
"url",
"headers"
],
"description": "SSE transport configuration for MCP."
},
"McpServerStdio": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Human-readable name identifying this MCP server."
},
"command": {
"type": "string",
"description": "Path to the MCP server executable."
},
"args": {
"type": "array",
"items": {
"type": "string"
},
"description": "Command-line arguments to pass to the MCP server."
},
"env": {
"type": "array",
"items": {
"$ref": "#/$defs/EnvVariable"
},
"description": "Environment variables to set when launching the MCP server."
},
"_meta": {
"type": [
"object",
"null"
],
"additionalProperties": {},
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)"
}
},
"required": [
"name",
"command",
"args",
"env"
],
"description": "Stdio transport configuration for MCP."
},
"EnvVariable": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the environment variable."
},
"value": {
"type": "string",
"description": "The value to set for the environment variable."
},
"_meta": {
"type": [
"object",
"null"
],
"additionalProperties": {},
"description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)"
}
},
"required": [
"name",
"value"
],
"description": "An environment variable to set when launching an MCP server."
},
"GetAvailableExtensionsRequest_unstable": {
"type": "object",
"description": "List Goose-owned extension definitions available to configure or enable.",
@@ -1128,7 +1128,9 @@
"properties": {
"extensions": {
"type": "array",
"items": {}
"items": {
"$ref": "#/$defs/GooseExtension"
}
}
},
"required": [
@@ -3704,20 +3706,20 @@
{
"allOf": [
{
"$ref": "#/$defs/AddExtensionRequest_unstable"
"$ref": "#/$defs/AddSessionExtensionRequest_unstable"
}
],
"description": "Params for _goose/unstable/session/extensions/add",
"title": "AddExtensionRequest_unstable"
"title": "AddSessionExtensionRequest_unstable"
},
{
"allOf": [
{
"$ref": "#/$defs/RemoveExtensionRequest_unstable"
"$ref": "#/$defs/RemoveSessionExtensionRequest_unstable"
}
],
"description": "Params for _goose/unstable/session/extensions/remove",
"title": "RemoveExtensionRequest_unstable"
"title": "RemoveSessionExtensionRequest_unstable"
},
{
"allOf": [
-37
View File
@@ -2310,43 +2310,6 @@ impl GooseAcpAgent {
))
}
#[allow(dead_code)]
async fn add_mcp_extensions(
agent: &Arc<Agent>,
mcp_servers: Vec<McpServer>,
session_id: &str,
) -> Result<(), agent_client_protocol::Error> {
let mut configs = Vec::with_capacity(mcp_servers.len());
for mcp_server in mcp_servers {
let config = match mcp_server_to_extension_config(mcp_server) {
Ok(c) => c,
Err(msg) => {
return Err(agent_client_protocol::Error::invalid_params().data(msg));
}
};
configs.push(config);
}
if configs.is_empty() {
return Ok(());
}
let results = agent
.add_extensions_bulk(configs, session_id)
.await
.internal_err()?;
for result in &results {
if !result.success {
let error_msg = result.error.as_deref().unwrap_or("unknown error");
return Err(agent_client_protocol::Error::internal_error().data(format!(
"Failed to add MCP server '{}': {}",
result.name, error_msg
)));
}
}
Ok(())
}
async fn on_load_session(
&self,
cx: &ConnectionTo<Client>,
@@ -11,20 +11,20 @@ impl GooseAcpAgent {
self.handle_custom_request(method, params).await
}
#[custom_method(AddExtensionRequest)]
async fn dispatch_add_extension(
#[custom_method(AddSessionExtensionRequest)]
async fn dispatch_add_session_extension(
&self,
req: AddExtensionRequest,
req: AddSessionExtensionRequest,
) -> Result<EmptyResponse, agent_client_protocol::Error> {
self.on_add_extension(req).await
self.on_add_session_extension(req).await
}
#[custom_method(RemoveExtensionRequest)]
async fn dispatch_remove_extension(
#[custom_method(RemoveSessionExtensionRequest)]
async fn dispatch_remove_session_extension(
&self,
req: RemoveExtensionRequest,
req: RemoveSessionExtensionRequest,
) -> Result<EmptyResponse, agent_client_protocol::Error> {
self.on_remove_extension(req).await
self.on_remove_session_extension(req).await
}
#[custom_method(GetToolsRequest)]
+25 -14
View File
@@ -4,14 +4,12 @@ use crate::config::extensions::ExtensionEntry;
use agent_client_protocol::schema::{HttpHeader, McpServer, McpServerHttp, McpServerStdio};
impl GooseAcpAgent {
pub(super) async fn on_add_extension(
pub(super) async fn on_add_session_extension(
&self,
req: AddExtensionRequest,
req: AddSessionExtensionRequest,
) -> Result<EmptyResponse, agent_client_protocol::Error> {
let session_id = &req.session_id;
let config: ExtensionConfig = serde_json::from_value(req.config).map_err(|e| {
agent_client_protocol::Error::invalid_params().data(format!("bad config: {e}"))
})?;
let config = goose_extension_to_session_config(req.extension)?;
let agent = self.get_session_agent(&req.session_id).await?;
agent
.add_extension(config, session_id)
@@ -20,9 +18,9 @@ impl GooseAcpAgent {
Ok(EmptyResponse {})
}
pub(super) async fn on_remove_extension(
pub(super) async fn on_remove_session_extension(
&self,
req: RemoveExtensionRequest,
req: RemoveSessionExtensionRequest,
) -> Result<EmptyResponse, agent_client_protocol::Error> {
let session_id = &req.session_id;
let agent = self.get_session_agent(&req.session_id).await?;
@@ -125,15 +123,15 @@ impl GooseAcpAgent {
crate::config::Config::global(),
);
let extensions_json = extensions
let extensions = extensions
.into_iter()
.map(|e| serde_json::to_value(&e))
.collect::<Result<Vec<_>, _>>()
.internal_err()?;
.map(|config| config_to_goose_extension(&config))
.collect::<Result<Vec<_>, _>>()?
.into_iter()
.flatten()
.collect::<Vec<_>>();
Ok(GetSessionExtensionsResponse {
extensions: extensions_json,
})
Ok(GetSessionExtensionsResponse { extensions })
}
}
@@ -317,6 +315,19 @@ fn goose_extension_to_config(
})
}
fn goose_extension_to_session_config(
extension: GooseExtension,
) -> Result<ExtensionConfig, agent_client_protocol::Error> {
let conversion = goose_extension_to_config(extension)?;
if !conversion.secret_updates.is_empty() {
return Err(agent_client_protocol::Error::invalid_params().data(
"literal environment values are not supported for session extensions; use envKeys",
));
}
Ok(conversion.config)
}
fn config_entry_to_goose_entry(
entry: ExtensionEntry,
) -> Result<Option<GooseExtensionEntry>, agent_client_protocol::Error> {
@@ -315,6 +315,90 @@ fn test_custom_get_extensions() {
});
}
#[test]
#[serial]
fn test_custom_session_extensions_add_list_remove() {
let extension_name = "summarize";
let _guard = env_lock::lock_env([("EXTENSIONS", None::<&str>)]);
write_acp_global_config(DEFAULT_ACP_TEST_CONFIG);
run_test(async move {
let openai = OpenAiFixture::new(vec![], Arc::new(EnforceSessionId::default())).await;
let mut conn = AcpServerConnection::new(TestConnectionConfig::default(), openai).await;
let SessionData { session, .. } = conn.new_session().await.unwrap();
let session_id = session.session_id().0.clone();
let list_extension = || async {
let result = send_custom(
conn.cx(),
"_goose/unstable/session/extensions/list",
serde_json::json!({ "sessionId": session_id.clone() }),
)
.await;
assert!(result.is_ok(), "expected ok, got: {:?}", result);
let response = result.unwrap();
let extensions = response
.get("extensions")
.and_then(|extensions| extensions.as_array())
.expect("extensions should be an array");
extensions
.iter()
.find(|extension| extension["name"] == extension_name)
.cloned()
};
assert!(
list_extension().await.is_none(),
"{extension_name} should not be enabled before add"
);
let add_result = send_custom(
conn.cx(),
"_goose/unstable/session/extensions/add",
serde_json::json!({
"sessionId": session_id.clone(),
"extension": {
"type": "platform",
"name": extension_name,
"description": "Load files/directories and get an LLM summary in a single call",
"displayName": "Summarize",
"bundled": true
}
}),
)
.await;
assert!(add_result.is_ok(), "expected ok, got: {:?}", add_result);
let extension = list_extension()
.await
.unwrap_or_else(|| panic!("missing added session extension"));
assert_eq!(extension["type"], "platform");
assert_eq!(extension["name"], extension_name);
let remove_result = send_custom(
conn.cx(),
"_goose/unstable/session/extensions/remove",
serde_json::json!({
"sessionId": session_id.clone(),
"name": extension_name,
}),
)
.await;
assert!(
remove_result.is_ok(),
"expected ok, got: {:?}",
remove_result
);
assert!(
list_extension().await.is_none(),
"removed session extension should not be listed"
);
});
}
#[test]
#[serial]
fn test_custom_get_available_extensions() {
+4 -4
View File
@@ -10,7 +10,7 @@ export interface ExtMethodProvider {
import type { Client } from "@agentclientprotocol/sdk";
import type {
AddConfigExtensionRequest_unstable,
AddExtensionRequest_unstable,
AddSessionExtensionRequest_unstable,
ArchiveSessionRequest_unstable,
CreateSourceRequest_unstable,
CreateSourceResponse_unstable,
@@ -95,7 +95,7 @@ import type {
RefreshProviderInventoryRequest_unstable,
RefreshProviderInventoryResponse_unstable,
RemoveConfigExtensionRequest_unstable,
RemoveExtensionRequest_unstable,
RemoveSessionExtensionRequest_unstable,
RenameSessionRequest_unstable,
SetConfigExtensionEnabledRequest_unstable,
SetSessionSystemPromptRequest_unstable,
@@ -152,13 +152,13 @@ export class GooseExtClient {
constructor(private conn: ExtMethodProvider) {}
async sessionExtensionsAdd_unstable(
params: AddExtensionRequest_unstable,
params: AddSessionExtensionRequest_unstable,
): Promise<void> {
await this.conn.extMethod("_goose/unstable/session/extensions/add", params);
}
async sessionExtensionsRemove_unstable(
params: RemoveExtensionRequest_unstable,
params: RemoveSessionExtensionRequest_unstable,
): Promise<void> {
await this.conn.extMethod(
"_goose/unstable/session/extensions/remove",
+3 -3
View File
@@ -1,16 +1,16 @@
// This file is auto-generated by @hey-api/openapi-ts
export type { AddConfigExtensionRequest_unstable, AddExtensionRequest_unstable, Annotations, ArchiveSessionRequest_unstable, AudioContent, BlobResourceContents, ContentBlock, CreateSourceRequest_unstable, CreateSourceResponse_unstable, CustomProviderConfigDto, CustomProviderCreateRequest_unstable, CustomProviderCreateResponse_unstable, CustomProviderDeleteRequest_unstable, CustomProviderDeleteResponse_unstable, CustomProviderReadRequest_unstable, CustomProviderReadResponse_unstable, CustomProviderUpdateRequest_unstable, CustomProviderUpdateResponse_unstable, DefaultsReadRequest_unstable, DefaultsReadResponse_unstable, DefaultsSaveRequest_unstable, DeleteSessionRequest, DeleteSourceRequest_unstable, DictationConfigRequest_unstable, DictationConfigResponse_unstable, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequest_unstable, DictationModelDeleteRequest_unstable, DictationModelDownloadProgressRequest_unstable, DictationModelDownloadProgressResponse_unstable, DictationModelDownloadRequest_unstable, DictationModelOption, DictationModelSelectRequest_unstable, DictationModelsListRequest_unstable, DictationModelsListResponse_unstable, DictationProviderStatusEntry, DictationSecretDeleteRequest_unstable, DictationSecretSaveRequest_unstable, DictationTranscribeRequest_unstable, DictationTranscribeResponse_unstable, EmbeddedResource, EmbeddedResourceResource, EmptyResponse, EnvVariable, ExportSessionRequest_unstable, ExportSessionResponse_unstable, ExportSourceRequest_unstable, ExportSourceResponse_unstable, ExtNotification, ExtRequest, ExtResponse, GetAvailableExtensionsRequest_unstable, GetAvailableExtensionsResponse_unstable, GetConfigExtensionsRequest_unstable, GetConfigExtensionsResponse_unstable, GetSessionExtensionsRequest_unstable, GetSessionExtensionsResponse_unstable, GetSessionInfoRequest_unstable, GetSessionInfoResponse_unstable, GetToolsRequest_unstable, GetToolsResponse_unstable, GooseExtension, GooseExtensionEntry, GooseSessionNotification_unstable, GooseSessionUpdate, GooseToolCallRequest_unstable, GooseToolCallResponse_unstable, HttpHeader, ImageContent, ImportSessionRequest_unstable, ImportSessionResponse_unstable, ImportSourcesRequest_unstable, ImportSourcesResponse_unstable, ListProvidersRequest_unstable, ListProvidersResponse_unstable, ListSourcesRequest_unstable, ListSourcesResponse_unstable, McpServer, McpServerHttp, McpServerSse, McpServerStdio, OnboardingImportApplyRequest_unstable, OnboardingImportApplyResponse_unstable, OnboardingImportCandidate, OnboardingImportCounts, OnboardingImportScanRequest_unstable, OnboardingImportScanResponse_unstable, OnboardingImportSourceKind, PreferenceKey, PreferencesReadRequest_unstable, PreferencesReadResponse_unstable, PreferencesRemoveRequest_unstable, PreferencesSaveRequest_unstable, PreferenceValue, ProviderCatalogListRequest_unstable, ProviderCatalogListResponse_unstable, ProviderCatalogTemplateRequest_unstable, ProviderCatalogTemplateResponse_unstable, ProviderConfigAuthenticateRequest_unstable, ProviderConfigChangeResponse_unstable, ProviderConfigDeleteRequest_unstable, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequest_unstable, ProviderConfigReadResponse_unstable, ProviderConfigSaveRequest_unstable, ProviderConfigStatusDto, ProviderConfigStatusRequest_unstable, ProviderConfigStatusResponse_unstable, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderSetupCatalogEntryDto, ProviderSetupCatalogListRequest_unstable, ProviderSetupCatalogListResponse_unstable, ProviderSetupCategoryDto, ProviderSetupFieldDto, ProviderSetupGroupDto, ProviderSetupMethodDto, ProviderSupportedModelsListRequest_unstable, ProviderSupportedModelsListResponse_unstable, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequest_unstable, ReadResourceResponse_unstable, RefreshProviderInventoryRequest_unstable, RefreshProviderInventoryResponse_unstable, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest_unstable, RemoveExtensionRequest_unstable, RenameSessionRequest_unstable, ResourceLink, Role, SessionId, SessionInfo, SessionSystemPromptMode, SessionUsageUpdate, SetConfigExtensionEnabledRequest_unstable, SetSessionSystemPromptRequest_unstable, SourceEntry, SourceScope, SourceType, StatusMessage, StatusMessageUpdate, SteerSessionRequest_unstable, SteerSessionResponse_unstable, TextContent, TextResourceContents, TruncateSessionConversationRequest_unstable, UnarchiveSessionRequest_unstable, UpdateSessionProjectRequest_unstable, UpdateSourceRequest_unstable, UpdateSourceResponse_unstable, UpdateWorkingDirRequest_unstable } from './types.gen.js';
export type { AddConfigExtensionRequest_unstable, AddSessionExtensionRequest_unstable, Annotations, ArchiveSessionRequest_unstable, AudioContent, BlobResourceContents, ContentBlock, CreateSourceRequest_unstable, CreateSourceResponse_unstable, CustomProviderConfigDto, CustomProviderCreateRequest_unstable, CustomProviderCreateResponse_unstable, CustomProviderDeleteRequest_unstable, CustomProviderDeleteResponse_unstable, CustomProviderReadRequest_unstable, CustomProviderReadResponse_unstable, CustomProviderUpdateRequest_unstable, CustomProviderUpdateResponse_unstable, DefaultsReadRequest_unstable, DefaultsReadResponse_unstable, DefaultsSaveRequest_unstable, DeleteSessionRequest, DeleteSourceRequest_unstable, DictationConfigRequest_unstable, DictationConfigResponse_unstable, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequest_unstable, DictationModelDeleteRequest_unstable, DictationModelDownloadProgressRequest_unstable, DictationModelDownloadProgressResponse_unstable, DictationModelDownloadRequest_unstable, DictationModelOption, DictationModelSelectRequest_unstable, DictationModelsListRequest_unstable, DictationModelsListResponse_unstable, DictationProviderStatusEntry, DictationSecretDeleteRequest_unstable, DictationSecretSaveRequest_unstable, DictationTranscribeRequest_unstable, DictationTranscribeResponse_unstable, EmbeddedResource, EmbeddedResourceResource, EmptyResponse, EnvVariable, ExportSessionRequest_unstable, ExportSessionResponse_unstable, ExportSourceRequest_unstable, ExportSourceResponse_unstable, ExtNotification, ExtRequest, ExtResponse, GetAvailableExtensionsRequest_unstable, GetAvailableExtensionsResponse_unstable, GetConfigExtensionsRequest_unstable, GetConfigExtensionsResponse_unstable, GetSessionExtensionsRequest_unstable, GetSessionExtensionsResponse_unstable, GetSessionInfoRequest_unstable, GetSessionInfoResponse_unstable, GetToolsRequest_unstable, GetToolsResponse_unstable, GooseExtension, GooseExtensionEntry, GooseSessionNotification_unstable, GooseSessionUpdate, GooseToolCallRequest_unstable, GooseToolCallResponse_unstable, HttpHeader, ImageContent, ImportSessionRequest_unstable, ImportSessionResponse_unstable, ImportSourcesRequest_unstable, ImportSourcesResponse_unstable, ListProvidersRequest_unstable, ListProvidersResponse_unstable, ListSourcesRequest_unstable, ListSourcesResponse_unstable, McpServer, McpServerHttp, McpServerSse, McpServerStdio, OnboardingImportApplyRequest_unstable, OnboardingImportApplyResponse_unstable, OnboardingImportCandidate, OnboardingImportCounts, OnboardingImportScanRequest_unstable, OnboardingImportScanResponse_unstable, OnboardingImportSourceKind, PreferenceKey, PreferencesReadRequest_unstable, PreferencesReadResponse_unstable, PreferencesRemoveRequest_unstable, PreferencesSaveRequest_unstable, PreferenceValue, ProviderCatalogListRequest_unstable, ProviderCatalogListResponse_unstable, ProviderCatalogTemplateRequest_unstable, ProviderCatalogTemplateResponse_unstable, ProviderConfigAuthenticateRequest_unstable, ProviderConfigChangeResponse_unstable, ProviderConfigDeleteRequest_unstable, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequest_unstable, ProviderConfigReadResponse_unstable, ProviderConfigSaveRequest_unstable, ProviderConfigStatusDto, ProviderConfigStatusRequest_unstable, ProviderConfigStatusResponse_unstable, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderSetupCatalogEntryDto, ProviderSetupCatalogListRequest_unstable, ProviderSetupCatalogListResponse_unstable, ProviderSetupCategoryDto, ProviderSetupFieldDto, ProviderSetupGroupDto, ProviderSetupMethodDto, ProviderSupportedModelsListRequest_unstable, ProviderSupportedModelsListResponse_unstable, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequest_unstable, ReadResourceResponse_unstable, RefreshProviderInventoryRequest_unstable, RefreshProviderInventoryResponse_unstable, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest_unstable, RemoveSessionExtensionRequest_unstable, RenameSessionRequest_unstable, ResourceLink, Role, SessionId, SessionInfo, SessionSystemPromptMode, SessionUsageUpdate, SetConfigExtensionEnabledRequest_unstable, SetSessionSystemPromptRequest_unstable, SourceEntry, SourceScope, SourceType, StatusMessage, StatusMessageUpdate, SteerSessionRequest_unstable, SteerSessionResponse_unstable, TextContent, TextResourceContents, TruncateSessionConversationRequest_unstable, UnarchiveSessionRequest_unstable, UpdateSessionProjectRequest_unstable, UpdateSourceRequest_unstable, UpdateSourceResponse_unstable, UpdateWorkingDirRequest_unstable } from './types.gen.js';
export const GOOSE_EXT_METHODS = [
{
method: "_goose/unstable/session/extensions/add",
requestType: "AddExtensionRequest_unstable",
requestType: "AddSessionExtensionRequest_unstable",
responseType: "EmptyResponse",
},
{
method: "_goose/unstable/session/extensions/remove",
requestType: "RemoveExtensionRequest_unstable",
requestType: "RemoveSessionExtensionRequest_unstable",
responseType: "EmptyResponse",
},
{
+174 -177
View File
@@ -4,12 +4,180 @@
/**
* Add an extension to an active session.
*/
export type AddExtensionRequest_unstable = {
export type AddSessionExtensionRequest_unstable = {
sessionId: string;
extension: GooseExtension;
};
export type GooseExtension = {
name: string;
description?: string | null;
display_name?: string | null;
timeout?: number | null;
bundled?: boolean | null;
type: 'builtin';
} | {
name: string;
description?: string | null;
display_name?: string | null;
bundled?: boolean | null;
type: 'platform';
} | {
server: McpServer;
envKeys?: Array<string>;
description?: string | null;
timeout?: number | null;
socket?: string | null;
bundled?: boolean | null;
type: 'mcp';
};
/**
* Configuration for connecting to an MCP (Model Context Protocol) server.
*
* MCP servers provide tools and context that the agent can use when
* processing prompts.
*
* See protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)
*/
export type McpServer = McpServerHttp | McpServerSse | McpServerStdio;
/**
* An HTTP header to set when making requests to the MCP server.
*/
export type HttpHeader = {
/**
* Extension configuration (see ExtensionConfig variants: Stdio, StreamableHttp, Builtin, Platform).
* The name of the HTTP header.
*/
config?: unknown;
name: string;
/**
* The value to set for the HTTP header.
*/
value: string;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
};
/**
* HTTP transport configuration for MCP.
*/
export type McpServerHttp = {
/**
* Human-readable name identifying this MCP server.
*/
name: string;
/**
* URL to the MCP server.
*/
url: string;
/**
* HTTP headers to set when making requests to the MCP server.
*/
headers: Array<HttpHeader>;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
type: 'http';
};
/**
* SSE transport configuration for MCP.
*/
export type McpServerSse = {
/**
* Human-readable name identifying this MCP server.
*/
name: string;
/**
* URL to the MCP server.
*/
url: string;
/**
* HTTP headers to set when making requests to the MCP server.
*/
headers: Array<HttpHeader>;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
type: 'sse';
};
/**
* Stdio transport configuration for MCP.
*/
export type McpServerStdio = {
/**
* Human-readable name identifying this MCP server.
*/
name: string;
/**
* Path to the MCP server executable.
*/
command: string;
/**
* Command-line arguments to pass to the MCP server.
*/
args: Array<string>;
/**
* Environment variables to set when launching the MCP server.
*/
env: Array<EnvVariable>;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
};
/**
* An environment variable to set when launching an MCP server.
*/
export type EnvVariable = {
/**
* The name of the environment variable.
*/
name: string;
/**
* The value to set for the environment variable.
*/
value: string;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
};
/**
@@ -22,7 +190,7 @@ export type EmptyResponse = {
/**
* Remove an extension from an active session.
*/
export type RemoveExtensionRequest_unstable = {
export type RemoveSessionExtensionRequest_unstable = {
sessionId: string;
name: string;
};
@@ -349,177 +517,6 @@ export type GooseExtensionEntry = {
configKey?: string | null;
};
export type GooseExtension = {
name: string;
description?: string | null;
display_name?: string | null;
timeout?: number | null;
bundled?: boolean | null;
type: 'builtin';
} | {
name: string;
description?: string | null;
display_name?: string | null;
bundled?: boolean | null;
type: 'platform';
} | {
server: McpServer;
envKeys?: Array<string>;
description?: string | null;
timeout?: number | null;
socket?: string | null;
bundled?: boolean | null;
type: 'mcp';
};
/**
* Configuration for connecting to an MCP (Model Context Protocol) server.
*
* MCP servers provide tools and context that the agent can use when
* processing prompts.
*
* See protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)
*/
export type McpServer = McpServerHttp | McpServerSse | McpServerStdio;
/**
* An HTTP header to set when making requests to the MCP server.
*/
export type HttpHeader = {
/**
* The name of the HTTP header.
*/
name: string;
/**
* The value to set for the HTTP header.
*/
value: string;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
};
/**
* HTTP transport configuration for MCP.
*/
export type McpServerHttp = {
/**
* Human-readable name identifying this MCP server.
*/
name: string;
/**
* URL to the MCP server.
*/
url: string;
/**
* HTTP headers to set when making requests to the MCP server.
*/
headers: Array<HttpHeader>;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
type: 'http';
};
/**
* SSE transport configuration for MCP.
*/
export type McpServerSse = {
/**
* Human-readable name identifying this MCP server.
*/
name: string;
/**
* URL to the MCP server.
*/
url: string;
/**
* HTTP headers to set when making requests to the MCP server.
*/
headers: Array<HttpHeader>;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
type: 'sse';
};
/**
* Stdio transport configuration for MCP.
*/
export type McpServerStdio = {
/**
* Human-readable name identifying this MCP server.
*/
name: string;
/**
* Path to the MCP server executable.
*/
command: string;
/**
* Command-line arguments to pass to the MCP server.
*/
args: Array<string>;
/**
* Environment variables to set when launching the MCP server.
*/
env: Array<EnvVariable>;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
};
/**
* An environment variable to set when launching an MCP server.
*/
export type EnvVariable = {
/**
* The name of the environment variable.
*/
name: string;
/**
* The value to set for the environment variable.
*/
value: string;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
};
/**
* List Goose-owned extension definitions available to configure or enable.
*/
@@ -559,7 +556,7 @@ export type GetSessionExtensionsRequest_unstable = {
};
export type GetSessionExtensionsResponse_unstable = {
extensions: Array<unknown>;
extensions: Array<GooseExtension>;
};
/**
@@ -1602,7 +1599,7 @@ export type StatusMessageUpdate = {
export type ExtRequest = {
id: string;
method: string;
params?: AddExtensionRequest_unstable | RemoveExtensionRequest_unstable | GetToolsRequest_unstable | GooseToolCallRequest_unstable | ReadResourceRequest_unstable | UpdateWorkingDirRequest_unstable | SetSessionSystemPromptRequest_unstable | SteerSessionRequest_unstable | DeleteSessionRequest | GetConfigExtensionsRequest_unstable | GetAvailableExtensionsRequest_unstable | AddConfigExtensionRequest_unstable | RemoveConfigExtensionRequest_unstable | SetConfigExtensionEnabledRequest_unstable | GetSessionExtensionsRequest_unstable | ListProvidersRequest_unstable | ProviderSupportedModelsListRequest_unstable | ProviderCatalogListRequest_unstable | ProviderSetupCatalogListRequest_unstable | ProviderCatalogTemplateRequest_unstable | CustomProviderCreateRequest_unstable | CustomProviderReadRequest_unstable | CustomProviderUpdateRequest_unstable | CustomProviderDeleteRequest_unstable | RefreshProviderInventoryRequest_unstable | ProviderConfigReadRequest_unstable | ProviderConfigStatusRequest_unstable | ProviderConfigSaveRequest_unstable | ProviderConfigDeleteRequest_unstable | ProviderConfigAuthenticateRequest_unstable | PreferencesReadRequest_unstable | PreferencesSaveRequest_unstable | PreferencesRemoveRequest_unstable | DefaultsReadRequest_unstable | DefaultsSaveRequest_unstable | OnboardingImportScanRequest_unstable | OnboardingImportApplyRequest_unstable | ExportSessionRequest_unstable | ImportSessionRequest_unstable | GetSessionInfoRequest_unstable | TruncateSessionConversationRequest_unstable | UpdateSessionProjectRequest_unstable | RenameSessionRequest_unstable | ArchiveSessionRequest_unstable | UnarchiveSessionRequest_unstable | CreateSourceRequest_unstable | ListSourcesRequest_unstable | UpdateSourceRequest_unstable | DeleteSourceRequest_unstable | ExportSourceRequest_unstable | ImportSourcesRequest_unstable | DictationTranscribeRequest_unstable | DictationConfigRequest_unstable | DictationSecretSaveRequest_unstable | DictationSecretDeleteRequest_unstable | DictationModelsListRequest_unstable | DictationModelDownloadRequest_unstable | DictationModelDownloadProgressRequest_unstable | DictationModelCancelRequest_unstable | DictationModelDeleteRequest_unstable | DictationModelSelectRequest_unstable | {
params?: AddSessionExtensionRequest_unstable | RemoveSessionExtensionRequest_unstable | GetToolsRequest_unstable | GooseToolCallRequest_unstable | ReadResourceRequest_unstable | UpdateWorkingDirRequest_unstable | SetSessionSystemPromptRequest_unstable | SteerSessionRequest_unstable | DeleteSessionRequest | GetConfigExtensionsRequest_unstable | GetAvailableExtensionsRequest_unstable | AddConfigExtensionRequest_unstable | RemoveConfigExtensionRequest_unstable | SetConfigExtensionEnabledRequest_unstable | GetSessionExtensionsRequest_unstable | ListProvidersRequest_unstable | ProviderSupportedModelsListRequest_unstable | ProviderCatalogListRequest_unstable | ProviderSetupCatalogListRequest_unstable | ProviderCatalogTemplateRequest_unstable | CustomProviderCreateRequest_unstable | CustomProviderReadRequest_unstable | CustomProviderUpdateRequest_unstable | CustomProviderDeleteRequest_unstable | RefreshProviderInventoryRequest_unstable | ProviderConfigReadRequest_unstable | ProviderConfigStatusRequest_unstable | ProviderConfigSaveRequest_unstable | ProviderConfigDeleteRequest_unstable | ProviderConfigAuthenticateRequest_unstable | PreferencesReadRequest_unstable | PreferencesSaveRequest_unstable | PreferencesRemoveRequest_unstable | DefaultsReadRequest_unstable | DefaultsSaveRequest_unstable | OnboardingImportScanRequest_unstable | OnboardingImportApplyRequest_unstable | ExportSessionRequest_unstable | ImportSessionRequest_unstable | GetSessionInfoRequest_unstable | TruncateSessionConversationRequest_unstable | UpdateSessionProjectRequest_unstable | RenameSessionRequest_unstable | ArchiveSessionRequest_unstable | UnarchiveSessionRequest_unstable | CreateSourceRequest_unstable | ListSourcesRequest_unstable | UpdateSourceRequest_unstable | DeleteSourceRequest_unstable | ExportSourceRequest_unstable | ImportSourcesRequest_unstable | DictationTranscribeRequest_unstable | DictationConfigRequest_unstable | DictationSecretSaveRequest_unstable | DictationSecretDeleteRequest_unstable | DictationModelsListRequest_unstable | DictationModelDownloadRequest_unstable | DictationModelDownloadProgressRequest_unstable | DictationModelCancelRequest_unstable | DictationModelDeleteRequest_unstable | DictationModelSelectRequest_unstable | {
[key: string]: unknown;
} | null;
};
+146 -146
View File
@@ -2,12 +2,152 @@
import { z } from 'zod';
/**
* An HTTP header to set when making requests to the MCP server.
*/
export const zHttpHeader = z.object({
name: z.string(),
value: z.string(),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional()
});
/**
* HTTP transport configuration for MCP.
*/
export const zMcpServerHttp = z.object({
name: z.string(),
url: z.string(),
headers: z.array(zHttpHeader),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional(),
type: z.literal('http')
});
/**
* SSE transport configuration for MCP.
*/
export const zMcpServerSse = z.object({
name: z.string(),
url: z.string(),
headers: z.array(zHttpHeader),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional(),
type: z.literal('sse')
});
/**
* An environment variable to set when launching an MCP server.
*/
export const zEnvVariable = z.object({
name: z.string(),
value: z.string(),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional()
});
/**
* Stdio transport configuration for MCP.
*/
export const zMcpServerStdio = z.object({
name: z.string(),
command: z.string(),
args: z.array(z.string()),
env: z.array(zEnvVariable),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional()
});
/**
* Configuration for connecting to an MCP (Model Context Protocol) server.
*
* MCP servers provide tools and context that the agent can use when
* processing prompts.
*
* See protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)
*/
export const zMcpServer = z.union([
zMcpServerHttp,
zMcpServerSse,
zMcpServerStdio
]);
export const zGooseExtension = z.union([
z.object({
name: z.string(),
description: z.union([
z.string(),
z.null()
]).optional(),
display_name: z.union([
z.string(),
z.null()
]).optional(),
timeout: z.union([
z.number().int().gte(0),
z.null()
]).optional(),
bundled: z.union([
z.boolean(),
z.null()
]).optional(),
type: z.literal('builtin')
}),
z.object({
name: z.string(),
description: z.union([
z.string(),
z.null()
]).optional(),
display_name: z.union([
z.string(),
z.null()
]).optional(),
bundled: z.union([
z.boolean(),
z.null()
]).optional(),
type: z.literal('platform')
}),
z.object({
server: zMcpServer,
envKeys: z.array(z.string()).optional(),
description: z.union([
z.string(),
z.null()
]).optional(),
timeout: z.union([
z.number().int().gte(0),
z.null()
]).optional(),
socket: z.union([
z.string(),
z.null()
]).optional(),
bundled: z.union([
z.boolean(),
z.null()
]).optional(),
type: z.literal('mcp')
})
]);
/**
* Add an extension to an active session.
*/
export const zAddExtensionRequest_unstable = z.object({
export const zAddSessionExtensionRequest_unstable = z.object({
sessionId: z.string(),
config: z.unknown().optional().default(null)
extension: zGooseExtension
});
/**
@@ -18,7 +158,7 @@ export const zEmptyResponse = z.record(z.unknown());
/**
* Remove an extension from an active session.
*/
export const zRemoveExtensionRequest_unstable = z.object({
export const zRemoveSessionExtensionRequest_unstable = z.object({
sessionId: z.string(),
name: z.string()
});
@@ -330,146 +470,6 @@ export const zDeleteSessionRequest = z.object({
*/
export const zGetConfigExtensionsRequest_unstable = z.record(z.unknown());
/**
* An HTTP header to set when making requests to the MCP server.
*/
export const zHttpHeader = z.object({
name: z.string(),
value: z.string(),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional()
});
/**
* HTTP transport configuration for MCP.
*/
export const zMcpServerHttp = z.object({
name: z.string(),
url: z.string(),
headers: z.array(zHttpHeader),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional(),
type: z.literal('http')
});
/**
* SSE transport configuration for MCP.
*/
export const zMcpServerSse = z.object({
name: z.string(),
url: z.string(),
headers: z.array(zHttpHeader),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional(),
type: z.literal('sse')
});
/**
* An environment variable to set when launching an MCP server.
*/
export const zEnvVariable = z.object({
name: z.string(),
value: z.string(),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional()
});
/**
* Stdio transport configuration for MCP.
*/
export const zMcpServerStdio = z.object({
name: z.string(),
command: z.string(),
args: z.array(z.string()),
env: z.array(zEnvVariable),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional()
});
/**
* Configuration for connecting to an MCP (Model Context Protocol) server.
*
* MCP servers provide tools and context that the agent can use when
* processing prompts.
*
* See protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)
*/
export const zMcpServer = z.union([
zMcpServerHttp,
zMcpServerSse,
zMcpServerStdio
]);
export const zGooseExtension = z.union([
z.object({
name: z.string(),
description: z.union([
z.string(),
z.null()
]).optional(),
display_name: z.union([
z.string(),
z.null()
]).optional(),
timeout: z.union([
z.number().int().gte(0),
z.null()
]).optional(),
bundled: z.union([
z.boolean(),
z.null()
]).optional(),
type: z.literal('builtin')
}),
z.object({
name: z.string(),
description: z.union([
z.string(),
z.null()
]).optional(),
display_name: z.union([
z.string(),
z.null()
]).optional(),
bundled: z.union([
z.boolean(),
z.null()
]).optional(),
type: z.literal('platform')
}),
z.object({
server: zMcpServer,
envKeys: z.array(z.string()).optional(),
description: z.union([
z.string(),
z.null()
]).optional(),
timeout: z.union([
z.number().int().gte(0),
z.null()
]).optional(),
socket: z.union([
z.string(),
z.null()
]).optional(),
bundled: z.union([
z.boolean(),
z.null()
]).optional(),
type: z.literal('mcp')
})
]);
export const zGooseExtensionEntry = z.object({
extension: zGooseExtension,
enabled: z.boolean(),
@@ -524,7 +524,7 @@ export const zGetSessionExtensionsRequest_unstable = z.object({
});
export const zGetSessionExtensionsResponse_unstable = z.object({
extensions: z.array(z.unknown())
extensions: z.array(zGooseExtension)
});
/**
@@ -1573,8 +1573,8 @@ export const zExtRequest = z.object({
method: z.string(),
params: z.union([
z.union([
zAddExtensionRequest_unstable,
zRemoveExtensionRequest_unstable,
zAddSessionExtensionRequest_unstable,
zRemoveSessionExtensionRequest_unstable,
zGetToolsRequest_unstable,
zGooseToolCallRequest_unstable,
zReadResourceRequest_unstable,