@@ -10,11 +10,11 @@ export interface Deduplication {
1010}
1111
1212export interface PruneTool {
13- enabled : boolean
13+ permission : "ask" | "allow" | "deny"
1414}
1515
1616export interface DistillTool {
17- enabled : boolean
17+ permission : "ask" | "allow" | "deny"
1818 showDistillation : boolean
1919}
2020
@@ -108,13 +108,13 @@ export const VALID_CONFIG_KEYS = new Set([
108108 "tools.settings.protectedTools" ,
109109 "tools.settings.contextLimit" ,
110110 "tools.distill" ,
111- "tools.distill.enabled " ,
111+ "tools.distill.permission " ,
112112 "tools.distill.showDistillation" ,
113113 "tools.compress" ,
114114 "tools.compress.permission" ,
115115 "tools.compress.showCompression" ,
116116 "tools.prune" ,
117- "tools.prune.enabled " ,
117+ "tools.prune.permission " ,
118118 "strategies" ,
119119 // strategies.deduplication
120120 "strategies.deduplication" ,
@@ -303,12 +303,15 @@ function validateConfigTypes(config: Record<string, any>): ValidationError[] {
303303 }
304304 }
305305 if ( tools . distill ) {
306- if ( tools . distill . enabled !== undefined && typeof tools . distill . enabled !== "boolean" ) {
307- errors . push ( {
308- key : "tools.distill.enabled" ,
309- expected : "boolean" ,
310- actual : typeof tools . distill . enabled ,
311- } )
306+ if ( tools . distill . permission !== undefined ) {
307+ const validValues = [ "ask" , "allow" , "deny" ]
308+ if ( ! validValues . includes ( tools . distill . permission ) ) {
309+ errors . push ( {
310+ key : "tools.distill.permission" ,
311+ expected : '"ask" | "allow" | "deny"' ,
312+ actual : JSON . stringify ( tools . distill . permission ) ,
313+ } )
314+ }
312315 }
313316 if (
314317 tools . distill . showDistillation !== undefined &&
@@ -344,12 +347,15 @@ function validateConfigTypes(config: Record<string, any>): ValidationError[] {
344347 }
345348 }
346349 if ( tools . prune ) {
347- if ( tools . prune . enabled !== undefined && typeof tools . prune . enabled !== "boolean" ) {
348- errors . push ( {
349- key : "tools.prune.enabled" ,
350- expected : "boolean" ,
351- actual : typeof tools . prune . enabled ,
352- } )
350+ if ( tools . prune . permission !== undefined ) {
351+ const validValues = [ "ask" , "allow" , "deny" ]
352+ if ( ! validValues . includes ( tools . prune . permission ) ) {
353+ errors . push ( {
354+ key : "tools.prune.permission" ,
355+ expected : '"ask" | "allow" | "deny"' ,
356+ actual : JSON . stringify ( tools . prune . permission ) ,
357+ } )
358+ }
353359 }
354360 }
355361 }
@@ -499,15 +505,15 @@ const defaultConfig: PluginConfig = {
499505 contextLimit : 100000 ,
500506 } ,
501507 distill : {
502- enabled : true ,
508+ permission : "allow" ,
503509 showDistillation : false ,
504510 } ,
505511 compress : {
506512 permission : "ask" ,
507513 showCompression : false ,
508514 } ,
509515 prune : {
510- enabled : true ,
516+ permission : "allow" ,
511517 } ,
512518 } ,
513519 strategies : {
@@ -676,15 +682,15 @@ function mergeTools(
676682 contextLimit : override . settings ?. contextLimit ?? base . settings . contextLimit ,
677683 } ,
678684 distill : {
679- enabled : override . distill ?. enabled ?? base . distill . enabled ,
685+ permission : override . distill ?. permission ?? base . distill . permission ,
680686 showDistillation : override . distill ?. showDistillation ?? base . distill . showDistillation ,
681687 } ,
682688 compress : {
683689 permission : override . compress ?. permission ?? base . compress . permission ,
684690 showCompression : override . compress ?. showCompression ?? base . compress . showCompression ,
685691 } ,
686692 prune : {
687- enabled : override . prune ?. enabled ?? base . prune . enabled ,
693+ permission : override . prune ?. permission ?? base . prune . permission ,
688694 } ,
689695 }
690696}
0 commit comments