@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,50 @@
|
|
|
1
|
+
import type { PortableAgentControlPortV1, PortableAgentControlRequestV1 } from "@agentplat/runtime/adapter";
|
|
2
|
+
import { type InferenceControlBoundaryV1 } from "./boundary.js";
|
|
3
|
+
import type { AssessmentRequestV1, ControlScopeV1, InferenceAssessmentV1, ReleaseModeV1 } from "./types.js";
|
|
4
|
+
/** Caller-owned assessment implementation; it never receives provider credentials. */
|
|
5
|
+
export interface PortableAgentInferenceAssessorV1 {
|
|
6
|
+
assess(request: AssessmentRequestV1): Promise<InferenceAssessmentV1> | InferenceAssessmentV1;
|
|
7
|
+
}
|
|
8
|
+
export interface CreateInferenceControlPortableAgentControlV1 {
|
|
9
|
+
readonly controlId: string;
|
|
10
|
+
readonly controlVersion: number;
|
|
11
|
+
readonly implementationId: string;
|
|
12
|
+
readonly boundary: InferenceControlBoundaryV1;
|
|
13
|
+
readonly policyId: string;
|
|
14
|
+
readonly policyVersion: number;
|
|
15
|
+
readonly capabilityHandleId: string;
|
|
16
|
+
readonly mode: ReleaseModeV1;
|
|
17
|
+
readonly outputRisk: "low" | "moderate" | "high";
|
|
18
|
+
readonly assessor: PortableAgentInferenceAssessorV1;
|
|
19
|
+
/** Must match every policy assessor binding used by this bridge. */
|
|
20
|
+
readonly assessorBindingDigest: string;
|
|
21
|
+
/** Rebuilds current local scope for every checkpoint. */
|
|
22
|
+
readonly scope: (request: PortableAgentControlRequestV1) => ControlScopeV1 | null | Promise<ControlScopeV1 | null>;
|
|
23
|
+
/** Must be positive and cannot exceed the bound policy's assessment TTL. */
|
|
24
|
+
readonly assessmentTtlMs: number;
|
|
25
|
+
}
|
|
26
|
+
export interface InferenceControlPortableAgentControlV1 extends PortableAgentControlPortV1 {
|
|
27
|
+
readonly binding: Readonly<{
|
|
28
|
+
readonly policyId: string;
|
|
29
|
+
readonly policyVersion: number;
|
|
30
|
+
readonly policyDigest: string;
|
|
31
|
+
readonly capabilityDescriptorDigest: string;
|
|
32
|
+
readonly assessorBindingDigest: string;
|
|
33
|
+
readonly implementationId: string;
|
|
34
|
+
}>;
|
|
35
|
+
}
|
|
36
|
+
export interface CreateCompositePortableAgentControlV1 {
|
|
37
|
+
readonly controlId: string;
|
|
38
|
+
readonly controlVersion: number;
|
|
39
|
+
readonly implementationId: string;
|
|
40
|
+
readonly controls: readonly PortableAgentControlPortV1[];
|
|
41
|
+
}
|
|
42
|
+
/** Runs independent controls and returns the most conservative disposition. */
|
|
43
|
+
export declare function createCompositePortableAgentControlV1(options: CreateCompositePortableAgentControlV1): PortableAgentControlPortV1;
|
|
44
|
+
/**
|
|
45
|
+
* Adapts the three observable portable-agent checkpoints to the existing
|
|
46
|
+
* inference-control assessment model. It is deliberately not a provider
|
|
47
|
+
* adapter: provider invocation stays behind the portable runtime's adapter.
|
|
48
|
+
*/
|
|
49
|
+
export declare function createInferenceControlPortableAgentControlV1(options: CreateInferenceControlPortableAgentControlV1): InferenceControlPortableAgentControlV1;
|
|
50
|
+
//# sourceMappingURL=portable-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portable-agent.d.ts","sourceRoot":"","sources":["../src/portable-agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,0BAA0B,EAC1B,6BAA6B,EAC9B,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EACV,mBAAmB,EAEnB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACd,MAAM,YAAY,CAAC;AAKpB,sFAAsF;AACtF,MAAM,WAAW,gCAAgC;IAC/C,MAAM,CACJ,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,qBAAqB,CAAC,GAAG,qBAAqB,CAAC;CAC3D;AAED,MAAM,WAAW,4CAA4C;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;IACpD,oEAAoE;IACpE,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,CACd,OAAO,EAAE,6BAA6B,KACnC,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5D,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,sCAAuC,SAAQ,0BAA0B;IACxF,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;QACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;QAC5C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACvC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;KACnC,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAC1D;AAED,+EAA+E;AAC/E,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,qCAAqC,GAC7C,0BAA0B,CAgD5B;AAED;;;;GAIG;AACH,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,4CAA4C,GACpD,sCAAsC,CAuCxC"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { normalizeControlDecisionV1 } from "@agentplat/runtime/adapter";
|
|
2
|
+
import { assessmentMatchesRequestV1, validateInferenceAssessmentV1, validateAssessmentRequestV1, } from "./assessments.js";
|
|
3
|
+
import { resolveControlBoundaryV1, } from "./boundary.js";
|
|
4
|
+
import { digestControlJsonV1 } from "./canonical.js";
|
|
5
|
+
import { createPolicyRecordV1 } from "./policy.js";
|
|
6
|
+
import { validateControlScopeV1 } from "./scopes.js";
|
|
7
|
+
const identifier = /^[A-Za-z0-9][A-Za-z0-9._:@-]*$/u;
|
|
8
|
+
const digest = /^sha256:[0-9a-f]{64}$/u;
|
|
9
|
+
/** Runs independent controls and returns the most conservative disposition. */
|
|
10
|
+
export function createCompositePortableAgentControlV1(options) {
|
|
11
|
+
if (!options ||
|
|
12
|
+
typeof options !== "object" ||
|
|
13
|
+
!identifier.test(options.controlId) ||
|
|
14
|
+
!identifier.test(options.implementationId) ||
|
|
15
|
+
!Number.isSafeInteger(options.controlVersion) ||
|
|
16
|
+
options.controlVersion < 1 ||
|
|
17
|
+
!Array.isArray(options.controls) ||
|
|
18
|
+
options.controls.length < 1 ||
|
|
19
|
+
options.controls.length > 16 ||
|
|
20
|
+
options.controls.some((control) => !control || typeof control.evaluate !== "function"))
|
|
21
|
+
throw new TypeError("portable composite control options are invalid");
|
|
22
|
+
const keys = options.controls.map((control) => `${control.controlId}:${control.controlVersion}:${control.implementationId}`);
|
|
23
|
+
if (new Set(keys).size !== keys.length)
|
|
24
|
+
throw new TypeError("portable composite controls must be unique");
|
|
25
|
+
return Object.freeze({
|
|
26
|
+
controlId: options.controlId,
|
|
27
|
+
controlVersion: options.controlVersion,
|
|
28
|
+
implementationId: options.implementationId,
|
|
29
|
+
async evaluate(request) {
|
|
30
|
+
let selected = allow("composite_control_allowed");
|
|
31
|
+
try {
|
|
32
|
+
for (const control of options.controls) {
|
|
33
|
+
const decision = normalizeControlDecisionV1(await control.evaluate(request));
|
|
34
|
+
if (decision.disposition === "deny")
|
|
35
|
+
return decision;
|
|
36
|
+
if (dispositionRank(decision.disposition) >
|
|
37
|
+
dispositionRank(selected.disposition))
|
|
38
|
+
selected = decision;
|
|
39
|
+
}
|
|
40
|
+
return selected;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return deny("composite_control_unavailable");
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Adapts the three observable portable-agent checkpoints to the existing
|
|
50
|
+
* inference-control assessment model. It is deliberately not a provider
|
|
51
|
+
* adapter: provider invocation stays behind the portable runtime's adapter.
|
|
52
|
+
*/
|
|
53
|
+
export function createInferenceControlPortableAgentControlV1(options) {
|
|
54
|
+
assertOptions(options);
|
|
55
|
+
const resolved = resolveControlBoundaryV1(options.boundary, {
|
|
56
|
+
policyId: options.policyId,
|
|
57
|
+
policyVersion: options.policyVersion,
|
|
58
|
+
capabilityHandleId: options.capabilityHandleId,
|
|
59
|
+
expectedMode: options.mode,
|
|
60
|
+
expectedOutputRisk: options.outputRisk,
|
|
61
|
+
});
|
|
62
|
+
const policy = resolved.policy;
|
|
63
|
+
if (options.assessmentTtlMs > policy.maximumAssessmentTtlMs)
|
|
64
|
+
throw new TypeError("portable agent assessment TTL exceeds policy");
|
|
65
|
+
const policyRecord = createPolicyRecordV1(policy);
|
|
66
|
+
return Object.freeze({
|
|
67
|
+
controlId: options.controlId,
|
|
68
|
+
controlVersion: options.controlVersion,
|
|
69
|
+
implementationId: options.implementationId,
|
|
70
|
+
binding: Object.freeze({
|
|
71
|
+
policyId: policy.policyId,
|
|
72
|
+
policyVersion: policy.policyVersion,
|
|
73
|
+
policyDigest: policyRecord.policyDigest,
|
|
74
|
+
capabilityDescriptorDigest: resolved.descriptorDigest,
|
|
75
|
+
assessorBindingDigest: options.assessorBindingDigest,
|
|
76
|
+
implementationId: options.implementationId,
|
|
77
|
+
}),
|
|
78
|
+
async evaluate(input) {
|
|
79
|
+
try {
|
|
80
|
+
return await evaluatePortableCheckpoint({
|
|
81
|
+
input,
|
|
82
|
+
options,
|
|
83
|
+
policy,
|
|
84
|
+
policyDigest: policyRecord.policyDigest,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return deny("inference_control_unavailable");
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
async function evaluatePortableCheckpoint(input) {
|
|
94
|
+
const request = input.input;
|
|
95
|
+
assertPortableRequest(request);
|
|
96
|
+
const mapped = mapCheckpoint(request.checkpoint);
|
|
97
|
+
const assessorBinding = input.policy.assessmentBindings.find((binding) => binding.checkpoint === mapped);
|
|
98
|
+
if (!assessorBinding || !input.policy.checkpoints.includes(mapped))
|
|
99
|
+
return deny("inference_control_checkpoint_unavailable");
|
|
100
|
+
if (assessorBinding.assessorBindingDigest !==
|
|
101
|
+
input.options.assessorBindingDigest)
|
|
102
|
+
return deny("inference_control_assessor_binding_mismatch");
|
|
103
|
+
const scope = await input.options.scope(request);
|
|
104
|
+
const validatedScope = scope === null ? null : validateControlScopeV1(scope);
|
|
105
|
+
if (validatedScope &&
|
|
106
|
+
(validatedScope.tenantId !== request.tenantId ||
|
|
107
|
+
validatedScope.runId !== request.sessionId ||
|
|
108
|
+
validatedScope.agentId !== request.agentId ||
|
|
109
|
+
validatedScope.policyId !== input.policy.policyId ||
|
|
110
|
+
validatedScope.policyVersion !== input.policy.policyVersion))
|
|
111
|
+
return deny("inference_control_scope_mismatch");
|
|
112
|
+
const target = targetFor(request);
|
|
113
|
+
const logicalTimeMs = request.request.logicalTimeMs;
|
|
114
|
+
const assessmentRequest = validateAssessmentRequestV1({
|
|
115
|
+
schemaVersion: 1,
|
|
116
|
+
assessmentRequestId: `portable:${digestControlJsonV1("assessment-target", target)}`,
|
|
117
|
+
requestGeneration: 1,
|
|
118
|
+
runId: request.sessionId,
|
|
119
|
+
tenantId: request.tenantId,
|
|
120
|
+
policyId: input.policy.policyId,
|
|
121
|
+
policyVersion: input.policy.policyVersion,
|
|
122
|
+
checkpoint: mapped,
|
|
123
|
+
assessorId: assessorBinding.assessorId,
|
|
124
|
+
assessorVersion: assessorBinding.assessorVersion,
|
|
125
|
+
targetKind: targetKindFor(mapped),
|
|
126
|
+
targetDigest: digestControlJsonV1("assessment-target", target),
|
|
127
|
+
contextEntryIds: request.request.observations.map((observation) => observation.observationId),
|
|
128
|
+
zoneDigest: digestControlJsonV1("context", request.request.observations.map((observation) => ({
|
|
129
|
+
observationId: observation.observationId,
|
|
130
|
+
sourceZone: observation.sourceZone,
|
|
131
|
+
}))),
|
|
132
|
+
provenanceDigest: digestControlJsonV1("provenance", request.request.observations.map((observation) => ({
|
|
133
|
+
observationId: observation.observationId,
|
|
134
|
+
sourceId: observation.sourceId,
|
|
135
|
+
provenance: observation.provenance,
|
|
136
|
+
}))),
|
|
137
|
+
scope: validatedScope,
|
|
138
|
+
createdAtLogicalMs: logicalTimeMs,
|
|
139
|
+
expiresAtLogicalMs: logicalTimeMs + input.options.assessmentTtlMs,
|
|
140
|
+
status: "pending",
|
|
141
|
+
}, input.policy.limits);
|
|
142
|
+
const assessment = validateInferenceAssessmentV1(await input.options.assessor.assess(assessmentRequest), input.policy.limits);
|
|
143
|
+
if (!assessmentMatchesRequestV1(assessmentRequest, assessment, logicalTimeMs))
|
|
144
|
+
return deny("inference_control_assessment_mismatch");
|
|
145
|
+
return assessment.disposition === "allow"
|
|
146
|
+
? allow(assessment.reasonCodes[0] ?? "inference_control_allowed")
|
|
147
|
+
: assessment.disposition === "abstain" ||
|
|
148
|
+
assessment.disposition === "escalate"
|
|
149
|
+
? Object.freeze({
|
|
150
|
+
disposition: assessment.disposition,
|
|
151
|
+
reasonCode: assessment.reasonCodes[0] ?? "inference_control_not_allowed",
|
|
152
|
+
})
|
|
153
|
+
: deny(assessment.reasonCodes[0] ?? "inference_control_not_allowed");
|
|
154
|
+
}
|
|
155
|
+
function mapCheckpoint(checkpoint) {
|
|
156
|
+
switch (checkpoint) {
|
|
157
|
+
case "pre_step":
|
|
158
|
+
return "pre_run";
|
|
159
|
+
case "post_output":
|
|
160
|
+
return "post_run";
|
|
161
|
+
case "pre_action":
|
|
162
|
+
return "pre_tool";
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function targetKindFor(checkpoint) {
|
|
166
|
+
switch (checkpoint) {
|
|
167
|
+
case "pre_run":
|
|
168
|
+
return "provider_request";
|
|
169
|
+
case "post_run":
|
|
170
|
+
return "final_output";
|
|
171
|
+
case "pre_tool":
|
|
172
|
+
return "action";
|
|
173
|
+
default:
|
|
174
|
+
throw new TypeError("portable checkpoint mapping is invalid");
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
function targetFor(request) {
|
|
178
|
+
return {
|
|
179
|
+
schemaVersion: 1,
|
|
180
|
+
checkpoint: request.checkpoint,
|
|
181
|
+
stepSequence: request.stepSequence,
|
|
182
|
+
checkpointItemIndex: request.checkpointItemIndex ?? 0,
|
|
183
|
+
manifest: request.manifest,
|
|
184
|
+
sessionId: request.sessionId,
|
|
185
|
+
tenantId: request.tenantId,
|
|
186
|
+
agentId: request.agentId,
|
|
187
|
+
role: request.role,
|
|
188
|
+
step: request.request,
|
|
189
|
+
output: request.output,
|
|
190
|
+
actionProposal: request.actionProposal,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
function assertPortableRequest(request) {
|
|
194
|
+
const checkpointItemIndex = request?.checkpointItemIndex ?? 0;
|
|
195
|
+
if (!request ||
|
|
196
|
+
request.schemaVersion !== 1 ||
|
|
197
|
+
!identifier.test(request.sessionId) ||
|
|
198
|
+
!identifier.test(request.tenantId) ||
|
|
199
|
+
!identifier.test(request.agentId) ||
|
|
200
|
+
!Number.isSafeInteger(request.stepSequence) ||
|
|
201
|
+
request.stepSequence < 1 ||
|
|
202
|
+
!Number.isSafeInteger(checkpointItemIndex) ||
|
|
203
|
+
checkpointItemIndex < 0 ||
|
|
204
|
+
checkpointItemIndex > 4_095 ||
|
|
205
|
+
(request.checkpoint === "pre_step" && checkpointItemIndex !== 0) ||
|
|
206
|
+
!Number.isSafeInteger(request.request.logicalTimeMs) ||
|
|
207
|
+
request.request.logicalTimeMs < 0)
|
|
208
|
+
throw new TypeError("portable control request is invalid");
|
|
209
|
+
}
|
|
210
|
+
function assertOptions(options) {
|
|
211
|
+
if (!options ||
|
|
212
|
+
typeof options !== "object" ||
|
|
213
|
+
!identifier.test(options.controlId) ||
|
|
214
|
+
!identifier.test(options.implementationId) ||
|
|
215
|
+
!Number.isSafeInteger(options.controlVersion) ||
|
|
216
|
+
options.controlVersion < 1 ||
|
|
217
|
+
!identifier.test(options.policyId) ||
|
|
218
|
+
!Number.isSafeInteger(options.policyVersion) ||
|
|
219
|
+
options.policyVersion < 1 ||
|
|
220
|
+
!identifier.test(options.capabilityHandleId) ||
|
|
221
|
+
!digest.test(options.assessorBindingDigest) ||
|
|
222
|
+
!options.boundary ||
|
|
223
|
+
!options.assessor ||
|
|
224
|
+
typeof options.assessor.assess !== "function" ||
|
|
225
|
+
typeof options.scope !== "function" ||
|
|
226
|
+
!Number.isSafeInteger(options.assessmentTtlMs) ||
|
|
227
|
+
options.assessmentTtlMs < 1)
|
|
228
|
+
throw new TypeError("portable inference control options are invalid");
|
|
229
|
+
}
|
|
230
|
+
function allow(reasonCode) {
|
|
231
|
+
return Object.freeze({ disposition: "allow", reasonCode });
|
|
232
|
+
}
|
|
233
|
+
function deny(reasonCode) {
|
|
234
|
+
return Object.freeze({ disposition: "deny", reasonCode });
|
|
235
|
+
}
|
|
236
|
+
function dispositionRank(disposition) {
|
|
237
|
+
if (disposition === "deny")
|
|
238
|
+
return 3;
|
|
239
|
+
if (disposition === "escalate")
|
|
240
|
+
return 2;
|
|
241
|
+
return disposition === "abstain" ? 1 : 0;
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=portable-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portable-agent.js","sourceRoot":"","sources":["../src/portable-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
export interface RepresentationControlPolicyV1 {
|
|
2
|
+
readonly policyDigest: string;
|
|
3
|
+
readonly steeringStrengthBasisPoints: number;
|
|
4
|
+
readonly prohibitedProjectionRemovalBasisPoints: number;
|
|
5
|
+
readonly maximumDeltaNormBasisPoints: number;
|
|
6
|
+
readonly minimumInputNorm: number;
|
|
7
|
+
readonly maximumDimensions: number;
|
|
8
|
+
}
|
|
9
|
+
export interface RepresentationControlRequestV1 {
|
|
10
|
+
readonly requestId: string;
|
|
11
|
+
readonly bindingDigest: string;
|
|
12
|
+
readonly roleVectorDigest: string;
|
|
13
|
+
readonly activationDigest: string;
|
|
14
|
+
readonly activation: readonly number[];
|
|
15
|
+
readonly roleVector: readonly number[];
|
|
16
|
+
readonly prohibitedVectors: readonly {
|
|
17
|
+
readonly vectorDigest: string;
|
|
18
|
+
readonly values: readonly number[];
|
|
19
|
+
}[];
|
|
20
|
+
readonly step: number;
|
|
21
|
+
readonly logicalTimeMs: number;
|
|
22
|
+
}
|
|
23
|
+
export interface RepresentationControlReceiptV1 {
|
|
24
|
+
readonly schemaVersion: 1;
|
|
25
|
+
readonly requestId: string;
|
|
26
|
+
readonly bindingDigest: string;
|
|
27
|
+
readonly policyDigest: string;
|
|
28
|
+
readonly roleVectorDigest: string;
|
|
29
|
+
readonly inputActivationDigest: string;
|
|
30
|
+
readonly outputActivationDigest: string;
|
|
31
|
+
readonly dimensions: number;
|
|
32
|
+
readonly appliedStrengthBasisPoints: number;
|
|
33
|
+
readonly removedProjectionBasisPoints: number;
|
|
34
|
+
readonly deltaNormBasisPoints: number;
|
|
35
|
+
readonly result: "applied" | "not_required" | "rejected";
|
|
36
|
+
readonly reasonCode: string;
|
|
37
|
+
readonly step: number;
|
|
38
|
+
readonly logicalTimeMs: number;
|
|
39
|
+
readonly receiptDigest: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Reference activation steering controller. Vectors are volatile; the receipt
|
|
43
|
+
* retains only their content digests and bounded control measurements.
|
|
44
|
+
*/
|
|
45
|
+
export declare class ReferenceRepresentationControllerV1 {
|
|
46
|
+
readonly policy: RepresentationControlPolicyV1;
|
|
47
|
+
constructor(policy: RepresentationControlPolicyV1);
|
|
48
|
+
intervene(request: RepresentationControlRequestV1): {
|
|
49
|
+
readonly activation: readonly number[];
|
|
50
|
+
readonly receipt: RepresentationControlReceiptV1;
|
|
51
|
+
};
|
|
52
|
+
private rejected;
|
|
53
|
+
}
|
|
54
|
+
export type BlackBoxContextZoneV1 = "authority" | "mission" | "role" | "local" | "peer" | "retrieval" | "tool" | "provider";
|
|
55
|
+
export interface BlackBoxContextItemV1 {
|
|
56
|
+
readonly itemId: string;
|
|
57
|
+
readonly content: string;
|
|
58
|
+
readonly contentDigest: string;
|
|
59
|
+
readonly sourceZone: BlackBoxContextZoneV1;
|
|
60
|
+
readonly trustBasisPoints: number;
|
|
61
|
+
readonly riskBasisPoints: number;
|
|
62
|
+
readonly tokenEstimate: number;
|
|
63
|
+
readonly essential: boolean;
|
|
64
|
+
readonly independenceGroup: string;
|
|
65
|
+
}
|
|
66
|
+
export interface BlackBoxControlPolicyV1 {
|
|
67
|
+
readonly policyDigest: string;
|
|
68
|
+
readonly maximumContextTokens: number;
|
|
69
|
+
readonly maximumContextItems: number;
|
|
70
|
+
readonly maximumContextItemBytes: number;
|
|
71
|
+
readonly minimumTrustBasisPoints: number;
|
|
72
|
+
readonly maximumRiskBasisPoints: number;
|
|
73
|
+
readonly maximumItemsPerIndependenceGroup: number;
|
|
74
|
+
readonly allowedToolNames: readonly string[];
|
|
75
|
+
readonly protectedZones: readonly BlackBoxContextZoneV1[];
|
|
76
|
+
readonly roleReinforcement: string;
|
|
77
|
+
readonly roleReinforcementDigest: string;
|
|
78
|
+
}
|
|
79
|
+
export interface BlackBoxControlRequestV1 {
|
|
80
|
+
readonly requestId: string;
|
|
81
|
+
readonly bindingDigest: string;
|
|
82
|
+
readonly step: number;
|
|
83
|
+
readonly logicalTimeMs: number;
|
|
84
|
+
readonly context: readonly BlackBoxContextItemV1[];
|
|
85
|
+
readonly requestedToolNames: readonly string[];
|
|
86
|
+
readonly memoryQueryDigest: string | null;
|
|
87
|
+
}
|
|
88
|
+
export interface BlackBoxControlReceiptV1 {
|
|
89
|
+
readonly schemaVersion: 1;
|
|
90
|
+
readonly requestId: string;
|
|
91
|
+
readonly bindingDigest: string;
|
|
92
|
+
readonly policyDigest: string;
|
|
93
|
+
readonly selectedItemDigests: readonly string[];
|
|
94
|
+
readonly excludedItemDigests: readonly string[];
|
|
95
|
+
readonly allowedToolNames: readonly string[];
|
|
96
|
+
readonly deniedToolNames: readonly string[];
|
|
97
|
+
readonly selectedTokens: number;
|
|
98
|
+
readonly roleReinforcementDigest: string;
|
|
99
|
+
readonly memoryQueryDigest: string | null;
|
|
100
|
+
readonly disposition: "allow" | "modify" | "abstain";
|
|
101
|
+
readonly reasonCodes: readonly string[];
|
|
102
|
+
readonly step: number;
|
|
103
|
+
readonly logicalTimeMs: number;
|
|
104
|
+
readonly receiptDigest: string;
|
|
105
|
+
}
|
|
106
|
+
/** Deterministic context, memory and tool controller for opaque model APIs. */
|
|
107
|
+
export declare class ReferenceBlackBoxControllerV1 {
|
|
108
|
+
readonly policy: BlackBoxControlPolicyV1;
|
|
109
|
+
constructor(policy: BlackBoxControlPolicyV1);
|
|
110
|
+
control(request: BlackBoxControlRequestV1): {
|
|
111
|
+
readonly context: readonly BlackBoxContextItemV1[];
|
|
112
|
+
readonly allowedToolNames: readonly string[];
|
|
113
|
+
readonly roleReinforcement: string;
|
|
114
|
+
readonly receipt: BlackBoxControlReceiptV1;
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
export declare function createRepresentationControlPolicyV1(input: Omit<RepresentationControlPolicyV1, "policyDigest">): RepresentationControlPolicyV1;
|
|
118
|
+
export declare function createBlackBoxControlPolicyV1(input: Omit<BlackBoxControlPolicyV1, "policyDigest">): BlackBoxControlPolicyV1;
|
|
119
|
+
export declare function digestRepresentationVectorV1(vector: readonly number[]): string;
|
|
120
|
+
export declare function digestBlackBoxContentV1(content: string): string;
|
|
121
|
+
//# sourceMappingURL=reference-controllers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-controllers.d.ts","sourceRoot":"","sources":["../src/reference-controllers.ts"],"names":[],"mappings":"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"}
|