mirror of
https://github.com/openai/codex.git
synced 2026-05-14 16:22:51 +00:00
Expose discoverability and full share principals in share context, carry roles through save/updateTargets, hydrate local shared plugin reads, and keep share URLs only under plugin.shareContext.
640 lines
14 KiB
JSON
Generated
640 lines
14 KiB
JSON
Generated
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"AbsolutePathBuf": {
|
|
"description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
|
|
"type": "string"
|
|
},
|
|
"AppSummary": {
|
|
"description": "EXPERIMENTAL - app metadata summary for plugin responses.",
|
|
"properties": {
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"installUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"needsAuth": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"needsAuth"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"HookEventName": {
|
|
"enum": [
|
|
"preToolUse",
|
|
"permissionRequest",
|
|
"postToolUse",
|
|
"preCompact",
|
|
"postCompact",
|
|
"sessionStart",
|
|
"userPromptSubmit",
|
|
"stop"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"PluginAuthPolicy": {
|
|
"enum": [
|
|
"ON_INSTALL",
|
|
"ON_USE"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"PluginAvailability": {
|
|
"oneOf": [
|
|
{
|
|
"enum": [
|
|
"DISABLED_BY_ADMIN"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"description": "Plugin-service currently sends `\"ENABLED\"` for available remote plugins. Codex app-server exposes `\"AVAILABLE\"` in its API; the alias keeps decoding compatible with that upstream response.",
|
|
"enum": [
|
|
"AVAILABLE"
|
|
],
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"PluginDetail": {
|
|
"properties": {
|
|
"apps": {
|
|
"items": {
|
|
"$ref": "#/definitions/AppSummary"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"hooks": {
|
|
"items": {
|
|
"$ref": "#/definitions/PluginHookSummary"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"marketplaceName": {
|
|
"type": "string"
|
|
},
|
|
"marketplacePath": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"mcpServers": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"skills": {
|
|
"items": {
|
|
"$ref": "#/definitions/SkillSummary"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"summary": {
|
|
"$ref": "#/definitions/PluginSummary"
|
|
}
|
|
},
|
|
"required": [
|
|
"apps",
|
|
"hooks",
|
|
"marketplaceName",
|
|
"mcpServers",
|
|
"skills",
|
|
"summary"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PluginHookSummary": {
|
|
"properties": {
|
|
"eventName": {
|
|
"$ref": "#/definitions/HookEventName"
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"eventName",
|
|
"key"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PluginInstallPolicy": {
|
|
"enum": [
|
|
"NOT_AVAILABLE",
|
|
"AVAILABLE",
|
|
"INSTALLED_BY_DEFAULT"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"PluginInterface": {
|
|
"properties": {
|
|
"brandColor": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"capabilities": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"category": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"composerIcon": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Local composer icon path, resolved from the installed plugin package."
|
|
},
|
|
"composerIconUrl": {
|
|
"description": "Remote composer icon URL from the plugin catalog.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"defaultPrompt": {
|
|
"description": "Starter prompts for the plugin. Capped at 3 entries with a maximum of 128 characters per entry.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"developerName": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"displayName": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"logo": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Local logo path, resolved from the installed plugin package."
|
|
},
|
|
"logoUrl": {
|
|
"description": "Remote logo URL from the plugin catalog.",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"longDescription": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"privacyPolicyUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"screenshotUrls": {
|
|
"description": "Remote screenshot URLs from the plugin catalog.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"screenshots": {
|
|
"description": "Local screenshot paths, resolved from the installed plugin package.",
|
|
"items": {
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"shortDescription": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"termsOfServiceUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"websiteUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"capabilities",
|
|
"screenshotUrls",
|
|
"screenshots"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PluginShareContext": {
|
|
"properties": {
|
|
"creatorAccountUserId": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"creatorName": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"discoverability": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/PluginShareDiscoverability"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"remotePluginId": {
|
|
"type": "string"
|
|
},
|
|
"sharePrincipals": {
|
|
"items": {
|
|
"$ref": "#/definitions/PluginSharePrincipal"
|
|
},
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
]
|
|
},
|
|
"shareUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"remotePluginId"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PluginShareDiscoverability": {
|
|
"enum": [
|
|
"LISTED",
|
|
"UNLISTED",
|
|
"PRIVATE"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"PluginSharePrincipal": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"principalId": {
|
|
"type": "string"
|
|
},
|
|
"principalType": {
|
|
"$ref": "#/definitions/PluginSharePrincipalType"
|
|
},
|
|
"role": {
|
|
"$ref": "#/definitions/PluginSharePrincipalRole"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"principalId",
|
|
"principalType",
|
|
"role"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PluginSharePrincipalRole": {
|
|
"enum": [
|
|
"reader",
|
|
"editor",
|
|
"owner"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"PluginSharePrincipalType": {
|
|
"enum": [
|
|
"user",
|
|
"group",
|
|
"workspace"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"PluginSource": {
|
|
"oneOf": [
|
|
{
|
|
"properties": {
|
|
"path": {
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"local"
|
|
],
|
|
"title": "LocalPluginSourceType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"type"
|
|
],
|
|
"title": "LocalPluginSource",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"properties": {
|
|
"path": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"refName": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"sha": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"type": {
|
|
"enum": [
|
|
"git"
|
|
],
|
|
"title": "GitPluginSourceType",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"url"
|
|
],
|
|
"title": "GitPluginSource",
|
|
"type": "object"
|
|
},
|
|
{
|
|
"description": "The plugin is available in the remote catalog. Download metadata is kept server-side and is not exposed through the app-server API.",
|
|
"properties": {
|
|
"type": {
|
|
"enum": [
|
|
"remote"
|
|
],
|
|
"title": "RemotePluginSourceType",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"title": "RemotePluginSource",
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"PluginSummary": {
|
|
"properties": {
|
|
"authPolicy": {
|
|
"$ref": "#/definitions/PluginAuthPolicy"
|
|
},
|
|
"availability": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/PluginAvailability"
|
|
}
|
|
],
|
|
"default": "AVAILABLE",
|
|
"description": "Availability state for installing and using the plugin."
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"installPolicy": {
|
|
"$ref": "#/definitions/PluginInstallPolicy"
|
|
},
|
|
"installed": {
|
|
"type": "boolean"
|
|
},
|
|
"interface": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/PluginInterface"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"keywords": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"shareContext": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/PluginShareContext"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Remote sharing context associated with this plugin when available."
|
|
},
|
|
"source": {
|
|
"$ref": "#/definitions/PluginSource"
|
|
}
|
|
},
|
|
"required": [
|
|
"authPolicy",
|
|
"enabled",
|
|
"id",
|
|
"installPolicy",
|
|
"installed",
|
|
"name",
|
|
"source"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"SkillInterface": {
|
|
"properties": {
|
|
"brandColor": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"defaultPrompt": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"displayName": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"iconLarge": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"iconSmall": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"shortDescription": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"SkillSummary": {
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"interface": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/SkillInterface"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/AbsolutePathBuf"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"shortDescription": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"description",
|
|
"enabled",
|
|
"name"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"properties": {
|
|
"plugin": {
|
|
"$ref": "#/definitions/PluginDetail"
|
|
}
|
|
},
|
|
"required": [
|
|
"plugin"
|
|
],
|
|
"title": "PluginReadResponse",
|
|
"type": "object"
|
|
} |