Commit graph

1 commit

Author SHA1 Message Date
chopratejas
7c2c55abc0 Add Compression Hooks — extension points for SaaS and advanced customization
Three hooks at well-defined pipeline stages:

1. pre_compress(messages, ctx) → messages
   Modify messages before compression: cross-turn dedup, memory injection.

2. compute_biases(messages, ctx) → dict[int, float]
   Per-message compression bias: position-aware, phase-aware, learned.

3. post_compress(event) → None
   Observe results: failure-driven learning, analytics, A/B testing.

- headroom/hooks.py: CompressionHooks, CompressContext, CompressEvent
- ProxyConfig.hooks: optional, default None (zero overhead)
- Wired into Anthropic and OpenAI handlers
- ContentRouter reads hook biases, multiplies with tool bias
- 11 tests
2026-02-19 08:17:30 -08:00