Platform extensions sketch (#4868)

Co-authored-by: Douwe Osinga <douwe@squareup.com>
Co-authored-by: Michael Neale <michael.neale@gmail.com>
This commit is contained in:
Douwe Osinga
2025-10-03 13:45:37 -04:00
committed by GitHub
parent 5b8efb5b9a
commit 96ded37e15
36 changed files with 742 additions and 847 deletions
+49 -17
View File
@@ -2313,6 +2313,7 @@
"description": "Server-sent events client with a URI endpoint",
"required": [
"name",
"description",
"uri",
"type"
],
@@ -2325,12 +2326,10 @@
},
"bundled": {
"type": "boolean",
"description": "Whether this extension is bundled with goose",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
"type": "string"
},
"env_keys": {
"type": "array",
@@ -2367,6 +2366,7 @@
"description": "Standard I/O client with command and arguments",
"required": [
"name",
"description",
"cmd",
"args",
"type"
@@ -2386,15 +2386,13 @@
},
"bundled": {
"type": "boolean",
"description": "Whether this extension is bundled with goose",
"nullable": true
},
"cmd": {
"type": "string"
},
"description": {
"type": "string",
"nullable": true
"type": "string"
},
"env_keys": {
"type": "array",
@@ -2425,9 +2423,10 @@
},
{
"type": "object",
"description": "Built-in extension that is part of the goose binary",
"description": "Built-in extension that is part of the bundled goose MCP server",
"required": [
"name",
"description",
"type"
],
"properties": {
@@ -2439,12 +2438,10 @@
},
"bundled": {
"type": "boolean",
"description": "Whether this extension is bundled with goose",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
"type": "string"
},
"display_name": {
"type": "string",
@@ -2468,11 +2465,46 @@
}
}
},
{
"type": "object",
"description": "Platform extensions that have direct access to the agent etc and run in the agent process",
"required": [
"name",
"description",
"type"
],
"properties": {
"available_tools": {
"type": "array",
"items": {
"type": "string"
}
},
"bundled": {
"type": "boolean",
"nullable": true
},
"description": {
"type": "string"
},
"name": {
"type": "string",
"description": "The name used to identify this extension"
},
"type": {
"type": "string",
"enum": [
"platform"
]
}
}
},
{
"type": "object",
"description": "Streamable HTTP client with a URI endpoint using MCP Streamable HTTP specification",
"required": [
"name",
"description",
"uri",
"type"
],
@@ -2485,12 +2517,10 @@
},
"bundled": {
"type": "boolean",
"description": "Whether this extension is bundled with goose",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
"type": "string"
},
"env_keys": {
"type": "array",
@@ -2533,6 +2563,7 @@
"description": "Frontend-provided tools that will be called through the frontend",
"required": [
"name",
"description",
"tools",
"type"
],
@@ -2545,9 +2576,11 @@
},
"bundled": {
"type": "boolean",
"description": "Whether this extension is bundled with goose",
"nullable": true
},
"description": {
"type": "string"
},
"instructions": {
"type": "string",
"description": "Instructions for how to use these tools",
@@ -2577,6 +2610,7 @@
"description": "Inline Python code that will be executed using uvx",
"required": [
"name",
"description",
"code",
"type"
],
@@ -2600,9 +2634,7 @@
"nullable": true
},
"description": {
"type": "string",
"description": "Description of what the extension does",
"nullable": true
"type": "string"
},
"name": {
"type": "string",