managed-deepagents 0.5.0-dev.79 → 0.5.0-dev.80

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 (322) hide show
  1. package/README.md +50 -8
  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 +6 -8
  8. package/dist/channels/index.d.ts.map +1 -1
  9. package/dist/channels/index.js +5 -5
  10. package/dist/channels/index.js.map +1 -1
  11. package/dist/channels/manifest.d.ts +36 -3
  12. package/dist/channels/manifest.d.ts.map +1 -1
  13. package/dist/channels/messaging-registry.d.ts +17 -0
  14. package/dist/channels/messaging-registry.d.ts.map +1 -0
  15. package/dist/channels/messaging-registry.js +44 -0
  16. package/dist/channels/messaging-registry.js.map +1 -0
  17. package/dist/channels/registry.d.ts +4 -3
  18. package/dist/channels/registry.d.ts.map +1 -1
  19. package/dist/channels/registry.js +6 -5
  20. package/dist/channels/registry.js.map +1 -1
  21. package/dist/channels/schedule-delivery.d.ts +4 -1
  22. package/dist/channels/schedule-delivery.d.ts.map +1 -1
  23. package/dist/channels/schedule-delivery.js +4 -2
  24. package/dist/channels/schedule-delivery.js.map +1 -1
  25. package/dist/connectors/github/adapter-core.d.ts +15 -0
  26. package/dist/connectors/github/adapter-core.d.ts.map +1 -0
  27. package/dist/connectors/github/adapter-core.js +52 -0
  28. package/dist/connectors/github/adapter-core.js.map +1 -0
  29. package/dist/{channels → connectors}/github/define.d.ts +28 -58
  30. package/dist/connectors/github/define.d.ts.map +1 -0
  31. package/dist/connectors/github/define.js +72 -0
  32. package/dist/connectors/github/define.js.map +1 -0
  33. package/dist/{channels → connectors}/github/http.d.ts +4 -4
  34. package/dist/connectors/github/http.d.ts.map +1 -0
  35. package/dist/{channels → connectors}/github/http.js +13 -24
  36. package/dist/connectors/github/http.js.map +1 -0
  37. package/dist/connectors/github/index.d.ts +59 -16
  38. package/dist/connectors/github/index.d.ts.map +1 -1
  39. package/dist/connectors/github/index.js +159 -73
  40. package/dist/connectors/github/index.js.map +1 -1
  41. package/dist/connectors/github/match.d.ts +20 -0
  42. package/dist/connectors/github/match.d.ts.map +1 -0
  43. package/dist/connectors/github/match.js +41 -0
  44. package/dist/connectors/github/match.js.map +1 -0
  45. package/dist/{channels → connectors}/github/normalize.d.ts +1 -1
  46. package/dist/connectors/github/normalize.d.ts.map +1 -0
  47. package/dist/{channels → connectors}/github/normalize.js +2 -2
  48. package/dist/connectors/github/normalize.js.map +1 -0
  49. package/dist/connectors/github/sandbox.d.ts.map +1 -1
  50. package/dist/connectors/github/sandbox.js +30 -23
  51. package/dist/connectors/github/sandbox.js.map +1 -1
  52. package/dist/connectors/github/source-thread.d.ts.map +1 -0
  53. package/dist/connectors/github/source-thread.js.map +1 -0
  54. package/dist/{channels → connectors}/github/transport.d.ts +7 -1
  55. package/dist/connectors/github/transport.d.ts.map +1 -0
  56. package/dist/{channels → connectors}/github/transport.js +18 -4
  57. package/dist/connectors/github/transport.js.map +1 -0
  58. package/dist/connectors/langsmith/index.d.ts +29 -17
  59. package/dist/connectors/langsmith/index.d.ts.map +1 -1
  60. package/dist/connectors/langsmith/index.js +34 -29
  61. package/dist/connectors/langsmith/index.js.map +1 -1
  62. package/dist/connectors/langsmith/routes.d.ts +4 -15
  63. package/dist/connectors/langsmith/routes.d.ts.map +1 -1
  64. package/dist/connectors/langsmith/routes.js +63 -72
  65. package/dist/connectors/langsmith/routes.js.map +1 -1
  66. package/dist/connectors/mcp/index.d.ts +13 -20
  67. package/dist/connectors/mcp/index.d.ts.map +1 -1
  68. package/dist/connectors/mcp/index.js +92 -112
  69. package/dist/connectors/mcp/index.js.map +1 -1
  70. package/dist/connectors/mcp/load.d.ts.map +1 -1
  71. package/dist/connectors/mcp/load.js +16 -40
  72. package/dist/connectors/mcp/load.js.map +1 -1
  73. package/dist/{channels → connectors}/slack/adapter-core.d.ts +1 -1
  74. package/dist/connectors/slack/adapter-core.d.ts.map +1 -0
  75. package/dist/connectors/slack/adapter-core.js.map +1 -0
  76. package/dist/{channels → connectors}/slack/adapter.d.ts +3 -4
  77. package/dist/connectors/slack/adapter.d.ts.map +1 -0
  78. package/dist/{channels → connectors}/slack/adapter.js +1 -1
  79. package/dist/connectors/slack/adapter.js.map +1 -0
  80. package/dist/{channels → connectors}/slack/http.d.ts +6 -40
  81. package/dist/connectors/slack/http.d.ts.map +1 -0
  82. package/dist/{channels → connectors}/slack/http.js +22 -125
  83. package/dist/connectors/slack/http.js.map +1 -0
  84. package/dist/connectors/slack/index.d.ts +108 -0
  85. package/dist/connectors/slack/index.d.ts.map +1 -0
  86. package/dist/connectors/slack/index.js +191 -0
  87. package/dist/connectors/slack/index.js.map +1 -0
  88. package/dist/{channels → connectors}/slack/normalize.d.ts +5 -5
  89. package/dist/connectors/slack/normalize.d.ts.map +1 -0
  90. package/dist/{channels → connectors}/slack/normalize.js +21 -20
  91. package/dist/connectors/slack/normalize.js.map +1 -0
  92. package/dist/connectors/slack/source-thread.d.ts.map +1 -0
  93. package/dist/connectors/slack/source-thread.js.map +1 -0
  94. package/dist/{channels → connectors}/slack/transport.d.ts +1 -1
  95. package/dist/connectors/slack/transport.d.ts.map +1 -0
  96. package/dist/{channels → connectors}/slack/transport.js +4 -3
  97. package/dist/connectors/slack/transport.js.map +1 -0
  98. package/dist/connectors/tool-selection.d.ts +31 -0
  99. package/dist/connectors/tool-selection.d.ts.map +1 -0
  100. package/dist/connectors/tool-selection.js +54 -0
  101. package/dist/connectors/tool-selection.js.map +1 -0
  102. package/dist/connectors/toolserver/catalog.d.ts +134 -0
  103. package/dist/connectors/toolserver/catalog.d.ts.map +1 -0
  104. package/dist/connectors/toolserver/catalog.js +74 -0
  105. package/dist/connectors/toolserver/catalog.js.map +1 -0
  106. package/dist/connectors/toolserver/index.d.ts +119 -0
  107. package/dist/connectors/toolserver/index.d.ts.map +1 -0
  108. package/dist/connectors/toolserver/index.js +150 -0
  109. package/dist/connectors/toolserver/index.js.map +1 -0
  110. package/dist/connectors/toolserver/load.d.ts +55 -0
  111. package/dist/connectors/toolserver/load.d.ts.map +1 -0
  112. package/dist/connectors/toolserver/load.js +162 -0
  113. package/dist/connectors/toolserver/load.js.map +1 -0
  114. package/dist/extension.d.ts +77 -0
  115. package/dist/extension.d.ts.map +1 -0
  116. package/dist/extension.js +127 -0
  117. package/dist/extension.js.map +1 -0
  118. package/dist/identity/claims.d.ts +18 -0
  119. package/dist/identity/claims.d.ts.map +1 -0
  120. package/dist/identity/claims.js +37 -0
  121. package/dist/identity/claims.js.map +1 -0
  122. package/dist/identity/connect-inference.d.ts +28 -0
  123. package/dist/identity/connect-inference.d.ts.map +1 -0
  124. package/dist/identity/connect-inference.js +39 -0
  125. package/dist/identity/connect-inference.js.map +1 -0
  126. package/dist/identity/connect-provider-types.d.ts +23 -6
  127. package/dist/identity/connect-provider-types.d.ts.map +1 -1
  128. package/dist/identity/connect-provider-types.js +3 -1
  129. package/dist/identity/connect-provider-types.js.map +1 -1
  130. package/dist/identity/connect-provider.d.ts +9 -4
  131. package/dist/identity/connect-provider.d.ts.map +1 -1
  132. package/dist/identity/connect-provider.js +19 -9
  133. package/dist/identity/connect-provider.js.map +1 -1
  134. package/dist/identity/credential-resolvers.d.ts +33 -0
  135. package/dist/identity/credential-resolvers.d.ts.map +1 -0
  136. package/dist/identity/credential-resolvers.js +62 -0
  137. package/dist/identity/credential-resolvers.js.map +1 -0
  138. package/dist/identity/github/connect-http.d.ts +3 -3
  139. package/dist/identity/github/connect-http.d.ts.map +1 -1
  140. package/dist/identity/github/connect-http.js +21 -13
  141. package/dist/identity/github/connect-http.js.map +1 -1
  142. package/dist/identity/github/credentials-store.d.ts +10 -10
  143. package/dist/identity/github/credentials-store.d.ts.map +1 -1
  144. package/dist/identity/github/credentials-store.js +40 -43
  145. package/dist/identity/github/credentials-store.js.map +1 -1
  146. package/dist/identity/github/credentials.d.ts +16 -13
  147. package/dist/identity/github/credentials.d.ts.map +1 -1
  148. package/dist/identity/github/credentials.js +43 -23
  149. package/dist/identity/github/credentials.js.map +1 -1
  150. package/dist/identity/github/index.d.ts +2 -3
  151. package/dist/identity/github/index.d.ts.map +1 -1
  152. package/dist/identity/github/index.js +1 -2
  153. package/dist/identity/github/index.js.map +1 -1
  154. package/dist/identity/github/oauth.d.ts +3 -3
  155. package/dist/identity/github/oauth.d.ts.map +1 -1
  156. package/dist/identity/github/oauth.js +10 -9
  157. package/dist/identity/github/oauth.js.map +1 -1
  158. package/dist/identity/index.d.ts +35 -29
  159. package/dist/identity/index.d.ts.map +1 -1
  160. package/dist/identity/index.js +98 -131
  161. package/dist/identity/index.js.map +1 -1
  162. package/dist/identity/loopback.d.ts +27 -2
  163. package/dist/identity/loopback.d.ts.map +1 -1
  164. package/dist/identity/loopback.js +61 -8
  165. package/dist/identity/loopback.js.map +1 -1
  166. package/dist/identity/options.d.ts +90 -0
  167. package/dist/identity/options.d.ts.map +1 -0
  168. package/dist/identity/options.js +171 -0
  169. package/dist/identity/options.js.map +1 -0
  170. package/dist/identity/slack/connect-http.d.ts +3 -3
  171. package/dist/identity/slack/connect-http.d.ts.map +1 -1
  172. package/dist/identity/slack/connect-http.js +22 -14
  173. package/dist/identity/slack/connect-http.js.map +1 -1
  174. package/dist/identity/slack/index.d.ts +1 -2
  175. package/dist/identity/slack/index.d.ts.map +1 -1
  176. package/dist/identity/slack/index.js +1 -2
  177. package/dist/identity/slack/index.js.map +1 -1
  178. package/dist/identity/slack/links.d.ts +15 -15
  179. package/dist/identity/slack/links.d.ts.map +1 -1
  180. package/dist/identity/slack/links.js +50 -53
  181. package/dist/identity/slack/links.js.map +1 -1
  182. package/dist/identity/slack/oauth.d.ts +2 -2
  183. package/dist/identity/slack/oauth.d.ts.map +1 -1
  184. package/dist/identity/slack/oauth.js +9 -24
  185. package/dist/identity/slack/oauth.js.map +1 -1
  186. package/dist/identity/supabase.js +9 -9
  187. package/dist/identity/supabase.js.map +1 -1
  188. package/dist/identity/types.d.ts +82 -36
  189. package/dist/identity/types.d.ts.map +1 -1
  190. package/dist/index.d.ts +11 -21
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +2 -12
  193. package/dist/index.js.map +1 -1
  194. package/dist/ingress/index.d.ts +54 -0
  195. package/dist/ingress/index.d.ts.map +1 -0
  196. package/dist/ingress/index.js +128 -0
  197. package/dist/ingress/index.js.map +1 -0
  198. package/dist/namespaces.d.ts +76 -0
  199. package/dist/namespaces.d.ts.map +1 -0
  200. package/dist/namespaces.js +94 -0
  201. package/dist/namespaces.js.map +1 -0
  202. package/dist/runtime/auth.d.ts +18 -14
  203. package/dist/runtime/auth.d.ts.map +1 -1
  204. package/dist/runtime/auth.js +88 -68
  205. package/dist/runtime/auth.js.map +1 -1
  206. package/dist/runtime/backend.d.ts +1 -1
  207. package/dist/runtime/backend.d.ts.map +1 -1
  208. package/dist/runtime/connector.d.ts +66 -23
  209. package/dist/runtime/connector.d.ts.map +1 -1
  210. package/dist/runtime/connector.js +63 -27
  211. package/dist/runtime/connector.js.map +1 -1
  212. package/dist/runtime/cors.d.ts +2 -3
  213. package/dist/runtime/cors.d.ts.map +1 -1
  214. package/dist/runtime/cors.js +2 -7
  215. package/dist/runtime/cors.js.map +1 -1
  216. package/dist/runtime/credentials.d.ts.map +1 -1
  217. package/dist/runtime/credentials.js +39 -14
  218. package/dist/runtime/credentials.js.map +1 -1
  219. package/dist/runtime/http.d.ts +47 -0
  220. package/dist/runtime/http.d.ts.map +1 -0
  221. package/dist/runtime/http.js +54 -0
  222. package/dist/runtime/http.js.map +1 -0
  223. package/dist/runtime/identity-http.d.ts +6 -16
  224. package/dist/runtime/identity-http.d.ts.map +1 -1
  225. package/dist/runtime/identity-http.js +71 -54
  226. package/dist/runtime/identity-http.js.map +1 -1
  227. package/dist/runtime/identity-runtime.d.ts +18 -17
  228. package/dist/runtime/identity-runtime.d.ts.map +1 -1
  229. package/dist/runtime/identity-runtime.js +55 -39
  230. package/dist/runtime/identity-runtime.js.map +1 -1
  231. package/dist/runtime/index.d.ts +77 -104
  232. package/dist/runtime/index.d.ts.map +1 -1
  233. package/dist/runtime/index.js +36 -35
  234. package/dist/runtime/index.js.map +1 -1
  235. package/dist/runtime/memory/index.d.ts +1 -0
  236. package/dist/runtime/memory/index.d.ts.map +1 -1
  237. package/dist/runtime/memory/index.js +1 -0
  238. package/dist/runtime/memory/index.js.map +1 -1
  239. package/dist/runtime/memory/lazy-context-backend.d.ts +66 -0
  240. package/dist/runtime/memory/lazy-context-backend.d.ts.map +1 -0
  241. package/dist/runtime/memory/lazy-context-backend.js +154 -0
  242. package/dist/runtime/memory/lazy-context-backend.js.map +1 -0
  243. package/dist/runtime/memory/user-repo.js +3 -3
  244. package/dist/runtime/memory/user-repo.js.map +1 -1
  245. package/dist/runtime/sandbox-manager.d.ts +33 -0
  246. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  247. package/dist/runtime/sandbox-manager.js +173 -9
  248. package/dist/runtime/sandbox-manager.js.map +1 -1
  249. package/dist/runtime/sandbox-stream-retry.d.ts +16 -0
  250. package/dist/runtime/sandbox-stream-retry.d.ts.map +1 -0
  251. package/dist/runtime/sandbox-stream-retry.js +61 -0
  252. package/dist/runtime/sandbox-stream-retry.js.map +1 -0
  253. package/dist/runtime/setup-script.d.ts.map +1 -1
  254. package/dist/runtime/setup-script.js +4 -2
  255. package/dist/runtime/setup-script.js.map +1 -1
  256. package/dist/runtime/validated-token.d.ts +1 -1
  257. package/dist/runtime/validated-token.d.ts.map +1 -1
  258. package/dist/runtime/validated-token.js +75 -33
  259. package/dist/runtime/validated-token.js.map +1 -1
  260. package/dist/sandbox.d.ts +19 -22
  261. package/dist/sandbox.d.ts.map +1 -1
  262. package/dist/sandbox.js +20 -34
  263. package/dist/sandbox.js.map +1 -1
  264. package/dist/schedules.js +8 -9
  265. package/dist/schedules.js.map +1 -1
  266. package/package.json +18 -28
  267. package/dist/channels/collect.d.ts +0 -26
  268. package/dist/channels/collect.d.ts.map +0 -1
  269. package/dist/channels/collect.js +0 -42
  270. package/dist/channels/collect.js.map +0 -1
  271. package/dist/channels/github/adapter-core.d.ts +0 -6
  272. package/dist/channels/github/adapter-core.d.ts.map +0 -1
  273. package/dist/channels/github/adapter-core.js +0 -27
  274. package/dist/channels/github/adapter-core.js.map +0 -1
  275. package/dist/channels/github/adapter.d.ts +0 -16
  276. package/dist/channels/github/adapter.d.ts.map +0 -1
  277. package/dist/channels/github/adapter.js +0 -52
  278. package/dist/channels/github/adapter.js.map +0 -1
  279. package/dist/channels/github/define.d.ts.map +0 -1
  280. package/dist/channels/github/define.js +0 -166
  281. package/dist/channels/github/define.js.map +0 -1
  282. package/dist/channels/github/http.d.ts.map +0 -1
  283. package/dist/channels/github/http.js.map +0 -1
  284. package/dist/channels/github/index.d.ts +0 -12
  285. package/dist/channels/github/index.d.ts.map +0 -1
  286. package/dist/channels/github/index.js +0 -10
  287. package/dist/channels/github/index.js.map +0 -1
  288. package/dist/channels/github/normalize.d.ts.map +0 -1
  289. package/dist/channels/github/normalize.js.map +0 -1
  290. package/dist/channels/github/source-thread.d.ts.map +0 -1
  291. package/dist/channels/github/source-thread.js.map +0 -1
  292. package/dist/channels/github/transport.d.ts.map +0 -1
  293. package/dist/channels/github/transport.js.map +0 -1
  294. package/dist/channels/plugin.d.ts +0 -61
  295. package/dist/channels/plugin.d.ts.map +0 -1
  296. package/dist/channels/plugin.js +0 -80
  297. package/dist/channels/plugin.js.map +0 -1
  298. package/dist/channels/slack/adapter-core.d.ts.map +0 -1
  299. package/dist/channels/slack/adapter-core.js.map +0 -1
  300. package/dist/channels/slack/adapter.d.ts.map +0 -1
  301. package/dist/channels/slack/adapter.js.map +0 -1
  302. package/dist/channels/slack/define.d.ts +0 -74
  303. package/dist/channels/slack/define.d.ts.map +0 -1
  304. package/dist/channels/slack/define.js +0 -160
  305. package/dist/channels/slack/define.js.map +0 -1
  306. package/dist/channels/slack/http.d.ts.map +0 -1
  307. package/dist/channels/slack/http.js.map +0 -1
  308. package/dist/channels/slack/index.d.ts +0 -18
  309. package/dist/channels/slack/index.d.ts.map +0 -1
  310. package/dist/channels/slack/index.js +0 -13
  311. package/dist/channels/slack/index.js.map +0 -1
  312. package/dist/channels/slack/normalize.d.ts.map +0 -1
  313. package/dist/channels/slack/normalize.js.map +0 -1
  314. package/dist/channels/slack/source-thread.d.ts.map +0 -1
  315. package/dist/channels/slack/source-thread.js.map +0 -1
  316. package/dist/channels/slack/transport.d.ts.map +0 -1
  317. package/dist/channels/slack/transport.js.map +0 -1
  318. /package/dist/{channels → connectors}/github/source-thread.d.ts +0 -0
  319. /package/dist/{channels → connectors}/github/source-thread.js +0 -0
  320. /package/dist/{channels → connectors}/slack/adapter-core.js +0 -0
  321. /package/dist/{channels → connectors}/slack/source-thread.d.ts +0 -0
  322. /package/dist/{channels → connectors}/slack/source-thread.js +0 -0
@@ -5,20 +5,17 @@
5
5
  * Slack 3s window, then invokes the graph over a trusted loopback and posts an
6
6
  * auto-reply when needed.
7
7
  */
8
- import { createHash } from "node:crypto";
9
- import { Client } from "@langchain/langgraph-sdk";
10
- import { ChannelError } from "../errors.js";
11
- import { InMemoryChannelStore } from "../store.js";
12
- import { CHANNEL_BINDING_KEY, clearFinalPosted, markFinalPosted, wasDeliveryFinalPosted, } from "../binding.js";
13
- import { extractAssistantText } from "../assistant-text.js";
14
- import { createRuntimeChannel } from "../runtime.js";
8
+ import { ChannelError } from "../../channels/errors.js";
9
+ import { InMemoryChannelStore } from "../../channels/store.js";
10
+ import { clearFinalPosted, markFinalPosted, wasDeliveryFinalPosted, } from "../../channels/binding.js";
11
+ import { createRuntimeChannel } from "../../channels/runtime.js";
15
12
  import { normalizeSlackEvent, verifySlackRequest, } from "./normalize.js";
16
13
  import { createSlackWebApiTransport, DEFAULT_ASSISTANT_STATUS, DEFAULT_LOADING_MESSAGES, setSlackAssistantStatus, } from "./transport.js";
17
- import { SLACK_BOT_TOKEN_ENV } from "../binding.js";
14
+ import { SLACK_BOT_TOKEN_ENV } from "../../channels/binding.js";
18
15
  import { getIdentityLinkStore, } from "../../identity/slack/links.js";
19
- import { resolveLoopbackApiUrl } from "../../identity/loopback.js";
20
16
  import { readSlackOidcConfig, slackConnectUrl, } from "../../identity/slack/oauth.js";
21
- import { ACTOR_HEADER, INGRESS_SECRET_ENV, INGRESS_SECRET_HEADER, SOURCE_PROVIDER_HEADER, SOURCE_THREAD_HEADER, TENANT_HEADER, } from "../../runtime/auth.js";
17
+ import { ingressSourceThreadExists, invokeIngressAgent, scheduleIngressWork, } from "../../ingress/index.js";
18
+ export { ingressSourceThreadExists, invokeIngressAgent, stableThreadId, } from "../../ingress/index.js";
22
19
  /** Env vars for Phase 1 single-workspace Slack install. */
23
20
  export const SLACK_SIGNING_SECRET_ENV = "SLACK_SIGNING_SECRET";
24
21
  export const SLACK_API_APP_ID_ENV = "SLACK_API_APP_ID";
@@ -129,20 +126,13 @@ export async function handleSlackEventsRequest(request, channel) {
129
126
  if (duplicate) {
130
127
  return new Response("", { status: 200 });
131
128
  }
132
- const schedule = channel.schedule ??
133
- ((work) => {
134
- // Fire-and-forget after ack; unhandled rejections are logged.
135
- work().catch((error) => {
136
- console.error(`[mda] channel "${channel.name}" delivery ${delivery.deliveryId} failed:`, error);
137
- });
138
- });
139
129
  const botToken = channel.botToken ?? process.env[SLACK_BOT_TOKEN_ENV] ?? "";
140
- const invoke = channel.invokeAgent ?? invokeChannelAgent;
130
+ const invoke = channel.invokeAgent ?? invokeIngressAgent;
141
131
  const linkStore = channel.linkStore ?? getIdentityLinkStore();
142
132
  // When Connect-with-Slack OAuth is configured, unlinked users must connect
143
133
  // before the agent runs. Shared-bot projects without OAuth keep Slack actors.
144
134
  const requireLink = readSlackOidcConfig() !== null;
145
- schedule(async () => {
135
+ scheduleIngressWork(async () => {
146
136
  clearFinalPosted(delivery.deliveryId);
147
137
  delivery.status = "running";
148
138
  delivery.updatedAt = new Date().toISOString();
@@ -160,9 +150,9 @@ export async function handleSlackEventsRequest(request, channel) {
160
150
  delivery.updatedAt = new Date().toISOString();
161
151
  return;
162
152
  }
163
- let actorId = normalized.actorId;
153
+ let userId = normalized.userId;
164
154
  if (requireLink) {
165
- const link = await linkStore.getBySlackActorId(normalized.actorId);
155
+ const link = await linkStore.getBySlackKey(normalized.userId);
166
156
  if (!link) {
167
157
  // Unlinked thread replies are not an intentional engagement — ignore
168
158
  // them instead of posting a connect prompt into unrelated threads.
@@ -185,19 +175,21 @@ export async function handleSlackEventsRequest(request, channel) {
185
175
  delivery.updatedAt = new Date().toISOString();
186
176
  return;
187
177
  }
188
- actorId = link.actorId;
178
+ userId = link.userId;
189
179
  }
190
180
  // Gate thread_reply after ack + identity remap so ownership probes use the
191
181
  // same actor that created the MDA thread (critical for threads: "actor").
192
182
  if (normalized.trigger === "thread_reply") {
193
183
  const existsInput = {
194
184
  sourceThreadKey: normalized.sourceThreadKey,
195
- actorId,
196
- ...(normalized.tenantId ? { tenantId: normalized.tenantId } : {}),
185
+ userId,
186
+ ...(normalized.organizationId
187
+ ? { organizationId: normalized.organizationId }
188
+ : {}),
197
189
  };
198
190
  const exists = channel.sourceThreadExists
199
191
  ? await channel.sourceThreadExists(existsInput)
200
- : await channelSourceThreadExists(existsInput);
192
+ : await ingressSourceThreadExists(existsInput);
201
193
  if (!exists) {
202
194
  delivery.status = "filtered";
203
195
  delivery.filterReason = "thread_not_active";
@@ -213,8 +205,8 @@ export async function handleSlackEventsRequest(request, channel) {
213
205
  threadTs: address.threadId ?? "",
214
206
  }, async () => {
215
207
  const result = await invoke({
216
- actorId,
217
- tenantId: normalized.tenantId,
208
+ userId,
209
+ organizationId: normalized.organizationId,
218
210
  sourceThreadKey: normalized.sourceThreadKey,
219
211
  binding,
220
212
  text,
@@ -266,107 +258,12 @@ export async function handleSlackEventsRequest(request, channel) {
266
258
  }
267
259
  throw error;
268
260
  }
261
+ }, {
262
+ label: `channel "${channel.name}" delivery ${delivery.deliveryId}`,
263
+ schedule: channel.schedule,
269
264
  });
270
265
  return new Response("", { status: 200 });
271
266
  }
272
- /**
273
- * True when an MDA thread already exists for this Slack source-thread key.
274
- * Used to gate `thread_reply` so unrelated channel threads are ignored.
275
- *
276
- * Call with the **resolved** actor (post Connect-with-Slack remap) so
277
- * `threads: "actor"` ownership matches the thread created on the first run.
278
- */
279
- export async function channelSourceThreadExists(input) {
280
- const ingressSecret = process.env[INGRESS_SECRET_ENV];
281
- if (!ingressSecret) {
282
- return false;
283
- }
284
- const client = createChannelLoopbackClient({
285
- actorId: input.actorId,
286
- tenantId: input.tenantId,
287
- sourceThreadKey: input.sourceThreadKey,
288
- ingressSecret,
289
- });
290
- const threadId = stableThreadId(input.sourceThreadKey);
291
- try {
292
- await client.threads.get(threadId);
293
- return true;
294
- }
295
- catch {
296
- return false;
297
- }
298
- }
299
- /**
300
- * Invoke the managed graph over a trusted loopback with channel identity stamped.
301
- */
302
- export async function invokeChannelAgent(input) {
303
- const ingressSecret = process.env[INGRESS_SECRET_ENV];
304
- if (!ingressSecret) {
305
- throw new ChannelError("channel_run_failed", "MDA_INGRESS_SECRET is required for channel agent invocation");
306
- }
307
- const client = createChannelLoopbackClient({
308
- actorId: input.actorId,
309
- tenantId: input.tenantId,
310
- sourceThreadKey: input.sourceThreadKey,
311
- ingressSecret,
312
- sourceProvider: input.sourceProvider ?? "slack",
313
- });
314
- const threadId = stableThreadId(input.sourceThreadKey);
315
- try {
316
- await client.threads.create({
317
- threadId,
318
- metadata: { owner: input.sourceThreadKey },
319
- ifExists: "do_nothing",
320
- });
321
- }
322
- catch {
323
- // Some SDK versions use different ifExists semantics; continue and let run fail loudly.
324
- }
325
- const run = (await client.runs.wait(threadId, input.assistantId, {
326
- input: {
327
- messages: [{ role: "human", content: input.text }],
328
- },
329
- config: {
330
- configurable: {
331
- [CHANNEL_BINDING_KEY]: input.binding,
332
- },
333
- },
334
- }));
335
- return {
336
- replyText: extractAssistantText(run),
337
- runId: run.runId ?? run.run_id,
338
- threadId,
339
- };
340
- }
341
- function createChannelLoopbackClient(input) {
342
- const apiUrl = resolveLoopbackApiUrl();
343
- const apiKey = process.env.LANGSMITH_API_KEY ?? process.env.LANGGRAPH_API_KEY ?? "local";
344
- const headers = {
345
- [INGRESS_SECRET_HEADER]: input.ingressSecret,
346
- [ACTOR_HEADER]: input.actorId,
347
- [SOURCE_PROVIDER_HEADER]: input.sourceProvider ?? "slack",
348
- [SOURCE_THREAD_HEADER]: input.sourceThreadKey,
349
- };
350
- if (input.tenantId) {
351
- headers[TENANT_HEADER] = input.tenantId;
352
- }
353
- return new Client({
354
- apiUrl,
355
- apiKey,
356
- defaultHeaders: headers,
357
- });
358
- }
359
- /** Deterministic LangGraph thread id from the Slack source-thread key. */
360
- export function stableThreadId(sourceThreadKey) {
361
- const hex = createHash("sha256").update(sourceThreadKey).digest("hex");
362
- return [
363
- hex.slice(0, 8),
364
- hex.slice(8, 12),
365
- `5${hex.slice(13, 16)}`,
366
- `a${hex.slice(17, 20)}`,
367
- hex.slice(20, 32),
368
- ].join("-");
369
- }
370
267
  function readInstallationFromEnv(body) {
371
268
  const apiAppId = process.env[SLACK_API_APP_ID_ENV];
372
269
  const teamId = process.env[SLACK_TEAM_ID_ENV];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/connectors/slack/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * `connectors.slack` — Slack Events ingress, messaging, and optional tools.
3
+ *
4
+ * One file under `connectors/` can declare inbound Slack Events (`on`), the
5
+ * named messaging surface used by `runtime.channel` / schedule `deliverTo`,
6
+ * and optionally tool-server Slack tools via `includeTools` / `excludeTools`.
7
+ */
8
+ import type { ChannelManifest } from "../../channels/manifest.js";
9
+ import { type Connector } from "../../runtime/connector.js";
10
+ import { SLACK_SLUG, type ToolServerConnectorConfig } from "../toolserver/index.js";
11
+ export type { ChannelManifest } from "../../channels/manifest.js";
12
+ export { SLACK_SLUG };
13
+ /**
14
+ * Managed Slack triggers.
15
+ * Later phases may enable `slash_command` / `interaction`.
16
+ */
17
+ export type SlackChannelTrigger = "app_mention" | "direct_message" | "thread_reply";
18
+ export type SlackMentionBehavior = "strip" | "preserve";
19
+ export type SlackConversationMapping = "thread" | "conversation" | "message";
20
+ export interface SlackChannelFilters {
21
+ includeConversations?: readonly string[];
22
+ excludeConversations?: readonly string[];
23
+ /** Fully-qualified mapped actor IDs such as `slack:T123:U456`. */
24
+ includeUsers?: readonly string[];
25
+ excludeUsers?: readonly string[];
26
+ /**
27
+ * Slack Connect shared conversations. Phase 1 rejects `true`.
28
+ * @default false
29
+ */
30
+ allowSharedConversations?: boolean;
31
+ }
32
+ export interface SlackConversationPolicy {
33
+ /** @default "thread" */
34
+ appMention?: SlackConversationMapping;
35
+ /** @default "conversation" */
36
+ directMessage?: SlackConversationMapping;
37
+ }
38
+ /**
39
+ * How the Slack app LangSmith creates should present itself in Slack.
40
+ *
41
+ * Optional in full: deploy names the app after the deployment and leaves the
42
+ * rest to Slack's defaults, so a connector only spells this out to brand the bot.
43
+ */
44
+ export interface SlackAppConfig {
45
+ /** Bot display name. @default the deployment's name */
46
+ name?: string;
47
+ description?: string;
48
+ /** Project-relative path to a 512×512 PNG. @default Slack's own placeholder */
49
+ icon?: string;
50
+ /** `#RRGGBB`. */
51
+ backgroundColor?: string;
52
+ }
53
+ export interface SlackConnectorConfig extends ToolServerConnectorConfig {
54
+ /** When set, mounts Events ingress and messaging for this connector. */
55
+ on?: readonly SlackChannelTrigger[];
56
+ /** @default true */
57
+ autoReply?: boolean;
58
+ /** @default "strip" */
59
+ mentionBehavior?: SlackMentionBehavior;
60
+ filters?: SlackChannelFilters;
61
+ conversation?: SlackConversationPolicy;
62
+ app?: SlackAppConfig;
63
+ }
64
+ /** Normalized config with defaults applied. */
65
+ export interface RequiredSlackConnectorConfig extends ToolServerConnectorConfig {
66
+ on?: readonly SlackChannelTrigger[];
67
+ autoReply: boolean;
68
+ mentionBehavior: SlackMentionBehavior;
69
+ filters: {
70
+ includeConversations?: readonly string[];
71
+ excludeConversations?: readonly string[];
72
+ includeUsers?: readonly string[];
73
+ excludeUsers?: readonly string[];
74
+ allowSharedConversations: boolean;
75
+ };
76
+ conversation: {
77
+ appMention: SlackConversationMapping;
78
+ directMessage: SlackConversationMapping;
79
+ };
80
+ app: SlackAppConfig;
81
+ }
82
+ /** Branded Slack connector declaration. */
83
+ export type SlackConnector = Connector & RequiredSlackConnectorConfig & {
84
+ kind: "slack";
85
+ };
86
+ /**
87
+ * Declare a managed Slack connector. Files under `connectors/*.ts` export a
88
+ * named `connector` created with `connectors.slack(...)`.
89
+ *
90
+ * Hooks are attached from the parsed config: `on` enables Events + messaging +
91
+ * requirements; `includeTools` / `excludeTools` enables the tools hook.
92
+ */
93
+ export declare function slackConnector(config?: SlackConnectorConfig): SlackConnector;
94
+ /** Derive Slack OAuth scopes from enabled channel triggers. */
95
+ export declare function requiredSlackScopes(config: Pick<RequiredSlackConnectorConfig, "on">): string[];
96
+ /** Build deploy/runtime requirements for a file-derived connector name. */
97
+ export declare function toSlackRequirements(name: string, definition: RequiredSlackConnectorConfig | SlackConnector): ChannelManifest;
98
+ export { decodeSlackEscaping, normalizeSlackEvent, verifySlackRequest, } from "./normalize.js";
99
+ export type { NormalizeSlackEventInput, NormalizeSlackEventResult, SlackInstallationContext, SlackSignatureHeaders, } from "./normalize.js";
100
+ export { createSlackWebApiTransport, setSlackAssistantStatus, DEFAULT_ASSISTANT_STATUS, DEFAULT_LOADING_MESSAGES, SLACK_API_BASE_ENV, } from "./transport.js";
101
+ export type { SetSlackAssistantStatusOptions, SlackWebApiTransportOptions, } from "./transport.js";
102
+ export { handleSlackEventsRequest, stableThreadId, SLACK_SIGNING_SECRET_ENV, SLACK_API_APP_ID_ENV, SLACK_TEAM_ID_ENV, SLACK_BOT_USER_ID_ENV, } from "./http.js";
103
+ export type { InvokeIngressAgentInput, InvokeIngressAgentResult, SlackChannelHttpConfig, } from "./http.js";
104
+ export { decodeSlackSourceThreadKey, encodeSlackSourceThreadKey, slackGroupingId, } from "./source-thread.js";
105
+ export type { InstallationKind, SlackSourceThreadParts, SourceThreadMode, } from "./source-thread.js";
106
+ export { slackChannelAdapter } from "./adapter-core.js";
107
+ export { slackConfigFromManifest } from "./adapter.js";
108
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ /**
2
+ * `connectors.slack` — Slack Events ingress, messaging, and optional tools.
3
+ *
4
+ * One file under `connectors/` can declare inbound Slack Events (`on`), the
5
+ * named messaging surface used by `runtime.channel` / schedule `deliverTo`,
6
+ * and optionally tool-server Slack tools via `includeTools` / `excludeTools`.
7
+ */
8
+ import { z } from "zod";
9
+ import { handleSlackEventsRequest } from "./http.js";
10
+ import { createSlackWebApiTransport } from "./transport.js";
11
+ import { CONNECTOR_BRAND, } from "../../runtime/connector.js";
12
+ import { SLACK_SLUG, toolServerConnectorSchema, toolServerTools, } from "../toolserver/index.js";
13
+ export { SLACK_SLUG };
14
+ /** Slack IDs and mapped actor IDs, e.g. `C123` or `slack:T123:U456`. */
15
+ const identifiers = z
16
+ .array(z
17
+ .string("must be a list of non-empty strings")
18
+ .refine((entry) => entry.trim().length > 0, "must be a list of non-empty strings"))
19
+ .optional();
20
+ const conversationMapping = z.enum(["thread", "conversation", "message"], {
21
+ error: 'must be "thread", "conversation", or "message"',
22
+ });
23
+ const SLACK_APP_NAME_MAX_LENGTH = 35;
24
+ const SLACK_APP_DESCRIPTION_MAX_LENGTH = 139;
25
+ const slackAppConfig = z
26
+ .object({
27
+ name: z
28
+ .string("must be a string")
29
+ .max(SLACK_APP_NAME_MAX_LENGTH, `must be at most ${SLACK_APP_NAME_MAX_LENGTH} characters`)
30
+ .refine((value) => /^[a-zA-Z0-9_.\- ]+$/.test(value), "may only contain letters, numbers, spaces, underscores, dashes, and periods")
31
+ .refine((value) => value === value.replace(/^[ -]+|[ -]+$/g, ""), "must not start or end with a space or dash")
32
+ .optional(),
33
+ description: z
34
+ .string("must be a string")
35
+ .max(SLACK_APP_DESCRIPTION_MAX_LENGTH, `must be at most ${SLACK_APP_DESCRIPTION_MAX_LENGTH} characters`)
36
+ .optional(),
37
+ icon: z
38
+ .string("must be a path to a 512×512 PNG")
39
+ .refine((value) => value.trim().length > 0, "must be a path to a 512×512 PNG")
40
+ .optional(),
41
+ backgroundColor: z
42
+ .string("must be a #RRGGBB hex color")
43
+ .refine((value) => /^#[0-9a-fA-F]{6}$/.test(value), "must be a #RRGGBB hex color")
44
+ .optional(),
45
+ })
46
+ .prefault({});
47
+ const slackConnectorConfig = toolServerConnectorSchema({
48
+ on: z
49
+ .array(z.enum(["app_mention", "direct_message", "thread_reply"], {
50
+ error: (issue) => `does not support trigger ${JSON.stringify(issue.input)}`,
51
+ }))
52
+ .nonempty('requires a non-empty `on` array of "app_mention", "direct_message", and/or "thread_reply"')
53
+ .transform((triggers) => [...new Set(triggers)])
54
+ .optional(),
55
+ autoReply: z.boolean().default(true),
56
+ mentionBehavior: z
57
+ .enum(["strip", "preserve"], { error: 'must be "strip" or "preserve"' })
58
+ .default("strip"),
59
+ filters: z
60
+ .object({
61
+ includeConversations: identifiers,
62
+ excludeConversations: identifiers,
63
+ includeUsers: identifiers,
64
+ excludeUsers: identifiers,
65
+ allowSharedConversations: z
66
+ .literal(false, { error: "is not supported in Phase 1" })
67
+ .default(false),
68
+ })
69
+ .prefault({}),
70
+ conversation: z
71
+ .object({
72
+ appMention: conversationMapping.default("thread"),
73
+ directMessage: conversationMapping.default("conversation"),
74
+ })
75
+ .prefault({}),
76
+ app: slackAppConfig,
77
+ }).transform((args) => {
78
+ const hasEvents = args.on !== undefined && args.on.length > 0;
79
+ const hasTools = args.includeTools !== undefined || args.excludeTools !== undefined;
80
+ if (!hasEvents && !hasTools) {
81
+ throw new Error("connectors.slack(...) requires `on` (Events ingress) and/or " +
82
+ "`includeTools` / `excludeTools` (tool server tools).");
83
+ }
84
+ return args;
85
+ });
86
+ const slackTools = toolServerTools(SLACK_SLUG, "connectors.slack");
87
+ function hide(target, key, value) {
88
+ Object.defineProperty(target, key, { value, enumerable: false });
89
+ }
90
+ /**
91
+ * Declare a managed Slack connector. Files under `connectors/*.ts` export a
92
+ * named `connector` created with `connectors.slack(...)`.
93
+ *
94
+ * Hooks are attached from the parsed config: `on` enables Events + messaging +
95
+ * requirements; `includeTools` / `excludeTools` enables the tools hook.
96
+ */
97
+ export function slackConnector(config) {
98
+ const validate = slackConnectorConfig["~standard"].validate;
99
+ const result = validate(config);
100
+ if (result instanceof Promise) {
101
+ throw new TypeError("connectors.slack(...) needs a schema that validates synchronously");
102
+ }
103
+ if (result.issues) {
104
+ const message = result.issues
105
+ .map((issue) => {
106
+ const path = (issue.path ?? [])
107
+ .map((segment) => String(typeof segment === "object" && segment && "key" in segment
108
+ ? segment.key
109
+ : segment))
110
+ .join(".");
111
+ return path.length > 0 ? `${path}: ${issue.message}` : issue.message;
112
+ })
113
+ .join("; ");
114
+ throw new Error(`connectors.slack(...) ${message}`);
115
+ }
116
+ const args = result.value;
117
+ const self = { kind: "slack", ...args };
118
+ hide(self, CONNECTOR_BRAND, true);
119
+ const hasEvents = args.on !== undefined && args.on.length > 0;
120
+ const hasTools = args.includeTools !== undefined || args.excludeTools !== undefined;
121
+ if (hasTools) {
122
+ hide(self, "tools", (ctx) => slackTools(ctx, self));
123
+ }
124
+ if (hasEvents) {
125
+ hide(self, "events", (ctx) => handleSlackEventsRequest(ctx.request, {
126
+ name: ctx.name,
127
+ config: {
128
+ on: self.on,
129
+ autoReply: self.autoReply,
130
+ mentionBehavior: self.mentionBehavior,
131
+ filters: self.filters,
132
+ conversation: self.conversation,
133
+ app: self.app,
134
+ },
135
+ rawBody: ctx.rawBody,
136
+ }));
137
+ hide(self, "messaging", (env) => {
138
+ const token = env.SLACK_BOT_TOKEN;
139
+ if (!token)
140
+ return undefined;
141
+ return createSlackWebApiTransport({ botToken: token });
142
+ });
143
+ hide(self, "requirements", (name) => toSlackRequirements(name, self));
144
+ }
145
+ return self;
146
+ }
147
+ /** Derive Slack OAuth scopes from enabled channel triggers. */
148
+ export function requiredSlackScopes(config) {
149
+ const scopes = new Set(["chat:write"]);
150
+ for (const trigger of config.on ?? []) {
151
+ if (trigger === "app_mention") {
152
+ scopes.add("app_mentions:read");
153
+ }
154
+ if (trigger === "direct_message") {
155
+ scopes.add("im:history");
156
+ }
157
+ if (trigger === "thread_reply") {
158
+ scopes.add("channels:history");
159
+ scopes.add("groups:history");
160
+ }
161
+ }
162
+ return [...scopes].sort();
163
+ }
164
+ /** Build deploy/runtime requirements for a file-derived connector name. */
165
+ export function toSlackRequirements(name, definition) {
166
+ const config = definition;
167
+ const scopes = requiredSlackScopes(config);
168
+ const app = config.app ?? {};
169
+ return {
170
+ name,
171
+ provider: "slack",
172
+ autoReply: config.autoReply,
173
+ requiredPermissions: scopes,
174
+ // Nothing to require: deploy provisions the app and writes its secrets.
175
+ requiredEnv: [],
176
+ connection: { kind: "slack_app", app },
177
+ providerConfig: {
178
+ triggers: config.on ?? [],
179
+ mentionBehavior: config.mentionBehavior,
180
+ filters: config.filters,
181
+ conversation: config.conversation,
182
+ },
183
+ };
184
+ }
185
+ export { decodeSlackEscaping, normalizeSlackEvent, verifySlackRequest, } from "./normalize.js";
186
+ export { createSlackWebApiTransport, setSlackAssistantStatus, DEFAULT_ASSISTANT_STATUS, DEFAULT_LOADING_MESSAGES, SLACK_API_BASE_ENV, } from "./transport.js";
187
+ export { handleSlackEventsRequest, stableThreadId, SLACK_SIGNING_SECRET_ENV, SLACK_API_APP_ID_ENV, SLACK_TEAM_ID_ENV, SLACK_BOT_USER_ID_ENV, } from "./http.js";
188
+ export { decodeSlackSourceThreadKey, encodeSlackSourceThreadKey, slackGroupingId, } from "./source-thread.js";
189
+ export { slackChannelAdapter } from "./adapter-core.js";
190
+ export { slackConfigFromManifest } from "./adapter.js";
191
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/slack/index.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@
5
5
  * They do not perform HTTP I/O or durable enqueue.
6
6
  */
7
7
  import { type InstallationKind, type SourceThreadMode } from "./source-thread.js";
8
- import type { ChannelEvent } from "../types.js";
9
- import type { RequiredSlackChannelConfig, SlackChannelTrigger } from "./define.js";
8
+ import type { ChannelEvent } from "../../channels/types.js";
9
+ import type { RequiredSlackConnectorConfig, SlackChannelTrigger } from "./index.js";
10
10
  export interface SlackSignatureHeaders {
11
11
  signature: string;
12
12
  timestamp: string;
@@ -22,7 +22,7 @@ export interface SlackInstallationContext {
22
22
  }
23
23
  export interface NormalizeSlackEventInput {
24
24
  body: unknown;
25
- config: RequiredSlackChannelConfig;
25
+ config: RequiredSlackConnectorConfig;
26
26
  installation: SlackInstallationContext;
27
27
  deliveryId: string;
28
28
  /** When true, treat `message` events as `message.im` (DM surface). */
@@ -38,8 +38,8 @@ export type NormalizeSlackEventResult = {
38
38
  } | {
39
39
  status: "accepted";
40
40
  event: ChannelEvent;
41
- actorId: string;
42
- tenantId?: string;
41
+ userId: string;
42
+ organizationId?: string;
43
43
  sourceThreadKey: string;
44
44
  trigger: SlackChannelTrigger;
45
45
  groupingMode: SourceThreadMode;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/normalize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,4BAA4B,EAC5B,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,4BAA4B,CAAC;IACrC,YAAY,EAAE,wBAAwB,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,YAAY,EAAE,gBAAgB,CAAC;CAChC,CAAC;AAEN;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,OAAO,EAAE,qBAAqB,EAC9B,aAAa,EAAE,MAAM,EACrB,UAAU,GAAE,MAAsC,GACjD,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,yBAAyB,CAkM3B;AAyFD,+DAA+D;AAC/D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxD"}