feat(skills): reload registry on watcher change events
This commit is contained in:
@@ -30,12 +30,13 @@ export function initSkills(config: Config, lifecycle?: Lifecycle): SkillsResult
|
||||
const defaultManagedDir = resolve(homedir(), '.flynn/workspace/skills');
|
||||
const skillRegistry = new SkillRegistry();
|
||||
const skillInstaller = new SkillInstaller(config.skills.managed_dir ?? defaultManagedDir);
|
||||
|
||||
const skills = loadAllSkills({
|
||||
const skillLoadConfig = {
|
||||
bundledDir: config.skills.bundled_dir,
|
||||
managedDir: config.skills.managed_dir ?? defaultManagedDir,
|
||||
workspaceDir: config.skills.workspace_dir,
|
||||
});
|
||||
};
|
||||
|
||||
const skills = loadAllSkills(skillLoadConfig);
|
||||
|
||||
for (const skill of skills) {
|
||||
skillRegistry.register(skill);
|
||||
@@ -61,7 +62,9 @@ export function initSkills(config: Config, lifecycle?: Lifecycle): SkillsResult
|
||||
skillDirs,
|
||||
debounceMs: config.skills.load.watch_debounce_ms,
|
||||
onSkillsChanged: ({ changedPaths }) => {
|
||||
console.log(`Skills watcher detected changes in ${changedPaths.length} path(s)`);
|
||||
const reloadedSkills = loadAllSkills(skillLoadConfig);
|
||||
skillRegistry.reset(reloadedSkills);
|
||||
console.log(`Skills watcher reloaded ${reloadedSkills.length} skill(s) after ${changedPaths.length} change(s)`);
|
||||
},
|
||||
});
|
||||
skillsWatcher.start();
|
||||
|
||||
Reference in New Issue
Block a user