@agentplat/mesh-conformance 0.3.0-beta.1 → 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.
package/README.md CHANGED
@@ -5,9 +5,19 @@ adapters. The package performs no work on import, reads no ambient credentials
5
5
  and never creates or destroys resources without a caller factory.
6
6
 
7
7
  The root export owns the closed capability, case and report contracts.
8
- `./protocol`, `./transport`, `./durability` and `./rooms` expose bounded runners.
9
- A passing report describes only the exact artifact, capabilities, fixtures and
10
- cases that were executed; it is not a security certification.
8
+ `./protocol`, `./transport`, `./durability`, `./rooms`, `./control` and
9
+ `./planning` expose bounded runners. A passing report describes only the exact
10
+ artifact, capabilities, fixtures and cases that were executed; it is not a
11
+ security certification.
12
+
13
+ The planning runner covers closed-record validation, scope narrowing,
14
+ dependency cycles, exact replay, snapshot scope/rollback, causal replanning,
15
+ stale fencing, assignment binding, public evidence and durable restart
16
+ high-waters. Its challenges are public and the supplied adapter owns each
17
+ assessment. It is executable adapter conformance, not cryptographic proof that
18
+ an implementation cannot special-case a fixture. Report validation recomputes
19
+ suite/fixture bindings, complete case coverage, capability disclosure, counts
20
+ and verdict.
11
21
 
12
22
  Runners receive an immutable caller seed and abort signal for every isolated
13
23
  factory invocation. Case, suite and cleanup timeouts are separate outcomes.
@@ -16,3 +26,12 @@ durability receipt case also requires reopening the same scope through a
16
26
  distinct repository instance so an in-memory acknowledgment cannot stand in
17
27
  for recovery evidence. Cleanup remains caller-owned and is attempted after
18
28
  success, failure and abort.
29
+
30
+ The control runner exercises delegation lookup, work-scope narrowing,
31
+ single-use effect permits, retained indeterminate budgets, repository CAS,
32
+ grant idempotency, redacted hash-linked evidence and inert Room proposals by
33
+ calling the supplied ports directly. Durable implementations may additionally
34
+ declare `control.persistence`; that case reopens distinct repository instances
35
+ and verifies exact authority, execution, grant and evidence state after a
36
+ restart. `inspectEvidence` must be an independent redacted view of persisted
37
+ records, not a copy of the input fixture.
@@ -0,0 +1,4 @@
1
+ import type { ControlConformanceFixturesV1 } from "./control.js";
2
+ /** Frozen fixtures shared by every adapter implementation under test. */
3
+ export declare function createControlConformanceFixturesV1(): ControlConformanceFixturesV1;
4
+ //# sourceMappingURL=control-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-fixtures.d.ts","sourceRoot":"","sources":["../src/control-fixtures.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAKjE,yEAAyE;AACzE,wBAAgB,kCAAkC,IAAI,4BAA4B,CA+XjF"}
@@ -0,0 +1,383 @@
1
+ import { acceptDelegationMandateV1, budgetReservationDigestV1, createCollectiveAuthorityStateV1, createCollectiveDecisionRecordV1, createCollectiveExecutionStateV1, createDelegationMandateV1, delegationMandateDigestV1, digestCollectiveJsonV1, governedActionPermitDigestV1, registerWorkContractV1, workContractDigestV1, } from "@agentplat/collective-control";
2
+ import { createDelegationMandateProposalV1 } from "@agentplat/collective-control/rooms";
3
+ import { actionDigest as calculateActionDigest, actionInputDigest, controlDigest, scopeDigest, } from "@agentplat/inference-control/tools";
4
+ const digest = (label) => digestCollectiveJsonV1("state", { label, schemaVersion: 1 });
5
+ /** Frozen fixtures shared by every adapter implementation under test. */
6
+ export function createControlConformanceFixturesV1() {
7
+ const roomProvenance = {
8
+ schemaVersion: 1,
9
+ roomId: "room:conformance",
10
+ approvalId: "approval:conformance",
11
+ targetType: "task",
12
+ targetId: "work:conformance",
13
+ targetVersion: 1,
14
+ };
15
+ const statement = {
16
+ schemaVersion: 1,
17
+ mandateId: "mandate:conformance",
18
+ tenantId: "tenant:conformance",
19
+ policyDomainId: "policy-domain:conformance",
20
+ issuerId: "issuer:conformance",
21
+ revision: 1,
22
+ predecessorDigest: null,
23
+ subjectPeerIds: ["peer:worker"],
24
+ objective: {
25
+ schemaVersion: 1,
26
+ meshId: "mesh:conformance",
27
+ objectiveId: "objective:conformance",
28
+ objectiveDocumentId: "objective-document:conformance",
29
+ minimumObjectiveRevision: 1,
30
+ maximumObjectiveRevision: 1,
31
+ },
32
+ work: {
33
+ schemaVersion: 1,
34
+ workItemIds: ["work:conformance"],
35
+ permittedRoleKeys: ["executor"],
36
+ maximumWorkItemRevision: 1,
37
+ },
38
+ permittedCapabilityKeys: ["documents.write"],
39
+ permittedActions: [
40
+ {
41
+ schemaVersion: 1,
42
+ namespace: "documents",
43
+ toolId: "writer",
44
+ operation: "create",
45
+ },
46
+ ],
47
+ budget: {
48
+ schemaVersion: 1,
49
+ totalBudgetUnits: 100,
50
+ maximumWorkBudgetUnits: 100,
51
+ maximumActionBudgetUnits: 10,
52
+ maximumConcurrentWorkReservations: 1,
53
+ maximumConcurrentActionReservations: 2,
54
+ reservationLifetimeMs: 1_000,
55
+ },
56
+ validFrom: "2026-08-01T00:00:00.000Z",
57
+ validUntil: "2026-08-02T00:00:00.000Z",
58
+ roomProvenance,
59
+ evidence: {
60
+ schemaVersion: 1,
61
+ redactionPolicyId: "redaction:conformance",
62
+ retentionClass: "standard",
63
+ requireDurablePreDispatchEvidence: true,
64
+ },
65
+ };
66
+ const mandateDigest = delegationMandateDigestV1(statement);
67
+ const mandate = createDelegationMandateV1({
68
+ statement,
69
+ proof: {
70
+ schemaVersion: 1,
71
+ kind: "local_attestation",
72
+ issuerId: statement.issuerId,
73
+ attestorId: "attestor:conformance",
74
+ attestationId: "attestation:conformance",
75
+ signedDigest: mandateDigest,
76
+ },
77
+ });
78
+ const accepted = acceptDelegationMandateV1(createCollectiveAuthorityStateV1({
79
+ tenantId: statement.tenantId,
80
+ policyDomainId: statement.policyDomainId,
81
+ }), {
82
+ mandate,
83
+ verification: {
84
+ schemaVersion: 1,
85
+ verifierId: "verifier:conformance",
86
+ verifierVersion: 1,
87
+ issuerId: statement.issuerId,
88
+ signedDigest: mandate.mandateDigest,
89
+ verifiedAt: "2026-08-01T00:00:01.000Z",
90
+ status: "verified",
91
+ },
92
+ acceptedAtLogicalMs: 1,
93
+ });
94
+ if (!accepted.accepted)
95
+ throw new Error("conformance_fixture_authority");
96
+ const workBody = {
97
+ schemaVersion: 1,
98
+ workContractId: "work-contract:conformance",
99
+ generation: 1,
100
+ tenantId: statement.tenantId,
101
+ policyDomainId: statement.policyDomainId,
102
+ mandate: {
103
+ schemaVersion: 1,
104
+ mandateId: statement.mandateId,
105
+ mandateRevision: statement.revision,
106
+ mandateDigest: mandate.mandateDigest,
107
+ },
108
+ objective: {
109
+ schemaVersion: 1,
110
+ meshId: statement.objective.meshId,
111
+ objectiveId: statement.objective.objectiveId,
112
+ objectiveDocumentId: statement.objective.objectiveDocumentId,
113
+ objectiveRevision: 1,
114
+ acceptedMessageId: "message:objective:conformance",
115
+ acceptedPolicyDigest: digest("objective-policy:conformance"),
116
+ },
117
+ assignment: {
118
+ schemaVersion: 1,
119
+ workItemId: "work:conformance",
120
+ workItemRevision: 1,
121
+ ownerPeerId: "peer:owner",
122
+ assignedPeerId: "peer:worker",
123
+ assignedInstanceId: "instance:worker:1",
124
+ assignmentAuthorityId: "assignment:conformance",
125
+ assignmentEpoch: 1,
126
+ authorityGeneration: 1,
127
+ fencingToken: "fence:conformance:1",
128
+ leaseExpiresAtLogicalMs: 1_000,
129
+ workDeadline: "2026-08-01T01:00:00.000Z",
130
+ },
131
+ roleKey: "executor",
132
+ requiredCapabilityKeys: ["documents.write"],
133
+ completionCriteria: ["Create one bounded document"],
134
+ inputReferenceDigest: digest("work-input:conformance"),
135
+ reservedBudgetUnits: 100,
136
+ maximumActionBudgetUnits: 10,
137
+ trustPolicyId: "trust-policy:conformance",
138
+ inferencePolicyId: "inference-policy:conformance",
139
+ createdAtLogicalMs: 10,
140
+ updatedAtLogicalMs: 10,
141
+ status: "active",
142
+ terminalReasonCode: null,
143
+ };
144
+ const validWorkContract = {
145
+ ...workBody,
146
+ workContractDigest: workContractDigestV1(workBody),
147
+ };
148
+ const widenedBody = {
149
+ ...workBody,
150
+ workContractId: "work-contract:conformance:widened",
151
+ requiredCapabilityKeys: ["documents.write", "root.admin"],
152
+ };
153
+ const widenedWorkContract = {
154
+ ...widenedBody,
155
+ workContractDigest: workContractDigestV1(widenedBody),
156
+ };
157
+ const emptyExecutionState = createCollectiveExecutionStateV1({
158
+ tenantId: statement.tenantId,
159
+ policyDomainId: statement.policyDomainId,
160
+ });
161
+ const registered = registerWorkContractV1(emptyExecutionState, {
162
+ mandate,
163
+ workContract: validWorkContract,
164
+ authorizedAt: "2026-08-01T00:01:00.000Z",
165
+ acceptedAtLogicalMs: 10,
166
+ });
167
+ if (!registered.accepted)
168
+ throw new Error("conformance_fixture_work");
169
+ const binding = {
170
+ schemaVersion: 1,
171
+ actionBindingId: "binding:conformance",
172
+ actionBindingVersion: 1,
173
+ namespace: "documents",
174
+ toolId: "writer",
175
+ operation: "create",
176
+ dispatcherId: "dispatcher:conformance",
177
+ dispatcherVersion: 1,
178
+ contextResolverId: "context:conformance",
179
+ contextResolverVersion: 1,
180
+ fencingMode: "downstream_atomic",
181
+ handlerDigest: controlDigest("handler-binding", {
182
+ schemaVersion: 1,
183
+ handler: "conformance",
184
+ }),
185
+ };
186
+ const scope = {
187
+ schemaVersion: 1,
188
+ kind: "coordinated",
189
+ tenantId: statement.tenantId,
190
+ runId: "run:conformance",
191
+ agentId: "agent:worker",
192
+ policyId: "policy:conformance",
193
+ policyVersion: 1,
194
+ meshId: statement.objective.meshId,
195
+ objectiveId: statement.objective.objectiveId,
196
+ objectiveRevision: 1,
197
+ workItemId: "work:conformance",
198
+ workItemRevision: 1,
199
+ peerId: "peer:worker",
200
+ instanceId: "instance:worker:1",
201
+ assignmentAuthorityId: "assignment:conformance",
202
+ assignmentEpoch: 1,
203
+ fencingToken: "fence:conformance:1",
204
+ leaseExpiresAtLogicalMs: 1_000,
205
+ authorityGeneration: 1,
206
+ objectiveTerminal: false,
207
+ workTerminal: false,
208
+ };
209
+ const grant = (grantId, input) => {
210
+ const draft = {
211
+ schemaVersion: 1,
212
+ grantId,
213
+ stateGeneration: 1,
214
+ scope,
215
+ scopeDigest: scopeDigest(scope),
216
+ namespace: binding.namespace,
217
+ toolId: binding.toolId,
218
+ operation: binding.operation,
219
+ actionBindingId: binding.actionBindingId,
220
+ actionBindingVersion: binding.actionBindingVersion,
221
+ handlerDigest: binding.handlerDigest,
222
+ inputDigest: actionInputDigest(input),
223
+ actionDigest: digest("pending-action:conformance"),
224
+ assessmentRequestId: `assessment-request:${grantId}`,
225
+ assessmentId: `assessment:${grantId}`,
226
+ assessmentTargetDigest: digest(`assessment-target:${grantId}`),
227
+ idempotencyKey: "idempotency:conformance",
228
+ issuedAtLogicalMs: 20,
229
+ expiresAtLogicalMs: 1_000,
230
+ singleUse: true,
231
+ status: "issued",
232
+ reservation: null,
233
+ };
234
+ return Object.freeze({
235
+ ...draft,
236
+ actionDigest: calculateActionDigest(draft, binding),
237
+ });
238
+ };
239
+ const actionGrant = grant("grant:conformance", {
240
+ documentId: "document:a",
241
+ });
242
+ const conflictingActionGrant = grant("grant:conformance:substitution", {
243
+ documentId: "document:b",
244
+ });
245
+ const reservationBody = {
246
+ schemaVersion: 1,
247
+ reservationId: "reservation:conformance",
248
+ generation: 1,
249
+ tenantId: statement.tenantId,
250
+ policyDomainId: statement.policyDomainId,
251
+ mandateId: statement.mandateId,
252
+ mandateRevision: statement.revision,
253
+ mandateDigest: mandate.mandateDigest,
254
+ workContractId: validWorkContract.workContractId,
255
+ permitId: "permit:conformance",
256
+ idempotencyKey: actionGrant.idempotencyKey,
257
+ units: 10,
258
+ reservedAtLogicalMs: 20,
259
+ expiresAtLogicalMs: 1_000,
260
+ status: "reserved",
261
+ outcomeId: null,
262
+ };
263
+ const budgetReservation = {
264
+ ...reservationBody,
265
+ reservationDigest: budgetReservationDigestV1(reservationBody),
266
+ };
267
+ const permitBody = {
268
+ schemaVersion: 1,
269
+ permitId: reservationBody.permitId,
270
+ generation: 1,
271
+ gatewayId: "gateway:conformance",
272
+ tenantId: statement.tenantId,
273
+ policyDomainId: statement.policyDomainId,
274
+ mandateId: statement.mandateId,
275
+ mandateRevision: statement.revision,
276
+ mandateDigest: mandate.mandateDigest,
277
+ workContractId: validWorkContract.workContractId,
278
+ workContractDigest: validWorkContract.workContractDigest,
279
+ actionGrantId: actionGrant.grantId,
280
+ actionGrantDigest: collectiveDigest(controlDigest("grant", actionGrant)),
281
+ actionScopeDigest: collectiveDigest(actionGrant.scopeDigest),
282
+ assignmentAuthorityId: scope.assignmentAuthorityId,
283
+ assignedPeerId: scope.peerId,
284
+ assignedInstanceId: scope.instanceId,
285
+ assignmentEpoch: scope.assignmentEpoch,
286
+ authorityGeneration: scope.authorityGeneration,
287
+ fencingToken: scope.fencingToken,
288
+ namespace: binding.namespace,
289
+ toolId: binding.toolId,
290
+ operation: binding.operation,
291
+ actionBindingId: binding.actionBindingId,
292
+ actionBindingVersion: binding.actionBindingVersion,
293
+ handlerDigest: collectiveDigest(binding.handlerDigest),
294
+ inputDigest: collectiveDigest(actionGrant.inputDigest),
295
+ assessmentDigest: digest("assessment:conformance"),
296
+ trustDecisionDigest: digest("trust:conformance"),
297
+ budgetReservationId: budgetReservation.reservationId,
298
+ budgetUnits: budgetReservation.units,
299
+ idempotencyKey: actionGrant.idempotencyKey,
300
+ issuedAtLogicalMs: 20,
301
+ expiresAtLogicalMs: 1_000,
302
+ status: "issued",
303
+ outcomeId: null,
304
+ };
305
+ const actionPermit = {
306
+ ...permitBody,
307
+ permitDigest: governedActionPermitDigestV1(permitBody),
308
+ };
309
+ const evidenceBase = {
310
+ schemaVersion: 1,
311
+ tenantId: statement.tenantId,
312
+ policyDomainId: statement.policyDomainId,
313
+ kind: "effect.dispatch",
314
+ accepted: true,
315
+ reasonCode: "effect_dispatched",
316
+ mandateId: statement.mandateId,
317
+ mandateDigest: mandate.mandateDigest,
318
+ workContractId: validWorkContract.workContractId,
319
+ workContractDigest: validWorkContract.workContractDigest,
320
+ permitId: actionPermit.permitId,
321
+ permitDigest: actionPermit.permitDigest,
322
+ assignmentAuthorityId: scope.assignmentAuthorityId,
323
+ assignmentEpoch: scope.assignmentEpoch,
324
+ fencingToken: scope.fencingToken,
325
+ budgetDeltaKind: "commit",
326
+ budgetDeltaUnits: 10,
327
+ inputDigest: collectiveDigest(actionGrant.inputDigest),
328
+ actionDigest: collectiveDigest(actionGrant.actionDigest),
329
+ assessmentDigest: permitBody.assessmentDigest,
330
+ trustDecisionDigest: permitBody.trustDecisionDigest,
331
+ };
332
+ const firstEvidence = createCollectiveDecisionRecordV1({
333
+ ...evidenceBase,
334
+ recordId: "record:conformance:1",
335
+ logicalTimeMs: 30,
336
+ previousRecordDigest: null,
337
+ });
338
+ const secondEvidence = createCollectiveDecisionRecordV1({
339
+ ...evidenceBase,
340
+ recordId: "record:conformance:2",
341
+ logicalTimeMs: 31,
342
+ previousRecordDigest: firstEvidence.recordDigest,
343
+ });
344
+ const conflictingEvidenceRecord = createCollectiveDecisionRecordV1({
345
+ ...evidenceBase,
346
+ recordId: firstEvidence.recordId,
347
+ logicalTimeMs: 32,
348
+ accepted: false,
349
+ reasonCode: "effect_denied",
350
+ budgetDeltaKind: "none",
351
+ budgetDeltaUnits: 0,
352
+ previousRecordDigest: null,
353
+ });
354
+ const roomProposal = createDelegationMandateProposalV1({
355
+ proposalId: "proposal:conformance",
356
+ roomDecision: {
357
+ ...roomProvenance,
358
+ decidedAt: "2026-08-01T00:00:00.000Z",
359
+ decidedBy: "peer:operator",
360
+ },
361
+ statement,
362
+ });
363
+ return Object.freeze({
364
+ authorityState: accepted.state,
365
+ mandate,
366
+ emptyExecutionState,
367
+ executionState: registered.state,
368
+ validWorkContract,
369
+ widenedWorkContract,
370
+ budgetReservation,
371
+ actionPermit,
372
+ actionGrant,
373
+ conflictingActionGrant,
374
+ evidenceRecords: Object.freeze([firstEvidence, secondEvidence]),
375
+ conflictingEvidenceRecord,
376
+ secretCanary: "conformance-secret-canary-7f9d3e1a",
377
+ roomProposal,
378
+ });
379
+ }
380
+ function collectiveDigest(value) {
381
+ return value;
382
+ }
383
+ //# sourceMappingURL=control-fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-fixtures.js","sourceRoot":"","sources":["../src/control-fixtures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ import { type BudgetReservationV1, type CollectiveAuthorityRepositoryV1, type CollectiveAuthorityStateV1, type CollectiveDecisionRecordV1, type CollectiveDigestV1, type CollectiveEvidenceSinkV1, type CollectiveExecutionRepositoryV1, type CollectiveExecutionStateV1, type DelegationMandateV1, type GovernedActionPermitV1, type WorkContractV1 } from "@agentplat/collective-control";
2
+ import { type ActionGrant, type ActionGrantRepository } from "@agentplat/inference-control/tools";
3
+ export { createControlConformanceFixturesV1 } from "./control-fixtures.js";
4
+ export declare const CONTROL_CONFORMANCE_VERSION: 1;
5
+ export declare const CONTROL_CONFORMANCE_CAPABILITIES: readonly ["control.portable", "control.repositories", "control.rooms", "control.persistence"];
6
+ export type ControlConformanceCapability = (typeof CONTROL_CONFORMANCE_CAPABILITIES)[number];
7
+ export declare const CONTROL_REQUIRED_CONFORMANCE_CAPABILITIES: readonly ["control.portable", "control.repositories"];
8
+ export interface ControlConformanceCaseDefinitionV1 {
9
+ readonly caseId: string;
10
+ readonly capability: ControlConformanceCapability;
11
+ }
12
+ export declare const CONTROL_CONFORMANCE_CASES_V1: readonly [Readonly<{
13
+ caseId: "control.authority.unknown_digest";
14
+ capability: "control.portable";
15
+ }>, Readonly<{
16
+ caseId: "control.work.scope_widening";
17
+ capability: "control.portable";
18
+ }>, Readonly<{
19
+ caseId: "control.permit.single_use";
20
+ capability: "control.portable";
21
+ }>, Readonly<{
22
+ caseId: "control.permit.indeterminate_retained";
23
+ capability: "control.portable";
24
+ }>, Readonly<{
25
+ caseId: "control.authority.cas_stale";
26
+ capability: "control.repositories";
27
+ }>, Readonly<{
28
+ caseId: "control.execution.cas_stale";
29
+ capability: "control.repositories";
30
+ }>, Readonly<{
31
+ caseId: "control.grant.exact_idempotency";
32
+ capability: "control.repositories";
33
+ }>, Readonly<{
34
+ caseId: "control.grant.substitution_conflict";
35
+ capability: "control.repositories";
36
+ }>, Readonly<{
37
+ caseId: "control.grant.cas_stale";
38
+ capability: "control.repositories";
39
+ }>, Readonly<{
40
+ caseId: "control.evidence.chain";
41
+ capability: "control.repositories";
42
+ }>, Readonly<{
43
+ caseId: "control.evidence.conflict";
44
+ capability: "control.repositories";
45
+ }>, Readonly<{
46
+ caseId: "control.evidence.redaction";
47
+ capability: "control.repositories";
48
+ }>, Readonly<{
49
+ caseId: "control.rooms.proposal_inert";
50
+ capability: "control.rooms";
51
+ }>, Readonly<{
52
+ caseId: "control.persistence.restart";
53
+ capability: "control.persistence";
54
+ }>];
55
+ export type ControlConformanceCaseIdV1 = (typeof CONTROL_CONFORMANCE_CASES_V1)[number]["caseId"];
56
+ export interface ControlConformanceFixturesV1 {
57
+ readonly authorityState: CollectiveAuthorityStateV1;
58
+ readonly mandate: DelegationMandateV1;
59
+ readonly emptyExecutionState: CollectiveExecutionStateV1;
60
+ readonly executionState: CollectiveExecutionStateV1;
61
+ readonly validWorkContract: WorkContractV1;
62
+ readonly widenedWorkContract: WorkContractV1;
63
+ readonly budgetReservation: BudgetReservationV1;
64
+ readonly actionPermit: GovernedActionPermitV1;
65
+ readonly actionGrant: ActionGrant;
66
+ readonly conflictingActionGrant: ActionGrant;
67
+ readonly evidenceRecords: readonly [
68
+ CollectiveDecisionRecordV1,
69
+ CollectiveDecisionRecordV1
70
+ ];
71
+ readonly conflictingEvidenceRecord: CollectiveDecisionRecordV1;
72
+ readonly secretCanary: string;
73
+ readonly roomProposal?: unknown;
74
+ }
75
+ export interface ControlConformanceAdapterV1 {
76
+ readonly authorityRepository: CollectiveAuthorityRepositoryV1;
77
+ readonly executionRepository: CollectiveExecutionRepositoryV1;
78
+ readonly actionGrantRepository: ActionGrantRepository;
79
+ readonly evidenceSink: CollectiveEvidenceSinkV1;
80
+ /** Independent, redacted view of what the sink persisted. */
81
+ readonly inspectEvidence: () => unknown | Promise<unknown>;
82
+ readonly fixtures: ControlConformanceFixturesV1;
83
+ readonly restart?: () => ControlConformanceRestartV1 | Promise<ControlConformanceRestartV1>;
84
+ readonly cleanup?: () => void | Promise<void>;
85
+ }
86
+ export interface ControlConformanceRestartV1 {
87
+ readonly authorityRepository: CollectiveAuthorityRepositoryV1;
88
+ readonly executionRepository: CollectiveExecutionRepositoryV1;
89
+ readonly actionGrantRepository: ActionGrantRepository;
90
+ readonly evidenceSink: CollectiveEvidenceSinkV1;
91
+ }
92
+ export interface ControlConformanceFactoryContextV1 {
93
+ readonly seed: number;
94
+ readonly signal: AbortSignal;
95
+ }
96
+ export type ControlConformanceFactoryV1 = (caseId: ControlConformanceCaseIdV1, context: ControlConformanceFactoryContextV1) => ControlConformanceAdapterV1 | Promise<ControlConformanceAdapterV1>;
97
+ export interface ControlConformanceOptionsV1 {
98
+ readonly declaredCapabilities: readonly ControlConformanceCapability[];
99
+ readonly factory: ControlConformanceFactoryV1;
100
+ readonly seed?: number;
101
+ readonly timeoutMs?: number;
102
+ readonly cleanupTimeoutMs?: number;
103
+ readonly signal?: AbortSignal;
104
+ readonly clock?: () => number;
105
+ }
106
+ export interface ControlConformanceCaseResultV1 {
107
+ readonly caseId: ControlConformanceCaseIdV1;
108
+ readonly capability: ControlConformanceCapability;
109
+ readonly outcome: "passed" | "failed" | "not_declared";
110
+ readonly reasonCode: string | null;
111
+ readonly durationMs: number;
112
+ }
113
+ export interface ControlConformanceReportV1 {
114
+ readonly schemaVersion: 1;
115
+ readonly conformanceVersion: number;
116
+ readonly suiteDigest: CollectiveDigestV1;
117
+ readonly fixtureManifestDigest: CollectiveDigestV1;
118
+ readonly implementation: {
119
+ readonly name: string;
120
+ readonly version: string;
121
+ };
122
+ readonly declaredCapabilities: readonly ControlConformanceCapability[];
123
+ readonly seed: number;
124
+ readonly cases: readonly ControlConformanceCaseResultV1[];
125
+ readonly counts: {
126
+ readonly passed: number;
127
+ readonly failed: number;
128
+ readonly notDeclared: number;
129
+ readonly total: number;
130
+ };
131
+ readonly verdict: "passed" | "failed";
132
+ }
133
+ export declare function runControlConformanceV1(options: ControlConformanceOptionsV1): Promise<readonly ControlConformanceCaseResultV1[]>;
134
+ export declare function createControlConformanceReportV1(input: {
135
+ readonly suiteDigest: CollectiveDigestV1;
136
+ readonly fixtureManifestDigest: CollectiveDigestV1;
137
+ readonly implementation: {
138
+ readonly name: string;
139
+ readonly version: string;
140
+ };
141
+ readonly declaredCapabilities: readonly ControlConformanceCapability[];
142
+ readonly seed: number;
143
+ readonly cases: readonly ControlConformanceCaseResultV1[];
144
+ }): ControlConformanceReportV1;
145
+ export declare function validateControlConformanceReportV1(value: unknown): ControlConformanceReportV1;
146
+ //# sourceMappingURL=control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"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"}