From e2d4231ea43c61549af962a9200a409bccdf7276 Mon Sep 17 00:00:00 2001 From: nanobot Date: Tue, 5 May 2026 23:41:16 +0200 Subject: [PATCH] =?UTF-8?q?arch:=20add=20catalog.yaml=20+=20sync.sh=20?= =?UTF-8?q?=E2=80=94=20migrate=20aggregator=20to=20sparse-checkout=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each ARA now has a canonical home in its project repo (PRs open). catalog.yaml tracks source repos, branch, path, PR status. sync.sh automates sparse-checkout pulls when PRs merge. traefik-infrastructure stays aggregator-only (no dedicated project repo). --- catalog.yaml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ sync.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 catalog.yaml create mode 100755 sync.sh diff --git a/catalog.yaml b/catalog.yaml new file mode 100644 index 0000000..556f4a9 --- /dev/null +++ b/catalog.yaml @@ -0,0 +1,46 @@ +# ARA Registry — WyLab stack +# Each entry declares where the ARA lives (source repo + path) +# and mirrors the artifact here for container access via /mnt/user/ara + +artifacts: + - id: nanobot + repo: https://git.wylab.me/wylab/nanobot.git + branch: main # pending PR #37 + path: ara/ + pr: https://git.wylab.me/wylab/nanobot/pulls/37 + status: pr-open + description: "nanobot AI agent system — heartbeat, memory, skills" + + - id: ss14-cicd + repo: https://git.wylab.me/wylab/WS14-Docker-Linux-Server.git + branch: main # pending PR #1 + path: ara/ + pr: https://git.wylab.me/wylab/WS14-Docker-Linux-Server/pulls/1 + status: pr-open + description: "SS14 Docker server CI/CD pipeline" + + - id: traefik-infrastructure + repo: https://git.wylab.me/nanobot/ara.git + branch: main + path: traefik-infrastructure/ + status: aggregator-only + description: "Traefik + DNS + Docker networking — no dedicated project repo" + + - id: wylab-station-14 + repo: https://git.wylab.me/wylab/wylab-station-14.git + branch: master # pending PR #9 + path: ara/ + pr: https://git.wylab.me/wylab/wylab-station-14/pulls/9 + status: stub-pr-open + description: "WyLab SS14 game server fork" + +reference: + - id: ara-example-minimal + source: https://github.com/Orchestra-Research/Agent-Native-Research-Artifact + path: examples/minimal-artifact/ + description: "Minimal valid ARA skeleton" + + - id: ara-example-resnet + source: https://github.com/Orchestra-Research/Agent-Native-Research-Artifact + path: examples/resnet-ara-example/ + description: "Full ARA for He et al. ResNet paper" diff --git a/sync.sh b/sync.sh new file mode 100755 index 0000000..1ac51e3 --- /dev/null +++ b/sync.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# Sync ARAs from source project repos into this aggregator. +# Uses git sparse-checkout to pull only the ara/ subdirectory. +# Run after PRs are merged. + +set -e +GITEA="https://git.wylab.me" + +sync_ara() { + local id=$1 + local repo=$2 + local branch=$3 + local src_path=$4 + local dest="$id" + + echo "Syncing $id from $repo ($branch:$src_path)..." + + if [ -d "/tmp/sync-$id" ]; then + rm -rf "/tmp/sync-$id" + fi + + git clone --no-checkout --filter=blob:none --depth=1 \ + -b "$branch" "$repo" "/tmp/sync-$id" 2>/dev/null + + cd "/tmp/sync-$id" + git sparse-checkout init --cone + git sparse-checkout set "$src_path" + git checkout + + cd - + rm -rf "$dest" + cp -r "/tmp/sync-$id/$src_path" "$dest" + echo " Done: $id" +} + +# Sync after PRs merge: +# sync_ara "nanobot" "$GITEA/wylab/nanobot.git" "main" "ara" +# sync_ara "ss14-cicd" "$GITEA/wylab/WS14-Docker-Linux-Server.git" "main" "ara" +# sync_ara "wylab-station-14" "$GITEA/wylab/wylab-station-14.git" "master" "ara" + +# traefik stays aggregator-only (no project repo) +echo "Sync complete."