import type { APIRoute } from 'astro'; import { getSkill } from '../../lib/skills'; import { isPowerShell } from '../../lib/sync'; /** Backward compat: //i — installs skill to .claude/skills/ */ export const GET: APIRoute = async ({ params, url, request }) => { const { slug } = params; const skill = await getSkill(slug!); if (!skill) { return new Response('Skill not found', { status: 404 }); } const origin = url.origin; const ps = isPowerShell(request); const script = ps ? [ '$ErrorActionPreference = "Stop"', '$Dir = ".claude\\skills"', 'New-Item -ItemType Directory -Force -Path $Dir | Out-Null', `Invoke-WebRequest -Uri "${origin}/skills/${slug}" -OutFile (Join-Path $Dir "${slug}.md")`, `Write-Host "✓ Installed ${skill.name} to $Dir\\${slug}.md"`, '', ].join('\n') : [ '#!/usr/bin/env bash', 'set -euo pipefail', 'mkdir -p .claude/skills', `curl -fsSL "${origin}/skills/${slug}" -o ".claude/skills/${slug}.md"`, `echo "✓ Installed ${skill.name} to .claude/skills/${slug}.md"`, '', ].join('\n'); return new Response(script, { headers: { 'Content-Type': 'text/plain; charset=utf-8' }, }); };