Files
blackroad/bin/brx
Alexa Amundson 78fbe80f2a Initial monorepo — everything BlackRoad in one place
bin/       230 CLI tools (ask-*, br-*, agent-*, roadid, carpool)
scripts/   99 automation scripts
fleet/     Node configs and deployment
workers/   Cloudflare Worker sources (roadpay, road-search, squad webhooks)
roadc/     RoadC programming language
roadnet/   Mesh network (5 APs, WireGuard)
operator/  Memory system scripts
config/    System configs
dotfiles/  Shell configs
docs/      Documentation

BlackRoad OS — Pave Tomorrow.

RoadChain-SHA2048: d1a24f55318d338b
RoadChain-Identity: alexa@sovereign
RoadChain-Full: d1a24f55318d338b24b60bad7be39286379c76ae5470817482100cb0ddbbcb97e147d07ac7243da0a9f0363e4e5c833d612b9c0df3a3cd20802465420278ef74875a5b77f55af6fe42a931b8b635b3d0d0b6bde9abf33dc42eea52bc03c951406d8cbe49f1a3d29b26a94dade05e9477f34a7d4d4c6ec4005c3c2ac54e73a68440c512c8e83fd9b1fe234750b898ef8f4032c23db173961fe225e67a0432b5293a9714f76c5c57ed5fdf35b9fb40fd73c03ebf88b7253c6a0575f5afb6a6b49b3bda310602fb1ef676859962dad2aebbb2875814b30eee0a8ba195e482d4cbc91d8819e7f38f6db53e8063401649c77bb994371473cabfb917fb53e8cbe73d60
2026-03-14 17:08:41 -05:00

246 lines
5.9 KiB
Bash

#!/usr/bin/env bash
# ============================================================================
# BLACKROAD OS, INC. - PROPRIETARY AND CONFIDENTIAL
# Copyright (c) 2025-2026 BlackRoad OS, Inc. All Rights Reserved.
#
# This code is the intellectual property of BlackRoad OS, Inc.
# AI-assisted development does not transfer ownership to AI providers.
# Unauthorized use, copying, or distribution is prohibited.
# NOT licensed for AI training or data extraction.
# ============================================================================
set -euo pipefail
VERSION="0.1.4"
resolve_self() {
local path="$0"
if [[ "$path" != /* ]]; then
path="$(command -v "$path" 2>/dev/null || true)"
fi
if [[ -n "$path" ]]; then
echo "$path"
else
echo "$0"
fi
}
find_registry() {
local candidates=(
"$PWD/infra/blackroad_registry.json"
"$HOME/infra/blackroad_registry.json"
"$HOME/blackroad/infra/blackroad_registry.json"
)
local candidate
for candidate in "${candidates[@]}"; do
if [[ -f "$candidate" ]]; then
echo "$candidate"
return 0
fi
done
return 1
}
print_help() {
echo "BlackRoad CLI (local)"
echo
echo "Commands:"
echo " brx help"
echo " brx whoami"
echo " brx status"
echo " brx version"
echo " brx paths"
echo " brx registry"
echo " brx doctor"
}
print_whoami() {
echo "origin=BlackRoad"
echo "engine=Lucidia"
}
print_status() {
local now
now=$(date -u +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date)
echo "Status: ok"
echo "Mode: local"
echo "Time: $now"
}
print_version() {
echo "brx version $VERSION"
}
print_paths() {
local resolved cmd_path
resolved="$(resolve_self)"
cmd_path="$(command -v brx 2>/dev/null || true)"
echo "brx path: $resolved"
if [[ -n "$cmd_path" ]]; then
echo "brx in PATH: $cmd_path"
else
echo "brx in PATH: not found"
fi
echo "PATH entries:"
local entry note
IFS=':' read -r -a path_entries <<< "${PATH:-}"
for entry in "${path_entries[@]}"; do
note=""
if [[ "$entry" == "$HOME/bin" ]]; then
note=" (home bin)"
elif [[ "$entry" == "$HOME/.local/bin" ]]; then
note=" (local bin)"
fi
printf ' %s%s\n' "$entry" "$note"
done
}
print_registry() {
local registry version updated
registry="$(find_registry || true)"
if [[ -z "$registry" ]]; then
echo "registry: not found in common locations"
return 0
fi
version="$(sed -n 's/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$registry" | head -n1)"
updated="$(sed -n 's/.*"updated"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$registry" | head -n1)"
echo "registry: $registry"
if [[ -n "$version" ]]; then
echo "version: $version"
fi
if [[ -n "$updated" ]]; then
echo "updated: $updated"
fi
if command -v node >/dev/null 2>&1; then
node -e '
const fs = require("fs")
const path = process.argv[1]
try {
const data = JSON.parse(fs.readFileSync(path, "utf8"))
const domains = data.domains || {}
const names = Object.keys(domains).sort()
const unique = new Set()
let total = 0
const counts = names.map((name) => {
const entries = domains[name] || {}
const keys = Object.keys(entries)
total += keys.length
for (const key of keys) {
const svc = entries[key]
if (svc && svc.service_name) unique.add(svc.service_name)
}
return { name, count: keys.length }
})
if (names.length) {
console.log(`domains: ${names.length} (${names.join(", ")})`)
} else {
console.log("domains: 0")
}
console.log(`services: ${total} total, ${unique.size} unique`)
for (const item of counts) {
console.log(`domain ${item.name}: ${item.count}`)
}
for (const name of names) {
const entries = domains[name] || {}
const keys = Object.keys(entries).sort()
if (!keys.length) continue
console.log(`subdomains ${name}:`)
for (const key of keys) {
const svc = entries[key]
const svcName = svc && svc.service_name ? svc.service_name : "unknown"
const target = svc && (svc.prod_url || svc.cloudflare_target || svc.target || "")
const suffix = target ? ` -> ${target}` : ""
console.log(` ${key}: ${svcName}${suffix}`)
}
}
} catch (err) {
console.log("summary: unable to parse registry for counts")
}
' "$registry"
else
echo "summary: node not available, skipping counts"
fi
}
print_doctor() {
local resolved cmd_path
resolved="$(resolve_self)"
cmd_path="$(command -v brx 2>/dev/null || true)"
echo "Doctor report"
echo "brx path: $resolved"
echo "brx version: $VERSION"
if [[ -x "$resolved" ]]; then
echo "brx executable: ok"
else
echo "brx executable: missing"
fi
if [[ -n "$cmd_path" ]]; then
echo "brx in PATH: ok ($cmd_path)"
else
echo "brx in PATH: missing"
fi
if command -v bros >/dev/null 2>&1; then
echo "bros: ok ($(command -v bros))"
else
echo "bros: missing"
fi
if [[ -f "$HOME/.zshrc" ]] && grep -q '^alias br=' "$HOME/.zshrc" 2>/dev/null; then
echo "br alias: configured (~/.zshrc)"
elif command -v br >/dev/null 2>&1; then
echo "br: ok ($(command -v br))"
else
echo "br alias: missing"
fi
local registry
registry="$(find_registry || true)"
if [[ -n "$registry" ]]; then
echo "registry: found ($registry)"
else
echo "registry: not found in common locations"
fi
}
COMMAND="${1:-}"
case "$COMMAND" in
help|"")
print_help
;;
whoami)
print_whoami
;;
status)
print_status
;;
version)
print_version
;;
paths)
print_paths
;;
registry)
print_registry
;;
doctor)
print_doctor
;;
*)
echo "Unknown command: $COMMAND"
exit 1
;;
esac