@ibgib/core-gib 0.1.8 → 0.1.10

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 (80) hide show
  1. package/dist/agent-helpers.d.mts +45 -0
  2. package/dist/agent-helpers.d.mts.map +1 -0
  3. package/dist/agent-helpers.mjs +36 -0
  4. package/dist/agent-helpers.mjs.map +1 -0
  5. package/dist/keystone/keystone-config-builder.respec.d.mts +2 -0
  6. package/dist/keystone/keystone-config-builder.respec.d.mts.map +1 -0
  7. package/dist/keystone/keystone-config-builder.respec.mjs +34 -0
  8. package/dist/keystone/keystone-config-builder.respec.mjs.map +1 -0
  9. package/dist/keystone/keystone-constants.d.mts +2 -0
  10. package/dist/keystone/keystone-constants.d.mts.map +1 -1
  11. package/dist/keystone/keystone-constants.mjs +2 -0
  12. package/dist/keystone/keystone-constants.mjs.map +1 -1
  13. package/dist/keystone/keystone-helpers.d.mts +54 -1
  14. package/dist/keystone/keystone-helpers.d.mts.map +1 -1
  15. package/dist/keystone/keystone-helpers.mjs +185 -1
  16. package/dist/keystone/keystone-helpers.mjs.map +1 -1
  17. package/dist/keystone/keystone-service-v1.d.mts +49 -16
  18. package/dist/keystone/keystone-service-v1.d.mts.map +1 -1
  19. package/dist/keystone/keystone-service-v1.mjs +151 -328
  20. package/dist/keystone/keystone-service-v1.mjs.map +1 -1
  21. package/dist/keystone/keystone-service-v1.respec.mjs +401 -20
  22. package/dist/keystone/keystone-service-v1.respec.mjs.map +1 -1
  23. package/dist/keystone/keystone-types.d.mts +22 -0
  24. package/dist/keystone/keystone-types.d.mts.map +1 -1
  25. package/dist/sync/sync-constants.d.mts +17 -0
  26. package/dist/sync/sync-constants.d.mts.map +1 -0
  27. package/dist/sync/sync-constants.mjs +16 -0
  28. package/dist/sync/sync-constants.mjs.map +1 -0
  29. package/dist/sync/sync-helpers.d.mts +15 -0
  30. package/dist/sync/sync-helpers.d.mts.map +1 -0
  31. package/dist/sync/sync-helpers.mjs +46 -0
  32. package/dist/sync/sync-helpers.mjs.map +1 -0
  33. package/dist/sync/sync-local-spaces.respec.d.mts +2 -0
  34. package/dist/sync/sync-local-spaces.respec.d.mts.map +1 -0
  35. package/dist/sync/sync-local-spaces.respec.mjs +159 -0
  36. package/dist/sync/sync-local-spaces.respec.mjs.map +1 -0
  37. package/dist/sync/sync-saga-coordinator.d.mts +118 -0
  38. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -0
  39. package/dist/sync/sync-saga-coordinator.mjs +399 -0
  40. package/dist/sync/sync-saga-coordinator.mjs.map +1 -0
  41. package/dist/sync/sync-saga-coordinator.respec.d.mts +2 -0
  42. package/dist/sync/sync-saga-coordinator.respec.d.mts.map +1 -0
  43. package/dist/sync/sync-saga-coordinator.respec.mjs +40 -0
  44. package/dist/sync/sync-saga-coordinator.respec.mjs.map +1 -0
  45. package/dist/sync/sync-types.d.mts +103 -0
  46. package/dist/sync/sync-types.d.mts.map +1 -0
  47. package/dist/sync/sync-types.mjs +2 -0
  48. package/dist/sync/sync-types.mjs.map +1 -0
  49. package/dist/test/mock-space.d.mts +39 -0
  50. package/dist/test/mock-space.d.mts.map +1 -0
  51. package/dist/test/mock-space.mjs +79 -0
  52. package/dist/test/mock-space.mjs.map +1 -0
  53. package/dist/witness/space/inner-space/inner-space-v1.respec.mjs +163 -201
  54. package/dist/witness/space/inner-space/inner-space-v1.respec.mjs.map +1 -1
  55. package/dist/witness/space/space-helper.d.mts.map +1 -1
  56. package/dist/witness/space/space-helper.mjs +43 -4
  57. package/dist/witness/space/space-helper.mjs.map +1 -1
  58. package/dist/witness/space/space-helper.respec.d.mts +2 -0
  59. package/dist/witness/space/space-helper.respec.d.mts.map +1 -0
  60. package/dist/witness/space/space-helper.respec.mjs +30 -0
  61. package/dist/witness/space/space-helper.respec.mjs.map +1 -0
  62. package/package.json +2 -2
  63. package/src/agent-helpers.mts +58 -0
  64. package/src/keystone/keystone-config-builder.respec.mts +49 -0
  65. package/src/keystone/keystone-constants.mts +2 -0
  66. package/src/keystone/keystone-helpers.mts +211 -2
  67. package/src/keystone/keystone-service-v1.mts +183 -367
  68. package/src/keystone/keystone-service-v1.respec.mts +484 -21
  69. package/src/keystone/keystone-types.mts +24 -0
  70. package/src/sync/sync-constants.mts +24 -0
  71. package/src/sync/sync-helpers.mts +59 -0
  72. package/src/sync/sync-local-spaces.respec.mts +200 -0
  73. package/src/sync/sync-saga-coordinator.mts +477 -0
  74. package/src/sync/sync-saga-coordinator.respec.mts +52 -0
  75. package/src/sync/sync-types.mts +120 -0
  76. package/src/test/mock-space.mts +85 -0
  77. package/src/witness/space/inner-space/inner-space-v1.respec.mts +181 -228
  78. package/src/witness/space/space-helper.mts +42 -4
  79. package/src/witness/space/space-helper.respec.mts +42 -0
  80. package/tmp.md +11 -0
@@ -1,14 +1,13 @@
1
- import { respecfully, iReckon, firstOfAll, respecfullyDear, ifWeMight } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
1
+ import { respecfully, iReckon, ifWe, firstOfAll } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
2
2
  const maam = `[${import.meta.url}]`, sir = maam;
3
+ import { clone, hash } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
3
4
  import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
4
- // import { MetaspaceService, } from '@ibgib/core-gib/dist/witness/space/metaspace/metaspace-types.mjs';
5
- // import { Metaspace_Innerspace } from '@ibgib/core-gib/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
6
- // import { IbGibSpaceAny } from '@ibgib/core-gib/dist/witness/space/space-base-v1.mjs';
7
5
  import { GLOBAL_LOG_A_LOT } from '../core-constants.mjs';
8
6
  import { KeystoneStrategyFactory } from './strategy/keystone-strategy-factory.mjs';
9
7
  import { createRevocationPoolConfig, createStandardPoolConfig } from './keystone-config-builder.mjs';
10
- import { POOL_ID_DEFAULT, POOL_ID_REVOKE, KEYSTONE_VERB_REVOKE } from './keystone-constants.mjs';
8
+ import { POOL_ID_DEFAULT, POOL_ID_REVOKE, KEYSTONE_VERB_REVOKE, KEYSTONE_VERB_MANAGE } from './keystone-constants.mjs';
11
9
  import { KeystoneService_V1 } from './keystone-service-v1.mjs';
10
+ import { addToBindingMap } from './keystone-helpers.mjs';
12
11
  const logalot = GLOBAL_LOG_A_LOT;
13
12
  // /**
14
13
  // * not sure where to put this, but we probably will want to reuse this in the
@@ -175,20 +174,20 @@ await respecfully(sir, 'Suite A: Strategy Vectors (HashRevealV1)', async () => {
175
174
  config = createStandardPoolConfig(salt);
176
175
  });
177
176
  await respecfully(sir, 'Derivation Logic', async () => {
178
- await ifWeMight(sir, 'derivePoolSecret with same inputs returns same output', async () => {
177
+ await ifWe(sir, 'derivePoolSecret with same inputs returns same output', async () => {
179
178
  const strategy = KeystoneStrategyFactory.create({ config });
180
179
  const secretA = await strategy.derivePoolSecret({ masterSecret });
181
180
  const secretB = await strategy.derivePoolSecret({ masterSecret });
182
181
  iReckon(sir, secretA).asTo('secret consistency').willEqual(secretB);
183
182
  iReckon(sir, secretA).asTo('secret length').isGonnaBeTruthy();
184
183
  });
185
- await ifWeMight(sir, 'derivePoolSecret with different master secret returns different output', async () => {
184
+ await ifWe(sir, 'derivePoolSecret with different master secret returns different output', async () => {
186
185
  const strategy = KeystoneStrategyFactory.create({ config });
187
186
  const secretA = await strategy.derivePoolSecret({ masterSecret });
188
187
  const secretB = await strategy.derivePoolSecret({ masterSecret: masterSecret + "_diff" });
189
188
  iReckon(sir, secretA).asTo('secrets differ').not.willEqual(secretB);
190
189
  });
191
- await ifWeMight(sir, 'derivePoolSecret with different salt returns different output', async () => {
190
+ await ifWe(sir, 'derivePoolSecret with different salt returns different output', async () => {
192
191
  // Modify salt in a copy of config
193
192
  const configB = { ...config, salt: "OtherPool" };
194
193
  const strategyA = KeystoneStrategyFactory.create({ config });
@@ -199,7 +198,7 @@ await respecfully(sir, 'Suite A: Strategy Vectors (HashRevealV1)', async () => {
199
198
  });
200
199
  });
201
200
  await respecfully(sir, 'Challenge/Solution Logic', async () => {
202
- await ifWeMight(sir, 'generateSolution -> generateChallenge -> validateSolution loop works', async () => {
201
+ await ifWe(sir, 'generateSolution -> generateChallenge -> validateSolution loop works', async () => {
203
202
  const strategy = KeystoneStrategyFactory.create({ config });
204
203
  const poolSecret = await strategy.derivePoolSecret({ masterSecret });
205
204
  const challengeId = "a3ff7843552870fc28bef2b"; // arbitrary random challengeId
@@ -214,7 +213,7 @@ await respecfully(sir, 'Suite A: Strategy Vectors (HashRevealV1)', async () => {
214
213
  const isValid = await strategy.validateSolution({ solution, challenge });
215
214
  iReckon(sir, isValid).asTo('valid pair should pass').isGonnaBeTrue();
216
215
  });
217
- await ifWeMight(sir, 'validateSolution fails for mismatched values', async () => {
216
+ await ifWe(sir, 'validateSolution fails for mismatched values', async () => {
218
217
  const strategy = KeystoneStrategyFactory.create({ config });
219
218
  const poolSecret = await strategy.derivePoolSecret({ masterSecret });
220
219
  const challengeId = "8c994f3ed598f150e25513"; // arbitrary random challengeId
@@ -226,7 +225,7 @@ await respecfully(sir, 'Suite A: Strategy Vectors (HashRevealV1)', async () => {
226
225
  const isValid = await strategy.validateSolution({ solution: badSolution, challenge });
227
226
  iReckon(sir, isValid).asTo('tampered solution should fail').isGonnaBeFalse();
228
227
  });
229
- await ifWeMight(sir, 'validateSolution fails for mismatched challenge hashes', async () => {
228
+ await ifWe(sir, 'validateSolution fails for mismatched challenge hashes', async () => {
230
229
  const strategy = KeystoneStrategyFactory.create({ config });
231
230
  const poolSecret = await strategy.derivePoolSecret({ masterSecret });
232
231
  // Generate pair A
@@ -257,7 +256,7 @@ await respecfully(sir, 'Suite B: Service Lifecycle', async () => {
257
256
  mockMetaspace = new MockMetaspaceService(mockSpace);
258
257
  });
259
258
  await respecfully(sir, 'Genesis', async () => {
260
- await ifWeMight(sir, 'creates a valid genesis frame and persists it', async () => {
259
+ await ifWe(sir, 'creates a valid genesis frame and persists it', async () => {
261
260
  const config = createStandardPoolConfig(POOL_ID_DEFAULT);
262
261
  genesisKeystone = await service.genesis({
263
262
  masterSecret,
@@ -279,7 +278,7 @@ await respecfully(sir, 'Suite B: Service Lifecycle', async () => {
279
278
  });
280
279
  });
281
280
  await respecfully(sir, 'Signing (Evolution)', async () => {
282
- await ifWeMight(sir, 'evolves the keystone with a valid proof', async () => {
281
+ await ifWe(sir, 'evolves the keystone with a valid proof', async () => {
283
282
  const claim = {
284
283
  target: "comment 123^gib",
285
284
  verb: "post"
@@ -304,7 +303,7 @@ await respecfully(sir, 'Suite B: Service Lifecycle', async () => {
304
303
  });
305
304
  });
306
305
  await respecfully(sir, 'Validation', async () => {
307
- await ifWeMight(sir, 'validates the genesis->signed transition', async () => {
306
+ await ifWe(sir, 'validates the genesis->signed transition', async () => {
308
307
  const errors = await service.validate({
309
308
  prevIbGib: genesisKeystone,
310
309
  currentIbGib: signedKeystone,
@@ -339,7 +338,7 @@ await respecfully(sir, 'Suite C: Security Vectors', async () => {
339
338
  });
340
339
  });
341
340
  await respecfully(sir, 'Wrong Secret (Forgery)', async () => {
342
- await ifWeMight(sir, 'prevents creation of forged frames', async () => {
341
+ await ifWe(sir, 'prevents creation of forged frames', async () => {
343
342
  const claim = { target: "comment 123^gib", verb: "post" };
344
343
  let errorCaught = false;
345
344
  let errorMsg = "";
@@ -365,7 +364,7 @@ await respecfully(sir, 'Suite C: Security Vectors', async () => {
365
364
  });
366
365
  });
367
366
  await respecfully(sir, 'Policy Violation (Restricted Verbs)', async () => {
368
- await ifWeMight(sir, 'throws error if signing forbidden verb with restricted pool', async () => {
367
+ await ifWe(sir, 'throws error if signing forbidden verb with restricted pool', async () => {
369
368
  // Create a specific restricted pool config manually
370
369
  const restrictedPoolId = "read_only_pool";
371
370
  const restrictedConfig = createStandardPoolConfig(restrictedPoolId);
@@ -401,7 +400,7 @@ await respecfully(sir, 'Suite C: Security Vectors', async () => {
401
400
  // ===========================================================================
402
401
  // SUITE D: REVOCATION
403
402
  // ===========================================================================
404
- await respecfullyDear(sir, 'Suite D: Revocation', async () => {
403
+ await respecfully(sir, 'Suite D: Revocation', async () => {
405
404
  const service = new KeystoneService_V1();
406
405
  const masterSecret = "AliceSecret_RevokeTest";
407
406
  let mockSpace;
@@ -422,7 +421,7 @@ await respecfullyDear(sir, 'Suite D: Revocation', async () => {
422
421
  });
423
422
  await respecfully(sir, 'Revoke Lifecycle', async () => {
424
423
  let revokedKeystone;
425
- await ifWeMight(sir, 'successfully creates a revocation frame', async () => {
424
+ await ifWe(sir, 'successfully creates a revocation frame', async () => {
426
425
  revokedKeystone = await service.revoke({
427
426
  latestKeystone: genesisKeystone,
428
427
  masterSecret,
@@ -437,7 +436,7 @@ await respecfullyDear(sir, 'Suite D: Revocation', async () => {
437
436
  iReckon(sir, data.revocationInfo.reason).willEqual("Key compromised");
438
437
  iReckon(sir, data.revocationInfo.proof.claim.verb).willEqual(KEYSTONE_VERB_REVOKE);
439
438
  });
440
- await ifWeMight(sir, 'validates the revocation frame', async () => {
439
+ await ifWe(sir, 'validates the revocation frame', async () => {
441
440
  const errors = await service.validate({
442
441
  prevIbGib: genesisKeystone,
443
442
  currentIbGib: revokedKeystone,
@@ -446,7 +445,7 @@ await respecfullyDear(sir, 'Suite D: Revocation', async () => {
446
445
  });
447
446
  iReckon(sir, errors.length).asTo('no validation errors').willEqual(0);
448
447
  });
449
- await ifWeMight(sir, 'consumed the revocation pool (Scorched Earth)', async () => {
448
+ await ifWe(sir, 'consumed the revocation pool (Scorched Earth)', async () => {
450
449
  const data = revokedKeystone.data;
451
450
  const revokePool = data.challengePools.find(p => p.id === POOL_ID_REVOKE);
452
451
  // The pool should exist...
@@ -457,4 +456,386 @@ await respecfullyDear(sir, 'Suite D: Revocation', async () => {
457
456
  });
458
457
  });
459
458
  });
459
+ // ===========================================================================
460
+ // SUITE E: STRUCTURAL EVOLUTION (addPools)
461
+ // ===========================================================================
462
+ await respecfully(sir, 'Suite E: Structural Evolution (addPools)', async () => {
463
+ const service = new KeystoneService_V1();
464
+ const aliceSecret = "Alice_Master_Key";
465
+ const bobSecret = "Bob_Foreign_Key";
466
+ let mockSpace;
467
+ let mockMetaspace;
468
+ let aliceKeystone;
469
+ // Helper to generate a "Foreign" pool (e.g. from Bob)
470
+ const createForeignPool = async (id, verbs = []) => {
471
+ const config = createStandardPoolConfig(id);
472
+ config.allowedVerbs = verbs;
473
+ // We use the factory manually here to simulate Bob doing this offline
474
+ const strategy = KeystoneStrategyFactory.create({ config });
475
+ const poolSecret = await strategy.derivePoolSecret({ masterSecret: bobSecret });
476
+ const challenges = {};
477
+ const bindingMap = {};
478
+ for (let i = 0; i < 10; i++) {
479
+ // Manually replicate ID gen for test
480
+ const raw = await hash({ s: `${config.salt}${Date.now()}${i}` });
481
+ const challengeId = raw.substring(0, 16);
482
+ const solution = await strategy.generateSolution({
483
+ poolSecret, poolId: config.salt, challengeId,
484
+ });
485
+ const challenge = await strategy.generateChallenge({ solution });
486
+ challenges[challengeId] = challenge;
487
+ addToBindingMap(bindingMap, challengeId);
488
+ }
489
+ return {
490
+ id,
491
+ config,
492
+ challenges,
493
+ bindingMap,
494
+ isForeign: true,
495
+ metadata: { owner: 'Bob' }
496
+ };
497
+ };
498
+ firstOfAll(sir, async () => {
499
+ mockSpace = new MockIbGibSpace();
500
+ mockMetaspace = new MockMetaspaceService(mockSpace);
501
+ // Alice Genesis: Standard pool (allows all verbs, including 'manage')
502
+ const config = createStandardPoolConfig(POOL_ID_DEFAULT);
503
+ aliceKeystone = await service.genesis({
504
+ masterSecret: aliceSecret,
505
+ configs: [config],
506
+ metaspace: mockMetaspace,
507
+ space: mockSpace,
508
+ });
509
+ });
510
+ await respecfully(sir, 'Happy Path', async () => {
511
+ await ifWe(sir, 'authorizes and adds a foreign pool', async () => {
512
+ const bobPool = await createForeignPool("pool_bob", ["post"]);
513
+ const updatedKeystone = await service.addPools({
514
+ latestKeystone: aliceKeystone,
515
+ masterSecret: aliceSecret,
516
+ newPools: [bobPool],
517
+ metaspace: mockMetaspace,
518
+ space: mockSpace,
519
+ });
520
+ // 1. Verify new state
521
+ iReckon(sir, updatedKeystone).isGonnaBeTruthy();
522
+ const pools = updatedKeystone.data.challengePools;
523
+ iReckon(sir, pools.length).asTo('pool count increased').willEqual(2);
524
+ const foundBob = pools.find(p => p.id === "pool_bob");
525
+ iReckon(sir, foundBob).asTo('bob pool exists').isGonnaBeTruthy();
526
+ iReckon(sir, foundBob.isForeign).asTo('isForeign flag').isGonnaBeTrue();
527
+ // 2. Verify Proof
528
+ const proof = updatedKeystone.data.proofs[0];
529
+ iReckon(sir, proof.claim.verb).asTo('proof verb').willEqual("manage");
530
+ // Alice signed this using HER pool (default), not Bob's
531
+ iReckon(sir, proof.solutions[0].poolId).willEqual(POOL_ID_DEFAULT);
532
+ // 3. Verify Validity
533
+ const errors = await service.validate({
534
+ prevIbGib: aliceKeystone,
535
+ currentIbGib: updatedKeystone,
536
+ });
537
+ iReckon(sir, errors.length).asTo('validation passed').willEqual(0);
538
+ // Update local ref for next tests
539
+ aliceKeystone = updatedKeystone;
540
+ });
541
+ });
542
+ await respecfully(sir, 'Permissions & Logic', async () => {
543
+ await ifWe(sir, 'fails if no pool allows "manage" verb', async () => {
544
+ // 1. Create a restricted keystone
545
+ const restrictedConfig = createStandardPoolConfig("read_only");
546
+ restrictedConfig.allowedVerbs = ['read']; // No 'manage'
547
+ const restrictedKeystone = await service.genesis({
548
+ masterSecret: aliceSecret,
549
+ configs: [restrictedConfig],
550
+ metaspace: mockMetaspace,
551
+ space: mockSpace,
552
+ });
553
+ const newPool = await createForeignPool("pool_test");
554
+ let errorCaught = false;
555
+ try {
556
+ await service.addPools({
557
+ latestKeystone: restrictedKeystone,
558
+ masterSecret: aliceSecret,
559
+ newPools: [newPool],
560
+ metaspace: mockMetaspace,
561
+ space: mockSpace,
562
+ });
563
+ }
564
+ catch (e) {
565
+ errorCaught = true;
566
+ // Should fail in resolveTargetPool or addPools logic
567
+ // console.log("Caught expected error:", e.message);
568
+ }
569
+ iReckon(sir, errorCaught).asTo('permission denied').isGonnaBeTrue();
570
+ });
571
+ await ifWe(sir, 'fails on ID collision', async () => {
572
+ // Try to add "pool_bob" again (it was added in Happy Path)
573
+ const duplicatePool = await createForeignPool("pool_bob");
574
+ let errorCaught = false;
575
+ try {
576
+ await service.addPools({
577
+ latestKeystone: aliceKeystone, // This already has pool_bob
578
+ masterSecret: aliceSecret,
579
+ newPools: [duplicatePool],
580
+ metaspace: mockMetaspace,
581
+ space: mockSpace,
582
+ });
583
+ }
584
+ catch (e) {
585
+ errorCaught = true;
586
+ iReckon(sir, e.message).includes("ID collision");
587
+ }
588
+ iReckon(sir, errorCaught).asTo('collision detected').isGonnaBeTrue();
589
+ });
590
+ });
591
+ });
592
+ // ===========================================================================
593
+ // SUITE E: STRUCTURAL EVOLUTION (addPools)
594
+ // ===========================================================================
595
+ await respecfully(sir, 'Suite E: Structural Evolution (addPools)', async () => {
596
+ const service = new KeystoneService_V1();
597
+ const aliceSecret = "Alice_Master_Key";
598
+ const bobSecret = "Bob_Foreign_Key";
599
+ let mockSpace;
600
+ let mockMetaspace;
601
+ let aliceKeystone;
602
+ // Helper to simulate Bob creating a pool "offline" to give to Alice
603
+ const createForeignPool = async (id, verbs = []) => {
604
+ const config = createStandardPoolConfig(id);
605
+ config.allowedVerbs = verbs;
606
+ // We use the factory manually here to simulate Bob doing this on his own machine
607
+ const strategy = KeystoneStrategyFactory.create({ config });
608
+ const poolSecret = await strategy.derivePoolSecret({ masterSecret: bobSecret });
609
+ const challenges = {};
610
+ const bindingMap = {};
611
+ // Generate a small set of challenges
612
+ for (let i = 0; i < 10; i++) {
613
+ const raw = await hash({ s: `${config.salt}${Date.now()}${i}` });
614
+ const challengeId = raw.substring(0, 16);
615
+ const solution = await strategy.generateSolution({
616
+ poolSecret, poolId: config.salt, challengeId,
617
+ });
618
+ const challenge = await strategy.generateChallenge({ solution });
619
+ challenges[challengeId] = challenge;
620
+ addToBindingMap(bindingMap, challengeId);
621
+ }
622
+ return {
623
+ id,
624
+ config,
625
+ challenges,
626
+ bindingMap,
627
+ isForeign: true,
628
+ metadata: { owner: 'Bob', role: 'Delegate' }
629
+ };
630
+ };
631
+ firstOfAll(sir, async () => {
632
+ mockSpace = new MockIbGibSpace();
633
+ mockMetaspace = new MockMetaspaceService(mockSpace);
634
+ // Alice Genesis: Standard pool (allows all verbs, including 'manage')
635
+ const config = createStandardPoolConfig(POOL_ID_DEFAULT);
636
+ aliceKeystone = await service.genesis({
637
+ masterSecret: aliceSecret,
638
+ configs: [config],
639
+ metaspace: mockMetaspace,
640
+ space: mockSpace,
641
+ });
642
+ });
643
+ await respecfully(sir, 'Happy Path', async () => {
644
+ await ifWe(sir, 'authorizes and adds a foreign pool', async () => {
645
+ const bobPool = await createForeignPool("pool_bob", ["post"]);
646
+ const updatedKeystone = await service.addPools({
647
+ latestKeystone: aliceKeystone,
648
+ masterSecret: aliceSecret,
649
+ newPools: [bobPool],
650
+ metaspace: mockMetaspace,
651
+ space: mockSpace,
652
+ });
653
+ // 1. Verify new state
654
+ iReckon(sir, updatedKeystone).isGonnaBeTruthy();
655
+ const pools = updatedKeystone.data.challengePools;
656
+ iReckon(sir, pools.length).asTo('pool count increased').willEqual(2);
657
+ const foundBob = pools.find(p => p.id === "pool_bob");
658
+ iReckon(sir, foundBob).asTo('bob pool exists').isGonnaBeTruthy();
659
+ iReckon(sir, foundBob.isForeign).asTo('isForeign flag').isGonnaBeTrue();
660
+ // 2. Verify Proof
661
+ const proof = updatedKeystone.data.proofs[0];
662
+ iReckon(sir, proof.claim.verb).asTo('proof verb').willEqual(KEYSTONE_VERB_MANAGE);
663
+ // Alice signed this using HER pool (default), not Bob's
664
+ iReckon(sir, proof.solutions[0].poolId).willEqual(POOL_ID_DEFAULT);
665
+ // 3. Verify Validity
666
+ const errors = await service.validate({
667
+ prevIbGib: aliceKeystone,
668
+ currentIbGib: updatedKeystone,
669
+ });
670
+ iReckon(sir, errors.length).asTo('validation passed').willEqual(0);
671
+ // Update local ref for next tests
672
+ aliceKeystone = updatedKeystone;
673
+ });
674
+ });
675
+ await respecfully(sir, 'Permissions & Logic', async () => {
676
+ await ifWe(sir, 'fails if no pool allows "manage" verb', async () => {
677
+ // 1. Create a restricted keystone (read-only)
678
+ const restrictedConfig = createStandardPoolConfig("read_only");
679
+ restrictedConfig.allowedVerbs = ['read']; // No 'manage'
680
+ const restrictedKeystone = await service.genesis({
681
+ masterSecret: aliceSecret,
682
+ configs: [restrictedConfig],
683
+ metaspace: mockMetaspace,
684
+ space: mockSpace,
685
+ });
686
+ const newPool = await createForeignPool("pool_test");
687
+ let errorCaught = false;
688
+ try {
689
+ await service.addPools({
690
+ latestKeystone: restrictedKeystone,
691
+ masterSecret: aliceSecret,
692
+ newPools: [newPool],
693
+ metaspace: mockMetaspace,
694
+ space: mockSpace,
695
+ });
696
+ }
697
+ catch (e) {
698
+ errorCaught = true;
699
+ // Optional: Check error message
700
+ // iReckon(sir, e.message).includes("No local pool found with 'manage'");
701
+ }
702
+ iReckon(sir, errorCaught).asTo('permission denied').isGonnaBeTrue();
703
+ });
704
+ await ifWe(sir, 'fails on ID collision', async () => {
705
+ // Try to add "pool_bob" again (it was added in Happy Path)
706
+ const duplicatePool = await createForeignPool("pool_bob");
707
+ let errorCaught = false;
708
+ try {
709
+ await service.addPools({
710
+ latestKeystone: aliceKeystone, // This already has pool_bob
711
+ masterSecret: aliceSecret,
712
+ newPools: [duplicatePool],
713
+ metaspace: mockMetaspace,
714
+ space: mockSpace,
715
+ });
716
+ }
717
+ catch (e) {
718
+ errorCaught = true;
719
+ iReckon(sir, e.message).includes("collision");
720
+ }
721
+ iReckon(sir, errorCaught).asTo('collision detected').isGonnaBeTrue();
722
+ });
723
+ });
724
+ });
725
+ // ===========================================================================
726
+ // SUITE F: DEEP INSPECTION (Granularity & Serialization)
727
+ // ===========================================================================
728
+ await respecfully(sir, 'Suite F: Deep Inspection', async () => {
729
+ const service = new KeystoneService_V1();
730
+ const aliceSecret = "Alice_Deep_Inspect";
731
+ const salt = "granularity_pool";
732
+ let mockSpace;
733
+ let mockMetaspace;
734
+ let genesisKeystone;
735
+ let signedKeystone;
736
+ // We use a specific hybrid config to test exact selection logic
737
+ const hybridConfig = createStandardPoolConfig(salt);
738
+ // 2 FIFO + 2 Random = 4 Total per sign
739
+ hybridConfig.behavior.selectSequentially = 2;
740
+ hybridConfig.behavior.selectRandomly = 2;
741
+ hybridConfig.behavior.size = 20; // Small enough to track, large enough to be random
742
+ firstOfAll(sir, async () => {
743
+ mockSpace = new MockIbGibSpace();
744
+ mockMetaspace = new MockMetaspaceService(mockSpace);
745
+ genesisKeystone = await service.genesis({
746
+ masterSecret: aliceSecret,
747
+ configs: [hybridConfig],
748
+ metaspace: mockMetaspace,
749
+ space: mockSpace,
750
+ });
751
+ });
752
+ await respecfully(sir, 'Proof Granularity & Math', async () => {
753
+ await ifWe(sir, 'generates exactly the expected number of solutions', async () => {
754
+ signedKeystone = await service.sign({
755
+ latestKeystone: genesisKeystone,
756
+ masterSecret: aliceSecret,
757
+ claim: { verb: "post", target: "data^gib" },
758
+ metaspace: mockMetaspace,
759
+ space: mockSpace,
760
+ });
761
+ const proofs = signedKeystone.data.proofs;
762
+ iReckon(sir, proofs.length).asTo('proof count').willEqual(1);
763
+ const solutions = proofs[0].solutions;
764
+ // 2 Sequential + 2 Random = 4
765
+ iReckon(sir, solutions.length).asTo('solution count').willEqual(4);
766
+ });
767
+ await ifWe(sir, 'verifies the math manually (White-box Crypto Check)', async () => {
768
+ const proof = signedKeystone.data.proofs[0];
769
+ const poolSnapshot = genesisKeystone.data.challengePools.find(p => p.id === salt);
770
+ // We iterate every solution in the proof and MANUALLY verify the hash relationship
771
+ // bypassing the Service's validation logic to ensure the raw math holds up.
772
+ for (const solution of proof.solutions) {
773
+ // 1. Find the challenge in the *Previous* frame (Genesis)
774
+ const challenge = poolSnapshot.challenges[solution.challengeId];
775
+ if (!challenge) {
776
+ throw new Error(`Test Failure: Solution references ID ${solution.challengeId} which was not in Genesis pool.`);
777
+ }
778
+ // 2. Re-implement HashReveal V1 verification logic locally in the test
779
+ // Hash(Salt + Value + Salt)
780
+ // Note: rounds=1 in standard config
781
+ const indexSalt = solution.challengeId;
782
+ const calculatedHash = await hash({
783
+ s: `${indexSalt}${solution.value}${indexSalt}`,
784
+ algorithm: 'SHA-256'
785
+ });
786
+ // 3. Assert
787
+ iReckon(sir, calculatedHash).asTo(`Manual hash verification for ${solution.challengeId}`).willEqual(challenge.hash);
788
+ }
789
+ });
790
+ await ifWe(sir, 'verifies FIFO logic (Deterministic Selection)', async () => {
791
+ const proof = signedKeystone.data.proofs[0];
792
+ const poolSnapshot = genesisKeystone.data.challengePools.find(p => p.id === salt);
793
+ // The first N keys in the pool should be the FIFO targets.
794
+ // Assumption: Object.keys returns insertion order (Standard in modern JS engines)
795
+ const allIds = Object.keys(poolSnapshot.challenges);
796
+ const expectedFifoIds = allIds.slice(0, 2);
797
+ const solvedIds = proof.solutions.map(s => s.challengeId);
798
+ // Check that our solution list *includes* the expected FIFO IDs
799
+ const hasFirst = solvedIds.includes(expectedFifoIds[0]);
800
+ const hasSecond = solvedIds.includes(expectedFifoIds[1]);
801
+ iReckon(sir, hasFirst).asTo(`Solution includes 1st FIFO ID (${expectedFifoIds[0]})`).isGonnaBeTrue();
802
+ iReckon(sir, hasSecond).asTo(`Solution includes 2nd FIFO ID (${expectedFifoIds[1]})`).isGonnaBeTrue();
803
+ });
804
+ });
805
+ await respecfully(sir, 'DTO & Serialization', async () => {
806
+ await ifWe(sir, 'survives a clone/JSON-cycle without corruption', async () => {
807
+ // 1. Create a DTO (simulate network transmission/storage)
808
+ // 'clone' does a JSON stringify/parse under the hood (usually) or structured clone.
809
+ const dto = clone(signedKeystone);
810
+ // 2. Structural checks
811
+ iReckon(sir, dto).asTo('dto exists').isGonnaBeTruthy();
812
+ iReckon(sir, dto.data).asTo('dto data').isGonnaBeTruthy();
813
+ iReckon(sir, dto.data.proofs).asTo('dto proofs').isGonnaBeTruthy();
814
+ // 3. Functional check: Can the service validate this DTO?
815
+ // This ensures no prototypes or hidden properties were lost that the service depends on.
816
+ const errors = await service.validate({
817
+ prevIbGib: genesisKeystone,
818
+ currentIbGib: dto, // Passing the DTO, not the original object
819
+ });
820
+ iReckon(sir, errors.length).asTo('DTO validation errors').willEqual(0);
821
+ });
822
+ await ifWe(sir, 'ensures data contains no functions or circular refs', async () => {
823
+ // A crude but effective test: ensure JSON.stringify doesn't throw
824
+ // and the result is equal to the object (if we parsed it back).
825
+ const jsonStr = JSON.stringify(signedKeystone);
826
+ const parsed = JSON.parse(jsonStr);
827
+ // Compare specific deep fields
828
+ const originalSolution = signedKeystone.data.proofs[0].solutions[0].value;
829
+ const parsedSolution = parsed.data.proofs[0].solutions[0].value;
830
+ iReckon(sir, parsedSolution).asTo('deep property survives stringify').willEqual(originalSolution);
831
+ // Ensure no extra properties were lost
832
+ // FIX: JSON.stringify removes keys with 'undefined' values.
833
+ // We must filter the original keys to match this behavior for a fair comparison.
834
+ const origKeys = Object.keys(signedKeystone.data)
835
+ .filter(k => signedKeystone.data[k] !== undefined);
836
+ const parsedKeys = Object.keys(parsed.data);
837
+ iReckon(sir, parsedKeys.length).asTo('key count matches').willEqual(origKeys.length);
838
+ });
839
+ });
840
+ });
460
841
  //# sourceMappingURL=keystone-service-v1.respec.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"keystone-service-v1.respec.mjs","sourceRoot":"","sources":["../../src/keystone/keystone-service-v1.respec.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keystone-service-v1.respec.mjs","sourceRoot":"","sources":["../../src/keystone/keystone-service-v1.respec.mts"],"names":[],"mappings":"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"}