arch: add catalog.yaml + sync.sh — migrate aggregator to sparse-checkout model
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).
This commit is contained in:
@@ -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"
|
||||
@@ -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."
|
||||
Reference in New Issue
Block a user