@@ -9,8 +9,8 @@ import { UserMessage } from "@opencode-ai/sdk"
99const PRUNED_TOOL_INPUT_REPLACEMENT = '[Input removed to save context]'
1010const PRUNED_TOOL_OUTPUT_REPLACEMENT = '[Output removed to save context - information superseded or no longer needed]'
1111const getNudgeString = ( config : PluginConfig ) : string => {
12- const discardEnabled = config . strategies . discardTool . enabled
13- const extractEnabled = config . strategies . extractTool . enabled
12+ const discardEnabled = config . tools . discard . enabled
13+ const extractEnabled = config . tools . extract . enabled
1414
1515 if ( discardEnabled && extractEnabled ) {
1616 return loadPrompt ( "nudge/nudge-both" )
@@ -28,8 +28,8 @@ ${content}
2828</prunable-tools>`
2929
3030const getCooldownMessage = ( config : PluginConfig ) : string => {
31- const discardEnabled = config . strategies . discardTool . enabled
32- const extractEnabled = config . strategies . extractTool . enabled
31+ const discardEnabled = config . tools . discard . enabled
32+ const extractEnabled = config . tools . extract . enabled
3333
3434 let toolName : string
3535 if ( discardEnabled && extractEnabled ) {
@@ -61,10 +61,7 @@ const buildPrunableToolsList = (
6161 if ( state . prune . toolIds . includes ( toolCallId ) ) {
6262 return
6363 }
64- const allProtectedTools = [
65- ...config . strategies . discardTool . protectedTools ,
66- ...config . strategies . extractTool . protectedTools
67- ]
64+ const allProtectedTools = config . tools . settings . protectedTools
6865 if ( allProtectedTools . includes ( toolParameterEntry . tool ) ) {
6966 return
7067 }
@@ -92,7 +89,7 @@ export const insertPruneToolContext = (
9289 logger : Logger ,
9390 messages : WithParts [ ]
9491) : void => {
95- if ( ! config . strategies . discardTool . enabled && ! config . strategies . extractTool . enabled ) {
92+ if ( ! config . tools . discard . enabled && ! config . tools . extract . enabled ) {
9693 return
9794 }
9895
@@ -115,13 +112,7 @@ export const insertPruneToolContext = (
115112 logger . debug ( "prunable-tools: \n" + prunableToolsList )
116113
117114 let nudgeString = ""
118- // TODO: Using Math.min() means the lower frequency dominates when both tools are enabled.
119- // Consider using separate counters for each tool's nudge, or documenting this behavior.
120- const nudgeFrequency = Math . min (
121- config . strategies . discardTool . nudge . frequency ,
122- config . strategies . extractTool . nudge . frequency
123- )
124- if ( state . nudgeCounter >= nudgeFrequency ) {
115+ if ( config . tools . settings . nudgeEnabled && state . nudgeCounter >= config . tools . settings . nudgeFrequency ) {
125116 logger . info ( "Inserting prune nudge message" )
126117 nudgeString = "\n" + getNudgeString ( config )
127118 }
0 commit comments