@ashlr/hub 3.13.0 → 3.14.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 (625) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/dist/authority-surface.json +204 -124
  3. package/dist/build-identity.json +2 -2
  4. package/dist/cli/authority.js +112 -18
  5. package/dist/cli/authority.js.map +1 -1
  6. package/dist/cli/comms.d.ts +33 -19
  7. package/dist/cli/comms.js +128 -151
  8. package/dist/cli/comms.js.map +1 -1
  9. package/dist/cli/completions.js +1 -1
  10. package/dist/cli/completions.js.map +1 -1
  11. package/dist/cli/daemon.js +29 -0
  12. package/dist/cli/daemon.js.map +1 -1
  13. package/dist/cli/director.d.ts +8 -12
  14. package/dist/cli/director.js +17 -52
  15. package/dist/cli/director.js.map +1 -1
  16. package/dist/cli/fleet.js +4 -1
  17. package/dist/cli/fleet.js.map +1 -1
  18. package/dist/cli/help.js +1 -0
  19. package/dist/cli/help.js.map +1 -1
  20. package/dist/cli/leader.d.ts +27 -3
  21. package/dist/cli/leader.js +253 -4
  22. package/dist/cli/leader.js.map +1 -1
  23. package/dist/core/authority/server-enforcement.d.ts +110 -0
  24. package/dist/core/authority/server-enforcement.js +260 -0
  25. package/dist/core/authority/server-enforcement.js.map +1 -0
  26. package/dist/core/authority/standing-grant.d.ts +24 -4
  27. package/dist/core/authority/standing-grant.js +19 -3
  28. package/dist/core/authority/standing-grant.js.map +1 -1
  29. package/dist/core/cloud/timeline.js +13 -7
  30. package/dist/core/cloud/timeline.js.map +1 -1
  31. package/dist/core/comms/change-digest.d.ts +130 -0
  32. package/dist/core/comms/change-digest.js +451 -0
  33. package/dist/core/comms/change-digest.js.map +1 -0
  34. package/dist/core/comms/director-prompt.d.ts +4 -5
  35. package/dist/core/comms/director-prompt.js +4 -71
  36. package/dist/core/comms/director-prompt.js.map +1 -1
  37. package/dist/core/comms/director.d.ts +24 -61
  38. package/dist/core/comms/director.js +29 -382
  39. package/dist/core/comms/director.js.map +1 -1
  40. package/dist/core/comms/dispatch.d.ts +37 -12
  41. package/dist/core/comms/dispatch.js +244 -177
  42. package/dist/core/comms/dispatch.js.map +1 -1
  43. package/dist/core/comms/elon-dialogue.d.ts +23 -15
  44. package/dist/core/comms/elon-dialogue.js +36 -307
  45. package/dist/core/comms/elon-dialogue.js.map +1 -1
  46. package/dist/core/comms/fleet-pulse.js +4 -7
  47. package/dist/core/comms/fleet-pulse.js.map +1 -1
  48. package/dist/core/comms/handlers.d.ts +10 -6
  49. package/dist/core/comms/handlers.js +14 -48
  50. package/dist/core/comms/handlers.js.map +1 -1
  51. package/dist/core/comms/migrations.d.ts +47 -0
  52. package/dist/core/comms/migrations.js +125 -0
  53. package/dist/core/comms/migrations.js.map +1 -0
  54. package/dist/core/comms/requests.d.ts +32 -5
  55. package/dist/core/comms/requests.js +101 -5
  56. package/dist/core/comms/requests.js.map +1 -1
  57. package/dist/core/comms/telegram-channel.d.ts +104 -0
  58. package/dist/core/comms/telegram-channel.js +622 -0
  59. package/dist/core/comms/telegram-channel.js.map +1 -0
  60. package/dist/core/comms/telegram-thread-map.d.ts +56 -0
  61. package/dist/core/comms/telegram-thread-map.js +144 -0
  62. package/dist/core/comms/telegram-thread-map.js.map +1 -0
  63. package/dist/core/daemon/capacity-publisher.d.ts +8 -1
  64. package/dist/core/daemon/capacity-publisher.js +40 -2
  65. package/dist/core/daemon/capacity-publisher.js.map +1 -1
  66. package/dist/core/daemon/loop.js +18 -4
  67. package/dist/core/daemon/loop.js.map +1 -1
  68. package/dist/core/daemon/tick-deadline.d.ts +44 -0
  69. package/dist/core/daemon/tick-deadline.js +83 -0
  70. package/dist/core/daemon/tick-deadline.js.map +1 -0
  71. package/dist/core/daemon/tick-hooks.d.ts +7 -0
  72. package/dist/core/daemon/tick-hooks.js.map +1 -1
  73. package/dist/core/daemon/tick-progress.d.ts +39 -0
  74. package/dist/core/daemon/tick-progress.js +194 -0
  75. package/dist/core/daemon/tick-progress.js.map +1 -0
  76. package/dist/core/dashboard.js +3 -1
  77. package/dist/core/dashboard.js.map +1 -1
  78. package/dist/core/fleet/fleet-merge-state.d.ts +6 -0
  79. package/dist/core/fleet/fleet-merge-state.js.map +1 -1
  80. package/dist/core/fleet/host-merge.d.ts +9 -0
  81. package/dist/core/fleet/host-merge.js +13 -2
  82. package/dist/core/fleet/host-merge.js.map +1 -1
  83. package/dist/core/fleet/merge-gates.d.ts +13 -0
  84. package/dist/core/fleet/merge-gates.js +14 -0
  85. package/dist/core/fleet/merge-gates.js.map +1 -1
  86. package/dist/core/fleet/mirrors.d.ts +162 -6
  87. package/dist/core/fleet/mirrors.js +1051 -49
  88. package/dist/core/fleet/mirrors.js.map +1 -1
  89. package/dist/core/fleet/standing-merge-pass.d.ts +8 -0
  90. package/dist/core/fleet/standing-merge-pass.js +72 -1
  91. package/dist/core/fleet/standing-merge-pass.js.map +1 -1
  92. package/dist/core/fleet/status.d.ts +17 -0
  93. package/dist/core/fleet/status.js +22 -0
  94. package/dist/core/fleet/status.js.map +1 -1
  95. package/dist/core/fleet/tick-hooks-live.d.ts +1 -1
  96. package/dist/core/fleet/tick-hooks-live.js +13 -3
  97. package/dist/core/fleet/tick-hooks-live.js.map +1 -1
  98. package/dist/core/git.d.ts +17 -0
  99. package/dist/core/git.js +124 -25
  100. package/dist/core/git.js.map +1 -1
  101. package/dist/core/goals/open-goals.d.ts +47 -0
  102. package/dist/core/goals/open-goals.js +33 -0
  103. package/dist/core/goals/open-goals.js.map +1 -0
  104. package/dist/core/inbox/merge.d.ts +5 -0
  105. package/dist/core/inbox/merge.js +58 -2
  106. package/dist/core/inbox/merge.js.map +1 -1
  107. package/dist/core/integrations/locus.d.ts +28 -0
  108. package/dist/core/integrations/locus.js +155 -30
  109. package/dist/core/integrations/locus.js.map +1 -1
  110. package/dist/core/integrations/telegram-format.d.ts +40 -0
  111. package/dist/core/integrations/telegram-format.js +123 -0
  112. package/dist/core/integrations/telegram-format.js.map +1 -0
  113. package/dist/core/integrations/telegram.d.ts +60 -4
  114. package/dist/core/integrations/telegram.js +161 -28
  115. package/dist/core/integrations/telegram.js.map +1 -1
  116. package/dist/core/mcp-registry.d.ts +12 -0
  117. package/dist/core/mcp-registry.js +70 -0
  118. package/dist/core/mcp-registry.js.map +1 -1
  119. package/dist/core/observability/rollup.d.ts +12 -10
  120. package/dist/core/observability/rollup.js +44 -17
  121. package/dist/core/observability/rollup.js.map +1 -1
  122. package/dist/core/resources/connection-monitor.d.ts +9 -0
  123. package/dist/core/resources/connection-monitor.js +19 -9
  124. package/dist/core/resources/connection-monitor.js.map +1 -1
  125. package/dist/core/resources/quota-refresh-lease.d.ts +17 -0
  126. package/dist/core/resources/quota-refresh-lease.js +34 -1
  127. package/dist/core/resources/quota-refresh-lease.js.map +1 -1
  128. package/dist/core/routing/budget-api.d.ts +7 -1
  129. package/dist/core/routing/budget-api.js +56 -2
  130. package/dist/core/routing/budget-api.js.map +1 -1
  131. package/dist/core/routing/readiness-types.d.ts +82 -0
  132. package/dist/core/routing/readiness-types.js +23 -0
  133. package/dist/core/routing/readiness-types.js.map +1 -0
  134. package/dist/core/routing/readiness.d.ts +103 -0
  135. package/dist/core/routing/readiness.js +480 -0
  136. package/dist/core/routing/readiness.js.map +1 -0
  137. package/dist/core/sandbox/confine.js +22 -1
  138. package/dist/core/sandbox/confine.js.map +1 -1
  139. package/dist/core/sandbox/policy.d.ts +23 -0
  140. package/dist/core/sandbox/policy.js +100 -0
  141. package/dist/core/sandbox/policy.js.map +1 -1
  142. package/dist/core/types.d.ts +13 -0
  143. package/dist/core/types.js.map +1 -1
  144. package/dist/core/universe/builtins/preparation/manifest.json +1 -1
  145. package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +1204 -939
  146. package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +1319 -1054
  147. package/dist/core/usage/frontier-usage.d.ts +20 -2
  148. package/dist/core/usage/frontier-usage.js +75 -17
  149. package/dist/core/usage/frontier-usage.js.map +1 -1
  150. package/dist/core/verse/accounts.d.ts +45 -0
  151. package/dist/core/verse/accounts.js +246 -17
  152. package/dist/core/verse/accounts.js.map +1 -1
  153. package/dist/core/verse/apps-api.js +23 -11
  154. package/dist/core/verse/apps-api.js.map +1 -1
  155. package/dist/core/verse/apps.d.ts +11 -9
  156. package/dist/core/verse/apps.js +2 -2
  157. package/dist/core/verse/apps.js.map +1 -1
  158. package/dist/core/verse/authority-api.d.ts +8 -2
  159. package/dist/core/verse/authority-api.js +40 -5
  160. package/dist/core/verse/authority-api.js.map +1 -1
  161. package/dist/core/verse/autonomy-ladder.d.ts +172 -0
  162. package/dist/core/verse/autonomy-ladder.js +251 -0
  163. package/dist/core/verse/autonomy-ladder.js.map +1 -0
  164. package/dist/core/verse/context-fit.js +7 -5
  165. package/dist/core/verse/context-fit.js.map +1 -1
  166. package/dist/core/verse/control-api.d.ts +23 -1
  167. package/dist/core/verse/control-api.js +117 -10
  168. package/dist/core/verse/control-api.js.map +1 -1
  169. package/dist/core/verse/fleet-live-api.js +13 -5
  170. package/dist/core/verse/fleet-live-api.js.map +1 -1
  171. package/dist/core/verse/folder-io.d.ts +50 -0
  172. package/dist/core/verse/folder-io.js +142 -0
  173. package/dist/core/verse/folder-io.js.map +1 -0
  174. package/dist/core/verse/git-api.js +5 -4
  175. package/dist/core/verse/git-api.js.map +1 -1
  176. package/dist/core/verse/git-ops.d.ts +10 -1
  177. package/dist/core/verse/git-ops.js +18 -2
  178. package/dist/core/verse/git-ops.js.map +1 -1
  179. package/dist/core/verse/github-api.d.ts +1 -1
  180. package/dist/core/verse/github-api.js +5 -4
  181. package/dist/core/verse/github-api.js.map +1 -1
  182. package/dist/core/verse/github-repo.js +118 -14
  183. package/dist/core/verse/github-repo.js.map +1 -1
  184. package/dist/core/verse/leader-api.d.ts +5 -4
  185. package/dist/core/verse/leader-api.js +237 -10
  186. package/dist/core/verse/leader-api.js.map +1 -1
  187. package/dist/core/verse/local-models.d.ts +10 -0
  188. package/dist/core/verse/local-models.js +10 -1
  189. package/dist/core/verse/local-models.js.map +1 -1
  190. package/dist/core/verse/login-path.d.ts +73 -0
  191. package/dist/core/verse/login-path.js +123 -14
  192. package/dist/core/verse/login-path.js.map +1 -1
  193. package/dist/core/verse/mcp-control-api.js +4 -4
  194. package/dist/core/verse/mcp-control-api.js.map +1 -1
  195. package/dist/core/verse/mcp-scope.d.ts +22 -0
  196. package/dist/core/verse/mcp-scope.js +41 -1
  197. package/dist/core/verse/mcp-scope.js.map +1 -1
  198. package/dist/core/verse/mcp-seat-view.d.ts +10 -0
  199. package/dist/core/verse/mcp-seat-view.js +30 -4
  200. package/dist/core/verse/mcp-seat-view.js.map +1 -1
  201. package/dist/core/verse/overnight-api.js +20 -2
  202. package/dist/core/verse/overnight-api.js.map +1 -1
  203. package/dist/core/verse/path-guard.d.ts +24 -0
  204. package/dist/core/verse/path-guard.js +91 -22
  205. package/dist/core/verse/path-guard.js.map +1 -1
  206. package/dist/core/verse/preview-api.js +22 -0
  207. package/dist/core/verse/preview-api.js.map +1 -1
  208. package/dist/core/verse/projects.d.ts +21 -0
  209. package/dist/core/verse/projects.js +82 -0
  210. package/dist/core/verse/projects.js.map +1 -1
  211. package/dist/core/verse/session-controls-api.js +5 -3
  212. package/dist/core/verse/session-controls-api.js.map +1 -1
  213. package/dist/core/verse/session-handoff.d.ts +26 -0
  214. package/dist/core/verse/session-handoff.js +90 -12
  215. package/dist/core/verse/session-handoff.js.map +1 -1
  216. package/dist/core/verse/terminal-api.js +7 -4
  217. package/dist/core/verse/terminal-api.js.map +1 -1
  218. package/dist/core/verse/terminal.js +9 -5
  219. package/dist/core/verse/terminal.js.map +1 -1
  220. package/dist/core/verse/verse-api.js +81 -27
  221. package/dist/core/verse/verse-api.js.map +1 -1
  222. package/dist/core/verse/workspaces.d.ts +51 -0
  223. package/dist/core/verse/workspaces.js +177 -47
  224. package/dist/core/verse/workspaces.js.map +1 -1
  225. package/dist/core/vision/leader-apply.d.ts +40 -0
  226. package/dist/core/vision/leader-apply.js +101 -30
  227. package/dist/core/vision/leader-apply.js.map +1 -1
  228. package/dist/core/vision/leader-cadence.d.ts +114 -0
  229. package/dist/core/vision/leader-cadence.js +127 -0
  230. package/dist/core/vision/leader-cadence.js.map +1 -0
  231. package/dist/core/vision/leader-goal-evidence.d.ts +25 -0
  232. package/dist/core/vision/leader-goal-evidence.js +36 -0
  233. package/dist/core/vision/leader-goal-evidence.js.map +1 -0
  234. package/dist/core/vision/leader-health.d.ts +53 -0
  235. package/dist/core/vision/leader-health.js +92 -0
  236. package/dist/core/vision/leader-health.js.map +1 -0
  237. package/dist/core/vision/leader-operator.d.ts +176 -0
  238. package/dist/core/vision/leader-operator.js +355 -0
  239. package/dist/core/vision/leader-operator.js.map +1 -0
  240. package/dist/core/vision/leader-run-chain.d.ts +41 -0
  241. package/dist/core/vision/leader-run-chain.js +54 -0
  242. package/dist/core/vision/leader-run-chain.js.map +1 -0
  243. package/dist/core/vision/leader-seat-plan.d.ts +68 -0
  244. package/dist/core/vision/leader-seat-plan.js +93 -0
  245. package/dist/core/vision/leader-seat-plan.js.map +1 -0
  246. package/dist/core/vision/leader-seat.d.ts +71 -5
  247. package/dist/core/vision/leader-seat.js +235 -33
  248. package/dist/core/vision/leader-seat.js.map +1 -1
  249. package/dist/core/vision/leader-thread-types.d.ts +104 -0
  250. package/dist/core/vision/leader-thread-types.js +9 -0
  251. package/dist/core/vision/leader-thread-types.js.map +1 -0
  252. package/dist/core/vision/leader-thread.d.ts +138 -0
  253. package/dist/core/vision/leader-thread.js +926 -0
  254. package/dist/core/vision/leader-thread.js.map +1 -0
  255. package/dist/core/vision/leader-types.d.ts +75 -1
  256. package/dist/core/vision/leader.d.ts +88 -18
  257. package/dist/core/vision/leader.js +269 -69
  258. package/dist/core/vision/leader.js.map +1 -1
  259. package/dist/core/web/public/next/assets/{ActionMenu-Dwjk6rUQ.js → ActionMenu-CIiX2X8w.js} +2 -2
  260. package/dist/core/web/public/next/assets/{ActionMenu-Dwjk6rUQ.js.map → ActionMenu-CIiX2X8w.js.map} +1 -1
  261. package/dist/core/web/public/next/assets/Advanced-DHsysoIL.js +2 -0
  262. package/dist/core/web/public/next/assets/{Advanced-cVYTAsfB.js.map → Advanced-DHsysoIL.js.map} +1 -1
  263. package/dist/core/web/public/next/assets/{App-IsaWDsdF.js → App-CMeAocmW.js} +5 -5
  264. package/dist/core/web/public/next/assets/{App-IsaWDsdF.js.map → App-CMeAocmW.js.map} +1 -1
  265. package/dist/core/web/public/next/assets/AppsSection-DISYnMnc.js +2 -0
  266. package/dist/core/web/public/next/assets/{AppsSection-DDqeSrty.js.map → AppsSection-DISYnMnc.js.map} +1 -1
  267. package/dist/core/web/public/next/assets/AreaTrend-DK2Y2TbZ.js +2 -0
  268. package/dist/core/web/public/next/assets/AreaTrend-DK2Y2TbZ.js.map +1 -0
  269. package/dist/core/web/public/next/assets/{AutonomyOffState-CpFYS3tQ.js → AutonomyOffState-CEPSZToP.js} +3 -3
  270. package/dist/core/web/public/next/assets/{AutonomyOffState-CpFYS3tQ.js.map → AutonomyOffState-CEPSZToP.js.map} +1 -1
  271. package/dist/core/web/public/next/assets/AutonomySection-DWc3ciAD.js +2 -0
  272. package/dist/core/web/public/next/assets/{AutonomySection-Dwn8UtOy.js.map → AutonomySection-DWc3ciAD.js.map} +1 -1
  273. package/dist/core/web/public/next/assets/AutonomyStatus-CYaHjJ9U.js +2 -0
  274. package/dist/core/web/public/next/assets/AutonomyStatus-CYaHjJ9U.js.map +1 -0
  275. package/dist/core/web/public/next/assets/{BranchBar-ISZ7xUCj.js → BranchBar-BxhdiIpx.js} +2 -2
  276. package/dist/core/web/public/next/assets/{BranchBar-ISZ7xUCj.js.map → BranchBar-BxhdiIpx.js.map} +1 -1
  277. package/dist/core/web/public/next/assets/{BudgetControl-BARVp-En.js → BudgetControl-C-0KhjRS.js} +2 -2
  278. package/dist/core/web/public/next/assets/{BudgetControl-BARVp-En.js.map → BudgetControl-C-0KhjRS.js.map} +1 -1
  279. package/dist/core/web/public/next/assets/{Button-DtE0rlWD.js → Button-D90dzI_o.js} +2 -2
  280. package/dist/core/web/public/next/assets/{Button-DtE0rlWD.js.map → Button-D90dzI_o.js.map} +1 -1
  281. package/dist/core/web/public/next/assets/{CapacityStrip-DKbKA_Aa.js → CapacityStrip-qKDBC65C.js} +2 -2
  282. package/dist/core/web/public/next/assets/{CapacityStrip-DKbKA_Aa.js.map → CapacityStrip-qKDBC65C.js.map} +1 -1
  283. package/dist/core/web/public/next/assets/ChartFrame-DY-GVUb3.js +2 -0
  284. package/dist/core/web/public/next/assets/ChartFrame-DY-GVUb3.js.map +1 -0
  285. package/dist/core/web/public/next/assets/ChartFrame-DyjmyV8N.css +1 -0
  286. package/dist/core/web/public/next/assets/ChatSection-DlT4QU6a.js +3 -0
  287. package/dist/core/web/public/next/assets/{ChatSection-C9myY4ei.js.map → ChatSection-DlT4QU6a.js.map} +1 -1
  288. package/dist/core/web/public/next/assets/{CloudBudgetForm-CvjK4Oh6.js → CloudBudgetForm-BrNun_Yu.js} +2 -2
  289. package/dist/core/web/public/next/assets/{CloudBudgetForm-CvjK4Oh6.js.map → CloudBudgetForm-BrNun_Yu.js.map} +1 -1
  290. package/dist/core/web/public/next/assets/CommandPalette-C5lDDKN0.js +2 -0
  291. package/dist/core/web/public/next/assets/CommandPalette-C5lDDKN0.js.map +1 -0
  292. package/dist/core/web/public/next/assets/CommandSection-B0xuU-yZ.css +1 -0
  293. package/dist/core/web/public/next/assets/CommandSection-DXFvPgKp.js +3 -0
  294. package/dist/core/web/public/next/assets/CommandSection-DXFvPgKp.js.map +1 -0
  295. package/dist/core/web/public/next/assets/{ConfirmDialog-CLUhzaBj.js → ConfirmDialog-BR4nZQ2D.js} +2 -2
  296. package/dist/core/web/public/next/assets/{ConfirmDialog-CLUhzaBj.js.map → ConfirmDialog-BR4nZQ2D.js.map} +1 -1
  297. package/dist/core/web/public/next/assets/{DeleteChatDialog-C_eDhV8b.js → DeleteChatDialog-BCfP12GH.js} +2 -2
  298. package/dist/core/web/public/next/assets/{DeleteChatDialog-C_eDhV8b.js.map → DeleteChatDialog-BCfP12GH.js.map} +1 -1
  299. package/dist/core/web/public/next/assets/{Dialog-BRd_B9OE.js → Dialog-D3msQlCj.js} +2 -2
  300. package/dist/core/web/public/next/assets/{Dialog-BRd_B9OE.js.map → Dialog-D3msQlCj.js.map} +1 -1
  301. package/dist/core/web/public/next/assets/{DiffPane-Cpr9soB2.js → DiffPane-Ix6hvXlY.js} +2 -2
  302. package/dist/core/web/public/next/assets/{DiffPane-Cpr9soB2.js.map → DiffPane-Ix6hvXlY.js.map} +1 -1
  303. package/dist/core/web/public/next/assets/{DiffViewer-CNwd0W3Q.js → DiffViewer-C4WKsCIe.js} +2 -2
  304. package/dist/core/web/public/next/assets/{DiffViewer-CNwd0W3Q.js.map → DiffViewer-C4WKsCIe.js.map} +1 -1
  305. package/dist/core/web/public/next/assets/DockHost-aWP7liri.js +2 -0
  306. package/dist/core/web/public/next/assets/{DockHost-BcEq2qaS.js.map → DockHost-aWP7liri.js.map} +1 -1
  307. package/dist/core/web/public/next/assets/{EmptyState-DsN1H6MC.js → EmptyState-D2IRy3Cg.js} +2 -2
  308. package/dist/core/web/public/next/assets/{EmptyState-DsN1H6MC.js.map → EmptyState-D2IRy3Cg.js.map} +1 -1
  309. package/dist/core/web/public/next/assets/{Epistemic-fycQTBRO.js → Epistemic-DMr18muX.js} +2 -2
  310. package/dist/core/web/public/next/assets/{Epistemic-fycQTBRO.js.map → Epistemic-DMr18muX.js.map} +1 -1
  311. package/dist/core/web/public/next/assets/{EvidenceTimeline-sCCAdnBK.js → EvidenceTimeline-DXmmz6Fi.js} +2 -2
  312. package/dist/core/web/public/next/assets/{EvidenceTimeline-sCCAdnBK.js.map → EvidenceTimeline-DXmmz6Fi.js.map} +1 -1
  313. package/dist/core/web/public/next/assets/FleetSection-BfplcwFU.js +3 -0
  314. package/dist/core/web/public/next/assets/FleetSection-BfplcwFU.js.map +1 -0
  315. package/dist/core/web/public/next/assets/Funnel-Dh2yVHws.js +2 -0
  316. package/dist/core/web/public/next/assets/Funnel-Dh2yVHws.js.map +1 -0
  317. package/dist/core/web/public/next/assets/{GearTray-CpDt0xwj.js → GearTray-Dt-ee32-.js} +2 -2
  318. package/dist/core/web/public/next/assets/{GearTray-CpDt0xwj.js.map → GearTray-Dt-ee32-.js.map} +1 -1
  319. package/dist/core/web/public/next/assets/GrowthSection-P9EUfGeA.js +2 -0
  320. package/dist/core/web/public/next/assets/{GrowthSection-BvZezOsX.js.map → GrowthSection-P9EUfGeA.js.map} +1 -1
  321. package/dist/core/web/public/next/assets/{HandoffDialog-B1G6gQyk.js → HandoffDialog-CLJQLe7M.js} +2 -2
  322. package/dist/core/web/public/next/assets/{HandoffDialog-B1G6gQyk.js.map → HandoffDialog-CLJQLe7M.js.map} +1 -1
  323. package/dist/core/web/public/next/assets/{Input-CI0yBHmn.js → Input-D_KRJA9V.js} +2 -2
  324. package/dist/core/web/public/next/assets/{Input-CI0yBHmn.js.map → Input-D_KRJA9V.js.map} +1 -1
  325. package/dist/core/web/public/next/assets/LeaderCard-D-7DlJuR.js +2 -0
  326. package/dist/core/web/public/next/assets/LeaderCard-D-7DlJuR.js.map +1 -0
  327. package/dist/core/web/public/next/assets/LeaderCard-DNsbLwY3.css +1 -0
  328. package/dist/core/web/public/next/assets/LeaderConversation-DGZjWI-E.js +2 -0
  329. package/dist/core/web/public/next/assets/LeaderConversation-DGZjWI-E.js.map +1 -0
  330. package/dist/core/web/public/next/assets/LeaderConversation-DPHUTq6W.css +1 -0
  331. package/dist/core/web/public/next/assets/MatrixHeatmap-C7BCG2d7.js +2 -0
  332. package/dist/core/web/public/next/assets/MatrixHeatmap-C7BCG2d7.js.map +1 -0
  333. package/dist/core/web/public/next/assets/McpSection-DGbRcyv8.js +2 -0
  334. package/dist/core/web/public/next/assets/{McpSection-nuXer4K-.js.map → McpSection-DGbRcyv8.js.map} +1 -1
  335. package/dist/core/web/public/next/assets/{MessageMarkdown-BCe4TsXk.js → MessageMarkdown-DFvk06qG.js} +3 -3
  336. package/dist/core/web/public/next/assets/{MessageMarkdown-BCe4TsXk.js.map → MessageMarkdown-DFvk06qG.js.map} +1 -1
  337. package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-DL3LU5kL.js → MessageMarkdownRenderer-BAv4oEUf.js} +2 -2
  338. package/dist/core/web/public/next/assets/{MessageMarkdownRenderer-DL3LU5kL.js.map → MessageMarkdownRenderer-BAv4oEUf.js.map} +1 -1
  339. package/dist/core/web/public/next/assets/{Meter-b69LM0mU.js → Meter-CMj-VafN.js} +2 -2
  340. package/dist/core/web/public/next/assets/{Meter-b69LM0mU.js.map → Meter-CMj-VafN.js.map} +1 -1
  341. package/dist/core/web/public/next/assets/MindSection-C6kLPIjt.js +3 -0
  342. package/dist/core/web/public/next/assets/MindSection-C6kLPIjt.js.map +1 -0
  343. package/dist/core/web/public/next/assets/{MutationTokenDialog-Bm34BNVV.js → MutationTokenDialog-DbnO8aYi.js} +2 -2
  344. package/dist/core/web/public/next/assets/{MutationTokenDialog-Bm34BNVV.js.map → MutationTokenDialog-DbnO8aYi.js.map} +1 -1
  345. package/dist/core/web/public/next/assets/NeedsYouDrawer-crsiX-Nc.js +3 -0
  346. package/dist/core/web/public/next/assets/NeedsYouDrawer-crsiX-Nc.js.map +1 -0
  347. package/dist/core/web/public/next/assets/{NeedsYouList-D5Kk549g.js → NeedsYouList-CCsijdWt.js} +2 -2
  348. package/dist/core/web/public/next/assets/{NeedsYouList-D5Kk549g.js.map → NeedsYouList-CCsijdWt.js.map} +1 -1
  349. package/dist/core/web/public/next/assets/NewChatDialog-BlCHtOIr.js +3 -0
  350. package/dist/core/web/public/next/assets/{NewChatDialog-BqFTWgHU.js.map → NewChatDialog-BlCHtOIr.js.map} +1 -1
  351. package/dist/core/web/public/next/assets/{OnboardingFlow-DcDsguAM.js → OnboardingFlow-Cy9BA9eR.js} +3 -3
  352. package/dist/core/web/public/next/assets/{OnboardingFlow-DcDsguAM.js.map → OnboardingFlow-Cy9BA9eR.js.map} +1 -1
  353. package/dist/core/web/public/next/assets/OnboardingGate-BXpNFoLt.js +3 -0
  354. package/dist/core/web/public/next/assets/{OnboardingGate-BZafM1Vf.js.map → OnboardingGate-BXpNFoLt.js.map} +1 -1
  355. package/dist/core/web/public/next/assets/PreviewPane-COid5A0f.js +2 -0
  356. package/dist/core/web/public/next/assets/{PreviewPane-zT3gK9TD.js.map → PreviewPane-COid5A0f.js.map} +1 -1
  357. package/dist/core/web/public/next/assets/{ProviderLogo-AwHn2sKm.js → ProviderLogo-Cq-CYIwT.js} +2 -2
  358. package/dist/core/web/public/next/assets/{ProviderLogo-AwHn2sKm.js.map → ProviderLogo-Cq-CYIwT.js.map} +1 -1
  359. package/dist/core/web/public/next/assets/{RailStatus-xHrovWvI.js → RailStatus-Co5UB6We.js} +2 -2
  360. package/dist/core/web/public/next/assets/{RailStatus-xHrovWvI.js.map → RailStatus-Co5UB6We.js.map} +1 -1
  361. package/dist/core/web/public/next/assets/{RefreshIndicator-SEFZlMB2.js → RefreshIndicator-DO9ibnSq.js} +2 -2
  362. package/dist/core/web/public/next/assets/{RefreshIndicator-SEFZlMB2.js.map → RefreshIndicator-DO9ibnSq.js.map} +1 -1
  363. package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-Dr2WRgkq.js +7 -0
  364. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-CAxPQ4sZ.js.map → ResourcePoolConsoleApp-Dr2WRgkq.js.map} +1 -1
  365. package/dist/core/web/public/next/assets/ResourcesChrome-CwMnbqI1.js +3 -0
  366. package/dist/core/web/public/next/assets/ResourcesChrome-CwMnbqI1.js.map +1 -0
  367. package/dist/core/web/public/next/assets/ResourcesDrawer-B_Xp_JNc.js +2 -0
  368. package/dist/core/web/public/next/assets/ResourcesDrawer-B_Xp_JNc.js.map +1 -0
  369. package/dist/core/web/public/next/assets/ResourcesDrawer-DrGoO8KG.css +1 -0
  370. package/dist/core/web/public/next/assets/{RouteErrorBoundary-C8WGiixc.js → RouteErrorBoundary-SkNhhUbt.js} +2 -2
  371. package/dist/core/web/public/next/assets/{RouteErrorBoundary-C8WGiixc.js.map → RouteErrorBoundary-SkNhhUbt.js.map} +1 -1
  372. package/dist/core/web/public/next/assets/{RunInCloudAction-1-IPLYhf.js → RunInCloudAction-BXPlZwJQ.js} +2 -2
  373. package/dist/core/web/public/next/assets/{RunInCloudAction-1-IPLYhf.js.map → RunInCloudAction-BXPlZwJQ.js.map} +1 -1
  374. package/dist/core/web/public/next/assets/{SeatSelector-DpwNiX8F.js → SeatSelector-J5R3zDkB.js} +3 -3
  375. package/dist/core/web/public/next/assets/{SeatSelector-DpwNiX8F.js.map → SeatSelector-J5R3zDkB.js.map} +1 -1
  376. package/dist/core/web/public/next/assets/{Segmented-Wt1ATod9.js → Segmented-CGh_-tBb.js} +2 -2
  377. package/dist/core/web/public/next/assets/{Segmented-Wt1ATod9.js.map → Segmented-CGh_-tBb.js.map} +1 -1
  378. package/dist/core/web/public/next/assets/{Select-By-V9lMc.js → Select-CWnmUzs3.js} +2 -2
  379. package/dist/core/web/public/next/assets/{Select-By-V9lMc.js.map → Select-CWnmUzs3.js.map} +1 -1
  380. package/dist/core/web/public/next/assets/{SessionGate-WROS02tK.js → SessionGate-sp4KsnUo.js} +2 -2
  381. package/dist/core/web/public/next/assets/{SessionGate-WROS02tK.js.map → SessionGate-sp4KsnUo.js.map} +1 -1
  382. package/dist/core/web/public/next/assets/{SessionInsightChip-DNUcruwp.js → SessionInsightChip-DLFAzdbi.js} +2 -2
  383. package/dist/core/web/public/next/assets/{SessionInsightChip-DNUcruwp.js.map → SessionInsightChip-DLFAzdbi.js.map} +1 -1
  384. package/dist/core/web/public/next/assets/{SessionSearch-UHtt7a8f.js → SessionSearch-DbFjwR1h.js} +2 -2
  385. package/dist/core/web/public/next/assets/{SessionSearch-UHtt7a8f.js.map → SessionSearch-DbFjwR1h.js.map} +1 -1
  386. package/dist/core/web/public/next/assets/{SettingsSection-Bf74l0Gj.js → SettingsSection-Ch23msJ5.js} +2 -2
  387. package/dist/core/web/public/next/assets/SettingsSection-Ch23msJ5.js.map +1 -0
  388. package/dist/core/web/public/next/assets/{SetupChecklist-CzpEcfOl.js → SetupChecklist-Bd76MBAR.js} +2 -2
  389. package/dist/core/web/public/next/assets/{SetupChecklist-CzpEcfOl.js.map → SetupChecklist-Bd76MBAR.js.map} +1 -1
  390. package/dist/core/web/public/next/assets/ShadowDecisions-C5RAY91f.js +3 -0
  391. package/dist/core/web/public/next/assets/ShadowDecisions-C5RAY91f.js.map +1 -0
  392. package/dist/core/web/public/next/assets/{Sheet-HkBOBMTT.js → Sheet-BZ2AG4Eo.js} +2 -2
  393. package/dist/core/web/public/next/assets/{Sheet-HkBOBMTT.js.map → Sheet-BZ2AG4Eo.js.map} +1 -1
  394. package/dist/core/web/public/next/assets/{ShortcutsOverlay-DiigiT8H.js → ShortcutsOverlay-C8n8y3zf.js} +2 -2
  395. package/dist/core/web/public/next/assets/{ShortcutsOverlay-DiigiT8H.js.map → ShortcutsOverlay-C8n8y3zf.js.map} +1 -1
  396. package/dist/core/web/public/next/assets/Sidebar-DN--cPYN.js +3 -0
  397. package/dist/core/web/public/next/assets/{Sidebar-C9YtBYVZ.js.map → Sidebar-DN--cPYN.js.map} +1 -1
  398. package/dist/core/web/public/next/assets/{Slider-DaEDws-b.js → Slider-KVoJLDD6.js} +2 -2
  399. package/dist/core/web/public/next/assets/{Slider-DaEDws-b.js.map → Slider-KVoJLDD6.js.map} +1 -1
  400. package/dist/core/web/public/next/assets/StatTile-C4KgjltA.js +2 -0
  401. package/dist/core/web/public/next/assets/StatTile-C4KgjltA.js.map +1 -0
  402. package/dist/core/web/public/next/assets/StatTile-CNCqDoPO.css +1 -0
  403. package/dist/core/web/public/next/assets/{StatusBadge-CXG3iNL4.js → StatusBadge-CXsYqmdU.js} +2 -2
  404. package/dist/core/web/public/next/assets/{StatusBadge-CXG3iNL4.js.map → StatusBadge-CXsYqmdU.js.map} +1 -1
  405. package/dist/core/web/public/next/assets/StepBand-BMtVOFpK.js +2 -0
  406. package/dist/core/web/public/next/assets/StepBand-BMtVOFpK.js.map +1 -0
  407. package/dist/core/web/public/next/assets/{Surface-5bNA08tK.js → Surface-BfDmQcKe.js} +2 -2
  408. package/dist/core/web/public/next/assets/{Surface-5bNA08tK.js.map → Surface-BfDmQcKe.js.map} +1 -1
  409. package/dist/core/web/public/next/assets/Swimlane-B9Exxekk.js +2 -0
  410. package/dist/core/web/public/next/assets/Swimlane-B9Exxekk.js.map +1 -0
  411. package/dist/core/web/public/next/assets/Swimlane-Bf4Rjoy9.css +1 -0
  412. package/dist/core/web/public/next/assets/{Switch-BmCzfFnu.js → Switch-9NtO_6Lj.js} +2 -2
  413. package/dist/core/web/public/next/assets/{Switch-BmCzfFnu.js.map → Switch-9NtO_6Lj.js.map} +1 -1
  414. package/dist/core/web/public/next/assets/{Tag-WSUIaMVy.js → Tag-DscCRFcN.js} +2 -2
  415. package/dist/core/web/public/next/assets/{Tag-WSUIaMVy.js.map → Tag-DscCRFcN.js.map} +1 -1
  416. package/dist/core/web/public/next/assets/{TerminalPane-BVFgYX6K.js → TerminalPane-B668-DJW.js} +5 -5
  417. package/dist/core/web/public/next/assets/{TerminalPane-BVFgYX6K.js.map → TerminalPane-B668-DJW.js.map} +1 -1
  418. package/dist/core/web/public/next/assets/UniverseConsoleApp-BUV_brY7.js +2 -0
  419. package/dist/core/web/public/next/assets/{UniverseConsoleApp-BpphLqoz.js.map → UniverseConsoleApp-BUV_brY7.js.map} +1 -1
  420. package/dist/core/web/public/next/assets/{UniverseView-DbpbSMwO.js → UniverseView-DG70zH0W.js} +4 -4
  421. package/dist/core/web/public/next/assets/{UniverseView-DbpbSMwO.js.map → UniverseView-DG70zH0W.js.map} +1 -1
  422. package/dist/core/web/public/next/assets/UsageSection-DY7uOTm1.js +3 -0
  423. package/dist/core/web/public/next/assets/UsageSection-DY7uOTm1.js.map +1 -0
  424. package/dist/core/web/public/next/assets/VerseConsoleApp-CWU6R3By.js +3 -0
  425. package/dist/core/web/public/next/assets/VerseConsoleApp-CWU6R3By.js.map +1 -0
  426. package/dist/core/web/public/next/assets/Workspace-D1nP9BhD.js +10 -0
  427. package/dist/core/web/public/next/assets/{Workspace-RXy0pqp6.js.map → Workspace-D1nP9BhD.js.map} +1 -1
  428. package/dist/core/web/public/next/assets/actions-CY-PjpGc.js +2 -0
  429. package/dist/core/web/public/next/assets/{actions-BZTidCXZ.js.map → actions-CY-PjpGc.js.map} +1 -1
  430. package/dist/core/web/public/next/assets/actions-DkWhhWIg.css +1 -0
  431. package/dist/core/web/public/next/assets/{apps-model-CHO133qt.js → apps-model-Du02KhAf.js} +2 -2
  432. package/dist/core/web/public/next/assets/{apps-model-CHO133qt.js.map → apps-model-Du02KhAf.js.map} +1 -1
  433. package/dist/core/web/public/next/assets/{authority-model-8NeAEwAF.js → authority-model-79SeuKlJ.js} +2 -2
  434. package/dist/core/web/public/next/assets/{authority-model-8NeAEwAF.js.map → authority-model-79SeuKlJ.js.map} +1 -1
  435. package/dist/core/web/public/next/assets/autonomy-ladder-BGWmZzP7.css +1 -0
  436. package/dist/core/web/public/next/assets/autonomy-ladder.module-ArDv4bkr.js +2 -0
  437. package/dist/core/web/public/next/assets/autonomy-ladder.module-ArDv4bkr.js.map +1 -0
  438. package/dist/core/web/public/next/assets/budget-queries-D8QV5XtH.js +2 -0
  439. package/dist/core/web/public/next/assets/{budget-queries-DFF-3ICg.js.map → budget-queries-D8QV5XtH.js.map} +1 -1
  440. package/dist/core/web/public/next/assets/{capacity-strip-model-5ViUgUlP.js → capacity-strip-model-BwZ1ZbkU.js} +2 -2
  441. package/dist/core/web/public/next/assets/{capacity-strip-model-5ViUgUlP.js.map → capacity-strip-model-BwZ1ZbkU.js.map} +1 -1
  442. package/dist/core/web/public/next/assets/charts-BZ50mZD_.js +2 -0
  443. package/dist/core/web/public/next/assets/charts-BZ50mZD_.js.map +1 -0
  444. package/dist/core/web/public/next/assets/charts-ClCB18la.css +1 -0
  445. package/dist/core/web/public/next/assets/{cloud-model-CfRydq8N.js → cloud-model-BDivRMqv.js} +2 -2
  446. package/dist/core/web/public/next/assets/{cloud-model-CfRydq8N.js.map → cloud-model-BDivRMqv.js.map} +1 -1
  447. package/dist/core/web/public/next/assets/{cloud-queries-DmptbjS8.js → cloud-queries-BPQQ5_pJ.js} +2 -2
  448. package/dist/core/web/public/next/assets/{cloud-queries-DmptbjS8.js.map → cloud-queries-BPQQ5_pJ.js.map} +1 -1
  449. package/dist/core/web/public/next/assets/{colors-BZ3a9wFf.js → colors-DvK0wMHH.js} +2 -2
  450. package/dist/core/web/public/next/assets/{colors-BZ3a9wFf.js.map → colors-DvK0wMHH.js.map} +1 -1
  451. package/dist/core/web/public/next/assets/{command-catalog-ffCAijVY.js → command-catalog-BIntSa9l.js} +2 -2
  452. package/dist/core/web/public/next/assets/command-catalog-BIntSa9l.js.map +1 -0
  453. package/dist/core/web/public/next/assets/{context-model-CDeyP0cA.js → context-model-Br8t9jgG.js} +2 -2
  454. package/dist/core/web/public/next/assets/{context-model-CDeyP0cA.js.map → context-model-Br8t9jgG.js.map} +1 -1
  455. package/dist/core/web/public/next/assets/{context-model-Bb15chFt.js → context-model-CokrgEUq.js} +3 -3
  456. package/dist/core/web/public/next/assets/{context-model-Bb15chFt.js.map → context-model-CokrgEUq.js.map} +1 -1
  457. package/dist/core/web/public/next/assets/context-queries-eL3caKVG.js +2 -0
  458. package/dist/core/web/public/next/assets/{context-queries-_9bFWb9v.js.map → context-queries-eL3caKVG.js.map} +1 -1
  459. package/dist/core/web/public/next/assets/{control-queries-CXtmZZH6.js → control-queries-B9K-wmcB.js} +2 -2
  460. package/dist/core/web/public/next/assets/{control-queries-CXtmZZH6.js.map → control-queries-B9K-wmcB.js.map} +1 -1
  461. package/dist/core/web/public/next/assets/{copy-setup-BIp0iaiZ.js → copy-setup-XMgCC5f8.js} +2 -2
  462. package/dist/core/web/public/next/assets/{copy-setup-BIp0iaiZ.js.map → copy-setup-XMgCC5f8.js.map} +1 -1
  463. package/dist/core/web/public/next/assets/{dock-icons-Cc43W7r4.js → dock-icons-BJ6ZqB2t.js} +2 -2
  464. package/dist/core/web/public/next/assets/{dock-icons-Cc43W7r4.js.map → dock-icons-BJ6ZqB2t.js.map} +1 -1
  465. package/dist/core/web/public/next/assets/{fleet-model-DOK8ZtEt.js → fleet-model-BvDR3gjp.js} +2 -2
  466. package/dist/core/web/public/next/assets/{fleet-model-DOK8ZtEt.js.map → fleet-model-BvDR3gjp.js.map} +1 -1
  467. package/dist/core/web/public/next/assets/{fleet-queries-BeEAqD6y.js → fleet-queries-W2UFVMZJ.js} +2 -2
  468. package/dist/core/web/public/next/assets/{fleet-queries-BeEAqD6y.js.map → fleet-queries-W2UFVMZJ.js.map} +1 -1
  469. package/dist/core/web/public/next/assets/{focus-trap-ChZ5EFfM.js → focus-trap-CtI1SlMX.js} +2 -2
  470. package/dist/core/web/public/next/assets/{focus-trap-ChZ5EFfM.js.map → focus-trap-CtI1SlMX.js.map} +1 -1
  471. package/dist/core/web/public/next/assets/{format-BmH2yWL6.js → format-CH4g_sl1.js} +2 -2
  472. package/dist/core/web/public/next/assets/{format-BmH2yWL6.js.map → format-CH4g_sl1.js.map} +1 -1
  473. package/dist/core/web/public/next/assets/{format-DKrNjdwD.js → format-D7nBg2bn.js} +2 -2
  474. package/dist/core/web/public/next/assets/{format-DKrNjdwD.js.map → format-D7nBg2bn.js.map} +1 -1
  475. package/dist/core/web/public/next/assets/{git-model-BFwAVbxF.js → git-model-Dnkd1TnK.js} +2 -2
  476. package/dist/core/web/public/next/assets/{git-model-BFwAVbxF.js.map → git-model-Dnkd1TnK.js.map} +1 -1
  477. package/dist/core/web/public/next/assets/global-CMNW_dqn.js +2 -0
  478. package/dist/core/web/public/next/assets/{global-y_exIyAP.js.map → global-CMNW_dqn.js.map} +1 -1
  479. package/dist/core/web/public/next/assets/guarded-runners-YeAc9wLQ.js +2 -0
  480. package/dist/core/web/public/next/assets/{guarded-runners-Cd4POBtI.js.map → guarded-runners-YeAc9wLQ.js.map} +1 -1
  481. package/dist/core/web/public/next/assets/{icons-CygCEFWs.js → icons-D1sYbCTQ.js} +2 -2
  482. package/dist/core/web/public/next/assets/{icons-CygCEFWs.js.map → icons-D1sYbCTQ.js.map} +1 -1
  483. package/dist/core/web/public/next/assets/{index-CyK31YRm.js → index-DZ-UQ7v8.js} +3 -3
  484. package/dist/core/web/public/next/assets/{index-CyK31YRm.js.map → index-DZ-UQ7v8.js.map} +1 -1
  485. package/dist/core/web/public/next/assets/leader-focus-BjeJv7CW.js +2 -0
  486. package/dist/core/web/public/next/assets/leader-focus-BjeJv7CW.js.map +1 -0
  487. package/dist/core/web/public/next/assets/leader-thread-types-CDb-VPPO.js +2 -0
  488. package/dist/core/web/public/next/assets/leader-thread-types-CDb-VPPO.js.map +1 -0
  489. package/dist/core/web/public/next/assets/{live-model-D7hilYFk.js → live-model-D_32RAOR.js} +2 -2
  490. package/dist/core/web/public/next/assets/{live-model-D7hilYFk.js.map → live-model-D_32RAOR.js.map} +1 -1
  491. package/dist/core/web/public/next/assets/{mind.module-B15k0Y9q.js → mind.module-7hA92hRg.js} +2 -2
  492. package/dist/core/web/public/next/assets/{mind.module-B15k0Y9q.js.map → mind.module-7hA92hRg.js.map} +1 -1
  493. package/dist/core/web/public/next/assets/mutations-DQPbFdRJ.js +2 -0
  494. package/dist/core/web/public/next/assets/{mutations-CWlxEMEm.js.map → mutations-DQPbFdRJ.js.map} +1 -1
  495. package/dist/core/web/public/next/assets/{nav-mimleI0R.js → nav-0dOYe2rJ.js} +2 -2
  496. package/dist/core/web/public/next/assets/{nav-mimleI0R.js.map → nav-0dOYe2rJ.js.map} +1 -1
  497. package/dist/core/web/public/next/assets/{overnight-queries-DJ4mZKSj.js → overnight-queries-C4wOnFtE.js} +2 -2
  498. package/dist/core/web/public/next/assets/{overnight-queries-DJ4mZKSj.js.map → overnight-queries-C4wOnFtE.js.map} +1 -1
  499. package/dist/core/web/public/next/assets/primitives-2A5Eq8FQ.js +1 -0
  500. package/dist/core/web/public/next/assets/{queries-Bw1McHTj.js → queries-BTXWdZzU.js} +2 -2
  501. package/dist/core/web/public/next/assets/{queries-Bw1McHTj.js.map → queries-BTXWdZzU.js.map} +1 -1
  502. package/dist/core/web/public/next/assets/{reasoning-pref-KkhI_5-j.js → reasoning-pref-Ca6lN6x_.js} +2 -2
  503. package/dist/core/web/public/next/assets/{reasoning-pref-KkhI_5-j.js.map → reasoning-pref-Ca6lN6x_.js.map} +1 -1
  504. package/dist/core/web/public/next/assets/{reveal-anchor-CCCx_kfT.js → reveal-anchor-DfNLgK_I.js} +2 -2
  505. package/dist/core/web/public/next/assets/{reveal-anchor-CCCx_kfT.js.map → reveal-anchor-DfNLgK_I.js.map} +1 -1
  506. package/dist/core/web/public/next/assets/seat-subscription-C5uPHBsN.js +2 -0
  507. package/dist/core/web/public/next/assets/{seat-subscription-BhUUz7VL.js.map → seat-subscription-C5uPHBsN.js.map} +1 -1
  508. package/dist/core/web/public/next/assets/{sidebar-model-Dcd437cf.js → sidebar-model-CLCdqwkR.js} +2 -2
  509. package/dist/core/web/public/next/assets/{sidebar-model-Dcd437cf.js.map → sidebar-model-CLCdqwkR.js.map} +1 -1
  510. package/dist/core/web/public/next/assets/{slots-BL_J5mmV.js → slots-C-qBeu-8.js} +3 -3
  511. package/dist/core/web/public/next/assets/{slots-BL_J5mmV.js.map → slots-C-qBeu-8.js.map} +1 -1
  512. package/dist/core/web/public/next/assets/{surface-data-C3UAQ4QX.js → surface-data-Dj71tdD-.js} +2 -2
  513. package/dist/core/web/public/next/assets/{surface-data-C3UAQ4QX.js.map → surface-data-Dj71tdD-.js.map} +1 -1
  514. package/dist/core/web/public/next/assets/surface-prefetch-B0WdJOJG.js +2 -0
  515. package/dist/core/web/public/next/assets/surface-prefetch-B0WdJOJG.js.map +1 -0
  516. package/dist/core/web/public/next/assets/{tasks-model-CzHvclVm.js → tasks-model-O8yR5YXp.js} +2 -2
  517. package/dist/core/web/public/next/assets/{tasks-model-CzHvclVm.js.map → tasks-model-O8yR5YXp.js.map} +1 -1
  518. package/dist/core/web/public/next/assets/{terminal-icons-BwgQTQP0.js → terminal-icons-CoRZq9iO.js} +2 -2
  519. package/dist/core/web/public/next/assets/{terminal-icons-BwgQTQP0.js.map → terminal-icons-CoRZq9iO.js.map} +1 -1
  520. package/dist/core/web/public/next/assets/thread-data-DQB_g66d.js +2 -0
  521. package/dist/core/web/public/next/assets/thread-data-DQB_g66d.js.map +1 -0
  522. package/dist/core/web/public/next/assets/{usage-queries-pXxvy54x.js → usage-queries-AdjEyEtn.js} +2 -2
  523. package/dist/core/web/public/next/assets/{usage-queries-pXxvy54x.js.map → usage-queries-AdjEyEtn.js.map} +1 -1
  524. package/dist/core/web/public/next/assets/{use-guarded-action-EgVWjM5c.js → use-guarded-action-CuuMHeDX.js} +2 -2
  525. package/dist/core/web/public/next/assets/{use-guarded-action-EgVWjM5c.js.map → use-guarded-action-CuuMHeDX.js.map} +1 -1
  526. package/dist/core/web/public/next/assets/{use-ticker-BoqFxRFG.js → use-ticker-BBcp02SZ.js} +2 -2
  527. package/dist/core/web/public/next/assets/{use-ticker-BoqFxRFG.js.map → use-ticker-BBcp02SZ.js.map} +1 -1
  528. package/dist/core/web/public/next/assets/{use-token-gate-DSNIIpI6.js → use-token-gate-CbXVYQYI.js} +2 -2
  529. package/dist/core/web/public/next/assets/{use-token-gate-DSNIIpI6.js.map → use-token-gate-CbXVYQYI.js.map} +1 -1
  530. package/dist/core/web/public/next/assets/{useOnboarding-Bk0VnkxQ.js → useOnboarding-C_Fpe_sH.js} +2 -2
  531. package/dist/core/web/public/next/assets/{useOnboarding-Bk0VnkxQ.js.map → useOnboarding-C_Fpe_sH.js.map} +1 -1
  532. package/dist/core/web/public/next/assets/{useSeatsRefresh-q7Id9RcW.js → useSeatsRefresh-Co1CnxLc.js} +2 -2
  533. package/dist/core/web/public/next/assets/{useSeatsRefresh-q7Id9RcW.js.map → useSeatsRefresh-Co1CnxLc.js.map} +1 -1
  534. package/dist/core/web/public/next/assets/{useVerseTranscript-CqH51rt9.js → useVerseTranscript-DgbigUlV.js} +2 -2
  535. package/dist/core/web/public/next/assets/{useVerseTranscript-CqH51rt9.js.map → useVerseTranscript-DgbigUlV.js.map} +1 -1
  536. package/dist/core/web/public/next/assets/{verse-icons-DsG1dOQx.js → verse-icons-S56hIiXS.js} +2 -2
  537. package/dist/core/web/public/next/assets/{verse-icons-DsG1dOQx.js.map → verse-icons-S56hIiXS.js.map} +1 -1
  538. package/dist/core/web/public/next/assets/verse-model-DAVevkNe.js +2 -0
  539. package/dist/core/web/public/next/assets/{verse-model-JTuvRBVK.js.map → verse-model-DAVevkNe.js.map} +1 -1
  540. package/dist/core/web/public/next/assets/{warmup-Bv1RumVq.js → warmup-B_RAtNZ_.js} +3 -3
  541. package/dist/core/web/public/next/assets/{warmup-Bv1RumVq.js.map → warmup-B_RAtNZ_.js.map} +1 -1
  542. package/dist/core/web/public/next/assets/{why-seat-model-Cau8qG6O.js → why-seat-model-M_r0wX3b.js} +2 -2
  543. package/dist/core/web/public/next/assets/{why-seat-model-Cau8qG6O.js.map → why-seat-model-M_r0wX3b.js.map} +1 -1
  544. package/dist/core/web/public/next/assets/{workspace-model-D-SLfads.js → workspace-model-dji5-Al3.js} +2 -2
  545. package/dist/core/web/public/next/assets/{workspace-model-D-SLfads.js.map → workspace-model-dji5-Al3.js.map} +1 -1
  546. package/dist/core/web/public/next/index.html +1 -1
  547. package/dist/core/web/read-projection-worker.js +2 -1
  548. package/dist/core/web/read-projection-worker.js.map +1 -1
  549. package/dist/core/web/read-projections.d.ts +3 -0
  550. package/dist/core/web/read-projections.js +2 -2
  551. package/dist/core/web/read-projections.js.map +1 -1
  552. package/dist/core/web/visibility.js +3 -4
  553. package/dist/core/web/visibility.js.map +1 -1
  554. package/dist/release-dependency-inventory.json +1 -1
  555. package/package.json +3 -2
  556. package/dist/core/web/public/next/assets/Advanced-cVYTAsfB.js +0 -2
  557. package/dist/core/web/public/next/assets/AppsSection-DDqeSrty.js +0 -2
  558. package/dist/core/web/public/next/assets/AreaTrend-C32rUaxm.js +0 -2
  559. package/dist/core/web/public/next/assets/AreaTrend-C32rUaxm.js.map +0 -1
  560. package/dist/core/web/public/next/assets/AutonomySection-Dwn8UtOy.js +0 -2
  561. package/dist/core/web/public/next/assets/ChartFrame-BVuBe6RP.css +0 -1
  562. package/dist/core/web/public/next/assets/ChartFrame-DK_BDXCt.js +0 -2
  563. package/dist/core/web/public/next/assets/ChartFrame-DK_BDXCt.js.map +0 -1
  564. package/dist/core/web/public/next/assets/ChatSection-C9myY4ei.js +0 -3
  565. package/dist/core/web/public/next/assets/CommandPalette-DzPsth0u.js +0 -2
  566. package/dist/core/web/public/next/assets/CommandPalette-DzPsth0u.js.map +0 -1
  567. package/dist/core/web/public/next/assets/CommandSection-Brp73iox.js +0 -3
  568. package/dist/core/web/public/next/assets/CommandSection-Brp73iox.js.map +0 -1
  569. package/dist/core/web/public/next/assets/CommandSection-CvAVd1w4.css +0 -1
  570. package/dist/core/web/public/next/assets/DockHost-BcEq2qaS.js +0 -2
  571. package/dist/core/web/public/next/assets/FleetSection-BG8iGraG.js +0 -3
  572. package/dist/core/web/public/next/assets/FleetSection-BG8iGraG.js.map +0 -1
  573. package/dist/core/web/public/next/assets/Funnel-B88_wpA4.js +0 -2
  574. package/dist/core/web/public/next/assets/Funnel-B88_wpA4.js.map +0 -1
  575. package/dist/core/web/public/next/assets/GrowthSection-BvZezOsX.js +0 -2
  576. package/dist/core/web/public/next/assets/LeaderCard-BxxiEg4e.js +0 -2
  577. package/dist/core/web/public/next/assets/LeaderCard-BxxiEg4e.js.map +0 -1
  578. package/dist/core/web/public/next/assets/MatrixHeatmap-iPFEU2Tv.js +0 -2
  579. package/dist/core/web/public/next/assets/MatrixHeatmap-iPFEU2Tv.js.map +0 -1
  580. package/dist/core/web/public/next/assets/McpSection-nuXer4K-.js +0 -2
  581. package/dist/core/web/public/next/assets/MindSection-Dc5v5rH3.js +0 -2
  582. package/dist/core/web/public/next/assets/MindSection-Dc5v5rH3.js.map +0 -1
  583. package/dist/core/web/public/next/assets/NeedsYouDrawer-N1cWJjpz.js +0 -3
  584. package/dist/core/web/public/next/assets/NeedsYouDrawer-N1cWJjpz.js.map +0 -1
  585. package/dist/core/web/public/next/assets/NewChatDialog-BqFTWgHU.js +0 -3
  586. package/dist/core/web/public/next/assets/OnboardingGate-BZafM1Vf.js +0 -3
  587. package/dist/core/web/public/next/assets/PreviewPane-zT3gK9TD.js +0 -2
  588. package/dist/core/web/public/next/assets/ResourcePoolConsoleApp-CAxPQ4sZ.js +0 -7
  589. package/dist/core/web/public/next/assets/ResourcesChrome-BnhnEdJe.js +0 -3
  590. package/dist/core/web/public/next/assets/ResourcesChrome-BnhnEdJe.js.map +0 -1
  591. package/dist/core/web/public/next/assets/ResourcesDrawer-BAFGodny.js +0 -2
  592. package/dist/core/web/public/next/assets/ResourcesDrawer-BAFGodny.js.map +0 -1
  593. package/dist/core/web/public/next/assets/ResourcesDrawer-BCFJ2Uq8.css +0 -1
  594. package/dist/core/web/public/next/assets/SettingsSection-Bf74l0Gj.js.map +0 -1
  595. package/dist/core/web/public/next/assets/Sidebar-C9YtBYVZ.js +0 -3
  596. package/dist/core/web/public/next/assets/StatTile-BuLMsJMx.css +0 -1
  597. package/dist/core/web/public/next/assets/StatTile-CTX41O6y.js +0 -2
  598. package/dist/core/web/public/next/assets/StatTile-CTX41O6y.js.map +0 -1
  599. package/dist/core/web/public/next/assets/StepBand-jJTqYIdX.js +0 -2
  600. package/dist/core/web/public/next/assets/StepBand-jJTqYIdX.js.map +0 -1
  601. package/dist/core/web/public/next/assets/Swimlane-LrslsGxw.js +0 -2
  602. package/dist/core/web/public/next/assets/Swimlane-LrslsGxw.js.map +0 -1
  603. package/dist/core/web/public/next/assets/Swimlane-o6_Zsrnr.css +0 -1
  604. package/dist/core/web/public/next/assets/UniverseConsoleApp-BpphLqoz.js +0 -2
  605. package/dist/core/web/public/next/assets/UsageSection-CUlaKtws.js +0 -3
  606. package/dist/core/web/public/next/assets/UsageSection-CUlaKtws.js.map +0 -1
  607. package/dist/core/web/public/next/assets/VerseConsoleApp-DXDv1aOi.js +0 -3
  608. package/dist/core/web/public/next/assets/VerseConsoleApp-DXDv1aOi.js.map +0 -1
  609. package/dist/core/web/public/next/assets/Workspace-RXy0pqp6.js +0 -10
  610. package/dist/core/web/public/next/assets/actions-BZTidCXZ.js +0 -2
  611. package/dist/core/web/public/next/assets/actions-BmIf9avl.css +0 -1
  612. package/dist/core/web/public/next/assets/budget-queries-DFF-3ICg.js +0 -2
  613. package/dist/core/web/public/next/assets/charts-CzxWrZn7.js +0 -2
  614. package/dist/core/web/public/next/assets/charts-CzxWrZn7.js.map +0 -1
  615. package/dist/core/web/public/next/assets/charts-DhKTrQLw.css +0 -1
  616. package/dist/core/web/public/next/assets/command-catalog-ffCAijVY.js.map +0 -1
  617. package/dist/core/web/public/next/assets/context-queries-_9bFWb9v.js +0 -2
  618. package/dist/core/web/public/next/assets/global-y_exIyAP.js +0 -2
  619. package/dist/core/web/public/next/assets/guarded-runners-Cd4POBtI.js +0 -2
  620. package/dist/core/web/public/next/assets/mutations-CWlxEMEm.js +0 -2
  621. package/dist/core/web/public/next/assets/primitives-DMijqcu0.js +0 -1
  622. package/dist/core/web/public/next/assets/seat-subscription-BhUUz7VL.js +0 -2
  623. package/dist/core/web/public/next/assets/surface-prefetch-BXKjPsV5.js +0 -2
  624. package/dist/core/web/public/next/assets/surface-prefetch-BXKjPsV5.js.map +0 -1
  625. package/dist/core/web/public/next/assets/verse-model-JTuvRBVK.js +0 -2
@@ -1,17 +1,27 @@
1
1
  /**
2
- * M137: comms dispatch cycle — send pending requests + poll + match replies.
2
+ * M137 / 3.14: comms dispatch cycle — poll + route replies, then send.
3
3
  *
4
- * runCommsCycle() is the heartbeat:
5
- * 1. If nothing is outstanding and a pending request exists → send the next
6
- * one via sendIMessage, markSent. Reports (type='report') send-and-done.
7
- * 2. Poll inbound replies since the watermark. For each matching numeric reply
8
- * → resolveRequest + invoke the registered resolution handler for its kind.
9
- * 3. Advance the watermark.
4
+ * runCommsCycle() is the heartbeat (launchd ai.ashlr.comms-poll, every 180 s):
5
+ * 0. One-time queue migration (comms/migrations.ts), then TTL expiry.
6
+ * 1. Poll inbound FIRST, so Mason's replies and commands act this cycle —
7
+ * even while comms are paused (otherwise "resume" could never arrive).
8
+ * Telegram routing lives in telegram-channel.ts: keywords, /commands,
9
+ * Leader-button taps, answers to a Leader question, numbered answers to
10
+ * the outstanding button-question, and free text to the Leader thread.
11
+ * 2. Send (skipped while paused):
12
+ * a. informational messages — reports (digests, Leader memos, test
13
+ * pings) and, on Telegram, the Leader thread's pending messages.
14
+ * They NEVER wait for an unanswered question; they are only paced
15
+ * (≥ sendGapMs apart, at most batchCap per cycle).
16
+ * b. the single question slot — a question/approval that expects a
17
+ * numbered answer or a button tap goes out only when no other one is
18
+ * outstanding and the question cooldown has elapsed.
10
19
  *
11
- * Rate limit: won't send another message if one was sent < SEND_COOLDOWN_MS ago.
20
+ * Why the split: before 3.14 every message shared one slot, so a single
21
+ * unanswered June briefing held back 594 rows — including both Leader memos.
12
22
  *
13
- * Expiry: before sending, requests older than cfg.comms.requestTtlHours
14
- * (default 48h) are expired, so an unanswered question cannot block the queue.
23
+ * Expiry: requests older than cfg.comms.requestTtlHours (default 48h) are
24
+ * expired, so an unanswered question cannot block the question slot.
15
25
  *
16
26
  * Resolution handler registry: other modules call registerResolutionHandler(kind, fn)
17
27
  * to receive callbacks when a request of their kind is answered. Best-effort.
@@ -23,12 +33,21 @@ import { homedir } from 'node:os';
23
33
  import { join } from 'node:path';
24
34
  import { sendIMessage } from '../integrations/imessage.js';
25
35
  import { sendTelegramMessage, pollTelegramUpdates, answerCallbackQuery, telegramEnabled, } from '../integrations/telegram.js';
26
- import { handleStrategicMessage } from './elon-dialogue.js';
27
- import { DEFAULT_REQUEST_TTL_HOURS, expireStaleRequests, listRequests, markSent, outstanding, resolveRequest, } from './requests.js';
36
+ import { DEFAULT_REQUEST_TTL_HOURS, expireStaleRequests, listRequests, markReportDelivered, markSent, noteSendFailure, outstanding, resolveRequest, } from './requests.js';
37
+ import { runCommsMigrationsOnce } from './migrations.js';
38
+ import { converseWithLeader, createPacer, drainLeaderThread, handleLeaderButton, handleSlashCommand, LEADER_CALLBACK_PREFIX, paceNext, recordPacedSend, sendReportViaTelegram, } from './telegram-channel.js';
39
+ import { scrubSecrets } from '../util/scrub.js';
28
40
  // ---------------------------------------------------------------------------
29
41
  // Constants
30
42
  // ---------------------------------------------------------------------------
31
- const SEND_COOLDOWN_MS = 30_000; // minimum gap between outbound sends
43
+ /** Minimum gap between two button-QUESTION sends (informational sends are paced separately). */
44
+ const QUESTION_COOLDOWN_MS = 30_000;
45
+ /** Default gap between informational sends within one cycle (Telegram flood limits). */
46
+ export const DEFAULT_SEND_GAP_MS = 3_000;
47
+ /** Default cap on informational sends per cycle; the rest go next cycle. */
48
+ export const DEFAULT_BATCH_CAP = 8;
49
+ /** A report that fails this many sends in a row is expired, so it cannot wedge the queue. */
50
+ const MAX_REPORT_SEND_FAILURES = 3;
32
51
  /** Request TTL in ms from cfg.comms.requestTtlHours; invalid values use the default. */
33
52
  export function commsRequestTtlMs(cfg) {
34
53
  const hours = cfg.comms?.requestTtlHours;
@@ -83,13 +102,9 @@ async function invokeHandler(req) {
83
102
  // best-effort — handler errors must not crash the cycle
84
103
  }
85
104
  }
86
- /**
87
- * Re-load the answered request by id and invoke its resolution handler.
88
- * Extracted from the three identical inline blocks in the Telegram/iMessage paths.
89
- */
105
+ /** Re-load the answered request by id and invoke its resolution handler. */
90
106
  async function reloadAndInvoke(id) {
91
- const { listRequests: lr } = await import('./requests.js');
92
- const resolved = lr({ status: 'answered' }).find((r) => r.id === id);
107
+ const resolved = listRequests({ status: 'answered' }).find((r) => r.id === id);
93
108
  if (resolved) {
94
109
  await invokeHandler(resolved);
95
110
  }
@@ -108,195 +123,247 @@ function formatMessage(req) {
108
123
  const opts = req.options.map((o, i) => `${i + 1}. ${o}`).join(' ');
109
124
  return `${req.text}\n\nReply ${req.options.length === 1 ? '1' : `1-${req.options.length}`}: ${opts}`;
110
125
  }
126
+ /**
127
+ * A numbered answer is a message that is JUST a number ("2", " 2. ").
128
+ * Anything longer is conversation and goes to the Leader — before 3.14 any
129
+ * leading integer ("3 things I want…") was swallowed as an option pick.
130
+ */
131
+ const NUMERIC_ANSWER_RE = /^\s*(\d{1,3})\s*[.)]?\s*$/;
132
+ // ---------------------------------------------------------------------------
133
+ // Telegram inbound
134
+ // ---------------------------------------------------------------------------
135
+ function replyOpts(event) {
136
+ return typeof event.messageId === 'number' ? { replyToMessageId: event.messageId } : undefined;
137
+ }
138
+ /** "revert:<proposalId>:<repo>" — creates a SIGNED REVERT PROPOSAL. Never applies. */
139
+ async function handleRevert(spec, event, cfg) {
140
+ const m = /^\s*revert:([^:]+):(.*)$/i.exec(spec);
141
+ if (!m)
142
+ return;
143
+ const proposalId = (m[1] ?? '').trim();
144
+ const repo = (m[2] ?? '').trim();
145
+ if (!proposalId)
146
+ return;
147
+ try {
148
+ const { buildRevertProposal } = await import('./events.js');
149
+ const proposal = await buildRevertProposal(proposalId, repo || process.cwd(), cfg);
150
+ const text = proposal
151
+ ? `Revert proposal created (pending, not applied): "${proposal.title}" — review at http://localhost:4317/proposals/${proposal.id}`
152
+ : `Could not create revert proposal for "${proposalId}" — see dashboard for details`;
153
+ await sendTelegramMessage(text, replyOpts(event), cfg);
154
+ }
155
+ catch {
156
+ // best-effort
157
+ }
158
+ }
159
+ async function handleTelegramCallback(event, cfg, result) {
160
+ if (event.data?.startsWith(LEADER_CALLBACK_PREFIX)) {
161
+ await handleLeaderButton(event, cfg);
162
+ return;
163
+ }
164
+ if (event.data?.startsWith('revert:')) {
165
+ if (event.callbackQueryId)
166
+ await answerCallbackQuery(event.callbackQueryId, cfg, 'Creating a revert proposal…');
167
+ await handleRevert(event.data, event, cfg);
168
+ return;
169
+ }
170
+ // Button tap on a numbered question: resolve by requestId + optionIndex.
171
+ const out = outstanding();
172
+ if (out &&
173
+ event.requestId === out.id &&
174
+ typeof event.optionIndex === 'number' &&
175
+ event.optionIndex >= 0 &&
176
+ event.optionIndex < out.options.length) {
177
+ resolveRequest(out.id, event.optionIndex);
178
+ // Ack the button tap so Telegram removes the spinner
179
+ if (event.callbackQueryId)
180
+ await answerCallbackQuery(event.callbackQueryId, cfg);
181
+ await reloadAndInvoke(out.id);
182
+ result.resolved++;
183
+ return;
184
+ }
185
+ // A tap on an expired / already-answered question: say so instead of spinning.
186
+ if (event.callbackQueryId)
187
+ await answerCallbackQuery(event.callbackQueryId, cfg, 'That question is no longer open.');
188
+ }
189
+ async function handleTelegramText(event, text, cfg, result) {
190
+ // M212: pause/resume commands (comms soft-pause).
191
+ if (/^\s*pause(\s+fleet)?\s*$/i.test(text)) {
192
+ const { setPause } = await import('./pause.js');
193
+ setPause(true);
194
+ await sendTelegramMessage('⏸ Fleet messages paused. Send "resume" to restart.', replyOpts(event), cfg);
195
+ return;
196
+ }
197
+ if (/^\s*resume(\s+fleet)?\s*$/i.test(text)) {
198
+ const { setPause } = await import('./pause.js');
199
+ setPause(false);
200
+ await sendTelegramMessage('▶️ Fleet resumed.', replyOpts(event), cfg);
201
+ return;
202
+ }
203
+ // M215: "snapshot" / "dashboard" — read-only fleet snapshot.
204
+ if (/^\s*(snapshot|dashboard|status\s+full)\s*$/i.test(text)) {
205
+ try {
206
+ const { buildFleetSnapshot } = await import('./events.js');
207
+ const snapshot = await buildFleetSnapshot(cfg);
208
+ await sendTelegramMessage(snapshot, replyOpts(event), cfg);
209
+ }
210
+ catch {
211
+ // best-effort — never crash the cycle
212
+ }
213
+ return;
214
+ }
215
+ // M215: "revert:<proposalId>:<repo>" typed (or from an old merge button).
216
+ if (/^\s*revert:[^:]+:/i.test(text)) {
217
+ await handleRevert(text, event, cfg);
218
+ return;
219
+ }
220
+ // 3.14: /help /start /status /leader /directives (unknown /x → help).
221
+ if (await handleSlashCommand(event, text, cfg))
222
+ return;
223
+ // A Telegram reply to one of our Leader messages is conversation — even a
224
+ // bare number ("2") answering a Leader question — so it never picks an
225
+ // option of an unrelated outstanding button-question.
226
+ const { lookupTelegramMessage } = await import('./telegram-thread-map.js');
227
+ const repliedTo = lookupTelegramMessage(event.replyToMessageId);
228
+ if (!repliedTo || (!repliedTo.threadId && !repliedTo.memoId)) {
229
+ const out = outstanding();
230
+ const numMatch = out ? NUMERIC_ANSWER_RE.exec(text) : null;
231
+ const num = numMatch ? parseInt(numMatch[1], 10) : NaN;
232
+ if (out && numMatch && num >= 1 && num <= out.options.length) {
233
+ resolveRequest(out.id, num - 1);
234
+ await reloadAndInvoke(out.id);
235
+ result.resolved++;
236
+ return;
237
+ }
238
+ }
239
+ // Everything else is Mason talking to the Leader. Auth: telegram.ts already
240
+ // dropped messages from foreign chat ids, so this path is Mason-only.
241
+ await converseWithLeader(event, text, cfg);
242
+ }
243
+ async function pollTelegram(cfg, result) {
244
+ const { updates } = await pollTelegramUpdates(cfg);
245
+ for (const event of updates ?? []) {
246
+ try {
247
+ if (event.kind === 'callback')
248
+ await handleTelegramCallback(event, cfg, result);
249
+ else if (event.kind === 'text' && event.text)
250
+ await handleTelegramText(event, event.text, cfg, result);
251
+ }
252
+ catch {
253
+ // one bad event must not stop the rest
254
+ }
255
+ }
256
+ }
257
+ // ---------------------------------------------------------------------------
258
+ // Outbound
259
+ // ---------------------------------------------------------------------------
260
+ /** Send every pending report (FIFO), paced. Reports never wait for a question. */
261
+ async function sendReports(cfg, isTelegram, pacer, result) {
262
+ const reports = listRequests({ status: 'pending', type: 'report' });
263
+ for (const next of reports) {
264
+ if (!(await paceNext(pacer)))
265
+ return;
266
+ const ok = isTelegram
267
+ ? await sendReportViaTelegram(next, cfg)
268
+ : (await sendIMessage(scrubSecrets(formatMessage(next)), cfg)).ok;
269
+ recordPacedSend(pacer);
270
+ if (!ok) {
271
+ // Transport is likely down — retry next cycle; a report that keeps
272
+ // failing is expired so it cannot wedge the ones behind it.
273
+ noteSendFailure(next.id, Date.now(), MAX_REPORT_SEND_FAILURES);
274
+ return;
275
+ }
276
+ markReportDelivered(next.id);
277
+ result.sent++;
278
+ await invokeHandler({ ...next, status: 'answered', answerIndex: -1 });
279
+ result.resolved++;
280
+ }
281
+ }
282
+ /** The single question slot: one button-question outstanding at a time. */
283
+ async function sendNextQuestion(cfg, isTelegram, state, nowMs, result) {
284
+ if (outstanding())
285
+ return;
286
+ if (nowMs - state.lastSentMs < QUESTION_COOLDOWN_MS)
287
+ return;
288
+ const next = listRequests({ status: 'pending' }).find((r) => r.type !== 'report');
289
+ if (!next)
290
+ return;
291
+ let sendOk = false;
292
+ if (isTelegram) {
293
+ const tgOpts = next.options.length > 0 ? { buttons: next.options, requestId: next.id } : undefined;
294
+ const { ok } = await sendTelegramMessage(scrubSecrets(next.text), tgOpts, cfg);
295
+ sendOk = ok;
296
+ }
297
+ else {
298
+ const { ok } = await sendIMessage(scrubSecrets(formatMessage(next)), cfg);
299
+ sendOk = ok;
300
+ }
301
+ if (sendOk) {
302
+ markSent(next.id);
303
+ state.lastSentMs = nowMs;
304
+ result.sent++;
305
+ }
306
+ }
111
307
  /**
112
308
  * Run one comms cycle. Never throws.
113
309
  *
114
- * @param cfg AshlrConfig — comms.enabled + comms.imessageHandle must be set.
310
+ * @param cfg AshlrConfig — comms.enabled + a configured channel.
115
311
  */
116
- export async function runCommsCycle(cfg) {
312
+ export async function runCommsCycle(cfg, opts = {}) {
117
313
  const result = { sent: 0, resolved: 0 };
118
- // Select transport based on cfg.comms.channel
119
314
  const isTelegram = telegramEnabled(cfg);
120
- // M212: soft-pause — skip the send/poll cycle when paused (but don't throw)
121
- const { isPaused } = await import('./pause.js');
122
- if (isPaused())
123
- return result;
124
315
  try {
316
+ const { isPaused } = await import('./pause.js');
125
317
  const state = loadState();
126
318
  const now = Date.now();
127
- // ── 0. Expire stale requests so a dead question cannot block the queue ──
319
+ // ── 0. One-time migration, then expire stale requests ─────────────────
320
+ const migration = runCommsMigrationsOnce(now);
321
+ if (migration)
322
+ result.migration = migration;
128
323
  expireStaleRequests(now, commsRequestTtlMs(cfg));
129
- // ── 1. Send next pending (if nothing outstanding + cooldown elapsed) ──────
130
- const current = outstanding();
131
- const cooldownOk = now - state.lastSentMs >= SEND_COOLDOWN_MS;
132
- if (!current && cooldownOk) {
133
- const pending = listRequests({ status: 'pending' });
134
- if (pending.length > 0) {
135
- const next = pending[0];
136
- let sendOk = false;
137
- if (isTelegram) {
138
- // Telegram: send with inline keyboard buttons when the request has options
139
- const tgOpts = next.options.length > 0
140
- ? { buttons: next.options, requestId: next.id }
141
- : undefined;
142
- const { ok } = await sendTelegramMessage(next.text, tgOpts, cfg);
143
- sendOk = ok;
144
- }
145
- else {
146
- // iMessage: format text with numbered options
147
- const text = formatMessage(next);
148
- const { ok } = await sendIMessage(text, cfg);
149
- sendOk = ok;
150
- }
151
- if (sendOk) {
152
- markSent(next.id);
153
- state.lastSentMs = now;
154
- result.sent++;
155
- // Reports are send-and-done — immediately mark answered (no reply needed)
156
- if (next.type === 'report') {
157
- resolveRequest(next.id, -1, '(report delivered)');
158
- await invokeHandler({ ...next, status: 'answered', answerIndex: -1 });
159
- result.resolved++;
160
- }
161
- }
162
- }
163
- }
164
- // ── 2. Poll inbound replies ───────────────────────────────────────────────
324
+ // ── 1. Inbound ────────────────────────────────────────────────────────
165
325
  if (isTelegram) {
166
- // ── Telegram path ─────────────────────────────────────────────────────
167
- const { updates } = await pollTelegramUpdates(cfg);
168
- for (const event of updates) {
169
- if (event.kind === 'callback') {
170
- // Button tap: resolve directly by requestId + optionIndex (no numeric parsing)
171
- const out = outstanding();
172
- if (out &&
173
- event.requestId === out.id &&
174
- typeof event.optionIndex === 'number' &&
175
- event.optionIndex >= 0 &&
176
- event.optionIndex < out.options.length) {
177
- resolveRequest(out.id, event.optionIndex);
178
- // Ack the button tap so Telegram removes the spinner
179
- if (event.callbackQueryId) {
180
- await answerCallbackQuery(event.callbackQueryId, cfg);
181
- }
182
- await reloadAndInvoke(out.id);
183
- result.resolved++;
184
- }
185
- }
186
- else if (event.kind === 'text' && event.text) {
187
- const out = outstanding();
188
- // M212: pause/resume commands
189
- const pauseRe = /^\s*pause(\s+fleet)?\s*$/i;
190
- const resumeRe = /^\s*resume(\s+fleet)?\s*$/i;
191
- if (pauseRe.test(event.text)) {
192
- const { setPause } = await import('./pause.js');
193
- setPause(true);
194
- await sendTelegramMessage('⏸ Fleet paused. Send "resume" to restart.', undefined, cfg);
195
- continue;
196
- }
197
- if (resumeRe.test(event.text)) {
198
- const { setPause } = await import('./pause.js');
199
- setPause(false);
200
- await sendTelegramMessage('▶️ Fleet resumed.', undefined, cfg);
201
- continue;
202
- }
203
- // M215: "snapshot" / "dashboard" command — reply with fleet snapshot.
204
- // Auth: messages from foreign chatIds are already dropped by telegram.ts.
205
- // SAFETY: buildFleetSnapshot is read-only; no merge/push/apply.
206
- const snapshotRe = /^\s*(snapshot|dashboard|status\s+full)\s*$/i;
207
- if (snapshotRe.test(event.text)) {
208
- try {
209
- const { buildFleetSnapshot } = await import('./events.js');
210
- const snapshot = await buildFleetSnapshot(cfg);
211
- await sendTelegramMessage(snapshot, undefined, cfg);
212
- }
213
- catch {
214
- // best-effort — never crash the cycle
215
- }
216
- continue;
217
- }
218
- // M215: "revert:<proposalId>:<repo>" callback from merge inline button.
219
- // Creates a SIGNED REVERT PROPOSAL via regression-sentinel. Never applies.
220
- const revertRe = /^\s*revert:([^:]+):(.*)$/i;
221
- const revertMatch = revertRe.exec(event.text);
222
- if (revertMatch) {
223
- const proposalId = revertMatch[1];
224
- const repo = revertMatch[2];
225
- if (proposalId && proposalId.trim()) {
226
- try {
227
- const { buildRevertProposal } = await import('./events.js');
228
- const proposal = await buildRevertProposal(proposalId.trim(), repo?.trim() || process.cwd(), cfg);
229
- if (proposal) {
230
- await sendTelegramMessage(`Revert proposal created (pending, not applied): "${proposal.title}" — review at http://localhost:4317/proposals/${proposal.id}`, undefined, cfg);
231
- }
232
- else {
233
- await sendTelegramMessage(`Could not create revert proposal for "${proposalId}" — see dashboard for details`, undefined, cfg);
234
- }
235
- }
236
- catch {
237
- // best-effort
238
- }
239
- }
240
- continue;
241
- }
242
- // Text — check if it's a numbered reply to an outstanding request first.
243
- const numMatch = out ? /^\s*(\d+)\b/.exec(event.text) : null;
244
- const num = numMatch ? parseInt(numMatch[1], 10) : NaN;
245
- const isNumericReply = out !== undefined &&
246
- numMatch !== null &&
247
- num >= 1 &&
248
- num <= out.options.length;
249
- if (isNumericReply && out) {
250
- // Numbered reply — resolve the outstanding request as before
251
- const answerIndex = num - 1;
252
- resolveRequest(out.id, answerIndex);
253
- await reloadAndInvoke(out.id);
254
- result.resolved++;
255
- }
256
- else {
257
- // M180: free-form text → strategic dialogue with the Elon agent (Opus).
258
- // Auth: telegram.ts already dropped messages from foreign chatIds before
259
- // this point. This path is Mason-only by construction.
260
- // SAFETY: handleStrategicMessage only sets goals/vision — it cannot
261
- // trigger merge/push/destructive ops (those remain gated by execution floor).
262
- const reply = await handleStrategicMessage(event.text, cfg);
263
- if (reply) {
264
- await sendTelegramMessage(reply, undefined, cfg);
265
- }
266
- }
267
- }
268
- }
269
- // Telegram uses its own offset file — no watermarkMs needed
270
- saveState({ ...state });
326
+ // Polled even while paused, so "resume" (and /status) still work.
327
+ await pollTelegram(cfg, result);
271
328
  }
272
- else {
273
- // ── iMessage path ─────────────────────────────────────────────────────
274
- // Lazy import to allow mocking in tests
329
+ else if (!isPaused()) {
330
+ // iMessage: only numbered answers to the outstanding question.
275
331
  const { pollInboundReplies } = await import('../integrations/imessage.js');
276
332
  const inbound = await pollInboundReplies(state.watermarkMs, cfg);
277
333
  let newWatermark = state.watermarkMs;
278
334
  for (const msg of inbound) {
279
335
  if (msg.ts > newWatermark)
280
336
  newWatermark = msg.ts;
281
- // Only attempt resolution if there's an outstanding question/approval
282
337
  const out = outstanding();
283
338
  if (!out)
284
339
  continue;
285
- // Parse leading integer from the reply text (1-based)
286
340
  const match = /^\s*(\d+)\b/.exec(msg.text);
287
341
  if (!match)
288
342
  continue; // non-numeric — safe start: ignore
289
343
  const num = parseInt(match[1], 10);
290
344
  if (num < 1 || num > out.options.length)
291
345
  continue; // out-of-range
292
- const answerIndex = num - 1; // convert to 0-based
293
- resolveRequest(out.id, answerIndex);
346
+ resolveRequest(out.id, num - 1);
294
347
  await reloadAndInvoke(out.id);
295
348
  result.resolved++;
296
349
  }
297
- // ── 3. Advance watermark ─────────────────────────────────────────────
298
- saveState({ ...state, watermarkMs: newWatermark });
350
+ state.watermarkMs = newWatermark;
351
+ }
352
+ // ── 2. Outbound (held while paused) ───────────────────────────────────
353
+ if (!isPaused()) {
354
+ const pacer = createPacer({
355
+ gapMs: opts.sendGapMs ?? DEFAULT_SEND_GAP_MS,
356
+ batchCap: opts.batchCap ?? DEFAULT_BATCH_CAP,
357
+ ...(opts.sleep ? { sleep: opts.sleep } : {}),
358
+ });
359
+ await sendReports(cfg, isTelegram, pacer, result);
360
+ if (isTelegram) {
361
+ const drained = await drainLeaderThread(cfg, pacer);
362
+ result.sent += drained.sent;
363
+ }
364
+ await sendNextQuestion(cfg, isTelegram, state, now, result);
299
365
  }
366
+ saveState(state);
300
367
  }
301
368
  catch {
302
369
  // top-level safety net — runCommsCycle NEVER throws
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/core/comms/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/core/comms/dispatch.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,33 @@
1
1
  /**
2
- * M180: Elon-agent strategic dialogue.
2
+ * M180 → 3.14: free-form Telegram text reaches the ONE Leader brain.
3
3
  *
4
4
  * handleStrategicMessage(text, cfg) — called when Mason sends a FREE-FORM text
5
5
  * to the Telegram bot (not a numbered/button reply to an outstanding request).
6
6
  *
7
- * The Opus strategist interprets the message and may:
8
- * (a) answer a question,
9
- * (b) take direction → create/reprioritize a GOAL (via goals store),
10
- * (c) evolve the vision.
7
+ * Until 3.14 this module was a second, stateless brain: an "Elon mode"
8
+ * founder prompt, a stale June Strategist briefing as its only context, the
9
+ * Claude CLI first with no budget gate, and model-chosen side effects
10
+ * (create_goal, update_goal_priority, pause/resume) that bypassed the
11
+ * Leader's action pipeline. All of that is gone. The message now goes into
12
+ * the Leader thread (vision/leader-thread.ts), which records it, turns
13
+ * standing guidance into an operator directive, and replies through the
14
+ * Leader's own seat routing and budget gate. The Leader changes nothing from
15
+ * a conversation: it acts only through memo actions under the standing grant.
11
16
  *
12
- * The reply is returned as a string; the caller sends it back via the transport.
17
+ * Kept: the deterministic `status` fast path (read-only, no model).
18
+ * Pause / resume are deterministic commands in comms/dispatch.ts.
13
19
  *
14
- * SAFETY GUARDRAILS (paramount):
15
- * - Authenticated to cfg.comms.telegram.chatId ONLY (Mason). Foreign chatIds
16
- * must be rejected by the caller before reaching here.
17
- * - This module sets DIRECTION (goals / vision) — it does NOT trigger a merge,
18
- * push, applyProposal, or any destructive op. Those remain gated by the
19
- * existing execution safety floor (proposal-only, verification gate,
20
- * kill-switch).
21
- * - Replies are secret-scrubbed before returning.
22
- * - Never throws.
20
+ * DELIVERY: the caller (dispatch.ts) sends the returned text itself, so the
21
+ * thread's queued Telegram copy of the reply is marked delivered here — the
22
+ * outbound drain never sends it twice.
23
+ *
24
+ * SAFETY: callers MUST authenticate chatId before calling here (telegram.ts
25
+ * drops foreign chats). Replies are secret-scrubbed. Never throws.
23
26
  */
24
27
  import type { AshlrConfig } from '../types.js';
28
+ /**
29
+ * Handle a free-form message from Mason on Telegram: the status fast path,
30
+ * or the Leader thread. Returns the text to send back ('' = nothing).
31
+ * Never throws.
32
+ */
25
33
  export declare function handleStrategicMessage(text: string, cfg: AshlrConfig): Promise<string>;