@newrelic/preflight 1.70.0 → 1.71.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 (65) hide show
  1. package/README.md +2 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +7 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/dashboard/routes/api-handler.d.ts.map +1 -1
  6. package/dist/dashboard/routes/api-handler.js +9 -7
  7. package/dist/dashboard/routes/api-handler.js.map +1 -1
  8. package/dist/hooks/collector-script.d.ts.map +1 -1
  9. package/dist/hooks/collector-script.js +14 -8
  10. package/dist/hooks/collector-script.js.map +1 -1
  11. package/dist/hooks/copilot-app-usage-watcher.d.ts.map +1 -1
  12. package/dist/hooks/copilot-app-usage-watcher.js +3 -4
  13. package/dist/hooks/copilot-app-usage-watcher.js.map +1 -1
  14. package/dist/hooks/copilot-usage-watcher.d.ts +25 -5
  15. package/dist/hooks/copilot-usage-watcher.d.ts.map +1 -1
  16. package/dist/hooks/copilot-usage-watcher.js +254 -92
  17. package/dist/hooks/copilot-usage-watcher.js.map +1 -1
  18. package/dist/hooks/event-processor.d.ts +4 -6
  19. package/dist/hooks/event-processor.d.ts.map +1 -1
  20. package/dist/hooks/event-processor.js +4 -6
  21. package/dist/hooks/event-processor.js.map +1 -1
  22. package/dist/hooks/parent-transcript-watcher.d.ts.map +1 -1
  23. package/dist/hooks/parent-transcript-watcher.js +5 -4
  24. package/dist/hooks/parent-transcript-watcher.js.map +1 -1
  25. package/dist/hooks/subagent-watcher.d.ts +18 -14
  26. package/dist/hooks/subagent-watcher.d.ts.map +1 -1
  27. package/dist/hooks/subagent-watcher.js +83 -69
  28. package/dist/hooks/subagent-watcher.js.map +1 -1
  29. package/dist/hooks/throttled-warning.d.ts +5 -5
  30. package/dist/hooks/throttled-warning.d.ts.map +1 -1
  31. package/dist/hooks/throttled-warning.js +14 -12
  32. package/dist/hooks/throttled-warning.js.map +1 -1
  33. package/dist/index.js +4 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/install/cli.d.ts.map +1 -1
  36. package/dist/install/cli.js +51 -11
  37. package/dist/install/cli.js.map +1 -1
  38. package/dist/install/credentials.d.ts +23 -0
  39. package/dist/install/credentials.d.ts.map +1 -0
  40. package/dist/install/credentials.js +57 -0
  41. package/dist/install/credentials.js.map +1 -0
  42. package/dist/install/setup-wizard.d.ts.map +1 -1
  43. package/dist/install/setup-wizard.js +3 -3
  44. package/dist/install/setup-wizard.js.map +1 -1
  45. package/dist/metrics/local-session-aggregator.d.ts +4 -4
  46. package/dist/metrics/local-session-aggregator.d.ts.map +1 -1
  47. package/dist/metrics/local-session-aggregator.js +13 -6
  48. package/dist/metrics/local-session-aggregator.js.map +1 -1
  49. package/dist/storage/drain-claims.d.ts +59 -0
  50. package/dist/storage/drain-claims.d.ts.map +1 -0
  51. package/dist/storage/drain-claims.js +174 -0
  52. package/dist/storage/drain-claims.js.map +1 -0
  53. package/dist/storage/hook-buffer.d.ts +7 -0
  54. package/dist/storage/hook-buffer.d.ts.map +1 -0
  55. package/dist/storage/hook-buffer.js +132 -0
  56. package/dist/storage/hook-buffer.js.map +1 -0
  57. package/dist/storage/local-store.d.ts +17 -16
  58. package/dist/storage/local-store.d.ts.map +1 -1
  59. package/dist/storage/local-store.js +128 -71
  60. package/dist/storage/local-store.js.map +1 -1
  61. package/dist/storage/session-store.d.ts +21 -6
  62. package/dist/storage/session-store.d.ts.map +1 -1
  63. package/dist/storage/session-store.js +13 -11
  64. package/dist/storage/session-store.js.map +1 -1
  65. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"local-session-aggregator.js","sourceRoot":"","sources":["../../src/metrics/local-session-aggregator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-session-aggregator.js","sourceRoot":"","sources":["../../src/metrics/local-session-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAA2B,MAAM,6BAA6B,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAuB,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,sEAAsE;AACtE,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAEpC,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,OAAgB;IAC1B,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAiC;IACnE,uEAAuE;IACvE,2EAA2E;IAC3E,kEAAkE;IAClE,IAAI,GAAG;QACL,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;IAC1E,CAAC;CACF,CAAC;AA2GF,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,0EAA0E,CAAC;AAEpG,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAC9F,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAClG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED;kFACkF;AAClF,SAAS,YAAY,CACnB,OAAe,EACf,UAAmB;IAEnB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,yEAAyE;IACzE,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3B,oEAAoE;YACpE,6EAA6E;YAC7E,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3F,IAAI,SAAS,KAAK,OAAO,CAAC,GAAG;gBAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/C,SAAS;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAClB,IAAI,EAAE,KAAK,GAAG;oBAAE,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YACD,IAAI,UAAU,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC9B,CAAC,EAAE,CAAC;gBACJ,SAAS,GAAG,KAAK,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAClB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;oBACf,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;oBACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACf,CAAC,EAAE,CAAC;gBACN,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,EAAE,KAAK,GAAG,IAAI,SAAS;oBAAE,MAAM;gBACnC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;oBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACrD,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG;oBAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YACnD,CAAC;YACD,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,EAAE,KAAK,GAAG;gBAAE,SAAS;YACzB,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;YACrF,CAAC,GAAG,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;AAC9F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,GAA8B;IAE9B,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,wEAAwE,CAAC,IAAI,CACzF,OAAO,CACR,CAAC;IACF,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3D,iEAAiE;IACjE,MAAM,EAAE,GAAG,6DAA6D,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvF,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC5C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;IAC9C,CAAC;IAED,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACV,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE1D,OAAO,CAAC,GAA8B;QACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAExC,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;YACtF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7D,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,4EAA4E;IAC5E,IAAI,CAAC,GAA8B;QACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,CAAC;YACvF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,sBAAsB;IAChB,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClE,qEAAqE;IACpD,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,qBAAqB,CAAyD;IAE/F,YAAY,UAAyC,EAAE;QACrD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAC7D,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,SAAoC;QACxD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1E,OAAO,CACL,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC/B,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC/B,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAClC,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,SAAiB,EAAE,SAAiB;QACjD,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG;gBACP,SAAS;gBACT,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,SAAS;gBAClB,aAAa,EAAE,CAAC;gBAChB,aAAa,EAAE,EAAE;gBACjB,SAAS,EAAE,IAAI,GAAG,EAAE;gBACpB,aAAa,EAAE,IAAI,GAAG,EAAE;gBACxB,GAAG,EAAE,IAAI;gBACT,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,IAAI,mBAAmB,EAAE;gBAClC,cAAc,EAAE,IAAI,GAAG,EAAE;gBACzB,OAAO,EAAE,CAAC;gBACV,YAAY,EAAE,IAAI,GAAG,EAAE;gBACvB,eAAe,EAAE,CAAC;gBAClB,oBAAoB,EAAE,IAAI,GAAG,EAAE;gBAC/B,mBAAmB,EAAE,KAAK;gBAC1B,eAAe,EAAE,IAAI;gBACrB,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE,CAAC;gBACf,eAAe,EAAE,CAAC;gBAClB,mBAAmB,EAAE,CAAC;gBACtB,MAAM,EAAE,IAAI,GAAG,EAAE;gBACjB,eAAe,EAAE,IAAI,GAAG,EAAE;gBAC1B,gBAAgB,EAAE,IAAI,GAAG,EAAE;gBAC3B,YAAY,EAAE,CAAC;aAChB,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/D,IAAI,SAAS,GAAG,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,MAiBd;QACC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAAE,OAAO;QAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;QAC1B,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;YAAE,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC;QAC1C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACrF,IACE,MAAM,CAAC,QAAQ,KAAK,IAAI;YACxB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAC1B,CAAC;YACD,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACpC,CAAC;QACD,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9F,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAyB,CAAC,CAAC;YACrF,IAAI,MAAM;gBAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,6DAA6D;QAC7D,sEAAsE;QACtE,uEAAuE;QACvE,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC/C,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,8BAA8B;QAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;YAClD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnB,SAAS;gBACT,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;gBACrC,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK;gBACjC,GAAG,CAAC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACzE,GAAG,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtE,GAAG,CAAC,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;gBAC1D,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,IAAI,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBAC7D,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;gBAC/D,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,IAAI,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBAC7D,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5E,GAAG,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtE,GAAG,CAAC,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI;oBAChD,eAAe,EAAE,MAAM,CAAC,eAAe;iBACxC,CAAC;gBACF,GAAG,CAAC,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;aAClE,CAAC,CAAC;QACL,CAAC;QAED,2EAA2E;QAC3E,qEAAqE;QACrE,MAAM,UAAU,GAAG,MAAmC,CAAC;QACvD,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,oBAAoB;YAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpF,CAAC;IAED,gBAAgB,CACd,SAAoC,EACpC,KAgBC;QAED,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC;YAAE,OAAO;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjD,2EAA2E;QAC3E,yEAAyE;QACzE,oEAAoE;QACpE,uEAAuE;QACvE,qEAAqE;QACrE,+CAA+C;QAC/C,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/D,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;QACtB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC9E,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,eAAe,IAAI,GAAG,CAAC;YAC9B,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,mBAAmB,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAC7D,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;gBACtD,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,CAAC;gBACP,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,CAAC;gBAChB,QAAQ,EAAE,CAAC;aACZ,CAAC;YACF,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;YACxB,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;YACtC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;YACxC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YACjC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;YAC9C,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC;YACtD,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAE9C,MAAM,MAAM,GACV,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;gBACxB,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;gBACzB,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;gBAC3B,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;gBAC5B,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC;YACnC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrD,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACnC,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1E,CAAC;qBAAM,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC7C,YAAY,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,KAAK,EAAE;wBACjD,KAAK,EAAE,CAAC;wBACR,MAAM;wBACN,aAAa,EAAE,UAAU,CAAC,aAAa;qBACxC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,sBAAsB,CAAC,SAAiB,EAAE,MAA0B;QAC1E,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QACjE,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;QACvC,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QACzF,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;YACrE,MAAM,CAAC,YAAY,CAAC,GAAG,CACrB,GAAG,EACH,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACtF,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7E,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAC7B,GAAG,EACH,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAS,IAAI,CAAC,aAAa,CAAC,CAAC;QAChD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,GAAG;gBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,OAMX;QACC,MAAM,GAAG,GAAmC,EAAE,CAAC;QAC/C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,IACE,CAAC,gBAAgB,CAAC;gBAChB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,gBAAgB,EAAE,MAAM,CAAC,OAAO;gBAChC,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC;gBAEF,SAAS;YACX,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,eAAe,GAAG;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,YAAY,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC1C,oBAAoB,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC;aAC3D,CAAC;YACF,GAAG,CAAC,IAAI,CAAC;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;gBAClD,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC1D,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,aAAa,EAAE,EAAE,GAAG,MAAM,CAAC,aAAa,EAAE;gBAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC7C,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;gBAChC,aAAa,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;gBACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBACvE,4DAA4D;gBAC5D,qEAAqE;gBACrE,sEAAsE;gBACtE,mEAAmE;gBACnE,cAAc,EAAE,gBAAgB,CAAC,MAAM,CAAC;gBACxC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;gBAC3C,oBAAoB,EAClB,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBACvB,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAClF,CAAC,CAAC,IAAI;gBACV,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;gBACf,gBAAgB,EAAE,CAAC;gBACnB,YAAY,EAAE,CAAC;gBACf,aAAa,EAAE,CAAC;gBAChB,aAAa,EAAE,CAAC;gBAChB,cAAc,EAAE,CAAC;gBACjB,gBAAgB,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAC5D,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,mEAAmE;gBACnE,qEAAqE;gBACrE,gEAAgE;gBAChE,sEAAsE;gBACtE,2DAA2D;gBAC3D,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;oBAC9B,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;oBAC3D,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC;oBACtC,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE;oBAC3E,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC;oBACjC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;oBACjE,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC;oBAClC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;oBACnE,CAAC,CAAC,EAAE,CAAC;gBACP,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,cAAc,EAAE,CAAC;gBACjB,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;gBAC/C,eAAe,EAAE,CAAC;gBAClB,eAAe,EAAE,IAAI;gBACrB,YAAY,EAAE,EAAE;gBAChB,SAAS,EAAE,CAAC;gBACZ,eAAe,EAAE,IAAI;gBACrB,eAAe,EACb,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;gBAC9E,mBAAmB,EAAE,CAAC;gBACtB,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE,CAAC;gBACf,iBAAiB,EAAE,CAAC;gBACpB,eAAe,EAAE,CAAC;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI;aACtD,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,SAAiB,EAAE,OAA2B;IAChE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AA0BD,SAAS,MAAM,CAAC,IAAY,EAAE,IAAuB;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1E,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAmB,CAAC;AAExD,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE;QACvB,WAAW;QACX,wBAAwB;QACxB,WAAW;QACX,kBAAkB;KACnB,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC;IACrD,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,SAA4B,EAC5B,KAAa,EACb,WAA0B;IAE1B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,YAAY,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,SAA4B,EAAQ,EAAE;QACnE,4EAA4E;QAC5E,qEAAqE;QACrE,wEAAwE;QACxE,oEAAoE;QACpE,iEAAiE;QACjE,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,WAAW,EAAE,0BAA0B,EAAE,GAAG,SAAS,CAAC,CAAC;QAC5F,IAAI,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAE5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACzC,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI;gBACJ,SAAS,EAAE,QAAQ,CAAC,QAAQ,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI;gBAC/C,IAAI;gBACJ,OAAO,EAAE,OAAO,IAAI,IAAI;gBACxB,GAAG,EAAE,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;gBACtC,IAAI;aACL,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,uEAAuE;IACvE,6DAA6D;IAC7D,KAAK,MAAM,IAAI,IAAI,YAAY;QAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnD,0EAA0E;IAC1E,0EAA0E;IAC1E,mCAAmC;IACnC,KAAK,MAAM,IAAI,IAAI,YAAY;QAAE,OAAO,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAE/D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,SAAS,gBAAgB,CAAC,MAEzB;IACC,MAAM,GAAG,GAAwC,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,CAAC,GAAG;YACX,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,gBAAgB,EAAE,CAAC,CAAC,KAAK;YACzB,iBAAiB,EAAE,CAAC,CAAC,MAAM;YAC3B,YAAY,EAAE,CAAC,CAAC,IAAI;YACpB,oBAAoB,EAAE,CAAC,CAAC,SAAS;YACjC,wBAAwB,EAAE,CAAC,CAAC,aAAa;YACzC,mBAAmB,EAAE,CAAC,CAAC,QAAQ;SAChC,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,59 @@
1
+ export declare const DRAINS_DIR = "drains";
2
+ /**
3
+ * An older version's drainer recovers a legacy `<buffer>.drain` on its next
4
+ * 100 ms poll, and returns those events even when its unlink then fails, so
5
+ * taking the file while it is mid-recovery counts it twice. A `.drain` this
6
+ * process has watched unchanged for 60 s (600 of those polls) has no older
7
+ * drainer that was running throughout. One that starts at about the 60 s mark
8
+ * can still read it first, which is the residual double read in the PR's known
9
+ * limits. File times alone are not trusted: a rename does not update ctime on
10
+ * every filesystem, so the watch stamps inode, size and mtime together.
11
+ */
12
+ export declare const LEGACY_DRAIN_ADOPT_AGE_MS = 60000;
13
+ export declare const STALE_CLAIM_AGE_MS: number;
14
+ export interface DrainClaim {
15
+ readonly path: string;
16
+ readonly buffer: string;
17
+ readonly owner: number | 'legacy';
18
+ readonly claimedAt: number;
19
+ }
20
+ export declare function isBufferName(name: string): boolean;
21
+ export declare function formatClaimName(buffer: string, pid: number, claimedAt: number): string;
22
+ export declare function parseClaimName(name: string): {
23
+ readonly buffer: string;
24
+ readonly owner: number;
25
+ readonly claimedAt: number;
26
+ } | null;
27
+ export declare function legacyDrainBuffer(name: string): string | null;
28
+ export declare function sightLegacy(path: string, buffer: string): DrainClaim | null;
29
+ export declare function forgetLegacySightingsExcept(dir: string, seen: ReadonlySet<string>): void;
30
+ /**
31
+ * Whether a drainer may take the claim over. A dead owner's claim is taken at
32
+ * once and a live owner's after `STALE_CLAIM_AGE_MS`. Owner liveness is a
33
+ * scheduling hint, not a safety check: taking a live drainer's claim is safe
34
+ * because its unlink then fails and it returns nothing.
35
+ */
36
+ export declare function isAdoptable(claim: DrainClaim, ownerAlive: (pid: number) => boolean): boolean;
37
+ /**
38
+ * True while a legacy `.drain` is still inside its first minute of being
39
+ * watched. Its events predate the buffer's, so the buffer waits for it, but
40
+ * only for that first minute: a `.drain` whose stamp keeps changing because an
41
+ * older drainer is cycling it must not hold the buffer for good.
42
+ */
43
+ export declare function holdsBuffer(claim: DrainClaim, ownerAlive: (pid: number) => boolean): boolean;
44
+ /** Counts a repeated failure and warns on the 1st, 2nd, 4th, 8th and later power-of-two failure. */
45
+ export declare function noteFailure(key: string, message: string, err: unknown): void;
46
+ export declare function clearFailure(key: string): void;
47
+ /**
48
+ * Seals a claim, reads up to the seal and unlinks it, returning the text only
49
+ * once the unlink has succeeded. A claim whose unlink failed stays on disk for a later poll
50
+ * rather than being counted now and again after a restart.
51
+ */
52
+ export declare function takeClaim(path: string): string | null;
53
+ /**
54
+ * Claims in `<dir>/drains` plus, for a scoped drain, the legacy `.drain` of its
55
+ * own buffer. A scoped drain takes the claims of its own buffer and this
56
+ * process's own leftover claims of any buffer; an unscoped drain takes all.
57
+ */
58
+ export declare function listClaims(dir: string, scopedTo?: string): DrainClaim[];
59
+ //# sourceMappingURL=drain-claims.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drain-claims.d.ts","sourceRoot":"","sources":["../../src/storage/drain-claims.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,UAAU,WAAW,CAAC;AAInC;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD,eAAO,MAAM,kBAAkB,QAAc,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAYD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GACX;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIxF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAkB3E;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAIxF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAM5F;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAI5F;AAED,oGAAoG;AACpG,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAM5E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAerD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAiCvE"}
@@ -0,0 +1,174 @@
1
+ import { readdirSync, statSync } from 'node:fs';
2
+ import { randomBytes } from 'node:crypto';
3
+ import { dirname, resolve } from 'node:path';
4
+ import { createLogger } from '../shared/index.js';
5
+ import { takeClaimText } from './hook-buffer.js';
6
+ const logger = createLogger('drain-claims');
7
+ export const DRAINS_DIR = 'drains';
8
+ const LEGACY_DRAIN_SUFFIX = '.drain';
9
+ const CLAIM_NAME_RE = /^(.+\.jsonl)\.(\d+)\.(\d+)\.[0-9a-f]+$/;
10
+ /**
11
+ * An older version's drainer recovers a legacy `<buffer>.drain` on its next
12
+ * 100 ms poll, and returns those events even when its unlink then fails, so
13
+ * taking the file while it is mid-recovery counts it twice. A `.drain` this
14
+ * process has watched unchanged for 60 s (600 of those polls) has no older
15
+ * drainer that was running throughout. One that starts at about the 60 s mark
16
+ * can still read it first, which is the residual double read in the PR's known
17
+ * limits. File times alone are not trusted: a rename does not update ctime on
18
+ * every filesystem, so the watch stamps inode, size and mtime together.
19
+ */
20
+ export const LEGACY_DRAIN_ADOPT_AGE_MS = 60_000;
21
+ export const STALE_CLAIM_AGE_MS = 10 * 60_000;
22
+ const legacySightings = new Map();
23
+ const failureCounts = new Map();
24
+ const failedListings = new Set();
25
+ export function isBufferName(name) {
26
+ return name.endsWith('.jsonl') && (name === 'buffer.jsonl' || name.startsWith('buffer-'));
27
+ }
28
+ export function formatClaimName(buffer, pid, claimedAt) {
29
+ return `${buffer}.${pid}.${claimedAt}.${randomBytes(6).toString('hex')}`;
30
+ }
31
+ export function parseClaimName(name) {
32
+ const match = CLAIM_NAME_RE.exec(name);
33
+ if (!match)
34
+ return null;
35
+ return { buffer: match[1], owner: Number(match[2]), claimedAt: Number(match[3]) };
36
+ }
37
+ export function legacyDrainBuffer(name) {
38
+ if (!name.endsWith(LEGACY_DRAIN_SUFFIX))
39
+ return null;
40
+ const buffer = name.slice(0, -LEGACY_DRAIN_SUFFIX.length);
41
+ return isBufferName(buffer) ? buffer : null;
42
+ }
43
+ export function sightLegacy(path, buffer) {
44
+ let stats;
45
+ try {
46
+ stats = statSync(path, { throwIfNoEntry: false });
47
+ }
48
+ catch {
49
+ stats = undefined;
50
+ }
51
+ if (!stats) {
52
+ legacySightings.delete(path);
53
+ return null;
54
+ }
55
+ const stamp = `${stats.ino}:${stats.size}:${stats.mtimeMs}`;
56
+ const seen = legacySightings.get(path);
57
+ if (seen?.stamp !== stamp) {
58
+ const now = Date.now();
59
+ legacySightings.set(path, { stamp, since: now, first: seen?.first ?? now });
60
+ }
61
+ return { path, buffer, owner: 'legacy', claimedAt: 0 };
62
+ }
63
+ export function forgetLegacySightingsExcept(dir, seen) {
64
+ for (const path of legacySightings.keys()) {
65
+ if (dirname(path) === dir && !seen.has(path))
66
+ legacySightings.delete(path);
67
+ }
68
+ }
69
+ /**
70
+ * Whether a drainer may take the claim over. A dead owner's claim is taken at
71
+ * once and a live owner's after `STALE_CLAIM_AGE_MS`. Owner liveness is a
72
+ * scheduling hint, not a safety check: taking a live drainer's claim is safe
73
+ * because its unlink then fails and it returns nothing.
74
+ */
75
+ export function isAdoptable(claim, ownerAlive) {
76
+ if (claim.owner === 'legacy') {
77
+ const since = legacySightings.get(claim.path)?.since ?? Number.POSITIVE_INFINITY;
78
+ return Date.now() - since >= LEGACY_DRAIN_ADOPT_AGE_MS;
79
+ }
80
+ return !ownerAlive(claim.owner) || Date.now() - claim.claimedAt >= STALE_CLAIM_AGE_MS;
81
+ }
82
+ /**
83
+ * True while a legacy `.drain` is still inside its first minute of being
84
+ * watched. Its events predate the buffer's, so the buffer waits for it, but
85
+ * only for that first minute: a `.drain` whose stamp keeps changing because an
86
+ * older drainer is cycling it must not hold the buffer for good.
87
+ */
88
+ export function holdsBuffer(claim, ownerAlive) {
89
+ if (claim.owner !== 'legacy' || isAdoptable(claim, ownerAlive))
90
+ return false;
91
+ const first = legacySightings.get(claim.path)?.first ?? Number.POSITIVE_INFINITY;
92
+ return Date.now() - first < LEGACY_DRAIN_ADOPT_AGE_MS;
93
+ }
94
+ /** Counts a repeated failure and warns on the 1st, 2nd, 4th, 8th and later power-of-two failure. */
95
+ export function noteFailure(key, message, err) {
96
+ const failures = (failureCounts.get(key) ?? 0) + 1;
97
+ failureCounts.set(key, failures);
98
+ if ((failures & (failures - 1)) === 0) {
99
+ logger.warn(message, { error: String(err), failures });
100
+ }
101
+ }
102
+ export function clearFailure(key) {
103
+ failureCounts.delete(key);
104
+ }
105
+ /**
106
+ * Seals a claim, reads up to the seal and unlinks it, returning the text only
107
+ * once the unlink has succeeded. A claim whose unlink failed stays on disk for a later poll
108
+ * rather than being counted now and again after a restart.
109
+ */
110
+ export function takeClaim(path) {
111
+ let raw;
112
+ try {
113
+ raw = takeClaimText(path);
114
+ }
115
+ catch (err) {
116
+ if (err.code === 'ENOENT') {
117
+ clearFailure(path);
118
+ logger.debug('Drain claim was adopted by another drainer', { error: String(err) });
119
+ }
120
+ else {
121
+ noteFailure(path, 'Failed to drain a claimed buffer — retrying each poll', err);
122
+ }
123
+ return null;
124
+ }
125
+ clearFailure(path);
126
+ return raw;
127
+ }
128
+ /**
129
+ * Claims in `<dir>/drains` plus, for a scoped drain, the legacy `.drain` of its
130
+ * own buffer. A scoped drain takes the claims of its own buffer and this
131
+ * process's own leftover claims of any buffer; an unscoped drain takes all.
132
+ */
133
+ export function listClaims(dir, scopedTo) {
134
+ const claims = [];
135
+ const legacy = scopedTo && sightLegacy(resolve(dir, scopedTo + LEGACY_DRAIN_SUFFIX), scopedTo);
136
+ if (legacy)
137
+ claims.push(legacy);
138
+ const drainsDir = resolve(dir, DRAINS_DIR);
139
+ let names;
140
+ try {
141
+ names = readdirSync(drainsDir);
142
+ failedListings.delete(drainsDir);
143
+ }
144
+ catch (err) {
145
+ const failed = err.code !== 'ENOENT';
146
+ if (failed && !failedListings.has(drainsDir)) {
147
+ logger.warn('Failed to list drain claims — leftover claims wait until it succeeds', {
148
+ error: String(err),
149
+ });
150
+ }
151
+ if (failed)
152
+ failedListings.add(drainsDir);
153
+ else
154
+ failedListings.delete(drainsDir);
155
+ return claims;
156
+ }
157
+ const listed = new Set();
158
+ for (const name of names) {
159
+ const path = resolve(drainsDir, name);
160
+ listed.add(path);
161
+ const parsed = parseClaimName(name);
162
+ if (!parsed)
163
+ continue;
164
+ if (scopedTo && parsed.buffer !== scopedTo && parsed.owner !== process.pid)
165
+ continue;
166
+ claims.push({ path, ...parsed });
167
+ }
168
+ for (const key of failureCounts.keys()) {
169
+ if (dirname(key) === drainsDir && !listed.has(key))
170
+ failureCounts.delete(key);
171
+ }
172
+ return claims;
173
+ }
174
+ //# sourceMappingURL=drain-claims.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drain-claims.js","sourceRoot":"","sources":["../../src/storage/drain-claims.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare const DRAIN_SEAL = "\0preflight-drain-seal\n";
2
+ export declare function textBeforeSeal(raw: string): string;
3
+ export declare function appendToHookBuffer(path: string, text: string): void;
4
+ export declare function sealHookBuffer(path: string): void;
5
+ export declare function readSealed(path: string): string;
6
+ export declare function takeClaimText(path: string): string;
7
+ //# sourceMappingURL=hook-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-buffer.d.ts","sourceRoot":"","sources":["../../src/storage/hook-buffer.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,UAAU,6BAA6B,CAAC;AAYrD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGlD;AAyDD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAenE;AAQD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOjD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoB/C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD"}
@@ -0,0 +1,132 @@
1
+ import { closeSync, constants, fstatSync, openSync, readFileSync, readSync, statSync, unlinkSync, writeSync, } from 'node:fs';
2
+ export const DRAIN_SEAL = '\0preflight-drain-seal\n';
3
+ const TORN_SEAL_RE = /\0[a-z-]*/g;
4
+ const MAX_WRITES = 5;
5
+ const MAX_OPENS = 100;
6
+ // A short write leaves a fragment. Ending it with a control character as well as a newline keeps a
7
+ // fragment that is itself complete JSON from parsing as an event, since the line is written again whole.
8
+ const TORN_LINE_END = '\x1e\n';
9
+ const READ_ONLY_CODES = new Set(['EACCES', 'EPERM', 'EROFS']);
10
+ export function textBeforeSeal(raw) {
11
+ const seal = raw.indexOf(DRAIN_SEAL);
12
+ return (seal === -1 ? raw : raw.slice(0, seal)).replace(TORN_SEAL_RE, '');
13
+ }
14
+ function readRange(fd, start, end) {
15
+ const buf = Buffer.alloc(Math.max(0, end - start));
16
+ let read = 0;
17
+ while (read < buf.length) {
18
+ const n = readSync(fd, buf, read, buf.length - read, start + read);
19
+ if (n === 0)
20
+ break;
21
+ read += n;
22
+ }
23
+ return buf.subarray(0, read);
24
+ }
25
+ function readToEnd(fd, scratch) {
26
+ let total = 0;
27
+ for (let n; (n = readSync(fd, scratch, 0, scratch.length, null)) > 0;)
28
+ total += n;
29
+ return total;
30
+ }
31
+ // After an O_APPEND write the fd's offset is the end of that write. Reading
32
+ // on from it counts the bytes appended since, and a size that no further
33
+ // read moves past pins the offset.
34
+ function offsetAfterWrite(fd) {
35
+ const scratch = Buffer.alloc(64 * 1024);
36
+ let after = readToEnd(fd, scratch);
37
+ for (;;) {
38
+ const size = fstatSync(fd).size;
39
+ const more = readToEnd(fd, scratch);
40
+ if (more === 0)
41
+ return size - after;
42
+ after += more;
43
+ }
44
+ }
45
+ function isAt(path, file) {
46
+ const now = statSync(path, { bigint: true, throwIfNoEntry: false });
47
+ return now !== undefined && now.ino === file.ino && now.dev === file.dev;
48
+ }
49
+ function appendOnce(path, data) {
50
+ const fd = openSync(path, constants.O_RDWR | constants.O_CREAT | constants.O_APPEND, 0o600);
51
+ try {
52
+ const opened = fstatSync(fd, { bigint: true });
53
+ if (!isAt(path, opened))
54
+ return 'moved';
55
+ const sealFloor = Number(opened.size);
56
+ const written = writeSync(fd, data);
57
+ if (written < data.length) {
58
+ writeSync(fd, TORN_LINE_END);
59
+ return 'redo';
60
+ }
61
+ if (isAt(path, opened))
62
+ return 'kept';
63
+ const start = offsetAfterWrite(fd) - data.length;
64
+ return readRange(fd, sealFloor, start).includes(DRAIN_SEAL) ? 'redo' : 'kept';
65
+ }
66
+ finally {
67
+ closeSync(fd);
68
+ }
69
+ }
70
+ export function appendToHookBuffer(path, text) {
71
+ if (text.includes('\0')) {
72
+ throw new Error(`Hook buffer text contains NUL, which marks a drain seal: ${path}`);
73
+ }
74
+ if (!text.endsWith('\n') || text.indexOf('\n') !== text.length - 1) {
75
+ throw new Error(`Hook buffer text must be exactly one newline-terminated line: ${path}`);
76
+ }
77
+ const data = Buffer.from(text);
78
+ let writes = 0;
79
+ for (let opens = 0; opens < MAX_OPENS; opens++) {
80
+ const landing = appendOnce(path, data);
81
+ if (landing === 'kept')
82
+ return;
83
+ if (landing === 'redo' && ++writes === MAX_WRITES)
84
+ break;
85
+ }
86
+ throw new Error(`Hook buffer write raced a drain on all attempts and was not kept: ${path}`);
87
+ }
88
+ function writeSeal(fd, path) {
89
+ if (writeSync(fd, DRAIN_SEAL) < Buffer.byteLength(DRAIN_SEAL)) {
90
+ throw new Error(`Short write while sealing ${path}`);
91
+ }
92
+ }
93
+ export function sealHookBuffer(path) {
94
+ const fd = openSync(path, constants.O_WRONLY | constants.O_APPEND);
95
+ try {
96
+ writeSeal(fd, path);
97
+ }
98
+ finally {
99
+ closeSync(fd);
100
+ }
101
+ }
102
+ export function readSealed(path) {
103
+ let fd;
104
+ try {
105
+ fd = openSync(path, constants.O_RDWR | constants.O_APPEND);
106
+ }
107
+ catch (err) {
108
+ if (!READ_ONLY_CODES.has(err.code))
109
+ throw err;
110
+ // A writer running as the same user cannot open this file to append either, so no seal
111
+ // is needed. A writer with other credentials, or one whose fd opened before the
112
+ // permission change, can still append and lose that line.
113
+ return textBeforeSeal(readFileSync(path, 'utf-8'));
114
+ }
115
+ try {
116
+ const head = readRange(fd, 0, fstatSync(fd).size);
117
+ if (head.includes(DRAIN_SEAL))
118
+ return textBeforeSeal(head.toString('utf-8'));
119
+ writeSeal(fd, path);
120
+ const tail = readRange(fd, head.length, fstatSync(fd).size);
121
+ return textBeforeSeal(Buffer.concat([head, tail]).toString('utf-8'));
122
+ }
123
+ finally {
124
+ closeSync(fd);
125
+ }
126
+ }
127
+ export function takeClaimText(path) {
128
+ const text = readSealed(path);
129
+ unlinkSync(path);
130
+ return text;
131
+ }
132
+ //# sourceMappingURL=hook-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-buffer.js","sourceRoot":"","sources":["../../src/storage/hook-buffer.ts"],"names":[],"mappings":"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"}
@@ -25,15 +25,16 @@ export declare class LocalStore {
25
25
  */
26
26
  constructor(storagePath: string, bufferPathOrSessionId?: string, sessionId?: string);
27
27
  initialize(): void;
28
- /**
29
- * Append a hook event as a JSON line to the buffer file.
30
- * Uses appendFileSync for minimal latency (<5ms budget).
31
- */
32
28
  appendToBuffer(event: HookEvent): void;
33
29
  /**
34
- * Atomically drain all events from the buffer file.
35
- * Renames the file to a temp path (atomic on POSIX), reads it, then deletes.
36
- * This avoids data loss from concurrent hook writes during drain.
30
+ * Drain this store's buffer, plus this process's own leftover claims of any
31
+ * buffer. The buffer is renamed into a claim of this process's own before it
32
+ * is read, so concurrent drainers never return an event twice, and a claim
33
+ * left by a drainer that died mid-drain is adopted by another.
34
+ *
35
+ * Reading a claim appends a seal to it first. A hook that opened the buffer
36
+ * before the rename and whose line lands after the seal writes the line
37
+ * again to the live buffer, so it is drained on a later pass.
37
38
  */
38
39
  drainBuffer(): HookEvent[];
39
40
  /**
@@ -44,13 +45,7 @@ export declare class LocalStore {
44
45
  * MCP isn't running) are picked up too.
45
46
  *
46
47
  * A per-session buffer whose `active-<sessionId>.pid` heartbeat names a
47
- * live PID is skipped: that session's own `--stdio` process is already
48
- * polling and draining that exact file via its own scoped drainBuffer() on
49
- * the same cadence. Draining it here too would race that rename-then-read
50
- * against the owner's — whichever process wins a given poll cycle silently
51
- * keeps the batch, and the loser sees nothing, with no error on either
52
- * side. The owner's copy always wins fairly since this call skips the file
53
- * outright rather than racing it.
48
+ * live PID is left to that session's own `--stdio` process.
54
49
  */
55
50
  drainAllBuffers(): HookEvent[];
56
51
  /**
@@ -77,7 +72,9 @@ export declare class LocalStore {
77
72
  *
78
73
  * The legacy shared `buffer.jsonl` is included so an upgrading user with
79
74
  * unmigrated events still appears in aggregate views before the next
80
- * `migrateLegacyBuffer()` runs.
75
+ * `migrateLegacyBuffer()` runs. Lines held in drain claims are included
76
+ * too: they are still waiting for a drainer to return them, so a claim
77
+ * that no drainer can unlink keeps showing up here.
81
78
  */
82
79
  peekAllBuffers(): HookEvent[];
83
80
  /**
@@ -285,12 +282,16 @@ export declare class LocalStore {
285
282
  * accept this trade because re-migrating from `.migrating-<pid>` would
286
283
  * re-append already-migrated partitions and produce duplicate events,
287
284
  * which is worse than a once-only loss bounded by the size of the legacy
288
- * file at upgrade time.
285
+ * file at upgrade time. The file is sealed, so recover it by hand with
286
+ * the text before the seal (`\0preflight-drain-seal`), not by appending
287
+ * it whole to a live buffer, where the seal would hide every later line.
289
288
  *
290
289
  * Returns the number of events migrated.
291
290
  */
292
291
  migrateLegacyBuffer(): number;
292
+ private bufferDrains;
293
293
  private drainPath;
294
+ private claimDrain;
294
295
  /** The buffer path this store is currently scoped to (test helper). */
295
296
  getBufferPath(): string;
296
297
  /** The sessionId this store was scoped to, if any (test helper). */
@@ -1 +1 @@
1
- {"version":3,"file":"local-store.d.ts","sourceRoot":"","sources":["../../src/storage/local-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-store.d.ts","sourceRoot":"","sources":["../../src/storage/local-store.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAkF1D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAYnF;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAE1C;;;;;;;;;;;OAWG;gBACS,WAAW,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAwCnF,UAAU,IAAI,IAAI;IAkBlB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAStC;;;;;;;;;OASG;IACH,WAAW,IAAI,SAAS,EAAE;IAK1B;;;;;;;;;OASG;IACH,eAAe,IAAI,SAAS,EAAE;IAmB9B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,cAAc,IAAI,SAAS,EAAE;IAyD7B;;;;;;;;;;;;;OAaG;IACH,cAAc,CACZ,GAAG,GAAE,MAAoB,EACzB,IAAI,GAAE,SAAS,MAAM,EAA0B,EAC/C,GAAG,GAAE,MAAsB,EAC3B,aAAa,CAAC,EAAE,qBAAqB,GACpC,IAAI;IA4BP;;;;;;OAMG;IACH,eAAe,IAAI,IAAI;IAYvB;;;;;;;OAOG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAW7C;;;;;;;OAOG;IACH,sBAAsB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAoB,GAAG,IAAI;IAc7F;;;;;OAKG;IACH,4BAA4B,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAuBnF;;;;OAIG;IACH,uBAAuB,IAAI,IAAI;IAY/B;;;;;;;;;OASG;IACH,qBAAqB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAoB,GAAG,IAAI;IAiB5F;;;;;OAKG;IACH,uBAAuB,CAAC,GAAG,GAAE,MAAoB,GAAG,IAAI;IASxD;;;;;;OAMG;IACH,kBAAkB,IAAI,KAAK,CAAC;QAC1B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IAuCF;;;;;;;;OAQG;IACH,oBAAoB,IAAI,MAAM;IAiC9B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,eAAe,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG;QACtD,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;KACzB;IAuHD;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CACd,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,EACrC,cAAc,EAAE,MAAM,GACrB;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,uBAAuB,EAAE,MAAM,CAAA;KAAE;IAqF1F;;;;;OAKG;IACH,iCAAiC,IAAI,GAAG,CAAC,MAAM,CAAC;IAyBhD;;;;;;;;;;;OAWG;IACH,wBAAwB,IAAI,KAAK,CAAC;QAChC,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC;QACf,aAAa,EAAE,qBAAqB,GAAG,IAAI,CAAC;KAC7C,CAAC;IAqEF;;;;;;OAMG;IACH,kBAAkB,IAAI,MAAM;IAmC5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,mBAAmB,IAAI,MAAM;IAmG7B,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,SAAS;IAoCjB,OAAO,CAAC,UAAU;IAsBlB,uEAAuE;IACvE,aAAa,IAAI,MAAM;IAIvB,oEAAoE;IACpE,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAavC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;CA0D/C"}