2.2 KiB
2.2 KiB
src/hooks/rules-injector/ — Conditional Rules Injection
Generated: 2026-02-21
OVERVIEW
19 files (~1604 LOC). The rulesInjectorHook — Tool Guard Tier hook that auto-injects AGENTS.md (and similar rule files) into context when a file in a directory is read, written, or edited. Proximity-based: closest rule file to the target path wins.
HOW IT WORKS
tool.execute.after (read/write/edit/multiedit)
→ Extract file path from tool output
→ Find rule files near that path (finder.ts)
→ Already injected this session? (cache.ts)
→ Inject rule content into tool output (injector.ts)
TRACKED TOOLS
["read", "write", "edit", "multiedit"] — triggers only on file manipulation tools.
KEY FILES
| File | Purpose |
|---|---|
hook.ts |
createRulesInjectorHook() — wires cache + injector, handles tool events |
injector.ts |
createRuleInjectionProcessor() — orchestrates find → cache → inject |
finder.ts |
findRuleFiles() + calculateDistance() — locate AGENTS.md near target path |
rule-file-finder.ts |
Walk directory tree to find AGENTS.md / .rules files |
rule-file-scanner.ts |
Scan for rule files in a directory |
matcher.ts |
Match file paths against rule file scope |
rule-distance.ts |
Calculate path distance between file and rule file |
project-root-finder.ts |
Find project root (stops at .git, package.json) |
output-path.ts |
Extract file paths from tool output text |
cache.ts |
createSessionCacheStore() — per-session injection dedup |
storage.ts |
Persist injected paths across tool calls |
parser.ts |
Parse rule file content |
constants.ts |
Rule file names: AGENTS.md, .rules, CLAUDE.md |
types.ts |
RuleFile, InjectionResult, RuleFileScope |
RULE FILE DISCOVERY
Priority (closest → farthest from target file):
- Same directory as target file
- Parent directories up to project root
- Project root itself
Same-distance tie: all injected. Per-session dedup prevents re-injection.
TRUNCATION
Uses DynamicTruncator — adapts injection size based on model context window (1M context models get full content, smaller models get truncated summaries).