@continuumdao/continuum-node-sdk 1.3.40 → 1.3.42

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 (549) hide show
  1. package/dist/agent-host-catalog.json +968 -128
  2. package/dist/browser.d.ts +11 -0
  3. package/dist/browser.d.ts.map +1 -0
  4. package/dist/browser.js +9 -0
  5. package/dist/browser.js.map +1 -0
  6. package/dist/config/mpa-wallet.d.ts +275 -37
  7. package/dist/config/mpa-wallet.d.ts.map +1 -1
  8. package/dist/config/mpa-wallet.js +162 -24
  9. package/dist/config/mpa-wallet.js.map +1 -1
  10. package/dist/core/agent/agent-chart-data-access.d.ts +1 -1
  11. package/dist/core/agent/agent-chart-data-access.d.ts.map +1 -1
  12. package/dist/core/agent/agent-chart-data-access.js +24 -1
  13. package/dist/core/agent/agent-chart-data-access.js.map +1 -1
  14. package/dist/core/agent/cron-jobs.d.ts.map +1 -1
  15. package/dist/core/agent/cron-jobs.js +9 -0
  16. package/dist/core/agent/cron-jobs.js.map +1 -1
  17. package/dist/core/agent/discord-guilds-config.d.ts +39 -0
  18. package/dist/core/agent/discord-guilds-config.d.ts.map +1 -0
  19. package/dist/core/agent/discord-guilds-config.js +213 -0
  20. package/dist/core/agent/discord-guilds-config.js.map +1 -0
  21. package/dist/core/agent/discord-rest-client.d.ts +75 -0
  22. package/dist/core/agent/discord-rest-client.d.ts.map +1 -0
  23. package/dist/core/agent/discord-rest-client.js +183 -0
  24. package/dist/core/agent/discord-rest-client.js.map +1 -0
  25. package/dist/core/agent/discord-search.d.ts +16 -0
  26. package/dist/core/agent/discord-search.d.ts.map +1 -0
  27. package/dist/core/agent/discord-search.js +292 -0
  28. package/dist/core/agent/discord-search.js.map +1 -0
  29. package/dist/core/agent/mcp-servers.d.ts +4 -4
  30. package/dist/core/agent/mcp-servers.d.ts.map +1 -1
  31. package/dist/core/agent/mcp-servers.js +55 -12
  32. package/dist/core/agent/mcp-servers.js.map +1 -1
  33. package/dist/core/agent/reddit-search.d.ts +13 -0
  34. package/dist/core/agent/reddit-search.d.ts.map +1 -0
  35. package/dist/core/agent/reddit-search.js +244 -0
  36. package/dist/core/agent/reddit-search.js.map +1 -0
  37. package/dist/core/agent/skills.d.ts +7 -1
  38. package/dist/core/agent/skills.d.ts.map +1 -1
  39. package/dist/core/agent/skills.js +69 -2
  40. package/dist/core/agent/skills.js.map +1 -1
  41. package/dist/core/agent/social-search-config.d.ts +76 -0
  42. package/dist/core/agent/social-search-config.d.ts.map +1 -0
  43. package/dist/core/agent/social-search-config.js +501 -0
  44. package/dist/core/agent/social-search-config.js.map +1 -0
  45. package/dist/core/agent/telegram-channels-config.d.ts +24 -0
  46. package/dist/core/agent/telegram-channels-config.d.ts.map +1 -0
  47. package/dist/core/agent/telegram-channels-config.js +146 -0
  48. package/dist/core/agent/telegram-channels-config.js.map +1 -0
  49. package/dist/core/agent/telegram-search-auth.d.ts +21 -0
  50. package/dist/core/agent/telegram-search-auth.d.ts.map +1 -0
  51. package/dist/core/agent/telegram-search-auth.js +85 -0
  52. package/dist/core/agent/telegram-search-auth.js.map +1 -0
  53. package/dist/core/agent/telegram-search.d.ts +12 -0
  54. package/dist/core/agent/telegram-search.d.ts.map +1 -0
  55. package/dist/core/agent/telegram-search.js +173 -0
  56. package/dist/core/agent/telegram-search.js.map +1 -0
  57. package/dist/core/agent/telegram.d.ts +15 -0
  58. package/dist/core/agent/telegram.d.ts.map +1 -0
  59. package/dist/core/agent/telegram.js +72 -0
  60. package/dist/core/agent/telegram.js.map +1 -0
  61. package/dist/core/agent/ticker-extract.d.ts +15 -0
  62. package/dist/core/agent/ticker-extract.d.ts.map +1 -0
  63. package/dist/core/agent/ticker-extract.js +124 -0
  64. package/dist/core/agent/ticker-extract.js.map +1 -0
  65. package/dist/core/agent/user-folder-path.d.ts +19 -0
  66. package/dist/core/agent/user-folder-path.d.ts.map +1 -0
  67. package/dist/core/agent/user-folder-path.js +59 -0
  68. package/dist/core/agent/user-folder-path.js.map +1 -0
  69. package/dist/core/agent/user-folder-schemas.d.ts +41 -0
  70. package/dist/core/agent/user-folder-schemas.d.ts.map +1 -0
  71. package/dist/core/agent/user-folder-schemas.js +67 -0
  72. package/dist/core/agent/user-folder-schemas.js.map +1 -0
  73. package/dist/core/agent/user-folder.d.ts +22 -0
  74. package/dist/core/agent/user-folder.d.ts.map +1 -0
  75. package/dist/core/agent/user-folder.js +86 -0
  76. package/dist/core/agent/user-folder.js.map +1 -0
  77. package/dist/core/business-latest/fetch.d.ts +9 -0
  78. package/dist/core/business-latest/fetch.d.ts.map +1 -0
  79. package/dist/core/business-latest/fetch.js +138 -0
  80. package/dist/core/business-latest/fetch.js.map +1 -0
  81. package/dist/core/business-latest/index.d.ts +5 -0
  82. package/dist/core/business-latest/index.d.ts.map +1 -0
  83. package/dist/core/business-latest/index.js +5 -0
  84. package/dist/core/business-latest/index.js.map +1 -0
  85. package/dist/core/business-latest/parse-rss.d.ts +10 -0
  86. package/dist/core/business-latest/parse-rss.d.ts.map +1 -0
  87. package/dist/core/business-latest/parse-rss.js +84 -0
  88. package/dist/core/business-latest/parse-rss.js.map +1 -0
  89. package/dist/core/business-latest/schemas.d.ts +115 -0
  90. package/dist/core/business-latest/schemas.d.ts.map +1 -0
  91. package/dist/core/business-latest/schemas.js +61 -0
  92. package/dist/core/business-latest/schemas.js.map +1 -0
  93. package/dist/core/business-latest/sources.d.ts +19 -0
  94. package/dist/core/business-latest/sources.d.ts.map +1 -0
  95. package/dist/core/business-latest/sources.js +65 -0
  96. package/dist/core/business-latest/sources.js.map +1 -0
  97. package/dist/core/chart/alpaca-bars-envelope.d.ts +13 -0
  98. package/dist/core/chart/alpaca-bars-envelope.d.ts.map +1 -0
  99. package/dist/core/chart/alpaca-bars-envelope.js +65 -0
  100. package/dist/core/chart/alpaca-bars-envelope.js.map +1 -0
  101. package/dist/core/chart/analysis/analyze-tools.d.ts +79 -5
  102. package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -1
  103. package/dist/core/chart/analysis/analyze-tools.js +6 -1
  104. package/dist/core/chart/analysis/analyze-tools.js.map +1 -1
  105. package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts +9 -0
  106. package/dist/core/chart/analysis/bollinger-analyze-tools.d.ts.map +1 -1
  107. package/dist/core/chart/analysis/bollinger-analyze-tools.js +39 -19
  108. package/dist/core/chart/analysis/bollinger-analyze-tools.js.map +1 -1
  109. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts +28 -0
  110. package/dist/core/chart/analysis/chart-patterns-drawings-tools.d.ts.map +1 -1
  111. package/dist/core/chart/analysis/chart-patterns-tools.d.ts +28 -0
  112. package/dist/core/chart/analysis/chart-patterns-tools.d.ts.map +1 -1
  113. package/dist/core/chart/analysis/divergence-analyze-tools.d.ts +15 -0
  114. package/dist/core/chart/analysis/divergence-analyze-tools.d.ts.map +1 -1
  115. package/dist/core/chart/analysis/divergence-analyze-tools.js +2 -0
  116. package/dist/core/chart/analysis/divergence-analyze-tools.js.map +1 -1
  117. package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts +15 -0
  118. package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts.map +1 -1
  119. package/dist/core/chart/analysis/elliott-waves-analyze-tools.js +2 -0
  120. package/dist/core/chart/analysis/elliott-waves-analyze-tools.js.map +1 -1
  121. package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts +4 -2
  122. package/dist/core/chart/analysis/moving-averages-analyze-tools.d.ts.map +1 -1
  123. package/dist/core/chart/analysis/moving-averages-analyze-tools.js +23 -23
  124. package/dist/core/chart/analysis/moving-averages-analyze-tools.js.map +1 -1
  125. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts +14 -0
  126. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.d.ts.map +1 -1
  127. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js +48 -4
  128. package/dist/core/chart/analysis/trade-setups/bollinger-trade-setup.js.map +1 -1
  129. package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -1
  130. package/dist/core/chart/analysis/trade-setups/build-trade.js +4 -1
  131. package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -1
  132. package/dist/core/chart/analysis/trade-setups/chart-data-purpose.d.ts.map +1 -1
  133. package/dist/core/chart/analysis/trade-setups/chart-data-purpose.js +32 -0
  134. package/dist/core/chart/analysis/trade-setups/chart-data-purpose.js.map +1 -1
  135. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts +14 -0
  136. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts.map +1 -1
  137. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js +16 -0
  138. package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js.map +1 -1
  139. package/dist/core/chart/chart-data-validation.d.ts.map +1 -1
  140. package/dist/core/chart/chart-data-validation.js +32 -6
  141. package/dist/core/chart/chart-data-validation.js.map +1 -1
  142. package/dist/core/chart/fetch-metadata.d.ts +4 -1
  143. package/dist/core/chart/fetch-metadata.d.ts.map +1 -1
  144. package/dist/core/chart/fetch-metadata.js +88 -2
  145. package/dist/core/chart/fetch-metadata.js.map +1 -1
  146. package/dist/core/chart/fetch-result.d.ts.map +1 -1
  147. package/dist/core/chart/fetch-result.js +32 -1
  148. package/dist/core/chart/fetch-result.js.map +1 -1
  149. package/dist/core/chart/index.d.ts +2 -1
  150. package/dist/core/chart/index.d.ts.map +1 -1
  151. package/dist/core/chart/index.js +2 -1
  152. package/dist/core/chart/index.js.map +1 -1
  153. package/dist/core/chart/live/binding-extract.d.ts.map +1 -1
  154. package/dist/core/chart/live/binding-extract.js +82 -1
  155. package/dist/core/chart/live/binding-extract.js.map +1 -1
  156. package/dist/core/chart/live/fetch-tick.d.ts +3 -0
  157. package/dist/core/chart/live/fetch-tick.d.ts.map +1 -1
  158. package/dist/core/chart/live/fetch-tick.js +146 -1
  159. package/dist/core/chart/live/fetch-tick.js.map +1 -1
  160. package/dist/core/chart/live/index.d.ts +2 -2
  161. package/dist/core/chart/live/index.d.ts.map +1 -1
  162. package/dist/core/chart/live/index.js +2 -2
  163. package/dist/core/chart/live/index.js.map +1 -1
  164. package/dist/core/chart/live/interval.d.ts.map +1 -1
  165. package/dist/core/chart/live/interval.js +9 -0
  166. package/dist/core/chart/live/interval.js.map +1 -1
  167. package/dist/core/chart/live/schemas.d.ts +2 -0
  168. package/dist/core/chart/live/schemas.d.ts.map +1 -1
  169. package/dist/core/chart/live/schemas.js +2 -0
  170. package/dist/core/chart/live/schemas.js.map +1 -1
  171. package/dist/core/chart/markdown-ohlcv-table.d.ts +11 -0
  172. package/dist/core/chart/markdown-ohlcv-table.d.ts.map +1 -0
  173. package/dist/core/chart/markdown-ohlcv-table.js +153 -0
  174. package/dist/core/chart/markdown-ohlcv-table.js.map +1 -0
  175. package/dist/core/chart/ohlcv-integrity.d.ts +7 -4
  176. package/dist/core/chart/ohlcv-integrity.d.ts.map +1 -1
  177. package/dist/core/chart/ohlcv-integrity.js +34 -10
  178. package/dist/core/chart/ohlcv-integrity.js.map +1 -1
  179. package/dist/core/chart/ohlcv-session-store.d.ts +2 -1
  180. package/dist/core/chart/ohlcv-session-store.d.ts.map +1 -1
  181. package/dist/core/chart/ohlcv-session-store.js +44 -10
  182. package/dist/core/chart/ohlcv-session-store.js.map +1 -1
  183. package/dist/core/chart/ohlcv-sources.d.ts +157 -0
  184. package/dist/core/chart/ohlcv-sources.d.ts.map +1 -0
  185. package/dist/core/chart/ohlcv-sources.js +206 -0
  186. package/dist/core/chart/ohlcv-sources.js.map +1 -0
  187. package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
  188. package/dist/core/chart/overlay-schemas.js +2 -0
  189. package/dist/core/chart/overlay-schemas.js.map +1 -1
  190. package/dist/core/chart/point-normalize.d.ts.map +1 -1
  191. package/dist/core/chart/point-normalize.js +11 -0
  192. package/dist/core/chart/point-normalize.js.map +1 -1
  193. package/dist/core/chart/prepare-from-rows.d.ts.map +1 -1
  194. package/dist/core/chart/prepare-from-rows.js +3 -0
  195. package/dist/core/chart/prepare-from-rows.js.map +1 -1
  196. package/dist/core/coinmarketcap/mcp-server-choice.d.ts.map +1 -1
  197. package/dist/core/coinmarketcap/mcp-server-choice.js +5 -2
  198. package/dist/core/coinmarketcap/mcp-server-choice.js.map +1 -1
  199. package/dist/core/coinmarketcap/schemas.d.ts +17 -17
  200. package/dist/core/keygen-read.d.ts +8 -0
  201. package/dist/core/keygen-read.d.ts.map +1 -1
  202. package/dist/core/keygen-read.js +26 -0
  203. package/dist/core/keygen-read.js.map +1 -1
  204. package/dist/core/keygen.d.ts +1 -8
  205. package/dist/core/keygen.d.ts.map +1 -1
  206. package/dist/core/keygen.js +2 -27
  207. package/dist/core/keygen.js.map +1 -1
  208. package/dist/core/management-signer.d.ts +3 -1
  209. package/dist/core/management-signer.d.ts.map +1 -1
  210. package/dist/core/management-signer.js +4 -4
  211. package/dist/core/management-signer.js.map +1 -1
  212. package/dist/core/mpc/address-kind.d.ts +5 -0
  213. package/dist/core/mpc/address-kind.d.ts.map +1 -0
  214. package/dist/core/mpc/address-kind.js +38 -0
  215. package/dist/core/mpc/address-kind.js.map +1 -0
  216. package/dist/core/mpc/address-kind.test.d.ts +2 -0
  217. package/dist/core/mpc/address-kind.test.d.ts.map +1 -0
  218. package/dist/core/mpc/address-kind.test.js +21 -0
  219. package/dist/core/mpc/address-kind.test.js.map +1 -0
  220. package/dist/core/mpc/broadcast-sign-result.d.ts.map +1 -1
  221. package/dist/core/mpc/broadcast-sign-result.js +61 -55
  222. package/dist/core/mpc/broadcast-sign-result.js.map +1 -1
  223. package/dist/core/mpc/compose-eip712-request.d.ts +6 -0
  224. package/dist/core/mpc/compose-eip712-request.d.ts.map +1 -0
  225. package/dist/core/mpc/compose-eip712-request.js +40 -0
  226. package/dist/core/mpc/compose-eip712-request.js.map +1 -0
  227. package/dist/core/mpc/context.js +1 -1
  228. package/dist/core/mpc/context.js.map +1 -1
  229. package/dist/core/mpc/eip712-sign-request.d.ts +17 -1
  230. package/dist/core/mpc/eip712-sign-request.d.ts.map +1 -1
  231. package/dist/core/mpc/eip712-sign-request.js +114 -23
  232. package/dist/core/mpc/eip712-sign-request.js.map +1 -1
  233. package/dist/core/mpc/forge-dry-run-build.d.ts +35 -0
  234. package/dist/core/mpc/forge-dry-run-build.d.ts.map +1 -0
  235. package/dist/core/mpc/forge-dry-run-build.js +200 -0
  236. package/dist/core/mpc/forge-dry-run-build.js.map +1 -0
  237. package/dist/core/mpc/forge-dry-run-request.d.ts +30 -0
  238. package/dist/core/mpc/forge-dry-run-request.d.ts.map +1 -0
  239. package/dist/core/mpc/forge-dry-run-request.js +144 -0
  240. package/dist/core/mpc/forge-dry-run-request.js.map +1 -0
  241. package/dist/core/mpc/gas-preflight-mpa.d.ts +8 -0
  242. package/dist/core/mpc/gas-preflight-mpa.d.ts.map +1 -0
  243. package/dist/core/mpc/gas-preflight-mpa.js +21 -0
  244. package/dist/core/mpc/gas-preflight-mpa.js.map +1 -0
  245. package/dist/core/mpc/gas-preflight.d.ts +0 -5
  246. package/dist/core/mpc/gas-preflight.d.ts.map +1 -1
  247. package/dist/core/mpc/gas-preflight.js +0 -19
  248. package/dist/core/mpc/gas-preflight.js.map +1 -1
  249. package/dist/core/mpc/join-multisign-request.d.ts.map +1 -1
  250. package/dist/core/mpc/join-multisign-request.js +41 -1
  251. package/dist/core/mpc/join-multisign-request.js.map +1 -1
  252. package/dist/core/mpc/mpa-authority-vectm-browser.d.ts +48 -0
  253. package/dist/core/mpc/mpa-authority-vectm-browser.d.ts.map +1 -0
  254. package/dist/core/mpc/mpa-authority-vectm-browser.js +210 -0
  255. package/dist/core/mpc/mpa-authority-vectm-browser.js.map +1 -0
  256. package/dist/core/mpc/mpa-authority-vectm-read.d.ts +3314 -0
  257. package/dist/core/mpc/mpa-authority-vectm-read.d.ts.map +1 -0
  258. package/dist/core/mpc/mpa-authority-vectm-read.js +221 -0
  259. package/dist/core/mpc/mpa-authority-vectm-read.js.map +1 -0
  260. package/dist/core/mpc/mpa-authority-vectm.d.ts +63 -0
  261. package/dist/core/mpc/mpa-authority-vectm.d.ts.map +1 -0
  262. package/dist/core/mpc/mpa-authority-vectm.js +331 -0
  263. package/dist/core/mpc/mpa-authority-vectm.js.map +1 -0
  264. package/dist/core/mpc/mpa-billing-actions.d.ts +13 -35
  265. package/dist/core/mpc/mpa-billing-actions.d.ts.map +1 -1
  266. package/dist/core/mpc/mpa-billing-actions.js +154 -207
  267. package/dist/core/mpc/mpa-billing-actions.js.map +1 -1
  268. package/dist/core/mpc/mpa-billing-helpers.d.ts +16 -1
  269. package/dist/core/mpc/mpa-billing-helpers.d.ts.map +1 -1
  270. package/dist/core/mpc/mpa-billing-helpers.js +33 -9
  271. package/dist/core/mpc/mpa-billing-helpers.js.map +1 -1
  272. package/dist/core/mpc/mpa-billing-ops.d.ts +0 -11
  273. package/dist/core/mpc/mpa-billing-ops.d.ts.map +1 -1
  274. package/dist/core/mpc/mpa-billing-ops.js +41 -207
  275. package/dist/core/mpc/mpa-billing-ops.js.map +1 -1
  276. package/dist/core/mpc/mpa-fee-status.d.ts +7 -42
  277. package/dist/core/mpc/mpa-fee-status.d.ts.map +1 -1
  278. package/dist/core/mpc/mpa-fee-status.js +174 -229
  279. package/dist/core/mpc/mpa-fee-status.js.map +1 -1
  280. package/dist/core/mpc/mpa-payment-tokens.d.ts +38 -0
  281. package/dist/core/mpc/mpa-payment-tokens.d.ts.map +1 -0
  282. package/dist/core/mpc/mpa-payment-tokens.js +135 -0
  283. package/dist/core/mpc/mpa-payment-tokens.js.map +1 -0
  284. package/dist/core/mpc/mpa-top-up.d.ts.map +1 -1
  285. package/dist/core/mpc/mpa-top-up.js +16 -125
  286. package/dist/core/mpc/mpa-top-up.js.map +1 -1
  287. package/dist/core/mpc/mpc-input-coerce.d.ts +2 -0
  288. package/dist/core/mpc/mpc-input-coerce.d.ts.map +1 -1
  289. package/dist/core/mpc/mpc-input-coerce.js +53 -0
  290. package/dist/core/mpc/mpc-input-coerce.js.map +1 -1
  291. package/dist/core/mpc/register-keygen.d.ts.map +1 -1
  292. package/dist/core/mpc/register-keygen.js +133 -14
  293. package/dist/core/mpc/register-keygen.js.map +1 -1
  294. package/dist/core/mpc/schemas.d.ts +179 -2
  295. package/dist/core/mpc/schemas.d.ts.map +1 -1
  296. package/dist/core/mpc/schemas.js +242 -4
  297. package/dist/core/mpc/schemas.js.map +1 -1
  298. package/dist/core/mpc/trigger-sign-result.d.ts.map +1 -1
  299. package/dist/core/mpc/trigger-sign-result.js +12 -7
  300. package/dist/core/mpc/trigger-sign-result.js.map +1 -1
  301. package/dist/core/node-config.d.ts +31 -0
  302. package/dist/core/node-config.d.ts.map +1 -0
  303. package/dist/core/node-config.js +238 -0
  304. package/dist/core/node-config.js.map +1 -0
  305. package/dist/core/node-database/binary.d.ts +12 -0
  306. package/dist/core/node-database/binary.d.ts.map +1 -0
  307. package/dist/core/node-database/binary.js +32 -0
  308. package/dist/core/node-database/binary.js.map +1 -0
  309. package/dist/core/node-database/database-backup.d.ts +13 -0
  310. package/dist/core/node-database/database-backup.d.ts.map +1 -0
  311. package/dist/core/node-database/database-backup.js +236 -0
  312. package/dist/core/node-database/database-backup.js.map +1 -0
  313. package/dist/core/node-database/maintenance-quiescence.d.ts +17 -0
  314. package/dist/core/node-database/maintenance-quiescence.d.ts.map +1 -0
  315. package/dist/core/node-database/maintenance-quiescence.js +42 -0
  316. package/dist/core/node-database/maintenance-quiescence.js.map +1 -0
  317. package/dist/core/node-database/management-key-files.d.ts +11 -0
  318. package/dist/core/node-database/management-key-files.d.ts.map +1 -0
  319. package/dist/core/node-database/management-key-files.js +166 -0
  320. package/dist/core/node-database/management-key-files.js.map +1 -0
  321. package/dist/core/node-database/schemas.d.ts +187 -0
  322. package/dist/core/node-database/schemas.d.ts.map +1 -0
  323. package/dist/core/node-database/schemas.js +212 -0
  324. package/dist/core/node-database/schemas.js.map +1 -0
  325. package/dist/core/node-database/signed-post.d.ts +21 -0
  326. package/dist/core/node-database/signed-post.d.ts.map +1 -0
  327. package/dist/core/node-database/signed-post.js +138 -0
  328. package/dist/core/node-database/signed-post.js.map +1 -0
  329. package/dist/core/node-database/transport.d.ts +5 -0
  330. package/dist/core/node-database/transport.d.ts.map +1 -0
  331. package/dist/core/node-database/transport.js +20 -0
  332. package/dist/core/node-database/transport.js.map +1 -0
  333. package/dist/core/registry/networks-read.d.ts +14 -0
  334. package/dist/core/registry/networks-read.d.ts.map +1 -0
  335. package/dist/core/registry/networks-read.js +117 -0
  336. package/dist/core/registry/networks-read.js.map +1 -0
  337. package/dist/core/registry/networks.d.ts +2 -8
  338. package/dist/core/registry/networks.d.ts.map +1 -1
  339. package/dist/core/registry/networks.js +3 -113
  340. package/dist/core/registry/networks.js.map +1 -1
  341. package/dist/core/rss/parse-rss.d.ts +10 -0
  342. package/dist/core/rss/parse-rss.d.ts.map +1 -0
  343. package/dist/core/rss/parse-rss.js +84 -0
  344. package/dist/core/rss/parse-rss.js.map +1 -0
  345. package/dist/core/vpn/schemas.d.ts +8 -8
  346. package/dist/core/vpn/schemas.js +6 -6
  347. package/dist/core/vpn/schemas.js.map +1 -1
  348. package/dist/core/vpn/vpn-files.d.ts.map +1 -1
  349. package/dist/core/vpn/vpn-files.js +4 -3
  350. package/dist/core/vpn/vpn-files.js.map +1 -1
  351. package/dist/core/vpn/vpn-parse.d.ts +6 -9
  352. package/dist/core/vpn/vpn-parse.d.ts.map +1 -1
  353. package/dist/core/vpn/vpn-parse.js +8 -12
  354. package/dist/core/vpn/vpn-parse.js.map +1 -1
  355. package/dist/core/world-affairs/fetch.d.ts +9 -0
  356. package/dist/core/world-affairs/fetch.d.ts.map +1 -0
  357. package/dist/core/world-affairs/fetch.js +142 -0
  358. package/dist/core/world-affairs/fetch.js.map +1 -0
  359. package/dist/core/world-affairs/index.d.ts +4 -0
  360. package/dist/core/world-affairs/index.d.ts.map +1 -0
  361. package/dist/core/world-affairs/index.js +4 -0
  362. package/dist/core/world-affairs/index.js.map +1 -0
  363. package/dist/core/world-affairs/schemas.d.ts +136 -0
  364. package/dist/core/world-affairs/schemas.d.ts.map +1 -0
  365. package/dist/core/world-affairs/schemas.js +66 -0
  366. package/dist/core/world-affairs/schemas.js.map +1 -0
  367. package/dist/core/world-affairs/sources.d.ts +20 -0
  368. package/dist/core/world-affairs/sources.d.ts.map +1 -0
  369. package/dist/core/world-affairs/sources.js +81 -0
  370. package/dist/core/world-affairs/sources.js.map +1 -0
  371. package/dist/evm/encode-calldata.d.ts +2 -0
  372. package/dist/evm/encode-calldata.d.ts.map +1 -1
  373. package/dist/evm/encode-calldata.js +64 -3
  374. package/dist/evm/encode-calldata.js.map +1 -1
  375. package/dist/evm/forge-dry-run-paths.d.ts +13 -0
  376. package/dist/evm/forge-dry-run-paths.d.ts.map +1 -0
  377. package/dist/evm/forge-dry-run-paths.js +41 -0
  378. package/dist/evm/forge-dry-run-paths.js.map +1 -0
  379. package/dist/evm/join-multisign.d.ts.map +1 -1
  380. package/dist/evm/join-multisign.js +4 -0
  381. package/dist/evm/join-multisign.js.map +1 -1
  382. package/dist/evm/proposal-body.d.ts +19 -0
  383. package/dist/evm/proposal-body.d.ts.map +1 -0
  384. package/dist/evm/proposal-body.js +274 -0
  385. package/dist/evm/proposal-body.js.map +1 -0
  386. package/dist/evm/proposal-builder.d.ts +4 -9
  387. package/dist/evm/proposal-builder.d.ts.map +1 -1
  388. package/dist/evm/proposal-builder.js +9 -265
  389. package/dist/evm/proposal-builder.js.map +1 -1
  390. package/dist/index.d.ts +28 -7
  391. package/dist/index.d.ts.map +1 -1
  392. package/dist/index.js +27 -6
  393. package/dist/index.js.map +1 -1
  394. package/dist/mcp/agent-cron-jobs.js +2 -2
  395. package/dist/mcp/agent-cron-jobs.js.map +1 -1
  396. package/dist/mcp/agent-discord-search.d.ts +4 -0
  397. package/dist/mcp/agent-discord-search.d.ts.map +1 -0
  398. package/dist/mcp/agent-discord-search.js +16 -0
  399. package/dist/mcp/agent-discord-search.js.map +1 -0
  400. package/dist/mcp/agent-host-catalog.d.ts +14 -1
  401. package/dist/mcp/agent-host-catalog.d.ts.map +1 -1
  402. package/dist/mcp/agent-host-catalog.js +25 -6
  403. package/dist/mcp/agent-host-catalog.js.map +1 -1
  404. package/dist/mcp/agent-input-coerce.d.ts.map +1 -1
  405. package/dist/mcp/agent-input-coerce.js +8 -1
  406. package/dist/mcp/agent-input-coerce.js.map +1 -1
  407. package/dist/mcp/agent-mcp-servers.d.ts.map +1 -1
  408. package/dist/mcp/agent-mcp-servers.js +5 -5
  409. package/dist/mcp/agent-mcp-servers.js.map +1 -1
  410. package/dist/mcp/agent-reddit-search.d.ts +4 -0
  411. package/dist/mcp/agent-reddit-search.d.ts.map +1 -0
  412. package/dist/mcp/agent-reddit-search.js +21 -0
  413. package/dist/mcp/agent-reddit-search.js.map +1 -0
  414. package/dist/mcp/agent-skills.d.ts.map +1 -1
  415. package/dist/mcp/agent-skills.js +9 -3
  416. package/dist/mcp/agent-skills.js.map +1 -1
  417. package/dist/mcp/agent-telegram-search.d.ts +4 -0
  418. package/dist/mcp/agent-telegram-search.d.ts.map +1 -0
  419. package/dist/mcp/agent-telegram-search.js +16 -0
  420. package/dist/mcp/agent-telegram-search.js.map +1 -0
  421. package/dist/mcp/agent-telegram.d.ts +4 -0
  422. package/dist/mcp/agent-telegram.d.ts.map +1 -0
  423. package/dist/mcp/agent-telegram.js +20 -0
  424. package/dist/mcp/agent-telegram.js.map +1 -0
  425. package/dist/mcp/business-latest/register.d.ts +5 -0
  426. package/dist/mcp/business-latest/register.d.ts.map +1 -0
  427. package/dist/mcp/business-latest/register.js +41 -0
  428. package/dist/mcp/business-latest/register.js.map +1 -0
  429. package/dist/mcp/chart.d.ts.map +1 -1
  430. package/dist/mcp/chart.js +3 -0
  431. package/dist/mcp/chart.js.map +1 -1
  432. package/dist/mcp/continuum-docs/config.d.ts +12 -0
  433. package/dist/mcp/continuum-docs/config.d.ts.map +1 -0
  434. package/dist/mcp/continuum-docs/config.js +35 -0
  435. package/dist/mcp/continuum-docs/config.js.map +1 -0
  436. package/dist/mcp/continuum-docs/fetch-page.d.ts +21 -0
  437. package/dist/mcp/continuum-docs/fetch-page.d.ts.map +1 -0
  438. package/dist/mcp/continuum-docs/fetch-page.js +76 -0
  439. package/dist/mcp/continuum-docs/fetch-page.js.map +1 -0
  440. package/dist/mcp/continuum-docs/index-store.d.ts +17 -0
  441. package/dist/mcp/continuum-docs/index-store.d.ts.map +1 -0
  442. package/dist/mcp/continuum-docs/index-store.js +79 -0
  443. package/dist/mcp/continuum-docs/index-store.js.map +1 -0
  444. package/dist/mcp/continuum-docs/markdown-sections.d.ts +16 -0
  445. package/dist/mcp/continuum-docs/markdown-sections.d.ts.map +1 -0
  446. package/dist/mcp/continuum-docs/markdown-sections.js +98 -0
  447. package/dist/mcp/continuum-docs/markdown-sections.js.map +1 -0
  448. package/dist/mcp/continuum-docs/register.d.ts +3 -0
  449. package/dist/mcp/continuum-docs/register.d.ts.map +1 -0
  450. package/dist/mcp/continuum-docs/register.js +69 -0
  451. package/dist/mcp/continuum-docs/register.js.map +1 -0
  452. package/dist/mcp/continuum-docs/search.d.ts +13 -0
  453. package/dist/mcp/continuum-docs/search.d.ts.map +1 -0
  454. package/dist/mcp/continuum-docs/search.js +92 -0
  455. package/dist/mcp/continuum-docs/search.js.map +1 -0
  456. package/dist/mcp/continuum-docs/types.d.ts +81 -0
  457. package/dist/mcp/continuum-docs/types.d.ts.map +1 -0
  458. package/dist/mcp/continuum-docs/types.js +60 -0
  459. package/dist/mcp/continuum-docs/types.js.map +1 -0
  460. package/dist/mcp/deferred/discovery-tools.d.ts +5 -0
  461. package/dist/mcp/deferred/discovery-tools.d.ts.map +1 -1
  462. package/dist/mcp/deferred/discovery-tools.js +69 -25
  463. package/dist/mcp/deferred/discovery-tools.js.map +1 -1
  464. package/dist/mcp/deferred/optional-endpoint-groups.d.ts +2 -2
  465. package/dist/mcp/deferred/optional-endpoint-groups.d.ts.map +1 -1
  466. package/dist/mcp/deferred/optional-endpoint-groups.js +13 -1
  467. package/dist/mcp/deferred/optional-endpoint-groups.js.map +1 -1
  468. package/dist/mcp/deferred/session.js +2 -2
  469. package/dist/mcp/deferred/session.js.map +1 -1
  470. package/dist/mcp/deferred/tool-group-map.d.ts +4 -3
  471. package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -1
  472. package/dist/mcp/deferred/tool-group-map.js +813 -39
  473. package/dist/mcp/deferred/tool-group-map.js.map +1 -1
  474. package/dist/mcp/defi/discovery.js +6 -6
  475. package/dist/mcp/defi/discovery.js.map +1 -1
  476. package/dist/mcp/docs/search-index.json +3432 -0
  477. package/dist/mcp/index.d.ts +1 -1
  478. package/dist/mcp/index.d.ts.map +1 -1
  479. package/dist/mcp/index.js +1 -1
  480. package/dist/mcp/index.js.map +1 -1
  481. package/dist/mcp/mpc-gas-docs.d.ts +2 -0
  482. package/dist/mcp/mpc-gas-docs.d.ts.map +1 -1
  483. package/dist/mcp/mpc-gas-docs.js +2 -0
  484. package/dist/mcp/mpc-gas-docs.js.map +1 -1
  485. package/dist/mcp/mpc.d.ts.map +1 -1
  486. package/dist/mcp/mpc.js +87 -31
  487. package/dist/mcp/mpc.js.map +1 -1
  488. package/dist/mcp/node-config.d.ts +4 -0
  489. package/dist/mcp/node-config.d.ts.map +1 -0
  490. package/dist/mcp/node-config.js +34 -0
  491. package/dist/mcp/node-config.js.map +1 -0
  492. package/dist/mcp/node-database.d.ts +4 -0
  493. package/dist/mcp/node-database.d.ts.map +1 -0
  494. package/dist/mcp/node-database.js +74 -0
  495. package/dist/mcp/node-database.js.map +1 -0
  496. package/dist/mcp/ohlcv-sources.d.ts +5 -0
  497. package/dist/mcp/ohlcv-sources.d.ts.map +1 -0
  498. package/dist/mcp/ohlcv-sources.js +54 -0
  499. package/dist/mcp/ohlcv-sources.js.map +1 -0
  500. package/dist/mcp/register.d.ts +5 -0
  501. package/dist/mcp/register.d.ts.map +1 -1
  502. package/dist/mcp/register.js +28 -0
  503. package/dist/mcp/register.js.map +1 -1
  504. package/dist/mcp/resources/agent-cron-jobs.md +3 -1
  505. package/dist/mcp/resources/agent-mcp-servers.md +99 -1
  506. package/dist/mcp/resources/agent-skills.md +10 -6
  507. package/dist/mcp/resources/agent-social-search.md +78 -0
  508. package/dist/mcp/resources/agent-telegram-search.md +24 -0
  509. package/dist/mcp/resources/agent-telegram.md +18 -0
  510. package/dist/mcp/resources/agent-webhooks.md +2 -0
  511. package/dist/mcp/resources/business-latest.md +26 -0
  512. package/dist/mcp/resources/chart-analysis.md +5 -1
  513. package/dist/mcp/resources/chart.md +16 -4
  514. package/dist/mcp/resources/discord-guilds.yaml +46 -0
  515. package/dist/mcp/resources/management-signer.md +2 -1
  516. package/dist/mcp/resources/mpc.md +46 -29
  517. package/dist/mcp/resources/node-config.md +142 -0
  518. package/dist/mcp/resources/node-database.md +64 -0
  519. package/dist/mcp/resources/overview.md +13 -0
  520. package/dist/mcp/resources/social-search.yaml +79 -0
  521. package/dist/mcp/resources/telegram-channels.yaml +47 -0
  522. package/dist/mcp/resources/user-folder.md +44 -0
  523. package/dist/mcp/resources/vpn.md +10 -8
  524. package/dist/mcp/resources/world-affairs.md +28 -0
  525. package/dist/mcp/server/http-transport.d.ts +3 -0
  526. package/dist/mcp/server/http-transport.d.ts.map +1 -1
  527. package/dist/mcp/server/http-transport.js +3 -2
  528. package/dist/mcp/server/http-transport.js.map +1 -1
  529. package/dist/mcp/server/index.js +8 -1
  530. package/dist/mcp/server/index.js.map +1 -1
  531. package/dist/mcp/server/telegram-search-internal.d.ts +3 -0
  532. package/dist/mcp/server/telegram-search-internal.d.ts.map +1 -0
  533. package/dist/mcp/server/telegram-search-internal.js +54 -0
  534. package/dist/mcp/server/telegram-search-internal.js.map +1 -0
  535. package/dist/mcp/user-folder.d.ts +4 -0
  536. package/dist/mcp/user-folder.d.ts.map +1 -0
  537. package/dist/mcp/user-folder.js +32 -0
  538. package/dist/mcp/user-folder.js.map +1 -0
  539. package/dist/mcp/vpn.js +7 -7
  540. package/dist/mcp/vpn.js.map +1 -1
  541. package/dist/mcp/world-affairs/register.d.ts +5 -0
  542. package/dist/mcp/world-affairs/register.d.ts.map +1 -0
  543. package/dist/mcp/world-affairs/register.js +41 -0
  544. package/dist/mcp/world-affairs/register.js.map +1 -0
  545. package/dist/schemas/extended.d.ts +600 -1
  546. package/dist/schemas/extended.d.ts.map +1 -1
  547. package/dist/schemas/extended.js +355 -1
  548. package/dist/schemas/extended.js.map +1 -1
  549. package/package.json +10 -4
@@ -0,0 +1,238 @@
1
+ import { signedMessageForConfigUpdateImplement, buildConfigUpdateImplementPostBody, } from '../api/config-update.js';
2
+ import { managementGet, managementPost } from '../api/management-api.js';
3
+ import { DEFAULT_MANAGEMENT_SIGNING, DEFAULT_PEER_MANAGEMENT_HTTP_PORT, GetMqttTlsPublicKeyDataSchema, Ipv4Schema, MaintenanceRestartGateDataSchema, NODE_CONFIG_API_PATHS, SetConfiguredNodesDataSchema, SetConfiguredNodesInputSchema, SetMqttTlsKeyDataSchema, SetMqttTlsKeyInputSchema, } from '../schemas/extended.js';
4
+ import { buildManagementPostRequest, managementSign, toSelectedSigner, } from './management-signer.js';
5
+ const MQTT_CA_CERT_MAX_BYTES = 512 * 1024;
6
+ export { DEFAULT_PEER_MANAGEMENT_HTTP_PORT };
7
+ export function isValidIpv4(host) {
8
+ return Ipv4Schema.safeParse(host.trim()).success;
9
+ }
10
+ export function isUnsetRelayPlaceholderAddress(address) {
11
+ return extractIpv4Host(address) === '0.0.0.0';
12
+ }
13
+ export function extractIpv4Host(addr) {
14
+ const s = addr.trim();
15
+ if (!s) {
16
+ return '';
17
+ }
18
+ try {
19
+ const u = new URL(s.includes('://') ? s : `http://${s}`);
20
+ return u.hostname;
21
+ }
22
+ catch {
23
+ const colon = s.lastIndexOf(':');
24
+ if (colon > 0) {
25
+ return s.slice(0, colon).trim();
26
+ }
27
+ return s;
28
+ }
29
+ }
30
+ /** IPv4 plus port for POST /configUpdatePlan `nodeAddresses` / `MSQTTRelayIP`. */
31
+ export function peerAddressForConfigWrite(ipv4, port = DEFAULT_PEER_MANAGEMENT_HTTP_PORT) {
32
+ const ip = ipv4.trim();
33
+ const p = port > 0 ? port : DEFAULT_PEER_MANAGEMENT_HTTP_PORT;
34
+ return `${ip}:${p}`;
35
+ }
36
+ function assertMqttCaCertPem(pem) {
37
+ const trimmed = pem.trim();
38
+ if (!trimmed.includes('-----BEGIN CERTIFICATE-----')) {
39
+ return { ok: false, reason: 'caCertPem must be a PEM-encoded CERTIFICATE' };
40
+ }
41
+ if (new TextEncoder().encode(trimmed).length > MQTT_CA_CERT_MAX_BYTES) {
42
+ return { ok: false, reason: 'caCertPem exceeds max size (512 KiB)' };
43
+ }
44
+ return { ok: true, data: trimmed };
45
+ }
46
+ function normalizePeerIpv4List(peers) {
47
+ const list = peers.map(p => p.trim()).filter(Boolean);
48
+ if (list.length === 0) {
49
+ return { ok: false, reason: 'peers must contain at least one IPv4 address.' };
50
+ }
51
+ const bad = list.filter(ip => !isValidIpv4(ip));
52
+ if (bad.length > 0) {
53
+ return { ok: false, reason: `Invalid IPv4 in peers: ${bad.join(', ')}` };
54
+ }
55
+ if (new Set(list).size !== list.length) {
56
+ return { ok: false, reason: 'Each peer IPv4 address must appear only once.' };
57
+ }
58
+ if (list[0] === '0.0.0.0') {
59
+ return {
60
+ ok: false,
61
+ reason: 'First peer is the relay; 0.0.0.0 is the unset placeholder. Set a real public relay IPv4.',
62
+ };
63
+ }
64
+ return { ok: true, data: list };
65
+ }
66
+ /** GET /getMSQTTKey — MQTT broker TLS CA PEM (relay export). */
67
+ export async function getMqttTlsPublicKey(config) {
68
+ const result = await managementGet(config, NODE_CONFIG_API_PATHS.getMqttKey);
69
+ if (!result.ok) {
70
+ return result;
71
+ }
72
+ const parsed = GetMqttTlsPublicKeyDataSchema.safeParse(result.data);
73
+ if (!parsed.success) {
74
+ return { ok: false, reason: 'GET /getMSQTTKey response failed validation.' };
75
+ }
76
+ return { ok: true, data: parsed.data };
77
+ }
78
+ export async function buildSetMqttTlsKey(config, input, signing = DEFAULT_MANAGEMENT_SIGNING) {
79
+ const parsed = SetMqttTlsKeyInputSchema.safeParse(input);
80
+ if (!parsed.success) {
81
+ return { ok: false, reason: 'Invalid set MQTT TLS key input.' };
82
+ }
83
+ const pem = assertMqttCaCertPem(parsed.data.caCertPem);
84
+ if (!pem.ok) {
85
+ return pem;
86
+ }
87
+ return buildManagementPostRequest(config, {
88
+ path: NODE_CONFIG_API_PATHS.postMqttKey,
89
+ buildRequestFields: () => ({ caCertPem: pem.data }),
90
+ }, signing);
91
+ }
92
+ /** POST /postMSQTTKey — write MQTT broker CA PEM (sign caCertPem bytes, not JSON). */
93
+ export async function setMqttTlsKey(config, input, signing = DEFAULT_MANAGEMENT_SIGNING) {
94
+ const built = await buildSetMqttTlsKey(config, input, signing);
95
+ if (!built.ok) {
96
+ return built;
97
+ }
98
+ const pem = String(built.data.unsignedBody['caCertPem'] ?? '');
99
+ const signed = await managementSign(config, signing, built.data.unsignedBody, { messageToSign: pem });
100
+ if (!signed.ok) {
101
+ return signed;
102
+ }
103
+ const posted = await managementPost(config, built.data.path, signed.data);
104
+ if (!posted.ok) {
105
+ return posted;
106
+ }
107
+ const data = SetMqttTlsKeyDataSchema.safeParse({
108
+ path: String(posted.data.path ?? ''),
109
+ message: String(posted.data.message ?? 'MQTT broker CA PEM written'),
110
+ restartRequired: true,
111
+ });
112
+ if (!data.success) {
113
+ return { ok: false, reason: 'POST /postMSQTTKey response failed validation.' };
114
+ }
115
+ return {
116
+ ok: true,
117
+ data: {
118
+ ...data.data,
119
+ selectedSigningKey: built.data.selectedSigningKey
120
+ ? toSelectedSigner(built.data.selectedSigningKey)
121
+ : undefined,
122
+ signingMessage: pem,
123
+ },
124
+ };
125
+ }
126
+ export async function buildSetConfiguredNodes(config, input, signing = DEFAULT_MANAGEMENT_SIGNING) {
127
+ const parsed = SetConfiguredNodesInputSchema.safeParse(input);
128
+ if (!parsed.success) {
129
+ return { ok: false, reason: 'Invalid set configured nodes input.' };
130
+ }
131
+ const peers = normalizePeerIpv4List(parsed.data.peers);
132
+ if (!peers.ok) {
133
+ return peers;
134
+ }
135
+ const port = parsed.data.managementHttpPort ?? DEFAULT_PEER_MANAGEMENT_HTTP_PORT;
136
+ const nodeAddresses = peers.data.map(ip => peerAddressForConfigWrite(ip, port));
137
+ const relayIp = nodeAddresses[0];
138
+ if (!relayIp) {
139
+ return { ok: false, reason: 'peers must contain a relay IPv4 (first slot).' };
140
+ }
141
+ return buildManagementPostRequest(config, {
142
+ path: NODE_CONFIG_API_PATHS.configUpdatePlan,
143
+ buildRequestFields: () => ({
144
+ MSQTTRelayIP: relayIp,
145
+ nodeAddresses,
146
+ managementHttpPort: port,
147
+ }),
148
+ }, signing);
149
+ }
150
+ /**
151
+ * POST /configUpdatePlan then POST /configUpdateImplement.
152
+ * First IPv4 is the relay (every collaborator must share it). Restart the node after apply.
153
+ */
154
+ export async function setConfiguredNodes(config, input, signing = DEFAULT_MANAGEMENT_SIGNING) {
155
+ const builtPlan = await buildSetConfiguredNodes(config, input, signing);
156
+ if (!builtPlan.ok) {
157
+ return builtPlan;
158
+ }
159
+ const signedPlan = await managementSign(config, signing, builtPlan.data.unsignedBody);
160
+ if (!signedPlan.ok) {
161
+ return signedPlan;
162
+ }
163
+ const planned = await managementPost(config, builtPlan.data.path, signedPlan.data);
164
+ if (!planned.ok) {
165
+ return planned;
166
+ }
167
+ const plannedYaml = String(planned.data.plannedYaml ?? '').trim();
168
+ if (!plannedYaml) {
169
+ return { ok: false, reason: 'configUpdatePlan returned no plannedYaml.' };
170
+ }
171
+ const plannedShaMessage = String(planned.data.plannedShaMessage ?? '').trim() ||
172
+ (await signedMessageForConfigUpdateImplement(plannedYaml));
173
+ const builtImpl = await buildManagementPostRequest(config, {
174
+ path: NODE_CONFIG_API_PATHS.configUpdateImplement,
175
+ buildRequestFields: ctx => buildConfigUpdateImplementPostBody(0, ctx.nodeKey, plannedYaml, plannedShaMessage),
176
+ }, signing);
177
+ if (!builtImpl.ok) {
178
+ return builtImpl;
179
+ }
180
+ const signedImpl = await managementSign(config, signing, builtImpl.data.unsignedBody, { messageToSign: plannedShaMessage });
181
+ if (!signedImpl.ok) {
182
+ return signedImpl;
183
+ }
184
+ const implemented = await managementPost(config, builtImpl.data.path, signedImpl.data);
185
+ if (!implemented.ok) {
186
+ return implemented;
187
+ }
188
+ const data = SetConfiguredNodesDataSchema.safeParse({
189
+ message: String(implemented.data.message ??
190
+ 'configs.yaml updated; restart the node for changes to take effect'),
191
+ ...(implemented.data.configsPath
192
+ ? { configsPath: implemented.data.configsPath }
193
+ : planned.data.configsPath
194
+ ? { configsPath: planned.data.configsPath }
195
+ : {}),
196
+ ...(implemented.data.backupPath
197
+ ? { backupPath: implemented.data.backupPath }
198
+ : {}),
199
+ ...(implemented.data.composeWarning
200
+ ? { composeWarning: implemented.data.composeWarning }
201
+ : {}),
202
+ restartRequired: true,
203
+ });
204
+ if (!data.success) {
205
+ return {
206
+ ok: false,
207
+ reason: 'configUpdateImplement response failed validation.',
208
+ };
209
+ }
210
+ return {
211
+ ok: true,
212
+ data: {
213
+ ...data.data,
214
+ selectedSigningKey: builtImpl.data.selectedSigningKey
215
+ ? toSelectedSigner(builtImpl.data.selectedSigningKey)
216
+ : builtPlan.data.selectedSigningKey
217
+ ? toSelectedSigner(builtPlan.data.selectedSigningKey)
218
+ : undefined,
219
+ signingMessage: plannedShaMessage,
220
+ },
221
+ };
222
+ }
223
+ /** GET /maintenance/restartGate — read-only; container restart is host `docker compose`. */
224
+ export async function getMaintenanceRestartGate(config) {
225
+ const result = await managementGet(config, NODE_CONFIG_API_PATHS.restartGate);
226
+ if (!result.ok) {
227
+ return result;
228
+ }
229
+ const parsed = MaintenanceRestartGateDataSchema.safeParse(result.data);
230
+ if (!parsed.success) {
231
+ return {
232
+ ok: false,
233
+ reason: 'GET /maintenance/restartGate response failed validation.',
234
+ };
235
+ }
236
+ return { ok: true, data: parsed.data };
237
+ }
238
+ //# sourceMappingURL=node-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-config.js","sourceRoot":"","sources":["../../src/core/node-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ type SdkBinaryResult = {
2
+ ok: true;
3
+ bytes: Uint8Array;
4
+ } | {
5
+ ok: false;
6
+ reason: string;
7
+ };
8
+ export declare function sha256HexOfBytes(bytes: Uint8Array): Promise<string>;
9
+ export declare function decodeBase64Content(contentBase64: string): SdkBinaryResult;
10
+ export declare function encodeBase64IfAllowed(bytes: Uint8Array): string | undefined;
11
+ export {};
12
+ //# sourceMappingURL=binary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../src/core/node-database/binary.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,GACjB;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAC,GAC7B;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAE/B,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAIzE;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,CAiB1E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAK3E"}
@@ -0,0 +1,32 @@
1
+ import { DATABASE_BACKUP_BASE64_MAX_BYTES } from './schemas.js';
2
+ export async function sha256HexOfBytes(bytes) {
3
+ const view = new Uint8Array(bytes);
4
+ const hash = await crypto.subtle.digest('SHA-256', view);
5
+ return Array.from(new Uint8Array(hash), b => b.toString(16).padStart(2, '0')).join('');
6
+ }
7
+ export function decodeBase64Content(contentBase64) {
8
+ const trimmed = contentBase64.trim();
9
+ if (!trimmed) {
10
+ return { ok: false, reason: 'contentBase64 is required.' };
11
+ }
12
+ try {
13
+ const bytes = Uint8Array.from(Buffer.from(trimmed, 'base64'));
14
+ if (bytes.length > DATABASE_BACKUP_BASE64_MAX_BYTES) {
15
+ return {
16
+ ok: false,
17
+ reason: `contentBase64 exceeds ${DATABASE_BACKUP_BASE64_MAX_BYTES} bytes; use userFolderPath instead.`,
18
+ };
19
+ }
20
+ return { ok: true, bytes };
21
+ }
22
+ catch {
23
+ return { ok: false, reason: 'contentBase64 is not valid base64.' };
24
+ }
25
+ }
26
+ export function encodeBase64IfAllowed(bytes) {
27
+ if (bytes.length > DATABASE_BACKUP_BASE64_MAX_BYTES) {
28
+ return undefined;
29
+ }
30
+ return Buffer.from(bytes).toString('base64');
31
+ }
32
+ //# sourceMappingURL=binary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.js","sourceRoot":"","sources":["../../../src/core/node-database/binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gCAAgC,EAAC,MAAM,cAAc,CAAC;AAM9D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAiB;IACvD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,aAAqB;IACxD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAC,CAAC;IAC1D,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,MAAM,GAAG,gCAAgC,EAAE,CAAC;YACrD,OAAO;gBACN,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,yBAAyB,gCAAgC,qCAAqC;aACtG,CAAC;QACH,CAAC;QACD,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oCAAoC,EAAC,CAAC;IAClE,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACtD,IAAI,KAAK,CAAC,MAAM,GAAG,gCAAgC,EAAE,CAAC;QACrD,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { NodeSdkConfig } from '../../config/schema.js';
2
+ import type { z } from 'zod';
3
+ import type { SdkResult } from '../result.js';
4
+ import { ListDatabaseBackupsOutputSchema, BackupDatabaseOutputSchema, RestoreDatabaseOutputSchema, FetchDatabaseBackupOutputSchema, PostDatabaseBackupOutputSchema, type BackupDatabaseInput, type FetchDatabaseBackupInput, type FixDatabaseInput, type PostDatabaseBackupInput, type RestoreDatabaseInput } from './schemas.js';
5
+ export declare function listDatabaseBackups(config: NodeSdkConfig): Promise<SdkResult<z.infer<typeof ListDatabaseBackupsOutputSchema>>>;
6
+ export declare function checkDatabase(config: NodeSdkConfig): Promise<SdkResult<Record<string, unknown>>>;
7
+ export declare function backupDatabase(config: NodeSdkConfig, input: BackupDatabaseInput): Promise<SdkResult<z.infer<typeof BackupDatabaseOutputSchema>>>;
8
+ export declare function restoreDatabase(config: NodeSdkConfig, input: RestoreDatabaseInput): Promise<SdkResult<z.infer<typeof RestoreDatabaseOutputSchema>>>;
9
+ export declare function fetchDatabaseBackup(config: NodeSdkConfig, input: FetchDatabaseBackupInput): Promise<SdkResult<z.infer<typeof FetchDatabaseBackupOutputSchema>>>;
10
+ export declare function postDatabaseBackup(config: NodeSdkConfig, input: PostDatabaseBackupInput): Promise<SdkResult<z.infer<typeof PostDatabaseBackupOutputSchema>>>;
11
+ export declare function fixDatabase(config: NodeSdkConfig, input: FixDatabaseInput): Promise<SdkResult<Record<string, unknown>>>;
12
+ export { requestMaintenanceRestartPrep } from './maintenance-quiescence.js';
13
+ //# sourceMappingURL=database-backup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-backup.d.ts","sourceRoot":"","sources":["../../../src/core/node-database/database-backup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAE3B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,OAAO,EAGN,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,MAAM,cAAc,CAAC;AA4CtB,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC,CAAC,CAwBrE;AAED,wBAAsB,aAAa,CAClC,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAE7C;AAED,wBAAsB,cAAc,CACnC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,mBAAmB,GACxB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,CA8BhE;AAED,wBAAsB,eAAe,CACpC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,oBAAoB,GACzB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC,CA0BjE;AAED,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,wBAAwB,GAC7B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC,CAAC,CAuCrE;AAED,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,uBAAuB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC,CAAC,CA2DpE;AAED,wBAAsB,WAAW,CAChC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,gBAAgB,GACrB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAe7C;AAED,OAAO,EAAC,6BAA6B,EAAC,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,236 @@
1
+ import { getUserFolderFile, writeUserFolderFile } from '../agent/user-folder.js';
2
+ import { decodeBase64Content, encodeBase64IfAllowed, sha256HexOfBytes } from './binary.js';
3
+ import { ensureMaintenanceQuiescence } from './maintenance-quiescence.js';
4
+ import { NODE_DATABASE_API_PATHS, ListDatabaseBackupsOutputSchema, BackupDatabaseOutputSchema, RestoreDatabaseOutputSchema, FetchDatabaseBackupOutputSchema, PostDatabaseBackupOutputSchema, } from './schemas.js';
5
+ import { managementGetRecord, postSignedManagementRequest, postSignedMultipartBackup, postSignedRawResponse, } from './signed-post.js';
6
+ import { sensitiveExportTransportAllowed, sensitiveExportTransportError, } from './transport.js';
7
+ import { buildManagementPostRequest, managementSign, DEFAULT_MANAGEMENT_SIGNING, } from '../management-signer.js';
8
+ function pickString(row, ...keys) {
9
+ for (const key of keys) {
10
+ const value = row[key];
11
+ if (typeof value === 'string' && value.trim()) {
12
+ return value.trim();
13
+ }
14
+ }
15
+ return '';
16
+ }
17
+ function pickBool(row, ...keys) {
18
+ for (const key of keys) {
19
+ if (key in row)
20
+ return Boolean(row[key]);
21
+ }
22
+ return false;
23
+ }
24
+ function pickNumber(row, ...keys) {
25
+ for (const key of keys) {
26
+ const value = row[key];
27
+ if (typeof value === 'number' && Number.isFinite(value)) {
28
+ return value;
29
+ }
30
+ }
31
+ return undefined;
32
+ }
33
+ export async function listDatabaseBackups(config) {
34
+ const result = await managementGetRecord(config, NODE_DATABASE_API_PATHS.listDatabaseBackups);
35
+ if (!result.ok)
36
+ return result;
37
+ const backupsRaw = result.data.backups ?? result.data.Backups;
38
+ const backups = [];
39
+ if (Array.isArray(backupsRaw)) {
40
+ for (const item of backupsRaw) {
41
+ if (!item || typeof item !== 'object')
42
+ continue;
43
+ const row = item;
44
+ const backupId = pickString(row, 'backupId', 'BackupId');
45
+ if (!backupId)
46
+ continue;
47
+ backups.push({
48
+ backupId,
49
+ backupUtc: pickString(row, 'backupUtc', 'BackupUtc'),
50
+ notes: pickString(row, 'notes', 'Notes'),
51
+ });
52
+ }
53
+ }
54
+ const parsed = ListDatabaseBackupsOutputSchema.safeParse({ backups });
55
+ if (!parsed.success) {
56
+ return { ok: false, reason: 'listDatabaseBackups response failed validation.' };
57
+ }
58
+ return { ok: true, data: parsed.data };
59
+ }
60
+ export async function checkDatabase(config) {
61
+ return managementGetRecord(config, NODE_DATABASE_API_PATHS.checkDatabase);
62
+ }
63
+ export async function backupDatabase(config, input) {
64
+ const quiescence = await ensureMaintenanceQuiescence(config, input);
65
+ if (!quiescence.ok)
66
+ return quiescence;
67
+ const posted = await postSignedManagementRequest(config, NODE_DATABASE_API_PATHS.backupDatabase, () => {
68
+ const body = {};
69
+ if (input.includeGroupIds?.length)
70
+ body.includeGroupIds = input.includeGroupIds;
71
+ if (input.excludeGroupIds?.length)
72
+ body.excludeGroupIds = input.excludeGroupIds;
73
+ if (input.mongoRootUsername)
74
+ body.mongoRootUsername = input.mongoRootUsername;
75
+ if (input.mongoRootPassword)
76
+ body.mongoRootPassword = input.mongoRootPassword;
77
+ if (input.notes)
78
+ body.notes = input.notes;
79
+ return body;
80
+ });
81
+ if (!posted.ok)
82
+ return posted;
83
+ const row = posted.data.data;
84
+ const output = {
85
+ backupId: pickString(row, 'backupId', 'BackupId'),
86
+ path: pickString(row, 'path', 'Path'),
87
+ backupUtc: pickString(row, 'backupUtc', 'BackupUtc') || undefined,
88
+ ciphertextSha256: pickString(row, 'ciphertextSha256', 'CiphertextSha256') || undefined,
89
+ ciphertextByteLength: pickNumber(row, 'ciphertextByteLength', 'CiphertextByteLength'),
90
+ backupFileSizeBytes: pickNumber(row, 'backupFileSizeBytes', 'BackupFileSizeBytes'),
91
+ notes: pickString(row, 'notes', 'Notes') || undefined,
92
+ };
93
+ const parsed = BackupDatabaseOutputSchema.safeParse(output);
94
+ if (!parsed.success || !parsed.data.backupId) {
95
+ return { ok: false, reason: 'backupDatabase response failed validation.' };
96
+ }
97
+ return { ok: true, data: parsed.data };
98
+ }
99
+ export async function restoreDatabase(config, input) {
100
+ const quiescence = await ensureMaintenanceQuiescence(config, input);
101
+ if (!quiescence.ok)
102
+ return quiescence;
103
+ const posted = await postSignedManagementRequest(config, NODE_DATABASE_API_PATHS.restoreDatabase, () => {
104
+ const body = {};
105
+ if (input.backupId)
106
+ body.backupId = input.backupId;
107
+ if (input.backupPath)
108
+ body.backupPath = input.backupPath;
109
+ if (input.mongoRootUsername)
110
+ body.mongoRootUsername = input.mongoRootUsername;
111
+ if (input.mongoRootPassword)
112
+ body.mongoRootPassword = input.mongoRootPassword;
113
+ return body;
114
+ });
115
+ if (!posted.ok)
116
+ return posted;
117
+ const row = posted.data.data;
118
+ const output = {
119
+ restoredFrom: pickString(row, 'restoredFrom', 'RestoredFrom'),
120
+ backupId: pickString(row, 'backupId', 'BackupId'),
121
+ exhaustedGlobalNonceKeyGens: pickString(row, 'exhaustedGlobalNonceKeyGens', 'ExhaustedGlobalNonceKeyGens') || undefined,
122
+ };
123
+ const parsed = RestoreDatabaseOutputSchema.safeParse(output);
124
+ if (!parsed.success || !parsed.data.restoredFrom) {
125
+ return { ok: false, reason: 'restoreDatabase response failed validation.' };
126
+ }
127
+ return { ok: true, data: parsed.data };
128
+ }
129
+ export async function fetchDatabaseBackup(config, input) {
130
+ if (!sensitiveExportTransportAllowed(config)) {
131
+ return { ok: false, reason: sensitiveExportTransportError() };
132
+ }
133
+ const quiescence = await ensureMaintenanceQuiescence(config, input);
134
+ if (!quiescence.ok)
135
+ return quiescence;
136
+ const fetched = await postSignedRawResponse(config, NODE_DATABASE_API_PATHS.fetchDatabaseBackup, () => ({ backupId: input.backupId.trim() }));
137
+ if (!fetched.ok)
138
+ return fetched;
139
+ const bytes = fetched.data.bytes;
140
+ const sha256 = await sha256HexOfBytes(bytes);
141
+ let savedPath;
142
+ if (input.userFolderPath) {
143
+ const text = Buffer.from(bytes).toString('utf8');
144
+ const written = await writeUserFolderFile(config, input.userFolderPath, text);
145
+ if (!written.ok)
146
+ return written;
147
+ savedPath = written.data.path;
148
+ }
149
+ const contentBase64 = input.returnBase64 === false ? undefined : encodeBase64IfAllowed(bytes);
150
+ const output = {
151
+ backupId: input.backupId.trim(),
152
+ sizeBytes: bytes.length,
153
+ sha256,
154
+ savedPath,
155
+ contentBase64,
156
+ };
157
+ const parsed = FetchDatabaseBackupOutputSchema.safeParse(output);
158
+ if (!parsed.success) {
159
+ return { ok: false, reason: 'fetchDatabaseBackup output failed validation.' };
160
+ }
161
+ return { ok: true, data: parsed.data };
162
+ }
163
+ export async function postDatabaseBackup(config, input) {
164
+ const quiescence = await ensureMaintenanceQuiescence(config, input);
165
+ if (!quiescence.ok)
166
+ return quiescence;
167
+ let bytes;
168
+ let filename = 'upload.json';
169
+ if (input.userFolderPath) {
170
+ const file = await getUserFolderFile(config, input.userFolderPath);
171
+ if (!file.ok)
172
+ return file;
173
+ bytes = Buffer.from(file.data.content, 'utf8');
174
+ const parts = input.userFolderPath.replace(/\\/g, '/').split('/');
175
+ filename = parts[parts.length - 1] || filename;
176
+ }
177
+ else if (input.contentBase64) {
178
+ const decoded = decodeBase64Content(input.contentBase64);
179
+ if (!decoded.ok)
180
+ return decoded;
181
+ bytes = decoded.bytes;
182
+ }
183
+ else {
184
+ return { ok: false, reason: 'userFolderPath or contentBase64 is required.' };
185
+ }
186
+ const contentSha256 = await sha256HexOfBytes(bytes);
187
+ const built = await buildManagementPostRequest(config, {
188
+ path: NODE_DATABASE_API_PATHS.postDatabaseBackup,
189
+ buildRequestFields: () => ({ contentSha256 }),
190
+ }, DEFAULT_MANAGEMENT_SIGNING);
191
+ if (!built.ok)
192
+ return built;
193
+ const signed = await managementSign(config, DEFAULT_MANAGEMENT_SIGNING, built.data.unsignedBody, {
194
+ publicKey: built.data.selectedSigningKey?.value,
195
+ });
196
+ if (!signed.ok)
197
+ return signed;
198
+ const posted = await postSignedMultipartBackup(config, NODE_DATABASE_API_PATHS.postDatabaseBackup, signed.data, bytes, filename);
199
+ if (!posted.ok)
200
+ return posted;
201
+ const row = posted.data;
202
+ const output = {
203
+ backupId: pickString(row, 'backupId', 'BackupId'),
204
+ path: pickString(row, 'path', 'Path'),
205
+ backupFileSizeBytes: pickNumber(row, 'backupFileSizeBytes', 'BackupFileSizeBytes') ?? 0,
206
+ contentSha256: pickString(row, 'contentSha256', 'ContentSha256') || contentSha256,
207
+ alreadyPresent: pickBool(row, 'alreadyPresent', 'AlreadyPresent') || undefined,
208
+ message: pickString(row, 'message', 'Message') || undefined,
209
+ };
210
+ const parsed = PostDatabaseBackupOutputSchema.safeParse(output);
211
+ if (!parsed.success || !parsed.data.backupId) {
212
+ return { ok: false, reason: 'postDatabaseBackup response failed validation.' };
213
+ }
214
+ return { ok: true, data: parsed.data };
215
+ }
216
+ export async function fixDatabase(config, input) {
217
+ const quiescence = await ensureMaintenanceQuiescence(config, input);
218
+ if (!quiescence.ok)
219
+ return quiescence;
220
+ const posted = await postSignedManagementRequest(config, NODE_DATABASE_API_PATHS.fixDatabase, () => {
221
+ const body = {
222
+ instruction: input.instruction,
223
+ report: input.report,
224
+ };
225
+ if (input.mongoRootUsername)
226
+ body.mongoRootUsername = input.mongoRootUsername;
227
+ if (input.mongoRootPassword)
228
+ body.mongoRootPassword = input.mongoRootPassword;
229
+ return body;
230
+ });
231
+ if (!posted.ok)
232
+ return posted;
233
+ return { ok: true, data: posted.data.data };
234
+ }
235
+ export { requestMaintenanceRestartPrep } from './maintenance-quiescence.js';
236
+ //# sourceMappingURL=database-backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-backup.js","sourceRoot":"","sources":["../../../src/core/node-database/database-backup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { NodeSdkConfig } from '../../config/schema.js';
2
+ import type { SdkResult } from '../result.js';
3
+ export declare const DATABASE_BACKUP_GATE_POLL_MS = 1500;
4
+ export declare const DATABASE_BACKUP_GATE_MAX_MS: number;
5
+ export declare function requestMaintenanceRestartPrep(config: NodeSdkConfig): Promise<SdkResult<{
6
+ ok: true;
7
+ }>>;
8
+ export declare function pollMaintenanceRestartGateUntilReady(config: NodeSdkConfig): Promise<SdkResult<{
9
+ ok: true;
10
+ }>>;
11
+ export declare function ensureMaintenanceQuiescence(config: NodeSdkConfig, options?: {
12
+ skipQuiescence?: boolean;
13
+ requestRestartPrep?: boolean;
14
+ }): Promise<SdkResult<{
15
+ ok: true;
16
+ }>>;
17
+ //# sourceMappingURL=maintenance-quiescence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance-quiescence.d.ts","sourceRoot":"","sources":["../../../src/core/node-database/maintenance-quiescence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAI5C,eAAO,MAAM,4BAA4B,OAAO,CAAC;AACjD,eAAO,MAAM,2BAA2B,QAAgB,CAAC;AAMzD,wBAAsB,6BAA6B,CAClD,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAC,CAAC,CAAC,CAQhC;AAED,wBAAsB,oCAAoC,CACzD,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAC,CAAC,CAAC,CAehC;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAM,GACpE,OAAO,CAAC,SAAS,CAAC;IAAC,EAAE,EAAE,IAAI,CAAA;CAAC,CAAC,CAAC,CAShC"}
@@ -0,0 +1,42 @@
1
+ import { getMaintenanceRestartGate } from '../node-config.js';
2
+ import { NODE_DATABASE_API_PATHS } from './schemas.js';
3
+ import { postSignedManagementRequest } from './signed-post.js';
4
+ export const DATABASE_BACKUP_GATE_POLL_MS = 1500;
5
+ export const DATABASE_BACKUP_GATE_MAX_MS = 5 * 60 * 1000;
6
+ function sleep(ms) {
7
+ return new Promise(resolve => setTimeout(resolve, ms));
8
+ }
9
+ export async function requestMaintenanceRestartPrep(config) {
10
+ const posted = await postSignedManagementRequest(config, NODE_DATABASE_API_PATHS.requestRestartPrep, () => ({}));
11
+ if (!posted.ok)
12
+ return posted;
13
+ return { ok: true, data: { ok: true } };
14
+ }
15
+ export async function pollMaintenanceRestartGateUntilReady(config) {
16
+ const deadline = Date.now() + DATABASE_BACKUP_GATE_MAX_MS;
17
+ while (Date.now() < deadline) {
18
+ const gate = await getMaintenanceRestartGate(config);
19
+ if (!gate.ok)
20
+ return gate;
21
+ if (gate.data.readyForProcessExit) {
22
+ return { ok: true, data: { ok: true } };
23
+ }
24
+ await sleep(DATABASE_BACKUP_GATE_POLL_MS);
25
+ }
26
+ return {
27
+ ok: false,
28
+ reason: 'Timed out waiting for maintenance restart gate (readyForProcessExit). Try again when the node is quiet.',
29
+ };
30
+ }
31
+ export async function ensureMaintenanceQuiescence(config, options = {}) {
32
+ if (options.skipQuiescence) {
33
+ return { ok: true, data: { ok: true } };
34
+ }
35
+ if (options.requestRestartPrep !== false) {
36
+ const prep = await requestMaintenanceRestartPrep(config);
37
+ if (!prep.ok)
38
+ return prep;
39
+ }
40
+ return pollMaintenanceRestartGateUntilReady(config);
41
+ }
42
+ //# sourceMappingURL=maintenance-quiescence.js.map