managed-deepagents 0.5.0-dev.78 → 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
@@ -1,13 +1,11 @@
1
1
  /**
2
2
  * The managed `connectors/` declaration primitive.
3
3
  *
4
- * For the first connector iteration, a connector means exactly one thing: MCP
5
- * servers. A Managed Deep Agent declares the remote MCP servers whose tools it
6
- * wants in `connectors/mcp.ts` by exporting a named `mcp` from
7
- * {@link defineMcpServers}. MDA discovers that declaration, creates the
8
- * `@langchain/mcp-adapters` client, loads the tools, and adds them to the Deep
9
- * Agent at runtime — the author never imports the MCP client or calls
10
- * `getTools()`.
4
+ * A Managed Deep Agent declares the remote MCP servers whose tools it wants in
5
+ * `connectors/mcp.ts` with `connectors.mcp(...)`. MDA discovers that
6
+ * declaration, creates the `@langchain/mcp-adapters` client, loads the tools,
7
+ * and adds them to the Deep Agent at runtime — the author never imports the MCP
8
+ * client or calls `getTools()`.
11
9
  *
12
10
  * Only remote MCP servers over HTTP/SSE are supported. Stdio MCP servers are
13
11
  * intentionally out of scope: they introduce process management, packaging, and
@@ -20,12 +18,9 @@
20
18
  * @example
21
19
  * ```ts
22
20
  * // connectors/mcp.ts
23
- * import { defineMcpServers } from "managed-deepagents";
21
+ * import { connectors } from "managed-deepagents";
24
22
  *
25
- * export const mcp = defineMcpServers({
26
- * useStandardContentBlocks: true,
27
- * prefixToolNameWithServerName: true,
28
- * throwOnLoadError: true,
23
+ * export const connector = connectors.mcp({
29
24
  * mcpServers: {
30
25
  * docs: {
31
26
  * transport: "http",
@@ -35,109 +30,94 @@
35
30
  * });
36
31
  * ```
37
32
  */
38
- import { CONNECTOR_BRAND } from "../../runtime/connector.js";
33
+ import { z } from "zod";
34
+ import { defineExtension } from "../../extension.js";
35
+ /** Stdio servers are out of scope; the message points at the alternatives. */
36
+ const STDIO_REJECTION = "uses a stdio transport, which is not supported. Managed Deep Agents " +
37
+ "support remote MCP servers over HTTP/SSE only; expose the server over HTTP " +
38
+ "or write a normal authored tool instead.";
39
+ /** Raw MCP tool names, before the managed `{server}__` prefix is applied. */
40
+ const toolNames = z
41
+ .array(z
42
+ .string("must be a non-empty tool name")
43
+ .refine((name) => name.trim().length > 0, "must be a non-empty tool name"))
44
+ .check((ctx) => {
45
+ const seen = new Set();
46
+ for (const name of ctx.value) {
47
+ if (seen.has(name)) {
48
+ ctx.issues.push({
49
+ code: "custom",
50
+ input: ctx.value,
51
+ message: `contains duplicate tool name "${name}"`,
52
+ });
53
+ }
54
+ seen.add(name);
55
+ }
56
+ })
57
+ .optional();
58
+ const remoteMcpServer = z
59
+ .looseObject({
60
+ // Present only to reject it: a `command` is how a stdio server is spelled.
61
+ command: z.never({ error: STDIO_REJECTION }).optional(),
62
+ transport: z.enum(["http", "sse"], {
63
+ error: (issue) => issue.input === "stdio"
64
+ ? STDIO_REJECTION
65
+ : 'must declare a remote transport ("http" or "sse")',
66
+ }),
67
+ url: z
68
+ .string("must be a non-empty URL")
69
+ .refine((url) => url.trim().length > 0, "must be a non-empty URL"),
70
+ headers: z.record(z.string(), z.string()).optional(),
71
+ defaultToolTimeout: z.number().optional(),
72
+ includeTools: toolNames,
73
+ excludeTools: toolNames,
74
+ })
75
+ .check((ctx) => {
76
+ const { includeTools, excludeTools } = ctx.value;
77
+ const overlap = (includeTools ?? []).filter((name) => (excludeTools ?? []).includes(name));
78
+ if (overlap.length > 0) {
79
+ ctx.issues.push({
80
+ code: "custom",
81
+ input: ctx.value,
82
+ message: "selects tool(s) in both `includeTools` and `excludeTools`: " +
83
+ `${[...overlap].sort().join(", ")}`,
84
+ });
85
+ }
86
+ });
39
87
  /**
40
- * Declare the MCP servers whose tools should be loaded and added to the managed
41
- * Deep Agent at runtime.
88
+ * The MCP connector's arguments.
42
89
  *
43
- * Validates the config eagerly so misconfiguration surfaces at module load
44
- * (build/dev startup) rather than mid-run: at least one server must be
45
- * declared, and every server must use a remote transport (`"http"` or
46
- * `"sse"`). Stdio servers and invalid tool selectors are rejected with a clear
47
- * error.
90
+ * Shape, types, and tool-name lists are the schema's job; the rules that need
91
+ * more than one field a stdio server, a tool selected and deselected at once
92
+ * are checks with hand-written messages. Server configs stay loose because
93
+ * `@langchain/mcp-adapters` accepts more per-transport options than MDA models.
48
94
  */
49
- export function defineMcpServers(config) {
50
- const provided = config;
51
- const servers = provided.mcpServers;
52
- if (servers === null ||
53
- typeof servers !== "object" ||
54
- Array.isArray(servers)) {
55
- throw new Error("defineMcpServers(...) requires an `mcpServers` object mapping server " +
56
- "names to remote MCP server configs.");
57
- }
58
- const entries = Object.entries(servers);
59
- if (entries.length === 0) {
60
- throw new Error("defineMcpServers(...) requires at least one entry in `mcpServers`.");
61
- }
62
- for (const [name, server] of entries) {
63
- validateRemoteServer(name, server);
64
- }
65
- const definition = { kind: "mcp_servers", ...config };
66
- // Brand it as a connector without exposing the symbol as an enumerable field.
67
- Object.defineProperty(definition, CONNECTOR_BRAND, {
68
- value: true,
69
- enumerable: false,
70
- });
71
- // The tools hook runs at agent-graph construction time (inside the managed
72
- // runtime), so the MCP client loader is imported lazily — authoring-only
73
- // installs never pull in `@langchain/mcp-adapters`.
74
- Object.defineProperty(definition, "tools", {
75
- value: async () => {
76
- const { loadManagedMcpTools } = await import("./load.js");
77
- return loadManagedMcpTools(definition);
78
- },
79
- enumerable: false,
80
- });
81
- return definition;
82
- }
83
- /** Allowed remote transports. Stdio is intentionally unsupported in v0. */
84
- const REMOTE_TRANSPORTS = new Set(["http", "sse"]);
95
+ const mcpServersConfig = z.object({
96
+ mcpServers: z
97
+ .record(z.string(), remoteMcpServer, {
98
+ error: "must be an object mapping server names to remote MCP server configs",
99
+ })
100
+ .refine((servers) => Object.keys(servers).length > 0, "requires at least one entry"),
101
+ prefixToolNameWithServerName: z.boolean().optional(),
102
+ throwOnLoadError: z.boolean().optional(),
103
+ useStandardContentBlocks: z.boolean().optional(),
104
+ onConnectionError: z.literal("throw").optional(),
105
+ });
85
106
  /**
86
- * Validate a single MCP server config, rejecting stdio servers and anything
87
- * that is not a remote HTTP/SSE connection with a `url`.
107
+ * Declare the MCP servers whose tools should be loaded and added to the managed
108
+ * Deep Agent at runtime.
109
+ *
110
+ * The tools hook runs at agent-graph construction time (inside the managed
111
+ * runtime), so the MCP client loader is imported lazily — authoring-only
112
+ * installs never pull in `@langchain/mcp-adapters`.
88
113
  */
89
- function validateRemoteServer(name, server) {
90
- if (server === null || typeof server !== "object") {
91
- throw new Error(`MCP server "${name}" must be a configuration object.`);
92
- }
93
- const config = server;
94
- // A stdio server is identified by transport or by a `command` field. Reject
95
- // it with guidance toward the supported remote transports.
96
- if (config.transport === "stdio" || "command" in config) {
97
- throw new Error(`MCP server "${name}" uses a stdio transport, which is not supported. ` +
98
- "Managed Deep Agents support remote MCP servers over HTTP/SSE only; " +
99
- "expose the server over HTTP or write a normal authored tool instead.");
100
- }
101
- const transport = config.transport;
102
- if (typeof transport !== "string" || !REMOTE_TRANSPORTS.has(transport)) {
103
- throw new Error(`MCP server "${name}" must declare a remote transport ` +
104
- `("http" or "sse"); got ${JSON.stringify(transport)}.`);
105
- }
106
- if (typeof config.url !== "string" || config.url.trim().length === 0) {
107
- throw new Error(`MCP server "${name}" must declare a non-empty \`url\`.`);
108
- }
109
- validateToolSelection(name, config);
110
- }
111
- function validateToolSelection(name, config) {
112
- const includeTools = validateToolNameList(name, "includeTools", config.includeTools);
113
- const excludeTools = validateToolNameList(name, "excludeTools", config.excludeTools);
114
- if (!includeTools || !excludeTools) {
115
- return;
116
- }
117
- const included = new Set(includeTools);
118
- const conflicts = excludeTools.filter((toolName) => included.has(toolName));
119
- if (conflicts.length > 0) {
120
- throw new Error(`MCP server "${name}" selects tool(s) in both \`includeTools\` and ` +
121
- `\`excludeTools\`: ${conflicts.sort().join(", ")}.`);
122
- }
123
- }
124
- function validateToolNameList(serverName, field, value) {
125
- if (value === undefined) {
126
- return undefined;
127
- }
128
- if (!Array.isArray(value)) {
129
- throw new Error(`MCP server "${serverName}" \`${field}\` must be an array of strings.`);
130
- }
131
- const seen = new Set();
132
- for (const [index, item] of value.entries()) {
133
- if (typeof item !== "string" || item.trim().length === 0) {
134
- throw new Error(`MCP server "${serverName}" \`${field}\` entry ${index} must be a non-empty string.`);
135
- }
136
- if (seen.has(item)) {
137
- throw new Error(`MCP server "${serverName}" \`${field}\` contains duplicate tool name "${item}".`);
138
- }
139
- seen.add(item);
140
- }
141
- return value;
142
- }
114
+ export const mcpConnector = defineExtension("connector", {
115
+ kind: "mcp_servers",
116
+ label: "connectors.mcp",
117
+ args: mcpServersConfig,
118
+ async tools(_ctx, self) {
119
+ const { loadManagedMcpTools } = await import("./load.js");
120
+ return loadManagedMcpTools(self);
121
+ },
122
+ });
143
123
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/mcp/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/mcp/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/connectors/mcp/load.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,YAAY,CAAC;AAa/E;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,CAQpB;AAED,yDAAyD;AACzD,wBAAgB,iCAAiC,IAAI,IAAI,CAExD"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/connectors/mcp/load.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,YAAY,CAAC;AAa/E;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,CAQpB;AAED,yDAAyD;AACzD,wBAAgB,iCAAiC,IAAI,IAAI,CAExD"}
@@ -1,4 +1,5 @@
1
1
  import { MultiServerMCPClient } from "@langchain/mcp-adapters";
2
+ import { selectTools } from "../tool-selection.js";
2
3
  /**
3
4
  * MCP tools loaded for this runtime process, cached for its lifetime.
4
5
  *
@@ -67,50 +68,25 @@ async function loadToolsByServer(client, servers, prefixToolNameWithServerName)
67
68
  }
68
69
  return tools;
69
70
  }
71
+ /**
72
+ * Apply a server's selection, matching against raw MCP tool names.
73
+ *
74
+ * The adapter has already applied the `{server}__` prefix by the time tools get
75
+ * here, so the prefix is stripped back off for matching — an author selects the
76
+ * name the server publishes, not the one MDA renamed it to.
77
+ */
70
78
  function filterToolsForServer(serverName, selection, tools, prefixToolNameWithServerName) {
71
- const includeTools = selection.includeTools;
72
- const excludeTools = selection.excludeTools;
73
- if (!includeTools && !excludeTools) {
74
- return tools;
75
- }
76
- const availableNames = new Set(tools
77
- .map((tool) => selectionToolName(serverName, tool, prefixToolNameWithServerName))
78
- .filter((name) => typeof name === "string"));
79
- assertSelectedToolsExist(serverName, availableNames, includeTools, excludeTools);
80
- const included = includeTools ? new Set(includeTools) : undefined;
81
- const excluded = excludeTools ? new Set(excludeTools) : undefined;
82
- return tools.filter((tool) => {
83
- const toolName = selectionToolName(serverName, tool, prefixToolNameWithServerName);
84
- if (typeof toolName !== "string") {
85
- return included === undefined;
79
+ return selectTools(`MCP server "${serverName}"`, selection, tools, (tool) => {
80
+ const name = tool.name;
81
+ if (typeof name !== "string") {
82
+ return undefined;
86
83
  }
87
- return ((included === undefined || included.has(toolName)) &&
88
- !excluded?.has(toolName));
84
+ const prefix = `${serverName}__`;
85
+ return prefixToolNameWithServerName && name.startsWith(prefix)
86
+ ? name.slice(prefix.length)
87
+ : name;
89
88
  });
90
89
  }
91
- function selectionToolName(serverName, tool, prefixToolNameWithServerName) {
92
- const name = tool.name;
93
- if (typeof name !== "string") {
94
- return undefined;
95
- }
96
- const prefix = `${serverName}__`;
97
- return prefixToolNameWithServerName && name.startsWith(prefix)
98
- ? name.slice(prefix.length)
99
- : name;
100
- }
101
- function assertSelectedToolsExist(serverName, availableNames, includeTools, excludeTools) {
102
- const selected = [...(includeTools ?? []), ...(excludeTools ?? [])];
103
- const unknown = selected.filter((toolName) => !availableNames.has(toolName));
104
- if (unknown.length === 0) {
105
- return;
106
- }
107
- const available = [...availableNames].sort().join(", ") || "(none)";
108
- throw new Error(`MCP server "${serverName}" selected unknown tool(s): ${[
109
- ...new Set(unknown),
110
- ]
111
- .sort()
112
- .join(", ")}. Available tools: ${available}.`);
113
- }
114
90
  /**
115
91
  * Reject duplicate tool names among the loaded MCP tools. Only reached when the
116
92
  * author opted out of server-name prefixing.
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/connectors/mcp/load.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/connectors/mcp/load.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Slack adapter object without imports from `define.ts` (avoids load cycles).
3
3
  */
4
- import type { ChannelProviderAdapter } from "../registry-types.js";
4
+ import type { ChannelProviderAdapter } from "../../channels/registry-types.js";
5
5
  export declare const slackChannelAdapter: ChannelProviderAdapter;
6
6
  //# sourceMappingURL=adapter-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-core.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/adapter-core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAI/E,eAAO,MAAM,mBAAmB,EAAE,sBAkBjC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-core.js","sourceRoot":"","sources":["../../../src/connectors/slack/adapter-core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,QAAQ,EAAE,OAAO;IAEjB,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG;QACpC,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,wBAAwB,CAAC,OAAO,EAAE;YACvC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM;YACN,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAG;QACjB,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO,0BAA0B,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;CACF,CAAC"}
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * Slack channel provider adapter — registry entry for Events + transport.
3
3
  */
4
- import type { ChannelManifest } from "../manifest.js";
5
- import type { RequiredSlackChannelConfig } from "./define.js";
6
- export { SLACK_CHANNEL_REQUIRED_ENV } from "./define.js";
4
+ import type { ChannelManifest } from "../../channels/manifest.js";
5
+ import type { RequiredSlackConnectorConfig } from "./index.js";
7
6
  export { slackChannelAdapter } from "./adapter-core.js";
8
7
  /** Rebuild Slack runtime config from a compiled envelope manifest. */
9
- export declare function slackConfigFromManifest(manifest: ChannelManifest): RequiredSlackChannelConfig;
8
+ export declare function slackConfigFromManifest(manifest: ChannelManifest): RequiredSlackConnectorConfig;
10
9
  //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EACV,4BAA4B,EAI7B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,sEAAsE;AACtE,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,eAAe,GACxB,4BAA4B,CAkB9B"}
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * Slack channel provider adapter — registry entry for Events + transport.
3
3
  */
4
- export { SLACK_CHANNEL_REQUIRED_ENV } from "./define.js";
5
4
  export { slackChannelAdapter } from "./adapter-core.js";
6
5
  /** Rebuild Slack runtime config from a compiled envelope manifest. */
7
6
  export function slackConfigFromManifest(manifest) {
@@ -17,6 +16,7 @@ export function slackConfigFromManifest(manifest) {
17
16
  appMention: "thread",
18
17
  directMessage: "conversation",
19
18
  },
19
+ app: manifest.connection?.app ?? {},
20
20
  };
21
21
  }
22
22
  //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/connectors/slack/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,sEAAsE;AACtE,MAAM,UAAU,uBAAuB,CACrC,QAAyB;IAEzB,MAAM,GAAG,GAAG,QAAQ,CAAC,cAA4B,CAAC;IAClD,OAAO;QACL,EAAE,EAAG,GAAG,CAAC,QAA2C,IAAI,EAAE;QAC1D,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,eAAe,EAAG,GAAG,CAAC,eAAwC,IAAI,OAAO;QACzE,OAAO,EAAG,GAAG,CAAC,OAAmD,IAAI;YACnE,wBAAwB,EAAE,KAAK;SAChC;QACD,YAAY,EAAG,GAAG,CAAC,YAGjB,IAAI;YACJ,UAAU,EAAE,QAAQ;YACpB,aAAa,EAAE,cAAc;SAC9B;QACD,GAAG,EAAE,QAAQ,CAAC,UAAU,EAAE,GAAG,IAAI,EAAE;KACpC,CAAC;AACJ,CAAC"}
@@ -5,31 +5,26 @@
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 { InMemoryChannelStore } from "../store.js";
9
- import { type ChannelBinding } from "../binding.js";
10
- import type { RequiredSlackChannelConfig } from "./define.js";
8
+ import { InMemoryChannelStore } from "../../channels/store.js";
9
+ import type { RequiredSlackConnectorConfig } from "./index.js";
11
10
  import { type SlackInstallationContext } from "./normalize.js";
12
11
  import { type IdentityLinkStore } from "../../identity/slack/links.js";
12
+ import { invokeIngressAgent, type SourceThreadExistsInput } from "../../ingress/index.js";
13
+ export { ingressSourceThreadExists, invokeIngressAgent, stableThreadId, type InvokeIngressAgentInput, type InvokeIngressAgentResult, type SourceThreadExistsInput, } from "../../ingress/index.js";
13
14
  /** Env vars for Phase 1 single-workspace Slack install. */
14
15
  export declare const SLACK_SIGNING_SECRET_ENV = "SLACK_SIGNING_SECRET";
15
16
  export declare const SLACK_API_APP_ID_ENV = "SLACK_API_APP_ID";
16
17
  export declare const SLACK_TEAM_ID_ENV = "SLACK_TEAM_ID";
17
18
  export declare const SLACK_BOT_USER_ID_ENV = "SLACK_BOT_USER_ID";
18
- /** Inputs for the `thread_reply` involvement probe (after identity remap). */
19
- export interface SourceThreadExistsInput {
20
- sourceThreadKey: string;
21
- actorId: string;
22
- tenantId?: string;
23
- }
24
19
  export interface SlackChannelHttpConfig {
25
20
  name: string;
26
- config: RequiredSlackChannelConfig;
21
+ config: RequiredSlackConnectorConfig;
27
22
  /** Override store (tests). */
28
23
  store?: InMemoryChannelStore;
29
24
  /** Override background scheduling (tests can run inline). */
30
25
  schedule?: (work: () => Promise<void>) => void;
31
26
  /** Override agent invoke (tests). */
32
- invokeAgent?: typeof invokeChannelAgent;
27
+ invokeAgent?: typeof invokeIngressAgent;
33
28
  /** Override installation/env resolution (tests). */
34
29
  installation?: SlackInstallationContext;
35
30
  signingSecret?: string;
@@ -56,35 +51,6 @@ export interface SlackChannelHttpConfig {
56
51
  * Always verifies the signature against the raw body before parsing JSON.
57
52
  */
58
53
  export declare function handleSlackEventsRequest(request: Request, channel: SlackChannelHttpConfig): Promise<Response>;
59
- export interface InvokeChannelAgentInput {
60
- actorId: string;
61
- tenantId?: string;
62
- sourceThreadKey: string;
63
- binding: ChannelBinding;
64
- text: string;
65
- assistantId: string;
66
- /** Trusted source provider stamped on loopback invoke. @default "slack" */
67
- sourceProvider?: ChannelBinding["provider"];
68
- }
69
- export interface InvokeChannelAgentResult {
70
- replyText: string;
71
- runId?: string;
72
- threadId: string;
73
- }
74
- /**
75
- * True when an MDA thread already exists for this Slack source-thread key.
76
- * Used to gate `thread_reply` so unrelated channel threads are ignored.
77
- *
78
- * Call with the **resolved** actor (post Connect-with-Slack remap) so
79
- * `threads: "actor"` ownership matches the thread created on the first run.
80
- */
81
- export declare function channelSourceThreadExists(input: SourceThreadExistsInput): Promise<boolean>;
82
- /**
83
- * Invoke the managed graph over a trusted loopback with channel identity stamped.
84
- */
85
- export declare function invokeChannelAgent(input: InvokeChannelAgentInput): Promise<InvokeChannelAgentResult>;
86
- /** Deterministic LangGraph thread id from the Slack source-thread key. */
87
- export declare function stableThreadId(sourceThreadKey: string): string;
88
54
  /**
89
55
  * Build a short user-facing Slack failure message.
90
56
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAQ/D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAKvC,OAAO,EAEL,kBAAkB,EAElB,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,2DAA2D;AAC3D,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAiBzD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,4BAA4B,CAAC;IACrC,8BAA8B;IAC9B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC/C,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACxC,oDAAoD;IACpD,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAuQnB;AA8ID;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK9D"}