71 lines
2.6 KiB
JavaScript
71 lines
2.6 KiB
JavaScript
const assert = require("node:assert/strict");
|
|
const fs = require("node:fs");
|
|
const path = require("node:path");
|
|
|
|
const root = path.join(__dirname, "..");
|
|
const subjects = JSON.parse(
|
|
fs.readFileSync(
|
|
path.join(root, "identity/fifth-domain-subject-registry.json"),
|
|
"utf8",
|
|
),
|
|
);
|
|
const canonical = JSON.parse(
|
|
fs.readFileSync(
|
|
path.join(__dirname, "persona-system-canonical-map.json"),
|
|
"utf8",
|
|
),
|
|
);
|
|
const repositories = JSON.parse(
|
|
fs.readFileSync(path.join(__dirname, "repository-route-map.json"), "utf8"),
|
|
);
|
|
|
|
const registrations = [
|
|
{ canonicalId: "ICE-P-CL0720", aliases: ["CHENGLU-AGENT-001"] },
|
|
{ canonicalId: "ICE-P-GD0720", aliases: ["GUIDENG-AGENT-001"] },
|
|
{ canonicalId: "ICE-P-KZ0720", aliases: ["ICE-GL-KZ-001"] },
|
|
];
|
|
for (const registration of registrations) {
|
|
const subject = subjects.subjects.find((candidate) => candidate.id === registration.canonicalId);
|
|
assert.ok(subject, `${registration.canonicalId} must be present in the subject registry`);
|
|
assert.equal(subject.subject_kind, "persona_system");
|
|
assert.equal(subject.ontology_kind, "role_persona");
|
|
assert.equal(subject.controller, "ICE-P-ZY001");
|
|
assert.equal(subject.independent_persona, true);
|
|
assert.equal(subject.not_a_copy_of_controller, true);
|
|
|
|
assert.deepEqual(subject.legacy_ids || [], registration.aliases);
|
|
|
|
const system = canonical.persona_systems.find(
|
|
(candidate) => candidate.id === registration.canonicalId,
|
|
);
|
|
assert.ok(system, `${registration.canonicalId} must be present in the canonical persona map`);
|
|
assert.deepEqual(system.legacy_ids || [], registration.aliases);
|
|
assert.equal(system.controller.id, "ICE-P-ZY001");
|
|
assert.equal(
|
|
system.permanent_memory_and_protocol.scheduled_writes,
|
|
"CONTENT_DRIVEN_DAILY_FIFTH_DOMAIN_UPDATE_ONLY",
|
|
);
|
|
}
|
|
|
|
for (const code of ["REPO-009", "REPO-010", "REPO-011"]) {
|
|
const allRepositories = [
|
|
...(repositories.historical_repositories || []),
|
|
...(repositories.private_persona_repositories || []),
|
|
...(repositories.repositories || []),
|
|
];
|
|
const repository = allRepositories.find(
|
|
(candidate) => candidate.code === code,
|
|
);
|
|
assert.ok(repository, `${code} must remain addressable`);
|
|
assert.equal(repository.controller, "ICE-P-ZY001");
|
|
assert.equal(
|
|
repository.state,
|
|
"CURRENT_PRIVATE_HISTORY_ACTIVE_DAILY_ROLE_MEMORY_DEPLOYED",
|
|
);
|
|
assert.equal(repository.code_channel_push_allowed, false);
|
|
assert.equal(repository.scheduled_persona_memory_write_allowed, true);
|
|
assert.equal(repository.deployment_source_allowed, false);
|
|
assert.match(repository.primary.url, /\/code\/bingshuo\//);
|
|
}
|
|
|
|
console.log("role-persona-registration: ok");
|