@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,146 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { tickerDetectionFromYaml } from './ticker-extract.js';
5
+ const DEFAULTS = {
6
+ maxResults: 50,
7
+ maxMessagesPerChannel: 500,
8
+ };
9
+ function packageRootFromModule(moduleUrl) {
10
+ return path.resolve(path.dirname(fileURLToPath(moduleUrl)), '../../..');
11
+ }
12
+ export function resolveTelegramChannelsYamlPath(moduleUrl) {
13
+ return path.join(packageRootFromModule(moduleUrl), 'dist', 'mcp', 'resources', 'telegram-channels.yaml');
14
+ }
15
+ /** Minimal YAML parser for telegram-channels.yaml (no external deps). */
16
+ export function parseTelegramChannelsYaml(text) {
17
+ const lines = text.split(/\r?\n/);
18
+ let section = '';
19
+ const defaults = {};
20
+ const tickers = [];
21
+ const exclude = [];
22
+ const channels = [];
23
+ const detection = { exclude };
24
+ let currentChannel = null;
25
+ const setDetection = (key, raw) => {
26
+ if (key === 'min_length' || key === 'max_length') {
27
+ detection[key] = Number(raw);
28
+ return;
29
+ }
30
+ if (key === 'include_bare_caps') {
31
+ detection[key] = raw === 'true';
32
+ }
33
+ };
34
+ for (const line of lines) {
35
+ const trimmed = line.trim();
36
+ if (!trimmed || trimmed.startsWith('#')) {
37
+ continue;
38
+ }
39
+ if (trimmed === 'defaults:') {
40
+ section = 'defaults';
41
+ currentChannel = null;
42
+ continue;
43
+ }
44
+ if (trimmed === 'tickers:') {
45
+ section = 'tickers';
46
+ currentChannel = null;
47
+ continue;
48
+ }
49
+ if (trimmed === 'ticker_detection:') {
50
+ section = 'ticker_detection';
51
+ currentChannel = null;
52
+ continue;
53
+ }
54
+ if (trimmed === 'channels:') {
55
+ section = 'channels';
56
+ currentChannel = null;
57
+ continue;
58
+ }
59
+ if (trimmed === 'exclude:') {
60
+ section = 'exclude';
61
+ continue;
62
+ }
63
+ const listMatch = trimmed.match(/^- (.+)$/);
64
+ if (listMatch) {
65
+ const value = listMatch[1].trim();
66
+ if (section === 'tickers') {
67
+ tickers.push(value);
68
+ }
69
+ else if (section === 'exclude') {
70
+ exclude.push(value);
71
+ }
72
+ else if (section === 'channels') {
73
+ if (value.startsWith('username:')) {
74
+ currentChannel = { username: value.slice('username:'.length).trim() };
75
+ channels.push(currentChannel);
76
+ }
77
+ else if (currentChannel && value.startsWith('category:')) {
78
+ currentChannel.category = value.slice('category:'.length).trim();
79
+ }
80
+ else if (currentChannel && value.startsWith('notes:')) {
81
+ currentChannel.notes = value.slice('notes:'.length).trim();
82
+ }
83
+ }
84
+ continue;
85
+ }
86
+ const kv = trimmed.match(/^([a-z_]+):\s*(.*)$/);
87
+ if (!kv) {
88
+ continue;
89
+ }
90
+ const key = kv[1];
91
+ const value = kv[2].trim();
92
+ if (section === 'defaults') {
93
+ if (key === 'max_results') {
94
+ defaults.maxResults = Number(value);
95
+ }
96
+ else if (key === 'max_messages_per_channel') {
97
+ defaults.maxMessagesPerChannel = Number(value);
98
+ }
99
+ }
100
+ else if (section === 'ticker_detection') {
101
+ setDetection(key, value);
102
+ }
103
+ else if (section === 'channels' && key === 'username') {
104
+ currentChannel = { username: value };
105
+ channels.push(currentChannel);
106
+ }
107
+ else if (currentChannel && section === 'channels') {
108
+ if (key === 'category') {
109
+ currentChannel.category = value;
110
+ }
111
+ else if (key === 'notes') {
112
+ currentChannel.notes = value;
113
+ }
114
+ }
115
+ }
116
+ detection.exclude = exclude;
117
+ return {
118
+ defaults: {
119
+ maxResults: defaults.maxResults ?? DEFAULTS.maxResults,
120
+ maxMessagesPerChannel: defaults.maxMessagesPerChannel ?? DEFAULTS.maxMessagesPerChannel,
121
+ },
122
+ tickers,
123
+ tickerDetection: tickerDetectionFromYaml(detection),
124
+ channels,
125
+ };
126
+ }
127
+ let cachedConfig = null;
128
+ export async function loadTelegramChannelsConfig(moduleUrl) {
129
+ if (cachedConfig) {
130
+ return cachedConfig;
131
+ }
132
+ const filePath = resolveTelegramChannelsYamlPath(moduleUrl);
133
+ const text = await fs.readFile(filePath, 'utf8');
134
+ cachedConfig = parseTelegramChannelsYaml(text);
135
+ return cachedConfig;
136
+ }
137
+ export function channelUsernames(config) {
138
+ return config.channels
139
+ .map((c) => c.username.trim().replace(/^@/, ''))
140
+ .filter(Boolean);
141
+ }
142
+ /** Reset cached config (tests). */
143
+ export function resetTelegramChannelsConfigCache() {
144
+ cachedConfig = null;
145
+ }
146
+ //# sourceMappingURL=telegram-channels-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-channels-config.js","sourceRoot":"","sources":["../../../src/core/agent/telegram-channels-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { SdkResult } from '../result.js';
2
+ export declare const TELEGRAM_SEARCH_DEFAULT_SESSION_PATH = "/app/user_folder/data/telegram/continuum_search";
3
+ export type TelegramAuthScriptResult = {
4
+ ok?: boolean;
5
+ already_authorized?: boolean;
6
+ phone_code_hash?: string;
7
+ needs_password?: boolean;
8
+ authorized?: boolean;
9
+ username?: string;
10
+ user_id?: number;
11
+ first_name?: string;
12
+ error?: string;
13
+ message?: string;
14
+ };
15
+ export declare function ensureTelegramSessionDir(sessionPath: string): SdkResult<string>;
16
+ export declare function runTelegramAuthScript(payload: Record<string, unknown>, credentials: {
17
+ apiId: string;
18
+ apiHash: string;
19
+ sessionPath: string;
20
+ }): Promise<SdkResult<TelegramAuthScriptResult>>;
21
+ //# sourceMappingURL=telegram-search-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-search-auth.d.ts","sourceRoot":"","sources":["../../../src/core/agent/telegram-search-auth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,eAAO,MAAM,oCAAoC,oDACC,CAAC;AAgBnD,MAAM,MAAM,wBAAwB,GAAG;IACtC,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAoDF,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAS/E;AAED,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,WAAW,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,GAChE,OAAO,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAa9C"}
@@ -0,0 +1,85 @@
1
+ import { spawn } from 'node:child_process';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { TELEGRAM_SEARCH_ENV } from './telegram-search.js';
6
+ export const TELEGRAM_SEARCH_DEFAULT_SESSION_PATH = '/app/user_folder/data/telegram/continuum_search';
7
+ const moduleUrl = import.meta.url;
8
+ function packageRoot() {
9
+ return path.resolve(path.dirname(fileURLToPath(moduleUrl)), '../../..');
10
+ }
11
+ function scriptDir() {
12
+ return path.join(packageRoot(), 'scripts', 'telegram-search');
13
+ }
14
+ function resolvePythonExecutable() {
15
+ return process.env[TELEGRAM_SEARCH_ENV.python]?.trim() || 'python3';
16
+ }
17
+ function runAuthScript(payload, env) {
18
+ return new Promise((resolve) => {
19
+ const scriptPath = path.join(scriptDir(), 'auth_telegram.py');
20
+ const python = resolvePythonExecutable();
21
+ const child = spawn(python, [scriptPath], {
22
+ env: { ...process.env, ...env },
23
+ stdio: ['pipe', 'pipe', 'pipe'],
24
+ });
25
+ let stdout = '';
26
+ let stderr = '';
27
+ child.stdout.setEncoding('utf8');
28
+ child.stderr.setEncoding('utf8');
29
+ child.stdout.on('data', (chunk) => {
30
+ stdout += chunk;
31
+ });
32
+ child.stderr.on('data', (chunk) => {
33
+ stderr += chunk;
34
+ });
35
+ child.on('error', (err) => {
36
+ resolve({
37
+ ok: false,
38
+ reason: `Failed to start ${python} for Telegram auth: ${err.message}`,
39
+ });
40
+ });
41
+ child.on('close', (code) => {
42
+ if (code !== 0) {
43
+ const detail = stderr.trim() || stdout.trim() || `exit ${code}`;
44
+ resolve({ ok: false, reason: `Telegram auth script failed: ${detail}` });
45
+ return;
46
+ }
47
+ try {
48
+ const parsed = JSON.parse(stdout || '{}');
49
+ if (!parsed || typeof parsed !== 'object') {
50
+ resolve({ ok: false, reason: 'Telegram auth returned invalid JSON.' });
51
+ return;
52
+ }
53
+ resolve({ ok: true, data: parsed });
54
+ }
55
+ catch {
56
+ resolve({ ok: false, reason: 'Telegram auth returned invalid JSON.' });
57
+ }
58
+ });
59
+ child.stdin.write(JSON.stringify(payload));
60
+ child.stdin.end();
61
+ });
62
+ }
63
+ export function ensureTelegramSessionDir(sessionPath) {
64
+ const dir = path.dirname(sessionPath);
65
+ try {
66
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
67
+ return { ok: true, data: sessionPath };
68
+ }
69
+ catch (err) {
70
+ const msg = err instanceof Error ? err.message : String(err);
71
+ return { ok: false, reason: `Failed to create session directory ${dir}: ${msg}` };
72
+ }
73
+ }
74
+ export async function runTelegramAuthScript(payload, credentials) {
75
+ const dir = ensureTelegramSessionDir(credentials.sessionPath);
76
+ if (!dir.ok) {
77
+ return dir;
78
+ }
79
+ return runAuthScript({ ...payload, session_path: credentials.sessionPath }, {
80
+ TELEGRAM_API_ID: credentials.apiId,
81
+ TELEGRAM_API_HASH: credentials.apiHash,
82
+ TELEGRAM_SESSION_PATH: credentials.sessionPath,
83
+ });
84
+ }
85
+ //# sourceMappingURL=telegram-search-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-search-auth.js","sourceRoot":"","sources":["../../../src/core/agent/telegram-search-auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { NodeSdkConfig } from '../../config/schema.js';
2
+ import type { SdkResult } from '../result.js';
3
+ import type { SearchTelegramMessagesInput, SearchTelegramMessagesResult, SearchTelegramTickersInput, SearchTelegramTickersResult } from '../../schemas/extended.js';
4
+ export declare const TELEGRAM_SEARCH_ENV: {
5
+ readonly apiId: "TELEGRAM_API_ID";
6
+ readonly apiHash: "TELEGRAM_API_HASH";
7
+ readonly sessionPath: "TELEGRAM_SESSION_PATH";
8
+ readonly python: "TELEGRAM_SEARCH_PYTHON";
9
+ };
10
+ export declare function searchTelegramMessages(config: NodeSdkConfig, input: SearchTelegramMessagesInput): Promise<SdkResult<SearchTelegramMessagesResult>>;
11
+ export declare function searchTelegramTickers(config: NodeSdkConfig, input: SearchTelegramTickersInput): Promise<SdkResult<SearchTelegramTickersResult>>;
12
+ //# sourceMappingURL=telegram-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-search.d.ts","sourceRoot":"","sources":["../../../src/core/agent/telegram-search.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAQ5C,OAAO,KAAK,EACX,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAC;AAsIX,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,2BAA2B,GAChC,OAAO,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC,CA+BlD;AAED,wBAAsB,qBAAqB,CAC1C,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,0BAA0B,GAC/B,OAAO,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,CAmCjD"}
@@ -0,0 +1,173 @@
1
+ import { spawn } from 'node:child_process';
2
+ import path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { getEnvironmentVariable } from './environment-variables.js';
5
+ import { channelUsernames, loadSocialSearchConfig, } from './social-search-config.js';
6
+ import { tickerDetectionForPython } from './ticker-extract.js';
7
+ export const TELEGRAM_SEARCH_ENV = {
8
+ apiId: 'TELEGRAM_API_ID',
9
+ apiHash: 'TELEGRAM_API_HASH',
10
+ sessionPath: 'TELEGRAM_SESSION_PATH',
11
+ python: 'TELEGRAM_SEARCH_PYTHON',
12
+ };
13
+ const moduleUrl = import.meta.url;
14
+ function packageRoot() {
15
+ return path.resolve(path.dirname(fileURLToPath(moduleUrl)), '../../..');
16
+ }
17
+ function scriptDir() {
18
+ return path.join(packageRoot(), 'scripts', 'telegram-search');
19
+ }
20
+ function resolvePythonExecutable() {
21
+ return process.env[TELEGRAM_SEARCH_ENV.python]?.trim() || 'python3';
22
+ }
23
+ async function readEnvCredential(config, name) {
24
+ const fromProcess = process.env[name]?.trim();
25
+ if (fromProcess) {
26
+ return { ok: true, data: fromProcess };
27
+ }
28
+ const row = await getEnvironmentVariable(config, { name });
29
+ if (!row.ok) {
30
+ return {
31
+ ok: false,
32
+ reason: `Missing ${name}. Set Node Variable or process env for Telethon search.`,
33
+ };
34
+ }
35
+ const value = row.data.value.trim();
36
+ if (!value) {
37
+ return { ok: false, reason: `${name} is empty.` };
38
+ }
39
+ return { ok: true, data: value };
40
+ }
41
+ async function telethonEnv(config) {
42
+ const apiId = await readEnvCredential(config, TELEGRAM_SEARCH_ENV.apiId);
43
+ if (!apiId.ok) {
44
+ return apiId;
45
+ }
46
+ const apiHash = await readEnvCredential(config, TELEGRAM_SEARCH_ENV.apiHash);
47
+ if (!apiHash.ok) {
48
+ return apiHash;
49
+ }
50
+ const sessionPath = await readEnvCredential(config, TELEGRAM_SEARCH_ENV.sessionPath);
51
+ if (!sessionPath.ok) {
52
+ return sessionPath;
53
+ }
54
+ return {
55
+ ok: true,
56
+ data: {
57
+ TELEGRAM_API_ID: apiId.data,
58
+ TELEGRAM_API_HASH: apiHash.data,
59
+ TELEGRAM_SESSION_PATH: sessionPath.data,
60
+ },
61
+ };
62
+ }
63
+ function runPythonScript(scriptName, payload, env) {
64
+ return new Promise((resolve) => {
65
+ const scriptPath = path.join(scriptDir(), scriptName);
66
+ const python = resolvePythonExecutable();
67
+ const child = spawn(python, [scriptPath], {
68
+ env: { ...process.env, ...env },
69
+ stdio: ['pipe', 'pipe', 'pipe'],
70
+ });
71
+ let stdout = '';
72
+ let stderr = '';
73
+ child.stdout.setEncoding('utf8');
74
+ child.stderr.setEncoding('utf8');
75
+ child.stdout.on('data', (chunk) => {
76
+ stdout += chunk;
77
+ });
78
+ child.stderr.on('data', (chunk) => {
79
+ stderr += chunk;
80
+ });
81
+ child.on('error', (err) => {
82
+ resolve({
83
+ ok: false,
84
+ reason: `Failed to start ${python} for Telegram search: ${err.message}`,
85
+ });
86
+ });
87
+ child.on('close', (code) => {
88
+ if (code !== 0) {
89
+ const detail = stderr.trim() || stdout.trim() || `exit ${code}`;
90
+ resolve({
91
+ ok: false,
92
+ reason: `Telegram search script failed: ${detail}`,
93
+ });
94
+ return;
95
+ }
96
+ try {
97
+ const parsed = JSON.parse(stdout || '[]');
98
+ if (!Array.isArray(parsed)) {
99
+ resolve({ ok: false, reason: 'Telegram search returned non-array JSON.' });
100
+ return;
101
+ }
102
+ resolve({ ok: true, data: parsed });
103
+ }
104
+ catch {
105
+ resolve({ ok: false, reason: 'Telegram search returned invalid JSON.' });
106
+ }
107
+ });
108
+ child.stdin.write(JSON.stringify(payload));
109
+ child.stdin.end();
110
+ });
111
+ }
112
+ function resolveChannels(inputChannels, cfg) {
113
+ if (inputChannels && inputChannels.length > 0) {
114
+ return inputChannels.map((c) => c.trim().replace(/^@/, '')).filter(Boolean);
115
+ }
116
+ return channelUsernames(cfg);
117
+ }
118
+ function sortByPostedAtDesc(rows) {
119
+ return [...rows].sort((a, b) => (b.posted_at ?? '').localeCompare(a.posted_at ?? ''));
120
+ }
121
+ export async function searchTelegramMessages(config, input) {
122
+ const yamlConfig = await loadSocialSearchConfig(moduleUrl);
123
+ const channels = resolveChannels(input.channels, yamlConfig);
124
+ if (channels.length === 0) {
125
+ return { ok: false, reason: 'No Telegram channels configured or provided.' };
126
+ }
127
+ const env = await telethonEnv(config);
128
+ if (!env.ok) {
129
+ return env;
130
+ }
131
+ const payload = {
132
+ query: input.query,
133
+ channels,
134
+ max_results: input.maxResults ?? yamlConfig.defaults.maxResults,
135
+ max_messages_per_channel: input.maxMessagesPerChannel ?? yamlConfig.telegram.maxMessagesPerChannel,
136
+ regex: input.regex ?? false,
137
+ ...(input.since ? { since: input.since } : {}),
138
+ };
139
+ const ran = await runPythonScript('search_public_channels.py', payload, env.data);
140
+ if (!ran.ok) {
141
+ return ran;
142
+ }
143
+ const messages = sortByPostedAtDesc(ran.data)
144
+ .slice(0, payload.max_results);
145
+ return { ok: true, data: { messages } };
146
+ }
147
+ export async function searchTelegramTickers(config, input) {
148
+ const yamlConfig = await loadSocialSearchConfig(moduleUrl);
149
+ const channels = resolveChannels(input.channels, yamlConfig);
150
+ if (channels.length === 0) {
151
+ return { ok: false, reason: 'No Telegram channels configured or provided.' };
152
+ }
153
+ const env = await telethonEnv(config);
154
+ if (!env.ok) {
155
+ return env;
156
+ }
157
+ const tickers = input.tickers !== undefined ? input.tickers : yamlConfig.tickers;
158
+ const payload = {
159
+ channels,
160
+ tickers,
161
+ ticker_detection: tickerDetectionForPython(yamlConfig.tickerDetection),
162
+ max_results: input.maxResults ?? yamlConfig.defaults.maxResults,
163
+ max_messages_per_channel: input.maxMessagesPerChannel ?? yamlConfig.telegram.maxMessagesPerChannel,
164
+ ...(input.since ? { since: input.since } : {}),
165
+ };
166
+ const ran = await runPythonScript('scan_tickers.py', payload, env.data);
167
+ if (!ran.ok) {
168
+ return ran;
169
+ }
170
+ const messages = sortByPostedAtDesc(ran.data).slice(0, payload.max_results);
171
+ return { ok: true, data: { messages } };
172
+ }
173
+ //# sourceMappingURL=telegram-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-search.js","sourceRoot":"","sources":["../../../src/core/agent/telegram-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { NodeSdkConfig } from '../../config/schema.js';
2
+ import { SendTelegramMessageInputSchema, SendTelegramMessageResultSchema, type ManagementSigningMethod } from '../../schemas/extended.js';
3
+ import type { SdkResult } from '../result.js';
4
+ import { toSelectedSigner, type BuiltManagementPostRequest } from '../management-signer.js';
5
+ import { z } from 'zod';
6
+ export type SendTelegramMessageInput = z.infer<typeof SendTelegramMessageInputSchema>;
7
+ export type SendTelegramMessageResult = z.infer<typeof SendTelegramMessageResultSchema>;
8
+ export declare function buildSendTelegramMessage(config: NodeSdkConfig, input: SendTelegramMessageInput, signing?: ManagementSigningMethod): Promise<SdkResult<BuiltManagementPostRequest>>;
9
+ /** POST /sendTelegramMessage — push text to the stored operator Telegram chat. */
10
+ export declare function sendTelegramMessage(config: NodeSdkConfig, input: SendTelegramMessageInput, signing?: ManagementSigningMethod): Promise<SdkResult<{
11
+ result: SendTelegramMessageResult;
12
+ selectedSigningKey?: ReturnType<typeof toSelectedSigner>;
13
+ signingMessage: string;
14
+ }>>;
15
+ //# sourceMappingURL=telegram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../../src/core/agent/telegram.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAGN,8BAA8B,EAC9B,+BAA+B,EAC/B,KAAK,uBAAuB,EAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAGN,gBAAgB,EAChB,KAAK,0BAA0B,EAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAOtB,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,8BAA8B,CACrC,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,+BAA+B,CACtC,CAAC;AAEF,wBAAsB,wBAAwB,CAC7C,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,wBAAwB,EAC/B,OAAO,GAAE,uBAAoD,GAC3D,OAAO,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,CAqChD;AAED,kFAAkF;AAClF,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,wBAAwB,EAC/B,OAAO,GAAE,uBAAoD,GAC3D,OAAO,CACT,SAAS,CAAC;IACT,MAAM,EAAE,yBAAyB,CAAC;IAClC,kBAAkB,CAAC,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IACzD,cAAc,EAAE,MAAM,CAAC;CACvB,CAAC,CACF,CAuCA"}
@@ -0,0 +1,72 @@
1
+ import { managementPost } from '../../api/management-api.js';
2
+ import { AGENT_TELEGRAM_API_PATHS, DEFAULT_MANAGEMENT_SIGNING, SendTelegramMessageInputSchema, SendTelegramMessageResultSchema, } from '../../schemas/extended.js';
3
+ import { buildManagementPostRequest, managementSign, toSelectedSigner, } from '../management-signer.js';
4
+ import { validateWebhookName, normalizeWebhookName } from './webhooks.js';
5
+ import { normalizeAgentEnvironmentVariableName, validateAgentEnvironmentVariableName, } from './environment-variables.js';
6
+ export async function buildSendTelegramMessage(config, input, signing = DEFAULT_MANAGEMENT_SIGNING) {
7
+ const parsed = SendTelegramMessageInputSchema.safeParse(input);
8
+ if (!parsed.success) {
9
+ return { ok: false, reason: 'Invalid send Telegram message input.' };
10
+ }
11
+ let webhookName;
12
+ if (parsed.data.webhookName) {
13
+ const nameErr = validateWebhookName(parsed.data.webhookName);
14
+ if (nameErr) {
15
+ return { ok: false, reason: nameErr };
16
+ }
17
+ webhookName = normalizeWebhookName(parsed.data.webhookName);
18
+ }
19
+ let chatIdEnvVar;
20
+ if (parsed.data.chatIdEnvVar) {
21
+ const envErr = validateAgentEnvironmentVariableName(parsed.data.chatIdEnvVar);
22
+ if (envErr) {
23
+ return { ok: false, reason: envErr };
24
+ }
25
+ chatIdEnvVar = normalizeAgentEnvironmentVariableName(parsed.data.chatIdEnvVar);
26
+ }
27
+ return buildManagementPostRequest(config, {
28
+ path: AGENT_TELEGRAM_API_PATHS.sendMessage,
29
+ buildRequestFields: () => ({
30
+ text: parsed.data.text,
31
+ ...(webhookName ? { webhookName } : {}),
32
+ ...(chatIdEnvVar ? { chatIdEnvVar } : {}),
33
+ }),
34
+ }, signing);
35
+ }
36
+ /** POST /sendTelegramMessage — push text to the stored operator Telegram chat. */
37
+ export async function sendTelegramMessage(config, input, signing = DEFAULT_MANAGEMENT_SIGNING) {
38
+ const built = await buildSendTelegramMessage(config, input, signing);
39
+ if (!built.ok) {
40
+ return built;
41
+ }
42
+ const signed = await managementSign(config, signing, built.data.unsignedBody);
43
+ if (!signed.ok) {
44
+ return signed;
45
+ }
46
+ const posted = await managementPost(config, built.data.path, signed.data);
47
+ if (!posted.ok) {
48
+ return posted;
49
+ }
50
+ const data = posted.data && typeof posted.data === 'object' && !Array.isArray(posted.data)
51
+ ? posted.data
52
+ : {};
53
+ const parsed = SendTelegramMessageResultSchema.safeParse({
54
+ sent: data.sent ?? data.Sent,
55
+ chatId: Number(data.chatId ?? data.ChatID ?? data.ChatId),
56
+ chunks: Number(data.chunks ?? data.Chunks),
57
+ });
58
+ if (!parsed.success) {
59
+ return { ok: false, reason: 'Send Telegram message response failed validation.' };
60
+ }
61
+ return {
62
+ ok: true,
63
+ data: {
64
+ result: parsed.data,
65
+ selectedSigningKey: built.data.selectedSigningKey
66
+ ? toSelectedSigner(built.data.selectedSigningKey)
67
+ : undefined,
68
+ signingMessage: built.data.canonicalJson,
69
+ },
70
+ };
71
+ }
72
+ //# sourceMappingURL=telegram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../../src/core/agent/telegram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /** Token/ticker extraction — mirrors scripts/telegram-search/ticker_extract.py */
2
+ export declare const DEFAULT_TICKER_EXCLUDE: Set<string>;
3
+ export type TickerDetectionConfig = {
4
+ minLength: number;
5
+ maxLength: number;
6
+ includeBareCaps: boolean;
7
+ exclude: Set<string>;
8
+ };
9
+ export declare const DEFAULT_TICKER_DETECTION: TickerDetectionConfig;
10
+ export declare function normalizeTicker(raw: string): string;
11
+ export declare function extractTickers(text: string, config?: TickerDetectionConfig): string[];
12
+ export declare function findTickersInMessage(text: string, allowlist: string[] | null, config?: TickerDetectionConfig): string[];
13
+ export declare function tickerDetectionFromYaml(raw: Record<string, unknown> | undefined): TickerDetectionConfig;
14
+ export declare function tickerDetectionForPython(config: TickerDetectionConfig): Record<string, unknown>;
15
+ //# sourceMappingURL=ticker-extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticker-extract.d.ts","sourceRoot":"","sources":["../../../src/core/agent/ticker-extract.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,eAAO,MAAM,sBAAsB,aA6BjC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,qBAKtC,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAQD,wBAAgB,cAAc,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,qBAAgD,GACtD,MAAM,EAAE,CAkCV;AAED,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAC1B,MAAM,GAAE,qBAAgD,GACtD,MAAM,EAAE,CAsBV;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,qBAAqB,CAevG;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO/F"}