@withbuddi/buddi 0.1.0-pre.26 → 0.1.0-pre.28

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 (818) hide show
  1. package/extension/manifest.json +2 -2
  2. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  3. package/node_modules/@buddi/cli/dist/commands.d.ts +10 -0
  4. package/node_modules/@buddi/cli/dist/commands.d.ts.map +1 -1
  5. package/node_modules/@buddi/cli/dist/commands.js +237 -18
  6. package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
  7. package/node_modules/@buddi/cli/dist/doctor-probes.d.ts.map +1 -1
  8. package/node_modules/@buddi/cli/dist/doctor-probes.js +10 -8
  9. package/node_modules/@buddi/cli/dist/doctor-probes.js.map +1 -1
  10. package/node_modules/@buddi/cli/dist/doctor.d.ts +28 -0
  11. package/node_modules/@buddi/cli/dist/doctor.d.ts.map +1 -1
  12. package/node_modules/@buddi/cli/dist/doctor.js +36 -0
  13. package/node_modules/@buddi/cli/dist/doctor.js.map +1 -1
  14. package/node_modules/@buddi/cli/dist/mcp/tools.d.ts.map +1 -1
  15. package/node_modules/@buddi/cli/dist/mcp/tools.js +3 -2
  16. package/node_modules/@buddi/cli/dist/mcp/tools.js.map +1 -1
  17. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  18. package/node_modules/@buddi/core/dist/agents/catalog.d.ts +3 -0
  19. package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
  20. package/node_modules/@buddi/core/dist/agents/catalog.js +1 -0
  21. package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
  22. package/node_modules/@buddi/core/dist/agents/edit.d.ts +3 -0
  23. package/node_modules/@buddi/core/dist/agents/edit.d.ts.map +1 -1
  24. package/node_modules/@buddi/core/dist/agents/edit.js +3 -1
  25. package/node_modules/@buddi/core/dist/agents/edit.js.map +1 -1
  26. package/node_modules/@buddi/core/dist/agents/frontmatter.d.ts +10 -0
  27. package/node_modules/@buddi/core/dist/agents/frontmatter.d.ts.map +1 -1
  28. package/node_modules/@buddi/core/dist/agents/frontmatter.js +7 -0
  29. package/node_modules/@buddi/core/dist/agents/frontmatter.js.map +1 -1
  30. package/node_modules/@buddi/core/dist/agents/idle-rollover.d.ts +20 -0
  31. package/node_modules/@buddi/core/dist/agents/idle-rollover.d.ts.map +1 -0
  32. package/node_modules/@buddi/core/dist/agents/idle-rollover.js +30 -0
  33. package/node_modules/@buddi/core/dist/agents/idle-rollover.js.map +1 -0
  34. package/node_modules/@buddi/core/dist/agents/index.d.ts +1 -0
  35. package/node_modules/@buddi/core/dist/agents/index.d.ts.map +1 -1
  36. package/node_modules/@buddi/core/dist/agents/index.js +1 -0
  37. package/node_modules/@buddi/core/dist/agents/index.js.map +1 -1
  38. package/node_modules/@buddi/core/dist/backup/dump.d.ts +9 -0
  39. package/node_modules/@buddi/core/dist/backup/dump.d.ts.map +1 -1
  40. package/node_modules/@buddi/core/dist/backup/dump.js +10 -1
  41. package/node_modules/@buddi/core/dist/backup/dump.js.map +1 -1
  42. package/node_modules/@buddi/core/dist/backup/index.d.ts +1 -0
  43. package/node_modules/@buddi/core/dist/backup/index.d.ts.map +1 -1
  44. package/node_modules/@buddi/core/dist/backup/index.js +1 -0
  45. package/node_modules/@buddi/core/dist/backup/index.js.map +1 -1
  46. package/node_modules/@buddi/core/dist/backup/load.d.ts +18 -0
  47. package/node_modules/@buddi/core/dist/backup/load.d.ts.map +1 -1
  48. package/node_modules/@buddi/core/dist/backup/load.js +3 -2
  49. package/node_modules/@buddi/core/dist/backup/load.js.map +1 -1
  50. package/node_modules/@buddi/core/dist/backup/pending.d.ts +114 -0
  51. package/node_modules/@buddi/core/dist/backup/pending.d.ts.map +1 -0
  52. package/node_modules/@buddi/core/dist/backup/pending.js +392 -0
  53. package/node_modules/@buddi/core/dist/backup/pending.js.map +1 -0
  54. package/node_modules/@buddi/core/dist/backup/restore.d.ts +3 -1
  55. package/node_modules/@buddi/core/dist/backup/restore.d.ts.map +1 -1
  56. package/node_modules/@buddi/core/dist/backup/restore.js +55 -2
  57. package/node_modules/@buddi/core/dist/backup/restore.js.map +1 -1
  58. package/node_modules/@buddi/core/dist/feedback/index.d.ts +108 -0
  59. package/node_modules/@buddi/core/dist/feedback/index.d.ts.map +1 -0
  60. package/node_modules/@buddi/core/dist/feedback/index.js +160 -0
  61. package/node_modules/@buddi/core/dist/feedback/index.js.map +1 -0
  62. package/node_modules/@buddi/core/dist/home.d.ts +24 -0
  63. package/node_modules/@buddi/core/dist/home.d.ts.map +1 -1
  64. package/node_modules/@buddi/core/dist/home.js +3 -0
  65. package/node_modules/@buddi/core/dist/home.js.map +1 -1
  66. package/node_modules/@buddi/core/dist/host/build.d.ts.map +1 -1
  67. package/node_modules/@buddi/core/dist/host/build.js +28 -1
  68. package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
  69. package/node_modules/@buddi/core/dist/host/types.d.ts +29 -2
  70. package/node_modules/@buddi/core/dist/host/types.d.ts.map +1 -1
  71. package/node_modules/@buddi/core/dist/index.d.ts +1 -0
  72. package/node_modules/@buddi/core/dist/index.d.ts.map +1 -1
  73. package/node_modules/@buddi/core/dist/index.js +1 -0
  74. package/node_modules/@buddi/core/dist/index.js.map +1 -1
  75. package/node_modules/@buddi/core/dist/learning/policies.d.ts +7 -1
  76. package/node_modules/@buddi/core/dist/learning/policies.d.ts.map +1 -1
  77. package/node_modules/@buddi/core/dist/learning/policies.js +4 -1
  78. package/node_modules/@buddi/core/dist/learning/policies.js.map +1 -1
  79. package/node_modules/@buddi/core/dist/learning/store.d.ts +29 -1
  80. package/node_modules/@buddi/core/dist/learning/store.d.ts.map +1 -1
  81. package/node_modules/@buddi/core/dist/learning/store.js +33 -8
  82. package/node_modules/@buddi/core/dist/learning/store.js.map +1 -1
  83. package/node_modules/@buddi/core/dist/learning/types.d.ts +24 -1
  84. package/node_modules/@buddi/core/dist/learning/types.d.ts.map +1 -1
  85. package/node_modules/@buddi/core/dist/learning/types.js +6 -0
  86. package/node_modules/@buddi/core/dist/learning/types.js.map +1 -1
  87. package/node_modules/@buddi/core/dist/owner.d.ts +2 -1
  88. package/node_modules/@buddi/core/dist/owner.d.ts.map +1 -1
  89. package/node_modules/@buddi/core/dist/owner.js.map +1 -1
  90. package/node_modules/@buddi/core/dist/pages.d.ts +27 -0
  91. package/node_modules/@buddi/core/dist/pages.d.ts.map +1 -1
  92. package/node_modules/@buddi/core/dist/pages.js +24 -3
  93. package/node_modules/@buddi/core/dist/pages.js.map +1 -1
  94. package/node_modules/@buddi/core/dist/plugin/index.d.ts +7 -6
  95. package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
  96. package/node_modules/@buddi/core/dist/plugin/index.js +1 -1
  97. package/node_modules/@buddi/core/dist/plugin/index.js.map +1 -1
  98. package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
  99. package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
  100. package/node_modules/@buddi/core/dist/postgres/binaries.d.ts +3 -1
  101. package/node_modules/@buddi/core/dist/postgres/binaries.d.ts.map +1 -1
  102. package/node_modules/@buddi/core/dist/postgres/binaries.js +15 -23
  103. package/node_modules/@buddi/core/dist/postgres/binaries.js.map +1 -1
  104. package/node_modules/@buddi/core/dist/postgres/cluster.js +1 -1
  105. package/node_modules/@buddi/core/dist/postgres/cluster.js.map +1 -1
  106. package/node_modules/@buddi/core/dist/postgres/index.d.ts +1 -0
  107. package/node_modules/@buddi/core/dist/postgres/index.d.ts.map +1 -1
  108. package/node_modules/@buddi/core/dist/postgres/index.js +1 -0
  109. package/node_modules/@buddi/core/dist/postgres/index.js.map +1 -1
  110. package/node_modules/@buddi/core/dist/postgres/links.d.ts +15 -0
  111. package/node_modules/@buddi/core/dist/postgres/links.d.ts.map +1 -0
  112. package/node_modules/@buddi/core/dist/postgres/links.js +98 -0
  113. package/node_modules/@buddi/core/dist/postgres/links.js.map +1 -0
  114. package/node_modules/@buddi/core/dist/registry.d.ts +10 -1
  115. package/node_modules/@buddi/core/dist/registry.d.ts.map +1 -1
  116. package/node_modules/@buddi/core/dist/registry.js +13 -0
  117. package/node_modules/@buddi/core/dist/registry.js.map +1 -1
  118. package/node_modules/@buddi/core/dist/sources/index.d.ts +1 -0
  119. package/node_modules/@buddi/core/dist/sources/index.d.ts.map +1 -1
  120. package/node_modules/@buddi/core/dist/sources/index.js +1 -0
  121. package/node_modules/@buddi/core/dist/sources/index.js.map +1 -1
  122. package/node_modules/@buddi/core/dist/sources/watch.d.ts +37 -0
  123. package/node_modules/@buddi/core/dist/sources/watch.d.ts.map +1 -0
  124. package/node_modules/@buddi/core/dist/sources/watch.js +81 -0
  125. package/node_modules/@buddi/core/dist/sources/watch.js.map +1 -0
  126. package/node_modules/@buddi/core/dist/tools.d.ts +47 -0
  127. package/node_modules/@buddi/core/dist/tools.d.ts.map +1 -1
  128. package/node_modules/@buddi/core/dist/tools.js.map +1 -1
  129. package/node_modules/@buddi/core/migrations/055_pending_plugin_data.sql +24 -0
  130. package/node_modules/@buddi/core/migrations/056_dashboard_sessions.sql +37 -0
  131. package/node_modules/@buddi/core/migrations/057_proposal_decided_by.sql +34 -0
  132. package/node_modules/@buddi/core/migrations/058_message_feedback.sql +50 -0
  133. package/node_modules/@buddi/core/package.json +4 -0
  134. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  135. package/node_modules/@buddi/gateway/dist/agents/learning-digest.d.ts +7 -1
  136. package/node_modules/@buddi/gateway/dist/agents/learning-digest.d.ts.map +1 -1
  137. package/node_modules/@buddi/gateway/dist/agents/learning-digest.js +29 -3
  138. package/node_modules/@buddi/gateway/dist/agents/learning-digest.js.map +1 -1
  139. package/node_modules/@buddi/gateway/dist/agents/platform-files.d.ts +2 -0
  140. package/node_modules/@buddi/gateway/dist/agents/platform-files.d.ts.map +1 -1
  141. package/node_modules/@buddi/gateway/dist/agents/platform-files.js +2 -0
  142. package/node_modules/@buddi/gateway/dist/agents/platform-files.js.map +1 -1
  143. package/node_modules/@buddi/gateway/dist/agents/platform.d.ts +20 -0
  144. package/node_modules/@buddi/gateway/dist/agents/platform.d.ts.map +1 -1
  145. package/node_modules/@buddi/gateway/dist/agents/platform.js +46 -3
  146. package/node_modules/@buddi/gateway/dist/agents/platform.js.map +1 -1
  147. package/node_modules/@buddi/gateway/dist/agents-cli.d.ts +1 -1
  148. package/node_modules/@buddi/gateway/dist/agents-cli.d.ts.map +1 -1
  149. package/node_modules/@buddi/gateway/dist/agents-cli.js +12 -2
  150. package/node_modules/@buddi/gateway/dist/agents-cli.js.map +1 -1
  151. package/node_modules/@buddi/gateway/dist/chat/session.d.ts.map +1 -1
  152. package/node_modules/@buddi/gateway/dist/chat/session.js +2 -1
  153. package/node_modules/@buddi/gateway/dist/chat/session.js.map +1 -1
  154. package/node_modules/@buddi/gateway/dist/mcp/requests.d.ts.map +1 -1
  155. package/node_modules/@buddi/gateway/dist/mcp/requests.js +1 -0
  156. package/node_modules/@buddi/gateway/dist/mcp/requests.js.map +1 -1
  157. package/node_modules/@buddi/gateway/dist/plugins/approve.d.ts.map +1 -1
  158. package/node_modules/@buddi/gateway/dist/plugins/approve.js +13 -2
  159. package/node_modules/@buddi/gateway/dist/plugins/approve.js.map +1 -1
  160. package/node_modules/@buddi/gateway/dist/plugins/migrate.d.ts.map +1 -1
  161. package/node_modules/@buddi/gateway/dist/plugins/migrate.js +11 -1
  162. package/node_modules/@buddi/gateway/dist/plugins/migrate.js.map +1 -1
  163. package/node_modules/@buddi/gateway/dist/plugins/paths.d.ts +14 -0
  164. package/node_modules/@buddi/gateway/dist/plugins/paths.d.ts.map +1 -1
  165. package/node_modules/@buddi/gateway/dist/plugins/paths.js +27 -1
  166. package/node_modules/@buddi/gateway/dist/plugins/paths.js.map +1 -1
  167. package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts +27 -3
  168. package/node_modules/@buddi/gateway/dist/plugins/stage.d.ts.map +1 -1
  169. package/node_modules/@buddi/gateway/dist/plugins/stage.js +35 -5
  170. package/node_modules/@buddi/gateway/dist/plugins/stage.js.map +1 -1
  171. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts +4 -0
  172. package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts.map +1 -1
  173. package/node_modules/@buddi/gateway/dist/plugins-cli.js +42 -9
  174. package/node_modules/@buddi/gateway/dist/plugins-cli.js.map +1 -1
  175. package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
  176. package/node_modules/@buddi/gateway/dist/serve.js +14 -2
  177. package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
  178. package/node_modules/@buddi/gateway/dist/surfaces/browser-continuation.d.ts +2 -1
  179. package/node_modules/@buddi/gateway/dist/surfaces/browser-continuation.d.ts.map +1 -1
  180. package/node_modules/@buddi/gateway/dist/surfaces/browser-continuation.js +8 -5
  181. package/node_modules/@buddi/gateway/dist/surfaces/browser-continuation.js.map +1 -1
  182. package/node_modules/@buddi/gateway/dist/surfaces/browser-handoff.d.ts +27 -4
  183. package/node_modules/@buddi/gateway/dist/surfaces/browser-handoff.d.ts.map +1 -1
  184. package/node_modules/@buddi/gateway/dist/surfaces/browser-handoff.js +57 -7
  185. package/node_modules/@buddi/gateway/dist/surfaces/browser-handoff.js.map +1 -1
  186. package/node_modules/@buddi/gateway/dist/surfaces/carry-over.d.ts +89 -0
  187. package/node_modules/@buddi/gateway/dist/surfaces/carry-over.d.ts.map +1 -0
  188. package/node_modules/@buddi/gateway/dist/surfaces/carry-over.js +172 -0
  189. package/node_modules/@buddi/gateway/dist/surfaces/carry-over.js.map +1 -0
  190. package/node_modules/@buddi/gateway/dist/surfaces/conversation-lifetime.d.ts +5 -2
  191. package/node_modules/@buddi/gateway/dist/surfaces/conversation-lifetime.d.ts.map +1 -1
  192. package/node_modules/@buddi/gateway/dist/surfaces/conversation-lifetime.js +5 -2
  193. package/node_modules/@buddi/gateway/dist/surfaces/conversation-lifetime.js.map +1 -1
  194. package/node_modules/@buddi/gateway/dist/telegram/api.d.ts +34 -2
  195. package/node_modules/@buddi/gateway/dist/telegram/api.d.ts.map +1 -1
  196. package/node_modules/@buddi/gateway/dist/telegram/api.js +15 -2
  197. package/node_modules/@buddi/gateway/dist/telegram/api.js.map +1 -1
  198. package/node_modules/@buddi/gateway/dist/telegram/env-owner.d.ts +30 -0
  199. package/node_modules/@buddi/gateway/dist/telegram/env-owner.d.ts.map +1 -0
  200. package/node_modules/@buddi/gateway/dist/telegram/env-owner.js +45 -0
  201. package/node_modules/@buddi/gateway/dist/telegram/env-owner.js.map +1 -0
  202. package/node_modules/@buddi/gateway/dist/telegram/main.d.ts +0 -2
  203. package/node_modules/@buddi/gateway/dist/telegram/main.d.ts.map +1 -1
  204. package/node_modules/@buddi/gateway/dist/telegram/main.js +20 -25
  205. package/node_modules/@buddi/gateway/dist/telegram/main.js.map +1 -1
  206. package/node_modules/@buddi/gateway/dist/telegram/notify.d.ts.map +1 -1
  207. package/node_modules/@buddi/gateway/dist/telegram/notify.js +1 -1
  208. package/node_modules/@buddi/gateway/dist/telegram/notify.js.map +1 -1
  209. package/node_modules/@buddi/gateway/dist/telegram/outbound.d.ts +2 -2
  210. package/node_modules/@buddi/gateway/dist/telegram/outbound.d.ts.map +1 -1
  211. package/node_modules/@buddi/gateway/dist/telegram/outbound.js +12 -3
  212. package/node_modules/@buddi/gateway/dist/telegram/outbound.js.map +1 -1
  213. package/node_modules/@buddi/gateway/dist/telegram/reactions.d.ts +45 -0
  214. package/node_modules/@buddi/gateway/dist/telegram/reactions.d.ts.map +1 -0
  215. package/node_modules/@buddi/gateway/dist/telegram/reactions.js +97 -0
  216. package/node_modules/@buddi/gateway/dist/telegram/reactions.js.map +1 -0
  217. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts +27 -1
  218. package/node_modules/@buddi/gateway/dist/telegram/surface.d.ts.map +1 -1
  219. package/node_modules/@buddi/gateway/dist/telegram/surface.js +186 -12
  220. package/node_modules/@buddi/gateway/dist/telegram/surface.js.map +1 -1
  221. package/node_modules/@buddi/gateway/dist/web/agents.d.ts +7 -1
  222. package/node_modules/@buddi/gateway/dist/web/agents.d.ts.map +1 -1
  223. package/node_modules/@buddi/gateway/dist/web/agents.js +32 -2
  224. package/node_modules/@buddi/gateway/dist/web/agents.js.map +1 -1
  225. package/node_modules/@buddi/gateway/dist/web/chat.d.ts +10 -3
  226. package/node_modules/@buddi/gateway/dist/web/chat.d.ts.map +1 -1
  227. package/node_modules/@buddi/gateway/dist/web/chat.js +18 -5
  228. package/node_modules/@buddi/gateway/dist/web/chat.js.map +1 -1
  229. package/node_modules/@buddi/gateway/dist/web/plugins.d.ts +6 -1
  230. package/node_modules/@buddi/gateway/dist/web/plugins.d.ts.map +1 -1
  231. package/node_modules/@buddi/gateway/dist/web/plugins.js +31 -2
  232. package/node_modules/@buddi/gateway/dist/web/plugins.js.map +1 -1
  233. package/node_modules/@buddi/gateway/dist/web/proposals.d.ts +21 -0
  234. package/node_modules/@buddi/gateway/dist/web/proposals.d.ts.map +1 -1
  235. package/node_modules/@buddi/gateway/dist/web/proposals.js +50 -1
  236. package/node_modules/@buddi/gateway/dist/web/proposals.js.map +1 -1
  237. package/node_modules/@buddi/gateway/dist/web/read.d.ts +23 -0
  238. package/node_modules/@buddi/gateway/dist/web/read.d.ts.map +1 -1
  239. package/node_modules/@buddi/gateway/dist/web/read.js +36 -1
  240. package/node_modules/@buddi/gateway/dist/web/read.js.map +1 -1
  241. package/node_modules/@buddi/gateway/dist/web/recovery.d.ts +40 -2
  242. package/node_modules/@buddi/gateway/dist/web/recovery.d.ts.map +1 -1
  243. package/node_modules/@buddi/gateway/dist/web/recovery.js +215 -18
  244. package/node_modules/@buddi/gateway/dist/web/recovery.js.map +1 -1
  245. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  246. package/node_modules/@buddi/gateway/dist/web/server.js +87 -29
  247. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  248. package/node_modules/@buddi/gateway/dist/web/sessions.d.ts +81 -7
  249. package/node_modules/@buddi/gateway/dist/web/sessions.d.ts.map +1 -1
  250. package/node_modules/@buddi/gateway/dist/web/sessions.js +242 -24
  251. package/node_modules/@buddi/gateway/dist/web/sessions.js.map +1 -1
  252. package/node_modules/@buddi/gateway/dist/web/signed-out.d.ts +46 -0
  253. package/node_modules/@buddi/gateway/dist/web/signed-out.d.ts.map +1 -0
  254. package/node_modules/@buddi/gateway/dist/web/signed-out.js +99 -0
  255. package/node_modules/@buddi/gateway/dist/web/signed-out.js.map +1 -0
  256. package/node_modules/@buddi/gateway/dist/web/tailscale.d.ts +13 -0
  257. package/node_modules/@buddi/gateway/dist/web/tailscale.d.ts.map +1 -1
  258. package/node_modules/@buddi/gateway/dist/web/tailscale.js +12 -0
  259. package/node_modules/@buddi/gateway/dist/web/tailscale.js.map +1 -1
  260. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  261. package/node_modules/@buddi/install/dist/backup.d.ts +18 -0
  262. package/node_modules/@buddi/install/dist/backup.d.ts.map +1 -1
  263. package/node_modules/@buddi/install/dist/backup.js +39 -2
  264. package/node_modules/@buddi/install/dist/backup.js.map +1 -1
  265. package/node_modules/@buddi/install/dist/kept-data.d.ts +20 -0
  266. package/node_modules/@buddi/install/dist/kept-data.d.ts.map +1 -0
  267. package/node_modules/@buddi/install/dist/kept-data.js +34 -0
  268. package/node_modules/@buddi/install/dist/kept-data.js.map +1 -0
  269. package/node_modules/@buddi/install/dist/launcher.d.ts.map +1 -1
  270. package/node_modules/@buddi/install/dist/launcher.js +17 -3
  271. package/node_modules/@buddi/install/dist/launcher.js.map +1 -1
  272. package/node_modules/@buddi/install/dist/postgres-check.d.ts +18 -0
  273. package/node_modules/@buddi/install/dist/postgres-check.d.ts.map +1 -0
  274. package/node_modules/@buddi/install/dist/postgres-check.js +66 -0
  275. package/node_modules/@buddi/install/dist/postgres-check.js.map +1 -0
  276. package/node_modules/@buddi/install/dist/upgrade.d.ts +3 -0
  277. package/node_modules/@buddi/install/dist/upgrade.d.ts.map +1 -1
  278. package/node_modules/@buddi/install/dist/upgrade.js +30 -0
  279. package/node_modules/@buddi/install/dist/upgrade.js.map +1 -1
  280. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  281. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  282. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  283. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  284. package/node_modules/@buddi/tool-email/dist/agent.d.ts.map +1 -1
  285. package/node_modules/@buddi/tool-email/dist/agent.js +11 -0
  286. package/node_modules/@buddi/tool-email/dist/agent.js.map +1 -1
  287. package/node_modules/@buddi/tool-email/dist/imap/fake.d.ts +89 -3
  288. package/node_modules/@buddi/tool-email/dist/imap/fake.d.ts.map +1 -1
  289. package/node_modules/@buddi/tool-email/dist/imap/fake.js +234 -4
  290. package/node_modules/@buddi/tool-email/dist/imap/fake.js.map +1 -1
  291. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.d.ts +14 -1
  292. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.d.ts.map +1 -1
  293. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.js +157 -2
  294. package/node_modules/@buddi/tool-email/dist/imap/imapflow-client.js.map +1 -1
  295. package/node_modules/@buddi/tool-email/dist/index.d.ts +14 -2
  296. package/node_modules/@buddi/tool-email/dist/index.d.ts.map +1 -1
  297. package/node_modules/@buddi/tool-email/dist/index.js +23 -4
  298. package/node_modules/@buddi/tool-email/dist/index.js.map +1 -1
  299. package/node_modules/@buddi/tool-email/dist/logins.d.ts +24 -0
  300. package/node_modules/@buddi/tool-email/dist/logins.d.ts.map +1 -0
  301. package/node_modules/@buddi/tool-email/dist/logins.js +35 -0
  302. package/node_modules/@buddi/tool-email/dist/logins.js.map +1 -0
  303. package/node_modules/@buddi/tool-email/dist/mail.d.ts +14 -0
  304. package/node_modules/@buddi/tool-email/dist/mail.d.ts.map +1 -1
  305. package/node_modules/@buddi/tool-email/dist/mail.js +23 -0
  306. package/node_modules/@buddi/tool-email/dist/mail.js.map +1 -1
  307. package/node_modules/@buddi/tool-email/dist/mailbox/actions.d.ts +205 -0
  308. package/node_modules/@buddi/tool-email/dist/mailbox/actions.d.ts.map +1 -0
  309. package/node_modules/@buddi/tool-email/dist/mailbox/actions.js +662 -0
  310. package/node_modules/@buddi/tool-email/dist/mailbox/actions.js.map +1 -0
  311. package/node_modules/@buddi/tool-email/dist/mailbox/arrival.d.ts +61 -0
  312. package/node_modules/@buddi/tool-email/dist/mailbox/arrival.d.ts.map +1 -0
  313. package/node_modules/@buddi/tool-email/dist/mailbox/arrival.js +153 -0
  314. package/node_modules/@buddi/tool-email/dist/mailbox/arrival.js.map +1 -0
  315. package/node_modules/@buddi/tool-email/dist/mailbox/select.d.ts +53 -0
  316. package/node_modules/@buddi/tool-email/dist/mailbox/select.d.ts.map +1 -0
  317. package/node_modules/@buddi/tool-email/dist/mailbox/select.js +117 -0
  318. package/node_modules/@buddi/tool-email/dist/mailbox/select.js.map +1 -0
  319. package/node_modules/@buddi/tool-email/dist/pages/accounts.d.ts +37 -1
  320. package/node_modules/@buddi/tool-email/dist/pages/accounts.d.ts.map +1 -1
  321. package/node_modules/@buddi/tool-email/dist/pages/accounts.js +104 -2
  322. package/node_modules/@buddi/tool-email/dist/pages/accounts.js.map +1 -1
  323. package/node_modules/@buddi/tool-email/dist/pages/descriptors.d.ts.map +1 -1
  324. package/node_modules/@buddi/tool-email/dist/pages/descriptors.js +142 -0
  325. package/node_modules/@buddi/tool-email/dist/pages/descriptors.js.map +1 -1
  326. package/node_modules/@buddi/tool-email/dist/pages/drafts-tools.d.ts +2 -2
  327. package/node_modules/@buddi/tool-email/dist/pages/format.d.ts +1 -12
  328. package/node_modules/@buddi/tool-email/dist/pages/format.d.ts.map +1 -1
  329. package/node_modules/@buddi/tool-email/dist/pages/format.js +17 -0
  330. package/node_modules/@buddi/tool-email/dist/pages/format.js.map +1 -1
  331. package/node_modules/@buddi/tool-email/dist/pages/index.d.ts.map +1 -1
  332. package/node_modules/@buddi/tool-email/dist/pages/index.js +5 -1
  333. package/node_modules/@buddi/tool-email/dist/pages/index.js.map +1 -1
  334. package/node_modules/@buddi/tool-email/dist/pages/policies-tools.d.ts +7 -0
  335. package/node_modules/@buddi/tool-email/dist/pages/policies-tools.d.ts.map +1 -1
  336. package/node_modules/@buddi/tool-email/dist/pages/policies-tools.js +11 -2
  337. package/node_modules/@buddi/tool-email/dist/pages/policies-tools.js.map +1 -1
  338. package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts +16 -0
  339. package/node_modules/@buddi/tool-email/dist/pages/queries.d.ts.map +1 -1
  340. package/node_modules/@buddi/tool-email/dist/pages/queries.js +154 -3
  341. package/node_modules/@buddi/tool-email/dist/pages/queries.js.map +1 -1
  342. package/node_modules/@buddi/tool-email/dist/policies/auto.d.ts +133 -0
  343. package/node_modules/@buddi/tool-email/dist/policies/auto.d.ts.map +1 -0
  344. package/node_modules/@buddi/tool-email/dist/policies/auto.js +241 -0
  345. package/node_modules/@buddi/tool-email/dist/policies/auto.js.map +1 -0
  346. package/node_modules/@buddi/tool-email/dist/policies/gate.d.ts +34 -10
  347. package/node_modules/@buddi/tool-email/dist/policies/gate.d.ts.map +1 -1
  348. package/node_modules/@buddi/tool-email/dist/policies/gate.js +27 -12
  349. package/node_modules/@buddi/tool-email/dist/policies/gate.js.map +1 -1
  350. package/node_modules/@buddi/tool-email/dist/policies/learn.d.ts +26 -18
  351. package/node_modules/@buddi/tool-email/dist/policies/learn.d.ts.map +1 -1
  352. package/node_modules/@buddi/tool-email/dist/policies/learn.js +36 -10
  353. package/node_modules/@buddi/tool-email/dist/policies/learn.js.map +1 -1
  354. package/node_modules/@buddi/tool-email/dist/policies/learned.d.ts +25 -2
  355. package/node_modules/@buddi/tool-email/dist/policies/learned.d.ts.map +1 -1
  356. package/node_modules/@buddi/tool-email/dist/policies/learned.js +47 -5
  357. package/node_modules/@buddi/tool-email/dist/policies/learned.js.map +1 -1
  358. package/node_modules/@buddi/tool-email/dist/policies/store.d.ts +8 -2
  359. package/node_modules/@buddi/tool-email/dist/policies/store.d.ts.map +1 -1
  360. package/node_modules/@buddi/tool-email/dist/policies/store.js +19 -5
  361. package/node_modules/@buddi/tool-email/dist/policies/store.js.map +1 -1
  362. package/node_modules/@buddi/tool-email/dist/ports.d.ts +79 -0
  363. package/node_modules/@buddi/tool-email/dist/ports.d.ts.map +1 -1
  364. package/node_modules/@buddi/tool-email/dist/ports.js +6 -0
  365. package/node_modules/@buddi/tool-email/dist/ports.js.map +1 -1
  366. package/node_modules/@buddi/tool-email/dist/rows.d.ts.map +1 -1
  367. package/node_modules/@buddi/tool-email/dist/rows.js +3 -1
  368. package/node_modules/@buddi/tool-email/dist/rows.js.map +1 -1
  369. package/node_modules/@buddi/tool-email/dist/sources/idle.d.ts +90 -0
  370. package/node_modules/@buddi/tool-email/dist/sources/idle.d.ts.map +1 -0
  371. package/node_modules/@buddi/tool-email/dist/sources/idle.js +250 -0
  372. package/node_modules/@buddi/tool-email/dist/sources/idle.js.map +1 -0
  373. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.d.ts +12 -1
  374. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.d.ts.map +1 -1
  375. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js +280 -134
  376. package/node_modules/@buddi/tool-email/dist/sources/inbox-poll.js.map +1 -1
  377. package/node_modules/@buddi/tool-email/dist/tools/mailbox.d.ts +108 -0
  378. package/node_modules/@buddi/tool-email/dist/tools/mailbox.d.ts.map +1 -0
  379. package/node_modules/@buddi/tool-email/dist/tools/mailbox.js +359 -0
  380. package/node_modules/@buddi/tool-email/dist/tools/mailbox.js.map +1 -0
  381. package/node_modules/@buddi/tool-email/dist/tools/policies.d.ts +8 -2
  382. package/node_modules/@buddi/tool-email/dist/tools/policies.d.ts.map +1 -1
  383. package/node_modules/@buddi/tool-email/dist/tools/policies.js +43 -3
  384. package/node_modules/@buddi/tool-email/dist/tools/policies.js.map +1 -1
  385. package/node_modules/@buddi/tool-email/dist/tools/read.d.ts +2 -2
  386. package/node_modules/@buddi/tool-email/dist/tools/triage.d.ts.map +1 -1
  387. package/node_modules/@buddi/tool-email/dist/tools/triage.js +10 -4
  388. package/node_modules/@buddi/tool-email/dist/tools/triage.js.map +1 -1
  389. package/node_modules/@buddi/tool-email/migrations/017_mailbox_actions.sql +60 -0
  390. package/node_modules/@buddi/tool-email/migrations/018_learned_auto.sql +30 -0
  391. package/node_modules/@buddi/tool-email/migrations/019_arrival_pending.sql +26 -0
  392. package/node_modules/@buddi/tool-email/package.json +3 -2
  393. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  394. package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
  395. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  396. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  397. package/node_modules/imapflow/CHANGELOG.md +14 -0
  398. package/node_modules/imapflow/dist/cjs/commands/fetch.js +1 -1
  399. package/node_modules/imapflow/dist/cjs/imap-flow.d.ts +2 -0
  400. package/node_modules/imapflow/dist/cjs/imap-flow.js +14 -1
  401. package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
  402. package/node_modules/imapflow/dist/cjs/package-info.js +1 -1
  403. package/node_modules/imapflow/dist/cjs/tools.d.ts +2 -1
  404. package/node_modules/imapflow/dist/cjs/tools.js +8 -6
  405. package/node_modules/imapflow/dist/cjs/types.d.ts +9 -1
  406. package/node_modules/imapflow/dist/esm/commands/fetch.js +1 -1
  407. package/node_modules/imapflow/dist/esm/imap-flow.d.ts +2 -0
  408. package/node_modules/imapflow/dist/esm/imap-flow.js +14 -1
  409. package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
  410. package/node_modules/imapflow/dist/esm/package-info.js +1 -1
  411. package/node_modules/imapflow/dist/esm/tools.d.ts +2 -1
  412. package/node_modules/imapflow/dist/esm/tools.js +8 -6
  413. package/node_modules/imapflow/dist/esm/types.d.ts +9 -1
  414. package/node_modules/imapflow/package.json +4 -4
  415. package/package.json +2 -2
  416. package/packages/cli/dist/.tsbuildinfo +1 -1
  417. package/packages/cli/dist/commands.d.ts +10 -0
  418. package/packages/cli/dist/commands.d.ts.map +1 -1
  419. package/packages/cli/dist/commands.js +237 -18
  420. package/packages/cli/dist/commands.js.map +1 -1
  421. package/packages/cli/dist/doctor-probes.d.ts.map +1 -1
  422. package/packages/cli/dist/doctor-probes.js +10 -8
  423. package/packages/cli/dist/doctor-probes.js.map +1 -1
  424. package/packages/cli/dist/doctor.d.ts +28 -0
  425. package/packages/cli/dist/doctor.d.ts.map +1 -1
  426. package/packages/cli/dist/doctor.js +36 -0
  427. package/packages/cli/dist/doctor.js.map +1 -1
  428. package/packages/cli/dist/mcp/tools.d.ts.map +1 -1
  429. package/packages/cli/dist/mcp/tools.js +3 -2
  430. package/packages/cli/dist/mcp/tools.js.map +1 -1
  431. package/packages/core/dist/.tsbuildinfo +1 -1
  432. package/packages/core/dist/agents/catalog.d.ts +3 -0
  433. package/packages/core/dist/agents/catalog.d.ts.map +1 -1
  434. package/packages/core/dist/agents/catalog.js +1 -0
  435. package/packages/core/dist/agents/catalog.js.map +1 -1
  436. package/packages/core/dist/agents/edit.d.ts +3 -0
  437. package/packages/core/dist/agents/edit.d.ts.map +1 -1
  438. package/packages/core/dist/agents/edit.js +3 -1
  439. package/packages/core/dist/agents/edit.js.map +1 -1
  440. package/packages/core/dist/agents/frontmatter.d.ts +10 -0
  441. package/packages/core/dist/agents/frontmatter.d.ts.map +1 -1
  442. package/packages/core/dist/agents/frontmatter.js +7 -0
  443. package/packages/core/dist/agents/frontmatter.js.map +1 -1
  444. package/packages/core/dist/agents/idle-rollover.d.ts +20 -0
  445. package/packages/core/dist/agents/idle-rollover.d.ts.map +1 -0
  446. package/packages/core/dist/agents/idle-rollover.js +30 -0
  447. package/packages/core/dist/agents/idle-rollover.js.map +1 -0
  448. package/packages/core/dist/agents/index.d.ts +1 -0
  449. package/packages/core/dist/agents/index.d.ts.map +1 -1
  450. package/packages/core/dist/agents/index.js +1 -0
  451. package/packages/core/dist/agents/index.js.map +1 -1
  452. package/packages/core/dist/backup/dump.d.ts +9 -0
  453. package/packages/core/dist/backup/dump.d.ts.map +1 -1
  454. package/packages/core/dist/backup/dump.js +10 -1
  455. package/packages/core/dist/backup/dump.js.map +1 -1
  456. package/packages/core/dist/backup/index.d.ts +1 -0
  457. package/packages/core/dist/backup/index.d.ts.map +1 -1
  458. package/packages/core/dist/backup/index.js +1 -0
  459. package/packages/core/dist/backup/index.js.map +1 -1
  460. package/packages/core/dist/backup/load.d.ts +18 -0
  461. package/packages/core/dist/backup/load.d.ts.map +1 -1
  462. package/packages/core/dist/backup/load.js +3 -2
  463. package/packages/core/dist/backup/load.js.map +1 -1
  464. package/packages/core/dist/backup/pending.d.ts +114 -0
  465. package/packages/core/dist/backup/pending.d.ts.map +1 -0
  466. package/packages/core/dist/backup/pending.js +392 -0
  467. package/packages/core/dist/backup/pending.js.map +1 -0
  468. package/packages/core/dist/backup/restore.d.ts +3 -1
  469. package/packages/core/dist/backup/restore.d.ts.map +1 -1
  470. package/packages/core/dist/backup/restore.js +55 -2
  471. package/packages/core/dist/backup/restore.js.map +1 -1
  472. package/packages/core/dist/feedback/index.d.ts +108 -0
  473. package/packages/core/dist/feedback/index.d.ts.map +1 -0
  474. package/packages/core/dist/feedback/index.js +160 -0
  475. package/packages/core/dist/feedback/index.js.map +1 -0
  476. package/packages/core/dist/home.d.ts +24 -0
  477. package/packages/core/dist/home.d.ts.map +1 -1
  478. package/packages/core/dist/home.js +3 -0
  479. package/packages/core/dist/home.js.map +1 -1
  480. package/packages/core/dist/host/build.d.ts.map +1 -1
  481. package/packages/core/dist/host/build.js +28 -1
  482. package/packages/core/dist/host/build.js.map +1 -1
  483. package/packages/core/dist/host/types.d.ts +29 -2
  484. package/packages/core/dist/host/types.d.ts.map +1 -1
  485. package/packages/core/dist/index.d.ts +1 -0
  486. package/packages/core/dist/index.d.ts.map +1 -1
  487. package/packages/core/dist/index.js +1 -0
  488. package/packages/core/dist/index.js.map +1 -1
  489. package/packages/core/dist/learning/policies.d.ts +7 -1
  490. package/packages/core/dist/learning/policies.d.ts.map +1 -1
  491. package/packages/core/dist/learning/policies.js +4 -1
  492. package/packages/core/dist/learning/policies.js.map +1 -1
  493. package/packages/core/dist/learning/store.d.ts +29 -1
  494. package/packages/core/dist/learning/store.d.ts.map +1 -1
  495. package/packages/core/dist/learning/store.js +33 -8
  496. package/packages/core/dist/learning/store.js.map +1 -1
  497. package/packages/core/dist/learning/types.d.ts +24 -1
  498. package/packages/core/dist/learning/types.d.ts.map +1 -1
  499. package/packages/core/dist/learning/types.js +6 -0
  500. package/packages/core/dist/learning/types.js.map +1 -1
  501. package/packages/core/dist/owner.d.ts +2 -1
  502. package/packages/core/dist/owner.d.ts.map +1 -1
  503. package/packages/core/dist/owner.js.map +1 -1
  504. package/packages/core/dist/pages.d.ts +27 -0
  505. package/packages/core/dist/pages.d.ts.map +1 -1
  506. package/packages/core/dist/pages.js +24 -3
  507. package/packages/core/dist/pages.js.map +1 -1
  508. package/packages/core/dist/plugin/index.d.ts +7 -6
  509. package/packages/core/dist/plugin/index.d.ts.map +1 -1
  510. package/packages/core/dist/plugin/index.js +1 -1
  511. package/packages/core/dist/plugin/index.js.map +1 -1
  512. package/packages/core/dist/plugin/version.d.ts +1 -1
  513. package/packages/core/dist/plugin/version.js +1 -1
  514. package/packages/core/dist/postgres/binaries.d.ts +3 -1
  515. package/packages/core/dist/postgres/binaries.d.ts.map +1 -1
  516. package/packages/core/dist/postgres/binaries.js +15 -23
  517. package/packages/core/dist/postgres/binaries.js.map +1 -1
  518. package/packages/core/dist/postgres/cluster.js +1 -1
  519. package/packages/core/dist/postgres/cluster.js.map +1 -1
  520. package/packages/core/dist/postgres/index.d.ts +1 -0
  521. package/packages/core/dist/postgres/index.d.ts.map +1 -1
  522. package/packages/core/dist/postgres/index.js +1 -0
  523. package/packages/core/dist/postgres/index.js.map +1 -1
  524. package/packages/core/dist/postgres/links.d.ts +15 -0
  525. package/packages/core/dist/postgres/links.d.ts.map +1 -0
  526. package/packages/core/dist/postgres/links.js +98 -0
  527. package/packages/core/dist/postgres/links.js.map +1 -0
  528. package/packages/core/dist/registry.d.ts +10 -1
  529. package/packages/core/dist/registry.d.ts.map +1 -1
  530. package/packages/core/dist/registry.js +13 -0
  531. package/packages/core/dist/registry.js.map +1 -1
  532. package/packages/core/dist/sources/index.d.ts +1 -0
  533. package/packages/core/dist/sources/index.d.ts.map +1 -1
  534. package/packages/core/dist/sources/index.js +1 -0
  535. package/packages/core/dist/sources/index.js.map +1 -1
  536. package/packages/core/dist/sources/watch.d.ts +37 -0
  537. package/packages/core/dist/sources/watch.d.ts.map +1 -0
  538. package/packages/core/dist/sources/watch.js +81 -0
  539. package/packages/core/dist/sources/watch.js.map +1 -0
  540. package/packages/core/dist/tools.d.ts +47 -0
  541. package/packages/core/dist/tools.d.ts.map +1 -1
  542. package/packages/core/dist/tools.js.map +1 -1
  543. package/packages/core/migrations/055_pending_plugin_data.sql +24 -0
  544. package/packages/core/migrations/056_dashboard_sessions.sql +37 -0
  545. package/packages/core/migrations/057_proposal_decided_by.sql +34 -0
  546. package/packages/core/migrations/058_message_feedback.sql +50 -0
  547. package/packages/core/package.json +4 -0
  548. package/packages/gateway/dist/.tsbuildinfo +1 -1
  549. package/packages/gateway/dist/agents/learning-digest.d.ts +7 -1
  550. package/packages/gateway/dist/agents/learning-digest.d.ts.map +1 -1
  551. package/packages/gateway/dist/agents/learning-digest.js +29 -3
  552. package/packages/gateway/dist/agents/learning-digest.js.map +1 -1
  553. package/packages/gateway/dist/agents/platform-files.d.ts +2 -0
  554. package/packages/gateway/dist/agents/platform-files.d.ts.map +1 -1
  555. package/packages/gateway/dist/agents/platform-files.js +2 -0
  556. package/packages/gateway/dist/agents/platform-files.js.map +1 -1
  557. package/packages/gateway/dist/agents/platform.d.ts +20 -0
  558. package/packages/gateway/dist/agents/platform.d.ts.map +1 -1
  559. package/packages/gateway/dist/agents/platform.js +46 -3
  560. package/packages/gateway/dist/agents/platform.js.map +1 -1
  561. package/packages/gateway/dist/agents-cli.d.ts +1 -1
  562. package/packages/gateway/dist/agents-cli.d.ts.map +1 -1
  563. package/packages/gateway/dist/agents-cli.js +12 -2
  564. package/packages/gateway/dist/agents-cli.js.map +1 -1
  565. package/packages/gateway/dist/chat/session.d.ts.map +1 -1
  566. package/packages/gateway/dist/chat/session.js +2 -1
  567. package/packages/gateway/dist/chat/session.js.map +1 -1
  568. package/packages/gateway/dist/mcp/requests.d.ts.map +1 -1
  569. package/packages/gateway/dist/mcp/requests.js +1 -0
  570. package/packages/gateway/dist/mcp/requests.js.map +1 -1
  571. package/packages/gateway/dist/plugins/approve.d.ts.map +1 -1
  572. package/packages/gateway/dist/plugins/approve.js +13 -2
  573. package/packages/gateway/dist/plugins/approve.js.map +1 -1
  574. package/packages/gateway/dist/plugins/migrate.d.ts.map +1 -1
  575. package/packages/gateway/dist/plugins/migrate.js +11 -1
  576. package/packages/gateway/dist/plugins/migrate.js.map +1 -1
  577. package/packages/gateway/dist/plugins/paths.d.ts +14 -0
  578. package/packages/gateway/dist/plugins/paths.d.ts.map +1 -1
  579. package/packages/gateway/dist/plugins/paths.js +27 -1
  580. package/packages/gateway/dist/plugins/paths.js.map +1 -1
  581. package/packages/gateway/dist/plugins/stage.d.ts +27 -3
  582. package/packages/gateway/dist/plugins/stage.d.ts.map +1 -1
  583. package/packages/gateway/dist/plugins/stage.js +35 -5
  584. package/packages/gateway/dist/plugins/stage.js.map +1 -1
  585. package/packages/gateway/dist/plugins-cli.d.ts +4 -0
  586. package/packages/gateway/dist/plugins-cli.d.ts.map +1 -1
  587. package/packages/gateway/dist/plugins-cli.js +42 -9
  588. package/packages/gateway/dist/plugins-cli.js.map +1 -1
  589. package/packages/gateway/dist/serve.d.ts.map +1 -1
  590. package/packages/gateway/dist/serve.js +14 -2
  591. package/packages/gateway/dist/serve.js.map +1 -1
  592. package/packages/gateway/dist/surfaces/browser-continuation.d.ts +2 -1
  593. package/packages/gateway/dist/surfaces/browser-continuation.d.ts.map +1 -1
  594. package/packages/gateway/dist/surfaces/browser-continuation.js +8 -5
  595. package/packages/gateway/dist/surfaces/browser-continuation.js.map +1 -1
  596. package/packages/gateway/dist/surfaces/browser-handoff.d.ts +27 -4
  597. package/packages/gateway/dist/surfaces/browser-handoff.d.ts.map +1 -1
  598. package/packages/gateway/dist/surfaces/browser-handoff.js +57 -7
  599. package/packages/gateway/dist/surfaces/browser-handoff.js.map +1 -1
  600. package/packages/gateway/dist/surfaces/carry-over.d.ts +89 -0
  601. package/packages/gateway/dist/surfaces/carry-over.d.ts.map +1 -0
  602. package/packages/gateway/dist/surfaces/carry-over.js +172 -0
  603. package/packages/gateway/dist/surfaces/carry-over.js.map +1 -0
  604. package/packages/gateway/dist/surfaces/conversation-lifetime.d.ts +5 -2
  605. package/packages/gateway/dist/surfaces/conversation-lifetime.d.ts.map +1 -1
  606. package/packages/gateway/dist/surfaces/conversation-lifetime.js +5 -2
  607. package/packages/gateway/dist/surfaces/conversation-lifetime.js.map +1 -1
  608. package/packages/gateway/dist/telegram/api.d.ts +34 -2
  609. package/packages/gateway/dist/telegram/api.d.ts.map +1 -1
  610. package/packages/gateway/dist/telegram/api.js +15 -2
  611. package/packages/gateway/dist/telegram/api.js.map +1 -1
  612. package/packages/gateway/dist/telegram/env-owner.d.ts +30 -0
  613. package/packages/gateway/dist/telegram/env-owner.d.ts.map +1 -0
  614. package/packages/gateway/dist/telegram/env-owner.js +45 -0
  615. package/packages/gateway/dist/telegram/env-owner.js.map +1 -0
  616. package/packages/gateway/dist/telegram/main.d.ts +0 -2
  617. package/packages/gateway/dist/telegram/main.d.ts.map +1 -1
  618. package/packages/gateway/dist/telegram/main.js +20 -25
  619. package/packages/gateway/dist/telegram/main.js.map +1 -1
  620. package/packages/gateway/dist/telegram/notify.d.ts.map +1 -1
  621. package/packages/gateway/dist/telegram/notify.js +1 -1
  622. package/packages/gateway/dist/telegram/notify.js.map +1 -1
  623. package/packages/gateway/dist/telegram/outbound.d.ts +2 -2
  624. package/packages/gateway/dist/telegram/outbound.d.ts.map +1 -1
  625. package/packages/gateway/dist/telegram/outbound.js +12 -3
  626. package/packages/gateway/dist/telegram/outbound.js.map +1 -1
  627. package/packages/gateway/dist/telegram/reactions.d.ts +45 -0
  628. package/packages/gateway/dist/telegram/reactions.d.ts.map +1 -0
  629. package/packages/gateway/dist/telegram/reactions.js +97 -0
  630. package/packages/gateway/dist/telegram/reactions.js.map +1 -0
  631. package/packages/gateway/dist/telegram/surface.d.ts +27 -1
  632. package/packages/gateway/dist/telegram/surface.d.ts.map +1 -1
  633. package/packages/gateway/dist/telegram/surface.js +186 -12
  634. package/packages/gateway/dist/telegram/surface.js.map +1 -1
  635. package/packages/gateway/dist/web/agents.d.ts +7 -1
  636. package/packages/gateway/dist/web/agents.d.ts.map +1 -1
  637. package/packages/gateway/dist/web/agents.js +32 -2
  638. package/packages/gateway/dist/web/agents.js.map +1 -1
  639. package/packages/gateway/dist/web/chat.d.ts +10 -3
  640. package/packages/gateway/dist/web/chat.d.ts.map +1 -1
  641. package/packages/gateway/dist/web/chat.js +18 -5
  642. package/packages/gateway/dist/web/chat.js.map +1 -1
  643. package/packages/gateway/dist/web/plugins.d.ts +6 -1
  644. package/packages/gateway/dist/web/plugins.d.ts.map +1 -1
  645. package/packages/gateway/dist/web/plugins.js +31 -2
  646. package/packages/gateway/dist/web/plugins.js.map +1 -1
  647. package/packages/gateway/dist/web/proposals.d.ts +21 -0
  648. package/packages/gateway/dist/web/proposals.d.ts.map +1 -1
  649. package/packages/gateway/dist/web/proposals.js +50 -1
  650. package/packages/gateway/dist/web/proposals.js.map +1 -1
  651. package/packages/gateway/dist/web/read.d.ts +23 -0
  652. package/packages/gateway/dist/web/read.d.ts.map +1 -1
  653. package/packages/gateway/dist/web/read.js +36 -1
  654. package/packages/gateway/dist/web/read.js.map +1 -1
  655. package/packages/gateway/dist/web/recovery.d.ts +40 -2
  656. package/packages/gateway/dist/web/recovery.d.ts.map +1 -1
  657. package/packages/gateway/dist/web/recovery.js +215 -18
  658. package/packages/gateway/dist/web/recovery.js.map +1 -1
  659. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  660. package/packages/gateway/dist/web/server.js +87 -29
  661. package/packages/gateway/dist/web/server.js.map +1 -1
  662. package/packages/gateway/dist/web/sessions.d.ts +81 -7
  663. package/packages/gateway/dist/web/sessions.d.ts.map +1 -1
  664. package/packages/gateway/dist/web/sessions.js +242 -24
  665. package/packages/gateway/dist/web/sessions.js.map +1 -1
  666. package/packages/gateway/dist/web/signed-out.d.ts +46 -0
  667. package/packages/gateway/dist/web/signed-out.d.ts.map +1 -0
  668. package/packages/gateway/dist/web/signed-out.js +99 -0
  669. package/packages/gateway/dist/web/signed-out.js.map +1 -0
  670. package/packages/gateway/dist/web/tailscale.d.ts +13 -0
  671. package/packages/gateway/dist/web/tailscale.d.ts.map +1 -1
  672. package/packages/gateway/dist/web/tailscale.js +12 -0
  673. package/packages/gateway/dist/web/tailscale.js.map +1 -1
  674. package/packages/install/dist/.tsbuildinfo +1 -1
  675. package/packages/install/dist/backup.d.ts +18 -0
  676. package/packages/install/dist/backup.d.ts.map +1 -1
  677. package/packages/install/dist/backup.js +39 -2
  678. package/packages/install/dist/backup.js.map +1 -1
  679. package/packages/install/dist/kept-data.d.ts +20 -0
  680. package/packages/install/dist/kept-data.d.ts.map +1 -0
  681. package/packages/install/dist/kept-data.js +34 -0
  682. package/packages/install/dist/kept-data.js.map +1 -0
  683. package/packages/install/dist/launcher.d.ts.map +1 -1
  684. package/packages/install/dist/launcher.js +17 -3
  685. package/packages/install/dist/launcher.js.map +1 -1
  686. package/packages/install/dist/postgres-check.d.ts +18 -0
  687. package/packages/install/dist/postgres-check.d.ts.map +1 -0
  688. package/packages/install/dist/postgres-check.js +66 -0
  689. package/packages/install/dist/postgres-check.js.map +1 -0
  690. package/packages/install/dist/upgrade.d.ts +3 -0
  691. package/packages/install/dist/upgrade.d.ts.map +1 -1
  692. package/packages/install/dist/upgrade.js +30 -0
  693. package/packages/install/dist/upgrade.js.map +1 -1
  694. package/packages/runtime/dist/.tsbuildinfo +1 -1
  695. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  696. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  697. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  698. package/packages/tools/email/dist/agent.d.ts.map +1 -1
  699. package/packages/tools/email/dist/agent.js +11 -0
  700. package/packages/tools/email/dist/agent.js.map +1 -1
  701. package/packages/tools/email/dist/imap/fake.d.ts +89 -3
  702. package/packages/tools/email/dist/imap/fake.d.ts.map +1 -1
  703. package/packages/tools/email/dist/imap/fake.js +234 -4
  704. package/packages/tools/email/dist/imap/fake.js.map +1 -1
  705. package/packages/tools/email/dist/imap/imapflow-client.d.ts +14 -1
  706. package/packages/tools/email/dist/imap/imapflow-client.d.ts.map +1 -1
  707. package/packages/tools/email/dist/imap/imapflow-client.js +157 -2
  708. package/packages/tools/email/dist/imap/imapflow-client.js.map +1 -1
  709. package/packages/tools/email/dist/index.d.ts +14 -2
  710. package/packages/tools/email/dist/index.d.ts.map +1 -1
  711. package/packages/tools/email/dist/index.js +23 -4
  712. package/packages/tools/email/dist/index.js.map +1 -1
  713. package/packages/tools/email/dist/logins.d.ts +24 -0
  714. package/packages/tools/email/dist/logins.d.ts.map +1 -0
  715. package/packages/tools/email/dist/logins.js +35 -0
  716. package/packages/tools/email/dist/logins.js.map +1 -0
  717. package/packages/tools/email/dist/mail.d.ts +14 -0
  718. package/packages/tools/email/dist/mail.d.ts.map +1 -1
  719. package/packages/tools/email/dist/mail.js +23 -0
  720. package/packages/tools/email/dist/mail.js.map +1 -1
  721. package/packages/tools/email/dist/mailbox/actions.d.ts +205 -0
  722. package/packages/tools/email/dist/mailbox/actions.d.ts.map +1 -0
  723. package/packages/tools/email/dist/mailbox/actions.js +662 -0
  724. package/packages/tools/email/dist/mailbox/actions.js.map +1 -0
  725. package/packages/tools/email/dist/mailbox/arrival.d.ts +61 -0
  726. package/packages/tools/email/dist/mailbox/arrival.d.ts.map +1 -0
  727. package/packages/tools/email/dist/mailbox/arrival.js +153 -0
  728. package/packages/tools/email/dist/mailbox/arrival.js.map +1 -0
  729. package/packages/tools/email/dist/mailbox/select.d.ts +53 -0
  730. package/packages/tools/email/dist/mailbox/select.d.ts.map +1 -0
  731. package/packages/tools/email/dist/mailbox/select.js +117 -0
  732. package/packages/tools/email/dist/mailbox/select.js.map +1 -0
  733. package/packages/tools/email/dist/pages/accounts.d.ts +37 -1
  734. package/packages/tools/email/dist/pages/accounts.d.ts.map +1 -1
  735. package/packages/tools/email/dist/pages/accounts.js +104 -2
  736. package/packages/tools/email/dist/pages/accounts.js.map +1 -1
  737. package/packages/tools/email/dist/pages/descriptors.d.ts.map +1 -1
  738. package/packages/tools/email/dist/pages/descriptors.js +142 -0
  739. package/packages/tools/email/dist/pages/descriptors.js.map +1 -1
  740. package/packages/tools/email/dist/pages/drafts-tools.d.ts +2 -2
  741. package/packages/tools/email/dist/pages/format.d.ts +1 -12
  742. package/packages/tools/email/dist/pages/format.d.ts.map +1 -1
  743. package/packages/tools/email/dist/pages/format.js +17 -0
  744. package/packages/tools/email/dist/pages/format.js.map +1 -1
  745. package/packages/tools/email/dist/pages/index.d.ts.map +1 -1
  746. package/packages/tools/email/dist/pages/index.js +5 -1
  747. package/packages/tools/email/dist/pages/index.js.map +1 -1
  748. package/packages/tools/email/dist/pages/policies-tools.d.ts +7 -0
  749. package/packages/tools/email/dist/pages/policies-tools.d.ts.map +1 -1
  750. package/packages/tools/email/dist/pages/policies-tools.js +11 -2
  751. package/packages/tools/email/dist/pages/policies-tools.js.map +1 -1
  752. package/packages/tools/email/dist/pages/queries.d.ts +16 -0
  753. package/packages/tools/email/dist/pages/queries.d.ts.map +1 -1
  754. package/packages/tools/email/dist/pages/queries.js +154 -3
  755. package/packages/tools/email/dist/pages/queries.js.map +1 -1
  756. package/packages/tools/email/dist/policies/auto.d.ts +133 -0
  757. package/packages/tools/email/dist/policies/auto.d.ts.map +1 -0
  758. package/packages/tools/email/dist/policies/auto.js +241 -0
  759. package/packages/tools/email/dist/policies/auto.js.map +1 -0
  760. package/packages/tools/email/dist/policies/gate.d.ts +34 -10
  761. package/packages/tools/email/dist/policies/gate.d.ts.map +1 -1
  762. package/packages/tools/email/dist/policies/gate.js +27 -12
  763. package/packages/tools/email/dist/policies/gate.js.map +1 -1
  764. package/packages/tools/email/dist/policies/learn.d.ts +26 -18
  765. package/packages/tools/email/dist/policies/learn.d.ts.map +1 -1
  766. package/packages/tools/email/dist/policies/learn.js +36 -10
  767. package/packages/tools/email/dist/policies/learn.js.map +1 -1
  768. package/packages/tools/email/dist/policies/learned.d.ts +25 -2
  769. package/packages/tools/email/dist/policies/learned.d.ts.map +1 -1
  770. package/packages/tools/email/dist/policies/learned.js +47 -5
  771. package/packages/tools/email/dist/policies/learned.js.map +1 -1
  772. package/packages/tools/email/dist/policies/store.d.ts +8 -2
  773. package/packages/tools/email/dist/policies/store.d.ts.map +1 -1
  774. package/packages/tools/email/dist/policies/store.js +19 -5
  775. package/packages/tools/email/dist/policies/store.js.map +1 -1
  776. package/packages/tools/email/dist/ports.d.ts +79 -0
  777. package/packages/tools/email/dist/ports.d.ts.map +1 -1
  778. package/packages/tools/email/dist/ports.js +6 -0
  779. package/packages/tools/email/dist/ports.js.map +1 -1
  780. package/packages/tools/email/dist/rows.d.ts.map +1 -1
  781. package/packages/tools/email/dist/rows.js +3 -1
  782. package/packages/tools/email/dist/rows.js.map +1 -1
  783. package/packages/tools/email/dist/sources/idle.d.ts +90 -0
  784. package/packages/tools/email/dist/sources/idle.d.ts.map +1 -0
  785. package/packages/tools/email/dist/sources/idle.js +250 -0
  786. package/packages/tools/email/dist/sources/idle.js.map +1 -0
  787. package/packages/tools/email/dist/sources/inbox-poll.d.ts +12 -1
  788. package/packages/tools/email/dist/sources/inbox-poll.d.ts.map +1 -1
  789. package/packages/tools/email/dist/sources/inbox-poll.js +280 -134
  790. package/packages/tools/email/dist/sources/inbox-poll.js.map +1 -1
  791. package/packages/tools/email/dist/tools/mailbox.d.ts +108 -0
  792. package/packages/tools/email/dist/tools/mailbox.d.ts.map +1 -0
  793. package/packages/tools/email/dist/tools/mailbox.js +359 -0
  794. package/packages/tools/email/dist/tools/mailbox.js.map +1 -0
  795. package/packages/tools/email/dist/tools/policies.d.ts +8 -2
  796. package/packages/tools/email/dist/tools/policies.d.ts.map +1 -1
  797. package/packages/tools/email/dist/tools/policies.js +43 -3
  798. package/packages/tools/email/dist/tools/policies.js.map +1 -1
  799. package/packages/tools/email/dist/tools/read.d.ts +2 -2
  800. package/packages/tools/email/dist/tools/triage.d.ts.map +1 -1
  801. package/packages/tools/email/dist/tools/triage.js +10 -4
  802. package/packages/tools/email/dist/tools/triage.js.map +1 -1
  803. package/packages/tools/email/migrations/017_mailbox_actions.sql +60 -0
  804. package/packages/tools/email/migrations/018_learned_auto.sql +30 -0
  805. package/packages/tools/email/migrations/019_arrival_pending.sql +26 -0
  806. package/packages/tools/email/package.json +3 -2
  807. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  808. package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
  809. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  810. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  811. package/packages/web/dist/assets/index-CKuhKCWw.js +131 -0
  812. package/packages/web/dist/assets/index-DsK8UWCJ.css +1 -0
  813. package/packages/web/dist/assets/{lottie_light-7wQnGwdw.js → lottie_light-CSeMXM8D.js} +1 -1
  814. package/packages/web/dist/build.json +1 -1
  815. package/packages/web/dist/index.html +2 -2
  816. package/packages/web/dist/precache.json +4 -4
  817. package/packages/web/dist/assets/index-BxbiKNMS.css +0 -1
  818. package/packages/web/dist/assets/index-Rrze3bGo.js +0 -130
@@ -27,6 +27,7 @@ export * from './archive.js';
27
27
  export * from './prune.js';
28
28
  export * from './dump.js';
29
29
  export * from './load.js';
30
+ export * from './pending.js';
30
31
  export * from './create.js';
31
32
  export * from './verify.js';
32
33
  export * from './restore.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backup/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backup/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
@@ -73,4 +73,22 @@ export declare function schemaDropProblem(schema: string): string | null;
73
73
  */
74
74
  export declare function schemasToDrop(sources: readonly MigrationSource[], targetLedger: readonly string[]): string[];
75
75
  export declare function loadDatabase(pool: Pool, stageDir: string, opts?: LoadOptions): Promise<LoadReport>;
76
+ /**
77
+ * The foreign keys defined on these tables, each as the statement that adds it
78
+ * back (`pg_get_constraintdef`), so the load can hold them off and restore them
79
+ * exactly. Only keys *on* the loaded tables: keys on other tables that point
80
+ * into them are left alone, and a truncate cascade already emptied those.
81
+ */
82
+ export declare function foreignKeysOf(client: {
83
+ query: (sql: string, params?: unknown[]) => Promise<{
84
+ rows: Array<Record<string, unknown>>;
85
+ }>;
86
+ }, tables: ReadonlyArray<{
87
+ schema: string;
88
+ table: string;
89
+ }>): Promise<Array<{
90
+ table: string;
91
+ name: string;
92
+ definition: string;
93
+ }>>;
76
94
  //# sourceMappingURL=load.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/backup/load.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;AAE3C,OAAO,EAA6C,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,EAOL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEpB,MAAM,eAAe,CAAC;AAKvB,qBAAa,SAAU,SAAQ,KAAK;CAAG;AAEvC,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC/E;AAED,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB;qEACiE;IACjE,SAAS,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,2EAA2E;IAC3E,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,8EAA8E;IAC9E,cAAc,EAAE,OAAO,CAAC;CACzB;AAYD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAStG;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CACzB,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAiBlG;AAaD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,MAAM,EAAE,CAKV;AAiDD,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,UAAU,CAAC,CAoOrB"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/backup/load.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,8 @@
22
22
  * A plugin whose package is not installed here cannot have its schema rebuilt.
23
23
  * That is reported as "not loaded", never thrown: an owner restoring on a new
24
24
  * machine should get their core installation back even if one plugin is still
25
- * to be reinstalled.
25
+ * to be reinstalled. `restoreBackup` then keeps that schema's data for later
26
+ * (`pending.ts`), and it loads when the plugin is installed.
26
27
  */
27
28
  import { createReadStream, existsSync } from 'node:fs';
28
29
  import { readdir, readFile } from 'node:fs/promises';
@@ -377,7 +378,7 @@ export async function loadDatabase(pool, stageDir, opts = {}) {
377
378
  * exactly. Only keys *on* the loaded tables: keys on other tables that point
378
379
  * into them are left alone, and a truncate cascade already emptied those.
379
380
  */
380
- async function foreignKeysOf(client, tables) {
381
+ export async function foreignKeysOf(client, tables) {
381
382
  const { rows } = await client.query(`select n.nspname as schema, c.relname as table, k.conname as name, pg_get_constraintdef(k.oid) as definition
382
383
  from pg_constraint k
383
384
  join pg_class c on c.oid = k.conrelid
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/backup/load.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/backup/load.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ import type { Pool } from 'pg';
2
+ /** `<data>/restore/pending` — one directory per schema below it. */
3
+ export declare function pendingDataRoot(dataDir: string): string;
4
+ export interface PendingTable {
5
+ /** `schema.table`. */
6
+ table: string;
7
+ rows: number;
8
+ /** Why this table is still staged after an attempt (it had rows), or null. */
9
+ kept: string | null;
10
+ }
11
+ export interface PendingPluginData {
12
+ schema: string;
13
+ archive: string;
14
+ stagedPath: string;
15
+ tables: PendingTable[];
16
+ rows: number;
17
+ /** The archive's migration filenames for this schema. */
18
+ migrations: string[];
19
+ /** Why the last attempt left it waiting; null before any attempt. */
20
+ reason: string | null;
21
+ createdAt: string;
22
+ }
23
+ /**
24
+ * Copy one schema's part of an unpacked archive into `dest`.
25
+ *
26
+ * `dest` is written fresh (the caller swaps it into place). Every directory is
27
+ * 0700 and every file 0600: this is table data, and on an encrypted archive it
28
+ * is the only plaintext copy outside the database.
29
+ */
30
+ export declare function writePendingSlice(stageDir: string, schema: string, dest: string): Promise<{
31
+ tables: PendingTable[];
32
+ rows: number;
33
+ migrations: string[];
34
+ }>;
35
+ interface Queryable {
36
+ query: Pool['query'];
37
+ }
38
+ /** Record (or replace) one schema's staged data. */
39
+ export declare function recordPendingPluginData(db: Queryable, entry: Omit<PendingPluginData, 'reason' | 'createdAt'>): Promise<void>;
40
+ /** Everything waiting. An installation that predates the table has nothing. */
41
+ export declare function listPendingPluginData(db: Queryable): Promise<PendingPluginData[]>;
42
+ /**
43
+ * Drop the records whose staged files are not on this machine.
44
+ *
45
+ * The record is a core table, so a backup carries it — but not the files it
46
+ * points at. An archive taken while data was waiting, restored elsewhere,
47
+ * brings rows that name another machine's directories. Returns what it forgot.
48
+ */
49
+ export declare function forgetUnstagedPluginData(db: Queryable): Promise<PendingPluginData[]>;
50
+ export type PendingLoadOutcome =
51
+ /** Nothing was waiting for this schema. */
52
+ {
53
+ kind: 'none';
54
+ schema: string;
55
+ }
56
+ /** Every table loaded; the record and the staged files are gone. */
57
+ | {
58
+ kind: 'loaded';
59
+ schema: string;
60
+ tables: Array<{
61
+ table: string;
62
+ rows: number;
63
+ }>;
64
+ sequences: number;
65
+ }
66
+ /** Some tables loaded; the rest had rows and stay staged. */
67
+ | {
68
+ kind: 'partial';
69
+ schema: string;
70
+ tables: Array<{
71
+ table: string;
72
+ rows: number;
73
+ }>;
74
+ kept: PendingTable[];
75
+ sequences: number;
76
+ }
77
+ /** Nothing loaded; `reason` says why, and the record says it too. */
78
+ | {
79
+ kind: 'waiting';
80
+ schema: string;
81
+ reason: string;
82
+ };
83
+ /**
84
+ * Whether a table is a settings table the loader may merge into.
85
+ *
86
+ * The rule, kept narrow on purpose: the primary key is exactly one column,
87
+ * named `key`, of a text type (text, varchar, citext), and the table also has
88
+ * a column named `value`. That is the shape every plugin's preferences table
89
+ * has (`finance.preferences (key text primary key, value jsonb)`), and it is
90
+ * a shape where "the same key" means "the same setting". A table keyed by an
91
+ * id — even a text one — is not: two rows with different ids may still be the
92
+ * same thing, so merging could duplicate it, and such a table stays kept
93
+ * aside as before.
94
+ */
95
+ export declare function isKeyValueTable(db: Queryable, schema: string, table: string): Promise<boolean>;
96
+ /**
97
+ * Load one schema's staged data, if it can be loaded now.
98
+ *
99
+ * Never throws for a reason the owner can act on (the plugin is not migrated
100
+ * far enough, a table is missing, a row fails its foreign key): those leave
101
+ * the data staged, the reason on the record, and come back as `waiting`.
102
+ */
103
+ export declare function loadPendingPluginData(pool: Pool, schema: string, opts?: {
104
+ log?: (line: string) => void;
105
+ }): Promise<PendingLoadOutcome>;
106
+ /**
107
+ * Load every waiting schema among `schemas` — the ones whose plugin is here.
108
+ * A schema with nothing waiting costs one query.
109
+ */
110
+ export declare function loadPendingForSchemas(pool: Pool, schemas: readonly string[], opts?: {
111
+ log?: (line: string) => void;
112
+ }): Promise<PendingLoadOutcome[]>;
113
+ export {};
114
+ //# sourceMappingURL=pending.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../../src/backup/pending.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAkB/B,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qEAAqE;IACrE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAsCzE;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;CACtB;AAED,oDAAoD;AACpD,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,WAAW,CAAC,GACrD,OAAO,CAAC,IAAI,CAAC,CAiBf;AA0BD,+EAA+E;AAC/E,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAUvF;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAM1F;AAED,MAAM,MAAM,kBAAkB;AAC5B,2CAA2C;AACzC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAClC,oEAAoE;GAClE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AACvG,6DAA6D;GAC3D;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AACH,qEAAqE;GACnE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBpG;AAOD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GAC1C,OAAO,CAAC,kBAAkB,CAAC,CAyN7B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GAC1C,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAQ/B"}
@@ -0,0 +1,392 @@
1
+ /**
2
+ * Plugin data a restore kept for later.
3
+ *
4
+ * A restore into an installation that does not have a plugin yet — the normal
5
+ * order on a fresh install: restore first, install the plugins after — cannot
6
+ * rebuild that plugin's schema, because the schema comes from the plugin's own
7
+ * migrations. It used to report the rows as "not loaded" and move on, and the
8
+ * plugin installed afterwards came up with empty tables while the owner's data
9
+ * sat in an archive nobody would open again.
10
+ *
11
+ * So that schema's part of the archive is kept: its COPY files and its slices
12
+ * of `tables.json`, `sequences.json` and `migrations.json`, under
13
+ * `<data>/restore/pending/<schema>/`, recorded in `core.pending_plugin_data`.
14
+ * When the plugin is installed and its migrations have run (or at the next
15
+ * start, for a plugin that is already there), `loadPendingPluginData` puts the
16
+ * rows in:
17
+ *
18
+ * - only when the plugin's ledger holds every migration the archive was taken
19
+ * at — data from a newer schema than the installed plugin's is not forced
20
+ * into older tables;
21
+ * - only into tables that exist and are empty — a table with rows is never
22
+ * overwritten; it stays staged and is named, so the owner can decide —
23
+ * except a settings table (see `isKeyValueTable`), which a plugin often
24
+ * seeds with defaults at install: there the backup's keys that are missing
25
+ * are added and every key already present keeps its current value;
26
+ * - with foreign keys held off and added back, which re-checks every row;
27
+ * - sequences moved forward to the archive's, never back;
28
+ * - all in one transaction per schema, with the record updated in it, so a
29
+ * crash at any point either loaded and forgot, or did neither.
30
+ *
31
+ * The staged files are plaintext table data even when the archive was
32
+ * encrypted. They live in the data dir, which holds the database's own files
33
+ * on a packaged install, and are written owner-only (0700 / 0600).
34
+ */
35
+ import { createReadStream, existsSync } from 'node:fs';
36
+ import { chmod, copyFile, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
37
+ import path from 'node:path';
38
+ import { pipeline } from 'node:stream/promises';
39
+ import copyStreams from 'pg-copy-streams';
40
+ import { quote } from './dump.js';
41
+ import { foreignKeysOf } from './load.js';
42
+ import { DB_MIGRATIONS_NAME, DIR_MODE, FILE_MODE, SEQUENCES_NAME, TABLES_NAME, copyFileName, } from './manifest.js';
43
+ const { from: copyFrom } = copyStreams;
44
+ /** `<data>/restore/pending` — one directory per schema below it. */
45
+ export function pendingDataRoot(dataDir) {
46
+ return path.join(dataDir, 'restore', 'pending');
47
+ }
48
+ async function readJson(file) {
49
+ return JSON.parse(await readFile(file, 'utf8'));
50
+ }
51
+ async function writePrivate(file, body) {
52
+ await writeFile(file, body, { mode: FILE_MODE });
53
+ await chmod(file, FILE_MODE);
54
+ }
55
+ /**
56
+ * Copy one schema's part of an unpacked archive into `dest`.
57
+ *
58
+ * `dest` is written fresh (the caller swaps it into place). Every directory is
59
+ * 0700 and every file 0600: this is table data, and on an encrypted archive it
60
+ * is the only plaintext copy outside the database.
61
+ */
62
+ export async function writePendingSlice(stageDir, schema, dest) {
63
+ const tables = (await readJson(path.join(stageDir, TABLES_NAME))).filter((t) => t.schema === schema);
64
+ const sequences = (await readJson(path.join(stageDir, SEQUENCES_NAME))).filter((s) => s.schema === schema);
65
+ const migrations = await readJson(path.join(stageDir, DB_MIGRATIONS_NAME));
66
+ const plugins = {};
67
+ for (const [key, entry] of Object.entries(migrations.plugins)) {
68
+ if (entry.schema === schema)
69
+ plugins[key] = entry;
70
+ }
71
+ const filenames = Object.values(plugins).flatMap((e) => e.filenames);
72
+ await rm(dest, { recursive: true, force: true });
73
+ await mkdir(path.join(dest, 'db'), { recursive: true, mode: DIR_MODE });
74
+ await chmod(dest, DIR_MODE);
75
+ await chmod(path.join(dest, 'db'), DIR_MODE);
76
+ for (const table of tables) {
77
+ // quote() refuses a name that is not a plain identifier: the archive is
78
+ // the untrusted half, and these names become file names and SQL later.
79
+ quote(table.schema);
80
+ quote(table.table);
81
+ const name = copyFileName(table.schema, table.table);
82
+ await copyFile(path.join(stageDir, name), path.join(dest, name));
83
+ await chmod(path.join(dest, name), FILE_MODE);
84
+ }
85
+ await writePrivate(path.join(dest, TABLES_NAME), `${JSON.stringify(tables, null, 2)}\n`);
86
+ await writePrivate(path.join(dest, SEQUENCES_NAME), `${JSON.stringify(sequences, null, 2)}\n`);
87
+ await writePrivate(path.join(dest, DB_MIGRATIONS_NAME), `${JSON.stringify({ core: [], plugins }, null, 2)}\n`);
88
+ return {
89
+ tables: tables.map((t) => ({ table: `${t.schema}.${t.table}`, rows: t.rows, kept: null })),
90
+ rows: tables.reduce((sum, t) => sum + t.rows, 0),
91
+ migrations: filenames,
92
+ };
93
+ }
94
+ /** Record (or replace) one schema's staged data. */
95
+ export async function recordPendingPluginData(db, entry) {
96
+ await db.query(`insert into core.pending_plugin_data (schema, archive, staged_path, tables, rows, migrations, reason)
97
+ values ($1, $2, $3, $4::jsonb, $5, $6::jsonb, null)
98
+ on conflict (schema) do update set
99
+ archive = excluded.archive, staged_path = excluded.staged_path, tables = excluded.tables,
100
+ rows = excluded.rows, migrations = excluded.migrations, reason = null,
101
+ created_at = now(), updated_at = now()`, [
102
+ entry.schema,
103
+ entry.archive,
104
+ entry.stagedPath,
105
+ JSON.stringify(entry.tables),
106
+ entry.rows,
107
+ JSON.stringify(entry.migrations),
108
+ ]);
109
+ }
110
+ function fromRow(row) {
111
+ return {
112
+ schema: row.schema,
113
+ archive: row.archive,
114
+ stagedPath: row.staged_path,
115
+ tables: row.tables,
116
+ rows: Number(row.rows),
117
+ migrations: row.migrations,
118
+ reason: row.reason,
119
+ createdAt: row.created_at.toISOString(),
120
+ };
121
+ }
122
+ /** Everything waiting. An installation that predates the table has nothing. */
123
+ export async function listPendingPluginData(db) {
124
+ try {
125
+ const { rows } = await db.query(`select schema, archive, staged_path, tables, rows::text as rows, migrations, reason, created_at
126
+ from core.pending_plugin_data order by schema`);
127
+ return rows.map(fromRow);
128
+ }
129
+ catch {
130
+ return [];
131
+ }
132
+ }
133
+ /**
134
+ * Drop the records whose staged files are not on this machine.
135
+ *
136
+ * The record is a core table, so a backup carries it — but not the files it
137
+ * points at. An archive taken while data was waiting, restored elsewhere,
138
+ * brings rows that name another machine's directories. Returns what it forgot.
139
+ */
140
+ export async function forgetUnstagedPluginData(db) {
141
+ const gone = (await listPendingPluginData(db)).filter((p) => !existsSync(p.stagedPath));
142
+ if (gone.length > 0) {
143
+ await db.query(`delete from core.pending_plugin_data where schema = any($1)`, [gone.map((g) => g.schema)]);
144
+ }
145
+ return gone;
146
+ }
147
+ /**
148
+ * Whether a table is a settings table the loader may merge into.
149
+ *
150
+ * The rule, kept narrow on purpose: the primary key is exactly one column,
151
+ * named `key`, of a text type (text, varchar, citext), and the table also has
152
+ * a column named `value`. That is the shape every plugin's preferences table
153
+ * has (`finance.preferences (key text primary key, value jsonb)`), and it is
154
+ * a shape where "the same key" means "the same setting". A table keyed by an
155
+ * id — even a text one — is not: two rows with different ids may still be the
156
+ * same thing, so merging could duplicate it, and such a table stays kept
157
+ * aside as before.
158
+ */
159
+ export async function isKeyValueTable(db, schema, table) {
160
+ const qualified = `${quote(schema)}.${quote(table)}`;
161
+ const { rows: pk } = await db.query(`select a.attname as name, t.typname as type
162
+ from pg_index i
163
+ join pg_attribute a on a.attrelid = i.indrelid and a.attnum = any(i.indkey)
164
+ join pg_type t on t.oid = a.atttypid
165
+ where i.indrelid = $1::regclass and i.indisprimary`, [qualified]);
166
+ if (pk.length !== 1)
167
+ return false;
168
+ const only = pk[0];
169
+ if (only.name !== 'key' || !['text', 'varchar', 'citext', 'bpchar'].includes(only.type))
170
+ return false;
171
+ const { rows: value } = await db.query(`select 1 from information_schema.columns where table_schema = $1 and table_name = $2 and column_name = 'value'`, [schema, table]);
172
+ return value.length > 0;
173
+ }
174
+ /** The next value a sequence hands out, as a bigint. */
175
+ function nextOf(lastValue, isCalled) {
176
+ return BigInt(lastValue) + (isCalled ? 1n : 0n);
177
+ }
178
+ /**
179
+ * Load one schema's staged data, if it can be loaded now.
180
+ *
181
+ * Never throws for a reason the owner can act on (the plugin is not migrated
182
+ * far enough, a table is missing, a row fails its foreign key): those leave
183
+ * the data staged, the reason on the record, and come back as `waiting`.
184
+ */
185
+ export async function loadPendingPluginData(pool, schema, opts = {}) {
186
+ const log = opts.log ?? ((line) => console.error(line));
187
+ const pending = (await listPendingPluginData(pool)).find((p) => p.schema === schema);
188
+ if (pending === undefined)
189
+ return { kind: 'none', schema };
190
+ const wait = async (reason) => {
191
+ await pool
192
+ .query(`update core.pending_plugin_data set reason = $2, updated_at = now() where schema = $1`, [schema, reason])
193
+ .catch(() => { });
194
+ log(`restore: ${schema} data from ${pending.archive} is still waiting — ${reason}`);
195
+ return { kind: 'waiting', schema, reason };
196
+ };
197
+ if (!existsSync(pending.stagedPath)) {
198
+ return wait(`its staged files are not at ${pending.stagedPath} any more`);
199
+ }
200
+ /* The migration level --------------------------------------------- */
201
+ const { rows: ledgerRows } = await pool.query(`select filename from core.migrations where schema = $1`, [schema]);
202
+ const ledger = new Set(ledgerRows.map((r) => r.filename));
203
+ const behind = pending.migrations.filter((f) => !ledger.has(f));
204
+ if (behind.length > 0) {
205
+ return wait(ledger.size === 0
206
+ ? 'the plugin that owns it has not migrated here yet'
207
+ : `the installed plugin is at an older schema than the backup (missing ${behind.join(', ')}); update it`);
208
+ }
209
+ let tables;
210
+ let sequences;
211
+ try {
212
+ tables = await readJson(path.join(pending.stagedPath, TABLES_NAME));
213
+ sequences = await readJson(path.join(pending.stagedPath, SEQUENCES_NAME));
214
+ }
215
+ catch (err) {
216
+ return wait(`its staged files could not be read: ${err instanceof Error ? err.message : String(err)}`);
217
+ }
218
+ const client = await pool.connect();
219
+ try {
220
+ await client.query('begin');
221
+ // The row lock is what makes an install and a start racing load once: the
222
+ // second waits here, then finds the record gone.
223
+ const locked = await client.query(`select tables from core.pending_plugin_data where schema = $1 for update`, [schema]);
224
+ const lockedRow = locked.rows[0];
225
+ if (lockedRow === undefined) {
226
+ await client.query('rollback');
227
+ return { kind: 'none', schema };
228
+ }
229
+ // The record, read under the lock, says which tables are still waiting: a
230
+ // table an earlier attempt loaded is gone from it even if the slice's own
231
+ // list on disk was not rewritten.
232
+ const waitingNames = new Set(lockedRow.tables.map((t) => t.table));
233
+ tables = tables.filter((t) => t.schema === schema && waitingNames.has(`${t.schema}.${t.table}`));
234
+ await client.query(`savepoint replica_mode`);
235
+ try {
236
+ // Triggers off where the role may, so a plugin's insert triggers do not
237
+ // rewrite restored rows. Foreign keys are handled below either way.
238
+ await client.query(`set local session_replication_role = replica`);
239
+ await client.query(`release savepoint replica_mode`);
240
+ }
241
+ catch {
242
+ await client.query(`rollback to savepoint replica_mode`);
243
+ await client.query(`release savepoint replica_mode`);
244
+ }
245
+ const loadable = [];
246
+ const mergeable = [];
247
+ const kept = [];
248
+ const missing = [];
249
+ for (const table of tables) {
250
+ const qualified = `${quote(table.schema)}.${quote(table.table)}`;
251
+ const name = `${table.schema}.${table.table}`;
252
+ const { rows: cols } = await client.query(`select column_name from information_schema.columns where table_schema = $1 and table_name = $2`, [table.schema, table.table]);
253
+ if (cols.length === 0) {
254
+ missing.push(`${name} does not exist in the installed plugin`);
255
+ continue;
256
+ }
257
+ const have = new Set(cols.map((c) => c.column_name));
258
+ const absent = table.columns.filter((c) => !have.has(c));
259
+ if (absent.length > 0) {
260
+ missing.push(`${name} has no column ${absent.join(', ')} in the installed plugin`);
261
+ continue;
262
+ }
263
+ const { rows: counted } = await client.query(`select count(*)::text as n from ${qualified}`);
264
+ const existing = Number(counted[0]?.n ?? '0');
265
+ if (existing > 0 && (await isKeyValueTable(client, table.schema, table.table))) {
266
+ mergeable.push(table);
267
+ continue;
268
+ }
269
+ if (existing > 0) {
270
+ kept.push({
271
+ table: name,
272
+ rows: table.rows,
273
+ kept: `${name} already has ${existing} row(s), so the backup's ${table.rows} were not loaded over them`,
274
+ });
275
+ continue;
276
+ }
277
+ loadable.push(table);
278
+ }
279
+ if (missing.length > 0) {
280
+ await client.query('rollback');
281
+ return wait(missing.join('; '));
282
+ }
283
+ const heldKeys = loadable.length > 0 ? await foreignKeysOf(client, loadable) : [];
284
+ for (const key of heldKeys) {
285
+ await client.query(`alter table ${key.table} drop constraint ${quote(key.name)}`);
286
+ }
287
+ for (const table of loadable) {
288
+ const qualified = `${quote(table.schema)}.${quote(table.table)}`;
289
+ const columns = table.columns.map(quote).join(', ');
290
+ const sink = client.query(copyFrom(`copy ${qualified} (${columns}) from stdin`));
291
+ await pipeline(createReadStream(path.join(pending.stagedPath, copyFileName(table.schema, table.table))), sink);
292
+ }
293
+ // Adding a key back validates every row: data that does not fit fails
294
+ // here, inside the transaction, and nothing was loaded.
295
+ for (const key of heldKeys) {
296
+ await client.query(`alter table ${key.table} add constraint ${quote(key.name)} ${key.definition}`);
297
+ }
298
+ // A settings table that already has rows: the backup's rows go into a
299
+ // scratch copy first, then only the keys that are missing are added. A
300
+ // key on both sides keeps the value it has now — the plugin's default or
301
+ // whatever the owner set since — rather than being overwritten.
302
+ const merged = [];
303
+ for (const [i, table] of mergeable.entries()) {
304
+ const qualified = `${quote(table.schema)}.${quote(table.table)}`;
305
+ const scratch = quote(`buddi_merge_${i}`);
306
+ const columns = table.columns.map(quote).join(', ');
307
+ await client.query(`create temp table ${scratch} (like ${qualified} including defaults) on commit drop`);
308
+ const sink = client.query(copyFrom(`copy ${scratch} (${columns}) from stdin`));
309
+ await pipeline(createReadStream(path.join(pending.stagedPath, copyFileName(table.schema, table.table))), sink);
310
+ const added = await client.query(`insert into ${qualified} (${columns}) overriding system value
311
+ select ${columns} from ${scratch} on conflict (key) do nothing`);
312
+ merged.push({ table: `${table.schema}.${table.table}`, rows: added.rowCount ?? 0 });
313
+ }
314
+ // Forward only. A table that was kept may already have handed out ids
315
+ // past the archive's, and moving its sequence back would collide.
316
+ let reset = 0;
317
+ if (loadable.length > 0) {
318
+ for (const sequence of sequences) {
319
+ if (sequence.schema !== schema)
320
+ continue;
321
+ const qualified = `${quote(sequence.schema)}.${quote(sequence.name)}`;
322
+ const exists = await client.query(`select to_regclass($1)::text as r`, [qualified]);
323
+ if (!exists.rows[0]?.r)
324
+ continue;
325
+ const current = await client.query(`select last_value::text as last_value, is_called from ${qualified}`);
326
+ const now = current.rows[0];
327
+ if (now && nextOf(now.last_value, now.is_called) >= nextOf(sequence.lastValue, sequence.isCalled))
328
+ continue;
329
+ await client.query(`select setval($1::regclass, $2::bigint, $3)`, [
330
+ qualified,
331
+ sequence.lastValue,
332
+ sequence.isCalled,
333
+ ]);
334
+ reset += 1;
335
+ }
336
+ }
337
+ const done = [...loadable.map((t) => ({ table: `${t.schema}.${t.table}`, rows: t.rows })), ...merged];
338
+ if (kept.length === 0) {
339
+ await client.query(`delete from core.pending_plugin_data where schema = $1`, [schema]);
340
+ }
341
+ else {
342
+ await client.query(`update core.pending_plugin_data
343
+ set tables = $2::jsonb, rows = $3, reason = $4, updated_at = now()
344
+ where schema = $1`, [
345
+ schema,
346
+ JSON.stringify(kept),
347
+ kept.reduce((sum, t) => sum + t.rows, 0),
348
+ `${kept.length} table(s) already had rows and were left staged`,
349
+ ]);
350
+ }
351
+ await client.query('commit');
352
+ const rows = done.reduce((sum, t) => sum + t.rows, 0);
353
+ if (kept.length === 0) {
354
+ await rm(pending.stagedPath, { recursive: true, force: true }).catch(() => { });
355
+ const mergedNote = merged.length > 0 ? `; merged into ${merged.map((m) => m.table).join(', ')}, keeping the keys already set` : '';
356
+ log(`restore: loaded ${schema} data from ${pending.archive} — ${done.length} table(s), ${rows} row(s)${mergedNote}`);
357
+ return { kind: 'loaded', schema, tables: done, sequences: reset };
358
+ }
359
+ // The loaded tables' files are not needed again; the list on disk follows
360
+ // the record, though the record is what is read.
361
+ for (const table of [...loadable, ...mergeable]) {
362
+ await rm(path.join(pending.stagedPath, copyFileName(table.schema, table.table)), { force: true }).catch(() => { });
363
+ }
364
+ const keptNames = new Set(kept.map((k) => k.table));
365
+ await writePrivate(path.join(pending.stagedPath, TABLES_NAME), `${JSON.stringify(tables.filter((t) => keptNames.has(`${t.schema}.${t.table}`)), null, 2)}\n`).catch(() => { });
366
+ log(`restore: loaded ${done.length} ${schema} table(s) (${rows} row(s)) from ${pending.archive}; ` +
367
+ `left staged at ${pending.stagedPath} because they already had rows: ${kept.map((k) => k.table).join(', ')}`);
368
+ return { kind: 'partial', schema, tables: done, kept, sequences: reset };
369
+ }
370
+ catch (err) {
371
+ await client.query('rollback').catch(() => { });
372
+ return wait(`loading it failed and nothing was changed: ${err instanceof Error ? err.message : String(err)}`);
373
+ }
374
+ finally {
375
+ client.release();
376
+ }
377
+ }
378
+ /**
379
+ * Load every waiting schema among `schemas` — the ones whose plugin is here.
380
+ * A schema with nothing waiting costs one query.
381
+ */
382
+ export async function loadPendingForSchemas(pool, schemas, opts = {}) {
383
+ const waiting = new Set((await listPendingPluginData(pool)).map((p) => p.schema));
384
+ const outcomes = [];
385
+ for (const schema of schemas) {
386
+ if (!waiting.has(schema))
387
+ continue;
388
+ outcomes.push(await loadPendingPluginData(pool, schema, opts));
389
+ }
390
+ return outcomes;
391
+ }
392
+ //# sourceMappingURL=pending.js.map