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,33 @@
1
+ /**
2
+ * Shape helpers for the two `credentials` forms, shared by authoring validation,
3
+ * normalization, and the runtime resolver so all three agree on which form a
4
+ * config is.
5
+ *
6
+ * A single resolver handles every target itself. A per-target map lets one
7
+ * deployment integrate several platforms without hand-writing the dispatch — and
8
+ * without losing the Connect-with-X routes each entry declares, which is the
9
+ * failure mode a hand-written dispatcher has.
10
+ */
11
+ import type { IdentityConnectProvider } from "./connect-provider-types.js";
12
+ import type { CredentialResolverConfig, CredentialResolvers } from "./types.js";
13
+ /**
14
+ * True when `value` is a single {@link CredentialResolverConfig} rather than a
15
+ * per-target map.
16
+ *
17
+ * Discriminates on the *type* of `resolve`/`endpoint`, not merely their
18
+ * presence, so a target legitimately named `"resolve"` or `"endpoint"` in a map
19
+ * is not mistaken for the single form.
20
+ */
21
+ export declare function isSingleCredentialResolver(value: CredentialResolverConfig | CredentialResolvers): value is CredentialResolverConfig;
22
+ /** The target names a per-target map resolves, in declaration order. */
23
+ export declare function credentialTargetNames(value: CredentialResolverConfig | CredentialResolvers): string[];
24
+ /**
25
+ * Every Connect-with-X provider the config depends on, deduplicated by id and in
26
+ * declaration order.
27
+ *
28
+ * Unioning across map entries is what keeps inference working for a
29
+ * multi-platform deployment: each entry declares its own routes, and the author
30
+ * repeats none of them.
31
+ */
32
+ export declare function credentialConnectProviders(value: CredentialResolverConfig | CredentialResolvers | undefined): IdentityConnectProvider[];
33
+ //# sourceMappingURL=credential-resolvers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-resolvers.d.ts","sourceRoot":"","sources":["../../src/identity/credential-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEhF;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,GACpD,KAAK,IAAI,wBAAwB,CAWnC;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,GACpD,MAAM,EAAE,CAEV;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,GAAG,SAAS,GAChE,uBAAuB,EAAE,CAgB3B"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Shape helpers for the two `credentials` forms, shared by authoring validation,
3
+ * normalization, and the runtime resolver so all three agree on which form a
4
+ * config is.
5
+ *
6
+ * A single resolver handles every target itself. A per-target map lets one
7
+ * deployment integrate several platforms without hand-writing the dispatch — and
8
+ * without losing the Connect-with-X routes each entry declares, which is the
9
+ * failure mode a hand-written dispatcher has.
10
+ */
11
+ /**
12
+ * True when `value` is a single {@link CredentialResolverConfig} rather than a
13
+ * per-target map.
14
+ *
15
+ * Discriminates on the *type* of `resolve`/`endpoint`, not merely their
16
+ * presence, so a target legitimately named `"resolve"` or `"endpoint"` in a map
17
+ * is not mistaken for the single form.
18
+ */
19
+ export function isSingleCredentialResolver(value) {
20
+ const candidate = value;
21
+ if (typeof candidate.resolve === "function") {
22
+ return true;
23
+ }
24
+ const endpoint = candidate.endpoint;
25
+ return (typeof endpoint === "object" &&
26
+ endpoint !== null &&
27
+ typeof endpoint.url === "string");
28
+ }
29
+ /** The target names a per-target map resolves, in declaration order. */
30
+ export function credentialTargetNames(value) {
31
+ return isSingleCredentialResolver(value) ? [] : Object.keys(value);
32
+ }
33
+ /**
34
+ * Every Connect-with-X provider the config depends on, deduplicated by id and in
35
+ * declaration order.
36
+ *
37
+ * Unioning across map entries is what keeps inference working for a
38
+ * multi-platform deployment: each entry declares its own routes, and the author
39
+ * repeats none of them.
40
+ */
41
+ export function credentialConnectProviders(value) {
42
+ if (value === undefined || value === null || typeof value !== "object") {
43
+ return [];
44
+ }
45
+ const configs = isSingleCredentialResolver(value)
46
+ ? [value]
47
+ : Object.values(value);
48
+ const out = [];
49
+ for (const config of configs) {
50
+ for (const provider of declaredConnect(config)) {
51
+ if (!out.some((existing) => existing.id === provider.id)) {
52
+ out.push(provider);
53
+ }
54
+ }
55
+ }
56
+ return out;
57
+ }
58
+ function declaredConnect(config) {
59
+ const connect = config?.connect;
60
+ return Array.isArray(connect) ? connect : [];
61
+ }
62
+ //# sourceMappingURL=credential-resolvers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-resolvers.js","sourceRoot":"","sources":["../../src/identity/credential-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAqD;IAErD,MAAM,SAAS,GAAG,KAAkD,CAAC;IACrE,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACpC,OAAO,CACL,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,IAAI;QACjB,OAAQ,QAA8B,CAAC,GAAG,KAAK,QAAQ,CACxD,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,qBAAqB,CACnC,KAAqD;IAErD,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAiE;IAEjE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,0BAA0B,CAAC,KAAK,CAAC;QAC/C,CAAC,CAAC,CAAC,KAAK,CAAC;QACT,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,GAAG,GAA8B,EAAE,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACtC,MAAM,OAAO,GAAI,MAA4C,EAAE,OAAO,CAAC;IACvE,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,OAAqC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Factory for thin Connect-with-X adapters over Fleet vault integrations.
3
+ *
4
+ * Google / Microsoft / LinkedIn share the same PATH constants, actor-subject
5
+ * toggles, and `connect()` wiring — only the integration + BYO client differ.
6
+ * X is the vault-only variant (no local BYO client).
7
+ */
8
+ import type { FleetOAuthIntegration } from "../connectors/toolserver/integrations.js";
9
+ import type { ByoOauthClient } from "./byo-oauth.js";
10
+ import { identityConnectPaths } from "./connect-paths.js";
11
+ import type { IdentityConnectMountContext, IdentityConnectProvider } from "./connect-provider-types.js";
12
+ import { type FleetVaultConnectProviderOptions } from "./fleet-connect.js";
13
+ import { type FleetIntegrationConnectProviderOptions } from "./fleet-integration-connect.js";
14
+ /** Shared surface returned by {@link defineFleetIntegrationConnect}. */
15
+ export interface FleetIntegrationConnectAdapter {
16
+ readonly paths: ReturnType<typeof identityConnectPaths>;
17
+ isActorSubjectEnabled(): boolean;
18
+ enableActorSubject(): void;
19
+ enableActorSubjectFromConnectors(connectorKinds: readonly (string | undefined)[] | undefined, scope?: IdentityConnectMountContext["scope"]): void;
20
+ resetActorSubjectEnabledForTests(): void;
21
+ isConnectConfigured(env?: NodeJS.ProcessEnv): boolean;
22
+ connectUrl(publicAppUrl: string): string;
23
+ createProvider(options?: FleetIntegrationConnectProviderOptions): IdentityConnectProvider;
24
+ readonly provider: IdentityConnectProvider;
25
+ connect(options?: FleetIntegrationConnectProviderOptions): IdentityConnectProvider;
26
+ }
27
+ /** Shared surface returned by {@link defineFleetVaultConnect}. */
28
+ export interface FleetVaultConnectAdapter {
29
+ readonly paths: ReturnType<typeof identityConnectPaths>;
30
+ isActorSubjectEnabled(): boolean;
31
+ enableActorSubject(): void;
32
+ enableActorSubjectFromConnectors(connectorKinds: readonly (string | undefined)[] | undefined, scope?: IdentityConnectMountContext["scope"]): void;
33
+ resetActorSubjectEnabledForTests(): void;
34
+ isConnectConfigured(env?: NodeJS.ProcessEnv): boolean;
35
+ connectUrl(publicAppUrl: string): string;
36
+ createProvider(options?: Pick<FleetVaultConnectProviderOptions, "providerSlug" | "scopes" | "fleet">): IdentityConnectProvider;
37
+ readonly provider: IdentityConnectProvider;
38
+ connect(options?: Pick<FleetVaultConnectProviderOptions, "providerSlug" | "scopes" | "fleet">): IdentityConnectProvider;
39
+ }
40
+ /** Build the Google/Microsoft/LinkedIn-style BYO + Fleet Connect adapter. */
41
+ export declare function defineFleetIntegrationConnect(options: {
42
+ integration: FleetOAuthIntegration;
43
+ byoClient: ByoOauthClient;
44
+ fallbackScopes?: readonly string[];
45
+ }): FleetIntegrationConnectAdapter;
46
+ /**
47
+ * Build a vault-only Connect adapter (no local BYO client), e.g. Connect-with-X.
48
+ */
49
+ export declare function defineFleetVaultConnect(options: {
50
+ integration: FleetOAuthIntegration;
51
+ resolveProviderSlug: () => string;
52
+ }): FleetVaultConnectAdapter;
53
+ //# sourceMappingURL=define-fleet-connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-fleet-connect.d.ts","sourceRoot":"","sources":["../../src/identity/define-fleet-connect.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAOtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EACV,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAIL,KAAK,gCAAgC,EACtC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,sCAAsC,EAC5C,MAAM,gCAAgC,CAAC;AAMxC,wEAAwE;AACxE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACxD,qBAAqB,IAAI,OAAO,CAAC;IACjC,kBAAkB,IAAI,IAAI,CAAC;IAC3B,gCAAgC,CAC9B,cAAc,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,EAC3D,KAAK,CAAC,EAAE,2BAA2B,CAAC,OAAO,CAAC,GAC3C,IAAI,CAAC;IACR,gCAAgC,IAAI,IAAI,CAAC;IACzC,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;IACtD,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,cAAc,CACZ,OAAO,CAAC,EAAE,sCAAsC,GAC/C,uBAAuB,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,OAAO,CACL,OAAO,CAAC,EAAE,sCAAsC,GAC/C,uBAAuB,CAAC;CAC5B;AAED,kEAAkE;AAClE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACxD,qBAAqB,IAAI,OAAO,CAAC;IACjC,kBAAkB,IAAI,IAAI,CAAC;IAC3B,gCAAgC,CAC9B,cAAc,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,SAAS,EAC3D,KAAK,CAAC,EAAE,2BAA2B,CAAC,OAAO,CAAC,GAC3C,IAAI,CAAC;IACR,gCAAgC,IAAI,IAAI,CAAC;IACzC,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;IACtD,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,cAAc,CACZ,OAAO,CAAC,EAAE,IAAI,CACZ,gCAAgC,EAChC,cAAc,GAAG,QAAQ,GAAG,OAAO,CACpC,GACA,uBAAuB,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC3C,OAAO,CACL,OAAO,CAAC,EAAE,IAAI,CACZ,gCAAgC,EAChC,cAAc,GAAG,QAAQ,GAAG,OAAO,CACpC,GACA,uBAAuB,CAAC;CAC5B;AAED,6EAA6E;AAC7E,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,WAAW,EAAE,qBAAqB,CAAC;IACnC,SAAS,EAAE,cAAc,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,GAAG,8BAA8B,CA0CjC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,WAAW,EAAE,qBAAqB,CAAC;IACnC,mBAAmB,EAAE,MAAM,MAAM,CAAC;CACnC,GAAG,wBAAwB,CAmD3B"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Factory for thin Connect-with-X adapters over Fleet vault integrations.
3
+ *
4
+ * Google / Microsoft / LinkedIn share the same PATH constants, actor-subject
5
+ * toggles, and `connect()` wiring — only the integration + BYO client differ.
6
+ * X is the vault-only variant (no local BYO client).
7
+ */
8
+ import { enableActorSubjectIntegration, enableActorSubjectIntegrationFromConnectors, isActorSubjectIntegrationEnabled, resetActorSubjectEnabledForTests, } from "./actor-subject.js";
9
+ import { identityConnectPaths } from "./connect-paths.js";
10
+ import { createFleetVaultConnectProvider, fleetConnectUrl, isFleetVaultConnectConfigured, } from "./fleet-connect.js";
11
+ import { createFleetIntegrationConnectProvider, fleetIntegrationConnectUrl, isFleetIntegrationConnectConfigured, } from "./fleet-integration-connect.js";
12
+ import { MDA_PUBLIC_APP_URL_ENV, resolveOauthRedirectBase, } from "./oauth-env.js";
13
+ /** Build the Google/Microsoft/LinkedIn-style BYO + Fleet Connect adapter. */
14
+ export function defineFleetIntegrationConnect(options) {
15
+ const { integration, byoClient, fallbackScopes } = options;
16
+ const paths = identityConnectPaths(integration.connectId);
17
+ function createProvider(providerOptions = {}) {
18
+ return createFleetIntegrationConnectProvider(integration, byoClient, providerOptions, fallbackScopes);
19
+ }
20
+ const provider = createProvider();
21
+ return {
22
+ paths,
23
+ isActorSubjectEnabled: () => isActorSubjectIntegrationEnabled(integration.connectId),
24
+ enableActorSubject: () => enableActorSubjectIntegration(integration.connectId),
25
+ enableActorSubjectFromConnectors(connectorKinds, scope) {
26
+ enableActorSubjectIntegrationFromConnectors(integration, connectorKinds, scope);
27
+ },
28
+ resetActorSubjectEnabledForTests,
29
+ isConnectConfigured: (env = process.env) => isFleetIntegrationConnectConfigured(byoClient, env),
30
+ connectUrl: (publicAppUrl) => fleetIntegrationConnectUrl(integration, publicAppUrl),
31
+ createProvider,
32
+ provider,
33
+ connect(providerOptions) {
34
+ enableActorSubjectIntegration(integration.connectId);
35
+ return providerOptions ? createProvider(providerOptions) : provider;
36
+ },
37
+ };
38
+ }
39
+ /**
40
+ * Build a vault-only Connect adapter (no local BYO client), e.g. Connect-with-X.
41
+ */
42
+ export function defineFleetVaultConnect(options) {
43
+ const { integration, resolveProviderSlug } = options;
44
+ const paths = identityConnectPaths(integration.connectId);
45
+ function createProvider(providerOptions = {}) {
46
+ return createFleetVaultConnectProvider({
47
+ integration,
48
+ providerSlug: providerOptions.providerSlug?.trim() || resolveProviderSlug(),
49
+ ...(providerOptions.scopes ? { scopes: providerOptions.scopes } : {}),
50
+ ...(providerOptions.fleet ? { fleet: providerOptions.fleet } : {}),
51
+ resolveRedirectBase: resolveOauthRedirectBase,
52
+ resolvePublicAppUrl() {
53
+ return process.env[MDA_PUBLIC_APP_URL_ENV]?.replace(/\/$/, "");
54
+ },
55
+ });
56
+ }
57
+ const provider = createProvider();
58
+ return {
59
+ paths,
60
+ isActorSubjectEnabled: () => isActorSubjectIntegrationEnabled(integration.connectId),
61
+ enableActorSubject: () => enableActorSubjectIntegration(integration.connectId),
62
+ enableActorSubjectFromConnectors(connectorKinds, scope) {
63
+ enableActorSubjectIntegrationFromConnectors(integration, connectorKinds, scope);
64
+ },
65
+ resetActorSubjectEnabledForTests,
66
+ isConnectConfigured: (env = process.env) => isFleetVaultConnectConfigured(undefined, env),
67
+ connectUrl: (publicAppUrl) => fleetConnectUrl(integration, publicAppUrl),
68
+ createProvider,
69
+ provider,
70
+ connect(providerOptions) {
71
+ enableActorSubjectIntegration(integration.connectId);
72
+ return providerOptions ? createProvider(providerOptions) : provider;
73
+ },
74
+ };
75
+ }
76
+ //# sourceMappingURL=define-fleet-connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-fleet-connect.js","sourceRoot":"","sources":["../../src/identity/define-fleet-connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Runtime hint when the caller has not completed Connect-with-X for a Fleet
3
+ * vault integration yet.
4
+ *
5
+ * Prefers Connect status over toolserver 428 (agent subjects skip that today).
6
+ */
7
+ import { type FleetOAuthIntegration } from "../connectors/toolserver/integrations.js";
8
+ import type { ManagedMiddleware } from "../runtime/managed-middleware.js";
9
+ import { listAgentConnections, type FleetClientOptions } from "./fleet.js";
10
+ export interface FleetConnectHintMiddlewareOptions {
11
+ integration: FleetOAuthIntegration;
12
+ providerSlug?: string;
13
+ fleet?: FleetClientOptions & {
14
+ list?: typeof listAgentConnections;
15
+ };
16
+ /** Override status lookup (tests). */
17
+ isConnected?: (userId: string) => Promise<boolean>;
18
+ /** Optional public-app resolver (BYO OAuth publicAppUrl). */
19
+ resolvePublicAppUrl?: (env?: NodeJS.ProcessEnv) => string | undefined;
20
+ }
21
+ /** Drop cached Connect status (tests only). */
22
+ export declare function clearFleetConnectHintCacheForTests(): void;
23
+ /**
24
+ * Absolute Connect start URL for agent hints.
25
+ *
26
+ * Prefers the Agent Server origin (`MDA_PUBLIC_API_URL`) where
27
+ * `/identity/{id}/*` is mounted. Falls back to `MDA_PUBLIC_APP_URL`.
28
+ *
29
+ * When `userId` and a signing key are available, appends a short-lived
30
+ * `?ticket=` so the browser session binds OAuth to that actor.
31
+ */
32
+ export declare function fleetConnectHintUrl(integration: FleetOAuthIntegration, env?: NodeJS.ProcessEnv, userId?: string, resolvePublicAppUrl?: (env?: NodeJS.ProcessEnv) => string | undefined): Promise<string>;
33
+ /**
34
+ * Middleware that injects a system hint when actor-subject mode is on for
35
+ * `integration` and the current caller has no LangSmith vault connection.
36
+ */
37
+ export declare function createFleetConnectHintMiddleware(options: FleetConnectHintMiddlewareOptions): ManagedMiddleware;
38
+ /** Rewrite tool errors that look like a missing Fleet vault connection. */
39
+ export declare function rewriteFleetToolError(error: unknown, integration: FleetOAuthIntegration, resolvePublicAppUrl?: (env?: NodeJS.ProcessEnv) => string | undefined): Error;
40
+ export declare function isFleetConnectHint(message: string, integration: FleetOAuthIntegration): boolean;
41
+ //# sourceMappingURL=fleet-connect-hint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-connect-hint.d.ts","sourceRoot":"","sources":["../../src/identity/fleet-connect-hint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAS1E,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQ3E,MAAM,WAAW,iCAAiC;IAChD,WAAW,EAAE,qBAAqB,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,kBAAkB,GAAG;QAC3B,IAAI,CAAC,EAAE,OAAO,oBAAoB,CAAC;KACpC,CAAC;IACF,sCAAsC;IACtC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,GAAG,SAAS,CAAC;CACvE;AA2DD,+CAA+C;AAC/C,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,qBAAqB,EAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,MAAM,CAAC,EAAE,MAAM,EACf,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,GAAG,SAAS,GACpE,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAoBD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,iCAAiC,GACzC,iBAAiB,CAwEnB;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,qBAAqB,EAClC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,GAAG,SAAS,GACpE,KAAK,CAgCP;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,qBAAqB,GACjC,OAAO,CAET"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Runtime hint when the caller has not completed Connect-with-X for a Fleet
3
+ * vault integration yet.
4
+ *
5
+ * Prefers Connect status over toolserver 428 (agent subjects skip that today).
6
+ */
7
+ import { readIntegrationProviderSlug, } from "../connectors/toolserver/integrations.js";
8
+ import { managedRuntimeOverrides } from "../runtime/managed-tools.js";
9
+ import { agentIdFromActor, isActorSubjectIntegrationEnabled, } from "./actor-subject.js";
10
+ import { identityConnectPaths } from "./connect-paths.js";
11
+ import { fleetConnectUrl } from "./fleet-connect.js";
12
+ import { listAgentConnections } from "./fleet.js";
13
+ import { oauthTicketsFor } from "./oauth-tickets.js";
14
+ import { MDA_PUBLIC_API_URL_ENV, MDA_PUBLIC_APP_URL_ENV, readOauthStateSigningKey, } from "./oauth-env.js";
15
+ function hintPrefix(integration) {
16
+ return `User has not connected ${integration.displayName}`;
17
+ }
18
+ /** Short TTL so connected callers skip Fleet on every model turn. */
19
+ const CONNECT_STATUS_TTL_MS = 30_000;
20
+ const connectionStatusCache = new Map();
21
+ function cacheKey(userId, providerSlug) {
22
+ return `${userId}\0${providerSlug}`;
23
+ }
24
+ /** Drop expired entries so one-shot callers do not retain forever. */
25
+ function evictExpiredCacheEntries(now = Date.now()) {
26
+ for (const [key, entry] of connectionStatusCache) {
27
+ if (now >= entry.expiresAt) {
28
+ connectionStatusCache.delete(key);
29
+ }
30
+ }
31
+ }
32
+ function cachedConnected(userId, providerSlug) {
33
+ const entry = connectionStatusCache.get(cacheKey(userId, providerSlug));
34
+ if (!entry) {
35
+ return undefined;
36
+ }
37
+ if (Date.now() >= entry.expiresAt) {
38
+ connectionStatusCache.delete(cacheKey(userId, providerSlug));
39
+ return undefined;
40
+ }
41
+ return entry.connected;
42
+ }
43
+ function storeConnected(userId, providerSlug, connected) {
44
+ const now = Date.now();
45
+ evictExpiredCacheEntries(now);
46
+ // Only cache positives: a just-completed Connect must be visible on retry
47
+ // within the TTL window, not masked by a prior disconnected observation.
48
+ if (!connected) {
49
+ return;
50
+ }
51
+ connectionStatusCache.set(cacheKey(userId, providerSlug), {
52
+ expiresAt: now + CONNECT_STATUS_TTL_MS,
53
+ connected: true,
54
+ });
55
+ }
56
+ /** Drop cached Connect status (tests only). */
57
+ export function clearFleetConnectHintCacheForTests() {
58
+ connectionStatusCache.clear();
59
+ }
60
+ /**
61
+ * Absolute Connect start URL for agent hints.
62
+ *
63
+ * Prefers the Agent Server origin (`MDA_PUBLIC_API_URL`) where
64
+ * `/identity/{id}/*` is mounted. Falls back to `MDA_PUBLIC_APP_URL`.
65
+ *
66
+ * When `userId` and a signing key are available, appends a short-lived
67
+ * `?ticket=` so the browser session binds OAuth to that actor.
68
+ */
69
+ export async function fleetConnectHintUrl(integration, env = process.env, userId, resolvePublicAppUrl) {
70
+ const apiBase = env[MDA_PUBLIC_API_URL_ENV]?.trim().replace(/\/$/, "");
71
+ const appBase = resolvePublicAppUrl?.(env) ??
72
+ env[MDA_PUBLIC_APP_URL_ENV]?.trim().replace(/\/$/, "");
73
+ const base = apiBase || appBase;
74
+ const paths = identityConnectPaths(integration.connectId);
75
+ const path = base ? fleetConnectUrl(integration, base) : paths.connect;
76
+ if (!userId) {
77
+ return path;
78
+ }
79
+ const signingKey = readOauthStateSigningKey(env);
80
+ if (!signingKey) {
81
+ return path;
82
+ }
83
+ try {
84
+ const ticket = await oauthTicketsFor(integration.connectId).createTicket(userId, signingKey);
85
+ const url = new URL(path.startsWith("http") ? path : `https://placeholder.local${path}`);
86
+ url.searchParams.set("ticket", ticket);
87
+ if (!path.startsWith("http")) {
88
+ return `${paths.connect}?${url.searchParams.toString()}`;
89
+ }
90
+ return url.toString();
91
+ }
92
+ catch {
93
+ return path;
94
+ }
95
+ }
96
+ async function hintMessage(integration, userId, resolvePublicAppUrl) {
97
+ const url = await fleetConnectHintUrl(integration, process.env, userId, resolvePublicAppUrl);
98
+ return (`${hintPrefix(integration)}; ask them to Connect with ${integration.displayName} at ${url}. ` +
99
+ "Paste that full URL so they can open it. " +
100
+ `Do not pretend ${integration.displayName} tools will work until they connect.`);
101
+ }
102
+ /**
103
+ * Middleware that injects a system hint when actor-subject mode is on for
104
+ * `integration` and the current caller has no LangSmith vault connection.
105
+ */
106
+ export function createFleetConnectHintMiddleware(options) {
107
+ const { integration } = options;
108
+ const list = options.fleet?.list ?? listAgentConnections;
109
+ const providerSlug = () => options.providerSlug?.trim() || readIntegrationProviderSlug(integration);
110
+ async function disconnected(userId) {
111
+ if (options.isConnected) {
112
+ return !(await options.isConnected(userId));
113
+ }
114
+ const slug = providerSlug();
115
+ const cached = cachedConnected(userId, slug);
116
+ if (cached !== undefined) {
117
+ return !cached;
118
+ }
119
+ const agentId = agentIdFromActor(userId);
120
+ const connections = await list(agentId, options.fleet ?? {});
121
+ const isDisconnected = !connections.some((c) => c.provider_id === slug);
122
+ storeConnected(userId, slug, !isDisconnected);
123
+ return isDisconnected;
124
+ }
125
+ return {
126
+ name: `mda-${integration.id}-connect-hint`,
127
+ async wrapModelCall(request, handler) {
128
+ if (!isActorSubjectIntegrationEnabled(integration.id)) {
129
+ return handler(request);
130
+ }
131
+ const overrides = managedRuntimeOverrides(request.runtime);
132
+ const userId = overrides.identity?.user?.id;
133
+ if (!userId) {
134
+ return handler(request);
135
+ }
136
+ try {
137
+ if (!(await disconnected(userId))) {
138
+ return handler(request);
139
+ }
140
+ }
141
+ catch {
142
+ const hint = await hintMessage(integration, userId, options.resolvePublicAppUrl);
143
+ return handler({
144
+ ...request,
145
+ messages: [
146
+ { role: "system", content: hint },
147
+ ...(Array.isArray(request.messages) ? request.messages : []),
148
+ ],
149
+ });
150
+ }
151
+ const hint = await hintMessage(integration, userId, options.resolvePublicAppUrl);
152
+ return handler({
153
+ ...request,
154
+ messages: [
155
+ { role: "system", content: hint },
156
+ ...(Array.isArray(request.messages) ? request.messages : []),
157
+ ],
158
+ });
159
+ },
160
+ };
161
+ }
162
+ /** Rewrite tool errors that look like a missing Fleet vault connection. */
163
+ export function rewriteFleetToolError(error, integration, resolvePublicAppUrl) {
164
+ const message = error instanceof Error ? error.message : String(error);
165
+ if (/connection_required|token_expired|no connection|AgentAuthRequired|428|not connected/i.test(message)) {
166
+ // Per-caller Connect-with-X only exists on user-scoped deployments. Agent /
167
+ // no-identity projects use the shared vault from `mda connect`.
168
+ if (!isActorSubjectIntegrationEnabled(integration.id)) {
169
+ return new Error(`${integration.displayName} is not connected in the shared LangSmith vault. ` +
170
+ `Run \`mda connect\` for a ${integration.displayName} connector, or connect it ` +
171
+ `under LangSmith Settings → Integrations. (Original: ${message})`);
172
+ }
173
+ const apiBase = process.env[MDA_PUBLIC_API_URL_ENV]
174
+ ?.trim()
175
+ .replace(/\/$/, "");
176
+ const appBase = resolvePublicAppUrl?.() ??
177
+ process.env[MDA_PUBLIC_APP_URL_ENV]?.trim().replace(/\/$/, "");
178
+ const base = apiBase || appBase;
179
+ const paths = identityConnectPaths(integration.connectId);
180
+ const url = base ? fleetConnectUrl(integration, base) : paths.connect;
181
+ return new Error(`${hintPrefix(integration)}. Ask the user to Connect with ${integration.displayName} at ${url}. ` +
182
+ "Paste that full URL so they can open it. " +
183
+ `(Original: ${message})`);
184
+ }
185
+ return error instanceof Error ? error : new Error(message);
186
+ }
187
+ export function isFleetConnectHint(message, integration) {
188
+ return message.includes(hintPrefix(integration));
189
+ }
190
+ //# sourceMappingURL=fleet-connect-hint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-connect-hint.js","sourceRoot":"","sources":["../../src/identity/fleet-connect-hint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Factory for Connect-with-X providers that persist tokens in the LangSmith
3
+ * Fleet vault under a derived actor agent_id.
4
+ *
5
+ * Google and Microsoft are thin adapters over this module; Google optionally
6
+ * adds a BYO OAuth client for offline / non-LangSmith setups.
7
+ */
8
+ import { type FleetOAuthIntegration } from "../connectors/toolserver/integrations.js";
9
+ import type { IdentityConnectProvider, IdentityConnectRedirectBaseOptions } from "./connect-provider-types.js";
10
+ import { createFleetAuthSession, deleteAgentConnection, listAgentConnections, upsertAgentProviderToken, type FleetClientOptions } from "./fleet.js";
11
+ export interface FleetVaultByoTokenResult {
12
+ accessToken: string;
13
+ refreshToken?: string;
14
+ expiresInSeconds?: number;
15
+ scope?: string;
16
+ tokenType?: string;
17
+ /** Shown on status (e.g. email). */
18
+ accountLabel?: string;
19
+ /** Merged into vault token metadata (plus `mda_actor_user_id`). */
20
+ metadata?: Record<string, unknown>;
21
+ }
22
+ /** Config shape returned by {@link FleetVaultByoOauth.readConfig}. */
23
+ export interface FleetVaultByoOauthConfig {
24
+ publicAppUrl: string;
25
+ /** Space-separated OAuth scopes from env / BYO defaults. */
26
+ scopes: string;
27
+ }
28
+ /** Optional BYO OAuth client when Fleet platform OAuth is unavailable. */
29
+ export interface FleetVaultByoOauth {
30
+ readConfig(env?: NodeJS.ProcessEnv): FleetVaultByoOauthConfig | null;
31
+ buildAuthorizeUrl(config: FleetVaultByoOauthConfig, state: string, redirectUri: string, scopes: string): string;
32
+ exchangeCode(config: FleetVaultByoOauthConfig, code: string, redirectUri: string): Promise<FleetVaultByoTokenResult>;
33
+ }
34
+ export interface FleetVaultConnectProviderOptions {
35
+ integration: FleetOAuthIntegration;
36
+ /** Override LangSmith OAuth provider slug. */
37
+ providerSlug?: string;
38
+ /**
39
+ * Resolve the LangSmith OAuth provider slug (sync or async).
40
+ *
41
+ * Used by marketplace bridges that discover `oauth_provider_id` from the
42
+ * workspace MCP server row. When omitted, uses {@link providerSlug} or
43
+ * {@link readIntegrationProviderSlug}.
44
+ */
45
+ resolveProviderSlug?: () => string | Promise<string>;
46
+ /**
47
+ * Whether declared connectors imply this Connect provider should mount on
48
+ * user-scoped deployments. Defaults to toolserver slug matching via
49
+ * {@link hasIntegrationToolServerConnector}.
50
+ */
51
+ hasDeclaredConnector?: (connectorKinds: readonly (string | undefined)[] | undefined) => boolean;
52
+ /**
53
+ * Override the "configured" check. Defaults to
54
+ * {@link isFleetVaultConnectConfigured} with {@link byo}.
55
+ */
56
+ isConfigured?: (env?: NodeJS.ProcessEnv) => boolean;
57
+ /** Override the not-configured error returned from startAuthorize. */
58
+ notConfiguredError?: string;
59
+ /**
60
+ * When true, startAuthorize catches discovery/session failures and returns
61
+ * `{ notConfigured: true, error }` instead of throwing (marketplace MCP
62
+ * discovery can fail before an auth-session exists).
63
+ */
64
+ softAuthorizeFailures?: boolean;
65
+ /**
66
+ * OAuth scopes to request. When omitted: connector-derived scopes from the
67
+ * mount context, then BYO `readConfig().scopes`, then
68
+ * {@link fallbackScopes} / `integration.profileScopes`.
69
+ */
70
+ scopes?: string[];
71
+ /** Optional BYO OAuth path (Google / Microsoft). */
72
+ byo?: FleetVaultByoOauth;
73
+ resolveRedirectBase(options: IdentityConnectRedirectBaseOptions): string;
74
+ resolvePublicAppUrl?(): string | undefined;
75
+ /** Injectable Fleet client (tests). */
76
+ fleet?: FleetClientOptions & {
77
+ list?: typeof listAgentConnections;
78
+ upsert?: typeof upsertAgentProviderToken;
79
+ delete?: typeof deleteAgentConnection;
80
+ createAuthSession?: typeof createFleetAuthSession;
81
+ };
82
+ /**
83
+ * Last-resort scopes when connectors and BYO config imply none.
84
+ * Defaults to `integration.profileScopes`.
85
+ */
86
+ fallbackScopes?: string[];
87
+ }
88
+ export declare function isFleetVaultConnectConfigured(byo?: FleetVaultByoOauth, env?: NodeJS.ProcessEnv): boolean;
89
+ export declare function fleetVaultConnectNotConfiguredError(integration: FleetOAuthIntegration): string;
90
+ export declare function fleetConnectUrl(integration: FleetOAuthIntegration, publicAppUrl: string): string;
91
+ /** Build a Fleet vault Connect-with-X provider for `integration`. */
92
+ export declare function createFleetVaultConnectProvider(options: FleetVaultConnectProviderOptions): IdentityConnectProvider;
93
+ //# sourceMappingURL=fleet-connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-connect.d.ts","sourceRoot":"","sources":["../../src/identity/fleet-connect.ts"],"names":[],"mappings":"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"}