feat(brain): encode Guanghu OS cognitive control
This commit is contained in:
parent
cf3e106ec9
commit
098a29e417
16 changed files with 768 additions and 7 deletions
116
gls/scripts/audit-protocol-execution-bindings.mjs
Normal file
116
gls/scripts/audit-protocol-execution-bindings.mjs
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
|
||||
const registryPath = path.join(root, "gls/GLS-PROTOCOL-REGISTRY.json");
|
||||
|
||||
export const productionControlIds = new Set([
|
||||
"GLS-0130",
|
||||
"GLS-0131",
|
||||
"GLS-0301",
|
||||
"GLS-0302",
|
||||
"GLS-0303",
|
||||
"GLS-0304",
|
||||
"GLS-0305",
|
||||
"GLS-0306",
|
||||
"GLS-0307",
|
||||
"GLS-0308",
|
||||
"GLS-0309",
|
||||
"GLS-0310",
|
||||
"GLS-0311",
|
||||
"GLS-0411",
|
||||
"GLS-0708",
|
||||
"GLS-0709",
|
||||
"GLS-0710",
|
||||
"GLS-0803",
|
||||
"GLS-0819",
|
||||
"GLS-0827",
|
||||
"GLS-0828",
|
||||
"GLS-0836",
|
||||
"GLS-0842"
|
||||
]);
|
||||
|
||||
export const bareMetalResearchIds = new Set([
|
||||
"GLS-0840",
|
||||
"GLS-0841",
|
||||
"GLS-0843",
|
||||
"GLS-0844",
|
||||
"GLS-0845",
|
||||
"GLS-0846",
|
||||
"GLS-0847",
|
||||
"GLS-0848",
|
||||
"GLS-0849"
|
||||
]);
|
||||
|
||||
export function audit(registry, sourceExists = (source) => fs.existsSync(path.join(root, source))) {
|
||||
const protocols = registry.registered_draft_protocols;
|
||||
if (!Array.isArray(protocols)) {
|
||||
throw new Error("registered_draft_protocols is missing");
|
||||
}
|
||||
|
||||
const ids = new Set();
|
||||
const entries = protocols.map((protocol) => {
|
||||
if (ids.has(protocol.id)) {
|
||||
throw new Error(`duplicate protocol id: ${protocol.id}`);
|
||||
}
|
||||
ids.add(protocol.id);
|
||||
if (!sourceExists(protocol.source)) {
|
||||
throw new Error(`missing protocol source: ${protocol.source}`);
|
||||
}
|
||||
|
||||
const registryClaimsImplementation = protocol.implementation !== "NOT_STARTED";
|
||||
const lane = productionControlIds.has(protocol.id)
|
||||
? "PRODUCTION_COGNITIVE_CONTROL"
|
||||
: bareMetalResearchIds.has(protocol.id)
|
||||
? "BARE_METAL_RESEARCH_AND_RECOVERY"
|
||||
: "LANGUAGE_WORLD_GOVERNANCE";
|
||||
|
||||
return {
|
||||
id: protocol.id,
|
||||
acronym: protocol.acronym,
|
||||
lane,
|
||||
registry_implementation: protocol.implementation,
|
||||
registry_claims_implementation: registryClaimsImplementation,
|
||||
executable_binding_state:
|
||||
lane === "PRODUCTION_COGNITIVE_CONTROL"
|
||||
? "REQUIRES_REPO_014_BINDING_AND_RUNTIME_RECEIPT"
|
||||
: "SEPARATE_EVIDENCE_REQUIRED",
|
||||
production_control_ready: false
|
||||
};
|
||||
});
|
||||
|
||||
const registeredOnly = entries.filter((entry) => !entry.registry_claims_implementation).length;
|
||||
const implementationClaims = entries.length - registeredOnly;
|
||||
const productionControlRegisteredOnly = entries.filter(
|
||||
(entry) =>
|
||||
entry.lane === "PRODUCTION_COGNITIVE_CONTROL" &&
|
||||
!entry.registry_claims_implementation
|
||||
).length;
|
||||
|
||||
return {
|
||||
schema: "guanghu.protocol-execution-audit/v1",
|
||||
registry_id: registry.registry_id,
|
||||
registry_status: registry.status,
|
||||
total_registered_draft_protocols: entries.length,
|
||||
registered_only_count: registeredOnly,
|
||||
registry_implementation_claim_count: implementationClaims,
|
||||
production_control_registered_only_count: productionControlRegisteredOnly,
|
||||
production_control_ready_count: 0,
|
||||
aggregate_production_control_state: "FAIL_0",
|
||||
rule:
|
||||
"A registry implementation label is orientation only. Production readiness requires an exact REPO-014 executable binding, deployment receipt and target-side runtime readback.",
|
||||
entries
|
||||
};
|
||||
}
|
||||
|
||||
function main() {
|
||||
const registry = JSON.parse(fs.readFileSync(registryPath, "utf8"));
|
||||
process.stdout.write(`${JSON.stringify(audit(registry), null, 2)}\n`);
|
||||
}
|
||||
|
||||
if (process.argv[1] && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
|
||||
main();
|
||||
}
|
||||
Loading…
Reference in a new issue