@executor-js/plugin-mcp 0.1.0 → 0.2.1

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 (45) hide show
  1. package/dist/AddMcpSource-VM3HY26S.js +762 -0
  2. package/dist/AddMcpSource-VM3HY26S.js.map +1 -0
  3. package/dist/EditMcpSource-WELWGRJG.js +259 -0
  4. package/dist/EditMcpSource-WELWGRJG.js.map +1 -0
  5. package/dist/McpSourceSummary-7TDQXLT5.js +85 -0
  6. package/dist/McpSourceSummary-7TDQXLT5.js.map +1 -0
  7. package/dist/api/group.d.ts +109 -17
  8. package/dist/api/index.d.ts +391 -0
  9. package/dist/chunk-2ETJ6LQH.js +239 -0
  10. package/dist/chunk-2ETJ6LQH.js.map +1 -0
  11. package/dist/chunk-OOOH3IO4.js +2194 -0
  12. package/dist/chunk-OOOH3IO4.js.map +1 -0
  13. package/dist/chunk-SKSXXFOA.js +104 -0
  14. package/dist/chunk-SKSXXFOA.js.map +1 -0
  15. package/dist/chunk-Z4CRPOLI.js +186 -0
  16. package/dist/chunk-Z4CRPOLI.js.map +1 -0
  17. package/dist/chunk-ZIRGIRGP.js +115 -0
  18. package/dist/chunk-ZIRGIRGP.js.map +1 -0
  19. package/dist/client.js +51 -0
  20. package/dist/client.js.map +1 -0
  21. package/dist/core.js +26 -2
  22. package/dist/index.js +2 -1
  23. package/dist/react/McpRemoteSourceFields.d.ts +18 -0
  24. package/dist/react/McpSourceSummary.d.ts +5 -0
  25. package/dist/react/atoms.d.ts +206 -6
  26. package/dist/react/client.d.ts +113 -16
  27. package/dist/react/index.d.ts +1 -1
  28. package/dist/react/plugin-client.d.ts +9 -2
  29. package/dist/sdk/binding-store.d.ts +106 -1
  30. package/dist/sdk/index.d.ts +1 -1
  31. package/dist/sdk/invoke.d.ts +2 -0
  32. package/dist/sdk/plugin.d.ts +142 -114
  33. package/dist/sdk/probe-shape-real-servers.live.test.d.ts +1 -0
  34. package/dist/sdk/probe-shape.d.ts +17 -3
  35. package/dist/sdk/stored-source.d.ts +9 -6
  36. package/dist/sdk/types.d.ts +138 -13
  37. package/dist/{stdio-connector-KNHLETKM.js → stdio-connector-AA5S6UUJ.js} +1 -1
  38. package/dist/{stdio-connector-KNHLETKM.js.map → stdio-connector-AA5S6UUJ.js.map} +1 -1
  39. package/dist/testing/index.d.ts +1 -0
  40. package/dist/{sdk/test-utils.d.ts → testing/server.d.ts} +0 -6
  41. package/dist/testing.js +51 -0
  42. package/dist/testing.js.map +1 -0
  43. package/package.json +17 -4
  44. package/dist/chunk-C2GNZGFJ.js +0 -1622
  45. package/dist/chunk-C2GNZGFJ.js.map +0 -1
@@ -1,6 +1,9 @@
1
1
  import type { ScopeId } from "@executor-js/sdk/core";
2
- export declare const mcpSourceAtom: (scopeId: ScopeId, namespace: string) => import("effect/unstable/reactivity/Atom").Atom<import("effect/unstable/reactivity/AsyncResult").AsyncResult<import("../sdk/stored-source").McpStoredSourceSchema | null, import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>>;
3
- export declare const probeMcpEndpoint: import("effect/unstable/reactivity/Atom").AtomResultFn<{
2
+ import * as Atom from "effect/unstable/reactivity/Atom";
3
+ import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
4
+ export declare const mcpSourceAtom: (scopeId: ScopeId, namespace: string) => Atom.Atom<AsyncResult.AsyncResult<import("../sdk/stored-source").McpStoredSourceSchema | null, import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>>;
5
+ export declare const mcpSourceBindingsAtom: (scopeId: ScopeId, namespace: string, sourceScopeId: ScopeId) => Atom.Atom<AsyncResult.AsyncResult<readonly import("../sdk").McpSourceBindingRef[], import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>>;
6
+ export declare const probeMcpEndpoint: Atom.AtomResultFn<{
4
7
  readonly params: {
5
8
  readonly scopeId: string & import("effect/Brand").Brand<"ScopeId">;
6
9
  };
@@ -28,42 +31,167 @@ export declare const probeMcpEndpoint: import("effect/unstable/reactivity/Atom")
28
31
  readonly serverName: string | null;
29
32
  readonly connected: boolean;
30
33
  readonly requiresOAuth: boolean;
34
+ readonly supportsDynamicRegistration: boolean;
31
35
  }, import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>;
32
- export declare const addMcpSource: import("effect/unstable/reactivity/Atom").AtomResultFn<{
36
+ export declare const addMcpSource: Atom.AtomResultFn<{
33
37
  readonly params: {
34
38
  readonly scopeId: string & import("effect/Brand").Brand<"ScopeId">;
35
39
  };
36
40
  readonly payload: {
37
41
  readonly name: string;
38
42
  readonly endpoint: string;
43
+ readonly targetScope: string & import("effect/Brand").Brand<"ScopeId">;
39
44
  readonly transport: "remote";
40
45
  readonly namespace?: string | undefined;
41
46
  readonly headers?: {
42
47
  readonly [x: string]: string | {
43
48
  readonly secretId: string;
44
49
  readonly prefix?: string | undefined;
50
+ } | {
51
+ readonly kind: "binding";
52
+ readonly slot: string;
53
+ readonly prefix?: string | undefined;
54
+ } | {
55
+ readonly secretId: string;
56
+ readonly targetScope: string & import("effect/Brand").Brand<"ScopeId">;
57
+ readonly prefix?: string | undefined;
58
+ readonly secretScopeId?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
45
59
  };
46
60
  } | undefined;
61
+ readonly remoteTransport?: "streamable-http" | "sse" | "auto" | undefined;
47
62
  readonly queryParams?: {
48
63
  readonly [x: string]: string | {
49
64
  readonly secretId: string;
50
65
  readonly prefix?: string | undefined;
66
+ } | {
67
+ readonly kind: "binding";
68
+ readonly slot: string;
69
+ readonly prefix?: string | undefined;
70
+ } | {
71
+ readonly secretId: string;
72
+ readonly targetScope: string & import("effect/Brand").Brand<"ScopeId">;
73
+ readonly prefix?: string | undefined;
74
+ readonly secretScopeId?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
75
+ };
76
+ } | undefined;
77
+ readonly auth?: {
78
+ readonly kind: "none";
79
+ } | {
80
+ readonly kind: "header";
81
+ readonly headerName: string;
82
+ readonly secretSlot: string;
83
+ readonly prefix?: string | undefined;
84
+ } | {
85
+ readonly kind: "oauth2";
86
+ readonly connectionSlot: string;
87
+ readonly clientIdSlot?: string | undefined;
88
+ readonly clientSecretSlot?: string | undefined;
89
+ } | {
90
+ readonly secretId: string;
91
+ readonly kind: "header";
92
+ readonly headerName: string;
93
+ readonly targetScope?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
94
+ readonly prefix?: string | undefined;
95
+ readonly secretScopeId?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
96
+ } | {
97
+ readonly connectionId: string;
98
+ readonly kind: "oauth2";
99
+ readonly clientSecretSecretId?: string | null | undefined;
100
+ readonly clientIdSecretId?: string | undefined;
101
+ } | undefined;
102
+ readonly credentialTargetScope?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
103
+ };
104
+ readonly responseMode?: "decoded-only" | undefined;
105
+ readonly reactivityKeys?: readonly unknown[] | import("effect/Record").ReadonlyRecord<string, readonly unknown[]> | undefined;
106
+ } | {
107
+ readonly params: {
108
+ readonly scopeId: string & import("effect/Brand").Brand<"ScopeId">;
109
+ };
110
+ readonly payload: {
111
+ readonly name: string;
112
+ readonly targetScope: string & import("effect/Brand").Brand<"ScopeId">;
113
+ readonly transport: "stdio";
114
+ readonly command: string;
115
+ readonly namespace?: string | undefined;
116
+ readonly args?: readonly string[] | undefined;
117
+ readonly env?: {
118
+ readonly [x: string]: string;
119
+ } | undefined;
120
+ readonly cwd?: string | undefined;
121
+ };
122
+ readonly responseMode?: "decoded-only" | undefined;
123
+ readonly reactivityKeys?: readonly unknown[] | import("effect/Record").ReadonlyRecord<string, readonly unknown[]> | undefined;
124
+ }, {
125
+ readonly namespace: string;
126
+ readonly toolCount: number;
127
+ }, import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>;
128
+ export declare const addMcpSourceOptimistic: (arg: string & import("effect/Brand").Brand<"ScopeId">) => Atom.AtomResultFn<{
129
+ readonly params: {
130
+ readonly scopeId: string & import("effect/Brand").Brand<"ScopeId">;
131
+ };
132
+ readonly payload: {
133
+ readonly name: string;
134
+ readonly endpoint: string;
135
+ readonly targetScope: string & import("effect/Brand").Brand<"ScopeId">;
136
+ readonly transport: "remote";
137
+ readonly namespace?: string | undefined;
138
+ readonly headers?: {
139
+ readonly [x: string]: string | {
140
+ readonly secretId: string;
141
+ readonly prefix?: string | undefined;
142
+ } | {
143
+ readonly kind: "binding";
144
+ readonly slot: string;
145
+ readonly prefix?: string | undefined;
146
+ } | {
147
+ readonly secretId: string;
148
+ readonly targetScope: string & import("effect/Brand").Brand<"ScopeId">;
149
+ readonly prefix?: string | undefined;
150
+ readonly secretScopeId?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
51
151
  };
52
152
  } | undefined;
53
153
  readonly remoteTransport?: "streamable-http" | "sse" | "auto" | undefined;
154
+ readonly queryParams?: {
155
+ readonly [x: string]: string | {
156
+ readonly secretId: string;
157
+ readonly prefix?: string | undefined;
158
+ } | {
159
+ readonly kind: "binding";
160
+ readonly slot: string;
161
+ readonly prefix?: string | undefined;
162
+ } | {
163
+ readonly secretId: string;
164
+ readonly targetScope: string & import("effect/Brand").Brand<"ScopeId">;
165
+ readonly prefix?: string | undefined;
166
+ readonly secretScopeId?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
167
+ };
168
+ } | undefined;
54
169
  readonly auth?: {
55
170
  readonly kind: "none";
171
+ } | {
172
+ readonly kind: "header";
173
+ readonly headerName: string;
174
+ readonly secretSlot: string;
175
+ readonly prefix?: string | undefined;
176
+ } | {
177
+ readonly kind: "oauth2";
178
+ readonly connectionSlot: string;
179
+ readonly clientIdSlot?: string | undefined;
180
+ readonly clientSecretSlot?: string | undefined;
56
181
  } | {
57
182
  readonly secretId: string;
58
183
  readonly kind: "header";
59
184
  readonly headerName: string;
185
+ readonly targetScope?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
60
186
  readonly prefix?: string | undefined;
187
+ readonly secretScopeId?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
61
188
  } | {
62
189
  readonly connectionId: string;
63
190
  readonly kind: "oauth2";
64
191
  readonly clientSecretSecretId?: string | null | undefined;
65
192
  readonly clientIdSecretId?: string | undefined;
66
193
  } | undefined;
194
+ readonly credentialTargetScope?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
67
195
  };
68
196
  readonly responseMode?: "decoded-only" | undefined;
69
197
  readonly reactivityKeys?: readonly unknown[] | import("effect/Record").ReadonlyRecord<string, readonly unknown[]> | undefined;
@@ -73,6 +201,7 @@ export declare const addMcpSource: import("effect/unstable/reactivity/Atom").Ato
73
201
  };
74
202
  readonly payload: {
75
203
  readonly name: string;
204
+ readonly targetScope: string & import("effect/Brand").Brand<"ScopeId">;
76
205
  readonly transport: "stdio";
77
206
  readonly command: string;
78
207
  readonly namespace?: string | undefined;
@@ -88,7 +217,7 @@ export declare const addMcpSource: import("effect/unstable/reactivity/Atom").Ato
88
217
  readonly namespace: string;
89
218
  readonly toolCount: number;
90
219
  }, import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>;
91
- export declare const removeMcpSource: import("effect/unstable/reactivity/Atom").AtomResultFn<{
220
+ export declare const removeMcpSource: Atom.AtomResultFn<{
92
221
  readonly params: {
93
222
  readonly scopeId: string & import("effect/Brand").Brand<"ScopeId">;
94
223
  };
@@ -100,7 +229,7 @@ export declare const removeMcpSource: import("effect/unstable/reactivity/Atom").
100
229
  }, {
101
230
  readonly removed: boolean;
102
231
  }, import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>;
103
- export declare const refreshMcpSource: import("effect/unstable/reactivity/Atom").AtomResultFn<{
232
+ export declare const refreshMcpSource: Atom.AtomResultFn<{
104
233
  readonly params: {
105
234
  readonly scopeId: string & import("effect/Brand").Brand<"ScopeId">;
106
235
  };
@@ -112,42 +241,113 @@ export declare const refreshMcpSource: import("effect/unstable/reactivity/Atom")
112
241
  }, {
113
242
  readonly toolCount: number;
114
243
  }, import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>;
115
- export declare const updateMcpSource: import("effect/unstable/reactivity/Atom").AtomResultFn<{
244
+ export declare const updateMcpSource: Atom.AtomResultFn<{
116
245
  readonly params: {
117
246
  readonly namespace: string;
118
247
  readonly scopeId: string & import("effect/Brand").Brand<"ScopeId">;
119
248
  };
120
249
  readonly payload: {
250
+ readonly sourceScope: string & import("effect/Brand").Brand<"ScopeId">;
121
251
  readonly name?: string | undefined;
122
252
  readonly endpoint?: string | undefined;
123
253
  readonly headers?: {
124
254
  readonly [x: string]: string | {
125
255
  readonly secretId: string;
126
256
  readonly prefix?: string | undefined;
257
+ } | {
258
+ readonly kind: "binding";
259
+ readonly slot: string;
260
+ readonly prefix?: string | undefined;
261
+ } | {
262
+ readonly secretId: string;
263
+ readonly targetScope: string & import("effect/Brand").Brand<"ScopeId">;
264
+ readonly prefix?: string | undefined;
265
+ readonly secretScopeId?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
127
266
  };
128
267
  } | undefined;
129
268
  readonly queryParams?: {
130
269
  readonly [x: string]: string | {
131
270
  readonly secretId: string;
132
271
  readonly prefix?: string | undefined;
272
+ } | {
273
+ readonly kind: "binding";
274
+ readonly slot: string;
275
+ readonly prefix?: string | undefined;
276
+ } | {
277
+ readonly secretId: string;
278
+ readonly targetScope: string & import("effect/Brand").Brand<"ScopeId">;
279
+ readonly prefix?: string | undefined;
280
+ readonly secretScopeId?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
133
281
  };
134
282
  } | undefined;
135
283
  readonly auth?: {
136
284
  readonly kind: "none";
285
+ } | {
286
+ readonly kind: "header";
287
+ readonly headerName: string;
288
+ readonly secretSlot: string;
289
+ readonly prefix?: string | undefined;
290
+ } | {
291
+ readonly kind: "oauth2";
292
+ readonly connectionSlot: string;
293
+ readonly clientIdSlot?: string | undefined;
294
+ readonly clientSecretSlot?: string | undefined;
137
295
  } | {
138
296
  readonly secretId: string;
139
297
  readonly kind: "header";
140
298
  readonly headerName: string;
299
+ readonly targetScope?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
141
300
  readonly prefix?: string | undefined;
301
+ readonly secretScopeId?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
142
302
  } | {
143
303
  readonly connectionId: string;
144
304
  readonly kind: "oauth2";
145
305
  readonly clientSecretSecretId?: string | null | undefined;
146
306
  readonly clientIdSecretId?: string | undefined;
147
307
  } | undefined;
308
+ readonly credentialTargetScope?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
148
309
  };
149
310
  readonly responseMode?: "decoded-only" | undefined;
150
311
  readonly reactivityKeys?: readonly unknown[] | import("effect/Record").ReadonlyRecord<string, readonly unknown[]> | undefined;
151
312
  }, {
152
313
  readonly updated: boolean;
153
314
  }, import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>;
315
+ export declare const setMcpSourceBinding: Atom.AtomResultFn<{
316
+ readonly params: {
317
+ readonly scopeId: string & import("effect/Brand").Brand<"ScopeId">;
318
+ };
319
+ readonly payload: {
320
+ readonly value: {
321
+ readonly text: string;
322
+ readonly kind: "text";
323
+ } | {
324
+ readonly secretId: string & import("effect/Brand").Brand<"SecretId">;
325
+ readonly kind: "secret";
326
+ readonly secretScopeId?: (string & import("effect/Brand").Brand<"ScopeId">) | undefined;
327
+ } | {
328
+ readonly connectionId: string & import("effect/Brand").Brand<"ConnectionId">;
329
+ readonly kind: "connection";
330
+ };
331
+ readonly sourceId: string;
332
+ readonly scope: string & import("effect/Brand").Brand<"ScopeId">;
333
+ readonly slot: string;
334
+ readonly sourceScope: string & import("effect/Brand").Brand<"ScopeId">;
335
+ };
336
+ readonly responseMode?: "decoded-only" | undefined;
337
+ readonly reactivityKeys?: readonly unknown[] | import("effect/Record").ReadonlyRecord<string, readonly unknown[]> | undefined;
338
+ }, import("../sdk").McpSourceBindingRef, import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>;
339
+ export declare const removeMcpSourceBinding: Atom.AtomResultFn<{
340
+ readonly params: {
341
+ readonly scopeId: string & import("effect/Brand").Brand<"ScopeId">;
342
+ };
343
+ readonly payload: {
344
+ readonly sourceId: string;
345
+ readonly scope: string & import("effect/Brand").Brand<"ScopeId">;
346
+ readonly slot: string;
347
+ readonly sourceScope: string & import("effect/Brand").Brand<"ScopeId">;
348
+ };
349
+ readonly responseMode?: "decoded-only" | undefined;
350
+ readonly reactivityKeys?: readonly unknown[] | import("effect/Record").ReadonlyRecord<string, readonly unknown[]> | undefined;
351
+ }, {
352
+ readonly removed: boolean;
353
+ }, import("@executor-js/api").InternalError | import("../sdk/errors").McpConnectionError | import("../sdk/errors").McpToolDiscoveryError>;
@@ -13,40 +13,74 @@ export declare const McpClient: import("effect/unstable/reactivity/AtomHttpApi")
13
13
  }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
14
14
  readonly connected: import("effect/Schema").Boolean;
15
15
  readonly requiresOAuth: import("effect/Schema").Boolean;
16
+ readonly supportsDynamicRegistration: import("effect/Schema").Boolean;
16
17
  readonly name: import("effect/Schema").String;
17
18
  readonly namespace: import("effect/Schema").String;
18
19
  readonly toolCount: import("effect/Schema").NullOr<import("effect/Schema").Number>;
19
20
  readonly serverName: import("effect/Schema").NullOr<import("effect/Schema").String>;
20
- }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/api").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"addSource", "POST", "/scopes/:scopeId/mcp/sources", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
21
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/sdk").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"addSource", "POST", "/scopes/:scopeId/mcp/sources", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
21
22
  scopeId: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
22
23
  }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
24
+ readonly targetScope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
23
25
  readonly transport: import("effect/Schema").Literal<"remote">;
24
26
  readonly name: import("effect/Schema").String;
25
27
  readonly endpoint: import("effect/Schema").String;
26
28
  readonly remoteTransport: import("effect/Schema").optional<import("effect/Schema").Literals<readonly ["streamable-http", "sse", "auto"]>>;
27
29
  readonly namespace: import("effect/Schema").optional<import("effect/Schema").String>;
28
- readonly queryParams: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
30
+ readonly queryParams: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
29
31
  readonly secretId: import("effect/Schema").String;
30
32
  readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
31
- }>]>>>;
32
- readonly headers: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
33
+ readonly targetScope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
34
+ readonly secretScopeId: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
35
+ }>, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
33
36
  readonly secretId: import("effect/Schema").String;
34
37
  readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
35
- }>]>>>;
36
- readonly auth: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
38
+ }>]>, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
39
+ readonly kind: import("effect/Schema").Literal<"binding">;
40
+ readonly slot: import("effect/Schema").String;
41
+ readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
42
+ }>]>]>>>;
43
+ readonly headers: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
44
+ readonly secretId: import("effect/Schema").String;
45
+ readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
46
+ readonly targetScope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
47
+ readonly secretScopeId: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
48
+ }>, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
49
+ readonly secretId: import("effect/Schema").String;
50
+ readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
51
+ }>]>, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
52
+ readonly kind: import("effect/Schema").Literal<"binding">;
53
+ readonly slot: import("effect/Schema").String;
54
+ readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
55
+ }>]>]>>>;
56
+ readonly auth: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
37
57
  readonly kind: import("effect/Schema").Literal<"none">;
38
58
  }>, import("effect/Schema").Struct<{
59
+ readonly kind: import("effect/Schema").Literal<"header">;
60
+ readonly headerName: import("effect/Schema").String;
61
+ readonly secretSlot: import("effect/Schema").String;
62
+ readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
63
+ }>, import("effect/Schema").Struct<{
64
+ readonly kind: import("effect/Schema").Literal<"oauth2">;
65
+ readonly connectionSlot: import("effect/Schema").String;
66
+ readonly clientIdSlot: import("effect/Schema").optional<import("effect/Schema").String>;
67
+ readonly clientSecretSlot: import("effect/Schema").optional<import("effect/Schema").String>;
68
+ }>]>, import("effect/Schema").Struct<{
39
69
  readonly kind: import("effect/Schema").Literal<"header">;
40
70
  readonly headerName: import("effect/Schema").String;
41
71
  readonly secretId: import("effect/Schema").String;
42
72
  readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
73
+ readonly targetScope: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
74
+ readonly secretScopeId: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
43
75
  }>, import("effect/Schema").Struct<{
44
76
  readonly kind: import("effect/Schema").Literal<"oauth2">;
45
77
  readonly connectionId: import("effect/Schema").String;
46
78
  readonly clientIdSecretId: import("effect/Schema").optional<import("effect/Schema").String>;
47
79
  readonly clientSecretSecretId: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").String>>;
48
80
  }>]>>;
81
+ readonly credentialTargetScope: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
49
82
  }>, import("effect/Schema").Struct<{
83
+ readonly targetScope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
50
84
  readonly transport: import("effect/Schema").Literal<"stdio">;
51
85
  readonly name: import("effect/Schema").String;
52
86
  readonly command: import("effect/Schema").String;
@@ -57,42 +91,74 @@ export declare const McpClient: import("effect/unstable/reactivity/AtomHttpApi")
57
91
  }>]>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
58
92
  readonly toolCount: import("effect/Schema").Number;
59
93
  readonly namespace: import("effect/Schema").String;
60
- }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/api").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"removeSource", "POST", "/scopes/:scopeId/mcp/sources/remove", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
94
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/sdk").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"removeSource", "POST", "/scopes/:scopeId/mcp/sources/remove", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
61
95
  scopeId: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
62
96
  }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
63
97
  readonly namespace: import("effect/Schema").String;
64
98
  }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
65
99
  readonly removed: import("effect/Schema").Boolean;
66
- }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/api").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"refreshSource", "POST", "/scopes/:scopeId/mcp/sources/refresh", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
100
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/sdk").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"refreshSource", "POST", "/scopes/:scopeId/mcp/sources/refresh", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
67
101
  scopeId: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
68
102
  }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
69
103
  readonly namespace: import("effect/Schema").String;
70
104
  }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
71
105
  readonly toolCount: import("effect/Schema").Number;
72
- }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/api").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"getSource", "GET", "/scopes/:scopeId/mcp/sources/:namespace", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
106
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/sdk").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"getSource", "GET", "/scopes/:scopeId/mcp/sources/:namespace", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
73
107
  scopeId: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
74
108
  namespace: import("effect/Schema").String;
75
- }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").NullOr<typeof import("../sdk/stored-source").McpStoredSourceSchema>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/api").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"updateSource", "PATCH", "/scopes/:scopeId/mcp/sources/:namespace", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
109
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").NullOr<typeof import("../sdk/stored-source").McpStoredSourceSchema>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/sdk").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"updateSource", "PATCH", "/scopes/:scopeId/mcp/sources/:namespace", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
76
110
  scopeId: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
77
111
  namespace: import("effect/Schema").String;
78
112
  }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
113
+ readonly sourceScope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
79
114
  readonly name: import("effect/Schema").optional<import("effect/Schema").String>;
80
115
  readonly endpoint: import("effect/Schema").optional<import("effect/Schema").String>;
81
- readonly headers: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
116
+ readonly headers: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
82
117
  readonly secretId: import("effect/Schema").String;
83
118
  readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
84
- }>]>>>;
85
- readonly queryParams: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
119
+ readonly targetScope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
120
+ readonly secretScopeId: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
121
+ }>, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
86
122
  readonly secretId: import("effect/Schema").String;
87
123
  readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
88
- }>]>>>;
89
- readonly auth: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
124
+ }>]>, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
125
+ readonly kind: import("effect/Schema").Literal<"binding">;
126
+ readonly slot: import("effect/Schema").String;
127
+ readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
128
+ }>]>]>>>;
129
+ readonly queryParams: import("effect/Schema").optional<import("effect/Schema").$Record<import("effect/Schema").String, import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
130
+ readonly secretId: import("effect/Schema").String;
131
+ readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
132
+ readonly targetScope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
133
+ readonly secretScopeId: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
134
+ }>, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
135
+ readonly secretId: import("effect/Schema").String;
136
+ readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
137
+ }>]>, import("effect/Schema").Union<readonly [import("effect/Schema").String, import("effect/Schema").Struct<{
138
+ readonly kind: import("effect/Schema").Literal<"binding">;
139
+ readonly slot: import("effect/Schema").String;
140
+ readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
141
+ }>]>]>>>;
142
+ readonly credentialTargetScope: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
143
+ readonly auth: import("effect/Schema").optional<import("effect/Schema").Union<readonly [import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
90
144
  readonly kind: import("effect/Schema").Literal<"none">;
91
145
  }>, import("effect/Schema").Struct<{
146
+ readonly kind: import("effect/Schema").Literal<"header">;
147
+ readonly headerName: import("effect/Schema").String;
148
+ readonly secretSlot: import("effect/Schema").String;
149
+ readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
150
+ }>, import("effect/Schema").Struct<{
151
+ readonly kind: import("effect/Schema").Literal<"oauth2">;
152
+ readonly connectionSlot: import("effect/Schema").String;
153
+ readonly clientIdSlot: import("effect/Schema").optional<import("effect/Schema").String>;
154
+ readonly clientSecretSlot: import("effect/Schema").optional<import("effect/Schema").String>;
155
+ }>]>, import("effect/Schema").Struct<{
92
156
  readonly kind: import("effect/Schema").Literal<"header">;
93
157
  readonly headerName: import("effect/Schema").String;
94
158
  readonly secretId: import("effect/Schema").String;
95
159
  readonly prefix: import("effect/Schema").optional<import("effect/Schema").String>;
160
+ readonly targetScope: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
161
+ readonly secretScopeId: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
96
162
  }>, import("effect/Schema").Struct<{
97
163
  readonly kind: import("effect/Schema").Literal<"oauth2">;
98
164
  readonly connectionId: import("effect/Schema").String;
@@ -101,4 +167,35 @@ export declare const McpClient: import("effect/unstable/reactivity/AtomHttpApi")
101
167
  }>]>>;
102
168
  }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
103
169
  readonly updated: import("effect/Schema").Boolean;
104
- }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/api").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never>, false>>;
170
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/sdk").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"listSourceBindings", "GET", "/scopes/:scopeId/mcp/sources/:namespace/base/:sourceScopeId/bindings", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
171
+ scopeId: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
172
+ namespace: import("effect/Schema").String;
173
+ sourceScopeId: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
174
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").$Array<typeof import("../sdk").McpSourceBindingRef>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/sdk").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"setSourceBinding", "POST", "/scopes/:scopeId/mcp/source-bindings", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
175
+ scopeId: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
176
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
177
+ readonly sourceId: import("effect/Schema").String;
178
+ readonly sourceScope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
179
+ readonly scope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
180
+ readonly slot: import("effect/Schema").String;
181
+ readonly value: import("effect/Schema").Union<readonly [import("effect/Schema").Struct<{
182
+ readonly kind: import("effect/Schema").Literal<"text">;
183
+ readonly text: import("effect/Schema").String;
184
+ }>, import("effect/Schema").Struct<{
185
+ readonly kind: import("effect/Schema").Literal<"secret">;
186
+ readonly secretId: import("effect/Schema").brand<import("effect/Schema").String, "SecretId">;
187
+ readonly secretScopeId: import("effect/Schema").optional<import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">>;
188
+ }>, import("effect/Schema").Struct<{
189
+ readonly kind: import("effect/Schema").Literal<"connection">;
190
+ readonly connectionId: import("effect/Schema").brand<import("effect/Schema").String, "ConnectionId">;
191
+ }>]>;
192
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("../sdk").McpSourceBindingRef>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/sdk").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never> | import("effect/unstable/httpapi/HttpApiEndpoint").HttpApiEndpoint<"removeSourceBinding", "POST", "/scopes/:scopeId/mcp/source-bindings/remove", import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<import("effect/Schema").Struct<{
193
+ scopeId: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
194
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
195
+ readonly sourceId: import("effect/Schema").String;
196
+ readonly sourceScope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
197
+ readonly slot: import("effect/Schema").String;
198
+ readonly scope: import("effect/Schema").brand<import("effect/Schema").String, "ScopeId">;
199
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").StringTree<never>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<import("effect/Schema").Struct<{
200
+ readonly removed: import("effect/Schema").Boolean;
201
+ }>>, import("effect/unstable/httpapi/HttpApiEndpoint").Json<typeof import("@executor-js/sdk").InternalError | typeof import("../sdk/errors").McpConnectionError | typeof import("../sdk/errors").McpToolDiscoveryError>, never, never>, false>>;
@@ -1,4 +1,4 @@
1
1
  export { mcpSourcePlugin, createMcpSourcePlugin } from "./source-plugin";
2
2
  export type { McpSourcePluginOptions } from "./source-plugin";
3
3
  export { McpClient } from "./client";
4
- export { probeMcpEndpoint, addMcpSource, removeMcpSource, refreshMcpSource, } from "./atoms";
4
+ export { probeMcpEndpoint, addMcpSource, removeMcpSource, refreshMcpSource } from "./atoms";
@@ -1,2 +1,9 @@
1
- declare const _default: import("@executor-js/sdk/client").ClientPluginSpec<"mcp">;
2
- export default _default;
1
+ export interface McpClientConfig {
2
+ /**
3
+ * Mirrors `dangerouslyAllowStdioMCP` on the server-side plugin. When
4
+ * false, the AddMcpSource UI hides the stdio tab and stdio presets.
5
+ * Defaults to false — same default as the server flag.
6
+ */
7
+ readonly allowStdio?: boolean;
8
+ }
9
+ export default function createMcpClientPlugin(config?: McpClientConfig): import("@executor-js/sdk/client").ClientPluginSpec<"mcp">;