II.
Adapter JSON
Structured · liveadapter:extensions-adapter
extensions-adapter json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "adapter:extensions-adapter",
"_kind": "Adapter",
"_file": "extensions/adapters-canonical/canonical-adapteres.yaml",
"_cluster": "extensions",
"attributes": {
"displayName": "extensions-adapter",
"protocolType": "extension-manifest",
"nativeSide": [
"Claude Code plugin",
"Codex extension",
"Cursor plugin",
"OpenCode extension",
"Pi plugin",
"OMP plugin",
"per-agent native extension formats"
],
"canonicalSide": "Portable Extension manifest format — one source compiles to many agents",
"position": "Between extension authors and per-agent native extension loaders",
"bridgingConcerns": [
"manifest translation (one source → per-agent native manifest)",
"hook registration translation (per-agent generators emit native hooks.json from canonical declaration)",
"pattern substitution (hookFilePattern: hooks/{{name}}-{{slug}}.sh)",
"content packaging (Skills, Subagents, MCP Servers / Tool Providers carried inside extensions)",
"proxy command resolution (hooks: { Stop: \"proxy\" } → npx @a5c-ai/hooks-adapter-cli invocation)"
],
"catalogInputNodeKinds": [
"PluginTarget",
"PluginArtifact"
],
"trustChainParticipation": "none",
"description": "Compiles one Portable Extension manifest into per-agent native\nformats via per-target generators (generateClaudeCodeHooksJson,\ngenerateCodexHooksJson, generateCursorHooksJson with bash+powershell\nvariants, etc.).\n"
},
"outgoingEdges": [
{
"from": "adapter:extensions-adapter",
"to": "layer:6-agent-platform",
"kind": "bridges_protocol_type",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:claude:ge-0-0-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:codex:ge-0-119-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:cursor:ge-0-0-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:opencode:ge-0-0-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:pi:ge-0-75-4",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:omp:ge-15-5-9",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "layer:6-agent-platform",
"kind": "bridges_protocol_type",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:claude:ge-0-0-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:codex:ge-0-119-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:cursor:ge-0-0-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:opencode:ge-0-0-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:pi:ge-0-75-4",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:omp:ge-15-2-4",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "layer:6-agent-platform",
"kind": "bridges_protocol_type",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:claude:ge-0-0-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:codex:ge-0-119-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:cursor:ge-0-0-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:opencode:ge-0-0-0",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:omp:ge-15-2-4",
"kind": "bridges_for",
"attributes": {}
}
],
"incomingEdges": []
}