@daniel.stefan/metalink 1.3.1

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 (333) hide show
  1. package/README.md +160 -0
  2. package/package.json +96 -0
  3. package/packages/cli/dist/bin/cli.d.ts +3 -0
  4. package/packages/cli/dist/bin/cli.d.ts.map +1 -0
  5. package/packages/cli/dist/bin/cli.js +4 -0
  6. package/packages/cli/dist/bin/cli.js.map +1 -0
  7. package/packages/cli/dist/commands/config/init.d.ts +9 -0
  8. package/packages/cli/dist/commands/config/init.d.ts.map +1 -0
  9. package/packages/cli/dist/commands/config/init.js +38 -0
  10. package/packages/cli/dist/commands/config/init.js.map +1 -0
  11. package/packages/cli/dist/commands/config/validate.d.ts +9 -0
  12. package/packages/cli/dist/commands/config/validate.d.ts.map +1 -0
  13. package/packages/cli/dist/commands/config/validate.js +34 -0
  14. package/packages/cli/dist/commands/config/validate.js.map +1 -0
  15. package/packages/cli/dist/commands/daemon/restart.d.ts +15 -0
  16. package/packages/cli/dist/commands/daemon/restart.d.ts.map +1 -0
  17. package/packages/cli/dist/commands/daemon/restart.js +184 -0
  18. package/packages/cli/dist/commands/daemon/restart.js.map +1 -0
  19. package/packages/cli/dist/commands/daemon/start.d.ts +7 -0
  20. package/packages/cli/dist/commands/daemon/start.d.ts.map +1 -0
  21. package/packages/cli/dist/commands/daemon/start.js +85 -0
  22. package/packages/cli/dist/commands/daemon/start.js.map +1 -0
  23. package/packages/cli/dist/commands/daemon/status.d.ts +7 -0
  24. package/packages/cli/dist/commands/daemon/status.d.ts.map +1 -0
  25. package/packages/cli/dist/commands/daemon/status.js +69 -0
  26. package/packages/cli/dist/commands/daemon/status.js.map +1 -0
  27. package/packages/cli/dist/commands/daemon/stop.d.ts +8 -0
  28. package/packages/cli/dist/commands/daemon/stop.d.ts.map +1 -0
  29. package/packages/cli/dist/commands/daemon/stop.js +77 -0
  30. package/packages/cli/dist/commands/daemon/stop.js.map +1 -0
  31. package/packages/cli/dist/commands/import/mcpm.d.ts +10 -0
  32. package/packages/cli/dist/commands/import/mcpm.d.ts.map +1 -0
  33. package/packages/cli/dist/commands/import/mcpm.js +58 -0
  34. package/packages/cli/dist/commands/import/mcpm.js.map +1 -0
  35. package/packages/cli/dist/commands/safety/add-risky-pattern.d.ts +16 -0
  36. package/packages/cli/dist/commands/safety/add-risky-pattern.d.ts.map +1 -0
  37. package/packages/cli/dist/commands/safety/add-risky-pattern.js +72 -0
  38. package/packages/cli/dist/commands/safety/add-risky-pattern.js.map +1 -0
  39. package/packages/cli/dist/commands/safety/add-risky.d.ts +12 -0
  40. package/packages/cli/dist/commands/safety/add-risky.d.ts.map +1 -0
  41. package/packages/cli/dist/commands/safety/add-risky.js +52 -0
  42. package/packages/cli/dist/commands/safety/add-risky.js.map +1 -0
  43. package/packages/cli/dist/commands/safety/add-safe-pattern.d.ts +16 -0
  44. package/packages/cli/dist/commands/safety/add-safe-pattern.d.ts.map +1 -0
  45. package/packages/cli/dist/commands/safety/add-safe-pattern.js +72 -0
  46. package/packages/cli/dist/commands/safety/add-safe-pattern.js.map +1 -0
  47. package/packages/cli/dist/commands/safety/add-safe.d.ts +12 -0
  48. package/packages/cli/dist/commands/safety/add-safe.d.ts.map +1 -0
  49. package/packages/cli/dist/commands/safety/add-safe.js +52 -0
  50. package/packages/cli/dist/commands/safety/add-safe.js.map +1 -0
  51. package/packages/cli/dist/commands/safety/check.d.ts +9 -0
  52. package/packages/cli/dist/commands/safety/check.d.ts.map +1 -0
  53. package/packages/cli/dist/commands/safety/check.js +36 -0
  54. package/packages/cli/dist/commands/safety/check.js.map +1 -0
  55. package/packages/cli/dist/commands/safety/export.d.ts +10 -0
  56. package/packages/cli/dist/commands/safety/export.d.ts.map +1 -0
  57. package/packages/cli/dist/commands/safety/export.js +48 -0
  58. package/packages/cli/dist/commands/safety/export.js.map +1 -0
  59. package/packages/cli/dist/commands/safety/import.d.ts +12 -0
  60. package/packages/cli/dist/commands/safety/import.d.ts.map +1 -0
  61. package/packages/cli/dist/commands/safety/import.js +78 -0
  62. package/packages/cli/dist/commands/safety/import.js.map +1 -0
  63. package/packages/cli/dist/commands/safety/index.d.ts +8 -0
  64. package/packages/cli/dist/commands/safety/index.d.ts.map +1 -0
  65. package/packages/cli/dist/commands/safety/index.js +46 -0
  66. package/packages/cli/dist/commands/safety/index.js.map +1 -0
  67. package/packages/cli/dist/commands/safety/list.d.ts +6 -0
  68. package/packages/cli/dist/commands/safety/list.d.ts.map +1 -0
  69. package/packages/cli/dist/commands/safety/list.js +77 -0
  70. package/packages/cli/dist/commands/safety/list.js.map +1 -0
  71. package/packages/cli/dist/commands/safety/remove.d.ts +9 -0
  72. package/packages/cli/dist/commands/safety/remove.d.ts.map +1 -0
  73. package/packages/cli/dist/commands/safety/remove.js +46 -0
  74. package/packages/cli/dist/commands/safety/remove.js.map +1 -0
  75. package/packages/cli/dist/commands/safety/reset.d.ts +9 -0
  76. package/packages/cli/dist/commands/safety/reset.d.ts.map +1 -0
  77. package/packages/cli/dist/commands/safety/reset.js +46 -0
  78. package/packages/cli/dist/commands/safety/reset.js.map +1 -0
  79. package/packages/cli/dist/commands/safety/validate.d.ts +9 -0
  80. package/packages/cli/dist/commands/safety/validate.d.ts.map +1 -0
  81. package/packages/cli/dist/commands/safety/validate.js +51 -0
  82. package/packages/cli/dist/commands/safety/validate.js.map +1 -0
  83. package/packages/cli/dist/commands/secret/get.d.ts +9 -0
  84. package/packages/cli/dist/commands/secret/get.d.ts.map +1 -0
  85. package/packages/cli/dist/commands/secret/get.js +26 -0
  86. package/packages/cli/dist/commands/secret/get.js.map +1 -0
  87. package/packages/cli/dist/commands/secret/set.d.ts +10 -0
  88. package/packages/cli/dist/commands/secret/set.d.ts.map +1 -0
  89. package/packages/cli/dist/commands/secret/set.js +22 -0
  90. package/packages/cli/dist/commands/secret/set.js.map +1 -0
  91. package/packages/cli/dist/commands/server/__tests__/server-management-e2e.test.d.ts +2 -0
  92. package/packages/cli/dist/commands/server/__tests__/server-management-e2e.test.d.ts.map +1 -0
  93. package/packages/cli/dist/commands/server/__tests__/server-management-e2e.test.js +234 -0
  94. package/packages/cli/dist/commands/server/__tests__/server-management-e2e.test.js.map +1 -0
  95. package/packages/cli/dist/commands/server/add.d.ts +14 -0
  96. package/packages/cli/dist/commands/server/add.d.ts.map +1 -0
  97. package/packages/cli/dist/commands/server/add.js +86 -0
  98. package/packages/cli/dist/commands/server/add.js.map +1 -0
  99. package/packages/cli/dist/commands/server/available.d.ts +10 -0
  100. package/packages/cli/dist/commands/server/available.d.ts.map +1 -0
  101. package/packages/cli/dist/commands/server/available.js +62 -0
  102. package/packages/cli/dist/commands/server/available.js.map +1 -0
  103. package/packages/cli/dist/commands/server/debug.d.ts +18 -0
  104. package/packages/cli/dist/commands/server/debug.d.ts.map +1 -0
  105. package/packages/cli/dist/commands/server/debug.js +165 -0
  106. package/packages/cli/dist/commands/server/debug.js.map +1 -0
  107. package/packages/cli/dist/commands/server/info.d.ts +13 -0
  108. package/packages/cli/dist/commands/server/info.d.ts.map +1 -0
  109. package/packages/cli/dist/commands/server/info.js +62 -0
  110. package/packages/cli/dist/commands/server/info.js.map +1 -0
  111. package/packages/cli/dist/commands/server/list.d.ts +10 -0
  112. package/packages/cli/dist/commands/server/list.d.ts.map +1 -0
  113. package/packages/cli/dist/commands/server/list.js +105 -0
  114. package/packages/cli/dist/commands/server/list.js.map +1 -0
  115. package/packages/cli/dist/commands/server/refresh-tools.d.ts +13 -0
  116. package/packages/cli/dist/commands/server/refresh-tools.d.ts.map +1 -0
  117. package/packages/cli/dist/commands/server/refresh-tools.js +46 -0
  118. package/packages/cli/dist/commands/server/refresh-tools.js.map +1 -0
  119. package/packages/cli/dist/commands/server/remove.d.ts +12 -0
  120. package/packages/cli/dist/commands/server/remove.d.ts.map +1 -0
  121. package/packages/cli/dist/commands/server/remove.js +39 -0
  122. package/packages/cli/dist/commands/server/remove.js.map +1 -0
  123. package/packages/cli/dist/commands/server/restart.d.ts +9 -0
  124. package/packages/cli/dist/commands/server/restart.d.ts.map +1 -0
  125. package/packages/cli/dist/commands/server/restart.js +30 -0
  126. package/packages/cli/dist/commands/server/restart.js.map +1 -0
  127. package/packages/cli/dist/commands/server/start.d.ts +9 -0
  128. package/packages/cli/dist/commands/server/start.d.ts.map +1 -0
  129. package/packages/cli/dist/commands/server/start.js +37 -0
  130. package/packages/cli/dist/commands/server/start.js.map +1 -0
  131. package/packages/cli/dist/commands/server/status.d.ts +9 -0
  132. package/packages/cli/dist/commands/server/status.d.ts.map +1 -0
  133. package/packages/cli/dist/commands/server/status.js +30 -0
  134. package/packages/cli/dist/commands/server/status.js.map +1 -0
  135. package/packages/cli/dist/commands/server/stop.d.ts +9 -0
  136. package/packages/cli/dist/commands/server/stop.d.ts.map +1 -0
  137. package/packages/cli/dist/commands/server/stop.js +31 -0
  138. package/packages/cli/dist/commands/server/stop.js.map +1 -0
  139. package/packages/cli/dist/commands/server/validate.d.ts +15 -0
  140. package/packages/cli/dist/commands/server/validate.d.ts.map +1 -0
  141. package/packages/cli/dist/commands/server/validate.js +87 -0
  142. package/packages/cli/dist/commands/server/validate.js.map +1 -0
  143. package/packages/cli/dist/commands/stdio.d.ts +36 -0
  144. package/packages/cli/dist/commands/stdio.d.ts.map +1 -0
  145. package/packages/cli/dist/commands/stdio.js +85 -0
  146. package/packages/cli/dist/commands/stdio.js.map +1 -0
  147. package/packages/cli/dist/commands/tool/execute-confirm.d.ts +12 -0
  148. package/packages/cli/dist/commands/tool/execute-confirm.d.ts.map +1 -0
  149. package/packages/cli/dist/commands/tool/execute-confirm.js +98 -0
  150. package/packages/cli/dist/commands/tool/execute-confirm.js.map +1 -0
  151. package/packages/cli/dist/commands/tool/execute.d.ts +12 -0
  152. package/packages/cli/dist/commands/tool/execute.d.ts.map +1 -0
  153. package/packages/cli/dist/commands/tool/execute.js +55 -0
  154. package/packages/cli/dist/commands/tool/execute.js.map +1 -0
  155. package/packages/cli/dist/commands/tool/list.d.ts +13 -0
  156. package/packages/cli/dist/commands/tool/list.d.ts.map +1 -0
  157. package/packages/cli/dist/commands/tool/list.js +91 -0
  158. package/packages/cli/dist/commands/tool/list.js.map +1 -0
  159. package/packages/cli/dist/commands/tool/search.d.ts +12 -0
  160. package/packages/cli/dist/commands/tool/search.d.ts.map +1 -0
  161. package/packages/cli/dist/commands/tool/search.js +87 -0
  162. package/packages/cli/dist/commands/tool/search.js.map +1 -0
  163. package/packages/cli/dist/index.d.ts +2 -0
  164. package/packages/cli/dist/index.d.ts.map +1 -0
  165. package/packages/cli/dist/index.js +9 -0
  166. package/packages/cli/dist/index.js.map +1 -0
  167. package/packages/cli/dist/utils/daemon-checker.d.ts +18 -0
  168. package/packages/cli/dist/utils/daemon-checker.d.ts.map +1 -0
  169. package/packages/cli/dist/utils/daemon-checker.js +69 -0
  170. package/packages/cli/dist/utils/daemon-checker.js.map +1 -0
  171. package/packages/cli/dist/utils/daemon-endpoint.d.ts +7 -0
  172. package/packages/cli/dist/utils/daemon-endpoint.d.ts.map +1 -0
  173. package/packages/cli/dist/utils/daemon-endpoint.js +13 -0
  174. package/packages/cli/dist/utils/daemon-endpoint.js.map +1 -0
  175. package/packages/cli/dist/utils/get-configured-port.d.ts +43 -0
  176. package/packages/cli/dist/utils/get-configured-port.d.ts.map +1 -0
  177. package/packages/cli/dist/utils/get-configured-port.js +141 -0
  178. package/packages/cli/dist/utils/get-configured-port.js.map +1 -0
  179. package/packages/cli/dist/utils/stdio-bridge.d.ts +48 -0
  180. package/packages/cli/dist/utils/stdio-bridge.d.ts.map +1 -0
  181. package/packages/cli/dist/utils/stdio-bridge.js +181 -0
  182. package/packages/cli/dist/utils/stdio-bridge.js.map +1 -0
  183. package/packages/cli/package.json +48 -0
  184. package/packages/core/dist/config/defaults.d.ts +36 -0
  185. package/packages/core/dist/config/defaults.d.ts.map +1 -0
  186. package/packages/core/dist/config/defaults.js +324 -0
  187. package/packages/core/dist/config/defaults.js.map +1 -0
  188. package/packages/core/dist/config/index.d.ts +9 -0
  189. package/packages/core/dist/config/index.d.ts.map +1 -0
  190. package/packages/core/dist/config/index.js +14 -0
  191. package/packages/core/dist/config/index.js.map +1 -0
  192. package/packages/core/dist/config/loader.d.ts +269 -0
  193. package/packages/core/dist/config/loader.d.ts.map +1 -0
  194. package/packages/core/dist/config/loader.js +777 -0
  195. package/packages/core/dist/config/loader.js.map +1 -0
  196. package/packages/core/dist/config/registry.d.ts +212 -0
  197. package/packages/core/dist/config/registry.d.ts.map +1 -0
  198. package/packages/core/dist/config/registry.js +754 -0
  199. package/packages/core/dist/config/registry.js.map +1 -0
  200. package/packages/core/dist/config/schema.d.ts +4352 -0
  201. package/packages/core/dist/config/schema.d.ts.map +1 -0
  202. package/packages/core/dist/config/schema.js +267 -0
  203. package/packages/core/dist/config/schema.js.map +1 -0
  204. package/packages/core/dist/daemon.d.ts +7 -0
  205. package/packages/core/dist/daemon.d.ts.map +1 -0
  206. package/packages/core/dist/daemon.js +116 -0
  207. package/packages/core/dist/daemon.js.map +1 -0
  208. package/packages/core/dist/http-client-retry.d.ts +67 -0
  209. package/packages/core/dist/http-client-retry.d.ts.map +1 -0
  210. package/packages/core/dist/http-client-retry.js +133 -0
  211. package/packages/core/dist/http-client-retry.js.map +1 -0
  212. package/packages/core/dist/http-client-updated.d.ts +147 -0
  213. package/packages/core/dist/http-client-updated.d.ts.map +1 -0
  214. package/packages/core/dist/http-client-updated.js +452 -0
  215. package/packages/core/dist/http-client-updated.js.map +1 -0
  216. package/packages/core/dist/http-client.d.ts +207 -0
  217. package/packages/core/dist/http-client.d.ts.map +1 -0
  218. package/packages/core/dist/http-client.js +704 -0
  219. package/packages/core/dist/http-client.js.map +1 -0
  220. package/packages/core/dist/index.d.ts +13 -0
  221. package/packages/core/dist/index.d.ts.map +1 -0
  222. package/packages/core/dist/index.js +23 -0
  223. package/packages/core/dist/index.js.map +1 -0
  224. package/packages/core/dist/logging/index.d.ts +46 -0
  225. package/packages/core/dist/logging/index.d.ts.map +1 -0
  226. package/packages/core/dist/logging/index.js +74 -0
  227. package/packages/core/dist/logging/index.js.map +1 -0
  228. package/packages/core/dist/metrics/index.d.ts +339 -0
  229. package/packages/core/dist/metrics/index.d.ts.map +1 -0
  230. package/packages/core/dist/metrics/index.js +792 -0
  231. package/packages/core/dist/metrics/index.js.map +1 -0
  232. package/packages/core/dist/plugins/index.d.ts +49 -0
  233. package/packages/core/dist/plugins/index.d.ts.map +1 -0
  234. package/packages/core/dist/plugins/index.js +82 -0
  235. package/packages/core/dist/plugins/index.js.map +1 -0
  236. package/packages/core/dist/secrets/index.d.ts +6 -0
  237. package/packages/core/dist/secrets/index.d.ts.map +1 -0
  238. package/packages/core/dist/secrets/index.js +5 -0
  239. package/packages/core/dist/secrets/index.js.map +1 -0
  240. package/packages/core/dist/secrets/keyring.d.ts +54 -0
  241. package/packages/core/dist/secrets/keyring.d.ts.map +1 -0
  242. package/packages/core/dist/secrets/keyring.js +141 -0
  243. package/packages/core/dist/secrets/keyring.js.map +1 -0
  244. package/packages/core/dist/server/batch-executor.d.ts +83 -0
  245. package/packages/core/dist/server/batch-executor.d.ts.map +1 -0
  246. package/packages/core/dist/server/batch-executor.js +291 -0
  247. package/packages/core/dist/server/batch-executor.js.map +1 -0
  248. package/packages/core/dist/server/circuit-breaker.d.ts +215 -0
  249. package/packages/core/dist/server/circuit-breaker.d.ts.map +1 -0
  250. package/packages/core/dist/server/circuit-breaker.js +330 -0
  251. package/packages/core/dist/server/circuit-breaker.js.map +1 -0
  252. package/packages/core/dist/server/client-detection.d.ts +40 -0
  253. package/packages/core/dist/server/client-detection.d.ts.map +1 -0
  254. package/packages/core/dist/server/client-detection.js +242 -0
  255. package/packages/core/dist/server/client-detection.js.map +1 -0
  256. package/packages/core/dist/server/client-profiles.d.ts +102 -0
  257. package/packages/core/dist/server/client-profiles.d.ts.map +1 -0
  258. package/packages/core/dist/server/client-profiles.js +254 -0
  259. package/packages/core/dist/server/client-profiles.js.map +1 -0
  260. package/packages/core/dist/server/http.d.ts +386 -0
  261. package/packages/core/dist/server/http.d.ts.map +1 -0
  262. package/packages/core/dist/server/http.js +4253 -0
  263. package/packages/core/dist/server/http.js.map +1 -0
  264. package/packages/core/dist/server/index.d.ts +7 -0
  265. package/packages/core/dist/server/index.d.ts.map +1 -0
  266. package/packages/core/dist/server/index.js +6 -0
  267. package/packages/core/dist/server/index.js.map +1 -0
  268. package/packages/core/dist/server/manager.d.ts +458 -0
  269. package/packages/core/dist/server/manager.d.ts.map +1 -0
  270. package/packages/core/dist/server/manager.js +3255 -0
  271. package/packages/core/dist/server/manager.js.map +1 -0
  272. package/packages/core/dist/server/managers/HttpConnectionManager.d.ts +69 -0
  273. package/packages/core/dist/server/managers/HttpConnectionManager.d.ts.map +1 -0
  274. package/packages/core/dist/server/managers/HttpConnectionManager.js +214 -0
  275. package/packages/core/dist/server/managers/HttpConnectionManager.js.map +1 -0
  276. package/packages/core/dist/server/managers/ProcessManager.d.ts +128 -0
  277. package/packages/core/dist/server/managers/ProcessManager.d.ts.map +1 -0
  278. package/packages/core/dist/server/managers/ProcessManager.js +443 -0
  279. package/packages/core/dist/server/managers/ProcessManager.js.map +1 -0
  280. package/packages/core/dist/server/managers/SchemaCacheManager.d.ts +152 -0
  281. package/packages/core/dist/server/managers/SchemaCacheManager.d.ts.map +1 -0
  282. package/packages/core/dist/server/managers/SchemaCacheManager.js +426 -0
  283. package/packages/core/dist/server/managers/SchemaCacheManager.js.map +1 -0
  284. package/packages/core/dist/server/managers/index.d.ts +9 -0
  285. package/packages/core/dist/server/managers/index.d.ts.map +1 -0
  286. package/packages/core/dist/server/managers/index.js +9 -0
  287. package/packages/core/dist/server/managers/index.js.map +1 -0
  288. package/packages/core/dist/server/metrics.d.ts +134 -0
  289. package/packages/core/dist/server/metrics.d.ts.map +1 -0
  290. package/packages/core/dist/server/metrics.js +273 -0
  291. package/packages/core/dist/server/metrics.js.map +1 -0
  292. package/packages/core/dist/server/prompts.d.ts +58 -0
  293. package/packages/core/dist/server/prompts.d.ts.map +1 -0
  294. package/packages/core/dist/server/prompts.js +405 -0
  295. package/packages/core/dist/server/prompts.js.map +1 -0
  296. package/packages/core/dist/server/protocol-versions.d.ts +49 -0
  297. package/packages/core/dist/server/protocol-versions.d.ts.map +1 -0
  298. package/packages/core/dist/server/protocol-versions.js +173 -0
  299. package/packages/core/dist/server/protocol-versions.js.map +1 -0
  300. package/packages/core/dist/server/resources.d.ts +64 -0
  301. package/packages/core/dist/server/resources.d.ts.map +1 -0
  302. package/packages/core/dist/server/resources.js +243 -0
  303. package/packages/core/dist/server/resources.js.map +1 -0
  304. package/packages/core/dist/server/schema-store.d.ts +84 -0
  305. package/packages/core/dist/server/schema-store.d.ts.map +1 -0
  306. package/packages/core/dist/server/schema-store.js +234 -0
  307. package/packages/core/dist/server/schema-store.js.map +1 -0
  308. package/packages/core/dist/server/schema-validator.d.ts +51 -0
  309. package/packages/core/dist/server/schema-validator.d.ts.map +1 -0
  310. package/packages/core/dist/server/schema-validator.js +208 -0
  311. package/packages/core/dist/server/schema-validator.js.map +1 -0
  312. package/packages/core/dist/server/token-calculator.d.ts +44 -0
  313. package/packages/core/dist/server/token-calculator.d.ts.map +1 -0
  314. package/packages/core/dist/server/token-calculator.js +53 -0
  315. package/packages/core/dist/server/token-calculator.js.map +1 -0
  316. package/packages/core/dist/server/types.d.ts +45 -0
  317. package/packages/core/dist/server/types.d.ts.map +1 -0
  318. package/packages/core/dist/server/types.js +5 -0
  319. package/packages/core/dist/server/types.js.map +1 -0
  320. package/packages/core/dist/utils/file-lock.d.ts +73 -0
  321. package/packages/core/dist/utils/file-lock.d.ts.map +1 -0
  322. package/packages/core/dist/utils/file-lock.js +235 -0
  323. package/packages/core/dist/utils/file-lock.js.map +1 -0
  324. package/packages/core/package.json +36 -0
  325. package/packages/dashboard/dist/assets/index-B7hvkCMu.css +1 -0
  326. package/packages/dashboard/dist/assets/index-yZhLPpzr.js +1 -0
  327. package/packages/dashboard/dist/index.html +14 -0
  328. package/packages/dashboard/package.json +24 -0
  329. package/packages/shared/dist/version.d.ts +2 -0
  330. package/packages/shared/dist/version.d.ts.map +1 -0
  331. package/packages/shared/dist/version.js +2 -0
  332. package/packages/shared/dist/version.js.map +1 -0
  333. package/packages/shared/package.json +18 -0
@@ -0,0 +1,147 @@
1
+ /**
2
+ * HTTP Client for MCP Streamable HTTP Protocol (WITH RETRY LOGIC)
3
+ *
4
+ * Implements MCP 2025-06-18 Streamable HTTP transport for communicating with
5
+ * remote HTTP-based MCP servers (e.g., Windmill, custom HTTP endpoints).
6
+ *
7
+ * Features:
8
+ * - Exponential backoff retry with jitter (100ms * 2^attempt, max 30s)
9
+ * - Session management with Mcp-Session-Id header
10
+ * - SSE (Server-Sent Events) streaming support
11
+ * - HTTP-stream response batching
12
+ * - Authentication (Bearer, API-Key, OAuth2)
13
+ * - Automatic session resumption via Last-Event-ID
14
+ * - Request/response correlation with JSON-RPC IDs
15
+ */
16
+ import { EventEmitter } from 'events';
17
+ import { HttpServerConfig } from './config/index.js';
18
+ export interface McpStreamableRequest {
19
+ jsonrpc: '2.0';
20
+ method: string;
21
+ params?: unknown;
22
+ id?: string | number | null;
23
+ }
24
+ export interface McpStreamableResponse {
25
+ jsonrpc: '2.0';
26
+ result?: unknown;
27
+ error?: McpError;
28
+ id?: string | number | null;
29
+ }
30
+ export interface McpError {
31
+ code: number;
32
+ message: string;
33
+ data?: unknown;
34
+ }
35
+ interface HttpClientSession {
36
+ id: string;
37
+ createdAt: number;
38
+ lastEventId?: number;
39
+ lastActivity: number;
40
+ }
41
+ /**
42
+ * Retry configuration for exponential backoff
43
+ */
44
+ interface RetryConfig {
45
+ maxRetries: number;
46
+ initialDelayMs: number;
47
+ maxDelayMs: number;
48
+ jitterMs: number;
49
+ }
50
+ /**
51
+ * HTTP Client for remote MCP servers with automatic retry on transient failures
52
+ * Handles Streamable HTTP protocol with session management and exponential backoff
53
+ */
54
+ export declare class HttpClient extends EventEmitter {
55
+ private config;
56
+ private session;
57
+ private pendingRequests;
58
+ private requestId;
59
+ private sseEventBuffer;
60
+ private isConnected;
61
+ private isConnecting;
62
+ private retryConfig;
63
+ constructor(config: HttpServerConfig);
64
+ /**
65
+ * Set custom retry configuration
66
+ * @param config - New retry configuration
67
+ */
68
+ setRetryConfig(config: Partial<RetryConfig>): void;
69
+ /**
70
+ * Initialize or restore session
71
+ */
72
+ private initializeSession;
73
+ /**
74
+ * Generate unique session ID (UUID v4)
75
+ */
76
+ private generateSessionId;
77
+ /**
78
+ * Build HTTP headers with auth and session info
79
+ */
80
+ private buildHeaders;
81
+ /**
82
+ * Resolve ${secret:name} syntax to actual values
83
+ */
84
+ private resolveSecret;
85
+ /**
86
+ * Execute a tool via HTTP call
87
+ */
88
+ call(method: string, params?: unknown): Promise<McpStreamableResponse>;
89
+ /**
90
+ * Send HTTP request with automatic retry on transient failures
91
+ *
92
+ * Retries on:
93
+ * - HTTP 502 (Bad Gateway)
94
+ * - HTTP 503 (Service Unavailable)
95
+ * - HTTP 504 (Gateway Timeout)
96
+ * - Network errors (ECONNRESET, ETIMEDOUT, etc.)
97
+ *
98
+ * Does NOT retry on:
99
+ * - HTTP 400 (Bad Request)
100
+ * - HTTP 401 (Unauthorized)
101
+ * - HTTP 403 (Forbidden)
102
+ * - HTTP 404 (Not Found)
103
+ */
104
+ private sendRequest;
105
+ /**
106
+ * Handle SSE (Server-Sent Events) streaming response
107
+ */
108
+ private handleSSEResponse;
109
+ /**
110
+ * Handle individual SSE event
111
+ */
112
+ private handleSSEEvent;
113
+ /**
114
+ * Handle HTTP-stream response (batch of JSON objects)
115
+ */
116
+ private handleStreamResponse;
117
+ /**
118
+ * Resolve pending request with response
119
+ */
120
+ private resolveRequest;
121
+ /**
122
+ * Connect to HTTP server
123
+ */
124
+ connect(): Promise<void>;
125
+ /**
126
+ * Disconnect from HTTP server
127
+ */
128
+ disconnect(): Promise<void>;
129
+ /**
130
+ * Health check - ping the server
131
+ */
132
+ healthCheck(): Promise<boolean>;
133
+ /**
134
+ * Check if client is connected
135
+ */
136
+ getConnected(): boolean;
137
+ /**
138
+ * Get session info
139
+ */
140
+ getSession(): HttpClientSession | null;
141
+ }
142
+ /**
143
+ * Factory for creating HTTP clients from config
144
+ */
145
+ export declare function createHttpClient(config: HttpServerConfig): HttpClient;
146
+ export {};
147
+ //# sourceMappingURL=http-client-updated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client-updated.d.ts","sourceRoot":"","sources":["../src/http-client-updated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAMrD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAQD;;GAEG;AACH,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA6FD;;;GAGG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,WAAW,CAKjB;gBAEU,MAAM,EAAE,gBAAgB;IAMpC;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAIlD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoCpB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA6B5E;;;;;;;;;;;;;;OAcG;YACW,WAAW;IAgEzB;;OAEG;YACW,iBAAiB;IAuC/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;YACW,oBAAoB;IAgBlC;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,UAAU,IAAI,iBAAiB,GAAG,IAAI;CAGvC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAErE"}
@@ -0,0 +1,452 @@
1
+ /**
2
+ * HTTP Client for MCP Streamable HTTP Protocol (WITH RETRY LOGIC)
3
+ *
4
+ * Implements MCP 2025-06-18 Streamable HTTP transport for communicating with
5
+ * remote HTTP-based MCP servers (e.g., Windmill, custom HTTP endpoints).
6
+ *
7
+ * Features:
8
+ * - Exponential backoff retry with jitter (100ms * 2^attempt, max 30s)
9
+ * - Session management with Mcp-Session-Id header
10
+ * - SSE (Server-Sent Events) streaming support
11
+ * - HTTP-stream response batching
12
+ * - Authentication (Bearer, API-Key, OAuth2)
13
+ * - Automatic session resumption via Last-Event-ID
14
+ * - Request/response correlation with JSON-RPC IDs
15
+ */
16
+ import { EventEmitter } from 'events';
17
+ // ============================================================================
18
+ // Retry Logic
19
+ // ============================================================================
20
+ const RETRYABLE_STATUS_CODES = new Set([502, 503, 504]);
21
+ const NON_RETRYABLE_STATUS_CODES = new Set([400, 401, 403, 404]);
22
+ const RETRYABLE_ERROR_PATTERNS = [
23
+ 'ECONNREFUSED',
24
+ 'ECONNRESET',
25
+ 'ETIMEDOUT',
26
+ 'EHOSTUNREACH',
27
+ 'ENETUNREACH',
28
+ 'ERR_HTTP2_STREAM_RESET',
29
+ ];
30
+ /**
31
+ * Determine if an error or response should be retried
32
+ *
33
+ * @param error - Error object or Response from fetch
34
+ * @returns true if the error is retryable
35
+ */
36
+ function isRetryable(error) {
37
+ // Handle Response objects (failed fetch responses)
38
+ if (error instanceof Response) {
39
+ if (NON_RETRYABLE_STATUS_CODES.has(error.status)) {
40
+ return false;
41
+ }
42
+ return RETRYABLE_STATUS_CODES.has(error.status);
43
+ }
44
+ // Handle Error objects
45
+ if (error instanceof Error) {
46
+ const message = error.message;
47
+ const httpError = error;
48
+ // Check explicit status code (from HTTP response errors)
49
+ if (httpError.statusCode) {
50
+ if (NON_RETRYABLE_STATUS_CODES.has(httpError.statusCode)) {
51
+ return false;
52
+ }
53
+ return RETRYABLE_STATUS_CODES.has(httpError.statusCode);
54
+ }
55
+ // Check for network error patterns
56
+ return RETRYABLE_ERROR_PATTERNS.some(pattern => message.includes(pattern));
57
+ }
58
+ return false;
59
+ }
60
+ /**
61
+ * Calculate exponential backoff delay with random jitter
62
+ *
63
+ * Formula: min(initialDelay * 2^attempt + random(0, jitterMs), maxDelayMs)
64
+ *
65
+ * Example progression (default config):
66
+ * - Attempt 0: 100-1100ms
67
+ * - Attempt 1: 200-1200ms
68
+ * - Attempt 2: 400-1400ms
69
+ * - (capped at 30s)
70
+ *
71
+ * @param attempt - Zero-based retry attempt number
72
+ * @param config - Retry configuration
73
+ * @returns Delay in milliseconds
74
+ */
75
+ function calculateBackoffDelay(attempt, config) {
76
+ const baseDelay = config.initialDelayMs * Math.pow(2, attempt);
77
+ const jitter = Math.random() * config.jitterMs;
78
+ const delayWithJitter = baseDelay + jitter;
79
+ return Math.min(delayWithJitter, config.maxDelayMs);
80
+ }
81
+ /**
82
+ * Sleep for specified duration
83
+ * @param ms - Milliseconds to sleep
84
+ */
85
+ function sleep(ms) {
86
+ return new Promise(resolve => setTimeout(resolve, ms));
87
+ }
88
+ // ============================================================================
89
+ // HttpClient Class
90
+ // ============================================================================
91
+ /**
92
+ * HTTP Client for remote MCP servers with automatic retry on transient failures
93
+ * Handles Streamable HTTP protocol with session management and exponential backoff
94
+ */
95
+ export class HttpClient extends EventEmitter {
96
+ constructor(config) {
97
+ super();
98
+ this.session = null;
99
+ this.pendingRequests = new Map();
100
+ this.requestId = 1;
101
+ this.sseEventBuffer = '';
102
+ this.isConnected = false;
103
+ this.isConnecting = false;
104
+ this.retryConfig = {
105
+ maxRetries: 3,
106
+ initialDelayMs: 100,
107
+ maxDelayMs: 30000,
108
+ jitterMs: 1000,
109
+ };
110
+ this.config = config;
111
+ this.initializeSession();
112
+ }
113
+ /**
114
+ * Set custom retry configuration
115
+ * @param config - New retry configuration
116
+ */
117
+ setRetryConfig(config) {
118
+ this.retryConfig = { ...this.retryConfig, ...config };
119
+ }
120
+ /**
121
+ * Initialize or restore session
122
+ */
123
+ initializeSession() {
124
+ const sessionId = this.session?.id || this.generateSessionId();
125
+ this.session = {
126
+ id: sessionId,
127
+ createdAt: Date.now(),
128
+ lastActivity: Date.now(),
129
+ };
130
+ this.emit('session:created', { sessionId });
131
+ }
132
+ /**
133
+ * Generate unique session ID (UUID v4)
134
+ */
135
+ generateSessionId() {
136
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
137
+ const r = Math.random() * 16 | 0;
138
+ const v = c === 'x' ? r : (r & 0x3 | 0x8);
139
+ return v.toString(16);
140
+ });
141
+ }
142
+ /**
143
+ * Build HTTP headers with auth and session info
144
+ */
145
+ buildHeaders() {
146
+ const headers = {
147
+ 'Accept': 'application/json, text/event-stream',
148
+ 'Content-Type': 'application/json',
149
+ 'MCP-Protocol-Version': '2025-06-18',
150
+ };
151
+ if (this.session?.id) {
152
+ const sessionHeaderName = this.config.session?.headerName || 'Mcp-Session-Id';
153
+ headers[sessionHeaderName] = this.session.id;
154
+ }
155
+ if (this.session?.lastEventId) {
156
+ headers['Last-Event-ID'] = String(this.session.lastEventId);
157
+ }
158
+ if (this.config.auth?.token) {
159
+ const token = this.resolveSecret(this.config.auth.token);
160
+ const headerName = this.config.auth.headerName || 'Authorization';
161
+ if (this.config.auth.type === 'bearer') {
162
+ headers[headerName] = `Bearer ${token}`;
163
+ }
164
+ else if (this.config.auth.type === 'api-key') {
165
+ headers[headerName] = token;
166
+ }
167
+ else if (this.config.auth.type === 'oauth2') {
168
+ headers[headerName] = `Bearer ${token}`;
169
+ }
170
+ }
171
+ if (this.config.cors?.enabled) {
172
+ headers['Origin'] = this.config.cors.allowOrigin || '*';
173
+ }
174
+ return headers;
175
+ }
176
+ /**
177
+ * Resolve ${secret:name} syntax to actual values
178
+ */
179
+ resolveSecret(value) {
180
+ const match = value.match(/\$\{secret:([^}]+)\}/);
181
+ if (match) {
182
+ const secretName = match[1];
183
+ return process.env[`METALINK_SECRET_${secretName}`] || value;
184
+ }
185
+ return value;
186
+ }
187
+ /**
188
+ * Execute a tool via HTTP call
189
+ */
190
+ async call(method, params) {
191
+ if (!this.isConnected && !this.isConnecting) {
192
+ await this.connect();
193
+ }
194
+ const requestId = this.requestId++;
195
+ const request = {
196
+ jsonrpc: '2.0',
197
+ method,
198
+ params,
199
+ id: requestId,
200
+ };
201
+ return new Promise((resolve, reject) => {
202
+ const timeout = setTimeout(() => {
203
+ this.pendingRequests.delete(requestId);
204
+ reject(new Error(`Request timeout for ${method} (ID: ${requestId})`));
205
+ }, 30000);
206
+ this.pendingRequests.set(requestId, { resolve, reject, timeout });
207
+ this.sendRequest(request).catch(err => {
208
+ clearTimeout(timeout);
209
+ this.pendingRequests.delete(requestId);
210
+ reject(err);
211
+ });
212
+ });
213
+ }
214
+ /**
215
+ * Send HTTP request with automatic retry on transient failures
216
+ *
217
+ * Retries on:
218
+ * - HTTP 502 (Bad Gateway)
219
+ * - HTTP 503 (Service Unavailable)
220
+ * - HTTP 504 (Gateway Timeout)
221
+ * - Network errors (ECONNRESET, ETIMEDOUT, etc.)
222
+ *
223
+ * Does NOT retry on:
224
+ * - HTTP 400 (Bad Request)
225
+ * - HTTP 401 (Unauthorized)
226
+ * - HTTP 403 (Forbidden)
227
+ * - HTTP 404 (Not Found)
228
+ */
229
+ async sendRequest(request) {
230
+ const headers = this.buildHeaders();
231
+ let lastError = null;
232
+ for (let attempt = 0; attempt <= this.retryConfig.maxRetries; attempt++) {
233
+ try {
234
+ const response = await fetch(this.config.url, {
235
+ method: 'POST',
236
+ headers,
237
+ body: JSON.stringify(request),
238
+ });
239
+ if (!response.ok) {
240
+ // Check if error is retryable
241
+ if (!isRetryable(response)) {
242
+ const error = new Error(`HTTP ${response.status}: ${response.statusText}`);
243
+ error.statusCode = response.status;
244
+ throw error;
245
+ }
246
+ // Retryable error - will retry below
247
+ lastError = new Error(`HTTP ${response.status}: ${response.statusText}`);
248
+ lastError.statusCode = response.status;
249
+ }
250
+ else {
251
+ // Success - process response
252
+ const serverSessionId = response.headers.get('mcp-session-id') || response.headers.get('Mcp-Session-Id');
253
+ if (serverSessionId && this.session) {
254
+ this.session.id = serverSessionId;
255
+ }
256
+ if (this.session) {
257
+ this.session.lastActivity = Date.now();
258
+ }
259
+ if (this.config.transport === 'sse' || this.config.transport === 'sse-first') {
260
+ await this.handleSSEResponse(response);
261
+ }
262
+ else {
263
+ await this.handleStreamResponse(response);
264
+ }
265
+ return; // Success
266
+ }
267
+ }
268
+ catch (error) {
269
+ lastError = error instanceof Error ? error : new Error(String(error));
270
+ // Check if error is retryable
271
+ if (!isRetryable(lastError)) {
272
+ throw lastError;
273
+ }
274
+ }
275
+ // If this was the last attempt, throw
276
+ if (attempt === this.retryConfig.maxRetries) {
277
+ throw new Error(`Failed to call ${this.config.url}: ${lastError?.message || 'Unknown error'}`);
278
+ }
279
+ // Calculate backoff delay and wait
280
+ const delayMs = calculateBackoffDelay(attempt, this.retryConfig);
281
+ await sleep(delayMs);
282
+ }
283
+ }
284
+ /**
285
+ * Handle SSE (Server-Sent Events) streaming response
286
+ */
287
+ async handleSSEResponse(response) {
288
+ const reader = response.body?.getReader();
289
+ if (!reader) {
290
+ throw new Error('No response body for SSE stream');
291
+ }
292
+ const decoder = new TextDecoder();
293
+ try {
294
+ while (true) {
295
+ const { done, value } = await reader.read();
296
+ if (done)
297
+ break;
298
+ const text = decoder.decode(value, { stream: true });
299
+ this.sseEventBuffer += text;
300
+ const lines = this.sseEventBuffer.split('\n');
301
+ this.sseEventBuffer = lines.pop() || '';
302
+ let currentEvent = {};
303
+ for (const line of lines) {
304
+ if (line === '') {
305
+ if (currentEvent.data) {
306
+ this.handleSSEEvent(currentEvent);
307
+ }
308
+ currentEvent = {};
309
+ }
310
+ else if (line.startsWith('id: ')) {
311
+ currentEvent.id = line.slice(4).trim();
312
+ }
313
+ else if (line.startsWith('data: ')) {
314
+ currentEvent.data = line.slice(6);
315
+ }
316
+ }
317
+ }
318
+ }
319
+ finally {
320
+ reader.releaseLock();
321
+ }
322
+ }
323
+ /**
324
+ * Handle individual SSE event
325
+ */
326
+ handleSSEEvent(event) {
327
+ if (!event.data)
328
+ return;
329
+ if (event.id && this.session) {
330
+ this.session.lastEventId = parseInt(event.id, 10);
331
+ }
332
+ try {
333
+ const response = JSON.parse(event.data);
334
+ this.resolveRequest(response);
335
+ }
336
+ catch (error) {
337
+ console.error('Failed to parse SSE data:', error);
338
+ }
339
+ }
340
+ /**
341
+ * Handle HTTP-stream response (batch of JSON objects)
342
+ */
343
+ async handleStreamResponse(response) {
344
+ const text = await response.text();
345
+ const lines = text.trim().split('\n');
346
+ for (const line of lines) {
347
+ if (!line.trim())
348
+ continue;
349
+ try {
350
+ const parsedResponse = JSON.parse(line);
351
+ this.resolveRequest(parsedResponse);
352
+ }
353
+ catch (error) {
354
+ console.error('Failed to parse stream response:', error);
355
+ }
356
+ }
357
+ }
358
+ /**
359
+ * Resolve pending request with response
360
+ */
361
+ resolveRequest(response) {
362
+ const requestId = response.id;
363
+ if (requestId === null || requestId === undefined) {
364
+ return;
365
+ }
366
+ const pending = this.pendingRequests.get(requestId);
367
+ if (!pending) {
368
+ console.warn(`Received response for unknown request ID: ${requestId}`);
369
+ return;
370
+ }
371
+ this.pendingRequests.delete(requestId);
372
+ clearTimeout(pending.timeout);
373
+ if (response.error) {
374
+ pending.reject(new Error(`RPC Error (${response.error.code}): ${response.error.message}`));
375
+ }
376
+ else {
377
+ pending.resolve(response);
378
+ }
379
+ }
380
+ /**
381
+ * Connect to HTTP server
382
+ */
383
+ async connect() {
384
+ if (this.isConnected || this.isConnecting)
385
+ return;
386
+ this.isConnecting = true;
387
+ try {
388
+ const response = await this.call('initialize', {
389
+ protocolVersion: '2025-06-18',
390
+ capabilities: {},
391
+ clientInfo: {
392
+ name: 'metalink-http-client',
393
+ version: '1.0.0',
394
+ },
395
+ });
396
+ if (!response.result) {
397
+ throw new Error('Initialize response missing result');
398
+ }
399
+ this.isConnected = true;
400
+ this.isConnecting = false;
401
+ this.emit('connected', { session: this.session });
402
+ }
403
+ catch (error) {
404
+ this.isConnecting = false;
405
+ this.isConnected = false;
406
+ throw error;
407
+ }
408
+ }
409
+ /**
410
+ * Disconnect from HTTP server
411
+ */
412
+ async disconnect() {
413
+ this.isConnected = false;
414
+ for (const [, pending] of this.pendingRequests) {
415
+ clearTimeout(pending.timeout);
416
+ pending.reject(new Error('Disconnected'));
417
+ }
418
+ this.pendingRequests.clear();
419
+ this.emit('disconnected');
420
+ }
421
+ /**
422
+ * Health check - ping the server
423
+ */
424
+ async healthCheck() {
425
+ try {
426
+ const response = await this.call('ping');
427
+ return !!response.result || !response.error;
428
+ }
429
+ catch {
430
+ return false;
431
+ }
432
+ }
433
+ /**
434
+ * Check if client is connected
435
+ */
436
+ getConnected() {
437
+ return this.isConnected;
438
+ }
439
+ /**
440
+ * Get session info
441
+ */
442
+ getSession() {
443
+ return this.session;
444
+ }
445
+ }
446
+ /**
447
+ * Factory for creating HTTP clients from config
448
+ */
449
+ export function createHttpClient(config) {
450
+ return new HttpClient(config);
451
+ }
452
+ //# sourceMappingURL=http-client-updated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client-updated.js","sourceRoot":"","sources":["../src/http-client-updated.ts"],"names":[],"mappings":"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"}