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,65 @@
1
+ /**
2
+ * Microsoft BYO OAuth descriptor — optional non-LangSmith Connect-with-Microsoft.
3
+ * The default path uses Fleet auth-sessions instead.
4
+ */
5
+ import { createByoOauthClient, } from "../byo-oauth.js";
6
+ export { MDA_PUBLIC_API_URL_ENV, MDA_PUBLIC_APP_URL_ENV, OAUTH_STATE_SIGNING_KEY_ENV, readOauthStateSigningKey, } from "../byo-oauth.js";
7
+ /** Azure AD tenant (`common`, `organizations`, `consumers`, or a tenant id). */
8
+ export const MICROSOFT_OAUTH_TENANT_ENV = "MICROSOFT_OAUTH_TENANT";
9
+ const DEFAULT_TENANT = "common";
10
+ const DEFAULT_USERINFO_URL = "https://graph.microsoft.com/v1.0/me";
11
+ /** Profile + refresh; connector-derived unions replace this at authorize time. */
12
+ const DEFAULT_SCOPES = [
13
+ "openid",
14
+ "email",
15
+ "profile",
16
+ "offline_access",
17
+ "https://graph.microsoft.com/User.Read",
18
+ ].join(" ");
19
+ function defaultAuthUrl(tenant) {
20
+ return `https://login.microsoftonline.com/${tenant}/oauth2/v2.0/authorize`;
21
+ }
22
+ function defaultTokenUrl(tenant) {
23
+ return `https://login.microsoftonline.com/${tenant}/oauth2/v2.0/token`;
24
+ }
25
+ /** Microsoft BYO OAuth client (config, authorize, exchange, Fleet adapter). */
26
+ export const microsoftByoOauth = createByoOauthClient({
27
+ providerId: "microsoft",
28
+ displayName: "Microsoft",
29
+ envPrefix: "MICROSOFT_OAUTH",
30
+ defaultEndpoints(env) {
31
+ const tenant = env[MICROSOFT_OAUTH_TENANT_ENV]?.trim() || DEFAULT_TENANT;
32
+ return {
33
+ authUrl: defaultAuthUrl(tenant),
34
+ tokenUrl: defaultTokenUrl(tenant),
35
+ userInfoUrl: DEFAULT_USERINFO_URL,
36
+ defaultScopes: DEFAULT_SCOPES,
37
+ };
38
+ },
39
+ authorizeParams: { response_mode: "query" },
40
+ parseUserInfo(json) {
41
+ const mail = typeof json.mail === "string" ? json.mail : undefined;
42
+ const upn = typeof json.userPrincipalName === "string"
43
+ ? json.userPrincipalName
44
+ : undefined;
45
+ const id = typeof json.id === "string" ? json.id : undefined;
46
+ return {
47
+ ...(mail || upn ? { email: mail || upn } : {}),
48
+ ...(id ? { subject: id } : {}),
49
+ };
50
+ },
51
+ subjectMetadataKey: "microsoft_oid",
52
+ });
53
+ export const MICROSOFT_OAUTH_CLIENT_ID_ENV = microsoftByoOauth.env.clientId;
54
+ export const MICROSOFT_OAUTH_CLIENT_SECRET_ENV = microsoftByoOauth.env.clientSecret;
55
+ export const MICROSOFT_OAUTH_SCOPES_ENV = microsoftByoOauth.env.scopes;
56
+ export const MICROSOFT_OAUTH_AUTH_URL_ENV = microsoftByoOauth.env.authUrl;
57
+ export const MICROSOFT_OAUTH_TOKEN_URL_ENV = microsoftByoOauth.env.tokenUrl;
58
+ export const MICROSOFT_OAUTH_USERINFO_URL_ENV = microsoftByoOauth.env.userInfoUrl;
59
+ /** Microsoft-bound OAuth state / connect-ticket helpers. */
60
+ export const microsoftOauthTickets = microsoftByoOauth.tickets;
61
+ export const resolveMicrosoftOauthRedirectBase = microsoftByoOauth.resolveRedirectBase;
62
+ export const readMicrosoftOauthConfig = microsoftByoOauth.readConfig;
63
+ export const buildMicrosoftAuthorizeUrl = microsoftByoOauth.buildAuthorizeUrl;
64
+ export const exchangeMicrosoftOauthCode = microsoftByoOauth.exchangeCode;
65
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/identity/microsoft/oauth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Shared deployment OAuth env keys and redirect-base resolution.
3
+ *
4
+ * Used by Slack OIDC, GitHub Connect, Fleet vault Connect, and BYO clients —
5
+ * not Slack-specific despite historical residence under `slack/oauth.ts`.
6
+ */
7
+ export declare const MDA_PUBLIC_APP_URL_ENV = "MDA_PUBLIC_APP_URL";
8
+ /**
9
+ * Public Agent Server base URL used for OAuth `redirect_uri`.
10
+ * Required on LangGraph Host where the ASGI request origin is an internal
11
+ * loopback (e.g. `http://localhost:5557`) rather than `*.langgraph.app`.
12
+ */
13
+ export declare const MDA_PUBLIC_API_URL_ENV = "MDA_PUBLIC_API_URL";
14
+ /**
15
+ * Signing key for OAuth `state` JWTs (Connect-with-X). The env var name is
16
+ * historical — it predates guest ingress being removed — and is kept so
17
+ * existing deployments do not have to rotate a secret. Never a provider client
18
+ * secret (that value is an OAuth credential, not a signing key).
19
+ */
20
+ export declare const OAUTH_STATE_SIGNING_KEY_ENV = "MDA_GUEST_SIGNING_KEY";
21
+ /** Server-side key for OAuth state JWTs; null when Connect cannot bind actors. */
22
+ export declare function readOauthStateSigningKey(env?: NodeJS.ProcessEnv): string | null;
23
+ /**
24
+ * Public base URL for OAuth `redirect_uri` (`…/identity/{provider}/callback`).
25
+ *
26
+ * Prefer an explicit public Agent Server URL over the ASGI request origin:
27
+ * LangGraph Host rewrites requests to an internal loopback that IdPs cannot
28
+ * use as a redirect.
29
+ */
30
+ export declare function resolveOauthRedirectBase(options: {
31
+ requestUrl: string;
32
+ headers?: Headers | {
33
+ get(name: string): string | null | undefined;
34
+ };
35
+ deploymentBaseUrl?: string;
36
+ env?: NodeJS.ProcessEnv;
37
+ }): string;
38
+ /**
39
+ * @deprecated Use {@link resolveOauthRedirectBase}. Kept for callers that still
40
+ * import the historical Slack-named alias.
41
+ */
42
+ export declare const resolveSlackOauthRedirectBase: typeof resolveOauthRedirectBase;
43
+ //# sourceMappingURL=oauth-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-env.d.ts","sourceRoot":"","sources":["../../src/identity/oauth-env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AAEnE,kFAAkF;AAClF,wBAAgB,wBAAwB,CACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,IAAI,CAGf;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAC;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,CAcT;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,iCAA2B,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Shared deployment OAuth env keys and redirect-base resolution.
3
+ *
4
+ * Used by Slack OIDC, GitHub Connect, Fleet vault Connect, and BYO clients —
5
+ * not Slack-specific despite historical residence under `slack/oauth.ts`.
6
+ */
7
+ import { isLoopbackHost, isLoopbackUrl } from "./loopback.js";
8
+ export const MDA_PUBLIC_APP_URL_ENV = "MDA_PUBLIC_APP_URL";
9
+ /**
10
+ * Public Agent Server base URL used for OAuth `redirect_uri`.
11
+ * Required on LangGraph Host where the ASGI request origin is an internal
12
+ * loopback (e.g. `http://localhost:5557`) rather than `*.langgraph.app`.
13
+ */
14
+ export const MDA_PUBLIC_API_URL_ENV = "MDA_PUBLIC_API_URL";
15
+ /**
16
+ * Signing key for OAuth `state` JWTs (Connect-with-X). The env var name is
17
+ * historical — it predates guest ingress being removed — and is kept so
18
+ * existing deployments do not have to rotate a secret. Never a provider client
19
+ * secret (that value is an OAuth credential, not a signing key).
20
+ */
21
+ export const OAUTH_STATE_SIGNING_KEY_ENV = "MDA_GUEST_SIGNING_KEY";
22
+ /** Server-side key for OAuth state JWTs; null when Connect cannot bind actors. */
23
+ export function readOauthStateSigningKey(env = process.env) {
24
+ const key = env[OAUTH_STATE_SIGNING_KEY_ENV]?.trim();
25
+ return key || null;
26
+ }
27
+ /**
28
+ * Public base URL for OAuth `redirect_uri` (`…/identity/{provider}/callback`).
29
+ *
30
+ * Prefer an explicit public Agent Server URL over the ASGI request origin:
31
+ * LangGraph Host rewrites requests to an internal loopback that IdPs cannot
32
+ * use as a redirect.
33
+ */
34
+ export function resolveOauthRedirectBase(options) {
35
+ const env = options.env ?? process.env;
36
+ if (options.deploymentBaseUrl?.trim()) {
37
+ return options.deploymentBaseUrl.trim().replace(/\/$/, "");
38
+ }
39
+ const fromEnv = env[MDA_PUBLIC_API_URL_ENV]?.trim().replace(/\/$/, "");
40
+ if (fromEnv && !isLoopbackUrl(fromEnv)) {
41
+ return fromEnv;
42
+ }
43
+ const forwarded = publicOriginFromForwardedHeaders(options.headers);
44
+ if (forwarded) {
45
+ return forwarded;
46
+ }
47
+ return new URL(options.requestUrl).origin;
48
+ }
49
+ /**
50
+ * @deprecated Use {@link resolveOauthRedirectBase}. Kept for callers that still
51
+ * import the historical Slack-named alias.
52
+ */
53
+ export const resolveSlackOauthRedirectBase = resolveOauthRedirectBase;
54
+ function publicOriginFromForwardedHeaders(headers) {
55
+ if (!headers) {
56
+ return undefined;
57
+ }
58
+ const host = headers.get("x-forwarded-host")?.split(",")[0]?.trim();
59
+ if (!host || isLoopbackHost(host)) {
60
+ return undefined;
61
+ }
62
+ const proto = headers.get("x-forwarded-proto")?.split(",")[0]?.trim() ||
63
+ (host.includes("localhost") || host.startsWith("127.") ? "http" : "https");
64
+ return `${proto}://${host}`;
65
+ }
66
+ //# sourceMappingURL=oauth-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-env.js","sourceRoot":"","sources":["../../src/identity/oauth-env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AAEnE,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CACtC,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,CAAC;IACrD,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAKxC;IACC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,IAAI,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvE,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,SAAS,GAAG,gCAAgC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,wBAAwB,CAAC;AAEtE,SAAS,gCAAgC,CACvC,OAAoE;IAEpE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACpE,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;QACvD,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7E,OAAO,GAAG,KAAK,MAAM,IAAI,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Shared OAuth state and connect-ticket JWTs for Connect-with-X providers.
3
+ *
4
+ * Parameterized by provider id so each integration gets distinct `typ` values
5
+ * (`mda-{id}-oauth-state`, `mda-{id}-connect-ticket`) without copying JWT code.
6
+ */
7
+ export declare function createOauthState(providerId: string, userId: string, signingKey: string, nowMs?: number): Promise<string>;
8
+ export declare function verifyOauthState(providerId: string, state: string, signingKey: string, nowMs?: number): Promise<{
9
+ userId: string;
10
+ }>;
11
+ /**
12
+ * Mint a short-lived connect ticket for channel actors (Slack, etc.) who have
13
+ * no browser session. The Connect start route accepts `?ticket=…` and binds
14
+ * the OAuth vault subject to this user id.
15
+ */
16
+ export declare function createConnectTicket(providerId: string, userId: string, signingKey: string, nowMs?: number): Promise<string>;
17
+ export declare function verifyConnectTicket(providerId: string, ticket: string, signingKey: string, nowMs?: number): Promise<{
18
+ userId: string;
19
+ }>;
20
+ /** Bound OAuth state / connect-ticket helpers for one Connect provider id. */
21
+ export interface OauthTickets {
22
+ readonly providerId: string;
23
+ createState(userId: string, signingKey: string, nowMs?: number): Promise<string>;
24
+ verifyState(state: string, signingKey: string, nowMs?: number): Promise<{
25
+ userId: string;
26
+ }>;
27
+ createTicket(userId: string, signingKey: string, nowMs?: number): Promise<string>;
28
+ verifyTicket(ticket: string, signingKey: string, nowMs?: number): Promise<{
29
+ userId: string;
30
+ }>;
31
+ }
32
+ /**
33
+ * Bind {@link createOauthState} / ticket helpers to a Connect provider id
34
+ * (`mda-{id}-oauth-state`, `mda-{id}-connect-ticket`).
35
+ */
36
+ export declare function oauthTicketsFor(providerId: string): OauthTickets;
37
+ //# sourceMappingURL=oauth-tickets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-tickets.d.ts","sourceRoot":"","sources":["../../src/identity/oauth-tickets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsBH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAmB,GACzB,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAmB,GACzB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB7B;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAmB,GACzB,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAmB,GACzB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAwB7B;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,WAAW,CACT,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,WAAW,CACT,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/B,YAAY,CACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,YAAY,CACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAgBhE"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Shared OAuth state and connect-ticket JWTs for Connect-with-X providers.
3
+ *
4
+ * Parameterized by provider id so each integration gets distinct `typ` values
5
+ * (`mda-{id}-oauth-state`, `mda-{id}-connect-ticket`) without copying JWT code.
6
+ */
7
+ import { randomBytes } from "node:crypto";
8
+ import { jwtVerify, SignJWT } from "jose";
9
+ const STATE_TTL_MS = 10 * 60 * 1000;
10
+ /** Short-lived ticket so Slack/email actors can open Connect without a browser session. */
11
+ const CONNECT_TICKET_TTL_MS = 30 * 60 * 1000;
12
+ function stateTyp(providerId) {
13
+ return `mda-${providerId}-oauth-state`;
14
+ }
15
+ function ticketTyp(providerId) {
16
+ return `mda-${providerId}-connect-ticket`;
17
+ }
18
+ function stateSigningKey(signingKey) {
19
+ return new TextEncoder().encode(signingKey);
20
+ }
21
+ export async function createOauthState(providerId, userId, signingKey, nowMs = Date.now()) {
22
+ const iat = Math.floor(nowMs / 1000);
23
+ const exp = Math.floor((nowMs + STATE_TTL_MS) / 1000);
24
+ return new SignJWT({
25
+ userId,
26
+ nonce: randomBytes(16).toString("hex"),
27
+ })
28
+ .setProtectedHeader({ alg: "HS256", typ: stateTyp(providerId) })
29
+ .setIssuedAt(iat)
30
+ .setExpirationTime(exp)
31
+ .sign(stateSigningKey(signingKey));
32
+ }
33
+ export async function verifyOauthState(providerId, state, signingKey, nowMs = Date.now()) {
34
+ try {
35
+ const { payload } = await jwtVerify(state, stateSigningKey(signingKey), {
36
+ algorithms: ["HS256"],
37
+ typ: stateTyp(providerId),
38
+ currentDate: new Date(nowMs),
39
+ });
40
+ if (typeof payload.userId !== "string" || !payload.userId) {
41
+ throw new Error("invalid OAuth state actor");
42
+ }
43
+ return { userId: payload.userId };
44
+ }
45
+ catch (err) {
46
+ if (err instanceof Error && err.message.startsWith("invalid OAuth state")) {
47
+ throw err;
48
+ }
49
+ const message = err instanceof Error ? err.message : String(err);
50
+ if (/exp|expir/i.test(message)) {
51
+ throw new Error("OAuth state expired");
52
+ }
53
+ throw new Error("invalid OAuth state signature");
54
+ }
55
+ }
56
+ /**
57
+ * Mint a short-lived connect ticket for channel actors (Slack, etc.) who have
58
+ * no browser session. The Connect start route accepts `?ticket=…` and binds
59
+ * the OAuth vault subject to this user id.
60
+ */
61
+ export async function createConnectTicket(providerId, userId, signingKey, nowMs = Date.now()) {
62
+ const iat = Math.floor(nowMs / 1000);
63
+ const exp = Math.floor((nowMs + CONNECT_TICKET_TTL_MS) / 1000);
64
+ return new SignJWT({
65
+ userId,
66
+ nonce: randomBytes(16).toString("hex"),
67
+ })
68
+ .setProtectedHeader({ alg: "HS256", typ: ticketTyp(providerId) })
69
+ .setIssuedAt(iat)
70
+ .setExpirationTime(exp)
71
+ .sign(stateSigningKey(signingKey));
72
+ }
73
+ export async function verifyConnectTicket(providerId, ticket, signingKey, nowMs = Date.now()) {
74
+ try {
75
+ const { payload } = await jwtVerify(ticket, stateSigningKey(signingKey), {
76
+ algorithms: ["HS256"],
77
+ typ: ticketTyp(providerId),
78
+ currentDate: new Date(nowMs),
79
+ });
80
+ if (typeof payload.userId !== "string" || !payload.userId) {
81
+ throw new Error("invalid connect ticket actor");
82
+ }
83
+ return { userId: payload.userId };
84
+ }
85
+ catch (err) {
86
+ if (err instanceof Error &&
87
+ err.message.startsWith("invalid connect ticket")) {
88
+ throw err;
89
+ }
90
+ const message = err instanceof Error ? err.message : String(err);
91
+ if (/exp|expir/i.test(message)) {
92
+ throw new Error("connect ticket expired");
93
+ }
94
+ throw new Error("invalid connect ticket signature");
95
+ }
96
+ }
97
+ /**
98
+ * Bind {@link createOauthState} / ticket helpers to a Connect provider id
99
+ * (`mda-{id}-oauth-state`, `mda-{id}-connect-ticket`).
100
+ */
101
+ export function oauthTicketsFor(providerId) {
102
+ const id = providerId.trim();
103
+ if (!id) {
104
+ throw new Error("oauthTicketsFor requires a non-empty providerId");
105
+ }
106
+ return {
107
+ providerId: id,
108
+ createState: (userId, signingKey, nowMs) => createOauthState(id, userId, signingKey, nowMs),
109
+ verifyState: (state, signingKey, nowMs) => verifyOauthState(id, state, signingKey, nowMs),
110
+ createTicket: (userId, signingKey, nowMs) => createConnectTicket(id, userId, signingKey, nowMs),
111
+ verifyTicket: (ticket, signingKey, nowMs) => verifyConnectTicket(id, ticket, signingKey, nowMs),
112
+ };
113
+ }
114
+ //# sourceMappingURL=oauth-tickets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-tickets.js","sourceRoot":"","sources":["../../src/identity/oauth-tickets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The `defineIdentity(...)` input, and its normalization into the resolved
3
+ * {@link IdentityConfig}.
4
+ *
5
+ * Authors describe how callers authenticate. The runtime supplies the managed
6
+ * user-isolation policy, so credential ownership and Connect routing do not
7
+ * become authoring knobs. Durable memory is not an identity concern at all —
8
+ * it has its own root declaration in `memory.ts`.
9
+ */
10
+ import type { IdentityConfig, LangSmithApiKeyIngress, ValidatedTokenProvider } from "./types.js";
11
+ /**
12
+ * How MDA learns who is calling.
13
+ *
14
+ * - `"backend"` — a backend you operate has already authenticated the caller and
15
+ * asserts the user id over the reserved ingress headers.
16
+ * - `auth.langsmithApiKey()` — MDA verifies a LangSmith workspace API key and
17
+ * treats the result as a service identity.
18
+ * - one or more `providers.*` entries — MDA verifies the caller's own token
19
+ * server-side (browser-direct).
20
+ */
21
+ export type IdentityAuth = "backend" | LangSmithApiKeyIngress | ValidatedTokenProvider | ValidatedTokenProvider[];
22
+ /** The identity declaration. Authentication must be chosen explicitly. */
23
+ export interface IdentityOptions {
24
+ /** How callers authenticate. */
25
+ auth: IdentityAuth;
26
+ }
27
+ /**
28
+ * Derive the resolved {@link IdentityConfig} from the declared options.
29
+ *
30
+ * Pure and total: every reachable option combination produces a config that
31
+ * `validateIdentity` accepts, so the errors that exist only to police two
32
+ * fields agreeing with each other are unreachable from this path.
33
+ */
34
+ export declare function normalizeIdentity(options: IdentityOptions): IdentityConfig;
35
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/identity/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,EAAE,CAAC;AAE7B,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,IAAI,EAAE,YAAY,CAAC;CACpB;AAYD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAa1E"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * The `defineIdentity(...)` input, and its normalization into the resolved
3
+ * {@link IdentityConfig}.
4
+ *
5
+ * Authors describe how callers authenticate. The runtime supplies the managed
6
+ * user-isolation policy, so credential ownership and Connect routing do not
7
+ * become authoring knobs. Durable memory is not an identity concern at all —
8
+ * it has its own root declaration in `memory.ts`.
9
+ */
10
+ /**
11
+ * Managed identity keys downstream credentials on the caller.
12
+ *
13
+ * Threads are always user-owned, and durable memory is declared by `memory.ts`,
14
+ * so credentials are the only axis left for identity to resolve.
15
+ */
16
+ function managedUserScope() {
17
+ return { credentials: "user" };
18
+ }
19
+ /**
20
+ * Derive the resolved {@link IdentityConfig} from the declared options.
21
+ *
22
+ * Pure and total: every reachable option combination produces a config that
23
+ * `validateIdentity` accepts, so the errors that exist only to police two
24
+ * fields agreeing with each other are unreachable from this path.
25
+ */
26
+ export function normalizeIdentity(options) {
27
+ assertOptionKeys(options);
28
+ if (options.auth === undefined) {
29
+ throw new Error("defineIdentity(...) requires `auth`. Use auth.langsmithApiKey() for LangSmith workspace API keys.");
30
+ }
31
+ return {
32
+ ingress: { http: resolveIngress(options.auth) },
33
+ scope: managedUserScope(),
34
+ };
35
+ }
36
+ function resolveIngress(auth) {
37
+ if (auth === "backend") {
38
+ return "backend";
39
+ }
40
+ if (typeof auth === "string") {
41
+ throw new Error(`defineIdentity(...) unknown \`auth\` value "${auth}". Use "backend", auth.langsmithApiKey(), or one or more providers.* entries.`);
42
+ }
43
+ if (isLangSmithApiKeyAuth(auth)) {
44
+ return auth;
45
+ }
46
+ const providers = Array.isArray(auth) ? auth : [auth];
47
+ return { mode: "validated_token", providers };
48
+ }
49
+ function isLangSmithApiKeyAuth(auth) {
50
+ return (!Array.isArray(auth) && "mode" in auth && auth.mode === "langsmith_api_key");
51
+ }
52
+ const KNOWN_OPTION_KEYS = new Set(["auth"]);
53
+ /**
54
+ * Reject unknown keys so a typo fails loudly instead of being silently ignored.
55
+ */
56
+ function assertOptionKeys(options) {
57
+ if (options === null || typeof options !== "object") {
58
+ throw new Error("defineIdentity(...) requires an options object ({ auth }).");
59
+ }
60
+ // `scope` carried three different removals, so a bare "unknown option" would
61
+ // leave a migrator guessing which one they hit.
62
+ if ("scope" in options) {
63
+ throw new Error("defineIdentity(...) `scope` is no longer supported. Threads and " +
64
+ "downstream credentials are always per-caller, so there is nothing to " +
65
+ "declare. Durable memory has its own root declaration: export `memory` " +
66
+ 'from `memory.ts` with `defineMemory({ scope: "agent" })`.');
67
+ }
68
+ // Connect-with-X is hidden for this release (#235), so say that rather than
69
+ // reporting `connect` as a typo.
70
+ if ("connect" in options) {
71
+ throw new Error("defineIdentity(...) `connect` is not available in this release. " +
72
+ "Connect-with-X providers cannot be declared yet.");
73
+ }
74
+ const unknown = Object.keys(options).filter((key) => !KNOWN_OPTION_KEYS.has(key));
75
+ if (unknown.length > 0) {
76
+ throw new Error(`defineIdentity(...) unknown option(s): ${unknown.join(", ")}. ` +
77
+ `Valid options: ${[...KNOWN_OPTION_KEYS].join(", ")}.`);
78
+ }
79
+ }
80
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/identity/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA8BH;;;;;GAKG;AACH,SAAS,gBAAgB;IACvB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAwB;IACxD,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE1B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC/C,KAAK,EAAE,gBAAgB,EAAE;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAkB;IACxC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,+EAA+E,CACnI,CAAC;IACJ,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAsC;IAEtC,OAAO,CACL,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAC5E,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5C;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAwB;IAChD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,6EAA6E;IAC7E,gDAAgD;IAChD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,kEAAkE;YAChE,uEAAuE;YACvE,wEAAwE;YACxE,2DAA2D,CAC9D,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,iCAAiC;IACjC,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,kEAAkE;YAChE,kDAAkD,CACrD,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CACrC,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,0CAA0C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC9D,kBAAkB,CAAC,GAAG,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACzD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * Connect-with-Slack — {@link IdentityConnectProvider} for Slack OIDC linking.
3
3
  *
4
- * Mounted under `/identity/slack/*` when listed on `identity.connect`.
4
+ * Mounted under `/identity/slack/*` when listed on `identity.connect`, or when
5
+ * a Slack channel routes into a user-scoped / custom-credentials deployment
6
+ * (so Events can remap actors and tools can use per-caller tokens).
5
7
  */
6
8
  import type { IdentityConnectProvider } from "../connect-provider-types.js";
7
9
  import { type IdentityLinkStore } from "./links.js";
@@ -22,10 +24,10 @@ export declare const slackIdentityConnectProvider: IdentityConnectProvider;
22
24
  *
23
25
  * @example
24
26
  * ```ts
25
- * import { defineIdentity, slack } from "managed-deepagents";
27
+ * import { connect, defineIdentity } from "managed-deepagents";
26
28
  *
27
- * export const identity = defineIdentity.preset("internal-tool", {
28
- * connect: [slack.connect()],
29
+ * export const identity = defineIdentity({
30
+ * connect: [connect.slack()],
29
31
  * });
30
32
  * ```
31
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"connect-http.d.ts","sourceRoot":"","sources":["../../../src/identity/slack/connect-http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAKV,uBAAuB,EAExB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAgBpB,eAAO,MAAM,yBAAyB,QAAe,CAAC;AACtD,eAAO,MAAM,wBAAwB,QAAgB,CAAC;AACtD,eAAO,MAAM,2BAA2B,QAAiB,CAAC;AAC1D,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD,8DAA8D;AAC9D,MAAM,WAAW,mCAAmC;IAClD,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED,mEAAmE;AACnE,wBAAgB,kCAAkC,CAChD,OAAO,GAAE,mCAAwC,GAChD,uBAAuB,CAoFzB;AAED,4EAA4E;AAC5E,eAAO,MAAM,4BAA4B,EAAE,uBACL,CAAC;AAEvC;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CACrB,OAAO,CAAC,EAAE,mCAAmC,GAC5C,uBAAuB,CAIzB"}
1
+ {"version":3,"file":"connect-http.d.ts","sourceRoot":"","sources":["../../../src/identity/slack/connect-http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAKV,uBAAuB,EAExB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAmBpB,eAAO,MAAM,yBAAyB,QAAe,CAAC;AACtD,eAAO,MAAM,wBAAwB,QAAgB,CAAC;AACtD,eAAO,MAAM,2BAA2B,QAAiB,CAAC;AAC1D,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD,8DAA8D;AAC9D,MAAM,WAAW,mCAAmC;IAClD,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED,mEAAmE;AACnE,wBAAgB,kCAAkC,CAChD,OAAO,GAAE,mCAAwC,GAChD,uBAAuB,CA6FzB;AAED,4EAA4E;AAC5E,eAAO,MAAM,4BAA4B,EAAE,uBACL,CAAC;AAEvC;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CACrB,OAAO,CAAC,EAAE,mCAAmC,GAC5C,uBAAuB,CAIzB"}
@@ -1,11 +1,14 @@
1
1
  /**
2
2
  * Connect-with-Slack — {@link IdentityConnectProvider} for Slack OIDC linking.
3
3
  *
4
- * Mounted under `/identity/slack/*` when listed on `identity.connect`.
4
+ * Mounted under `/identity/slack/*` when listed on `identity.connect`, or when
5
+ * a Slack channel routes into a user-scoped / custom-credentials deployment
6
+ * (so Events can remap actors and tools can use per-caller tokens).
5
7
  */
6
8
  import { buildIdentityLinkRecord, getIdentityLinkStore, } from "./links.js";
7
- import { buildSlackAuthorizeUrl, createSlackOauthState, exchangeSlackOidcCode, MDA_PUBLIC_APP_URL_ENV, OAUTH_STATE_SIGNING_KEY_ENV, readOauthStateSigningKey, readSlackOidcConfig, resolveSlackOauthRedirectBase, verifySlackOauthState, } from "./oauth.js";
9
+ import { buildSlackAuthorizeUrl, exchangeSlackOidcCode, MDA_PUBLIC_APP_URL_ENV, OAUTH_STATE_SIGNING_KEY_ENV, readOauthStateSigningKey, readSlackOidcConfig, resolveOauthRedirectBase, slackOauthTickets, } from "./oauth.js";
8
10
  import { identityConnectPaths } from "../connect-paths.js";
11
+ import { hasChannelForProvider, isUserScopedDeployment, } from "../connect-inference.js";
9
12
  const PATHS = identityConnectPaths("slack");
10
13
  export const SLACK_CONNECT_STATUS_PATH = PATHS.status;
11
14
  export const SLACK_CONNECT_START_PATH = PATHS.connect;
@@ -17,23 +20,30 @@ export function createSlackIdentityConnectProvider(options = {}) {
17
20
  return {
18
21
  id: "slack",
19
22
  shouldMount(ctx) {
20
- // Opt-in is via `identity.connect`; this is a secondary gate only.
21
- return ctx.hasIdentity;
23
+ if (!ctx.hasIdentity) {
24
+ return false;
25
+ }
26
+ // Listed on `identity.connect` — the author already opted in. Otherwise
27
+ // mount only when a Slack channel routes into a per-user deployment,
28
+ // which is exactly when there is a Slack account worth linking.
29
+ return (ctx.declared !== false ||
30
+ (hasChannelForProvider(ctx.channels, "slack") &&
31
+ isUserScopedDeployment(ctx.scope)));
22
32
  },
23
- async status(actorId) {
24
- const link = await store().getByActorId(actorId);
33
+ async status(userId) {
34
+ const link = await store().getByUserId(userId);
25
35
  return {
26
36
  linked: Boolean(link),
27
37
  ...(link
28
38
  ? {
29
39
  slackUserId: link.slackUserId,
30
- slackActorId: link.slackActorId,
40
+ slackKey: link.slackKey,
31
41
  linkedAt: link.linkedAt,
32
42
  }
33
43
  : {}),
34
44
  };
35
45
  },
36
- async startAuthorize(actorId, redirectUri) {
46
+ async startAuthorize(userId, redirectUri) {
37
47
  const oauth = readSlackOidcConfig();
38
48
  const stateKey = readOauthStateSigningKey();
39
49
  if (!oauth || !stateKey) {
@@ -42,7 +52,7 @@ export function createSlackIdentityConnectProvider(options = {}) {
42
52
  error: `Slack connect is not configured (set SLACK_CLIENT_ID, SLACK_CLIENT_SECRET, MDA_PUBLIC_APP_URL, ${OAUTH_STATE_SIGNING_KEY_ENV})`,
43
53
  };
44
54
  }
45
- const state = await createSlackOauthState(actorId, stateKey);
55
+ const state = await slackOauthTickets.createState(userId, stateKey);
46
56
  return {
47
57
  authorizeUrl: buildSlackAuthorizeUrl(oauth, state, redirectUri),
48
58
  };
@@ -56,11 +66,11 @@ export function createSlackIdentityConnectProvider(options = {}) {
56
66
  if (!stateKey) {
57
67
  throw new Error(`${OAUTH_STATE_SIGNING_KEY_ENV} is not configured`);
58
68
  }
59
- const { actorId } = await verifySlackOauthState(state, stateKey);
69
+ const { userId } = await slackOauthTickets.verifyState(state, stateKey);
60
70
  const slackIdentity = await exchangeSlackOidcCode(oauth, code, redirectUri);
61
71
  const teamId = slackIdentity.teamId ?? oauth.teamId;
62
72
  const record = buildIdentityLinkRecord({
63
- actorId,
73
+ userId,
64
74
  slackUserId: slackIdentity.userId,
65
75
  ...(teamId ? { slackTeamId: teamId } : {}),
66
76
  ...(slackIdentity.email ? { email: slackIdentity.email } : {}),
@@ -70,11 +80,11 @@ export function createSlackIdentityConnectProvider(options = {}) {
70
80
  successRedirect: `${oauth.publicAppUrl}/settings?slack=connected`,
71
81
  };
72
82
  },
73
- async unlink(actorId) {
74
- await store().removeByActorId(actorId);
83
+ async unlink(userId) {
84
+ await store().removeByUserId(userId);
75
85
  },
76
86
  resolveRedirectBase(options) {
77
- return resolveSlackOauthRedirectBase(options);
87
+ return resolveOauthRedirectBase(options);
78
88
  },
79
89
  resolvePublicAppUrl() {
80
90
  const oauth = readSlackOidcConfig();
@@ -90,10 +100,10 @@ export const slackIdentityConnectProvider = createSlackIdentityConnectProvider()
90
100
  *
91
101
  * @example
92
102
  * ```ts
93
- * import { defineIdentity, slack } from "managed-deepagents";
103
+ * import { connect, defineIdentity } from "managed-deepagents";
94
104
  *
95
- * export const identity = defineIdentity.preset("internal-tool", {
96
- * connect: [slack.connect()],
105
+ * export const identity = defineIdentity({
106
+ * connect: [connect.slack()],
97
107
  * });
98
108
  * ```
99
109
  */
@@ -1 +1 @@
1
- {"version":3,"file":"connect-http.js","sourceRoot":"","sources":["../../../src/identity/slack/connect-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect-http.js","sourceRoot":"","sources":["../../../src/identity/slack/connect-http.ts"],"names":[],"mappings":"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"}