managed-deepagents 0.5.3-dev.111 → 0.5.3-dev.112

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 (240) hide show
  1. package/README.md +1 -12
  2. package/dist/channels/slack/http.d.ts.map +1 -1
  3. package/dist/channels/slack/http.js +3 -48
  4. package/dist/channels/slack/http.js.map +1 -1
  5. package/dist/channels/slack/index.d.ts +2 -3
  6. package/dist/channels/slack/index.d.ts.map +1 -1
  7. package/dist/channels/slack/index.js +2 -3
  8. package/dist/channels/slack/index.js.map +1 -1
  9. package/dist/connectors/mcp/index.d.ts.map +1 -1
  10. package/dist/connectors/mcp/index.js +5 -1
  11. package/dist/connectors/mcp/index.js.map +1 -1
  12. package/dist/connectors/mcp/load.js +3 -0
  13. package/dist/connectors/mcp/load.js.map +1 -1
  14. package/dist/connectors/tool-selection.d.ts +13 -18
  15. package/dist/connectors/tool-selection.d.ts.map +1 -1
  16. package/dist/connectors/tool-selection.js +10 -13
  17. package/dist/connectors/tool-selection.js.map +1 -1
  18. package/dist/extension.d.ts +5 -5
  19. package/dist/extension.js +5 -5
  20. package/dist/identity/credential-resolvers.d.ts +1 -13
  21. package/dist/identity/credential-resolvers.d.ts.map +1 -1
  22. package/dist/identity/credential-resolvers.js +1 -32
  23. package/dist/identity/credential-resolvers.js.map +1 -1
  24. package/dist/identity/github/credentials-store.d.ts +3 -3
  25. package/dist/identity/github/credentials-store.js +4 -4
  26. package/dist/identity/github/credentials-store.js.map +1 -1
  27. package/dist/identity/github/credentials.d.ts +7 -9
  28. package/dist/identity/github/credentials.d.ts.map +1 -1
  29. package/dist/identity/github/credentials.js +4 -22
  30. package/dist/identity/github/credentials.js.map +1 -1
  31. package/dist/identity/github/index.d.ts +1 -3
  32. package/dist/identity/github/index.d.ts.map +1 -1
  33. package/dist/identity/github/index.js +1 -2
  34. package/dist/identity/github/index.js.map +1 -1
  35. package/dist/identity/index.d.ts +1 -8
  36. package/dist/identity/index.d.ts.map +1 -1
  37. package/dist/identity/index.js +0 -11
  38. package/dist/identity/index.js.map +1 -1
  39. package/dist/identity/options.d.ts +3 -3
  40. package/dist/identity/options.js +3 -9
  41. package/dist/identity/options.js.map +1 -1
  42. package/dist/identity/slack/links.d.ts +1 -2
  43. package/dist/identity/slack/links.d.ts.map +1 -1
  44. package/dist/identity/slack/links.js +1 -2
  45. package/dist/identity/slack/links.js.map +1 -1
  46. package/dist/identity/types.d.ts +8 -29
  47. package/dist/identity/types.d.ts.map +1 -1
  48. package/dist/index.d.ts +1 -4
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/namespaces.d.ts +5 -177
  52. package/dist/namespaces.d.ts.map +1 -1
  53. package/dist/namespaces.js +1 -57
  54. package/dist/namespaces.js.map +1 -1
  55. package/dist/runtime/auth.d.ts +1 -1
  56. package/dist/runtime/auth.js +1 -1
  57. package/dist/runtime/cors.d.ts +1 -0
  58. package/dist/runtime/cors.d.ts.map +1 -1
  59. package/dist/runtime/cors.js +1 -1
  60. package/dist/runtime/cors.js.map +1 -1
  61. package/dist/runtime/credentials.d.ts +1 -1
  62. package/dist/runtime/credentials.js +1 -1
  63. package/dist/runtime/identity-http.d.ts.map +1 -1
  64. package/dist/runtime/identity-http.js +0 -69
  65. package/dist/runtime/identity-http.js.map +1 -1
  66. package/dist/runtime/index.d.ts +0 -8
  67. package/dist/runtime/index.d.ts.map +1 -1
  68. package/dist/runtime/index.js +0 -35
  69. package/dist/runtime/index.js.map +1 -1
  70. package/package.json +12 -14
  71. package/dist/connectors/marketplace/catalog.d.ts +0 -96
  72. package/dist/connectors/marketplace/catalog.d.ts.map +0 -1
  73. package/dist/connectors/marketplace/catalog.js +0 -213
  74. package/dist/connectors/marketplace/catalog.js.map +0 -1
  75. package/dist/connectors/marketplace/fleet-mcp.d.ts +0 -62
  76. package/dist/connectors/marketplace/fleet-mcp.d.ts.map +0 -1
  77. package/dist/connectors/marketplace/fleet-mcp.js +0 -215
  78. package/dist/connectors/marketplace/fleet-mcp.js.map +0 -1
  79. package/dist/connectors/marketplace/index.d.ts +0 -31
  80. package/dist/connectors/marketplace/index.d.ts.map +0 -1
  81. package/dist/connectors/marketplace/index.js +0 -39
  82. package/dist/connectors/marketplace/index.js.map +0 -1
  83. package/dist/connectors/marketplace/load.d.ts +0 -14
  84. package/dist/connectors/marketplace/load.d.ts.map +0 -1
  85. package/dist/connectors/marketplace/load.js +0 -206
  86. package/dist/connectors/marketplace/load.js.map +0 -1
  87. package/dist/connectors/slack/index.d.ts +0 -24
  88. package/dist/connectors/slack/index.d.ts.map +0 -1
  89. package/dist/connectors/slack/index.js +0 -64
  90. package/dist/connectors/slack/index.js.map +0 -1
  91. package/dist/connectors/toolserver/catalog.d.ts +0 -326
  92. package/dist/connectors/toolserver/catalog.d.ts.map +0 -1
  93. package/dist/connectors/toolserver/catalog.js +0 -415
  94. package/dist/connectors/toolserver/catalog.js.map +0 -1
  95. package/dist/connectors/toolserver/connectors.d.ts +0 -698
  96. package/dist/connectors/toolserver/connectors.d.ts.map +0 -1
  97. package/dist/connectors/toolserver/connectors.js +0 -13
  98. package/dist/connectors/toolserver/connectors.js.map +0 -1
  99. package/dist/connectors/toolserver/index.d.ts +0 -142
  100. package/dist/connectors/toolserver/index.d.ts.map +0 -1
  101. package/dist/connectors/toolserver/index.js +0 -105
  102. package/dist/connectors/toolserver/index.js.map +0 -1
  103. package/dist/connectors/toolserver/integrations.d.ts +0 -103
  104. package/dist/connectors/toolserver/integrations.d.ts.map +0 -1
  105. package/dist/connectors/toolserver/integrations.js +0 -288
  106. package/dist/connectors/toolserver/integrations.js.map +0 -1
  107. package/dist/connectors/toolserver/load.d.ts +0 -55
  108. package/dist/connectors/toolserver/load.d.ts.map +0 -1
  109. package/dist/connectors/toolserver/load.js +0 -289
  110. package/dist/connectors/toolserver/load.js.map +0 -1
  111. package/dist/identity/actor-subject.d.ts +0 -60
  112. package/dist/identity/actor-subject.d.ts.map +0 -1
  113. package/dist/identity/actor-subject.js +0 -107
  114. package/dist/identity/actor-subject.js.map +0 -1
  115. package/dist/identity/byo-oauth.d.ts +0 -105
  116. package/dist/identity/byo-oauth.d.ts.map +0 -1
  117. package/dist/identity/byo-oauth.js +0 -190
  118. package/dist/identity/byo-oauth.js.map +0 -1
  119. package/dist/identity/connect-inference.d.ts +0 -37
  120. package/dist/identity/connect-inference.d.ts.map +0 -1
  121. package/dist/identity/connect-inference.js +0 -53
  122. package/dist/identity/connect-inference.js.map +0 -1
  123. package/dist/identity/connect-paths.d.ts +0 -8
  124. package/dist/identity/connect-paths.d.ts.map +0 -1
  125. package/dist/identity/connect-paths.js +0 -11
  126. package/dist/identity/connect-paths.js.map +0 -1
  127. package/dist/identity/connect-provider-types.d.ts +0 -97
  128. package/dist/identity/connect-provider-types.d.ts.map +0 -1
  129. package/dist/identity/connect-provider-types.js +0 -10
  130. package/dist/identity/connect-provider-types.js.map +0 -1
  131. package/dist/identity/connect-provider.d.ts +0 -35
  132. package/dist/identity/connect-provider.d.ts.map +0 -1
  133. package/dist/identity/connect-provider.js +0 -148
  134. package/dist/identity/connect-provider.js.map +0 -1
  135. package/dist/identity/define-fleet-connect.d.ts +0 -53
  136. package/dist/identity/define-fleet-connect.d.ts.map +0 -1
  137. package/dist/identity/define-fleet-connect.js +0 -76
  138. package/dist/identity/define-fleet-connect.js.map +0 -1
  139. package/dist/identity/fleet-connect-hint.d.ts +0 -41
  140. package/dist/identity/fleet-connect-hint.d.ts.map +0 -1
  141. package/dist/identity/fleet-connect-hint.js +0 -190
  142. package/dist/identity/fleet-connect-hint.js.map +0 -1
  143. package/dist/identity/fleet-connect.d.ts +0 -93
  144. package/dist/identity/fleet-connect.d.ts.map +0 -1
  145. package/dist/identity/fleet-connect.js +0 -256
  146. package/dist/identity/fleet-connect.js.map +0 -1
  147. package/dist/identity/fleet-integration-connect.d.ts +0 -32
  148. package/dist/identity/fleet-integration-connect.d.ts.map +0 -1
  149. package/dist/identity/fleet-integration-connect.js +0 -35
  150. package/dist/identity/fleet-integration-connect.js.map +0 -1
  151. package/dist/identity/fleet.d.ts +0 -56
  152. package/dist/identity/fleet.d.ts.map +0 -1
  153. package/dist/identity/fleet.js +0 -131
  154. package/dist/identity/fleet.js.map +0 -1
  155. package/dist/identity/github/connect-http.d.ts +0 -37
  156. package/dist/identity/github/connect-http.d.ts.map +0 -1
  157. package/dist/identity/github/connect-http.js +0 -128
  158. package/dist/identity/github/connect-http.js.map +0 -1
  159. package/dist/identity/github/oauth.d.ts +0 -47
  160. package/dist/identity/github/oauth.d.ts.map +0 -1
  161. package/dist/identity/github/oauth.js +0 -124
  162. package/dist/identity/github/oauth.js.map +0 -1
  163. package/dist/identity/google/connect-http.d.ts +0 -37
  164. package/dist/identity/google/connect-http.d.ts.map +0 -1
  165. package/dist/identity/google/connect-http.js +0 -42
  166. package/dist/identity/google/connect-http.js.map +0 -1
  167. package/dist/identity/google/index.d.ts +0 -7
  168. package/dist/identity/google/index.d.ts.map +0 -1
  169. package/dist/identity/google/index.js +0 -6
  170. package/dist/identity/google/index.js.map +0 -1
  171. package/dist/identity/google/oauth.d.ts +0 -22
  172. package/dist/identity/google/oauth.d.ts.map +0 -1
  173. package/dist/identity/google/oauth.js +0 -48
  174. package/dist/identity/google/oauth.js.map +0 -1
  175. package/dist/identity/linkedin/connect-http.d.ts +0 -37
  176. package/dist/identity/linkedin/connect-http.d.ts.map +0 -1
  177. package/dist/identity/linkedin/connect-http.js +0 -41
  178. package/dist/identity/linkedin/connect-http.js.map +0 -1
  179. package/dist/identity/linkedin/index.d.ts +0 -7
  180. package/dist/identity/linkedin/index.d.ts.map +0 -1
  181. package/dist/identity/linkedin/index.js +0 -6
  182. package/dist/identity/linkedin/index.js.map +0 -1
  183. package/dist/identity/linkedin/oauth.d.ts +0 -22
  184. package/dist/identity/linkedin/oauth.d.ts.map +0 -1
  185. package/dist/identity/linkedin/oauth.js +0 -47
  186. package/dist/identity/linkedin/oauth.js.map +0 -1
  187. package/dist/identity/marketplace/connect-hint.d.ts +0 -31
  188. package/dist/identity/marketplace/connect-hint.d.ts.map +0 -1
  189. package/dist/identity/marketplace/connect-hint.js +0 -59
  190. package/dist/identity/marketplace/connect-hint.js.map +0 -1
  191. package/dist/identity/marketplace/connect.d.ts +0 -51
  192. package/dist/identity/marketplace/connect.d.ts.map +0 -1
  193. package/dist/identity/marketplace/connect.js +0 -88
  194. package/dist/identity/marketplace/connect.js.map +0 -1
  195. package/dist/identity/marketplace/index.d.ts +0 -9
  196. package/dist/identity/marketplace/index.d.ts.map +0 -1
  197. package/dist/identity/marketplace/index.js +0 -9
  198. package/dist/identity/marketplace/index.js.map +0 -1
  199. package/dist/identity/microsoft/connect-http.d.ts +0 -38
  200. package/dist/identity/microsoft/connect-http.d.ts.map +0 -1
  201. package/dist/identity/microsoft/connect-http.js +0 -42
  202. package/dist/identity/microsoft/connect-http.js.map +0 -1
  203. package/dist/identity/microsoft/index.d.ts +0 -7
  204. package/dist/identity/microsoft/index.d.ts.map +0 -1
  205. package/dist/identity/microsoft/index.js +0 -6
  206. package/dist/identity/microsoft/index.js.map +0 -1
  207. package/dist/identity/microsoft/oauth.d.ts +0 -24
  208. package/dist/identity/microsoft/oauth.d.ts.map +0 -1
  209. package/dist/identity/microsoft/oauth.js +0 -65
  210. package/dist/identity/microsoft/oauth.js.map +0 -1
  211. package/dist/identity/oauth-env.d.ts +0 -43
  212. package/dist/identity/oauth-env.d.ts.map +0 -1
  213. package/dist/identity/oauth-env.js +0 -66
  214. package/dist/identity/oauth-env.js.map +0 -1
  215. package/dist/identity/oauth-tickets.d.ts +0 -37
  216. package/dist/identity/oauth-tickets.d.ts.map +0 -1
  217. package/dist/identity/oauth-tickets.js +0 -114
  218. package/dist/identity/oauth-tickets.js.map +0 -1
  219. package/dist/identity/slack/connect-http.d.ts +0 -35
  220. package/dist/identity/slack/connect-http.d.ts.map +0 -1
  221. package/dist/identity/slack/connect-http.js +0 -115
  222. package/dist/identity/slack/connect-http.js.map +0 -1
  223. package/dist/identity/slack/index.d.ts +0 -8
  224. package/dist/identity/slack/index.d.ts.map +0 -1
  225. package/dist/identity/slack/index.js +0 -7
  226. package/dist/identity/slack/index.js.map +0 -1
  227. package/dist/identity/slack/oauth.d.ts +0 -28
  228. package/dist/identity/slack/oauth.d.ts.map +0 -1
  229. package/dist/identity/slack/oauth.js +0 -87
  230. package/dist/identity/slack/oauth.js.map +0 -1
  231. package/dist/identity/x/connect-http.d.ts +0 -38
  232. package/dist/identity/x/connect-http.d.ts.map +0 -1
  233. package/dist/identity/x/connect-http.js +0 -41
  234. package/dist/identity/x/connect-http.js.map +0 -1
  235. package/dist/identity/x/index.d.ts +0 -6
  236. package/dist/identity/x/index.d.ts.map +0 -1
  237. package/dist/identity/x/index.js +0 -5
  238. package/dist/identity/x/index.js.map +0 -1
  239. package/types/index.d.ts +0 -6
  240. package/types/markdown-md.d.ts +0 -14
@@ -1,215 +0,0 @@
1
- /**
2
- * Fleet MCP server discovery for marketplace bridges.
3
- *
4
- * MDA resolves the workspace `mcp_servers` row by canonical URL so Connect and
5
- * the proxy loader can use the stable `oauth_provider_id` without hardcoding
6
- * `notion-mcp-<hash>` in agent source.
7
- */
8
- import { resolveFleetApiUrl, resolveFleetHeaders, } from "../../identity/fleet.js";
9
- import { fetchWithTimeout, PROVIDER_HTTP_TIMEOUT_MS, } from "../../runtime/http.js";
10
- import { MARKETPLACE_MCP_INTEGRATIONS } from "./catalog.js";
11
- /**
12
- * Build a smith-backend public URL under `/api/v1/{path}`.
13
- *
14
- * Marketplace list/invoke live on the Python MCP proxy (`/api/v1/mcp/tools`,
15
- * `/api/v1/mcp/proxy`), not on smith-go's `/v1/mcp/*` (those 404). Self-hosted
16
- * often sets `LANGSMITH_ENDPOINT` to a base that already ends in `/api` — same
17
- * convention as toolserver — so we only insert `/api` when it is missing.
18
- */
19
- export function resolveSmithBackendV1Url(base, path) {
20
- const origin = new URL(withScheme(base));
21
- let prefix = stripTrailingSlashes(origin.pathname);
22
- if (!prefix.endsWith("/api")) {
23
- prefix = `${prefix}/api`;
24
- }
25
- const normalized = stripLeadingSlashes(path);
26
- return new URL(`${prefix}/v1/${normalized}`, origin).toString();
27
- }
28
- function withScheme(base) {
29
- return /^[a-z][a-z0-9+.-]*:\/\//i.test(base) ? base : `https://${base}`;
30
- }
31
- /** Trim trailing `/` without regex (avoids CodeQL poly-ReDoS alerts). */
32
- function stripTrailingSlashes(value) {
33
- let end = value.length;
34
- while (end > 0 && value.charCodeAt(end - 1) === 47 /* / */) {
35
- end -= 1;
36
- }
37
- return end === value.length ? value : value.slice(0, end);
38
- }
39
- function stripLeadingSlashes(value) {
40
- let start = 0;
41
- while (start < value.length && value.charCodeAt(start) === 47 /* / */) {
42
- start += 1;
43
- }
44
- return start === 0 ? value : value.slice(start);
45
- }
46
- /** Normalize MCP URLs the way Fleet list filtering does (lowercase, trim slash). */
47
- export function normalizeMcpUrl(url) {
48
- const trimmed = stripTrailingSlashes(url.trim());
49
- try {
50
- const parsed = new URL(trimmed);
51
- parsed.hash = "";
52
- parsed.search = "";
53
- return stripTrailingSlashes(parsed.toString()).toLowerCase();
54
- }
55
- catch {
56
- return trimmed.toLowerCase();
57
- }
58
- }
59
- /**
60
- * Find the workspace MCP server for `mcpUrl`.
61
- *
62
- * Prefers Fleet's `?url=` filter; falls back to a full list scan when the
63
- * filter is unavailable or returns nothing.
64
- */
65
- export async function resolveMarketplaceMcpServer(options) {
66
- const env = process.env;
67
- const base = options.apiUrl ?? resolveFleetApiUrl(env);
68
- const headers = options.apiKey
69
- ? {
70
- "x-api-key": options.apiKey,
71
- "Content-Type": "application/json",
72
- ...(options.workspaceId ? { "x-tenant-id": options.workspaceId } : {}),
73
- }
74
- : resolveFleetHeaders("fleet mcp-servers", env);
75
- const target = normalizeMcpUrl(options.mcpUrl);
76
- const filteredUrl = `${base}/v1/fleet/mcp-servers?url=${encodeURIComponent(options.mcpUrl)}`;
77
- const filtered = await listMcpServers(filteredUrl, headers, options.fetchImpl);
78
- const fromFilter = filtered.find((server) => normalizeMcpUrl(server.url) === target);
79
- if (fromFilter) {
80
- return assertOAuthProvider(fromFilter, options.mcpUrl);
81
- }
82
- const all = await listMcpServers(`${base}/v1/fleet/mcp-servers`, headers, options.fetchImpl);
83
- const match = all.find((server) => normalizeMcpUrl(server.url) === target);
84
- if (!match) {
85
- throw new Error(missingMarketplaceServerMessage(options.mcpUrl));
86
- }
87
- return assertOAuthProvider(match, options.mcpUrl);
88
- }
89
- /** @internal Exported for unit tests. */
90
- export function missingMarketplaceServerMessage(mcpUrl) {
91
- const displayName = MARKETPLACE_MCP_INTEGRATIONS.find((entry) => normalizeMcpUrl(entry.mcpUrl) === normalizeMcpUrl(mcpUrl))?.displayName ?? "this integration";
92
- return (`No LangSmith MCP server found for ${mcpUrl}. ` +
93
- `Connect ${displayName} under LangSmith Integrations first.`);
94
- }
95
- /**
96
- * Parse a smith-backend `POST /v1/mcp/proxy` response body into tool content.
97
- *
98
- * Upstream MCP servers may answer with either `application/json` or
99
- * Streamable HTTP SSE (`text/event-stream` with `data:` JSON-RPC lines). The
100
- * proxy forwards the vendor body as-is, so callers must accept both.
101
- */
102
- export function parseMcpProxyResponseBody(text) {
103
- const messages = extractMcpJsonRpcMessages(text);
104
- if (messages.length === 0) {
105
- return text;
106
- }
107
- const response = messages.find((message) => !!message &&
108
- typeof message === "object" &&
109
- ("result" in message || "error" in message)) ?? messages[messages.length - 1];
110
- if (!response || typeof response !== "object") {
111
- return response;
112
- }
113
- const json = response;
114
- if (json.error?.message) {
115
- throw new Error(json.error.message);
116
- }
117
- if (json.result &&
118
- typeof json.result === "object" &&
119
- json.result !== null &&
120
- "content" in json.result &&
121
- json.result.content !== undefined) {
122
- return json.result.content;
123
- }
124
- if (json.content !== undefined) {
125
- return json.content;
126
- }
127
- if (json.result !== undefined) {
128
- return json.result;
129
- }
130
- return json;
131
- }
132
- /** JSON-RPC objects from a direct JSON body or SSE `data:` lines. */
133
- export function extractMcpJsonRpcMessages(text) {
134
- const trimmed = text.trim();
135
- if (!trimmed) {
136
- return [];
137
- }
138
- if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
139
- try {
140
- return [JSON.parse(trimmed)];
141
- }
142
- catch {
143
- // Fall through — some proxies prefix SSE with noise.
144
- }
145
- }
146
- const out = [];
147
- for (const line of text.split(/\r?\n/)) {
148
- if (!line.startsWith("data:")) {
149
- continue;
150
- }
151
- const data = line.slice("data:".length).trim();
152
- if (!data || data === "[DONE]") {
153
- continue;
154
- }
155
- try {
156
- out.push(JSON.parse(data));
157
- }
158
- catch {
159
- // Skip non-JSON data lines.
160
- }
161
- }
162
- return out;
163
- }
164
- /**
165
- * Parse `GET /v1/fleet/mcp-servers` payloads.
166
- *
167
- * - Bare array: the live Fleet contract (`render.JSON` of `[]McpServer`).
168
- * - `{ items }`: Fleet's usual list envelope (e.g. agents / connections). Not
169
- * used by mcp-servers today; accepted so a future envelope switch does not
170
- * break discovery.
171
- * - `{ data }`: host-upstream list shape mirrored elsewhere in Fleet clients.
172
- * Same defensive fallback; prefer `items` when both are present.
173
- */
174
- export function parseMcpServerList(payload) {
175
- if (Array.isArray(payload)) {
176
- return payload.filter(isMcpServerRecord);
177
- }
178
- if (payload && typeof payload === "object") {
179
- const record = payload;
180
- const nested = record.items ?? record.data;
181
- if (Array.isArray(nested)) {
182
- return nested.filter(isMcpServerRecord);
183
- }
184
- }
185
- return [];
186
- }
187
- function isMcpServerRecord(value) {
188
- return (!!value &&
189
- typeof value === "object" &&
190
- typeof value.url === "string");
191
- }
192
- async function listMcpServers(url, headers, fetchImpl) {
193
- const response = await fetchWithTimeout(url, { method: "GET", headers }, PROVIDER_HTTP_TIMEOUT_MS, fetchImpl ?? fetch);
194
- if (!response.ok) {
195
- const text = await response.text().catch(() => "");
196
- throw new Error(`Fleet list mcp-servers failed (${response.status}): ${text || response.statusText}`);
197
- }
198
- return parseMcpServerList(await response.json());
199
- }
200
- function assertOAuthProvider(server, mcpUrl) {
201
- const providerId = server.oauth_provider_id?.trim();
202
- if (!providerId) {
203
- throw new Error(`LangSmith MCP server for ${mcpUrl} has no oauth_provider_id. ` +
204
- "Re-add the integration from the Fleet marketplace using the one-click " +
205
- "OAuth path (legacy_shared_provider / pinned provider). Per-user " +
206
- "dynamic client mode is not supported for MDA Connect v1.");
207
- }
208
- if (server.oauth_mode === "per_user_dynamic_client") {
209
- throw new Error(`LangSmith MCP server for ${mcpUrl} uses per_user_dynamic_client. ` +
210
- "MDA marketplace Connect requires a stable workspace oauth_provider_id " +
211
- "(marketplace one-click / legacy_shared_provider).");
212
- }
213
- return { ...server, oauth_provider_id: providerId };
214
- }
215
- //# sourceMappingURL=fleet-mcp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fleet-mcp.js","sourceRoot":"","sources":["../../../src/connectors/marketplace/fleet-mcp.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Marketplace MCP connectors — third-party MCP servers managed in LangSmith.
3
- *
4
- * Unlike {@link ../toolserver}, tools run on the vendor's MCP endpoint and are
5
- * invoked through `POST /v1/mcp/proxy` with a vault subject. Factories are
6
- * derived from {@link MARKETPLACE_MCP_INTEGRATIONS} so a new bridge is one
7
- * catalog row (npm + PyPI).
8
- */
9
- import type { Connector } from "../../runtime/connector.js";
10
- import { type ToolSelectionConnectorConfig } from "../tool-selection.js";
11
- import { type MarketplaceMcpIntegrationId, type MarketplaceMcpToolsFor } from "./catalog.js";
12
- export { MARKETPLACE_MCP_INTEGRATIONS, hasMarketplaceConnector, marketplaceIntegrationById, type MarketplaceMcpIntegration, type MarketplaceMcpIntegrationId, type MarketplaceMcpToolsFor, } from "./catalog.js";
13
- export { normalizeMcpUrl, resolveMarketplaceMcpServer, type FleetMcpServer, } from "./fleet-mcp.js";
14
- /** Configuration accepted by every `connectors.<marketplace>` factory. */
15
- export type MarketplaceConnectorConfig<TTool extends string = string> = ToolSelectionConnectorConfig<TTool>;
16
- export type MarketplaceConnectorFor<Id extends MarketplaceMcpIntegrationId> = Connector & MarketplaceConnectorConfig<MarketplaceMcpToolsFor<Id>> & {
17
- kind: Id;
18
- };
19
- export type MarketplaceConnectorFactoryFor<Id extends MarketplaceMcpIntegrationId> = (config?: MarketplaceConnectorConfig<MarketplaceMcpToolsFor<Id>>) => MarketplaceConnectorFor<Id>;
20
- /** `connectors.<id>` factories for every marketplace catalog entry. */
21
- export type MarketplaceConnectors = {
22
- [Id in MarketplaceMcpIntegrationId]: MarketplaceConnectorFactoryFor<Id>;
23
- };
24
- /**
25
- * All marketplace connector factories keyed by integration id.
26
- *
27
- * Built from the catalog so a new bridge is one entry there rather than a
28
- * namespace line that can be forgotten.
29
- */
30
- export declare const marketplaceConnectors: MarketplaceConnectors;
31
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/marketplace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AAExB,0EAA0E;AAC1E,MAAM,MAAM,0BAA0B,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAClE,4BAA4B,CAAC,KAAK,CAAC,CAAC;AAEtC,MAAM,MAAM,uBAAuB,CAAC,EAAE,SAAS,2BAA2B,IACxE,SAAS,GACP,0BAA0B,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,GAAG;IACvD,IAAI,EAAE,EAAE,CAAC;CACV,CAAC;AAEN,MAAM,MAAM,8BAA8B,CACxC,EAAE,SAAS,2BAA2B,IACpC,CACF,MAAM,CAAC,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,KAC5D,uBAAuB,CAAC,EAAE,CAAC,CAAC;AAEjC,uEAAuE;AACvE,MAAM,MAAM,qBAAqB,GAAG;KACjC,EAAE,IAAI,2BAA2B,GAAG,8BAA8B,CAAC,EAAE,CAAC;CACxE,CAAC;AA2BF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,qBAKV,CAAC"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Marketplace MCP connectors — third-party MCP servers managed in LangSmith.
3
- *
4
- * Unlike {@link ../toolserver}, tools run on the vendor's MCP endpoint and are
5
- * invoked through `POST /v1/mcp/proxy` with a vault subject. Factories are
6
- * derived from {@link MARKETPLACE_MCP_INTEGRATIONS} so a new bridge is one
7
- * catalog row (npm + PyPI).
8
- */
9
- import { defineExtension } from "../../extension.js";
10
- import { toolSelectionConnectorSchema, } from "../tool-selection.js";
11
- import { MARKETPLACE_MCP_INTEGRATIONS, } from "./catalog.js";
12
- export { MARKETPLACE_MCP_INTEGRATIONS, hasMarketplaceConnector, marketplaceIntegrationById, } from "./catalog.js";
13
- export { normalizeMcpUrl, resolveMarketplaceMcpServer, } from "./fleet-mcp.js";
14
- function marketplaceTools(integration, label) {
15
- return async (_ctx, self) => {
16
- const { loadMarketplaceTools } = await import("./load.js");
17
- return loadMarketplaceTools(integration, label, self);
18
- };
19
- }
20
- function marketplaceConnectorFactory(integration) {
21
- const label = `connectors.${integration.id}`;
22
- return defineExtension("connector", {
23
- kind: integration.id,
24
- label,
25
- args: toolSelectionConnectorSchema(),
26
- tools: marketplaceTools(integration, label),
27
- });
28
- }
29
- /**
30
- * All marketplace connector factories keyed by integration id.
31
- *
32
- * Built from the catalog so a new bridge is one entry there rather than a
33
- * namespace line that can be forgotten.
34
- */
35
- export const marketplaceConnectors = Object.fromEntries(MARKETPLACE_MCP_INTEGRATIONS.map((entry) => [
36
- entry.id,
37
- marketplaceConnectorFactory(entry),
38
- ]));
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/marketplace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,4BAA4B,GAE7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,4BAA4B,GAI7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,GAI3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,eAAe,EACf,2BAA2B,GAE5B,MAAM,gBAAgB,CAAC;AAuBxB,SAAS,gBAAgB,CACvB,WAAsC,EACtC,KAAa;IAEb,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3D,OAAO,oBAAoB,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,WAAsC;IAEtC,MAAM,KAAK,GAAG,cAAc,WAAW,CAAC,EAAE,EAAE,CAAC;IAC7C,OAAO,eAAe,CAAC,WAAW,EAAE;QAClC,IAAI,EAAE,WAAW,CAAC,EAAE;QACpB,KAAK;QACL,IAAI,EAAE,4BAA4B,EAG/B;QACH,KAAK,EAAE,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC;KAC5C,CAAuD,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0B,MAAM,CAAC,WAAW,CAC5E,4BAA4B,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1C,KAAK,CAAC,EAAE;IACR,2BAA2B,CAAC,KAAK,CAAC;CACnC,CAAC,CACsB,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Load marketplace MCP tools through LangSmith's `POST /api/v1/mcp/proxy`.
3
- *
4
- * Unlike toolserver (bare Streamable HTTP to `/v1/toolserver/servers/{slug}/mcp`),
5
- * marketplace invoke uses an HTTP-over-JSON envelope. Credentials never leave
6
- * the vault — the proxy mints a bearer for `agent_id` / `ls_user_id`.
7
- */
8
- import { type ToolSelectionConnectorConfig } from "../tool-selection.js";
9
- import type { MarketplaceMcpIntegration } from "./catalog.js";
10
- export type MarketplaceConnectorConfig = ToolSelectionConnectorConfig;
11
- /** Load (and cache) tools for one marketplace connector declaration. */
12
- export declare function loadMarketplaceTools(integration: MarketplaceMcpIntegration, label: string, connector: MarketplaceConnectorConfig & object): Promise<unknown[]>;
13
- export declare function clearMarketplaceToolsCacheForTests(connector: object): void;
14
- //# sourceMappingURL=load.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/connectors/marketplace/load.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAS9D,MAAM,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAEtE,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,0BAA0B,GAAG,MAAM,GAC7C,OAAO,CAAC,OAAO,EAAE,CAAC,CAuBpB;AAED,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE1E"}
@@ -1,206 +0,0 @@
1
- /**
2
- * Load marketplace MCP tools through LangSmith's `POST /api/v1/mcp/proxy`.
3
- *
4
- * Unlike toolserver (bare Streamable HTTP to `/v1/toolserver/servers/{slug}/mcp`),
5
- * marketplace invoke uses an HTTP-over-JSON envelope. Credentials never leave
6
- * the vault — the proxy mints a bearer for `agent_id` / `ls_user_id`.
7
- */
8
- import { DynamicStructuredTool } from "@langchain/core/tools";
9
- import { z } from "zod";
10
- import { agentIdFromActor, isActorSubjectIntegrationEnabled, } from "../../identity/actor-subject.js";
11
- import { rewriteFleetToolError } from "../../identity/fleet-connect-hint.js";
12
- import { resolveFleetApiUrl, resolveFleetHeaders, } from "../../identity/fleet.js";
13
- import { marketplaceAsFleetHint } from "../../identity/marketplace/index.js";
14
- import { managedRuntimeOverrides } from "../../runtime/managed-tools.js";
15
- import { fetchWithTimeout, PROVIDER_HTTP_TIMEOUT_MS, } from "../../runtime/http.js";
16
- import { selectTools, } from "../tool-selection.js";
17
- import { parseMcpProxyResponseBody, resolveMarketplaceMcpServer, resolveSmithBackendV1Url, } from "./fleet-mcp.js";
18
- const schemaCache = new WeakMap();
19
- /** Load (and cache) tools for one marketplace connector declaration. */
20
- export function loadMarketplaceTools(integration, label, connector) {
21
- if (connector.includeTools?.length === 0) {
22
- return Promise.resolve([]);
23
- }
24
- const cached = schemaCache.get(connector);
25
- if (cached) {
26
- return cached;
27
- }
28
- const loading = connectAndLoadTools(integration, label, connector)
29
- .then((tools) => {
30
- // Empty pre-connect fallbacks must not stick forever — a later load may
31
- // discover tools once the workspace/actor connection exists.
32
- if (tools.length === 0) {
33
- schemaCache.delete(connector);
34
- }
35
- return tools;
36
- })
37
- .catch((error) => {
38
- schemaCache.delete(connector);
39
- throw error;
40
- });
41
- schemaCache.set(connector, loading);
42
- return loading;
43
- }
44
- export function clearMarketplaceToolsCacheForTests(connector) {
45
- schemaCache.delete(connector);
46
- }
47
- async function connectAndLoadTools(integration, label, config) {
48
- // Actor-subject agent_id is resolved per invoke inside buildProxyTool —
49
- // no outer wrap / re-list is needed (unlike toolserver MCP, where the
50
- // session URL binds agent_id at connect time).
51
- const listAgentId = trimmed(process.env.MDA_TOOLSERVER_AGENT_ID);
52
- return loadToolsForAgentId(integration, label, config, listAgentId);
53
- }
54
- async function loadToolsForAgentId(integration, label, config, agentId) {
55
- const server = await resolveMarketplaceMcpServer({
56
- mcpUrl: integration.mcpUrl,
57
- });
58
- const providerId = server.oauth_provider_id.trim();
59
- const listed = await listProxyTools({
60
- integration,
61
- oauthProviderId: providerId,
62
- agentId,
63
- label,
64
- });
65
- const tools = listed.map((entry) => buildProxyTool(entry, integration, providerId, config, agentId, label));
66
- return selectTools(label, config, tools);
67
- }
68
- async function listProxyTools(options) {
69
- const env = process.env;
70
- const base = resolveFleetApiUrl(env);
71
- const headers = resolveFleetHeaders(options.label, env);
72
- const params = new URLSearchParams({
73
- url: options.integration.mcpUrl,
74
- oauth_provider_id: options.oauthProviderId,
75
- });
76
- if (options.agentId) {
77
- params.set("agent_id", options.agentId);
78
- }
79
- const toolsUrl = new URL(resolveSmithBackendV1Url(base, "mcp/tools"));
80
- toolsUrl.search = params.toString();
81
- const response = await fetchWithTimeout(toolsUrl.toString(), { method: "GET", headers }, PROVIDER_HTTP_TIMEOUT_MS, fetch);
82
- if (response.status === 428 || response.status === 401) {
83
- // No subject / connection yet — expose catalog names so the agent can still
84
- // be authored; invoke will fail with a connect hint once identity is present.
85
- return options.integration.tools.map((name) => ({
86
- name,
87
- description: `${name} (connect required)`,
88
- inputSchema: {
89
- type: "object",
90
- properties: {},
91
- additionalProperties: true,
92
- },
93
- }));
94
- }
95
- if (!response.ok) {
96
- const text = await response.text().catch(() => "");
97
- throw new Error(`${options.label}: list marketplace tools failed (${response.status}): ${text || response.statusText}`);
98
- }
99
- const json = (await response.json());
100
- return (json.tools ?? []).filter((tool) => typeof tool?.name === "string" && tool.name.length > 0);
101
- }
102
- function buildProxyTool(entry, integration, providerId, config, fixedAgentId, label) {
103
- const schema = jsonSchemaToZod(entry.inputSchema);
104
- return new DynamicStructuredTool({
105
- name: entry.name,
106
- description: entry.description ?? entry.name,
107
- schema,
108
- func: async (input, _runManager, runtime) => {
109
- const runtimeConfig = runtime;
110
- const agentId = resolveInvokeAgentId(runtimeConfig, integration.id) ?? fixedAgentId;
111
- try {
112
- return await callProxyTool({
113
- url: integration.mcpUrl,
114
- oauthProviderId: providerId,
115
- agentId,
116
- toolName: entry.name,
117
- args: input,
118
- label,
119
- timeoutMs: config.defaultToolTimeout,
120
- });
121
- }
122
- catch (error) {
123
- throw rewriteFleetToolError(error, marketplaceAsFleetHint(integration, providerId));
124
- }
125
- },
126
- });
127
- }
128
- function resolveInvokeAgentId(runtime, integrationId) {
129
- if (isActorSubjectIntegrationEnabled(integrationId)) {
130
- const identity = managedRuntimeOverrides(runtime).identity;
131
- const userId = identity?.user?.id;
132
- if (userId) {
133
- return agentIdFromActor(userId);
134
- }
135
- }
136
- return trimmed(process.env.MDA_TOOLSERVER_AGENT_ID);
137
- }
138
- async function callProxyTool(options) {
139
- if (!options.agentId) {
140
- throw new Error(`${options.label}: marketplace tool "${options.toolName}" needs an agent subject ` +
141
- `(Connect-with-${options.label.replace(/^connectors\./, "")} or MDA_TOOLSERVER_AGENT_ID)`);
142
- }
143
- const env = process.env;
144
- const base = resolveFleetApiUrl(env);
145
- const headers = resolveFleetHeaders(options.label, env);
146
- // Envelope timeout is seconds (smith-backend). Keep the local fetch budget
147
- // at least as long, plus a small transport allowance — otherwise
148
- // `defaultToolTimeout` above PROVIDER_HTTP_TIMEOUT_MS is silently truncated.
149
- const timeoutMs = Math.min(Math.max(options.timeoutMs ?? 120_000, 1_000), 120_000);
150
- const timeoutSeconds = timeoutMs / 1000;
151
- const httpTimeoutMs = timeoutMs + 5_000;
152
- // Forwarded to the vendor MCP by smith-backend's proxy. Notion (and other
153
- // Streamable HTTP servers) reject requests that omit text/event-stream.
154
- const mcpHeaders = {
155
- "Content-Type": "application/json",
156
- Accept: "application/json, text/event-stream",
157
- "MCP-Protocol-Version": "2025-11-25",
158
- };
159
- const body = {
160
- url: options.url,
161
- method: "POST",
162
- oauth_provider_id: options.oauthProviderId,
163
- agent_id: options.agentId,
164
- timeout: timeoutSeconds,
165
- headers: mcpHeaders,
166
- body: {
167
- jsonrpc: "2.0",
168
- id: 1,
169
- method: "tools/call",
170
- params: {
171
- name: options.toolName,
172
- arguments: options.args && typeof options.args === "object" ? options.args : {},
173
- },
174
- },
175
- };
176
- const response = await fetchWithTimeout(resolveSmithBackendV1Url(base, "mcp/proxy"), {
177
- method: "POST",
178
- headers,
179
- body: JSON.stringify(body),
180
- }, httpTimeoutMs, fetch);
181
- const text = await response.text().catch(() => "");
182
- if (!response.ok) {
183
- throw new Error(`${options.label}: marketplace tool "${options.toolName}" failed (${response.status}): ${text || response.statusText}`);
184
- }
185
- return parseMcpProxyResponseBody(text);
186
- }
187
- /** Best-effort JSON Schema → Zod object (additionalProperties open). */
188
- function jsonSchemaToZod(inputSchema) {
189
- if (!inputSchema || typeof inputSchema !== "object") {
190
- return z.record(z.string(), z.unknown());
191
- }
192
- const properties = inputSchema.properties;
193
- if (!properties || typeof properties !== "object") {
194
- return z.record(z.string(), z.unknown());
195
- }
196
- const shape = {};
197
- for (const key of Object.keys(properties)) {
198
- shape[key] = z.unknown().optional();
199
- }
200
- return z.looseObject(shape);
201
- }
202
- function trimmed(value) {
203
- const v = value?.trim();
204
- return v ? v : undefined;
205
- }
206
- //# sourceMappingURL=load.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/connectors/marketplace/load.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- /**
2
- * `connectors.slack` — Slack tool-server tools only.
3
- *
4
- * Events ingress, messaging, and deploy requirements live on `channels.slack`
5
- * under `channels/`. This connector only contributes Slack tools via
6
- * `includeTools` / `excludeTools`.
7
- */
8
- import { type Connector } from "../../runtime/connector.js";
9
- import { SLACK_SLUG, type ToolServerConnectorConfig, type ToolsForFactory } from "../toolserver/index.js";
10
- export { SLACK_SLUG };
11
- export type SlackConnectorConfig = ToolServerConnectorConfig<ToolsForFactory<"slack">>;
12
- export type RequiredSlackConnectorConfig = SlackConnectorConfig;
13
- /** Branded Slack tools connector declaration. */
14
- export type SlackConnector = Connector & RequiredSlackConnectorConfig & {
15
- kind: "slack";
16
- };
17
- /**
18
- * Declare a managed Slack tools connector. Files under `connectors/*.ts` export
19
- * a named `connector` created with `connectors.slack(...)`.
20
- *
21
- * For Events ingress / messaging, use `channels.slack(...)` under `channels/`.
22
- */
23
- export declare function slackConnector(config?: SlackConnectorConfig): SlackConnector;
24
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/slack/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAEL,KAAK,SAAS,EAEf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EAGV,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,CAC1D,eAAe,CAAC,OAAO,CAAC,CACzB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AAEhE,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,SAAS,GACpC,4BAA4B,GAAG;IAC7B,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AA8BJ;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,cAAc,CA6C5E"}
@@ -1,64 +0,0 @@
1
- /**
2
- * `connectors.slack` — Slack tool-server tools only.
3
- *
4
- * Events ingress, messaging, and deploy requirements live on `channels.slack`
5
- * under `channels/`. This connector only contributes Slack tools via
6
- * `includeTools` / `excludeTools`.
7
- */
8
- import { CONNECTOR_BRAND, } from "../../runtime/connector.js";
9
- import { SLACK_SLUG, toolServerConnectorSchema, toolServerTools, } from "../toolserver/index.js";
10
- export { SLACK_SLUG };
11
- const EVENT_OPTION_KEYS = [
12
- "on",
13
- "autoReply",
14
- "mentionBehavior",
15
- "filters",
16
- "conversation",
17
- ];
18
- const slackConnectorConfig = toolServerConnectorSchema({}).refine((args) => args.includeTools !== undefined || args.excludeTools !== undefined, {
19
- message: "requires `includeTools` and/or `excludeTools`. " +
20
- "For Slack Events ingress, use channels.slack(...) under channels/.",
21
- });
22
- const slackTools = toolServerTools(SLACK_SLUG, "connectors.slack");
23
- function hide(target, key, value) {
24
- Object.defineProperty(target, key, { value, enumerable: false });
25
- }
26
- /**
27
- * Declare a managed Slack tools connector. Files under `connectors/*.ts` export
28
- * a named `connector` created with `connectors.slack(...)`.
29
- *
30
- * For Events ingress / messaging, use `channels.slack(...)` under `channels/`.
31
- */
32
- export function slackConnector(config) {
33
- const raw = (config ?? {});
34
- for (const key of EVENT_OPTION_KEYS) {
35
- if (key in raw) {
36
- throw new Error(`connectors.slack(...) does not accept \`${key}\`. ` +
37
- "Use channels.slack(...) under channels/ for Slack Events ingress.");
38
- }
39
- }
40
- const validate = slackConnectorConfig["~standard"].validate;
41
- const result = validate(config);
42
- if (result instanceof Promise) {
43
- throw new TypeError("connectors.slack(...) needs a schema that validates synchronously");
44
- }
45
- if (result.issues) {
46
- const message = result.issues
47
- .map((issue) => {
48
- const path = (issue.path ?? [])
49
- .map((segment) => String(typeof segment === "object" && segment && "key" in segment
50
- ? segment.key
51
- : segment))
52
- .join(".");
53
- return path.length > 0 ? `${path}: ${issue.message}` : issue.message;
54
- })
55
- .join("; ");
56
- throw new Error(`connectors.slack(...) ${message}`);
57
- }
58
- const args = result.value;
59
- const self = { kind: "slack", ...args };
60
- hide(self, CONNECTOR_BRAND, true);
61
- hide(self, "tools", (ctx) => slackTools(ctx, self));
62
- return self;
63
- }
64
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connectors/slack/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,eAAe,GAGhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACV,yBAAyB,EACzB,eAAe,GAGhB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,CAAC;AAgBtB,MAAM,iBAAiB,GAAG;IACxB,IAAI;IACJ,WAAW;IACX,iBAAiB;IACjB,SAAS;IACT,cAAc;CACN,CAAC;AAEX,MAAM,oBAAoB,GAAG,yBAAyB,CAGpD,EAAE,CAAC,CAAC,MAAM,CACV,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAC5E;IACE,OAAO,EACL,iDAAiD;QACjD,oEAAoE;CACvE,CACF,CAAC;AAEF,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAEnE,SAAS,IAAI,CAAC,MAAc,EAAE,GAAoB,EAAE,KAAc;IAChE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAA6B;IAC1D,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,2CAA2C,GAAG,MAAM;gBAClD,mEAAmE,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GACZ,oBAID,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;IACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CACjB,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;aAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;iBAC5B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACf,MAAM,CACJ,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO;gBACxD,CAAC,CAAE,OAA4B,CAAC,GAAG;gBACnC,CAAC,CAAC,OAAO,CACZ,CACF;iBACA,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACvE,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1B,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAgB,EAAE,GAAG,IAAI,EAAoB,CAAC;IACnE,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC;AACd,CAAC"}