@nimrobo/mcporter-remote 0.1.0

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 (741) hide show
  1. package/.claude/settings.local.json +7 -0
  2. package/.gitattributes +2 -0
  3. package/.github/workflows/ci.yml +26 -0
  4. package/AGENTS.md +109 -0
  5. package/CHANGELOG.md +361 -0
  6. package/LICENSE +21 -0
  7. package/README.md +449 -0
  8. package/bin/git +180 -0
  9. package/biome.json +43 -0
  10. package/config/mcporter.json +134 -0
  11. package/dist/cli/adhoc-server.d.ts +21 -0
  12. package/dist/cli/adhoc-server.d.ts.map +1 -0
  13. package/dist/cli/adhoc-server.js +228 -0
  14. package/dist/cli/adhoc-server.js.map +1 -0
  15. package/dist/cli/auth-command.d.ts +6 -0
  16. package/dist/cli/auth-command.d.ts.map +1 -0
  17. package/dist/cli/auth-command.js +257 -0
  18. package/dist/cli/auth-command.js.map +1 -0
  19. package/dist/cli/call-argument-expression.d.ts +5 -0
  20. package/dist/cli/call-argument-expression.d.ts.map +1 -0
  21. package/dist/cli/call-argument-expression.js +57 -0
  22. package/dist/cli/call-argument-expression.js.map +1 -0
  23. package/dist/cli/call-argument-values.d.ts +10 -0
  24. package/dist/cli/call-argument-values.d.ts.map +1 -0
  25. package/dist/cli/call-argument-values.js +83 -0
  26. package/dist/cli/call-argument-values.js.map +1 -0
  27. package/dist/cli/call-arguments.d.ts +17 -0
  28. package/dist/cli/call-arguments.d.ts.map +1 -0
  29. package/dist/cli/call-arguments.js +183 -0
  30. package/dist/cli/call-arguments.js.map +1 -0
  31. package/dist/cli/call-command.d.ts +5 -0
  32. package/dist/cli/call-command.d.ts.map +1 -0
  33. package/dist/cli/call-command.js +371 -0
  34. package/dist/cli/call-command.js.map +1 -0
  35. package/dist/cli/call-expression-parser.d.ts +9 -0
  36. package/dist/cli/call-expression-parser.d.ts.map +1 -0
  37. package/dist/cli/call-expression-parser.js +177 -0
  38. package/dist/cli/call-expression-parser.js.map +1 -0
  39. package/dist/cli/cli-factory.d.ts +16 -0
  40. package/dist/cli/cli-factory.d.ts.map +1 -0
  41. package/dist/cli/cli-factory.js +37 -0
  42. package/dist/cli/cli-factory.js.map +1 -0
  43. package/dist/cli/command-inference.d.ts +12 -0
  44. package/dist/cli/command-inference.d.ts.map +1 -0
  45. package/dist/cli/command-inference.js +75 -0
  46. package/dist/cli/command-inference.js.map +1 -0
  47. package/dist/cli/config/add.d.ts +23 -0
  48. package/dist/cli/config/add.d.ts.map +1 -0
  49. package/dist/cli/config/add.js +267 -0
  50. package/dist/cli/config/add.js.map +1 -0
  51. package/dist/cli/config/auth.d.ts +4 -0
  52. package/dist/cli/config/auth.d.ts.map +1 -0
  53. package/dist/cli/config/auth.js +21 -0
  54. package/dist/cli/config/auth.js.map +1 -0
  55. package/dist/cli/config/doctor.d.ts +3 -0
  56. package/dist/cli/config/doctor.d.ts.map +1 -0
  57. package/dist/cli/config/doctor.js +26 -0
  58. package/dist/cli/config/doctor.js.map +1 -0
  59. package/dist/cli/config/get.d.ts +3 -0
  60. package/dist/cli/config/get.d.ts.map +1 -0
  61. package/dist/cli/config/get.js +45 -0
  62. package/dist/cli/config/get.js.map +1 -0
  63. package/dist/cli/config/help.d.ts +18 -0
  64. package/dist/cli/config/help.d.ts.map +1 -0
  65. package/dist/cli/config/help.js +193 -0
  66. package/dist/cli/config/help.js.map +1 -0
  67. package/dist/cli/config/import.d.ts +9 -0
  68. package/dist/cli/config/import.d.ts.map +1 -0
  69. package/dist/cli/config/import.js +88 -0
  70. package/dist/cli/config/import.js.map +1 -0
  71. package/dist/cli/config/index.d.ts +2 -0
  72. package/dist/cli/config/index.d.ts.map +1 -0
  73. package/dist/cli/config/index.js +2 -0
  74. package/dist/cli/config/index.js.map +1 -0
  75. package/dist/cli/config/list.d.ts +7 -0
  76. package/dist/cli/config/list.d.ts.map +1 -0
  77. package/dist/cli/config/list.js +71 -0
  78. package/dist/cli/config/list.js.map +1 -0
  79. package/dist/cli/config/remove.d.ts +3 -0
  80. package/dist/cli/config/remove.d.ts.map +1 -0
  81. package/dist/cli/config/remove.js +19 -0
  82. package/dist/cli/config/remove.js.map +1 -0
  83. package/dist/cli/config/render.d.ts +26 -0
  84. package/dist/cli/config/render.d.ts.map +1 -0
  85. package/dist/cli/config/render.js +99 -0
  86. package/dist/cli/config/render.js.map +1 -0
  87. package/dist/cli/config/shared.d.ts +21 -0
  88. package/dist/cli/config/shared.d.ts.map +1 -0
  89. package/dist/cli/config/shared.js +130 -0
  90. package/dist/cli/config/shared.js.map +1 -0
  91. package/dist/cli/config/types.d.ts +7 -0
  92. package/dist/cli/config/types.d.ts.map +1 -0
  93. package/dist/cli/config/types.js +2 -0
  94. package/dist/cli/config/types.js.map +1 -0
  95. package/dist/cli/config-command.d.ts +7 -0
  96. package/dist/cli/config-command.d.ts.map +1 -0
  97. package/dist/cli/config-command.js +67 -0
  98. package/dist/cli/config-command.js.map +1 -0
  99. package/dist/cli/daemon-command.d.ts +8 -0
  100. package/dist/cli/daemon-command.d.ts.map +1 -0
  101. package/dist/cli/daemon-command.js +219 -0
  102. package/dist/cli/daemon-command.js.map +1 -0
  103. package/dist/cli/emit-ts-command.d.ts +31 -0
  104. package/dist/cli/emit-ts-command.d.ts.map +1 -0
  105. package/dist/cli/emit-ts-command.js +217 -0
  106. package/dist/cli/emit-ts-command.js.map +1 -0
  107. package/dist/cli/emit-ts-templates.d.ts +23 -0
  108. package/dist/cli/emit-ts-templates.d.ts.map +1 -0
  109. package/dist/cli/emit-ts-templates.js +130 -0
  110. package/dist/cli/emit-ts-templates.js.map +1 -0
  111. package/dist/cli/ephemeral-flags.d.ts +7 -0
  112. package/dist/cli/ephemeral-flags.d.ts.map +1 -0
  113. package/dist/cli/ephemeral-flags.js +108 -0
  114. package/dist/cli/ephemeral-flags.js.map +1 -0
  115. package/dist/cli/ephemeral-target.d.ts +16 -0
  116. package/dist/cli/ephemeral-target.d.ts.map +1 -0
  117. package/dist/cli/ephemeral-target.js +105 -0
  118. package/dist/cli/ephemeral-target.js.map +1 -0
  119. package/dist/cli/errors.d.ts +4 -0
  120. package/dist/cli/errors.d.ts.map +1 -0
  121. package/dist/cli/errors.js +7 -0
  122. package/dist/cli/errors.js.map +1 -0
  123. package/dist/cli/flag-utils.d.ts +4 -0
  124. package/dist/cli/flag-utils.d.ts.map +1 -0
  125. package/dist/cli/flag-utils.js +27 -0
  126. package/dist/cli/flag-utils.js.map +1 -0
  127. package/dist/cli/generate/artifacts.d.ts +15 -0
  128. package/dist/cli/generate/artifacts.d.ts.map +1 -0
  129. package/dist/cli/generate/artifacts.js +247 -0
  130. package/dist/cli/generate/artifacts.js.map +1 -0
  131. package/dist/cli/generate/definition.d.ts +22 -0
  132. package/dist/cli/generate/definition.d.ts.map +1 -0
  133. package/dist/cli/generate/definition.js +265 -0
  134. package/dist/cli/generate/definition.js.map +1 -0
  135. package/dist/cli/generate/flag-parser.d.ts +11 -0
  136. package/dist/cli/generate/flag-parser.d.ts.map +1 -0
  137. package/dist/cli/generate/flag-parser.js +41 -0
  138. package/dist/cli/generate/flag-parser.js.map +1 -0
  139. package/dist/cli/generate/flags.d.ts +20 -0
  140. package/dist/cli/generate/flags.d.ts.map +1 -0
  141. package/dist/cli/generate/flags.js +220 -0
  142. package/dist/cli/generate/flags.js.map +1 -0
  143. package/dist/cli/generate/fs-helpers.d.ts +3 -0
  144. package/dist/cli/generate/fs-helpers.d.ts.map +1 -0
  145. package/dist/cli/generate/fs-helpers.js +34 -0
  146. package/dist/cli/generate/fs-helpers.js.map +1 -0
  147. package/dist/cli/generate/name-utils.d.ts +5 -0
  148. package/dist/cli/generate/name-utils.d.ts.map +1 -0
  149. package/dist/cli/generate/name-utils.js +170 -0
  150. package/dist/cli/generate/name-utils.js.map +1 -0
  151. package/dist/cli/generate/output.d.ts +5 -0
  152. package/dist/cli/generate/output.d.ts.map +1 -0
  153. package/dist/cli/generate/output.js +24 -0
  154. package/dist/cli/generate/output.js.map +1 -0
  155. package/dist/cli/generate/runtime.d.ts +3 -0
  156. package/dist/cli/generate/runtime.d.ts.map +1 -0
  157. package/dist/cli/generate/runtime.js +34 -0
  158. package/dist/cli/generate/runtime.js.map +1 -0
  159. package/dist/cli/generate/server-utils.d.ts +3 -0
  160. package/dist/cli/generate/server-utils.d.ts.map +1 -0
  161. package/dist/cli/generate/server-utils.js +33 -0
  162. package/dist/cli/generate/server-utils.js.map +1 -0
  163. package/dist/cli/generate/template-data.d.ts +25 -0
  164. package/dist/cli/generate/template-data.d.ts.map +1 -0
  165. package/dist/cli/generate/template-data.js +90 -0
  166. package/dist/cli/generate/template-data.js.map +1 -0
  167. package/dist/cli/generate/template-help.d.ts +2 -0
  168. package/dist/cli/generate/template-help.d.ts.map +1 -0
  169. package/dist/cli/generate/template-help.js +113 -0
  170. package/dist/cli/generate/template-help.js.map +1 -0
  171. package/dist/cli/generate/template.d.ts +30 -0
  172. package/dist/cli/generate/template.d.ts.map +1 -0
  173. package/dist/cli/generate/template.js +366 -0
  174. package/dist/cli/generate/template.js.map +1 -0
  175. package/dist/cli/generate/tools.d.ts +46 -0
  176. package/dist/cli/generate/tools.d.ts.map +1 -0
  177. package/dist/cli/generate/tools.js +304 -0
  178. package/dist/cli/generate/tools.js.map +1 -0
  179. package/dist/cli/generate/types.d.ts +5 -0
  180. package/dist/cli/generate/types.d.ts.map +1 -0
  181. package/dist/cli/generate/types.js +2 -0
  182. package/dist/cli/generate/types.js.map +1 -0
  183. package/dist/cli/generate-cli-runner.d.ts +3 -0
  184. package/dist/cli/generate-cli-runner.d.ts.map +1 -0
  185. package/dist/cli/generate-cli-runner.js +72 -0
  186. package/dist/cli/generate-cli-runner.js.map +1 -0
  187. package/dist/cli/help-output.d.ts +6 -0
  188. package/dist/cli/help-output.d.ts.map +1 -0
  189. package/dist/cli/help-output.js +186 -0
  190. package/dist/cli/help-output.js.map +1 -0
  191. package/dist/cli/http-utils.d.ts +9 -0
  192. package/dist/cli/http-utils.d.ts.map +1 -0
  193. package/dist/cli/http-utils.js +88 -0
  194. package/dist/cli/http-utils.js.map +1 -0
  195. package/dist/cli/identifier-helpers.d.ts +20 -0
  196. package/dist/cli/identifier-helpers.d.ts.map +1 -0
  197. package/dist/cli/identifier-helpers.js +84 -0
  198. package/dist/cli/identifier-helpers.js.map +1 -0
  199. package/dist/cli/image-output.d.ts +3 -0
  200. package/dist/cli/image-output.d.ts.map +1 -0
  201. package/dist/cli/image-output.js +57 -0
  202. package/dist/cli/image-output.js.map +1 -0
  203. package/dist/cli/inspect-cli-command.d.ts +11 -0
  204. package/dist/cli/inspect-cli-command.d.ts.map +1 -0
  205. package/dist/cli/inspect-cli-command.js +78 -0
  206. package/dist/cli/inspect-cli-command.js.map +1 -0
  207. package/dist/cli/json-output.d.ts +23 -0
  208. package/dist/cli/json-output.d.ts.map +1 -0
  209. package/dist/cli/json-output.js +38 -0
  210. package/dist/cli/json-output.js.map +1 -0
  211. package/dist/cli/list-command.d.ts +15 -0
  212. package/dist/cli/list-command.d.ts.map +1 -0
  213. package/dist/cli/list-command.js +372 -0
  214. package/dist/cli/list-command.js.map +1 -0
  215. package/dist/cli/list-detail-helpers.d.ts +41 -0
  216. package/dist/cli/list-detail-helpers.d.ts.map +1 -0
  217. package/dist/cli/list-detail-helpers.js +99 -0
  218. package/dist/cli/list-detail-helpers.js.map +1 -0
  219. package/dist/cli/list-doc-comments.d.ts +6 -0
  220. package/dist/cli/list-doc-comments.d.ts.map +1 -0
  221. package/dist/cli/list-doc-comments.js +114 -0
  222. package/dist/cli/list-doc-comments.js.map +1 -0
  223. package/dist/cli/list-format.d.ts +38 -0
  224. package/dist/cli/list-format.d.ts.map +1 -0
  225. package/dist/cli/list-format.js +98 -0
  226. package/dist/cli/list-format.js.map +1 -0
  227. package/dist/cli/list-output.d.ts +39 -0
  228. package/dist/cli/list-output.d.ts.map +1 -0
  229. package/dist/cli/list-output.js +159 -0
  230. package/dist/cli/list-output.js.map +1 -0
  231. package/dist/cli/list-signature.d.ts +26 -0
  232. package/dist/cli/list-signature.d.ts.map +1 -0
  233. package/dist/cli/list-signature.js +176 -0
  234. package/dist/cli/list-signature.js.map +1 -0
  235. package/dist/cli/logger-context.d.ts +9 -0
  236. package/dist/cli/logger-context.d.ts.map +1 -0
  237. package/dist/cli/logger-context.js +29 -0
  238. package/dist/cli/logger-context.js.map +1 -0
  239. package/dist/cli/output-format.d.ts +11 -0
  240. package/dist/cli/output-format.d.ts.map +1 -0
  241. package/dist/cli/output-format.js +51 -0
  242. package/dist/cli/output-format.js.map +1 -0
  243. package/dist/cli/output-utils.d.ts +5 -0
  244. package/dist/cli/output-utils.d.ts.map +1 -0
  245. package/dist/cli/output-utils.js +143 -0
  246. package/dist/cli/output-utils.js.map +1 -0
  247. package/dist/cli/path-utils.d.ts +2 -0
  248. package/dist/cli/path-utils.d.ts.map +1 -0
  249. package/dist/cli/path-utils.js +12 -0
  250. package/dist/cli/path-utils.js.map +1 -0
  251. package/dist/cli/runtime-debug.d.ts +4 -0
  252. package/dist/cli/runtime-debug.d.ts.map +1 -0
  253. package/dist/cli/runtime-debug.js +134 -0
  254. package/dist/cli/runtime-debug.js.map +1 -0
  255. package/dist/cli/server-lookup.d.ts +3 -0
  256. package/dist/cli/server-lookup.d.ts.map +1 -0
  257. package/dist/cli/server-lookup.js +21 -0
  258. package/dist/cli/server-lookup.js.map +1 -0
  259. package/dist/cli/terminal.d.ts +10 -0
  260. package/dist/cli/terminal.d.ts.map +1 -0
  261. package/dist/cli/terminal.js +33 -0
  262. package/dist/cli/terminal.js.map +1 -0
  263. package/dist/cli/timeouts.d.ts +9 -0
  264. package/dist/cli/timeouts.d.ts.map +1 -0
  265. package/dist/cli/timeouts.js +55 -0
  266. package/dist/cli/timeouts.js.map +1 -0
  267. package/dist/cli/tool-cache.d.ts +9 -0
  268. package/dist/cli/tool-cache.d.ts.map +1 -0
  269. package/dist/cli/tool-cache.js +31 -0
  270. package/dist/cli/tool-cache.js.map +1 -0
  271. package/dist/cli/transport-utils.d.ts +3 -0
  272. package/dist/cli/transport-utils.d.ts.map +1 -0
  273. package/dist/cli/transport-utils.js +9 -0
  274. package/dist/cli/transport-utils.js.map +1 -0
  275. package/dist/cli-metadata.d.ts +57 -0
  276. package/dist/cli-metadata.d.ts.map +1 -0
  277. package/dist/cli-metadata.js +92 -0
  278. package/dist/cli-metadata.js.map +1 -0
  279. package/dist/cli.d.ts +10 -0
  280. package/dist/cli.d.ts.map +1 -0
  281. package/dist/cli.js +217 -0
  282. package/dist/cli.js.map +1 -0
  283. package/dist/config/imports/external.d.ts +8 -0
  284. package/dist/config/imports/external.d.ts.map +1 -0
  285. package/dist/config/imports/external.js +231 -0
  286. package/dist/config/imports/external.js.map +1 -0
  287. package/dist/config/imports/paths-utils.d.ts +3 -0
  288. package/dist/config/imports/paths-utils.d.ts.map +1 -0
  289. package/dist/config/imports/paths-utils.js +27 -0
  290. package/dist/config/imports/paths-utils.js.map +1 -0
  291. package/dist/config/imports/paths.d.ts +3 -0
  292. package/dist/config/imports/paths.d.ts.map +1 -0
  293. package/dist/config/imports/paths.js +135 -0
  294. package/dist/config/imports/paths.js.map +1 -0
  295. package/dist/config/imports/shared.d.ts +4 -0
  296. package/dist/config/imports/shared.d.ts.map +1 -0
  297. package/dist/config/imports/shared.js +25 -0
  298. package/dist/config/imports/shared.js.map +1 -0
  299. package/dist/config/path-discovery.d.ts +11 -0
  300. package/dist/config/path-discovery.d.ts.map +1 -0
  301. package/dist/config/path-discovery.js +65 -0
  302. package/dist/config/path-discovery.js.map +1 -0
  303. package/dist/config/read-config.d.ts +9 -0
  304. package/dist/config/read-config.d.ts.map +1 -0
  305. package/dist/config/read-config.js +74 -0
  306. package/dist/config/read-config.js.map +1 -0
  307. package/dist/config-imports.d.ts +7 -0
  308. package/dist/config-imports.d.ts.map +1 -0
  309. package/dist/config-imports.js +8 -0
  310. package/dist/config-imports.js.map +1 -0
  311. package/dist/config-normalize.d.ts +8 -0
  312. package/dist/config-normalize.d.ts.map +1 -0
  313. package/dist/config-normalize.js +184 -0
  314. package/dist/config-normalize.js.map +1 -0
  315. package/dist/config-schema.d.ts +164 -0
  316. package/dist/config-schema.d.ts.map +1 -0
  317. package/dist/config-schema.js +103 -0
  318. package/dist/config-schema.js.map +1 -0
  319. package/dist/config.d.ts +17 -0
  320. package/dist/config.d.ts.map +1 -0
  321. package/dist/config.js +91 -0
  322. package/dist/config.js.map +1 -0
  323. package/dist/daemon/client.d.ts +34 -0
  324. package/dist/daemon/client.d.ts.map +1 -0
  325. package/dist/daemon/client.js +291 -0
  326. package/dist/daemon/client.js.map +1 -0
  327. package/dist/daemon/config-layers.d.ts +7 -0
  328. package/dist/daemon/config-layers.d.ts.map +1 -0
  329. package/dist/daemon/config-layers.js +20 -0
  330. package/dist/daemon/config-layers.js.map +1 -0
  331. package/dist/daemon/host.d.ts +32 -0
  332. package/dist/daemon/host.d.ts.map +1 -0
  333. package/dist/daemon/host.js +345 -0
  334. package/dist/daemon/host.js.map +1 -0
  335. package/dist/daemon/launch.d.ts +10 -0
  336. package/dist/daemon/launch.d.ts.map +1 -0
  337. package/dist/daemon/launch.js +35 -0
  338. package/dist/daemon/launch.js.map +1 -0
  339. package/dist/daemon/log-context.d.ts +18 -0
  340. package/dist/daemon/log-context.d.ts.map +1 -0
  341. package/dist/daemon/log-context.js +64 -0
  342. package/dist/daemon/log-context.js.map +1 -0
  343. package/dist/daemon/paths.d.ts +5 -0
  344. package/dist/daemon/paths.d.ts.map +1 -0
  345. package/dist/daemon/paths.js +30 -0
  346. package/dist/daemon/paths.js.map +1 -0
  347. package/dist/daemon/protocol.d.ts +51 -0
  348. package/dist/daemon/protocol.d.ts.map +1 -0
  349. package/dist/daemon/protocol.js +2 -0
  350. package/dist/daemon/protocol.js.map +1 -0
  351. package/dist/daemon/request-utils.d.ts +12 -0
  352. package/dist/daemon/request-utils.d.ts.map +1 -0
  353. package/dist/daemon/request-utils.js +52 -0
  354. package/dist/daemon/request-utils.js.map +1 -0
  355. package/dist/daemon/runtime-wrapper.d.ts +9 -0
  356. package/dist/daemon/runtime-wrapper.d.ts.map +1 -0
  357. package/dist/daemon/runtime-wrapper.js +110 -0
  358. package/dist/daemon/runtime-wrapper.js.map +1 -0
  359. package/dist/env.d.ts +5 -0
  360. package/dist/env.d.ts.map +1 -0
  361. package/dist/env.js +93 -0
  362. package/dist/env.js.map +1 -0
  363. package/dist/error-classifier.d.ts +11 -0
  364. package/dist/error-classifier.d.ts.map +1 -0
  365. package/dist/error-classifier.js +141 -0
  366. package/dist/error-classifier.js.map +1 -0
  367. package/dist/fs-json.d.ts +3 -0
  368. package/dist/fs-json.d.ts.map +1 -0
  369. package/dist/fs-json.js +21 -0
  370. package/dist/fs-json.js.map +1 -0
  371. package/dist/generate-cli.d.ts +32 -0
  372. package/dist/generate-cli.d.ts.map +1 -0
  373. package/dist/generate-cli.js +155 -0
  374. package/dist/generate-cli.js.map +1 -0
  375. package/dist/index.d.ts +9 -0
  376. package/dist/index.d.ts.map +1 -0
  377. package/dist/index.js +5 -0
  378. package/dist/index.js.map +1 -0
  379. package/dist/lifecycle.d.ts +8 -0
  380. package/dist/lifecycle.d.ts.map +1 -0
  381. package/dist/lifecycle.js +106 -0
  382. package/dist/lifecycle.js.map +1 -0
  383. package/dist/logging.d.ts +19 -0
  384. package/dist/logging.d.ts.map +1 -0
  385. package/dist/logging.js +76 -0
  386. package/dist/logging.js.map +1 -0
  387. package/dist/oauth-manual.d.ts +9 -0
  388. package/dist/oauth-manual.d.ts.map +1 -0
  389. package/dist/oauth-manual.js +84 -0
  390. package/dist/oauth-manual.js.map +1 -0
  391. package/dist/oauth-persistence.d.ts +20 -0
  392. package/dist/oauth-persistence.d.ts.map +1 -0
  393. package/dist/oauth-persistence.js +254 -0
  394. package/dist/oauth-persistence.js.map +1 -0
  395. package/dist/oauth-vault.d.ts +19 -0
  396. package/dist/oauth-vault.d.ts.map +1 -0
  397. package/dist/oauth-vault.js +100 -0
  398. package/dist/oauth-vault.js.map +1 -0
  399. package/dist/oauth.d.ts +31 -0
  400. package/dist/oauth.d.ts.map +1 -0
  401. package/dist/oauth.js +414 -0
  402. package/dist/oauth.js.map +1 -0
  403. package/dist/result-utils.d.ts +22 -0
  404. package/dist/result-utils.d.ts.map +1 -0
  405. package/dist/result-utils.js +229 -0
  406. package/dist/result-utils.js.map +1 -0
  407. package/dist/runtime/errors.d.ts +2 -0
  408. package/dist/runtime/errors.d.ts.map +1 -0
  409. package/dist/runtime/errors.js +16 -0
  410. package/dist/runtime/errors.js.map +1 -0
  411. package/dist/runtime/http-transport.d.ts +15 -0
  412. package/dist/runtime/http-transport.d.ts.map +1 -0
  413. package/dist/runtime/http-transport.js +91 -0
  414. package/dist/runtime/http-transport.js.map +1 -0
  415. package/dist/runtime/manual-oauth.d.ts +8 -0
  416. package/dist/runtime/manual-oauth.d.ts.map +1 -0
  417. package/dist/runtime/manual-oauth.js +81 -0
  418. package/dist/runtime/manual-oauth.js.map +1 -0
  419. package/dist/runtime/oauth.d.ts +22 -0
  420. package/dist/runtime/oauth.d.ts.map +1 -0
  421. package/dist/runtime/oauth.js +83 -0
  422. package/dist/runtime/oauth.js.map +1 -0
  423. package/dist/runtime/transport.d.ts +24 -0
  424. package/dist/runtime/transport.d.ts.map +1 -0
  425. package/dist/runtime/transport.js +165 -0
  426. package/dist/runtime/transport.js.map +1 -0
  427. package/dist/runtime/utils.d.ts +5 -0
  428. package/dist/runtime/utils.d.ts.map +1 -0
  429. package/dist/runtime/utils.js +47 -0
  430. package/dist/runtime/utils.js.map +1 -0
  431. package/dist/runtime-header-utils.d.ts +2 -0
  432. package/dist/runtime-header-utils.d.ts.map +1 -0
  433. package/dist/runtime-header-utils.js +19 -0
  434. package/dist/runtime-header-utils.js.map +1 -0
  435. package/dist/runtime-oauth-support.d.ts +5 -0
  436. package/dist/runtime-oauth-support.d.ts.map +1 -0
  437. package/dist/runtime-oauth-support.js +21 -0
  438. package/dist/runtime-oauth-support.js.map +1 -0
  439. package/dist/runtime-process-utils.d.ts +11 -0
  440. package/dist/runtime-process-utils.d.ts.map +1 -0
  441. package/dist/runtime-process-utils.js +299 -0
  442. package/dist/runtime-process-utils.js.map +1 -0
  443. package/dist/runtime.d.ts +55 -0
  444. package/dist/runtime.d.ts.map +1 -0
  445. package/dist/runtime.js +245 -0
  446. package/dist/runtime.js.map +1 -0
  447. package/dist/schema-cache.d.ts +10 -0
  448. package/dist/schema-cache.d.ts.map +1 -0
  449. package/dist/schema-cache.js +40 -0
  450. package/dist/schema-cache.js.map +1 -0
  451. package/dist/sdk-patches.d.ts +5 -0
  452. package/dist/sdk-patches.d.ts.map +1 -0
  453. package/dist/sdk-patches.js +399 -0
  454. package/dist/sdk-patches.js.map +1 -0
  455. package/dist/server-proxy.d.ts +17 -0
  456. package/dist/server-proxy.d.ts.map +1 -0
  457. package/dist/server-proxy.js +342 -0
  458. package/dist/server-proxy.js.map +1 -0
  459. package/docs/RELEASE.md +96 -0
  460. package/docs/adhoc.md +76 -0
  461. package/docs/call-heuristic.md +31 -0
  462. package/docs/call-syntax.md +75 -0
  463. package/docs/cli-generator.md +116 -0
  464. package/docs/cli-reference.md +76 -0
  465. package/docs/config.md +208 -0
  466. package/docs/daemon.md +95 -0
  467. package/docs/emit-ts.md +98 -0
  468. package/docs/hang-debug.md +88 -0
  469. package/docs/import.md +59 -0
  470. package/docs/known-issues.md +33 -0
  471. package/docs/livetests.md +31 -0
  472. package/docs/local.md +73 -0
  473. package/docs/logging.md +67 -0
  474. package/docs/manual-testing.md +78 -0
  475. package/docs/mcp.md +44 -0
  476. package/docs/migration.md +77 -0
  477. package/docs/pnpm-mcp-migration.md +15 -0
  478. package/docs/refactor.md +76 -0
  479. package/docs/shortcuts.md +31 -0
  480. package/docs/spec.md +86 -0
  481. package/docs/subagent.md +39 -0
  482. package/docs/supabase-auth-issue.md +53 -0
  483. package/docs/tmux.md +30 -0
  484. package/docs/tool-calling.md +73 -0
  485. package/docs/windows.md +25 -0
  486. package/examples/context7-headlines.ts +72 -0
  487. package/git +3 -0
  488. package/mcporter.png +0 -0
  489. package/mcporter.schema.json +263 -0
  490. package/package.json +105 -0
  491. package/pnpm-workspace.yaml +2 -0
  492. package/runner +13 -0
  493. package/scripts/agent-send.ts +179 -0
  494. package/scripts/build-bun.ts +125 -0
  495. package/scripts/committer +53 -0
  496. package/scripts/docs-list.ts +132 -0
  497. package/scripts/generate-json-schema.ts +50 -0
  498. package/scripts/git-policy.ts +165 -0
  499. package/scripts/mcp_signoz_retry_patch.cjs +9 -0
  500. package/scripts/release.sh +86 -0
  501. package/scripts/runner.ts +1556 -0
  502. package/scripts/test-runner.js +39 -0
  503. package/src/cli/adhoc-server.ts +263 -0
  504. package/src/cli/auth-command.ts +290 -0
  505. package/src/cli/call-argument-expression.ts +61 -0
  506. package/src/cli/call-argument-values.ts +95 -0
  507. package/src/cli/call-arguments.ts +246 -0
  508. package/src/cli/call-command.ts +478 -0
  509. package/src/cli/call-expression-parser.ts +210 -0
  510. package/src/cli/cli-factory.ts +51 -0
  511. package/src/cli/command-inference.ts +99 -0
  512. package/src/cli/config/add.ts +308 -0
  513. package/src/cli/config/auth.ts +23 -0
  514. package/src/cli/config/doctor.ts +27 -0
  515. package/src/cli/config/get.ts +47 -0
  516. package/src/cli/config/help.ts +213 -0
  517. package/src/cli/config/import.ts +97 -0
  518. package/src/cli/config/index.ts +1 -0
  519. package/src/cli/config/list.ts +81 -0
  520. package/src/cli/config/remove.ts +20 -0
  521. package/src/cli/config/render.ts +119 -0
  522. package/src/cli/config/shared.ts +159 -0
  523. package/src/cli/config/types.ts +8 -0
  524. package/src/cli/config-command.ts +72 -0
  525. package/src/cli/daemon-command.ts +260 -0
  526. package/src/cli/emit-ts-command.ts +260 -0
  527. package/src/cli/emit-ts-templates.ts +161 -0
  528. package/src/cli/ephemeral-flags.ts +128 -0
  529. package/src/cli/ephemeral-target.ts +134 -0
  530. package/src/cli/errors.ts +6 -0
  531. package/src/cli/flag-utils.ts +29 -0
  532. package/src/cli/generate/artifacts.ts +308 -0
  533. package/src/cli/generate/definition.ts +325 -0
  534. package/src/cli/generate/flag-parser.ts +50 -0
  535. package/src/cli/generate/flags.ts +248 -0
  536. package/src/cli/generate/fs-helpers.ts +34 -0
  537. package/src/cli/generate/name-utils.ts +176 -0
  538. package/src/cli/generate/output.ts +27 -0
  539. package/src/cli/generate/runtime.ts +38 -0
  540. package/src/cli/generate/server-utils.ts +38 -0
  541. package/src/cli/generate/template-data.ts +126 -0
  542. package/src/cli/generate/template-help.ts +112 -0
  543. package/src/cli/generate/template.ts +407 -0
  544. package/src/cli/generate/tools.ts +354 -0
  545. package/src/cli/generate/types.ts +1 -0
  546. package/src/cli/generate-cli-runner.ts +82 -0
  547. package/src/cli/help-output.ts +207 -0
  548. package/src/cli/http-utils.ts +89 -0
  549. package/src/cli/identifier-helpers.ts +107 -0
  550. package/src/cli/image-output.ts +62 -0
  551. package/src/cli/inspect-cli-command.ts +89 -0
  552. package/src/cli/json-output.ts +60 -0
  553. package/src/cli/list-command.ts +432 -0
  554. package/src/cli/list-detail-helpers.ts +179 -0
  555. package/src/cli/list-doc-comments.ts +129 -0
  556. package/src/cli/list-format.ts +150 -0
  557. package/src/cli/list-output.ts +224 -0
  558. package/src/cli/list-signature.ts +217 -0
  559. package/src/cli/logger-context.ts +36 -0
  560. package/src/cli/output-format.ts +63 -0
  561. package/src/cli/output-utils.ts +161 -0
  562. package/src/cli/path-utils.ts +13 -0
  563. package/src/cli/runtime-debug.ts +141 -0
  564. package/src/cli/server-lookup.ts +22 -0
  565. package/src/cli/terminal.ts +41 -0
  566. package/src/cli/timeouts.ts +67 -0
  567. package/src/cli/tool-cache.ts +43 -0
  568. package/src/cli/transport-utils.ts +10 -0
  569. package/src/cli-metadata.ts +164 -0
  570. package/src/cli.ts +234 -0
  571. package/src/config/imports/external.ts +284 -0
  572. package/src/config/imports/paths-utils.ts +29 -0
  573. package/src/config/imports/paths.ts +145 -0
  574. package/src/config/imports/shared.ts +27 -0
  575. package/src/config/path-discovery.ts +79 -0
  576. package/src/config/read-config.ts +91 -0
  577. package/src/config-imports.ts +12 -0
  578. package/src/config-normalize.ts +220 -0
  579. package/src/config-schema.ts +175 -0
  580. package/src/config.ts +136 -0
  581. package/src/daemon/client.ts +350 -0
  582. package/src/daemon/config-layers.ts +23 -0
  583. package/src/daemon/host.ts +455 -0
  584. package/src/daemon/launch.ts +45 -0
  585. package/src/daemon/log-context.ts +78 -0
  586. package/src/daemon/paths.ts +35 -0
  587. package/src/daemon/protocol.ts +57 -0
  588. package/src/daemon/request-utils.ts +67 -0
  589. package/src/daemon/runtime-wrapper.ts +135 -0
  590. package/src/env.ts +107 -0
  591. package/src/error-classifier.ts +158 -0
  592. package/src/fs-json.ts +21 -0
  593. package/src/generate-cli.ts +211 -0
  594. package/src/index.ts +14 -0
  595. package/src/lifecycle.ts +138 -0
  596. package/src/logging.ts +93 -0
  597. package/src/oauth-manual.ts +103 -0
  598. package/src/oauth-persistence.ts +316 -0
  599. package/src/oauth-vault.ts +128 -0
  600. package/src/oauth.ts +494 -0
  601. package/src/result-utils.ts +278 -0
  602. package/src/runtime/errors.ts +17 -0
  603. package/src/runtime/oauth.ts +112 -0
  604. package/src/runtime/transport.ts +198 -0
  605. package/src/runtime/utils.ts +54 -0
  606. package/src/runtime-header-utils.ts +23 -0
  607. package/src/runtime-oauth-support.ts +24 -0
  608. package/src/runtime-process-utils.ts +324 -0
  609. package/src/runtime.ts +321 -0
  610. package/src/schema-cache.ts +49 -0
  611. package/src/sdk-patches.ts +498 -0
  612. package/src/server-proxy.ts +407 -0
  613. package/tests/adhoc-server.test.ts +49 -0
  614. package/tests/call-arguments.test.ts +111 -0
  615. package/tests/cli-auth-help.test.ts +43 -0
  616. package/tests/cli-auth-retry.test.ts +41 -0
  617. package/tests/cli-auth.test.ts +96 -0
  618. package/tests/cli-call-args.test.ts +69 -0
  619. package/tests/cli-call-errors.test.ts +27 -0
  620. package/tests/cli-call-execution.test.ts +279 -0
  621. package/tests/cli-call-help.test.ts +43 -0
  622. package/tests/cli-command-inference.test.ts +73 -0
  623. package/tests/cli-config-command.test.ts +371 -0
  624. package/tests/cli-config-fallback.test.ts +259 -0
  625. package/tests/cli-config-routing.test.ts +20 -0
  626. package/tests/cli-ephemeral-flags.test.ts +54 -0
  627. package/tests/cli-flag-utils.test.ts +17 -0
  628. package/tests/cli-generate-artifacts.test.ts +52 -0
  629. package/tests/cli-generate-cli.integration.test.ts +675 -0
  630. package/tests/cli-generate-runner.test.ts +156 -0
  631. package/tests/cli-global-flags.test.ts +61 -0
  632. package/tests/cli-help-shortcuts.test.ts +42 -0
  633. package/tests/cli-image-output.test.ts +65 -0
  634. package/tests/cli-inspect-command.test.ts +15 -0
  635. package/tests/cli-list-classification.test.ts +291 -0
  636. package/tests/cli-list-flags.test.ts +83 -0
  637. package/tests/cli-list-formatting.test.ts +358 -0
  638. package/tests/cli-list-help.test.ts +43 -0
  639. package/tests/cli-list-json.test.ts +55 -0
  640. package/tests/cli-list-stdio-logs.test.ts +108 -0
  641. package/tests/cli-list-verbose-e2e.test.ts +83 -0
  642. package/tests/cli-oauth-timeout-flag.test.ts +94 -0
  643. package/tests/cli-output-utils.test.ts +129 -0
  644. package/tests/cli-regenerate.test.ts +261 -0
  645. package/tests/cli-version.test.ts +24 -0
  646. package/tests/config-add-dry-run.test.ts +45 -0
  647. package/tests/config-add-flags.test.ts +61 -0
  648. package/tests/config-add-imports.test.ts +28 -0
  649. package/tests/config-add-persist.test.ts +27 -0
  650. package/tests/config-add-scope-behavior.test.ts +46 -0
  651. package/tests/config-add-scope.test.ts +101 -0
  652. package/tests/config-add-sse.test.ts +23 -0
  653. package/tests/config-command-string.test.ts +96 -0
  654. package/tests/config-doctor.test.ts +45 -0
  655. package/tests/config-get-json.test.ts +24 -0
  656. package/tests/config-import-dedupe.test.ts +27 -0
  657. package/tests/config-import-paths.test.ts +49 -0
  658. package/tests/config-import.test.ts +64 -0
  659. package/tests/config-imports-unit.test.ts +337 -0
  660. package/tests/config-imports.test.ts +417 -0
  661. package/tests/config-layered.test.ts +178 -0
  662. package/tests/config-list-text-footer.test.ts +33 -0
  663. package/tests/config-list.test.ts +62 -0
  664. package/tests/config-missing.test.ts +140 -0
  665. package/tests/config-normalize.test.ts +71 -0
  666. package/tests/config-remove.test.ts +44 -0
  667. package/tests/config-render.test.ts +61 -0
  668. package/tests/config-resolution.test.ts +94 -0
  669. package/tests/config-schema-file.test.ts +29 -0
  670. package/tests/config-shared.test.ts +41 -0
  671. package/tests/config-sources.test.ts +58 -0
  672. package/tests/daemon-cli-command.test.ts +112 -0
  673. package/tests/daemon-client-config-stale.test.ts +222 -0
  674. package/tests/daemon-client-timeout.test.ts +114 -0
  675. package/tests/daemon-client.test.ts +61 -0
  676. package/tests/daemon-host.test.ts +33 -0
  677. package/tests/daemon.integration.test.ts +175 -0
  678. package/tests/emit-ts.test.ts +125 -0
  679. package/tests/ephemeral-target.test.ts +26 -0
  680. package/tests/error-classifier.test.ts +46 -0
  681. package/tests/fixtures/ansi.ts +18 -0
  682. package/tests/fixtures/cli-list-fixtures.ts +43 -0
  683. package/tests/fixtures/config-fixture.ts +29 -0
  684. package/tests/fixtures/imports/.claude/mcp.json +8 -0
  685. package/tests/fixtures/imports/.claude/settings.json +10 -0
  686. package/tests/fixtures/imports/.claude/settings.local.json +10 -0
  687. package/tests/fixtures/imports/.codeium/windsurf/mcp_config.json +14 -0
  688. package/tests/fixtures/imports/.codex/config.toml +7 -0
  689. package/tests/fixtures/imports/.config/opencode/opencode.jsonc +10 -0
  690. package/tests/fixtures/imports/.cursor/mcp.json +14 -0
  691. package/tests/fixtures/imports/Library/Application Support/Code/User/mcp.json +11 -0
  692. package/tests/fixtures/imports/config/mcporter.json +11 -0
  693. package/tests/fixtures/imports/home/.claude/settings.json +7 -0
  694. package/tests/fixtures/imports/home/.codeium/windsurf/mcp_config.json +14 -0
  695. package/tests/fixtures/imports/home/.codex/config.toml +7 -0
  696. package/tests/fixtures/imports/home/Library/Application Support/Code/User/mcp.json +11 -0
  697. package/tests/fixtures/imports/opencode.jsonc +11 -0
  698. package/tests/fixtures/mcporter.json +64 -0
  699. package/tests/fixtures/stdio-filesystem-server.mjs +63 -0
  700. package/tests/fixtures/stdio-memory-server.mjs +58 -0
  701. package/tests/fixtures/test-helpers.ts +24 -0
  702. package/tests/fixtures/tool-fixtures.ts +35 -0
  703. package/tests/fs-json.test.ts +35 -0
  704. package/tests/generate-cli-helpers.test.ts +162 -0
  705. package/tests/generate-cli.test.ts +595 -0
  706. package/tests/generate-definition.test.ts +25 -0
  707. package/tests/generator-flag-parser.test.ts +19 -0
  708. package/tests/index-api.test.ts +136 -0
  709. package/tests/keep-alive-runtime.test.ts +152 -0
  710. package/tests/lifecycle.test.ts +29 -0
  711. package/tests/list-detail-helpers.test.ts +204 -0
  712. package/tests/list-format.test.ts +40 -0
  713. package/tests/list-inline-stdio.test.ts +71 -0
  714. package/tests/list-output.test.ts +138 -0
  715. package/tests/live/deepwiki-live.test.ts +53 -0
  716. package/tests/oauth-callback.test.ts +108 -0
  717. package/tests/oauth-open-external.test.ts +29 -0
  718. package/tests/oauth-persistence.test.ts +146 -0
  719. package/tests/oauth-session.test.ts +216 -0
  720. package/tests/result-utils.test.ts +254 -0
  721. package/tests/runtime-call-timeout.test.ts +75 -0
  722. package/tests/runtime-compose.test.ts +298 -0
  723. package/tests/runtime-error-reset.test.ts +65 -0
  724. package/tests/runtime-header-utils.test.ts +36 -0
  725. package/tests/runtime-integration.test.ts +113 -0
  726. package/tests/runtime-oauth-connect.test.ts +72 -0
  727. package/tests/runtime-oauth-detection.test.ts +72 -0
  728. package/tests/runtime-oauth-timeout.test.ts +60 -0
  729. package/tests/runtime-oauth-utils.test.ts +14 -0
  730. package/tests/runtime-process-utils.test.ts +53 -0
  731. package/tests/runtime-transport.test.ts +69 -0
  732. package/tests/runtime-utils.test.ts +31 -0
  733. package/tests/runtime.test.ts +94 -0
  734. package/tests/sdk-patches.test.ts +24 -0
  735. package/tests/server-proxy.test.ts +336 -0
  736. package/tests/stdio-servers.integration.test.ts +139 -0
  737. package/tests/tool-cache.test.ts +42 -0
  738. package/tests/version-consistency.test.ts +11 -0
  739. package/tsconfig.build.json +11 -0
  740. package/tsconfig.json +17 -0
  741. package/vitest.config.ts +18 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(find /Users/virangjhaveri/codebase-nr/mcporter-remote/node_modules -path \"*/sdk/dist/cjs/client/streamableHttp.js\" 2>/dev/null | head -3)"
5
+ ]
6
+ }
7
+ }
package/.gitattributes ADDED
@@ -0,0 +1,2 @@
1
+ * text eol=lf
2
+ *.png binary
@@ -0,0 +1,26 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ workflow_dispatch:
9
+
10
+ jobs:
11
+ build:
12
+ strategy:
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest, windows-latest]
15
+ runs-on: ${{ matrix.os }}
16
+ steps:
17
+ - uses: actions/checkout@v6
18
+ - uses: pnpm/action-setup@v4
19
+ - run: pnpm install --no-frozen-lockfile
20
+ - run: pnpm --version
21
+ - run: pnpm check
22
+ - run: pnpm build
23
+ - run: pnpm test
24
+ env:
25
+ FIRECRAWL_API_KEY: test
26
+ LINEAR_API_KEY: test
package/AGENTS.md ADDED
@@ -0,0 +1,109 @@
1
+ <shared>
2
+ # AGENTS.md
3
+
4
+ Shared guardrails distilled from the various `~/Projects/*/AGENTS.md` files (state as of **November 15, 2025**). This document highlights the rules that show up again and again; still read the repo-local instructions before making changes.
5
+
6
+ Usage: In repo copies, the shared content lives inside `<shared>…</shared>` and the tool list inside `<tools>…</tools>`. Keep those tagged blocks identical across repos; anything outside them is repo-local and can be customized freely.
7
+
8
+ ## Codex Global Instructions
9
+ - Keep the system-wide Codex guidance at `~/.codex/AGENTS.md` (the Codex home; override via `CODEX_HOME` if needed) so every task inherits these rules by default.
10
+
11
+ ## General Guardrails
12
+
13
+ ### Intake & Scoping
14
+ - Open the local agent instructions plus any `docs:list` summaries at the start of every session. Re-run those helpers whenever you suspect the docs may have changed.
15
+ - Review any referenced tmux panes, CI logs, or failing command transcripts so you understand the most recent context before writing code.
16
+
17
+ ### Tooling & Command Wrappers
18
+ - Use the command wrappers provided by the workspace (`./runner …`, `scripts/committer`, `pnpm mcp:*`, etc.). Skip them only for trivial read-only shell commands if that’s explicitly allowed.
19
+ - Stick to the package manager and runtime mandated by the repo (pnpm-only, bun-only, swift-only, go-only, etc.). Never swap in alternatives without approval.
20
+ - When editing shared guardrail scripts (runners, committer helpers, browser tools, etc.), mirror the same change back into the `agent-scripts` folder so the canonical copy stays current.
21
+ - Ask the user before adding dependencies, changing build tooling, or altering project-wide configuration.
22
+ - When discussing dependencies, always provide a GitHub URL.
23
+ - Keep the project’s `AGENTS.md` `<tools></tools>` block in sync with the full tool list from `TOOLS.md` so downstream repos get the latest tool descriptions.
24
+
25
+ ### tmux & Long Tasks
26
+ - Run any command that could hang (tests, servers, log streams, browser automation) inside tmux using the repository’s preferred entry point.
27
+ - Do not wrap tmux commands in infinite polling loops. Run the job, sleep briefly (≤30 s), capture output, and surface status at least once per minute.
28
+ - Document which sessions you create and clean them up when they are no longer needed unless the workflow explicitly calls for persistent watchers.
29
+
30
+ ### Build, Test & Verification
31
+ - Before handing off work, run the full “green gate” for that repo (lint, type-check, tests, doc scripts, etc.). Follow the same command set humans run—no ad-hoc shortcuts.
32
+ - Leave existing watchers running unless the owner tells you to stop them; keep their tmux panes healthy if you started them.
33
+ - Treat every bug fix as a chance to add or extend automated tests that prove the behavior.
34
+ - When someone asks to “fix CI,” use the GitHub CLI (`gh`) to inspect, rerun, and unblock failing workflows on GitHub until they are green.
35
+
36
+ ### Code Quality & Naming
37
+ - Refactor in place. Never create duplicate files with suffixes such as “V2”, “New”, or “Fixed”; update the canonical file and remove obsolete paths entirely.
38
+ - Favor strict typing: avoid `any`, untyped dictionaries, or generic type erasure unless absolutely required. Prefer concrete structs/enums and mark public concurrency surfaces appropriately.
39
+ - Keep files at a manageable size. When a file grows unwieldy, extract helpers or new modules instead of letting it bloat.
40
+ - Match the repo’s established style (commit conventions, formatting tools, component patterns, etc.) by studying existing code before introducing new patterns.
41
+
42
+ ### Git, Commits & Releases
43
+ - Invoke git through the provided wrappers, especially for status, diffs, and commits. Only commit or push when the user asks you to do so.
44
+ - To resolve a rebase, `git add`/`git commit` is allowed.
45
+ - Follow the documented release or deployment checklists instead of inventing new steps.
46
+ - Do not delete or rename unfamiliar files without double-checking with the user or the repo instructions.
47
+
48
+ ### Documentation & Knowledge Capture
49
+ - Update existing docs whenever your change affects them, including front-matter metadata if the repo’s `docs:list` tooling depends on it.
50
+ - Whenever doing a large refactor, track work in `docs/refactor/<title><date>.md`, update it as you go, and delete it when the work is finished.
51
+ - Only create new documentation when the user or local instructions explicitly request it; otherwise, edit the canonical file in place.
52
+ - When you uncover a reproducible tooling or CI issue, record the repro steps and workaround in the designated troubleshooting doc for that repo.
53
+ - Routine test additions don’t require changelog entries; reserve changelog lines for user-visible behavior changes.
54
+
55
+ ### Troubleshooting & Observability
56
+ - Design workflows so they are observable without constant babysitting: use tmux panes, CI logs, log-tail scripts, MCP/browser helpers, and similar tooling to surface progress.
57
+ - If you get stuck, consult external references (web search, official docs, Stack Overflow, etc.) before escalating, and record any insights you find for the next agent.
58
+ - Keep any polling or progress loops bounded to protect hang detectors and make it obvious when something stalls.
59
+
60
+ ### Stack-Specific Reminders
61
+ - Start background builders or watchers using the automation provided by the repo (daemon scripts, tmux-based dev servers, etc.) instead of running binaries directly.
62
+ - Use the official CLI wrappers for browser automation, screenshotting, or MCP interactions rather than crafting new ad-hoc scripts.
63
+ - Respect each workspace’s testing cadence (e.g., always running the main `check` script after edits, never launching forbidden dev servers, keeping replies concise when requested).
64
+
65
+ ## Swift Projects
66
+ - Kick off the workspace’s build daemon or helper before running any Swift CLI or app; rely on the provided wrapper to rebuild targets automatically instead of launching stale binaries.
67
+ - Validate changes with `swift build` and the relevant filtered test suites, documenting any compiler crashes and rewriting problematic constructs immediately so the suite can keep running.
68
+ - Keep concurrency annotations (`Sendable`, actors, structured tasks) accurate and prefer static imports over dynamic runtime lookups that break ahead-of-time compilation.
69
+ - Avoid editing derived artifacts or generated bundles directly—adjust the sources and let the build pipeline regenerate outputs.
70
+ - When encountering toolchain instability, capture the repro steps in the designated troubleshooting doc and note any required cache cleans (DerivedData, SwiftPM caches) you perform.
71
+
72
+ ## TypeScript Projects
73
+ - Use the package manager declared by the workspace (often `pnpm` or `bun`) and run every command through the same wrapper humans use; do not substitute `npm`/`yarn` or bypass the runner.
74
+ - Start each session by running the repo’s doc-index script (commonly a `docs:list` helper), then keep required watchers (`lint:watch`, `test:watch`, dev servers) running inside tmux unless told otherwise.
75
+ - Treat `lint`, `typecheck`, and `test` commands (e.g., `pnpm run check`, `bun run typecheck`) as mandatory gates before handing off work; surface any failures with their exact command output.
76
+ - Maintain strict typing—avoid `any`, prefer utility helpers already provided by the repo, and keep shared guardrail scripts (runner, committer, browser helpers) consistent by syncing back to `agent-scripts` when they change.
77
+ - When editing UI code, follow the established component patterns (Tailwind via helper utilities, TanStack Query for data flow, etc.) and keep files under the preferred size limit by extracting helpers proactively.
78
+
79
+ Keep this master file up to date as you notice new rules that recur across repositories, and reflect those updates back into every workspace’s local guardrail documents.
80
+
81
+ </shared>
82
+
83
+ <tools>
84
+ # TOOLS
85
+
86
+ Edit guidance: keep the actual tool list inside this `<tools></tools>` block so downstream AGENTS syncs can copy it verbatim.
87
+
88
+ - `runner`: Bash shim that routes every command through Bun guardrails (timeouts, git policy, safe deletes).
89
+ - `git` / `bin/git`: Git shim that forces git through the guardrails; use `./git --help` to inspect.
90
+ - `scripts/committer`: Stages the files you list and creates the commit safely.
91
+ - `scripts/docs-list.ts`: Walks `docs/`, enforces front-matter, prints summaries; run `tsx scripts/docs-list.ts`.
92
+ - `bin/browser-tools`: Compiled Chrome helper for remote control/screenshot/eval—use the binary (`bin/browser-tools --help`). Source lives in `scripts/browser-tools.ts`; edit there before rebuilding.
93
+ - `scripts/runner.ts`: Bun implementation backing `runner`; run `bun scripts/runner.ts --help`.
94
+ - `bin/sleep`: Sleep shim that enforces the 30s ceiling; run `bin/sleep --help`.
95
+ - `xcp`: Xcode project/workspace helper (list/set targets, add/move/delete/rename groups & files, get/set build settings, manage image/data/color assets); run `xcp --help`.
96
+ - `xcodegen`: Generate Xcode projects from YAML specs; run `xcodegen --help`.
97
+ - `lldb`: To debug native apps, run `lldb` inside tmux and attach to the running app to inspect state interactively.
98
+ - `oracle`: Ask a smart AI to review code and find bugs; you must call `npx -y @steipete/oracle --help` first.
99
+ - `mcporter`: MCP launcher for any registered MCP server; run `npx mcporter`.
100
+ - `iterm`: Full TTY terminal via MCP; run `npx mcporter iterm`.
101
+ - `firecrawl`: MCP-powered site fetcher to Markdown; run `npx mcporter firecrawl`.
102
+ - `XcodeBuildMCP`: MCP wrapper around Xcode tooling; run `npx mcporter XcodeBuildMCP`.
103
+ - `gh`: GitHub CLI for PRs, CI logs, releases, repo queries; run `gh help`.
104
+ </tools>
105
+
106
+ # Repo Notes
107
+
108
+ - Live Deepwiki tests are opt-in; run with `MCP_LIVE_TESTS=1 ./runner pnpm exec vitest run tests/live/deepwiki-live.test.ts` when you need real endpoint coverage.
109
+ - The skipped OAuth-promotion case in `tests/runtime-transport.test.ts` can be validated by temporarily unskipping it (Vitest does not support `--runInBand`). Remove any temporary helper files after running.
package/CHANGELOG.md ADDED
@@ -0,0 +1,361 @@
1
+ # mcporter Changelog
2
+
3
+ ## [Unreleased]
4
+
5
+ ### CLI
6
+ - Preserve default imports when `mcporter config add` writes a config file, instead of forcing `"imports": []`.
7
+ - OAuth: avoid crashing on headless Linux when `xdg-open` is unavailable; clear stale dynamic-port client registrations; close callback server if stale-client persistence reads fail. (PR #72, thanks @mgonto)
8
+ - Added optional `oauthScope`/`oauth_scope` config override as an escape hatch for providers that require explicit scopes.
9
+ - `createCallResult().json()` now collects all parseable JSON entries from MCP content arrays (single item stays backward-compatible), and raw inspect depth now stays readable without unbounded traversal. (PR #91, thanks @Blankdlh)
10
+ - OAuth wait/redirect now share one deferred to eliminate authorization race windows and preserve stable close-path errors, including wait-before-redirect and repeated-redirect flows. (PR #70, thanks @monotykamary)
11
+ - Added `--raw-strings` (numeric coercion off) and `--no-coerce` (all coercion off) for `mcporter call` argument parsing so IDs/codes can stay literal strings. (PR #59, thanks @nobrainer-tech)
12
+ - Added `CallResult.images()` plus opt-in `mcporter call --save-images <dir>` so image content blocks can be persisted without changing existing stdout output contracts. (PR #61, thanks @daniella-11ways)
13
+ - OAuth transport retries now classify HTTP 405 as HTTP (not auth) and OAuth promotion applies to configured HTTP servers too, so post-auth fallback flows no longer drop credentials on 405-only endpoints. (PR #48, thanks @caseyg)
14
+ - Config loading now parses project and explicit config files as JSONC, so `mcporter.json` / `mcporter.jsonc` can include comments and trailing commas. (PR #42, thanks @aryasaatvik)
15
+ - Added generated `mcporter.schema.json` plus `pnpm generate:schema` for IDE autocomplete/validation, including `$schema` and `oauthScope`/`oauth_scope` coverage. (PR #43, thanks @aryasaatvik)
16
+
17
+ ### Tooling / Dependencies
18
+ - Updated dependencies to latest releases (including MCP SDK, Rolldown RC, Zod, Biome, Oxlint, Vitest, Bun types).
19
+ - Synced `biome.json` schema URL to Biome `2.4.5`.
20
+
21
+ ## [0.7.3] - 2025-12-29
22
+
23
+ ### CLI
24
+ - Fixed generated CLIs to read Commander.js option values via camelCased properties so snake_case tool schemas map correctly. (Thanks @rawwerks, PR #28)
25
+ - Coerce generated CLI array arguments based on JSON Schema item types (including integer arrays). (Thanks @rawwerks, PR #27)
26
+ - `mcporter generate-cli` supports `--include-tools` / `--exclude-tools` to generate CLIs for a subset of server tools. (Thanks @zackleman, PR #24)
27
+
28
+ ### Tests
29
+ - Added regression coverage for typed array parsing in generated CLIs.
30
+ - Added regression coverage for snake_case, camelCase, and numeric option names in generated CLIs.
31
+ - Increased the Bun bundler integration-test timeout to reduce flakes on slower runners.
32
+
33
+ ### Tooling / Dependencies
34
+ - Updated dependency set (SDK, Rolldown, Zod, Biome, Oxlint, Bun types).
35
+ - Synced the Biome schema URL to the current CLI version.
36
+
37
+ ## [0.7.1] - 2025-12-08
38
+ ### Daemon
39
+ - Track config file mtimes for every loaded layer (home + project or explicit) in daemon metadata and auto-restart when any layer changes, so newly added keep-alive servers are picked up without manual restarts. Includes regression tests for stale-daemon detection.
40
+
41
+ ## [0.7.0] - 2025-12-06
42
+ ### CLI
43
+ - Centralized OAuth credentials in a shared vault (`~/.mcporter/credentials.json`) while still honoring per-server `tokenCacheDir` when present; legacy per-server caches are migrated automatically.
44
+ - `mcporter auth --reset` now clears the vault and legacy caches without crashing on corrupted credential files, making re-auth reliable for servers like Gmail.
45
+ - StdIO servers that expose a separate auth subcommand (e.g., Gmail MCP) can now declare `oauthCommand.args`; `mcporter auth <server>` will spawn that helper and wait for browser completion, so Gmail auth now works without running npx manually.
46
+ - Raw output now prints full strings without Node’s 10k-character truncation (`util.inspect` uses `maxStringLength: null`), so large MCP responses and plans are preserved end-to-end.
47
+ - Added regression coverage to ensure future raw output changes cannot reintroduce truncation.
48
+
49
+ ## [0.6.6] - 2025-11-28
50
+ ### CLI
51
+ - Prevented ENOENT crashes when no config file exists anywhere by only passing an explicit `--config`/`MCPORTER_CONFIG` path to the runtime; implicit defaults now fall back cleanly across list/config/daemon flows.
52
+
53
+ ## [0.6.5] - 2025-11-26
54
+ ### CLI
55
+ - `mcporter call|auth|list help/--help` now print the command-specific usage text instead of attempting to run a server, matching the footer’s “mcporter <command> --help” hint.
56
+ - Added a hidden `list-tools` alias for `mcporter list` to preserve older muscle memory and avoid “Unknown MCP server” errors when copied from legacy docs.
57
+ - Ad-hoc HTTP flows now accept `--insecure` as a hidden synonym for `--allow-http`, making plain-HTTP testing flags match common intuition. `--sse` also aliases `--http-url` to keep older examples working.
58
+ ### Security / Dependencies
59
+ - Override transitive `body-parser` to 2.2.1 (CVE-2025-13466) via pnpm overrides.
60
+
61
+ ## [0.6.4] - 2025-11-25
62
+ ### CLI
63
+ - `mcporter list` now uses cached OAuth access tokens (if present) for the all-servers view without opening browser windows, so previously authorized servers no longer show spurious “auth required” in non-interactive listings.
64
+ - `pnpm test --filter <pattern>` now works by translating to a Vitest file pattern, avoiding the prior “Unknown option --filter” error.
65
+
66
+ ## [0.6.3] - 2025-11-22
67
+ ### Runtime & CLI
68
+ - Updated to `@modelcontextprotocol/sdk` 1.22.0; inline stdio test server now uses Zod schemas to remain compatible with the SDK’s JSON Schema conversion path.
69
+
70
+ ### Runtime
71
+ - `listTools` now follows SDK pagination, looping through `nextCursor` so long catalogs return complete tool lists.
72
+
73
+ ### Configuration
74
+ - Claude imports now preserve root-fallback parsing for legacy `.claude.json` and `.claude/mcp.json` files while treating `.claude/settings*.json` as container-only configs, preventing metadata fields like `statusLine` from being misdetected as MCP servers.
75
+ - Added regression coverage for Claude settings and mcp.json imports to guard the root-fallback behavior.
76
+
77
+ ## [0.6.2] - 2025-11-18
78
+
79
+ ### Runtime
80
+ - Propagate `--timeout` / `MCPORTER_CALL_TIMEOUT` into MCP tool calls (SDK `timeout`, `resetTimeoutOnProgress`, `maxTotalTimeout`) so long-running requests are no longer capped by the SDK’s 60s default.
81
+
82
+ ### CLI
83
+ - `mcporter generate-cli` once again treats single-token `--command` values (e.g., `./scripts/server.ts`) as STDIO transports instead of trying to coerce them into HTTP URLs, restoring the pre-0.6.1 behavior for ad-hoc scripts.
84
+ - Global flag parsing moved into `cli-factory` for consistent log-level/oauth-timeout handling across commands.
85
+ - `daemon` host/client hardened and covered with new tests; idle eviction and restart paths verified.
86
+
87
+ ### Configuration
88
+ - Reintroduced support for `OPENCODE_CONFIG_DIR` so OpenCode imports continue to honor the documented directory override alongside `OPENCODE_CONFIG`.
89
+ - Platform-aware defaults for Cursor/Claude/Windsurf/VS Code/OpenCode configs now dedupe paths and include Windows-specific locations.
90
+
91
+ ### Platform resilience (Windows/WSL)
92
+ - Added `fs-helpers` that treat chmod/copy failures on NTFS/DrvFs as best-effort so CLI generation keeps working on WSL mounts.
93
+ - Documented Windows/WSL workflows: install/test from ext4 copies, remount guidance for /mnt/c, and syncing tips.
94
+
95
+ ### StdIO MCP coverage
96
+ - Added stdio e2e tests using in-repo filesystem & memory MCP fixtures to ensure list/call works via execPath.
97
+
98
+ ### Content extraction
99
+ - `createCallResult` now reads nested `raw.content`/`raw.structuredContent` so tools that wrap responses render text/markdown/json correctly; new unit tests cover text joining, markdown, and JSON.
100
+
101
+ ## [0.6.1] - 2025-11-17
102
+
103
+ ### CLI
104
+ - `mcporter list --verbose` now surfaces every config path that registers the target server (primary first, then duplicates) in both text and JSON output, making it easier to trace where a name is coming from.
105
+ - JSON list payloads include a new `sources` array when `--verbose` is set, mirroring the on-screen path list for programmatic consumers.
106
+ - Verbose source listings now tag the import kind (cursor/vscode/codex, etc.) and explicitly label the primary entry vs. shadowed duplicates.
107
+
108
+ ### Runtime
109
+ ## [0.6.0] - 2025-11-16
110
+
111
+ ### Configuration
112
+ - Default config resolution now layers the system config (`~/.mcporter/mcporter.json[c]`) before the project config (`config/mcporter.json`), so globally installed MCP servers remain available inside repos while allowing per-project overrides.
113
+ - `--config` and `MCPORTER_CONFIG` continue to select a single file without merging for explicit workflows.
114
+ - `mcporter config add --scope home|project` lets you choose the write target explicitly (project remains the default; `--persist <path>` still wins when provided).
115
+
116
+ ## [0.5.11] - 2025-11-16
117
+
118
+ ### Code generation & metadata
119
+ - Quick start examples in generated CLIs now derive from actual embedded tools (up to three), showing real command names/flags instead of generic placeholders.
120
+
121
+ ## [0.5.10] - 2025-11-16
122
+
123
+ ### Code generation & metadata
124
+ - Generated CLIs now present the canonical kebab-cased tool names in help while accepting underscore aliases at runtime, eliminating the “unknown command” errors when copying names directly from server tool lists.
125
+
126
+ ## [0.5.9] - 2025-11-15
127
+
128
+ ### CLI
129
+ - `mcporter list` suppresses raw STDIO stderr dumps when enumerating all configured servers, keeping the summary output readable while still surfacing per-server health statuses.
130
+ - `mcporter config <subcommand> --help` (and `mcporter config help <subcommand>`) now display detailed usage, flags, and examples for every config subcommand instead of returning a placeholder message. Inline `--help` tokens are intercepted before executing the command, so flows like `mcporter config add --help` no longer throw usage errors.
131
+ - `mcporter config doctor` prints the project and system config paths before reporting diagnostics, making it obvious which files were inspected when tracking down configuration issues.
132
+
133
+ ## [0.5.8] - 2025-11-15
134
+
135
+ ### CLI & runtime
136
+ - STDIO transports now interpolate `${VAR}`/`$env:VAR` tokens in the configured command and arguments before spawning child processes, so chrome-devtools inherits the live `CHROME_DEVTOOLS_URL` value instead of receiving the literal placeholder.
137
+ - Keep-alive detection skips any STDIO server whose command/args reference `CHROME_DEVTOOLS_URL`, ensuring daemon mode relaunches chrome-devtools for each Oracle browser session instead of pinning a stale port.
138
+ - Command arguments that escape placeholders as `\${VAR}` (common when using `String.raw` in TypeScript config helpers) now trim the backslash after interpolation so downstream servers receive clean URLs.
139
+
140
+ ### CLI
141
+ - Ad-hoc STDIO invocations that start with `npx -y <package>` now infer the npm package name (stripping versions and ignoring arguments after `--`) instead of producing slugs like `npx-y`, so repeated `mcporter list|call` runs automatically reuse a readable server key without passing `--name`.
142
+ - Quoted inline commands such as `mcporter list "npx -y xcodebuildmcp"` now auto-detect the ad-hoc STDIO transport, so you can skip `--stdio` entirely when probing MCP packages via `npx`.
143
+
144
+ ## [0.5.7] - 2025-11-14
145
+
146
+ ### CLI
147
+ - Added `mcporter daemon restart`, a stop+start convenience that reuses logging flags so agents can bounce the keep-alive daemon with a single command.
148
+ - Added `list_tools` as a hidden shortcut for `mcporter list <server>`, so `chrome-devtools.list_tools` (and similar selectors) print the tool catalog instantly without requiring a real MCP tool.
149
+ - Warn when colon-style arguments omit a value (e.g., `command:`) and suggest quoting/`--args` JSON so agents don’t accidentally send `undefined` to STDIO servers.
150
+
151
+ ## [0.5.6] - 2025-11-11
152
+
153
+ ### CLI & runtime
154
+ - Reset cached keep-alive connections whenever STDIO transports hit fatal errors (timeouts, closed pipes, daemon restarts, etc.), so chrome-devtools automatically recovers after you close Chrome instead of requiring `mcporter daemon stop`.
155
+ - Daemon-routed calls now log a restart notice and automatically retry once after closing the stale transport, providing self-healing behavior when Chrome or other keep-alive servers crash mid-call.
156
+
157
+ ## [0.5.5] - 2025-11-11
158
+
159
+ ### CLI & runtime
160
+ - Added hidden agent shortcuts: `mcporter describe <server>` now aliases `mcporter list`, and calling `<server>.help` automatically falls back to the list output when a server lacks a `help` tool (also wired into the legacy `pnpm mcp call` path) so agents always get a readable summary.
161
+
162
+ ## [0.5.4] - 2025-11-10
163
+
164
+ ### CLI & runtime
165
+ - Propagate the CLI’s per-call timeout (defaults to 60s or `--timeout`) through the keep-alive daemon, so chrome-devtools and other persistent STDIO servers stop as soon as the caller times out.
166
+ - `Runtime.callTool` now honors `timeoutMs` directly, ensuring TanStack MCP clients and the CLI share a single source of truth for cancellation even outside the daemon.
167
+ - Ad-hoc STDIO servers launched via `mcporter call "npx …"` (or `--stdio`) inherit the same keep-alive heuristics and canonical names as config-defined entries, so `MCPORTER_DISABLE_KEEPALIVE=chrome-devtools` and similar overrides work without passing `--name`.
168
+
169
+ ### Tests
170
+ - Added regression coverage (`tests/daemon-client-timeout.test.ts`, `tests/runtime-call-timeout.test.ts`, and updated keep-alive suites) to guard timeout propagation and canonical keep-alive detection.
171
+
172
+ ## [0.5.3] - 2025-11-10
173
+
174
+ ### CLI & runtime
175
+ - Fixed Claude imports so `mcporter list` merges project-scoped servers from `.claude.json` (matching the current workspace) and ignores metadata-only keys like `tipsHistory`/`cachedStatsigGates`, resolving GitHub issues #6 and #7.
176
+ - OpenCode imports now read only the documented `mcp` container (no root-level fallback), matching the current OpenCode schema and preventing stray metadata from being misinterpreted as servers.
177
+
178
+ ## [0.5.2] - 2025-11-10
179
+
180
+ ### CLI & runtime
181
+ - `mcporter call "<stdio command>" ...` now auto-detects ad-hoc STDIO servers, so you can skip `--stdio/--stdio-arg` entirely and just quote the command you want to run.
182
+ - When a server exposes exactly one tool, `mcporter call` infers it automatically (and prints a dim log), letting one-tool servers like Vercel Domains run with only their arguments.
183
+ - STDIO transports now inherit your current shell environment by default, so ad-hoc commands see the same variables as your terminal; keep `--env KEY=value` for explicit overrides.
184
+
185
+ ### Fixes
186
+ - `mcporter config list` and `mcporter config doctor` no longer crash when the project config is missing or contains malformed JSON; we log a single warning and keep going, matching the behavior of the top-level `mcporter list`.
187
+
188
+ ## [0.5.1] - 2025-11-10
189
+
190
+ ### CLI & runtime
191
+ - Added a per-login daemon that auto-starts when keep-alive MCP servers (e.g., Chrome DevTools, Mobile MCP, Playwright) are invoked. The daemon keeps STDIO transports alive across agents, exposes `mcporter daemon <start|status|stop>`, and supports idle shutdown plus manual restarts.
192
+ - Keep-alive detection now honors the `lifecycle` config flag/env overrides and also inspects STDIO command signatures, so renaming `chrome-devtools` (or other stateful servers) no longer disables the daemon accidentally.
193
+ - Introduced daemon logging controls (`mcporter daemon start --log|--log-file`, `--log-servers`, `MCPORTER_DAEMON_LOG*` env vars, and per-server `logging.daemon.enabled`). `mcporter daemon status` reports the active log path, and a new `tests/daemon.integration.test.ts` suite keeps the end-to-end flow covered.
194
+
195
+ ### Fixes
196
+ - `mcporter list` (and every CLI entry point) once again treats missing project configs as empty instead of throwing ENOENT, matching the 0.4.x behavior when you run the CLI outside a repo.
197
+
198
+ ## [0.5.0] - 2025-11-10
199
+
200
+ ### CLI & runtime
201
+ - **Daemonized keep-alive servers.** A new per-login daemon automatically spins up whenever keep-alive MCP servers (Chrome DevTools, Mobile MCP, Playwright, etc.) are invoked. It keeps STDIO transports warm across agents, exposes `mcporter daemon <start|status|stop>`, supports idle shutdowns/manual restarts, and respects the `lifecycle` config flag plus STDIO command metadata so renamed servers stay eligible.
202
+ - Fixed `createKeepAliveRuntime` so the daemon wrapper’s `listTools` implementation matches the base `Runtime` signature; `pnpm build` (and any command that shells out to `pnpm build`) succeeds again.
203
+ - Cursor imports now cover both workspace and user `.cursor/mcp.json` files plus the platform-specific `Cursor/User/mcp.json` directories, and the VS Code/Windsurf walkers dedupe paths so editor-managed MCP servers are auto-discovered consistently across macOS, Linux, and Windows.
204
+ - Windows installs now enumerate `.cursor/mcp.json`, `%USERPROFILE%\\.cursor\\mcp.json`, `%APPDATA%\\Cursor\\User\\mcp.json`, `.vscode/mcp.json`, and the Windsurf/Codeium directories automatically, while STDIO transports on Windows tear down entire process trees via `powershell.exe Get-CimInstance Win32_Process` to avoid orphaned child servers.
205
+
206
+ ## [0.4.5] - 2025-11-10
207
+
208
+ ### CLI & runtime
209
+ - Fixed the npm `bin` entry so it points to `dist/cli.js` without a leading `./`, keeping the executable in the published tarball and restoring `npx mcporter` functionality. Also bumped the embedded runtime version to 0.4.4 so the CLI reports the correct release.
210
+ - Added `MCPORTER_CONFIG` plus a home-directory fallback (`~/.mcporter/mcporter.json[c]`) so the CLI automatically finds your system-wide config when a project file is missing.
211
+
212
+ ### Docs
213
+ - Consolidated the external MCP import matrix into `docs/import.md`, removing the short-lived `docs/mcp-import.md` duplication, and clarified the release checklist to stop immediately on failing tests or lint warnings.
214
+
215
+ ## [0.4.3] - 2025-11-10
216
+
217
+ ### CLI & runtime
218
+ - Added OpenCode imports (project `opencode.json[c]`, `OPENCODE_CONFIG_DIR`, user config, and the `OPENCODE_CONFIG` override) plus JSONC parsing so `mcporter list/config` can auto-discover servers defined in OpenCode.
219
+ - Claude Code imports now honor `.claude/settings.local.json` and `.claude/settings.json` ahead of the legacy `mcp.json`, and we skip entries that lack a URL/command (e.g., permissions blocks) so malformed settings no longer break the merge.
220
+
221
+ ### Docs
222
+ - Documented the full import matrix (including OpenCode + Claude settings hierarchy) directly in `docs/import.md` and `docs/config.md`.
223
+
224
+ ## [0.4.2] - 2025-11-09
225
+
226
+ ### CLI & runtime
227
+ - `mcporter list` (and other commands that load imports) now skip empty or malformed Claude Desktop / Cursor / Codex config files instead of throwing, so a blank `claude_desktop_config.json` no longer blocks the rest of the imports.
228
+ - Bundled sample config adds the Mobile Next MCP definition, making it available out of the box when you run `mcporter list` before customizing your own config.
229
+
230
+ ## [0.4.1] - 2025-11-08
231
+
232
+ ### CLI & runtime
233
+ - Fixed the fallback when `config/mcporter.json` is missing so `mcporter list` continues to import Cursor/Claude/Codex/etc. configs even when you run the CLI outside a repo that defines its own config, matching the 0.3.x behavior.
234
+ - Added regression coverage that exercises the “no config file” path to ensure future changes keep importing user-level MCP servers.
235
+
236
+ ## [0.4.0] - 2025-11-08
237
+
238
+ ### CLI & runtime
239
+ - `mcporter config list` now displays only local entries by default, appends a color-aware summary of every imported config (path, counts, sample names), and still lets you pass `--source import`/`--json` for the merged view.
240
+ - `mcporter config get`, `remove`, and `logout` now use the same fuzzy matching/suggestion logic as `mcporter list`/`call`, auto-correcting near-miss names and emitting “Did you mean …?” hints when ambiguity remains.
241
+
242
+ ## [0.3.6] - 2025-11-08
243
+
244
+ ### CLI & runtime
245
+ - `mcporter list` now prints copy/pasteable examples for ad-hoc servers by repeating the HTTP URL (with quoting) so the commands shown under `Examples:` actually work before you persist the definition.
246
+
247
+ ### Code generation
248
+ - Staged the actual dependency directories (`commander`, `mcporter`) directly into the Bun bundler workspace so `npx mcporter generate-cli "npx -y chrome-devtools-mcp" --compile` succeeds even when npm hoists dependencies outside the package (fixes the regression some users still saw with 0.3.5).
249
+
250
+ ## [0.3.5] - 2025-11-08
251
+
252
+ ### Code generation
253
+ - Ensure the Bun bundler resolves `commander`/`mcporter` even when `npx mcporter generate-cli … --compile` runs inside an empty temp directory by symlinking mcporter’s own `node_modules` into the staging workspace before invoking `bun build`. This keeps the “one weird trick” workflow working post-0.3.4 without requiring extra installs.
254
+
255
+ ## [0.3.4] - 2025-11-08
256
+
257
+ ### CLI & runtime
258
+ - Added a global `--oauth-timeout <ms>` flag (and the matching `MCPORTER_OAUTH_TIMEOUT_MS` override) so long-running OAuth handshakes can be shortened during debugging; the runtime now logs a clear warning and tears down the flow once the limit is reached, ensuring `mcporter list/call/auth` always exit.
259
+
260
+ ### Docs
261
+ - Documented the new OAuth timeout flag/env var across the README and tmux/hang-debug guides so release checklists and manual repro steps call out the faster escape hatch.
262
+
263
+ ## [0.3.3] - 2025-11-07
264
+
265
+ ### Code generation
266
+ - When a server definition omits `description`, `mcporter generate-cli` now asks the MCP server for its own `instructions`/`serverInfo.title` during tool discovery and embeds that value, so generated CLIs introduce themselves with the real server description instead of the generic “Standalone CLI…” fallback.
267
+ - Embedded tool listings inside generated CLIs now show each command’s flag signature (no `usage:` prefix) separated by blank lines, and per-command `--help` output inherits the same colorized usage/option styling as the main `mcporter` binary for readability on rich TTYs.
268
+ - Added a `--bundler rolldown|bun` flag to `mcporter generate-cli`, defaulting to Rolldown but allowing Bun’s bundler (when paired with `--runtime bun`) for teams that want to stay entirely inside the Bun toolchain. The generator now records the chosen bundler in artifact metadata and enforces the Bun-only constraint so reproduction via `--from` stays deterministic.
269
+ - When Bun is installed (and therefore selected as the runtime), `mcporter generate-cli` now automatically switches the bundler to Bun as well—no need to pass `--bundler bun` manually—while keeping Rolldown as the default for Node runtimes.
270
+ - Bundling with Bun copies the generated template into mcporter’s install tree before invoking `bun build`, ensuring local `commander`/`mcporter` dependencies resolve even when the user runs the generator from an empty temp directory.
271
+
272
+ ## [0.3.2] - 2025-11-07
273
+
274
+ ### CLI
275
+ - Embedded the CLI version so Homebrew/Bun builds respond to `mcporter --version` even when `package.json` is unavailable.
276
+ - Revamped `mcporter --help` to mirror the richer list/call formatting (name + summary rows, grouped sections, quick-start examples, and ANSI colors when TTYs are detected).
277
+ - Fixed `mcporter list` so it no longer errors when `config/mcporter.json` is absent—fresh installs now run without creating config files, and a regression test guards the optional-config flow.
278
+ - Generated standalone CLIs now print the full help menu (same grouped layout as the main CLI) when invoked without arguments, matching the behavior of `mcporter` itself.
279
+
280
+ ### Code generation
281
+ - Generated binaries now default to the current working directory (using the inferred server name) when `--compile` is provided without a path, and automatically append a numeric suffix when the target already exists.
282
+ - Standalone CLIs inherit the improved help layout (color-aware title, grouped command summaries, embedded tool listings, and quick-start snippets) so generated artifacts read the same way as the main CLI.
283
+ - Swapped the bundler from esbuild to Rolldown for both JS and Bun targets, removing the fragile per-architecture esbuild binaries while keeping aliasing for local dependencies and honoring `--minify` via Rolldown’s native minifier.
284
+ - Improved `generate-cli` so inline stdio commands (e.g., `"npx chrome-devtools-mcp"`) parse correctly even when invoked from empty directories.
285
+
286
+ ### Code generation
287
+ - `readPackageMetadata()` now tolerates missing `package.json` files; when invoked from a directory without a manifest it falls back to mcporter’s own version string, so `generate-cli` works even when you call it via `npx` in an empty folder.
288
+
289
+ ## [0.3.1] - 2025-11-07
290
+
291
+ ### CLI & runtime
292
+ - Short-circuited global `--help` / `--version` handling so these flags no longer fall through command inference and always print immediately, regardless of which command the user typed first.
293
+ - Added regression coverage for the new shortcuts and kept the existing `runCli` helper exported so tests (and downstream tools) can exercise argument parsing without forking the entire process.
294
+
295
+ ### Code generation & metadata
296
+ - Fixed `mcporter generate-cli --bundle/--compile` in empty directories by aliasing `commander`/`mcporter` imports to the CLI’s own installation so esbuild always resolves dependencies. Verified with a new fixture that bundles from temp dirs without `node_modules` (fixes #1).
297
+ - Added an end-to-end integration test that runs `node dist/cli.js generate-cli` twice—once for bundling and once for `--compile`—as well as a GitHub Actions step that installs Bun so CI exercises the compiled binary path on every PR.
298
+
299
+
300
+ ## [0.3.0] - 2025-11-06
301
+
302
+ ### CLI & runtime
303
+ - Added configurable log levels (`--log-level` / `MCPORTER_LOG_LEVEL`) that default to `warn`, promoting noisy transport fallbacks to warnings so critical issues still surface.
304
+ - Forced the CLI to exit cleanly after shutdown (opt out with `MCPORTER_NO_FORCE_EXIT`) and patched `StdioClientTransport` so stdio MCP servers no longer leave Node handles hanging; stderr from stdio servers is buffered and replayed via `MCPORTER_STDIO_LOGS=1` or whenever a server exits with a non-zero status.
305
+
306
+ ### Discovery, calling, and ad-hoc workflows
307
+ - Rebuilt `mcporter list`: spinner updates stream live, summaries print only after discovery completes, and single-server views now render TypeScript-style doc blocks, inline examples, inferred return hints, and compact `// optional (N): …` summaries. The CLI guarantees at least five parameters before truncating, introduced a single `--all-parameters` switch (replacing the `--required-only` / `--include-optional` pair), and shares its formatter with `mcporter generate-cli` so signatures are consistent everywhere.
308
+ - Verb inference and parser upgrades let bare server names dispatch to `list`, dotted invocations jump straight to `call`, colon-delimited flags (`key:value` / `key: value`) sit alongside `key=value`, and the JavaScript-like call syntax now supports unlabeled positional arguments plus typo correction heuristics when tool names are close but not exact.
309
+ - Ad-hoc workflows are significantly safer: `--http-url` / `--stdio` definitions (with `--env`, `--cwd`, `--name`, `--persist`) work across `list`, `call`, and `auth`, mcporter reuses existing config entries when a URL matches (preserving OAuth tokens / redirect URIs), and `mcporter auth <url>` piggybacks on the same resolver to persist entries or retry when a server flips modes mid-flight.
310
+ - Hardened OAuth detection automatically promotes ad-hoc HTTP servers that return 401/403 to `auth: "oauth"`, broadens the unauthorized heuristic for Supabase/Vercel/GitHub-style responses, and performs a one-time retry whenever a server switches into OAuth mode while you are connecting.
311
+
312
+ ### Code generation & metadata
313
+ - Generated CLIs now embed their metadata (generator version, resolved server definition, invocation flags) behind a hidden `__mcporter_inspect` command. `mcporter inspect-cli` / `mcporter generate-cli --from <artifact>` read directly from the artifact, while legacy `.metadata.json` sidecars remain as a fallback for older binaries.
314
+ - Shared the TypeScript signature formatter between `mcporter list` and `mcporter generate-cli`, ensuring command summaries, CLI hints, and generator help stay pixel-perfect and are backed by new snapshot/unit tests.
315
+ - Introduced `mcporter emit-ts`, a codegen command that emits `.d.ts` tool interfaces or ready-to-run client wrappers (`--mode types|client`, `--include-optional`) using the same doc/comment data that powers the CLI, so agents/tests can consume MCP servers with strong TypeScript types.
316
+ - `mcporter generate-cli` now accepts inline stdio commands via `--command "npx -y package@latest"` or by quoting the command as the first positional argument, automatically splits the command/args, infers a friendly name from scripts or package scopes, and documents the chrome-devtools one-liner in the README; additional unit tests cover HTTP, stdio, scoped package, and positional shorthand flows.
317
+
318
+ ### Documentation & references
319
+ - Added `docs/tool-calling.md`, `docs/call-syntax.md`, and `docs/call-heuristic.md` to capture every invocation style (flags, function expressions, inferred verbs) plus the typo-correction rules.
320
+ - Expanded the ad-hoc/OAuth story across `README.md`, `docs/adhoc.md`, `docs/local.md`, `docs/known-issues.md`, and `docs/supabase-auth-issue.md`, detailing when servers auto-promote to OAuth, how retries behave, and how to persist generated definitions safely.
321
+ - Updated the README, CLI reference, and generator docs to cover the new `--all-parameters` flag, list formatter, metadata embedding, the `mcporter emit-ts` workflow, and refreshed branding so the CLI and docs consistently introduce the project as **MCPorter**.
322
+ - Tightened `docs/RELEASE.md` with a zero-warning policy so `pnpm check`, `pnpm test`, `npm pack --dry-run`, and friends must run clean before publishing.
323
+
324
+ ## [0.2.0] - 2025-11-06
325
+
326
+ - Added non-blocking `mcporter list` output with per-server status and parallel discovery.
327
+ - Introduced `mcporter auth <server>` helper (and library API support) so OAuth flows don’t hang list calls.
328
+ - Set the default list timeout to 30 s (configurable via `MCPORTER_LIST_TIMEOUT`).
329
+ - Tuned runtime connection handling to avoid launching OAuth flows when auto-authorization is disabled and to reuse cached clients safely.
330
+ - Added `mcporter auth <server> --reset` to wipe cached credentials before rerunning OAuth.
331
+ - `mcporter list` now prints `[source: …]` (and `Source:` in single-server mode) for servers imported from other configs so you can see whether an entry came from Cursor, Claude, etc.
332
+ - Added a `--timeout <ms>` flag to `mcporter list` to override the per-server discovery timeout without touching environment variables.
333
+
334
+ - Generated CLIs now show full command signatures in help and support `--compile` without leaving template/bundle intermediates.
335
+ - StdIO-backed MCP servers now receive resolved environment overrides, so API keys flow through to launched processes like `obsidian-mcp-server`.
336
+ - Hardened the CLI generator to surface enum defaults/metadata and added regression tests around the new helper utilities.
337
+ - Generated artifacts now emit `<artifact>.metadata.json` files plus `mcporter inspect-cli` / `mcporter regenerate-cli` workflows (with `--dry-run` and overrides, now handled via `generate-cli --from <artifact>`) so binaries can be refreshed after upgrading mcporter.
338
+ - Fixed `mcporter call <server> <tool>` so the second positional is treated as the tool name instead of triggering the "Argument must be key=value" error, accepted `tool=`/`command=` selectors now play nicely with additional key=value payloads, and added a default call timeout (configurable via `MCPORTER_CALL_TIMEOUT` or `--timeout`) that tears down the MCP transport—clearing internal timers and ignoring blank env overrides—so long-running or completed tools can’t leave the CLI hanging open.
339
+
340
+ ## [0.1.0]
341
+
342
+ - Initial release.
343
+ ## [0.6.2] - 2025-11-18
344
+
345
+ ### Platform resilience (Windows/WSL)
346
+ - Added `fs-helpers` that treat chmod/copy failures on NTFS/DrvFs as best-effort so CLI generation keeps working on WSL mounts.
347
+ - Documented Windows/WSL workflows: install/test from ext4 copies, remount guidance for /mnt/c, and syncing tips.
348
+
349
+ ### CLI/runtime
350
+ - Global flag parsing moved into `cli-factory` for consistent log-level/oauth-timeout handling across commands.
351
+ - `daemon` host/client hardened and covered with new tests; idle eviction and restart paths verified.
352
+ - Imports now include platform-aware defaults for Cursor/Claude/Windsurf/VS Code/OpenCode configs with path dedupe.
353
+
354
+ ### StdIO MCP coverage
355
+ - Added stdio e2e tests using in-repo filesystem & memory MCP fixtures to ensure list/call works via execPath.
356
+
357
+ ### Content extraction
358
+ - `createCallResult` now reads nested `raw.content`/`raw.structuredContent` so tools that wrap responses render text/markdown/json correctly; new unit tests cover text joining, markdown, and JSON.
359
+
360
+ ### Docs
361
+ - New `docs/windows.md` with WSL/NTFS tips; added to docs index.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ \g<1>2026 Peter Steinberger
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.