chore: import upstream snapshot with attribution
Test Vector Database Adaptors / Test MCP Vector DB Tools (push) Has been cancelled
Tests / Code Quality (Ruff & Mypy) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (macos-latest, 3.11) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (macos-latest, 3.12) (push) Has been cancelled
Tests / Tests (push) Has been cancelled
Docker Publish / Build and Push Docker Images (map[description:Skill Seekers CLI - Convert documentation to AI skills dockerfile:Dockerfile name:skill-seekers]) (push) Has been cancelled
Docker Publish / Build and Push Docker Images (map[description:Skill Seekers MCP Server - 25 tools for AI assistants dockerfile:Dockerfile.mcp name:skill-seekers-mcp]) (push) Has been cancelled
Docker Publish / Test Docker Images (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (ubuntu-latest, 3.10) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (ubuntu-latest, 3.11) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (ubuntu-latest, 3.12) (push) Has been cancelled
Tests / Serial / Integration / E2E Tests (push) Has been cancelled
Tests / MCP Server Tests (push) Has been cancelled
Test Vector Database Adaptors / Test chroma Adaptor (push) Has been cancelled
Test Vector Database Adaptors / Test faiss Adaptor (push) Has been cancelled
Test Vector Database Adaptors / Test qdrant Adaptor (push) Has been cancelled
Test Vector Database Adaptors / Test weaviate Adaptor (push) Has been cancelled
Test Vector Database Adaptors / Test MCP Vector DB Tools (push) Has been cancelled
Tests / Code Quality (Ruff & Mypy) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (macos-latest, 3.11) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (macos-latest, 3.12) (push) Has been cancelled
Tests / Tests (push) Has been cancelled
Docker Publish / Build and Push Docker Images (map[description:Skill Seekers CLI - Convert documentation to AI skills dockerfile:Dockerfile name:skill-seekers]) (push) Has been cancelled
Docker Publish / Build and Push Docker Images (map[description:Skill Seekers MCP Server - 25 tools for AI assistants dockerfile:Dockerfile.mcp name:skill-seekers-mcp]) (push) Has been cancelled
Docker Publish / Test Docker Images (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (ubuntu-latest, 3.10) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (ubuntu-latest, 3.11) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (ubuntu-latest, 3.12) (push) Has been cancelled
Tests / Serial / Integration / E2E Tests (push) Has been cancelled
Tests / MCP Server Tests (push) Has been cancelled
Test Vector Database Adaptors / Test chroma Adaptor (push) Has been cancelled
Test Vector Database Adaptors / Test faiss Adaptor (push) Has been cancelled
Test Vector Database Adaptors / Test qdrant Adaptor (push) Has been cancelled
Test Vector Database Adaptors / Test weaviate Adaptor (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Quickstart script for Continue.dev + Skill Seekers integration.
|
||||
|
||||
Usage:
|
||||
python quickstart.py --framework vue
|
||||
python quickstart.py --framework django --skip-scrape
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def run_command(cmd: list[str], description: str) -> bool:
|
||||
"""Run a shell command and return success status."""
|
||||
print(f"\n{'='*60}")
|
||||
print(f"STEP: {description}")
|
||||
print(f"{'='*60}")
|
||||
print(f"Running: {' '.join(cmd)}\n")
|
||||
|
||||
result = subprocess.run(cmd, capture_output=True, text=True)
|
||||
|
||||
if result.stdout:
|
||||
print(result.stdout)
|
||||
if result.stderr:
|
||||
print(result.stderr, file=sys.stderr)
|
||||
|
||||
if result.returncode != 0:
|
||||
print(f"❌ ERROR: {description} failed with code {result.returncode}")
|
||||
return False
|
||||
|
||||
print(f"✅ SUCCESS: {description}")
|
||||
return True
|
||||
|
||||
|
||||
def create_continue_config(framework: str, port: int = 8765) -> Path:
|
||||
"""
|
||||
Create Continue.dev configuration.
|
||||
|
||||
Args:
|
||||
framework: Framework name
|
||||
port: Context server port
|
||||
|
||||
Returns:
|
||||
Path to created config file
|
||||
"""
|
||||
config_dir = Path.home() / ".continue"
|
||||
config_dir.mkdir(exist_ok=True)
|
||||
|
||||
config_path = config_dir / "config.json"
|
||||
|
||||
# Load existing config or create new
|
||||
if config_path.exists():
|
||||
with open(config_path, 'r') as f:
|
||||
config = json.load(f)
|
||||
else:
|
||||
config = {
|
||||
"models": [],
|
||||
"contextProviders": []
|
||||
}
|
||||
|
||||
# Add context provider for this framework
|
||||
provider = {
|
||||
"name": "http",
|
||||
"params": {
|
||||
"url": f"http://localhost:{port}/docs/{framework}",
|
||||
"title": f"{framework}-docs",
|
||||
"displayTitle": f"{framework.title()} Documentation",
|
||||
"description": f"{framework} framework expert knowledge"
|
||||
}
|
||||
}
|
||||
|
||||
# Check if already exists
|
||||
existing = [
|
||||
p for p in config.get("contextProviders", [])
|
||||
if p.get("params", {}).get("title") == provider["params"]["title"]
|
||||
]
|
||||
|
||||
if not existing:
|
||||
config.setdefault("contextProviders", []).append(provider)
|
||||
print(f"✅ Added {framework} context provider to Continue config")
|
||||
else:
|
||||
print(f"⏭️ {framework} context provider already exists in Continue config")
|
||||
|
||||
# Save config
|
||||
with open(config_path, 'w') as f:
|
||||
json.dump(config, f, indent=2)
|
||||
|
||||
return config_path
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Quickstart script for Continue.dev + Skill Seekers"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--framework",
|
||||
type=str,
|
||||
required=True,
|
||||
help="Framework to generate documentation for (vue, react, django, etc.)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--skip-scrape",
|
||||
action="store_true",
|
||||
help="Skip scraping step (use existing output)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--port",
|
||||
type=int,
|
||||
default=8765,
|
||||
help="Context server port (default: 8765)"
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
framework = args.framework.lower()
|
||||
output_dir = Path(f"output/{framework}")
|
||||
|
||||
print("=" * 60)
|
||||
print("Continue.dev + Skill Seekers Quickstart")
|
||||
print("=" * 60)
|
||||
print(f"Framework: {framework}")
|
||||
print(f"Context server port: {args.port}")
|
||||
print("=" * 60)
|
||||
|
||||
# Step 1: Scrape documentation (unless skipped)
|
||||
if not args.skip_scrape:
|
||||
if not run_command(
|
||||
[
|
||||
"skill-seekers",
|
||||
"scrape",
|
||||
"--config",
|
||||
f"configs/{framework}.json"
|
||||
],
|
||||
f"Scraping {framework} documentation"
|
||||
):
|
||||
return 1
|
||||
else:
|
||||
print(f"\n⏭️ SKIPPED: Using existing {output_dir}")
|
||||
|
||||
if not output_dir.exists():
|
||||
print(f"❌ ERROR: {output_dir} does not exist!")
|
||||
print(f"Run without --skip-scrape to generate documentation first.")
|
||||
return 1
|
||||
|
||||
# Step 2: Package documentation
|
||||
if not run_command(
|
||||
[
|
||||
"skill-seekers",
|
||||
"package",
|
||||
str(output_dir),
|
||||
"--target",
|
||||
"markdown"
|
||||
],
|
||||
f"Packaging {framework} documentation"
|
||||
):
|
||||
return 1
|
||||
|
||||
# Step 3: Create Continue config
|
||||
print(f"\n{'='*60}")
|
||||
print(f"STEP: Configuring Continue.dev")
|
||||
print(f"{'='*60}")
|
||||
|
||||
config_path = create_continue_config(framework, args.port)
|
||||
print(f"✅ Continue config updated: {config_path}")
|
||||
|
||||
# Step 4: Instructions for starting server
|
||||
print(f"\n{'='*60}")
|
||||
print(f"✅ SUCCESS: Setup complete!")
|
||||
print(f"{'='*60}")
|
||||
print(f"\nNext steps:")
|
||||
print(f"\n1. Start context server:")
|
||||
print(f" python context_server.py --port {args.port}")
|
||||
print(f"\n2. Open any IDE with Continue.dev:")
|
||||
print(f" - VS Code: code my-project/")
|
||||
print(f" - IntelliJ: idea my-project/")
|
||||
print(f" - PyCharm: pycharm my-project/")
|
||||
print(f"\n3. Test in Continue panel (Cmd+L or Ctrl+L):")
|
||||
print(f" @{framework}-docs Create a {framework} component")
|
||||
print(f"\n4. Verify Continue references documentation")
|
||||
print(f"\nContinue config location: {config_path}")
|
||||
print(f"Context provider: @{framework}-docs")
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user