managed-deepagents 0.4.2 → 0.4.3-dev.95

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 (449) hide show
  1. package/README.md +78 -35
  2. package/dist/channels/assistant-text.js +1 -1
  3. package/dist/channels/assistant-text.js.map +1 -1
  4. package/dist/channels/binding.d.ts.map +1 -1
  5. package/dist/channels/binding.js +3 -1
  6. package/dist/channels/binding.js.map +1 -1
  7. package/dist/channels/index.d.ts +7 -8
  8. package/dist/channels/index.d.ts.map +1 -1
  9. package/dist/channels/index.js +6 -5
  10. package/dist/channels/index.js.map +1 -1
  11. package/dist/channels/manifest.d.ts +7 -4
  12. package/dist/channels/manifest.d.ts.map +1 -1
  13. package/dist/channels/messaging-registry.d.ts +21 -0
  14. package/dist/channels/messaging-registry.d.ts.map +1 -0
  15. package/dist/channels/messaging-registry.js +50 -0
  16. package/dist/channels/messaging-registry.js.map +1 -0
  17. package/dist/channels/registry-types.d.ts +1 -1
  18. package/dist/channels/registry.d.ts +4 -3
  19. package/dist/channels/registry.d.ts.map +1 -1
  20. package/dist/channels/registry.js +5 -6
  21. package/dist/channels/registry.js.map +1 -1
  22. package/dist/channels/schedule-delivery.d.ts +4 -1
  23. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  24. package/dist/channels/schedule-delivery.js +3 -1
  25. package/dist/channels/schedule-delivery.js.map +1 -1
  26. package/dist/channels/slack/adapter.d.ts +1 -2
  27. package/dist/channels/slack/adapter.d.ts.map +1 -1
  28. package/dist/channels/slack/adapter.js +0 -2
  29. package/dist/channels/slack/adapter.js.map +1 -1
  30. package/dist/channels/slack/http.d.ts +7 -39
  31. package/dist/channels/slack/http.d.ts.map +1 -1
  32. package/dist/channels/slack/http.js +64 -122
  33. package/dist/channels/slack/http.js.map +1 -1
  34. package/dist/channels/slack/index.d.ts +94 -8
  35. package/dist/channels/slack/index.d.ts.map +1 -1
  36. package/dist/channels/slack/index.js +144 -6
  37. package/dist/channels/slack/index.js.map +1 -1
  38. package/dist/channels/slack/normalize.d.ts +6 -4
  39. package/dist/channels/slack/normalize.d.ts.map +1 -1
  40. package/dist/channels/slack/normalize.js +61 -28
  41. package/dist/channels/slack/normalize.js.map +1 -1
  42. package/dist/channels/slack/transport.d.ts.map +1 -1
  43. package/dist/channels/slack/transport.js +3 -2
  44. package/dist/channels/slack/transport.js.map +1 -1
  45. package/dist/channels/store.d.ts +14 -0
  46. package/dist/channels/store.d.ts.map +1 -1
  47. package/dist/channels/store.js +41 -27
  48. package/dist/channels/store.js.map +1 -1
  49. package/dist/connectors/marketplace/catalog.d.ts +96 -0
  50. package/dist/connectors/marketplace/catalog.d.ts.map +1 -0
  51. package/dist/connectors/marketplace/catalog.js +213 -0
  52. package/dist/connectors/marketplace/catalog.js.map +1 -0
  53. package/dist/connectors/marketplace/fleet-mcp.d.ts +62 -0
  54. package/dist/connectors/marketplace/fleet-mcp.d.ts.map +1 -0
  55. package/dist/connectors/marketplace/fleet-mcp.js +215 -0
  56. package/dist/connectors/marketplace/fleet-mcp.js.map +1 -0
  57. package/dist/connectors/marketplace/index.d.ts +31 -0
  58. package/dist/connectors/marketplace/index.d.ts.map +1 -0
  59. package/dist/connectors/marketplace/index.js +39 -0
  60. package/dist/connectors/marketplace/index.js.map +1 -0
  61. package/dist/connectors/marketplace/load.d.ts +14 -0
  62. package/dist/connectors/marketplace/load.d.ts.map +1 -0
  63. package/dist/connectors/marketplace/load.js +206 -0
  64. package/dist/connectors/marketplace/load.js.map +1 -0
  65. package/dist/connectors/mcp/index.d.ts +13 -20
  66. package/dist/connectors/mcp/index.d.ts.map +1 -1
  67. package/dist/connectors/mcp/index.js +92 -112
  68. package/dist/connectors/mcp/index.js.map +1 -1
  69. package/dist/connectors/mcp/load.d.ts.map +1 -1
  70. package/dist/connectors/mcp/load.js +16 -40
  71. package/dist/connectors/mcp/load.js.map +1 -1
  72. package/dist/connectors/slack/index.d.ts +24 -0
  73. package/dist/connectors/slack/index.d.ts.map +1 -0
  74. package/dist/connectors/slack/index.js +64 -0
  75. package/dist/connectors/slack/index.js.map +1 -0
  76. package/dist/connectors/tool-selection.d.ts +55 -0
  77. package/dist/connectors/tool-selection.d.ts.map +1 -0
  78. package/dist/connectors/tool-selection.js +112 -0
  79. package/dist/connectors/tool-selection.js.map +1 -0
  80. package/dist/connectors/toolserver/catalog.d.ts +326 -0
  81. package/dist/connectors/toolserver/catalog.d.ts.map +1 -0
  82. package/dist/connectors/toolserver/catalog.js +415 -0
  83. package/dist/connectors/toolserver/catalog.js.map +1 -0
  84. package/dist/connectors/toolserver/connectors.d.ts +698 -0
  85. package/dist/connectors/toolserver/connectors.d.ts.map +1 -0
  86. package/dist/connectors/toolserver/connectors.js +13 -0
  87. package/dist/connectors/toolserver/connectors.js.map +1 -0
  88. package/dist/connectors/toolserver/index.d.ts +142 -0
  89. package/dist/connectors/toolserver/index.d.ts.map +1 -0
  90. package/dist/connectors/toolserver/index.js +105 -0
  91. package/dist/connectors/toolserver/index.js.map +1 -0
  92. package/dist/connectors/toolserver/integrations.d.ts +103 -0
  93. package/dist/connectors/toolserver/integrations.d.ts.map +1 -0
  94. package/dist/connectors/toolserver/integrations.js +288 -0
  95. package/dist/connectors/toolserver/integrations.js.map +1 -0
  96. package/dist/connectors/toolserver/load.d.ts +55 -0
  97. package/dist/connectors/toolserver/load.d.ts.map +1 -0
  98. package/dist/connectors/toolserver/load.js +289 -0
  99. package/dist/connectors/toolserver/load.js.map +1 -0
  100. package/dist/define-deep-agent.d.ts.map +1 -1
  101. package/dist/define-deep-agent.js +9 -3
  102. package/dist/define-deep-agent.js.map +1 -1
  103. package/dist/extension.d.ts +69 -0
  104. package/dist/extension.d.ts.map +1 -0
  105. package/dist/extension.js +108 -0
  106. package/dist/extension.js.map +1 -0
  107. package/dist/identity/actor-subject.d.ts +60 -0
  108. package/dist/identity/actor-subject.d.ts.map +1 -0
  109. package/dist/identity/actor-subject.js +107 -0
  110. package/dist/identity/actor-subject.js.map +1 -0
  111. package/dist/identity/byo-oauth.d.ts +105 -0
  112. package/dist/identity/byo-oauth.d.ts.map +1 -0
  113. package/dist/identity/byo-oauth.js +190 -0
  114. package/dist/identity/byo-oauth.js.map +1 -0
  115. package/dist/identity/claims.d.ts +16 -0
  116. package/dist/identity/claims.d.ts.map +1 -0
  117. package/dist/identity/claims.js +33 -0
  118. package/dist/identity/claims.js.map +1 -0
  119. package/dist/identity/connect-inference.d.ts +37 -0
  120. package/dist/identity/connect-inference.d.ts.map +1 -0
  121. package/dist/identity/connect-inference.js +53 -0
  122. package/dist/identity/connect-inference.js.map +1 -0
  123. package/dist/identity/connect-provider-types.d.ts +35 -6
  124. package/dist/identity/connect-provider-types.d.ts.map +1 -1
  125. package/dist/identity/connect-provider-types.js +3 -1
  126. package/dist/identity/connect-provider-types.js.map +1 -1
  127. package/dist/identity/connect-provider.d.ts +9 -4
  128. package/dist/identity/connect-provider.d.ts.map +1 -1
  129. package/dist/identity/connect-provider.js +39 -13
  130. package/dist/identity/connect-provider.js.map +1 -1
  131. package/dist/identity/credential-resolvers.d.ts +33 -0
  132. package/dist/identity/credential-resolvers.d.ts.map +1 -0
  133. package/dist/identity/credential-resolvers.js +62 -0
  134. package/dist/identity/credential-resolvers.js.map +1 -0
  135. package/dist/identity/define-fleet-connect.d.ts +53 -0
  136. package/dist/identity/define-fleet-connect.d.ts.map +1 -0
  137. package/dist/identity/define-fleet-connect.js +76 -0
  138. package/dist/identity/define-fleet-connect.js.map +1 -0
  139. package/dist/identity/fleet-connect-hint.d.ts +41 -0
  140. package/dist/identity/fleet-connect-hint.d.ts.map +1 -0
  141. package/dist/identity/fleet-connect-hint.js +190 -0
  142. package/dist/identity/fleet-connect-hint.js.map +1 -0
  143. package/dist/identity/fleet-connect.d.ts +93 -0
  144. package/dist/identity/fleet-connect.d.ts.map +1 -0
  145. package/dist/identity/fleet-connect.js +256 -0
  146. package/dist/identity/fleet-connect.js.map +1 -0
  147. package/dist/identity/fleet-integration-connect.d.ts +32 -0
  148. package/dist/identity/fleet-integration-connect.d.ts.map +1 -0
  149. package/dist/identity/fleet-integration-connect.js +35 -0
  150. package/dist/identity/fleet-integration-connect.js.map +1 -0
  151. package/dist/identity/fleet.d.ts +56 -0
  152. package/dist/identity/fleet.d.ts.map +1 -0
  153. package/dist/identity/fleet.js +131 -0
  154. package/dist/identity/fleet.js.map +1 -0
  155. package/dist/identity/github/connect-http.d.ts +8 -4
  156. package/dist/identity/github/connect-http.d.ts.map +1 -1
  157. package/dist/identity/github/connect-http.js +32 -15
  158. package/dist/identity/github/connect-http.js.map +1 -1
  159. package/dist/identity/github/credentials-store.d.ts +10 -10
  160. package/dist/identity/github/credentials-store.d.ts.map +1 -1
  161. package/dist/identity/github/credentials-store.js +62 -49
  162. package/dist/identity/github/credentials-store.js.map +1 -1
  163. package/dist/identity/github/credentials.d.ts +16 -13
  164. package/dist/identity/github/credentials.d.ts.map +1 -1
  165. package/dist/identity/github/credentials.js +43 -23
  166. package/dist/identity/github/credentials.js.map +1 -1
  167. package/dist/identity/github/index.d.ts +1 -4
  168. package/dist/identity/github/index.d.ts.map +1 -1
  169. package/dist/identity/github/index.js +0 -3
  170. package/dist/identity/github/index.js.map +1 -1
  171. package/dist/identity/github/oauth.d.ts +18 -20
  172. package/dist/identity/github/oauth.d.ts.map +1 -1
  173. package/dist/identity/github/oauth.js +90 -109
  174. package/dist/identity/github/oauth.js.map +1 -1
  175. package/dist/identity/google/connect-http.d.ts +37 -0
  176. package/dist/identity/google/connect-http.d.ts.map +1 -0
  177. package/dist/identity/google/connect-http.js +42 -0
  178. package/dist/identity/google/connect-http.js.map +1 -0
  179. package/dist/identity/google/index.d.ts +7 -0
  180. package/dist/identity/google/index.d.ts.map +1 -0
  181. package/dist/identity/google/index.js +6 -0
  182. package/dist/identity/google/index.js.map +1 -0
  183. package/dist/identity/google/oauth.d.ts +22 -0
  184. package/dist/identity/google/oauth.d.ts.map +1 -0
  185. package/dist/identity/google/oauth.js +48 -0
  186. package/dist/identity/google/oauth.js.map +1 -0
  187. package/dist/identity/index.d.ts +40 -64
  188. package/dist/identity/index.d.ts.map +1 -1
  189. package/dist/identity/index.js +104 -243
  190. package/dist/identity/index.js.map +1 -1
  191. package/dist/identity/linkedin/connect-http.d.ts +37 -0
  192. package/dist/identity/linkedin/connect-http.d.ts.map +1 -0
  193. package/dist/identity/linkedin/connect-http.js +41 -0
  194. package/dist/identity/linkedin/connect-http.js.map +1 -0
  195. package/dist/identity/linkedin/index.d.ts +7 -0
  196. package/dist/identity/linkedin/index.d.ts.map +1 -0
  197. package/dist/identity/linkedin/index.js +6 -0
  198. package/dist/identity/linkedin/index.js.map +1 -0
  199. package/dist/identity/linkedin/oauth.d.ts +22 -0
  200. package/dist/identity/linkedin/oauth.d.ts.map +1 -0
  201. package/dist/identity/linkedin/oauth.js +47 -0
  202. package/dist/identity/linkedin/oauth.js.map +1 -0
  203. package/dist/identity/loopback.d.ts +27 -2
  204. package/dist/identity/loopback.d.ts.map +1 -1
  205. package/dist/identity/loopback.js +61 -8
  206. package/dist/identity/loopback.js.map +1 -1
  207. package/dist/identity/marketplace/connect-hint.d.ts +31 -0
  208. package/dist/identity/marketplace/connect-hint.d.ts.map +1 -0
  209. package/dist/identity/marketplace/connect-hint.js +59 -0
  210. package/dist/identity/marketplace/connect-hint.js.map +1 -0
  211. package/dist/identity/marketplace/connect.d.ts +51 -0
  212. package/dist/identity/marketplace/connect.d.ts.map +1 -0
  213. package/dist/identity/marketplace/connect.js +88 -0
  214. package/dist/identity/marketplace/connect.js.map +1 -0
  215. package/dist/identity/marketplace/index.d.ts +9 -0
  216. package/dist/identity/marketplace/index.d.ts.map +1 -0
  217. package/dist/identity/marketplace/index.js +9 -0
  218. package/dist/identity/marketplace/index.js.map +1 -0
  219. package/dist/identity/microsoft/connect-http.d.ts +38 -0
  220. package/dist/identity/microsoft/connect-http.d.ts.map +1 -0
  221. package/dist/identity/microsoft/connect-http.js +42 -0
  222. package/dist/identity/microsoft/connect-http.js.map +1 -0
  223. package/dist/identity/microsoft/index.d.ts +7 -0
  224. package/dist/identity/microsoft/index.d.ts.map +1 -0
  225. package/dist/identity/microsoft/index.js +6 -0
  226. package/dist/identity/microsoft/index.js.map +1 -0
  227. package/dist/identity/microsoft/oauth.d.ts +24 -0
  228. package/dist/identity/microsoft/oauth.d.ts.map +1 -0
  229. package/dist/identity/microsoft/oauth.js +65 -0
  230. package/dist/identity/microsoft/oauth.js.map +1 -0
  231. package/dist/identity/oauth-env.d.ts +43 -0
  232. package/dist/identity/oauth-env.d.ts.map +1 -0
  233. package/dist/identity/oauth-env.js +66 -0
  234. package/dist/identity/oauth-env.js.map +1 -0
  235. package/dist/identity/oauth-tickets.d.ts +37 -0
  236. package/dist/identity/oauth-tickets.d.ts.map +1 -0
  237. package/dist/identity/oauth-tickets.js +114 -0
  238. package/dist/identity/oauth-tickets.js.map +1 -0
  239. package/dist/identity/options.d.ts +35 -0
  240. package/dist/identity/options.d.ts.map +1 -0
  241. package/dist/identity/options.js +80 -0
  242. package/dist/identity/options.js.map +1 -0
  243. package/dist/identity/slack/connect-http.d.ts +6 -4
  244. package/dist/identity/slack/connect-http.d.ts.map +1 -1
  245. package/dist/identity/slack/connect-http.js +27 -17
  246. package/dist/identity/slack/connect-http.js.map +1 -1
  247. package/dist/identity/slack/index.d.ts +1 -2
  248. package/dist/identity/slack/index.d.ts.map +1 -1
  249. package/dist/identity/slack/index.js +1 -2
  250. package/dist/identity/slack/index.js.map +1 -1
  251. package/dist/identity/slack/links.d.ts +18 -17
  252. package/dist/identity/slack/links.d.ts.map +1 -1
  253. package/dist/identity/slack/links.js +75 -61
  254. package/dist/identity/slack/links.js.map +1 -1
  255. package/dist/identity/slack/oauth.d.ts +3 -35
  256. package/dist/identity/slack/oauth.d.ts.map +1 -1
  257. package/dist/identity/slack/oauth.js +9 -115
  258. package/dist/identity/slack/oauth.js.map +1 -1
  259. package/dist/identity/supabase.js +9 -9
  260. package/dist/identity/supabase.js.map +1 -1
  261. package/dist/identity/types.d.ts +91 -54
  262. package/dist/identity/types.d.ts.map +1 -1
  263. package/dist/identity/x/connect-http.d.ts +38 -0
  264. package/dist/identity/x/connect-http.d.ts.map +1 -0
  265. package/dist/identity/x/connect-http.js +41 -0
  266. package/dist/identity/x/connect-http.js.map +1 -0
  267. package/dist/identity/x/index.d.ts +6 -0
  268. package/dist/identity/x/index.d.ts.map +1 -0
  269. package/dist/identity/x/index.js +5 -0
  270. package/dist/identity/x/index.js.map +1 -0
  271. package/dist/index.d.ts +9 -20
  272. package/dist/index.d.ts.map +1 -1
  273. package/dist/index.js +3 -11
  274. package/dist/index.js.map +1 -1
  275. package/dist/ingress/index.d.ts +52 -0
  276. package/dist/ingress/index.d.ts.map +1 -0
  277. package/dist/ingress/index.js +139 -0
  278. package/dist/ingress/index.js.map +1 -0
  279. package/dist/memory/define-memory.d.ts +39 -0
  280. package/dist/memory/define-memory.d.ts.map +1 -0
  281. package/dist/memory/define-memory.js +78 -0
  282. package/dist/memory/define-memory.js.map +1 -0
  283. package/dist/memory/index.d.ts +9 -0
  284. package/dist/memory/index.d.ts.map +1 -0
  285. package/dist/memory/index.js +8 -0
  286. package/dist/memory/index.js.map +1 -0
  287. package/dist/memory/instructions-middleware.d.ts +74 -0
  288. package/dist/memory/instructions-middleware.d.ts.map +1 -0
  289. package/dist/memory/instructions-middleware.js +115 -0
  290. package/dist/memory/instructions-middleware.js.map +1 -0
  291. package/dist/memory/slices.d.ts +21 -0
  292. package/dist/memory/slices.d.ts.map +1 -0
  293. package/dist/memory/slices.js +61 -0
  294. package/dist/memory/slices.js.map +1 -0
  295. package/dist/memory/types.d.ts +71 -0
  296. package/dist/memory/types.d.ts.map +1 -0
  297. package/dist/memory/types.js +10 -0
  298. package/dist/memory/types.js.map +1 -0
  299. package/dist/namespaces.d.ts +262 -0
  300. package/dist/namespaces.d.ts.map +1 -0
  301. package/dist/namespaces.js +101 -0
  302. package/dist/namespaces.js.map +1 -0
  303. package/dist/runtime/auth.d.ts +46 -32
  304. package/dist/runtime/auth.d.ts.map +1 -1
  305. package/dist/runtime/auth.js +234 -125
  306. package/dist/runtime/auth.js.map +1 -1
  307. package/dist/runtime/backend.d.ts +1 -1
  308. package/dist/runtime/backend.d.ts.map +1 -1
  309. package/dist/runtime/backend.js +26 -5
  310. package/dist/runtime/backend.js.map +1 -1
  311. package/dist/runtime/channel.d.ts +91 -0
  312. package/dist/runtime/channel.d.ts.map +1 -0
  313. package/dist/runtime/channel.js +98 -0
  314. package/dist/runtime/channel.js.map +1 -0
  315. package/dist/runtime/connector.d.ts +66 -23
  316. package/dist/runtime/connector.d.ts.map +1 -1
  317. package/dist/runtime/connector.js +67 -27
  318. package/dist/runtime/connector.js.map +1 -1
  319. package/dist/runtime/cors.d.ts +12 -3
  320. package/dist/runtime/cors.d.ts.map +1 -1
  321. package/dist/runtime/cors.js +23 -5
  322. package/dist/runtime/cors.js.map +1 -1
  323. package/dist/runtime/credentials.d.ts +8 -8
  324. package/dist/runtime/credentials.d.ts.map +1 -1
  325. package/dist/runtime/credentials.js +46 -23
  326. package/dist/runtime/credentials.js.map +1 -1
  327. package/dist/runtime/http.d.ts +46 -0
  328. package/dist/runtime/http.d.ts.map +1 -0
  329. package/dist/runtime/http.js +53 -0
  330. package/dist/runtime/http.js.map +1 -0
  331. package/dist/runtime/identity-http.d.ts +13 -20
  332. package/dist/runtime/identity-http.d.ts.map +1 -1
  333. package/dist/runtime/identity-http.js +158 -75
  334. package/dist/runtime/identity-http.js.map +1 -1
  335. package/dist/runtime/identity-runtime.d.ts +12 -28
  336. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  337. package/dist/runtime/identity-runtime.js +35 -72
  338. package/dist/runtime/identity-runtime.js.map +1 -1
  339. package/dist/runtime/index.d.ts +89 -225
  340. package/dist/runtime/index.d.ts.map +1 -1
  341. package/dist/runtime/index.js +92 -61
  342. package/dist/runtime/index.js.map +1 -1
  343. package/dist/runtime/memory/index.d.ts +0 -2
  344. package/dist/runtime/memory/index.d.ts.map +1 -1
  345. package/dist/runtime/memory/index.js +0 -2
  346. package/dist/runtime/memory/index.js.map +1 -1
  347. package/dist/runtime/memory/mounts.d.ts +4 -12
  348. package/dist/runtime/memory/mounts.d.ts.map +1 -1
  349. package/dist/runtime/memory/mounts.js +9 -20
  350. package/dist/runtime/memory/mounts.js.map +1 -1
  351. package/dist/runtime/recursion-limit.d.ts +22 -0
  352. package/dist/runtime/recursion-limit.d.ts.map +1 -0
  353. package/dist/runtime/recursion-limit.js +46 -0
  354. package/dist/runtime/recursion-limit.js.map +1 -0
  355. package/dist/runtime/sandbox-manager.d.ts +60 -3
  356. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  357. package/dist/runtime/sandbox-manager.js +326 -26
  358. package/dist/runtime/sandbox-manager.js.map +1 -1
  359. package/dist/runtime/sandbox-stream-retry.d.ts +18 -0
  360. package/dist/runtime/sandbox-stream-retry.d.ts.map +1 -0
  361. package/dist/runtime/sandbox-stream-retry.js +90 -0
  362. package/dist/runtime/sandbox-stream-retry.js.map +1 -0
  363. package/dist/runtime/setup-script.d.ts.map +1 -1
  364. package/dist/runtime/setup-script.js +16 -2
  365. package/dist/runtime/setup-script.js.map +1 -1
  366. package/dist/runtime/types.d.ts +16 -0
  367. package/dist/runtime/types.d.ts.map +1 -1
  368. package/dist/runtime/validated-token.d.ts +9 -14
  369. package/dist/runtime/validated-token.d.ts.map +1 -1
  370. package/dist/runtime/validated-token.js +79 -106
  371. package/dist/runtime/validated-token.js.map +1 -1
  372. package/dist/sandbox.d.ts +17 -42
  373. package/dist/sandbox.d.ts.map +1 -1
  374. package/dist/sandbox.js +11 -32
  375. package/dist/sandbox.js.map +1 -1
  376. package/dist/schedules.js +8 -9
  377. package/dist/schedules.js.map +1 -1
  378. package/dist/types.d.ts +4 -3
  379. package/dist/types.d.ts.map +1 -1
  380. package/dist/types.js.map +1 -1
  381. package/package.json +22 -29
  382. package/dist/channels/collect.d.ts +0 -26
  383. package/dist/channels/collect.d.ts.map +0 -1
  384. package/dist/channels/collect.js +0 -42
  385. package/dist/channels/collect.js.map +0 -1
  386. package/dist/channels/github/adapter-core.d.ts +0 -6
  387. package/dist/channels/github/adapter-core.d.ts.map +0 -1
  388. package/dist/channels/github/adapter-core.js +0 -27
  389. package/dist/channels/github/adapter-core.js.map +0 -1
  390. package/dist/channels/github/adapter.d.ts +0 -16
  391. package/dist/channels/github/adapter.d.ts.map +0 -1
  392. package/dist/channels/github/adapter.js +0 -52
  393. package/dist/channels/github/adapter.js.map +0 -1
  394. package/dist/channels/github/define.d.ts +0 -198
  395. package/dist/channels/github/define.d.ts.map +0 -1
  396. package/dist/channels/github/define.js +0 -166
  397. package/dist/channels/github/define.js.map +0 -1
  398. package/dist/channels/github/http.d.ts +0 -25
  399. package/dist/channels/github/http.d.ts.map +0 -1
  400. package/dist/channels/github/http.js +0 -147
  401. package/dist/channels/github/http.js.map +0 -1
  402. package/dist/channels/github/index.d.ts +0 -12
  403. package/dist/channels/github/index.d.ts.map +0 -1
  404. package/dist/channels/github/index.js +0 -10
  405. package/dist/channels/github/index.js.map +0 -1
  406. package/dist/channels/github/normalize.d.ts +0 -32
  407. package/dist/channels/github/normalize.d.ts.map +0 -1
  408. package/dist/channels/github/normalize.js +0 -152
  409. package/dist/channels/github/normalize.js.map +0 -1
  410. package/dist/channels/github/source-thread.d.ts +0 -24
  411. package/dist/channels/github/source-thread.d.ts.map +0 -1
  412. package/dist/channels/github/source-thread.js +0 -54
  413. package/dist/channels/github/source-thread.js.map +0 -1
  414. package/dist/channels/github/transport.d.ts +0 -19
  415. package/dist/channels/github/transport.d.ts.map +0 -1
  416. package/dist/channels/github/transport.js +0 -92
  417. package/dist/channels/github/transport.js.map +0 -1
  418. package/dist/channels/plugin.d.ts +0 -61
  419. package/dist/channels/plugin.d.ts.map +0 -1
  420. package/dist/channels/plugin.js +0 -80
  421. package/dist/channels/plugin.js.map +0 -1
  422. package/dist/channels/slack/define.d.ts +0 -74
  423. package/dist/channels/slack/define.d.ts.map +0 -1
  424. package/dist/channels/slack/define.js +0 -160
  425. package/dist/channels/slack/define.js.map +0 -1
  426. package/dist/connectors/github/index.d.ts +0 -78
  427. package/dist/connectors/github/index.d.ts.map +0 -1
  428. package/dist/connectors/github/index.js +0 -106
  429. package/dist/connectors/github/index.js.map +0 -1
  430. package/dist/connectors/github/sandbox.d.ts +0 -54
  431. package/dist/connectors/github/sandbox.d.ts.map +0 -1
  432. package/dist/connectors/github/sandbox.js +0 -515
  433. package/dist/connectors/github/sandbox.js.map +0 -1
  434. package/dist/connectors/langsmith/index.d.ts +0 -385
  435. package/dist/connectors/langsmith/index.d.ts.map +0 -1
  436. package/dist/connectors/langsmith/index.js +0 -431
  437. package/dist/connectors/langsmith/index.js.map +0 -1
  438. package/dist/connectors/langsmith/routes.d.ts +0 -247
  439. package/dist/connectors/langsmith/routes.d.ts.map +0 -1
  440. package/dist/connectors/langsmith/routes.js +0 -1182
  441. package/dist/connectors/langsmith/routes.js.map +0 -1
  442. package/dist/runtime/memory/seed.d.ts +0 -21
  443. package/dist/runtime/memory/seed.d.ts.map +0 -1
  444. package/dist/runtime/memory/seed.js +0 -160
  445. package/dist/runtime/memory/seed.js.map +0 -1
  446. package/dist/runtime/memory/user-repo.d.ts +0 -19
  447. package/dist/runtime/memory/user-repo.d.ts.map +0 -1
  448. package/dist/runtime/memory/user-repo.js +0 -57
  449. package/dist/runtime/memory/user-repo.js.map +0 -1
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Marketplace MCP connectors — third-party MCP servers managed in LangSmith.
3
+ *
4
+ * Unlike {@link ../toolserver}, tools run on the vendor's MCP endpoint and are
5
+ * invoked through `POST /v1/mcp/proxy` with a vault subject. Factories are
6
+ * derived from {@link MARKETPLACE_MCP_INTEGRATIONS} so a new bridge is one
7
+ * catalog row (npm + PyPI).
8
+ */
9
+ import type { Connector } from "../../runtime/connector.js";
10
+ import { type ToolSelectionConnectorConfig } from "../tool-selection.js";
11
+ import { type MarketplaceMcpIntegrationId, type MarketplaceMcpToolsFor } from "./catalog.js";
12
+ export { MARKETPLACE_MCP_INTEGRATIONS, hasMarketplaceConnector, marketplaceIntegrationById, type MarketplaceMcpIntegration, type MarketplaceMcpIntegrationId, type MarketplaceMcpToolsFor, } from "./catalog.js";
13
+ export { normalizeMcpUrl, resolveMarketplaceMcpServer, type FleetMcpServer, } from "./fleet-mcp.js";
14
+ /** Configuration accepted by every `connectors.<marketplace>` factory. */
15
+ export type MarketplaceConnectorConfig<TTool extends string = string> = ToolSelectionConnectorConfig<TTool>;
16
+ export type MarketplaceConnectorFor<Id extends MarketplaceMcpIntegrationId> = Connector & MarketplaceConnectorConfig<MarketplaceMcpToolsFor<Id>> & {
17
+ kind: Id;
18
+ };
19
+ export type MarketplaceConnectorFactoryFor<Id extends MarketplaceMcpIntegrationId> = (config?: MarketplaceConnectorConfig<MarketplaceMcpToolsFor<Id>>) => MarketplaceConnectorFor<Id>;
20
+ /** `connectors.<id>` factories for every marketplace catalog entry. */
21
+ export type MarketplaceConnectors = {
22
+ [Id in MarketplaceMcpIntegrationId]: MarketplaceConnectorFactoryFor<Id>;
23
+ };
24
+ /**
25
+ * All marketplace connector factories keyed by integration id.
26
+ *
27
+ * Built from the catalog so a new bridge is one entry there rather than a
28
+ * namespace line that can be forgotten.
29
+ */
30
+ export declare const marketplaceConnectors: MarketplaceConnectors;
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/marketplace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AAExB,0EAA0E;AAC1E,MAAM,MAAM,0BAA0B,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAClE,4BAA4B,CAAC,KAAK,CAAC,CAAC;AAEtC,MAAM,MAAM,uBAAuB,CAAC,EAAE,SAAS,2BAA2B,IACxE,SAAS,GACP,0BAA0B,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,GAAG;IACvD,IAAI,EAAE,EAAE,CAAC;CACV,CAAC;AAEN,MAAM,MAAM,8BAA8B,CACxC,EAAE,SAAS,2BAA2B,IACpC,CACF,MAAM,CAAC,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,KAC5D,uBAAuB,CAAC,EAAE,CAAC,CAAC;AAEjC,uEAAuE;AACvE,MAAM,MAAM,qBAAqB,GAAG;KACjC,EAAE,IAAI,2BAA2B,GAAG,8BAA8B,CAAC,EAAE,CAAC;CACxE,CAAC;AA2BF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,qBAKV,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Marketplace MCP connectors — third-party MCP servers managed in LangSmith.
3
+ *
4
+ * Unlike {@link ../toolserver}, tools run on the vendor's MCP endpoint and are
5
+ * invoked through `POST /v1/mcp/proxy` with a vault subject. Factories are
6
+ * derived from {@link MARKETPLACE_MCP_INTEGRATIONS} so a new bridge is one
7
+ * catalog row (npm + PyPI).
8
+ */
9
+ import { defineExtension } from "../../extension.js";
10
+ import { toolSelectionConnectorSchema, } from "../tool-selection.js";
11
+ import { MARKETPLACE_MCP_INTEGRATIONS, } from "./catalog.js";
12
+ export { MARKETPLACE_MCP_INTEGRATIONS, hasMarketplaceConnector, marketplaceIntegrationById, } from "./catalog.js";
13
+ export { normalizeMcpUrl, resolveMarketplaceMcpServer, } from "./fleet-mcp.js";
14
+ function marketplaceTools(integration, label) {
15
+ return async (_ctx, self) => {
16
+ const { loadMarketplaceTools } = await import("./load.js");
17
+ return loadMarketplaceTools(integration, label, self);
18
+ };
19
+ }
20
+ function marketplaceConnectorFactory(integration) {
21
+ const label = `connectors.${integration.id}`;
22
+ return defineExtension("connector", {
23
+ kind: integration.id,
24
+ label,
25
+ args: toolSelectionConnectorSchema(),
26
+ tools: marketplaceTools(integration, label),
27
+ });
28
+ }
29
+ /**
30
+ * All marketplace connector factories keyed by integration id.
31
+ *
32
+ * Built from the catalog so a new bridge is one entry there rather than a
33
+ * namespace line that can be forgotten.
34
+ */
35
+ export const marketplaceConnectors = Object.fromEntries(MARKETPLACE_MCP_INTEGRATIONS.map((entry) => [
36
+ entry.id,
37
+ marketplaceConnectorFactory(entry),
38
+ ]));
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/marketplace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,4BAA4B,GAE7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,4BAA4B,GAI7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,GAI3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,2BAA2B,GAE5B,MAAM,gBAAgB,CAAC;AAuBxB,SAAS,gBAAgB,CACvB,WAAsC,EACtC,KAAa;IAEb,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3D,OAAO,oBAAoB,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,WAAsC;IAEtC,MAAM,KAAK,GAAG,cAAc,WAAW,CAAC,EAAE,EAAE,CAAC;IAC7C,OAAO,eAAe,CAAC,WAAW,EAAE;QAClC,IAAI,EAAE,WAAW,CAAC,EAAE;QACpB,KAAK;QACL,IAAI,EAAE,4BAA4B,EAG/B;QACH,KAAK,EAAE,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC;KAC5C,CAAuD,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0B,MAAM,CAAC,WAAW,CAC5E,4BAA4B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1C,KAAK,CAAC,EAAE;IACR,2BAA2B,CAAC,KAAK,CAAC;CACnC,CAAC,CACsB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Load marketplace MCP tools through LangSmith's `POST /api/v1/mcp/proxy`.
3
+ *
4
+ * Unlike toolserver (bare Streamable HTTP to `/v1/toolserver/servers/{slug}/mcp`),
5
+ * marketplace invoke uses an HTTP-over-JSON envelope. Credentials never leave
6
+ * the vault — the proxy mints a bearer for `agent_id` / `ls_user_id`.
7
+ */
8
+ import { type ToolSelectionConnectorConfig } from "../tool-selection.js";
9
+ import type { MarketplaceMcpIntegration } from "./catalog.js";
10
+ export type MarketplaceConnectorConfig = ToolSelectionConnectorConfig;
11
+ /** Load (and cache) tools for one marketplace connector declaration. */
12
+ export declare function loadMarketplaceTools(integration: MarketplaceMcpIntegration, label: string, connector: MarketplaceConnectorConfig & object): Promise<unknown[]>;
13
+ export declare function clearMarketplaceToolsCacheForTests(connector: object): void;
14
+ //# sourceMappingURL=load.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/connectors/marketplace/load.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAS9D,MAAM,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAEtE,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,0BAA0B,GAAG,MAAM,GAC7C,OAAO,CAAC,OAAO,EAAE,CAAC,CAuBpB;AAED,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE1E"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Load marketplace MCP tools through LangSmith's `POST /api/v1/mcp/proxy`.
3
+ *
4
+ * Unlike toolserver (bare Streamable HTTP to `/v1/toolserver/servers/{slug}/mcp`),
5
+ * marketplace invoke uses an HTTP-over-JSON envelope. Credentials never leave
6
+ * the vault — the proxy mints a bearer for `agent_id` / `ls_user_id`.
7
+ */
8
+ import { DynamicStructuredTool } from "@langchain/core/tools";
9
+ import { z } from "zod";
10
+ import { agentIdFromActor, isActorSubjectIntegrationEnabled, } from "../../identity/actor-subject.js";
11
+ import { rewriteFleetToolError } from "../../identity/fleet-connect-hint.js";
12
+ import { resolveFleetApiUrl, resolveFleetHeaders, } from "../../identity/fleet.js";
13
+ import { marketplaceAsFleetHint } from "../../identity/marketplace/index.js";
14
+ import { managedRuntimeOverrides } from "../../runtime/managed-tools.js";
15
+ import { fetchWithTimeout, PROVIDER_HTTP_TIMEOUT_MS, } from "../../runtime/http.js";
16
+ import { selectTools, } from "../tool-selection.js";
17
+ import { parseMcpProxyResponseBody, resolveMarketplaceMcpServer, resolveSmithBackendV1Url, } from "./fleet-mcp.js";
18
+ const schemaCache = new WeakMap();
19
+ /** Load (and cache) tools for one marketplace connector declaration. */
20
+ export function loadMarketplaceTools(integration, label, connector) {
21
+ if (connector.includeTools?.length === 0) {
22
+ return Promise.resolve([]);
23
+ }
24
+ const cached = schemaCache.get(connector);
25
+ if (cached) {
26
+ return cached;
27
+ }
28
+ const loading = connectAndLoadTools(integration, label, connector)
29
+ .then((tools) => {
30
+ // Empty pre-connect fallbacks must not stick forever — a later load may
31
+ // discover tools once the workspace/actor connection exists.
32
+ if (tools.length === 0) {
33
+ schemaCache.delete(connector);
34
+ }
35
+ return tools;
36
+ })
37
+ .catch((error) => {
38
+ schemaCache.delete(connector);
39
+ throw error;
40
+ });
41
+ schemaCache.set(connector, loading);
42
+ return loading;
43
+ }
44
+ export function clearMarketplaceToolsCacheForTests(connector) {
45
+ schemaCache.delete(connector);
46
+ }
47
+ async function connectAndLoadTools(integration, label, config) {
48
+ // Actor-subject agent_id is resolved per invoke inside buildProxyTool —
49
+ // no outer wrap / re-list is needed (unlike toolserver MCP, where the
50
+ // session URL binds agent_id at connect time).
51
+ const listAgentId = trimmed(process.env.MDA_TOOLSERVER_AGENT_ID);
52
+ return loadToolsForAgentId(integration, label, config, listAgentId);
53
+ }
54
+ async function loadToolsForAgentId(integration, label, config, agentId) {
55
+ const server = await resolveMarketplaceMcpServer({
56
+ mcpUrl: integration.mcpUrl,
57
+ });
58
+ const providerId = server.oauth_provider_id.trim();
59
+ const listed = await listProxyTools({
60
+ integration,
61
+ oauthProviderId: providerId,
62
+ agentId,
63
+ label,
64
+ });
65
+ const tools = listed.map((entry) => buildProxyTool(entry, integration, providerId, config, agentId, label));
66
+ return selectTools(label, config, tools);
67
+ }
68
+ async function listProxyTools(options) {
69
+ const env = process.env;
70
+ const base = resolveFleetApiUrl(env);
71
+ const headers = resolveFleetHeaders(options.label, env);
72
+ const params = new URLSearchParams({
73
+ url: options.integration.mcpUrl,
74
+ oauth_provider_id: options.oauthProviderId,
75
+ });
76
+ if (options.agentId) {
77
+ params.set("agent_id", options.agentId);
78
+ }
79
+ const toolsUrl = new URL(resolveSmithBackendV1Url(base, "mcp/tools"));
80
+ toolsUrl.search = params.toString();
81
+ const response = await fetchWithTimeout(toolsUrl.toString(), { method: "GET", headers }, PROVIDER_HTTP_TIMEOUT_MS, fetch);
82
+ if (response.status === 428 || response.status === 401) {
83
+ // No subject / connection yet — expose catalog names so the agent can still
84
+ // be authored; invoke will fail with a connect hint once identity is present.
85
+ return options.integration.tools.map((name) => ({
86
+ name,
87
+ description: `${name} (connect required)`,
88
+ inputSchema: {
89
+ type: "object",
90
+ properties: {},
91
+ additionalProperties: true,
92
+ },
93
+ }));
94
+ }
95
+ if (!response.ok) {
96
+ const text = await response.text().catch(() => "");
97
+ throw new Error(`${options.label}: list marketplace tools failed (${response.status}): ${text || response.statusText}`);
98
+ }
99
+ const json = (await response.json());
100
+ return (json.tools ?? []).filter((tool) => typeof tool?.name === "string" && tool.name.length > 0);
101
+ }
102
+ function buildProxyTool(entry, integration, providerId, config, fixedAgentId, label) {
103
+ const schema = jsonSchemaToZod(entry.inputSchema);
104
+ return new DynamicStructuredTool({
105
+ name: entry.name,
106
+ description: entry.description ?? entry.name,
107
+ schema,
108
+ func: async (input, _runManager, runtime) => {
109
+ const runtimeConfig = runtime;
110
+ const agentId = resolveInvokeAgentId(runtimeConfig, integration.id) ?? fixedAgentId;
111
+ try {
112
+ return await callProxyTool({
113
+ url: integration.mcpUrl,
114
+ oauthProviderId: providerId,
115
+ agentId,
116
+ toolName: entry.name,
117
+ args: input,
118
+ label,
119
+ timeoutMs: config.defaultToolTimeout,
120
+ });
121
+ }
122
+ catch (error) {
123
+ throw rewriteFleetToolError(error, marketplaceAsFleetHint(integration, providerId));
124
+ }
125
+ },
126
+ });
127
+ }
128
+ function resolveInvokeAgentId(runtime, integrationId) {
129
+ if (isActorSubjectIntegrationEnabled(integrationId)) {
130
+ const identity = managedRuntimeOverrides(runtime).identity;
131
+ const userId = identity?.user?.id;
132
+ if (userId) {
133
+ return agentIdFromActor(userId);
134
+ }
135
+ }
136
+ return trimmed(process.env.MDA_TOOLSERVER_AGENT_ID);
137
+ }
138
+ async function callProxyTool(options) {
139
+ if (!options.agentId) {
140
+ throw new Error(`${options.label}: marketplace tool "${options.toolName}" needs an agent subject ` +
141
+ `(Connect-with-${options.label.replace(/^connectors\./, "")} or MDA_TOOLSERVER_AGENT_ID)`);
142
+ }
143
+ const env = process.env;
144
+ const base = resolveFleetApiUrl(env);
145
+ const headers = resolveFleetHeaders(options.label, env);
146
+ // Envelope timeout is seconds (smith-backend). Keep the local fetch budget
147
+ // at least as long, plus a small transport allowance — otherwise
148
+ // `defaultToolTimeout` above PROVIDER_HTTP_TIMEOUT_MS is silently truncated.
149
+ const timeoutMs = Math.min(Math.max(options.timeoutMs ?? 120_000, 1_000), 120_000);
150
+ const timeoutSeconds = timeoutMs / 1000;
151
+ const httpTimeoutMs = timeoutMs + 5_000;
152
+ // Forwarded to the vendor MCP by smith-backend's proxy. Notion (and other
153
+ // Streamable HTTP servers) reject requests that omit text/event-stream.
154
+ const mcpHeaders = {
155
+ "Content-Type": "application/json",
156
+ Accept: "application/json, text/event-stream",
157
+ "MCP-Protocol-Version": "2025-11-25",
158
+ };
159
+ const body = {
160
+ url: options.url,
161
+ method: "POST",
162
+ oauth_provider_id: options.oauthProviderId,
163
+ agent_id: options.agentId,
164
+ timeout: timeoutSeconds,
165
+ headers: mcpHeaders,
166
+ body: {
167
+ jsonrpc: "2.0",
168
+ id: 1,
169
+ method: "tools/call",
170
+ params: {
171
+ name: options.toolName,
172
+ arguments: options.args && typeof options.args === "object" ? options.args : {},
173
+ },
174
+ },
175
+ };
176
+ const response = await fetchWithTimeout(resolveSmithBackendV1Url(base, "mcp/proxy"), {
177
+ method: "POST",
178
+ headers,
179
+ body: JSON.stringify(body),
180
+ }, httpTimeoutMs, fetch);
181
+ const text = await response.text().catch(() => "");
182
+ if (!response.ok) {
183
+ throw new Error(`${options.label}: marketplace tool "${options.toolName}" failed (${response.status}): ${text || response.statusText}`);
184
+ }
185
+ return parseMcpProxyResponseBody(text);
186
+ }
187
+ /** Best-effort JSON Schema → Zod object (additionalProperties open). */
188
+ function jsonSchemaToZod(inputSchema) {
189
+ if (!inputSchema || typeof inputSchema !== "object") {
190
+ return z.record(z.string(), z.unknown());
191
+ }
192
+ const properties = inputSchema.properties;
193
+ if (!properties || typeof properties !== "object") {
194
+ return z.record(z.string(), z.unknown());
195
+ }
196
+ const shape = {};
197
+ for (const key of Object.keys(properties)) {
198
+ shape[key] = z.unknown().optional();
199
+ }
200
+ return z.looseObject(shape);
201
+ }
202
+ function trimmed(value) {
203
+ const v = value?.trim();
204
+ return v ? v : undefined;
205
+ }
206
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/connectors/marketplace/load.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  /**
2
2
  * The managed `connectors/` declaration primitive.
3
3
  *
4
- * For the first connector iteration, a connector means exactly one thing: MCP
5
- * servers. A Managed Deep Agent declares the remote MCP servers whose tools it
6
- * wants in `connectors/mcp.ts` by exporting a named `mcp` from
7
- * {@link defineMcpServers}. MDA discovers that declaration, creates the
8
- * `@langchain/mcp-adapters` client, loads the tools, and adds them to the Deep
9
- * Agent at runtime — the author never imports the MCP client or calls
10
- * `getTools()`.
4
+ * A Managed Deep Agent declares the remote MCP servers whose tools it wants in
5
+ * `connectors/mcp.ts` with `connectors.mcp(...)`. MDA discovers that
6
+ * declaration, creates the `@langchain/mcp-adapters` client, loads the tools,
7
+ * and adds them to the Deep Agent at runtime — the author never imports the MCP
8
+ * client or calls `getTools()`.
11
9
  *
12
10
  * Only remote MCP servers over HTTP/SSE are supported. Stdio MCP servers are
13
11
  * intentionally out of scope: they introduce process management, packaging, and
@@ -20,12 +18,9 @@
20
18
  * @example
21
19
  * ```ts
22
20
  * // connectors/mcp.ts
23
- * import { defineMcpServers } from "managed-deepagents";
21
+ * import { connectors } from "managed-deepagents";
24
22
  *
25
- * export const mcp = defineMcpServers({
26
- * useStandardContentBlocks: true,
27
- * prefixToolNameWithServerName: true,
28
- * throwOnLoadError: true,
23
+ * export const connector = connectors.mcp({
29
24
  * mcpServers: {
30
25
  * docs: {
31
26
  * transport: "http",
@@ -35,7 +30,7 @@
35
30
  * });
36
31
  * ```
37
32
  */
38
- import { type Connector } from "../../runtime/connector.js";
33
+ import type { Connector } from "../../runtime/connector.js";
39
34
  /** Per-server MCP tool selection. Names are raw, unprefixed MCP tool names. */
40
35
  export interface McpToolSelectionConfig {
41
36
  /**
@@ -81,7 +76,7 @@ export interface SseMcpServerConfig extends RemoteMcpServerBaseConfig {
81
76
  }
82
77
  /** A remote MCP server connection. Stdio servers are intentionally excluded. */
83
78
  export type RemoteMcpServerConfig = HttpMcpServerConfig | SseMcpServerConfig;
84
- /** Configuration accepted by {@link defineMcpServers}. */
79
+ /** Configuration accepted by `connectors.mcp`. */
85
80
  export interface McpServersConfig {
86
81
  /**
87
82
  * MCP servers to connect to. Each key is the logical server name MDA uses
@@ -124,11 +119,9 @@ export interface McpServersDefinition extends McpServersConfig, Connector {
124
119
  * Declare the MCP servers whose tools should be loaded and added to the managed
125
120
  * Deep Agent at runtime.
126
121
  *
127
- * Validates the config eagerly so misconfiguration surfaces at module load
128
- * (build/dev startup) rather than mid-run: at least one server must be
129
- * declared, and every server must use a remote transport (`"http"` or
130
- * `"sse"`). Stdio servers and invalid tool selectors are rejected with a clear
131
- * error.
122
+ * The tools hook runs at agent-graph construction time (inside the managed
123
+ * runtime), so the MCP client loader is imported lazily — authoring-only
124
+ * installs never pull in `@langchain/mcp-adapters`.
132
125
  */
133
- export declare function defineMcpServers(config: McpServersConfig): McpServersDefinition;
126
+ export declare const mcpConnector: (config: McpServersConfig) => McpServersDefinition;
134
127
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE7E,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,6CAA6C;AAC7C,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAmB,SAAQ,yBAAyB;IACnE,oDAAoD;IACpD,SAAS,EAAE,KAAK,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAE7E,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB,EAAE,SAAS;IACvE,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,GACvB,oBAAoB,CA2CtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,6CAA6C;AAC7C,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAmB,SAAQ,yBAAyB;IACnE,oDAAoD;IACpD,SAAS,EAAE,KAAK,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAE7E,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB,EAAE,SAAS;IACvE,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAyFD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,oBASrD,CAAC"}
@@ -1,13 +1,11 @@
1
1
  /**
2
2
  * The managed `connectors/` declaration primitive.
3
3
  *
4
- * For the first connector iteration, a connector means exactly one thing: MCP
5
- * servers. A Managed Deep Agent declares the remote MCP servers whose tools it
6
- * wants in `connectors/mcp.ts` by exporting a named `mcp` from
7
- * {@link defineMcpServers}. MDA discovers that declaration, creates the
8
- * `@langchain/mcp-adapters` client, loads the tools, and adds them to the Deep
9
- * Agent at runtime — the author never imports the MCP client or calls
10
- * `getTools()`.
4
+ * A Managed Deep Agent declares the remote MCP servers whose tools it wants in
5
+ * `connectors/mcp.ts` with `connectors.mcp(...)`. MDA discovers that
6
+ * declaration, creates the `@langchain/mcp-adapters` client, loads the tools,
7
+ * and adds them to the Deep Agent at runtime — the author never imports the MCP
8
+ * client or calls `getTools()`.
11
9
  *
12
10
  * Only remote MCP servers over HTTP/SSE are supported. Stdio MCP servers are
13
11
  * intentionally out of scope: they introduce process management, packaging, and
@@ -20,12 +18,9 @@
20
18
  * @example
21
19
  * ```ts
22
20
  * // connectors/mcp.ts
23
- * import { defineMcpServers } from "managed-deepagents";
21
+ * import { connectors } from "managed-deepagents";
24
22
  *
25
- * export const mcp = defineMcpServers({
26
- * useStandardContentBlocks: true,
27
- * prefixToolNameWithServerName: true,
28
- * throwOnLoadError: true,
23
+ * export const connector = connectors.mcp({
29
24
  * mcpServers: {
30
25
  * docs: {
31
26
  * transport: "http",
@@ -35,109 +30,94 @@
35
30
  * });
36
31
  * ```
37
32
  */
38
- import { CONNECTOR_BRAND } from "../../runtime/connector.js";
33
+ import { z } from "zod";
34
+ import { defineExtension } from "../../extension.js";
35
+ /** Stdio servers are out of scope; the message points at the alternatives. */
36
+ const STDIO_REJECTION = "uses a stdio transport, which is not supported. Managed Deep Agents " +
37
+ "support remote MCP servers over HTTP/SSE only; expose the server over HTTP " +
38
+ "or write a normal authored tool instead.";
39
+ /** Raw MCP tool names, before the managed `{server}__` prefix is applied. */
40
+ const toolNames = z
41
+ .array(z
42
+ .string("must be a non-empty tool name")
43
+ .refine((name) => name.trim().length > 0, "must be a non-empty tool name"))
44
+ .check((ctx) => {
45
+ const seen = new Set();
46
+ for (const name of ctx.value) {
47
+ if (seen.has(name)) {
48
+ ctx.issues.push({
49
+ code: "custom",
50
+ input: ctx.value,
51
+ message: `contains duplicate tool name "${name}"`,
52
+ });
53
+ }
54
+ seen.add(name);
55
+ }
56
+ })
57
+ .optional();
58
+ const remoteMcpServer = z
59
+ .looseObject({
60
+ // Present only to reject it: a `command` is how a stdio server is spelled.
61
+ command: z.never({ error: STDIO_REJECTION }).optional(),
62
+ transport: z.enum(["http", "sse"], {
63
+ error: (issue) => issue.input === "stdio"
64
+ ? STDIO_REJECTION
65
+ : 'must declare a remote transport ("http" or "sse")',
66
+ }),
67
+ url: z
68
+ .string("must be a non-empty URL")
69
+ .refine((url) => url.trim().length > 0, "must be a non-empty URL"),
70
+ headers: z.record(z.string(), z.string()).optional(),
71
+ defaultToolTimeout: z.number().optional(),
72
+ includeTools: toolNames,
73
+ excludeTools: toolNames,
74
+ })
75
+ .check((ctx) => {
76
+ const { includeTools, excludeTools } = ctx.value;
77
+ const overlap = (includeTools ?? []).filter((name) => (excludeTools ?? []).includes(name));
78
+ if (overlap.length > 0) {
79
+ ctx.issues.push({
80
+ code: "custom",
81
+ input: ctx.value,
82
+ message: "selects tool(s) in both `includeTools` and `excludeTools`: " +
83
+ `${[...overlap].sort().join(", ")}`,
84
+ });
85
+ }
86
+ });
39
87
  /**
40
- * Declare the MCP servers whose tools should be loaded and added to the managed
41
- * Deep Agent at runtime.
88
+ * The MCP connector's arguments.
42
89
  *
43
- * Validates the config eagerly so misconfiguration surfaces at module load
44
- * (build/dev startup) rather than mid-run: at least one server must be
45
- * declared, and every server must use a remote transport (`"http"` or
46
- * `"sse"`). Stdio servers and invalid tool selectors are rejected with a clear
47
- * error.
90
+ * Shape, types, and tool-name lists are the schema's job; the rules that need
91
+ * more than one field a stdio server, a tool selected and deselected at once
92
+ * are checks with hand-written messages. Server configs stay loose because
93
+ * `@langchain/mcp-adapters` accepts more per-transport options than MDA models.
48
94
  */
49
- export function defineMcpServers(config) {
50
- const provided = config;
51
- const servers = provided.mcpServers;
52
- if (servers === null ||
53
- typeof servers !== "object" ||
54
- Array.isArray(servers)) {
55
- throw new Error("defineMcpServers(...) requires an `mcpServers` object mapping server " +
56
- "names to remote MCP server configs.");
57
- }
58
- const entries = Object.entries(servers);
59
- if (entries.length === 0) {
60
- throw new Error("defineMcpServers(...) requires at least one entry in `mcpServers`.");
61
- }
62
- for (const [name, server] of entries) {
63
- validateRemoteServer(name, server);
64
- }
65
- const definition = { kind: "mcp_servers", ...config };
66
- // Brand it as a connector without exposing the symbol as an enumerable field.
67
- Object.defineProperty(definition, CONNECTOR_BRAND, {
68
- value: true,
69
- enumerable: false,
70
- });
71
- // The tools hook runs at agent-graph construction time (inside the managed
72
- // runtime), so the MCP client loader is imported lazily — authoring-only
73
- // installs never pull in `@langchain/mcp-adapters`.
74
- Object.defineProperty(definition, "tools", {
75
- value: async () => {
76
- const { loadManagedMcpTools } = await import("./load.js");
77
- return loadManagedMcpTools(definition);
78
- },
79
- enumerable: false,
80
- });
81
- return definition;
82
- }
83
- /** Allowed remote transports. Stdio is intentionally unsupported in v0. */
84
- const REMOTE_TRANSPORTS = new Set(["http", "sse"]);
95
+ const mcpServersConfig = z.object({
96
+ mcpServers: z
97
+ .record(z.string(), remoteMcpServer, {
98
+ error: "must be an object mapping server names to remote MCP server configs",
99
+ })
100
+ .refine((servers) => Object.keys(servers).length > 0, "requires at least one entry"),
101
+ prefixToolNameWithServerName: z.boolean().optional(),
102
+ throwOnLoadError: z.boolean().optional(),
103
+ useStandardContentBlocks: z.boolean().optional(),
104
+ onConnectionError: z.literal("throw").optional(),
105
+ });
85
106
  /**
86
- * Validate a single MCP server config, rejecting stdio servers and anything
87
- * that is not a remote HTTP/SSE connection with a `url`.
107
+ * Declare the MCP servers whose tools should be loaded and added to the managed
108
+ * Deep Agent at runtime.
109
+ *
110
+ * The tools hook runs at agent-graph construction time (inside the managed
111
+ * runtime), so the MCP client loader is imported lazily — authoring-only
112
+ * installs never pull in `@langchain/mcp-adapters`.
88
113
  */
89
- function validateRemoteServer(name, server) {
90
- if (server === null || typeof server !== "object") {
91
- throw new Error(`MCP server "${name}" must be a configuration object.`);
92
- }
93
- const config = server;
94
- // A stdio server is identified by transport or by a `command` field. Reject
95
- // it with guidance toward the supported remote transports.
96
- if (config.transport === "stdio" || "command" in config) {
97
- throw new Error(`MCP server "${name}" uses a stdio transport, which is not supported. ` +
98
- "Managed Deep Agents support remote MCP servers over HTTP/SSE only; " +
99
- "expose the server over HTTP or write a normal authored tool instead.");
100
- }
101
- const transport = config.transport;
102
- if (typeof transport !== "string" || !REMOTE_TRANSPORTS.has(transport)) {
103
- throw new Error(`MCP server "${name}" must declare a remote transport ` +
104
- `("http" or "sse"); got ${JSON.stringify(transport)}.`);
105
- }
106
- if (typeof config.url !== "string" || config.url.trim().length === 0) {
107
- throw new Error(`MCP server "${name}" must declare a non-empty \`url\`.`);
108
- }
109
- validateToolSelection(name, config);
110
- }
111
- function validateToolSelection(name, config) {
112
- const includeTools = validateToolNameList(name, "includeTools", config.includeTools);
113
- const excludeTools = validateToolNameList(name, "excludeTools", config.excludeTools);
114
- if (!includeTools || !excludeTools) {
115
- return;
116
- }
117
- const included = new Set(includeTools);
118
- const conflicts = excludeTools.filter((toolName) => included.has(toolName));
119
- if (conflicts.length > 0) {
120
- throw new Error(`MCP server "${name}" selects tool(s) in both \`includeTools\` and ` +
121
- `\`excludeTools\`: ${conflicts.sort().join(", ")}.`);
122
- }
123
- }
124
- function validateToolNameList(serverName, field, value) {
125
- if (value === undefined) {
126
- return undefined;
127
- }
128
- if (!Array.isArray(value)) {
129
- throw new Error(`MCP server "${serverName}" \`${field}\` must be an array of strings.`);
130
- }
131
- const seen = new Set();
132
- for (const [index, item] of value.entries()) {
133
- if (typeof item !== "string" || item.trim().length === 0) {
134
- throw new Error(`MCP server "${serverName}" \`${field}\` entry ${index} must be a non-empty string.`);
135
- }
136
- if (seen.has(item)) {
137
- throw new Error(`MCP server "${serverName}" \`${field}\` contains duplicate tool name "${item}".`);
138
- }
139
- seen.add(item);
140
- }
141
- return value;
142
- }
114
+ export const mcpConnector = defineExtension("connector", {
115
+ kind: "mcp_servers",
116
+ label: "connectors.mcp",
117
+ args: mcpServersConfig,
118
+ async tools(_ctx, self) {
119
+ const { loadManagedMcpTools } = await import("./load.js");
120
+ return loadManagedMcpTools(self);
121
+ },
122
+ });
143
123
  //# sourceMappingURL=index.js.map