@modelcontextprotocol/sdk 1.23.0 → 1.24.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 (316) hide show
  1. package/README.md +84 -1507
  2. package/dist/cjs/client/auth-extensions.d.ts +178 -0
  3. package/dist/cjs/client/auth-extensions.d.ts.map +1 -0
  4. package/dist/cjs/client/auth-extensions.js +300 -0
  5. package/dist/cjs/client/auth-extensions.js.map +1 -0
  6. package/dist/cjs/client/auth.d.ts +90 -2
  7. package/dist/cjs/client/auth.d.ts.map +1 -1
  8. package/dist/cjs/client/auth.js +131 -75
  9. package/dist/cjs/client/auth.js.map +1 -1
  10. package/dist/cjs/client/index.d.ts +122 -14
  11. package/dist/cjs/client/index.d.ts.map +1 -1
  12. package/dist/cjs/client/index.js +125 -3
  13. package/dist/cjs/client/index.js.map +1 -1
  14. package/dist/cjs/client/sse.d.ts.map +1 -1
  15. package/dist/cjs/client/sse.js +6 -2
  16. package/dist/cjs/client/sse.js.map +1 -1
  17. package/dist/cjs/client/stdio.d.ts +0 -1
  18. package/dist/cjs/client/stdio.d.ts.map +1 -1
  19. package/dist/cjs/client/stdio.js +36 -11
  20. package/dist/cjs/client/stdio.js.map +1 -1
  21. package/dist/cjs/client/streamableHttp.d.ts +1 -0
  22. package/dist/cjs/client/streamableHttp.d.ts.map +1 -1
  23. package/dist/cjs/client/streamableHttp.js +36 -15
  24. package/dist/cjs/client/streamableHttp.js.map +1 -1
  25. package/dist/cjs/examples/client/simpleClientCredentials.d.ts +20 -0
  26. package/dist/cjs/examples/client/simpleClientCredentials.d.ts.map +1 -0
  27. package/dist/cjs/examples/client/simpleClientCredentials.js +70 -0
  28. package/dist/cjs/examples/client/simpleClientCredentials.js.map +1 -0
  29. package/dist/cjs/examples/client/simpleOAuthClient.js +77 -1
  30. package/dist/cjs/examples/client/simpleOAuthClient.js.map +1 -1
  31. package/dist/cjs/examples/client/simpleStreamableHttp.js +74 -3
  32. package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -1
  33. package/dist/cjs/examples/client/simpleTaskInteractiveClient.d.ts +10 -0
  34. package/dist/cjs/examples/client/simpleTaskInteractiveClient.d.ts.map +1 -0
  35. package/dist/cjs/examples/client/simpleTaskInteractiveClient.js +158 -0
  36. package/dist/cjs/examples/client/simpleTaskInteractiveClient.js.map +1 -0
  37. package/dist/cjs/examples/server/elicitationFormExample.js +2 -12
  38. package/dist/cjs/examples/server/elicitationFormExample.js.map +1 -1
  39. package/dist/cjs/examples/server/elicitationUrlExample.js +4 -3
  40. package/dist/cjs/examples/server/elicitationUrlExample.js.map +1 -1
  41. package/dist/cjs/examples/server/jsonResponseStreamableHttp.js +2 -12
  42. package/dist/cjs/examples/server/jsonResponseStreamableHttp.js.map +1 -1
  43. package/dist/cjs/examples/server/simpleSseServer.js +2 -6
  44. package/dist/cjs/examples/server/simpleSseServer.js.map +1 -1
  45. package/dist/cjs/examples/server/simpleStatelessStreamableHttp.js +2 -12
  46. package/dist/cjs/examples/server/simpleStatelessStreamableHttp.js.map +1 -1
  47. package/dist/cjs/examples/server/simpleStreamableHttp.js +61 -21
  48. package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -1
  49. package/dist/cjs/examples/server/simpleTaskInteractive.d.ts +12 -0
  50. package/dist/cjs/examples/server/simpleTaskInteractive.d.ts.map +1 -0
  51. package/dist/cjs/examples/server/simpleTaskInteractive.js +603 -0
  52. package/dist/cjs/examples/server/simpleTaskInteractive.js.map +1 -0
  53. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js +2 -12
  54. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -1
  55. package/dist/cjs/examples/server/ssePollingExample.js +11 -25
  56. package/dist/cjs/examples/server/ssePollingExample.js.map +1 -1
  57. package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js +2 -6
  58. package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -1
  59. package/dist/cjs/examples/server/toolWithSampleServer.js +7 -5
  60. package/dist/cjs/examples/server/toolWithSampleServer.js.map +1 -1
  61. package/dist/cjs/experimental/index.d.ts +13 -0
  62. package/dist/cjs/experimental/index.d.ts.map +1 -0
  63. package/dist/cjs/experimental/index.js +29 -0
  64. package/dist/cjs/experimental/index.js.map +1 -0
  65. package/dist/cjs/experimental/tasks/client.d.ts +121 -0
  66. package/dist/cjs/experimental/tasks/client.d.ts.map +1 -0
  67. package/dist/cjs/experimental/tasks/client.js +189 -0
  68. package/dist/cjs/experimental/tasks/client.js.map +1 -0
  69. package/dist/cjs/experimental/tasks/helpers.d.ts +47 -0
  70. package/dist/cjs/experimental/tasks/helpers.d.ts.map +1 -0
  71. package/dist/cjs/experimental/tasks/helpers.js +70 -0
  72. package/dist/cjs/experimental/tasks/helpers.js.map +1 -0
  73. package/dist/cjs/experimental/tasks/index.d.ts +16 -0
  74. package/dist/cjs/experimental/tasks/index.d.ts.map +1 -0
  75. package/dist/cjs/experimental/tasks/index.js +39 -0
  76. package/dist/cjs/experimental/tasks/index.js.map +1 -0
  77. package/dist/cjs/experimental/tasks/interfaces.d.ts +232 -0
  78. package/dist/cjs/experimental/tasks/interfaces.d.ts.map +1 -0
  79. package/dist/cjs/experimental/tasks/interfaces.js +19 -0
  80. package/dist/cjs/experimental/tasks/interfaces.js.map +1 -0
  81. package/dist/cjs/experimental/tasks/mcp-server.d.ts +77 -0
  82. package/dist/cjs/experimental/tasks/mcp-server.d.ts.map +1 -0
  83. package/dist/cjs/experimental/tasks/mcp-server.js +36 -0
  84. package/dist/cjs/experimental/tasks/mcp-server.js.map +1 -0
  85. package/dist/cjs/experimental/tasks/server.d.ts +83 -0
  86. package/dist/cjs/experimental/tasks/server.d.ts.map +1 -0
  87. package/dist/cjs/experimental/tasks/server.js +93 -0
  88. package/dist/cjs/experimental/tasks/server.js.map +1 -0
  89. package/dist/cjs/experimental/tasks/stores/in-memory.d.ts +94 -0
  90. package/dist/cjs/experimental/tasks/stores/in-memory.d.ts.map +1 -0
  91. package/dist/cjs/experimental/tasks/stores/in-memory.js +253 -0
  92. package/dist/cjs/experimental/tasks/stores/in-memory.js.map +1 -0
  93. package/dist/cjs/experimental/tasks/types.d.ts +10 -0
  94. package/dist/cjs/experimental/tasks/types.d.ts.map +1 -0
  95. package/dist/cjs/experimental/tasks/types.js +28 -0
  96. package/dist/cjs/experimental/tasks/types.js.map +1 -0
  97. package/dist/cjs/server/auth/errors.d.ts +7 -0
  98. package/dist/cjs/server/auth/errors.d.ts.map +1 -1
  99. package/dist/cjs/server/auth/errors.js +11 -2
  100. package/dist/cjs/server/auth/errors.js.map +1 -1
  101. package/dist/cjs/server/auth/handlers/token.d.ts.map +1 -1
  102. package/dist/cjs/server/auth/handlers/token.js +2 -2
  103. package/dist/cjs/server/auth/handlers/token.js.map +1 -1
  104. package/dist/cjs/server/auth/middleware/clientAuth.d.ts.map +1 -1
  105. package/dist/cjs/server/auth/middleware/clientAuth.js +0 -4
  106. package/dist/cjs/server/auth/middleware/clientAuth.js.map +1 -1
  107. package/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -1
  108. package/dist/cjs/server/auth/providers/proxyProvider.js +8 -4
  109. package/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -1
  110. package/dist/cjs/server/auth/router.d.ts.map +1 -1
  111. package/dist/cjs/server/auth/router.js +7 -1
  112. package/dist/cjs/server/auth/router.js.map +1 -1
  113. package/dist/cjs/server/index.d.ts +91 -168
  114. package/dist/cjs/server/index.d.ts.map +1 -1
  115. package/dist/cjs/server/index.js +162 -0
  116. package/dist/cjs/server/index.js.map +1 -1
  117. package/dist/cjs/server/mcp.d.ts +41 -6
  118. package/dist/cjs/server/mcp.d.ts.map +1 -1
  119. package/dist/cjs/server/mcp.js +203 -48
  120. package/dist/cjs/server/mcp.js.map +1 -1
  121. package/dist/cjs/server/middleware/hostHeaderValidation.d.ts +32 -0
  122. package/dist/cjs/server/middleware/hostHeaderValidation.d.ts.map +1 -0
  123. package/dist/cjs/server/middleware/hostHeaderValidation.js +80 -0
  124. package/dist/cjs/server/middleware/hostHeaderValidation.js.map +1 -0
  125. package/dist/cjs/server/sse.d.ts +6 -0
  126. package/dist/cjs/server/sse.d.ts.map +1 -1
  127. package/dist/cjs/server/sse.js +3 -3
  128. package/dist/cjs/server/sse.js.map +1 -1
  129. package/dist/cjs/server/stdio.d.ts +1 -1
  130. package/dist/cjs/server/stdio.js +1 -1
  131. package/dist/cjs/server/streamableHttp.d.ts +11 -0
  132. package/dist/cjs/server/streamableHttp.d.ts.map +1 -1
  133. package/dist/cjs/server/streamableHttp.js +30 -7
  134. package/dist/cjs/server/streamableHttp.js.map +1 -1
  135. package/dist/cjs/server/zod-compat.d.ts +1 -1
  136. package/dist/cjs/server/zod-compat.d.ts.map +1 -1
  137. package/dist/cjs/server/zod-compat.js +2 -2
  138. package/dist/cjs/server/zod-compat.js.map +1 -1
  139. package/dist/cjs/shared/auth.d.ts +1 -1
  140. package/dist/cjs/shared/auth.js +1 -1
  141. package/dist/cjs/shared/auth.js.map +1 -1
  142. package/dist/cjs/shared/protocol.d.ts +220 -3
  143. package/dist/cjs/shared/protocol.d.ts.map +1 -1
  144. package/dist/cjs/shared/protocol.js +699 -38
  145. package/dist/cjs/shared/protocol.js.map +1 -1
  146. package/dist/cjs/shared/responseMessage.d.ts +45 -0
  147. package/dist/cjs/shared/responseMessage.d.ts.map +1 -0
  148. package/dist/cjs/shared/responseMessage.js +23 -0
  149. package/dist/cjs/shared/responseMessage.js.map +1 -0
  150. package/dist/cjs/shared/transport.d.ts +1 -1
  151. package/dist/cjs/types.d.ts +2369 -73
  152. package/dist/cjs/types.d.ts.map +1 -1
  153. package/dist/cjs/types.js +310 -18
  154. package/dist/cjs/types.js.map +1 -1
  155. package/dist/esm/client/auth-extensions.d.ts +178 -0
  156. package/dist/esm/client/auth-extensions.d.ts.map +1 -0
  157. package/dist/esm/client/auth-extensions.js +270 -0
  158. package/dist/esm/client/auth-extensions.js.map +1 -0
  159. package/dist/esm/client/auth.d.ts +90 -2
  160. package/dist/esm/client/auth.d.ts.map +1 -1
  161. package/dist/esm/client/auth.js +129 -75
  162. package/dist/esm/client/auth.js.map +1 -1
  163. package/dist/esm/client/index.d.ts +122 -14
  164. package/dist/esm/client/index.d.ts.map +1 -1
  165. package/dist/esm/client/index.js +126 -4
  166. package/dist/esm/client/index.js.map +1 -1
  167. package/dist/esm/client/sse.d.ts.map +1 -1
  168. package/dist/esm/client/sse.js +7 -3
  169. package/dist/esm/client/sse.js.map +1 -1
  170. package/dist/esm/client/stdio.d.ts +0 -1
  171. package/dist/esm/client/stdio.d.ts.map +1 -1
  172. package/dist/esm/client/stdio.js +36 -11
  173. package/dist/esm/client/stdio.js.map +1 -1
  174. package/dist/esm/client/streamableHttp.d.ts +1 -0
  175. package/dist/esm/client/streamableHttp.d.ts.map +1 -1
  176. package/dist/esm/client/streamableHttp.js +36 -15
  177. package/dist/esm/client/streamableHttp.js.map +1 -1
  178. package/dist/esm/examples/client/simpleClientCredentials.d.ts +20 -0
  179. package/dist/esm/examples/client/simpleClientCredentials.d.ts.map +1 -0
  180. package/dist/esm/examples/client/simpleClientCredentials.js +68 -0
  181. package/dist/esm/examples/client/simpleClientCredentials.js.map +1 -0
  182. package/dist/esm/examples/client/simpleOAuthClient.js +77 -1
  183. package/dist/esm/examples/client/simpleOAuthClient.js.map +1 -1
  184. package/dist/esm/examples/client/simpleStreamableHttp.js +75 -4
  185. package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -1
  186. package/dist/esm/examples/client/simpleTaskInteractiveClient.d.ts +10 -0
  187. package/dist/esm/examples/client/simpleTaskInteractiveClient.d.ts.map +1 -0
  188. package/dist/esm/examples/client/simpleTaskInteractiveClient.js +156 -0
  189. package/dist/esm/examples/client/simpleTaskInteractiveClient.js.map +1 -0
  190. package/dist/esm/examples/server/elicitationFormExample.js +2 -9
  191. package/dist/esm/examples/server/elicitationFormExample.js.map +1 -1
  192. package/dist/esm/examples/server/elicitationUrlExample.js +4 -3
  193. package/dist/esm/examples/server/elicitationUrlExample.js.map +1 -1
  194. package/dist/esm/examples/server/jsonResponseStreamableHttp.js +2 -9
  195. package/dist/esm/examples/server/jsonResponseStreamableHttp.js.map +1 -1
  196. package/dist/esm/examples/server/simpleSseServer.js +2 -3
  197. package/dist/esm/examples/server/simpleSseServer.js.map +1 -1
  198. package/dist/esm/examples/server/simpleStatelessStreamableHttp.js +2 -9
  199. package/dist/esm/examples/server/simpleStatelessStreamableHttp.js.map +1 -1
  200. package/dist/esm/examples/server/simpleStreamableHttp.js +62 -19
  201. package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -1
  202. package/dist/esm/examples/server/simpleTaskInteractive.d.ts +12 -0
  203. package/dist/esm/examples/server/simpleTaskInteractive.d.ts.map +1 -0
  204. package/dist/esm/examples/server/simpleTaskInteractive.js +601 -0
  205. package/dist/esm/examples/server/simpleTaskInteractive.js.map +1 -0
  206. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js +2 -9
  207. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -1
  208. package/dist/esm/examples/server/ssePollingExample.js +11 -25
  209. package/dist/esm/examples/server/ssePollingExample.js.map +1 -1
  210. package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js +2 -3
  211. package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -1
  212. package/dist/esm/examples/server/toolWithSampleServer.js +7 -5
  213. package/dist/esm/examples/server/toolWithSampleServer.js.map +1 -1
  214. package/dist/esm/experimental/index.d.ts +13 -0
  215. package/dist/esm/experimental/index.d.ts.map +1 -0
  216. package/dist/esm/experimental/index.js +13 -0
  217. package/dist/esm/experimental/index.js.map +1 -0
  218. package/dist/esm/experimental/tasks/client.d.ts +121 -0
  219. package/dist/esm/experimental/tasks/client.d.ts.map +1 -0
  220. package/dist/esm/experimental/tasks/client.js +185 -0
  221. package/dist/esm/experimental/tasks/client.js.map +1 -0
  222. package/dist/esm/experimental/tasks/helpers.d.ts +47 -0
  223. package/dist/esm/experimental/tasks/helpers.d.ts.map +1 -0
  224. package/dist/esm/experimental/tasks/helpers.js +66 -0
  225. package/dist/esm/experimental/tasks/helpers.js.map +1 -0
  226. package/dist/esm/experimental/tasks/index.d.ts +16 -0
  227. package/dist/esm/experimental/tasks/index.d.ts.map +1 -0
  228. package/dist/esm/experimental/tasks/index.js +20 -0
  229. package/dist/esm/experimental/tasks/index.js.map +1 -0
  230. package/dist/esm/experimental/tasks/interfaces.d.ts +232 -0
  231. package/dist/esm/experimental/tasks/interfaces.d.ts.map +1 -0
  232. package/dist/esm/experimental/tasks/interfaces.js +16 -0
  233. package/dist/esm/experimental/tasks/interfaces.js.map +1 -0
  234. package/dist/esm/experimental/tasks/mcp-server.d.ts +77 -0
  235. package/dist/esm/experimental/tasks/mcp-server.d.ts.map +1 -0
  236. package/dist/esm/experimental/tasks/mcp-server.js +32 -0
  237. package/dist/esm/experimental/tasks/mcp-server.js.map +1 -0
  238. package/dist/esm/experimental/tasks/server.d.ts +83 -0
  239. package/dist/esm/experimental/tasks/server.d.ts.map +1 -0
  240. package/dist/esm/experimental/tasks/server.js +89 -0
  241. package/dist/esm/experimental/tasks/server.js.map +1 -0
  242. package/dist/esm/experimental/tasks/stores/in-memory.d.ts +94 -0
  243. package/dist/esm/experimental/tasks/stores/in-memory.d.ts.map +1 -0
  244. package/dist/esm/experimental/tasks/stores/in-memory.js +248 -0
  245. package/dist/esm/experimental/tasks/stores/in-memory.js.map +1 -0
  246. package/dist/esm/experimental/tasks/types.d.ts +10 -0
  247. package/dist/esm/experimental/tasks/types.d.ts.map +1 -0
  248. package/dist/esm/experimental/tasks/types.js +10 -0
  249. package/dist/esm/experimental/tasks/types.js.map +1 -0
  250. package/dist/esm/server/auth/errors.d.ts +7 -0
  251. package/dist/esm/server/auth/errors.d.ts.map +1 -1
  252. package/dist/esm/server/auth/errors.js +9 -1
  253. package/dist/esm/server/auth/errors.js.map +1 -1
  254. package/dist/esm/server/auth/handlers/token.d.ts.map +1 -1
  255. package/dist/esm/server/auth/handlers/token.js +2 -2
  256. package/dist/esm/server/auth/handlers/token.js.map +1 -1
  257. package/dist/esm/server/auth/middleware/clientAuth.d.ts.map +1 -1
  258. package/dist/esm/server/auth/middleware/clientAuth.js +0 -4
  259. package/dist/esm/server/auth/middleware/clientAuth.js.map +1 -1
  260. package/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -1
  261. package/dist/esm/server/auth/providers/proxyProvider.js +8 -4
  262. package/dist/esm/server/auth/providers/proxyProvider.js.map +1 -1
  263. package/dist/esm/server/auth/router.d.ts.map +1 -1
  264. package/dist/esm/server/auth/router.js +7 -1
  265. package/dist/esm/server/auth/router.js.map +1 -1
  266. package/dist/esm/server/index.d.ts +91 -168
  267. package/dist/esm/server/index.d.ts.map +1 -1
  268. package/dist/esm/server/index.js +159 -1
  269. package/dist/esm/server/index.js.map +1 -1
  270. package/dist/esm/server/mcp.d.ts +41 -6
  271. package/dist/esm/server/mcp.d.ts.map +1 -1
  272. package/dist/esm/server/mcp.js +203 -48
  273. package/dist/esm/server/mcp.js.map +1 -1
  274. package/dist/esm/server/middleware/hostHeaderValidation.d.ts +32 -0
  275. package/dist/esm/server/middleware/hostHeaderValidation.d.ts.map +1 -0
  276. package/dist/esm/server/middleware/hostHeaderValidation.js +76 -0
  277. package/dist/esm/server/middleware/hostHeaderValidation.js.map +1 -0
  278. package/dist/esm/server/sse.d.ts +6 -0
  279. package/dist/esm/server/sse.d.ts.map +1 -1
  280. package/dist/esm/server/sse.js +2 -2
  281. package/dist/esm/server/sse.js.map +1 -1
  282. package/dist/esm/server/stdio.d.ts +1 -1
  283. package/dist/esm/server/stdio.js +1 -1
  284. package/dist/esm/server/streamableHttp.d.ts +11 -0
  285. package/dist/esm/server/streamableHttp.d.ts.map +1 -1
  286. package/dist/esm/server/streamableHttp.js +30 -7
  287. package/dist/esm/server/streamableHttp.js.map +1 -1
  288. package/dist/esm/server/zod-compat.d.ts +1 -1
  289. package/dist/esm/server/zod-compat.d.ts.map +1 -1
  290. package/dist/esm/server/zod-compat.js +2 -2
  291. package/dist/esm/server/zod-compat.js.map +1 -1
  292. package/dist/esm/shared/auth.d.ts +1 -1
  293. package/dist/esm/shared/auth.js +1 -1
  294. package/dist/esm/shared/auth.js.map +1 -1
  295. package/dist/esm/shared/protocol.d.ts +220 -3
  296. package/dist/esm/shared/protocol.d.ts.map +1 -1
  297. package/dist/esm/shared/protocol.js +700 -39
  298. package/dist/esm/shared/protocol.js.map +1 -1
  299. package/dist/esm/shared/responseMessage.d.ts +45 -0
  300. package/dist/esm/shared/responseMessage.d.ts.map +1 -0
  301. package/dist/esm/shared/responseMessage.js +19 -0
  302. package/dist/esm/shared/responseMessage.js.map +1 -0
  303. package/dist/esm/shared/transport.d.ts +1 -1
  304. package/dist/esm/types.d.ts +2369 -73
  305. package/dist/esm/types.d.ts.map +1 -1
  306. package/dist/esm/types.js +306 -15
  307. package/dist/esm/types.js.map +1 -1
  308. package/package.json +12 -1
  309. package/dist/cjs/shared/zodTestMatrix.d.ts +0 -16
  310. package/dist/cjs/shared/zodTestMatrix.d.ts.map +0 -1
  311. package/dist/cjs/shared/zodTestMatrix.js +0 -43
  312. package/dist/cjs/shared/zodTestMatrix.js.map +0 -1
  313. package/dist/esm/shared/zodTestMatrix.d.ts +0 -16
  314. package/dist/esm/shared/zodTestMatrix.d.ts.map +0 -1
  315. package/dist/esm/shared/zodTestMatrix.js +0 -17
  316. package/dist/esm/shared/zodTestMatrix.js.map +0 -1
@@ -0,0 +1,603 @@
1
+ "use strict";
2
+ /**
3
+ * Simple interactive task server demonstrating elicitation and sampling.
4
+ *
5
+ * This server demonstrates the task message queue pattern from the MCP Tasks spec:
6
+ * - confirm_delete: Uses elicitation to ask the user for confirmation
7
+ * - write_haiku: Uses sampling to request an LLM to generate content
8
+ *
9
+ * Both tools use the "call-now, fetch-later" pattern where the initial call
10
+ * creates a task, and the result is fetched via tasks/result endpoint.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ const node_crypto_1 = require("node:crypto");
14
+ const index_js_1 = require("../../server/index.js");
15
+ const streamableHttp_js_1 = require("../../server/streamableHttp.js");
16
+ const types_js_1 = require("../../types.js");
17
+ const interfaces_js_1 = require("../../experimental/tasks/interfaces.js");
18
+ const in_memory_js_1 = require("../../experimental/tasks/stores/in-memory.js");
19
+ // ============================================================================
20
+ // Resolver - Promise-like for passing results between async operations
21
+ // ============================================================================
22
+ class Resolver {
23
+ constructor() {
24
+ this._done = false;
25
+ this._promise = new Promise((resolve, reject) => {
26
+ this._resolve = resolve;
27
+ this._reject = reject;
28
+ });
29
+ }
30
+ setResult(value) {
31
+ if (this._done)
32
+ return;
33
+ this._done = true;
34
+ this._resolve(value);
35
+ }
36
+ setException(error) {
37
+ if (this._done)
38
+ return;
39
+ this._done = true;
40
+ this._reject(error);
41
+ }
42
+ wait() {
43
+ return this._promise;
44
+ }
45
+ done() {
46
+ return this._done;
47
+ }
48
+ }
49
+ class TaskMessageQueueWithResolvers {
50
+ constructor() {
51
+ this.queues = new Map();
52
+ this.waitResolvers = new Map();
53
+ }
54
+ getQueue(taskId) {
55
+ let queue = this.queues.get(taskId);
56
+ if (!queue) {
57
+ queue = [];
58
+ this.queues.set(taskId, queue);
59
+ }
60
+ return queue;
61
+ }
62
+ async enqueue(taskId, message, _sessionId, maxSize) {
63
+ const queue = this.getQueue(taskId);
64
+ if (maxSize !== undefined && queue.length >= maxSize) {
65
+ throw new Error(`Task message queue overflow: queue size (${queue.length}) exceeds maximum (${maxSize})`);
66
+ }
67
+ queue.push(message);
68
+ // Notify any waiters
69
+ this.notifyWaiters(taskId);
70
+ }
71
+ async enqueueWithResolver(taskId, message, resolver, originalRequestId) {
72
+ const queue = this.getQueue(taskId);
73
+ const queuedMessage = {
74
+ type: 'request',
75
+ message,
76
+ timestamp: Date.now(),
77
+ resolver,
78
+ originalRequestId
79
+ };
80
+ queue.push(queuedMessage);
81
+ this.notifyWaiters(taskId);
82
+ }
83
+ async dequeue(taskId, _sessionId) {
84
+ const queue = this.getQueue(taskId);
85
+ return queue.shift();
86
+ }
87
+ async dequeueAll(taskId, _sessionId) {
88
+ var _a;
89
+ const queue = (_a = this.queues.get(taskId)) !== null && _a !== void 0 ? _a : [];
90
+ this.queues.delete(taskId);
91
+ return queue;
92
+ }
93
+ async waitForMessage(taskId) {
94
+ // Check if there are already messages
95
+ const queue = this.getQueue(taskId);
96
+ if (queue.length > 0)
97
+ return;
98
+ // Wait for a message to be added
99
+ return new Promise(resolve => {
100
+ let waiters = this.waitResolvers.get(taskId);
101
+ if (!waiters) {
102
+ waiters = [];
103
+ this.waitResolvers.set(taskId, waiters);
104
+ }
105
+ waiters.push(resolve);
106
+ });
107
+ }
108
+ notifyWaiters(taskId) {
109
+ const waiters = this.waitResolvers.get(taskId);
110
+ if (waiters) {
111
+ this.waitResolvers.delete(taskId);
112
+ for (const resolve of waiters) {
113
+ resolve();
114
+ }
115
+ }
116
+ }
117
+ cleanup() {
118
+ this.queues.clear();
119
+ this.waitResolvers.clear();
120
+ }
121
+ }
122
+ // ============================================================================
123
+ // Extended task store with wait functionality
124
+ // ============================================================================
125
+ class TaskStoreWithNotifications extends in_memory_js_1.InMemoryTaskStore {
126
+ constructor() {
127
+ super(...arguments);
128
+ this.updateResolvers = new Map();
129
+ }
130
+ async updateTaskStatus(taskId, status, statusMessage, sessionId) {
131
+ await super.updateTaskStatus(taskId, status, statusMessage, sessionId);
132
+ this.notifyUpdate(taskId);
133
+ }
134
+ async storeTaskResult(taskId, status, result, sessionId) {
135
+ await super.storeTaskResult(taskId, status, result, sessionId);
136
+ this.notifyUpdate(taskId);
137
+ }
138
+ async waitForUpdate(taskId) {
139
+ return new Promise(resolve => {
140
+ let waiters = this.updateResolvers.get(taskId);
141
+ if (!waiters) {
142
+ waiters = [];
143
+ this.updateResolvers.set(taskId, waiters);
144
+ }
145
+ waiters.push(resolve);
146
+ });
147
+ }
148
+ notifyUpdate(taskId) {
149
+ const waiters = this.updateResolvers.get(taskId);
150
+ if (waiters) {
151
+ this.updateResolvers.delete(taskId);
152
+ for (const resolve of waiters) {
153
+ resolve();
154
+ }
155
+ }
156
+ }
157
+ }
158
+ // ============================================================================
159
+ // Task Result Handler - delivers queued messages and routes responses
160
+ // ============================================================================
161
+ class TaskResultHandler {
162
+ constructor(store, queue) {
163
+ this.store = store;
164
+ this.queue = queue;
165
+ this.pendingRequests = new Map();
166
+ }
167
+ async handle(taskId, server, _sessionId) {
168
+ while (true) {
169
+ // Get fresh task state
170
+ const task = await this.store.getTask(taskId);
171
+ if (!task) {
172
+ throw new Error(`Task not found: ${taskId}`);
173
+ }
174
+ // Dequeue and send all pending messages
175
+ await this.deliverQueuedMessages(taskId, server, _sessionId);
176
+ // If task is terminal, return result
177
+ if ((0, interfaces_js_1.isTerminal)(task.status)) {
178
+ const result = await this.store.getTaskResult(taskId);
179
+ // Add related-task metadata per spec
180
+ return {
181
+ ...result,
182
+ _meta: {
183
+ ...(result._meta || {}),
184
+ [types_js_1.RELATED_TASK_META_KEY]: { taskId }
185
+ }
186
+ };
187
+ }
188
+ // Wait for task update or new message
189
+ await this.waitForUpdate(taskId);
190
+ }
191
+ }
192
+ async deliverQueuedMessages(taskId, server, _sessionId) {
193
+ while (true) {
194
+ const message = await this.queue.dequeue(taskId);
195
+ if (!message)
196
+ break;
197
+ console.log(`[Server] Delivering queued ${message.type} message for task ${taskId}`);
198
+ if (message.type === 'request') {
199
+ const reqMessage = message;
200
+ // Send the request via the server
201
+ // Store the resolver so we can route the response back
202
+ if (reqMessage.resolver && reqMessage.originalRequestId) {
203
+ this.pendingRequests.set(reqMessage.originalRequestId, reqMessage.resolver);
204
+ }
205
+ // Send the message - for elicitation/sampling, we use the server's methods
206
+ // But since we're in tasks/result context, we need to send via transport
207
+ // This is simplified - in production you'd use proper message routing
208
+ try {
209
+ const request = reqMessage.message;
210
+ let response;
211
+ if (request.method === 'elicitation/create') {
212
+ // Send elicitation request to client
213
+ const params = request.params;
214
+ response = await server.elicitInput(params);
215
+ }
216
+ else if (request.method === 'sampling/createMessage') {
217
+ // Send sampling request to client
218
+ const params = request.params;
219
+ response = await server.createMessage(params);
220
+ }
221
+ else {
222
+ throw new Error(`Unknown request method: ${request.method}`);
223
+ }
224
+ // Route response back to resolver
225
+ if (reqMessage.resolver) {
226
+ reqMessage.resolver.setResult(response);
227
+ }
228
+ }
229
+ catch (error) {
230
+ if (reqMessage.resolver) {
231
+ reqMessage.resolver.setException(error instanceof Error ? error : new Error(String(error)));
232
+ }
233
+ }
234
+ }
235
+ // For notifications, we'd send them too but this example focuses on requests
236
+ }
237
+ }
238
+ async waitForUpdate(taskId) {
239
+ // Race between store update and queue message
240
+ await Promise.race([this.store.waitForUpdate(taskId), this.queue.waitForMessage(taskId)]);
241
+ }
242
+ routeResponse(requestId, response) {
243
+ const resolver = this.pendingRequests.get(requestId);
244
+ if (resolver && !resolver.done()) {
245
+ this.pendingRequests.delete(requestId);
246
+ resolver.setResult(response);
247
+ return true;
248
+ }
249
+ return false;
250
+ }
251
+ routeError(requestId, error) {
252
+ const resolver = this.pendingRequests.get(requestId);
253
+ if (resolver && !resolver.done()) {
254
+ this.pendingRequests.delete(requestId);
255
+ resolver.setException(error);
256
+ return true;
257
+ }
258
+ return false;
259
+ }
260
+ }
261
+ // ============================================================================
262
+ // Task Session - wraps server to enqueue requests during task execution
263
+ // ============================================================================
264
+ class TaskSession {
265
+ constructor(server, taskId, store, queue) {
266
+ this.server = server;
267
+ this.taskId = taskId;
268
+ this.store = store;
269
+ this.queue = queue;
270
+ this.requestCounter = 0;
271
+ }
272
+ nextRequestId() {
273
+ return `task-${this.taskId}-${++this.requestCounter}`;
274
+ }
275
+ async elicit(message, requestedSchema) {
276
+ // Update task status to input_required
277
+ await this.store.updateTaskStatus(this.taskId, 'input_required');
278
+ const requestId = this.nextRequestId();
279
+ // Build the elicitation request with related-task metadata
280
+ const params = {
281
+ message,
282
+ requestedSchema,
283
+ mode: 'form',
284
+ _meta: {
285
+ [types_js_1.RELATED_TASK_META_KEY]: { taskId: this.taskId }
286
+ }
287
+ };
288
+ const jsonrpcRequest = {
289
+ jsonrpc: '2.0',
290
+ id: requestId,
291
+ method: 'elicitation/create',
292
+ params
293
+ };
294
+ // Create resolver to wait for response
295
+ const resolver = new Resolver();
296
+ // Enqueue the request
297
+ await this.queue.enqueueWithResolver(this.taskId, jsonrpcRequest, resolver, requestId);
298
+ try {
299
+ // Wait for response
300
+ const response = await resolver.wait();
301
+ // Update status back to working
302
+ await this.store.updateTaskStatus(this.taskId, 'working');
303
+ return response;
304
+ }
305
+ catch (error) {
306
+ await this.store.updateTaskStatus(this.taskId, 'working');
307
+ throw error;
308
+ }
309
+ }
310
+ async createMessage(messages, maxTokens) {
311
+ // Update task status to input_required
312
+ await this.store.updateTaskStatus(this.taskId, 'input_required');
313
+ const requestId = this.nextRequestId();
314
+ // Build the sampling request with related-task metadata
315
+ const params = {
316
+ messages,
317
+ maxTokens,
318
+ _meta: {
319
+ [types_js_1.RELATED_TASK_META_KEY]: { taskId: this.taskId }
320
+ }
321
+ };
322
+ const jsonrpcRequest = {
323
+ jsonrpc: '2.0',
324
+ id: requestId,
325
+ method: 'sampling/createMessage',
326
+ params
327
+ };
328
+ // Create resolver to wait for response
329
+ const resolver = new Resolver();
330
+ // Enqueue the request
331
+ await this.queue.enqueueWithResolver(this.taskId, jsonrpcRequest, resolver, requestId);
332
+ try {
333
+ // Wait for response
334
+ const response = await resolver.wait();
335
+ // Update status back to working
336
+ await this.store.updateTaskStatus(this.taskId, 'working');
337
+ return response;
338
+ }
339
+ catch (error) {
340
+ await this.store.updateTaskStatus(this.taskId, 'working');
341
+ throw error;
342
+ }
343
+ }
344
+ }
345
+ // ============================================================================
346
+ // Server Setup
347
+ // ============================================================================
348
+ const PORT = process.env.PORT ? parseInt(process.env.PORT, 10) : 8000;
349
+ // Create shared stores
350
+ const taskStore = new TaskStoreWithNotifications();
351
+ const messageQueue = new TaskMessageQueueWithResolvers();
352
+ const taskResultHandler = new TaskResultHandler(taskStore, messageQueue);
353
+ // Track active task executions
354
+ const activeTaskExecutions = new Map();
355
+ // Create the server
356
+ const createServer = () => {
357
+ const server = new index_js_1.Server({ name: 'simple-task-interactive', version: '1.0.0' }, {
358
+ capabilities: {
359
+ tools: {},
360
+ tasks: {
361
+ requests: {
362
+ tools: { call: {} }
363
+ }
364
+ }
365
+ }
366
+ });
367
+ // Register tools
368
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
369
+ return {
370
+ tools: [
371
+ {
372
+ name: 'confirm_delete',
373
+ description: 'Asks for confirmation before deleting (demonstrates elicitation)',
374
+ inputSchema: {
375
+ type: 'object',
376
+ properties: {
377
+ filename: { type: 'string' }
378
+ }
379
+ },
380
+ execution: { taskSupport: 'required' }
381
+ },
382
+ {
383
+ name: 'write_haiku',
384
+ description: 'Asks LLM to write a haiku (demonstrates sampling)',
385
+ inputSchema: {
386
+ type: 'object',
387
+ properties: {
388
+ topic: { type: 'string' }
389
+ }
390
+ },
391
+ execution: { taskSupport: 'required' }
392
+ }
393
+ ]
394
+ };
395
+ });
396
+ // Handle tool calls
397
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request, extra) => {
398
+ var _a, _b, _c;
399
+ const { name, arguments: args } = request.params;
400
+ const taskParams = (((_a = request.params._meta) === null || _a === void 0 ? void 0 : _a.task) || request.params.task);
401
+ // Validate task mode - these tools require tasks
402
+ if (!taskParams) {
403
+ throw new Error(`Tool ${name} requires task mode`);
404
+ }
405
+ // Create task
406
+ const taskOptions = {
407
+ ttl: taskParams.ttl,
408
+ pollInterval: (_b = taskParams.pollInterval) !== null && _b !== void 0 ? _b : 1000
409
+ };
410
+ const task = await taskStore.createTask(taskOptions, extra.requestId, request, extra.sessionId);
411
+ console.log(`\n[Server] ${name} called, task created: ${task.taskId}`);
412
+ // Start background task execution
413
+ const taskExecution = (async () => {
414
+ var _a, _b;
415
+ try {
416
+ const taskSession = new TaskSession(server, task.taskId, taskStore, messageQueue);
417
+ if (name === 'confirm_delete') {
418
+ const filename = (_a = args === null || args === void 0 ? void 0 : args.filename) !== null && _a !== void 0 ? _a : 'unknown.txt';
419
+ console.log(`[Server] confirm_delete: asking about '${filename}'`);
420
+ console.log('[Server] Sending elicitation request to client...');
421
+ const result = await taskSession.elicit(`Are you sure you want to delete '${filename}'?`, {
422
+ type: 'object',
423
+ properties: {
424
+ confirm: { type: 'boolean' }
425
+ },
426
+ required: ['confirm']
427
+ });
428
+ console.log(`[Server] Received elicitation response: action=${result.action}, content=${JSON.stringify(result.content)}`);
429
+ let text;
430
+ if (result.action === 'accept' && result.content) {
431
+ const confirmed = result.content.confirm;
432
+ text = confirmed ? `Deleted '${filename}'` : 'Deletion cancelled';
433
+ }
434
+ else {
435
+ text = 'Deletion cancelled';
436
+ }
437
+ console.log(`[Server] Completing task with result: ${text}`);
438
+ await taskStore.storeTaskResult(task.taskId, 'completed', {
439
+ content: [{ type: 'text', text }]
440
+ });
441
+ }
442
+ else if (name === 'write_haiku') {
443
+ const topic = (_b = args === null || args === void 0 ? void 0 : args.topic) !== null && _b !== void 0 ? _b : 'nature';
444
+ console.log(`[Server] write_haiku: topic '${topic}'`);
445
+ console.log('[Server] Sending sampling request to client...');
446
+ const result = await taskSession.createMessage([
447
+ {
448
+ role: 'user',
449
+ content: { type: 'text', text: `Write a haiku about ${topic}` }
450
+ }
451
+ ], 50);
452
+ let haiku = 'No response';
453
+ if (result.content && 'text' in result.content) {
454
+ haiku = result.content.text;
455
+ }
456
+ console.log(`[Server] Received sampling response: ${haiku.substring(0, 50)}...`);
457
+ console.log('[Server] Completing task with haiku');
458
+ await taskStore.storeTaskResult(task.taskId, 'completed', {
459
+ content: [{ type: 'text', text: `Haiku:\n${haiku}` }]
460
+ });
461
+ }
462
+ }
463
+ catch (error) {
464
+ console.error(`[Server] Task ${task.taskId} failed:`, error);
465
+ await taskStore.storeTaskResult(task.taskId, 'failed', {
466
+ content: [{ type: 'text', text: `Error: ${error}` }],
467
+ isError: true
468
+ });
469
+ }
470
+ finally {
471
+ activeTaskExecutions.delete(task.taskId);
472
+ }
473
+ })();
474
+ activeTaskExecutions.set(task.taskId, {
475
+ promise: taskExecution,
476
+ server,
477
+ sessionId: (_c = extra.sessionId) !== null && _c !== void 0 ? _c : ''
478
+ });
479
+ return { task };
480
+ });
481
+ // Handle tasks/get
482
+ server.setRequestHandler(types_js_1.GetTaskRequestSchema, async (request) => {
483
+ const { taskId } = request.params;
484
+ const task = await taskStore.getTask(taskId);
485
+ if (!task) {
486
+ throw new Error(`Task ${taskId} not found`);
487
+ }
488
+ return task;
489
+ });
490
+ // Handle tasks/result
491
+ server.setRequestHandler(types_js_1.GetTaskPayloadRequestSchema, async (request, extra) => {
492
+ var _a;
493
+ const { taskId } = request.params;
494
+ console.log(`[Server] tasks/result called for task ${taskId}`);
495
+ return taskResultHandler.handle(taskId, server, (_a = extra.sessionId) !== null && _a !== void 0 ? _a : '');
496
+ });
497
+ return server;
498
+ };
499
+ // ============================================================================
500
+ // Express App Setup
501
+ // ============================================================================
502
+ const app = (0, index_js_1.createMcpExpressApp)();
503
+ // Map to store transports by session ID
504
+ const transports = {};
505
+ // Helper to check if request is initialize
506
+ const isInitializeRequest = (body) => {
507
+ return typeof body === 'object' && body !== null && 'method' in body && body.method === 'initialize';
508
+ };
509
+ // MCP POST endpoint
510
+ app.post('/mcp', async (req, res) => {
511
+ const sessionId = req.headers['mcp-session-id'];
512
+ try {
513
+ let transport;
514
+ if (sessionId && transports[sessionId]) {
515
+ transport = transports[sessionId];
516
+ }
517
+ else if (!sessionId && isInitializeRequest(req.body)) {
518
+ transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
519
+ sessionIdGenerator: () => (0, node_crypto_1.randomUUID)(),
520
+ onsessioninitialized: sid => {
521
+ console.log(`Session initialized: ${sid}`);
522
+ transports[sid] = transport;
523
+ }
524
+ });
525
+ transport.onclose = () => {
526
+ const sid = transport.sessionId;
527
+ if (sid && transports[sid]) {
528
+ console.log(`Transport closed for session ${sid}`);
529
+ delete transports[sid];
530
+ }
531
+ };
532
+ const server = createServer();
533
+ await server.connect(transport);
534
+ await transport.handleRequest(req, res, req.body);
535
+ return;
536
+ }
537
+ else {
538
+ res.status(400).json({
539
+ jsonrpc: '2.0',
540
+ error: { code: -32000, message: 'Bad Request: No valid session ID' },
541
+ id: null
542
+ });
543
+ return;
544
+ }
545
+ await transport.handleRequest(req, res, req.body);
546
+ }
547
+ catch (error) {
548
+ console.error('Error handling MCP request:', error);
549
+ if (!res.headersSent) {
550
+ res.status(500).json({
551
+ jsonrpc: '2.0',
552
+ error: { code: -32603, message: 'Internal server error' },
553
+ id: null
554
+ });
555
+ }
556
+ }
557
+ });
558
+ // Handle GET requests for SSE streams
559
+ app.get('/mcp', async (req, res) => {
560
+ const sessionId = req.headers['mcp-session-id'];
561
+ if (!sessionId || !transports[sessionId]) {
562
+ res.status(400).send('Invalid or missing session ID');
563
+ return;
564
+ }
565
+ const transport = transports[sessionId];
566
+ await transport.handleRequest(req, res);
567
+ });
568
+ // Handle DELETE requests for session termination
569
+ app.delete('/mcp', async (req, res) => {
570
+ const sessionId = req.headers['mcp-session-id'];
571
+ if (!sessionId || !transports[sessionId]) {
572
+ res.status(400).send('Invalid or missing session ID');
573
+ return;
574
+ }
575
+ console.log(`Session termination request: ${sessionId}`);
576
+ const transport = transports[sessionId];
577
+ await transport.handleRequest(req, res);
578
+ });
579
+ // Start server
580
+ app.listen(PORT, () => {
581
+ console.log(`Starting server on http://localhost:${PORT}/mcp`);
582
+ console.log('\nAvailable tools:');
583
+ console.log(' - confirm_delete: Demonstrates elicitation (asks user y/n)');
584
+ console.log(' - write_haiku: Demonstrates sampling (requests LLM completion)');
585
+ });
586
+ // Handle shutdown
587
+ process.on('SIGINT', async () => {
588
+ console.log('\nShutting down server...');
589
+ for (const sessionId of Object.keys(transports)) {
590
+ try {
591
+ await transports[sessionId].close();
592
+ delete transports[sessionId];
593
+ }
594
+ catch (error) {
595
+ console.error(`Error closing session ${sessionId}:`, error);
596
+ }
597
+ }
598
+ taskStore.cleanup();
599
+ messageQueue.cleanup();
600
+ console.log('Server shutdown complete');
601
+ process.exit(0);
602
+ });
603
+ //# sourceMappingURL=simpleTaskInteractive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpleTaskInteractive.js","sourceRoot":"","sources":["../../../../src/examples/server/simpleTaskInteractive.ts"],"names":[],"mappings":"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"}
@@ -22,11 +22,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
25
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const express_1 = __importDefault(require("express"));
30
26
  const node_crypto_1 = require("node:crypto");
31
27
  const mcp_js_1 = require("../../server/mcp.js");
32
28
  const streamableHttp_js_1 = require("../../server/streamableHttp.js");
@@ -34,7 +30,7 @@ const sse_js_1 = require("../../server/sse.js");
34
30
  const z = __importStar(require("zod/v4"));
35
31
  const types_js_1 = require("../../types.js");
36
32
  const inMemoryEventStore_js_1 = require("../shared/inMemoryEventStore.js");
37
- const cors_1 = __importDefault(require("cors"));
33
+ const index_js_1 = require("../../server/index.js");
38
34
  /**
39
35
  * This example server demonstrates backwards compatibility with both:
40
36
  * 1. The deprecated HTTP+SSE transport (protocol version 2024-11-05)
@@ -83,13 +79,7 @@ const getServer = () => {
83
79
  return server;
84
80
  };
85
81
  // Create Express application
86
- const app = (0, express_1.default)();
87
- app.use(express_1.default.json());
88
- // Configure CORS to expose Mcp-Session-Id header for browser-based clients
89
- app.use((0, cors_1.default)({
90
- origin: '*', // Allow all origins - adjust as needed for production
91
- exposedHeaders: ['Mcp-Session-Id']
92
- }));
82
+ const app = (0, index_js_1.createMcpExpressApp)();
93
83
  // Store transports by session ID
94
84
  const transports = {};
95
85
  //=============================================================================