354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
|
# File 'lib/kward/compactor.rb', line 354
def call(messages, previous_details: {})
read_files = Array(path_values(previous_details, "read_files", :read_files))
modified_files = Array(path_values(previous_details, "modified_files", :modified_files))
Array(messages).each do |message|
next unless message_role(message) == "assistant"
message_tool_calls(message).each do |tool_call|
name = tool_call_name(tool_call)
args = tool_call_args(tool_call)
path = args["path"] || args[:path]
case name
when "read_file"
read_files << path if path
when "write_file", "edit_file"
modified_files << path if path
end
end
end
{
read_files: sorted_paths(read_files),
modified_files: sorted_paths(modified_files)
}
end
|