@eir-labs/coltrane 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents/change-verifier.json +40 -0
- package/agents/code-implementer.json +42 -0
- package/agents/contract-definer.json +31 -0
- package/agents/defect-investigator.json +60 -0
- package/agents/grounder.json +38 -0
- package/agents/pr-publisher.json +48 -0
- package/agents/red-spec-drafter.json +46 -0
- package/agents/spec-publisher.json +48 -0
- package/agents/spec-reviewer.json +32 -0
- package/dist/src/bifrost_invoker.js +53 -52
- package/dist/src/bifrost_invoker.js.map +1 -1
- package/dist/src/change_set_branch.d.ts +131 -0
- package/dist/src/change_set_branch.js +179 -0
- package/dist/src/change_set_branch.js.map +1 -0
- package/dist/src/claude_invoker.d.ts +79 -2
- package/dist/src/claude_invoker.js +377 -36
- package/dist/src/claude_invoker.js.map +1 -1
- package/dist/src/cli.d.ts +1 -1
- package/dist/src/cli.js +26 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/composition.d.ts +11 -0
- package/dist/src/composition.js +3 -1
- package/dist/src/composition.js.map +1 -1
- package/dist/src/genome_schema.d.ts +301 -10
- package/dist/src/genome_schema.js +228 -7
- package/dist/src/genome_schema.js.map +1 -1
- package/dist/src/genome_store.d.ts +16 -1
- package/dist/src/genome_store.js +68 -0
- package/dist/src/genome_store.js.map +1 -1
- package/dist/src/gig_tracker.js +4 -0
- package/dist/src/gig_tracker.js.map +1 -1
- package/dist/src/hosted_tools.js +19 -0
- package/dist/src/hosted_tools.js.map +1 -1
- package/dist/src/institution_enforcement.d.ts +68 -0
- package/dist/src/institution_enforcement.js +417 -0
- package/dist/src/institution_enforcement.js.map +1 -0
- package/dist/src/institution_loader.d.ts +43 -0
- package/dist/src/institution_loader.js +157 -0
- package/dist/src/institution_loader.js.map +1 -0
- package/dist/src/loader.d.ts +3 -1
- package/dist/src/loader.js +12 -1
- package/dist/src/loader.js.map +1 -1
- package/dist/src/mcp.js +8 -1
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/runtime.d.ts +66 -0
- package/dist/src/runtime.js +202 -2
- package/dist/src/runtime.js.map +1 -1
- package/dist/src/server.d.ts +7 -0
- package/dist/src/server.js +90 -1
- package/dist/src/server.js.map +1 -1
- package/dist/src/venue_realize.d.ts +90 -0
- package/dist/src/venue_realize.js +129 -0
- package/dist/src/venue_realize.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/worker.d.ts +45 -3
- package/dist/src/worker.js +67 -2
- package/dist/src/worker.js.map +1 -1
- package/domain_types/change-request.json +2 -1
- package/domain_types/class-sweep.json +34 -0
- package/domain_types/defect-class.json +25 -0
- package/domain_types/defect-location.json +28 -0
- package/domain_types/defect-report.json +28 -0
- package/domain_types/fix-spec.json +28 -0
- package/domain_types/fix-verification.json +28 -0
- package/domain_types/grounding-dossier.json +95 -0
- package/domain_types/pull-request.json +43 -0
- package/domain_types/red-spec.json +76 -0
- package/domain_types/reproduction.json +28 -0
- package/domain_types/root-cause.json +28 -0
- package/domain_types/subsystem-contract.json +106 -0
- package/institutions/coltrane.json +166 -0
- package/institutions/quartet.json +143 -26
- package/package.json +2 -1
- package/standards/defect-investigation-v1.json +156 -0
- package/standards/software-change-pr-v1.json +151 -0
- package/standards/spec-drafting-v1.json +125 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gig_tracker.js","sourceRoot":"","sources":["../../src/gig_tracker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gig_tracker.js","sourceRoot":"","sources":["../../src/gig_tracker.ts"],"names":[],"mappings":"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"}
|
package/dist/src/hosted_tools.js
CHANGED
|
@@ -160,6 +160,25 @@ export const HOSTED_TOOLS = [
|
|
|
160
160
|
return out.isError ? out : ok({ gig_id: JSON.parse(out.text), status: "queued" });
|
|
161
161
|
},
|
|
162
162
|
},
|
|
163
|
+
{
|
|
164
|
+
name: "cancel_gig",
|
|
165
|
+
title: "Cancel a queued gig",
|
|
166
|
+
description: "Cancel one QUEUED run before a drain worker claims it, so no worker ever runs it. Only a queued gig can be cancelled — a running gig is stopped with gig_abort, and the store refuses a claimed/running/terminal row. Members cancel as themselves; agent tokens are scoped to their org.",
|
|
167
|
+
paramsJsonSchema: {
|
|
168
|
+
type: "object",
|
|
169
|
+
properties: { gig_id: { type: "string" } },
|
|
170
|
+
required: ["gig_id"],
|
|
171
|
+
},
|
|
172
|
+
async handler(args, ctx) {
|
|
173
|
+
const gig = String(args["gig_id"] ?? "");
|
|
174
|
+
if (isAgentBearer(ctx.bearer)) {
|
|
175
|
+
const out = await rpc(ctx, "coltrane_mcp_gig_cancel", { p_bearer: ctx.bearer, p_gig: gig }, false);
|
|
176
|
+
return out.isError ? out : ok({ gig_id: JSON.parse(out.text), status: "cancelled" });
|
|
177
|
+
}
|
|
178
|
+
const out = await rpc(ctx, "coltrane_gig_cancel", { p_gig: gig }, true);
|
|
179
|
+
return out.isError ? out : ok({ gig_id: JSON.parse(out.text), status: "cancelled" });
|
|
180
|
+
},
|
|
181
|
+
},
|
|
163
182
|
];
|
|
164
183
|
export function hostedToolByName(name) {
|
|
165
184
|
const tool = HOSTED_TOOLS.find((t) => t.name === name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted_tools.js","sourceRoot":"","sources":["../../src/hosted_tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hosted_tools.js","sourceRoot":"","sources":["../../src/hosted_tools.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,yFAAyF;AACzF,wFAAwF;AACxF,2FAA2F;AAC3F,yFAAyF;AACzF,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,4FAA4F;AAC5F,gEAAgE;AAChE,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,wFAAwF;AACxF,uFAAuF;AACvF,yFAAyF;AACzF,wFAAwF;AACxF,kFAAkF;AAClF,EAAE;AACF,8CAA8C;AAC9C,uFAAuF;AACvF,oFAAoF;AACpF,0FAA0F;AAC1F,iEAAiE;AA0BjE,MAAM,aAAa,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,EAAE,GAAG,CAAC,IAAa,EAAoB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjF,MAAM,GAAG,GAAG,CAAC,OAAe,EAAoB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtF,KAAK,UAAU,GAAG,CAAC,GAAsB,EAAE,EAAU,EAAE,IAA6B,EAAE,QAAiB;IACrG,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,gBAAgB,EAAE,EAAE,EAAE;QAC1D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,yFAAyF;YACzF,yFAAyF;YACzF,oCAAoC;YACpC,aAAa,EAAE,UAAU,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;YAC9D,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyB,CAAC;YACxD,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,CAAC,IAAI,IAAI,eAAe,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAsB,EAAE,YAAoB;IACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,YAAY,YAAY,EAAE,EAAE;QAChE,OAAO,EAAE;YACP,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,aAAa,EAAE,UAAU,GAAG,CAAC,MAAM,EAAE;YACrC,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC,IAAI,IAAI,eAAe,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC;QACE,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,yEAAyE;QACtF,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACpD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;YACtB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,EAAE,wBAAwB,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1G,OAAO,OAAO,CAAC,GAAG,EAAE,qFAAqF,CAAC,CAAC;QAC7G,CAAC;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,WAAW,EACT,gIAAgI;QAClI,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE;gBAClF,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;SACF;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC,2EAA2E,CAAC,CAAC;YACvH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,OAAO,OAAO,CACZ,GAAG,EACH,iJAAiJ,KAAK,GAAG,MAAM,EAAE,CAClK,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,iEAAiE;QAC9E,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC1C,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,EAAE,yBAAyB,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACvH,OAAO,OAAO,CACZ,GAAG,EACH,uIAAuI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CACjK,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,0EAA0E;QACvF,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC1C,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,EAAE,0BAA0B,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YACxH,OAAO,OAAO,CACZ,GAAG,EACH,4GAA4G,kBAAkB,CAAC,GAAG,CAAC,mBAAmB,CACvJ,CAAC;QACJ,CAAC;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,iGAAiG;QAC9G,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACpD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;YACtB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAChH,OAAO,OAAO,CAAC,GAAG,EAAE,4EAA4E,CAAC,CAAC;QACpG,CAAC;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,4LAA4L;QAC9L,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;gBAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sEAAsE,EAAE;aAClH;YACD,QAAQ,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC;SAC7C;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,MAAM,GAAG,CACnB,GAAG,EACH,uBAAuB,EACvB,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAC/G,KAAK,CACN,CAAC;gBACF,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,GAAG,CACnB,GAAG,EACH,uBAAuB,EACvB,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,EAC/H,IAAI,CACL,CAAC;YACF,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpF,CAAC;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,2RAA2R;QAC7R,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC1C,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,yBAAyB,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;gBACnG,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACvF,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,qBAAqB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YACxE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QACvF,CAAC;KACF;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The closed verdict algebra — a strict superset of refuse/permit, grounded in XACML 3.0's
|
|
3
|
+
* four-valued decision model:
|
|
4
|
+
* - PERMIT the action is allowed (an allow atom, or a satisfied obligation).
|
|
5
|
+
* - DENY the action is refused (a deny atom, or a breached obligation — the or_else fires).
|
|
6
|
+
* - NOT_APPLICABLE the law does not govern this action (the guard of `(=> P Q)` is false).
|
|
7
|
+
* - UNDECIDED well-formed, but the fact-only evaluator cannot reduce it (e.g. an operator
|
|
8
|
+
* that needs a genome/collection/timestamp context not supplied). Never coerced
|
|
9
|
+
* to PERMIT or DENY.
|
|
10
|
+
* - DEAD_NAME a name declared in `check.inputs` is absent from the fact record. Fails closed,
|
|
11
|
+
* the exact analogue of an unresolvable tool grant (runtime.ts's
|
|
12
|
+
* resolveAgentGrants().unknown). Never PERMIT, never a DENY dressed as a decision.
|
|
13
|
+
*
|
|
14
|
+
* PERMIT/DENY/UNDECIDED is a deliberate strict subset of the edit-automata TERMINATE/SUPPRESS/INSERT
|
|
15
|
+
* taxonomy (Ligatti, Bauer & Walker 2005): SUPPRESS and INSERT are a named future gap, extendable
|
|
16
|
+
* behind this same interface.
|
|
17
|
+
*/
|
|
18
|
+
export type Verdict = "PERMIT" | "DENY" | "NOT_APPLICABLE" | "UNDECIDED" | "DEAD_NAME";
|
|
19
|
+
/** The five closed verdict values as data — for codomain-closure and exhaustiveness assertions. */
|
|
20
|
+
export declare const VERDICTS: readonly Verdict[];
|
|
21
|
+
/** The InstitutionalLawCheckSchema shape the evaluator consumes: a predicate + its typed inputs. */
|
|
22
|
+
export interface LawCheck {
|
|
23
|
+
predicate: string;
|
|
24
|
+
inputs: Record<string, string>;
|
|
25
|
+
}
|
|
26
|
+
/** A supplied fact record: each declared input name → its supplied value. */
|
|
27
|
+
export type FactRecord = Record<string, unknown>;
|
|
28
|
+
/**
|
|
29
|
+
* Evaluate a law's `check` against a supplied fact record and return exactly one Verdict.
|
|
30
|
+
*
|
|
31
|
+
* The interface is the fixed seam: an SMT/solver backend (SMT-LIB2 is itself s-expression
|
|
32
|
+
* many-sorted first-order logic) is reachable later behind this identical signature without
|
|
33
|
+
* changing any caller — solve-vs-evaluate stays inside the box, provided the in-house evaluator
|
|
34
|
+
* keeps "cannot decide" explicit (UNDECIDED) rather than defaulting.
|
|
35
|
+
*
|
|
36
|
+
* Total: it never throws. A declared input the fact record does not supply is DEAD_NAME (fail
|
|
37
|
+
* closed); an unparseable or irreducible predicate is UNDECIDED; neither is ever a PERMIT or DENY.
|
|
38
|
+
*/
|
|
39
|
+
export declare function evaluate(check: LawCheck, facts: FactRecord): Verdict;
|
|
40
|
+
/** One reason a document is inadmissible: which law or obligation, and why. */
|
|
41
|
+
export interface AdmissibilityOffender {
|
|
42
|
+
kind: "law" | "obligation";
|
|
43
|
+
/** A locator for the offending element (law aim / chair role + obligation aim). */
|
|
44
|
+
ref: string;
|
|
45
|
+
reason: string;
|
|
46
|
+
}
|
|
47
|
+
/** Collect-all / refuse-once: admitted, or the FULL list of offenders in a single result. */
|
|
48
|
+
export interface AdmissibilityResult {
|
|
49
|
+
admitted: boolean;
|
|
50
|
+
offenders: AdmissibilityOffender[];
|
|
51
|
+
}
|
|
52
|
+
/** The institution document admissibility consumes: the institution section plus its chairs. */
|
|
53
|
+
export interface InstitutionDocument {
|
|
54
|
+
institution: unknown;
|
|
55
|
+
chairs?: readonly unknown[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Refuse an institution document that claims more enforcement than it has. Per law: the predicate
|
|
59
|
+
* parses; every free variable is declared in `check.inputs` and every declared input is referenced;
|
|
60
|
+
* every operator is implemented; `or_else` is non-empty. Per chair obligation: it is verified OR
|
|
61
|
+
* explicitly marked declared-tier — an unmarked unverified obligation is refused, so silence cannot
|
|
62
|
+
* pass a norm off as a rule. Collects every offender and refuses once (collect-all / refuse-once,
|
|
63
|
+
* mirroring runtime.ts's PreflightDispatchError sweep).
|
|
64
|
+
*
|
|
65
|
+
* This is an explicitly-invoked pure function; it is deliberately NOT wired into loadGenome, so
|
|
66
|
+
* quartet.json (unmarked obligations, non-fact-decidable operators) still loads unchanged.
|
|
67
|
+
*/
|
|
68
|
+
export declare function checkInstitutionAdmissibility(doc: InstitutionDocument): AdmissibilityResult;
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
// Institutional-law ENFORCEMENT — the seam that makes Coltrane's own laws machine-checkable
|
|
2
|
+
// at the moment of action, rather than prose that sounds binding.
|
|
3
|
+
//
|
|
4
|
+
// Coltrane's public position is that an institutional law is decidable when an action is
|
|
5
|
+
// attempted. Today institutions/coltrane.json ships three ADICO laws whose `check.predicate`
|
|
6
|
+
// is a real s-expression that NOTHING evaluates, and composeStandard verifies chair caps at
|
|
7
|
+
// dispatch while verifying no chair obligation at all. This module is the repair: a
|
|
8
|
+
// zero-dependency in-house s-expression evaluator with a fixed verdict codomain, and an
|
|
9
|
+
// admissibility check that refuses an institution document claiming more enforcement than it
|
|
10
|
+
// has.
|
|
11
|
+
//
|
|
12
|
+
// GREEN STATUS. The signatures below and the `Verdict` codomain are the fixed seam authored by
|
|
13
|
+
// the red spec; this change fills the bodies WITHOUT touching either. The evaluator is a total
|
|
14
|
+
// four-plus-valued reducer over a supplied fact record; admissibility is a separate, explicitly
|
|
15
|
+
// invoked pure function. Neither is wired into loadGenome — a universal gate would refuse
|
|
16
|
+
// quartet.json (unmarked obligations, non-fact-decidable operators) and break "loads unchanged".
|
|
17
|
+
// See docs/specs/coltrane-enforces-its-laws.md.
|
|
18
|
+
/** The five closed verdict values as data — for codomain-closure and exhaustiveness assertions. */
|
|
19
|
+
export const VERDICTS = [
|
|
20
|
+
"PERMIT",
|
|
21
|
+
"DENY",
|
|
22
|
+
"NOT_APPLICABLE",
|
|
23
|
+
"UNDECIDED",
|
|
24
|
+
"DEAD_NAME",
|
|
25
|
+
];
|
|
26
|
+
// ── An in-house, zero-dependency s-expression reader ──────────────────────────────────────────
|
|
27
|
+
// SMT-LIB2 is itself s-expression many-sorted first-order logic, so a Z3 backend later sits behind
|
|
28
|
+
// the SAME `evaluate()` signature; this reader is the fact-only front half. It is TOTAL over
|
|
29
|
+
// well-formed input and throws only ParseError on malformed input — which `evaluate` catches
|
|
30
|
+
// (runtime never throws) and which admissibility surfaces as a static refusal.
|
|
31
|
+
class ParseError extends Error {
|
|
32
|
+
}
|
|
33
|
+
function isDelimiter(c) {
|
|
34
|
+
return c === "(" || c === ")" || c === '"' || c === " " || c === "\t" || c === "\n" || c === "\r";
|
|
35
|
+
}
|
|
36
|
+
function tokenize(src) {
|
|
37
|
+
const out = [];
|
|
38
|
+
const n = src.length;
|
|
39
|
+
let i = 0;
|
|
40
|
+
while (i < n) {
|
|
41
|
+
const c = src[i];
|
|
42
|
+
if (c === " " || c === "\t" || c === "\n" || c === "\r") {
|
|
43
|
+
i++;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (c === "(") {
|
|
47
|
+
out.push({ t: "(" });
|
|
48
|
+
i++;
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (c === ")") {
|
|
52
|
+
out.push({ t: ")" });
|
|
53
|
+
i++;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (c === '"') {
|
|
57
|
+
let j = i + 1;
|
|
58
|
+
let s = "";
|
|
59
|
+
while (j < n && src[j] !== '"') {
|
|
60
|
+
if (src[j] === "\\" && j + 1 < n) {
|
|
61
|
+
s += src[j + 1];
|
|
62
|
+
j += 2;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
s += src[j];
|
|
66
|
+
j++;
|
|
67
|
+
}
|
|
68
|
+
if (j >= n)
|
|
69
|
+
throw new ParseError("unterminated string literal");
|
|
70
|
+
out.push({ t: "str", v: s });
|
|
71
|
+
i = j + 1;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
let j = i;
|
|
75
|
+
while (j < n && !isDelimiter(src[j]))
|
|
76
|
+
j++;
|
|
77
|
+
out.push({ t: "sym", v: src.slice(i, j) });
|
|
78
|
+
i = j;
|
|
79
|
+
}
|
|
80
|
+
return out;
|
|
81
|
+
}
|
|
82
|
+
function parse(src) {
|
|
83
|
+
const toks = tokenize(src);
|
|
84
|
+
let pos = 0;
|
|
85
|
+
function readExpr() {
|
|
86
|
+
if (pos >= toks.length)
|
|
87
|
+
throw new ParseError("unexpected end of input");
|
|
88
|
+
const tok = toks[pos];
|
|
89
|
+
if (tok.t === "(") {
|
|
90
|
+
pos++;
|
|
91
|
+
const items = [];
|
|
92
|
+
while (pos < toks.length && toks[pos].t !== ")")
|
|
93
|
+
items.push(readExpr());
|
|
94
|
+
if (pos >= toks.length)
|
|
95
|
+
throw new ParseError("unbalanced parenthesis");
|
|
96
|
+
pos++; // consume the ")"
|
|
97
|
+
return { kind: "list", items };
|
|
98
|
+
}
|
|
99
|
+
if (tok.t === ")")
|
|
100
|
+
throw new ParseError("unexpected )");
|
|
101
|
+
pos++;
|
|
102
|
+
return tok.t === "str" ? { kind: "str", value: tok.v } : { kind: "sym", name: tok.v };
|
|
103
|
+
}
|
|
104
|
+
const expr = readExpr();
|
|
105
|
+
if (pos !== toks.length)
|
|
106
|
+
throw new ParseError("trailing tokens after expression");
|
|
107
|
+
return expr;
|
|
108
|
+
}
|
|
109
|
+
// ── The operator table — the UNION across both shipped institutions ───────────────────────────
|
|
110
|
+
// coltrane's fact-decidable core plus quartet's collection/temporal operators. An operator in this
|
|
111
|
+
// set is IMPLEMENTED (it does not trip the admissibility "unimplemented operator" refusal); one
|
|
112
|
+
// outside it is an unimplemented operator — an admissibility refusal statically, and UNDECIDED at
|
|
113
|
+
// runtime. Some KNOWN operators (subseteq/forall/resolvable/…) still cannot be reduced from facts
|
|
114
|
+
// alone, so they too return UNDECIDED at runtime — that is an honest non-decision, not an unknown.
|
|
115
|
+
const KNOWN_OPERATORS = new Set([
|
|
116
|
+
"=>",
|
|
117
|
+
"and",
|
|
118
|
+
"or",
|
|
119
|
+
"not",
|
|
120
|
+
"=",
|
|
121
|
+
"is-agent",
|
|
122
|
+
"human-governor",
|
|
123
|
+
"require",
|
|
124
|
+
"allow",
|
|
125
|
+
"deny",
|
|
126
|
+
"subseteq",
|
|
127
|
+
"forall",
|
|
128
|
+
"resolvable",
|
|
129
|
+
"nonempty",
|
|
130
|
+
"declared_before",
|
|
131
|
+
"has",
|
|
132
|
+
"backed_by_contract",
|
|
133
|
+
]);
|
|
134
|
+
/** `allow` / `deny` are verdict ATOMS, not variables — excluded when collecting free variables. */
|
|
135
|
+
const VERDICT_ATOMS = new Set(["allow", "deny"]);
|
|
136
|
+
function resolveOperand(node, facts) {
|
|
137
|
+
if (node.kind === "str")
|
|
138
|
+
return { ok: true, value: node.value };
|
|
139
|
+
if (node.kind === "sym")
|
|
140
|
+
return { ok: true, value: facts[node.name] };
|
|
141
|
+
return { ok: false };
|
|
142
|
+
}
|
|
143
|
+
function asBool(node, facts) {
|
|
144
|
+
if (node.kind !== "list" || node.items.length === 0)
|
|
145
|
+
return "U";
|
|
146
|
+
const head = node.items[0];
|
|
147
|
+
if (head.kind !== "sym")
|
|
148
|
+
return "U";
|
|
149
|
+
const args = node.items.slice(1);
|
|
150
|
+
switch (head.name) {
|
|
151
|
+
case "and": {
|
|
152
|
+
let seenUndecided = false;
|
|
153
|
+
for (const a of args) {
|
|
154
|
+
const b = asBool(a, facts);
|
|
155
|
+
if (b === false)
|
|
156
|
+
return false;
|
|
157
|
+
if (b === "U")
|
|
158
|
+
seenUndecided = true;
|
|
159
|
+
}
|
|
160
|
+
return seenUndecided ? "U" : true;
|
|
161
|
+
}
|
|
162
|
+
case "or": {
|
|
163
|
+
let seenUndecided = false;
|
|
164
|
+
for (const a of args) {
|
|
165
|
+
const b = asBool(a, facts);
|
|
166
|
+
if (b === true)
|
|
167
|
+
return true;
|
|
168
|
+
if (b === "U")
|
|
169
|
+
seenUndecided = true;
|
|
170
|
+
}
|
|
171
|
+
return seenUndecided ? "U" : false;
|
|
172
|
+
}
|
|
173
|
+
case "not": {
|
|
174
|
+
if (args.length !== 1)
|
|
175
|
+
return "U";
|
|
176
|
+
const b = asBool(args[0], facts);
|
|
177
|
+
return b === "U" ? "U" : !b;
|
|
178
|
+
}
|
|
179
|
+
case "=": {
|
|
180
|
+
if (args.length !== 2)
|
|
181
|
+
return "U";
|
|
182
|
+
const l = resolveOperand(args[0], facts);
|
|
183
|
+
const r = resolveOperand(args[1], facts);
|
|
184
|
+
if (!l.ok || !r.ok)
|
|
185
|
+
return "U";
|
|
186
|
+
return l.value === r.value;
|
|
187
|
+
}
|
|
188
|
+
case "is-agent": {
|
|
189
|
+
if (args.length !== 1)
|
|
190
|
+
return "U";
|
|
191
|
+
const v = resolveOperand(args[0], facts).value;
|
|
192
|
+
return !!v && typeof v === "object" && v.is_agent === true;
|
|
193
|
+
}
|
|
194
|
+
case "human-governor": {
|
|
195
|
+
if (args.length !== 1)
|
|
196
|
+
return "U";
|
|
197
|
+
const v = resolveOperand(args[0], facts).value;
|
|
198
|
+
return !!v && typeof v === "object" && v.human_governor === true;
|
|
199
|
+
}
|
|
200
|
+
default:
|
|
201
|
+
// A KNOWN-but-not-fact-decidable operator (subseteq/forall/resolvable/nonempty/…) or one this
|
|
202
|
+
// evaluator does not implement: it cannot be reduced from the supplied facts. UNDECIDED, never
|
|
203
|
+
// a silent true/false.
|
|
204
|
+
return "U";
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
function asVerdict(node, facts) {
|
|
208
|
+
if (node.kind === "sym") {
|
|
209
|
+
if (node.name === "allow")
|
|
210
|
+
return "PERMIT";
|
|
211
|
+
if (node.name === "deny")
|
|
212
|
+
return "DENY";
|
|
213
|
+
return "UNDECIDED";
|
|
214
|
+
}
|
|
215
|
+
if (node.kind === "str")
|
|
216
|
+
return "UNDECIDED";
|
|
217
|
+
if (node.items.length === 0)
|
|
218
|
+
return "UNDECIDED";
|
|
219
|
+
const head = node.items[0];
|
|
220
|
+
if (head.kind !== "sym")
|
|
221
|
+
return "UNDECIDED";
|
|
222
|
+
const args = node.items.slice(1);
|
|
223
|
+
switch (head.name) {
|
|
224
|
+
case "=>": {
|
|
225
|
+
// The guard/consequent form: P false → the law does not govern this action (NOT_APPLICABLE);
|
|
226
|
+
// P true → reduce the consequent; P undecidable → UNDECIDED (never a decision).
|
|
227
|
+
if (args.length !== 2)
|
|
228
|
+
return "UNDECIDED";
|
|
229
|
+
const p = asBool(args[0], facts);
|
|
230
|
+
if (p === "U")
|
|
231
|
+
return "UNDECIDED";
|
|
232
|
+
if (p === false)
|
|
233
|
+
return "NOT_APPLICABLE";
|
|
234
|
+
return asVerdict(args[1], facts);
|
|
235
|
+
}
|
|
236
|
+
case "require": {
|
|
237
|
+
// An obligation's check: R holds → the obligation is met (PERMIT); R fails → the or_else fires
|
|
238
|
+
// (DENY); R undecidable → UNDECIDED.
|
|
239
|
+
if (args.length !== 1)
|
|
240
|
+
return "UNDECIDED";
|
|
241
|
+
const r = asBool(args[0], facts);
|
|
242
|
+
if (r === "U")
|
|
243
|
+
return "UNDECIDED";
|
|
244
|
+
return r ? "PERMIT" : "DENY";
|
|
245
|
+
}
|
|
246
|
+
case "allow":
|
|
247
|
+
return "PERMIT";
|
|
248
|
+
case "deny":
|
|
249
|
+
return "DENY";
|
|
250
|
+
default:
|
|
251
|
+
// A boolean/collection operator in verdict position, or an unimplemented one: the fact-only
|
|
252
|
+
// evaluator cannot reduce it to a decision.
|
|
253
|
+
return "UNDECIDED";
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Evaluate a law's `check` against a supplied fact record and return exactly one Verdict.
|
|
258
|
+
*
|
|
259
|
+
* The interface is the fixed seam: an SMT/solver backend (SMT-LIB2 is itself s-expression
|
|
260
|
+
* many-sorted first-order logic) is reachable later behind this identical signature without
|
|
261
|
+
* changing any caller — solve-vs-evaluate stays inside the box, provided the in-house evaluator
|
|
262
|
+
* keeps "cannot decide" explicit (UNDECIDED) rather than defaulting.
|
|
263
|
+
*
|
|
264
|
+
* Total: it never throws. A declared input the fact record does not supply is DEAD_NAME (fail
|
|
265
|
+
* closed); an unparseable or irreducible predicate is UNDECIDED; neither is ever a PERMIT or DENY.
|
|
266
|
+
*/
|
|
267
|
+
export function evaluate(check, facts) {
|
|
268
|
+
// Fail closed on a dead name FIRST: a name the law declares in `check.inputs` but the fact record
|
|
269
|
+
// does not supply. The exact analogue of resolveAgentGrants().unknown — a promised name with no
|
|
270
|
+
// backing. Checked before reduction so a missing input never masquerades as a decision.
|
|
271
|
+
const inputs = check.inputs;
|
|
272
|
+
for (const name of Object.keys(inputs)) {
|
|
273
|
+
if (!Object.prototype.hasOwnProperty.call(facts, name))
|
|
274
|
+
return "DEAD_NAME";
|
|
275
|
+
}
|
|
276
|
+
let ast;
|
|
277
|
+
try {
|
|
278
|
+
ast = parse(check.predicate);
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
// A predicate that does not parse cannot be reduced from facts. Runtime never throws and never
|
|
282
|
+
// decides; an unparseable predicate is REFUSED statically by checkInstitutionAdmissibility.
|
|
283
|
+
return "UNDECIDED";
|
|
284
|
+
}
|
|
285
|
+
return asVerdict(ast, facts);
|
|
286
|
+
}
|
|
287
|
+
function asRecord(v) {
|
|
288
|
+
return v !== null && typeof v === "object" ? v : {};
|
|
289
|
+
}
|
|
290
|
+
/** Walk a parsed predicate, partitioning symbols into operators (head position) and free variables
|
|
291
|
+
* (operand position, excluding the verdict atoms allow/deny and string literals). */
|
|
292
|
+
/** Operators that BIND their first argument: `(forall x collection body)` introduces `x` for the
|
|
293
|
+
* body's extent. Without this the binder reads as a free variable, and a well-formed law is
|
|
294
|
+
* refused for referencing an input it was never supposed to declare — which is how the first real
|
|
295
|
+
* run of the admissibility check reported two correct quartet laws as broken. Knowing `forall` as
|
|
296
|
+
* an operator is not the same as knowing it as a binder. */
|
|
297
|
+
const BINDING_OPERATORS = new Set(["forall", "exists"]);
|
|
298
|
+
function collectSymbols(node, vars, ops, isHead, bound = new Set()) {
|
|
299
|
+
if (node.kind === "list") {
|
|
300
|
+
if (node.items.length === 0)
|
|
301
|
+
return;
|
|
302
|
+
const head = node.items[0];
|
|
303
|
+
// A binding form: item[1] is the variable it introduces, in scope for everything after it. The
|
|
304
|
+
// binder itself is never a free variable and never an input the law must declare.
|
|
305
|
+
if (head?.kind === "sym" && BINDING_OPERATORS.has(head.name) && node.items[1]?.kind === "sym") {
|
|
306
|
+
const inner = new Set(bound);
|
|
307
|
+
inner.add(node.items[1].name);
|
|
308
|
+
ops.add(head.name);
|
|
309
|
+
// Skip items[0] (the operator, already recorded) and items[1] (the binder, not a reference).
|
|
310
|
+
for (let i = 2; i < node.items.length; i++)
|
|
311
|
+
collectSymbols(node.items[i], vars, ops, false, inner);
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
for (let i = 0; i < node.items.length; i++)
|
|
315
|
+
collectSymbols(node.items[i], vars, ops, i === 0, bound);
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
if (node.kind === "sym") {
|
|
319
|
+
if (isHead)
|
|
320
|
+
ops.add(node.name);
|
|
321
|
+
// A symbol bound by an enclosing quantifier is a reference to that binding, not a free
|
|
322
|
+
// variable. Everything else still is — the fix must narrow the false positive, not grant
|
|
323
|
+
// amnesty to genuinely undeclared names appearing inside a quantifier body.
|
|
324
|
+
else if (!VERDICT_ATOMS.has(node.name) && !bound.has(node.name))
|
|
325
|
+
vars.add(node.name);
|
|
326
|
+
}
|
|
327
|
+
// string literals are values, not names
|
|
328
|
+
}
|
|
329
|
+
function checkLaw(law, offenders) {
|
|
330
|
+
const l = asRecord(law);
|
|
331
|
+
const ref = typeof l.aim === "string" && l.aim.length > 0 ? l.aim : "(law)";
|
|
332
|
+
const push = (reason) => {
|
|
333
|
+
offenders.push({ kind: "law", ref, reason });
|
|
334
|
+
};
|
|
335
|
+
const check = asRecord(l.check);
|
|
336
|
+
const predicate = check.predicate;
|
|
337
|
+
const inputs = asRecord(check.inputs);
|
|
338
|
+
if (typeof predicate !== "string") {
|
|
339
|
+
push("law has no check.predicate to evaluate");
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
let ast;
|
|
343
|
+
try {
|
|
344
|
+
ast = parse(predicate);
|
|
345
|
+
}
|
|
346
|
+
catch (e) {
|
|
347
|
+
push(`predicate does not parse: ${e instanceof Error ? e.message : String(e)}`);
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
const vars = new Set();
|
|
351
|
+
const ops = new Set();
|
|
352
|
+
collectSymbols(ast, vars, ops, false);
|
|
353
|
+
const declared = new Set(Object.keys(inputs));
|
|
354
|
+
// Var-declaration closure, both directions: every free variable is declared, AND every declared
|
|
355
|
+
// input is referenced (an unused declaration is a typo-mask that overclaims the law's surface).
|
|
356
|
+
for (const v of vars) {
|
|
357
|
+
if (!declared.has(v))
|
|
358
|
+
push(`predicate references undeclared variable "${v}"`);
|
|
359
|
+
}
|
|
360
|
+
for (const d of declared) {
|
|
361
|
+
if (!vars.has(d))
|
|
362
|
+
push(`declared input "${d}" is never referenced by the predicate`);
|
|
363
|
+
}
|
|
364
|
+
// Every operator the predicate names must be implemented; an unknown operator must not pass.
|
|
365
|
+
for (const op of ops) {
|
|
366
|
+
if (!KNOWN_OPERATORS.has(op))
|
|
367
|
+
push(`predicate uses an unimplemented operator "${op}"`);
|
|
368
|
+
}
|
|
369
|
+
// or_else is the ADICO slot that separates a RULE from a norm; the schema's z.string() lets ''
|
|
370
|
+
// through, so admissibility is where an empty consequence-on-breach is caught.
|
|
371
|
+
if (typeof l.or_else !== "string" || l.or_else.trim() === "") {
|
|
372
|
+
push("or_else is empty — a rule needs a stated consequence on breach");
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
function checkChair(chair, offenders) {
|
|
376
|
+
const c = asRecord(chair);
|
|
377
|
+
const role = typeof c.role === "string" ? c.role : "(chair)";
|
|
378
|
+
const obligations = Array.isArray(c.obligations) ? c.obligations : [];
|
|
379
|
+
for (const raw of obligations) {
|
|
380
|
+
const ob = asRecord(raw);
|
|
381
|
+
const aim = typeof ob.aim === "string" ? ob.aim : "(obligation)";
|
|
382
|
+
// Verified OR explicitly marked declared-tier. There is no verifier surface in this genome, so
|
|
383
|
+
// an obligation states its tier: "enforced" claims a verifier backs it, "declared" states it is
|
|
384
|
+
// a norm with no runtime check. An UNMARKED obligation is refused — silence must not pass a norm
|
|
385
|
+
// off as a rule.
|
|
386
|
+
if (ob.tier !== "declared" && ob.tier !== "enforced") {
|
|
387
|
+
offenders.push({
|
|
388
|
+
kind: "obligation",
|
|
389
|
+
ref: `${role} :: ${aim}`,
|
|
390
|
+
reason: "obligation is neither verified nor explicitly marked declared-tier",
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Refuse an institution document that claims more enforcement than it has. Per law: the predicate
|
|
397
|
+
* parses; every free variable is declared in `check.inputs` and every declared input is referenced;
|
|
398
|
+
* every operator is implemented; `or_else` is non-empty. Per chair obligation: it is verified OR
|
|
399
|
+
* explicitly marked declared-tier — an unmarked unverified obligation is refused, so silence cannot
|
|
400
|
+
* pass a norm off as a rule. Collects every offender and refuses once (collect-all / refuse-once,
|
|
401
|
+
* mirroring runtime.ts's PreflightDispatchError sweep).
|
|
402
|
+
*
|
|
403
|
+
* This is an explicitly-invoked pure function; it is deliberately NOT wired into loadGenome, so
|
|
404
|
+
* quartet.json (unmarked obligations, non-fact-decidable operators) still loads unchanged.
|
|
405
|
+
*/
|
|
406
|
+
export function checkInstitutionAdmissibility(doc) {
|
|
407
|
+
const offenders = [];
|
|
408
|
+
const institution = asRecord(doc.institution);
|
|
409
|
+
const laws = Array.isArray(institution.laws) ? institution.laws : [];
|
|
410
|
+
for (const law of laws)
|
|
411
|
+
checkLaw(law, offenders);
|
|
412
|
+
const chairs = Array.isArray(doc.chairs) ? doc.chairs : [];
|
|
413
|
+
for (const chair of chairs)
|
|
414
|
+
checkChair(chair, offenders);
|
|
415
|
+
return { admitted: offenders.length === 0, offenders };
|
|
416
|
+
}
|
|
417
|
+
//# sourceMappingURL=institution_enforcement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"institution_enforcement.js","sourceRoot":"","sources":["../../src/institution_enforcement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { LoadError } from "./loader.js";
|
|
2
|
+
import type { InstitutionOutput, OrganizationOutput, AgentRecordOutput, InstitutionalChairOutput, ChairAssignmentOutput, ForebearOutput, LineageEdgeOutput, NorthstarOutput } from "./genome_schema.js";
|
|
3
|
+
/** The multi-section institution document as it lives on disk (shape per institutions/quartet.json).
|
|
4
|
+
* Each present section is validated LOSS-FREE against its already-authored per-section schema in
|
|
5
|
+
* src/genome_schema.ts; an absent optional section is treated as empty, not as an error. This IS
|
|
6
|
+
* the `definition` a store row carries (see docs spec ITEM 4) — file and store backings share it so
|
|
7
|
+
* they cannot drift. */
|
|
8
|
+
export interface InstitutionDocumentSections {
|
|
9
|
+
institution: InstitutionOutput;
|
|
10
|
+
organizations?: readonly OrganizationOutput[];
|
|
11
|
+
agent_records?: readonly AgentRecordOutput[];
|
|
12
|
+
org_members?: readonly {
|
|
13
|
+
org_slug: string;
|
|
14
|
+
agent_slug: string;
|
|
15
|
+
}[];
|
|
16
|
+
chairs?: readonly InstitutionalChairOutput[];
|
|
17
|
+
assignments?: readonly ChairAssignmentOutput[];
|
|
18
|
+
forebears?: readonly ForebearOutput[];
|
|
19
|
+
lineage_edges?: readonly LineageEdgeOutput[];
|
|
20
|
+
northstars?: readonly NorthstarOutput[];
|
|
21
|
+
}
|
|
22
|
+
/** A validated, ADMITTED institution carried in the loaded genome, keyed by institution slug.
|
|
23
|
+
* Only documents that (a) parse, (b) validate section-by-section, and (c) pass
|
|
24
|
+
* checkInstitutionAdmissibility appear here — an inadmissible one fails closed into a load_error. */
|
|
25
|
+
export interface LoadedInstitution {
|
|
26
|
+
slug: string;
|
|
27
|
+
document: InstitutionDocumentSections;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* SEAM (RED — body throws). Read every institutions/*.json under `root`, validate each present
|
|
31
|
+
* section against its per-section schema, invoke checkInstitutionAdmissibility on the schema-valid
|
|
32
|
+
* document, and return the admitted institutions keyed by slug PLUS one load_error of kind
|
|
33
|
+
* "institution" per file that is malformed, schema-invalid, inadmissible, or a duplicate slug.
|
|
34
|
+
*
|
|
35
|
+
* TOTAL by contract: the GREEN body must never throw for an institution reason — a bad document is
|
|
36
|
+
* a per-file load_error and drops out; the rest of the genome loads. Deliberately NOT wired into
|
|
37
|
+
* loadGenome yet: wiring it (after the agent/standard/org maps exist) is the GREEN change these red
|
|
38
|
+
* tests demand. Until then this throws, so the tree compiles and red is honest.
|
|
39
|
+
*/
|
|
40
|
+
export declare function loadInstitutions(root: string): {
|
|
41
|
+
institutions: Map<string, LoadedInstitution>;
|
|
42
|
+
load_errors: LoadError[];
|
|
43
|
+
};
|