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,288 @@
1
+ /**
2
+ * Fleet OAuth integrations for toolserver connectors that store per-actor
3
+ * tokens in the LangSmith vault.
4
+ *
5
+ * Adding an integration here is the main step for a new Fleet provider of the
6
+ * same kind (Google, Microsoft Graph, LinkedIn, X): toolserver load, Connect
7
+ * inference, scopes, and actor-subject enablement all read this catalog.
8
+ */
9
+ /**
10
+ * Built-in Fleet OAuth integrations.
11
+ *
12
+ * To adopt another provider of the same kind: add a row, wire
13
+ * `connect.<id>()` (usually via {@link createFleetVaultConnectProvider}), and
14
+ * optionally a BYO OAuth adapter. Toolserver subject routing and connect
15
+ * inference pick the integration up automatically.
16
+ */
17
+ export const FLEET_OAUTH_INTEGRATIONS = [
18
+ {
19
+ id: "google",
20
+ connectId: "google",
21
+ displayName: "Google",
22
+ defaultProviderSlug: "google-oauth-provider",
23
+ providerSlugEnv: "MDA_GOOGLE_OAUTH_PROVIDER",
24
+ toolServerSlugs: [
25
+ "gmail",
26
+ "google_bigquery",
27
+ "google_calendar",
28
+ "google_docs",
29
+ "google_drive",
30
+ "google_meet",
31
+ "google_sheets",
32
+ "google_slides",
33
+ ],
34
+ profileScopes: ["openid", "email", "profile"],
35
+ scopesBySlug: {
36
+ gmail: ["https://www.googleapis.com/auth/gmail.modify"],
37
+ google_bigquery: ["https://www.googleapis.com/auth/bigquery"],
38
+ google_calendar: [
39
+ "https://www.googleapis.com/auth/calendar.events",
40
+ "https://www.googleapis.com/auth/calendar.calendarlist.readonly",
41
+ "https://www.googleapis.com/auth/calendar.freebusy",
42
+ ],
43
+ google_docs: ["https://www.googleapis.com/auth/drive.file"],
44
+ google_drive: ["https://www.googleapis.com/auth/drive.file"],
45
+ google_meet: [
46
+ "https://www.googleapis.com/auth/meetings.space.created",
47
+ "https://www.googleapis.com/auth/calendar.events",
48
+ ],
49
+ google_sheets: ["https://www.googleapis.com/auth/drive.file"],
50
+ google_slides: ["https://www.googleapis.com/auth/drive.file"],
51
+ },
52
+ },
53
+ {
54
+ id: "microsoft",
55
+ connectId: "microsoft",
56
+ displayName: "Microsoft",
57
+ defaultProviderSlug: "microsoft-oauth-provider",
58
+ providerSlugEnv: "MDA_MICROSOFT_OAUTH_PROVIDER",
59
+ toolServerSlugs: [
60
+ "outlook",
61
+ "teams",
62
+ "sharepoint",
63
+ "word",
64
+ "excel",
65
+ "powerpoint",
66
+ ],
67
+ // Host may still add `offline_access`.
68
+ profileScopes: [
69
+ "openid",
70
+ "email",
71
+ "profile",
72
+ "https://graph.microsoft.com/User.Read",
73
+ ],
74
+ scopesBySlug: {
75
+ // Omit *.Shared mailbox scopes; authors can pass extra scopes via connect().
76
+ outlook: [
77
+ "https://graph.microsoft.com/Mail.ReadWrite",
78
+ "https://graph.microsoft.com/Mail.Send",
79
+ "https://graph.microsoft.com/Calendars.ReadWrite",
80
+ ],
81
+ teams: [
82
+ "https://graph.microsoft.com/Team.ReadBasic.All",
83
+ "https://graph.microsoft.com/Channel.ReadBasic.All",
84
+ "https://graph.microsoft.com/Channel.Create",
85
+ "https://graph.microsoft.com/ChannelMessage.Send",
86
+ "https://graph.microsoft.com/ChannelMessage.Read.All",
87
+ "https://graph.microsoft.com/Chat.Create",
88
+ "https://graph.microsoft.com/Chat.ReadWrite",
89
+ ],
90
+ sharepoint: [
91
+ "https://graph.microsoft.com/Sites.ReadWrite.All",
92
+ "https://graph.microsoft.com/Files.ReadWrite.All",
93
+ ],
94
+ word: ["https://graph.microsoft.com/Files.ReadWrite.All"],
95
+ excel: ["https://graph.microsoft.com/Files.ReadWrite.All"],
96
+ powerpoint: ["https://graph.microsoft.com/Files.ReadWrite.All"],
97
+ },
98
+ },
99
+ {
100
+ id: "linkedin",
101
+ connectId: "linkedin",
102
+ displayName: "LinkedIn",
103
+ defaultProviderSlug: "linkedin-oauth-provider",
104
+ providerSlugEnv: "MDA_LINKEDIN_OAUTH_PROVIDER",
105
+ toolServerSlugs: ["linkedin"],
106
+ profileScopes: ["openid", "profile", "email"],
107
+ scopesBySlug: {
108
+ linkedin: ["w_member_social"],
109
+ },
110
+ },
111
+ {
112
+ // Fleet reserved BYO slug (workspace registers the X app client). Host
113
+ // handler + Agent Builder use `twitter-oauth-provider` for `x_com`.
114
+ id: "x",
115
+ connectId: "x",
116
+ displayName: "X",
117
+ defaultProviderSlug: "twitter-oauth-provider",
118
+ providerSlugEnv: "MDA_X_OAUTH_PROVIDER",
119
+ toolServerSlugs: ["x_com"],
120
+ profileScopes: ["users.read", "offline.access"],
121
+ scopesBySlug: {
122
+ x_com: [
123
+ "tweet.read",
124
+ "tweet.write",
125
+ "like.read",
126
+ "like.write",
127
+ "list.read",
128
+ "follows.read",
129
+ "follows.write",
130
+ ],
131
+ },
132
+ },
133
+ ];
134
+ const INTEGRATION_BY_ID = new Map(FLEET_OAUTH_INTEGRATIONS.map((integration) => [integration.id, integration]));
135
+ const INTEGRATION_BY_SLUG = new Map();
136
+ for (const integration of FLEET_OAUTH_INTEGRATIONS) {
137
+ for (const slug of integration.toolServerSlugs) {
138
+ INTEGRATION_BY_SLUG.set(slug, integration);
139
+ }
140
+ }
141
+ export function integrationById(id) {
142
+ return INTEGRATION_BY_ID.get(id);
143
+ }
144
+ export function integrationForSlug(slug) {
145
+ return slug ? INTEGRATION_BY_SLUG.get(slug) : undefined;
146
+ }
147
+ export function isFleetOAuthSlug(slug) {
148
+ return integrationForSlug(slug) !== undefined;
149
+ }
150
+ /** Toolserver slugs for `integration` that appear in `kinds`. */
151
+ export function integrationConnectorKinds(integration, kinds) {
152
+ const allowed = new Set(integration.toolServerSlugs);
153
+ const out = [];
154
+ for (const kind of kinds ?? []) {
155
+ if (kind && allowed.has(kind) && !out.includes(kind)) {
156
+ out.push(kind);
157
+ }
158
+ }
159
+ return out;
160
+ }
161
+ export function hasIntegrationToolServerConnector(integration, kinds) {
162
+ return integrationConnectorKinds(integration, kinds).length > 0;
163
+ }
164
+ /**
165
+ * Union of OAuth scopes for the given connector kinds in `integration`.
166
+ *
167
+ * Includes {@link FleetOAuthIntegration.profileScopes} when at least one
168
+ * integration connector is present.
169
+ */
170
+ export function scopesForIntegrationConnectorKinds(integration, kinds) {
171
+ const matched = integrationConnectorKinds(integration, kinds);
172
+ if (matched.length === 0) {
173
+ return [];
174
+ }
175
+ // Insertion-ordered dedupe so authorize URLs stay stable across processes.
176
+ const scopes = [];
177
+ const seen = new Set();
178
+ for (const scope of integration.profileScopes ?? []) {
179
+ if (!seen.has(scope)) {
180
+ seen.add(scope);
181
+ scopes.push(scope);
182
+ }
183
+ }
184
+ for (const slug of matched) {
185
+ for (const scope of integration.scopesBySlug[slug] ??
186
+ []) {
187
+ if (!seen.has(scope)) {
188
+ seen.add(scope);
189
+ scopes.push(scope);
190
+ }
191
+ }
192
+ }
193
+ return scopes;
194
+ }
195
+ export function readIntegrationProviderSlug(integration, env = process.env) {
196
+ if (integration.providerSlugEnv) {
197
+ const override = env[integration.providerSlugEnv]?.trim();
198
+ if (override) {
199
+ return override;
200
+ }
201
+ }
202
+ return integration.defaultProviderSlug;
203
+ }
204
+ /** Google integration convenience — same UUID namespace / slug set as before. */
205
+ export const GOOGLE_INTEGRATION = integrationById("google");
206
+ export const GOOGLE_TOOLSERVER_SLUGS = GOOGLE_INTEGRATION.toolServerSlugs;
207
+ export function isGoogleToolServerSlug(slug) {
208
+ return integrationForSlug(slug)?.id === "google";
209
+ }
210
+ export function googleConnectorKinds(kinds) {
211
+ return integrationConnectorKinds(GOOGLE_INTEGRATION, kinds);
212
+ }
213
+ export function googleScopesForConnectorKinds(kinds) {
214
+ return scopesForIntegrationConnectorKinds(GOOGLE_INTEGRATION, kinds);
215
+ }
216
+ export function hasGoogleToolServerConnector(kinds) {
217
+ return hasIntegrationToolServerConnector(GOOGLE_INTEGRATION, kinds);
218
+ }
219
+ /** Env name for the Google Fleet provider slug. */
220
+ export const MDA_GOOGLE_OAUTH_PROVIDER_ENV = "MDA_GOOGLE_OAUTH_PROVIDER";
221
+ export const DEFAULT_GOOGLE_PROVIDER_SLUG = GOOGLE_INTEGRATION.defaultProviderSlug;
222
+ export function readGoogleProviderSlug(env = process.env) {
223
+ return readIntegrationProviderSlug(GOOGLE_INTEGRATION, env);
224
+ }
225
+ /** Microsoft Graph integration convenience helpers. */
226
+ export const MICROSOFT_INTEGRATION = integrationById("microsoft");
227
+ export const MICROSOFT_TOOLSERVER_SLUGS = MICROSOFT_INTEGRATION.toolServerSlugs;
228
+ export function isMicrosoftToolServerSlug(slug) {
229
+ return integrationForSlug(slug)?.id === "microsoft";
230
+ }
231
+ export function microsoftConnectorKinds(kinds) {
232
+ return integrationConnectorKinds(MICROSOFT_INTEGRATION, kinds);
233
+ }
234
+ export function microsoftScopesForConnectorKinds(kinds) {
235
+ return scopesForIntegrationConnectorKinds(MICROSOFT_INTEGRATION, kinds);
236
+ }
237
+ export function hasMicrosoftToolServerConnector(kinds) {
238
+ return hasIntegrationToolServerConnector(MICROSOFT_INTEGRATION, kinds);
239
+ }
240
+ /** Env name for the Microsoft Fleet provider slug. */
241
+ export const MDA_MICROSOFT_OAUTH_PROVIDER_ENV = "MDA_MICROSOFT_OAUTH_PROVIDER";
242
+ export const DEFAULT_MICROSOFT_PROVIDER_SLUG = MICROSOFT_INTEGRATION.defaultProviderSlug;
243
+ export function readMicrosoftProviderSlug(env = process.env) {
244
+ return readIntegrationProviderSlug(MICROSOFT_INTEGRATION, env);
245
+ }
246
+ /** LinkedIn integration convenience helpers. */
247
+ export const LINKEDIN_INTEGRATION = integrationById("linkedin");
248
+ export const LINKEDIN_TOOLSERVER_SLUGS = LINKEDIN_INTEGRATION.toolServerSlugs;
249
+ export function isLinkedInToolServerSlug(slug) {
250
+ return integrationForSlug(slug)?.id === "linkedin";
251
+ }
252
+ export function linkedinConnectorKinds(kinds) {
253
+ return integrationConnectorKinds(LINKEDIN_INTEGRATION, kinds);
254
+ }
255
+ export function linkedinScopesForConnectorKinds(kinds) {
256
+ return scopesForIntegrationConnectorKinds(LINKEDIN_INTEGRATION, kinds);
257
+ }
258
+ export function hasLinkedInToolServerConnector(kinds) {
259
+ return hasIntegrationToolServerConnector(LINKEDIN_INTEGRATION, kinds);
260
+ }
261
+ /** Env name for the LinkedIn Fleet provider slug. */
262
+ export const MDA_LINKEDIN_OAUTH_PROVIDER_ENV = "MDA_LINKEDIN_OAUTH_PROVIDER";
263
+ export const DEFAULT_LINKEDIN_PROVIDER_SLUG = LINKEDIN_INTEGRATION.defaultProviderSlug;
264
+ export function readLinkedInProviderSlug(env = process.env) {
265
+ return readIntegrationProviderSlug(LINKEDIN_INTEGRATION, env);
266
+ }
267
+ /** X (Twitter) integration convenience helpers. */
268
+ export const X_INTEGRATION = integrationById("x");
269
+ export const X_TOOLSERVER_SLUGS = X_INTEGRATION.toolServerSlugs;
270
+ export function isXToolServerSlug(slug) {
271
+ return integrationForSlug(slug)?.id === "x";
272
+ }
273
+ export function xConnectorKinds(kinds) {
274
+ return integrationConnectorKinds(X_INTEGRATION, kinds);
275
+ }
276
+ export function xScopesForConnectorKinds(kinds) {
277
+ return scopesForIntegrationConnectorKinds(X_INTEGRATION, kinds);
278
+ }
279
+ export function hasXToolServerConnector(kinds) {
280
+ return hasIntegrationToolServerConnector(X_INTEGRATION, kinds);
281
+ }
282
+ /** Env name for the X Fleet provider slug. */
283
+ export const MDA_X_OAUTH_PROVIDER_ENV = "MDA_X_OAUTH_PROVIDER";
284
+ export const DEFAULT_X_PROVIDER_SLUG = X_INTEGRATION.defaultProviderSlug;
285
+ export function readXProviderSlug(env = process.env) {
286
+ return readIntegrationProviderSlug(X_INTEGRATION, env);
287
+ }
288
+ //# sourceMappingURL=integrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../../src/connectors/toolserver/integrations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Load a tool server integration's tools through LangSmith's gateway.
3
+ *
4
+ * The gateway (`POST /v1/toolserver/servers/{slug}/mcp`) authenticates the call,
5
+ * resolves the subject's stored credential for that provider, and forwards the
6
+ * MCP request to the tool server. From the client's side it is an ordinary
7
+ * remote MCP server that happens to need a LangSmith key, so the same
8
+ * `@langchain/mcp-adapters` client `connectors.mcp` uses talks to it.
9
+ *
10
+ * Names are not prefixed with the integration: the tool server already publishes
11
+ * them provider-qualified (`gmail_send_email`, `linear_create_issue`), so a
12
+ * prefix would only produce `gmail__gmail_send_email` and make every
13
+ * `includeTools` entry a guess about MDA's renaming.
14
+ *
15
+ * Everything about *reaching* LangSmith comes from the environment, because it
16
+ * describes the deployment rather than the agent: `LANGSMITH_API_KEY`,
17
+ * `LANGSMITH_ENDPOINT`, `LANGSMITH_WORKSPACE_ID`.
18
+ *
19
+ * `MDA_TOOLSERVER_AGENT_ID` is the shared (Pattern C) subject. When a Fleet
20
+ * OAuth integration's actor-subject mode is on (inferred from connectors or
21
+ * `connect.<integration>()`), those tools resolve `agent_id` at invoke time from
22
+ * `runtime.identity.user.id` via {@link agentIdFromActor}.
23
+ */
24
+ import type { ToolServerConnectorConfig, ToolServerSlug } from "./index.js";
25
+ /**
26
+ * Load (and cache) the tools of one declared tool server integration.
27
+ *
28
+ * `connector` carries the gateway options and is what the schema cache is keyed
29
+ * by. Returned tools may re-resolve `agent_id` on each invoke when a Fleet
30
+ * integration's actor-subject mode is enabled.
31
+ */
32
+ export declare function loadToolServerTools(slug: ToolServerSlug, label: string, connector: ToolServerConnectorConfig & object): Promise<unknown[]>;
33
+ /** Drop a connector's cached tools. Test-only. */
34
+ export declare function clearToolServerToolsCacheForTests(connector: object): void;
35
+ /** Drop per-subject invoke caches. Test-only. */
36
+ export declare function clearToolServerSubjectCacheForTests(): void;
37
+ /**
38
+ * Build the integration's gateway URL.
39
+ *
40
+ * The gateway path is appended to the configured API base rather than resolved
41
+ * against its origin, so a LangSmith reachable under a path prefix keeps it. That
42
+ * makes the base the whole prefix — `https://api.smith.langchain.com`, or
43
+ * `https://langsmith.acme.com/api` self-hosted — not a host to graft onto.
44
+ */
45
+ export declare function gatewayUrl(slug: ToolServerSlug, label: string, agentId?: string | null): string;
46
+ /**
47
+ * Authenticate the call to the gateway.
48
+ *
49
+ * The key is read at load time rather than at declaration time so the same
50
+ * compiled project runs in any workspace, and it is required here rather than
51
+ * defaulted to empty so a missing key fails naming the fix instead of arriving
52
+ * as a 401 from LangSmith.
53
+ */
54
+ export declare function gatewayHeaders(label: string): Record<string, string>;
55
+ //# sourceMappingURL=load.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/connectors/toolserver/load.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAcH,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAuB5E;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,yBAAyB,GAAG,MAAM,GAC5C,OAAO,CAAC,OAAO,EAAE,CAAC,CAepB;AAED,kDAAkD;AAClD,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,iDAAiD;AACjD,wBAAgB,mCAAmC,IAAI,IAAI,CAK1D;AA0ND;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,CAqBR;AAUD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAepE"}
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Load a tool server integration's tools through LangSmith's gateway.
3
+ *
4
+ * The gateway (`POST /v1/toolserver/servers/{slug}/mcp`) authenticates the call,
5
+ * resolves the subject's stored credential for that provider, and forwards the
6
+ * MCP request to the tool server. From the client's side it is an ordinary
7
+ * remote MCP server that happens to need a LangSmith key, so the same
8
+ * `@langchain/mcp-adapters` client `connectors.mcp` uses talks to it.
9
+ *
10
+ * Names are not prefixed with the integration: the tool server already publishes
11
+ * them provider-qualified (`gmail_send_email`, `linear_create_issue`), so a
12
+ * prefix would only produce `gmail__gmail_send_email` and make every
13
+ * `includeTools` entry a guess about MDA's renaming.
14
+ *
15
+ * Everything about *reaching* LangSmith comes from the environment, because it
16
+ * describes the deployment rather than the agent: `LANGSMITH_API_KEY`,
17
+ * `LANGSMITH_ENDPOINT`, `LANGSMITH_WORKSPACE_ID`.
18
+ *
19
+ * `MDA_TOOLSERVER_AGENT_ID` is the shared (Pattern C) subject. When a Fleet
20
+ * OAuth integration's actor-subject mode is on (inferred from connectors or
21
+ * `connect.<integration>()`), those tools resolve `agent_id` at invoke time from
22
+ * `runtime.identity.user.id` via {@link agentIdFromActor}.
23
+ */
24
+ import { DynamicStructuredTool } from "@langchain/core/tools";
25
+ import { MultiServerMCPClient } from "@langchain/mcp-adapters";
26
+ import { agentIdFromActor, isActorSubjectSlugEnabled, } from "../../identity/actor-subject.js";
27
+ import { rewriteFleetToolError } from "../../identity/fleet-connect-hint.js";
28
+ import { managedRuntimeOverrides } from "../../runtime/managed-tools.js";
29
+ import { selectTools } from "../tool-selection.js";
30
+ import { integrationForSlug } from "./integrations.js";
31
+ /** LangSmith's public API, used when no endpoint is configured. */
32
+ const DEFAULT_API_URL = "https://api.smith.langchain.com";
33
+ /**
34
+ * Schema tools loaded per declared connector (listTools), cached for the life
35
+ * of the process. Invoke-time MCP clients are keyed separately by agent_id.
36
+ */
37
+ const schemaCache = new WeakMap();
38
+ /**
39
+ * Per-connector, per-agentId MCP tool lists for invoke-time subject routing.
40
+ * Keyed by connector object so distinct declarations (include/exclude/timeout)
41
+ * never share a tool list.
42
+ */
43
+ const subjectToolsCache = new WeakMap();
44
+ /** Strong refs so {@link clearToolServerSubjectCacheForTests} can drop entries. */
45
+ const subjectToolsCacheConnectors = new Set();
46
+ /**
47
+ * Load (and cache) the tools of one declared tool server integration.
48
+ *
49
+ * `connector` carries the gateway options and is what the schema cache is keyed
50
+ * by. Returned tools may re-resolve `agent_id` on each invoke when a Fleet
51
+ * integration's actor-subject mode is enabled.
52
+ */
53
+ export function loadToolServerTools(slug, label, connector) {
54
+ if (connector.includeTools?.length === 0) {
55
+ return Promise.resolve([]);
56
+ }
57
+ const cached = schemaCache.get(connector);
58
+ if (cached) {
59
+ return cached;
60
+ }
61
+ const loading = connectAndLoadTools(slug, label, connector).catch((error) => {
62
+ schemaCache.delete(connector);
63
+ throw error;
64
+ });
65
+ schemaCache.set(connector, loading);
66
+ return loading;
67
+ }
68
+ /** Drop a connector's cached tools. Test-only. */
69
+ export function clearToolServerToolsCacheForTests(connector) {
70
+ schemaCache.delete(connector);
71
+ }
72
+ /** Drop per-subject invoke caches. Test-only. */
73
+ export function clearToolServerSubjectCacheForTests() {
74
+ for (const connector of subjectToolsCacheConnectors) {
75
+ subjectToolsCache.delete(connector);
76
+ }
77
+ subjectToolsCacheConnectors.clear();
78
+ }
79
+ async function connectAndLoadTools(slug, label, config) {
80
+ // List tools without a dynamic actor subject; tool schemas are provider-wide.
81
+ const listAgentId = trimmed(process.env.MDA_TOOLSERVER_AGENT_ID);
82
+ const tools = await loadToolsForAgentId(slug, label, config, listAgentId);
83
+ if (isActorSubjectSlugEnabled(slug)) {
84
+ return tools.map((tool) => wrapToolWithDynamicAgentId(tool, slug, label, config));
85
+ }
86
+ return tools;
87
+ }
88
+ async function loadToolsForAgentId(slug, label, config, agentId) {
89
+ const client = new MultiServerMCPClient({
90
+ mcpServers: {
91
+ [slug]: {
92
+ transport: "http",
93
+ url: gatewayUrl(slug, label, agentId),
94
+ headers: gatewayHeaders(label),
95
+ automaticSSEFallback: false,
96
+ ...(config.defaultToolTimeout === undefined
97
+ ? {}
98
+ : { defaultToolTimeout: config.defaultToolTimeout }),
99
+ },
100
+ },
101
+ prefixToolNameWithServerName: false,
102
+ throwOnLoadError: true,
103
+ useStandardContentBlocks: true,
104
+ onConnectionError: "throw",
105
+ });
106
+ const tools = await client.getTools(slug);
107
+ return selectTools(label, config, tools);
108
+ }
109
+ /**
110
+ * Rebuild an MCP tool so each invoke re-resolves `agent_id` from the caller.
111
+ *
112
+ * Copies the DynamicStructuredTool constructor fields from the schema-load tool
113
+ * (name/description/schema/responseFormat/metadata/…) and replaces `func` with
114
+ * subject routing. Throws when the adapter returns something that is not a
115
+ * LangChain structured tool — silent pass-through would skip actor routing.
116
+ */
117
+ function wrapToolWithDynamicAgentId(tool, slug, label, config) {
118
+ const base = tool;
119
+ if (typeof base.name !== "string" || !base.name) {
120
+ throw new Error(`${label}: expected a LangChain tool with a string name for ` +
121
+ `actor-subject wrapping; got ${describeUnexpectedTool(tool)}`);
122
+ }
123
+ const toolName = base.name;
124
+ if (typeof base.invoke !== "function") {
125
+ throw new Error(`${label}: expected tool "${toolName}" to expose invoke() for ` +
126
+ `actor-subject wrapping; got ${describeUnexpectedTool(tool)}`);
127
+ }
128
+ if (base.schema == null) {
129
+ throw new Error(`${label}: expected tool "${toolName}" to expose a schema for ` +
130
+ "actor-subject wrapping");
131
+ }
132
+ return new DynamicStructuredTool({
133
+ name: toolName,
134
+ description: typeof base.description === "string" ? base.description : "",
135
+ schema: base.schema,
136
+ ...(base.responseFormat !== undefined
137
+ ? { responseFormat: base.responseFormat }
138
+ : {}),
139
+ ...(base.returnDirect !== undefined
140
+ ? { returnDirect: base.returnDirect }
141
+ : {}),
142
+ ...(base.verboseParsingErrors !== undefined
143
+ ? { verboseParsingErrors: base.verboseParsingErrors }
144
+ : {}),
145
+ ...(base.metadata !== undefined ? { metadata: base.metadata } : {}),
146
+ ...(base.extras !== undefined ? { extras: base.extras } : {}),
147
+ ...(base.defaultConfig !== undefined
148
+ ? { defaultConfig: base.defaultConfig }
149
+ : {}),
150
+ func: async (input, runManager, runtime) => {
151
+ const runtimeConfig = runtime;
152
+ const agentId = resolveInvokeAgentId(runtimeConfig, slug);
153
+ try {
154
+ const subjectTools = await toolsForSubject(slug, label, config, agentId);
155
+ const match = subjectTools.find((t) => t &&
156
+ typeof t === "object" &&
157
+ "name" in t &&
158
+ t.name === toolName);
159
+ if (!match) {
160
+ throw new Error(`${label}: tool "${toolName}" not found for agent subject`);
161
+ }
162
+ // Call `func` (not `invoke`) so the outer DynamicStructuredTool still
163
+ // owns responseFormat formatting — nested invoke() would already have
164
+ // unwrapped content_and_artifact into a string/ToolMessage.
165
+ if (typeof match.func === "function") {
166
+ return await match.func(input, runManager, runtimeConfig);
167
+ }
168
+ if (typeof match.invoke === "function") {
169
+ return await match.invoke(input, runtimeConfig);
170
+ }
171
+ throw new Error(`${label}: tool "${toolName}" for agent subject is not invokable`);
172
+ }
173
+ catch (error) {
174
+ const integration = integrationForSlug(slug);
175
+ throw integration ? rewriteFleetToolError(error, integration) : error;
176
+ }
177
+ },
178
+ });
179
+ }
180
+ function describeUnexpectedTool(tool) {
181
+ if (tool == null) {
182
+ return String(tool);
183
+ }
184
+ if (typeof tool !== "object") {
185
+ return typeof tool;
186
+ }
187
+ const ctor = tool.constructor?.name;
188
+ if (ctor && ctor !== "Object") {
189
+ return ctor;
190
+ }
191
+ return "object without a usable LangChain tool shape";
192
+ }
193
+ function resolveInvokeAgentId(runtime, slug) {
194
+ if (isActorSubjectSlugEnabled(slug)) {
195
+ const identity = managedRuntimeOverrides(runtime).identity;
196
+ const userId = identity?.user?.id;
197
+ if (userId) {
198
+ return agentIdFromActor(userId);
199
+ }
200
+ }
201
+ return trimmed(process.env.MDA_TOOLSERVER_AGENT_ID);
202
+ }
203
+ function toolsForSubject(slug, label, config, agentId) {
204
+ const connectorKey = config;
205
+ let byAgent = subjectToolsCache.get(connectorKey);
206
+ if (!byAgent) {
207
+ byAgent = new Map();
208
+ subjectToolsCache.set(connectorKey, byAgent);
209
+ subjectToolsCacheConnectors.add(connectorKey);
210
+ }
211
+ const key = agentId ?? "";
212
+ const cached = byAgent.get(key);
213
+ if (cached) {
214
+ return cached;
215
+ }
216
+ const loading = loadToolsForAgentId(slug, label, config, agentId).catch((error) => {
217
+ byAgent.delete(key);
218
+ throw error;
219
+ });
220
+ byAgent.set(key, loading);
221
+ return loading;
222
+ }
223
+ /**
224
+ * Build the integration's gateway URL.
225
+ *
226
+ * The gateway path is appended to the configured API base rather than resolved
227
+ * against its origin, so a LangSmith reachable under a path prefix keeps it. That
228
+ * makes the base the whole prefix — `https://api.smith.langchain.com`, or
229
+ * `https://langsmith.acme.com/api` self-hosted — not a host to graft onto.
230
+ */
231
+ export function gatewayUrl(slug, label, agentId) {
232
+ const base = envApiUrl() ?? DEFAULT_API_URL;
233
+ const origin = parseApiBase(base);
234
+ if (!origin?.host) {
235
+ throw new Error(`${label}(...) could not build a tool server URL from "${base}". Set ` +
236
+ "LANGSMITH_ENDPOINT to your LangSmith API base URL, e.g. " +
237
+ `"${DEFAULT_API_URL}".`);
238
+ }
239
+ const prefix = origin.pathname.replace(/\/+$/, "");
240
+ const url = new URL(`${prefix}/v1/toolserver/servers/${slug}/mcp`, origin);
241
+ const resolved = agentId === undefined
242
+ ? trimmed(process.env.MDA_TOOLSERVER_AGENT_ID)
243
+ : trimmed(agentId ?? undefined);
244
+ if (resolved) {
245
+ url.searchParams.set("agent_id", resolved);
246
+ }
247
+ return url.toString();
248
+ }
249
+ function parseApiBase(base) {
250
+ try {
251
+ return new URL(withScheme(base));
252
+ }
253
+ catch {
254
+ return undefined;
255
+ }
256
+ }
257
+ /**
258
+ * Authenticate the call to the gateway.
259
+ *
260
+ * The key is read at load time rather than at declaration time so the same
261
+ * compiled project runs in any workspace, and it is required here rather than
262
+ * defaulted to empty so a missing key fails naming the fix instead of arriving
263
+ * as a 401 from LangSmith.
264
+ */
265
+ export function gatewayHeaders(label) {
266
+ const apiKey = trimmed(process.env.LANGSMITH_API_KEY);
267
+ if (!apiKey) {
268
+ throw new Error(`${label}(...) needs a LangSmith API key to reach the tool server. Set ` +
269
+ "LANGSMITH_API_KEY in the deployment's environment.");
270
+ }
271
+ const headers = { "x-api-key": apiKey };
272
+ const workspaceId = trimmed(process.env.LANGSMITH_WORKSPACE_ID);
273
+ if (workspaceId) {
274
+ headers["x-tenant-id"] = workspaceId;
275
+ }
276
+ return headers;
277
+ }
278
+ function envApiUrl() {
279
+ return trimmed(process.env.LANGSMITH_ENDPOINT);
280
+ }
281
+ /** Accept a bare host, since that is how an endpoint is often configured. */
282
+ function withScheme(base) {
283
+ return /^[a-z][a-z0-9+.-]*:\/\//i.test(base) ? base : `https://${base}`;
284
+ }
285
+ function trimmed(value) {
286
+ const trimmedValue = value?.trim();
287
+ return trimmedValue ? trimmedValue : undefined;
288
+ }
289
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/connectors/toolserver/load.ts"],"names":[],"mappings":"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"}