managed-deepagents 0.4.2 → 0.4.3-dev.94

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 +51 -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 +64 -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 +127 -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 +43 -32
  304. package/dist/runtime/auth.d.ts.map +1 -1
  305. package/dist/runtime/auth.js +225 -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,13 @@
1
+ /**
2
+ * Per-integration factories on `connectors` for LangSmith tool-server tools.
3
+ *
4
+ * Built from {@link TOOL_SERVER_INTEGRATIONS}. Each property documents the
5
+ * provider, the tool names accepted by `includeTools` / `excludeTools`, and the
6
+ * shared {@link ToolServerConnectorConfig} options. Hover docs live here so IDE
7
+ * autocomplete on `connectors.gmail` (etc.) stays useful.
8
+ *
9
+ * GitHub and Slack are first-class connectors (sandbox / Events / messaging) and
10
+ * are intentionally omitted from this interface — see the `connectors` namespace.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=connectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../../src/connectors/toolserver/connectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Tool server connectors — the integrations a workspace manages in LangSmith.
3
+ *
4
+ * A workspace connects Gmail, Slack, Linear, … once in LangSmith; declaring the
5
+ * matching connector is how a Managed Deep Agent gets those tools. The provider's
6
+ * tokens stay in LangSmith's vault: MDA calls LangSmith's tool server gateway,
7
+ * which resolves the credential for the subject and forwards to the tool server.
8
+ * The deployment never sees, stores, or refreshes a provider token.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // connectors/gmail.ts
13
+ * import { connectors } from "managed-deepagents";
14
+ *
15
+ * export const connector = connectors.gmail({
16
+ * includeTools: ["gmail_read_emails", "gmail_draft_email"],
17
+ * });
18
+ * ```
19
+ *
20
+ * ## Whose credentials
21
+ *
22
+ * Nothing here. Which workspace the call runs against, which key authenticates
23
+ * it, and whose connection it resolves are facts about the deployment, not
24
+ * choices the agent's source makes — so they come from the environment
25
+ * (`LANGSMITH_API_KEY`, `LANGSMITH_ENDPOINT`, `LANGSMITH_WORKSPACE_ID`) and the
26
+ * declaration is only ever about which tools the agent gets.
27
+ *
28
+ * The gateway resolves credentials for whoever the call authenticates as, so the
29
+ * subject is the deployment's key rather than the caller of the run: every thread
30
+ * reaches the same connection. A personal key resolves that user's connections,
31
+ * which is what makes `mda dev` work against your own Gmail. A key with no user
32
+ * behind it has no subject yet, and has to borrow an agent's shared connection
33
+ * via `MDA_TOOLSERVER_AGENT_ID` — see the loader for why that is an env var.
34
+ *
35
+ * Per-actor Fleet vault subjects: declaring a Fleet OAuth integration connector
36
+ * (e.g. `connectors.gmail`, `connectors.googleSheets`) on a user-scoped identity
37
+ * deployment mounts Connect-with-X automatically (unioned scopes) and routes
38
+ * toolserver calls with a derived `?agent_id=` at invoke time. Integrations live
39
+ * in {@link ./integrations.ts}.
40
+ */
41
+ export { FLEET_OAUTH_INTEGRATIONS, GOOGLE_INTEGRATION, GOOGLE_TOOLSERVER_SLUGS, LINKEDIN_INTEGRATION, LINKEDIN_TOOLSERVER_SLUGS, MICROSOFT_INTEGRATION, MICROSOFT_TOOLSERVER_SLUGS, X_INTEGRATION, X_TOOLSERVER_SLUGS, integrationConnectorKinds, integrationById, integrationForSlug, googleConnectorKinds, googleScopesForConnectorKinds, hasIntegrationToolServerConnector, hasGoogleToolServerConnector, hasLinkedInToolServerConnector, hasMicrosoftToolServerConnector, hasXToolServerConnector, isFleetOAuthSlug, isGoogleToolServerSlug, isLinkedInToolServerSlug, isMicrosoftToolServerSlug, isXToolServerSlug, linkedinConnectorKinds, linkedinScopesForConnectorKinds, microsoftConnectorKinds, microsoftScopesForConnectorKinds, xConnectorKinds, xScopesForConnectorKinds, readIntegrationProviderSlug, readGoogleProviderSlug, readLinkedInProviderSlug, readMicrosoftProviderSlug, readXProviderSlug, scopesForIntegrationConnectorKinds, type FleetOAuthIntegration, type GoogleToolServerSlug, type LinkedInToolServerSlug, type MicrosoftToolServerSlug, type XToolServerSlug, } from "./integrations.js";
42
+ import type { ZodRawShape, ZodType } from "zod";
43
+ import type { Connector } from "../../runtime/connector.js";
44
+ import { type ToolSelection, type ToolSelectionConnectorConfig } from "../tool-selection.js";
45
+ import { type ToolServerSlug } from "./catalog.js";
46
+ import type { ToolServerConnectors } from "./connectors.js";
47
+ export { SLACK_SLUG, STANDALONE_TOOL_SERVER_INTEGRATIONS, TOOL_SERVER_INTEGRATIONS, integrationForFactory, } from "./catalog.js";
48
+ export type { ToolServerFactoryName, ToolServerIntegration, ToolServerIntegrationEntry, ToolServerSlug, ToolsForFactory, } from "./catalog.js";
49
+ export type { ToolServerConnectorFactoryFor, ToolServerConnectors, } from "./connectors.js";
50
+ /**
51
+ * @deprecated Prefer {@link ToolSelection}. Kept so existing
52
+ * `import type { ToolServerToolSelection } from "managed-deepagents"` keeps
53
+ * compiling after the shared tool-selection rename.
54
+ */
55
+ export type ToolServerToolSelection<TTool extends string = string> = ToolSelection<TTool>;
56
+ /**
57
+ * Configuration accepted by every `connectors.<integration>` factory.
58
+ *
59
+ * Alias of {@link ToolSelectionConnectorConfig}: which tools the agent gets and
60
+ * how long it waits for one. How to reach LangSmith and whose credentials to
61
+ * use come from the deployment — see the module docs.
62
+ *
63
+ * When `TTool` is a catalog tool-name union (via {@link ToolsForFactory}),
64
+ * `includeTools` / `excludeTools` autocomplete the integration's tools.
65
+ * Omitting both means every tool the integration publishes; an empty
66
+ * `includeTools` selects none.
67
+ */
68
+ export type ToolServerConnectorConfig<TTool extends string = string> = ToolSelectionConnectorConfig<TTool>;
69
+ /**
70
+ * A declared tool server integration. Branded as a managed {@link Connector}
71
+ * whose `tools` hook loads the integration's tools at runtime, and whose `kind`
72
+ * is the integration's wire slug.
73
+ */
74
+ export type ToolServerConnector<TTool extends string = string> = Connector & ToolServerConnectorConfig<TTool> & {
75
+ /** The tool server slug this connector loads from. */
76
+ readonly kind: ToolServerSlug;
77
+ };
78
+ /**
79
+ * A `connectors.<integration>` factory for a LangSmith tool-server integration
80
+ * (e.g. `connectors.gmail`, `connectors.linear`, `connectors.googleSheets`).
81
+ *
82
+ * Prefer the per-factory typings on {@link ToolServerConnectors} for hover docs
83
+ * and tool-name autocomplete. This alias is the shared untyped shape used when
84
+ * iterating the catalog.
85
+ *
86
+ * @param config - Optional tool selection and per-call timeout.
87
+ * @returns A branded connector discovered from `connectors/<name>.ts`.
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * export const connector = connectors.gmail({
92
+ * includeTools: ["gmail_read_emails", "gmail_draft_email"],
93
+ * });
94
+ * ```
95
+ *
96
+ * @see {@link ToolServerConnectorConfig}
97
+ * @see {@link ToolServerConnectors}
98
+ */
99
+ export type ToolServerConnectorFactory = (config?: ToolServerConnectorConfig) => ToolServerConnector;
100
+ /**
101
+ * Build the argument schema for one tool server integration.
102
+ *
103
+ * Delegates to {@link toolSelectionConnectorSchema} so marketplace bridges and
104
+ * tool-server factories reject blank/duplicate names and include∩exclude
105
+ * overlap the same way. `extra` adds whatever the integration accepts on top
106
+ * of the shared options.
107
+ *
108
+ * Strict, so an option that does not exist is an error rather than a silently
109
+ * ignored key — which matches the Python model's `extra="forbid"`, and is what
110
+ * tells a project that `apiKey` and friends now come from the environment.
111
+ *
112
+ * The result is cast to the caller's argument types. Zod cannot describe a
113
+ * prefaulted object as "accepts undefined, produces defaults" in one type, so
114
+ * the shape and the declared config interface are kept in step by review.
115
+ */
116
+ export declare function toolServerConnectorSchema<TArgs, TInput>(extra?: ZodRawShape): ZodType<TArgs, TInput>;
117
+ /**
118
+ * Build the `tools` hook that loads one integration's tools.
119
+ *
120
+ * Shared so every integration reaches the gateway the same way.
121
+ *
122
+ * The hook runs at agent-graph construction, so the loader is imported lazily —
123
+ * an authoring-only install never pulls in the MCP client.
124
+ */
125
+ export declare function toolServerTools(slug: ToolServerSlug, label: string): (ctx: unknown, self: ToolServerConnectorConfig) => Promise<unknown[]>;
126
+ /**
127
+ * Build the factory for one tool server integration.
128
+ *
129
+ * For the integrations that are only their tools. An integration with more to
130
+ * contribute (e.g. `connectors.slack`) calls `defineExtension` itself with
131
+ * {@link toolServerConnectorSchema} and {@link toolServerTools}.
132
+ */
133
+ export declare function toolServerConnector(slug: ToolServerSlug, label: string): ToolServerConnectorFactory;
134
+ /**
135
+ * The `connectors` entries for the integrations that have their own factory.
136
+ *
137
+ * Built from the catalog so a new integration is one entry, not an entry plus a
138
+ * namespace line that can be forgotten. Typed as {@link ToolServerConnectors} so
139
+ * hover docs and tool-name unions surface on `connectors.<factory>`.
140
+ */
141
+ export declare const toolServerConnectors: ToolServerConnectors;
142
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/toolserver/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Tool server connectors — the integrations a workspace manages in LangSmith.
3
+ *
4
+ * A workspace connects Gmail, Slack, Linear, … once in LangSmith; declaring the
5
+ * matching connector is how a Managed Deep Agent gets those tools. The provider's
6
+ * tokens stay in LangSmith's vault: MDA calls LangSmith's tool server gateway,
7
+ * which resolves the credential for the subject and forwards to the tool server.
8
+ * The deployment never sees, stores, or refreshes a provider token.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // connectors/gmail.ts
13
+ * import { connectors } from "managed-deepagents";
14
+ *
15
+ * export const connector = connectors.gmail({
16
+ * includeTools: ["gmail_read_emails", "gmail_draft_email"],
17
+ * });
18
+ * ```
19
+ *
20
+ * ## Whose credentials
21
+ *
22
+ * Nothing here. Which workspace the call runs against, which key authenticates
23
+ * it, and whose connection it resolves are facts about the deployment, not
24
+ * choices the agent's source makes — so they come from the environment
25
+ * (`LANGSMITH_API_KEY`, `LANGSMITH_ENDPOINT`, `LANGSMITH_WORKSPACE_ID`) and the
26
+ * declaration is only ever about which tools the agent gets.
27
+ *
28
+ * The gateway resolves credentials for whoever the call authenticates as, so the
29
+ * subject is the deployment's key rather than the caller of the run: every thread
30
+ * reaches the same connection. A personal key resolves that user's connections,
31
+ * which is what makes `mda dev` work against your own Gmail. A key with no user
32
+ * behind it has no subject yet, and has to borrow an agent's shared connection
33
+ * via `MDA_TOOLSERVER_AGENT_ID` — see the loader for why that is an env var.
34
+ *
35
+ * Per-actor Fleet vault subjects: declaring a Fleet OAuth integration connector
36
+ * (e.g. `connectors.gmail`, `connectors.googleSheets`) on a user-scoped identity
37
+ * deployment mounts Connect-with-X automatically (unioned scopes) and routes
38
+ * toolserver calls with a derived `?agent_id=` at invoke time. Integrations live
39
+ * in {@link ./integrations.ts}.
40
+ */
41
+ export { FLEET_OAUTH_INTEGRATIONS, GOOGLE_INTEGRATION, GOOGLE_TOOLSERVER_SLUGS, LINKEDIN_INTEGRATION, LINKEDIN_TOOLSERVER_SLUGS, MICROSOFT_INTEGRATION, MICROSOFT_TOOLSERVER_SLUGS, X_INTEGRATION, X_TOOLSERVER_SLUGS, integrationConnectorKinds, integrationById, integrationForSlug, googleConnectorKinds, googleScopesForConnectorKinds, hasIntegrationToolServerConnector, hasGoogleToolServerConnector, hasLinkedInToolServerConnector, hasMicrosoftToolServerConnector, hasXToolServerConnector, isFleetOAuthSlug, isGoogleToolServerSlug, isLinkedInToolServerSlug, isMicrosoftToolServerSlug, isXToolServerSlug, linkedinConnectorKinds, linkedinScopesForConnectorKinds, microsoftConnectorKinds, microsoftScopesForConnectorKinds, xConnectorKinds, xScopesForConnectorKinds, readIntegrationProviderSlug, readGoogleProviderSlug, readLinkedInProviderSlug, readMicrosoftProviderSlug, readXProviderSlug, scopesForIntegrationConnectorKinds, } from "./integrations.js";
42
+ import { defineExtension } from "../../extension.js";
43
+ import { toolSelectionConnectorSchema, } from "../tool-selection.js";
44
+ import { STANDALONE_TOOL_SERVER_INTEGRATIONS, } from "./catalog.js";
45
+ export { SLACK_SLUG, STANDALONE_TOOL_SERVER_INTEGRATIONS, TOOL_SERVER_INTEGRATIONS, integrationForFactory, } from "./catalog.js";
46
+ /**
47
+ * Build the argument schema for one tool server integration.
48
+ *
49
+ * Delegates to {@link toolSelectionConnectorSchema} so marketplace bridges and
50
+ * tool-server factories reject blank/duplicate names and include∩exclude
51
+ * overlap the same way. `extra` adds whatever the integration accepts on top
52
+ * of the shared options.
53
+ *
54
+ * Strict, so an option that does not exist is an error rather than a silently
55
+ * ignored key — which matches the Python model's `extra="forbid"`, and is what
56
+ * tells a project that `apiKey` and friends now come from the environment.
57
+ *
58
+ * The result is cast to the caller's argument types. Zod cannot describe a
59
+ * prefaulted object as "accepts undefined, produces defaults" in one type, so
60
+ * the shape and the declared config interface are kept in step by review.
61
+ */
62
+ export function toolServerConnectorSchema(extra = {}) {
63
+ return toolSelectionConnectorSchema(extra);
64
+ }
65
+ /**
66
+ * Build the `tools` hook that loads one integration's tools.
67
+ *
68
+ * Shared so every integration reaches the gateway the same way.
69
+ *
70
+ * The hook runs at agent-graph construction, so the loader is imported lazily —
71
+ * an authoring-only install never pulls in the MCP client.
72
+ */
73
+ export function toolServerTools(slug, label) {
74
+ return async (_ctx, self) => {
75
+ const { loadToolServerTools } = await import("./load.js");
76
+ return loadToolServerTools(slug, label, self);
77
+ };
78
+ }
79
+ /**
80
+ * Build the factory for one tool server integration.
81
+ *
82
+ * For the integrations that are only their tools. An integration with more to
83
+ * contribute (e.g. `connectors.slack`) calls `defineExtension` itself with
84
+ * {@link toolServerConnectorSchema} and {@link toolServerTools}.
85
+ */
86
+ export function toolServerConnector(slug, label) {
87
+ return defineExtension("connector", {
88
+ kind: slug,
89
+ label,
90
+ args: toolServerConnectorSchema(),
91
+ tools: toolServerTools(slug, label),
92
+ });
93
+ }
94
+ /**
95
+ * The `connectors` entries for the integrations that have their own factory.
96
+ *
97
+ * Built from the catalog so a new integration is one entry, not an entry plus a
98
+ * namespace line that can be forgotten. Typed as {@link ToolServerConnectors} so
99
+ * hover docs and tool-name unions surface on `connectors.<factory>`.
100
+ */
101
+ export const toolServerConnectors = Object.fromEntries(STANDALONE_TOOL_SERVER_INTEGRATIONS.map(({ slug, factory }) => [
102
+ factory,
103
+ toolServerConnector(slug, `connectors.${factory}`),
104
+ ]));
105
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/toolserver/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,iCAAiC,EACjC,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,gCAAgC,EAChC,eAAe,EACf,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,kCAAkC,GAMnC,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,4BAA4B,GAG7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mCAAmC,GAEpC,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,UAAU,EACV,mCAAmC,EACnC,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAwEtB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAK,GAAgB,EAAE;IAEvB,OAAO,4BAA4B,CAAgB,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAoB,EACpB,KAAa;IAEb,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1D,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAoB,EACpB,KAAa;IAEb,OAAO,eAAe,CAAC,WAAW,EAAE;QAClC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,IAAI,EAAE,yBAAyB,EAG5B;QACH,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAyB,MAAM,CAAC,WAAW,CAC1E,mCAAmC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC7D,OAAO;IACP,mBAAmB,CAAC,IAAsB,EAAE,cAAc,OAAO,EAAE,CAAC;CACrE,CAAC,CACgC,CAAC"}
@@ -0,0 +1,103 @@
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
+ import type { ToolServerSlug } from "./catalog.js";
10
+ /**
11
+ * A group of toolserver slugs that share one LangSmith OAuth provider and one
12
+ * Connect-with-X ceremony.
13
+ */
14
+ export interface FleetOAuthIntegration {
15
+ /** Stable integration id (actor-subject registry key), e.g. `"google"`. */
16
+ readonly id: string;
17
+ /** Connect path segment / `connect.<id>()` name. */
18
+ readonly connectId: string;
19
+ /** Human label for agent hints ("Google", "Microsoft"). */
20
+ readonly displayName: string;
21
+ /** Default LangSmith OAuth provider slug. */
22
+ readonly defaultProviderSlug: string;
23
+ /** Optional env override for {@link defaultProviderSlug}. */
24
+ readonly providerSlugEnv?: string;
25
+ /** Toolserver wire slugs that belong to this integration. */
26
+ readonly toolServerSlugs: readonly ToolServerSlug[];
27
+ /** Scopes always included when any integration connector is present. */
28
+ readonly profileScopes?: readonly string[];
29
+ /** Extra OAuth scopes per toolserver slug. */
30
+ readonly scopesBySlug: Readonly<Partial<Record<ToolServerSlug, readonly string[]>>>;
31
+ }
32
+ /**
33
+ * Built-in Fleet OAuth integrations.
34
+ *
35
+ * To adopt another provider of the same kind: add a row, wire
36
+ * `connect.<id>()` (usually via {@link createFleetVaultConnectProvider}), and
37
+ * optionally a BYO OAuth adapter. Toolserver subject routing and connect
38
+ * inference pick the integration up automatically.
39
+ */
40
+ export declare const FLEET_OAUTH_INTEGRATIONS: readonly FleetOAuthIntegration[];
41
+ export declare function integrationById(id: string): FleetOAuthIntegration | undefined;
42
+ export declare function integrationForSlug(slug: string | undefined): FleetOAuthIntegration | undefined;
43
+ export declare function isFleetOAuthSlug(slug: string | undefined): boolean;
44
+ /** Toolserver slugs for `integration` that appear in `kinds`. */
45
+ export declare function integrationConnectorKinds(integration: FleetOAuthIntegration, kinds: readonly (string | undefined)[] | undefined): string[];
46
+ export declare function hasIntegrationToolServerConnector(integration: FleetOAuthIntegration, kinds: readonly (string | undefined)[] | undefined): boolean;
47
+ /**
48
+ * Union of OAuth scopes for the given connector kinds in `integration`.
49
+ *
50
+ * Includes {@link FleetOAuthIntegration.profileScopes} when at least one
51
+ * integration connector is present.
52
+ */
53
+ export declare function scopesForIntegrationConnectorKinds(integration: FleetOAuthIntegration, kinds: readonly (string | undefined)[] | undefined): string[];
54
+ export declare function readIntegrationProviderSlug(integration: FleetOAuthIntegration, env?: NodeJS.ProcessEnv): string;
55
+ /** Google integration convenience — same UUID namespace / slug set as before. */
56
+ export declare const GOOGLE_INTEGRATION: FleetOAuthIntegration;
57
+ export declare const GOOGLE_TOOLSERVER_SLUGS: readonly ("apollo" | "ashby" | "base" | "exa" | "excel" | "gmail" | "google_bigquery" | "google_calendar" | "google_docs" | "google_drive" | "google_meet" | "google_sheets" | "google_slides" | "linear" | "linkedin" | "outlook" | "powerpoint" | "pylon" | "salesforce" | "sharepoint" | "slack" | "tavily" | "teams" | "word" | "x_com")[];
58
+ export type GoogleToolServerSlug = (typeof GOOGLE_TOOLSERVER_SLUGS)[number];
59
+ export declare function isGoogleToolServerSlug(slug: string | undefined): slug is GoogleToolServerSlug;
60
+ export declare function googleConnectorKinds(kinds: readonly (string | undefined)[] | undefined): GoogleToolServerSlug[];
61
+ export declare function googleScopesForConnectorKinds(kinds: readonly (string | undefined)[] | undefined): string[];
62
+ export declare function hasGoogleToolServerConnector(kinds: readonly (string | undefined)[] | undefined): boolean;
63
+ /** Env name for the Google Fleet provider slug. */
64
+ export declare const MDA_GOOGLE_OAUTH_PROVIDER_ENV = "MDA_GOOGLE_OAUTH_PROVIDER";
65
+ export declare const DEFAULT_GOOGLE_PROVIDER_SLUG: string;
66
+ export declare function readGoogleProviderSlug(env?: NodeJS.ProcessEnv): string;
67
+ /** Microsoft Graph integration convenience helpers. */
68
+ export declare const MICROSOFT_INTEGRATION: FleetOAuthIntegration;
69
+ export declare const MICROSOFT_TOOLSERVER_SLUGS: readonly ("apollo" | "ashby" | "base" | "exa" | "excel" | "gmail" | "google_bigquery" | "google_calendar" | "google_docs" | "google_drive" | "google_meet" | "google_sheets" | "google_slides" | "linear" | "linkedin" | "outlook" | "powerpoint" | "pylon" | "salesforce" | "sharepoint" | "slack" | "tavily" | "teams" | "word" | "x_com")[];
70
+ export type MicrosoftToolServerSlug = (typeof MICROSOFT_TOOLSERVER_SLUGS)[number];
71
+ export declare function isMicrosoftToolServerSlug(slug: string | undefined): slug is MicrosoftToolServerSlug;
72
+ export declare function microsoftConnectorKinds(kinds: readonly (string | undefined)[] | undefined): MicrosoftToolServerSlug[];
73
+ export declare function microsoftScopesForConnectorKinds(kinds: readonly (string | undefined)[] | undefined): string[];
74
+ export declare function hasMicrosoftToolServerConnector(kinds: readonly (string | undefined)[] | undefined): boolean;
75
+ /** Env name for the Microsoft Fleet provider slug. */
76
+ export declare const MDA_MICROSOFT_OAUTH_PROVIDER_ENV = "MDA_MICROSOFT_OAUTH_PROVIDER";
77
+ export declare const DEFAULT_MICROSOFT_PROVIDER_SLUG: string;
78
+ export declare function readMicrosoftProviderSlug(env?: NodeJS.ProcessEnv): string;
79
+ /** LinkedIn integration convenience helpers. */
80
+ export declare const LINKEDIN_INTEGRATION: FleetOAuthIntegration;
81
+ export declare const LINKEDIN_TOOLSERVER_SLUGS: readonly ("apollo" | "ashby" | "base" | "exa" | "excel" | "gmail" | "google_bigquery" | "google_calendar" | "google_docs" | "google_drive" | "google_meet" | "google_sheets" | "google_slides" | "linear" | "linkedin" | "outlook" | "powerpoint" | "pylon" | "salesforce" | "sharepoint" | "slack" | "tavily" | "teams" | "word" | "x_com")[];
82
+ export type LinkedInToolServerSlug = (typeof LINKEDIN_TOOLSERVER_SLUGS)[number];
83
+ export declare function isLinkedInToolServerSlug(slug: string | undefined): slug is LinkedInToolServerSlug;
84
+ export declare function linkedinConnectorKinds(kinds: readonly (string | undefined)[] | undefined): LinkedInToolServerSlug[];
85
+ export declare function linkedinScopesForConnectorKinds(kinds: readonly (string | undefined)[] | undefined): string[];
86
+ export declare function hasLinkedInToolServerConnector(kinds: readonly (string | undefined)[] | undefined): boolean;
87
+ /** Env name for the LinkedIn Fleet provider slug. */
88
+ export declare const MDA_LINKEDIN_OAUTH_PROVIDER_ENV = "MDA_LINKEDIN_OAUTH_PROVIDER";
89
+ export declare const DEFAULT_LINKEDIN_PROVIDER_SLUG: string;
90
+ export declare function readLinkedInProviderSlug(env?: NodeJS.ProcessEnv): string;
91
+ /** X (Twitter) integration convenience helpers. */
92
+ export declare const X_INTEGRATION: FleetOAuthIntegration;
93
+ export declare const X_TOOLSERVER_SLUGS: readonly ("apollo" | "ashby" | "base" | "exa" | "excel" | "gmail" | "google_bigquery" | "google_calendar" | "google_docs" | "google_drive" | "google_meet" | "google_sheets" | "google_slides" | "linear" | "linkedin" | "outlook" | "powerpoint" | "pylon" | "salesforce" | "sharepoint" | "slack" | "tavily" | "teams" | "word" | "x_com")[];
94
+ export type XToolServerSlug = (typeof X_TOOLSERVER_SLUGS)[number];
95
+ export declare function isXToolServerSlug(slug: string | undefined): slug is XToolServerSlug;
96
+ export declare function xConnectorKinds(kinds: readonly (string | undefined)[] | undefined): XToolServerSlug[];
97
+ export declare function xScopesForConnectorKinds(kinds: readonly (string | undefined)[] | undefined): string[];
98
+ export declare function hasXToolServerConnector(kinds: readonly (string | undefined)[] | undefined): boolean;
99
+ /** Env name for the X Fleet provider slug. */
100
+ export declare const MDA_X_OAUTH_PROVIDER_ENV = "MDA_X_OAUTH_PROVIDER";
101
+ export declare const DEFAULT_X_PROVIDER_SLUG: string;
102
+ export declare function readXProviderSlug(env?: NodeJS.ProcessEnv): string;
103
+ //# sourceMappingURL=integrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../../src/connectors/toolserver/integrations.ts"],"names":[],"mappings":"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"}