@@ -14,7 +14,6 @@ import { Deferred, Effect, Layer, Schema, Context } from "effect"
1414import os from "os"
1515import { evaluate as evalRule } from "./evaluate"
1616import { PermissionID } from "./schema"
17- import { ShellToolID } from "@/tool/shell/id"
1817
1918const log = Log . create ( { service : "permission" } )
2019
@@ -187,9 +186,7 @@ export const layer = Layer.effect(
187186 log . info ( "evaluated" , { permission : request . permission , pattern, action : rule } )
188187 if ( rule . action === "deny" ) {
189188 return yield * new DeniedError ( {
190- ruleset : ruleset . filter ( ( rule ) =>
191- Wildcard . match ( ShellToolID . normalize ( request . permission ) , ShellToolID . normalize ( rule . permission ) ) ,
192- ) ,
189+ ruleset : ruleset . filter ( ( rule ) => Wildcard . match ( request . permission , rule . permission ) ) ,
193190 } )
194191 }
195192 if ( rule . action === "allow" ) continue
@@ -294,13 +291,12 @@ function expand(pattern: string): string {
294291export function fromConfig ( permission : ConfigPermission . Info ) {
295292 const ruleset : Ruleset = [ ]
296293 for ( const [ key , value ] of Object . entries ( permission ) ) {
297- const permission = ShellToolID . normalize ( key )
298294 if ( typeof value === "string" ) {
299- ruleset . push ( { permission, action : value , pattern : "*" } )
295+ ruleset . push ( { permission : key , action : value , pattern : "*" } )
300296 continue
301297 }
302298 ruleset . push (
303- ...Object . entries ( value ) . map ( ( [ pattern , action ] ) => ( { permission, pattern : expand ( pattern ) , action } ) ) ,
299+ ...Object . entries ( value ) . map ( ( [ pattern , action ] ) => ( { permission : key , pattern : expand ( pattern ) , action } ) ) ,
304300 )
305301 }
306302 return ruleset
@@ -315,8 +311,8 @@ const EDIT_TOOLS = ["edit", "write", "apply_patch"]
315311export function disabled ( tools : string [ ] , ruleset : Ruleset ) : Set < string > {
316312 const result = new Set < string > ( )
317313 for ( const tool of tools ) {
318- const permission = EDIT_TOOLS . includes ( tool ) ? "edit" : ShellToolID . normalize ( tool )
319- const rule = ruleset . findLast ( ( rule ) => Wildcard . match ( permission , ShellToolID . normalize ( rule . permission ) ) )
314+ const permission = EDIT_TOOLS . includes ( tool ) ? "edit" : tool
315+ const rule = ruleset . findLast ( ( rule ) => Wildcard . match ( permission , rule . permission ) )
320316 if ( ! rule ) continue
321317 if ( rule . pattern === "*" && rule . action === "deny" ) result . add ( tool )
322318 }
0 commit comments