Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/codex-interface-policy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'agent-bundle': minor
---

Support authored Codex interface metadata and registered MCP app mappings, and publish capability evidence for plugin policy and compatibility environment surfaces.
101 changes: 101 additions & 0 deletions packages/agent-bundle/src/adapters/capabilities/codex-0.147.0.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,84 @@
},
"observedCliVersion": "0.147.0",
"plugin": {
"apps": {
"registeredMcpMappings": {
"evidence": [
"retrieved 2026-09-02: https://developers.openai.com/plugins/build/plugins documents a root `.app.json` file that maps registered MCP server connections, a manifest `apps` pointer to `./.app.json`, and registration technical IDs beginning with `plugin_asdk_app`."
],
"state": "supported"
}
},
"hookEnvironment": {
"claudePluginData": {
"evidence": [
"retrieved 2026-09-02: https://learn.chatgpt.com/docs/hooks states that Codex exports `CLAUDE_PLUGIN_DATA` to plugin hook commands as a compatibility alias for the plugin writable data directory."
],
"state": "supported"
},
"claudePluginRoot": {
"evidence": [
"retrieved 2026-09-02: https://learn.chatgpt.com/docs/hooks states that Codex exports `CLAUDE_PLUGIN_ROOT` to plugin hook commands as a compatibility alias for the installed plugin root."
],
"state": "supported"
},
"pluginData": {
"evidence": [
"retrieved 2026-09-02: https://learn.chatgpt.com/docs/hooks states that Codex-specific `PLUGIN_DATA` points to the plugin's writable data directory for plugin hook commands."
],
"state": "supported"
},
"pluginRoot": {
"evidence": [
"retrieved 2026-09-02: https://learn.chatgpt.com/docs/hooks states that Codex-specific `PLUGIN_ROOT` points to the installed plugin root for plugin hook commands; the Codex adapter uses `${PLUGIN_ROOT}` for generated hook wrapper commands."
],
"state": "supported"
}
},
"interface": {
"assets": {
"evidence": [
"retrieved 2026-09-02: https://developers.openai.com/plugins/build/plugins documents `composerIcon`, `logo`, and `screenshots` as interface presentation fields, requires plugin-root-relative paths, and specifies PNG files under `./assets/` for screenshots; the pinned 0.147.0 sample spec also documents `logoDark`."
],
"state": "supported"
},
"brandColor": {
"evidence": [
"retrieved 2026-09-02: https://developers.openai.com/plugins/build/plugins documents `interface.brandColor` as the plugin card theme color and shows a six-digit hexadecimal value."
],
"state": "supported"
},
"categoryCapabilities": {
"evidence": [
"retrieved 2026-09-02: https://developers.openai.com/plugins/build/plugins documents `interface.category` as the category bucket and `interface.capabilities` as the implementation-derived capability list; it does not enumerate category values."
],
"state": "supported"
},
"descriptions": {
"evidence": [
"retrieved 2026-09-02: https://developers.openai.com/plugins/build/plugins documents `interface.shortDescription` for compact views and `interface.longDescription` for details screens."
],
"state": "supported"
},
"identity": {
"evidence": [
"retrieved 2026-09-02: https://developers.openai.com/plugins/build/plugins documents `interface.displayName` as the user-facing plugin title and `interface.developerName` as the human-readable publisher."
],
"state": "supported"
},
"starterPrompts": {
"evidence": [
"retrieved 2026-09-02: the pinned Codex 0.147.0 plugin JSON sample spec documents `interface.defaultPrompt` as one to three starter strings and caps each prompt at 128 characters."
],
"state": "supported"
},
"urls": {
"evidence": [
"retrieved 2026-09-02: https://developers.openai.com/plugins/build/plugins documents `websiteURL`, `privacyPolicyURL`, and `termsOfServiceURL` as external interface links."
],
"state": "supported"
}
},
"manifest": ".codex-plugin/plugin.json",
"marketplace": ".agents/plugins/marketplace.json",
"manifestPackage": {
Expand Down Expand Up @@ -119,6 +197,29 @@
"state": "unavailable"
}
},
"mcpServerPolicy": {
"approvalModes": {
"evidence": [
"retrieved 2026-09-02: https://developers.openai.com/plugins/build/plugins documents `default_tools_approval_mode = \"prompt\"` and per-tool `approval_mode = \"approve\"` under the user's `[plugins.\"my-plugin\".mcp_servers.docs]` configuration."
],
"reason": "Plugin MCP approval modes are host-owned user configuration under `plugins.<plugin>.mcp_servers.<server>`; the compiler emits plugin artifacts and does not write the user's config.toml.",
"state": "unavailable"
},
"enabled": {
"evidence": [
"retrieved 2026-09-02: https://developers.openai.com/plugins/build/plugins documents `enabled = true` under `[plugins.\"my-plugin\".mcp_servers.docs]` in the user's Codex configuration."
],
"reason": "Plugin MCP enabled state is host-owned user configuration under `plugins.<plugin>.mcp_servers.<server>`; the compiler emits plugin artifacts and does not write the user's config.toml.",
"state": "unavailable"
},
"tools": {
"evidence": [
"retrieved 2026-09-02: https://developers.openai.com/plugins/build/plugins documents `enabled_tools = [\"search\"]` and a `[plugins.\"my-plugin\".mcp_servers.docs.tools.search]` policy table in the user's Codex configuration."
],
"reason": "Plugin MCP tool selection is host-owned user configuration under `plugins.<plugin>.mcp_servers.<server>`; the compiler emits plugin artifacts and does not write the user's config.toml.",
"state": "unavailable"
}
},
"skills": true
},
"validation": {
Expand Down
Loading
Loading