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
246 lines
5.9 KiB
Bash
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
|