@animalabs/agent-framework 0.32.0 → 0.34.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 (368) hide show
  1. package/README.md +340 -22
  2. package/dist/src/admission/admit.d.ts +18 -0
  3. package/dist/src/admission/admit.d.ts.map +1 -1
  4. package/dist/src/admission/admit.js +16 -3
  5. package/dist/src/admission/admit.js.map +1 -1
  6. package/dist/src/agent.d.ts +208 -80
  7. package/dist/src/agent.d.ts.map +1 -1
  8. package/dist/src/agent.js +345 -113
  9. package/dist/src/agent.js.map +1 -1
  10. package/dist/src/api/mcp-server-core.d.ts.map +1 -1
  11. package/dist/src/api/mcp-server-core.js +50 -12
  12. package/dist/src/api/mcp-server-core.js.map +1 -1
  13. package/dist/src/api/server.d.ts.map +1 -1
  14. package/dist/src/api/server.js +4 -20
  15. package/dist/src/api/server.js.map +1 -1
  16. package/dist/src/append-all.d.ts +5 -0
  17. package/dist/src/append-all.d.ts.map +1 -0
  18. package/dist/src/append-all.js +8 -0
  19. package/dist/src/append-all.js.map +1 -0
  20. package/dist/src/code-execution/isolate/scripts.d.ts +12 -8
  21. package/dist/src/code-execution/isolate/scripts.d.ts.map +1 -1
  22. package/dist/src/code-execution/isolate/scripts.js +24 -0
  23. package/dist/src/code-execution/isolate/scripts.js.map +1 -1
  24. package/dist/src/config-checks.d.ts +7 -0
  25. package/dist/src/config-checks.d.ts.map +1 -1
  26. package/dist/src/config-checks.js +14 -0
  27. package/dist/src/config-checks.js.map +1 -1
  28. package/dist/src/context-manager-errors.d.ts +25 -0
  29. package/dist/src/context-manager-errors.d.ts.map +1 -0
  30. package/dist/src/context-manager-errors.js +31 -0
  31. package/dist/src/context-manager-errors.js.map +1 -0
  32. package/dist/src/context-options.d.ts +70 -0
  33. package/dist/src/context-options.d.ts.map +1 -0
  34. package/dist/src/context-options.js +90 -0
  35. package/dist/src/context-options.js.map +1 -0
  36. package/dist/src/cut-off-round.js +4 -4
  37. package/dist/src/deferred-import.d.ts +93 -0
  38. package/dist/src/deferred-import.d.ts.map +1 -0
  39. package/dist/src/deferred-import.js +177 -0
  40. package/dist/src/deferred-import.js.map +1 -0
  41. package/dist/src/dendrite/audience.d.ts +223 -0
  42. package/dist/src/dendrite/audience.d.ts.map +1 -0
  43. package/dist/src/dendrite/audience.js +202 -0
  44. package/dist/src/dendrite/audience.js.map +1 -0
  45. package/dist/src/dendrite/index.d.ts +5 -3
  46. package/dist/src/dendrite/index.d.ts.map +1 -1
  47. package/dist/src/dendrite/index.js +2 -1
  48. package/dist/src/dendrite/index.js.map +1 -1
  49. package/dist/src/dendrite/presets.d.ts +10 -5
  50. package/dist/src/dendrite/presets.d.ts.map +1 -1
  51. package/dist/src/dendrite/presets.js +17 -5
  52. package/dist/src/dendrite/presets.js.map +1 -1
  53. package/dist/src/dendrite/registry.d.ts +62 -7
  54. package/dist/src/dendrite/registry.d.ts.map +1 -1
  55. package/dist/src/dendrite/registry.js +183 -12
  56. package/dist/src/dendrite/registry.js.map +1 -1
  57. package/dist/src/dendrite/types.d.ts +91 -8
  58. package/dist/src/dendrite/types.d.ts.map +1 -1
  59. package/dist/src/failure-text.d.ts +36 -0
  60. package/dist/src/failure-text.d.ts.map +1 -0
  61. package/dist/src/failure-text.js +89 -0
  62. package/dist/src/failure-text.js.map +1 -0
  63. package/dist/src/foreign-rounds.d.ts +69 -0
  64. package/dist/src/foreign-rounds.d.ts.map +1 -0
  65. package/dist/src/foreign-rounds.js +152 -0
  66. package/dist/src/foreign-rounds.js.map +1 -0
  67. package/dist/src/framework.d.ts +2064 -842
  68. package/dist/src/framework.d.ts.map +1 -1
  69. package/dist/src/framework.js +8586 -3739
  70. package/dist/src/framework.js.map +1 -1
  71. package/dist/src/gate/event-gate.d.ts +125 -21
  72. package/dist/src/gate/event-gate.d.ts.map +1 -1
  73. package/dist/src/gate/event-gate.js +487 -72
  74. package/dist/src/gate/event-gate.js.map +1 -1
  75. package/dist/src/gate/index.d.ts +1 -1
  76. package/dist/src/gate/index.d.ts.map +1 -1
  77. package/dist/src/gate/index.js.map +1 -1
  78. package/dist/src/gate/reply-judge.d.ts +4 -0
  79. package/dist/src/gate/reply-judge.d.ts.map +1 -1
  80. package/dist/src/gate/reply-judge.js +12 -3
  81. package/dist/src/gate/reply-judge.js.map +1 -1
  82. package/dist/src/gate/rule-scope.d.ts +30 -0
  83. package/dist/src/gate/rule-scope.d.ts.map +1 -0
  84. package/dist/src/gate/rule-scope.js +41 -0
  85. package/dist/src/gate/rule-scope.js.map +1 -0
  86. package/dist/src/gate/suppress-script-worker.d.ts +2 -0
  87. package/dist/src/gate/suppress-script-worker.d.ts.map +1 -0
  88. package/dist/src/gate/suppress-script-worker.js +103 -0
  89. package/dist/src/gate/suppress-script-worker.js.map +1 -0
  90. package/dist/src/gate/suppress-scripts.d.ts +105 -0
  91. package/dist/src/gate/suppress-scripts.d.ts.map +1 -0
  92. package/dist/src/gate/suppress-scripts.js +403 -0
  93. package/dist/src/gate/suppress-scripts.js.map +1 -0
  94. package/dist/src/gate/suppression-review.d.ts +143 -0
  95. package/dist/src/gate/suppression-review.d.ts.map +1 -0
  96. package/dist/src/gate/suppression-review.js +463 -0
  97. package/dist/src/gate/suppression-review.js.map +1 -0
  98. package/dist/src/gate/suppression-stats.d.ts +125 -0
  99. package/dist/src/gate/suppression-stats.d.ts.map +1 -0
  100. package/dist/src/gate/suppression-stats.js +214 -0
  101. package/dist/src/gate/suppression-stats.js.map +1 -0
  102. package/dist/src/gate/types.d.ts +142 -7
  103. package/dist/src/gate/types.d.ts.map +1 -1
  104. package/dist/src/gate/wake-onboarding.d.ts +119 -0
  105. package/dist/src/gate/wake-onboarding.d.ts.map +1 -0
  106. package/dist/src/gate/wake-onboarding.js +277 -0
  107. package/dist/src/gate/wake-onboarding.js.map +1 -0
  108. package/dist/src/heartbeat/heartbeat.js +1 -1
  109. package/dist/src/heartbeat/heartbeat.js.map +1 -1
  110. package/dist/src/held-writes.d.ts +31 -23
  111. package/dist/src/held-writes.d.ts.map +1 -1
  112. package/dist/src/held-writes.js +44 -59
  113. package/dist/src/held-writes.js.map +1 -1
  114. package/dist/src/index.d.ts +6 -2
  115. package/dist/src/index.d.ts.map +1 -1
  116. package/dist/src/index.js +4 -0
  117. package/dist/src/index.js.map +1 -1
  118. package/dist/src/inference-bounds.d.ts +2 -1
  119. package/dist/src/inference-bounds.d.ts.map +1 -1
  120. package/dist/src/inference-bounds.js +9 -6
  121. package/dist/src/inference-bounds.js.map +1 -1
  122. package/dist/src/jsonrpc-envelope.d.ts +69 -0
  123. package/dist/src/jsonrpc-envelope.d.ts.map +1 -0
  124. package/dist/src/jsonrpc-envelope.js +66 -0
  125. package/dist/src/jsonrpc-envelope.js.map +1 -0
  126. package/dist/src/mcpl/channel-registry.d.ts +188 -28
  127. package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
  128. package/dist/src/mcpl/channel-registry.js +426 -70
  129. package/dist/src/mcpl/channel-registry.js.map +1 -1
  130. package/dist/src/mcpl/checkpoint-manager.d.ts +2 -4
  131. package/dist/src/mcpl/checkpoint-manager.d.ts.map +1 -1
  132. package/dist/src/mcpl/checkpoint-manager.js.map +1 -1
  133. package/dist/src/mcpl/feature-set-manager.d.ts +2 -4
  134. package/dist/src/mcpl/feature-set-manager.d.ts.map +1 -1
  135. package/dist/src/mcpl/feature-set-manager.js.map +1 -1
  136. package/dist/src/mcpl/inbound-source.d.ts +2 -1
  137. package/dist/src/mcpl/inbound-source.d.ts.map +1 -1
  138. package/dist/src/mcpl/inbound-source.js +2 -1
  139. package/dist/src/mcpl/inbound-source.js.map +1 -1
  140. package/dist/src/mcpl/inference-router.d.ts +6 -6
  141. package/dist/src/mcpl/inference-router.d.ts.map +1 -1
  142. package/dist/src/mcpl/inference-router.js.map +1 -1
  143. package/dist/src/mcpl/modern-connection.d.ts +109 -15
  144. package/dist/src/mcpl/modern-connection.d.ts.map +1 -1
  145. package/dist/src/mcpl/modern-connection.js +593 -86
  146. package/dist/src/mcpl/modern-connection.js.map +1 -1
  147. package/dist/src/mcpl/protocol-family.d.ts +3 -1
  148. package/dist/src/mcpl/protocol-family.d.ts.map +1 -1
  149. package/dist/src/mcpl/protocol-family.js +15 -9
  150. package/dist/src/mcpl/protocol-family.js.map +1 -1
  151. package/dist/src/mcpl/push-coalescer.d.ts +132 -22
  152. package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
  153. package/dist/src/mcpl/push-coalescer.js +105 -15
  154. package/dist/src/mcpl/push-coalescer.js.map +1 -1
  155. package/dist/src/mcpl/push-handler.d.ts +9 -7
  156. package/dist/src/mcpl/push-handler.d.ts.map +1 -1
  157. package/dist/src/mcpl/push-handler.js.map +1 -1
  158. package/dist/src/mcpl/server-connection.d.ts +50 -28
  159. package/dist/src/mcpl/server-connection.d.ts.map +1 -1
  160. package/dist/src/mcpl/server-connection.js +165 -72
  161. package/dist/src/mcpl/server-connection.js.map +1 -1
  162. package/dist/src/mcpl/tool-classes.d.ts.map +1 -1
  163. package/dist/src/mcpl/tool-classes.js +3 -0
  164. package/dist/src/mcpl/tool-classes.js.map +1 -1
  165. package/dist/src/mcpl/tool-presence.d.ts.map +1 -1
  166. package/dist/src/mcpl/tool-presence.js +10 -6
  167. package/dist/src/mcpl/tool-presence.js.map +1 -1
  168. package/dist/src/mcpl/toolset-host.d.ts.map +1 -1
  169. package/dist/src/mcpl/toolset-host.js +7 -6
  170. package/dist/src/mcpl/toolset-host.js.map +1 -1
  171. package/dist/src/mcpl/toolsets-module.d.ts.map +1 -1
  172. package/dist/src/mcpl/toolsets-module.js +2 -1
  173. package/dist/src/mcpl/toolsets-module.js.map +1 -1
  174. package/dist/src/mcpl/types.d.ts +33 -6
  175. package/dist/src/mcpl/types.d.ts.map +1 -1
  176. package/dist/src/mcpl/types.js.map +1 -1
  177. package/dist/src/module-registry.d.ts +24 -1
  178. package/dist/src/module-registry.d.ts.map +1 -1
  179. package/dist/src/module-registry.js +68 -18
  180. package/dist/src/module-registry.js.map +1 -1
  181. package/dist/src/modules/discord/index.d.ts +45 -8
  182. package/dist/src/modules/discord/index.d.ts.map +1 -1
  183. package/dist/src/modules/discord/index.js +238 -87
  184. package/dist/src/modules/discord/index.js.map +1 -1
  185. package/dist/src/modules/health/index.js +2 -2
  186. package/dist/src/modules/health/index.js.map +1 -1
  187. package/dist/src/modules/history/index.d.ts +59 -0
  188. package/dist/src/modules/history/index.d.ts.map +1 -1
  189. package/dist/src/modules/history/index.js +432 -67
  190. package/dist/src/modules/history/index.js.map +1 -1
  191. package/dist/src/modules/history/semantic.d.ts +6 -5
  192. package/dist/src/modules/history/semantic.d.ts.map +1 -1
  193. package/dist/src/modules/history/semantic.js +18 -25
  194. package/dist/src/modules/history/semantic.js.map +1 -1
  195. package/dist/src/modules/workspace/disk-agreement.d.ts +1 -1
  196. package/dist/src/modules/workspace/disk-agreement.js +1 -1
  197. package/dist/src/modules/workspace/index.d.ts +28 -7
  198. package/dist/src/modules/workspace/index.d.ts.map +1 -1
  199. package/dist/src/modules/workspace/index.js +80 -25
  200. package/dist/src/modules/workspace/index.js.map +1 -1
  201. package/dist/src/modules/workspace/observe.d.ts.map +1 -1
  202. package/dist/src/modules/workspace/observe.js +2 -1
  203. package/dist/src/modules/workspace/observe.js.map +1 -1
  204. package/dist/src/modules/workspace/reconcile.d.ts.map +1 -1
  205. package/dist/src/modules/workspace/reconcile.js +3 -2
  206. package/dist/src/modules/workspace/reconcile.js.map +1 -1
  207. package/dist/src/notice-tags.d.ts +20 -9
  208. package/dist/src/notice-tags.d.ts.map +1 -1
  209. package/dist/src/notice-tags.js +20 -9
  210. package/dist/src/notice-tags.js.map +1 -1
  211. package/dist/src/operator-log.d.ts +36 -3
  212. package/dist/src/operator-log.d.ts.map +1 -1
  213. package/dist/src/operator-log.js +2 -2
  214. package/dist/src/operator-log.js.map +1 -1
  215. package/dist/src/presentation.d.ts +747 -0
  216. package/dist/src/presentation.d.ts.map +1 -0
  217. package/dist/src/presentation.js +1437 -0
  218. package/dist/src/presentation.js.map +1 -0
  219. package/dist/src/prose-drafts.d.ts +15 -11
  220. package/dist/src/prose-drafts.d.ts.map +1 -1
  221. package/dist/src/prose-drafts.js +16 -12
  222. package/dist/src/prose-drafts.js.map +1 -1
  223. package/dist/src/read-marks.d.ts +192 -0
  224. package/dist/src/read-marks.d.ts.map +1 -0
  225. package/dist/src/read-marks.js +242 -0
  226. package/dist/src/read-marks.js.map +1 -0
  227. package/dist/src/reasoning-loss.d.ts +5 -0
  228. package/dist/src/reasoning-loss.d.ts.map +1 -0
  229. package/dist/src/reasoning-loss.js +8 -0
  230. package/dist/src/reasoning-loss.js.map +1 -0
  231. package/dist/src/recovery/offline-branch.d.ts +91 -6
  232. package/dist/src/recovery/offline-branch.d.ts.map +1 -1
  233. package/dist/src/recovery/offline-branch.js +277 -32
  234. package/dist/src/recovery/offline-branch.js.map +1 -1
  235. package/dist/src/recovery/recover-cli.js +24 -4
  236. package/dist/src/recovery/recover-cli.js.map +1 -1
  237. package/dist/src/send-tools.d.ts +5 -9
  238. package/dist/src/send-tools.d.ts.map +1 -1
  239. package/dist/src/send-tools.js +40 -7
  240. package/dist/src/send-tools.js.map +1 -1
  241. package/dist/src/sent-rows.js +1 -1
  242. package/dist/src/stored-injections.d.ts +2 -2
  243. package/dist/src/stored-injections.js +2 -2
  244. package/dist/src/stored-removal.d.ts +17 -4
  245. package/dist/src/stored-removal.d.ts.map +1 -1
  246. package/dist/src/stored-removal.js +29 -5
  247. package/dist/src/stored-removal.js.map +1 -1
  248. package/dist/src/supplied-text.d.ts +1 -1
  249. package/dist/src/supplied-text.js +3 -3
  250. package/dist/src/supplied-text.js.map +1 -1
  251. package/dist/src/thinking-drops.d.ts +2 -0
  252. package/dist/src/thinking-drops.d.ts.map +1 -1
  253. package/dist/src/thinking-drops.js.map +1 -1
  254. package/dist/src/tool-presentation.d.ts.map +1 -1
  255. package/dist/src/tool-presentation.js +38 -9
  256. package/dist/src/tool-presentation.js.map +1 -1
  257. package/dist/src/tool-result-guard.d.ts +12 -1
  258. package/dist/src/tool-result-guard.d.ts.map +1 -1
  259. package/dist/src/tool-result-guard.js +42 -8
  260. package/dist/src/tool-result-guard.js.map +1 -1
  261. package/dist/src/tune-out/coordinator.d.ts +1170 -81
  262. package/dist/src/tune-out/coordinator.d.ts.map +1 -1
  263. package/dist/src/tune-out/coordinator.js +3732 -369
  264. package/dist/src/tune-out/coordinator.js.map +1 -1
  265. package/dist/src/tune-out/tools.d.ts +114 -17
  266. package/dist/src/tune-out/tools.d.ts.map +1 -1
  267. package/dist/src/tune-out/tools.js +89 -28
  268. package/dist/src/tune-out/tools.js.map +1 -1
  269. package/dist/src/tune-out/window-anchor.d.ts +143 -0
  270. package/dist/src/tune-out/window-anchor.d.ts.map +1 -0
  271. package/dist/src/tune-out/window-anchor.js +202 -0
  272. package/dist/src/tune-out/window-anchor.js.map +1 -0
  273. package/dist/src/types/agent.d.ts +121 -25
  274. package/dist/src/types/agent.d.ts.map +1 -1
  275. package/dist/src/types/events.d.ts +2 -0
  276. package/dist/src/types/events.d.ts.map +1 -1
  277. package/dist/src/types/framework.d.ts +72 -17
  278. package/dist/src/types/framework.d.ts.map +1 -1
  279. package/dist/src/types/inference-log.d.ts +1 -0
  280. package/dist/src/types/inference-log.d.ts.map +1 -1
  281. package/dist/src/types/module.d.ts +180 -69
  282. package/dist/src/types/module.d.ts.map +1 -1
  283. package/dist/src/types/trace.d.ts +573 -39
  284. package/dist/src/types/trace.d.ts.map +1 -1
  285. package/package.json +4 -4
  286. package/src/admission/admit.ts +32 -3
  287. package/src/agent.ts +392 -132
  288. package/src/api/mcp-server-core.ts +54 -17
  289. package/src/api/server.ts +4 -23
  290. package/src/append-all.ts +6 -0
  291. package/src/code-execution/isolate/scripts.ts +28 -3
  292. package/src/config-checks.ts +14 -0
  293. package/src/context-manager-errors.ts +37 -0
  294. package/src/context-options.ts +106 -0
  295. package/src/cut-off-round.ts +4 -4
  296. package/src/deferred-import.ts +239 -0
  297. package/src/dendrite/audience.ts +315 -0
  298. package/src/dendrite/index.ts +14 -2
  299. package/src/dendrite/presets.ts +18 -6
  300. package/src/dendrite/registry.ts +213 -14
  301. package/src/dendrite/types.ts +92 -8
  302. package/src/failure-text.ts +88 -0
  303. package/src/foreign-rounds.ts +199 -0
  304. package/src/framework.ts +8796 -3813
  305. package/src/gate/event-gate.ts +518 -91
  306. package/src/gate/index.ts +3 -0
  307. package/src/gate/reply-judge.ts +12 -3
  308. package/src/gate/rule-scope.ts +45 -0
  309. package/src/gate/suppress-script-worker.ts +89 -0
  310. package/src/gate/suppress-scripts.ts +414 -0
  311. package/src/gate/suppression-review.ts +517 -0
  312. package/src/gate/suppression-stats.ts +314 -0
  313. package/src/gate/types.ts +148 -7
  314. package/src/gate/wake-onboarding.ts +309 -0
  315. package/src/heartbeat/heartbeat.ts +1 -1
  316. package/src/held-writes.ts +49 -60
  317. package/src/index.ts +10 -2
  318. package/src/inference-bounds.ts +11 -6
  319. package/src/jsonrpc-envelope.ts +81 -0
  320. package/src/mcpl/channel-registry.ts +513 -116
  321. package/src/mcpl/checkpoint-manager.ts +3 -2
  322. package/src/mcpl/feature-set-manager.ts +2 -1
  323. package/src/mcpl/inbound-source.ts +2 -1
  324. package/src/mcpl/inference-router.ts +7 -4
  325. package/src/mcpl/modern-connection.ts +629 -91
  326. package/src/mcpl/protocol-family.ts +15 -9
  327. package/src/mcpl/push-coalescer.ts +193 -34
  328. package/src/mcpl/push-handler.ts +10 -5
  329. package/src/mcpl/server-connection.ts +169 -75
  330. package/src/mcpl/tool-classes.ts +3 -0
  331. package/src/mcpl/tool-presence.ts +10 -5
  332. package/src/mcpl/toolset-host.ts +7 -6
  333. package/src/mcpl/toolsets-module.ts +2 -1
  334. package/src/mcpl/types.ts +33 -6
  335. package/src/module-registry.ts +73 -17
  336. package/src/modules/discord/index.ts +230 -82
  337. package/src/modules/health/index.ts +2 -2
  338. package/src/modules/history/index.ts +439 -70
  339. package/src/modules/history/semantic.ts +18 -24
  340. package/src/modules/workspace/disk-agreement.ts +1 -1
  341. package/src/modules/workspace/index.ts +89 -26
  342. package/src/modules/workspace/observe.ts +2 -1
  343. package/src/modules/workspace/reconcile.ts +3 -2
  344. package/src/notice-tags.ts +21 -9
  345. package/src/operator-log.ts +36 -3
  346. package/src/presentation.ts +1678 -0
  347. package/src/prose-drafts.ts +16 -12
  348. package/src/read-marks.ts +328 -0
  349. package/src/reasoning-loss.ts +7 -0
  350. package/src/recovery/offline-branch.ts +350 -35
  351. package/src/recovery/recover-cli.ts +23 -4
  352. package/src/send-tools.ts +40 -7
  353. package/src/sent-rows.ts +1 -1
  354. package/src/stored-injections.ts +2 -2
  355. package/src/stored-removal.ts +31 -7
  356. package/src/supplied-text.ts +3 -3
  357. package/src/thinking-drops.ts +2 -0
  358. package/src/tool-presentation.ts +34 -9
  359. package/src/tool-result-guard.ts +41 -7
  360. package/src/tune-out/coordinator.ts +4121 -472
  361. package/src/tune-out/tools.ts +162 -44
  362. package/src/tune-out/window-anchor.ts +277 -0
  363. package/src/types/agent.ts +122 -25
  364. package/src/types/events.ts +2 -0
  365. package/src/types/framework.ts +73 -17
  366. package/src/types/inference-log.ts +1 -0
  367. package/src/types/module.ts +181 -68
  368. package/src/types/trace.ts +607 -43
@@ -1,20 +1,25 @@
1
+ import { suppressionRecordOf } from '../gate/suppression-stats.js';
1
2
  import { JsStore } from '@animalabs/chronicle';
2
3
  import { ContextManager, continuesBody } from '@animalabs/context-manager';
3
4
  import { removeStoredInterval } from '../stored-removal.js';
4
5
  import { firstFreeBranchName } from '../branch-names.js';
5
6
  import { DEFAULT_DISCORD_AWARENESS_EMOJI, DiscordAwarenessOutbox, boundDiscordAwarenessText, defaultDiscordAwarenessOutboxPath, checkedDiscordAwarenessMarks, extractDiscordAwarenessRefs, selectDiscordAwarenessRefs, } from './discord-awareness-outbox.js';
7
+ import { appendAll } from '../append-all.js';
6
8
  /**
7
9
  * Create a safe Chronicle branch while the normal agent host is stopped.
8
10
  *
9
- * History is scanned in bounded windows and blobs are not re-inlined. The
10
- * affected messages are never compiled and their content is never written to
11
- * the recovery outbox; only Discord addressing metadata leaves Chronicle.
11
+ * History is scanned in bounded windows and blobs are not re-inlined, but a
12
+ * presented window (#291) is read whole where its order counts: for a
13
+ * `messages` count, and for the rows after the anchor that the cut returns
14
+ * to the arrivals or keeps (windowAfterCut). The affected messages are never
15
+ * compiled and their content is never written to the recovery outbox; only
16
+ * Discord addressing metadata leaves Chronicle.
12
17
  */
13
18
  export async function createOfflineRecoveryBranch(options) {
14
19
  const anchorCount = Number(!!options.messageId)
15
20
  + Number(!!options.contextId)
16
21
  + Number(options.messages !== undefined);
17
- if (anchorCount !== 1) {
22
+ if (anchorCount !== 1 && !(anchorCount === 0 && options.removeSuppressed === true)) {
18
23
  throw new Error('Specify exactly one of messageId, contextId, or messages');
19
24
  }
20
25
  const count = options.messages === undefined ? undefined : Math.floor(options.messages);
@@ -40,6 +45,16 @@ export async function createOfflineRecoveryBranch(options) {
40
45
  let targetIndex;
41
46
  let removedCount;
42
47
  let carriers;
48
+ // Once the agent's window was presented (#291), the branch cut is the
49
+ // write that presented the anchor (branchSequenceOf), not the anchor's
50
+ // own place in the record: the rows stored after the anchor and before
51
+ // that write stay on the branch, and those the window took after the
52
+ // anchor are arrivals again there. Only the rows stored after the cut
53
+ // are removed, and only they are counted, carried and checked.
54
+ const presented = contextManager.windowMode() === 'presented';
55
+ const firstRemovedAfter = (index, anchor) => presented
56
+ ? firstIndexAfterCut(contextManager, index, total, contextManager.branchSequenceOf(anchor.id))
57
+ : index + 1;
43
58
  if (options.messageId) {
44
59
  // Search backward in bounded windows: recovery anchors are normally near
45
60
  // the tail, and even a very large Chronicle is never materialized all at
@@ -52,8 +67,9 @@ export async function createOfflineRecoveryBranch(options) {
52
67
  }
53
68
  target = located.message;
54
69
  targetIndex = located.index;
55
- removedCount = total - located.index - 1;
56
- carriers = collectDiscordCarriers(contextManager, located.index + 1, total);
70
+ const firstRemoved = firstRemovedAfter(targetIndex, target);
71
+ removedCount = total - firstRemoved;
72
+ carriers = collectDiscordCarriers(contextManager, firstRemoved, total);
57
73
  }
58
74
  else if (options.contextId) {
59
75
  const located = findInternalMessageFromTail(contextManager, total, options.contextId.trim());
@@ -62,30 +78,71 @@ export async function createOfflineRecoveryBranch(options) {
62
78
  }
63
79
  target = located.message;
64
80
  targetIndex = located.index;
65
- removedCount = total - located.index - 1;
66
- carriers = collectDiscordCarriers(contextManager, located.index + 1, total);
81
+ const firstRemoved = firstRemovedAfter(targetIndex, target);
82
+ removedCount = total - firstRemoved;
83
+ carriers = collectDiscordCarriers(contextManager, firstRemoved, total);
84
+ }
85
+ else if (presented && count !== undefined) {
86
+ // Counted back in the agent's window, whose order isn't the record's:
87
+ // the anchor is the window's row `count` before its newest. Only the
88
+ // rows of the context's own slot count, as the live undo counts them:
89
+ // the anchor is looked for in that slot, and a window index can name
90
+ // a row of a slot the agent observed (the residents' rows in a
91
+ // persistent subconscious's window). The one context opened here
92
+ // merges no other slot, so its listing holds none of those today; the
93
+ // count doesn't lean on that.
94
+ const window = contextManager.getPresentedMessages().filter((row) => contextManager.getMessage(row.id) !== null);
95
+ if (count >= window.length) {
96
+ throw new Error(`Cannot remove ${count} message(s) — history has ${window.length}; at least one must remain.`);
97
+ }
98
+ const anchor = window[window.length - 1 - count];
99
+ const located = findInternalMessageFromTail(contextManager, total, String(anchor.id));
100
+ if (!located) {
101
+ throw new Error(`The recovery anchor ${String(anchor.id)}, ${count} back in the window, is not in this context's record.`);
102
+ }
103
+ target = located.message;
104
+ targetIndex = located.index;
105
+ const firstRemoved = firstRemovedAfter(targetIndex, target);
106
+ removedCount = total - firstRemoved;
107
+ carriers = collectDiscordCarriers(contextManager, firstRemoved, total);
67
108
  }
68
109
  else {
69
110
  // Count mode remains for compatibility. Read only the target plus suffix,
70
111
  // avoiding full-history materialization and attachment blob inflation.
71
- const window = contextManager.getMessageWindow(total - count - 1, count + 1, {
112
+ // With no anchor (removeSuppressed alone), the target is the newest row,
113
+ // on a presented window too: nothing is cut, the branch starting at the
114
+ // head.
115
+ const dropping = count ?? 0;
116
+ const window = contextManager.getMessageWindow(total - dropping - 1, dropping + 1, {
72
117
  resolveBlobs: false,
73
118
  }).messages;
74
119
  const countTarget = window[0];
75
120
  const discarded = window.slice(1);
76
- if (!countTarget || discarded.length !== count) {
121
+ if (!countTarget || discarded.length !== dropping) {
77
122
  throw new Error('Could not read the requested recovery window from Chronicle');
78
123
  }
79
124
  target = countTarget;
80
- targetIndex = total - count - 1;
81
- removedCount = count;
125
+ targetIndex = total - dropping - 1;
126
+ removedCount = dropping;
82
127
  carriers = discarded.map(addressingOnly);
83
128
  }
84
129
  validateAnchorBoundary(contextManager, targetIndex, total, target);
85
- const suppression = buildSuppressionPlan(contextManager, targetIndex, options.suppressMessageIds ?? [], options.suppressRanges ?? []);
130
+ // The rows the branch keeps are the record's first `total -
131
+ // removedCount`: a suppression may name any of them, those stored after
132
+ // the anchor and kept by a presented window's cut too (in the record
133
+ // before a presentation, the last kept row is the anchor).
134
+ const suppression = buildSuppressionPlan(contextManager, total - removedCount - 1, options.suppressMessageIds ?? [], options.suppressRanges ?? [], options.removeSuppressed === true);
135
+ // A run with no anchor cuts nothing, so there is no anchor to name and
136
+ // nothing returns: one with nothing to suppress makes a branch at the
137
+ // head, as on a legacy window.
138
+ const afterCut = presented && anchorCount > 0 ? windowAfterCut(contextManager, target) : undefined;
139
+ const returnedToArrivals = afterCut?.returned.filter((id) => !suppression.ids.has(String(id))).length;
140
+ if (afterCut && removedCount === 0 && suppression.intervals.length === 0 && afterCut.returned.length === 0) {
141
+ refuseIneffectiveCut(target, afterCut.kept, options.agentName, contextManager.getPresentedMessages());
142
+ }
86
143
  validateRemovalIntegrity(contextManager, total, [
87
144
  ...(removedCount > 0 ? [{
88
- start: targetIndex + 1,
145
+ start: total - removedCount,
89
146
  end: total - 1,
90
147
  fromId: '',
91
148
  toId: '',
@@ -115,6 +172,7 @@ export async function createOfflineRecoveryBranch(options) {
115
172
  targetBranch,
116
173
  messagesRemoved: removedCount,
117
174
  messagesSuppressed: suppression.messageCount,
175
+ ...(presented ? { returnedToArrivals: returnedToArrivals ?? 0 } : {}),
118
176
  discordAddressable: addressable,
119
177
  marksScope: marks === 'none' ? 'none' : marks.scope,
120
178
  discordMarkersQueued: refs.length,
@@ -147,11 +205,15 @@ export async function createOfflineRecoveryBranch(options) {
147
205
  });
148
206
  let createdBranch;
149
207
  try {
150
- // branchAt uses the target message's origin sequence. No message
151
- // content is compiled or submitted to Membrane during this operation.
152
- // Creating the branch is part of the body: a failure here settles the
153
- // batch like a failed switch or redaction.
154
- createdBranch = contextManager.branchAt(target.id, targetBranch);
208
+ // branchAt uses the target message's origin sequence. With no anchor
209
+ // nothing is rewound, so the branch starts at the head instead: what
210
+ // was written after the newest message, a removal or a summary, stays.
211
+ // No message content is compiled or submitted to Membrane during this
212
+ // operation. Creating the branch is part of the body: a failure here
213
+ // settles the batch like a failed switch or redaction.
214
+ createdBranch = anchorCount === 0
215
+ ? store.createBranchAt(targetBranch, sourceBranch, store.currentSequence()).name
216
+ : contextManager.branchAt(target.id, targetBranch);
155
217
  await contextManager.switchBranch(createdBranch);
156
218
  // Each interval is removed by its messages' ids, so the order doesn't
157
219
  // change the result. removeStoredInterval takes a single message outside
@@ -311,6 +373,162 @@ function findInternalMessageFromTail(contextManager, total, contextId) {
311
373
  }
312
374
  return null;
313
375
  }
376
+ /**
377
+ * The first slot index after `targetIndex` whose row was stored after
378
+ * `cut`, or `total` when none was: the rows a branch cut at `cut` leaves
379
+ * behind, the slot being in store order, start there. Read in bounded,
380
+ * blob-free windows.
381
+ */
382
+ function firstIndexAfterCut(contextManager, targetIndex, total, cut) {
383
+ for (let offset = targetIndex + 1; offset < total; offset += RECOVERY_SCAN_WINDOW) {
384
+ const messages = contextManager.getMessageWindow(offset, Math.min(RECOVERY_SCAN_WINDOW, total - offset), { resolveBlobs: false }).messages;
385
+ const at = messages.findIndex((message) => message.sequence > cut);
386
+ if (at >= 0)
387
+ return offset + at;
388
+ }
389
+ return total;
390
+ }
391
+ /**
392
+ * The rows after `target` in a presented window, as the live rollback reads
393
+ * them (windowAfterCut): those the write that presented the target
394
+ * presented too (`kept`, which no branch cut separates from it), and those
395
+ * presented after that write but stored at or before it (`returned`, which
396
+ * the cut keeps in the record and makes arrivals again). Read from the
397
+ * window's newest row back to the target or the first row presented before
398
+ * the cut (every row's cut grows in window order).
399
+ */
400
+ function windowAfterCut(contextManager, target) {
401
+ const cut = contextManager.branchSequenceOf(target.id);
402
+ const window = contextManager.getPresentedMessages();
403
+ const returned = [];
404
+ const kept = [];
405
+ for (let i = window.length - 1; i >= 0; i--) {
406
+ const row = window[i];
407
+ if (row.id === target.id)
408
+ break;
409
+ const at = contextManager.branchSequenceOf(row.id);
410
+ if (at < cut)
411
+ break;
412
+ if (at === cut)
413
+ kept.unshift(row);
414
+ else if (row.sequence <= cut)
415
+ returned.unshift(row.id);
416
+ }
417
+ return { returned, kept };
418
+ }
419
+ /**
420
+ * Refuses a recovery on a presented window that would change nothing, as
421
+ * the live rollback refuses one: the cut at the write that presented the
422
+ * anchor removes no row, and no row the window took after that write
423
+ * becomes an arrival again (windowAfterCut). The rows that write presented
424
+ * after the anchor (`kept`) name the way to take them out. A row holding a
425
+ * result of a call at or before the anchor (`window`, the agent's window:
426
+ * a tool boundary presents a round's reply and its results in one write)
427
+ * isn't to be suppressed, which would leave that call without its result:
428
+ * the advice is to anchor before the call. The others are suppressed: in
429
+ * the same recovery a row by its Discord message id, each one named, which
430
+ * takes every copy of that message; and by its row id with the live
431
+ * `suppressMessages` a row with none (an agent's round, a tool row) or one
432
+ * sharing the anchor's Discord id (a retried write's copy), which the
433
+ * offline suppression would take with the anchor. No range is offered: it
434
+ * takes every record row between its ends, any agent's, rows the window
435
+ * never held among them. Each refusal says the recovery reads the agent's
436
+ * own slot alone: a row of a slot it observes, which the live rollback
437
+ * weighs, isn't weighed here.
438
+ */
439
+ function refuseIneffectiveCut(target, kept, agentName, window) {
440
+ const anchorDiscordId = discordIdOf(target);
441
+ const anchor = `${String(target.id)}${anchorDiscordId ? ` (Discord message ${anchorDiscordId})` : ''}`;
442
+ const ownSlotOnly = `. Offline, only ${agentName}'s own slot is read: a row of a slot it observes, which the live rollback weighs, isn't weighed here.`;
443
+ if (kept.length > 0) {
444
+ const n = kept.length;
445
+ const first = kept[0];
446
+ const firstDiscordId = discordIdOf(first);
447
+ const named = `${String(first.id)}${firstDiscordId ? `, Discord message ${firstDiscordId}` : ''}`;
448
+ const split = resultsOfAnchoredCalls(window, target.id, kept);
449
+ const suppressible = split ? kept.filter((row) => !split.rows.includes(row)) : kept;
450
+ const copies = suppressible.filter((row) => anchorDiscordId !== undefined && discordIdOf(row) === anchorDiscordId);
451
+ // By row id, live: every one, so following the advice leaves none of them in place.
452
+ const unaddressed = suppressible.filter((row) => discordIdOf(row) === undefined || copies.includes(row));
453
+ const addressed = suppressible.filter((row) => !unaddressed.includes(row));
454
+ const offline = `in the same recovery (--suppress / suppressMessageIds: ${addressed.map((row) => discordIdOf(row)).join(', ')})`;
455
+ const live = `by row id with the live suppressMessages (${unaddressed.map((row) => String(row.id)).join(', ')}) once the host runs, ` +
456
+ 'since the offline recovery suppresses only by Discord message id' +
457
+ (copies.length > 0 ? `, which takes every copy of a message, the anchor's own too` : '');
458
+ const m = suppressible.length;
459
+ const them = m === n ? (n === 1 ? 'it' : 'them') : 'the rest';
460
+ const how = m === 0 ? ''
461
+ : unaddressed.length === 0 ? `suppress ${them} ${offline}`
462
+ : addressed.length === 0 ? `suppress ${them} ${live}` +
463
+ (copies.length > 0 ? '' : ` and ${m === 1 ? 'it has none' : 'none of them has one'}`)
464
+ : `suppress the ${addressed.length} with a Discord message id ${offline}, and the ${unaddressed.length} ` +
465
+ `${copies.length > 0 ? `other${unaddressed.length === 1 ? '' : 's'}` : 'without one'} ${live}`;
466
+ const before = split ? anchorBefore(split, 'anchor the recovery', 'at') : '';
467
+ throw new Error(`Recovery anchor ${anchor} was presented to ${agentName} in one write with the ${n} message${n === 1 ? '' : 's'} ` +
468
+ `after it in its window (the first: ${named}), and a branch cut can't separate the rows one write presented, ` +
469
+ `so a recovery anchored there would remove nothing; to take ${n === 1 ? 'that message' : 'those messages'} out, ` +
470
+ (before && how ? `${before}; or, to keep that call and its results, ${how}` : before || how) + ownSlotOnly);
471
+ }
472
+ throw new Error(`Recovery anchor ${anchor} is already the tail of ${agentName}'s window: every message stored after it was ` +
473
+ 'stored before the write that presented it, where the branch is cut, and none entered the window after it, so ' +
474
+ 'a recovery anchored there would change nothing' + ownSlotOnly);
475
+ }
476
+ /**
477
+ * Of the rows a no-op cut keeps after its anchor (`kept`), those holding a
478
+ * result of a call in a row of the agent's window at or before the anchor,
479
+ * which a suppression would leave without its result: a tool boundary
480
+ * presents a round's reply and its results in one write, and so does a
481
+ * write-down for rows stored together. With them, the earliest such call's
482
+ * row and the window row before it, where a cut keeps the call and its
483
+ * results together. Undefined where no kept row answers such a call, or the
484
+ * anchor isn't in `window`. The live rollback's refusal reads it too.
485
+ */
486
+ export function resultsOfAnchoredCalls(window, anchorId, kept) {
487
+ const anchorAt = window.findIndex((row) => row.id === anchorId);
488
+ if (anchorAt < 0)
489
+ return undefined;
490
+ const callAt = new Map();
491
+ for (let i = 0; i <= anchorAt; i++) {
492
+ for (const raw of window[i].content) {
493
+ const block = raw;
494
+ if (block.type === 'tool_use' && typeof block.id === 'string')
495
+ callAt.set(block.id, i);
496
+ }
497
+ }
498
+ let earliest;
499
+ const rows = kept.filter((row) => {
500
+ let answers = false;
501
+ for (const raw of row.content) {
502
+ const block = raw;
503
+ const at = block.type === 'tool_result' && typeof block.toolUseId === 'string' ? callAt.get(block.toolUseId) : undefined;
504
+ if (at === undefined)
505
+ continue;
506
+ answers = true;
507
+ earliest = earliest === undefined ? at : Math.min(earliest, at);
508
+ }
509
+ return answers;
510
+ });
511
+ if (rows.length === 0 || earliest === undefined)
512
+ return undefined;
513
+ return { rows, call: window[earliest], ...(earliest > 0 ? { before: window[earliest - 1] } : {}) };
514
+ }
515
+ /**
516
+ * A refusal's advice for the kept rows that answer a call at or before the
517
+ * anchor (resultsOfAnchoredCalls): `verb` (anchor the recovery, roll back)
518
+ * before the call's row, naming the row before it (`to`: at, to), and why
519
+ * they aren't to be suppressed.
520
+ */
521
+ export function anchorBefore(split, verb, to) {
522
+ const ids = split.rows.map((row) => String(row.id)).join(', ');
523
+ const one = split.rows.length === 1;
524
+ return `${verb} before ${String(split.call.id)}, which holds the call ${one ? 'it answers' : 'they answer'}, instead` +
525
+ `${split.before ? ` (${to} ${String(split.before.id)}, the message before it in the window)` : ''}: ${ids} ${one ? 'holds a result' : 'hold results'} ` +
526
+ `of a call at or before the anchor, and suppressing ${one ? 'it' : 'them'} would leave that call without its result`;
527
+ }
528
+ function discordIdOf(message) {
529
+ const id = message.metadata?.messageId;
530
+ return id === undefined || id === null || id === '' ? undefined : String(id);
531
+ }
314
532
  function validateAnchorBoundary(contextManager, targetIndex, total, target) {
315
533
  if (targetIndex + 1 >= total)
316
534
  return;
@@ -326,7 +544,24 @@ function validateAnchorBoundary(contextManager, targetIndex, total, target) {
326
544
  function validateRemovalIntegrity(contextManager, total, intervals) {
327
545
  if (intervals.length === 0)
328
546
  return;
329
- const removed = (index) => intervals.some((interval) => index >= interval.start && index <= interval.end);
547
+ // Sorted starts with each one's running furthest end, searched per row: a
548
+ // store can hold a removal for every third row (--remove-suppressed).
549
+ const sorted = [...intervals].sort((a, b) => a.start - b.start);
550
+ const reach = [];
551
+ for (const interval of sorted)
552
+ reach.push(Math.max(interval.end, reach.at(-1) ?? -1));
553
+ const removed = (index) => {
554
+ let lo = 0;
555
+ let hi = sorted.length - 1;
556
+ while (lo < hi) {
557
+ const mid = Math.ceil((lo + hi) / 2);
558
+ if (sorted[mid].start <= index)
559
+ lo = mid;
560
+ else
561
+ hi = mid - 1;
562
+ }
563
+ return sorted[lo].start <= index && index <= reach[lo];
564
+ };
330
565
  const toolUses = new Map();
331
566
  const toolResults = new Map();
332
567
  // The message before, in store order: a selection splits a body when a
@@ -361,7 +596,7 @@ function validateRemovalIntegrity(contextManager, total, intervals) {
361
596
  }
362
597
  }
363
598
  }
364
- function buildSuppressionPlan(contextManager, targetIndex, rawMessageIds, rawRanges) {
599
+ function buildSuppressionPlan(contextManager, lastKeptIndex, rawMessageIds, rawRanges, removeSuppressed = false) {
365
600
  const messageIds = rawMessageIds.map(normalizeDiscordMessageId);
366
601
  const ranges = rawRanges.map((range) => ({
367
602
  fromMessageId: normalizeDiscordMessageId(range.fromMessageId),
@@ -371,12 +606,16 @@ function buildSuppressionPlan(contextManager, targetIndex, rawMessageIds, rawRan
371
606
  ...messageIds,
372
607
  ...ranges.flatMap((range) => [range.fromMessageId, range.toMessageId]),
373
608
  ]);
374
- if (wanted.size === 0)
375
- return { intervals: [], carriers: [], messageCount: 0 };
609
+ if (wanted.size === 0 && !removeSuppressed)
610
+ return { intervals: [], carriers: [], messageCount: 0, ids: new Set() };
611
+ const stamped = [];
376
612
  const locations = new Map();
377
- for (let offset = 0; offset <= targetIndex; offset += RECOVERY_SCAN_WINDOW) {
378
- const messages = contextManager.getMessageWindow(offset, Math.min(RECOVERY_SCAN_WINDOW, targetIndex - offset + 1), { resolveBlobs: false }).messages;
613
+ for (let offset = 0; offset <= lastKeptIndex; offset += RECOVERY_SCAN_WINDOW) {
614
+ const messages = contextManager.getMessageWindow(offset, Math.min(RECOVERY_SCAN_WINDOW, lastKeptIndex - offset + 1), { resolveBlobs: false }).messages;
379
615
  for (let i = 0; i < messages.length; i++) {
616
+ if (removeSuppressed && suppressionRecordOf(messages[i].metadata)) {
617
+ stamped.push({ start: offset + i, end: offset + i, fromId: messages[i].id, toId: messages[i].id });
618
+ }
380
619
  const externalId = String(messages[i].metadata?.messageId ?? '');
381
620
  if (!wanted.has(externalId))
382
621
  continue;
@@ -417,10 +656,10 @@ function buildSuppressionPlan(contextManager, targetIndex, rawMessageIds, rawRan
417
656
  throw new Error(`Suppression endpoint ${id} is not visible at the selected branch point.`);
418
657
  }
419
658
  }
420
- const intervals = [];
659
+ const intervals = [...stamped];
421
660
  for (const id of messageIds) {
422
661
  const location = locations.get(id);
423
- intervals.push(...location.runs.map((run) => ({ ...run })));
662
+ appendAll(intervals, location.runs.map((run) => ({ ...run })));
424
663
  }
425
664
  for (const range of ranges) {
426
665
  const from = locations.get(range.fromMessageId);
@@ -440,7 +679,7 @@ function buildSuppressionPlan(contextManager, targetIndex, rawMessageIds, rawRan
440
679
  toId: later.firstId,
441
680
  });
442
681
  for (const end of [from, to])
443
- intervals.push(...end.runs.map((run) => ({ ...run })));
682
+ appendAll(intervals, end.runs.map((run) => ({ ...run })));
444
683
  }
445
684
  intervals.sort((a, b) => a.start - b.start || a.end - b.end);
446
685
  const merged = [];
@@ -457,26 +696,32 @@ function buildSuppressionPlan(contextManager, targetIndex, rawMessageIds, rawRan
457
696
  }
458
697
  }
459
698
  const carriers = [];
699
+ const ids = new Set();
460
700
  for (const interval of merged) {
461
- carriers.push(...collectDiscordCarriers(contextManager, interval.start, interval.end + 1));
701
+ appendAll(carriers, collectDiscordCarriers(contextManager, interval.start, interval.end + 1, ids));
462
702
  }
463
703
  return {
464
704
  intervals: merged,
465
705
  carriers,
466
706
  messageCount: merged.reduce((sum, interval) => sum + interval.end - interval.start + 1, 0),
707
+ ids,
467
708
  };
468
709
  }
469
710
  /**
470
711
  * The addressing metadata of removed messages, read in bounded windows: only
471
712
  * the Discord address and the MCPL tags (for `addressed` selection) are kept,
472
713
  * never content. A sharded message may repeat its metadata across adjacent
473
- * records; selection dedupes by address.
714
+ * records; selection dedupes by address. Each row's id is added to `ids`
715
+ * where given.
474
716
  */
475
- function collectDiscordCarriers(contextManager, start, end) {
717
+ function collectDiscordCarriers(contextManager, start, end, ids) {
476
718
  const carriers = [];
477
719
  for (let offset = start; offset < end; offset += RECOVERY_SCAN_WINDOW) {
478
720
  const messages = contextManager.getMessageWindow(offset, Math.min(RECOVERY_SCAN_WINDOW, end - offset), { resolveBlobs: false }).messages;
479
- carriers.push(...messages.map(addressingOnly));
721
+ appendAll(carriers, messages.map(addressingOnly));
722
+ if (ids)
723
+ for (const message of messages)
724
+ ids.add(String(message.id));
480
725
  }
481
726
  return carriers;
482
727
  }
@@ -1 +1 @@
1
- {"version":3,"file":"offline-branch.js","sourceRoot":"","sources":["../../../src/recovery/offline-branch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"offline-branch.js","sourceRoot":"","sources":["../../../src/recovery/offline-branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAkB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,EACtB,yBAAyB,EACzB,iCAAiC,EACjC,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,GAI3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA4G7C;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAqC;IAErC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;UAC3C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;UAC3B,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAC3C,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxF,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,uEAAuE;IACvE,sEAAsE;IACtE,WAAW;IACX,MAAM,KAAK,GAAG,4BAA4B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAChE,IAAI,cAAc,GAA0B,IAAI,CAAC;IACjD,IAAI,CAAC;QACH,cAAc,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC;YACzC,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,UAAU,OAAO,CAAC,SAAS,EAAE;SAC9D,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,6BAA6B,KAAK,6BAA6B,CACtF,CAAC;QACJ,CAAC;QAED,IAAI,MAA2B,CAAC;QAChC,IAAI,WAAmB,CAAC;QACxB,IAAI,YAAoB,CAAC;QACzB,IAAI,QAAyC,CAAC;QAC9C,sEAAsE;QACtE,uEAAuE;QACvE,uEAAuE;QACvE,qEAAqE;QACrE,sEAAsE;QACtE,+DAA+D;QAC/D,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,KAAK,WAAW,CAAC;QAC9D,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,MAA2B,EAAU,EAAE,CAAC,SAAS;YACzF,CAAC,CAAC,kBAAkB,CAAC,cAAe,EAAE,KAAK,EAAE,KAAK,EAAE,cAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAEd,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,wEAAwE;YACxE,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,0BAA0B,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,mBAAmB,QAAQ,iDAAiD,CAC7E,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YACzB,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC5D,YAAY,GAAG,KAAK,GAAG,YAAY,CAAC;YACpC,QAAQ,GAAG,sBAAsB,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,2BAA2B,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7F,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,SAAS,iBAAiB,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YACzB,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC5D,YAAY,GAAG,KAAK,GAAG,YAAY,CAAC;YACpC,QAAQ,GAAG,sBAAsB,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5C,sEAAsE;YACtE,qEAAqE;YACrE,sEAAsE;YACtE,qEAAqE;YACrE,+DAA+D;YAC/D,iEAAiE;YACjE,sEAAsE;YACtE,8BAA8B;YAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAe,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;YAClH,IAAI,KAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,6BAA6B,MAAM,CAAC,MAAM,6BAA6B,CAC9F,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,KAAM,CAAE,CAAC;YACnD,MAAM,OAAO,GAAG,2BAA2B,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACtF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,uDAAuD,CAAC,CAAC;YAC7H,CAAC;YACD,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YACzB,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC5D,YAAY,GAAG,KAAK,GAAG,YAAY,CAAC;YACpC,QAAQ,GAAG,sBAAsB,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,0EAA0E;YAC1E,uEAAuE;YACvE,yEAAyE;YACzE,wEAAwE;YACxE,QAAQ;YACR,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE;gBACjF,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC,QAAQ,CAAC;YACZ,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;YACD,MAAM,GAAG,WAAW,CAAC;YACrB,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC;YACnC,YAAY,GAAG,QAAQ,CAAC;YACxB,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3C,CAAC;QAED,sBAAsB,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEnE,4DAA4D;QAC5D,wEAAwE;QACxE,qEAAqE;QACrE,2DAA2D;QAC3D,MAAM,WAAW,GAAG,oBAAoB,CACtC,cAAc,EACd,KAAK,GAAG,YAAY,GAAG,CAAC,EACxB,OAAO,CAAC,kBAAkB,IAAI,EAAE,EAChC,OAAO,CAAC,cAAc,IAAI,EAAE,EAC5B,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAClC,CAAC;QACF,uEAAuE;QACvE,sEAAsE;QACtE,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,SAAS,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,MAAM,kBAAkB,GAAG,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACtG,IAAI,QAAQ,IAAI,YAAY,KAAK,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3G,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,oBAAoB,EAA2B,CAAC,CAAC;QACjI,CAAC;QACD,wBAAwB,CACtB,cAAc,EACd,KAAK,EACL;YACE,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtB,KAAK,EAAE,KAAK,GAAG,YAAY;oBAC3B,GAAG,EAAE,KAAK,GAAG,CAAC;oBACd,MAAM,EAAE,EAAE;oBACV,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACR,GAAG,WAAW,CAAC,SAAS;SACzB,CACF,CAAC;QACF,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,2BAA2B,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;QAC1F,MAAM,SAAS,GAAG,0BAA0B,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAE5B,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU;eAClC,mBAAmB,CAAC,YAAY,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAClG,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QACD,4DAA4D;QAC5D,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,mBAAmB,YAAY,0CAA0C,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU;eAChC,iCAAiC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAgC;YAC1C,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI;YAC/B,YAAY;YACZ,YAAY;YACZ,eAAe,EAAE,YAAY;YAC7B,kBAAkB,EAAE,WAAW,CAAC,YAAY;YAC5C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,kBAAkB,EAAE,WAAW;YAC/B,UAAU,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;YACnD,oBAAoB,EAAE,IAAI,CAAC,MAAM;YACjC,IAAI;YACJ,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,UAAU;SACX,CAAC;QACF,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC;QAElC,oEAAoE;QACpE,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YACjC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY;YACZ,YAAY;YACZ,IAAI;YACJ,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;YAC9C,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,+BAA+B;YACvD,gEAAgE;YAChE,oEAAoE;YACpE,oEAAoE;YACpE,0BAA0B;YAC1B,oBAAoB,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC7D,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC/B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC5B,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,aAAiC,CAAC;QACtC,IAAI,CAAC;YACH,qEAAqE;YACrE,qEAAqE;YACrE,uEAAuE;YACvE,sEAAsE;YACtE,qEAAqE;YACrE,uDAAuD;YACvD,aAAa,GAAG,WAAW,KAAK,CAAC;gBAC/B,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI;gBAChF,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YACrD,MAAM,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACjD,sEAAsE;YACtE,yEAAyE;YACzE,wEAAwE;YACxE,+CAA+C;YAC/C,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5D,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sEAAsE;YACtE,wEAAwE;YACxE,wEAAwE;YACxE,sEAAsE;YACtE,mEAAmE;YACnE,gEAAgE;YAChE,uEAAuE;YACvE,qEAAqE;YACrE,UAAU;YACV,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,KAAK,YAAY;oBAAE,MAAM,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YACnG,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,OAAO,GAAG,eAAe,YAAY,YAAY,yBAAyB,CACxE,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAC5E,EAAE,CAAC;YACN,CAAC;YACD,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC;YACpE,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,mEAAmE;YACnE,6BAA6B;YAC7B,MAAM,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACzC,CAAC,CAAC,uFAAuF,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,kEAAkE;oBAClE,qEAAqE;oBACrE,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;wBAC1C,CAAC,CAAC,sCAAsC,YAAY,sDAAsD;4BACxG,uCAAuC,YAAY,sCAAsC,YAAY,GAAG;4BACxG,sGAAsG;wBACxG,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,GAAG,qBAAqB,KAAK,CAAC,EAAE,yDAAyD;wBAC7F,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;4BAC/B,CAAC,CAAC,cAAc,YAAY,uCAAuC;4BACnE,CAAC,CAAC,2BAA2B,CAAC,GAAG,2BAA2B,cAAc,EAAE,CAAC;gBACnF,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC/B,MAAM,GAAG,qBAAqB,KAAK,CAAC,EAAE,mCAAmC,IAAI,EAAE,CAAC;oBAClF,CAAC;oBAAC,OAAO,YAAY,EAAE,CAAC;wBACtB,mEAAmE;wBACnE,+DAA+D;wBAC/D,gEAAgE;wBAChE,iEAAiE;wBACjE,QAAQ;wBACR,MAAM,MAAM,GAAG,yBAAyB,CACtC,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAC5E,CAAC;wBACF,MAAM,IAAI,GAAG,qBAAqB,KAAK,CAAC,EAAE,0BAA0B,MAAM,gCAAgC;4BACxG,sBAAsB,CAAC;wBACzB,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACvC,MAAM,GAAG,GAAG,IAAI,oCAAoC,IAAI,EAAE,CAAC;wBAC7D,CAAC;6BAAM,CAAC;4BACN,IAAI,MAAM,GAAG,IAAI,CAAC;4BAClB,IAAI,CAAC;gCACH,MAAM,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;4BAC/E,CAAC;4BAAC,MAAM,CAAC,CAAC,8DAA8D,CAAC,CAAC;4BAC1E,MAAM,GAAG,GAAG,IAAI,mCAAmC,YAAY,kCAAkC;gCAC/F,mDAAmD,GAAG,CAAC,MAAM;gCAC7D,CAAC,CAAC,SAAS,YAAY,sEAAsE;oCAC3F,kCAAkC;gCACpC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;wBACjB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,yEAAyE;YACzE,oEAAoE;YACpE,uDAAuD;YACvD,MAAM,IAAI,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;gBAC3C,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,aAAa,wBAAwB;oBACxF,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,aAAa,uCAAuC;wBAC9F,CAAC,CAAC,YAAY,aAAa,iFAAiF;4BAC1G,0FAA0F,CAAC;YAC/F,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;gBAAE,MAAM,KAAK,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,uEAAuE;QACvE,uBAAuB;QACvB,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAkC;YACjF,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;SACjC,CAAC;QACF,IAAI,OAAO,GAAyB,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5E,IAAI,iBAAqC,CAAC;QAC1C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,QAAQ;oBACnC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;oBAC3E,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC7E,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;gBAC9C,gEAAgE;gBAChE,0EAA0E;gBAC1E,iBAAiB,GAAG,sCAAsC,KAAK,CAAC,EAAE,oCAAoC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,GAAG,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3H,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,KAAK,EAAE,CAAC;QACxB,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAiBnC,SAAS,yBAAyB,CAAC,KAAa;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACxD,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;AAC9B,CAAC;AAED,SAAS,0BAA0B,CACjC,cAA8B,EAC9B,KAAa,EACb,SAAiB;IAEjB,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,oBAAoB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE;YACnE,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC,QAAQ,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;QACD,GAAG,GAAG,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAClC,cAA8B,EAC9B,KAAa,EACb,SAAiB;IAEjB,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,oBAAoB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE;YACnE,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC,QAAQ,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;QACD,GAAG,GAAG,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CACzB,cAA8B,EAC9B,WAAmB,EACnB,KAAa,EACb,GAAW;IAEX,KAAK,IAAI,MAAM,GAAG,WAAW,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAClF,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAC9C,MAAM,EACN,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,GAAG,MAAM,CAAC,EAC9C,EAAE,YAAY,EAAE,KAAK,EAAE,CACxB,CAAC,QAAQ,CAAC;QACX,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;QACnE,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO,MAAM,GAAG,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CACrB,cAA8B,EAC9B,MAA2B;IAE3B,MAAM,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,cAAc,CAAC,oBAAoB,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAgC,EAAE,CAAC;IACjD,MAAM,IAAI,GAA0B,EAAE,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE;YAAE,MAAM;QAChC,MAAM,EAAE,GAAG,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,EAAE,GAAG,GAAG;YAAE,MAAM;QACpB,IAAI,EAAE,KAAK,GAAG;YAAE,IAAI,CAAC,OAAO,CAAC,GAA0B,CAAC,CAAC;aACpD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG;YAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,oBAAoB,CAC3B,MAA2B,EAC3B,IAAoC,EACpC,SAAiB,EACjB,MAAsC;IAEtC,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,qBAAqB,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACvG,MAAM,WAAW,GAAG,mBAAmB,SAAS,uGAAuG,CAAC;IACxJ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,qBAAqB,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAClG,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,CAAC;QACnH,oFAAoF;QACpF,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACzG,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,0DAA0D,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAClI,MAAM,IAAI,GAAG,6CAA6C,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB;YACnI,kEAAkE;YAClE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3F,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QAC9B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9D,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACtB,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,OAAO,EAAE;gBAC1D,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE;oBACnD,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC;oBACvF,CAAC,CAAC,gBAAgB,SAAS,CAAC,MAAM,8BAA8B,OAAO,aAAa,WAAW,CAAC,MAAM,GAAG;wBACvG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;QACnG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,qBAAqB,SAAS,0BAA0B,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;YAClH,sCAAsC,KAAK,mEAAmE;YAC9G,8DAA8D,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,QAAQ;YACjH,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,4CAA4C,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,WAAW,CAC3G,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,2BAA2B,SAAS,+CAA+C;QAC5G,+GAA+G;QAC/G,gDAAgD,GAAG,WAAW,CAC/D,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAoB,EACpB,QAAiB,EACjB,IAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAChE,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,GAAuC,CAAC;YACtD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IACD,IAAI,QAA4B,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,GAA8C,CAAC;YAC7D,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzH,IAAI,EAAE,KAAK,SAAS;gBAAE,SAAS;YAC/B,OAAO,GAAG,IAAI,CAAC;YACf,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAClE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAE,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACvG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAgG,EAChG,IAAY,EACZ,EAAU;IAEV,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,OAAO,GAAG,IAAI,WAAW,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,WAAW;QACnH,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,wCAAwC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,GAAG;QACvJ,sDAAsD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,2CAA2C,CAAC;AACzH,CAAC;AAED,SAAS,WAAW,CAAC,OAA+C;IAClE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC;IACvC,OAAO,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,sBAAsB,CAC7B,cAA8B,EAC9B,WAAmB,EACnB,KAAa,EACb,MAA2B;IAE3B,IAAI,WAAW,GAAG,CAAC,IAAI,KAAK;QAAE,OAAO;IACrC,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE;QAC/D,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACf,oEAAoE;IACpE,sEAAsE;IACtE,IAAI,aAAa,CAAC,MAAmB,EAAE,IAA6B,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,sBAAuB,MAAoB,CAAC,WAAW,2BAA2B,CACvH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,cAA8B,EAC9B,KAAa,EACb,SAAgC;IAEhC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACnC,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,QAAQ,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;QAChC,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,GAAG,CAAE,CAAC,KAAK,IAAI,KAAK;gBAAE,EAAE,GAAG,GAAG,CAAC;;gBAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAE,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,CAAE,CAAC;IAC3D,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC/C,uEAAuE;IACvE,gEAAgE;IAChE,IAAI,QAAQ,GAAoD,IAAI,CAAC;IAErE,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;QACpE,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAC9C,MAAM,EACN,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,GAAG,MAAM,CAAC,EAC9C,EAAE,YAAY,EAAE,KAAK,EAAE,CACxB,CAAC,QAAQ,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;YACzB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,OAAoB,CAAC;YACnC,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;gBACzF,MAAM,IAAI,KAAK,CACb,wCAAwC,KAAK,CAAC,WAAW,8CAA8C,CACxG,CAAC;YACJ,CAAC;YACD,QAAQ,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAClD,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,QAAiE,CAAC;gBAChF,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC9D,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC/E,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CACb,gDAAgD,SAAS,qDAAqD,CAC/G,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,cAA8B,EAC9B,aAAqB,EACrB,aAAuB,EACvB,SAAgE,EAChE,gBAAgB,GAAG,KAAK;IAExB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvC,aAAa,EAAE,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC;QAC7D,WAAW,EAAE,yBAAyB,CAAC,KAAK,CAAC,WAAW,CAAC;KAC1D,CAAC,CAAC,CAAC;IACJ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;QACrB,GAAG,UAAU;QACb,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;KACvE,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IACpH,MAAM,OAAO,GAA0B,EAAE,CAAC;IAE1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IACrD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAC7E,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAC9C,MAAM,EACN,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,aAAa,GAAG,MAAM,GAAG,CAAC,CAAC,EAC1D,EAAE,YAAY,EAAE,KAAK,EAAE,CACxB,CAAC,QAAQ,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,gBAAgB,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAA+C,CAAC,EAAE,CAAC;gBACzG,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrG,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,SAAS;YACtC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG;oBACV,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,KAAK;oBACV,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;oBACtB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;iBACrB,CAAC;gBACF,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE;oBACxB,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;oBACvB,IAAI,EAAE,CAAC,GAAG,CAAC;iBACZ,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;gBACtC,IAAI,KAAK,KAAK,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;oBACpB,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;wBACjB,KAAK,EAAE,KAAK;wBACZ,GAAG,EAAE,KAAK;wBACV,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;wBACtB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;qBACrB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,wBAAwB,EAAE,+CAA+C,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAA0B,CAAC,GAAG,OAAO,CAAC,CAAC;IACtD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QACpC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAE,CAAC;QACjD,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,mEAAmE;QACnE,uEAAuE;QACvE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,kDAAkD;QAClD,SAAS,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,EAAE,KAAK,CAAC,KAAK;YAChB,MAAM,EAAE,OAAO,CAAC,OAAO;YACvB,IAAI,EAAE,KAAK,CAAC,OAAO;SACpB,CAAC,CAAC;QACH,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAAE,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAChC,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC5B,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAoC,EAAE,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QAC9B,SAAS,CAAC,QAAQ,EAAE,sBAAsB,CAAC,cAAc,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACrG,CAAC;IACD,OAAO;QACL,SAAS,EAAE,MAAM;QACjB,QAAQ;QACR,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1F,GAAG;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAC7B,cAA8B,EAC9B,KAAa,EACb,GAAW,EACX,GAAiB;IAEjB,MAAM,QAAQ,GAAoC,EAAE,CAAC;IACrD,KAAK,IAAI,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAC9C,MAAM,EACN,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,GAAG,MAAM,CAAC,EAC5C,EAAE,YAAY,EAAE,KAAK,EAAE,CACxB,CAAC,QAAQ,CAAC;QACX,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QAClD,IAAI,GAAG;YAAE,KAAK,MAAM,OAAO,IAAI,QAAQ;gBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,OAA+C;IACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,OAAO;QACL,QAAQ,EAAE;YACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB;KACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createOfflineRecoveryBranch } from './offline-branch.js';
3
+ import { appendAll } from '../append-all.js';
3
4
  function usage() {
4
5
  return `Usage:
5
6
  agent-framework-recover --store <path> --agent <name> <anchor> [options]
@@ -15,8 +16,23 @@ Options:
15
16
  --message-id <id|link> Last Discord message the agent should still see
16
17
  --context-id <internal-id> Exact internal context message to retain as anchor
17
18
  --messages <count> Legacy alternative: remove N context entries
19
+ On a presented window the rows one write
20
+ presented with the anchor stay after it, a
21
+ count is over the agent's window, and a
22
+ recovery that would remove nothing is refused
18
23
  --suppress <id|link> Suppress one Discord message; repeat or comma-separate
19
24
  --suppress-range <a>..<b> Suppress an inclusive context range; repeatable
25
+ --remove-suppressed Remove every row a suppress rule hid, needing no
26
+ anchor. Run it before rolling back to a release
27
+ without suppress rules, which can refuse the
28
+ store at open otherwise; the source branch keeps
29
+ the rows. Once this release has made a window
30
+ write of two or more rows (the first write-down
31
+ of a window that holds a row, as at the first
32
+ boot on a store with history, or a presentation
33
+ of more than one row: MANIFEST version 2) no
34
+ earlier release opens the store, and only a copy
35
+ taken before the upgrade goes back
20
36
  --branch <name> Recovery branch name (generated by default)
21
37
  --namespace <namespace> Context namespace (default: agents/<agent>)
22
38
  --discord-server <id> Override/inject the Discord MCPL server id
@@ -32,7 +48,7 @@ Options:
32
48
  The agent host must be stopped before running this command.`;
33
49
  }
34
50
  function parseArgs(args) {
35
- const options = { dryRun: false, suppressMessageIds: [], suppressRanges: [], marks: 'none' };
51
+ const options = { dryRun: false, suppressMessageIds: [], suppressRanges: [], removeSuppressed: false, marks: 'none' };
36
52
  for (let i = 0; i < args.length; i++) {
37
53
  const arg = args[i];
38
54
  const value = () => {
@@ -60,7 +76,7 @@ function parseArgs(args) {
60
76
  break;
61
77
  case '--suppress':
62
78
  case '--suppress-message':
63
- options.suppressMessageIds.push(...value().split(',').map((item) => item.trim()).filter(Boolean));
79
+ appendAll(options.suppressMessageIds, value().split(',').map((item) => item.trim()).filter(Boolean));
64
80
  break;
65
81
  case '--suppress-range': {
66
82
  const raw = value();
@@ -97,6 +113,9 @@ function parseArgs(args) {
97
113
  options.marks = marks;
98
114
  break;
99
115
  }
116
+ case '--remove-suppressed':
117
+ options.removeSuppressed = true;
118
+ break;
100
119
  case '--dry-run':
101
120
  options.dryRun = true;
102
121
  break;
@@ -113,8 +132,8 @@ async function main() {
113
132
  const options = parseArgs(process.argv.slice(2));
114
133
  if (!options.storePath
115
134
  || !options.agentName
116
- || (!options.messageId && !options.contextId && options.messages === undefined)) {
117
- throw new Error(`--store, --agent, and one anchor (--message-id, --context-id, or --messages) are required\n\n${usage()}`);
135
+ || (!options.messageId && !options.contextId && options.messages === undefined && !options.removeSuppressed)) {
136
+ throw new Error(`--store, --agent, and one anchor (--message-id, --context-id, or --messages) or --remove-suppressed are required\n\n${usage()}`);
118
137
  }
119
138
  // A CLI choice and its application are the same moment (the host is
120
139
  // stopped), so the scope is evaluated now rather than frozen to refs.
@@ -127,6 +146,7 @@ async function main() {
127
146
  messages: options.messages,
128
147
  suppressMessageIds: options.suppressMessageIds,
129
148
  suppressRanges: options.suppressRanges,
149
+ removeSuppressed: options.removeSuppressed,
130
150
  branchName: options.branchName,
131
151
  namespace: options.namespace,
132
152
  discordServerId: options.discordServerId,