borgmcp-shared 0.3.0 → 0.4.2

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.
@@ -1,8 +1,9 @@
1
- import { ErrorCode, ProtocolContractError, compareLogCursor, createProtocolEnvelope, decodeCreateCubeResponseEnvelope, decodeAppendLogResultEnvelope, decodeDecisionResultEnvelope, decodeDecisionsResultEnvelope, decodeEnrollmentExchangeResponseEnvelope, decodeProtocolErrorEnvelope, decodeProtocolInfoEnvelope, decodeReadLogResultEnvelope, decodeSseFrames, negotiateProtocol, utf8ByteLength, } from '../protocol/index.js';
1
+ import { ErrorCode, compareLogCursor, createProtocolEnvelope, decodeCreateCubeResponseEnvelope, decodeAppendLogResultEnvelope, decodeDecisionResultEnvelope, decodeDecisionsResultEnvelope, decodeEnrollmentExchangeResponseEnvelope, decodeEvictDroneResultEnvelope, decodeProtocolEnvelope, decodeProtocolErrorEnvelope, decodeProtocolTagPreflight, decodeReadLogResultEnvelope, decodeReassignDroneResultEnvelope, decodeSseFrames, PROTOCOL_LIMIT_CEILINGS, PROTOCOL_HTTP_CONTRACT, PROTOCOL_VERSION, utf8ByteLength, } from '../protocol/index.js';
2
2
  import { ENROLLMENT_RETRY_CONFORMANCE } from './index.js';
3
3
  export const ADAPTER_CONFORMANCE_FIXTURES = [
4
4
  { id: 'http.unauthenticated-liveness', area: 'http' },
5
- { id: 'protocol.enrollment-auth', area: 'protocol' },
5
+ { id: 'protocol.credential-free-preflight', area: 'protocol' },
6
+ { id: 'enrollment.retry-authority', area: 'enrollment' },
6
7
  { id: 'security.adapter-boundary-injection', area: 'security' },
7
8
  { id: 'security.oversize-request', area: 'security' },
8
9
  { id: 'security.cross-cube-isolation', area: 'security' },
@@ -12,7 +13,12 @@ export const ADAPTER_CONFORMANCE_FIXTURES = [
12
13
  { id: 'acks.idempotent', area: 'acks' },
13
14
  { id: 'claims.durable-noncursor', area: 'claims' },
14
15
  { id: 'decisions.topic-supersession', area: 'decisions' },
15
- { id: 'capabilities.unsupported-fails-closed', area: 'capabilities' },
16
+ { id: 'security.drone-management-authorization', area: 'security' },
17
+ { id: 'security.manage-access-matrix', area: 'security' },
18
+ { id: 'drones.reassign-invariants', area: 'drones' },
19
+ { id: 'security.cross-cube-drone-management', area: 'security' },
20
+ { id: 'drones.evict-terminal-signal', area: 'drones' },
21
+ { id: 'security.drone-session-rejection-causes', area: 'security' },
16
22
  { id: 'security.active-stream-revocation', area: 'security' },
17
23
  ];
18
24
  const DEFAULT_STREAM_DEADLINE_MS = 5_000;
@@ -117,6 +123,19 @@ function logEvent(event, description) {
117
123
  function same(left, right) {
118
124
  return JSON.stringify(left) === JSON.stringify(right);
119
125
  }
126
+ function listedDroneIds(response) {
127
+ return decodeProtocolEnvelope(response.body, (payload) => {
128
+ invariant(typeof payload === 'object' && payload !== null, 'Roster payload is not an object.');
129
+ const drones = payload.drones;
130
+ invariant(Array.isArray(drones), 'Roster payload omitted drones.');
131
+ return drones.map((drone) => {
132
+ invariant(typeof drone === 'object' && drone !== null, 'Roster contains an invalid drone.');
133
+ const id = drone.id;
134
+ invariant(typeof id === 'string', 'Roster drone omitted its id.');
135
+ return id;
136
+ });
137
+ }).payload;
138
+ }
120
139
  function assertStateDelta(before, after, expected, description) {
121
140
  for (const key of Object.keys(before)) {
122
141
  invariant(after[key] - before[key] === (expected[key] ?? 0), `${description} changed ${key} by ${after[key] - before[key]}; expected ${expected[key] ?? 0}.`);
@@ -166,16 +185,22 @@ export async function runAdapterConformance(environment, options = {}) {
166
185
  let cubeB;
167
186
  let credentialA = '';
168
187
  let credentialB = '';
169
- let protocolBody;
170
- let protocolInfo = null;
171
188
  await record('http.unauthenticated-liveness', async () => {
172
189
  const response = await environment.operations.health();
173
190
  expectStatus(response, 204, 'Unauthenticated liveness');
174
191
  invariant(response.body === '' || response.body === undefined, 'Unauthenticated liveness exposed a response body.');
175
192
  return { status: 204, bodyless: true };
176
193
  });
177
- await record('protocol.enrollment-auth', async () => {
178
- expectError(await environment.operations.protocol(null), 401, ErrorCode.AUTH_MISSING, 'Unauthenticated protocol request');
194
+ await record('protocol.credential-free-preflight', async () => {
195
+ const before = await environment.admin.observeAuthorityState();
196
+ const response = await environment.operations.protocol(null);
197
+ expectStatus(response, 200, 'Credential-free protocol-tag preflight');
198
+ const preflight = decodeProtocolTagPreflight(response.body);
199
+ invariant(Object.keys(preflight).length === 1 && preflight.protocol_version === PROTOCOL_VERSION, 'Protocol-tag preflight exposed more than the exact tag.');
200
+ assertStateDelta(before, await environment.admin.observeAuthorityState(), {}, 'Protocol-tag preflight');
201
+ return { authenticated: false, mutation_free: true, protocol_version: preflight.protocol_version };
202
+ });
203
+ await record('enrollment.retry-authority', async () => {
179
204
  const retryVectorErrors = [];
180
205
  for (const [index, vector] of ENROLLMENT_RETRY_CONFORMANCE.entries()) {
181
206
  for (const purpose of ['client', 'owner']) {
@@ -212,13 +237,10 @@ export async function runAdapterConformance(environment, options = {}) {
212
237
  assertEnrollmentErrorIsSecretFree(retryResponse, [initialPayload, retryPayload], `${purpose} ${vector.name}`);
213
238
  }
214
239
  assertStateDelta(beforeRetry, await environment.admin.observeAuthorityState(), {}, `${purpose} ${vector.name} retry`);
215
- expectStatus(await environment.operations.protocol(vector.initial.client_credential), 200, `${purpose} ${vector.name} original credential continuity`);
216
- if (vector.retry.client_credential !== vector.initial.client_credential) {
217
- expectError(await environment.operations.protocol(vector.retry.client_credential), 401, ErrorCode.AUTH_INVALID, `${purpose} ${vector.name} mismatched credential rejection`);
218
- }
219
240
  invariant(same(await environment.admin.inspectEnrollmentPrincipal(principal, initial.client_id), {
220
241
  response_client_matches: true,
221
242
  active_credential_bindings: 1,
243
+ bound_credential_matches_enrollment: true,
222
244
  }), `${purpose} ${vector.name} changed enrollment binding ownership.`);
223
245
  }
224
246
  catch (error) {
@@ -358,32 +380,18 @@ export async function runAdapterConformance(environment, options = {}) {
358
380
  ...enrollmentARequest.payload,
359
381
  retry_key: '00000000-0000-4000-8000-000000000203',
360
382
  })), 401, ErrorCode.AUTH_INVALID, 'Enrollment retry mismatch');
361
- const protocolResponse = await environment.operations.protocol(credentialA);
362
- expectStatus(protocolResponse, 200, 'Authenticated protocol request');
363
- protocolBody = protocolResponse.body;
364
- protocolInfo = negotiateProtocol(decodeProtocolInfoEnvelope(protocolBody).payload, [
365
- 'log.cursor',
366
- 'stream.sse',
367
- 'stream.replay',
368
- 'acks',
369
- 'claims',
370
- 'decisions',
371
- ]);
372
383
  return {
373
- unauthenticated: ErrorCode.AUTH_MISSING,
374
384
  enrollment_status: 201,
375
385
  exact_retry_status: 201,
376
386
  mismatched_retry: ErrorCode.AUTH_INVALID,
377
387
  response_secret_free: true,
378
- protocol_version: protocolInfo.protocol_version,
379
388
  };
380
389
  });
381
390
  await record('security.adapter-boundary-injection', async () => {
382
- invariant(protocolInfo, 'Protocol fixture did not produce request limits.');
383
391
  const injectedMessage = "'); DROP TABLE log_entries; --\r\ndata: forged-sse-frame";
384
392
  const injectedBody = JSON.stringify(createProtocolEnvelope('inject-b1', { message: injectedMessage }));
385
- invariant(utf8ByteLength(injectedBody) <= protocolInfo.limits.max_request_bytes &&
386
- utf8ByteLength(injectedMessage) <= protocolInfo.limits.max_log_message_bytes, 'Injection fixture exceeded an advertised request limit.');
393
+ invariant(utf8ByteLength(injectedBody) <= PROTOCOL_LIMIT_CEILINGS.max_request_bytes &&
394
+ utf8ByteLength(injectedMessage) <= PROTOCOL_LIMIT_CEILINGS.max_log_message_bytes, 'Injection fixture exceeded the shared request-limit ceiling.');
387
395
  const injected = await environment.operations.appendRaw(credentialB, cubeB, injectedBody);
388
396
  expectStatus(injected, 201, 'Adapter-boundary injection append');
389
397
  const injectedEntry = decodeAppendLogResultEnvelope(injected.body).payload.entry;
@@ -417,10 +425,9 @@ export async function runAdapterConformance(environment, options = {}) {
417
425
  };
418
426
  });
419
427
  await record('security.oversize-request', async () => {
420
- invariant(protocolInfo, 'Protocol fixture did not produce request limits.');
421
428
  const baseBody = JSON.stringify(createProtocolEnvelope('oversize-a1', { message: 'must-not-persist' }));
422
- const oversizedBody = baseBody + ' '.repeat(Math.max(0, protocolInfo.limits.max_request_bytes - utf8ByteLength(baseBody) + 1));
423
- invariant(utf8ByteLength(oversizedBody) > protocolInfo.limits.max_request_bytes, 'Oversize fixture did not exceed max_request_bytes.');
429
+ const oversizedBody = baseBody + ' '.repeat(Math.max(0, PROTOCOL_LIMIT_CEILINGS.max_request_bytes - utf8ByteLength(baseBody) + 1));
430
+ invariant(utf8ByteLength(oversizedBody) > PROTOCOL_LIMIT_CEILINGS.max_request_bytes, 'Oversize fixture did not exceed max_request_bytes.');
424
431
  const response = await environment.operations.appendRaw(credentialA, cubeA, oversizedBody);
425
432
  expectError(response, 413, ErrorCode.CONTENT_TOO_LARGE, 'Oversized append request');
426
433
  const read = await environment.operations.read(credentialA, cubeA, createProtocolEnvelope('oversize-read', { cursor: null, limit: 10 }));
@@ -541,20 +548,244 @@ export async function runAdapterConformance(environment, options = {}) {
541
548
  invariant(second.supersedes === first.id, 'Superseding decision did not reference its predecessor.');
542
549
  return { active_count: 1, active_decision: 'second', supersedes_first: true };
543
550
  });
544
- await record('capabilities.unsupported-fails-closed', async () => {
545
- invariant(protocolBody, 'Protocol fixture did not produce an envelope.');
546
- let code = null;
547
- try {
548
- negotiateProtocol(decodeProtocolInfoEnvelope(protocolBody).payload, ['future.required']);
549
- }
550
- catch (error) {
551
- if (error instanceof ProtocolContractError)
552
- code = error.code;
551
+ let workerRoleA;
552
+ let workerRoleB;
553
+ let managedWorker;
554
+ let readCredential = '';
555
+ let writeCredential = '';
556
+ let workerSession = '';
557
+ await record('security.drone-management-authorization', async () => {
558
+ workerRoleA = await environment.admin.createRole(cubeA, {
559
+ roleClass: 'worker', isHumanSeat: false,
560
+ });
561
+ managedWorker = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
562
+ const deniedCredentials = [];
563
+ for (const [index, access] of ['read', 'write'].entries()) {
564
+ const principalName = access === 'read' ? 'Coordinator' : 'write-principal';
565
+ const principal = await environment.admin.createPrincipal(principalName);
566
+ await environment.admin.grantCube(principal, cubeA, access);
567
+ const invitation = await environment.admin.issueSingleUseInvitation(principal, 'client');
568
+ const credential = `${(access === 'read' ? 'R' : 'W').repeat(42)}Q`;
569
+ if (access === 'read')
570
+ readCredential = credential;
553
571
  else
554
- throw error;
572
+ writeCredential = credential;
573
+ const enrollment = await environment.operations.enroll(createProtocolEnvelope(`${access}-principal-enroll`, {
574
+ invitation,
575
+ retry_key: `00000000-0000-4000-8000-${String(301 + index).padStart(12, '0')}`,
576
+ client_credential: credential,
577
+ client_name: principalName,
578
+ }));
579
+ expectStatus(enrollment, 201, `${access} principal enrollment`);
580
+ deniedCredentials.push({ access: access, credential });
581
+ }
582
+ for (const { access, credential } of deniedCredentials) {
583
+ expectError(await environment.operations.reassignDrone(credential, cubeA, managedWorker, createProtocolEnvelope(`${access}-reassign-denied`, { role_id: workerRoleA.id })), 403, ErrorCode.ACCESS_DENIED, `${access} principal reassignment`);
584
+ expectError(await environment.operations.evictDrone(credential, cubeA, managedWorker, createProtocolEnvelope(`${access}-evict-denied`, {})), 403, ErrorCode.ACCESS_DENIED, `${access} principal eviction`);
585
+ }
586
+ return { read_status: 403, write_status: 403, manage_required: true };
587
+ });
588
+ await record('security.manage-access-matrix', async () => {
589
+ const noGrantPrincipal = await environment.admin.createPrincipal('Coordinator role without cube grant');
590
+ const noGrantInvitation = await environment.admin.issueSingleUseInvitation(noGrantPrincipal, 'client');
591
+ const noGrantCredential = `${'N'.repeat(42)}Q`;
592
+ expectStatus(await environment.operations.enroll(createProtocolEnvelope('no-grant-principal-enroll', {
593
+ invitation: noGrantInvitation,
594
+ retry_key: '00000000-0000-4000-8000-000000000303',
595
+ client_credential: noGrantCredential,
596
+ client_name: 'Coordinator',
597
+ })), 201, 'No-grant principal enrollment');
598
+ const droneCredential = await environment.admin.issueManagedDroneSession(managedWorker);
599
+ const matrixTargetRole = await environment.admin.createRole(cubeA, {
600
+ roleClass: 'worker', isHumanSeat: false,
601
+ });
602
+ const evictionTarget = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
603
+ await environment.admin.issueManagedDroneSession(evictionTarget);
604
+ const unknownCube = { id: '00000000-0000-4000-8000-000000000399' };
605
+ const snapshot = async () => ({
606
+ cubeA: await environment.admin.inspectCubeManagementState(cubeA),
607
+ cubeB: await environment.admin.inspectCubeManagementState(cubeB),
608
+ });
609
+ const operations = [
610
+ {
611
+ name: 'cube-update',
612
+ successStatus: 200,
613
+ invoke: (credential, cube) => environment.operations.updateCube(credential, cube, createProtocolEnvelope('matrix-cube-update', { cube_directive: 'matrix-directive' })),
614
+ },
615
+ {
616
+ name: 'role-create',
617
+ successStatus: 201,
618
+ invoke: (credential, cube) => environment.operations.createRole(credential, cube, createProtocolEnvelope('matrix-role-create', { name: 'Matrix Role' })),
619
+ },
620
+ {
621
+ name: 'taxonomy-patch',
622
+ successStatus: 200,
623
+ invoke: (credential, cube) => environment.operations.patchTaxonomy(credential, cube, createProtocolEnvelope('matrix-taxonomy-patch', { marker: 'matrix-taxonomy' })),
624
+ },
625
+ {
626
+ name: 'decision-record',
627
+ successStatus: 201,
628
+ invoke: (credential, cube) => environment.operations.recordDecision(credential, cube, createProtocolEnvelope('matrix-decision-record', {
629
+ topic: 'matrix-authority', decision: 'manage only',
630
+ })),
631
+ },
632
+ {
633
+ name: 'drone-reassign',
634
+ successStatus: 200,
635
+ invoke: (credential, cube) => environment.operations.reassignDrone(credential, cube, managedWorker, createProtocolEnvelope('matrix-drone-reassign', { role_id: matrixTargetRole.id })),
636
+ },
637
+ {
638
+ name: 'drone-evict',
639
+ successStatus: 200,
640
+ invoke: (credential, cube) => environment.operations.evictDrone(credential, cube, evictionTarget, createProtocolEnvelope('matrix-drone-evict', {})),
641
+ },
642
+ ];
643
+ for (const operation of operations) {
644
+ for (const [kind, credential] of [
645
+ ['read', readCredential],
646
+ ['write', writeCredential],
647
+ ['drone-session', droneCredential],
648
+ ]) {
649
+ const before = await snapshot();
650
+ expectError(await operation.invoke(credential, cubeA), 403, ErrorCode.ACCESS_DENIED, `${operation.name} by ${kind} principal`);
651
+ invariant(same(await snapshot(), before), `${operation.name} mutated state after ${kind} denial.`);
652
+ }
653
+ for (const [kind, credential, cube] of [
654
+ ['no-grant', noGrantCredential, cubeA],
655
+ ['foreign-principal', credentialB, cubeA],
656
+ ['foreign-cube', credentialA, cubeB],
657
+ ['unknown-cube', credentialA, unknownCube],
658
+ ]) {
659
+ const before = await snapshot();
660
+ expectError(await operation.invoke(credential, cube), 404, ErrorCode.NOT_FOUND, `${operation.name} against ${kind}`);
661
+ invariant(same(await snapshot(), before), `${operation.name} mutated state after ${kind} denial.`);
662
+ }
663
+ const beforeSuccess = await environment.admin.inspectCubeManagementState(cubeA);
664
+ const success = await operation.invoke(credentialA, cubeA);
665
+ expectStatus(success, operation.successStatus, `${operation.name} by managing principal`);
666
+ invariant(!same(await environment.admin.inspectCubeManagementState(cubeA), beforeSuccess), `${operation.name} managing success did not mutate its declared state.`);
667
+ }
668
+ return {
669
+ operation_count: operations.length,
670
+ manage_success: true,
671
+ read_write_status: 403,
672
+ drone_session_status: 403,
673
+ hidden_status: 404,
674
+ denied_mutations: 0,
675
+ role_labels_authoritative: false,
676
+ };
677
+ });
678
+ await record('drones.reassign-invariants', async () => {
679
+ workerRoleB = await environment.admin.createRole(cubeA, {
680
+ roleClass: 'worker', isHumanSeat: false,
681
+ });
682
+ const humanSourceRole = await environment.admin.createRole(cubeA, {
683
+ roleClass: 'worker', isHumanSeat: true,
684
+ });
685
+ const queenRole = await environment.admin.createRole(cubeA, {
686
+ roleClass: 'queen', isHumanSeat: false,
687
+ });
688
+ const occupiedHumanRole = await environment.admin.createRole(cubeA, {
689
+ roleClass: 'worker', isHumanSeat: true,
690
+ });
691
+ const humanSource = await environment.admin.createDrone(principalA, cubeA, humanSourceRole);
692
+ await environment.admin.createDrone(principalA, cubeA, occupiedHumanRole);
693
+ const contender = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
694
+ workerSession = await environment.admin.issueManagedDroneSession(managedWorker);
695
+ const reassigned = await environment.operations.reassignDrone(credentialA, cubeA, managedWorker, createProtocolEnvelope('reassign-worker', { role_id: workerRoleB.id }));
696
+ expectStatus(reassigned, 200, 'Worker reassignment');
697
+ const reassignedDrone = decodeReassignDroneResultEnvelope(reassigned.body).payload.drone;
698
+ invariant(reassignedDrone.id === managedWorker.id && reassignedDrone.role_id === workerRoleB.id, 'Reassignment response did not identify the persisted target role.');
699
+ expectError(await environment.operations.reassignDrone(workerSession, cubeA, managedWorker, createProtocolEnvelope('reassign-drone-session-denied', { role_id: workerRoleA.id })), 403, ErrorCode.ACCESS_DENIED, 'Drone-session reassignment');
700
+ expectError(await environment.operations.reassignDrone(credentialA, cubeA, managedWorker, createProtocolEnvelope('reassign-queen-denied', { role_id: queenRole.id })), 403, ErrorCode.ACCESS_DENIED, 'Worker-to-queen reassignment');
701
+ const promoted = await environment.operations.reassignDrone(credentialA, cubeA, humanSource, createProtocolEnvelope('reassign-queen-allowed', { role_id: queenRole.id }));
702
+ expectStatus(promoted, 200, 'Human-seat-to-queen reassignment');
703
+ invariant(decodeReassignDroneResultEnvelope(promoted.body).payload.drone.role_id === queenRole.id, 'Human-seat-to-queen reassignment did not persist.');
704
+ expectError(await environment.operations.reassignDrone(credentialA, cubeA, contender, createProtocolEnvelope('reassign-occupied-denied', { role_id: occupiedHumanRole.id })), 409, ErrorCode.ROLE_IN_USE, 'Occupied human-seat reassignment');
705
+ return {
706
+ worker_reassigned: true,
707
+ drone_session_denied: true,
708
+ queen_requires_human_seat: true,
709
+ occupied_human_seat_denied: true,
710
+ };
711
+ });
712
+ await record('security.cross-cube-drone-management', async () => {
713
+ const foreignRole = await environment.admin.createRole(cubeB, {
714
+ roleClass: 'worker', isHumanSeat: false,
715
+ });
716
+ const foreignDrone = await environment.admin.createDrone(principalB, cubeB, foreignRole);
717
+ expectError(await environment.operations.reassignDrone(credentialA, cubeB, foreignDrone, createProtocolEnvelope('cross-cube-reassign', { role_id: foreignRole.id })), 404, ErrorCode.NOT_FOUND, 'Cross-cube reassignment');
718
+ expectError(await environment.operations.evictDrone(credentialA, cubeB, foreignDrone, createProtocolEnvelope('cross-cube-evict', {})), 404, ErrorCode.NOT_FOUND, 'Cross-cube eviction');
719
+ expectError(await environment.operations.reassignDrone(credentialA, cubeA, foreignDrone, createProtocolEnvelope('foreign-drone-local-route', { role_id: workerRoleA.id })), 404, ErrorCode.NOT_FOUND, 'Foreign drone reassignment through authorized cube route');
720
+ expectError(await environment.operations.evictDrone(credentialA, cubeA, foreignDrone, createProtocolEnvelope('foreign-drone-local-evict', {})), 404, ErrorCode.NOT_FOUND, 'Foreign drone eviction through authorized cube route');
721
+ expectError(await environment.operations.reassignDrone(credentialA, cubeA, managedWorker, createProtocolEnvelope('foreign-role-local-drone', { role_id: foreignRole.id })), 404, ErrorCode.NOT_FOUND, 'Foreign role reassignment through authorized cube route');
722
+ await environment.admin.grantCube(principalA, cubeB, 'read');
723
+ const foreignDroneBefore = await environment.admin.inspectManagedDrone(foreignDrone);
724
+ expectError(await environment.operations.reassignDrone(workerSession, cubeB, foreignDrone, createProtocolEnvelope('bound-drone-cross-cube-reassign', { role_id: foreignRole.id })), 404, ErrorCode.NOT_FOUND, 'Bound drone cross-cube reassignment');
725
+ invariant(same(await environment.admin.inspectManagedDrone(foreignDrone), foreignDroneBefore), 'Bound drone cross-cube reassignment mutated the foreign target.');
726
+ expectError(await environment.operations.evictDrone(workerSession, cubeB, foreignDrone, createProtocolEnvelope('bound-drone-cross-cube-evict', {})), 404, ErrorCode.NOT_FOUND, 'Bound drone cross-cube eviction');
727
+ invariant(same(await environment.admin.inspectManagedDrone(foreignDrone), foreignDroneBefore), 'Bound drone cross-cube eviction mutated the foreign target.');
728
+ return {
729
+ unauthorized_cube_status: 404,
730
+ foreign_drone_status: 404,
731
+ foreign_role_status: 404,
732
+ bound_drone_cross_cube_status: 404,
733
+ code: ErrorCode.NOT_FOUND,
734
+ };
735
+ });
736
+ await record('drones.evict-terminal-signal', async () => {
737
+ const evictedDrone = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
738
+ const evictedCredential = await environment.admin.issueManagedDroneSession(evictedDrone);
739
+ expectStatus(await environment.operations.read(evictedCredential, cubeA, createProtocolEnvelope('evict-probe-before', { cursor: null, limit: 1 })), 200, 'Pre-eviction seat probe');
740
+ const before = await environment.operations.listDrones(credentialA, cubeA);
741
+ expectStatus(before, 200, 'Pre-eviction roster');
742
+ invariant(listedDroneIds(before).includes(evictedDrone.id), 'Active drone was absent from roster.');
743
+ const evicted = await environment.operations.evictDrone(credentialA, cubeA, evictedDrone, createProtocolEnvelope('evict-managed-drone', {}));
744
+ expectStatus(evicted, 200, 'Drone eviction');
745
+ invariant(same(decodeEvictDroneResultEnvelope(evicted.body).payload, {
746
+ drone_id: evictedDrone.id,
747
+ evicted: true,
748
+ }), 'Eviction response did not identify the terminal seat.');
749
+ invariant(same(await environment.admin.inspectManagedDrone(evictedDrone), {
750
+ role_id: workerRoleA.id,
751
+ evicted: true,
752
+ session_revoked: true,
753
+ }), 'Eviction did not atomically mark the drone evicted and revoke its session.');
754
+ const after = await environment.operations.listDrones(credentialA, cubeA);
755
+ expectStatus(after, 200, 'Post-eviction roster');
756
+ invariant(!listedDroneIds(after).includes(evictedDrone.id), 'Evicted drone remained in roster.');
757
+ expectError(await environment.operations.append(credentialA, cubeA, createProtocolEnvelope('evict-direct-target', {
758
+ message: 'must-not-fan-out',
759
+ visibility: 'direct',
760
+ recipientDroneIds: [evictedDrone.id],
761
+ })), 404, ErrorCode.NOT_FOUND, 'Evicted direct recipient');
762
+ expectError(await environment.operations.read(evictedCredential, cubeA, createProtocolEnvelope('evict-probe-after', { cursor: null, limit: 1 })), PROTOCOL_HTTP_CONTRACT.drone_evicted_status, ErrorCode.DRONE_EVICTED, 'Evicted seat probe');
763
+ return {
764
+ eviction_status: 200,
765
+ roster_visible: false,
766
+ fanout_reachable: false,
767
+ old_bearer_status: 410,
768
+ old_bearer_code: ErrorCode.DRONE_EVICTED,
769
+ };
770
+ });
771
+ await record('security.drone-session-rejection-causes', async () => {
772
+ const revokedDrone = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
773
+ const expiredDrone = await environment.admin.createDrone(principalA, cubeA, workerRoleA);
774
+ const revokedCredential = await environment.admin.issueManagedDroneSession(revokedDrone);
775
+ const expiredCredential = await environment.admin.issueManagedDroneSession(expiredDrone);
776
+ await environment.admin.revokeManagedDroneSession(revokedDrone);
777
+ await environment.admin.expireManagedDroneSession(expiredDrone);
778
+ for (const [label, credential] of [
779
+ ['revoked', revokedCredential],
780
+ ['expired', expiredCredential],
781
+ ]) {
782
+ expectError(await environment.operations.read(credential, cubeA, createProtocolEnvelope(`${label}-seat-probe`, { cursor: null, limit: 1 })), 401, ErrorCode.SESSION_REVOKED, `${label} seat probe`);
555
783
  }
556
- invariant(code === ErrorCode.UNSUPPORTED_CAPABILITY, 'Unsupported capability did not fail closed client-side.');
557
- return { code };
784
+ return {
785
+ revoked_status: 401,
786
+ expired_status: 401,
787
+ code: ErrorCode.SESSION_REVOKED,
788
+ };
558
789
  });
559
790
  await record('security.active-stream-revocation', async () => {
560
791
  invariant(liveCursor, 'Stream fixture did not produce a live cursor.');
@@ -589,17 +820,4 @@ export async function runAdapterConformance(environment, options = {}) {
589
820
  const normalizedTranscript = results.map(({ id, observations }) => ({ id, observations }));
590
821
  return { ok: results.every((result) => result.ok), results, normalizedTranscript };
591
822
  }
592
- export async function runEquivalentAdapterConformance(cloud, local, options = {}) {
593
- const [cloudReport, localReport] = await Promise.all([
594
- runAdapterConformance(cloud, options),
595
- runAdapterConformance(local, options),
596
- ]);
597
- const equivalent = same(cloudReport.normalizedTranscript, localReport.normalizedTranscript);
598
- return {
599
- ok: cloudReport.ok && localReport.ok && equivalent,
600
- cloud: cloudReport,
601
- local: localReport,
602
- equivalent,
603
- };
604
- }
605
823
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/conformance/adapter.ts"],"names":[],"mappings":"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"}