@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
@@ -34,8 +34,9 @@ Low-level SDK helpers (`buildManagementPostRequest`, `managementSign`, `buildAdd
34
34
  2. Inspect current signer state
35
35
  - `get_management_signers` for node authorization list
36
36
  - `list_management_signers_detailed` before signed workflows (preferred signer, nonce, local key status)
37
- 3. Add a new authorized signer (normal path)
37
+ 3. Add a new authorized signer (normal path after Path A install)
38
38
  - `add_management_signer` — node generates the key pair server-side
39
+ - Then immediately `set_preferred_management_signer` with that public key. Do not leave the bootstrap key as preferred. Do not explain bootstrap vs added keys to the user. Do this on **each node you provisioned** during mesh setup; do not use that second tunnel for Group/KeyGen/sign.
39
40
  4. Set default signer for signed tools
40
41
  - `set_preferred_management_signer` with a 64-character hex Ed25519 public key
41
42
  5. (Optional) read signing context
@@ -31,9 +31,20 @@ Shared optional fields on most create inputs: `purpose`, `useCustomGas`, `starti
31
31
  - **Get Sig** (`trigger_sign_result`) refreshes fees via `feeSpeedTier` (default from `defaultGetSigFeeSpeed`).
32
32
  - **MCP `build_*_multisign` tools** auto-submit and return `{ requestId }`. Treat `requestId` as success — do not call the same build tool again; use `list_sign_requests` to verify duplicates.
33
33
 
34
+ - `claim_node_withdraw_authority`
35
+ - Sign EIP-712 `NodeAuthorityClaim` on the node and relay `claimNodeWithdrawAuthority`. Required before register. Do not batch with register.
34
36
  - `register_key_gen_on_linea`
35
- - Register KeyGen with MultiSignAgentWallet on Linea (59144) via `register(string,string)` (keyGenId + address kind `ethereum`).
36
- - Input: `keyGenId`; optional `purpose`, `useCustomGas`, `startingNonce`.
37
+ - Register KeyGen with MultiSignAgentWallet on the configured fee chain (currently Linea Sepolia 59141) via `register(keyGenId, addressKind, nodeKey, globalNonce, groupId)`.
38
+ - Input: `keyGenId`; optional `groupId` (defaults to `/getKeyGenGroupId`), `executorKeyGenId`, `purpose`, `useCustomGas`, `startingNonce`.
39
+ - Each KeyGen type has its own signature accounting. The same `groupId` shares a veCTM waiver. Do not batch with attach.
40
+ - `unregister_key_gen_on_linea`
41
+ - Delete the KeyGen billing account on this node. `confirm` must be true.
42
+ - `create_mpa_withdraw_multi_sign_request`
43
+ - Withdraw prepaid node credit (`withdrawCredit` or `withdrawCtmCredit` via `paymentToken`; `withdrawFeeCredit` when `token` is set).
44
+ - `get_ve_ctm_attach_status` / `attach_ve_ctm_to_node` / `request_ve_ctm_detach`
45
+ - Compose `attachVeCtm(nodeKey, tokenId, nodeInfo)` on the fee contract — separate from register. One veCTM per `groupId`; the KeyGen fee waiver is shared only by KeyGens registered with that group. The same attach unlocks privileged services such as VPN when voting power meets the threshold.
46
+ - Attach does not activate the billing month. After it executes, call `create_mpa_sync_billing_multi_sign_request` (no deposit when `monthActivationWaived` is true).
47
+ - Tools fail with "veCTM is not live on the fee contract yet" until `nodeProperties`, `rewards`, and `ve` are set.
37
48
  - `transfer_native_gas`
38
49
  - Native gas transfer (send gas).
39
50
  - Input: `keyGenId`, `chainId`, `toAddress`, `amountWei`; optional shared fields.
@@ -52,12 +63,27 @@ Shared optional fields on most create inputs: `purpose`, `useCustomGas`, `starti
52
63
  - `create_compose_multi_sign_request`
53
64
  - Build a request from one or more compose actions (custom contract calls).
54
65
  - Input: `keyGenId`, `chainId`, `actions[]` (`signature`, `contractAddress`, `args[]`, optional `valueWei`); optional shared fields.
66
+ - `create_compose_eip712_multi_sign_request`
67
+ - Build a request from one or more EIP-712 typed-data signatures (same-kind batch; no EVM gas).
68
+ - Input: `keyGenId`, `chainId`, `signatures[]` (`typedData` + optional `delivery`; default `delivery.kind` is `none`); optional `purpose`.
69
+ - `extraJSON.eip712` is always an array. Get Sig omits `txParams`; Execute delivers each leg or exports signature hexes.
55
70
  - `create_forge_multi_sign_request`
56
71
  - Build a request from Foundry broadcast JSON.
57
72
  - Input: `keyGenId`, `broadcast` (`transactions[]` with `transaction` or `tx` objects); optional `destinationChainID`, `overrideSender`, `startingNonce`, and shared fields.
73
+ - `import_forge_dry_run_multi_sign_request`
74
+ - Import a Foundry dry-run file (`run-latest.json`) from `user_folder` — same parser as the node app Compose “Import from Foundry broadcast” flow.
75
+ - Input: `keyGenId`; exactly one of `dryRunFilePath` (under `user_folder`) or `dryRunJson`; optional `refreshStaleNonces` (default true), `useCustomGas`, `startingNonce`, `purpose`.
76
+ - Paths: native `forge script` with cwd `evm/` writes `evm/broadcast/<Script>.s.sol/<chainId>/dry-run/run-latest.json`. Foundry MCP is preferred when loaded (`foundry__forge_script` → `.mcp-foundry-workspace/broadcast/.../dry-run/run-latest.json`). If Foundry MCP is not loaded, say so once and use the native `evm/broadcast/` path. Default `useCustomGas: false`; do not stop the import to ask about gas unless the operator mentioned custom gas.
77
+ - A copy is written to `data/artifacts/forge/<chainId>/<script>/run-latest.json` when possible.
78
+ - `build_forge_dry_run_multi_sign_payload`
79
+ - Build (do not submit) a multiSign helper from a dry-run file. Writes `data/artifacts/multisign/forge-dry-run/<chainId>/<script>/helper.json` plus a forge mirror under `data/artifacts/forge/`.
80
+ - Same inputs as `import_forge_dry_run_multi_sign_request`. Returns `{ bodyForSign, messageToSign, chainId, count, helperArtifactPath, … }`.
81
+ - `import_and_join_forge_dry_runs_multi_sign_request`
82
+ - Parse two dry-run files from `user_folder`, join into one batch, and submit. Inputs: `keyGenId`; `dryRunFilePathA`/`dryRunJsonA` and `dryRunFilePathB`/`dryRunJsonB`; optional `firstNonce` (default pending executor nonce), `refreshStaleNonces`, `useCustomGas`, `purpose`.
83
+ - Writes joined helper to `data/artifacts/multisign/joined/<chainId>/helper-n<nonce>.json`.
58
84
  - `create_joined_multi_sign_request`
59
85
  - Join two multiSignRequest helper payloads (single or batch each) into one batch on the same chain; reassigns nonces from `firstNonce`. Gas/fees are taken from each input’s serialized txs (not re-estimated). Both inputs must share the same `keyList` / `pubKey`. Chain longer flows by reusing prior join output as `payloadA` or `payloadB`.
60
- - Input: `payloadA`, `payloadB` (helper JSON with `bodyForSign` or raw body), `firstNonce`; optional `purpose` override (default merges both purposes with ` | `).
86
+ - Input: `firstNonce`; exactly one of `payloadA` or `payloadAFilePath`, and one of `payloadB` or `payloadBFilePath` (paths under `user_folder`, e.g. `data/artifacts/multisign/forge-dry-run/.../helper.json`); optional `purpose` override (default merges both purposes with ` | `).
61
87
  - Returns `{ requestId }`.
62
88
 
63
89
  ### MPA wallet (Linea)
@@ -65,34 +91,23 @@ Shared optional fields on most create inputs: `purpose`, `useCustomGas`, `starti
65
91
  - `get_mpa_wallet_status`
66
92
  - Read MPA KeyGen billing status (node `/getFeeStatusByKeyGenId` merged with on-chain subscription).
67
93
  - Input: `keyGenId`.
68
- - Returns registration, credit pool (`remainingDeposit`, `remainingDepositWei`), monthly fee, `fundedForCurrentMonth`, signing credits, and pay-month hints (`canPayMonthFromCredit`, `payMonthDisabledReason`).
94
+ - Returns registration, fee-token credit (`remainingDeposit`, `remainingDepositWei`, `feeTokenSymbol` fetched on-chain), CTM credit (`remainingCtmCredit`, `remainingCtmCreditWei`, `ctmTokenSymbol`), monthly fee, `fundedForCurrentMonth`, waiver flags (`monthActivationWaived`, `qualifiesForVeCtmWaiver`, `qualifiesForNodeTrial`), signing credits, and pay-month hints (`canPayMonthFromCredit`, `payMonthDisabledReason`). When `fundedForCurrentMonth` is false, pay with `create_mpa_sync_billing_multi_sign_request` (that tool deposits the shortfall unless `monthActivationWaived`).
69
95
  - `create_mpa_top_up_multi_sign_request`
70
- - Create batch `multiSignRequest` (USDC `approve` on Linea fee token when needed + `deposit(string,string,uint256,uint256)` with deposit-only sentinel) to top up MPA KeyGen credits on Linea.
71
- - Input: `keyGenId`, `amountWei`; optional `activateBillingMonthAfterDeposit` (append `syncBilling` when month inactive and post-deposit pool covers monthly fee), shared fields.
72
- - Fee token must be on the KeyGen executor. By default does not activate the billing month.
96
+ - Create batch `multiSignRequest` (ERC-20 `approve` when needed + `deposit` or `depositCtm`) to top up MPA KeyGen credits on Linea.
97
+ - Input: `keyGenId`, `amountWei`; optional `paymentToken` (`fee` default or `ctm`), `activateBillingMonthAfterDeposit` (append `syncBilling` when month inactive and post-deposit pool covers monthly fee, or when veCTM/trial waives the month), shared fields.
98
+ - Chosen token must be on the KeyGen executor. By default does not activate the billing month.
73
99
  - `create_mpa_sync_billing_multi_sign_request`
74
- - Pay/activate the current KeyGen billing month from the existing credit pool via `syncBilling(string,string,uint256)`.
75
- - Input: `keyGenId`; optional `globalNonce`, shared fields.
76
- - Requires inactive billing month and credit pool >= monthly fee. Uses node-reported global nonce or chain pending nonce when `globalNonce` is omitted.
100
+ - Pay/activate the current KeyGen billing month. Builds `syncBilling`; when the pool is short and the month is not waived, also deposits the shortfall (`paymentToken` `fee` default or `ctm`).
101
+ - Input: `keyGenId`; optional `paymentToken`, `executorKeyGenId` (authority secp256k1 when the billed KeyGen is not the withdraw authority), `globalNonce`, shared fields.
102
+ - Requires inactive billing month. No deposit when `monthActivationWaived` (veCTM group waiver or unused node trial). Uses node-reported global nonce when `globalNonce` is omitted.
77
103
  - `create_mpa_overage_purchase_multi_sign_request`
78
104
  - Purchase extra signing credits via `purchaseOverageSignatures(string,string,uint256)` after the billing month is active.
79
105
  - Input: `keyGenId`, `signatureCount`; optional shared fields.
80
- - Withdraw authority debits the credit pool; non-authority executors include USDC `approve` for the overage fee.
81
- - `register_vpn_on_linea`
82
- - Register VPN billing via `registerVpn(string,bytes32)` on Linea.
83
- - Input: `keyGenId`, `hostIpAddress`; optional `nodeKey` (defaults to this node's `/getNodeKey`), shared fields.
84
- - `hostBinding` = `keccak256(encodePacked(nodeKey, hostIpAddress))`.
85
- - `create_mpa_vpn_deposit_multi_sign_request`
86
- - Deposit VPN credits via `depositVpn(string,bytes32,uint256,bool)` (approve + deposit when needed).
87
- - Input: `keyGenId`, `hostIpAddress`, `amountWei`; optional `activateOnDeposit`, `nodeKey`, shared fields.
88
- - `create_mpa_sync_vpn_billing_multi_sign_request`
89
- - Activate VPN billing month via `syncVpnBilling(string,bytes32)` when the VPN credit pool covers the monthly fee.
90
- - Input: `keyGenId`, `hostIpAddress`; optional `nodeKey`, shared fields.
91
- - KeyGen executor must be the VPN withdraw authority.
92
- - `get_mpa_vpn_status`
93
- - Read VPN MPA billing status (node `/getVpnFeeStatus` merged with on-chain subscription).
94
- - Input: `hostIpAddress`; optional `nodeKey`.
95
- - Returns `vpnBillingRegistered`, `vpnBillingMonthActive`, credit pool, monthly fee, and pay-month hints (`canPayMonthFromCredit`, `payMonthDisabledReason`).
106
+ - Withdraw authority debits the credit pool; non-authority executors include fee-token `approve` for the overage fee.
107
+ - `get_node_privilege_status`
108
+ - Read whether this node may use privileged services such as VPN (GET `/getNodePrivilegeStatus`).
109
+ - Returns `entitled`, `source` (`vectm_attach`), `paused`, `hasattachedvectm`, `meetsthreshold`, `tokenid`, `thresholdpower`.
110
+ - Attach a veCTM NFT that meets `veCtmThresholdPower`. Node trial does not grant privileged services.
96
111
 
97
112
  ### Sign request lifecycle
98
113
 
@@ -181,9 +196,11 @@ List/get tools return **compact summaries** by default (small fields: `requestId
181
196
  ## MPA on Linea flow
182
197
 
183
198
  1. Complete KeyGen and fetch the result (`fetch_key_gen_result`).
184
- 2. Register on Linea — `register_key_gen_on_linea`.
185
- 3. Check wallet — `get_mpa_wallet_status`.
186
- 4. Top up credits if needed — `create_mpa_top_up_multi_sign_request`, then run the multi-sign flow above for that new request.
199
+ 2. Claim node withdraw authority — `claim_node_withdraw_authority`.
200
+ 3. Register on Linea — `register_key_gen_on_linea`.
201
+ 4. Check wallet — `get_mpa_wallet_status`.
202
+ 5. If `fundedForCurrentMonth` is false — `create_mpa_sync_billing_multi_sign_request` (deposits the fee-token or CTM shortfall when needed via `paymentToken`; no deposit when `monthActivationWaived`). Pass `executorKeyGenId` if the billed KeyGen is not the withdraw authority. Then run the multi-sign flow above.
203
+ 6. Optional extra credit — `create_mpa_top_up_multi_sign_request` (does not activate the month unless `activateBillingMonthAfterDeposit` is true).
187
204
 
188
205
  ## List filters
189
206
 
@@ -0,0 +1,142 @@
1
+ # Path A — configure a node from an external MCP client
2
+
3
+ An external agent (Claude, Cursor, Grok) talks to **`http://127.0.0.1:8446/mcp`** after the operator opens an SSH tunnel. It may sequentially tunnel to **each node it provisioned** for peers, MQTT, and a new preferred signer only. It must **not** Accept Group, KeyGen, or spends on a second node — that would cancel the MPC split. After mesh setup, stay on one **home** node (prefer the relay) to originate Group/KeyGen. The operator Accepts on the other nodes in the SPA and may set **AI Agent → Provider** with their own LLM key.
4
+
5
+ **Published playbook (discover before or after connect):** `search_continuum_docs` → `get_continuum_doc` path `ContinuumDAO/MPAWallet/AgentProvision`. Humans: [Install a node](https://docs.continuumdao.org/ContinuumDAO/MPAWallet/Install). Oneshot flags: [CREATE_NODE_ONESHOT.md](https://github.com/ContinuumDAO/mpc-config/blob/main/docs/CREATE_NODE_ONESHOT.md).
6
+
7
+ Peer/relay write, MQTT TLS get/set, and restart gate tools (`set_configured_nodes`, `get_mqtt_tls_public_key`, `set_mqtt_tls_key`, `get_maintenance_restart_gate`) are on **static tools/list** — call them directly. Do not wait on `activate_tool_group`. Read peers with **`get_configured_node_keys`** (`node_info`).
8
+
9
+ ## 0. Ask which topology before renting anything
10
+
11
+ Do not default to “rent two VPS from the same provider.”
12
+
13
+ **Recommend redundancy plus diversity** whenever the user will control more than one node (option A, and invitees in C):
14
+
15
+ - **Node redundancy:** prefer **2-of-3** (or higher `N` with `gate < N`) so one lost VPS does not freeze the wallet. 2/2 has no spare.
16
+ - **Different regions:** put nodes in distinct geographic regions (and AZs if the provider exposes them) so one outage or routing event does not hit the whole set.
17
+ - **Different VPS providers:** do not colocate the set on a single cloud. One provider ban, billing failure, or regional incident should not take every node offline.
18
+
19
+ The relay is still a single MQTT hub — say that clearly — but signing nodes should not share provider and region with each other (or with the relay, if they can avoid it).
20
+
21
+ | Option | Tell the user | Rent / oneshot | Then |
22
+ |--------|---------------|----------------|------|
23
+ | **A — Standalone set they control** | They run every signing node. Ask **how many can die** before the wallet is stuck. **Recommend 2-of-3**, split across **regions and providers**. | **N** Ubuntu/Debian VPS | Same relay (first slot) on every node. MQTT key from relay → others. Group + KeyGen with chosen **gate**. |
24
+ | **B — Join an established group** | Someone already has a relay. | **One** VPS | Prefer a **different region and provider** than the existing peers. Import **relay IP** + **MQTT TLS public key**. Do not invent a second relay. |
25
+ | **C — This node is the relay; invite others** | They host MQTT. | **One** VPS to start | `get_mqtt_tls_public_key` and share IP + PEM. Invitees run B; ask them to use other regions/providers. |
26
+
27
+ ### Option A — 2/2 vs extra nodes for safety
28
+
29
+ | Sub-choice | Nodes (N) | KeyGen `gate` | If one node is lost |
30
+ |------------|-----------|---------------|---------------------|
31
+ | **2/2** | 2 | 2 | Cannot sign until that node is restored. Smallest pair only if they accept that risk. Still use **two providers / two regions**. |
32
+ | **Safer (recommend this)** | 3 | 2 (2-of-3) | The other two still reach gate 2. **Default ask.** Three VPS, three regions if possible, at least two providers. |
33
+ | **More slack** | 4+ | e.g. 2-of-4 or 3-of-5 | Can lose `N − gate` nodes. Keep spreading region and provider as N grows. |
34
+
35
+ `gate` is the signing threshold (`2 ≤ gate ≤ N`). Loss-safety requires **gate &lt; N**. Redundancy without diversity (three droplets in one region on one account) is a weak spare.
36
+
37
+ One installed node cannot finish a KeyGen alone. MQTT key is an **invite secret** (relay → peers), not a public paste. Every collaborator must use the **same first/relay IPv4**.
38
+
39
+ **VPS rental is out of scope.** Continuum does not buy machines. After the user picks a topology, tell them (or Claude with their cloud account) to rent the matching Ubuntu/Debian VPS count with public IPv4 and `ssh root@`, **not all from one panel**. x402 or any other pay-for-VM path is optional and external.
40
+
41
+ ## 1. Credentials — two different moments
42
+
43
+ The oneshot installer (`install-node-debian-ubuntu.sh`) **must run as root on the VPS**. Typical: `ssh root@VPS` then paste curl|bash, or pipe the script over SSH.
44
+
45
+ | Secret | Oneshot | Path A MCP / later |
46
+ |--------|---------|--------------------|
47
+ | Root password or root SSH key | Needed if Claude or the user runs the oneshot as root | Do not keep in the agent after install |
48
+ | `mpcnode` login password | **Not set by oneshot** — emit `ssh root@IP 'passwd mpcnode'` next | User-only (SSH / SPA attach). Not needed for MCP |
49
+ | Bootstrap / `added_keys` | — | On the node bind-mount; MCP signs with it |
50
+ | LLM API key | — | User, **AI Agent → Provider** after attach |
51
+
52
+ Prefer: user runs oneshot, or Claude uses a **root SSH key**. Putting the root password in chat is last resort.
53
+
54
+ **Right after oneshot succeeds**, give a copy-paste password command. Oneshot creates `mpcnode` with `--disabled-password`; `ssh mpcnode@` will fail until they set one. They run this on **this PC**; `passwd` prompts twice. Do not collect the password in chat:
55
+
56
+ ```bash
57
+ ssh root@YOUR_VPS_PUBLIC_IP 'passwd mpcnode'
58
+ ```
59
+
60
+ After install, Claude does **not** need root or `mpcnode` to call MCP.
61
+
62
+ ## 2. SSH tunnel (user-owned)
63
+
64
+ MCP HTTP has **no auth** — keep it on loopback.
65
+
66
+ **Give one copy-paste OpenSSH line** for the VPS you are on **now** (sequential: stop `-N`, new IPv4, same local **8446**). Do not remap ports unless the user asks. Same style as the SPA **Node hosted app (SSH tunnel)** box. Run on **this PC**, leave it open (`-N`). User **`mpcnode`**, not `root` — only after `passwd mpcnode` succeeded. The SPA’s three-port command (3333 / 8080 / 18080) does **not** forward MCP — Path A needs **8446**. Prefer all four forwards:
67
+
68
+ ```bash
69
+ ssh -4 -N \
70
+ -L 127.0.0.1:8446:127.0.0.1:8446 \
71
+ -L 127.0.0.1:3333:127.0.0.1:3333 \
72
+ -L 127.0.0.1:8080:127.0.0.1:8080 \
73
+ -L 127.0.0.1:18080:127.0.0.1:18080 \
74
+ mpcnode@YOUR_NODE_PUBLIC_IP
75
+ ```
76
+
77
+ MCP-only: `ssh -4 -N -L 127.0.0.1:8446:127.0.0.1:8446 mpcnode@YOUR_NODE_PUBLIC_IP`. Do not bind `0.0.0.0`.
78
+
79
+ | Local port | Remote | Who |
80
+ |------------|--------|-----|
81
+ | **8446** | `continuum-mcp` `/mcp` | User opens; Claude uses |
82
+ | **3333** | node-app | User attach (hand-off) |
83
+ | **8080** | management HTTP | SPA attach |
84
+ | **18080** | public discovery | SPA attach |
85
+
86
+ Point the MCP client at `http://127.0.0.1:8446/mcp`. First node calls: `get_health` or `node_id`.
87
+
88
+ ## 3. Peer / relay and MQTT tools
89
+
90
+ On **each node you provisioned**, one tunnel at a time (relay first):
91
+
92
+ 1. `set_configured_nodes` with the same `peers: [relayIpv4, ...otherIpv4]`.
93
+ 2. On the **relay**: `get_mqtt_tls_public_key`. On each other provisioned node: `set_mqtt_tls_key` with that PEM.
94
+ 3. Silent: `add_management_signer` then `set_preferred_management_signer` with the new public key. Do not leave bootstrap as preferred.
95
+ 4. `get_maintenance_restart_gate` (optional). Operator runs **`docker compose restart`** on that VPS. There is no MCP reboot tool.
96
+ 5. `get_configured_node_keys` / `get_connectivity_health` before switching tunnels.
97
+
98
+ Do **not** `create_group_request`, `accept_group_request`, `create_key_gen_request`, or `accept_key_gen_request` except from the **home** node after mesh setup — and never Accept on a second node. Do not MCP nodes you did not provision.
99
+
100
+ `set_configured_nodes` writes `configs.yaml` via `POST /configUpdatePlan` + `POST /configUpdateImplement`. Changes apply after restart.
101
+
102
+ ## 4. Topology playbooks (Path A MCP)
103
+
104
+ ### A1 — 2/2 (only if they accept no spare node)
105
+
106
+ 1. Oneshot on two VPS in **different regions**, ideally **different providers**. Sequential tunnels: peers + MQTT + new signer on **both**.
107
+ 2. Stay on the **relay**. `get_connectivity_health`.
108
+ 3. `create_group_request` / `create_key_gen_request` (`gate: 2`) from the relay only. User **Accepts** on the other node.
109
+
110
+ ### A2 — 2-of-3 (recommended)
111
+
112
+ Same as A1 with **three** VPS — **different regions**, **at least two providers**. Sequential tunnels for peers/MQTT/signer on all three (`peers: [relay, a, b]`). Stay on the relay. Group all three IDs. KeyGen `gate: 2`. User Accepts on the other two.
113
+
114
+ ### B — Join existing
115
+
116
+ 1. Oneshot on one VPS. Prefer a **region and provider** the existing group does not already use.
117
+ 2. Get **relay IPv4** and **MQTT PEM** from the existing operators.
118
+ 3. `set_configured_nodes` with their full peer list (their relay first). `set_mqtt_tls_key`. Restart. Accept/create group as they instruct.
119
+
120
+ ### C — Become relay and invite
121
+
122
+ 1. Oneshot on one VPS. `set_configured_nodes` with at least `[thisPublicIpv4]` (add invitee IPs when known).
123
+ 2. `get_mqtt_tls_public_key`. Give invitees: public IP, relay slot, PEM.
124
+ 3. They run playbook B on VPS in **other regions / providers**. Add their IPs and restart when the list grows. Group/KeyGen only after enough healthy peers for the chosen gate. Prefer a 2-of-3+ gate so the mesh has node redundancy.
125
+
126
+ ## 5. Hand-off to the user
127
+
128
+ Do **not** stop after peers / MQTT / restart and send them to the long docs. **Speak a short next-steps checklist.** After mesh setup, leave the tunnel on the **home** node (relay). Originate Group and KeyGen **there only**. The user Accepts on every other node in the SPA.
129
+
130
+ When `get_connectivity_health` is healthy on the home node:
131
+
132
+ 0. Preferred signer is already done on each provisioned node in §3 (silent). If you skipped a node, do it before Group.
133
+ 1. **Group** — `create_group_request` with the topology `node_id`s. You are auto-agreed. User **Accepts** on the other members (unanimous).
134
+ 2. **KeyGen** — `create_key_gen_request` with the agreed **gate** (prefer 2-of-3). User Accepts on the other nodes. Confirm with `fetch_key_gen_result`.
135
+ 3. **Register (preferred KeyGen)** — `post_preferred_key_gen` on the node they will compose from. UI: **AI Agent → Provider**. Without this, compose/agent has no default wallet.
136
+ 4. **Attach** — `https://mpa.continuumdao.org` (tunnel **3333** if needed) so they can see Accept and the new address.
137
+ 5. `mpcnode` password already set after oneshot; if not, `ssh root@IP 'passwd mpcnode'`.
138
+ 6. Optional later: **AI Agent → Provider** LLM key (no MCP tool), chains, tokens.
139
+
140
+ ## 6. Local PC later (Windows 11 / macOS) — not in this flow
141
+
142
+ Do **not** run the Debian oneshot on the user’s laptop. Humans install via **node map → your own PC**: Docker Desktop (WSL2 on Windows), Continuum extension, public WAN IPv4, router port-forward + DHCP MAC bind. Agents cannot reliably drive Docker Desktop GUI, router admin, or CGNAT. After a human-installed Desktop node exists, the same tunnel to **8446** + these tools still apply.
@@ -0,0 +1,64 @@
1
+ # Node database and management keys
2
+
3
+ Encrypted MongoDB backup/restore and on-disk Ed25519 management key files. Activate deferred groups before use (`search_continuum_tools` / `activate_tool_group`):
4
+
5
+ | Pack | Router alias | Tools |
6
+ |------|----------------|-------|
7
+ | **`node_database:backup`** | `node:db-backup` | list/check/backup/restore, fetch/post backup, maintenance prep |
8
+ | **`node_database:bootstrap`** | `node:bootstrap-key` | fetch/post/remove bootstrap seed |
9
+ | **`node_database:added-keys`** | `node:added-keys` | fetch/post/remove added signer key files |
10
+
11
+ Legacy **`node_database`** expands to all three packs.
12
+
13
+ ## Operator approval (agent host)
14
+
15
+ These tools require **interactive human approval** in the agent chat UI before the host executes them:
16
+
17
+ - **`restore_database`** — destructive; wipes and replaces databases in the backup envelope.
18
+ - **`remove_bootstrap_key`** — deletes the bootstrap seed file; without an off-node backup you may lose decrypt/recovery ability.
19
+
20
+ They still require their normal tool arguments (e.g. `confirmRestore: true` for restore). Cron/specialist runs without approval UI are blocked.
21
+
22
+ ## Prerequisites
23
+
24
+ - Management signing configured (preferred Ed25519 signer with local private key).
25
+ - **Deterministic nodeKey** + bootstrap seed for backup/export routes (legacy random-nodeKey nodes get 403).
26
+ - **HTTPS or loopback** management URL for `fetch_*` key/backup download routes.
27
+
28
+ ## Maintenance quiescence
29
+
30
+ Backup, restore, and sensitive fetch tools call **`request_maintenance_restart_prep`** and poll **`get_maintenance_restart_gate`** until `readyForProcessExit` unless `skipQuiescence: true`. Bootstrap/added key post/remove are **not** drained.
31
+
32
+ ## Backup workflow
33
+
34
+ 1. **`list_database_backups`** — existing backups.
35
+ 2. **`backup_database`** — create encrypted snapshot under `database_backups/`.
36
+ 3. **`fetch_database_backup`** — download to `userFolderPath` (e.g. `data/backups/<backupId>`) or small `contentBase64`.
37
+ 4. **`post_database_backup`** — upload from `userFolderPath` or base64.
38
+ 5. **`restore_database`** — **destructive**; requires `confirmRestore: true`.
39
+
40
+ ## Bootstrap key files
41
+
42
+ | Tool | Route |
43
+ |------|--------|
44
+ | `fetch_bootstrap_key` | Export seed (TLS/loopback) |
45
+ | `post_bootstrap_key` | Install `bootstrap_key/ed25519_private.hex` |
46
+ | `remove_bootstrap_key` | Delete bootstrap seed file |
47
+
48
+ ## Added signer key files
49
+
50
+ Requires **`POST /addManagementKey`** first (Mongo + one-time PEM at creation). These tools manage **disk copies** under `added_keys/`:
51
+
52
+ | Tool | Route |
53
+ |------|--------|
54
+ | `fetch_added_management_key` | Export PEM + seed by `publicKeyHex` |
55
+ | `post_added_management_key` | Install `added_key_<N>` when absent |
56
+ | `remove_added_management_key` | Delete PEM + `.pub` only |
57
+
58
+ Use **`remove_management_signer`** to soft-remove the key from Mongo lifecycle.
59
+
60
+ ## Security
61
+
62
+ - Never paste private keys or backup ciphertext into follow-up chat.
63
+ - Restore wipes databases present in the backup envelope.
64
+ - Prefer **`user_folder`** paths over inline base64 for backups >4 MiB.
@@ -11,6 +11,7 @@ This server helps an MCP client operate a Continuum node through safe, structure
11
11
  ## What this server is for
12
12
 
13
13
  - Discover node state and health (`version`, `get_machine_info`, `get_node_id`, `health`, `connectivity_health`, `logs`).
14
+ - Path A node config (`node-config.md`): topology (prefer 2-of-3+ with nodes in different regions and VPS providers), tunnel to `:8446`, `set_configured_nodes`, MQTT TLS get/set, host compose restart. User attach + optional Provider stay with the operator. To **provision** a new VPS node, first `search_continuum_docs` / `get_continuum_doc` path `ContinuumDAO/MPAWallet/AgentProvision`.
14
15
  - Manage EdDSA management keys and signer selection (`list_management_keys`, `create_eddsa_management_keypair`, `add_eddsa_management_key`, `set_preferred_management_key`, `get_preferred_management_key`).
15
16
  - Coordinate group lifecycle (`list_available_node_ids`, `list_valid_group_node_sets`, `create_group_request`, `accept_group_request`).
16
17
  - Coordinate MPC key generation (`create_key_gen_request`, `accept_key_gen_request`, `list_key_gen_requests`, `fetch_key_gen_result`, `get_preferred_key_gen`, `post_preferred_key_gen`, and related tools in `keygen.md`).
@@ -19,6 +20,9 @@ This server helps an MCP client operate a Continuum node through safe, structure
19
20
  - Manage the token registry (`get_token_registry`, `add_to_token_registry`, `remove_from_token_registry`).
20
21
  - Manage the chain registry (`get_chain_registry`, `add_to_chain_registry`, `remove_from_chain_registry`).
21
22
  - Manage agent MCP servers on the node (`list_mcp_servers`, `add_mcp_server_from_catalog`, `get_mcp_server`, `add_mcp_server`, `remove_mcp_server`) — see `agent-mcp-servers.md`.
23
+ - Manage agent skills (`list_skills`, `add_skill_from_catalog`, `add_skill`, `reset_skills_from_defaults`) — see `agent-skills.md`.
24
+ - Manage user_folder workspace files (`list_user_folder`, `get_user_folder_file`, `write_user_folder_file`) — see `user-folder.md`.
25
+ - Encrypted MongoDB backup/restore and management key files (`list_database_backups`, `backup_database`, `restore_database`, bootstrap/added key tools) — activate deferred group **`node_database`**; see `node-database.md`.
22
26
  - **`prepare_chart`** — build `continuum/chart/v1` payloads for agent chat charts (multi-series OHLCV, lines, overlays) — see `chart.md`.
23
27
  - Optional **Technical indicators** MCP (catalog id `technical-indicators`, not loaded by default): add from catalog and enable **Initial load** when needed — `list_technical_indicators`, `calculate_technical_indicator`.
24
28
  - Optional **VPN** MCP (catalog id `vpn`, not loaded by default): admin WireGuard and peer egress tools — add from catalog and enable **Initial load** when needed. MPA VPN billing multisign tools remain on this server (`mpc.md`).
@@ -48,6 +52,14 @@ This server helps an MCP client operate a Continuum node through safe, structure
48
52
 
49
53
  5. Repeat for additional groups, keys, and signing operations.
50
54
 
55
+ ## Tool discovery (external MCP clients)
56
+
57
+ - **Wire catalog:** `tools/list` is static — Continuum tools (node config, chart, MPC, registry, etc.) are callable immediately.
58
+ - **Search:** `list_tool_groups` and `search_continuum_tools` find tools by keyword; `loaded` is bookkeeping only, not a call gate. Skip `activate_tool_group`.
59
+ - **DeFi (required):** call `load_defi_protocol({ protocolId })` before any `ctm_<protocol>_` tool — they error until loaded. Browse with `list_defi_protocols`. Do not use `activate_tool_group` to load a venue.
60
+ - **Charts / live ticks (this Path A / raw MCP session only):** do **not** render `continuum/chart/v1`, draw overlays in a browser or TradingView, or poll the `live` binding. Tell the operator to use **AI Agent** on the attached node (or Telegram **Open chart** if they already use the bot). Hosted mpc-auth turns — node AI Agent chat **and** Telegram Mini App — still call `prepare_chart*` / `apply_*`; the host renders. Text summaries of `analyze_*` JSON are fine here.
61
+ - **On-node agent only:** mpc-auth uses `activate_tool_group` to expand its LLM filter. That does not change `tools/list`.
62
+
51
63
  ## Client orchestration guidance
52
64
 
53
65
  - Keep user interaction simple: fetch options first, then ask for concrete selection, then execute.
@@ -64,3 +76,4 @@ This server helps an MCP client operate a Continuum node through safe, structure
64
76
  - tokens: `registry/tokens.md`
65
77
  - chains: `registry/networks.md`
66
78
  - MPC operations: `mpc.md`
79
+ - Path A node config (peers, relay, MQTT, restart, attach): `node-config.md`
@@ -0,0 +1,79 @@
1
+ defaults:
2
+ max_results: 50
3
+
4
+ # Shared across Telegram, Discord, and Reddit
5
+ tickers:
6
+ - ETH
7
+ - UNI
8
+ - BTC
9
+
10
+ ticker_detection:
11
+ min_length: 2
12
+ max_length: 10
13
+ include_bare_caps: true
14
+ exclude:
15
+ - THE
16
+ - AND
17
+ - FOR
18
+ - NOT
19
+ - YOU
20
+ - ALL
21
+ - NEW
22
+ - USD
23
+ - API
24
+ - CEO
25
+ - DAO
26
+ - TVL
27
+ - APR
28
+ - APY
29
+ - EVM
30
+ - NFT
31
+ - UTC
32
+ - GMT
33
+ - AI
34
+
35
+ telegram:
36
+ max_messages_per_channel: 500
37
+ channels:
38
+ - username: defillama
39
+ category: analytics
40
+ notes: DeFi TVL and protocol news
41
+ - username: uniswap
42
+ category: dex
43
+ notes: Uniswap announcements
44
+ - username: ethereum
45
+ category: l1
46
+ notes: Ethereum foundation updates
47
+
48
+ discord:
49
+ max_messages_per_channel: 500
50
+ mention_user_id: ""
51
+ include_nsfw: false
52
+ guilds:
53
+ - guild_id: "000000000000000000"
54
+ name: example-guild
55
+ channels:
56
+ - channel_id: "000000000000000000"
57
+ name: general
58
+
59
+ reddit:
60
+ max_posts_per_subreddit: 100
61
+ sort: new
62
+ time_filter: month
63
+ subreddits:
64
+ - name: ethereum
65
+ category: l1
66
+ sort: new
67
+ - name: defi
68
+ category: general
69
+ - name: CryptoCurrency
70
+ category: general
71
+ sort: top
72
+ time_filter: week
73
+ comments:
74
+ include_on_search: false
75
+ max_per_post: 10
76
+ max_per_thread: 200
77
+ max_depth: 3
78
+ sort: top
79
+ replace_more_limit: 0
@@ -0,0 +1,47 @@
1
+ defaults:
2
+ max_results: 50
3
+ max_messages_per_channel: 500
4
+
5
+ # Optional allowlist — empty [] = return all posts with any detected ticker
6
+ tickers:
7
+ - ETH
8
+ - UNI
9
+ - BTC
10
+
11
+ ticker_detection:
12
+ min_length: 2
13
+ max_length: 10
14
+ include_bare_caps: true
15
+ exclude:
16
+ - THE
17
+ - AND
18
+ - FOR
19
+ - NOT
20
+ - YOU
21
+ - ALL
22
+ - NEW
23
+ - USD
24
+ - API
25
+ - CEO
26
+ - DAO
27
+ - TVL
28
+ - APR
29
+ - APY
30
+ - EVM
31
+ - NFT
32
+ - UTC
33
+ - GMT
34
+ - AI
35
+
36
+ channels:
37
+ - username: defillama
38
+ category: analytics
39
+ notes: DeFi TVL and protocol news
40
+
41
+ - username: uniswap
42
+ category: dex
43
+ notes: Uniswap announcements
44
+
45
+ - username: ethereum
46
+ category: l1
47
+ notes: Ethereum foundation updates
@@ -0,0 +1,44 @@
1
+ # User folder (workspace)
2
+
3
+ The node **user_folder** is the agent workspace on disk (container `/app/user_folder`; on the host it is the `user_folder/` directory beside your node config). MCP tools operate on **relative paths** inside that tree — the SDK and node reject absolute paths, `..` traversal, and loose files at the root.
4
+
5
+ ## MCP tools
6
+
7
+ ### Read (GET)
8
+
9
+ - `list_user_folder` — directory listing; optional **path** (default `.` for root)
10
+ - `get_user_folder_file` — read one file as UTF-8 text by **path**
11
+
12
+ ### Write (management-signed POST)
13
+
14
+ - `write_user_folder_file` — upsert one UTF-8 text file (**path**, **content**)
15
+
16
+ ## Path rules (SDK + node)
17
+
18
+ | Rule | Detail |
19
+ |------|--------|
20
+ | Relative only | No `/app/...`, drive letters, or `~` |
21
+ | No traversal | Reject `..` segments |
22
+ | Writes need a subtree | Path must include `/` (e.g. `evm/script/Deploy.s.sol`, not `notes.txt` at root) |
23
+ | Browse first | Use `list_user_folder` to confirm directories before writing |
24
+
25
+ The node enforces the same constraints on `/writeUserFolderFile`; SDK validation fails fast with the same messages.
26
+
27
+ ## Recommended layout
28
+
29
+ | Subtree | Use |
30
+ |---------|-----|
31
+ | `evm/` | Foundry project (`foundry.toml`, `src/`, `script/`, `lib/`, `broadcast/`) |
32
+ | `data/` | General data, SDK artifact mirrors (`data/artifacts/...`) |
33
+ | `.mcp-foundry-workspace/` | Foundry MCP forge script output |
34
+
35
+ ## Suggested workflow
36
+
37
+ 1. **`list_user_folder`** — start at `.`, then drill into subdirs (`evm/`, `data/`, …).
38
+ 2. **`write_user_folder_file`** — upload or edit a file under an existing subdirectory.
39
+ 3. **`get_user_folder_file`** — read back or download content for inspection.
40
+ 4. Downstream tools (forge import, join multisign) accept **paths under user_folder** — use the same relative paths returned here.
41
+
42
+ ## Operator UI
43
+
44
+ **AI Agent → Workspace** provides the same browse/upload/download experience in the browser. MCP tools are the agent-automation equivalent.
@@ -1,23 +1,25 @@
1
1
  # VPN (admin + egress, opt-in MCP)
2
2
 
3
- Catalog id **`vpn`**: HTTP endpoint on **continuum-mcp** (`/mcp/vpn`), **`initialLoad: false`** by default — add from the node MCP catalog and enable **Initial load** when you want these tools in a session. MPA VPN billing multisign tools (`register_vpn_on_linea`, etc.) stay on the main **continuum** MCP server — see `mpc.md`.
3
+ Catalog id **`vpn`**: HTTP endpoint on **continuum-mcp** (`/mcp/vpn`), **`initialLoad: false`** by default — add from the node MCP catalog and enable **Initial load** when you want these tools in a session.
4
4
 
5
5
  WireGuard admin VPN and peer egress flows on the attached node. Read tools use GET management API routes; write and download tools POST management-signed bodies with the preferred Ed25519 management key (same as agent skills and cron jobs).
6
6
 
7
+ VPN is a **veCTM privilege**, not a paid month. Before enabling, confirm the node is entitled via `get_node_privilege_status` or `get_ve_ctm_attach_status` on the main **continuum** MCP server (`keygen_billing`). Privileged services require an attached veCTM NFT on the node's withdraw authority whose voting power meets `veCtmThresholdPower`. Node trial does not grant VPN.
8
+
7
9
  Prerequisites: local management private key in `added_keys/` (see `management-signer.md`), node attached via SDK config.
8
10
 
9
- Download tools write client files to **user_folder** (default `MPC_AUTH_USER_FOLDER=/app/user_folder`, host bind mount in Docker). Override with optional `userFolder` on download inputs.
11
+ Download tools write client files to **user_folder/data/vpn/** (default `MPC_AUTH_USER_FOLDER=/app/user_folder`, host bind mount in Docker). Override with optional `userFolder` on download inputs.
10
12
 
11
13
  ## Admin VPN
12
14
 
13
15
  - `get_vpn_status`
14
- - GET `/vpn/status` — availability, active profile, obfuscation, billing summary.
16
+ - GET `/vpn/status` — availability, active profile, obfuscation, privilege hints (`privileged`, `privilegeSource`).
15
17
  - `set_vpn_enabled`
16
18
  - POST `/vpn/setEnabled` — `enabled` true/false; when enabling: optional `profile` (`split`|`full`, default `full`), optional `obfuscation`.
17
- - Triggers host systemd automation via pending VPN file (same as node app Enable/Disable).
19
+ - Requires veCTM privilege. Triggers host systemd automation via pending VPN file (same as node app Enable/Disable).
18
20
  - `download_vpn_admin_client_config`
19
21
  - POST `/vpn/clientConfig` — optional `profile`, `obfuscation` (when obfuscated), optional `userFolder`.
20
- - Saves WireGuard `.conf` (and transport proxy file when obfuscated) under user_folder.
22
+ - Saves WireGuard `.conf` (and transport proxy file when obfuscated) under `user_folder/data/vpn/`.
21
23
  - Returns `wireGuardPath`, optional `transportPath`, and `setupInstructions` when provided.
22
24
 
23
25
  ## Egress (provider + consumer)
@@ -29,14 +31,14 @@ Download tools write client files to **user_folder** (default `MPC_AUTH_USER_FOL
29
31
  - `revoke_vpn_egress_peer`
30
32
  - POST `/vpn/egress/revokePeer` — `consumerNodeKey` (128-char hex, lowercase).
31
33
  - `list_vpn_egress_exits`
32
- - GET `/vpn/egress/availableExits` — exit routes discovered from other nodes (`address`, `publicKey`, country, obfuscation, billing fields).
34
+ - GET `/vpn/egress/availableExits` — exit routes discovered from other nodes (`address`, `publicKey`, country, obfuscation, privilege fields).
33
35
  - `download_vpn_egress_client_config`
34
36
  - POST `/vpn/egress/requestClientConfig` — `targetAddress` from an exit row, optional `obfuscation`, optional `userFolder`.
35
- - Saves `cont-egress.conf` (and transport file when needed) to user_folder.
37
+ - Saves `cont-egress.conf` (and transport file when needed) to `user_folder/data/vpn/`.
36
38
 
37
39
  ## Typical flows
38
40
 
39
- **Admin connect:** `get_vpn_status` ensure billing month active (MPA VPN tools in `mpc.md`) → `set_vpn_enabled` `{ enabled: true, profile: "full" }` → wait for active status → `download_vpn_admin_client_config`.
41
+ **Admin connect:** `get_ve_ctm_attach_status` / `get_node_privilege_status` → `set_vpn_enabled` `{ enabled: true, profile: "full" }` → wait for active status → `download_vpn_admin_client_config`.
40
42
 
41
43
  **Consumer egress:** `list_vpn_egress_exits` → pick `address` → `download_vpn_egress_client_config` `{ targetAddress: "…" }`.
42
44
 
@@ -0,0 +1,28 @@
1
+ # World Affairs RSS
2
+
3
+ Built-in MCP on **continuum-mcp** at `/mcp/world-affairs`. Catalog id **`world-affairs`**. **`initialLoad: false`**. No API key.
4
+
5
+ Load per chat with **`agent_load_mcp_server({ serverId: "world-affairs" })`** only when the operator chooses it. Tools are **`world-affairs__*`**.
6
+
7
+ When a source has **`biasNote`**, include that warning when citing or summarizing that outlet.
8
+
9
+ ## Sources (free RSS)
10
+
11
+ | id | Outlet | Feed | biasNote |
12
+ |----|--------|------|----------|
13
+ | **`bbc-world`** | BBC World | `https://feeds.bbci.co.uk/news/world/rss.xml` | |
14
+ | **`aljazeera`** | Al Jazeera | `https://www.aljazeera.com/xml/rss/all.xml` | |
15
+ | **`guardian-world`** | The Guardian World | `https://www.theguardian.com/world/rss` | **Left wing bias** |
16
+ | **`dw-world`** | DW World | `https://rss.dw.com/xml/rss-en-world` | |
17
+ | **`france24`** | France 24 | `https://www.france24.com/en/rss` | |
18
+ | **`npr`** | NPR News | `https://feeds.npr.org/1001/rss.xml` | **Some political left wing bias** |
19
+ | **`cnn-world`** | CNN World | `http://rss.cnn.com/rss/edition_world.rss` | **Some political left wing bias** |
20
+ | **`rt-news`** | RT News | `https://www.rt.com/rss/news` | **Potential bias** |
21
+
22
+ ## Tools
23
+
24
+ 1. **`list_world_affairs_sources`** — source ids, feed URLs, and **`biasNote`**
25
+ 2. **`get_world_affairs_latest`** — optional **`sourceId`**, **`limit`** (1–25, default 8)
26
+ 3. **`search_world_affairs_latest`** — required **`query`**, optional **`sourceId`** / **`limit`**
27
+
28
+ Not an OHLCV source — do not pass results to **`prepare_chart_from_rows`**.