mirror of
https://github.com/openai/codex.git
synced 2026-10-19 16:17:49 +00:00
Remove plugin extension metadata from discovery and summaries (#48035)
## What changed - Stop sending `includeExtensions=true` when fetching installed plugins and remove extension metadata from remote plugin models. - Remove `PluginSummary.extensions` and the associated extension declaration types from the app-server protocol. - Update generated JSON schemas, TypeScript and Python bindings, and precomputed protocol exports to match. GitOrigin-RevId: 56509437b6bdf58d99badff68e86bcf7f09fe036
This commit is contained in:
-392
@@ -16377,241 +16377,6 @@
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginEntrypoint": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"quickAction": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/v2/PluginQuickAction"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"global"
|
||||
],
|
||||
"title": "GlobalPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "GlobalPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"searchTerms": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"settings"
|
||||
],
|
||||
"title": "SettingsPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "SettingsPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"thread"
|
||||
],
|
||||
"title": "ThreadPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "ThreadPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"extensions": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"file"
|
||||
],
|
||||
"title": "FilePluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"extensions",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "FilePluginEntrypoint",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginExtensions": {
|
||||
"properties": {
|
||||
"entrypoints": {
|
||||
"default": null,
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginEntrypoint"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"fileHandlers": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"searchMentionProviders": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginSearchProvider"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settings": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginSettings"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settingsEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"threadEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"PluginHookSummary": {
|
||||
"properties": {
|
||||
"eventName": {
|
||||
@@ -16627,38 +16392,6 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginIcon": {
|
||||
"properties": {
|
||||
"mimeType": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"sizes": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"src": {
|
||||
"type": "string"
|
||||
},
|
||||
"theme": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"src"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginInstallParams": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"properties": {
|
||||
@@ -17038,53 +16771,6 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickAction": {
|
||||
"properties": {
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/v2/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"target": {
|
||||
"$ref": "#/definitions/v2/PluginQuickActionTarget"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"icons",
|
||||
"target",
|
||||
"title"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickActionTarget": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTargetType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTarget",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginReadParams": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"properties": {
|
||||
@@ -17205,54 +16891,6 @@
|
||||
"title": "PluginReconcileResponse",
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSearchProvider": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"call": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/v2/PluginSearchProviderCall"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"linkId": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"linkId",
|
||||
"title",
|
||||
"toolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSearchProviderCall": {
|
||||
"properties": {
|
||||
"_meta": true,
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_meta",
|
||||
"arguments",
|
||||
"name"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSearchResult": {
|
||||
"properties": {
|
||||
"marketplaceName": {
|
||||
@@ -17286,25 +16924,6 @@
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginSettings": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"readToolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"updateToolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"readToolName",
|
||||
"updateToolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginShareCheckoutParams": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"properties": {
|
||||
@@ -17854,17 +17473,6 @@
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"extensions": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/v2/PluginExtensions"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
|
||||
-392
@@ -12409,241 +12409,6 @@
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginEntrypoint": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"quickAction": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginQuickAction"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"global"
|
||||
],
|
||||
"title": "GlobalPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "GlobalPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"searchTerms": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"settings"
|
||||
],
|
||||
"title": "SettingsPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "SettingsPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"thread"
|
||||
],
|
||||
"title": "ThreadPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "ThreadPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"extensions": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"file"
|
||||
],
|
||||
"title": "FilePluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"extensions",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "FilePluginEntrypoint",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginExtensions": {
|
||||
"properties": {
|
||||
"entrypoints": {
|
||||
"default": null,
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"fileHandlers": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"searchMentionProviders": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginSearchProvider"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settings": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginSettings"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settingsEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"threadEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"PluginHookSummary": {
|
||||
"properties": {
|
||||
"eventName": {
|
||||
@@ -12659,38 +12424,6 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginIcon": {
|
||||
"properties": {
|
||||
"mimeType": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"sizes": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"src": {
|
||||
"type": "string"
|
||||
},
|
||||
"theme": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"src"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginInstallParams": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"properties": {
|
||||
@@ -13070,53 +12803,6 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickAction": {
|
||||
"properties": {
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"target": {
|
||||
"$ref": "#/definitions/PluginQuickActionTarget"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"icons",
|
||||
"target",
|
||||
"title"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickActionTarget": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTargetType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTarget",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginReadParams": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"properties": {
|
||||
@@ -13237,54 +12923,6 @@
|
||||
"title": "PluginReconcileResponse",
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSearchProvider": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"call": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginSearchProviderCall"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"linkId": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"linkId",
|
||||
"title",
|
||||
"toolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSearchProviderCall": {
|
||||
"properties": {
|
||||
"_meta": true,
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_meta",
|
||||
"arguments",
|
||||
"name"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSearchResult": {
|
||||
"properties": {
|
||||
"marketplaceName": {
|
||||
@@ -13318,25 +12956,6 @@
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginSettings": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"readToolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"updateToolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"readToolName",
|
||||
"updateToolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginShareCheckoutParams": {
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"properties": {
|
||||
@@ -13886,17 +13505,6 @@
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"extensions": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginExtensions"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
|
||||
@@ -64,273 +64,6 @@
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginEntrypoint": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"quickAction": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginQuickAction"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"global"
|
||||
],
|
||||
"title": "GlobalPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "GlobalPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"searchTerms": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"settings"
|
||||
],
|
||||
"title": "SettingsPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "SettingsPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"thread"
|
||||
],
|
||||
"title": "ThreadPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "ThreadPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"extensions": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"file"
|
||||
],
|
||||
"title": "FilePluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"extensions",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "FilePluginEntrypoint",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginExtensions": {
|
||||
"properties": {
|
||||
"entrypoints": {
|
||||
"default": null,
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"fileHandlers": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"searchMentionProviders": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginSearchProvider"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settings": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginSettings"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settingsEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"threadEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"PluginIcon": {
|
||||
"properties": {
|
||||
"mimeType": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"sizes": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"src": {
|
||||
"type": "string"
|
||||
},
|
||||
"theme": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"src"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginInstallPolicy": {
|
||||
"enum": [
|
||||
"NOT_AVAILABLE",
|
||||
@@ -533,120 +266,6 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickAction": {
|
||||
"properties": {
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"target": {
|
||||
"$ref": "#/definitions/PluginQuickActionTarget"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"icons",
|
||||
"target",
|
||||
"title"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickActionTarget": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTargetType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTarget",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginSearchProvider": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"call": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginSearchProviderCall"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"linkId": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"linkId",
|
||||
"title",
|
||||
"toolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSearchProviderCall": {
|
||||
"properties": {
|
||||
"_meta": true,
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_meta",
|
||||
"arguments",
|
||||
"name"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSettings": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"readToolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"updateToolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"readToolName",
|
||||
"updateToolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginShareContext": {
|
||||
"properties": {
|
||||
"canPublishToWorkspace": {
|
||||
@@ -910,17 +529,6 @@
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"extensions": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginExtensions"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
|
||||
@@ -64,273 +64,6 @@
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginEntrypoint": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"quickAction": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginQuickAction"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"global"
|
||||
],
|
||||
"title": "GlobalPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "GlobalPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"searchTerms": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"settings"
|
||||
],
|
||||
"title": "SettingsPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "SettingsPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"thread"
|
||||
],
|
||||
"title": "ThreadPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "ThreadPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"extensions": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"file"
|
||||
],
|
||||
"title": "FilePluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"extensions",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "FilePluginEntrypoint",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginExtensions": {
|
||||
"properties": {
|
||||
"entrypoints": {
|
||||
"default": null,
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"fileHandlers": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"searchMentionProviders": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginSearchProvider"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settings": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginSettings"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settingsEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"threadEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"PluginIcon": {
|
||||
"properties": {
|
||||
"mimeType": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"sizes": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"src": {
|
||||
"type": "string"
|
||||
},
|
||||
"theme": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"src"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginInstallPolicy": {
|
||||
"enum": [
|
||||
"NOT_AVAILABLE",
|
||||
@@ -533,120 +266,6 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickAction": {
|
||||
"properties": {
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"target": {
|
||||
"$ref": "#/definitions/PluginQuickActionTarget"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"icons",
|
||||
"target",
|
||||
"title"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickActionTarget": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTargetType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTarget",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginSearchProvider": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"call": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginSearchProviderCall"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"linkId": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"linkId",
|
||||
"title",
|
||||
"toolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSearchProviderCall": {
|
||||
"properties": {
|
||||
"_meta": true,
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_meta",
|
||||
"arguments",
|
||||
"name"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSettings": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"readToolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"updateToolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"readToolName",
|
||||
"updateToolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginShareContext": {
|
||||
"properties": {
|
||||
"canPublishToWorkspace": {
|
||||
@@ -910,17 +529,6 @@
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"extensions": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginExtensions"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
|
||||
@@ -251,241 +251,6 @@
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginEntrypoint": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"quickAction": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginQuickAction"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"global"
|
||||
],
|
||||
"title": "GlobalPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "GlobalPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"searchTerms": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"settings"
|
||||
],
|
||||
"title": "SettingsPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "SettingsPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"thread"
|
||||
],
|
||||
"title": "ThreadPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "ThreadPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"extensions": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"file"
|
||||
],
|
||||
"title": "FilePluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"extensions",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "FilePluginEntrypoint",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginExtensions": {
|
||||
"properties": {
|
||||
"entrypoints": {
|
||||
"default": null,
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"fileHandlers": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"searchMentionProviders": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginSearchProvider"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settings": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginSettings"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settingsEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"threadEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"PluginHookSummary": {
|
||||
"properties": {
|
||||
"eventName": {
|
||||
@@ -501,38 +266,6 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginIcon": {
|
||||
"properties": {
|
||||
"mimeType": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"sizes": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"src": {
|
||||
"type": "string"
|
||||
},
|
||||
"theme": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"src"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginInstallPolicy": {
|
||||
"enum": [
|
||||
"NOT_AVAILABLE",
|
||||
@@ -696,120 +429,6 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickAction": {
|
||||
"properties": {
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"target": {
|
||||
"$ref": "#/definitions/PluginQuickActionTarget"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"icons",
|
||||
"target",
|
||||
"title"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickActionTarget": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTargetType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTarget",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginSearchProvider": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"call": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginSearchProviderCall"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"linkId": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"linkId",
|
||||
"title",
|
||||
"toolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSearchProviderCall": {
|
||||
"properties": {
|
||||
"_meta": true,
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_meta",
|
||||
"arguments",
|
||||
"name"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSettings": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"readToolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"updateToolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"readToolName",
|
||||
"updateToolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginShareContext": {
|
||||
"properties": {
|
||||
"canPublishToWorkspace": {
|
||||
@@ -1073,17 +692,6 @@
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"extensions": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginExtensions"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
|
||||
@@ -38,273 +38,6 @@
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"PluginEntrypoint": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"quickAction": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginQuickAction"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"global"
|
||||
],
|
||||
"title": "GlobalPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "GlobalPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"searchTerms": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"settings"
|
||||
],
|
||||
"title": "SettingsPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "SettingsPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"thread"
|
||||
],
|
||||
"title": "ThreadPluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "ThreadPluginEntrypoint",
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"extensions": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"resourceUri": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"file"
|
||||
],
|
||||
"title": "FilePluginEntrypointType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"extensions",
|
||||
"icons",
|
||||
"resourceUri",
|
||||
"title",
|
||||
"toolName",
|
||||
"type"
|
||||
],
|
||||
"title": "FilePluginEntrypoint",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginExtensions": {
|
||||
"properties": {
|
||||
"entrypoints": {
|
||||
"default": null,
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"fileHandlers": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"searchMentionProviders": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginSearchProvider"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settings": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginSettings"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"settingsEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"threadEntrypoints": {
|
||||
"default": [],
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginEntrypoint"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"PluginIcon": {
|
||||
"properties": {
|
||||
"mimeType": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"sizes": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": [
|
||||
"array",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"src": {
|
||||
"type": "string"
|
||||
},
|
||||
"theme": {
|
||||
"type": [
|
||||
"string",
|
||||
"null"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"src"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginInstallPolicy": {
|
||||
"enum": [
|
||||
"NOT_AVAILABLE",
|
||||
@@ -468,120 +201,6 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickAction": {
|
||||
"properties": {
|
||||
"icons": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/PluginIcon"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"target": {
|
||||
"$ref": "#/definitions/PluginQuickActionTarget"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"icons",
|
||||
"target",
|
||||
"title"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginQuickActionTarget": {
|
||||
"oneOf": [
|
||||
{
|
||||
"properties": {
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"enum": [
|
||||
"tool"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTargetType",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"type"
|
||||
],
|
||||
"title": "ToolPluginQuickActionTarget",
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PluginSearchProvider": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"call": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginSearchProviderCall"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
]
|
||||
},
|
||||
"linkId": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"toolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"linkId",
|
||||
"title",
|
||||
"toolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSearchProviderCall": {
|
||||
"properties": {
|
||||
"_meta": true,
|
||||
"arguments": true,
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_meta",
|
||||
"arguments",
|
||||
"name"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginSettings": {
|
||||
"properties": {
|
||||
"appId": {
|
||||
"type": "string"
|
||||
},
|
||||
"readToolName": {
|
||||
"type": "string"
|
||||
},
|
||||
"updateToolName": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"appId",
|
||||
"readToolName",
|
||||
"updateToolName"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"PluginShareContext": {
|
||||
"properties": {
|
||||
"canPublishToWorkspace": {
|
||||
@@ -866,17 +485,6 @@
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"extensions": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/PluginExtensions"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null
|
||||
},
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -1,7 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PluginIcon } from "./PluginIcon";
|
||||
import type { PluginQuickAction } from "./PluginQuickAction";
|
||||
|
||||
export type PluginEntrypoint = { "type": "global", quickAction: PluginQuickAction | null, appId: string, toolName: string, title: string, resourceUri: string, icons: Array<PluginIcon>, } | { "type": "settings", searchTerms: Array<string>, appId: string, toolName: string, title: string, resourceUri: string, icons: Array<PluginIcon>, } | { "type": "thread", appId: string, toolName: string, title: string, resourceUri: string, icons: Array<PluginIcon>, } | { "type": "file", extensions: Array<string>, appId: string, toolName: string, title: string, resourceUri: string, icons: Array<PluginIcon>, };
|
||||
@@ -1,8 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PluginEntrypoint } from "./PluginEntrypoint";
|
||||
import type { PluginSearchProvider } from "./PluginSearchProvider";
|
||||
import type { PluginSettings } from "./PluginSettings";
|
||||
|
||||
export type PluginExtensions = { entrypoints: Array<PluginEntrypoint> | null, settingsEntrypoints: Array<PluginEntrypoint>, settings: Array<PluginSettings>, threadEntrypoints: Array<PluginEntrypoint>, fileHandlers: Array<PluginEntrypoint>, searchMentionProviders: Array<PluginSearchProvider>, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type PluginIcon = { src: string, mimeType: string | null, sizes: Array<string> | null, theme: string | null, };
|
||||
@@ -1,7 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PluginIcon } from "./PluginIcon";
|
||||
import type { PluginQuickActionTarget } from "./PluginQuickActionTarget";
|
||||
|
||||
export type PluginQuickAction = { title: string, icons: Array<PluginIcon>, target: PluginQuickActionTarget, };
|
||||
@@ -1,6 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { JsonValue } from "../serde_json/JsonValue";
|
||||
|
||||
export type PluginQuickActionTarget = { "type": "tool", name: string, arguments: JsonValue | null, };
|
||||
@@ -1,6 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { PluginSearchProviderCall } from "./PluginSearchProviderCall";
|
||||
|
||||
export type PluginSearchProvider = { appId: string, toolName: string, linkId: string, title: string, call: PluginSearchProviderCall | null, };
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
import type { JsonValue } from "../serde_json/JsonValue";
|
||||
|
||||
export type PluginSearchProviderCall = { name: string, arguments: JsonValue, _meta: JsonValue, };
|
||||
@@ -1,5 +0,0 @@
|
||||
// GENERATED CODE! DO NOT MODIFY BY HAND!
|
||||
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
export type PluginSettings = { appId: string, readToolName: string, updateToolName: string, };
|
||||
@@ -4,14 +4,13 @@
|
||||
import type { PluginAuthPolicy } from "./PluginAuthPolicy";
|
||||
import type { PluginAvailability } from "./PluginAvailability";
|
||||
import type { PluginDisabledReason } from "./PluginDisabledReason";
|
||||
import type { PluginExtensions } from "./PluginExtensions";
|
||||
import type { PluginInstallPolicy } from "./PluginInstallPolicy";
|
||||
import type { PluginInstallPolicySource } from "./PluginInstallPolicySource";
|
||||
import type { PluginInterface } from "./PluginInterface";
|
||||
import type { PluginShareContext } from "./PluginShareContext";
|
||||
import type { PluginSource } from "./PluginSource";
|
||||
|
||||
export type PluginSummary = { extensions: PluginExtensions | null, id: string,
|
||||
export type PluginSummary = { id: string,
|
||||
/**
|
||||
* Backend remote plugin identifier when available.
|
||||
*/
|
||||
|
||||
@@ -354,10 +354,7 @@ export type { PluginAuthPolicy } from "./PluginAuthPolicy";
|
||||
export type { PluginAvailability } from "./PluginAvailability";
|
||||
export type { PluginDetail } from "./PluginDetail";
|
||||
export type { PluginDisabledReason } from "./PluginDisabledReason";
|
||||
export type { PluginEntrypoint } from "./PluginEntrypoint";
|
||||
export type { PluginExtensions } from "./PluginExtensions";
|
||||
export type { PluginHookSummary } from "./PluginHookSummary";
|
||||
export type { PluginIcon } from "./PluginIcon";
|
||||
export type { PluginInstallParams } from "./PluginInstallParams";
|
||||
export type { PluginInstallPolicy } from "./PluginInstallPolicy";
|
||||
export type { PluginInstallPolicySource } from "./PluginInstallPolicySource";
|
||||
@@ -369,18 +366,13 @@ export type { PluginListMarketplaceKind } from "./PluginListMarketplaceKind";
|
||||
export type { PluginListParams } from "./PluginListParams";
|
||||
export type { PluginListResponse } from "./PluginListResponse";
|
||||
export type { PluginMarketplaceEntry } from "./PluginMarketplaceEntry";
|
||||
export type { PluginQuickAction } from "./PluginQuickAction";
|
||||
export type { PluginQuickActionTarget } from "./PluginQuickActionTarget";
|
||||
export type { PluginReadParams } from "./PluginReadParams";
|
||||
export type { PluginReadResponse } from "./PluginReadResponse";
|
||||
export type { PluginReconcileChangedPlugin } from "./PluginReconcileChangedPlugin";
|
||||
export type { PluginReconcileParams } from "./PluginReconcileParams";
|
||||
export type { PluginReconcileResponse } from "./PluginReconcileResponse";
|
||||
export type { PluginSearchProvider } from "./PluginSearchProvider";
|
||||
export type { PluginSearchProviderCall } from "./PluginSearchProviderCall";
|
||||
export type { PluginSearchResult } from "./PluginSearchResult";
|
||||
export type { PluginSearchScope } from "./PluginSearchScope";
|
||||
export type { PluginSettings } from "./PluginSettings";
|
||||
export type { PluginShareCheckoutParams } from "./PluginShareCheckoutParams";
|
||||
export type { PluginShareCheckoutResponse } from "./PluginShareCheckoutResponse";
|
||||
export type { PluginShareContext } from "./PluginShareContext";
|
||||
|
||||
@@ -24,7 +24,6 @@ mod model;
|
||||
mod notification;
|
||||
mod permissions;
|
||||
mod plugin;
|
||||
mod plugin_extensions;
|
||||
mod plugin_search;
|
||||
mod process;
|
||||
mod project;
|
||||
@@ -64,7 +63,6 @@ pub use model::*;
|
||||
pub use notification::*;
|
||||
pub use permissions::*;
|
||||
pub use plugin::*;
|
||||
pub use plugin_extensions::*;
|
||||
pub use plugin_search::*;
|
||||
pub use process::*;
|
||||
pub use project::*;
|
||||
|
||||
@@ -696,8 +696,6 @@ pub enum PluginDisabledReason {
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct PluginSummary {
|
||||
#[serde(default)]
|
||||
pub extensions: Option<super::PluginExtensions>,
|
||||
pub id: String,
|
||||
/// Backend remote plugin identifier when available.
|
||||
pub remote_plugin_id: Option<String>,
|
||||
|
||||
@@ -1,133 +0,0 @@
|
||||
//! Hosted plugin extension declarations carried by installed-plugin discovery.
|
||||
|
||||
use crate::JsonSchema;
|
||||
use crate::TS;
|
||||
use serde::Deserialize;
|
||||
use serde::Serialize;
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Default, PartialEq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct PluginExtensions {
|
||||
#[serde(default)]
|
||||
pub entrypoints: Option<Vec<PluginEntrypoint>>,
|
||||
#[serde(default, alias = "settings_entrypoints")]
|
||||
pub settings_entrypoints: Vec<PluginEntrypoint>,
|
||||
#[serde(default)]
|
||||
pub settings: Vec<PluginSettings>,
|
||||
#[serde(default, alias = "thread_entrypoints")]
|
||||
pub thread_entrypoints: Vec<PluginEntrypoint>,
|
||||
#[serde(default, alias = "file_handlers")]
|
||||
pub file_handlers: Vec<PluginEntrypoint>,
|
||||
#[serde(default, alias = "search_mention_providers")]
|
||||
pub search_mention_providers: Vec<PluginSearchProvider>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
#[ts(tag = "type", rename_all = "camelCase", export_to = "v2/")]
|
||||
pub enum PluginEntrypoint {
|
||||
Global {
|
||||
#[serde(flatten)]
|
||||
presentation: PluginEntrypointPresentation,
|
||||
#[serde(default, rename = "quickAction", alias = "quick_action")]
|
||||
#[ts(rename = "quickAction")]
|
||||
quick_action: Option<PluginQuickAction>,
|
||||
},
|
||||
Settings {
|
||||
#[serde(flatten)]
|
||||
presentation: PluginEntrypointPresentation,
|
||||
#[serde(default, rename = "searchTerms", alias = "search_terms")]
|
||||
#[ts(rename = "searchTerms")]
|
||||
search_terms: Vec<String>,
|
||||
},
|
||||
Thread {
|
||||
#[serde(flatten)]
|
||||
presentation: PluginEntrypointPresentation,
|
||||
},
|
||||
File {
|
||||
#[serde(flatten)]
|
||||
presentation: PluginEntrypointPresentation,
|
||||
extensions: Vec<String>,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct PluginEntrypointPresentation {
|
||||
#[serde(alias = "app_id")]
|
||||
pub app_id: String,
|
||||
#[serde(alias = "tool_name")]
|
||||
pub tool_name: String,
|
||||
pub title: String,
|
||||
#[serde(alias = "resource_uri")]
|
||||
pub resource_uri: String,
|
||||
pub icons: Vec<PluginIcon>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct PluginIcon {
|
||||
pub src: String,
|
||||
pub mime_type: Option<String>,
|
||||
pub sizes: Option<Vec<String>>,
|
||||
pub theme: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct PluginQuickAction {
|
||||
pub title: String,
|
||||
pub icons: Vec<PluginIcon>,
|
||||
pub target: PluginQuickActionTarget,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
||||
#[serde(tag = "type", rename_all = "camelCase")]
|
||||
#[ts(tag = "type", rename_all = "camelCase", export_to = "v2/")]
|
||||
pub enum PluginQuickActionTarget {
|
||||
Tool {
|
||||
name: String,
|
||||
arguments: Option<serde_json::Value>,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct PluginSettings {
|
||||
#[serde(alias = "app_id")]
|
||||
pub app_id: String,
|
||||
#[serde(alias = "read_tool_name")]
|
||||
pub read_tool_name: String,
|
||||
#[serde(alias = "update_tool_name")]
|
||||
pub update_tool_name: String,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct PluginSearchProvider {
|
||||
#[serde(alias = "app_id")]
|
||||
pub app_id: String,
|
||||
#[serde(alias = "tool_name")]
|
||||
pub tool_name: String,
|
||||
#[serde(alias = "link_id")]
|
||||
pub link_id: String,
|
||||
pub title: String,
|
||||
pub call: Option<PluginSearchProviderCall>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
#[ts(export_to = "v2/")]
|
||||
pub struct PluginSearchProviderCall {
|
||||
pub name: String,
|
||||
pub arguments: serde_json::Value,
|
||||
#[serde(rename = "_meta")]
|
||||
#[ts(rename = "_meta")]
|
||||
pub meta: serde_json::Value,
|
||||
}
|
||||
@@ -4472,7 +4472,6 @@ fn plugin_share_list_response_serializes_share_items() {
|
||||
serde_json::to_value(PluginShareListResponse {
|
||||
data: vec![PluginShareListItem {
|
||||
plugin: PluginSummary {
|
||||
extensions: None,
|
||||
id: "gmail@openai-curated-remote".to_string(),
|
||||
remote_plugin_id: Some(
|
||||
"plugins~Plugin_00000000000000000000000000000000".to_string(),
|
||||
@@ -4502,7 +4501,6 @@ fn plugin_share_list_response_serializes_share_items() {
|
||||
json!({
|
||||
"data": [{
|
||||
"plugin": {
|
||||
"extensions": null,
|
||||
"id": "gmail@openai-curated-remote",
|
||||
"remotePluginId": "plugins~Plugin_00000000000000000000000000000000",
|
||||
"version": null,
|
||||
@@ -4555,7 +4553,6 @@ fn plugin_summary_defaults_missing_availability_to_available() {
|
||||
#[test]
|
||||
fn plugin_summary_round_trips_plan_eligibility_metadata() {
|
||||
let value = json!({
|
||||
"extensions": null,
|
||||
"id": "gmail@openai-curated-remote",
|
||||
"remotePluginId": "plugins~Plugin_00000000000000000000000000000000",
|
||||
"version": null,
|
||||
|
||||
@@ -188,7 +188,6 @@ fn convert_configured_marketplace_plugin_to_plugin_summary(
|
||||
) -> PluginSummary {
|
||||
let share_context = share_context_for_source(&plugin.source, shared_plugin_ids_by_local_path);
|
||||
PluginSummary {
|
||||
extensions: None,
|
||||
id: plugin.id,
|
||||
remote_plugin_id: None,
|
||||
version: None,
|
||||
@@ -1123,7 +1122,6 @@ impl PluginRequestProcessor {
|
||||
marketplace_name: outcome.marketplace_name,
|
||||
marketplace_path: outcome.marketplace_path,
|
||||
summary: PluginSummary {
|
||||
extensions: None,
|
||||
id: outcome.plugin.id,
|
||||
remote_plugin_id: None,
|
||||
version: None,
|
||||
@@ -2181,7 +2179,6 @@ fn remote_marketplace_to_info(marketplace: RemoteMarketplace) -> PluginMarketpla
|
||||
|
||||
fn remote_plugin_summary_to_info(summary: RemoteCatalogPluginSummary) -> PluginSummary {
|
||||
PluginSummary {
|
||||
extensions: summary.extensions,
|
||||
id: summary.id,
|
||||
remote_plugin_id: Some(summary.remote_plugin_id),
|
||||
version: summary.version,
|
||||
|
||||
@@ -639,7 +639,6 @@ async fn plugin_list_keeps_valid_marketplaces_when_another_marketplace_fails_to_
|
||||
path: Some(valid_marketplace_path),
|
||||
interface: None,
|
||||
plugins: vec![PluginSummary {
|
||||
extensions: None,
|
||||
id: "valid-plugin@valid-marketplace".to_string(),
|
||||
remote_plugin_id: None,
|
||||
version: None,
|
||||
@@ -761,7 +760,6 @@ async fn plugin_list_uses_alternate_discoverable_manifest_and_keeps_undiscoverab
|
||||
interface: None,
|
||||
plugins: vec![
|
||||
PluginSummary {
|
||||
extensions: None,
|
||||
id: "valid-plugin@alternate-marketplace".to_string(),
|
||||
remote_plugin_id: None,
|
||||
version: None,
|
||||
@@ -805,7 +803,6 @@ async fn plugin_list_uses_alternate_discoverable_manifest_and_keeps_undiscoverab
|
||||
keywords: Vec::new(),
|
||||
},
|
||||
PluginSummary {
|
||||
extensions: None,
|
||||
id: "missing-plugin@alternate-marketplace".to_string(),
|
||||
remote_plugin_id: None,
|
||||
version: None,
|
||||
@@ -3493,161 +3490,6 @@ async fn plugin_list_does_not_append_global_remote_when_marketplace_kinds_are_ex
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn plugin_installed_preserves_extensions_and_ignores_incompatible_metadata() -> Result<()> {
|
||||
let codex_home = TempDir::new()?;
|
||||
let server = MockServer::start().await;
|
||||
write_plugins_enabled_config_with_base_url(
|
||||
codex_home.path(),
|
||||
&format!("{}/backend-api", server.uri()),
|
||||
)?;
|
||||
write_chatgpt_auth(
|
||||
codex_home.path(),
|
||||
ChatGptAuthFixture::new("chatgpt-token")
|
||||
.account_id("account-123")
|
||||
.chatgpt_user_id("user-123")
|
||||
.chatgpt_account_id("account-123"),
|
||||
AuthCredentialsStoreMode::File,
|
||||
)?;
|
||||
let icon = serde_json::json!({
|
||||
"src": "https://example.com/parts.svg",
|
||||
"mimeType": "image/svg+xml",
|
||||
"sizes": ["any"],
|
||||
"theme": "light",
|
||||
});
|
||||
let quick_action = serde_json::json!({
|
||||
"title": "Add part",
|
||||
"icons": [icon.clone()],
|
||||
"target": {"type": "tool", "name": "parts.add", "arguments": {}},
|
||||
});
|
||||
let extensions = serde_json::json!({
|
||||
"entrypoints": [{
|
||||
"type": "global",
|
||||
"app_id": "parts-app",
|
||||
"tool_name": "parts.open",
|
||||
"title": "Parts",
|
||||
"resource_uri": "ui://parts/library",
|
||||
"icons": [icon.clone()],
|
||||
"quick_action": quick_action.clone(),
|
||||
}],
|
||||
"settings": [{
|
||||
"app_id": "parts-app",
|
||||
"read_tool_name": "settings.read",
|
||||
"update_tool_name": "settings.update",
|
||||
}],
|
||||
});
|
||||
let mut unknown_entrypoint = extensions.clone();
|
||||
unknown_entrypoint["entrypoints"][0]["type"] = serde_json::json!("futurePlacement");
|
||||
let mut unknown_action = extensions.clone();
|
||||
unknown_action["entrypoints"][0]["quick_action"]["target"]["type"] =
|
||||
serde_json::json!("futureAction");
|
||||
let mut body: serde_json::Value = serde_json::from_str(&remote_installed_plugin_body(
|
||||
"", "1.2.3", /*enabled*/ true,
|
||||
))?;
|
||||
let template = body["plugins"][0].clone();
|
||||
body["plugins"][0]["extensions"] = extensions;
|
||||
for (id, name, extensions) in [
|
||||
(
|
||||
"plugins~Plugin_11111111111111111111111111111111",
|
||||
"future-placement",
|
||||
unknown_entrypoint,
|
||||
),
|
||||
(
|
||||
"plugins~Plugin_22222222222222222222222222222222",
|
||||
"future-action",
|
||||
unknown_action,
|
||||
),
|
||||
] {
|
||||
let mut plugin = template.clone();
|
||||
plugin["id"] = serde_json::json!(id);
|
||||
plugin["name"] = serde_json::json!(name);
|
||||
plugin["extensions"] = extensions;
|
||||
body["plugins"].as_array_mut().unwrap().push(plugin);
|
||||
}
|
||||
mount_remote_installed_plugins(&server, "GLOBAL", &serde_json::to_string(&body)?).await;
|
||||
mount_remote_installed_plugins(&server, "WORKSPACE", empty_remote_installed_plugins_body())
|
||||
.await;
|
||||
mount_empty_user_installed_plugins(&server).await;
|
||||
let mut mcp = TestAppServer::builder()
|
||||
.with_codex_home(codex_home.path())
|
||||
.build_initialized_with_timeout(DEFAULT_TIMEOUT)
|
||||
.await?;
|
||||
let expected = BTreeMap::from([
|
||||
(
|
||||
"linear@openai-curated-remote".to_string(),
|
||||
serde_json::json!({
|
||||
"entrypoints": [{
|
||||
"type": "global",
|
||||
"appId": "parts-app",
|
||||
"toolName": "parts.open",
|
||||
"title": "Parts",
|
||||
"resourceUri": "ui://parts/library",
|
||||
"icons": [icon],
|
||||
"quickAction": quick_action,
|
||||
}],
|
||||
"settingsEntrypoints": [],
|
||||
"settings": [{
|
||||
"appId": "parts-app",
|
||||
"readToolName": "settings.read",
|
||||
"updateToolName": "settings.update",
|
||||
}],
|
||||
"threadEntrypoints": [],
|
||||
"fileHandlers": [],
|
||||
"searchMentionProviders": [],
|
||||
}),
|
||||
),
|
||||
(
|
||||
"future-placement@openai-curated-remote".to_string(),
|
||||
serde_json::Value::Null,
|
||||
),
|
||||
(
|
||||
"future-action@openai-curated-remote".to_string(),
|
||||
serde_json::Value::Null,
|
||||
),
|
||||
]);
|
||||
for read in 0..2 {
|
||||
let request_id = mcp
|
||||
.send_plugin_installed_request(PluginInstalledParams {
|
||||
cwds: None,
|
||||
install_suggestion_plugin_names: None,
|
||||
})
|
||||
.await?;
|
||||
let response: serde_json::Value =
|
||||
timeout(DEFAULT_TIMEOUT, mcp.read_response(request_id)).await??;
|
||||
let marketplace = response["marketplaces"]
|
||||
.as_array()
|
||||
.unwrap()
|
||||
.iter()
|
||||
.find(|marketplace| marketplace["name"] == "openai-curated-remote")
|
||||
.expect("remote inventory should survive incompatible extension metadata");
|
||||
let actual = marketplace["plugins"]
|
||||
.as_array()
|
||||
.unwrap()
|
||||
.iter()
|
||||
.map(|plugin| {
|
||||
(
|
||||
plugin["id"].as_str().unwrap().to_string(),
|
||||
plugin.get("extensions").unwrap().clone(),
|
||||
)
|
||||
})
|
||||
.collect::<BTreeMap<_, _>>();
|
||||
assert_eq!(actual, expected);
|
||||
if read == 0 {
|
||||
let request_id = mcp
|
||||
.send_raw_request(
|
||||
"plugin/reconcile",
|
||||
Some(serde_json::json!({"reason": "tooling_changed"})),
|
||||
)
|
||||
.await?;
|
||||
let _: serde_json::Value =
|
||||
timeout(DEFAULT_TIMEOUT, mcp.read_response(request_id)).await??;
|
||||
// Reconciliation publishes the cache before the backend becomes unavailable.
|
||||
server.reset().await;
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn plugin_installed_includes_remote_shared_with_me_plugins_when_remote_plugin_disabled()
|
||||
-> Result<()> {
|
||||
|
||||
@@ -164,7 +164,6 @@ async fn plugin_share_save_uploads_local_plugin() -> Result<()> {
|
||||
PluginShareListResponse {
|
||||
data: vec![PluginShareListItem {
|
||||
plugin: PluginSummary {
|
||||
extensions: None,
|
||||
id: "demo-plugin@workspace-shared-with-me".to_string(),
|
||||
remote_plugin_id: Some("plugins_123".to_string()),
|
||||
version: Some("0.1.0".to_string()),
|
||||
@@ -586,7 +585,6 @@ async fn plugin_share_list_returns_created_workspace_plugins() -> Result<()> {
|
||||
PluginShareListResponse {
|
||||
data: vec![PluginShareListItem {
|
||||
plugin: PluginSummary {
|
||||
extensions: None,
|
||||
id: "demo-plugin@workspace-shared-with-me".to_string(),
|
||||
remote_plugin_id: Some("plugins_123".to_string()),
|
||||
version: Some("0.1.0".to_string()),
|
||||
@@ -1250,7 +1248,6 @@ async fn plugin_share_delete_removes_created_workspace_plugin() -> Result<()> {
|
||||
PluginShareListResponse {
|
||||
data: vec![PluginShareListItem {
|
||||
plugin: PluginSummary {
|
||||
extensions: None,
|
||||
id: "demo-plugin@workspace-shared-with-me".to_string(),
|
||||
remote_plugin_id: Some("plugins_123".to_string()),
|
||||
version: Some("0.1.0".to_string()),
|
||||
|
||||
@@ -857,7 +857,6 @@ fn remote_installed_plugin_in_marketplace(
|
||||
marketplace_name: &str,
|
||||
) -> RemoteInstalledPlugin {
|
||||
RemoteInstalledPlugin {
|
||||
extensions: None,
|
||||
canonical_app_id: None,
|
||||
marketplace_name: marketplace_name.to_string(),
|
||||
id: format!("plugins~Plugin_{name}"),
|
||||
|
||||
@@ -14,7 +14,6 @@ use codex_app_server_protocol::JSONRPCErrorError;
|
||||
use codex_app_server_protocol::PluginAuthPolicy;
|
||||
use codex_app_server_protocol::PluginAvailability;
|
||||
use codex_app_server_protocol::PluginDisabledReason;
|
||||
use codex_app_server_protocol::PluginExtensions;
|
||||
use codex_app_server_protocol::PluginInstallPolicy;
|
||||
use codex_app_server_protocol::PluginInstallPolicySource;
|
||||
use codex_app_server_protocol::PluginInterface;
|
||||
@@ -39,7 +38,6 @@ use http::StatusCode;
|
||||
use serde::Deserialize;
|
||||
use serde::Serialize;
|
||||
use serde_json::Value as JsonValue;
|
||||
use serde_with::serde_as;
|
||||
use std::collections::BTreeMap;
|
||||
use std::collections::BTreeSet;
|
||||
use std::collections::HashMap;
|
||||
@@ -244,7 +242,6 @@ pub struct RemoteInstalledPlugin {
|
||||
pub version: Option<String>,
|
||||
pub name: String,
|
||||
pub canonical_app_id: Option<String>,
|
||||
pub extensions: Option<PluginExtensions>,
|
||||
pub installed_at: Option<DateTime<Utc>>,
|
||||
pub enabled: bool,
|
||||
pub install_policy: PluginInstallPolicy,
|
||||
@@ -260,7 +257,6 @@ pub struct RemoteInstalledPlugin {
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub struct RemotePluginSummary {
|
||||
pub extensions: Option<PluginExtensions>,
|
||||
pub id: String,
|
||||
pub remote_plugin_id: String,
|
||||
pub version: Option<String>,
|
||||
@@ -765,15 +761,10 @@ struct RemotePluginDirectorySharePrincipal {
|
||||
name: String,
|
||||
}
|
||||
|
||||
#[serde_as]
|
||||
#[derive(Debug, Clone, PartialEq, Deserialize)]
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
|
||||
struct RemotePluginInstalledItem {
|
||||
#[serde(flatten)]
|
||||
plugin: RemotePluginDirectoryItem,
|
||||
// Unsupported optional declarations must not invalidate the installed inventory.
|
||||
#[serde_as(deserialize_as = "serde_with::DefaultOnError")]
|
||||
#[serde(default)]
|
||||
extensions: Option<PluginExtensions>,
|
||||
#[serde(default)]
|
||||
installed_at: Option<DateTime<Utc>>,
|
||||
enabled: bool,
|
||||
@@ -800,7 +791,7 @@ struct RecommendedPluginItem {
|
||||
display_name: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Deserialize)]
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
|
||||
struct RemotePluginInstalledResponse {
|
||||
plugins: Vec<RemotePluginInstalledItem>,
|
||||
pagination: RemotePluginPagination,
|
||||
@@ -1321,7 +1312,6 @@ pub fn group_remote_installed_plugins_by_marketplaces(
|
||||
continue;
|
||||
};
|
||||
let plugin_summary = RemotePluginSummary {
|
||||
extensions: plugin.extensions.clone(),
|
||||
id: plugin_id.as_key(),
|
||||
remote_plugin_id: plugin.id.clone(),
|
||||
version: plugin.version.clone(),
|
||||
@@ -1821,7 +1811,6 @@ fn build_remote_plugin_summary(
|
||||
))
|
||||
})?;
|
||||
Ok(RemotePluginSummary {
|
||||
extensions: installed_plugin.and_then(|plugin| plugin.extensions.clone()),
|
||||
id: plugin_id.as_key(),
|
||||
remote_plugin_id: plugin.id.clone(),
|
||||
version: plugin.release.version.clone(),
|
||||
@@ -1925,7 +1914,6 @@ fn remote_installed_plugin_to_cache_entry(
|
||||
version: plugin.release.version.clone(),
|
||||
name: plugin.name.clone(),
|
||||
canonical_app_id: plugin.canonical_app_id.clone(),
|
||||
extensions: installed_plugin.extensions.clone(),
|
||||
installed_at: installed_plugin.installed_at,
|
||||
enabled: installed_plugin.enabled,
|
||||
install_policy: plugin.installation_policy,
|
||||
@@ -2269,8 +2257,6 @@ async fn get_remote_plugin_installed_page(
|
||||
let base_url = config.chatgpt_base_url.trim_end_matches('/');
|
||||
let mut url = Url::parse(&format!("{base_url}/ps/plugins/installed"))
|
||||
.map_err(RemotePluginCatalogError::InvalidBaseUrl)?;
|
||||
url.query_pairs_mut()
|
||||
.append_pair("includeExtensions", "true");
|
||||
match scope {
|
||||
RemoteInstalledPluginScope::All => {
|
||||
url.query_pairs_mut()
|
||||
|
||||
@@ -757,11 +757,11 @@ mod tests {
|
||||
crate::test_support::recorded_http_client_urls(&selected_urls),
|
||||
vec![
|
||||
format!(
|
||||
"{}/backend-api/ps/plugins/installed?includeExtensions=true&limit=200&includeDownloadUrls=true",
|
||||
"{}/backend-api/ps/plugins/installed?limit=200&includeDownloadUrls=true",
|
||||
server.uri()
|
||||
),
|
||||
format!(
|
||||
"{}/backend-api/ps/plugins/installed?includeExtensions=true&limit=200&includeDownloadUrls=true&pageToken=page-2",
|
||||
"{}/backend-api/ps/plugins/installed?limit=200&includeDownloadUrls=true&pageToken=page-2",
|
||||
server.uri()
|
||||
),
|
||||
]
|
||||
|
||||
@@ -108,7 +108,6 @@ async fn search_remote_plugins_forwards_parameters_and_converts_results() {
|
||||
result,
|
||||
RemotePluginSearchPage {
|
||||
plugins: vec![RemotePluginSummary {
|
||||
extensions: None,
|
||||
id: format!("linear@{REMOTE_GLOBAL_MARKETPLACE_NAME}"),
|
||||
remote_plugin_id: "plugins~Plugin_linear".to_string(),
|
||||
version: Some("1.2.3".to_string()),
|
||||
|
||||
@@ -635,7 +635,6 @@ async fn list_remote_plugin_shares_fetches_created_workspace_plugins() {
|
||||
vec![
|
||||
RemotePluginShareSummary {
|
||||
summary: RemotePluginSummary {
|
||||
extensions: None,
|
||||
id: "demo-plugin@workspace-shared-with-me".to_string(),
|
||||
remote_plugin_id: "plugins_123".to_string(),
|
||||
version: Some("0.1.0".to_string()),
|
||||
@@ -683,7 +682,6 @@ async fn list_remote_plugin_shares_fetches_created_workspace_plugins() {
|
||||
},
|
||||
RemotePluginShareSummary {
|
||||
summary: RemotePluginSummary {
|
||||
extensions: None,
|
||||
id: "demo-plugin@workspace-shared-with-me".to_string(),
|
||||
remote_plugin_id: "plugins_456".to_string(),
|
||||
version: Some("0.1.0".to_string()),
|
||||
|
||||
@@ -14,7 +14,6 @@ fn image_url(renewal: &str) -> String {
|
||||
|
||||
fn plugin(renewal: &str) -> RemoteInstalledPlugin {
|
||||
RemoteInstalledPlugin {
|
||||
extensions: None,
|
||||
marketplace_name: REMOTE_GLOBAL_MARKETPLACE_NAME.to_string(),
|
||||
id: "plugin-test".to_string(),
|
||||
version: Some("1.0.0".to_string()),
|
||||
|
||||
@@ -151,11 +151,11 @@ async fn remote_installed_plugins_paginate_across_all_scopes_without_download_ur
|
||||
recorded_http_client_urls(&selected_urls),
|
||||
vec![
|
||||
format!(
|
||||
"{}/backend-api/ps/plugins/installed?includeExtensions=true&limit=200",
|
||||
"{}/backend-api/ps/plugins/installed?limit=200",
|
||||
server.uri()
|
||||
),
|
||||
format!(
|
||||
"{}/backend-api/ps/plugins/installed?includeExtensions=true&limit=200&pageToken=next+page%2F%2B",
|
||||
"{}/backend-api/ps/plugins/installed?limit=200&pageToken=next+page%2F%2B",
|
||||
server.uri()
|
||||
),
|
||||
]
|
||||
@@ -333,7 +333,6 @@ fn build_remote_marketplace_preserves_directory_order_and_appends_installed_only
|
||||
directory_plugin("plugin-m", "mike"),
|
||||
];
|
||||
let installed_plugins = vec![RemotePluginInstalledItem {
|
||||
extensions: None,
|
||||
plugin: directory_plugin("plugin-a", "alpha"),
|
||||
installed_at: None,
|
||||
enabled: true,
|
||||
@@ -366,7 +365,6 @@ fn installation_policy_source_is_preserved_across_remote_summary_paths() {
|
||||
directory_plugin.installation_policy_source =
|
||||
Some(RemotePluginInstallPolicySource::ImplicitCanonicalApp);
|
||||
let installed_plugin = RemotePluginInstalledItem {
|
||||
extensions: None,
|
||||
plugin: directory_plugin.clone(),
|
||||
installed_at: None,
|
||||
enabled: true,
|
||||
@@ -422,7 +420,6 @@ fn plan_eligibility_is_preserved_across_remote_summary_paths() {
|
||||
"enterprise_cbp_automation".to_string(),
|
||||
]);
|
||||
let installed_plugin = RemotePluginInstalledItem {
|
||||
extensions: None,
|
||||
plugin: directory_plugin.clone(),
|
||||
installed_at: None,
|
||||
enabled: false,
|
||||
@@ -516,7 +513,6 @@ fn installation_interstitial_requirement_is_preserved_across_remote_summary_path
|
||||
|
||||
directory_plugin.must_show_installation_interstitial = Some(false);
|
||||
let installed_plugin = remote_installed_plugin_to_cache_entry(&RemotePluginInstalledItem {
|
||||
extensions: None,
|
||||
plugin: directory_plugin,
|
||||
installed_at: None,
|
||||
enabled: true,
|
||||
|
||||
@@ -167,7 +167,6 @@ mod tests {
|
||||
|
||||
fn plugin_summary(name: &str) -> PluginSummary {
|
||||
PluginSummary {
|
||||
extensions: None,
|
||||
id: format!("{name}@server-marketplace"),
|
||||
remote_plugin_id: Some(format!("plugins~{name}")),
|
||||
version: None,
|
||||
|
||||
@@ -1451,7 +1451,6 @@ pub(super) fn plugins_test_summary(
|
||||
install_policy: PluginInstallPolicy,
|
||||
) -> PluginSummary {
|
||||
PluginSummary {
|
||||
extensions: None,
|
||||
id: id.to_string(),
|
||||
remote_plugin_id: None,
|
||||
version: None,
|
||||
@@ -1488,7 +1487,6 @@ pub(super) fn plugins_test_remote_summary(
|
||||
installed: bool,
|
||||
) -> PluginSummary {
|
||||
PluginSummary {
|
||||
extensions: None,
|
||||
id: remote_plugin_id.to_string(),
|
||||
remote_plugin_id: Some(remote_plugin_id.to_string()),
|
||||
version: None,
|
||||
|
||||
@@ -3145,16 +3145,6 @@ class PluginHookSummary(BaseModel):
|
||||
key: str
|
||||
|
||||
|
||||
class PluginIcon(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
mime_type: Annotated[str | None, Field(alias="mimeType")] = None
|
||||
sizes: list[str] | None = None
|
||||
src: str
|
||||
theme: str | None = None
|
||||
|
||||
|
||||
class PluginInstallParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -3307,22 +3297,6 @@ class PluginListParams(BaseModel):
|
||||
] = None
|
||||
|
||||
|
||||
class ToolPluginQuickActionTarget(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
arguments: Any | None = None
|
||||
name: str
|
||||
type: Annotated[Literal["tool"], Field(title="ToolPluginQuickActionTargetType")]
|
||||
|
||||
|
||||
class PluginQuickActionTarget(RootModel[ToolPluginQuickActionTarget]):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
root: ToolPluginQuickActionTarget
|
||||
|
||||
|
||||
class PluginReadParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -3390,30 +3364,12 @@ class PluginReconcileResponse(BaseModel):
|
||||
]
|
||||
|
||||
|
||||
class PluginSearchProviderCall(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
field_meta: Annotated[Any, Field(alias="_meta")]
|
||||
arguments: Any
|
||||
name: str
|
||||
|
||||
|
||||
class PluginSearchScope(Enum):
|
||||
global_ = "global"
|
||||
workspace = "workspace"
|
||||
personal = "personal"
|
||||
|
||||
|
||||
class PluginSettings(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
app_id: Annotated[str, Field(alias="appId")]
|
||||
read_tool_name: Annotated[str, Field(alias="readToolName")]
|
||||
update_tool_name: Annotated[str, Field(alias="updateToolName")]
|
||||
|
||||
|
||||
class PluginShareCheckoutParams(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -8753,64 +8709,6 @@ class PermissionProfileListResponse(BaseModel):
|
||||
] = None
|
||||
|
||||
|
||||
class SettingsPluginEntrypoint(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
app_id: Annotated[str, Field(alias="appId")]
|
||||
icons: list[PluginIcon]
|
||||
resource_uri: Annotated[str, Field(alias="resourceUri")]
|
||||
search_terms: Annotated[list[str] | None, Field(alias="searchTerms")] = []
|
||||
title: str
|
||||
tool_name: Annotated[str, Field(alias="toolName")]
|
||||
type: Annotated[Literal["settings"], Field(title="SettingsPluginEntrypointType")]
|
||||
|
||||
|
||||
class ThreadPluginEntrypoint(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
app_id: Annotated[str, Field(alias="appId")]
|
||||
icons: list[PluginIcon]
|
||||
resource_uri: Annotated[str, Field(alias="resourceUri")]
|
||||
title: str
|
||||
tool_name: Annotated[str, Field(alias="toolName")]
|
||||
type: Annotated[Literal["thread"], Field(title="ThreadPluginEntrypointType")]
|
||||
|
||||
|
||||
class FilePluginEntrypoint(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
app_id: Annotated[str, Field(alias="appId")]
|
||||
extensions: list[str]
|
||||
icons: list[PluginIcon]
|
||||
resource_uri: Annotated[str, Field(alias="resourceUri")]
|
||||
title: str
|
||||
tool_name: Annotated[str, Field(alias="toolName")]
|
||||
type: Annotated[Literal["file"], Field(title="FilePluginEntrypointType")]
|
||||
|
||||
|
||||
class PluginQuickAction(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
icons: list[PluginIcon]
|
||||
target: PluginQuickActionTarget
|
||||
title: str
|
||||
|
||||
|
||||
class PluginSearchProvider(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
app_id: Annotated[str, Field(alias="appId")]
|
||||
call: PluginSearchProviderCall | None = None
|
||||
link_id: Annotated[str, Field(alias="linkId")]
|
||||
title: str
|
||||
tool_name: Annotated[str, Field(alias="toolName")]
|
||||
|
||||
|
||||
class PluginSharePrincipal(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -10942,56 +10840,6 @@ class ModelsRequirements(BaseModel):
|
||||
new_thread: Annotated[NewThreadModelDefaults | None, Field(alias="newThread")] = None
|
||||
|
||||
|
||||
class GlobalPluginEntrypoint(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
app_id: Annotated[str, Field(alias="appId")]
|
||||
icons: list[PluginIcon]
|
||||
quick_action: Annotated[PluginQuickAction | None, Field(alias="quickAction")] = None
|
||||
resource_uri: Annotated[str, Field(alias="resourceUri")]
|
||||
title: str
|
||||
tool_name: Annotated[str, Field(alias="toolName")]
|
||||
type: Annotated[Literal["global"], Field(title="GlobalPluginEntrypointType")]
|
||||
|
||||
|
||||
class PluginEntrypoint(
|
||||
RootModel[
|
||||
GlobalPluginEntrypoint
|
||||
| SettingsPluginEntrypoint
|
||||
| ThreadPluginEntrypoint
|
||||
| FilePluginEntrypoint
|
||||
]
|
||||
):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
root: (
|
||||
GlobalPluginEntrypoint
|
||||
| SettingsPluginEntrypoint
|
||||
| ThreadPluginEntrypoint
|
||||
| FilePluginEntrypoint
|
||||
)
|
||||
|
||||
|
||||
class PluginExtensions(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
)
|
||||
entrypoints: list[PluginEntrypoint] | None = None
|
||||
file_handlers: Annotated[list[PluginEntrypoint] | None, Field(alias="fileHandlers")] = []
|
||||
search_mention_providers: Annotated[
|
||||
list[PluginSearchProvider] | None, Field(alias="searchMentionProviders")
|
||||
] = []
|
||||
settings: list[PluginSettings] | None = []
|
||||
settings_entrypoints: Annotated[
|
||||
list[PluginEntrypoint] | None, Field(alias="settingsEntrypoints")
|
||||
] = []
|
||||
thread_entrypoints: Annotated[
|
||||
list[PluginEntrypoint] | None, Field(alias="threadEntrypoints")
|
||||
] = []
|
||||
|
||||
|
||||
class PluginShareContext(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
@@ -11048,7 +10896,6 @@ class PluginSummary(BaseModel):
|
||||
),
|
||||
] = None
|
||||
enabled: bool
|
||||
extensions: PluginExtensions | None = None
|
||||
id: str
|
||||
install_policy: Annotated[PluginInstallPolicy, Field(alias="installPolicy")]
|
||||
install_policy_source: Annotated[
|
||||
|
||||
Reference in New Issue
Block a user