arcrun — AI workflow execution engine (clean history)
Self-hosted 開源:WASM 零件 + recipe + cypher-executor,跑在你自己的 Cloudflare。 此為重建的乾淨歷史起點(移除曾誤 commit 的 GCP SA 金鑰,舊歷史保留在 richblack/arcrun 與本地 backup 分支)。含: - acr init --self-hosted installer(建 KV/R2 + codeload 拉預編譯 wasm + wrangler deploy + seed recipe) - recipe push 把關(資料外流提醒 + 打通檢查) - 19 個正當零件預編譯 wasm(claude_api/km_writer/kbdb_upsert_block 排除:違反 DECISIONS §1) - CLI / cypher-executor / registry / 完整 SDD Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env bash
|
||||
# 單一 component 註冊到 registry index
|
||||
# SDD: matrix/arcrun/.agents/specs/component-registry-canon/design.md Phase 2
|
||||
#
|
||||
# 用法:
|
||||
# bash scripts/register-component.sh <component_name>
|
||||
# REGISTRY_URL=https://registry.arcrun.dev bash scripts/register-component.sh kbdb_ingest
|
||||
#
|
||||
# CI deploy 流程內也使用同樣邏輯(見 .github/workflows/deploy.yml 的 Register step)
|
||||
# 此 script 是「本地 / hook 一致性」的 SSOT,CI 改邏輯時 script 跟著改
|
||||
|
||||
set -uo pipefail
|
||||
|
||||
REGISTRY_URL="${REGISTRY_URL:-https://registry.arcrun.dev}"
|
||||
COMPONENT_NAME="${1:-}"
|
||||
|
||||
if [[ -z "$COMPONENT_NAME" ]]; then
|
||||
echo "Usage: $0 <component_name>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
COMPONENT_DIR="$SCRIPT_DIR/../components/$COMPONENT_NAME"
|
||||
CONTRACT="$COMPONENT_DIR/component.contract.yaml"
|
||||
|
||||
if [[ ! -f "$CONTRACT" ]]; then
|
||||
echo "::warning::no component.contract.yaml at $COMPONENT_DIR" >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
python3 -c "import yaml" 2>/dev/null || {
|
||||
echo "需要 python3 + pyyaml" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
contract_json=$(python3 -c "
|
||||
import yaml, json
|
||||
with open('$CONTRACT') as f:
|
||||
c = yaml.safe_load(f)
|
||||
print(json.dumps({'contract': c}))
|
||||
") || {
|
||||
echo "::warning::無法解析 $CONTRACT" >&2
|
||||
exit 0
|
||||
}
|
||||
|
||||
echo "Registering $COMPONENT_NAME to $REGISTRY_URL ..."
|
||||
http_code=$(curl -s -o /tmp/reg-response.json -w "%{http_code}" \
|
||||
-X POST "$REGISTRY_URL/components/index-only" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "$contract_json")
|
||||
|
||||
if [[ "$http_code" =~ ^(200|201)$ ]]; then
|
||||
echo "✓ $COMPONENT_NAME registered (HTTP $http_code)"
|
||||
cat /tmp/reg-response.json
|
||||
echo
|
||||
else
|
||||
echo "::warning::Registry 註冊失敗 HTTP $http_code" >&2
|
||||
cat /tmp/reg-response.json || true
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user