@agentplat/inference-control 0.3.0-beta.2 → 0.3.0-beta.4

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.
Files changed (150) hide show
  1. package/README.md +360 -0
  2. package/dist/anytime-semantic-guarantees.d.ts +216 -0
  3. package/dist/anytime-semantic-guarantees.d.ts.map +1 -0
  4. package/dist/anytime-semantic-guarantees.js +817 -0
  5. package/dist/anytime-semantic-guarantees.js.map +1 -0
  6. package/dist/assessor-ensemble-contracts.d.ts +145 -0
  7. package/dist/assessor-ensemble-contracts.d.ts.map +1 -0
  8. package/dist/assessor-ensemble-contracts.js +29 -0
  9. package/dist/assessor-ensemble-contracts.js.map +1 -0
  10. package/dist/assessor-ensemble-runtime.d.ts +55 -0
  11. package/dist/assessor-ensemble-runtime.d.ts.map +1 -0
  12. package/dist/assessor-ensemble-runtime.js +308 -0
  13. package/dist/assessor-ensemble-runtime.js.map +1 -0
  14. package/dist/assessor-ensemble-validation.d.ts +12 -0
  15. package/dist/assessor-ensemble-validation.d.ts.map +1 -0
  16. package/dist/assessor-ensemble-validation.js +156 -0
  17. package/dist/assessor-ensemble-validation.js.map +1 -0
  18. package/dist/assessor-ensemble.d.ts +4 -0
  19. package/dist/assessor-ensemble.d.ts.map +1 -0
  20. package/dist/assessor-ensemble.js +4 -0
  21. package/dist/assessor-ensemble.js.map +1 -0
  22. package/dist/cognitive-adapters.d.ts +92 -0
  23. package/dist/cognitive-adapters.d.ts.map +1 -0
  24. package/dist/cognitive-adapters.js +263 -0
  25. package/dist/cognitive-adapters.js.map +1 -0
  26. package/dist/context-integrity-analyzers.d.ts +35 -0
  27. package/dist/context-integrity-analyzers.d.ts.map +1 -0
  28. package/dist/context-integrity-analyzers.js +387 -0
  29. package/dist/context-integrity-analyzers.js.map +1 -0
  30. package/dist/context-integrity-contracts.d.ts +304 -0
  31. package/dist/context-integrity-contracts.d.ts.map +1 -0
  32. package/dist/context-integrity-contracts.js +24 -0
  33. package/dist/context-integrity-contracts.js.map +1 -0
  34. package/dist/context-integrity-model.d.ts +25 -0
  35. package/dist/context-integrity-model.d.ts.map +1 -0
  36. package/dist/context-integrity-model.js +192 -0
  37. package/dist/context-integrity-model.js.map +1 -0
  38. package/dist/context-integrity-portable-agent.d.ts +79 -0
  39. package/dist/context-integrity-portable-agent.d.ts.map +1 -0
  40. package/dist/context-integrity-portable-agent.js +511 -0
  41. package/dist/context-integrity-portable-agent.js.map +1 -0
  42. package/dist/context-integrity-role-alignment.d.ts +28 -0
  43. package/dist/context-integrity-role-alignment.d.ts.map +1 -0
  44. package/dist/context-integrity-role-alignment.js +95 -0
  45. package/dist/context-integrity-role-alignment.js.map +1 -0
  46. package/dist/context-integrity-runtime.d.ts +95 -0
  47. package/dist/context-integrity-runtime.d.ts.map +1 -0
  48. package/dist/context-integrity-runtime.js +1512 -0
  49. package/dist/context-integrity-runtime.js.map +1 -0
  50. package/dist/context-integrity.d.ts +5 -0
  51. package/dist/context-integrity.d.ts.map +1 -0
  52. package/dist/context-integrity.js +5 -0
  53. package/dist/context-integrity.js.map +1 -0
  54. package/dist/governed-role-evolution.d.ts +172 -0
  55. package/dist/governed-role-evolution.d.ts.map +1 -0
  56. package/dist/governed-role-evolution.js +613 -0
  57. package/dist/governed-role-evolution.js.map +1 -0
  58. package/dist/heterogeneous-agent-composition.d.ts +96 -0
  59. package/dist/heterogeneous-agent-composition.d.ts.map +1 -0
  60. package/dist/heterogeneous-agent-composition.js +512 -0
  61. package/dist/heterogeneous-agent-composition.js.map +1 -0
  62. package/dist/index.d.ts +21 -13
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +21 -13
  65. package/dist/index.js.map +1 -1
  66. package/dist/intervention-adapters.d.ts +29 -0
  67. package/dist/intervention-adapters.d.ts.map +1 -0
  68. package/dist/intervention-adapters.js +107 -0
  69. package/dist/intervention-adapters.js.map +1 -0
  70. package/dist/intervention-contracts.d.ts +311 -0
  71. package/dist/intervention-contracts.d.ts.map +1 -0
  72. package/dist/intervention-contracts.js +28 -0
  73. package/dist/intervention-contracts.js.map +1 -0
  74. package/dist/intervention-runtime.d.ts +86 -0
  75. package/dist/intervention-runtime.d.ts.map +1 -0
  76. package/dist/intervention-runtime.js +958 -0
  77. package/dist/intervention-runtime.js.map +1 -0
  78. package/dist/intervention-validation.d.ts +27 -0
  79. package/dist/intervention-validation.d.ts.map +1 -0
  80. package/dist/intervention-validation.js +273 -0
  81. package/dist/intervention-validation.js.map +1 -0
  82. package/dist/intervention.d.ts +6 -0
  83. package/dist/intervention.d.ts.map +1 -0
  84. package/dist/intervention.js +6 -0
  85. package/dist/intervention.js.map +1 -0
  86. package/dist/model.d.ts +18 -0
  87. package/dist/model.d.ts.map +1 -1
  88. package/dist/model.js +60 -2
  89. package/dist/model.js.map +1 -1
  90. package/dist/operational-cognitive-control.d.ts +208 -0
  91. package/dist/operational-cognitive-control.d.ts.map +1 -0
  92. package/dist/operational-cognitive-control.js +590 -0
  93. package/dist/operational-cognitive-control.js.map +1 -0
  94. package/dist/portable-agent.d.ts +50 -0
  95. package/dist/portable-agent.d.ts.map +1 -0
  96. package/dist/portable-agent.js +243 -0
  97. package/dist/portable-agent.js.map +1 -0
  98. package/dist/reference-controllers.d.ts +121 -0
  99. package/dist/reference-controllers.d.ts.map +1 -0
  100. package/dist/reference-controllers.js +411 -0
  101. package/dist/reference-controllers.js.map +1 -0
  102. package/dist/role-alignment-portable-agent.d.ts +145 -0
  103. package/dist/role-alignment-portable-agent.d.ts.map +1 -0
  104. package/dist/role-alignment-portable-agent.js +484 -0
  105. package/dist/role-alignment-portable-agent.js.map +1 -0
  106. package/dist/role-alignment.d.ts +226 -0
  107. package/dist/role-alignment.d.ts.map +1 -0
  108. package/dist/role-alignment.js +1074 -0
  109. package/dist/role-alignment.js.map +1 -0
  110. package/dist/role-realignment-portable-agent.d.ts +163 -0
  111. package/dist/role-realignment-portable-agent.d.ts.map +1 -0
  112. package/dist/role-realignment-portable-agent.js +634 -0
  113. package/dist/role-realignment-portable-agent.js.map +1 -0
  114. package/dist/role-realignment.d.ts +368 -0
  115. package/dist/role-realignment.d.ts.map +1 -0
  116. package/dist/role-realignment.js +1609 -0
  117. package/dist/role-realignment.js.map +1 -0
  118. package/dist/semantic-alignment-assessors.d.ts +12 -0
  119. package/dist/semantic-alignment-assessors.d.ts.map +1 -0
  120. package/dist/semantic-alignment-assessors.js +55 -0
  121. package/dist/semantic-alignment-assessors.js.map +1 -0
  122. package/dist/semantic-alignment-contracts.d.ts +385 -0
  123. package/dist/semantic-alignment-contracts.d.ts.map +1 -0
  124. package/dist/semantic-alignment-contracts.js +16 -0
  125. package/dist/semantic-alignment-contracts.js.map +1 -0
  126. package/dist/semantic-alignment-memory.d.ts +53 -0
  127. package/dist/semantic-alignment-memory.d.ts.map +1 -0
  128. package/dist/semantic-alignment-memory.js +170 -0
  129. package/dist/semantic-alignment-memory.js.map +1 -0
  130. package/dist/semantic-alignment-runtime.d.ts +67 -0
  131. package/dist/semantic-alignment-runtime.d.ts.map +1 -0
  132. package/dist/semantic-alignment-runtime.js +778 -0
  133. package/dist/semantic-alignment-runtime.js.map +1 -0
  134. package/dist/semantic-alignment-validation.d.ts +31 -0
  135. package/dist/semantic-alignment-validation.d.ts.map +1 -0
  136. package/dist/semantic-alignment-validation.js +477 -0
  137. package/dist/semantic-alignment-validation.js.map +1 -0
  138. package/dist/semantic-alignment.d.ts +8 -0
  139. package/dist/semantic-alignment.d.ts.map +1 -0
  140. package/dist/semantic-alignment.js +8 -0
  141. package/dist/semantic-alignment.js.map +1 -0
  142. package/dist/semantic-horizon-budget.d.ts +118 -0
  143. package/dist/semantic-horizon-budget.d.ts.map +1 -0
  144. package/dist/semantic-horizon-budget.js +536 -0
  145. package/dist/semantic-horizon-budget.js.map +1 -0
  146. package/dist/semantic-metric-engine.d.ts +96 -0
  147. package/dist/semantic-metric-engine.d.ts.map +1 -0
  148. package/dist/semantic-metric-engine.js +396 -0
  149. package/dist/semantic-metric-engine.js.map +1 -0
  150. package/package.json +79 -7
@@ -0,0 +1,411 @@
1
+ import { sha256Hex } from "./sha256.js";
2
+ /**
3
+ * Reference activation steering controller. Vectors are volatile; the receipt
4
+ * retains only their content digests and bounded control measurements.
5
+ */
6
+ export class ReferenceRepresentationControllerV1 {
7
+ policy;
8
+ constructor(policy) {
9
+ validateRepresentationPolicy(policy);
10
+ this.policy = immutable(policy);
11
+ }
12
+ intervene(request) {
13
+ const dimensions = validateRepresentationRequest(request, this.policy);
14
+ const actualActivationDigest = digestVector(request.activation);
15
+ const actualRoleDigest = digestVector(request.roleVector);
16
+ if (actualActivationDigest !== request.activationDigest ||
17
+ actualRoleDigest !== request.roleVectorDigest ||
18
+ request.prohibitedVectors.some((item) => digestVector(item.values) !== item.vectorDigest))
19
+ return this.rejected(request, dimensions, "representation_digest_mismatch");
20
+ const inputNorm = norm(request.activation);
21
+ if (inputNorm < this.policy.minimumInputNorm)
22
+ return this.rejected(request, dimensions, "activation_norm_below_minimum");
23
+ let controlled = [...request.activation];
24
+ const prohibitedBasis = orthonormalBasis(request.prohibitedVectors.map((item) => item.values));
25
+ const removal = this.policy.prohibitedProjectionRemovalBasisPoints / 10_000;
26
+ for (const direction of prohibitedBasis) {
27
+ const projection = dot(controlled, direction);
28
+ controlled = subtract(controlled, scale(direction, projection * removal));
29
+ }
30
+ const role = normalize(request.roleVector);
31
+ const roleProjection = dot(controlled, role);
32
+ const targetRoleProjection = Math.max(roleProjection, inputNorm);
33
+ const steering = this.policy.steeringStrengthBasisPoints / 10_000;
34
+ controlled = add(controlled, scale(role, Math.max(0, targetRoleProjection - roleProjection) * steering));
35
+ let delta = subtract(controlled, request.activation);
36
+ const maximumDelta = inputNorm * this.policy.maximumDeltaNormBasisPoints / 10_000;
37
+ const deltaNorm = norm(delta);
38
+ if (deltaNorm > maximumDelta && deltaNorm > 0) {
39
+ delta = scale(delta, maximumDelta / deltaNorm);
40
+ controlled = add(request.activation, delta);
41
+ }
42
+ controlled = controlled.map((item) => finiteRound(item));
43
+ const outputActivationDigest = digestVector(controlled);
44
+ const appliedDelta = norm(subtract(controlled, request.activation));
45
+ const deltaNormBasisPoints = clampBps(Math.round(appliedDelta / inputNorm * 10_000));
46
+ const removedProjectionBasisPoints = prohibitedBasis.length === 0
47
+ ? 0
48
+ : clampBps(Math.round(prohibitedBasis.reduce((sum, direction) => sum + Math.abs(dot(request.activation, direction) - dot(controlled, direction)), 0) / (inputNorm * prohibitedBasis.length) * 10_000));
49
+ const body = {
50
+ schemaVersion: 1,
51
+ requestId: request.requestId,
52
+ bindingDigest: request.bindingDigest,
53
+ policyDigest: this.policy.policyDigest,
54
+ roleVectorDigest: request.roleVectorDigest,
55
+ inputActivationDigest: request.activationDigest,
56
+ outputActivationDigest,
57
+ dimensions,
58
+ appliedStrengthBasisPoints: this.policy.steeringStrengthBasisPoints,
59
+ removedProjectionBasisPoints,
60
+ deltaNormBasisPoints,
61
+ result: (deltaNormBasisPoints === 0 ? "not_required" : "applied"),
62
+ reasonCode: deltaNormBasisPoints === 0 ? "representation_within_bounds" : "representation_control_applied",
63
+ step: request.step,
64
+ logicalTimeMs: request.logicalTimeMs,
65
+ };
66
+ return Object.freeze({
67
+ activation: Object.freeze(controlled),
68
+ receipt: receipt(body),
69
+ });
70
+ }
71
+ rejected(request, dimensions, reasonCode) {
72
+ const body = {
73
+ schemaVersion: 1,
74
+ requestId: request.requestId,
75
+ bindingDigest: request.bindingDigest,
76
+ policyDigest: this.policy.policyDigest,
77
+ roleVectorDigest: request.roleVectorDigest,
78
+ inputActivationDigest: request.activationDigest,
79
+ outputActivationDigest: request.activationDigest,
80
+ dimensions,
81
+ appliedStrengthBasisPoints: 0,
82
+ removedProjectionBasisPoints: 0,
83
+ deltaNormBasisPoints: 0,
84
+ result: "rejected",
85
+ reasonCode,
86
+ step: request.step,
87
+ logicalTimeMs: request.logicalTimeMs,
88
+ };
89
+ return Object.freeze({
90
+ activation: Object.freeze([...request.activation]),
91
+ receipt: receipt(body),
92
+ });
93
+ }
94
+ }
95
+ /** Deterministic context, memory and tool controller for opaque model APIs. */
96
+ export class ReferenceBlackBoxControllerV1 {
97
+ policy;
98
+ constructor(policy) {
99
+ validateBlackBoxPolicy(policy);
100
+ this.policy = immutable(policy);
101
+ }
102
+ control(request) {
103
+ validateBlackBoxRequest(request, this.policy);
104
+ const reasons = new Set();
105
+ const excluded = [];
106
+ const candidates = [];
107
+ for (const item of request.context) {
108
+ const protectedItem = this.policy.protectedZones.includes(item.sourceZone);
109
+ if (digestText(item.content) !== item.contentDigest) {
110
+ excluded.push(item);
111
+ reasons.add("context_digest_mismatch");
112
+ }
113
+ else if (!protectedItem && item.riskBasisPoints > this.policy.maximumRiskBasisPoints) {
114
+ excluded.push(item);
115
+ reasons.add("context_risk_above_threshold");
116
+ }
117
+ else if (!protectedItem && item.trustBasisPoints < this.policy.minimumTrustBasisPoints) {
118
+ excluded.push(item);
119
+ reasons.add("context_trust_below_threshold");
120
+ }
121
+ else
122
+ candidates.push(item);
123
+ }
124
+ candidates.sort((left, right) => Number(this.policy.protectedZones.includes(right.sourceZone)) -
125
+ Number(this.policy.protectedZones.includes(left.sourceZone)) ||
126
+ Number(right.essential) - Number(left.essential) ||
127
+ right.trustBasisPoints - left.trustBasisPoints ||
128
+ left.riskBasisPoints - right.riskBasisPoints ||
129
+ left.itemId.localeCompare(right.itemId));
130
+ const selected = [];
131
+ const groupCounts = new Map();
132
+ let tokens = 0;
133
+ for (const item of candidates) {
134
+ const count = groupCounts.get(item.independenceGroup) ?? 0;
135
+ if (count >= this.policy.maximumItemsPerIndependenceGroup) {
136
+ excluded.push(item);
137
+ reasons.add("context_dependency_group_capped");
138
+ continue;
139
+ }
140
+ if (tokens + item.tokenEstimate > this.policy.maximumContextTokens) {
141
+ excluded.push(item);
142
+ reasons.add("context_budget_exhausted");
143
+ continue;
144
+ }
145
+ selected.push(item);
146
+ tokens += item.tokenEstimate;
147
+ groupCounts.set(item.independenceGroup, count + 1);
148
+ }
149
+ const allowedSet = new Set(this.policy.allowedToolNames);
150
+ const allowedToolNames = [...new Set(request.requestedToolNames.filter((item) => allowedSet.has(item)))].sort();
151
+ const deniedToolNames = [...new Set(request.requestedToolNames.filter((item) => !allowedSet.has(item)))].sort();
152
+ if (deniedToolNames.length)
153
+ reasons.add("tool_not_authorized");
154
+ const protectedUnavailable = this.policy.protectedZones.some((zone) => request.context.some((item) => item.sourceZone === zone) && !selected.some((item) => item.sourceZone === zone));
155
+ if (protectedUnavailable)
156
+ reasons.add("protected_context_unavailable");
157
+ const disposition = protectedUnavailable
158
+ ? "abstain"
159
+ : excluded.length || deniedToolNames.length
160
+ ? "modify"
161
+ : "allow";
162
+ if (reasons.size === 0)
163
+ reasons.add("black_box_context_within_bounds");
164
+ const body = {
165
+ schemaVersion: 1,
166
+ requestId: request.requestId,
167
+ bindingDigest: request.bindingDigest,
168
+ policyDigest: this.policy.policyDigest,
169
+ selectedItemDigests: selected.map((item) => item.contentDigest).sort(),
170
+ excludedItemDigests: excluded.map((item) => item.contentDigest).sort(),
171
+ allowedToolNames,
172
+ deniedToolNames,
173
+ selectedTokens: tokens,
174
+ roleReinforcementDigest: this.policy.roleReinforcementDigest,
175
+ memoryQueryDigest: request.memoryQueryDigest,
176
+ disposition: disposition,
177
+ reasonCodes: [...reasons].sort(),
178
+ step: request.step,
179
+ logicalTimeMs: request.logicalTimeMs,
180
+ };
181
+ return Object.freeze({
182
+ context: Object.freeze(selected.map((item) => Object.freeze(structuredClone(item)))),
183
+ allowedToolNames: Object.freeze(allowedToolNames),
184
+ roleReinforcement: this.policy.roleReinforcement,
185
+ receipt: blackBoxReceipt(body),
186
+ });
187
+ }
188
+ }
189
+ function receipt(body) {
190
+ return Object.freeze({
191
+ ...body,
192
+ receiptDigest: digestJson("representation-control-receipt-v1", body),
193
+ });
194
+ }
195
+ function blackBoxReceipt(body) {
196
+ return Object.freeze({
197
+ ...body,
198
+ receiptDigest: digestJson("black-box-control-receipt-v1", body),
199
+ });
200
+ }
201
+ export function createRepresentationControlPolicyV1(input) {
202
+ validateRepresentationPolicyBody(input);
203
+ const body = immutable(input);
204
+ return immutable({
205
+ ...body,
206
+ policyDigest: digestJson("representation-control-policy-v1", body),
207
+ });
208
+ }
209
+ export function createBlackBoxControlPolicyV1(input) {
210
+ validateBlackBoxPolicyBody(input);
211
+ const body = immutable(input);
212
+ return immutable({
213
+ ...body,
214
+ policyDigest: digestJson("black-box-control-policy-v1", body),
215
+ });
216
+ }
217
+ function validateRepresentationPolicy(policy) {
218
+ digest(policy.policyDigest, "policyDigest");
219
+ const { policyDigest, ...body } = policy;
220
+ validateRepresentationPolicyBody(body);
221
+ if (digestJson("representation-control-policy-v1", body) !== policyDigest)
222
+ throw new TypeError("representation_control_policy_digest_mismatch");
223
+ }
224
+ function validateRepresentationPolicyBody(policy) {
225
+ bps(policy.steeringStrengthBasisPoints, "steeringStrengthBasisPoints");
226
+ bps(policy.prohibitedProjectionRemovalBasisPoints, "prohibitedProjectionRemovalBasisPoints");
227
+ bps(policy.maximumDeltaNormBasisPoints, "maximumDeltaNormBasisPoints");
228
+ if (!Number.isFinite(policy.minimumInputNorm) || policy.minimumInputNorm <= 0)
229
+ throw new RangeError("minimumInputNorm_invalid");
230
+ integer(policy.maximumDimensions, "maximumDimensions", 1, 1_000_000);
231
+ }
232
+ function validateRepresentationRequest(request, policy) {
233
+ identifier(request.requestId, "requestId");
234
+ digest(request.bindingDigest, "bindingDigest");
235
+ digest(request.roleVectorDigest, "roleVectorDigest");
236
+ digest(request.activationDigest, "activationDigest");
237
+ integer(request.step, "step", 0, Number.MAX_SAFE_INTEGER);
238
+ integer(request.logicalTimeMs, "logicalTimeMs", 0, Number.MAX_SAFE_INTEGER);
239
+ const dimensions = request.activation.length;
240
+ if (dimensions < 1 || dimensions > policy.maximumDimensions || request.roleVector.length !== dimensions)
241
+ throw new RangeError("representation_dimensions_invalid");
242
+ validateVector(request.activation, dimensions);
243
+ validateVector(request.roleVector, dimensions);
244
+ if (request.prohibitedVectors.length > 256)
245
+ throw new RangeError("prohibited_vector_limit_exceeded");
246
+ for (const item of request.prohibitedVectors) {
247
+ digest(item.vectorDigest, "prohibitedVector.vectorDigest");
248
+ validateVector(item.values, dimensions);
249
+ }
250
+ return dimensions;
251
+ }
252
+ function validateBlackBoxPolicy(policy) {
253
+ digest(policy.policyDigest, "policyDigest");
254
+ const { policyDigest, ...body } = policy;
255
+ validateBlackBoxPolicyBody(body);
256
+ if (digestJson("black-box-control-policy-v1", body) !== policyDigest)
257
+ throw new TypeError("black_box_control_policy_digest_mismatch");
258
+ }
259
+ function validateBlackBoxPolicyBody(policy) {
260
+ integer(policy.maximumContextTokens, "maximumContextTokens", 1, 10_000_000);
261
+ integer(policy.maximumContextItems, "maximumContextItems", 1, 100_000);
262
+ integer(policy.maximumContextItemBytes, "maximumContextItemBytes", 1, 1_048_576);
263
+ bps(policy.minimumTrustBasisPoints, "minimumTrustBasisPoints");
264
+ bps(policy.maximumRiskBasisPoints, "maximumRiskBasisPoints");
265
+ integer(policy.maximumItemsPerIndependenceGroup, "maximumItemsPerIndependenceGroup", 1, 10_000);
266
+ canonicalTokens(policy.allowedToolNames, "allowedToolNames");
267
+ const allowedZones = [
268
+ "authority", "local", "mission", "peer", "provider", "retrieval", "role", "tool",
269
+ ];
270
+ if (new Set(policy.protectedZones).size !== policy.protectedZones.length ||
271
+ policy.protectedZones.some((item) => !allowedZones.includes(item)) ||
272
+ policy.protectedZones.some((item, index) => index > 0 && policy.protectedZones[index - 1] > item))
273
+ throw new TypeError("protectedZones_must_be_canonical");
274
+ if (typeof policy.roleReinforcement !== "string" || policy.roleReinforcement.length === 0 || policy.roleReinforcement.length > 32_768)
275
+ throw new TypeError("roleReinforcement_invalid");
276
+ digest(policy.roleReinforcementDigest, "roleReinforcementDigest");
277
+ if (digestText(policy.roleReinforcement) !== policy.roleReinforcementDigest)
278
+ throw new TypeError("roleReinforcementDigest_mismatch");
279
+ }
280
+ function validateBlackBoxRequest(request, policy) {
281
+ identifier(request.requestId, "requestId");
282
+ digest(request.bindingDigest, "bindingDigest");
283
+ integer(request.step, "step", 0, Number.MAX_SAFE_INTEGER);
284
+ integer(request.logicalTimeMs, "logicalTimeMs", 0, Number.MAX_SAFE_INTEGER);
285
+ if (request.context.length > policy.maximumContextItems)
286
+ throw new RangeError("context_item_limit_exceeded");
287
+ canonicalTokens([...new Set(request.requestedToolNames)].sort(), "requestedToolNames");
288
+ if (request.memoryQueryDigest !== null)
289
+ digest(request.memoryQueryDigest, "memoryQueryDigest");
290
+ const ids = new Set();
291
+ for (const item of request.context) {
292
+ identifier(item.itemId, "context.itemId");
293
+ if (ids.has(item.itemId))
294
+ throw new TypeError("context_item_duplicate");
295
+ ids.add(item.itemId);
296
+ digest(item.contentDigest, "context.contentDigest");
297
+ if (typeof item.content !== "string" || new TextEncoder().encode(item.content).byteLength > policy.maximumContextItemBytes)
298
+ throw new RangeError("context_item_bytes_exceeded");
299
+ if (!["authority", "local", "mission", "peer", "provider", "retrieval", "role", "tool"].includes(item.sourceZone))
300
+ throw new TypeError("context_source_zone_invalid");
301
+ bps(item.trustBasisPoints, "context.trustBasisPoints");
302
+ bps(item.riskBasisPoints, "context.riskBasisPoints");
303
+ integer(item.tokenEstimate, "context.tokenEstimate", 1, 10_000_000);
304
+ if (typeof item.essential !== "boolean")
305
+ throw new TypeError("context_essential_flag_invalid");
306
+ identifier(item.independenceGroup, "context.independenceGroup");
307
+ }
308
+ }
309
+ function validateVector(vector, dimensions) {
310
+ if (!Array.isArray(vector) || vector.length !== dimensions || vector.some((item) => !Number.isFinite(item) || Math.abs(item) > 1_000_000))
311
+ throw new TypeError("representation_vector_invalid");
312
+ if (norm(vector) === 0)
313
+ throw new TypeError("representation_vector_zero");
314
+ }
315
+ function orthonormalBasis(vectors) {
316
+ const basis = [];
317
+ for (const source of vectors) {
318
+ let candidate = [...source];
319
+ for (const prior of basis)
320
+ candidate = subtract(candidate, scale(prior, dot(candidate, prior)));
321
+ if (norm(candidate) > 1e-12)
322
+ basis.push(normalize(candidate));
323
+ }
324
+ return basis;
325
+ }
326
+ function normalize(vector) {
327
+ const magnitude = norm(vector);
328
+ return vector.map((item) => item / magnitude);
329
+ }
330
+ function norm(vector) {
331
+ return Math.sqrt(vector.reduce((sum, item) => sum + item * item, 0));
332
+ }
333
+ function dot(left, right) {
334
+ return left.reduce((sum, item, index) => sum + item * right[index], 0);
335
+ }
336
+ function add(left, right) {
337
+ return left.map((item, index) => item + right[index]);
338
+ }
339
+ function subtract(left, right) {
340
+ return left.map((item, index) => item - right[index]);
341
+ }
342
+ function scale(vector, factor) {
343
+ return vector.map((item) => item * factor);
344
+ }
345
+ function finiteRound(value) {
346
+ const rounded = Math.round(value * 1_000_000_000_000) / 1_000_000_000_000;
347
+ if (!Number.isFinite(rounded))
348
+ throw new RangeError("representation_arithmetic_overflow");
349
+ return Object.is(rounded, -0) ? 0 : rounded;
350
+ }
351
+ export function digestRepresentationVectorV1(vector) {
352
+ return digestVector(vector);
353
+ }
354
+ export function digestBlackBoxContentV1(content) {
355
+ return digestText(content);
356
+ }
357
+ function digestVector(vector) {
358
+ return digestJson("representation-vector-v1", vector.map(finiteRound));
359
+ }
360
+ function digestText(value) {
361
+ return `sha256:${sha256Hex(new TextEncoder().encode(`black-box-content-v1\u0000${value}`))}`;
362
+ }
363
+ function digestJson(domain, value) {
364
+ return `sha256:${sha256Hex(new TextEncoder().encode(`${domain}\u0000${canonical(value)}`))}`;
365
+ }
366
+ function canonical(value) {
367
+ if (value === null || typeof value !== "object")
368
+ return JSON.stringify(value);
369
+ if (Array.isArray(value))
370
+ return `[${value.map(canonical).join(",")}]`;
371
+ return `{${Object.keys(value).sort().map((key) => `${JSON.stringify(key)}:${canonical(value[key])}`).join(",")}}`;
372
+ }
373
+ function digest(value, label) {
374
+ if (typeof value !== "string" || !/^sha256:[a-f0-9]{64}$/.test(value))
375
+ throw new TypeError(`${label}_invalid`);
376
+ }
377
+ function identifier(value, label) {
378
+ if (typeof value !== "string" || !/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,239}$/.test(value))
379
+ throw new TypeError(`${label}_invalid`);
380
+ }
381
+ function canonicalTokens(values, label) {
382
+ if (values.length > 10_000 || values.some((item) => !/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,239}$/.test(item)))
383
+ throw new TypeError(`${label}_invalid`);
384
+ const canonicalValues = [...new Set(values)].sort();
385
+ if (canonicalValues.length !== values.length || canonicalValues.some((item, index) => item !== values[index]))
386
+ throw new TypeError(`${label}_must_be_canonical`);
387
+ }
388
+ function integer(value, label, minimum, maximum) {
389
+ if (!Number.isSafeInteger(value) || value < minimum || value > maximum)
390
+ throw new RangeError(`${label}_invalid`);
391
+ return value;
392
+ }
393
+ function bps(value, label) {
394
+ return integer(value, label, 0, 10_000);
395
+ }
396
+ function clampBps(value) {
397
+ return Math.max(0, Math.min(10_000, Math.round(value)));
398
+ }
399
+ function immutable(value) {
400
+ const clone = structuredClone(value);
401
+ const freeze = (item) => {
402
+ if (!item || typeof item !== "object" || Object.isFrozen(item))
403
+ return;
404
+ for (const child of Object.values(item))
405
+ freeze(child);
406
+ Object.freeze(item);
407
+ };
408
+ freeze(clone);
409
+ return clone;
410
+ }
411
+ //# sourceMappingURL=reference-controllers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-controllers.js","sourceRoot":"","sources":["../src/reference-controllers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { type PortableAgentCheckpointTransferV1, type PortableAgentControlPortV1, type PortableAgentControlRequestV1, type PortableAgentRoleBindingV1 } from '@agentplat/runtime/adapter';
2
+ import { type RoleAlignmentCheckpointV1, type RoleAlignmentDecisionV1, type RoleAlignmentEventV1, type RoleAlignmentPolicyV1, type RoleAlignmentStateV1 } from './role-alignment.js';
3
+ export interface RoleAlignmentAssessorBindingV1 {
4
+ readonly schemaVersion: 1;
5
+ readonly assessorId: string;
6
+ readonly assessorVersion: number;
7
+ readonly assessorBindingDigest: string;
8
+ }
9
+ export interface RoleAlignmentAssessmentRequestV1 {
10
+ readonly schemaVersion: 1;
11
+ readonly assessmentRequestId: string;
12
+ readonly targetDigest: string;
13
+ readonly controllerId: string;
14
+ readonly controllerVersion: number;
15
+ readonly implementationId: string;
16
+ readonly policyId: string;
17
+ readonly policyVersion: number;
18
+ readonly policyDigest: string;
19
+ readonly tenantId: string;
20
+ readonly sessionId: string;
21
+ readonly agentId: string;
22
+ readonly stepId: string;
23
+ readonly checkpoint: RoleAlignmentCheckpointV1;
24
+ readonly roleAnchorDigest: string;
25
+ readonly roleRevision: number;
26
+ readonly stateRevision: number;
27
+ readonly previousRollingCoherenceBps: number | null;
28
+ readonly previousDegraded: boolean;
29
+ readonly createdAtLogicalMs: number;
30
+ readonly expiresAtLogicalMs: number;
31
+ }
32
+ export interface RoleAlignmentAssessmentV1 {
33
+ readonly schemaVersion: 1;
34
+ readonly assessmentId: string;
35
+ readonly assessmentRequestId: string;
36
+ readonly targetDigest: string;
37
+ readonly assessorId: string;
38
+ readonly assessorVersion: number;
39
+ readonly assessorBindingDigest: string;
40
+ readonly coherenceBps: number;
41
+ readonly uncertaintyBps: number;
42
+ readonly contextInconsistencyBps: number;
43
+ readonly hardViolation: boolean;
44
+ readonly reasonCodes: readonly string[];
45
+ readonly evidenceReferenceIds: readonly string[];
46
+ readonly assessedAtLogicalMs: number;
47
+ }
48
+ /** The target is supplied as data; returning an assessment never grants authority. */
49
+ export interface RoleAlignmentAssessorV1 {
50
+ assess(request: RoleAlignmentAssessmentRequestV1, target: PortableAgentControlRequestV1): Promise<RoleAlignmentAssessmentV1> | RoleAlignmentAssessmentV1;
51
+ }
52
+ /** Atomic revision-checked persistence boundary for controller state. */
53
+ export interface RoleAlignmentStateStoreV1 {
54
+ load(sessionId: string): Promise<RoleAlignmentStateV1 | undefined>;
55
+ save(state: RoleAlignmentStateV1, expectedRevision: number | null): Promise<void>;
56
+ }
57
+ export declare class RoleAlignmentStoreConflictErrorV1 extends Error {
58
+ readonly name = "RoleAlignmentStoreConflictErrorV1";
59
+ constructor(message?: string);
60
+ }
61
+ export declare class InMemoryRoleAlignmentStateStoreV1 implements RoleAlignmentStateStoreV1 {
62
+ private readonly states;
63
+ load(sessionId: string): Promise<RoleAlignmentStateV1 | undefined>;
64
+ save(state: RoleAlignmentStateV1, expectedRevision: number | null): Promise<void>;
65
+ }
66
+ export interface RoleAlignmentDecisionObserverV1 {
67
+ observe(input: {
68
+ readonly state: RoleAlignmentStateV1;
69
+ readonly event: RoleAlignmentEventV1;
70
+ readonly decision: RoleAlignmentDecisionV1;
71
+ }): Promise<void> | void;
72
+ }
73
+ export interface CreateRoleAlignmentPortableAgentControlV1 {
74
+ readonly controlId: string;
75
+ readonly controlVersion: number;
76
+ readonly implementationId: string;
77
+ readonly policy: RoleAlignmentPolicyV1;
78
+ readonly assessorBinding: RoleAlignmentAssessorBindingV1;
79
+ readonly assessor: RoleAlignmentAssessorV1;
80
+ readonly assessmentTtlMs: number;
81
+ readonly stateStore?: RoleAlignmentStateStoreV1;
82
+ /** Best-effort content-free observation; failure never changes enforcement. */
83
+ readonly decisionObserver?: RoleAlignmentDecisionObserverV1;
84
+ }
85
+ export interface RoleAlignmentHandoffEnvelopeV1 {
86
+ readonly schemaVersion: 1;
87
+ readonly contentClass: 'role_alignment_state';
88
+ readonly controllerId: string;
89
+ readonly controllerVersion: number;
90
+ readonly implementationId: string;
91
+ readonly policyDigest: string;
92
+ readonly sourceSessionId: string;
93
+ readonly sourceAgentId: string;
94
+ readonly sourceRoleAnchorDigest: string;
95
+ readonly checkpointTransferDigest: string;
96
+ readonly sourceState: RoleAlignmentStateV1;
97
+ readonly exportedAtLogicalMs: number;
98
+ readonly handoffDigest: string;
99
+ }
100
+ export interface RoleAlignmentPortableAgentControlV1 extends PortableAgentControlPortV1 {
101
+ readonly binding: Readonly<{
102
+ readonly policyId: string;
103
+ readonly policyVersion: number;
104
+ readonly policyDigest: string;
105
+ readonly assessorId: string;
106
+ readonly assessorVersion: number;
107
+ readonly assessorBindingDigest: string;
108
+ }>;
109
+ getState(sessionId: string): Promise<RoleAlignmentStateV1 | undefined>;
110
+ activateSessionRole(input: {
111
+ readonly sessionId: string;
112
+ readonly expectedRevision: number;
113
+ readonly tenantId: string;
114
+ readonly agentId: string;
115
+ readonly role: PortableAgentRoleBindingV1;
116
+ readonly logicalTimeMs: number;
117
+ }): Promise<RoleAlignmentStateV1>;
118
+ resumeSession(input: {
119
+ readonly sessionId: string;
120
+ readonly expectedRevision: number;
121
+ readonly logicalTimeMs: number;
122
+ readonly reasonCode: string;
123
+ }): Promise<RoleAlignmentStateV1>;
124
+ closeSession(input: {
125
+ readonly sessionId: string;
126
+ readonly expectedRevision: number;
127
+ readonly logicalTimeMs: number;
128
+ readonly reasonCode: string;
129
+ }): Promise<RoleAlignmentStateV1>;
130
+ exportHandoff(input: {
131
+ readonly sessionId: string;
132
+ readonly checkpointTransfer: PortableAgentCheckpointTransferV1;
133
+ readonly logicalTimeMs: number;
134
+ }): Promise<RoleAlignmentHandoffEnvelopeV1>;
135
+ importHandoff(input: {
136
+ readonly handoff: RoleAlignmentHandoffEnvelopeV1;
137
+ readonly checkpointTransfer: PortableAgentCheckpointTransferV1;
138
+ readonly targetSessionId: string;
139
+ readonly targetAgentId: string;
140
+ readonly targetRole: PortableAgentRoleBindingV1;
141
+ readonly logicalTimeMs: number;
142
+ }): Promise<RoleAlignmentStateV1>;
143
+ }
144
+ export declare function createRoleAlignmentPortableAgentControlV1(options: CreateRoleAlignmentPortableAgentControlV1): RoleAlignmentPortableAgentControlV1;
145
+ //# sourceMappingURL=role-alignment-portable-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-alignment-portable-agent.d.ts","sourceRoot":"","sources":["../src/role-alignment-portable-agent.ts"],"names":[],"mappings":"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"}