@agentplat/inference-control 0.3.0-alpha.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/LICENSE +202 -0
- package/README.md +101 -0
- package/dist/assessments.d.ts +5 -0
- package/dist/assessments.d.ts.map +1 -0
- package/dist/assessments.js +216 -0
- package/dist/assessments.js.map +1 -0
- package/dist/boundary.d.ts +24 -0
- package/dist/boundary.d.ts.map +1 -0
- package/dist/boundary.js +46 -0
- package/dist/boundary.js.map +1 -0
- package/dist/canonical.d.ts +6 -0
- package/dist/canonical.d.ts.map +1 -0
- package/dist/canonical.js +74 -0
- package/dist/canonical.js.map +1 -0
- package/dist/capabilities.d.ts +43 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +304 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/context.d.ts +7 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +191 -0
- package/dist/context.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/messages.d.ts +124 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +475 -0
- package/dist/messages.js.map +1 -0
- package/dist/model.d.ts +104 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +437 -0
- package/dist/model.js.map +1 -0
- package/dist/policy.d.ts +11 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +338 -0
- package/dist/policy.js.map +1 -0
- package/dist/reducer.d.ts +193 -0
- package/dist/reducer.d.ts.map +1 -0
- package/dist/reducer.js +1341 -0
- package/dist/reducer.js.map +1 -0
- package/dist/runtime.d.ts +132 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +587 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scopes.d.ts +3 -0
- package/dist/scopes.d.ts.map +1 -0
- package/dist/scopes.js +83 -0
- package/dist/scopes.js.map +1 -0
- package/dist/sha256.d.ts +2 -0
- package/dist/sha256.d.ts.map +1 -0
- package/dist/sha256.js +72 -0
- package/dist/sha256.js.map +1 -0
- package/dist/state-records.d.ts +8 -0
- package/dist/state-records.d.ts.map +1 -0
- package/dist/state-records.js +204 -0
- package/dist/state-records.js.map +1 -0
- package/dist/state.d.ts +19 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +689 -0
- package/dist/state.js.map +1 -0
- package/dist/streams.d.ts +5 -0
- package/dist/streams.d.ts.map +1 -0
- package/dist/streams.js +93 -0
- package/dist/streams.js.map +1 -0
- package/dist/telemetry.d.ts +12 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +20 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tools.d.ts +221 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +755 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +474 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +43 -0
- package/dist/types.js.map +1 -0
- package/dist/validation.d.ts +23 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +154 -0
- package/dist/validation.js.map +1 -0
- package/package.json +56 -0
package/dist/policy.js
ADDED
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
import { canonicalizeControlJsonV1, digestControlJsonV1 } from './canonical.js';
|
|
2
|
+
import { INFERENCE_CONTROL_LIMITS_V1, assertDigest, assertControlToken, assertExactKeys, assertIdentifier, assertOneOf, assertSafeInteger, deepFreeze, sortedUnique, } from './validation.js';
|
|
3
|
+
export function validateInferenceControlPolicyV1(value) {
|
|
4
|
+
const keys = [
|
|
5
|
+
'schemaVersion',
|
|
6
|
+
'policyId',
|
|
7
|
+
'policyVersion',
|
|
8
|
+
'parentPolicyDigest',
|
|
9
|
+
'mode',
|
|
10
|
+
'outputRisk',
|
|
11
|
+
'checkpoints',
|
|
12
|
+
'requiredCapabilities',
|
|
13
|
+
'minimumCapabilityAssurance',
|
|
14
|
+
'allowedCapabilityBindings',
|
|
15
|
+
'allowedContextZones',
|
|
16
|
+
'allowedTransformerBindings',
|
|
17
|
+
'allowedActions',
|
|
18
|
+
'allowedMessageChannels',
|
|
19
|
+
'assessmentBindings',
|
|
20
|
+
'budgets',
|
|
21
|
+
'limits',
|
|
22
|
+
'maximumRunDurationMs',
|
|
23
|
+
'maximumAssessmentTtlMs',
|
|
24
|
+
'maximumGrantTtlMs',
|
|
25
|
+
'maximumMessagePermitTtlMs',
|
|
26
|
+
'exhaustedDisposition',
|
|
27
|
+
'coordinatedActionsRequired',
|
|
28
|
+
'diagnosticsPolicyId',
|
|
29
|
+
'redactionPolicyId',
|
|
30
|
+
];
|
|
31
|
+
assertExactKeys(value, keys, 'policy');
|
|
32
|
+
const v = value;
|
|
33
|
+
if (v.schemaVersion !== 1)
|
|
34
|
+
throw new TypeError('Unsupported policy schema');
|
|
35
|
+
for (const key of [
|
|
36
|
+
'policyId',
|
|
37
|
+
'diagnosticsPolicyId',
|
|
38
|
+
'redactionPolicyId',
|
|
39
|
+
])
|
|
40
|
+
assertIdentifier(v[key], key);
|
|
41
|
+
assertSafeInteger(v.policyVersion, 'policyVersion', 1);
|
|
42
|
+
if (v.parentPolicyDigest !== null)
|
|
43
|
+
assertDigest(v.parentPolicyDigest, 'parentPolicyDigest');
|
|
44
|
+
assertOneOf(v.mode, ['observe', 'buffered', 'incremental'], 'mode');
|
|
45
|
+
assertOneOf(v.outputRisk, ['low', 'moderate', 'high'], 'outputRisk');
|
|
46
|
+
assertOneOf(v.minimumCapabilityAssurance, ['verified', 'declared'], 'minimumCapabilityAssurance');
|
|
47
|
+
assertOneOf(v.exhaustedDisposition, ['abstain', 'escalate', 'deny'], 'exhaustedDisposition');
|
|
48
|
+
for (const key of [
|
|
49
|
+
'checkpoints',
|
|
50
|
+
'requiredCapabilities',
|
|
51
|
+
'allowedCapabilityBindings',
|
|
52
|
+
'allowedContextZones',
|
|
53
|
+
'allowedTransformerBindings',
|
|
54
|
+
'allowedActions',
|
|
55
|
+
'allowedMessageChannels',
|
|
56
|
+
'assessmentBindings',
|
|
57
|
+
])
|
|
58
|
+
if (!Array.isArray(v[key]))
|
|
59
|
+
throw new TypeError(`${key} must be an array`);
|
|
60
|
+
const checkpoints = v.checkpoints;
|
|
61
|
+
for (const checkpoint of checkpoints)
|
|
62
|
+
assertOneOf(checkpoint, ['pre_run', 'stream', 'post_run', 'pre_tool', 'pre_message'], 'checkpoint');
|
|
63
|
+
sortedUnique(checkpoints, 'checkpoints');
|
|
64
|
+
const capabilities = v.requiredCapabilities;
|
|
65
|
+
const capabilityKeys = capabilities.map((item, index) => {
|
|
66
|
+
assertExactKeys(item, ['kind', 'value'], `requiredCapabilities[${index}]`);
|
|
67
|
+
const capability = item;
|
|
68
|
+
assertOneOf(capability.kind, [
|
|
69
|
+
'input_inspection',
|
|
70
|
+
'final_output_assessment',
|
|
71
|
+
'incremental_output_assessment',
|
|
72
|
+
'release_interruption',
|
|
73
|
+
'tool_interception',
|
|
74
|
+
'message_interception',
|
|
75
|
+
'representation_access',
|
|
76
|
+
], 'capability.kind');
|
|
77
|
+
assertCapabilityPair(capability.kind, capability.value);
|
|
78
|
+
return `${capability.kind}:${capability.value}`;
|
|
79
|
+
});
|
|
80
|
+
sortedUnique(capabilityKeys, 'requiredCapabilities');
|
|
81
|
+
for (const [index, item] of v.allowedCapabilityBindings.entries()) {
|
|
82
|
+
assertExactKeys(item, [
|
|
83
|
+
'schemaVersion',
|
|
84
|
+
'capabilityId',
|
|
85
|
+
'descriptorVersion',
|
|
86
|
+
'wrapperId',
|
|
87
|
+
'wrapperVersion',
|
|
88
|
+
'descriptorDigest',
|
|
89
|
+
'requiredAssurance',
|
|
90
|
+
], `allowedCapabilityBindings[${index}]`);
|
|
91
|
+
const binding = item;
|
|
92
|
+
if (binding.schemaVersion !== 1)
|
|
93
|
+
throw new TypeError('Unsupported capability binding');
|
|
94
|
+
for (const key of ['capabilityId', 'wrapperId'])
|
|
95
|
+
assertIdentifier(binding[key], key);
|
|
96
|
+
for (const key of ['descriptorVersion', 'wrapperVersion'])
|
|
97
|
+
assertSafeInteger(binding[key], key, 1);
|
|
98
|
+
assertDigest(binding.descriptorDigest, 'descriptorDigest');
|
|
99
|
+
assertOneOf(binding.requiredAssurance, ['reference_tested', 'application_verified', 'declared'], 'requiredAssurance');
|
|
100
|
+
}
|
|
101
|
+
for (const zone of v.allowedContextZones)
|
|
102
|
+
assertOneOf(zone, [
|
|
103
|
+
'policy',
|
|
104
|
+
'objective',
|
|
105
|
+
'local_trusted',
|
|
106
|
+
'user_untrusted',
|
|
107
|
+
'peer_untrusted',
|
|
108
|
+
'tool_untrusted',
|
|
109
|
+
'retrieval_untrusted',
|
|
110
|
+
'provider_untrusted',
|
|
111
|
+
'assessor_untrusted',
|
|
112
|
+
], 'context zone');
|
|
113
|
+
sortedUnique(v.allowedContextZones, 'allowedContextZones');
|
|
114
|
+
for (const [index, item] of v.allowedTransformerBindings.entries()) {
|
|
115
|
+
assertExactKeys(item, ['id', 'version'], `allowedTransformerBindings[${index}]`);
|
|
116
|
+
const binding = item;
|
|
117
|
+
assertIdentifier(binding.id, 'transformer.id');
|
|
118
|
+
assertSafeInteger(binding.version, 'transformer.version', 1);
|
|
119
|
+
}
|
|
120
|
+
for (const [index, item] of v.allowedActions.entries()) {
|
|
121
|
+
assertExactKeys(item, [
|
|
122
|
+
'schemaVersion',
|
|
123
|
+
'namespace',
|
|
124
|
+
'toolId',
|
|
125
|
+
'operation',
|
|
126
|
+
'actionBindingId',
|
|
127
|
+
'minimumActionBindingVersion',
|
|
128
|
+
], `allowedActions[${index}]`);
|
|
129
|
+
const action = item;
|
|
130
|
+
if (action.schemaVersion !== 1)
|
|
131
|
+
throw new TypeError('Unsupported action pattern');
|
|
132
|
+
for (const key of [
|
|
133
|
+
'namespace',
|
|
134
|
+
'toolId',
|
|
135
|
+
'operation',
|
|
136
|
+
'actionBindingId',
|
|
137
|
+
]) {
|
|
138
|
+
key === 'namespace' || key === 'operation'
|
|
139
|
+
? assertControlToken(action[key], key)
|
|
140
|
+
: assertIdentifier(action[key], key);
|
|
141
|
+
}
|
|
142
|
+
assertSafeInteger(action.minimumActionBindingVersion, 'minimumActionBindingVersion', 1);
|
|
143
|
+
}
|
|
144
|
+
for (const channel of v.allowedMessageChannels)
|
|
145
|
+
assertControlToken(channel, 'message channel');
|
|
146
|
+
sortedUnique(v.allowedMessageChannels, 'allowedMessageChannels');
|
|
147
|
+
const assessorCheckpoints = [];
|
|
148
|
+
for (const [index, item] of v.assessmentBindings.entries()) {
|
|
149
|
+
assertExactKeys(item, [
|
|
150
|
+
'schemaVersion',
|
|
151
|
+
'checkpoint',
|
|
152
|
+
'assessorId',
|
|
153
|
+
'assessorVersion',
|
|
154
|
+
'assessorBindingDigest',
|
|
155
|
+
'maximumResponseBytes',
|
|
156
|
+
'maximumEvidenceReferences',
|
|
157
|
+
'timeoutMs',
|
|
158
|
+
], `assessmentBindings[${index}]`);
|
|
159
|
+
const binding = item;
|
|
160
|
+
if (binding.schemaVersion !== 1)
|
|
161
|
+
throw new TypeError('Unsupported assessor binding');
|
|
162
|
+
assertOneOf(binding.checkpoint, ['pre_run', 'stream', 'post_run', 'pre_tool', 'pre_message'], 'assessment checkpoint');
|
|
163
|
+
assessorCheckpoints.push(binding.checkpoint);
|
|
164
|
+
assertIdentifier(binding.assessorId, 'assessorId');
|
|
165
|
+
assertSafeInteger(binding.assessorVersion, 'assessorVersion', 1);
|
|
166
|
+
assertDigest(binding.assessorBindingDigest, 'assessorBindingDigest');
|
|
167
|
+
assertSafeInteger(binding.maximumResponseBytes, 'maximumResponseBytes', 1);
|
|
168
|
+
assertSafeInteger(binding.maximumEvidenceReferences, 'maximumEvidenceReferences', 1);
|
|
169
|
+
assertSafeInteger(binding.timeoutMs, 'timeoutMs', 1);
|
|
170
|
+
}
|
|
171
|
+
if (new Set(assessorCheckpoints).size !== assessorCheckpoints.length ||
|
|
172
|
+
assessorCheckpoints.length !== checkpoints.length ||
|
|
173
|
+
checkpoints.some((checkpoint) => !assessorCheckpoints.includes(checkpoint)))
|
|
174
|
+
throw new TypeError('Each checkpoint requires exactly one assessor binding');
|
|
175
|
+
assertExactKeys(v.budgets, ['revisions', 'retries', 'challenges'], 'budgets');
|
|
176
|
+
for (const key of ['revisions', 'retries', 'challenges'])
|
|
177
|
+
assertSafeInteger(v.budgets[key], `budgets.${key}`);
|
|
178
|
+
assertExactKeys(v.limits, Object.keys(INFERENCE_CONTROL_LIMITS_V1), 'limits');
|
|
179
|
+
for (const key of Object.keys(INFERENCE_CONTROL_LIMITS_V1)) {
|
|
180
|
+
const limit = v.limits[key];
|
|
181
|
+
assertSafeInteger(limit, `limits.${key}`, 1);
|
|
182
|
+
if (limit > INFERENCE_CONTROL_LIMITS_V1[key])
|
|
183
|
+
throw new TypeError(`limits.${key} exceeds its hard ceiling`);
|
|
184
|
+
}
|
|
185
|
+
for (const key of [
|
|
186
|
+
'maximumRunDurationMs',
|
|
187
|
+
'maximumAssessmentTtlMs',
|
|
188
|
+
'maximumGrantTtlMs',
|
|
189
|
+
'maximumMessagePermitTtlMs',
|
|
190
|
+
])
|
|
191
|
+
assertSafeInteger(v[key], key, 1);
|
|
192
|
+
if (typeof v.coordinatedActionsRequired !== 'boolean')
|
|
193
|
+
throw new TypeError('coordinatedActionsRequired must be boolean');
|
|
194
|
+
const limits = v.limits;
|
|
195
|
+
if (v.maximumRunDurationMs > limits.maxRunDurationMs ||
|
|
196
|
+
v.maximumAssessmentTtlMs > limits.maxAssessmentTtlMs ||
|
|
197
|
+
v.maximumGrantTtlMs > limits.maxGrantTtlMs ||
|
|
198
|
+
v.maximumMessagePermitTtlMs > limits.maxMessagePermitTtlMs)
|
|
199
|
+
throw new TypeError('Policy TTL exceeds its limits');
|
|
200
|
+
if (v.allowedActions.length > 0 &&
|
|
201
|
+
(!checkpoints.includes('pre_tool') ||
|
|
202
|
+
!assessorCheckpoints.includes('pre_tool')))
|
|
203
|
+
throw new TypeError('Actions require pre_tool assessment');
|
|
204
|
+
if (v.allowedMessageChannels.length > 0 &&
|
|
205
|
+
(!checkpoints.includes('pre_message') ||
|
|
206
|
+
!assessorCheckpoints.includes('pre_message')))
|
|
207
|
+
throw new TypeError('Messages require pre_message assessment');
|
|
208
|
+
if (v.outputRisk === 'high' &&
|
|
209
|
+
(v.mode !== 'buffered' ||
|
|
210
|
+
v.minimumCapabilityAssurance !== 'verified' ||
|
|
211
|
+
!checkpoints.includes('pre_run') ||
|
|
212
|
+
!checkpoints.includes('post_run')))
|
|
213
|
+
throw new TypeError('release_mode_incompatible');
|
|
214
|
+
return deepFreeze({ ...v });
|
|
215
|
+
}
|
|
216
|
+
function assertCapabilityPair(kind, value) {
|
|
217
|
+
switch (kind) {
|
|
218
|
+
case 'input_inspection':
|
|
219
|
+
case 'final_output_assessment':
|
|
220
|
+
assertOneOf(value, ['full'], 'capability.value');
|
|
221
|
+
return;
|
|
222
|
+
case 'incremental_output_assessment':
|
|
223
|
+
assertOneOf(value, ['windowed'], 'capability.value');
|
|
224
|
+
return;
|
|
225
|
+
case 'release_interruption':
|
|
226
|
+
assertOneOf(value, ['local'], 'capability.value');
|
|
227
|
+
return;
|
|
228
|
+
case 'tool_interception':
|
|
229
|
+
assertOneOf(value, ['application_only', 'all'], 'capability.value');
|
|
230
|
+
return;
|
|
231
|
+
case 'message_interception':
|
|
232
|
+
assertOneOf(value, ['application_only'], 'capability.value');
|
|
233
|
+
return;
|
|
234
|
+
case 'representation_access':
|
|
235
|
+
assertOneOf(value, ['opaque', 'token'], 'capability.value');
|
|
236
|
+
return;
|
|
237
|
+
default:
|
|
238
|
+
throw new TypeError('capability.kind is invalid');
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
export function createPolicyRecordV1(policy) {
|
|
242
|
+
const validated = validateInferenceControlPolicyV1(policy);
|
|
243
|
+
return deepFreeze({
|
|
244
|
+
schemaVersion: 1,
|
|
245
|
+
policyDigest: digestControlJsonV1('policy', validated),
|
|
246
|
+
policy: validated,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Validates an Objective-scoped policy revision against its immutable local
|
|
251
|
+
* parent. A remote revision may remove authority or tighten a bound, but may
|
|
252
|
+
* not select a different enforcement model, dependency, action, channel or
|
|
253
|
+
* larger resource/continuation budget.
|
|
254
|
+
*/
|
|
255
|
+
export function assertPolicyNarrowingV1(parentInput, childInput) {
|
|
256
|
+
const parent = validateInferenceControlPolicyV1(parentInput);
|
|
257
|
+
const child = validateInferenceControlPolicyV1(childInput);
|
|
258
|
+
const parentDigest = createPolicyRecordV1(parent).policyDigest;
|
|
259
|
+
if (child.parentPolicyDigest !== parentDigest ||
|
|
260
|
+
child.policyId !== parent.policyId ||
|
|
261
|
+
child.policyVersion <= parent.policyVersion ||
|
|
262
|
+
child.mode !== parent.mode ||
|
|
263
|
+
riskRank(child.outputRisk) < riskRank(parent.outputRisk) ||
|
|
264
|
+
child.exhaustedDisposition !== parent.exhaustedDisposition ||
|
|
265
|
+
child.diagnosticsPolicyId !== parent.diagnosticsPolicyId ||
|
|
266
|
+
child.redactionPolicyId !== parent.redactionPolicyId ||
|
|
267
|
+
(parent.coordinatedActionsRequired && !child.coordinatedActionsRequired) ||
|
|
268
|
+
(parent.minimumCapabilityAssurance === 'verified' &&
|
|
269
|
+
child.minimumCapabilityAssurance !== 'verified'))
|
|
270
|
+
throw new TypeError('policy_narrowing_invalid');
|
|
271
|
+
if (!sameStrings(parent.checkpoints, child.checkpoints))
|
|
272
|
+
throw new TypeError('policy_narrowing_invalid');
|
|
273
|
+
for (const required of parent.requiredCapabilities)
|
|
274
|
+
if (!child.requiredCapabilities.some((candidate) => capabilityRequirementCovers(candidate, required)))
|
|
275
|
+
throw new TypeError('policy_narrowing_invalid');
|
|
276
|
+
if (!isCanonicalSubset(child.allowedCapabilityBindings, parent.allowedCapabilityBindings) ||
|
|
277
|
+
!isStringSubset(child.allowedContextZones, parent.allowedContextZones) ||
|
|
278
|
+
!isCanonicalSubset(child.allowedTransformerBindings, parent.allowedTransformerBindings) ||
|
|
279
|
+
!isStringSubset(child.allowedMessageChannels, parent.allowedMessageChannels))
|
|
280
|
+
throw new TypeError('policy_narrowing_invalid');
|
|
281
|
+
for (const action of child.allowedActions) {
|
|
282
|
+
const ceiling = parent.allowedActions.find((candidate) => candidate.namespace === action.namespace &&
|
|
283
|
+
candidate.toolId === action.toolId &&
|
|
284
|
+
candidate.operation === action.operation &&
|
|
285
|
+
candidate.actionBindingId === action.actionBindingId);
|
|
286
|
+
if (!ceiling ||
|
|
287
|
+
action.minimumActionBindingVersion < ceiling.minimumActionBindingVersion)
|
|
288
|
+
throw new TypeError('policy_narrowing_invalid');
|
|
289
|
+
}
|
|
290
|
+
for (const binding of child.assessmentBindings) {
|
|
291
|
+
const ceiling = parent.assessmentBindings.find((candidate) => candidate.checkpoint === binding.checkpoint);
|
|
292
|
+
if (!ceiling ||
|
|
293
|
+
binding.assessorId !== ceiling.assessorId ||
|
|
294
|
+
binding.assessorVersion !== ceiling.assessorVersion ||
|
|
295
|
+
binding.assessorBindingDigest !== ceiling.assessorBindingDigest ||
|
|
296
|
+
binding.maximumResponseBytes > ceiling.maximumResponseBytes ||
|
|
297
|
+
binding.maximumEvidenceReferences > ceiling.maximumEvidenceReferences ||
|
|
298
|
+
binding.timeoutMs > ceiling.timeoutMs)
|
|
299
|
+
throw new TypeError('policy_narrowing_invalid');
|
|
300
|
+
}
|
|
301
|
+
for (const key of ['revisions', 'retries', 'challenges'])
|
|
302
|
+
if (child.budgets[key] > parent.budgets[key])
|
|
303
|
+
throw new TypeError('policy_narrowing_invalid');
|
|
304
|
+
for (const key of Object.keys(INFERENCE_CONTROL_LIMITS_V1))
|
|
305
|
+
if (child.limits[key] > parent.limits[key])
|
|
306
|
+
throw new TypeError('policy_narrowing_invalid');
|
|
307
|
+
for (const key of [
|
|
308
|
+
'maximumRunDurationMs',
|
|
309
|
+
'maximumAssessmentTtlMs',
|
|
310
|
+
'maximumGrantTtlMs',
|
|
311
|
+
'maximumMessagePermitTtlMs',
|
|
312
|
+
])
|
|
313
|
+
if (child[key] > parent[key])
|
|
314
|
+
throw new TypeError('policy_narrowing_invalid');
|
|
315
|
+
return child;
|
|
316
|
+
}
|
|
317
|
+
function riskRank(value) {
|
|
318
|
+
return value === 'low' ? 0 : value === 'moderate' ? 1 : 2;
|
|
319
|
+
}
|
|
320
|
+
function sameStrings(left, right) {
|
|
321
|
+
return (left.length === right.length && left.every((value) => right.includes(value)));
|
|
322
|
+
}
|
|
323
|
+
function isStringSubset(subset, ceiling) {
|
|
324
|
+
return subset.every((value) => ceiling.includes(value));
|
|
325
|
+
}
|
|
326
|
+
function isCanonicalSubset(subset, ceiling) {
|
|
327
|
+
const allowed = new Set(ceiling.map((value) => canonicalizeControlJsonV1(value)));
|
|
328
|
+
return subset.every((value) => allowed.has(canonicalizeControlJsonV1(value)));
|
|
329
|
+
}
|
|
330
|
+
function capabilityRequirementCovers(candidate, ceiling) {
|
|
331
|
+
if (candidate.kind !== ceiling.kind)
|
|
332
|
+
return false;
|
|
333
|
+
if (candidate.kind === 'tool_interception')
|
|
334
|
+
return (candidate.value === ceiling.value ||
|
|
335
|
+
(candidate.value === 'all' && ceiling.value === 'application_only'));
|
|
336
|
+
return candidate.value === ceiling.value;
|
|
337
|
+
}
|
|
338
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import type { JsonValue } from '@agentplat/core';
|
|
2
|
+
import { CapabilityRegistryV1 } from './capabilities.js';
|
|
3
|
+
import type { CapabilityNegotiationResultV1 } from './capabilities.js';
|
|
4
|
+
import type { ActionGrantStateV1, AssessmentRequestV1, ContextEntryV1, ControlRunRecordV1, ControlStreamChunkV1, DiagnosticV1, InferenceAssessmentV1, InferenceControlPolicyV1, InferenceControlReasonCodeV1, InferenceControlStateV1, OutboundMessageAttemptStateV1 } from './types.js';
|
|
5
|
+
interface InputHeadV1 {
|
|
6
|
+
readonly schemaVersion: 1;
|
|
7
|
+
readonly inputId: string;
|
|
8
|
+
readonly expectedStateGeneration: number;
|
|
9
|
+
readonly logicalTimeMs: number;
|
|
10
|
+
}
|
|
11
|
+
export type InferenceControlInputV1 = InputHeadV1 & ({
|
|
12
|
+
readonly type: 'policy_registered';
|
|
13
|
+
readonly policy: InferenceControlPolicyV1;
|
|
14
|
+
readonly policyDigest: string;
|
|
15
|
+
} | {
|
|
16
|
+
readonly type: 'run_created';
|
|
17
|
+
readonly run: ControlRunRecordV1;
|
|
18
|
+
} | {
|
|
19
|
+
readonly type: 'context_admitted';
|
|
20
|
+
readonly entry: ContextEntryV1;
|
|
21
|
+
} | {
|
|
22
|
+
readonly type: 'context_promoted';
|
|
23
|
+
readonly sourceContextEntryId: string;
|
|
24
|
+
readonly entry: ContextEntryV1;
|
|
25
|
+
readonly transformerBindingDigest: string;
|
|
26
|
+
} | {
|
|
27
|
+
readonly type: 'capability_negotiated';
|
|
28
|
+
readonly runId: string;
|
|
29
|
+
readonly capabilityHandleId: string;
|
|
30
|
+
readonly descriptorDigest: string;
|
|
31
|
+
readonly result: CapabilityNegotiationResultV1;
|
|
32
|
+
} | {
|
|
33
|
+
readonly type: 'assessment_requested';
|
|
34
|
+
readonly request: AssessmentRequestV1;
|
|
35
|
+
} | {
|
|
36
|
+
readonly type: 'assessment_received';
|
|
37
|
+
readonly assessment: InferenceAssessmentV1;
|
|
38
|
+
} | {
|
|
39
|
+
readonly type: 'provider_started';
|
|
40
|
+
readonly runId: string;
|
|
41
|
+
readonly generation: number;
|
|
42
|
+
readonly providerRequestDigest: string;
|
|
43
|
+
readonly streamId: string;
|
|
44
|
+
} | {
|
|
45
|
+
readonly type: 'provider_chunk_received';
|
|
46
|
+
readonly runId: string;
|
|
47
|
+
readonly chunk: ControlStreamChunkV1;
|
|
48
|
+
} | {
|
|
49
|
+
readonly type: 'provider_completed';
|
|
50
|
+
readonly runId: string;
|
|
51
|
+
readonly generation: number;
|
|
52
|
+
readonly streamId: string;
|
|
53
|
+
readonly completionContent: string;
|
|
54
|
+
readonly completionDigest: string;
|
|
55
|
+
} | {
|
|
56
|
+
readonly type: 'continuation_selected';
|
|
57
|
+
readonly runId: string;
|
|
58
|
+
readonly assessmentId: string;
|
|
59
|
+
readonly kind: 'revise' | 'retry' | 'challenge';
|
|
60
|
+
} | {
|
|
61
|
+
readonly type: 'output_release_ack';
|
|
62
|
+
readonly runId: string;
|
|
63
|
+
readonly streamId: string;
|
|
64
|
+
readonly generation: number;
|
|
65
|
+
readonly throughSequence: number;
|
|
66
|
+
readonly throughByteExclusive: number;
|
|
67
|
+
readonly windowDigest: string;
|
|
68
|
+
} | {
|
|
69
|
+
readonly type: 'grant_issued';
|
|
70
|
+
readonly grant: ActionGrantStateV1;
|
|
71
|
+
} | {
|
|
72
|
+
readonly type: 'grant_reserved';
|
|
73
|
+
readonly grantId: string;
|
|
74
|
+
readonly reservation: JsonValue;
|
|
75
|
+
} | {
|
|
76
|
+
readonly type: 'action_dispatch_outcome';
|
|
77
|
+
readonly grantId: string;
|
|
78
|
+
readonly reservationId: string;
|
|
79
|
+
readonly dispatchAttemptId: string;
|
|
80
|
+
readonly outcome: 'dispatched' | 'failed' | 'indeterminate';
|
|
81
|
+
} | {
|
|
82
|
+
readonly type: 'message_prepared';
|
|
83
|
+
readonly message: JsonValue;
|
|
84
|
+
readonly attempt: OutboundMessageAttemptStateV1;
|
|
85
|
+
} | {
|
|
86
|
+
readonly type: 'message_reserved';
|
|
87
|
+
readonly messageAttemptId: string;
|
|
88
|
+
readonly reservation: JsonValue;
|
|
89
|
+
} | {
|
|
90
|
+
readonly type: 'message_dispatch_outcome';
|
|
91
|
+
readonly messageAttemptId: string;
|
|
92
|
+
readonly reservationId: string;
|
|
93
|
+
readonly messageDispatchAttemptId: string;
|
|
94
|
+
readonly outcome: 'sent' | 'failed' | 'indeterminate';
|
|
95
|
+
} | {
|
|
96
|
+
readonly type: 'deadline_fired';
|
|
97
|
+
readonly timerKind: 'run' | 'assessment' | 'grant' | 'message';
|
|
98
|
+
readonly timerId: string;
|
|
99
|
+
readonly timerGeneration: number;
|
|
100
|
+
} | {
|
|
101
|
+
readonly type: 'run_cancelled' | 'run_failed';
|
|
102
|
+
readonly runId: string;
|
|
103
|
+
readonly generation: number;
|
|
104
|
+
readonly reasonCode: InferenceControlReasonCodeV1;
|
|
105
|
+
});
|
|
106
|
+
export type InferenceControlEffectV1 = Readonly<{
|
|
107
|
+
schemaVersion: 1;
|
|
108
|
+
effectId: string;
|
|
109
|
+
runId: string;
|
|
110
|
+
generation: number;
|
|
111
|
+
type: 'request_assessment';
|
|
112
|
+
request: AssessmentRequestV1;
|
|
113
|
+
}> | Readonly<{
|
|
114
|
+
schemaVersion: 1;
|
|
115
|
+
effectId: string;
|
|
116
|
+
runId: string;
|
|
117
|
+
generation: number;
|
|
118
|
+
type: 'invoke_provider';
|
|
119
|
+
providerRequestDigest: string;
|
|
120
|
+
capabilityHandleId: string;
|
|
121
|
+
}> | Readonly<{
|
|
122
|
+
schemaVersion: 1;
|
|
123
|
+
effectId: string;
|
|
124
|
+
runId: string;
|
|
125
|
+
generation: number;
|
|
126
|
+
type: 'cancel_provider';
|
|
127
|
+
streamId: string;
|
|
128
|
+
reasonCode: InferenceControlReasonCodeV1;
|
|
129
|
+
}> | Readonly<{
|
|
130
|
+
schemaVersion: 1;
|
|
131
|
+
effectId: string;
|
|
132
|
+
runId: string;
|
|
133
|
+
generation: number;
|
|
134
|
+
type: 'release_output';
|
|
135
|
+
streamId: string;
|
|
136
|
+
fromSequence: number;
|
|
137
|
+
throughSequence: number;
|
|
138
|
+
fromByte: number;
|
|
139
|
+
throughByteExclusive: number;
|
|
140
|
+
windowDigest: string;
|
|
141
|
+
}> | Readonly<{
|
|
142
|
+
schemaVersion: 1;
|
|
143
|
+
effectId: string;
|
|
144
|
+
runId: string;
|
|
145
|
+
generation: number;
|
|
146
|
+
type: 'invoke_continuation';
|
|
147
|
+
kind: 'revise' | 'retry' | 'challenge';
|
|
148
|
+
sourceAssessmentId: string;
|
|
149
|
+
revisedContextEntryId: string | null;
|
|
150
|
+
}> | Readonly<{
|
|
151
|
+
schemaVersion: 1;
|
|
152
|
+
effectId: string;
|
|
153
|
+
runId: string;
|
|
154
|
+
generation: number;
|
|
155
|
+
type: 'persist_grant';
|
|
156
|
+
grantId: string;
|
|
157
|
+
stateGeneration: number;
|
|
158
|
+
}> | Readonly<{
|
|
159
|
+
schemaVersion: 1;
|
|
160
|
+
effectId: string;
|
|
161
|
+
runId: string;
|
|
162
|
+
generation: number;
|
|
163
|
+
type: 'dispatch_action' | 'dispatch_message';
|
|
164
|
+
recordId: string;
|
|
165
|
+
permit: JsonValue;
|
|
166
|
+
}> | Readonly<{
|
|
167
|
+
schemaVersion: 1;
|
|
168
|
+
effectId: string;
|
|
169
|
+
runId: string;
|
|
170
|
+
generation: number;
|
|
171
|
+
type: 'emit_receipt';
|
|
172
|
+
outcome: 'accepted' | 'withheld' | 'denied' | 'unavailable';
|
|
173
|
+
}> | Readonly<{
|
|
174
|
+
schemaVersion: 1;
|
|
175
|
+
effectId: string;
|
|
176
|
+
runId: string;
|
|
177
|
+
generation: number;
|
|
178
|
+
type: 'emit_diagnostic';
|
|
179
|
+
diagnostic: DiagnosticV1;
|
|
180
|
+
}>;
|
|
181
|
+
export interface InferenceControlReductionV1 {
|
|
182
|
+
readonly state: InferenceControlStateV1;
|
|
183
|
+
readonly accepted: boolean;
|
|
184
|
+
readonly reasonCode?: InferenceControlReasonCodeV1;
|
|
185
|
+
readonly effects: readonly InferenceControlEffectV1[];
|
|
186
|
+
}
|
|
187
|
+
/** Runtime dependencies deliberately remain outside the serialised state. */
|
|
188
|
+
export interface InferenceControlReducerDependenciesV1 {
|
|
189
|
+
readonly capabilityRegistry?: CapabilityRegistryV1;
|
|
190
|
+
}
|
|
191
|
+
export declare function reduceInferenceControlStateV1(state: InferenceControlStateV1, input: InferenceControlInputV1, dependencies?: InferenceControlReducerDependenciesV1): InferenceControlReductionV1;
|
|
192
|
+
export {};
|
|
193
|
+
//# sourceMappingURL=reducer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../src/reducer.ts"],"names":[],"mappings":"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"}
|