Add author auth, forking, tags, and stats tracking

Introduce token-based author authentication (register/verify API),
   skill forking with EditGate protection, tag metadata on skills,
   and download/push stats. Enhanced push scripts with token auth
   and per-skill filtering. Updated UI with stats, tags, and
   author info on skill cards.
This commit is contained in:
Alejandro Martinez
2026-02-12 14:37:40 +01:00
parent 39d8afb251
commit aa477a553b
80 changed files with 3618 additions and 660 deletions

View File

@@ -1,7 +1,7 @@
---
import Base from '../../layouts/Base.astro';
import SkillEditor from '../../components/SkillEditor.vue';
import { getSkill } from '../../lib/skills';
import { getSkill, getAllTags } from '../../lib/skills';
import { getAvailableTools } from '../../lib/tools';
import { getAvailableModels } from '../../lib/models';
@@ -16,9 +16,10 @@ const availableTools = await getAvailableTools();
const availableModels = await getAvailableModels();
const allowedTools = skill['allowed-tools'].join(', ');
const hooksJson = skill.hooks ? JSON.stringify(skill.hooks, null, 2) : '';
const availableTags = await getAllTags();
---
<Base title={`Edit ${skill.name} — Skillit`}>
<Base title={`Edit ${skill.name} — Skills Here`}>
<a href={`/${slug}`} class="inline-flex items-center gap-1 text-sm text-gray-600 hover:text-gray-300 transition-colors mb-4">
<svg class="h-3.5 w-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M15.75 19.5 8.25 12l7.5-7.5" />
@@ -41,8 +42,12 @@ const hooksJson = skill.hooks ? JSON.stringify(skill.hooks, null, 2) : '';
initialAgent={skill.agent}
initialHooks={hooksJson}
initialBody={skill.content}
initialAuthor={skill.author}
initialAuthorEmail={skill['author-email']}
initialTags={skill.tags.join(', ')}
:availableTools={availableTools}
:availableModels={availableModels}
availableTags={availableTags.join(',')}
client:load
/>
</Base>