Add context event for non-destructive message modification before LLM calls

- Add contextTransform option to Agent (runs before messageTransformer)
- Deep copy messages before passing to contextTransform (modifications are ephemeral)
- Add ContextEvent and ContextEventResult types
- Add emitContext() to HookRunner (chains multiple handlers)
- Wire up in sdk.ts when creating Agent with hooks

Enables dynamic context pruning: hooks can modify messages sent to LLM
without changing session data. See discussion #330.
This commit is contained in:
Mario Zechner 2025-12-27 19:33:41 +01:00
parent 9e165d1d81
commit 77fe3f1a13
6 changed files with 89 additions and 2 deletions

View file

@ -13,6 +13,8 @@ export type {
AgentEndEvent,
AgentStartEvent,
BashToolResultEvent,
ContextEvent,
ContextEventResult,
CustomToolResultEvent,
EditToolResultEvent,
ExecOptions,