feat: register deterministic HoloLake stage relay
This commit is contained in:
parent
34cb59739b
commit
5f86116303
11 changed files with 1065 additions and 4 deletions
34
tests/stage-relay-navigation.test.mjs
Normal file
34
tests/stage-relay-navigation.test.mjs
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import assert from "node:assert/strict";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import test from "node:test";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
||||
const readJson = (relative) => JSON.parse(fs.readFileSync(path.join(root, relative), "utf8"));
|
||||
|
||||
test("stage relay is registered through the lighthouse and formal Codex tools", () => {
|
||||
const relay = readJson("routing/hololake-stage-relay-map.json");
|
||||
assert.equal(relay.map_id, "HLP-STAGE-RELAY-001");
|
||||
assert.equal(relay.second_truth_store_allowed, false);
|
||||
assert.equal(relay.host_adapter.create_tool, "codex_app.create_thread");
|
||||
assert.equal(relay.host_adapter.script_or_chat_may_claim_thread_created, false);
|
||||
assert.equal(relay.idempotency.maximum_successor_threads_per_source_completion, 1);
|
||||
|
||||
const lighthouse = readJson("routing/lighthouse-path-registry.json");
|
||||
assert.ok(lighthouse.paths.some((entry) => entry.id === relay.map_id));
|
||||
const hosts = readJson("routing/host-skill-navigation-map.json");
|
||||
const intent = hosts.intents.find((entry) => entry.id === "INTENT-HOLOLAKE-STAGE-RELAY-001");
|
||||
assert.equal(intent.target_id, relay.map_id);
|
||||
assert.equal(intent.executor, relay.runtime_source);
|
||||
const anchor = readJson("routing/public-navigation-anchor.json");
|
||||
assert.equal(anchor.maps.hololake_stage_relay.id, relay.map_id);
|
||||
});
|
||||
|
||||
test("relay requires the complete source and successor binary gates", () => {
|
||||
const relay = readJson("routing/hololake-stage-relay-map.json");
|
||||
assert.equal(relay.source_completion_gates.length, 6);
|
||||
assert.equal(relay.successor_ready_gates.length, 5);
|
||||
assert.ok(relay.human_pause_boundaries.includes("PRODUCTION_CUTOVER"));
|
||||
assert.match(relay.final_stop, /FINAL_PRODUCT_CLOSEOUT_RECEIPT_PASS_100/u);
|
||||
});
|
||||
Loading…
Reference in a new issue