@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,91 @@
1
+ import { Command, Args, Flags } from '@oclif/core';
2
+ import Table from 'cli-table3';
3
+ import { getDaemonEndpoint } from '../../utils/daemon-endpoint.js';
4
+ class ToolList extends Command {
5
+ async run() {
6
+ const { args, flags } = await this.parse(ToolList);
7
+ try {
8
+ // Use search_tools with server name to find all tools from this server
9
+ const response = await fetch(`${getDaemonEndpoint()}/mcp`, {
10
+ method: 'POST',
11
+ headers: {
12
+ 'Content-Type': 'application/json',
13
+ 'MCP-Protocol-Version': '2025-06-18',
14
+ },
15
+ body: JSON.stringify({
16
+ jsonrpc: '2.0',
17
+ id: 1,
18
+ method: 'tools/call',
19
+ params: {
20
+ name: 'search_tools',
21
+ arguments: {
22
+ query: args.server,
23
+ },
24
+ },
25
+ }),
26
+ });
27
+ if (!response.ok) {
28
+ this.error(`Failed to search tools: HTTP ${response.status}`);
29
+ }
30
+ const data = await response.json();
31
+ if (data.error) {
32
+ this.error(`Failed to search tools: ${data.error.message}`);
33
+ }
34
+ if (!data.result || !data.result.content || data.result.content.length === 0) {
35
+ this.log(`No tools found in server '${args.server}'.`);
36
+ return;
37
+ }
38
+ // Parse the text content (it's JSON wrapped in a string)
39
+ let allTools = [];
40
+ try {
41
+ const textContent = data.result.content[0]?.text;
42
+ if (textContent) {
43
+ const parsed = JSON.parse(textContent);
44
+ allTools = parsed.tools || [];
45
+ }
46
+ }
47
+ catch (e) {
48
+ this.error(`Failed to parse search_tools response: ${e instanceof Error ? e.message : String(e)}`);
49
+ }
50
+ // Filter to only tools from the specified server
51
+ const tools = allTools.filter(tool => tool.server === args.server);
52
+ if (tools.length === 0) {
53
+ this.log(`No tools found in server '${args.server}'.`);
54
+ return;
55
+ }
56
+ if (flags.json) {
57
+ this.log(JSON.stringify(tools, null, 2));
58
+ }
59
+ else {
60
+ const table = new Table({
61
+ head: ['Name', 'Description'],
62
+ style: { head: [] },
63
+ wordWrap: true,
64
+ });
65
+ for (const tool of tools) {
66
+ table.push([tool.name, tool.description || '-']);
67
+ }
68
+ this.log(table.toString());
69
+ }
70
+ }
71
+ catch (error) {
72
+ this.error(`Failed to discover tools: ${error instanceof Error ? error.message : String(error)}`);
73
+ }
74
+ }
75
+ }
76
+ ToolList.description = 'List all tools from a server (uses search_tools with server name filter)';
77
+ ToolList.args = {
78
+ server: Args.string({ description: 'Server name', required: true }),
79
+ };
80
+ ToolList.flags = {
81
+ 'detail': Flags.boolean({
82
+ description: 'Show full tool schemas',
83
+ default: false,
84
+ }),
85
+ json: Flags.boolean({
86
+ description: 'Output as JSON',
87
+ default: false,
88
+ }),
89
+ };
90
+ export default ToolList;
91
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/tool/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class ToolSearch extends Command {
3
+ static description: string;
4
+ static args: {
5
+ query: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/tool/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,aAAa,CAAC;AAInD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAAoD;IAEtE,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2F3B"}
@@ -0,0 +1,87 @@
1
+ import { Command, Args, Flags } from '@oclif/core';
2
+ import Table from 'cli-table3';
3
+ import { getDaemonEndpoint } from '../../utils/daemon-endpoint.js';
4
+ class ToolSearch extends Command {
5
+ async run() {
6
+ const { args, flags } = await this.parse(ToolSearch);
7
+ try {
8
+ const response = await fetch(`${getDaemonEndpoint()}/mcp`, {
9
+ method: 'POST',
10
+ headers: { 'Content-Type': 'application/json' },
11
+ body: JSON.stringify({
12
+ jsonrpc: '2.0',
13
+ id: 1,
14
+ method: 'tools/call',
15
+ params: {
16
+ name: 'search_tools',
17
+ arguments: {
18
+ query: args.query,
19
+ },
20
+ },
21
+ }),
22
+ });
23
+ if (!response.ok) {
24
+ this.error(`Failed to search tools: HTTP ${response.status}`);
25
+ }
26
+ const data = await response.json();
27
+ if (data.error) {
28
+ this.error(`Failed to search tools: ${data.error.message}`);
29
+ }
30
+ if (!data.result || !data.result.content || data.result.content.length === 0) {
31
+ this.log(`No tools found matching "${args.query}".`);
32
+ return;
33
+ }
34
+ // Parse the text content (it's JSON wrapped in a string)
35
+ let tools = [];
36
+ try {
37
+ const textContent = data.result.content[0]?.text;
38
+ if (textContent) {
39
+ const parsed = JSON.parse(textContent);
40
+ // API returns "tools" array
41
+ tools = (parsed.tools || []).map((r) => ({
42
+ server: r.server,
43
+ name: r.name,
44
+ description: r.description,
45
+ relevance: r.relevance,
46
+ }));
47
+ }
48
+ }
49
+ catch (e) {
50
+ this.error(`Failed to parse search_tools response: ${e instanceof Error ? e.message : String(e)}`);
51
+ }
52
+ if (tools.length === 0) {
53
+ this.log(`No tools found matching "${args.query}".`);
54
+ return;
55
+ }
56
+ if (flags.json) {
57
+ this.log(JSON.stringify(tools, null, 2));
58
+ }
59
+ else {
60
+ const table = new Table({
61
+ head: ['Server', 'Tool Name', 'Description'],
62
+ style: { head: [] },
63
+ wordWrap: true,
64
+ });
65
+ for (const tool of tools) {
66
+ table.push([tool.server, tool.name, tool.description || '-']);
67
+ }
68
+ this.log(table.toString());
69
+ }
70
+ }
71
+ catch (error) {
72
+ this.error(`Failed to search tools: ${error instanceof Error ? error.message : String(error)}`);
73
+ }
74
+ }
75
+ }
76
+ ToolSearch.description = 'Search for tools by keyword across all servers';
77
+ ToolSearch.args = {
78
+ query: Args.string({ description: 'Search query (fuzzy matching)', required: true }),
79
+ };
80
+ ToolSearch.flags = {
81
+ json: Flags.boolean({
82
+ description: 'Output as JSON',
83
+ default: false,
84
+ }),
85
+ };
86
+ export default ToolSearch;
87
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/tool/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const version: string;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO,QAA4B,CAAC"}
@@ -0,0 +1,9 @@
1
+ // Version - read from root package.json
2
+ // Single source of truth: package.json (managed by changesets)
3
+ import { readFileSync } from 'fs';
4
+ import { join, dirname } from 'path';
5
+ import { fileURLToPath } from 'url';
6
+ const __dirname = dirname(fileURLToPath(import.meta.url));
7
+ const packageJson = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf8'));
8
+ export const version = `v${packageJson.version}`;
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,+DAA+D;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAC5D,CAAC;AACF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Check if the MetaLink daemon is running and responsive
3
+ * @param port Port number to check (default: 6655)
4
+ * @returns true if daemon is running and responsive
5
+ */
6
+ export declare function isDaemonRunning(port?: number): Promise<boolean>;
7
+ /**
8
+ * Ensure the MetaLink daemon is running, starting it if necessary
9
+ * @param port Port number for the daemon (default: 6655)
10
+ * @returns true if daemon is running, false if failed to start
11
+ */
12
+ export declare function ensureDaemonRunning(port?: number): Promise<boolean>;
13
+ /**
14
+ * Get the configured port from environment or default
15
+ * @returns Port number for the daemon
16
+ */
17
+ export declare function getConfiguredPortForStdio(): number;
18
+ //# sourceMappingURL=daemon-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-checker.d.ts","sourceRoot":"","sources":["../../src/utils/daemon-checker.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,GAAE,MAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAS3E;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,GAAE,MAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAiC/E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CASlD"}
@@ -0,0 +1,69 @@
1
+ import { execFile } from 'child_process';
2
+ import { promisify } from 'util';
3
+ const execFileAsync = promisify(execFile);
4
+ /**
5
+ * Check if the MetaLink daemon is running and responsive
6
+ * @param port Port number to check (default: 6655)
7
+ * @returns true if daemon is running and responsive
8
+ */
9
+ export async function isDaemonRunning(port = 6655) {
10
+ try {
11
+ const response = await fetch(`http://127.0.0.1:${port}/health`, {
12
+ signal: AbortSignal.timeout(2000), // 2-second timeout
13
+ });
14
+ return response.ok;
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ /**
21
+ * Ensure the MetaLink daemon is running, starting it if necessary
22
+ * @param port Port number for the daemon (default: 6655)
23
+ * @returns true if daemon is running, false if failed to start
24
+ */
25
+ export async function ensureDaemonRunning(port = 6655) {
26
+ // Check if already running
27
+ if (await isDaemonRunning(port)) {
28
+ return true;
29
+ }
30
+ // Daemon not running, attempt to start it
31
+ console.error('[daemon-checker] Daemon not responding on port', port);
32
+ console.error('[daemon-checker] Attempting to start daemon...');
33
+ try {
34
+ // Start daemon via CLI command using execFile (safer than exec)
35
+ // Find metalink command in PATH
36
+ await execFileAsync('metalink', ['daemon', 'start'], {
37
+ timeout: 5000, // 5-second timeout for start command
38
+ });
39
+ // Wait for daemon to be ready (up to 10 seconds)
40
+ for (let i = 0; i < 20; i++) {
41
+ await new Promise(resolve => setTimeout(resolve, 500));
42
+ if (await isDaemonRunning(port)) {
43
+ console.error('[daemon-checker] Daemon started successfully');
44
+ return true;
45
+ }
46
+ }
47
+ console.error('[daemon-checker] Daemon start timeout after 10 seconds');
48
+ return false;
49
+ }
50
+ catch (error) {
51
+ console.error('[daemon-checker] Failed to start daemon:', error instanceof Error ? error.message : String(error));
52
+ return false;
53
+ }
54
+ }
55
+ /**
56
+ * Get the configured port from environment or default
57
+ * @returns Port number for the daemon
58
+ */
59
+ export function getConfiguredPortForStdio() {
60
+ const envPort = process.env.METALINK_PORT;
61
+ if (envPort) {
62
+ const port = parseInt(envPort, 10);
63
+ if (!isNaN(port) && port > 0 && port < 65536) {
64
+ return port;
65
+ }
66
+ }
67
+ return 6655; // Default production port
68
+ }
69
+ //# sourceMappingURL=daemon-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-checker.js","sourceRoot":"","sources":["../../src/utils/daemon-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe,IAAI;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,SAAS,EAAE;YAC9D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,mBAAmB;SACvD,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe,IAAI;IAC3D,2BAA2B;IAC3B,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,IAAI,CAAC,CAAC;IACtE,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAEhE,IAAI,CAAC;QACH,gEAAgE;QAChE,gCAAgC;QAChC,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;YACnD,OAAO,EAAE,IAAI,EAAE,qCAAqC;SACrD,CAAC,CAAC;QAEH,iDAAiD;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAEvD,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClH,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,0BAA0B;AACzC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Daemon Endpoint Helper
3
+ * Resolves the daemon HTTP endpoint from environment variables
4
+ */
5
+ export declare function getDaemonEndpoint(): string;
6
+ export declare function getDaemonUrl(path: string): string;
7
+ //# sourceMappingURL=daemon-endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-endpoint.d.ts","sourceRoot":"","sources":["../../src/utils/daemon-endpoint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Daemon Endpoint Helper
3
+ * Resolves the daemon HTTP endpoint from environment variables
4
+ */
5
+ export function getDaemonEndpoint() {
6
+ // Priority: METALINK_PORT env var > default 6655 (production)
7
+ const port = process.env.METALINK_PORT || '6655';
8
+ return `http://localhost:${port}`;
9
+ }
10
+ export function getDaemonUrl(path) {
11
+ return `${getDaemonEndpoint()}${path}`;
12
+ }
13
+ //# sourceMappingURL=daemon-endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-endpoint.js","sourceRoot":"","sources":["../../src/utils/daemon-endpoint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,UAAU,iBAAiB;IAC/B,8DAA8D;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,CAAC;IACjD,OAAO,oBAAoB,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,GAAG,iBAAiB,EAAE,GAAG,IAAI,EAAE,CAAC;AACzC,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Get the configured daemon port from environment or config file.
3
+ * Fails fast with clear error message if no configuration found.
4
+ *
5
+ * Priority order:
6
+ * 1. METALINK_PORT environment variable (explicit override)
7
+ * 2. config.daemon.port from metalink.config.yaml
8
+ * 3. NO FALLBACK - throws error
9
+ *
10
+ * @throws {Error} If no port configured or config cannot be loaded
11
+ * @returns {number} The configured port number
12
+ */
13
+ export declare function getConfiguredPort(): number;
14
+ /**
15
+ * LaunchAgent service name
16
+ */
17
+ export declare const LAUNCHD_SERVICE_NAME = "metalink";
18
+ /**
19
+ * Check if daemon is managed by LaunchAgent
20
+ * @returns {boolean} True if LaunchAgent is loaded
21
+ */
22
+ export declare function isLaunchAgentLoaded(): boolean;
23
+ /**
24
+ * Get LaunchAgent plist path
25
+ * @returns {string} Full path to plist file
26
+ */
27
+ export declare function getLaunchAgentPlistPath(): string;
28
+ /**
29
+ * Load (start) the LaunchAgent
30
+ * @returns {boolean} True if successful
31
+ */
32
+ export declare function launchctlLoad(): boolean;
33
+ /**
34
+ * Unload (stop) the LaunchAgent
35
+ * @returns {boolean} True if successful
36
+ */
37
+ export declare function launchctlUnload(): boolean;
38
+ /**
39
+ * Get launchd-managed daemon PID
40
+ * @returns {number | null} PID if running, null otherwise
41
+ */
42
+ export declare function getLaunchdPid(): number | null;
43
+ //# sourceMappingURL=get-configured-port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-configured-port.d.ts","sourceRoot":"","sources":["../../src/utils/get-configured-port.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAkD1C;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAU7C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAWvC;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAWzC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAiB7C"}
@@ -0,0 +1,141 @@
1
+ import { ConfigLoader } from '@metalink/core';
2
+ import { execSync } from 'child_process';
3
+ import * as os from 'os';
4
+ import * as path from 'path';
5
+ /**
6
+ * Get the configured daemon port from environment or config file.
7
+ * Fails fast with clear error message if no configuration found.
8
+ *
9
+ * Priority order:
10
+ * 1. METALINK_PORT environment variable (explicit override)
11
+ * 2. config.daemon.port from metalink.config.yaml
12
+ * 3. NO FALLBACK - throws error
13
+ *
14
+ * @throws {Error} If no port configured or config cannot be loaded
15
+ * @returns {number} The configured port number
16
+ */
17
+ export function getConfiguredPort() {
18
+ // 1. Check env var first (explicit override)
19
+ if (process.env.METALINK_PORT) {
20
+ const envPort = parseInt(process.env.METALINK_PORT, 10);
21
+ if (isNaN(envPort) || envPort <= 0 || envPort > 65535) {
22
+ throw new Error(`Invalid METALINK_PORT env var: ${process.env.METALINK_PORT}\n\n` +
23
+ 'Port must be a positive integer between 1-65535.');
24
+ }
25
+ return envPort;
26
+ }
27
+ // 2. Read from config file
28
+ try {
29
+ const loader = new ConfigLoader();
30
+ const config = loader.loadSync();
31
+ if (config.daemon?.port) {
32
+ const port = config.daemon.port;
33
+ if (typeof port !== 'number' || port <= 0 || port > 65535) {
34
+ throw new Error(`Invalid port in config: ${port}\n\n` +
35
+ 'Port must be a positive integer between 1-65535.');
36
+ }
37
+ return port;
38
+ }
39
+ // Config loaded but no port configured - fail fast
40
+ throw new Error('No port configured in metalink.config.yaml.\n\n' +
41
+ 'Set daemon.port in config or use METALINK_PORT env var:\n' +
42
+ ' export METALINK_PORT=6655\n\n' +
43
+ 'Example config:\n' +
44
+ ' daemon:\n' +
45
+ ' port: 6655');
46
+ }
47
+ catch (error) {
48
+ // Config load failed - fail fast
49
+ if (error instanceof Error && error.message.includes('No port configured')) {
50
+ throw error; // Re-throw our specific error
51
+ }
52
+ throw new Error(`Cannot load metalink.config.yaml: ${error instanceof Error ? error.message : String(error)}\n\n` +
53
+ 'Fix the config file or set METALINK_PORT env var:\n' +
54
+ ' export METALINK_PORT=6655');
55
+ }
56
+ }
57
+ /**
58
+ * LaunchAgent service name
59
+ */
60
+ export const LAUNCHD_SERVICE_NAME = 'metalink';
61
+ /**
62
+ * Check if daemon is managed by LaunchAgent
63
+ * @returns {boolean} True if LaunchAgent is loaded
64
+ */
65
+ export function isLaunchAgentLoaded() {
66
+ try {
67
+ const result = execSync(`launchctl list | grep "^-\\|^[0-9]" | grep "${LAUNCHD_SERVICE_NAME}$"`, {
68
+ encoding: 'utf-8',
69
+ stdio: ['pipe', 'pipe', 'ignore']
70
+ });
71
+ return !!(result && result.trim());
72
+ }
73
+ catch {
74
+ return false; // grep returns non-zero if not found
75
+ }
76
+ }
77
+ /**
78
+ * Get LaunchAgent plist path
79
+ * @returns {string} Full path to plist file
80
+ */
81
+ export function getLaunchAgentPlistPath() {
82
+ return path.join(os.homedir(), 'Library/LaunchAgents/metalink.plist');
83
+ }
84
+ /**
85
+ * Load (start) the LaunchAgent
86
+ * @returns {boolean} True if successful
87
+ */
88
+ export function launchctlLoad() {
89
+ try {
90
+ const plistPath = getLaunchAgentPlistPath();
91
+ execSync(`launchctl load "${plistPath}"`, {
92
+ encoding: 'utf-8',
93
+ stdio: 'pipe'
94
+ });
95
+ return true;
96
+ }
97
+ catch {
98
+ return false;
99
+ }
100
+ }
101
+ /**
102
+ * Unload (stop) the LaunchAgent
103
+ * @returns {boolean} True if successful
104
+ */
105
+ export function launchctlUnload() {
106
+ try {
107
+ const plistPath = getLaunchAgentPlistPath();
108
+ execSync(`launchctl unload "${plistPath}"`, {
109
+ encoding: 'utf-8',
110
+ stdio: 'pipe'
111
+ });
112
+ return true;
113
+ }
114
+ catch {
115
+ return false;
116
+ }
117
+ }
118
+ /**
119
+ * Get launchd-managed daemon PID
120
+ * @returns {number | null} PID if running, null otherwise
121
+ */
122
+ export function getLaunchdPid() {
123
+ try {
124
+ const result = execSync(`launchctl list | grep "${LAUNCHD_SERVICE_NAME}$"`, {
125
+ encoding: 'utf-8',
126
+ stdio: ['pipe', 'pipe', 'ignore']
127
+ });
128
+ if (result && result.trim()) {
129
+ // Format: PID\tStatus\tLabel
130
+ const pid = result.trim().split(/\s+/)[0];
131
+ if (pid && pid !== '-' && !isNaN(parseInt(pid, 10))) {
132
+ return parseInt(pid, 10);
133
+ }
134
+ }
135
+ return null;
136
+ }
137
+ catch {
138
+ return null;
139
+ }
140
+ }
141
+ //# sourceMappingURL=get-configured-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-configured-port.js","sourceRoot":"","sources":["../../src/utils/get-configured-port.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * StdioBridge handles bidirectional communication between stdin/stdout and HTTP daemon
3
+ * Implements MCP protocol over stdio transport
4
+ */
5
+ export declare class StdioBridge {
6
+ private currentSessionId;
7
+ private sessionInitialized;
8
+ private daemonUrl;
9
+ private debug;
10
+ constructor(port?: number);
11
+ /**
12
+ * Start the stdio bridge, reading from stdin and writing to stdout
13
+ */
14
+ start(): Promise<void>;
15
+ /**
16
+ * Process a single line of input from stdin
17
+ * @param line Line from stdin (should be JSON-RPC message)
18
+ */
19
+ private processLine;
20
+ /**
21
+ * Forward a JSON-RPC request to the HTTP daemon
22
+ * @param request JSON-RPC request object
23
+ */
24
+ private forwardToHttpDaemon;
25
+ /**
26
+ * Write a JSON-RPC response to stdout
27
+ * @param data JSON-RPC response object
28
+ */
29
+ private writeToStdout;
30
+ /**
31
+ * Write a JSON-RPC error to stdout
32
+ * @param id Request ID (null for parse errors)
33
+ * @param code Error code
34
+ * @param message Error message
35
+ */
36
+ private writeError;
37
+ /**
38
+ * Log diagnostic message to stderr (never stdout)
39
+ * @param args Arguments to log
40
+ */
41
+ private log;
42
+ /**
43
+ * Log error message to stderr (always logged)
44
+ * @param args Arguments to log
45
+ */
46
+ private logError;
47
+ }
48
+ //# sourceMappingURL=stdio-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-bridge.d.ts","sourceRoot":"","sources":["../../src/utils/stdio-bridge.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAU;gBAEX,IAAI,GAAE,MAAa;IAK/B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB5B;;;OAGG;YACW,WAAW;IA0CzB;;;OAGG;YACW,mBAAmB;IAyEjC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAKrB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAYlB;;;OAGG;IACH,OAAO,CAAC,GAAG;IAMX;;;OAGG;IACH,OAAO,CAAC,QAAQ;CAGjB"}