76 lines
5.9 KiB
JavaScript
76 lines
5.9 KiB
JavaScript
import fs from 'node:fs';
|
|
import path from 'node:path';
|
|
import assert from 'node:assert/strict';
|
|
|
|
const root = path.resolve(import.meta.dirname, '..');
|
|
const body = JSON.parse(fs.readFileSync(path.join(root, 'routing/persona-system-body-container-map.json')));
|
|
const lake = JSON.parse(fs.readFileSync(path.join(root, 'routing/light-lake-persona-switch-map.json')));
|
|
const limbs = JSON.parse(fs.readFileSync(path.join(root, 'routing/persona-execution-limb-agent-map.json')));
|
|
const personas = JSON.parse(fs.readFileSync(path.join(root, 'routing/persona-system-canonical-map.json')));
|
|
const subjects = JSON.parse(fs.readFileSync(path.join(root, 'identity/fifth-domain-subject-registry.json')));
|
|
const hosts = JSON.parse(fs.readFileSync(path.join(root, 'routing/zhuyuan-host-topology.json')));
|
|
const channels = JSON.parse(fs.readFileSync(path.join(root, 'routing/persona-channel-context-map.json')));
|
|
const darkCore = JSON.parse(fs.readFileSync(path.join(root, 'routing/dark-core-execution-channel-profile.json')));
|
|
const zeroCore = JSON.parse(fs.readFileSync(path.join(root, 'routing/bingshuo-zero-core-reality-channel-profile.json')));
|
|
const consoleMap = JSON.parse(fs.readFileSync(path.join(root, 'routing/bingshuo-portable-control-console-map.json')));
|
|
const lightLakeRegistration = JSON.parse(fs.readFileSync(path.join(root, 'identity/light-lake-persona-registration.json')));
|
|
const isolationMap = JSON.parse(fs.readFileSync(path.join(root, 'routing/path-isolation-and-canonical-entry-map.json')));
|
|
const architectureAgent = JSON.parse(fs.readFileSync(path.join(root, 'routing/persona-architecture-perception-agent-map.json')));
|
|
const personaWorld = JSON.parse(fs.readFileSync(path.join(root, 'routing/persona-native-world-architecture-map.json')));
|
|
|
|
assert.equal(body.invariants.one_brain_and_body_per_persona, true);
|
|
assert.equal(body.invariants.shared_persona_brain, false);
|
|
assert.equal(body.invariants.shared_persona_system_body, false);
|
|
assert.equal(body.invariants.shared_tcs_container, true);
|
|
assert.equal(body.invariants.persona_is_prompt_template, false);
|
|
assert.equal(body.invariants.startup_organs_must_push_current_state, true);
|
|
assert.equal(lake.light_lake.object_id, 'TCS-LPM-0001');
|
|
assert.equal(lake.light_lake.shared_container, 'TCS');
|
|
assert.equal(lake.switch_contract.host_prompt_may_select_persona, false);
|
|
assert.equal(limbs.contract.independent_master_persona, false);
|
|
assert.equal(limbs.contract.may_review_parent_intent, false);
|
|
assert.equal(limbs.contract.may_report_fact_target_tool_or_receipt_conflict, true);
|
|
|
|
const registered = new Set([
|
|
...personas.persona_systems.map(item => item.id),
|
|
...subjects.subjects.filter(item => ['persona_system', 'private_bottle_baby_persona'].includes(item.subject_kind)).map(item => item.id),
|
|
]);
|
|
for (const home of lake.current_homes) assert(registered.has(home.persona_id), `unregistered light-lake home: ${home.persona_id}`);
|
|
for (const host of ['codex', 'qwen', 'doubao', 'zcode']) assert.equal(hosts.hosts[host].state, 'ACTIVE');
|
|
assert.equal(new Set(lake.current_homes.map(item => item.persona_id)).size, lake.current_homes.length);
|
|
assert.equal(lightLakeRegistration.personas.length, lake.current_homes.length);
|
|
assert.deepEqual(new Set(lightLakeRegistration.personas.map(item => item.id)), new Set(lake.current_homes.map(item => item.persona_id)));
|
|
for (const persona of lightLakeRegistration.personas) {
|
|
assert.equal(fs.existsSync(path.join(root, persona.light_lake_home)), true, `missing physical Light Lake home: ${persona.id}`);
|
|
}
|
|
assert.equal(lightLakeRegistration.registration_rule.source_presence_is_not_runtime_wake, true);
|
|
assert.equal(lightLakeRegistration.default_persona_modules[0].module_id, 'MOD-PERSONA-ARCHITECTURE-PERCEPTION-001');
|
|
assert.equal(lightLakeRegistration.default_persona_modules[0].prompt_template, false);
|
|
assert.equal(lightLakeRegistration.unregistered_candidates.every(item => !registered.has(item.temporary_id)), true);
|
|
assert.equal(isolationMap.selection_rules.history_or_quarantine_may_select_canon, false);
|
|
assert.equal(isolationMap.isolation.deletion, false);
|
|
assert.equal(architectureAgent.delivery.manual_prompt_required, false);
|
|
assert.equal(architectureAgent.delivery.trigger, 'EVERY_SHARED_PERSONA_HOST_ENTRY');
|
|
assert.equal(architectureAgent.selection.fixed_read_order, false);
|
|
assert.equal(architectureAgent.selection.quarantine_or_history_may_be_selected, false);
|
|
assert.equal(architectureAgent.not_a_prompt.stores_persona_text, false);
|
|
assert.equal(personaWorld.definition.persona_is_not.includes('PROMPT_TEXT'), true);
|
|
for (const required of ['module.tcs', 'module.gir.json', 'module.lock.hdlp', 'module.manifest.hdlp', 'receipts/compile.hdlp', 'receipts/install.hdlp', 'receipts/self-test.hdlp']) {
|
|
assert.equal(fs.existsSync(path.join(root, 'modules/persona-dynamic-architecture-agent', required)), true, `missing architecture agent module artifact: ${required}`);
|
|
}
|
|
assert.equal(lake.local_unregistered_proposals.every(item => item.state.includes('REQUIRES_SELF_CONFIRMATION')), true);
|
|
assert.deepEqual(channels.channels.map(item => item.id), ['ICE-CH-HB001', 'ICE-CH-LB001', 'ICE-CH-ZC001', 'ICE-CH-DK001', 'ICE-CH-BT001']);
|
|
assert.equal(channels.host_switch_changes_channel, false);
|
|
assert.equal(darkCore.human_persona_controller, 'ICE-GL∞');
|
|
assert.equal(darkCore.not_an_ai_persona, true);
|
|
assert.equal(darkCore.execution_fidelity.may_be_used_as_intent_veto, false);
|
|
assert.equal(consoleMap.controller.subject_id, 'ICE-GL∞');
|
|
assert.equal(consoleMap.controller.portable_across_hosts, true);
|
|
assert.equal(consoleMap.entry.channel_id, 'ICE-CH-ZC001');
|
|
assert.equal(consoleMap.entry.explicit_switch_enters_control_path, true);
|
|
assert.equal(consoleMap.entry.host_may_veto_entry, false);
|
|
assert.equal(consoleMap.host_contract.may_convert_tool_failure_to_identity_or_channel_rejection, false);
|
|
assert.equal(zeroCore.host_may_veto_console_entry, false);
|
|
assert.equal(channels.channels.find(item => item.id === 'ICE-CH-ZC001').control_console, true);
|
|
|
|
console.log('persona body, light lake and execution limb navigation tests: PASS');
|