Merge branch 'development' into ruff-and-mypy
This commit is contained in:
@@ -1177,7 +1177,7 @@ Examples:
|
||||
print(f"{'=' * 60}")
|
||||
print(f"Files analyzed: {len(results['files'])}")
|
||||
print(f"Output directory: {args.output}")
|
||||
if args.build_api_reference:
|
||||
if not args.skip_api_reference:
|
||||
print(f"API reference: {Path(args.output) / 'api_reference'}")
|
||||
print(f"{'=' * 60}\n")
|
||||
|
||||
|
||||
@@ -34,12 +34,29 @@ from pathlib import Path
|
||||
# Add parent directory to path to import MCP server
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
# Import the MCP tool function
|
||||
from skill_seekers.mcp.server import install_skill_tool
|
||||
# Import the MCP tool function (with lazy loading)
|
||||
try:
|
||||
from skill_seekers.mcp.server import install_skill_tool
|
||||
MCP_AVAILABLE = True
|
||||
except ImportError:
|
||||
MCP_AVAILABLE = False
|
||||
install_skill_tool = None
|
||||
|
||||
|
||||
def main():
|
||||
"""Main entry point for CLI"""
|
||||
# Check MCP availability first
|
||||
if not MCP_AVAILABLE:
|
||||
print("\n❌ Error: MCP package not installed")
|
||||
print("\nThe 'install' command requires MCP support.")
|
||||
print("Install with:")
|
||||
print(" pip install skill-seekers[mcp]")
|
||||
print("\nOr use these alternatives:")
|
||||
print(" skill-seekers scrape --config react")
|
||||
print(" skill-seekers package output/react/")
|
||||
print()
|
||||
sys.exit(1)
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Complete skill installation workflow (fetch → scrape → enhance → package → upload)",
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
|
||||
94
src/skill_seekers/cli/setup_wizard.py
Normal file
94
src/skill_seekers/cli/setup_wizard.py
Normal file
@@ -0,0 +1,94 @@
|
||||
"""
|
||||
Interactive Setup Wizard for Skill Seekers
|
||||
|
||||
Guides users through installation options on first run.
|
||||
"""
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def show_installation_guide():
|
||||
"""Show installation options"""
|
||||
print("""
|
||||
╔═══════════════════════════════════════════════════════════╗
|
||||
║ ║
|
||||
║ Skill Seekers Setup Guide ║
|
||||
║ ║
|
||||
╚═══════════════════════════════════════════════════════════╝
|
||||
|
||||
Choose your installation profile:
|
||||
|
||||
1️⃣ CLI Only (Skill Generation)
|
||||
pip install skill-seekers
|
||||
|
||||
Features:
|
||||
• Scrape documentation websites
|
||||
• Analyze GitHub repositories
|
||||
• Extract from PDFs
|
||||
• Package skills for all platforms
|
||||
|
||||
2️⃣ MCP Integration (Claude Code, Cursor, Windsurf)
|
||||
pip install skill-seekers[mcp]
|
||||
|
||||
Features:
|
||||
• Everything from CLI Only
|
||||
• MCP server for Claude Code
|
||||
• One-command skill installation
|
||||
• HTTP/stdio transport modes
|
||||
|
||||
3️⃣ Multi-LLM Support (Gemini, OpenAI)
|
||||
pip install skill-seekers[all-llms]
|
||||
|
||||
Features:
|
||||
• Everything from CLI Only
|
||||
• Google Gemini support
|
||||
• OpenAI ChatGPT support
|
||||
• Enhanced AI features
|
||||
|
||||
4️⃣ Everything
|
||||
pip install skill-seekers[all]
|
||||
|
||||
Features:
|
||||
• All features enabled
|
||||
• Maximum flexibility
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Current installation: pip install skill-seekers
|
||||
Upgrade with: pip install -U skill-seekers[mcp]
|
||||
|
||||
For configuration wizard:
|
||||
skill-seekers config
|
||||
|
||||
For help:
|
||||
skill-seekers --help
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
""")
|
||||
|
||||
|
||||
def check_first_run():
|
||||
"""Check if this is first run"""
|
||||
flag_file = Path.home() / ".config" / "skill-seekers" / ".setup_shown"
|
||||
|
||||
if not flag_file.exists():
|
||||
show_installation_guide()
|
||||
|
||||
# Create flag to not show again
|
||||
flag_file.parent.mkdir(parents=True, exist_ok=True)
|
||||
flag_file.touch()
|
||||
|
||||
response = input("\nPress Enter to continue...")
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def main():
|
||||
"""Show wizard"""
|
||||
show_installation_guide()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user