diff --git a/.megamemory/knowledge.db b/.megamemory/knowledge.db new file mode 100644 index 0000000..0a06b00 Binary files /dev/null and b/.megamemory/knowledge.db differ diff --git a/.megamemory/knowledge.db-shm b/.megamemory/knowledge.db-shm new file mode 100644 index 0000000..24376d4 Binary files /dev/null and b/.megamemory/knowledge.db-shm differ diff --git a/.megamemory/knowledge.db-wal b/.megamemory/knowledge.db-wal new file mode 100644 index 0000000..af8d9fe Binary files /dev/null and b/.megamemory/knowledge.db-wal differ diff --git a/setup.py b/setup.py index 7441f8e..12ba739 100644 --- a/setup.py +++ b/setup.py @@ -454,7 +454,9 @@ def get_category_for_skill(skill_name: str) -> str: exact_match = False if skill_name.startswith('"') and skill_name.endswith('"'): exact_match = True - name_lower = skill_name[1:-1].strip().lower().replace("_", "-").replace(" ", "-") + name_lower = ( + skill_name[1:-1].strip().lower().replace("_", "-").replace(" ", "-") + ) else: name_lower = skill_name.lower().replace("_", "-") @@ -523,9 +525,12 @@ def migrate_skills(): dest = cat_dir / folder.name if dest.exists(): - shutil.rmtree(dest) + if dest.is_symlink() or dest.is_file(): + dest.unlink() + else: + shutil.rmtree(dest) - shutil.move(str(folder), str(cat_dir)) + shutil.move(str(folder), str(dest)) category_counts[category] = category_counts.get(category, 0) + 1 moved_count += 1 @@ -625,9 +630,26 @@ def generate_pointers(category_counts): def main(): import argparse - parser = argparse.ArgumentParser(description="SkillPointer Setup - Infinite Context. Zero Token Tax.") - parser.add_argument("--agent", choices=["opencode", "claude"], default="opencode", - help="Target AI agent (opencode or claude)") + + parser = argparse.ArgumentParser( + description="SkillPointer Setup - Infinite Context. Zero Token Tax." + ) + parser.add_argument( + "--agent", + choices=["opencode", "claude"], + default="opencode", + help="Target AI agent (opencode or claude)", + ) + parser.add_argument( + "--skill-dir", + type=str, + help="Directory to search for skills (overrides --agent default)", + ) + parser.add_argument( + "--vault-dir", + type=str, + help="Directory to move skills to when creating pointers (overrides --agent default)", + ) args, unknown = parser.parse_known_args() if args.agent == "claude": @@ -635,6 +657,11 @@ def main(): CONFIG["active_skills_dir"] = Path.home() / ".claude" / "skills" CONFIG["hidden_library_dir"] = Path.home() / ".skillpointer-vault" + if args.skill_dir: + CONFIG["active_skills_dir"] = Path(args.skill_dir).expanduser().resolve() + if args.vault_dir: + CONFIG["hidden_library_dir"] = Path(args.vault_dir).expanduser().resolve() + # Handle 'install' argument for compatibility with Install.bat/vbs if unknown and unknown[0] == "install": pass