Module: RubynCode::Context::MicroCompact
- Defined in:
- lib/rubyn_code/context/micro_compact.rb
Overview
Zero-cost compression that runs every turn. Replaces old tool results (except the most recent N) with short placeholders to reduce token count without losing conversational continuity.
Constant Summary collapse
- PLACEHOLDER_TEMPLATE =
'[Previous: used %<tool_name>s]'- MIN_CONTENT_LENGTH =
100
Class Method Summary collapse
-
.call(messages, keep_recent: 2, preserve_tools: []) ⇒ Integer
Mutates
messagesin place, replacing old tool_result content with compact placeholders.
Class Method Details
.call(messages, keep_recent: 2, preserve_tools: []) ⇒ Integer
Mutates messages in place, replacing old tool_result content with compact placeholders.
19 20 21 22 23 24 25 26 |
# File 'lib/rubyn_code/context/micro_compact.rb', line 19 def self.call(, keep_recent: 2, preserve_tools: []) tool_result_refs = collect_tool_results() return 0 if tool_result_refs.size <= keep_recent tool_name_index = build_tool_name_index() candidates = tool_result_refs[0..-(keep_recent + 1)] compact_candidates(candidates, tool_name_index, preserve_tools) end |