@@ -3,7 +3,7 @@ import type { Logger } from "../logger"
33import type { PluginConfig } from "../config"
44import { loadPrompt } from "../prompt"
55import { extractParameterKey , buildToolIdList } from "./utils"
6- import { getLastUserMessage } from "../shared-utils"
6+ import { getLastUserMessage , isMessageCompacted } from "../shared-utils"
77import { UserMessage } from "@opencode-ai/sdk"
88
99const PRUNED_TOOL_INPUT_REPLACEMENT = '[Input removed to save context]'
@@ -17,7 +17,7 @@ const buildPrunableToolsList = (
1717 messages : WithParts [ ] ,
1818) : string => {
1919 const lines : string [ ] = [ ]
20- const toolIdList : string [ ] = buildToolIdList ( messages )
20+ const toolIdList : string [ ] = buildToolIdList ( state , messages , logger )
2121
2222 state . toolParameters . forEach ( ( toolParameterEntry , toolCallId ) => {
2323 if ( state . prune . toolIds . includes ( toolCallId ) ) {
@@ -26,9 +26,6 @@ const buildPrunableToolsList = (
2626 if ( config . strategies . pruneTool . protectedTools . includes ( toolParameterEntry . tool ) ) {
2727 return
2828 }
29- if ( toolParameterEntry . compacted ) {
30- return
31- }
3229 const numericId = toolIdList . indexOf ( toolCallId )
3330 const paramKey = extractParameterKey ( toolParameterEntry . tool , toolParameterEntry . parameters )
3431 const description = paramKey ? `${ toolParameterEntry . tool } , ${ paramKey } ` : toolParameterEntry . tool
@@ -111,6 +108,10 @@ const pruneToolOutputs = (
111108 messages : WithParts [ ]
112109) : void => {
113110 for ( const msg of messages ) {
111+ if ( isMessageCompacted ( state , msg ) ) {
112+ continue
113+ }
114+
114115 for ( const part of msg . parts ) {
115116 if ( part . type !== 'tool' ) {
116117 continue
0 commit comments