docs: audit hook compatibility limits

This commit is contained in:
Tianyi Cui
2026-07-14 11:22:53 +08:00
parent 95065330d7
commit c74f17a143
14 changed files with 112 additions and 76 deletions

View File

@@ -1,11 +1,11 @@
/**
* Parse a Claude Code hook config file into the shared {@link MatcherGroup}
* shape, faithfully to CC's `hooks.json` / settings `hooks` key format.
* Parse the bridge-supported subset of a Claude Code hook config file into the
* shared {@link MatcherGroup} shape.
*
* A CC config maps each event name to an array of matcher groups, each holding
* an array of typed hooks. Only `type: 'command'` hooks run here; other types
* (`prompt`/`agent`/`http`) are PARSED but skipped with a warning (faithful-but-
* degraded — the same stance Codex takes). The `command` string undergoes
* (`http`/`mcp_tool`/`prompt`/`agent`) are parsed but skipped with a warning.
* The `command` string undergoes
* `${CLAUDE_PLUGIN_ROOT}` substitution at parse time so the runner sees a literal.
*
* @module @deepseek-ai/dsh-hooks-claude/config

View File

@@ -9,14 +9,13 @@
* merge, the `hook/*` events) come from `@deepseek-ai/dsh-hook-protocol`.
*
* A native cordis plugin could do everything this bridge does — more powerfully,
* with typed returns and no serialization boundary. The bridge exists only to
* run UNMODIFIED external CC hooks faithfully; anything bespoke should be a
* native plugin on the same seams.
* with typed returns and no serialization boundary. This bridge is a
* compatibility path for the mapped CC command-hook subset; anything bespoke
* should be a native plugin on the same seams.
*
* Scope: the seven in-scope hook points (`SessionStart`, `UserPromptSubmit`,
* `PreToolUse`, `PostToolUse`, `Stop`, `SubagentStart`, `SubagentStop`). Only
* `type: 'command'` hooks run; the matcher group config + exit-code/stdout
* protocol are byte-faithful to CC. `updatedInput` (tool-input rewrite) is
* shell-form `type: 'command'` hooks run. `updatedInput` (tool-input rewrite) is
* logged + warned, not honored (deferred — see the interception-seams RFC).
*
* @module @deepseek-ai/dsh-hooks-claude