@rubytech/create-maxy-code 0.1.601 → 0.1.602

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 (253) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/hooks/video-frames-inject.sh +141 -0
  3. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +5 -1
  4. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +6 -0
  5. package/payload/platform/plugins/docs/references/admin-ui.md +2 -0
  6. package/payload/platform/plugins/docs/references/telegram-guide.md +2 -0
  7. package/payload/platform/plugins/scheduling/PLUGIN.md +2 -0
  8. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate-audits.test.js +67 -1
  9. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate-audits.test.js.map +1 -1
  10. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate.test.js +89 -1
  11. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/gate.test.js.map +1 -1
  12. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/outage-marker.test.d.ts +2 -0
  13. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/outage-marker.test.d.ts.map +1 -0
  14. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/outage-marker.test.js +160 -0
  15. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/outage-marker.test.js.map +1 -0
  16. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/routine-run.test.js +16 -0
  17. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/routine-run.test.js.map +1 -1
  18. package/payload/platform/plugins/scheduling/mcp/dist/lib/gate.d.ts +31 -1
  19. package/payload/platform/plugins/scheduling/mcp/dist/lib/gate.d.ts.map +1 -1
  20. package/payload/platform/plugins/scheduling/mcp/dist/lib/gate.js +42 -4
  21. package/payload/platform/plugins/scheduling/mcp/dist/lib/gate.js.map +1 -1
  22. package/payload/platform/plugins/scheduling/mcp/dist/lib/outage-marker.d.ts +101 -0
  23. package/payload/platform/plugins/scheduling/mcp/dist/lib/outage-marker.d.ts.map +1 -0
  24. package/payload/platform/plugins/scheduling/mcp/dist/lib/outage-marker.js +130 -0
  25. package/payload/platform/plugins/scheduling/mcp/dist/lib/outage-marker.js.map +1 -0
  26. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.d.ts +10 -1
  27. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.d.ts.map +1 -1
  28. package/payload/platform/plugins/scheduling/mcp/dist/lib/routine-run.js.map +1 -1
  29. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.d.ts +24 -0
  30. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.d.ts.map +1 -1
  31. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.js +89 -0
  32. package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-audit.js.map +1 -1
  33. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js +67 -1
  34. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js.map +1 -1
  35. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gate-dispatch-wiring.test.js +31 -0
  36. package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/gate-dispatch-wiring.test.js.map +1 -1
  37. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts +10 -1
  38. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts.map +1 -1
  39. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +46 -1
  40. package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -1
  41. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +72 -4
  42. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
  43. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.js +81 -4
  44. package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/scheduling-gate.test.js.map +1 -1
  45. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.d.ts +50 -0
  46. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.d.ts.map +1 -1
  47. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.js +48 -7
  48. package/payload/platform/plugins/scheduling/mcp/dist/tools/scheduling-gate.js.map +1 -1
  49. package/payload/platform/plugins/telegram/PLUGIN.md +4 -0
  50. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin-registry.test.js +33 -1
  51. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin-registry.test.js.map +1 -1
  52. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin.test.js +166 -1
  53. package/payload/platform/plugins/telegram/mcp/dist/__tests__/public-pin.test.js.map +1 -1
  54. package/payload/platform/plugins/telegram/mcp/dist/index.js +39 -14
  55. package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -1
  56. package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.d.ts +95 -0
  57. package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.d.ts.map +1 -1
  58. package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.js +125 -0
  59. package/payload/platform/plugins/telegram/mcp/dist/lib/public-pin.js.map +1 -1
  60. package/payload/platform/services/telegram-channel/dist/notification.d.ts +6 -0
  61. package/payload/platform/services/telegram-channel/dist/notification.d.ts.map +1 -1
  62. package/payload/platform/services/telegram-channel/dist/notification.js +12 -5
  63. package/payload/platform/services/telegram-channel/dist/notification.js.map +1 -1
  64. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +5 -0
  65. package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
  66. package/payload/platform/services/whatsapp-channel/dist/notification.js +9 -3
  67. package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
  68. package/payload/platform/templates/account-settings.json +6 -0
  69. package/payload/server/chunk-CYU75QAV.js +377 -0
  70. package/payload/server/{chunk-34FPJYHN.js → chunk-GI5AVCRG.js} +87 -146
  71. package/payload/server/chunk-KUVNCAE4.js +77 -0
  72. package/payload/server/{manager-7BXVB76I.js → manager-VDHT3YYI.js} +2 -1
  73. package/payload/server/maxy-edge.js +33 -1
  74. package/payload/server/public/activity.html +6 -6
  75. package/payload/server/public/agents.html +5 -5
  76. package/payload/server/public/assets/{AdminLoginScreens-B3W6J6Bl.js → AdminLoginScreens-CaQqLuxZ.js} +1 -1
  77. package/payload/server/public/assets/AdminLoginScreens-CaQqLuxZ.js.br +0 -0
  78. package/payload/server/public/assets/AdminLoginScreens-CaQqLuxZ.js.gz +0 -0
  79. package/payload/server/public/assets/{AdminShell-C3R-vMZ5.js → AdminShell-D8WTrqem.js} +1 -1
  80. package/payload/server/public/assets/AdminShell-D8WTrqem.js.br +0 -0
  81. package/payload/server/public/assets/AdminShell-D8WTrqem.js.gz +0 -0
  82. package/payload/server/public/assets/{activity-tzv68iBs.js → activity-B3fiJrC2.js} +1 -1
  83. package/payload/server/public/assets/activity-B3fiJrC2.js.br +0 -0
  84. package/payload/server/public/assets/activity-B3fiJrC2.js.gz +0 -0
  85. package/payload/server/public/assets/admin-ouF-DflP.js +1 -0
  86. package/payload/server/public/assets/admin-ouF-DflP.js.br +0 -0
  87. package/payload/server/public/assets/admin-ouF-DflP.js.gz +0 -0
  88. package/payload/server/public/assets/{agents-DUZfeY3X.js → agents-C8RSXHdh.js} +1 -1
  89. package/payload/server/public/assets/agents-C8RSXHdh.js.br +0 -0
  90. package/payload/server/public/assets/agents-C8RSXHdh.js.gz +0 -0
  91. package/payload/server/public/assets/{browser-DwLaXqjO.js → browser-Dbv6-Rag.js} +1 -1
  92. package/payload/server/public/assets/browser-Dbv6-Rag.js.br +0 -0
  93. package/payload/server/public/assets/browser-Dbv6-Rag.js.gz +0 -0
  94. package/payload/server/public/assets/{calendar-Cli8Qjl9.js → calendar-vJjtsH9n.js} +1 -1
  95. package/payload/server/public/assets/calendar-vJjtsH9n.js.br +0 -0
  96. package/payload/server/public/assets/calendar-vJjtsH9n.js.gz +0 -0
  97. package/payload/server/public/assets/chat-cqL4qPUy.js +1 -0
  98. package/payload/server/public/assets/chat-cqL4qPUy.js.br +1 -0
  99. package/payload/server/public/assets/chat-cqL4qPUy.js.gz +0 -0
  100. package/payload/server/public/assets/chevron-left-DB98DSG3.js +1 -0
  101. package/payload/server/public/assets/chevron-left-DB98DSG3.js.br +0 -0
  102. package/payload/server/public/assets/clock-4YwsYe4L.js +1 -0
  103. package/payload/server/public/assets/clock-4YwsYe4L.js.br +0 -0
  104. package/payload/server/public/assets/clock-4YwsYe4L.js.gz +0 -0
  105. package/payload/server/public/assets/{copy-yhhwfEbQ.js → copy-DyG7sC5o.js} +1 -1
  106. package/payload/server/public/assets/copy-DyG7sC5o.js.br +0 -0
  107. package/payload/server/public/assets/copy-DyG7sC5o.js.gz +0 -0
  108. package/payload/server/public/assets/data-BAzLtx9C.js +1 -0
  109. package/payload/server/public/assets/data-BAzLtx9C.js.br +0 -0
  110. package/payload/server/public/assets/data-BAzLtx9C.js.gz +0 -0
  111. package/payload/server/public/assets/{field-jg0YQNDy.js → field-Bx6pM-vq.js} +1 -1
  112. package/payload/server/public/assets/field-Bx6pM-vq.js.br +0 -0
  113. package/payload/server/public/assets/field-Bx6pM-vq.js.gz +0 -0
  114. package/payload/server/public/assets/{file-text-D0EdW7h4.js → file-text-CpHWsMGe.js} +1 -1
  115. package/payload/server/public/assets/file-text-CpHWsMGe.js.br +0 -0
  116. package/payload/server/public/assets/file-text-CpHWsMGe.js.gz +0 -0
  117. package/payload/server/public/assets/{graph--AUr4uBc.js → graph-DjOywuv_.js} +1 -1
  118. package/payload/server/public/assets/graph-DjOywuv_.js.br +0 -0
  119. package/payload/server/public/assets/graph-DjOywuv_.js.gz +0 -0
  120. package/payload/server/public/assets/{graph-labels-DM0CiAX1.js → graph-labels-CGWtqa-m.js} +1 -1
  121. package/payload/server/public/assets/graph-labels-CGWtqa-m.js.br +0 -0
  122. package/payload/server/public/assets/graph-labels-CGWtqa-m.js.gz +0 -0
  123. package/payload/server/public/assets/{jsx-runtime-lfcjzaWi.css → jsx-runtime-D75_aR1J.css} +1 -1
  124. package/payload/server/public/assets/jsx-runtime-D75_aR1J.css.br +0 -0
  125. package/payload/server/public/assets/{jsx-runtime-lfcjzaWi.css.gz → jsx-runtime-D75_aR1J.css.gz} +0 -0
  126. package/payload/server/public/assets/{operator-CNYKStFX.js → operator-_DN0RF1R.js} +1 -1
  127. package/payload/server/public/assets/operator-_DN0RF1R.js.br +0 -0
  128. package/payload/server/public/assets/operator-_DN0RF1R.js.gz +0 -0
  129. package/payload/server/public/assets/page-DI4qQIK0.js +1 -0
  130. package/payload/server/public/assets/page-DI4qQIK0.js.br +0 -0
  131. package/payload/server/public/assets/page-DI4qQIK0.js.gz +0 -0
  132. package/payload/server/public/assets/page-zCwgrs8m.js +32 -0
  133. package/payload/server/public/assets/page-zCwgrs8m.js.br +0 -0
  134. package/payload/server/public/assets/page-zCwgrs8m.js.gz +0 -0
  135. package/payload/server/public/assets/play-CHQ5a9yh.js +1 -0
  136. package/payload/server/public/assets/play-CHQ5a9yh.js.br +0 -0
  137. package/payload/server/public/assets/play-CHQ5a9yh.js.gz +0 -0
  138. package/payload/server/public/assets/{public-7gXDqCog.js → public-DDVWBNSH.js} +1 -1
  139. package/payload/server/public/assets/public-DDVWBNSH.js.br +0 -0
  140. package/payload/server/public/assets/public-DDVWBNSH.js.gz +0 -0
  141. package/payload/server/public/assets/{rotate-ccw-DhqNTPpo.js → rotate-ccw-xTwkf-m7.js} +1 -1
  142. package/payload/server/public/assets/rotate-ccw-xTwkf-m7.js.br +0 -0
  143. package/payload/server/public/assets/rotate-ccw-xTwkf-m7.js.gz +0 -0
  144. package/payload/server/public/assets/{routines-DN_yDtEj.js → routines-Bu5MdNmG.js} +1 -1
  145. package/payload/server/public/assets/routines-Bu5MdNmG.js.br +0 -0
  146. package/payload/server/public/assets/routines-Bu5MdNmG.js.gz +0 -0
  147. package/payload/server/public/assets/{skills-pb_3BdOl.js → skills-DRunh5vy.js} +1 -1
  148. package/payload/server/public/assets/skills-DRunh5vy.js.br +0 -0
  149. package/payload/server/public/assets/skills-DRunh5vy.js.gz +0 -0
  150. package/payload/server/public/assets/{tasks-BQm4boat.js → tasks-DI2fznvd.js} +1 -1
  151. package/payload/server/public/assets/tasks-DI2fznvd.js.br +0 -0
  152. package/payload/server/public/assets/tasks-DI2fznvd.js.gz +0 -0
  153. package/payload/server/public/assets/{triangle-alert-d7yjaIqv.js → triangle-alert-B6CHZeUf.js} +1 -1
  154. package/payload/server/public/assets/triangle-alert-B6CHZeUf.js.br +0 -0
  155. package/payload/server/public/assets/triangle-alert-B6CHZeUf.js.gz +0 -0
  156. package/payload/server/public/assets/{useCopyFeedback-CZ6Qhfkj.js → useCopyFeedback-6rU2IEPk.js} +1 -1
  157. package/payload/server/public/assets/useCopyFeedback-6rU2IEPk.js.br +2 -0
  158. package/payload/server/public/assets/useCopyFeedback-6rU2IEPk.js.gz +0 -0
  159. package/payload/server/public/assets/{useMediaQuery-R1smYLx4.js → useMediaQuery-D7A5Bzs3.js} +1 -1
  160. package/payload/server/public/assets/useMediaQuery-D7A5Bzs3.js.br +0 -0
  161. package/payload/server/public/assets/useMediaQuery-D7A5Bzs3.js.gz +0 -0
  162. package/payload/server/public/assets/useVoiceRecorder-CptrerVA.js +2 -0
  163. package/payload/server/public/assets/useVoiceRecorder-CptrerVA.js.br +0 -0
  164. package/payload/server/public/assets/useVoiceRecorder-CptrerVA.js.gz +0 -0
  165. package/payload/server/public/assets/{wrench-DL1pbaCs.js → wrench-DyX4C8aY.js} +1 -1
  166. package/payload/server/public/assets/wrench-DyX4C8aY.js.br +0 -0
  167. package/payload/server/public/assets/wrench-DyX4C8aY.js.gz +0 -0
  168. package/payload/server/public/browser.html +5 -5
  169. package/payload/server/public/calendar.html +8 -8
  170. package/payload/server/public/chat.html +14 -14
  171. package/payload/server/public/data.html +12 -12
  172. package/payload/server/public/field.html +3 -3
  173. package/payload/server/public/graph.html +10 -10
  174. package/payload/server/public/index.html +14 -14
  175. package/payload/server/public/operator.html +15 -15
  176. package/payload/server/public/public.html +14 -14
  177. package/payload/server/public/routines.html +8 -8
  178. package/payload/server/public/skills.html +6 -6
  179. package/payload/server/public/tasks.html +7 -7
  180. package/payload/server/server.js +634 -461
  181. package/payload/server/video-extract.js +36 -0
  182. package/payload/server/public/assets/AdminLoginScreens-B3W6J6Bl.js.br +0 -0
  183. package/payload/server/public/assets/AdminLoginScreens-B3W6J6Bl.js.gz +0 -0
  184. package/payload/server/public/assets/AdminShell-C3R-vMZ5.js.br +0 -0
  185. package/payload/server/public/assets/AdminShell-C3R-vMZ5.js.gz +0 -0
  186. package/payload/server/public/assets/activity-tzv68iBs.js.br +0 -0
  187. package/payload/server/public/assets/activity-tzv68iBs.js.gz +0 -0
  188. package/payload/server/public/assets/admin-CzW_9jm3.js +0 -1
  189. package/payload/server/public/assets/admin-CzW_9jm3.js.br +0 -0
  190. package/payload/server/public/assets/admin-CzW_9jm3.js.gz +0 -0
  191. package/payload/server/public/assets/agents-DUZfeY3X.js.br +0 -0
  192. package/payload/server/public/assets/agents-DUZfeY3X.js.gz +0 -0
  193. package/payload/server/public/assets/browser-DwLaXqjO.js.br +0 -0
  194. package/payload/server/public/assets/browser-DwLaXqjO.js.gz +0 -0
  195. package/payload/server/public/assets/calendar-Cli8Qjl9.js.br +0 -0
  196. package/payload/server/public/assets/calendar-Cli8Qjl9.js.gz +0 -0
  197. package/payload/server/public/assets/chat-ByAgBgm1.js +0 -1
  198. package/payload/server/public/assets/chat-ByAgBgm1.js.br +0 -1
  199. package/payload/server/public/assets/chat-ByAgBgm1.js.gz +0 -0
  200. package/payload/server/public/assets/chevron-left-BIYVnwvk.js +0 -1
  201. package/payload/server/public/assets/chevron-left-BIYVnwvk.js.br +0 -0
  202. package/payload/server/public/assets/clock-Dzy79hq3.js +0 -1
  203. package/payload/server/public/assets/clock-Dzy79hq3.js.br +0 -0
  204. package/payload/server/public/assets/clock-Dzy79hq3.js.gz +0 -0
  205. package/payload/server/public/assets/copy-yhhwfEbQ.js.br +0 -0
  206. package/payload/server/public/assets/copy-yhhwfEbQ.js.gz +0 -0
  207. package/payload/server/public/assets/data-CsMMki2A.js +0 -1
  208. package/payload/server/public/assets/data-CsMMki2A.js.br +0 -0
  209. package/payload/server/public/assets/data-CsMMki2A.js.gz +0 -0
  210. package/payload/server/public/assets/field-jg0YQNDy.js.br +0 -0
  211. package/payload/server/public/assets/field-jg0YQNDy.js.gz +0 -0
  212. package/payload/server/public/assets/file-text-D0EdW7h4.js.br +0 -0
  213. package/payload/server/public/assets/file-text-D0EdW7h4.js.gz +0 -0
  214. package/payload/server/public/assets/graph--AUr4uBc.js.br +0 -0
  215. package/payload/server/public/assets/graph--AUr4uBc.js.gz +0 -0
  216. package/payload/server/public/assets/graph-labels-DM0CiAX1.js.br +0 -0
  217. package/payload/server/public/assets/graph-labels-DM0CiAX1.js.gz +0 -0
  218. package/payload/server/public/assets/jsx-runtime-lfcjzaWi.css.br +0 -0
  219. package/payload/server/public/assets/operator-CNYKStFX.js.br +0 -0
  220. package/payload/server/public/assets/operator-CNYKStFX.js.gz +0 -0
  221. package/payload/server/public/assets/page-DSsEpl8J.js +0 -32
  222. package/payload/server/public/assets/page-DSsEpl8J.js.br +0 -0
  223. package/payload/server/public/assets/page-DSsEpl8J.js.gz +0 -0
  224. package/payload/server/public/assets/page-DjhmwxnY.js +0 -1
  225. package/payload/server/public/assets/page-DjhmwxnY.js.br +0 -0
  226. package/payload/server/public/assets/page-DjhmwxnY.js.gz +0 -0
  227. package/payload/server/public/assets/play-DhZlml5b.js +0 -1
  228. package/payload/server/public/assets/play-DhZlml5b.js.br +0 -0
  229. package/payload/server/public/assets/play-DhZlml5b.js.gz +0 -0
  230. package/payload/server/public/assets/public-7gXDqCog.js.br +0 -0
  231. package/payload/server/public/assets/public-7gXDqCog.js.gz +0 -0
  232. package/payload/server/public/assets/rotate-ccw-DhqNTPpo.js.br +0 -0
  233. package/payload/server/public/assets/rotate-ccw-DhqNTPpo.js.gz +0 -0
  234. package/payload/server/public/assets/routines-DN_yDtEj.js.br +0 -0
  235. package/payload/server/public/assets/routines-DN_yDtEj.js.gz +0 -0
  236. package/payload/server/public/assets/skills-pb_3BdOl.js.br +0 -0
  237. package/payload/server/public/assets/skills-pb_3BdOl.js.gz +0 -0
  238. package/payload/server/public/assets/tasks-BQm4boat.js.br +0 -0
  239. package/payload/server/public/assets/tasks-BQm4boat.js.gz +0 -0
  240. package/payload/server/public/assets/triangle-alert-d7yjaIqv.js.br +0 -0
  241. package/payload/server/public/assets/triangle-alert-d7yjaIqv.js.gz +0 -0
  242. package/payload/server/public/assets/useCopyFeedback-CZ6Qhfkj.js.br +0 -0
  243. package/payload/server/public/assets/useCopyFeedback-CZ6Qhfkj.js.gz +0 -0
  244. package/payload/server/public/assets/useMediaQuery-R1smYLx4.js.br +0 -0
  245. package/payload/server/public/assets/useMediaQuery-R1smYLx4.js.gz +0 -0
  246. package/payload/server/public/assets/useVoiceRecorder-DM1v6sRa.js +0 -2
  247. package/payload/server/public/assets/useVoiceRecorder-DM1v6sRa.js.br +0 -0
  248. package/payload/server/public/assets/useVoiceRecorder-DM1v6sRa.js.gz +0 -0
  249. package/payload/server/public/assets/wrench-DL1pbaCs.js.br +0 -0
  250. package/payload/server/public/assets/wrench-DL1pbaCs.js.gz +0 -0
  251. /package/payload/server/public/assets/{jsx-runtime-BtDK2X5t.js → jsx-runtime-B2Q1UOSJ.js} +0 -0
  252. /package/payload/server/public/assets/{jsx-runtime-BtDK2X5t.js.br → jsx-runtime-B2Q1UOSJ.js.br} +0 -0
  253. /package/payload/server/public/assets/{jsx-runtime-BtDK2X5t.js.gz → jsx-runtime-B2Q1UOSJ.js.gz} +0 -0
@@ -0,0 +1,160 @@
1
+ // @vitest-environment node
2
+ // Task 2699 — the classifier that decides whether an errors-only wake is a new
3
+ // outage worth one message or a repeat of the one already reported.
4
+ //
5
+ // Every case is its own test because the two directions fail differently: a
6
+ // classifier that suppresses too much mutes a routine that had real work (the
7
+ // Task 2313 class), and one that suppresses too little re-notifies the operator
8
+ // every fire for the whole duration of a provider outage, which is the defect
9
+ // this task was filed for.
10
+ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
11
+ import { mkdtempSync, mkdirSync, writeFileSync, readFileSync } from "node:fs";
12
+ import { tmpdir } from "node:os";
13
+ import { resolve } from "node:path";
14
+ import { classifyOutage, readOutageMarker, writeOutageMarker, clearOutageMarker, outageSourceSet, } from "../outage-marker.js";
15
+ import { watermarkPath, writeWatermarks, readWatermarks } from "../../tools/scheduling-gate.js";
16
+ const EVENT = "20028fb5-0000-4000-8000-000000000000";
17
+ let lines;
18
+ beforeEach(() => {
19
+ lines = [];
20
+ vi.spyOn(console, "error").mockImplementation((...args) => {
21
+ lines.push(args.join(" "));
22
+ });
23
+ });
24
+ afterEach(() => vi.restoreAllMocks());
25
+ /** A platform root whose sibling `state/` directory the watermark path resolves into. */
26
+ function tempPlatformRoot() {
27
+ const root = mkdtempSync(resolve(tmpdir(), "outage-marker-"));
28
+ const platformRoot = resolve(root, "platform");
29
+ mkdirSync(platformRoot, { recursive: true });
30
+ return platformRoot;
31
+ }
32
+ describe("outageSourceSet", () => {
33
+ it("sorts and deduplicates, so two fires erroring on one mailbox compare equal", () => {
34
+ expect(outageSourceSet([{ source: "b@x" }, { source: "a@x" }, { source: "b@x" }])).toEqual([
35
+ "a@x",
36
+ "b@x",
37
+ ]);
38
+ });
39
+ it("drops an entry carrying no source — a gate server predating this task returns none", () => {
40
+ expect(outageSourceSet([{ source: "a@x" }, {}, { source: undefined }])).toEqual(["a@x"]);
41
+ });
42
+ it("survives an entry that is not an object at all", () => {
43
+ // `gate.plugin`/`gate.tool` can name any tool, and only a `scheduling-gate`
44
+ // binding is probed at write time, so the shape here is not ours to assume.
45
+ // Throwing would break `evaluateGate`'s never-throws contract and take the
46
+ // whole tick down with it.
47
+ expect(outageSourceSet([null, 7, "a@x", { source: "b@x" }])).toEqual(["b@x"]);
48
+ });
49
+ });
50
+ describe("classifyOutage (Task 2699)", () => {
51
+ it("errors-only with no marker reports the outage once", () => {
52
+ expect(classifyOutage(false, ["a@x"], null)).toEqual({
53
+ kind: "outage-report",
54
+ sources: ["a@x"],
55
+ });
56
+ });
57
+ it("errors-only whose source set equals the marker is suppressed", () => {
58
+ expect(classifyOutage(false, ["a@x", "b@x"], ["a@x", "b@x"])).toEqual({
59
+ kind: "outage-suppressed",
60
+ sources: ["a@x", "b@x"],
61
+ });
62
+ });
63
+ it("errors-only whose source set gained a source reports again", () => {
64
+ expect(classifyOutage(false, ["a@x", "b@x"], ["a@x"])).toEqual({
65
+ kind: "outage-report",
66
+ sources: ["a@x", "b@x"],
67
+ });
68
+ });
69
+ it("errors-only whose source set lost a source reports again", () => {
70
+ expect(classifyOutage(false, ["a@x"], ["a@x", "b@x"])).toEqual({
71
+ kind: "outage-report",
72
+ sources: ["a@x"],
73
+ });
74
+ });
75
+ it("genuine work beside an error is never suppressed, and keeps naming the source", () => {
76
+ // The source is carried, not dropped: real work on one check is no evidence
77
+ // that another check's source came back, and clearing here would re-report
78
+ // the same outage on the next quiet fire.
79
+ expect(classifyOutage(true, ["a@x"], ["a@x"])).toEqual({
80
+ kind: "genuine-work",
81
+ sources: ["a@x"],
82
+ });
83
+ });
84
+ it("genuine work with nothing erroring carries an empty set, which is the recovery", () => {
85
+ expect(classifyOutage(true, [], ["a@x"])).toEqual({ kind: "genuine-work", sources: [] });
86
+ });
87
+ it("a wake whose errors name no source is never suppressed", () => {
88
+ // Reachable only from a gate server that returns `errored[]` without the
89
+ // `source` field. An empty set compares equal to nothing, and suppressing on
90
+ // it would mute a routine on evidence the gate never gave.
91
+ expect(classifyOutage(false, [], null)).toEqual({ kind: "genuine-work", sources: [] });
92
+ expect(classifyOutage(false, [], ["a@x"])).toEqual({ kind: "genuine-work", sources: [] });
93
+ });
94
+ });
95
+ describe("the marker on disk", () => {
96
+ it("keeps the original stamp when the same set is recorded again", () => {
97
+ const platformRoot = tempPlatformRoot();
98
+ expect(writeOutageMarker(EVENT, platformRoot, ["a@x"], "2026-08-13T11:45:00.000Z")).toBe(true);
99
+ // A restamp on every accepted wake would reset the age the stale-marker
100
+ // audit measures, and a marker that can never look old is one the standing
101
+ // check can never name.
102
+ expect(writeOutageMarker(EVENT, platformRoot, ["a@x"], "2026-08-13T23:00:00.000Z")).toBe(false);
103
+ expect(readOutageMarker(EVENT, platformRoot)?.at).toBe("2026-08-13T11:45:00.000Z");
104
+ });
105
+ it("restamps when the set changed", () => {
106
+ const platformRoot = tempPlatformRoot();
107
+ writeOutageMarker(EVENT, platformRoot, ["a@x"], "2026-08-13T11:45:00.000Z");
108
+ expect(writeOutageMarker(EVENT, platformRoot, ["a@x", "b@x"], "2026-08-13T23:00:00.000Z")).toBe(true);
109
+ expect(readOutageMarker(EVENT, platformRoot)).toEqual({
110
+ sources: ["a@x", "b@x"],
111
+ at: "2026-08-13T23:00:00.000Z",
112
+ });
113
+ });
114
+ it("round-trips through the watermark file", () => {
115
+ const platformRoot = tempPlatformRoot();
116
+ writeOutageMarker(EVENT, platformRoot, ["a@x"], "2026-08-13T11:45:00.000Z");
117
+ expect(readOutageMarker(EVENT, platformRoot)).toEqual({
118
+ sources: ["a@x"],
119
+ at: "2026-08-13T11:45:00.000Z",
120
+ });
121
+ });
122
+ it("leaves every slot position untouched", () => {
123
+ const platformRoot = tempPlatformRoot();
124
+ writeWatermarks(EVENT, platformRoot, {
125
+ calendar: { digest: "D1" },
126
+ lastCommitAt: "2026-08-13T10:00:00Z",
127
+ });
128
+ writeOutageMarker(EVENT, platformRoot, ["a@x"], "2026-08-13T11:45:00.000Z");
129
+ const marks = readWatermarks(EVENT, platformRoot);
130
+ expect(marks.calendar).toEqual({ digest: "D1" });
131
+ expect(marks.lastCommitAt).toBe("2026-08-13T10:00:00Z");
132
+ expect(marks.outageReported).toEqual({ sources: ["a@x"], at: "2026-08-13T11:45:00.000Z" });
133
+ });
134
+ it("clears the marker and returns the sources it held", () => {
135
+ const platformRoot = tempPlatformRoot();
136
+ writeOutageMarker(EVENT, platformRoot, ["a@x"], "2026-08-13T11:45:00.000Z");
137
+ expect(clearOutageMarker(EVENT, platformRoot)).toEqual(["a@x"]);
138
+ expect(readOutageMarker(EVENT, platformRoot)).toBeNull();
139
+ });
140
+ it("clearing when no marker is held writes nothing and returns null", () => {
141
+ const platformRoot = tempPlatformRoot();
142
+ writeWatermarks(EVENT, platformRoot, { calendar: { digest: "D1" } });
143
+ const before = readFileSync(watermarkPath(EVENT, platformRoot), "utf-8");
144
+ expect(clearOutageMarker(EVENT, platformRoot)).toBeNull();
145
+ expect(readFileSync(watermarkPath(EVENT, platformRoot), "utf-8")).toBe(before);
146
+ });
147
+ it("refuses to write over an unreadable watermark file, so no position is lost", () => {
148
+ const platformRoot = tempPlatformRoot();
149
+ const path = watermarkPath(EVENT, platformRoot);
150
+ mkdirSync(resolve(path, ".."), { recursive: true });
151
+ writeFileSync(path, "{ not json");
152
+ writeOutageMarker(EVENT, platformRoot, ["a@x"], "2026-08-13T11:45:00.000Z");
153
+ expect(readFileSync(path, "utf-8")).toBe("{ not json");
154
+ expect(lines.some((l) => l.includes("op=outage-marker-skipped"))).toBe(true);
155
+ });
156
+ it("reads no marker from a file that has never been written", () => {
157
+ expect(readOutageMarker(EVENT, tempPlatformRoot())).toBeNull();
158
+ });
159
+ });
160
+ //# sourceMappingURL=outage-marker.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outage-marker.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/outage-marker.test.ts"],"names":[],"mappings":"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"}
@@ -100,6 +100,22 @@ describe("closeRoutineRun", () => {
100
100
  httpStatus: 200,
101
101
  });
102
102
  });
103
+ // Task 2699 — a suppressed fire is a gated fire that is NOT "no work": the
104
+ // routine had an unreachable source and the operator was told about it once
105
+ // already. `status` reads `gated` on every operator surface, so this field is
106
+ // where the two are separable at all.
107
+ it("records a suppressed outage fire as gated, distinguishable by dispatchResult", async () => {
108
+ const driver = fakeDriver();
109
+ await closeRoutineRun(driver, "run-2", {
110
+ outcome: "gated",
111
+ dispatchResult: "outage-suppressed",
112
+ });
113
+ expect(driver.runs[0].params).toMatchObject({
114
+ outcome: "gated",
115
+ dispatchResult: "outage-suppressed",
116
+ httpStatus: null,
117
+ });
118
+ });
103
119
  it("is a no-op on a null runId (the open failed or was never taken)", async () => {
104
120
  const driver = fakeDriver();
105
121
  await closeRoutineRun(driver, null, { outcome: "failed" });
@@ -1 +1 @@
1
- {"version":3,"file":"routine-run.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/routine-run.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routine-run.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/routine-run.test.ts"],"names":[],"mappings":"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"}
@@ -64,10 +64,30 @@ export type GateVerdict =
64
64
  * dispatcher to promote once the wake is accepted. Only this arm has them: a
65
65
  * `fail-open` gate read nothing it can vouch for, and advancing on it would
66
66
  * mark work consumed that no probe ever saw.
67
+ *
68
+ * Task 2699 — `outage` is the set of sources that were unreachable on THIS
69
+ * fire, recorded by the dispatcher once the wake is accepted and only then: a
70
+ * refused wake reported nothing to the operator, so it must leave the marker
71
+ * exactly as it was. An empty set is a fire with nothing unreachable, which
72
+ * clears any marker an earlier outage left behind.
73
+ *
74
+ * Carried on a genuine-work wake too. Real work on one check says nothing
75
+ * about another check's source, so clearing the marker whenever anything else
76
+ * delivered would re-report the same outage on the next quiet fire.
67
77
  */
68
78
  {
69
79
  kind: "has-work";
70
80
  observed: GateWatermarks;
81
+ outage: string[];
82
+ }
83
+ /**
84
+ * Task 2699 — an errors-only fire whose unreachable sources are exactly the
85
+ * set already reported. Nothing new happened, so no turn is spent and no
86
+ * message is sent; the caller records the fire and returns.
87
+ */
88
+ | {
89
+ kind: "outage-suppressed";
90
+ sources: string[];
71
91
  } | {
72
92
  kind: "no-work";
73
93
  } | {
@@ -75,6 +95,16 @@ export type GateVerdict =
75
95
  reason: "error" | "timeout" | "no-structured-result";
76
96
  detail: string;
77
97
  };
98
+ /**
99
+ * Task 2699 — the set of unreachable sources last reported for this event, or
100
+ * null when none is held.
101
+ *
102
+ * A reader rather than a direct file read inside `evaluateGate` for the reason
103
+ * `PluginToolCaller` exists: the classification is what the tests are about, and
104
+ * a function that reaches the filesystem needs `PLATFORM_ROOT` and a temp tree
105
+ * to test one boolean.
106
+ */
107
+ export type StoredOutageReader = (eventId: string) => string[] | null;
78
108
  /** Injectable for tests; production passes `callPluginTool`. */
79
109
  export type PluginToolCaller = (plugin: string, tool: string, args: string | null, accountId: string) => Promise<PluginToolCall>;
80
110
  /**
@@ -99,5 +129,5 @@ export type PluginToolCaller = (plugin: string, tool: string, args: string | nul
99
129
  *
100
130
  * Never throws — the sweep's contract. One broken gate must not abort the tick.
101
131
  */
102
- export declare function evaluateGate(gate: EventGate, eventId: string, accountId: string, call?: PluginToolCaller): Promise<GateVerdict>;
132
+ export declare function evaluateGate(gate: EventGate, eventId: string, accountId: string, call?: PluginToolCaller, readStoredOutage?: StoredOutageReader): Promise<GateVerdict>;
103
133
  //# sourceMappingURL=gate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/lib/gate.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAGtC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM;gBAF5B,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,SAAS,GAAG,OAAO,EACzB,WAAW,EAAE,MAAM;CAK/B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,EAAE,MAAM,EAOjB,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACpC,OAAO,CAAC,cAAc,CAAC,CAoFzB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW;AACrB;;;;;GAKG;AACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,sBAAsB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAmBhG,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,gBAAiC,GACtC,OAAO,CAAC,WAAW,CAAC,CAgFtB"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/lib/gate.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAGtC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM;gBAF5B,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,SAAS,GAAG,OAAO,EACzB,WAAW,EAAE,MAAM;CAK/B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,EAAE,MAAM,EAOjB,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACpC,OAAO,CAAC,cAAc,CAAC,CAoFzB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW;AACrB;;;;;;;;;;;;;;;GAeG;AACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE;AAClE;;;;GAIG;GACD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,sBAAsB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAmBhG;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;AAatE,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,gBAAiC,EAKvC,gBAAgB,GAAE,kBAA8C,GAC/D,OAAO,CAAC,WAAW,CAAC,CAqGtB"}
@@ -18,6 +18,7 @@
18
18
  */
19
19
  import { existsSync } from "node:fs";
20
20
  import { resolve } from "node:path";
21
+ import { classifyOutage, outageSourceSet, readOutageMarker } from "./outage-marker.js";
21
22
  /**
22
23
  * The 10-minute ceiling `dispatchAction` has always used. Re-exported here
23
24
  * because `callPluginTool` now owns the timeout for both callers, so a gate and
@@ -156,6 +157,17 @@ function toolErrorText(result) {
156
157
  }
157
158
  return null;
158
159
  }
160
+ /**
161
+ * Production's reader. `PLATFORM_ROOT` is set for the sweep process (it resolves
162
+ * every plugin path from it); if it is somehow absent, the marker reads as
163
+ * absent, which reports the outage again rather than suppressing on nothing.
164
+ */
165
+ const defaultStoredOutageReader = (eventId) => {
166
+ const platformRoot = process.env.PLATFORM_ROOT;
167
+ if (!platformRoot)
168
+ return null;
169
+ return readOutageMarker(eventId, platformRoot)?.sources ?? null;
170
+ };
159
171
  /**
160
172
  * Evaluate one gate and say whether this fire reaches the model.
161
173
  *
@@ -178,7 +190,12 @@ function toolErrorText(result) {
178
190
  *
179
191
  * Never throws — the sweep's contract. One broken gate must not abort the tick.
180
192
  */
181
- export async function evaluateGate(gate, eventId, accountId, call = callPluginTool) {
193
+ export async function evaluateGate(gate, eventId, accountId, call = callPluginTool,
194
+ // Task 2699 — the unreachable-source set last reported for this event, read
195
+ // from its watermark file. Injectable for tests; production reads the file.
196
+ // Consulted only after the gate answered readably, so an unreadable gate
197
+ // touches no marker at all.
198
+ readStoredOutage = defaultStoredOutageReader) {
182
199
  const started = Date.now();
183
200
  const id8 = eventId.slice(0, 8);
184
201
  const failOpen = (reason, detail,
@@ -229,16 +246,37 @@ export async function evaluateGate(gate, eventId, accountId, call = callPluginTo
229
246
  const childLines = call_.childStderr.trimEnd();
230
247
  if (childLines !== "")
231
248
  console.error(childLines);
249
+ // Task 2699 — which half of `hasWork` this is. Absent reads as GENUINE work:
250
+ // a gate server built before this task returns neither field, and an install
251
+ // mid-upgrade must keep firing rather than be suppressed on evidence it never
252
+ // gave. Same direction as every other unreadable case in this function.
253
+ const rawGenuine = call_.result.structuredContent?.genuineWork;
254
+ const genuineWork = typeof rawGenuine === "boolean" ? rawGenuine : true;
255
+ const rawErrored = call_.result.structuredContent?.errored;
256
+ const sources = outageSourceSet(Array.isArray(rawErrored) ? rawErrored : []);
257
+ // The marker is read only for a fire that has work; a quiet fire is decided
258
+ // without it and touches no file.
259
+ const cls = hasWork ? classifyOutage(genuineWork, sources, readStoredOutage(eventId)) : null;
260
+ const className = cls === null ? "no-work" : cls.kind === "genuine-work" ? "has-work" : cls.kind;
261
+ // Task 2699 — the class rides on THIS line rather than one of its own. One
262
+ // line per evaluation is what keeps a fail-open impossible to misread as a
263
+ // gate that answered false, and it is pinned by its own tests. The fail-loud
264
+ // regression signature is `class=outage-suppressed genuineWork=true`, which
265
+ // can never appear: `classifyOutage` answers `genuine-work` whenever
266
+ // `genuineWork` is true.
232
267
  console.error(`[schedule-gate] op=evaluated eventId=${id8} plugin=${gate.plugin} tool=${gate.tool} ` +
233
- `hasWork=${hasWork} ms=${Date.now() - started}`);
234
- if (!hasWork)
268
+ `hasWork=${hasWork} genuineWork=${genuineWork} errored=[${sources.join(",")}] ` +
269
+ `class=${className} ms=${Date.now() - started}`);
270
+ if (!hasWork || cls === null)
235
271
  return { kind: "no-work" };
272
+ if (cls.kind === "outage-suppressed")
273
+ return { kind: "outage-suppressed", sources: cls.sources };
236
274
  // Task 2663 — `{}` when the tool returned no `observed`, which is what a gate
237
275
  // server from a build predating this task answers. That advances nothing, so
238
276
  // an install mid-upgrade reports its work again on the next fire rather than
239
277
  // losing it. Never guessed from `reasons`: a position is a measurement.
240
278
  const raw = call_.result.structuredContent?.observed;
241
279
  const observed = raw !== null && typeof raw === "object" ? raw : {};
242
- return { kind: "has-work", observed };
280
+ return { kind: "has-work", observed, outage: cls.sources };
243
281
  }
244
282
  //# sourceMappingURL=gate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/lib/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/lib/gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Task 2699 — report an unreachable gate source once, not on every fire.
3
+ *
4
+ * A gate check whose source is unreachable counts as work and fires, by design
5
+ * (`scheduling-gate.ts:16-18`): failing closed would silently mute a routine and
6
+ * read healthy on every surface. What was missing is the dedup. On 2026-08-13
7
+ * the privateemail (Namecheap) hosts were unreachable for hours and two
8
+ * quarter-hourly routines woke the model and messaged the operator every 15
9
+ * minutes to say the same mailboxes were down.
10
+ *
11
+ * The unit of comparison is the SET of unreachable sources, not the fact that
12
+ * something errored: a second mailbox going down while the first is still down
13
+ * is new information and must reach the operator, whereas the same set on the
14
+ * next fire is the message already sent.
15
+ *
16
+ * The marker lives inside the event's watermark file rather than beside it, so
17
+ * one event has one state file with one lifecycle. Every write here is a
18
+ * read-modify-write that touches the `outageReported` key alone, so a slot
19
+ * position promoted by `advanceGateMark` in the same tick is never clobbered.
20
+ */
21
+ import { type GateWatermarks } from "../tools/scheduling-gate.js";
22
+ export type OutageMarker = NonNullable<GateWatermarks["outageReported"]>;
23
+ /**
24
+ * What this fire is, given the gate's answer and what was last reported.
25
+ *
26
+ * `genuine-work` and `outage-report` both dispatch. Both carry the sources that
27
+ * are unreachable RIGHT NOW, which is what the dispatcher records once the wake
28
+ * is accepted: an empty set clears the marker, a non-empty one becomes it.
29
+ *
30
+ * `genuine-work` carries them rather than clearing, because real work on one
31
+ * check is no evidence about another check's source. A routine watching one
32
+ * mailbox that is down and one that is delivering would otherwise clear the
33
+ * marker on every delivery and re-report the same outage on the next quiet
34
+ * fire — the every-fire repeat this module exists to stop, in the exact shape
35
+ * of the incident that raised it.
36
+ *
37
+ * `outage-suppressed` does not dispatch at all.
38
+ */
39
+ export type OutageClass = {
40
+ kind: "genuine-work";
41
+ sources: string[];
42
+ } | {
43
+ kind: "outage-report";
44
+ sources: string[];
45
+ } | {
46
+ kind: "outage-suppressed";
47
+ sources: string[];
48
+ };
49
+ /**
50
+ * The comparable form of a gate result's `errored[]`: sorted, deduplicated, and
51
+ * carrying only entries that named a source.
52
+ *
53
+ * Deduplicated because two checks against one mailbox failing is the same
54
+ * unreachable source twice, and a fire that happened to error once against it
55
+ * would otherwise compare unequal to a fire that errored twice. Sorted because
56
+ * `params.checks` order is the author's, and reordering the checks on an event
57
+ * must not read as a new outage.
58
+ */
59
+ export declare function outageSourceSet(errored: unknown[]): string[];
60
+ /**
61
+ * Classify a fire the gate answered `hasWork: true` for. A `hasWork: false` fire
62
+ * never reaches here: it is the ordinary quiet fire, and its caller clears any
63
+ * marker left behind (the recovery path).
64
+ *
65
+ * Fail-loud is the first rule: `genuineWork` — at least one check that did NOT
66
+ * error reported real work — always dispatches, whatever else failed and
67
+ * whatever the marker holds.
68
+ *
69
+ * A wake whose errors name no source is treated as genuine work rather than
70
+ * suppressed. It is reachable only from a gate server built before this task,
71
+ * which returns `errored[]` without `source`; an empty set compares equal to
72
+ * nothing, and muting a routine on evidence the gate never gave is the failure
73
+ * this whole module exists to avoid.
74
+ */
75
+ export declare function classifyOutage(genuineWork: boolean, sources: string[], stored: string[] | null): OutageClass;
76
+ /**
77
+ * The set last reported as unreachable for this event, or null when none is
78
+ * held. An unreadable watermark file reads as no marker, which reports the
79
+ * outage again rather than suppressing on a file nobody could parse.
80
+ */
81
+ export declare function readOutageMarker(eventId: string, platformRoot: string): OutageMarker | null;
82
+ /**
83
+ * Record the set just reported to the operator, stamped with the instant it was
84
+ * reported. The stamp is what `auditStaleOutageMarker` measures age against; a
85
+ * marker with no stamp would leave a never-clearing mute unmeasurable.
86
+ *
87
+ * Skips the write when the watermark file is unreadable, exactly as
88
+ * `advanceGateMark` does: rewriting the file from an empty object would drop
89
+ * every slot position it holds, and the cost of skipping is one more outage
90
+ * report on the next fire.
91
+ */
92
+ export declare function writeOutageMarker(eventId: string, platformRoot: string, sources: string[], at: string): boolean;
93
+ /**
94
+ * Drop the marker and return the sources it held, or null when it held none.
95
+ *
96
+ * The return value is the caller's evidence for `op=outage-cleared`: a clear
97
+ * that found nothing must not print a recovery line, or the log would show a
98
+ * recovery on every quiet fire and the real one could not be found.
99
+ */
100
+ export declare function clearOutageMarker(eventId: string, platformRoot: string): string[] | null;
101
+ //# sourceMappingURL=outage-marker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outage-marker.d.ts","sourceRoot":"","sources":["../../src/lib/outage-marker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAErD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAY5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GACtB,WAAW,CAKb;AAOD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAK3F;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,EAAE,EAAE,MAAM,GACT,OAAO,CAiBT;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CASxF"}