11import { Effect } from 'effect' ;
2- import { discoverSkillDirs , resolveSkillDisabled , setProjectSkillDisabledState } from './source.js' ;
2+ import { discoverSkillDirs } from './source.js' ;
33import { loadSkill } from './loader.js' ;
44import type { Skill } from './types.js' ;
55
6- function filterEnabled ( projectPath : string , skills : Skill [ ] ) : Skill [ ] {
7- return skills . filter ( ( s ) => ! resolveSkillDisabled ( projectPath , s . name ) ) ;
8- }
9-
106export class SkillService extends Effect . Service < SkillService > ( ) ( 'Skill' , {
117 effect : Effect . gen ( function * ( ) {
128 const cachedByProject = new Map < string , Skill [ ] > ( ) ;
@@ -25,21 +21,16 @@ export class SkillService extends Effect.Service<SkillService>()('Skill', {
2521 }
2622
2723 return {
28- getAll : ( projectPath : string ) =>
29- Effect . sync ( ( ) => filterEnabled ( projectPath , readAll ( projectPath ) ) ) ,
24+ getAll : ( projectPath : string ) => Effect . sync ( ( ) => readAll ( projectPath ) ) ,
3025
3126 findByName : ( projectPath : string , name : string ) =>
32- Effect . sync ( ( ) => {
33- if ( resolveSkillDisabled ( projectPath , name ) ) return undefined ;
34- return readAll ( projectPath ) . find ( ( s ) => s . name === name ) ;
35- } ) ,
27+ Effect . sync ( ( ) => readAll ( projectPath ) . find ( ( s ) => s . name === name ) ) ,
3628
3729 select : ( projectPath : string , query : string ) =>
3830 Effect . sync ( ( ) => {
3931 const match = query . match ( / ^ @ ( [ a - z A - Z 0 - 9 - ] + ) (?: \s + | $ ) / ) ;
4032 if ( ! match ) return undefined ;
4133 const name = match [ 1 ] ! ;
42- if ( resolveSkillDisabled ( projectPath , name ) ) return undefined ;
4334 return readAll ( projectPath ) . find ( ( s ) => s . name === name ) ;
4435 } ) ,
4536
@@ -49,10 +40,9 @@ export class SkillService extends Effect.Service<SkillService>()('Skill', {
4940 matcher : ( all : readonly Skill [ ] , q : string ) => Effect . Effect < string | undefined >
5041 ) : Effect . Effect < Skill | undefined > =>
5142 Effect . gen ( function * ( ) {
52- const all = filterEnabled ( projectPath , readAll ( projectPath ) ) ;
43+ const all = readAll ( projectPath ) ;
5344 const name = yield * matcher ( all , query ) ;
5445 if ( ! name ) return undefined ;
55- if ( resolveSkillDisabled ( projectPath , name ) ) return undefined ;
5646 return all . find ( ( s ) => s . name === name ) ;
5747 } ) ,
5848
@@ -62,29 +52,12 @@ export class SkillService extends Effect.Service<SkillService>()('Skill', {
6252 let skill : Skill | undefined ;
6353 if ( match ) {
6454 const name = match [ 1 ] ! ;
65- if ( ! resolveSkillDisabled ( projectPath , name ) ) {
66- skill = readAll ( projectPath ) . find ( ( s ) => s . name === name ) ;
67- }
55+ skill = readAll ( projectPath ) . find ( ( s ) => s . name === name ) ;
6856 }
6957 const actualQuery = query . replace ( / ^ @ [ a - z A - Z 0 - 9 - ] + \s * / , '' ) ;
7058 return [ skill , actualQuery ] as [ Skill | undefined , string ] ;
7159 } ) ,
7260
73- disableSkill : ( projectPath : string , name : string ) =>
74- Effect . sync ( ( ) => setProjectSkillDisabledState ( projectPath , name , true ) ) ,
75-
76- enableSkill : ( projectPath : string , name : string ) =>
77- Effect . sync ( ( ) => setProjectSkillDisabledState ( projectPath , name , false ) ) ,
78-
79- listWithStatus : ( projectPath : string ) =>
80- Effect . sync ( ( ) =>
81- readAll ( projectPath ) . map ( ( s ) => ( {
82- name : s . name ,
83- description : s . description ,
84- enabled : ! resolveSkillDisabled ( projectPath , s . name ) ,
85- } ) )
86- ) ,
87-
8861 evictProject : ( projectPath : string ) =>
8962 Effect . sync ( ( ) => {
9063 cachedByProject . delete ( projectPath ) ;
0 commit comments