@@ -10,16 +10,16 @@ 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
2121export interface CompressTool {
22- enabled : boolean
22+ permission : "ask" | "allow" | "deny"
2323 showCompression : boolean
2424}
2525
@@ -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" ,
114- "tools.compress.enabled " ,
114+ "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 &&
@@ -322,15 +325,15 @@ function validateConfigTypes(config: Record<string, any>): ValidationError[] {
322325 }
323326 }
324327 if ( tools . compress ) {
325- if (
326- tools . compress . enabled !== undefined &&
327- typeof tools . compress . enabled !== "boolean"
328- ) {
329- errors . push ( {
330- key : "tools.compress.enabled" ,
331- expected : "boolean" ,
332- actual : typeof tools . compress . enabled ,
333- } )
328+ if ( tools . compress . permission !== undefined ) {
329+ const validValues = [ "ask" , "allow" , "deny" ]
330+ if ( ! validValues . includes ( tools . compress . permission ) ) {
331+ errors . push ( {
332+ key : "tools.compress.permission" ,
333+ expected : '"ask" | "allow" | "deny"' ,
334+ actual : JSON . stringify ( tools . compress . permission ) ,
335+ } )
336+ }
334337 }
335338 if (
336339 tools . compress . showCompression !== 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 : {
506- enabled : true ,
512+ permission : "ask" ,
507513 showCompression : false ,
508514 } ,
509515 prune : {
510- enabled : true ,
516+ permission : "allow" ,
511517 } ,
512518 } ,
513519 strategies : {
@@ -678,15 +684,15 @@ function mergeTools(
678684 contextLimit : override . settings ?. contextLimit ?? base . settings . contextLimit ,
679685 } ,
680686 distill : {
681- enabled : override . distill ?. enabled ?? base . distill . enabled ,
687+ permission : override . distill ?. permission ?? base . distill . permission ,
682688 showDistillation : override . distill ?. showDistillation ?? base . distill . showDistillation ,
683689 } ,
684690 compress : {
685- enabled : override . compress ?. enabled ?? base . compress . enabled ,
691+ permission : override . compress ?. permission ?? base . compress . permission ,
686692 showCompression : override . compress ?. showCompression ?? base . compress . showCompression ,
687693 } ,
688694 prune : {
689- enabled : override . prune ?. enabled ?? base . prune . enabled ,
695+ permission : override . prune ?. permission ?? base . prune . permission ,
690696 } ,
691697 }
692698}
0 commit comments