iiRecord
Agentic AI Atlas · hooks-mux
mux:hooks-muxa5c.ai
II.
Mux JSON

mux:hooks-mux

Structured · live

hooks-mux json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · extensions/muxes/canonical-muxes.yamlCluster · extensions
Record JSON
{
  "id": "mux:hooks-mux",
  "_kind": "Mux",
  "_file": "extensions/muxes/canonical-muxes.yaml",
  "_cluster": "extensions",
  "attributes": {
    "displayName": "hooks-mux",
    "protocolType": "hook",
    "nativeSide": [
      "claude — PreToolUse, PostToolUse, UserPromptSubmit, Notification, Stop, SubagentStop, SessionStart, SessionEnd, PreCompact, ShellEnv",
      "codex — OnToolCall, OnStop",
      "gemini — pre_prompt, post_response",
      "copilot — preTool, postTool",
      "cursor — inherits Claude Code hook schema",
      "opencode — on_step, SessionIdle, ShellEnv",
      "pi, omp, openclaw, hermes — onEvent (generic)"
    ],
    "canonicalSide": "Canonical 14-hook surface set (PreToolUse, PostToolUse, UserPromptSubmit, etc.)",
    "position": "Between Agent-Runtime hook events and subscribed plugins / extension-interface impls",
    "bridgingConcerns": [
      "name mapping (per-agent → canonical)",
      "payload schema normalization (UnifiedHookEvent: version, adapter, phase, rawEventName, supportLevel, execution, payload, env, raw)",
      "support level (supported / degraded / unsupported) per (agent, hook)",
      "hook family (shell-hook / in-process / observer) — determines delivery mechanism",
      "merge policy across multiple subscribers (DECISION_PRECEDENCE deny < ask < allow < continue < noop)"
    ],
    "catalogInputNodeKinds": [
      "HookSurface",
      "HookMapping",
      "AgentVersion"
    ],
    "trustChainParticipation": "planned",
    "description": "Bridges per-product native hook names to the canonical hook taxonomy\n+ applies per-axis merge policies (persistEnv key-wise, decision\nmost-restrictive-wins, systemMessage concat, toolMutation single-writer).\nEmits MergeDiagnostics: handlerCount, handlerOrder, conflicts,\ndegradedFields, handlerTimings, unsupportedOutputFields,\nnativeRenderingLosses, mergedAt.\n"
  },
  "outgoingEdges": [
    {
      "from": "mux:hooks-mux",
      "to": "layer:5-agent-runtime",
      "kind": "bridges_protocol_type",
      "attributes": {}
    },
    {
      "from": "mux:hooks-mux",
      "to": "agentVersion:claude:ge-0-0-0",
      "kind": "bridges_for",
      "attributes": {}
    },
    {
      "from": "mux:hooks-mux",
      "to": "agentVersion:codex:ge-0-119-0",
      "kind": "bridges_for",
      "attributes": {}
    },
    {
      "from": "mux:hooks-mux",
      "to": "agentVersion:cursor:ge-0-0-0",
      "kind": "bridges_for",
      "attributes": {}
    },
    {
      "from": "mux:hooks-mux",
      "to": "agentVersion:gemini:ge-0-0-0",
      "kind": "bridges_for",
      "attributes": {}
    },
    {
      "from": "mux:hooks-mux",
      "to": "agentVersion:opencode:ge-0-0-0",
      "kind": "bridges_for",
      "attributes": {}
    },
    {
      "from": "mux:hooks-mux",
      "to": "agentVersion:copilot:ge-0-0-0",
      "kind": "bridges_for",
      "attributes": {}
    },
    {
      "from": "mux:hooks-mux",
      "to": "agentVersion:pi:ge-0-0-0",
      "kind": "bridges_for",
      "attributes": {}
    },
    {
      "from": "mux:hooks-mux",
      "to": "agentVersion:omp:ge-0-0-0",
      "kind": "bridges_for",
      "attributes": {}
    },
    {
      "from": "mux:hooks-mux",
      "to": "agentVersion:openclaw:ge-0-0-0",
      "kind": "bridges_for",
      "attributes": {}
    },
    {
      "from": "mux:hooks-mux",
      "to": "agent-version:hermes@current",
      "kind": "bridges_for",
      "attributes": {}
    }
  ],
  "incomingEdges": []
}