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:
victor-openai
2026-09-25 08:25:37 +00:00
committed by copyberry
parent d7b07d4551
commit 4b1c0c30da
35 changed files with 7 additions and 2901 deletions
@@ -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[