@agentplat/inference-control 0.3.0-beta.2 → 0.3.0-beta.3
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/README.md +360 -0
- package/dist/anytime-semantic-guarantees.d.ts +216 -0
- package/dist/anytime-semantic-guarantees.d.ts.map +1 -0
- package/dist/anytime-semantic-guarantees.js +817 -0
- package/dist/anytime-semantic-guarantees.js.map +1 -0
- package/dist/assessor-ensemble-contracts.d.ts +145 -0
- package/dist/assessor-ensemble-contracts.d.ts.map +1 -0
- package/dist/assessor-ensemble-contracts.js +29 -0
- package/dist/assessor-ensemble-contracts.js.map +1 -0
- package/dist/assessor-ensemble-runtime.d.ts +55 -0
- package/dist/assessor-ensemble-runtime.d.ts.map +1 -0
- package/dist/assessor-ensemble-runtime.js +308 -0
- package/dist/assessor-ensemble-runtime.js.map +1 -0
- package/dist/assessor-ensemble-validation.d.ts +12 -0
- package/dist/assessor-ensemble-validation.d.ts.map +1 -0
- package/dist/assessor-ensemble-validation.js +156 -0
- package/dist/assessor-ensemble-validation.js.map +1 -0
- package/dist/assessor-ensemble.d.ts +4 -0
- package/dist/assessor-ensemble.d.ts.map +1 -0
- package/dist/assessor-ensemble.js +4 -0
- package/dist/assessor-ensemble.js.map +1 -0
- package/dist/cognitive-adapters.d.ts +92 -0
- package/dist/cognitive-adapters.d.ts.map +1 -0
- package/dist/cognitive-adapters.js +263 -0
- package/dist/cognitive-adapters.js.map +1 -0
- package/dist/context-integrity-analyzers.d.ts +35 -0
- package/dist/context-integrity-analyzers.d.ts.map +1 -0
- package/dist/context-integrity-analyzers.js +387 -0
- package/dist/context-integrity-analyzers.js.map +1 -0
- package/dist/context-integrity-contracts.d.ts +304 -0
- package/dist/context-integrity-contracts.d.ts.map +1 -0
- package/dist/context-integrity-contracts.js +24 -0
- package/dist/context-integrity-contracts.js.map +1 -0
- package/dist/context-integrity-model.d.ts +25 -0
- package/dist/context-integrity-model.d.ts.map +1 -0
- package/dist/context-integrity-model.js +192 -0
- package/dist/context-integrity-model.js.map +1 -0
- package/dist/context-integrity-portable-agent.d.ts +79 -0
- package/dist/context-integrity-portable-agent.d.ts.map +1 -0
- package/dist/context-integrity-portable-agent.js +511 -0
- package/dist/context-integrity-portable-agent.js.map +1 -0
- package/dist/context-integrity-role-alignment.d.ts +28 -0
- package/dist/context-integrity-role-alignment.d.ts.map +1 -0
- package/dist/context-integrity-role-alignment.js +95 -0
- package/dist/context-integrity-role-alignment.js.map +1 -0
- package/dist/context-integrity-runtime.d.ts +95 -0
- package/dist/context-integrity-runtime.d.ts.map +1 -0
- package/dist/context-integrity-runtime.js +1512 -0
- package/dist/context-integrity-runtime.js.map +1 -0
- package/dist/context-integrity.d.ts +5 -0
- package/dist/context-integrity.d.ts.map +1 -0
- package/dist/context-integrity.js +5 -0
- package/dist/context-integrity.js.map +1 -0
- package/dist/governed-role-evolution.d.ts +172 -0
- package/dist/governed-role-evolution.d.ts.map +1 -0
- package/dist/governed-role-evolution.js +613 -0
- package/dist/governed-role-evolution.js.map +1 -0
- package/dist/heterogeneous-agent-composition.d.ts +96 -0
- package/dist/heterogeneous-agent-composition.d.ts.map +1 -0
- package/dist/heterogeneous-agent-composition.js +512 -0
- package/dist/heterogeneous-agent-composition.js.map +1 -0
- package/dist/index.d.ts +21 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -13
- package/dist/index.js.map +1 -1
- package/dist/intervention-adapters.d.ts +29 -0
- package/dist/intervention-adapters.d.ts.map +1 -0
- package/dist/intervention-adapters.js +107 -0
- package/dist/intervention-adapters.js.map +1 -0
- package/dist/intervention-contracts.d.ts +311 -0
- package/dist/intervention-contracts.d.ts.map +1 -0
- package/dist/intervention-contracts.js +28 -0
- package/dist/intervention-contracts.js.map +1 -0
- package/dist/intervention-runtime.d.ts +86 -0
- package/dist/intervention-runtime.d.ts.map +1 -0
- package/dist/intervention-runtime.js +958 -0
- package/dist/intervention-runtime.js.map +1 -0
- package/dist/intervention-validation.d.ts +27 -0
- package/dist/intervention-validation.d.ts.map +1 -0
- package/dist/intervention-validation.js +273 -0
- package/dist/intervention-validation.js.map +1 -0
- package/dist/intervention.d.ts +6 -0
- package/dist/intervention.d.ts.map +1 -0
- package/dist/intervention.js +6 -0
- package/dist/intervention.js.map +1 -0
- package/dist/model.d.ts +18 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +60 -2
- package/dist/model.js.map +1 -1
- package/dist/operational-cognitive-control.d.ts +208 -0
- package/dist/operational-cognitive-control.d.ts.map +1 -0
- package/dist/operational-cognitive-control.js +590 -0
- package/dist/operational-cognitive-control.js.map +1 -0
- package/dist/portable-agent.d.ts +50 -0
- package/dist/portable-agent.d.ts.map +1 -0
- package/dist/portable-agent.js +243 -0
- package/dist/portable-agent.js.map +1 -0
- package/dist/reference-controllers.d.ts +121 -0
- package/dist/reference-controllers.d.ts.map +1 -0
- package/dist/reference-controllers.js +411 -0
- package/dist/reference-controllers.js.map +1 -0
- package/dist/role-alignment-portable-agent.d.ts +145 -0
- package/dist/role-alignment-portable-agent.d.ts.map +1 -0
- package/dist/role-alignment-portable-agent.js +484 -0
- package/dist/role-alignment-portable-agent.js.map +1 -0
- package/dist/role-alignment.d.ts +226 -0
- package/dist/role-alignment.d.ts.map +1 -0
- package/dist/role-alignment.js +1074 -0
- package/dist/role-alignment.js.map +1 -0
- package/dist/role-realignment-portable-agent.d.ts +163 -0
- package/dist/role-realignment-portable-agent.d.ts.map +1 -0
- package/dist/role-realignment-portable-agent.js +634 -0
- package/dist/role-realignment-portable-agent.js.map +1 -0
- package/dist/role-realignment.d.ts +368 -0
- package/dist/role-realignment.d.ts.map +1 -0
- package/dist/role-realignment.js +1609 -0
- package/dist/role-realignment.js.map +1 -0
- package/dist/semantic-alignment-assessors.d.ts +12 -0
- package/dist/semantic-alignment-assessors.d.ts.map +1 -0
- package/dist/semantic-alignment-assessors.js +55 -0
- package/dist/semantic-alignment-assessors.js.map +1 -0
- package/dist/semantic-alignment-contracts.d.ts +385 -0
- package/dist/semantic-alignment-contracts.d.ts.map +1 -0
- package/dist/semantic-alignment-contracts.js +16 -0
- package/dist/semantic-alignment-contracts.js.map +1 -0
- package/dist/semantic-alignment-memory.d.ts +53 -0
- package/dist/semantic-alignment-memory.d.ts.map +1 -0
- package/dist/semantic-alignment-memory.js +170 -0
- package/dist/semantic-alignment-memory.js.map +1 -0
- package/dist/semantic-alignment-runtime.d.ts +67 -0
- package/dist/semantic-alignment-runtime.d.ts.map +1 -0
- package/dist/semantic-alignment-runtime.js +778 -0
- package/dist/semantic-alignment-runtime.js.map +1 -0
- package/dist/semantic-alignment-validation.d.ts +31 -0
- package/dist/semantic-alignment-validation.d.ts.map +1 -0
- package/dist/semantic-alignment-validation.js +477 -0
- package/dist/semantic-alignment-validation.js.map +1 -0
- package/dist/semantic-alignment.d.ts +8 -0
- package/dist/semantic-alignment.d.ts.map +1 -0
- package/dist/semantic-alignment.js +8 -0
- package/dist/semantic-alignment.js.map +1 -0
- package/dist/semantic-horizon-budget.d.ts +118 -0
- package/dist/semantic-horizon-budget.d.ts.map +1 -0
- package/dist/semantic-horizon-budget.js +536 -0
- package/dist/semantic-horizon-budget.js.map +1 -0
- package/dist/semantic-metric-engine.d.ts +96 -0
- package/dist/semantic-metric-engine.d.ts.map +1 -0
- package/dist/semantic-metric-engine.js +396 -0
- package/dist/semantic-metric-engine.js.map +1 -0
- package/package.json +79 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-alignment-runtime.js","sourceRoot":"","sources":["../src/semantic-alignment-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { JsonValue } from "@agentplat/core";
|
|
2
|
+
import { type SemanticAggregateAssessmentV1, type SemanticActionAuthorizationClaimsV1, type SemanticActionAuthorizationV1, type SemanticActionEffectReceiptV1, type SemanticAssessorAssessmentV1, type SemanticAssessorBasisV1, type SemanticAssessorDescriptorV1, type SemanticConstraintViolationV1, type SemanticControlBindingV1, type SemanticControlDecisionV1, type SemanticControlDimensionV1, type SemanticControlDispositionV1, type SemanticControlPolicyV1, type SemanticControlRequestV1, type SemanticMetricVectorV1 } from "./semantic-alignment-contracts.js";
|
|
3
|
+
export declare function digestSemanticControlV1(domain: "policy" | "binding" | "descriptor" | "request" | "assessor-assessment" | "aggregate-assessment" | "decision" | "state" | "assessor-set" | "route" | "operation-payload" | "action-authorization-claims" | "action-authorization" | "action-effect-receipt", value: JsonValue): string;
|
|
4
|
+
export declare function createSemanticControlPolicyV1(input: Omit<SemanticControlPolicyV1, "policyDigest">): SemanticControlPolicyV1;
|
|
5
|
+
export declare function validateSemanticControlPolicyV1(input: SemanticControlPolicyV1): SemanticControlPolicyV1;
|
|
6
|
+
export declare function createSemanticControlBindingV1(input: Omit<SemanticControlBindingV1, "bindingDigest">): SemanticControlBindingV1;
|
|
7
|
+
export declare function validateSemanticControlBindingV1(input: SemanticControlBindingV1): SemanticControlBindingV1;
|
|
8
|
+
export declare function createSemanticAssessorDescriptorV1(input: Omit<SemanticAssessorDescriptorV1, "descriptorDigest">): SemanticAssessorDescriptorV1;
|
|
9
|
+
export declare function validateSemanticAssessorDescriptorV1(input: SemanticAssessorDescriptorV1): SemanticAssessorDescriptorV1;
|
|
10
|
+
export declare function createSemanticControlRequestV1(input: Omit<SemanticControlRequestV1, "requestDigest">): SemanticControlRequestV1;
|
|
11
|
+
export declare function digestSemanticOperationPayloadV1(payload: string, maximumBytes?: number): string;
|
|
12
|
+
export declare function createSemanticActionAuthorizationClaimsV1(input: Omit<SemanticActionAuthorizationClaimsV1, "claimsDigest">): SemanticActionAuthorizationClaimsV1;
|
|
13
|
+
export declare function validateSemanticActionAuthorizationClaimsV1(input: SemanticActionAuthorizationClaimsV1): SemanticActionAuthorizationClaimsV1;
|
|
14
|
+
export declare function validateSemanticActionAuthorizationV1(input: SemanticActionAuthorizationV1, expected?: {
|
|
15
|
+
readonly issuerId: string;
|
|
16
|
+
readonly issuerKeyDigest: string;
|
|
17
|
+
}): SemanticActionAuthorizationV1;
|
|
18
|
+
export declare function createSemanticActionEffectReceiptV1(input: Omit<SemanticActionEffectReceiptV1, "receiptDigest">): SemanticActionEffectReceiptV1;
|
|
19
|
+
export declare function validateSemanticActionEffectReceiptV1(input: SemanticActionEffectReceiptV1): SemanticActionEffectReceiptV1;
|
|
20
|
+
export declare function validateSemanticControlRequestV1(input: SemanticControlRequestV1): SemanticControlRequestV1;
|
|
21
|
+
export declare function createSemanticAssessorAssessmentV1(input: Omit<SemanticAssessorAssessmentV1, "assessmentDigest">): SemanticAssessorAssessmentV1;
|
|
22
|
+
export declare function validateSemanticAssessorAssessmentV1(input: SemanticAssessorAssessmentV1, descriptor: SemanticAssessorDescriptorV1, request: SemanticControlRequestV1, policy: SemanticControlPolicyV1): SemanticAssessorAssessmentV1;
|
|
23
|
+
export declare function createSemanticAggregateAssessmentV1(input: Omit<SemanticAggregateAssessmentV1, "assessmentDigest">): SemanticAggregateAssessmentV1;
|
|
24
|
+
export declare function validateSemanticAggregateAssessmentV1(input: SemanticAggregateAssessmentV1): SemanticAggregateAssessmentV1;
|
|
25
|
+
export declare function validateSemanticControlDecisionV1(input: SemanticControlDecisionV1): SemanticControlDecisionV1;
|
|
26
|
+
export declare function metricEntries(metrics: SemanticMetricVectorV1): readonly (readonly [SemanticControlDimensionV1, number | null])[];
|
|
27
|
+
export declare function dimensionMetricKey(dimension: SemanticControlDimensionV1): keyof SemanticMetricVectorV1;
|
|
28
|
+
export declare function semanticAssessorBasisV1(value: SemanticAssessorBasisV1): SemanticAssessorBasisV1;
|
|
29
|
+
export declare function semanticDispositionV1(value: SemanticControlDispositionV1): SemanticControlDispositionV1;
|
|
30
|
+
export declare function semanticViolationV1(value: SemanticConstraintViolationV1): SemanticConstraintViolationV1;
|
|
31
|
+
//# sourceMappingURL=semantic-alignment-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-alignment-validation.d.ts","sourceRoot":"","sources":["../src/semantic-alignment-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAGL,KAAK,6BAA6B,EAClC,KAAK,mCAAmC,EACxC,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC5B,MAAM,mCAAmC,CAAC;AAmC3C,wBAAgB,uBAAuB,CACrC,MAAM,EACF,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,SAAS,GACT,qBAAqB,GACrB,sBAAsB,GACtB,UAAU,GACV,OAAO,GACP,cAAc,GACd,OAAO,GACP,mBAAmB,GACnB,6BAA6B,GAC7B,sBAAsB,GACtB,uBAAuB,EAC3B,KAAK,EAAE,SAAS,GACf,MAAM,CAMR;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC,GACnD,uBAAuB,CAgDzB;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,uBAAuB,GAAG,uBAAuB,CAMvG;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,IAAI,CAAC,wBAAwB,EAAE,eAAe,CAAC,GACrD,wBAAwB,CAY1B;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,CAM1G;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,IAAI,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,GAC5D,4BAA4B,CAqB9B;AAED,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,4BAA4B,GAAG,4BAA4B,CAMtH;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,IAAI,CAAC,wBAAwB,EAAE,eAAe,CAAC,GACrD,wBAAwB,CAoD1B;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAQR;AAED,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,IAAI,CAAC,mCAAmC,EAAE,cAAc,CAAC,GAC/D,mCAAmC,CA2BrC;AAED,wBAAgB,2CAA2C,CACzD,KAAK,EAAE,mCAAmC,GACzC,mCAAmC,CAOrC;AAED,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,6BAA6B,EACpC,QAAQ,CAAC,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GACzE,6BAA6B,CAa/B;AAED,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,IAAI,CAAC,6BAA6B,EAAE,eAAe,CAAC,GAC1D,6BAA6B,CAiB/B;AAED,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,6BAA6B,GACnC,6BAA6B,CAO/B;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,CAM1G;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,IAAI,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,GAC5D,4BAA4B,CAoB9B;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,4BAA4B,EACnC,UAAU,EAAE,4BAA4B,EACxC,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,uBAAuB,GAC9B,4BAA4B,CAkB9B;AAED,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,IAAI,CAAC,6BAA6B,EAAE,kBAAkB,CAAC,GAC7D,6BAA6B,CAY/B;AAED,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,6BAA6B,GACnC,6BAA6B,CAO/B;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,yBAAyB,GAC/B,yBAAyB,CAoC3B;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,CAAC,SAAS,CAAC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,CAShI;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,0BAA0B,GAAG,MAAM,sBAAsB,CAStG;AAqDD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,uBAAuB,GAAG,uBAAuB,CAG/F;AACD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,4BAA4B,GAAG,4BAA4B,CAGvG;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,6BAA6B,GAAG,6BAA6B,CAGvG"}
|
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
import { canonicalizeControlJsonV1 } from "./canonical.js";
|
|
2
|
+
import { SEMANTIC_CONTROL_CHECKPOINTS_V1, SEMANTIC_CONTROL_DIMENSIONS_V1, } from "./semantic-alignment-contracts.js";
|
|
3
|
+
import { sha256Hex } from "./sha256.js";
|
|
4
|
+
import { assertDigest, assertExactKeys, assertIdentifier, assertOneOf, assertSafeInteger, assertString, deepFreeze, } from "./validation.js";
|
|
5
|
+
const encoder = new TextEncoder();
|
|
6
|
+
const dispositions = ["allow", "steer", "block", "abstain"];
|
|
7
|
+
const bases = [
|
|
8
|
+
"application_semantic_model",
|
|
9
|
+
"provider_semantic_model",
|
|
10
|
+
"representation_model",
|
|
11
|
+
"structured_policy",
|
|
12
|
+
"reference_digest_heuristic",
|
|
13
|
+
];
|
|
14
|
+
const violations = ["role_constraint", "mission_constraint"];
|
|
15
|
+
const modalities = ["text", "image", "audio", "video", "sensor"];
|
|
16
|
+
const policyInputKeys = ["enforcingAssessorIds", "limits", "minimumGroupsPerDimension", "minimumIndependenceGroups", "policyId", "policyVersion", "schemaVersion", "thresholds"];
|
|
17
|
+
const thresholdKeys = ["maximumContextConflictBps", "maximumUncertaintyBps", "minimumCourseActionDiversityBps", "minimumCourseActionNoveltyBps", "minimumMissionAlignmentBps", "minimumRoleCoherenceBps"];
|
|
18
|
+
const limitKeys = ["actionAuthorizationTtlMs", "assessorTimeoutMs", "maximumActionPayloadBytes", "maximumAssessors", "maximumCommitAttempts", "maximumCourseActionCandidates", "maximumCourseActionHistory", "maximumEvidenceDigests", "maximumLogicalTimeMs", "maximumReasonCodes", "maximumRetainedDecisions", "maximumSequence"];
|
|
19
|
+
const bindingInputKeys = ["agentId", "authorityDigest", "bindingId", "missionAnchorDigest", "missionId", "roleAnchorDigest", "roleId", "schemaVersion", "sessionId"];
|
|
20
|
+
const descriptorInputKeys = ["assessorId", "assessorImplementationDigest", "assessorVersion", "basis", "independenceGroup", "schemaVersion", "supportedDimensions"];
|
|
21
|
+
const requestInputKeys = ["actionPayloadDigest", "authorityDigest", "bindingDigest", "candidateCourseActionDigests", "checkpoint", "contextDigest", "logicalTimeMs", "materialDigest", "materialHandle", "missionAnchorDigest", "modalities", "priorCourseActionDigests", "requestId", "roleAnchorDigest", "schemaVersion", "selectedCourseActionDigest", "sequence", "step", "targetDigest"];
|
|
22
|
+
const metricKeys = ["contextConflictBps", "courseActionDiversityBps", "courseActionNoveltyBps", "missionAlignmentBps", "roleCoherenceBps", "uncertaintyBps"];
|
|
23
|
+
const assessorAssessmentInputKeys = ["assessorId", "assessorImplementationDigest", "assessorVersion", "evidenceDigests", "hardConstraintViolations", "independenceGroup", "metrics", "reasonCodes", "recommendation", "requestDigest", "schemaVersion"];
|
|
24
|
+
const actionAuthorizationClaimsInputKeys = ["actionPayloadDigest", "assessorSetDigest", "authorityDigest", "authorizationId", "bindingDigest", "committedStateRevision", "decisionDigest", "effectConsumerDigest", "materialDigest", "policyDigest", "requestDigest", "schemaVersion", "sequence", "sinkId", "sinkKeyDigest", "targetDigest", "validFromLogicalTimeMs", "validUntilLogicalTimeMs"];
|
|
25
|
+
const actionAuthorizationKeys = ["authorizationDigest", "claims", "issuerId", "issuerKeyDigest", "schemaVersion"];
|
|
26
|
+
const actionEffectReceiptInputKeys = ["authorizationDigest", "committedAtLogicalTimeMs", "effectConsumerDigest", "outcomeDigest", "schemaVersion", "sinkId", "sinkKeyDigest"];
|
|
27
|
+
export function digestSemanticControlV1(domain, value) {
|
|
28
|
+
return `sha256:${sha256Hex(encoder.encode(`agentplat.inference-control/semantic-alignment-agility/${domain}/v1\0${canonicalizeControlJsonV1(value)}`))}`;
|
|
29
|
+
}
|
|
30
|
+
export function createSemanticControlPolicyV1(input) {
|
|
31
|
+
assertExactKeys(input, policyInputKeys, "semantic policy input");
|
|
32
|
+
assertExactKeys(input.thresholds, thresholdKeys, "semantic policy thresholds");
|
|
33
|
+
assertExactKeys(input.limits, limitKeys, "semantic policy limits");
|
|
34
|
+
if (input.schemaVersion !== 1)
|
|
35
|
+
fail("semantic_policy_schema_invalid");
|
|
36
|
+
id(input.policyId, "policyId");
|
|
37
|
+
positive(input.policyVersion, "policyVersion");
|
|
38
|
+
const thresholds = deepFreeze({
|
|
39
|
+
minimumRoleCoherenceBps: bps(input.thresholds.minimumRoleCoherenceBps, "minimumRoleCoherenceBps"),
|
|
40
|
+
minimumMissionAlignmentBps: bps(input.thresholds.minimumMissionAlignmentBps, "minimumMissionAlignmentBps"),
|
|
41
|
+
maximumContextConflictBps: bps(input.thresholds.maximumContextConflictBps, "maximumContextConflictBps"),
|
|
42
|
+
maximumUncertaintyBps: bps(input.thresholds.maximumUncertaintyBps, "maximumUncertaintyBps"),
|
|
43
|
+
minimumCourseActionDiversityBps: bps(input.thresholds.minimumCourseActionDiversityBps, "minimumCourseActionDiversityBps"),
|
|
44
|
+
minimumCourseActionNoveltyBps: bps(input.thresholds.minimumCourseActionNoveltyBps, "minimumCourseActionNoveltyBps"),
|
|
45
|
+
});
|
|
46
|
+
const limits = deepFreeze({
|
|
47
|
+
maximumAssessors: positive(input.limits.maximumAssessors, "maximumAssessors"),
|
|
48
|
+
maximumReasonCodes: positive(input.limits.maximumReasonCodes, "maximumReasonCodes"),
|
|
49
|
+
maximumEvidenceDigests: positive(input.limits.maximumEvidenceDigests, "maximumEvidenceDigests"),
|
|
50
|
+
maximumCourseActionCandidates: positive(input.limits.maximumCourseActionCandidates, "maximumCourseActionCandidates"),
|
|
51
|
+
maximumCourseActionHistory: positive(input.limits.maximumCourseActionHistory, "maximumCourseActionHistory"),
|
|
52
|
+
maximumRetainedDecisions: positive(input.limits.maximumRetainedDecisions, "maximumRetainedDecisions"),
|
|
53
|
+
maximumCommitAttempts: positive(input.limits.maximumCommitAttempts, "maximumCommitAttempts"),
|
|
54
|
+
maximumSequence: positive(input.limits.maximumSequence, "maximumSequence"),
|
|
55
|
+
maximumLogicalTimeMs: positive(input.limits.maximumLogicalTimeMs, "maximumLogicalTimeMs"),
|
|
56
|
+
maximumActionPayloadBytes: positive(input.limits.maximumActionPayloadBytes, "maximumActionPayloadBytes"),
|
|
57
|
+
actionAuthorizationTtlMs: positive(input.limits.actionAuthorizationTtlMs, "actionAuthorizationTtlMs"),
|
|
58
|
+
assessorTimeoutMs: positive(input.limits.assessorTimeoutMs, "assessorTimeoutMs"),
|
|
59
|
+
});
|
|
60
|
+
const enforcingAssessorIds = identifiers(input.enforcingAssessorIds, "enforcingAssessorIds", limits.maximumAssessors);
|
|
61
|
+
const minimumIndependenceGroups = positive(input.minimumIndependenceGroups, "minimumIndependenceGroups");
|
|
62
|
+
const minimumGroupsPerDimension = positive(input.minimumGroupsPerDimension, "minimumGroupsPerDimension");
|
|
63
|
+
if (minimumIndependenceGroups > limits.maximumAssessors || minimumGroupsPerDimension > limits.maximumAssessors)
|
|
64
|
+
fail("semantic_policy_quorum_exceeds_assessor_limit");
|
|
65
|
+
const body = deepFreeze({
|
|
66
|
+
schemaVersion: 1,
|
|
67
|
+
policyId: input.policyId,
|
|
68
|
+
policyVersion: input.policyVersion,
|
|
69
|
+
thresholds,
|
|
70
|
+
minimumIndependenceGroups,
|
|
71
|
+
minimumGroupsPerDimension,
|
|
72
|
+
enforcingAssessorIds,
|
|
73
|
+
limits,
|
|
74
|
+
});
|
|
75
|
+
return deepFreeze({
|
|
76
|
+
...body,
|
|
77
|
+
policyDigest: digestSemanticControlV1("policy", body),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
export function validateSemanticControlPolicyV1(input) {
|
|
81
|
+
const { policyDigest, ...body } = input;
|
|
82
|
+
assertDigest(policyDigest, "policyDigest");
|
|
83
|
+
const rebuilt = createSemanticControlPolicyV1(body);
|
|
84
|
+
if (rebuilt.policyDigest !== policyDigest)
|
|
85
|
+
fail("semantic_policy_digest_invalid");
|
|
86
|
+
return rebuilt;
|
|
87
|
+
}
|
|
88
|
+
export function createSemanticControlBindingV1(input) {
|
|
89
|
+
assertExactKeys(input, bindingInputKeys, "semantic binding input");
|
|
90
|
+
if (input.schemaVersion !== 1)
|
|
91
|
+
fail("semantic_binding_schema_invalid");
|
|
92
|
+
for (const [key, value] of Object.entries(input)) {
|
|
93
|
+
if (key.endsWith("Digest"))
|
|
94
|
+
assertDigest(value, key);
|
|
95
|
+
else if (key !== "schemaVersion")
|
|
96
|
+
id(value, key);
|
|
97
|
+
}
|
|
98
|
+
const body = deepFreeze({ ...input });
|
|
99
|
+
return deepFreeze({
|
|
100
|
+
...body,
|
|
101
|
+
bindingDigest: digestSemanticControlV1("binding", body),
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
export function validateSemanticControlBindingV1(input) {
|
|
105
|
+
const { bindingDigest, ...body } = input;
|
|
106
|
+
assertDigest(bindingDigest, "bindingDigest");
|
|
107
|
+
const rebuilt = createSemanticControlBindingV1(body);
|
|
108
|
+
if (rebuilt.bindingDigest !== bindingDigest)
|
|
109
|
+
fail("semantic_binding_digest_invalid");
|
|
110
|
+
return rebuilt;
|
|
111
|
+
}
|
|
112
|
+
export function createSemanticAssessorDescriptorV1(input) {
|
|
113
|
+
assertExactKeys(input, descriptorInputKeys, "semantic assessor descriptor input");
|
|
114
|
+
if (input.schemaVersion !== 1)
|
|
115
|
+
fail("semantic_assessor_schema_invalid");
|
|
116
|
+
id(input.assessorId, "assessorId");
|
|
117
|
+
positive(input.assessorVersion, "assessorVersion");
|
|
118
|
+
assertDigest(input.assessorImplementationDigest, "assessorImplementationDigest");
|
|
119
|
+
id(input.independenceGroup, "independenceGroup");
|
|
120
|
+
assertOneOf(input.basis, bases, "basis");
|
|
121
|
+
const supportedDimensions = dimensions(input.supportedDimensions, "supportedDimensions");
|
|
122
|
+
if (!supportedDimensions.length)
|
|
123
|
+
fail("semantic_assessor_dimensions_empty");
|
|
124
|
+
if (input.basis === "reference_digest_heuristic" &&
|
|
125
|
+
supportedDimensions.some((dimension) => !["course_action_diversity", "course_action_novelty"].includes(dimension)))
|
|
126
|
+
fail("reference_digest_heuristic_cannot_claim_semantic_dimensions");
|
|
127
|
+
const body = deepFreeze({ ...input, supportedDimensions });
|
|
128
|
+
return deepFreeze({
|
|
129
|
+
...body,
|
|
130
|
+
descriptorDigest: digestSemanticControlV1("descriptor", body),
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
export function validateSemanticAssessorDescriptorV1(input) {
|
|
134
|
+
const { descriptorDigest, ...body } = input;
|
|
135
|
+
assertDigest(descriptorDigest, "descriptorDigest");
|
|
136
|
+
const rebuilt = createSemanticAssessorDescriptorV1(body);
|
|
137
|
+
if (rebuilt.descriptorDigest !== descriptorDigest)
|
|
138
|
+
fail("semantic_assessor_descriptor_digest_invalid");
|
|
139
|
+
return rebuilt;
|
|
140
|
+
}
|
|
141
|
+
export function createSemanticControlRequestV1(input) {
|
|
142
|
+
assertExactKeys(input, requestInputKeys, "semantic request input");
|
|
143
|
+
if (input.schemaVersion !== 1)
|
|
144
|
+
fail("semantic_request_schema_invalid");
|
|
145
|
+
id(input.requestId, "requestId");
|
|
146
|
+
assertOneOf(input.checkpoint, SEMANTIC_CONTROL_CHECKPOINTS_V1, "checkpoint");
|
|
147
|
+
assertDigest(input.bindingDigest, "bindingDigest");
|
|
148
|
+
assertDigest(input.missionAnchorDigest, "missionAnchorDigest");
|
|
149
|
+
assertDigest(input.roleAnchorDigest, "roleAnchorDigest");
|
|
150
|
+
assertDigest(input.authorityDigest, "authorityDigest");
|
|
151
|
+
positive(input.sequence, "sequence");
|
|
152
|
+
nonNegative(input.step, "step");
|
|
153
|
+
nonNegative(input.logicalTimeMs, "logicalTimeMs");
|
|
154
|
+
assertDigest(input.targetDigest, "targetDigest");
|
|
155
|
+
assertDigest(input.contextDigest, "contextDigest");
|
|
156
|
+
assertDigest(input.materialDigest, "materialDigest");
|
|
157
|
+
if (input.actionPayloadDigest !== null)
|
|
158
|
+
assertDigest(input.actionPayloadDigest, "actionPayloadDigest");
|
|
159
|
+
if ((input.checkpoint === "pre_action") !== (input.actionPayloadDigest !== null))
|
|
160
|
+
fail("semantic_action_payload_digest_checkpoint_mismatch");
|
|
161
|
+
if (input.selectedCourseActionDigest !== null)
|
|
162
|
+
assertDigest(input.selectedCourseActionDigest, "selectedCourseActionDigest");
|
|
163
|
+
const candidateCourseActionDigests = digestList(input.candidateCourseActionDigests, "candidateCourseActionDigests");
|
|
164
|
+
const priorCourseActionDigests = digestList(input.priorCourseActionDigests, "priorCourseActionDigests");
|
|
165
|
+
const normalizedModalities = uniqueSorted(input.modalities, "modalities");
|
|
166
|
+
for (const modality of normalizedModalities)
|
|
167
|
+
assertOneOf(modality, modalities, "modality");
|
|
168
|
+
assertString(input.materialHandle, "materialHandle");
|
|
169
|
+
if (encoder.encode(input.materialHandle).byteLength > 2048)
|
|
170
|
+
fail("semantic_material_handle_too_large");
|
|
171
|
+
const digestBody = deepFreeze({
|
|
172
|
+
schemaVersion: 1,
|
|
173
|
+
requestId: input.requestId,
|
|
174
|
+
checkpoint: input.checkpoint,
|
|
175
|
+
bindingDigest: input.bindingDigest,
|
|
176
|
+
missionAnchorDigest: input.missionAnchorDigest,
|
|
177
|
+
roleAnchorDigest: input.roleAnchorDigest,
|
|
178
|
+
authorityDigest: input.authorityDigest,
|
|
179
|
+
sequence: input.sequence,
|
|
180
|
+
step: input.step,
|
|
181
|
+
logicalTimeMs: input.logicalTimeMs,
|
|
182
|
+
targetDigest: input.targetDigest,
|
|
183
|
+
contextDigest: input.contextDigest,
|
|
184
|
+
selectedCourseActionDigest: input.selectedCourseActionDigest,
|
|
185
|
+
candidateCourseActionDigests,
|
|
186
|
+
priorCourseActionDigests,
|
|
187
|
+
modalities: normalizedModalities,
|
|
188
|
+
materialDigest: input.materialDigest,
|
|
189
|
+
actionPayloadDigest: input.actionPayloadDigest,
|
|
190
|
+
});
|
|
191
|
+
return deepFreeze({
|
|
192
|
+
...digestBody,
|
|
193
|
+
materialHandle: input.materialHandle,
|
|
194
|
+
requestDigest: digestSemanticControlV1("request", digestBody),
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
export function digestSemanticOperationPayloadV1(payload, maximumBytes) {
|
|
198
|
+
assertString(payload, "operationPayload");
|
|
199
|
+
if (maximumBytes !== undefined) {
|
|
200
|
+
positive(maximumBytes, "maximumActionPayloadBytes");
|
|
201
|
+
if (encoder.encode(payload).byteLength > maximumBytes)
|
|
202
|
+
fail("semantic_action_payload_too_large");
|
|
203
|
+
}
|
|
204
|
+
return digestSemanticControlV1("operation-payload", payload);
|
|
205
|
+
}
|
|
206
|
+
export function createSemanticActionAuthorizationClaimsV1(input) {
|
|
207
|
+
assertExactKeys(input, actionAuthorizationClaimsInputKeys, "semantic action authorization claims input");
|
|
208
|
+
if (input.schemaVersion !== 1)
|
|
209
|
+
fail("semantic_action_authorization_claims_schema_invalid");
|
|
210
|
+
id(input.authorizationId, "authorizationId");
|
|
211
|
+
assertDigest(input.requestDigest, "requestDigest");
|
|
212
|
+
assertDigest(input.decisionDigest, "decisionDigest");
|
|
213
|
+
assertDigest(input.bindingDigest, "bindingDigest");
|
|
214
|
+
assertDigest(input.authorityDigest, "authorityDigest");
|
|
215
|
+
assertDigest(input.policyDigest, "policyDigest");
|
|
216
|
+
assertDigest(input.assessorSetDigest, "assessorSetDigest");
|
|
217
|
+
assertDigest(input.effectConsumerDigest, "effectConsumerDigest");
|
|
218
|
+
id(input.sinkId, "sinkId");
|
|
219
|
+
assertDigest(input.sinkKeyDigest, "sinkKeyDigest");
|
|
220
|
+
assertDigest(input.targetDigest, "targetDigest");
|
|
221
|
+
assertDigest(input.materialDigest, "materialDigest");
|
|
222
|
+
assertDigest(input.actionPayloadDigest, "actionPayloadDigest");
|
|
223
|
+
positive(input.sequence, "sequence");
|
|
224
|
+
positive(input.committedStateRevision, "committedStateRevision");
|
|
225
|
+
nonNegative(input.validFromLogicalTimeMs, "validFromLogicalTimeMs");
|
|
226
|
+
nonNegative(input.validUntilLogicalTimeMs, "validUntilLogicalTimeMs");
|
|
227
|
+
if (input.validUntilLogicalTimeMs < input.validFromLogicalTimeMs)
|
|
228
|
+
fail("semantic_action_authorization_window_invalid");
|
|
229
|
+
const body = deepFreeze({ ...input });
|
|
230
|
+
return deepFreeze({
|
|
231
|
+
...body,
|
|
232
|
+
claimsDigest: digestSemanticControlV1("action-authorization-claims", body),
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
export function validateSemanticActionAuthorizationClaimsV1(input) {
|
|
236
|
+
const { claimsDigest, ...body } = input;
|
|
237
|
+
assertDigest(claimsDigest, "claimsDigest");
|
|
238
|
+
const rebuilt = createSemanticActionAuthorizationClaimsV1(body);
|
|
239
|
+
if (rebuilt.claimsDigest !== claimsDigest)
|
|
240
|
+
fail("semantic_action_authorization_claims_digest_invalid");
|
|
241
|
+
return rebuilt;
|
|
242
|
+
}
|
|
243
|
+
export function validateSemanticActionAuthorizationV1(input, expected) {
|
|
244
|
+
assertExactKeys(input, actionAuthorizationKeys, "semantic action authorization");
|
|
245
|
+
if (input.schemaVersion !== 1)
|
|
246
|
+
fail("semantic_action_authorization_schema_invalid");
|
|
247
|
+
const claims = validateSemanticActionAuthorizationClaimsV1(input.claims);
|
|
248
|
+
id(input.issuerId, "issuerId");
|
|
249
|
+
assertDigest(input.issuerKeyDigest, "issuerKeyDigest");
|
|
250
|
+
assertDigest(input.authorizationDigest, "authorizationDigest");
|
|
251
|
+
if (expected &&
|
|
252
|
+
(input.issuerId !== expected.issuerId ||
|
|
253
|
+
input.issuerKeyDigest !== expected.issuerKeyDigest))
|
|
254
|
+
fail("semantic_action_authorization_issuer_mismatch");
|
|
255
|
+
return deepFreeze({ ...input, claims });
|
|
256
|
+
}
|
|
257
|
+
export function createSemanticActionEffectReceiptV1(input) {
|
|
258
|
+
assertExactKeys(input, actionEffectReceiptInputKeys, "semantic action effect receipt input");
|
|
259
|
+
if (input.schemaVersion !== 1)
|
|
260
|
+
fail("semantic_action_effect_receipt_schema_invalid");
|
|
261
|
+
assertDigest(input.authorizationDigest, "authorizationDigest");
|
|
262
|
+
assertDigest(input.effectConsumerDigest, "effectConsumerDigest");
|
|
263
|
+
id(input.sinkId, "sinkId");
|
|
264
|
+
assertDigest(input.sinkKeyDigest, "sinkKeyDigest");
|
|
265
|
+
assertDigest(input.outcomeDigest, "outcomeDigest");
|
|
266
|
+
nonNegative(input.committedAtLogicalTimeMs, "committedAtLogicalTimeMs");
|
|
267
|
+
const body = deepFreeze({ ...input });
|
|
268
|
+
return deepFreeze({
|
|
269
|
+
...body,
|
|
270
|
+
receiptDigest: digestSemanticControlV1("action-effect-receipt", body),
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
export function validateSemanticActionEffectReceiptV1(input) {
|
|
274
|
+
const { receiptDigest, ...body } = input;
|
|
275
|
+
assertDigest(receiptDigest, "receiptDigest");
|
|
276
|
+
const rebuilt = createSemanticActionEffectReceiptV1(body);
|
|
277
|
+
if (rebuilt.receiptDigest !== receiptDigest)
|
|
278
|
+
fail("semantic_action_effect_receipt_digest_invalid");
|
|
279
|
+
return rebuilt;
|
|
280
|
+
}
|
|
281
|
+
export function validateSemanticControlRequestV1(input) {
|
|
282
|
+
const { requestDigest, ...body } = input;
|
|
283
|
+
assertDigest(requestDigest, "requestDigest");
|
|
284
|
+
const rebuilt = createSemanticControlRequestV1(body);
|
|
285
|
+
if (rebuilt.requestDigest !== requestDigest)
|
|
286
|
+
fail("semantic_request_digest_invalid");
|
|
287
|
+
return rebuilt;
|
|
288
|
+
}
|
|
289
|
+
export function createSemanticAssessorAssessmentV1(input) {
|
|
290
|
+
assertExactKeys(input, assessorAssessmentInputKeys, "semantic assessor assessment input");
|
|
291
|
+
assertExactKeys(input.metrics, metricKeys, "semantic assessor metrics");
|
|
292
|
+
if (input.schemaVersion !== 1)
|
|
293
|
+
fail("semantic_assessment_schema_invalid");
|
|
294
|
+
assertDigest(input.requestDigest, "requestDigest");
|
|
295
|
+
id(input.assessorId, "assessorId");
|
|
296
|
+
positive(input.assessorVersion, "assessorVersion");
|
|
297
|
+
assertDigest(input.assessorImplementationDigest, "assessorImplementationDigest");
|
|
298
|
+
id(input.independenceGroup, "independenceGroup");
|
|
299
|
+
const metrics = normalizeMetrics(input.metrics);
|
|
300
|
+
const hardConstraintViolations = uniqueSorted(input.hardConstraintViolations, "hardConstraintViolations");
|
|
301
|
+
for (const violation of hardConstraintViolations)
|
|
302
|
+
assertOneOf(violation, violations, "hardConstraintViolation");
|
|
303
|
+
assertOneOf(input.recommendation, dispositions, "recommendation");
|
|
304
|
+
const reasonCodes = tokens(input.reasonCodes, "reasonCodes", 64);
|
|
305
|
+
const evidenceDigests = digests(input.evidenceDigests, "evidenceDigests");
|
|
306
|
+
const body = deepFreeze({ ...input, metrics, hardConstraintViolations, reasonCodes, evidenceDigests });
|
|
307
|
+
return deepFreeze({
|
|
308
|
+
...body,
|
|
309
|
+
assessmentDigest: digestSemanticControlV1("assessor-assessment", body),
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
export function validateSemanticAssessorAssessmentV1(input, descriptor, request, policy) {
|
|
313
|
+
const { assessmentDigest, ...body } = input;
|
|
314
|
+
const rebuilt = createSemanticAssessorAssessmentV1(body);
|
|
315
|
+
if (rebuilt.assessmentDigest !== assessmentDigest)
|
|
316
|
+
fail("semantic_assessment_digest_invalid");
|
|
317
|
+
if (rebuilt.requestDigest !== request.requestDigest ||
|
|
318
|
+
rebuilt.assessorId !== descriptor.assessorId ||
|
|
319
|
+
rebuilt.assessorVersion !== descriptor.assessorVersion ||
|
|
320
|
+
rebuilt.assessorImplementationDigest !== descriptor.assessorImplementationDigest ||
|
|
321
|
+
rebuilt.independenceGroup !== descriptor.independenceGroup)
|
|
322
|
+
fail("semantic_assessment_binding_invalid");
|
|
323
|
+
const values = metricEntries(rebuilt.metrics);
|
|
324
|
+
for (const [dimension, value] of values)
|
|
325
|
+
if (value !== null && !descriptor.supportedDimensions.includes(dimension))
|
|
326
|
+
fail("semantic_assessment_unsupported_dimension");
|
|
327
|
+
if (rebuilt.reasonCodes.length > policy.limits.maximumReasonCodes || rebuilt.evidenceDigests.length > policy.limits.maximumEvidenceDigests)
|
|
328
|
+
fail("semantic_assessment_bounds_exceeded");
|
|
329
|
+
return rebuilt;
|
|
330
|
+
}
|
|
331
|
+
export function createSemanticAggregateAssessmentV1(input) {
|
|
332
|
+
assertDigest(input.requestDigest, "aggregate.requestDigest");
|
|
333
|
+
assertOneOf(input.disposition, dispositions, "aggregate.disposition");
|
|
334
|
+
normalizeMetrics(input.metrics);
|
|
335
|
+
for (const count of Object.values(input.dimensionGroupCounts))
|
|
336
|
+
assertSafeInteger(count, "aggregate.dimensionGroupCount");
|
|
337
|
+
for (const digest of input.evidenceDigests)
|
|
338
|
+
assertDigest(digest, "aggregate.evidenceDigest");
|
|
339
|
+
const body = deepFreeze({ ...input });
|
|
340
|
+
return deepFreeze({
|
|
341
|
+
...body,
|
|
342
|
+
assessmentDigest: digestSemanticControlV1("aggregate-assessment", body),
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
export function validateSemanticAggregateAssessmentV1(input) {
|
|
346
|
+
const { assessmentDigest, ...body } = input;
|
|
347
|
+
assertDigest(assessmentDigest, "aggregate.assessmentDigest");
|
|
348
|
+
const rebuilt = createSemanticAggregateAssessmentV1(body);
|
|
349
|
+
if (rebuilt.assessmentDigest !== assessmentDigest)
|
|
350
|
+
fail("semantic_aggregate_assessment_digest_invalid");
|
|
351
|
+
return rebuilt;
|
|
352
|
+
}
|
|
353
|
+
export function validateSemanticControlDecisionV1(input) {
|
|
354
|
+
if (input.schemaVersion !== 1)
|
|
355
|
+
fail("semantic_decision_schema_invalid");
|
|
356
|
+
id(input.requestId, "decision.requestId");
|
|
357
|
+
assertDigest(input.requestDigest, "decision.requestDigest");
|
|
358
|
+
assertOneOf(input.checkpoint, SEMANTIC_CONTROL_CHECKPOINTS_V1, "decision.checkpoint");
|
|
359
|
+
assertOneOf(input.disposition, dispositions, "decision.disposition");
|
|
360
|
+
if (typeof input.proceed !== "boolean")
|
|
361
|
+
fail("semantic_decision_proceed_invalid");
|
|
362
|
+
if (input.proceed !==
|
|
363
|
+
(input.disposition === "allow" ||
|
|
364
|
+
(input.checkpoint === "pre_step" && input.disposition === "steer")))
|
|
365
|
+
fail("semantic_decision_proceed_disposition_mismatch");
|
|
366
|
+
validateSemanticAggregateAssessmentV1(input.aggregate);
|
|
367
|
+
if (input.aggregate.requestDigest !== input.requestDigest)
|
|
368
|
+
fail("semantic_decision_aggregate_binding_invalid");
|
|
369
|
+
if (input.ensembleDecision !== null)
|
|
370
|
+
assertOneOf(input.ensembleDecision, ["allow", "modify", "block", "unresolved"], "decision.ensembleDecision");
|
|
371
|
+
if (input.ensembleVerdictDigest !== null)
|
|
372
|
+
assertDigest(input.ensembleVerdictDigest, "decision.ensembleVerdictDigest");
|
|
373
|
+
if ((input.ensembleDecision === null) !== (input.ensembleVerdictDigest === null))
|
|
374
|
+
fail("semantic_decision_ensemble_evidence_mismatch");
|
|
375
|
+
if (input.interventionAllowed !== null && typeof input.interventionAllowed !== "boolean")
|
|
376
|
+
fail("semantic_decision_intervention_allowed_invalid");
|
|
377
|
+
for (const digest of input.interventionAssessmentDigests)
|
|
378
|
+
assertDigest(digest, "decision.interventionAssessmentDigest");
|
|
379
|
+
assertSafeInteger(input.priorStateRevision, "decision.priorStateRevision");
|
|
380
|
+
assertSafeInteger(input.committedStateRevision, "decision.committedStateRevision");
|
|
381
|
+
const { decisionDigest, ...body } = input;
|
|
382
|
+
assertDigest(decisionDigest, "decision.decisionDigest");
|
|
383
|
+
if (digestSemanticControlV1("decision", body) !== decisionDigest)
|
|
384
|
+
fail("semantic_decision_digest_invalid");
|
|
385
|
+
return deepFreeze(input);
|
|
386
|
+
}
|
|
387
|
+
export function metricEntries(metrics) {
|
|
388
|
+
return [
|
|
389
|
+
["role_coherence", metrics.roleCoherenceBps],
|
|
390
|
+
["mission_alignment", metrics.missionAlignmentBps],
|
|
391
|
+
["context_conflict", metrics.contextConflictBps],
|
|
392
|
+
["uncertainty", metrics.uncertaintyBps],
|
|
393
|
+
["course_action_diversity", metrics.courseActionDiversityBps],
|
|
394
|
+
["course_action_novelty", metrics.courseActionNoveltyBps],
|
|
395
|
+
];
|
|
396
|
+
}
|
|
397
|
+
export function dimensionMetricKey(dimension) {
|
|
398
|
+
return {
|
|
399
|
+
role_coherence: "roleCoherenceBps",
|
|
400
|
+
mission_alignment: "missionAlignmentBps",
|
|
401
|
+
context_conflict: "contextConflictBps",
|
|
402
|
+
uncertainty: "uncertaintyBps",
|
|
403
|
+
course_action_diversity: "courseActionDiversityBps",
|
|
404
|
+
course_action_novelty: "courseActionNoveltyBps",
|
|
405
|
+
}[dimension];
|
|
406
|
+
}
|
|
407
|
+
function normalizeMetrics(input) {
|
|
408
|
+
return deepFreeze({
|
|
409
|
+
roleCoherenceBps: nullableBps(input.roleCoherenceBps, "roleCoherenceBps"),
|
|
410
|
+
missionAlignmentBps: nullableBps(input.missionAlignmentBps, "missionAlignmentBps"),
|
|
411
|
+
contextConflictBps: nullableBps(input.contextConflictBps, "contextConflictBps"),
|
|
412
|
+
uncertaintyBps: nullableBps(input.uncertaintyBps, "uncertaintyBps"),
|
|
413
|
+
courseActionDiversityBps: nullableBps(input.courseActionDiversityBps, "courseActionDiversityBps"),
|
|
414
|
+
courseActionNoveltyBps: nullableBps(input.courseActionNoveltyBps, "courseActionNoveltyBps"),
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
function dimensions(values, label) {
|
|
418
|
+
const result = uniqueSorted(values, label);
|
|
419
|
+
for (const value of result)
|
|
420
|
+
assertOneOf(value, SEMANTIC_CONTROL_DIMENSIONS_V1, label);
|
|
421
|
+
return result;
|
|
422
|
+
}
|
|
423
|
+
function identifiers(values, label, maximum) {
|
|
424
|
+
if (values.length > maximum)
|
|
425
|
+
fail(`${label}_too_many`);
|
|
426
|
+
const result = uniqueSorted(values, label);
|
|
427
|
+
for (const value of result)
|
|
428
|
+
id(value, label);
|
|
429
|
+
return result;
|
|
430
|
+
}
|
|
431
|
+
function tokens(values, label, maximum) {
|
|
432
|
+
if (values.length > maximum)
|
|
433
|
+
fail(`${label}_too_many`);
|
|
434
|
+
const result = uniqueSorted(values, label);
|
|
435
|
+
for (const value of result)
|
|
436
|
+
if (!/^[a-z0-9][a-z0-9._:-]{0,127}$/.test(value))
|
|
437
|
+
fail(`${label}_invalid`);
|
|
438
|
+
return result;
|
|
439
|
+
}
|
|
440
|
+
function digests(values, label) {
|
|
441
|
+
const result = uniqueSorted(values, label);
|
|
442
|
+
for (const [index, value] of result.entries())
|
|
443
|
+
assertDigest(value, `${label}[${index}]`);
|
|
444
|
+
return result;
|
|
445
|
+
}
|
|
446
|
+
function digestList(values, label) {
|
|
447
|
+
const result = [...values];
|
|
448
|
+
for (const [index, value] of result.entries())
|
|
449
|
+
assertDigest(value, `${label}[${index}]`);
|
|
450
|
+
return deepFreeze(result);
|
|
451
|
+
}
|
|
452
|
+
function uniqueSorted(values, label) {
|
|
453
|
+
const result = [...new Set(values)].sort();
|
|
454
|
+
if (result.length !== values.length)
|
|
455
|
+
fail(`${label}_must_be_unique`);
|
|
456
|
+
return deepFreeze(result);
|
|
457
|
+
}
|
|
458
|
+
function nullableBps(value, label) { return value === null ? null : bps(value, label); }
|
|
459
|
+
function bps(value, label) { assertSafeInteger(value, label); if (value > 10_000)
|
|
460
|
+
fail(`${label}_must_be_bps`); return value; }
|
|
461
|
+
function positive(value, label) { assertSafeInteger(value, label, 1); return value; }
|
|
462
|
+
function nonNegative(value, label) { assertSafeInteger(value, label); return value; }
|
|
463
|
+
function id(value, label) { assertIdentifier(value, label); return value; }
|
|
464
|
+
function fail(code) { throw new TypeError(code); }
|
|
465
|
+
export function semanticAssessorBasisV1(value) {
|
|
466
|
+
assertOneOf(value, bases, "basis");
|
|
467
|
+
return value;
|
|
468
|
+
}
|
|
469
|
+
export function semanticDispositionV1(value) {
|
|
470
|
+
assertOneOf(value, dispositions, "disposition");
|
|
471
|
+
return value;
|
|
472
|
+
}
|
|
473
|
+
export function semanticViolationV1(value) {
|
|
474
|
+
assertOneOf(value, violations, "violation");
|
|
475
|
+
return value;
|
|
476
|
+
}
|
|
477
|
+
//# sourceMappingURL=semantic-alignment-validation.js.map
|