beignet 0.12.0 → 0.13.0

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 (67) hide show
  1. package/dist/cli/auth.js +1 -0
  2. package/dist/cli/auth.js.map +1 -1
  3. package/dist/cli/beignet-node.js +287 -18
  4. package/dist/cli/beignet-node.js.map +1 -1
  5. package/dist/cli/cli.js +25 -1
  6. package/dist/cli/cli.js.map +1 -1
  7. package/dist/cli/daemon.js +17 -0
  8. package/dist/cli/daemon.js.map +1 -1
  9. package/dist/cli/errors.js +2 -0
  10. package/dist/cli/errors.js.map +1 -1
  11. package/dist/cli/openapi.js +26 -2
  12. package/dist/cli/openapi.js.map +1 -1
  13. package/dist/lightning/node/lightning-node.js +29 -0
  14. package/dist/lightning/node/lightning-node.js.map +1 -1
  15. package/dist/lightning/recovery/assembly.js +24 -6
  16. package/dist/lightning/recovery/assembly.js.map +1 -1
  17. package/dist/lightning/recovery/capsule.js +13 -3
  18. package/dist/lightning/recovery/capsule.js.map +1 -1
  19. package/dist/lightning/recovery/durability-barrier.js +44 -0
  20. package/dist/lightning/recovery/durability-barrier.js.map +1 -1
  21. package/dist/lightning/recovery/guardian-bolt8.js +3 -1
  22. package/dist/lightning/recovery/guardian-bolt8.js.map +1 -1
  23. package/dist/lightning/recovery/guardian-client.js +4 -0
  24. package/dist/lightning/recovery/guardian-client.js.map +1 -1
  25. package/dist/lightning/recovery/guardian-host.js +5 -1
  26. package/dist/lightning/recovery/guardian-host.js.map +1 -1
  27. package/dist/lightning/recovery/guardian-http.js +6 -3
  28. package/dist/lightning/recovery/guardian-http.js.map +1 -1
  29. package/dist/lightning/recovery/guardian-proto.js +123 -2
  30. package/dist/lightning/recovery/guardian-proto.js.map +1 -1
  31. package/dist/lightning/recovery/guardian-replication.js +162 -12
  32. package/dist/lightning/recovery/guardian-replication.js.map +1 -1
  33. package/dist/lightning/recovery/guardian-rotation.js +302 -0
  34. package/dist/lightning/recovery/guardian-rotation.js.map +1 -0
  35. package/dist/lightning/recovery/guardian-store.js +16 -7
  36. package/dist/lightning/recovery/guardian-store.js.map +1 -1
  37. package/dist/lightning/recovery/guardian-wire.js +20 -3
  38. package/dist/lightning/recovery/guardian-wire.js.map +1 -1
  39. package/dist/lightning/recovery/guardian.js +126 -7
  40. package/dist/lightning/recovery/guardian.js.map +1 -1
  41. package/dist/lightning/recovery/index.js +1 -0
  42. package/dist/lightning/recovery/index.js.map +1 -1
  43. package/dist/lightning/recovery/journal.js +2 -1
  44. package/dist/lightning/recovery/journal.js.map +1 -1
  45. package/dist/lightning/recovery/startup-gate.js +4 -1
  46. package/dist/lightning/recovery/startup-gate.js.map +1 -1
  47. package/dist/types/cli/beignet-node.d.ts +36 -0
  48. package/dist/types/cli/types.d.ts +17 -0
  49. package/dist/types/lightning/node/lightning-node.d.ts +6 -2
  50. package/dist/types/lightning/recovery/assembly.d.ts +12 -1
  51. package/dist/types/lightning/recovery/capsule.d.ts +1 -0
  52. package/dist/types/lightning/recovery/durability-barrier.d.ts +20 -2
  53. package/dist/types/lightning/recovery/guardian-bolt8.d.ts +2 -1
  54. package/dist/types/lightning/recovery/guardian-client.d.ts +2 -1
  55. package/dist/types/lightning/recovery/guardian-http.d.ts +1 -1
  56. package/dist/types/lightning/recovery/guardian-proto.d.ts +5 -1
  57. package/dist/types/lightning/recovery/guardian-replication.d.ts +21 -1
  58. package/dist/types/lightning/recovery/guardian-rotation.d.ts +80 -0
  59. package/dist/types/lightning/recovery/guardian-store.d.ts +3 -0
  60. package/dist/types/lightning/recovery/guardian-wire.d.ts +8 -1
  61. package/dist/types/lightning/recovery/guardian.d.ts +25 -0
  62. package/dist/types/lightning/recovery/index.d.ts +1 -0
  63. package/dist/types/lightning/recovery/journal.d.ts +1 -0
  64. package/dist/types/lightning/recovery/startup-gate.d.ts +2 -1
  65. package/docs/RECOVERY-GUARDIAN-WIRE.md +161 -49
  66. package/docs/RECOVERY-PROTOCOL.md +13 -2
  67. package/package.json +1 -1
package/dist/cli/auth.js CHANGED
@@ -150,6 +150,7 @@ exports.ROUTE_SCOPES = {
150
150
  'POST /recovery/restore-capsule': [],
151
151
  'POST /recovery/capsule-guardians': [],
152
152
  'POST /recovery/resolve-guardian': [],
153
+ 'POST /recovery/rotate-guardians': [],
153
154
  'POST /watchtower/add': [],
154
155
  'DELETE /watchtower/remove': [],
155
156
  'POST /webhooks/register': [],
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":";;;AAwBA,mCAAkE;AAClE,qCAAwC;AAI3B,QAAA,UAAU,GAA0B,IAAI,GAAG,CAAC;IACxD,UAAU;IACV,SAAS;IACT,OAAO;CACP,CAAC,CAAC;AAkDU,QAAA,8BAA8B,GAAG,8BAA8B,CAAC;AAqBhE,QAAA,YAAY,GAA+B;IAIvD,cAAc,EAAE,CAAC,UAAU,CAAC;IAC5B,WAAW,EAAE,CAAC,UAAU,CAAC;IACzB,cAAc,EAAE,CAAC,UAAU,CAAC;IAC5B,YAAY,EAAE,CAAC,UAAU,CAAC;IAC1B,eAAe,EAAE,CAAC,UAAU,CAAC;IAC7B,qBAAqB,EAAE,CAAC,UAAU,CAAC;IACnC,eAAe,EAAE,CAAC,UAAU,CAAC;IAC7B,cAAc,EAAE,CAAC,UAAU,CAAC;IAC5B,oBAAoB,EAAE,CAAC,UAAU,CAAC;IAClC,2BAA2B,EAAE,CAAC,UAAU,CAAC;IACzC,eAAe,EAAE,CAAC,UAAU,CAAC;IAC7B,uBAAuB,EAAE,CAAC,UAAU,CAAC;IACrC,gBAAgB,EAAE,CAAC,UAAU,CAAC;IAC9B,YAAY,EAAE,CAAC,UAAU,CAAC;IAC1B,kBAAkB,EAAE,CAAC,UAAU,CAAC;IAChC,gBAAgB,EAAE,CAAC,UAAU,CAAC;IAC9B,kBAAkB,EAAE,CAAC,UAAU,CAAC;IAChC,8BAA8B,EAAE,CAAC,UAAU,CAAC;IAC5C,WAAW,EAAE,CAAC,UAAU,CAAC;IACzB,qBAAqB,EAAE,CAAC,UAAU,CAAC;IACnC,mBAAmB,EAAE,CAAC,UAAU,CAAC;IACjC,6BAA6B,EAAE,CAAC,UAAU,CAAC;IAC3C,YAAY,EAAE,CAAC,UAAU,CAAC;IAC1B,qBAAqB,EAAE,CAAC,UAAU,CAAC;IACnC,yBAAyB,EAAE,CAAC,UAAU,CAAC;IACvC,cAAc,EAAE,CAAC,UAAU,CAAC;IAC5B,qBAAqB,EAAE,CAAC,UAAU,CAAC;IACnC,qBAAqB,EAAE,CAAC,UAAU,CAAC;IACnC,0BAA0B,EAAE,CAAC,UAAU,CAAC;IACxC,0BAA0B,EAAE,CAAC,UAAU,CAAC;IACxC,WAAW,EAAE,CAAC,UAAU,CAAC;IACzB,eAAe,EAAE,CAAC,UAAU,CAAC;IAC7B,oBAAoB,EAAE,CAAC,UAAU,CAAC;IAClC,eAAe,EAAE,CAAC,UAAU,CAAC;IAC7B,iBAAiB,EAAE,CAAC,UAAU,CAAC;IAC/B,iBAAiB,EAAE,CAAC,UAAU,CAAC;IAC/B,oBAAoB,EAAE,CAAC,UAAU,CAAC;IAClC,qBAAqB,EAAE,CAAC,UAAU,CAAC;IACnC,iBAAiB,EAAE,CAAC,UAAU,CAAC;IAC/B,4BAA4B,EAAE,CAAC,UAAU,CAAC;IAC1C,YAAY,EAAE,CAAC,UAAU,CAAC;IAE1B,sBAAsB,EAAE,CAAC,UAAU,CAAC;IAEpC,sBAAsB,EAAE,CAAC,UAAU,CAAC;IAGpC,sBAAsB,EAAE,CAAC,UAAU,CAAC;IACpC,mBAAmB,EAAE,CAAC,UAAU,CAAC;IACjC,wBAAwB,EAAE,CAAC,UAAU,CAAC;IAItC,gBAAgB,EAAE,CAAC,UAAU,CAAC;IAC9B,sBAAsB,EAAE,CAAC,UAAU,CAAC;IACpC,wBAAwB,EAAE,CAAC,UAAU,CAAC;IACtC,uBAAuB,EAAE,CAAC,UAAU,CAAC;IACrC,0BAA0B,EAAE,CAAC,UAAU,CAAC;IAGxC,eAAe,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IACxC,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IACvC,oBAAoB,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IAC7C,aAAa,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IACtC,kBAAkB,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IAC3C,aAAa,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IACtC,sBAAsB,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/C,wBAAwB,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IACjD,oBAAoB,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IAC7C,oBAAoB,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;IAG7C,sBAAsB,EAAE,CAAC,SAAS,CAAC;IAKnC,mBAAmB,EAAE,CAAC,SAAS,CAAC;IAEhC,iBAAiB,EAAE,CAAC,UAAU,CAAC;IAE/B,gBAAgB,EAAE,CAAC,UAAU,CAAC;IAK9B,8BAA8B,EAAE,CAAC,SAAS,CAAC;IAE3C,4BAA4B,EAAE,CAAC,UAAU,CAAC;IAC1C,2BAA2B,EAAE,CAAC,SAAS,CAAC;IACxC,2BAA2B,EAAE,CAAC,SAAS,CAAC;IACxC,2BAA2B,EAAE,CAAC,SAAS,CAAC;IACxC,oBAAoB,EAAE,CAAC,SAAS,CAAC;IACjC,eAAe,EAAE,CAAC,SAAS,CAAC;IAC5B,mBAAmB,EAAE,CAAC,SAAS,CAAC;IAGhC,eAAe,EAAE,EAAE;IAGnB,eAAe,EAAE,EAAE;IAGnB,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,EAAE;IACvB,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,EAAE;IACvB,mBAAmB,EAAE,EAAE;IACvB,wBAAwB,EAAE,EAAE;IAC5B,yBAAyB,EAAE,EAAE;IAC7B,yBAAyB,EAAE,EAAE;IAC7B,eAAe,EAAE,EAAE;IACnB,oBAAoB,EAAE,EAAE;IACxB,iBAAiB,EAAE,EAAE;IAGrB,kBAAkB,EAAE,EAAE;IACtB,uBAAuB,EAAE,EAAE;IAC3B,yBAAyB,EAAE,EAAE;IAC7B,6BAA6B,EAAE,EAAE;IACjC,sBAAsB,EAAE,EAAE;IAC1B,iBAAiB,EAAE,EAAE;IACrB,oBAAoB,EAAE,EAAE;IACxB,iBAAiB,EAAE,EAAE;IACrB,kCAAkC,EAAE,EAAE;IACtC,8BAA8B,EAAE,EAAE;IAGlC,2BAA2B,EAAE,EAAE;IAG/B,mBAAmB,EAAE,EAAE;IACvB,qBAAqB,EAAE,EAAE;IACzB,qBAAqB,EAAE,EAAE;IACzB,sBAAsB,EAAE,EAAE;IAC1B,kBAAkB,EAAE,EAAE;IACtB,0BAA0B,EAAE,EAAE;IAC9B,oBAAoB,EAAE,EAAE;IAGxB,oBAAoB,EAAE,EAAE;IACxB,uBAAuB,EAAE,EAAE;IAC3B,uBAAuB,EAAE,EAAE;IAC3B,2BAA2B,EAAE,EAAE;IAC/B,wBAAwB,EAAE,EAAE;IAC5B,2BAA2B,EAAE,EAAE;IAG/B,gCAAgC,EAAE,EAAE;IACpC,oBAAoB,EAAE,EAAE;IACxB,6BAA6B,EAAE,EAAE;IACjC,uBAAuB,EAAE,EAAE;IAC3B,6BAA6B,EAAE,EAAE;IACjC,gCAAgC,EAAE,EAAE;IACpC,+BAA+B,EAAE,EAAE;IACnC,qBAAqB,EAAE,EAAE;IACzB,0BAA0B,EAAE,EAAE;IAC9B,iCAAiC,EAAE,EAAE;IACrC,6BAA6B,EAAE,CAAC,UAAU,CAAC;IAC3C,4BAA4B,EAAE,CAAC,UAAU,CAAC;IAC1C,yBAAyB,EAAE,EAAE;IAC7B,0BAA0B,EAAE,EAAE;IAC9B,yCAAyC,EAAE,EAAE;IAC7C,0BAA0B,EAAE,EAAE;IAC9B,6BAA6B,EAAE,EAAE;IAGjC,oBAAoB,EAAE,EAAE;IACxB,mBAAmB,EAAE,EAAE;IACvB,yBAAyB,EAAE,EAAE;IAC7B,mBAAmB,EAAE,EAAE;IACvB,wBAAwB,EAAE,EAAE;IAG5B,cAAc,EAAE,EAAE;IAClB,sBAAsB,EAAE,EAAE;IAC1B,mBAAmB,EAAE,EAAE;IAEvB,wBAAwB,EAAE,EAAE;IAC5B,gCAAgC,EAAE,EAAE;IAEpC,kCAAkC,EAAE,EAAE;IAEtC,iCAAiC,EAAE,EAAE;IACrC,sBAAsB,EAAE,EAAE;IAC1B,2BAA2B,EAAE,EAAE;IAC/B,yBAAyB,EAAE,EAAE;IAC7B,6BAA6B,EAAE,EAAE;IACjC,YAAY,EAAE,EAAE;IAGhB,gBAAgB,EAAE,EAAE;IACpB,wBAAwB,EAAE,EAAE;IAC5B,wBAAwB,EAAE,EAAE;CAC5B,CAAC;AAMF,SAAgB,cAAc,CAAC,QAAgB;IAC9C,OAAO,oBAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC;AAFD,wCAEC;AAGD,SAAgB,gBAAgB,CAC/B,MAA6B,EAC7B,QAAgB;IAEhB,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAND,4CAMC;AAED,SAAS,MAAM,CAAC,KAAa;IAC5B,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,aAAa,GAAG,gBAAgB,CAAC;AA6BvC,MAAa,mBAAmB;IAO/B,YAAY,QAAiB,EAAE,OAA4B;QAN1C,eAAU,GAAmB,EAAE,CAAC;QAChC,YAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5B,aAAQ,GAAa,EAAE,CAAC;QACjC,cAAS,GAAsC,EAAE,CAAC;QAClD,UAAK,GAA6B,IAAI,CAAC;QAG9C,IAAI,QAAQ,EAAE;YACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;gBACxB,MAAM,EAAE,IAAI,GAAG,CAAW,CAAC,OAAO,CAAC,CAAC;aACpC,CAAC,CAAC;SACH;QACD,KAAK,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,EAAE;YAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SACrC;IACF,CAAC;IAEO,gBAAgB,CAAC,GAAqB,EAAE,QAAiB;QAChE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACnE,MAAM,IAAI,qBAAY,CACrB,gBAAgB,EAChB,0CAA0C,CAC1C,CAAC;SACF;QACD,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,EAAE;YAClD,MAAM,IAAI,qBAAY,CACrB,gBAAgB,EAChB,kBAAkB,GAAG,CAAC,IAAI,4BAA4B,CACtD,CAAC;SACF;QACD,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACzC;YACD,MAAM,IAAI,qBAAY,CACrB,gBAAgB,EAChB,kBAAkB,GAAG,CAAC,IAAI,kDAAkD,CAC5E,CAAC;SACF;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACrC,MAAM,IAAI,qBAAY,CACrB,gBAAgB,EAChB,2BAA2B,GAAG,CAAC,IAAI,GAAG,CACtC,CAAC;SACF;QACD,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE;YACnD,MAAM,IAAI,qBAAY,CACrB,gBAAgB,EAChB,kBAAkB,GAAG,CAAC,IAAI,wCAAwC,CAClE,CAAC;SACF;QACD,IAAI,WAA+B,CAAC;QACpC,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,WAAW;gBACV,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAClC,MAAM,IAAI,qBAAY,CACrB,gBAAgB,EAChB,kBAAkB,GAAG,CAAC,IAAI,iCAAiC;oBAC1D,6CAA6C,CAC9C,CAAC;aACF;SACD;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;YACvC,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,IAAA,wBAAe,EAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;gBACvE,MAAM,IAAI,qBAAY,CACrB,gBAAgB,EAChB,kBAAkB,GAAG,CAAC,IAAI,4BAA4B,QAAQ,CAAC,IAAI,GAAG,CACtE,CAAC;aACF;SACD;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM;YACN,MAAM,EAAE,IAAI,GAAG,CAAW,GAAG,CAAC,MAAM,CAAC;YACrC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACvC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,WAAW;SACX,CAAC,CAAC;IACJ,CAAC;IAGD,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,CAAC;IAEO,SAAS,CAAC,SAAuB;QACxC,OAAO,CACN,SAAS,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,WAAW,CAC1E,CAAC;IACH,CAAC;IASD,mBAAmB,CAAC,KAAwB;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAsC,EAAE,CAAC;QACnD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC/D,IACC,CAAC,SAAS;gBACV,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,QAAQ,KAAK,IAAI;gBACjB,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ;gBACzC,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,eAAe;gBACnD,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS;oBAChC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACxC;gBAGD,MAAM,GAAG,IAAI,CAAC;gBACd,SAAS;aACT;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YACtB,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE;gBACrC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC1D,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;aACzC;YACD,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE;gBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACvB;YACD,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE;gBACrC,MAAM,EAAE,GACP,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ;oBACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAChC,CAAC,CAAC,GAAG,CAAC;gBAGR,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;oBACxB,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;oBACzC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC3B;aACD;SACD;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IASD,YAAY,CAAC,MAA0B;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,OAAO,GAAwB,IAAI,CAAC;QACxC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACxC,MAAM,KAAK,GAAG,IAAA,wBAAe,EAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC3D,IACC,KAAK;gBACL,OAAO,KAAK,IAAI;gBAChB,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC9D,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACzB;gBACD,OAAO,GAAG,SAAS,CAAC;aACpB;SACD;QACD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACnC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACpE,CAAC;IAUD,MAAM,CAAC,IAAY;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG;YAChB,GAAG,IAAI,CAAC,SAAS;YACjB,CAAC,IAAI,CAAC,EAAE;gBACP,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;oBAC3B,YAAY,EAAE,SAAS,CAAC,eAAe,IAAI,EAAE;iBAC7C,CAAC;gBACF,OAAO,EAAE,IAAI;aACb;SACD,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IAWD,MAAM,CACL,IAAY;QAEZ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACvD,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAsB;YACnC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;gBAC3B,YAAY,EAAE,SAAS,CAAC,eAAe,IAAI,EAAE;aAC7C,CAAC;YACF,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpC,SAAS;SACT,CAAC;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;QAIrD,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;QAC7B,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACzC,CAAC;IAMD,QAAQ;QAQP,OAAO,IAAI,CAAC,UAAU;aACpB,MAAM,CAAC,CAAC,CAAC,EAAwC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;aACpE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1B,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC,CAAC,CAAC;IACN,CAAC;CACD;AA1QD,kDA0QC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"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"}
@@ -461,11 +461,31 @@ class BeignetNode extends events_1.EventEmitter {
461
461
  emit(event, ...args) {
462
462
  return super.emit(event, ...args);
463
463
  }
464
+ rotationStateForStatus() {
465
+ if (this._restartRequired)
466
+ return this._lastRotationState;
467
+ try {
468
+ this._lastRotationState = (0, recovery_1.describeRotation)(this.storage);
469
+ }
470
+ catch {
471
+ }
472
+ return this._lastRotationState;
473
+ }
464
474
  constructor(mnemonic, networkName, dataDir) {
465
475
  super();
466
476
  this._closeAddressLookupTimeoutMs = 15000;
467
477
  this.recoveryMode = 'off';
468
478
  this.recoveryGuardianSet = [];
479
+ this._configuredSetStale = false;
480
+ this._rotationInFlight = false;
481
+ this._lastRotationEvent = null;
482
+ this._followedRotation = null;
483
+ this._lastRotationState = {
484
+ generation: '1',
485
+ pending: null,
486
+ retirePending: false,
487
+ guardianSet: null
488
+ };
469
489
  this._restorePending = false;
470
490
  this._restoreInFlight = false;
471
491
  this._directFundingCharged = new Set();
@@ -1304,9 +1324,62 @@ class BeignetNode extends events_1.EventEmitter {
1304
1324
  };
1305
1325
  return;
1306
1326
  }
1307
- const guardians = (opts.recoveryGuardians ?? []).map(recovery_1.parseGuardianEntry);
1327
+ let guardians = (opts.recoveryGuardians ?? []).map(recovery_1.parseGuardianEntry);
1328
+ this._configuredSetStale = false;
1329
+ const persisted = (0, recovery_1.readGuardianSet)(this.storage);
1330
+ if (persisted && persisted.length === recovery_1.CRASH_V1_PROFILE.total) {
1331
+ const persistedParsed = persisted.map(recovery_1.parseGuardianEntry);
1332
+ if (!sameGuardianIds(persistedParsed.map((g) => g.guardianId.toString('hex')), guardians.map((g) => g.guardianId.toString('hex')))) {
1333
+ this._configuredSetStale = true;
1334
+ this.log('warn', "Configured guardians predate a rotation; using the journal's set", {
1335
+ configured: guardians.map((g) => g.guardianId.toString('hex')),
1336
+ journal: persisted.map((g) => g.guardianId)
1337
+ });
1338
+ guardians = persistedParsed;
1339
+ }
1340
+ }
1341
+ let decision = await this.decideGuardianBoot(guardians, mode, opts);
1342
+ for (let hop = 0; hop < 8 && decision.kind === 'rotated'; hop++) {
1343
+ const from = guardians.map((g) => g.guardianId.toString('hex'));
1344
+ let next;
1345
+ try {
1346
+ next = decision.entries.map(recovery_1.parseGuardianEntry);
1347
+ }
1348
+ catch (error) {
1349
+ throw new errors_1.BeignetError('RECOVERY_UNAVAILABLE', `this namespace was rotated to generation ${decision.generation} but the rotation names a guardian this daemon cannot address: ${error instanceof Error ? error.message : String(error)}`);
1350
+ }
1351
+ this._followedRotation = {
1352
+ generation: decision.generation.toString(),
1353
+ from,
1354
+ to: next.map((g) => g.guardianId.toString('hex'))
1355
+ };
1356
+ this.log('info', 'Following a guardian-set rotation', this._followedRotation);
1357
+ this.emit('recovery:rotation-followed', this._followedRotation);
1358
+ this.storage.setRecoveryMeta?.(recovery_1.JOURNAL_META_KEYS.generation, decision.generation.toString());
1359
+ this.storage.setRecoveryMeta?.(recovery_1.REPLICATION_META_KEYS.guardianSet, JSON.stringify(decision.entries));
1360
+ guardians = next;
1361
+ decision = await this.decideGuardianBoot(guardians, mode, opts);
1362
+ }
1363
+ if (decision.kind === 'rotated') {
1364
+ throw new errors_1.BeignetError('RECOVERY_UNAVAILABLE', 'this namespace was rotated more than 8 times in a row; refusing to follow further');
1365
+ }
1366
+ if (decision.kind === 'run') {
1367
+ this._recoveryRun = decision;
1368
+ this.recoveryNodeConfig = decision.recovery;
1369
+ return;
1370
+ }
1371
+ if (decision.kind === 'restore-required') {
1372
+ this._restoreDecision = decision;
1373
+ this._restorePending = true;
1374
+ return;
1375
+ }
1376
+ throw new errors_1.BeignetError('RECOVERY_UNAVAILABLE', `Recovery ${decision.outcome}: ${decision.detail}. Ownership of ` +
1377
+ 'this namespace cannot be decided without a guardian quorum; ' +
1378
+ 'retry when the guardian set is reachable.');
1379
+ }
1380
+ async decideGuardianBoot(guardians, mode, opts) {
1308
1381
  this.recoveryGuardianSet = guardians;
1309
- const decision = await (0, recovery_1.buildGuardianRecovery)({
1382
+ return (0, recovery_1.buildGuardianRecovery)({
1310
1383
  storage: this.storage,
1311
1384
  nodeSecret: this.nodeSecret(),
1312
1385
  durability: mode,
@@ -1334,19 +1407,6 @@ class BeignetNode extends events_1.EventEmitter {
1334
1407
  });
1335
1408
  }
1336
1409
  });
1337
- if (decision.kind === 'run') {
1338
- this._recoveryRun = decision;
1339
- this.recoveryNodeConfig = decision.recovery;
1340
- return;
1341
- }
1342
- if (decision.kind === 'restore-required') {
1343
- this._restoreDecision = decision;
1344
- this._restorePending = true;
1345
- return;
1346
- }
1347
- throw new errors_1.BeignetError('RECOVERY_UNAVAILABLE', `Recovery ${decision.outcome}: ${decision.detail}. Ownership of ` +
1348
- 'this namespace cannot be decided without a guardian quorum; ' +
1349
- 'retry when the guardian set is reachable.');
1350
1410
  }
1351
1411
  startRecoveryConfirmLoop() {
1352
1412
  const run = this._recoveryRun;
@@ -1363,6 +1423,7 @@ class BeignetNode extends events_1.EventEmitter {
1363
1423
  confirming: outcome.confirming
1364
1424
  });
1365
1425
  this.startRecoveryLeaseCheck();
1426
+ this.resumeRotationWork();
1366
1427
  return;
1367
1428
  }
1368
1429
  if (outcome.state === 'fenced') {
@@ -1448,6 +1509,18 @@ class BeignetNode extends events_1.EventEmitter {
1448
1509
  guardianId: g.guardianId.toString('hex'),
1449
1510
  url: g.url
1450
1511
  }));
1512
+ const rotationState = this.rotationStateForStatus();
1513
+ const rotationView = {
1514
+ generation: rotationState.generation,
1515
+ configuredSetStale: this._configuredSetStale,
1516
+ rotation: {
1517
+ inProgress: this._rotationInFlight,
1518
+ pending: rotationState.pending !== null,
1519
+ retirePending: rotationState.retirePending,
1520
+ lastEvent: this._lastRotationEvent,
1521
+ followed: this._followedRotation
1522
+ }
1523
+ };
1451
1524
  const profile = this.recoveryMode === 'async-remote' || this.recoveryMode === 'quorum'
1452
1525
  ? 'crash-v1'
1453
1526
  : null;
@@ -1460,6 +1533,7 @@ class BeignetNode extends events_1.EventEmitter {
1460
1533
  return {
1461
1534
  mode: this.recoveryMode,
1462
1535
  profile,
1536
+ ...rotationView,
1463
1537
  guardians,
1464
1538
  state: 'restart-required',
1465
1539
  node: null,
@@ -1472,6 +1546,7 @@ class BeignetNode extends events_1.EventEmitter {
1472
1546
  return {
1473
1547
  mode: 'off',
1474
1548
  profile: null,
1549
+ ...rotationView,
1475
1550
  guardians: [],
1476
1551
  state: 'disabled',
1477
1552
  node: null,
@@ -1483,6 +1558,7 @@ class BeignetNode extends events_1.EventEmitter {
1483
1558
  return {
1484
1559
  mode: this.recoveryMode,
1485
1560
  profile,
1561
+ ...rotationView,
1486
1562
  guardians,
1487
1563
  state: this._restoreInFlight ? 'restoring' : 'restore-required',
1488
1564
  node: null,
@@ -1495,6 +1571,7 @@ class BeignetNode extends events_1.EventEmitter {
1495
1571
  return {
1496
1572
  mode: this.recoveryMode,
1497
1573
  profile,
1574
+ ...rotationView,
1498
1575
  guardians,
1499
1576
  state: node.fenced || node.gate === 'fenced' ? 'fenced' : 'running',
1500
1577
  node,
@@ -2124,6 +2201,177 @@ class BeignetNode extends events_1.EventEmitter {
2124
2201
  }
2125
2202
  return { host: proxyHost, port };
2126
2203
  }
2204
+ async rotateGuardians(entries) {
2205
+ const run = this._recoveryRun;
2206
+ if (!run ||
2207
+ !this.node ||
2208
+ this.recoveryMode === 'off' ||
2209
+ this.recoveryMode === 'peer-storage') {
2210
+ throw new errors_1.BeignetError('ROTATION_UNAVAILABLE', 'Rotating guardians needs a running wallet in a guardian recovery mode (async-remote or quorum).');
2211
+ }
2212
+ if (this._rotationInFlight) {
2213
+ throw new errors_1.BeignetError('ROTATION_IN_PROGRESS', 'A guardian-set rotation is already running.');
2214
+ }
2215
+ const gate = this.node.getRecoveryGateState();
2216
+ if (gate !== 'confirmed') {
2217
+ throw new errors_1.BeignetError('ROTATION_UNAVAILABLE', `Rotating guardians needs a confirmed writer; the startup gate is ${gate}.`);
2218
+ }
2219
+ if (this.node.getRecoveryStatus().fenced) {
2220
+ throw new errors_1.BeignetError('ROTATION_UNAVAILABLE', 'This device is fenced; it no longer owns the namespace.');
2221
+ }
2222
+ let incoming;
2223
+ try {
2224
+ incoming = entries.map(recovery_1.parseGuardianEntry);
2225
+ }
2226
+ catch (error) {
2227
+ throw new errors_1.BeignetError('INVALID_PARAMS', error instanceof Error ? error.message : String(error));
2228
+ }
2229
+ if (incoming.length !== recovery_1.CRASH_V1_PROFILE.total) {
2230
+ throw new errors_1.BeignetError('INVALID_PARAMS', `A guardian set is exactly ${recovery_1.CRASH_V1_PROFILE.total} entries (crash-v1 is 2-of-3); got ${incoming.length}`);
2231
+ }
2232
+ const opts = this._bootOpts;
2233
+ if (!opts)
2234
+ throw new errors_1.BeignetError('INTERNAL_ERROR', 'node is not started');
2235
+ const transportFor = (guardian) => this.guardianTransportFor(guardian, opts);
2236
+ const held = (0, recovery_1.loadWriterLease)(this.storage);
2237
+ if (held.state !== 'present') {
2238
+ throw new errors_1.BeignetError('ROTATION_UNAVAILABLE', 'This device holds no writer lease to carry over.');
2239
+ }
2240
+ let rotation;
2241
+ try {
2242
+ rotation = new recovery_1.GuardianRotation({
2243
+ storage: this.storage,
2244
+ recoveryRoot: (0, recovery_1.deriveRecoveryRoot)(this.nodeSecret()),
2245
+ lease: held.lease,
2246
+ outgoing: {
2247
+ guardians: this.recoveryGuardianSet,
2248
+ ...(0, recovery_1.bindGuardianSet)(this.recoveryGuardianSet, { transportFor })
2249
+ },
2250
+ incoming: {
2251
+ guardians: incoming,
2252
+ ...(0, recovery_1.bindGuardianSet)(incoming, { transportFor })
2253
+ },
2254
+ required: recovery_1.CRASH_V1_PROFILE.required,
2255
+ onEvent: (event) => this.noteRotationEvent(event),
2256
+ onReplicationEvent: (event) => {
2257
+ this.log('debug', `Rotation replication: ${event.type}`, {
2258
+ detail: event.detail
2259
+ });
2260
+ }
2261
+ });
2262
+ }
2263
+ catch (error) {
2264
+ throw this.rotationError(error);
2265
+ }
2266
+ this._rotationInFlight = true;
2267
+ try {
2268
+ const result = await rotation.rotate();
2269
+ run.barrier.swapReplicator(result.replicator);
2270
+ run.gate.swapReplicator(result.replicator);
2271
+ run.replicator = result.replicator;
2272
+ this.node.setRecoveryGuardians(result.descriptors);
2273
+ this.recoveryGuardianSet = incoming;
2274
+ this._configuredSetStale = true;
2275
+ const guardians = incoming.map((g) => ({
2276
+ guardianId: g.guardianId.toString('hex'),
2277
+ url: g.url
2278
+ }));
2279
+ this.emit('recovery:rotated', {
2280
+ generation: result.generation.toString(),
2281
+ guardians
2282
+ });
2283
+ this.log('info', 'Guardian set rotated', {
2284
+ generation: result.generation.toString(),
2285
+ guardians
2286
+ });
2287
+ const retired = await rotation.retireOutgoing();
2288
+ if (retired === 0)
2289
+ this.startRetireRetries();
2290
+ return { generation: result.generation.toString(), guardians, retired };
2291
+ }
2292
+ catch (error) {
2293
+ throw this.rotationError(error);
2294
+ }
2295
+ finally {
2296
+ this._rotationInFlight = false;
2297
+ }
2298
+ }
2299
+ rotationError(error) {
2300
+ if (error instanceof errors_1.BeignetError)
2301
+ return error;
2302
+ if (error instanceof recovery_1.RotationRefusedError) {
2303
+ const code = {
2304
+ 'in-progress': 'ROTATION_IN_PROGRESS',
2305
+ 'no-quorum': 'ROTATION_NO_QUORUM',
2306
+ 'not-catching-up': 'ROTATION_NOT_CATCHING_UP',
2307
+ 'same-set': 'INVALID_PARAMS',
2308
+ malformed: 'INVALID_PARAMS'
2309
+ };
2310
+ return new errors_1.BeignetError(code[error.reason], error.message);
2311
+ }
2312
+ return error instanceof Error ? error : new Error(String(error));
2313
+ }
2314
+ noteRotationEvent(event) {
2315
+ this._lastRotationEvent = { type: event.type, detail: event.detail };
2316
+ this.log('info', `Guardian rotation: ${event.type}`, {
2317
+ detail: event.detail,
2318
+ ...(event.generation ? { generation: event.generation } : {})
2319
+ });
2320
+ this.emit('recovery:rotation-progress', {
2321
+ type: event.type,
2322
+ detail: event.detail,
2323
+ ...(event.generation ? { generation: event.generation } : {})
2324
+ });
2325
+ }
2326
+ resumeRotationWork() {
2327
+ const intent = (0, recovery_1.readRotationIntent)(this.storage);
2328
+ if (intent && !this._rotationInFlight) {
2329
+ this.log('info', 'Resuming an interrupted guardian-set rotation', {
2330
+ generation: intent.generation
2331
+ });
2332
+ this.rotateGuardians(intent.entries).catch((error) => {
2333
+ this.log('warn', 'Resumed rotation did not complete; it stays pending', {
2334
+ error: error instanceof Error ? error.message : String(error)
2335
+ });
2336
+ });
2337
+ }
2338
+ if ((0, recovery_1.readRetirePending)(this.storage))
2339
+ this.startRetireRetries();
2340
+ }
2341
+ startRetireRetries() {
2342
+ if (this._retireTimer)
2343
+ return;
2344
+ const attempt = async () => {
2345
+ const pending = (0, recovery_1.readRetirePending)(this.storage);
2346
+ if (!pending || this.destroyed) {
2347
+ if (this._retireTimer)
2348
+ clearInterval(this._retireTimer);
2349
+ this._retireTimer = undefined;
2350
+ return;
2351
+ }
2352
+ const opts = this._bootOpts;
2353
+ if (!opts)
2354
+ return;
2355
+ try {
2356
+ const outgoing = pending.entries.map(recovery_1.parseGuardianEntry);
2357
+ const { bound } = (0, recovery_1.bindGuardianSet)(outgoing, {
2358
+ transportFor: (guardian) => this.guardianTransportFor(guardian, opts)
2359
+ });
2360
+ await (0, recovery_1.retireOutgoingSet)(this.storage, bound, (event) => this.noteRotationEvent(event));
2361
+ }
2362
+ catch (error) {
2363
+ this.log('warn', 'Retiring the outgoing guardian set failed; will retry', {
2364
+ error: error instanceof Error ? error.message : String(error)
2365
+ });
2366
+ }
2367
+ };
2368
+ this._retireTimer = setInterval(() => {
2369
+ void attempt();
2370
+ }, 60000);
2371
+ if (this._retireTimer.unref)
2372
+ this._retireTimer.unref();
2373
+ void attempt();
2374
+ }
2127
2375
  getGuardianHostSurfaceStatus() {
2128
2376
  const status = this.node?.getGuardianHostStatus() ?? null;
2129
2377
  if (!status)
@@ -5918,15 +6166,32 @@ class BeignetNode extends events_1.EventEmitter {
5918
6166
  }
5919
6167
  const held = this._peerRetrievedCapsules.get(peerPubkey);
5920
6168
  const inline = capsule.inlineRecoveryState !== undefined;
6169
+ if ((this.recoveryMode === 'async-remote' ||
6170
+ this.recoveryMode === 'quorum') &&
6171
+ this.node &&
6172
+ !this._restorePending &&
6173
+ capsule.generation > this.node.getRecoveryGeneration()) {
6174
+ this.log('error', 'A storage peer returned a capsule from a later guardian-set generation; this device was rotated away from', {
6175
+ fromPeer: peerPubkey,
6176
+ capsuleGeneration: capsule.generation.toString(),
6177
+ ownGeneration: this.node.getRecoveryGeneration().toString()
6178
+ });
6179
+ this.node.fenceForRotation(`peer ${peerPubkey} returned a capsule at generation ${capsule.generation}, above this device's ${this.node.getRecoveryGeneration()}`);
6180
+ }
5921
6181
  if (!held ||
5922
- capsule.writerEpoch > held.writerEpoch ||
5923
- (capsule.writerEpoch === held.writerEpoch &&
6182
+ capsule.generation > held.generation ||
6183
+ (capsule.generation === held.generation &&
6184
+ capsule.writerEpoch > held.writerEpoch) ||
6185
+ (capsule.generation === held.generation &&
6186
+ capsule.writerEpoch === held.writerEpoch &&
5924
6187
  capsule.latestSequence > held.latestSequence) ||
5925
- (capsule.writerEpoch === held.writerEpoch &&
6188
+ (capsule.generation === held.generation &&
6189
+ capsule.writerEpoch === held.writerEpoch &&
5926
6190
  capsule.latestSequence === held.latestSequence &&
5927
6191
  (inline || !held.inline))) {
5928
6192
  this._peerRetrievedCapsules.set(peerPubkey, {
5929
6193
  blob: Buffer.from(blob),
6194
+ generation: capsule.generation,
5930
6195
  writerEpoch: capsule.writerEpoch,
5931
6196
  latestSequence: capsule.latestSequence,
5932
6197
  inline,
@@ -6079,6 +6344,10 @@ class BeignetNode extends events_1.EventEmitter {
6079
6344
  async destroy() {
6080
6345
  this._bolt8Transport?.close();
6081
6346
  this._bolt8Transport = null;
6347
+ if (this._retireTimer) {
6348
+ clearInterval(this._retireTimer);
6349
+ this._retireTimer = undefined;
6350
+ }
6082
6351
  if (this.destroyed)
6083
6352
  return;
6084
6353
  this.destroyed = true;