chore(iso): drop dead import-clawdie-skills.sh #147
2 changed files with 1 additions and 82 deletions
|
|
@ -1,81 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Import clawdie-ai skill definitions into the colibri skills catalog.
|
||||
#
|
||||
# Reads .agent/skills/*/SKILL.md from a clawdie-ai checkout, extracts
|
||||
# YAML frontmatter (name, description), derives category, and inserts
|
||||
# into the colibri SQLite coordination database.
|
||||
#
|
||||
# Usage during ISO build:
|
||||
# scripts/import-clawdie-skills.sh /path/to/clawdie-ai /path/to/mount-point
|
||||
|
||||
set -eu
|
||||
|
||||
CLAWDIE_AI="${1:?usage: $0 <clawdie-ai-dir> <mount-point>}"
|
||||
MOUNT_POINT="${2:?usage: $0 <clawdie-ai-dir> <mount-point>}"
|
||||
DB="${MOUNT_POINT}/var/db/colibri/colibri.sqlite"
|
||||
|
||||
if [ ! -d "$CLAWDIE_AI/.agent/skills" ]; then
|
||||
echo " clawdie-ai skills dir not found, skipping import"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! command -v sqlite3 >/dev/null 2>&1; then
|
||||
echo " sqlite3 not available, skipping skills import"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Ensure the skills table exists
|
||||
sqlite3 "$DB" "CREATE TABLE IF NOT EXISTS skills (
|
||||
id TEXT PRIMARY KEY NOT NULL,
|
||||
name TEXT NOT NULL UNIQUE,
|
||||
description TEXT,
|
||||
category TEXT,
|
||||
created_at TEXT NOT NULL
|
||||
);" 2>/dev/null || true
|
||||
|
||||
NOW=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
||||
IMPORTED=0
|
||||
SKIPPED=0
|
||||
|
||||
for skill_md in "$CLAWDIE_AI"/.agent/skills/*/SKILL.md; do
|
||||
[ -f "$skill_md" ] || continue
|
||||
|
||||
# Extract YAML frontmatter between --- markers
|
||||
frontmatter=$(sed -n '/^---$/,/^---$/p' "$skill_md" | sed '1d;$d')
|
||||
|
||||
# Extract name (first "name:" line after frontmatter)
|
||||
name=$(echo "$frontmatter" | grep -m1 '^name:' | sed 's/^name: *//' | tr -d '"')
|
||||
[ -n "$name" ] || continue
|
||||
|
||||
# Extract description
|
||||
description=$(echo "$frontmatter" | sed -n '/^description:/,/^[a-z]/p' | sed '$d' | sed 's/^description: *//' | tr '\n' ' ' | sed 's/ */ /g' | sed 's/^ *//;s/ *$//')
|
||||
# Handle multi-line descriptions (| indicator)
|
||||
if echo "$description" | grep -q '^|$'; then
|
||||
description=$(echo "$frontmatter" | awk '/^description:/{found=1; next} /^[a-z]/{if(found) exit} found{print}' | tr '\n' ' ' | sed 's/ */ /g' | sed 's/^ *//;s/ *$//')
|
||||
fi
|
||||
[ -n "$description" ] || description="$name skill"
|
||||
|
||||
# Derive category from skill name prefix
|
||||
case "$name" in
|
||||
git-*) category="git" ;;
|
||||
db-*|postgres*) category="database" ;;
|
||||
zfs-*) category="zfs" ;;
|
||||
add-*) category="integration" ;;
|
||||
freebsd-*) category="freebsd" ;;
|
||||
ansible-*) category="automation" ;;
|
||||
*) category="clawdie" ;;
|
||||
esac
|
||||
|
||||
# Override category if compatibility field indicates FreeBSD
|
||||
if echo "$frontmatter" | grep -q 'compatibility:.*FreeBSD'; then
|
||||
category="freebsd"
|
||||
fi
|
||||
|
||||
id=$(uuidgen 2>/dev/null || python3 -c "import uuid; print(uuid.uuid4())" 2>/dev/null || echo "skill-$(echo "$name" | md5)")
|
||||
|
||||
sqlite3 "$DB" "INSERT OR IGNORE INTO skills (id, name, description, category, created_at)
|
||||
VALUES ('$id', '$(echo "$name" | sed "s/'/''/g")', '$(echo "$description" | sed "s/'/''/g")', '$category', '$NOW');" 2>/dev/null && IMPORTED=$((IMPORTED + 1)) || SKIPPED=$((SKIPPED + 1))
|
||||
done
|
||||
|
||||
chroot "$MOUNT_POINT" chown colibri:colibri /var/db/colibri/colibri.sqlite 2>/dev/null || true
|
||||
echo " clawdie-ai skills: $IMPORTED imported, $SKIPPED skipped"
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
# into the colibri SQLite coordination database.
|
||||
#
|
||||
# Usage during ISO build:
|
||||
# scripts/import-clawdie-skills.sh /path/to/colibri /path/to/mount-point
|
||||
# scripts/import-colibri-skills.sh /path/to/colibri /path/to/mount-point
|
||||
|
||||
set -eu
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue