guanghu-ice-heart/skills/codex/guanghu-os-server/scripts/resolve-target.sh

45 lines
1.4 KiB
Shell
Executable file

#!/bin/sh
set -eu
if [ "$#" -ne 1 ] || [ -z "$1" ]; then
echo "usage: resolve-target.sh <node-id-or-exact-alias>" >&2
exit 2
fi
script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
registry="$script_dir/../targets.json"
requested=$1
exec node - "$registry" "$requested" <<'NODE'
const fs = require("node:fs");
const registry = JSON.parse(fs.readFileSync(process.argv[2], "utf8"));
const requested = String(process.argv[3] || "").trim();
const normalized = requested.toLocaleLowerCase("zh-CN");
const matches = registry.targets.filter(target =>
[target.node_id, ...(target.aliases || [])]
.some(value => String(value).toLocaleLowerCase("zh-CN") === normalized)
);
if (matches.length !== 1) {
process.stderr.write(`TARGET_NOT_RESOLVED_EXACTLY requested=${requested} matches=${matches.length}\n`);
process.exit(65);
}
process.stdout.write(`${JSON.stringify({
status: "TARGET_RESOLVED_EXACTLY",
...matches[0],
final_guanghu_os_master_proven: false,
required_live_predicates: [
"guanghu_semantic_control",
"guanghu_boot_control",
"linux_on_demand_subcontrol",
"linux_rescue",
"current_target_receipt"
],
forbidden_completion_shortcuts: [
"linux_deleted",
"linux_absent",
"linux_free_boot",
"guanghu_service_name_only"
],
next: "read_back_live_boot_control_linux_lifecycle_rescue_and_server_owned_receipts"
}, null, 2)}\n`);
NODE