instar 1.3.501 → 1.3.503

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 (93) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +616 -9
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  5. package/dist/config/ConfigDefaults.js +48 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/BackupManager.d.ts.map +1 -1
  8. package/dist/core/BackupManager.js +7 -0
  9. package/dist/core/BackupManager.js.map +1 -1
  10. package/dist/core/CoherenceJournal.d.ts +1 -1
  11. package/dist/core/CoherenceJournal.d.ts.map +1 -1
  12. package/dist/core/CoherenceJournal.js +5 -1
  13. package/dist/core/CoherenceJournal.js.map +1 -1
  14. package/dist/core/DeliverMessageHandler.d.ts +13 -1
  15. package/dist/core/DeliverMessageHandler.d.ts.map +1 -1
  16. package/dist/core/DeliverMessageHandler.js +7 -0
  17. package/dist/core/DeliverMessageHandler.js.map +1 -1
  18. package/dist/core/MachinePoolRegistry.d.ts +3 -0
  19. package/dist/core/MachinePoolRegistry.d.ts.map +1 -1
  20. package/dist/core/MachinePoolRegistry.js +1 -0
  21. package/dist/core/MachinePoolRegistry.js.map +1 -1
  22. package/dist/core/OwnerSuspectBreaker.d.ts +37 -0
  23. package/dist/core/OwnerSuspectBreaker.d.ts.map +1 -1
  24. package/dist/core/OwnerSuspectBreaker.js +58 -0
  25. package/dist/core/OwnerSuspectBreaker.js.map +1 -1
  26. package/dist/core/OwnershipReconciler.d.ts +102 -0
  27. package/dist/core/OwnershipReconciler.d.ts.map +1 -0
  28. package/dist/core/OwnershipReconciler.js +185 -0
  29. package/dist/core/OwnershipReconciler.js.map +1 -0
  30. package/dist/core/PendingInboundStore.d.ts +310 -0
  31. package/dist/core/PendingInboundStore.d.ts.map +1 -0
  32. package/dist/core/PendingInboundStore.js +715 -0
  33. package/dist/core/PendingInboundStore.js.map +1 -0
  34. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  35. package/dist/core/PostUpdateMigrator.js +13 -0
  36. package/dist/core/PostUpdateMigrator.js.map +1 -1
  37. package/dist/core/QueueDrainLoop.d.ts +247 -0
  38. package/dist/core/QueueDrainLoop.d.ts.map +1 -0
  39. package/dist/core/QueueDrainLoop.js +0 -0
  40. package/dist/core/QueueDrainLoop.js.map +1 -0
  41. package/dist/core/SessionOwnership.d.ts +16 -1
  42. package/dist/core/SessionOwnership.d.ts.map +1 -1
  43. package/dist/core/SessionOwnership.js +14 -0
  44. package/dist/core/SessionOwnership.js.map +1 -1
  45. package/dist/core/SessionRouter.d.ts +36 -2
  46. package/dist/core/SessionRouter.d.ts.map +1 -1
  47. package/dist/core/SessionRouter.js +34 -9
  48. package/dist/core/SessionRouter.js.map +1 -1
  49. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  50. package/dist/core/devGatedFeatures.js +10 -0
  51. package/dist/core/devGatedFeatures.js.map +1 -1
  52. package/dist/core/inboundQueueBootSweep.d.ts +61 -0
  53. package/dist/core/inboundQueueBootSweep.d.ts.map +1 -0
  54. package/dist/core/inboundQueueBootSweep.js +207 -0
  55. package/dist/core/inboundQueueBootSweep.js.map +1 -0
  56. package/dist/core/inboundQueueConfig.d.ts +78 -0
  57. package/dist/core/inboundQueueConfig.d.ts.map +1 -0
  58. package/dist/core/inboundQueueConfig.js +135 -0
  59. package/dist/core/inboundQueueConfig.js.map +1 -0
  60. package/dist/core/types.d.ts +23 -0
  61. package/dist/core/types.d.ts.map +1 -1
  62. package/dist/core/types.js.map +1 -1
  63. package/dist/messaging/TelegramAdapter.d.ts +4 -0
  64. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  65. package/dist/messaging/TelegramAdapter.js +12 -0
  66. package/dist/messaging/TelegramAdapter.js.map +1 -1
  67. package/dist/monitoring/SessionReaper.d.ts +5 -0
  68. package/dist/monitoring/SessionReaper.d.ts.map +1 -1
  69. package/dist/monitoring/SessionReaper.js +22 -2
  70. package/dist/monitoring/SessionReaper.js.map +1 -1
  71. package/dist/monitoring/guardManifest.d.ts.map +1 -1
  72. package/dist/monitoring/guardManifest.js +27 -0
  73. package/dist/monitoring/guardManifest.js.map +1 -1
  74. package/dist/scaffold/templates.d.ts.map +1 -1
  75. package/dist/scaffold/templates.js +6 -0
  76. package/dist/scaffold/templates.js.map +1 -1
  77. package/dist/server/AgentServer.d.ts +2 -0
  78. package/dist/server/AgentServer.d.ts.map +1 -1
  79. package/dist/server/AgentServer.js +1 -0
  80. package/dist/server/AgentServer.js.map +1 -1
  81. package/dist/server/routes.d.ts +4 -0
  82. package/dist/server/routes.d.ts.map +1 -1
  83. package/dist/server/routes.js +37 -1
  84. package/dist/server/routes.js.map +1 -1
  85. package/package.json +1 -1
  86. package/scripts/lint-guard-manifest.js +2 -0
  87. package/src/data/builtin-manifest.json +65 -65
  88. package/src/scaffold/templates.ts +6 -0
  89. package/upgrades/1.3.502.md +75 -0
  90. package/upgrades/1.3.503.md +61 -0
  91. package/upgrades/side-effects/1.3.492.md +20 -0
  92. package/upgrades/side-effects/durable-inbound-message-queue.md +213 -0
  93. package/upgrades/side-effects/multi-machine-seamlessness-ws13.md +122 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRouter.js","sourceRoot":"","sources":["../../src/core/SessionRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionRouter.js","sourceRoot":"","sources":["../../src/core/SessionRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAkEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAqB,EAAE,aAA4B;IACnF,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAClF,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,CAAC;IAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,qBAAqB,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC;IACzE,OAAO,KAAK,CAAC;AACf,CAAC;AAUD,MAAM,CAAC,MAAM,qBAAqB,GAAwB;IACxD,wBAAwB,EAAE,CAAC;IAC3B,iCAAiC,EAAE,GAAG;IACtC,+BAA+B,EAAE,IAAI;IACrC,iBAAiB,EAAE,CAAC;CACrB,CAAC;AA2CF,MAAM,OAAO,aAAa;IACP,IAAI,CAAoB;IACxB,GAAG,CAAsB;IACzB,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE9D,YAAY,IAAuB,EAAE,MAA2B,qBAAqB;QACnF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,qFAAqF;IACrF,KAAK,CAAC,GAAmB;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5E,2EAA2E;QAC3E,4EAA4E;QAC5E,wEAAwE;QACxE,0EAA0E;QAC1E,YAAY;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAClB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI;gBAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,GAAmB;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAChG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAClB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI;gBAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;QAC3B,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,mBAAmB,CAAC;IAChG,CAAC;IAEO,OAAO,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAiC,GAAG,CAAC,IAAI,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IACvH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAmB;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEvD,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACnC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACtE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,+DAA+D;YAC/D,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;YAC9D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,gBAAgB,EAAE,CAAC;QACnG,CAAC;QAED,2BAA2B;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,GAAmB,EAAE,KAAa,EAAE,KAAa,EAAE,cAAsB;QACpG,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,EAAE,EAAE,CAAC;YAC9E,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC,CAAC;gBACrM,wEAAwE;gBACxE,8CAA8C;gBAC9C,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW;oBAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBACrF,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;oBAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAClF,sEAAsE;gBACtE,wEAAwE;gBACxE,uEAAuE;gBACvE,IAAI,GAAG,CAAC,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBACvC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAChF,CAAC;gBACD,yEAAyE;gBACzE,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;oBACjD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvE,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBACnC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAC9F,CAAC;gBACD,2EAA2E;gBAC3E,0EAA0E;gBAC1E,2EAA2E;gBAC3E,0EAA0E;gBAC1E,0EAA0E;gBAC1E,kEAAkE;gBAClE,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC;oBACrI,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;gBAC9E,CAAC;gBACD,yFAAyF;gBACzF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,0BAA0B,OAAO,OAAO,KAAK,YAAY,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnH,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;oBAChD,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC7C,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QACD,sEAAsE;QACtE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAmB,EAAE,MAA0B,EAAE,QAAiB;QAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC1C,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,EAAE;YACtC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAC5C,YAAY,EAAE,SAAS;YACvB,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,OAAO,KAAK,mBAAmB,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,EAAE,GAAG,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5H,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,qBAAqB,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3G,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,gBAAgB,EAAE,CAAC;QAChJ,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,kCAAkC,EAAE,GAAG,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACnI,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,gBAAgB,IAAI,oBAAoB,CAAC,CAAC;YACzF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,gBAAgB,EAAE,CAAC;QACrI,CAAC;QAED,sEAAsE;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3F,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,6EAA6E;YAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvE,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACnC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAChG,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnF,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;YAC9D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,gBAAgB,EAAE,CAAC;QAC/G,CAAC;QAED,kEAAkE;QAClE,MAAM,MAAM,GAAgB,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC7I,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5D,iFAAiF;QACjF,gFAAgF;QAChF,gFAAgF;QAChF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChE,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAmE/C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,sBAAsB,GACtB,cAAc,GACd,iBAAiB,GACjB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EA0GnD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAO5E"}
1
+ {"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAmE/C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,sBAAsB,GACtB,cAAc,GACd,iBAAiB,GACjB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAoHnD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAO5E"}
@@ -146,6 +146,16 @@ export const DARK_GATE_EXCLUSIONS = [
146
146
  category: 'optional-integration',
147
147
  reason: 'multi-machine pooling; opt-in per deployment',
148
148
  },
149
+ {
150
+ configPath: 'multiMachine.sessionPool.inboundQueue.enabled',
151
+ category: 'optional-integration',
152
+ reason: 'durable inbound custody queue; staged rollout per spec frontmatter (dark→dry-run→dev-live→fleet)',
153
+ },
154
+ {
155
+ configPath: 'multiMachine.sessionPool.holdForStability.enabled',
156
+ category: 'optional-integration',
157
+ reason: 'hold-for-stability policy; trails inboundQueue one rollout stage behind (operator discipline)',
158
+ },
149
159
  // ── deliberate-fleet-default — off for everyone by design (incl. dev) ──
150
160
  {
151
161
  configPath: 'monitoring.bootHealthBeacon.enabled',
@@ -1 +1 @@
1
- {"version":3,"file":"devGatedFeatures.js","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devGatedFeatures.js","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Inbound-queue boot sweep (Durable Inbound Message Queue spec §5.2/§5.3 +
3
+ * the §3.4 crash table). Runs on the UNCONDITIONAL boot path — outside the
4
+ * mesh-gated wiring — keyed on store-file existence alone, BEFORE
5
+ * `recoverPendingInjects` (boot ordering, §3.4) and before any drain starts.
6
+ *
7
+ * Duties:
8
+ * - corrupt/locked store → quarantine-rename (main + -wal/-shm sidecars,
9
+ * 0600 preserved) + ONE attention item; boot proceeds (fail-open);
10
+ * - expired quarantines (> 7 days) deleted via SafeFsExecutor (L12) — this
11
+ * sweep owns the gated-off case; the backstop tick is the steady-state
12
+ * second layer;
13
+ * - queue-will-NOT-run-this-boot (gate reasons: feature-disabled /
14
+ * pool-dark / no-mesh-identity / dry-run) → expire ALL non-terminal rows
15
+ * in one transaction, loss reason NAMES the gate, loss-reported;
16
+ * - queue WILL run → crash recovery per the §3.4 crash table:
17
+ * claimed + receipt + PIS record → delivered (PIS replays the inject);
18
+ * claimed + receipt, no PIS → delivered + "possibly not injected";
19
+ * claimed, no receipt → released to queued (frozen when a
20
+ * pause is durably in effect);
21
+ * + PIS veto for operator-stop rows (STOP-scoped ONLY, round-9);
22
+ * + unflipped unreported receipts → "possibly not injected" report.
23
+ */
24
+ import { PendingInboundStore } from './PendingInboundStore.js';
25
+ import type { LossItem } from './QueueDrainLoop.js';
26
+ export type QueueGateReason = 'feature-disabled' | 'pool-dark' | 'no-mesh-identity' | 'dry-run';
27
+ export interface BootSweepDeps {
28
+ stateDir: string;
29
+ agentId: string;
30
+ /** Will the drain run this boot? false carries the NAMED gate (§5.3). */
31
+ queueWillRun: {
32
+ run: true;
33
+ } | {
34
+ run: false;
35
+ gateReason: QueueGateReason;
36
+ };
37
+ /** Does a PendingInjectStore record exist for this session? (crash row 2 vs 3) */
38
+ hasPisRecord(sessionKey: string): boolean;
39
+ /** Delete the PIS record (stop veto — through the PIS clear API). */
40
+ clearPisRecord(sessionKey: string): void;
41
+ reportLoss(items: LossItem[], reason: string): void;
42
+ reportPossiblyNotInjected(items: LossItem[]): void;
43
+ raiseAttention(title: string, body: string): void;
44
+ log(line: string): void;
45
+ nowMs(): number;
46
+ }
47
+ export interface BootSweepResult {
48
+ storePresent: boolean;
49
+ quarantined: boolean;
50
+ expiredQuarantinesDeleted: number;
51
+ gateExpired: number;
52
+ recoveredToQueued: number;
53
+ settledDelivered: number;
54
+ possiblyNotInjected: number;
55
+ pisVetoed: number;
56
+ /** The opened store when the queue will run (handed to the drain), else null. */
57
+ store: PendingInboundStore | null;
58
+ }
59
+ export declare function quarantineDirFor(stateDir: string): string;
60
+ export declare function runInboundQueueBootSweep(deps: BootSweepDeps): BootSweepResult;
61
+ //# sourceMappingURL=inboundQueueBootSweep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inboundQueueBootSweep.d.ts","sourceRoot":"","sources":["../../src/core/inboundQueueBootSweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,EACL,mBAAmB,EAGpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,WAAW,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAEhG,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,YAAY,EAAE;QAAE,GAAG,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,KAAK,CAAC;QAAC,UAAU,EAAE,eAAe,CAAA;KAAE,CAAC;IAC1E,kFAAkF;IAClF,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1C,qEAAqE;IACrE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,yBAAyB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACnD,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,IAAI,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,yBAAyB,EAAE,MAAM,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACnC;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,eAAe,CA4G7E"}
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Inbound-queue boot sweep (Durable Inbound Message Queue spec §5.2/§5.3 +
3
+ * the §3.4 crash table). Runs on the UNCONDITIONAL boot path — outside the
4
+ * mesh-gated wiring — keyed on store-file existence alone, BEFORE
5
+ * `recoverPendingInjects` (boot ordering, §3.4) and before any drain starts.
6
+ *
7
+ * Duties:
8
+ * - corrupt/locked store → quarantine-rename (main + -wal/-shm sidecars,
9
+ * 0600 preserved) + ONE attention item; boot proceeds (fail-open);
10
+ * - expired quarantines (> 7 days) deleted via SafeFsExecutor (L12) — this
11
+ * sweep owns the gated-off case; the backstop tick is the steady-state
12
+ * second layer;
13
+ * - queue-will-NOT-run-this-boot (gate reasons: feature-disabled /
14
+ * pool-dark / no-mesh-identity / dry-run) → expire ALL non-terminal rows
15
+ * in one transaction, loss reason NAMES the gate, loss-reported;
16
+ * - queue WILL run → crash recovery per the §3.4 crash table:
17
+ * claimed + receipt + PIS record → delivered (PIS replays the inject);
18
+ * claimed + receipt, no PIS → delivered + "possibly not injected";
19
+ * claimed, no receipt → released to queued (frozen when a
20
+ * pause is durably in effect);
21
+ * + PIS veto for operator-stop rows (STOP-scoped ONLY, round-9);
22
+ * + unflipped unreported receipts → "possibly not injected" report.
23
+ */
24
+ import fs from 'node:fs';
25
+ import path from 'node:path';
26
+ import { SafeFsExecutor } from './SafeFsExecutor.js';
27
+ import { PendingInboundStore, resolvePendingInboundPath, } from './PendingInboundStore.js';
28
+ const QUARANTINE_MAX_AGE_MS = 7 * 24 * 3600_000;
29
+ export function quarantineDirFor(stateDir) {
30
+ return path.join(stateDir, 'state', 'pending-inbound-quarantine');
31
+ }
32
+ export function runInboundQueueBootSweep(deps) {
33
+ const result = {
34
+ storePresent: false,
35
+ quarantined: false,
36
+ expiredQuarantinesDeleted: 0,
37
+ gateExpired: 0,
38
+ recoveredToQueued: 0,
39
+ settledDelivered: 0,
40
+ possiblyNotInjected: 0,
41
+ pisVetoed: 0,
42
+ store: null,
43
+ };
44
+ // Expired-quarantine deletion runs EVERY boot regardless of anything else
45
+ // (round-4: a disabled install must not keep payload plaintext forever).
46
+ result.expiredQuarantinesDeleted = deleteExpiredQuarantines(deps);
47
+ const storePath = resolvePendingInboundPath(deps.stateDir, deps.agentId);
48
+ if (!fs.existsSync(storePath))
49
+ return result;
50
+ result.storePresent = true;
51
+ let store;
52
+ try {
53
+ store = PendingInboundStore.open(deps.agentId, deps.stateDir);
54
+ }
55
+ catch (err) {
56
+ // Corrupt/locked store never blocks boot: quarantine-rename + one item.
57
+ quarantineStore(deps, storePath, err);
58
+ result.quarantined = true;
59
+ return result;
60
+ }
61
+ const nowIso = new Date(deps.nowMs()).toISOString();
62
+ if (!deps.queueWillRun.run) {
63
+ // §5.3: one transaction, loss reason names the gate, store closed after.
64
+ const gate = deps.queueWillRun.gateReason;
65
+ const rows = store.listNonTerminal();
66
+ const dropped = [];
67
+ for (const row of rows) {
68
+ const prior = row.state;
69
+ if (store.transition(row.enqueue_seq, prior, 'expired', { nowIso, terminalReason: `gate:${gate}` })) {
70
+ dropped.push(lossItem(row, `gate:${gate}`));
71
+ }
72
+ }
73
+ result.gateExpired = dropped.length;
74
+ if (dropped.length > 0)
75
+ deps.reportLoss(dropped, `queue-dispatch-will-not-run:${gate}`);
76
+ store.close();
77
+ return result;
78
+ }
79
+ // Queue WILL run — crash recovery (§3.4 crash table), one pass.
80
+ const paused = store.isPaused();
81
+ const pni = [];
82
+ for (const row of store.listNonTerminal()) {
83
+ // PIS veto — STOP-scoped ONLY (round-9). Terminal rows aren't in this
84
+ // list; stop rows are terminal, so the veto scans terminal reasons below.
85
+ if (row.state !== 'claimed')
86
+ continue;
87
+ const hasReceipt = store.hasReceipt(row.session_key, row.message_id, 'injection');
88
+ if (hasReceipt) {
89
+ const hasPis = deps.hasPisRecord(row.session_key);
90
+ store.transition(row.enqueue_seq, 'claimed', 'delivered', {
91
+ nowIso,
92
+ deliveredUnconfirmed: !hasPis,
93
+ });
94
+ result.settledDelivered += 1;
95
+ if (!hasPis) {
96
+ // Crash row 2: receipt-without-downstream-record — the accepted loss
97
+ // window, REPORTED ("possibly not injected — resend if unanswered").
98
+ pni.push(lossItem(row, 'receipt-without-downstream-record'));
99
+ result.possiblyNotInjected += 1;
100
+ store.incrementCounter('possiblyNotInjected');
101
+ }
102
+ // Crash row 3 (receipt + PIS): PIS replays the inject — permitted even
103
+ // during a durable pause (in-flight work completing is the round-9
104
+ // pause contract).
105
+ }
106
+ else {
107
+ // Crash row 1: claimed, no receipt → release to queued; frozen when a
108
+ // pause is durably in effect (§3.6 round-9 boot arm).
109
+ store.release(row.enqueue_seq, {
110
+ nowIso,
111
+ attempts: row.attempts,
112
+ nextAttemptAt: null,
113
+ freeze: paused,
114
+ });
115
+ result.recoveredToQueued += 1;
116
+ }
117
+ }
118
+ // PIS veto for operator-stop rows (terminal — scan recent terminals).
119
+ // listNonTerminal misses them by design; a bounded scan over the terminal
120
+ // set within retention is the honest read.
121
+ for (const sk of stopSessionKeys(store)) {
122
+ try {
123
+ deps.clearPisRecord(sk);
124
+ result.pisVetoed += 1;
125
+ }
126
+ catch { /* veto best-effort; recoverPendingInjects expiry is the next layer */ }
127
+ }
128
+ // Unflipped, unreported receipts (windows 4/6 boot detection).
129
+ for (const r of store.findUnflippedUnreportedReceipts()) {
130
+ pni.push({ sessionKey: r.session_key, messageId: r.message_id, enqueuedAt: r.created_at, reason: 'receipt-never-injected' });
131
+ store.markReceiptReported(r.session_key, r.message_id, r.class);
132
+ result.possiblyNotInjected += 1;
133
+ }
134
+ if (pni.length > 0)
135
+ deps.reportPossiblyNotInjected(pni);
136
+ result.store = store;
137
+ return result;
138
+ }
139
+ // ── helpers ───────────────────────────────────────────────────────────
140
+ function lossItem(row, reason) {
141
+ return {
142
+ sessionKey: row.session_key,
143
+ messageId: row.message_id,
144
+ enqueuedAt: row.enqueued_at,
145
+ reason,
146
+ senderDisplay: row.sender_display,
147
+ };
148
+ }
149
+ /** Sessions with operator-stop terminal rows (the PIS-veto scan, §3.4). */
150
+ function stopSessionKeys(store) {
151
+ // The store API is method-only (no raw handle) — use the terminal listing
152
+ // the prune path already bounds. A dedicated method keeps it indexed:
153
+ return store.listOperatorStopSessions();
154
+ }
155
+ function quarantineStore(deps, storePath, err) {
156
+ const qDir = quarantineDirFor(deps.stateDir);
157
+ try {
158
+ fs.mkdirSync(qDir, { recursive: true });
159
+ const stamp = new Date(deps.nowMs()).toISOString().replace(/[:.]/g, '-');
160
+ for (const suffix of ['', '-wal', '-shm']) {
161
+ const src = `${storePath}${suffix}`;
162
+ if (!fs.existsSync(src))
163
+ continue;
164
+ const dest = path.join(qDir, `${path.basename(src)}.${stamp}`);
165
+ fs.renameSync(src, dest); // rename is data-preserving (not a destructive op)
166
+ try {
167
+ fs.chmodSync(dest, 0o600);
168
+ }
169
+ catch { /* mode preserved best-effort */ }
170
+ }
171
+ deps.log(`[inbound-queue] store quarantined (${stamp}): ${err instanceof Error ? err.message : String(err)}`);
172
+ deps.raiseAttention('Inbound message queue store quarantined', `The durable inbound queue store could not be opened and was moved aside (kept 7 days at ${qDir}). ` +
173
+ `Messages it held could not be recovered — resend anything still needed. Reason: ${err instanceof Error ? err.message : String(err)}`);
174
+ }
175
+ catch (qErr) {
176
+ // @silent-fallback-ok — a failed quarantine (e.g. disk full) must never
177
+ // block boot; it logs loudly here and the unopenable store re-triggers
178
+ // this same path (with its attention item) on every subsequent boot.
179
+ deps.log(`[inbound-queue] quarantine FAILED for ${storePath}: ${qErr instanceof Error ? qErr.message : String(qErr)}`);
180
+ }
181
+ }
182
+ function deleteExpiredQuarantines(deps) {
183
+ const qDir = quarantineDirFor(deps.stateDir);
184
+ let deleted = 0;
185
+ let entries = [];
186
+ try {
187
+ entries = fs.readdirSync(qDir);
188
+ }
189
+ catch {
190
+ // @silent-fallback-ok — no quarantine dir is the NORMAL empty case
191
+ // (nothing was ever quarantined), not a degradation.
192
+ return 0;
193
+ }
194
+ for (const name of entries) {
195
+ const full = path.join(qDir, name);
196
+ try {
197
+ const stat = fs.statSync(full);
198
+ if (deps.nowMs() - stat.mtimeMs > QUARANTINE_MAX_AGE_MS) {
199
+ SafeFsExecutor.safeUnlinkSync(full, { operation: 'inboundQueueBootSweep.expiredQuarantine' });
200
+ deleted += 1;
201
+ }
202
+ }
203
+ catch { /* per-file best-effort */ }
204
+ }
205
+ return deleted;
206
+ }
207
+ //# sourceMappingURL=inboundQueueBootSweep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inboundQueueBootSweep.js","sourceRoot":"","sources":["../../src/core/inboundQueueBootSweep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Inbound-queue config types + the config-seam validation (Durable Inbound
3
+ * Message Queue spec §Config, "Config-seam validation").
4
+ *
5
+ * Every cross-component timing invariant named in the spec is validated in
6
+ * THIS one seam at construction (boot), not scattered. A violated invariant
7
+ * does NOT boot the queue with broken timing: the queue stays OFF for that
8
+ * boot, one loud config-error names the violated inequality (fail-safe — OFF
9
+ * is byte-for-byte today's behavior, never a half-configured queue).
10
+ */
11
+ export interface InboundQueueConfig {
12
+ enabled: boolean;
13
+ dryRun: boolean;
14
+ maxPerSession: number;
15
+ maxTotal: number;
16
+ hardMaxTotal: number;
17
+ maxHeldTotal: number;
18
+ maxPayloadBytes: number;
19
+ entryTtlMs: number;
20
+ staleCustodyTtlMs: number;
21
+ maxNapDeliveryAgeMs: number;
22
+ deliveredRetentionMs: number;
23
+ drainTickMs: number;
24
+ drainBatchSize: number;
25
+ drainConcurrency: number;
26
+ minInterPassMs: number;
27
+ passDeadlineMs: number;
28
+ baseBackoffMs: number;
29
+ maxBackoffMs: number;
30
+ maxAttempts: number;
31
+ claimStaleMs: number;
32
+ refusalNegativeCacheMs: number;
33
+ maxFailoverRespawns: number;
34
+ maxFailoverReleasesPerTick: number;
35
+ dispatchDeadlineMs: number;
36
+ pauseMaxMs: number;
37
+ }
38
+ export interface HoldForStabilityConfig {
39
+ enabled: boolean;
40
+ holdMaxMs: number;
41
+ holdRecheckMs: number;
42
+ flapThresholdPerHour: number;
43
+ }
44
+ export declare const DEFAULT_INBOUND_QUEUE_CONFIG: InboundQueueConfig;
45
+ export declare const DEFAULT_HOLD_FOR_STABILITY_CONFIG: HoldForStabilityConfig;
46
+ /**
47
+ * Cross-machine protocol anchor (spec §5 duplicate window 3, round-8): a CODE
48
+ * CONSTANT, deliberately not operator-tunable. Every machine's seam validates
49
+ * BOTH that its own redispatch horizon ≤ this AND its `deliveredRetentionMs`
50
+ * ≥ this — so any two legally-tuned machines compose safely under ANY tuning.
51
+ */
52
+ export declare const PROTOCOL_REDISPATCH_HORIZON_MAX_MS: number;
53
+ /**
54
+ * The "boot-sweep window" term of invariant 3 — a conservative constant for
55
+ * how long after a boot the sweep may still redispatch a recovered claimed
56
+ * row (builder-pinned per the decision-completeness review; the seam fails
57
+ * safe to queue-OFF on violation, so a generous constant only tightens).
58
+ */
59
+ export declare const BOOT_SWEEP_WINDOW_MS: number;
60
+ /** Σbackoff: total worst-case backoff across maxAttempts (capped curve). */
61
+ export declare function sumBackoffMs(cfg: Pick<InboundQueueConfig, 'baseBackoffMs' | 'maxBackoffMs' | 'maxAttempts'>): number;
62
+ /** The full redispatch horizon a receipt must outlive (§3.4 receipt floor). */
63
+ export declare function redispatchHorizonMs(cfg: InboundQueueConfig): number;
64
+ export interface InvariantViolation {
65
+ invariant: number;
66
+ name: string;
67
+ message: string;
68
+ }
69
+ /**
70
+ * The six config-seam invariants (spec §Config). Returns every violation —
71
+ * the caller logs each by name, raises ONE attention item, and keeps the
72
+ * queue OFF for the boot.
73
+ */
74
+ export declare function validateInboundQueueInvariants(q: InboundQueueConfig, h: HoldForStabilityConfig): {
75
+ ok: boolean;
76
+ violations: InvariantViolation[];
77
+ };
78
+ //# sourceMappingURL=inboundQueueConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inboundQueueConfig.d.ts","sourceRoot":"","sources":["../../src/core/inboundQueueConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,0BAA0B,EAAE,MAAM,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,4BAA4B,EAAE,kBA0B1C,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,sBAK/C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,QAAsB,CAAC;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAgB,CAAC;AAElD,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,eAAe,GAAG,cAAc,GAAG,aAAa,CAAC,GAAG,MAAM,CAMpH;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAEnE;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,CAAC,EAAE,kBAAkB,EACrB,CAAC,EAAE,sBAAsB,GACxB;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAkEnD"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Inbound-queue config types + the config-seam validation (Durable Inbound
3
+ * Message Queue spec §Config, "Config-seam validation").
4
+ *
5
+ * Every cross-component timing invariant named in the spec is validated in
6
+ * THIS one seam at construction (boot), not scattered. A violated invariant
7
+ * does NOT boot the queue with broken timing: the queue stays OFF for that
8
+ * boot, one loud config-error names the violated inequality (fail-safe — OFF
9
+ * is byte-for-byte today's behavior, never a half-configured queue).
10
+ */
11
+ export const DEFAULT_INBOUND_QUEUE_CONFIG = {
12
+ enabled: false,
13
+ dryRun: true,
14
+ maxPerSession: 50,
15
+ maxTotal: 500,
16
+ hardMaxTotal: 1000,
17
+ maxHeldTotal: 150,
18
+ maxPayloadBytes: 65536,
19
+ entryTtlMs: 1800000,
20
+ staleCustodyTtlMs: 120000,
21
+ maxNapDeliveryAgeMs: 600000,
22
+ deliveredRetentionMs: 86400000,
23
+ drainTickMs: 15000,
24
+ drainBatchSize: 25,
25
+ drainConcurrency: 3,
26
+ minInterPassMs: 500,
27
+ passDeadlineMs: 60000,
28
+ baseBackoffMs: 5000,
29
+ maxBackoffMs: 300000,
30
+ maxAttempts: 10,
31
+ claimStaleMs: 120000,
32
+ refusalNegativeCacheMs: 60000,
33
+ maxFailoverRespawns: 5,
34
+ maxFailoverReleasesPerTick: 5,
35
+ dispatchDeadlineMs: 60000,
36
+ pauseMaxMs: 14400000,
37
+ };
38
+ export const DEFAULT_HOLD_FOR_STABILITY_CONFIG = {
39
+ enabled: false,
40
+ holdMaxMs: 90000,
41
+ holdRecheckMs: 10000,
42
+ flapThresholdPerHour: 6,
43
+ };
44
+ /**
45
+ * Cross-machine protocol anchor (spec §5 duplicate window 3, round-8): a CODE
46
+ * CONSTANT, deliberately not operator-tunable. Every machine's seam validates
47
+ * BOTH that its own redispatch horizon ≤ this AND its `deliveredRetentionMs`
48
+ * ≥ this — so any two legally-tuned machines compose safely under ANY tuning.
49
+ */
50
+ export const PROTOCOL_REDISPATCH_HORIZON_MAX_MS = 12 * 60 * 60 * 1000; // 12h
51
+ /**
52
+ * The "boot-sweep window" term of invariant 3 — a conservative constant for
53
+ * how long after a boot the sweep may still redispatch a recovered claimed
54
+ * row (builder-pinned per the decision-completeness review; the seam fails
55
+ * safe to queue-OFF on violation, so a generous constant only tightens).
56
+ */
57
+ export const BOOT_SWEEP_WINDOW_MS = 5 * 60 * 1000; // 5 min
58
+ /** Σbackoff: total worst-case backoff across maxAttempts (capped curve). */
59
+ export function sumBackoffMs(cfg) {
60
+ let sum = 0;
61
+ for (let attempt = 0; attempt < cfg.maxAttempts; attempt++) {
62
+ sum += Math.min(cfg.baseBackoffMs * 2 ** attempt, cfg.maxBackoffMs);
63
+ }
64
+ return sum;
65
+ }
66
+ /** The full redispatch horizon a receipt must outlive (§3.4 receipt floor). */
67
+ export function redispatchHorizonMs(cfg) {
68
+ return cfg.entryTtlMs + sumBackoffMs(cfg) + cfg.claimStaleMs + cfg.pauseMaxMs + BOOT_SWEEP_WINDOW_MS;
69
+ }
70
+ /**
71
+ * The six config-seam invariants (spec §Config). Returns every violation —
72
+ * the caller logs each by name, raises ONE attention item, and keeps the
73
+ * queue OFF for the boot.
74
+ */
75
+ export function validateInboundQueueInvariants(q, h) {
76
+ const v = [];
77
+ // (1) Drain-rate invariant (§3.2): budget-overrun entries' only exits are a
78
+ // capped release or TTL — the anti-herd cap must never become the loss path.
79
+ const drainRate = h.holdMaxMs + Math.ceil(q.maxHeldTotal / q.maxFailoverReleasesPerTick) * h.holdRecheckMs;
80
+ if (!(drainRate < q.entryTtlMs)) {
81
+ v.push({
82
+ invariant: 1,
83
+ name: 'drain-rate',
84
+ message: `holdMaxMs + ceil(maxHeldTotal/maxFailoverReleasesPerTick)×holdRecheckMs (${drainRate}) must be < entryTtlMs (${q.entryTtlMs})`,
85
+ });
86
+ }
87
+ // (2) dispatchDeadlineMs < claimStaleMs (§3.4 — a claimed row's dispatch
88
+ // must settle before stale-claim recovery can double-dispatch it).
89
+ if (!(q.dispatchDeadlineMs < q.claimStaleMs)) {
90
+ v.push({
91
+ invariant: 2,
92
+ name: 'dispatch-deadline',
93
+ message: `dispatchDeadlineMs (${q.dispatchDeadlineMs}) must be < claimStaleMs (${q.claimStaleMs})`,
94
+ });
95
+ }
96
+ // (3) Receipt-outlives-redispatch floor (§3.4, + pauseMaxMs per round-6/7).
97
+ const horizon = redispatchHorizonMs(q);
98
+ if (!(q.deliveredRetentionMs > horizon)) {
99
+ v.push({
100
+ invariant: 3,
101
+ name: 'receipt-floor',
102
+ message: `deliveredRetentionMs (${q.deliveredRetentionMs}) must be > entryTtlMs + Σbackoff + claimStaleMs + pauseMaxMs + bootSweepWindow (${horizon})`,
103
+ });
104
+ }
105
+ // (4) holdMaxMs < entryTtlMs AND holdRecheckMs < holdMaxMs.
106
+ if (!(h.holdMaxMs < q.entryTtlMs)) {
107
+ v.push({ invariant: 4, name: 'hold-bounds', message: `holdMaxMs (${h.holdMaxMs}) must be < entryTtlMs (${q.entryTtlMs})` });
108
+ }
109
+ if (!(h.holdRecheckMs < h.holdMaxMs)) {
110
+ v.push({ invariant: 4, name: 'hold-bounds', message: `holdRecheckMs (${h.holdRecheckMs}) must be < holdMaxMs (${h.holdMaxMs})` });
111
+ }
112
+ // (5) staleCustodyTtlMs ≤ entryTtlMs.
113
+ if (!(q.staleCustodyTtlMs <= q.entryTtlMs)) {
114
+ v.push({ invariant: 5, name: 'stale-custody', message: `staleCustodyTtlMs (${q.staleCustodyTtlMs}) must be ≤ entryTtlMs (${q.entryTtlMs})` });
115
+ }
116
+ // (6) Cross-machine protocol anchors (round-8): own horizon ≤ the protocol
117
+ // constant AND retention ≥ the protocol constant — two locally-validated
118
+ // machines compose safely under any legal tuning.
119
+ if (!(horizon <= PROTOCOL_REDISPATCH_HORIZON_MAX_MS)) {
120
+ v.push({
121
+ invariant: 6,
122
+ name: 'protocol-horizon',
123
+ message: `redispatch horizon (${horizon}) must be ≤ PROTOCOL_REDISPATCH_HORIZON_MAX (${PROTOCOL_REDISPATCH_HORIZON_MAX_MS})`,
124
+ });
125
+ }
126
+ if (!(q.deliveredRetentionMs >= PROTOCOL_REDISPATCH_HORIZON_MAX_MS)) {
127
+ v.push({
128
+ invariant: 6,
129
+ name: 'protocol-retention',
130
+ message: `deliveredRetentionMs (${q.deliveredRetentionMs}) must be ≥ PROTOCOL_REDISPATCH_HORIZON_MAX (${PROTOCOL_REDISPATCH_HORIZON_MAX_MS})`,
131
+ });
132
+ }
133
+ return { ok: v.length === 0, violations: v };
134
+ }
135
+ //# sourceMappingURL=inboundQueueConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inboundQueueConfig.js","sourceRoot":"","sources":["../../src/core/inboundQueueConfig.ts"],"names":[],"mappings":"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"}
@@ -1754,6 +1754,20 @@ export interface MachineCapacity {
1754
1754
  blockedUntil?: string;
1755
1755
  reason?: string;
1756
1756
  };
1757
+ /** Durable Inbound Message Queue (spec §5.1): self-reported custody state —
1758
+ * consumed by the survivor's loss-SUSPECTED item + capped re-placement arm
1759
+ * and the supersede-dedupe episode key (machineId + tenure). Absent =
1760
+ * older peer or queue dark — "a mesh-less peer's depth is honestly
1761
+ * unknown and the item says so". topK is bounded (K=10). */
1762
+ inboundQueue?: {
1763
+ queueDepth: number;
1764
+ oldestQueuedAt: string | null;
1765
+ tenure: string | null;
1766
+ topK: Array<{
1767
+ sessionKey: string;
1768
+ depth: number;
1769
+ }>;
1770
+ };
1757
1771
  /** Compact guard-posture summary self-reported in the capacity heartbeat
1758
1772
  * (GUARD-POSTURE-ENDPOINT-SPEC §2.3). Bound to the AUTHENTICATED sender at
1759
1773
  * ingestion (a body-claimed machineId can never overwrite another machine's
@@ -2004,6 +2018,15 @@ export interface SessionPoolConfig {
2004
2018
  * nickname/hardware/history for fast re-placement.
2005
2019
  */
2006
2020
  machineRecordEvictionMs?: number;
2021
+ /**
2022
+ * Durable Inbound Message Queue (docs/specs/durable-inbound-message-queue.md
2023
+ * §Config). Ships dark (enabled:false + dryRun:true). Canonical defaults +
2024
+ * field semantics live in src/core/inboundQueueConfig.ts.
2025
+ */
2026
+ inboundQueue?: Partial<import('./inboundQueueConfig.js').InboundQueueConfig>;
2027
+ /** Hold-for-stability policy (same spec §4) — trails inboundQueue one
2028
+ * rollout stage behind by operator discipline. */
2029
+ holdForStability?: Partial<import('./inboundQueueConfig.js').HoldForStabilityConfig>;
2007
2030
  /**
2008
2031
  * MeshRpc (§L0) command timestamp tolerance (ms) — a signed command whose
2009
2032
  * timestamp is outside |now - ts| is rejected `stale-timestamp`. Default 30000.