@@ -374,7 +374,7 @@ async def _compact_internal(self) -> None:
374374 await self ._hooks.emit(" context:pre_compact" , {
375375 " message_count" : len (self ._messages),
376376 " token_count" : self ._token_count,
377- " metadata" : None , # Optional dict for implementation-specific data
377+ " metadata" : { " strategy " : " sliding_window " , " trigger " : " token_limit " , " budget " : 195000 },
378378 })
379379
380380 # Build tool_call_id -> tool_use index map
@@ -409,15 +409,26 @@ async def _compact_internal(self) -> None:
409409 break
410410
411411 recent_messages = self ._messages[recent_start:]
412-
412+ messages_removed = len ( self ._messages) - len (recent_messages)
413413 self ._messages = system_messages + recent_messages
414414 self ._token_count = sum (self ._estimate_tokens(m) for m in self ._messages)
415415
416+ # Emit compaction event
417+ await self ._hooks.emit(" context:compaction" , {
418+ " message_count" : len (self ._messages),
419+ " token_count" : self ._token_count,
420+ " metadata" : {
421+ " compaction_trigger" : " token-budget-exceeded" ,
422+ " strategy" : " budget" ,
423+ " messages_removed" : messages_removed,
424+ },
425+ })
426+
416427 # Emit post-compaction event
417428 await self ._hooks.emit(" context:post_compact" , {
418429 " message_count" : len (self ._messages),
419430 " token_count" : self ._token_count,
420- " metadata" : None , # Optional dict for implementation-specific data
431+ " metadata" : { " budget_remaining " : 97500 , " storage_quota_pct " : 0.42 },
421432 })
422433```
423434
0 commit comments