@atlassian/mcp-compressor 0.0.2

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.
@@ -0,0 +1,330 @@
1
+ import { generateClientArtifacts, normalizeSdkServers, startCompressedSession, startCompressedSessionWithAuthProviders, startCompressedSessionFromMcpConfig, } from "./rust_core.js";
2
+ function providerFromConfig(config) {
3
+ const provider = config.authProvider ?? config.auth_provider;
4
+ if (provider === undefined) {
5
+ return undefined;
6
+ }
7
+ if (typeof provider !== "function") {
8
+ throw new TypeError("authProvider must be a function");
9
+ }
10
+ return provider;
11
+ }
12
+ async function resolveAuthHeaders(config, options = {}) {
13
+ const headers = {};
14
+ const rawHeaders = config.headers;
15
+ if (rawHeaders && typeof rawHeaders === "object" && !Array.isArray(rawHeaders)) {
16
+ for (const [key, value] of Object.entries(rawHeaders)) {
17
+ headers[key] = String(value);
18
+ }
19
+ }
20
+ const provider = providerFromConfig(config);
21
+ if ((options.includeProvider ?? true) && provider !== undefined) {
22
+ const provided = await provider();
23
+ for (const [key, value] of Object.entries(provided)) {
24
+ headers[key] = String(value);
25
+ }
26
+ }
27
+ return headers;
28
+ }
29
+ async function normalizeServersWithProviders(servers) {
30
+ if (typeof servers === "string") {
31
+ const trimmed = servers.trim();
32
+ if (trimmed.startsWith("{")) {
33
+ return servers;
34
+ }
35
+ return { backends: [{ name: "default", commandOrUrl: servers }], providers: [] };
36
+ }
37
+ if (isLegacyBackendConfig(servers)) {
38
+ return {
39
+ backends: [await legacyBackendToNative("default", servers, { includeProvider: false })],
40
+ providers: [],
41
+ };
42
+ }
43
+ const backends = [];
44
+ const providers = [];
45
+ for (const [name, config] of Object.entries(servers)) {
46
+ if (typeof config === "object" && config !== null && "url" in config) {
47
+ const provider = providerFromConfig(config);
48
+ const backend = await sdkObjectToNative(name, config, { includeProvider: true });
49
+ if (provider !== undefined) {
50
+ backend.providerIndex = providers.length;
51
+ providers.push(provider);
52
+ }
53
+ backends.push(backend);
54
+ }
55
+ else if (typeof config === "object" && config !== null && "command" in config) {
56
+ backends.push(await sdkObjectToNative(name, config, {
57
+ includeProvider: false,
58
+ }));
59
+ }
60
+ else {
61
+ const normalized = normalizeSdkServers({ [name]: config });
62
+ backends.push(normalized[0]);
63
+ }
64
+ }
65
+ return { backends, providers };
66
+ }
67
+ export async function normalizeServers(servers) {
68
+ if (typeof servers === "string") {
69
+ const trimmed = servers.trim();
70
+ if (trimmed.startsWith("{")) {
71
+ return servers;
72
+ }
73
+ return [{ name: "default", commandOrUrl: servers }];
74
+ }
75
+ if (isLegacyBackendConfig(servers)) {
76
+ return [await legacyBackendToNative("default", servers)];
77
+ }
78
+ const normalized = [];
79
+ for (const [name, config] of Object.entries(servers)) {
80
+ if (typeof config === "object" && config !== null && ("url" in config || "command" in config)) {
81
+ normalized.push(await sdkObjectToNative(name, config));
82
+ }
83
+ else {
84
+ normalized.push(...normalizeSdkServers({ [name]: config }));
85
+ }
86
+ }
87
+ return normalized;
88
+ }
89
+ function isLegacyBackendConfig(value) {
90
+ return (typeof value === "object" && value !== null && "type" in value && typeof value.type === "string");
91
+ }
92
+ async function sdkObjectToNative(name, config, options = {}) {
93
+ if ("url" in config) {
94
+ const args = [];
95
+ const headers = await resolveAuthHeaders(config, options);
96
+ for (const [key, value] of Object.entries(headers)) {
97
+ args.push("-H", `${key}=${value}`);
98
+ }
99
+ if (Object.keys(headers).length > 0 &&
100
+ !(Array.isArray(config.args) && config.args.includes("--auth"))) {
101
+ args.push("--auth", "explicit-headers");
102
+ }
103
+ if (Array.isArray(config.args)) {
104
+ args.push(...config.args.map(String));
105
+ }
106
+ const backend = {
107
+ name,
108
+ commandOrUrl: String(config.url),
109
+ args,
110
+ };
111
+ const oauthAppName = config.oauthAppName ?? config.oauth_app_name;
112
+ if (oauthAppName !== undefined) {
113
+ backend.oauth_app_name = String(oauthAppName);
114
+ }
115
+ return backend;
116
+ }
117
+ if ("command" in config) {
118
+ const backend = {
119
+ name,
120
+ commandOrUrl: String(config.command),
121
+ args: Array.isArray(config.args) ? config.args.map(String) : [],
122
+ };
123
+ const oauthAppName = config.oauthAppName ?? config.oauth_app_name;
124
+ if (oauthAppName !== undefined) {
125
+ backend.oauth_app_name = String(oauthAppName);
126
+ }
127
+ return backend;
128
+ }
129
+ throw new Error(`server ${name} must define command or url`);
130
+ }
131
+ async function legacyBackendToNative(name, backend, options = {}) {
132
+ if (backend.type === "stdio") {
133
+ return { name, commandOrUrl: backend.command, args: backend.args ?? [] };
134
+ }
135
+ const args = [];
136
+ const headers = await resolveAuthHeaders(backend, options);
137
+ if (Object.keys(headers).length > 0) {
138
+ for (const [key, value] of Object.entries(headers)) {
139
+ args.push("-H", `${key}=${value}`);
140
+ }
141
+ args.push("--auth", "explicit-headers");
142
+ }
143
+ return { name, commandOrUrl: backend.url, args };
144
+ }
145
+ function transformMode(mode) {
146
+ if (mode === "compressed")
147
+ return null;
148
+ if (mode === "bash")
149
+ return "just-bash";
150
+ if (mode === "python" || mode === "typescript")
151
+ return "cli";
152
+ return mode;
153
+ }
154
+ export class CompressorProxy {
155
+ session;
156
+ defaultServer;
157
+ authProviders;
158
+ closed = false;
159
+ constructor(session, defaultServer, authProviders = []) {
160
+ this.session = session;
161
+ this.defaultServer = defaultServer;
162
+ this.authProviders = authProviders;
163
+ }
164
+ async refreshAuthProviders() {
165
+ await Promise.all(this.authProviders.map(async (provider, index) => {
166
+ const headers = await provider();
167
+ const materialized = {};
168
+ for (const [key, value] of Object.entries(headers)) {
169
+ materialized[key] = String(value);
170
+ }
171
+ this.session.updateAuthProviderHeaders(index, materialized);
172
+ }));
173
+ }
174
+ info() {
175
+ return this.session.info();
176
+ }
177
+ get bridgeUrl() {
178
+ return this.info().bridge_url;
179
+ }
180
+ get token() {
181
+ return this.info().token;
182
+ }
183
+ get tools() {
184
+ return this.info().frontend_tools.map((tool) => ({
185
+ name: tool.name,
186
+ description: tool.description,
187
+ inputSchema: tool.input_schema,
188
+ }));
189
+ }
190
+ get justBashProviders() {
191
+ return this.info().just_bash_providers.map((provider) => ({
192
+ providerName: provider.provider_name,
193
+ helpToolName: provider.help_tool_name,
194
+ tools: provider.tools.map((command) => ({
195
+ commandName: command.command_name,
196
+ backendToolName: command.backendToolName ??
197
+ command.backend_tool_name ??
198
+ command.tool_name ??
199
+ command.command_name,
200
+ description: command.description,
201
+ inputSchema: command.input_schema,
202
+ invokeToolName: command.invoke_tool_name,
203
+ })),
204
+ }));
205
+ }
206
+ async invokeWrapper(wrapperTool, toolInput) {
207
+ if (this.closed) {
208
+ throw new Error("Compressor proxy is closed");
209
+ }
210
+ await this.refreshAuthProviders();
211
+ const response = await fetch(`${this.bridgeUrl}/exec`, {
212
+ method: "POST",
213
+ headers: {
214
+ Authorization: `Bearer ${this.token}`,
215
+ "Content-Type": "application/json",
216
+ },
217
+ body: JSON.stringify({ tool: wrapperTool, input: toolInput }),
218
+ });
219
+ if (!response.ok) {
220
+ throw new Error(`Proxy invocation failed: ${response.status} ${await response.text()}`);
221
+ }
222
+ return { text: await response.text() };
223
+ }
224
+ schema(tool, options = {}) {
225
+ const server = options.server ?? this.defaultServer;
226
+ const matches = this.info().backend_tools_by_server.filter((item) => item.tool.name === tool &&
227
+ (server === null ||
228
+ server === undefined ||
229
+ (item.server_name ?? item.serverName) === server));
230
+ if (matches.length === 1) {
231
+ return matches[0]?.tool.input_schema ?? {};
232
+ }
233
+ if (matches.length === 0) {
234
+ throw new Error(`Backend tool not found: ${tool}`);
235
+ }
236
+ throw new Error("Multiple backend tools matched; specify a server");
237
+ }
238
+ async invoke(tool, toolInput = {}, options = {}) {
239
+ const server = options.server ?? this.defaultServer;
240
+ const wrapper = `${server ? `${server}_` : ""}invoke_tool`;
241
+ return (await this.invokeWrapper(wrapper, { tool_name: tool, tool_input: toolInput })).text;
242
+ }
243
+ close() {
244
+ this.closed = true;
245
+ this.session.close();
246
+ }
247
+ toExecutableTools() {
248
+ const result = {};
249
+ for (const tool of this.tools) {
250
+ result[tool.name] = {
251
+ name: tool.name,
252
+ description: tool.description ?? undefined,
253
+ inputSchema: tool.inputSchema,
254
+ execute: async (input = {}) => (await this.invokeWrapper(tool.name, input)).text,
255
+ };
256
+ }
257
+ return result;
258
+ }
259
+ writeClient(kind, outputDir, options = {}) {
260
+ const info = this.info();
261
+ return generateClientArtifacts(kind, {
262
+ cliName: options.name ?? this.defaultServer ?? "mcp",
263
+ bridgeUrl: info.bridge_url,
264
+ token: info.token,
265
+ tools: info.backend_tools.map((tool) => ({
266
+ name: tool.name,
267
+ description: tool.description,
268
+ inputSchema: tool.input_schema,
269
+ })),
270
+ outputDir,
271
+ sessionPid: 0,
272
+ });
273
+ }
274
+ writeCodeClient(options) {
275
+ const files = this.writeClient(options.language, options.outputDir, { name: options.name });
276
+ return {
277
+ language: options.language,
278
+ outputDir: options.outputDir,
279
+ files,
280
+ environment: options.language === "python" ? { PYTHONPATH: options.outputDir } : {},
281
+ };
282
+ }
283
+ }
284
+ export class CompressorClient {
285
+ options;
286
+ session = null;
287
+ mode;
288
+ authProviders = [];
289
+ constructor(options) {
290
+ this.options = options;
291
+ this.mode = options.mode ?? "compressed";
292
+ }
293
+ async connect() {
294
+ if (this.session) {
295
+ return new CompressorProxy(this.session, this.defaultServer(), this.authProviders);
296
+ }
297
+ const normalized = await normalizeServersWithProviders(this.options.servers);
298
+ const config = {
299
+ compressionLevel: this.options.compressionLevel ?? "medium",
300
+ serverName: this.options.serverName ?? null,
301
+ includeTools: this.options.includeTools ?? [],
302
+ excludeTools: this.options.excludeTools ?? [],
303
+ toonify: this.options.toonify ?? false,
304
+ transformMode: transformMode(this.mode),
305
+ };
306
+ this.authProviders = typeof normalized === "string" ? [] : normalized.providers;
307
+ this.session =
308
+ typeof normalized === "string"
309
+ ? await startCompressedSessionFromMcpConfig(config, normalized)
310
+ : normalized.providers.length > 0
311
+ ? await startCompressedSessionWithAuthProviders(config, normalized.backends, normalized.providers)
312
+ : await startCompressedSession(config, normalized.backends);
313
+ return new CompressorProxy(this.session, this.defaultServer(), this.authProviders);
314
+ }
315
+ async close() {
316
+ this.session?.close();
317
+ this.session = null;
318
+ }
319
+ defaultServer() {
320
+ const servers = this.options.servers;
321
+ if (typeof servers === "string") {
322
+ return servers.trim().startsWith("{") ? null : "default";
323
+ }
324
+ if (isLegacyBackendConfig(servers)) {
325
+ return "default";
326
+ }
327
+ const names = Object.keys(servers);
328
+ return names.length === 1 ? names[0] : null;
329
+ }
330
+ }
@@ -0,0 +1,100 @@
1
+ import { type NativeCompressedSession } from "./native.js";
2
+ export interface ToolSpec {
3
+ name: string;
4
+ description?: string | null;
5
+ inputSchema: Record<string, unknown>;
6
+ }
7
+ export declare function compressToolListing(level: string, tools: ToolSpec[]): string;
8
+ export declare function formatToolSchemaResponse(tool: ToolSpec): string;
9
+ export declare function parseToolArgv(tool: ToolSpec, argv: string[]): Record<string, unknown>;
10
+ export type ClientArtifactKind = "cli" | "python" | "typescript";
11
+ export interface ClientGeneratorConfig {
12
+ cliName: string;
13
+ bridgeUrl: string;
14
+ token: string;
15
+ tools: ToolSpec[];
16
+ sessionPid: number;
17
+ outputDir: string;
18
+ }
19
+ export declare function generateClientArtifacts(kind: ClientArtifactKind, config: ClientGeneratorConfig): string[];
20
+ export interface BackendConfig {
21
+ name: string;
22
+ commandOrUrl: string;
23
+ args?: string[];
24
+ }
25
+ export interface CompressedSessionConfig {
26
+ compressionLevel: string;
27
+ serverName?: string | null;
28
+ includeTools?: string[];
29
+ excludeTools?: string[];
30
+ toonify?: boolean;
31
+ transformMode?: string | null;
32
+ }
33
+ export interface JustBashCommandSpec {
34
+ command_name: string;
35
+ tool_name?: string;
36
+ backend_tool_name?: string;
37
+ backendToolName?: string;
38
+ description?: string | null;
39
+ input_schema: Record<string, unknown>;
40
+ invoke_tool_name: string;
41
+ }
42
+ export interface JustBashProviderSpec {
43
+ provider_name: string;
44
+ help_tool_name: string;
45
+ tools: JustBashCommandSpec[];
46
+ }
47
+ export interface CompressedSessionInfo {
48
+ bridge_url: string;
49
+ token: string;
50
+ frontend_tools: Array<{
51
+ name: string;
52
+ description?: string | null;
53
+ input_schema: Record<string, unknown>;
54
+ }>;
55
+ backend_tools: Array<{
56
+ name: string;
57
+ description?: string | null;
58
+ input_schema: Record<string, unknown>;
59
+ }>;
60
+ backend_tools_by_server: Array<{
61
+ server_name?: string;
62
+ serverName?: string;
63
+ tool: {
64
+ name: string;
65
+ description?: string | null;
66
+ input_schema: Record<string, unknown>;
67
+ };
68
+ }>;
69
+ just_bash_providers: JustBashProviderSpec[];
70
+ }
71
+ export declare class CompressedSession {
72
+ private readonly nativeSession;
73
+ constructor(nativeSession: NativeCompressedSession);
74
+ info(): CompressedSessionInfo;
75
+ close(): void;
76
+ updateAuthProviderHeaders(providerIndex: number, headers: Record<string, string>): void;
77
+ }
78
+ export declare function startCompressedSession(config: CompressedSessionConfig, backends: BackendConfig[]): Promise<CompressedSession>;
79
+ export interface ProviderBackendConfig extends BackendConfig {
80
+ providerIndex?: number;
81
+ }
82
+ export declare function startCompressedSessionWithAuthProviders(config: CompressedSessionConfig, backends: ProviderBackendConfig[], providers: Array<() => Record<string, string> | Promise<Record<string, string>>>): Promise<CompressedSession>;
83
+ export declare function startCompressedSessionFromMcpConfig(config: CompressedSessionConfig, mcpConfigJson: string): Promise<CompressedSession>;
84
+ export declare function normalizeSdkServers(servers: unknown): BackendConfig[];
85
+ export interface ParsedMcpServer {
86
+ name: string;
87
+ command: string;
88
+ args: string[];
89
+ env: Array<[string, string]>;
90
+ cli_prefix: string;
91
+ }
92
+ export declare function parseMcpConfig(configJson: string): ParsedMcpServer[];
93
+ export declare function rememberOAuthBackend(backendUri: string, backendName: string, storeDir: string): void;
94
+ export interface OAuthStoreEntry {
95
+ backend_name: string;
96
+ backend_uri: string;
97
+ store_dir: string;
98
+ }
99
+ export declare function listOAuthCredentials(): OAuthStoreEntry[];
100
+ export declare function clearOAuthCredentials(target?: string | null): string[];
@@ -0,0 +1,103 @@
1
+ import { loadNativeCore } from "./native.js";
2
+ function toNativeTool(tool) {
3
+ return {
4
+ name: tool.name,
5
+ description: tool.description ?? null,
6
+ input_schema: tool.inputSchema,
7
+ };
8
+ }
9
+ function stringify(value) {
10
+ return JSON.stringify(value);
11
+ }
12
+ export function compressToolListing(level, tools) {
13
+ return loadNativeCore().compressToolListingJson(level, stringify(tools.map(toNativeTool)));
14
+ }
15
+ export function formatToolSchemaResponse(tool) {
16
+ return loadNativeCore().formatToolSchemaResponseJson(stringify(toNativeTool(tool)));
17
+ }
18
+ export function parseToolArgv(tool, argv) {
19
+ return JSON.parse(loadNativeCore().parseToolArgvJson(stringify(toNativeTool(tool)), stringify(argv)));
20
+ }
21
+ function toNativeGeneratorConfig(config) {
22
+ return {
23
+ cli_name: config.cliName,
24
+ bridge_url: config.bridgeUrl,
25
+ token: config.token,
26
+ tools: config.tools.map(toNativeTool),
27
+ session_pid: config.sessionPid,
28
+ output_dir: config.outputDir,
29
+ };
30
+ }
31
+ export function generateClientArtifacts(kind, config) {
32
+ return JSON.parse(loadNativeCore().generateClientArtifactsJson(kind, stringify(toNativeGeneratorConfig(config))));
33
+ }
34
+ export class CompressedSession {
35
+ nativeSession;
36
+ constructor(nativeSession) {
37
+ this.nativeSession = nativeSession;
38
+ }
39
+ info() {
40
+ return JSON.parse(this.nativeSession.infoJson());
41
+ }
42
+ close() {
43
+ this.nativeSession.close();
44
+ }
45
+ updateAuthProviderHeaders(providerIndex, headers) {
46
+ this.nativeSession.updateAuthProviderHeadersJson(providerIndex, stringify(headers));
47
+ }
48
+ }
49
+ function toNativeSessionConfig(config) {
50
+ return {
51
+ compression_level: config.compressionLevel,
52
+ server_name: config.serverName ?? null,
53
+ include_tools: config.includeTools ?? [],
54
+ exclude_tools: config.excludeTools ?? [],
55
+ toonify: config.toonify ?? false,
56
+ transform_mode: config.transformMode ?? null,
57
+ };
58
+ }
59
+ function toNativeBackendConfig(backend) {
60
+ return {
61
+ name: backend.name,
62
+ command_or_url: backend.commandOrUrl,
63
+ args: backend.args ?? [],
64
+ };
65
+ }
66
+ export async function startCompressedSession(config, backends) {
67
+ const session = await loadNativeCore().startCompressedSessionJson(stringify(toNativeSessionConfig(config)), stringify(backends.map(toNativeBackendConfig)));
68
+ return new CompressedSession(session);
69
+ }
70
+ export async function startCompressedSessionWithAuthProviders(config, backends, providers) {
71
+ const nativeBackends = backends.map((backend) => ({
72
+ ...toNativeBackendConfig(backend),
73
+ provider_index: backend.providerIndex ?? null,
74
+ }));
75
+ const initialHeaders = await Promise.all(providers.map((provider) => provider()));
76
+ const session = await loadNativeCore().startCompressedSessionWithProviderBackendsJson(stringify(toNativeSessionConfig(config)), stringify(nativeBackends), stringify(initialHeaders));
77
+ return new CompressedSession(session);
78
+ }
79
+ export async function startCompressedSessionFromMcpConfig(config, mcpConfigJson) {
80
+ const session = await loadNativeCore().startCompressedSessionFromMcpConfigJson(stringify(toNativeSessionConfig(config)), mcpConfigJson);
81
+ return new CompressedSession(session);
82
+ }
83
+ export function normalizeSdkServers(servers) {
84
+ const raw = JSON.parse(loadNativeCore().normalizeServersJson(stringify(servers)));
85
+ return raw.map((backend) => ({
86
+ name: backend.name,
87
+ commandOrUrl: backend.command_or_url,
88
+ args: backend.args ?? [],
89
+ ...(backend.oauth_app_name == null ? {} : { oauth_app_name: backend.oauth_app_name }),
90
+ }));
91
+ }
92
+ export function parseMcpConfig(configJson) {
93
+ return JSON.parse(loadNativeCore().parseMcpConfigJson(configJson));
94
+ }
95
+ export function rememberOAuthBackend(backendUri, backendName, storeDir) {
96
+ loadNativeCore().rememberOauthBackendJson(backendUri, backendName, storeDir);
97
+ }
98
+ export function listOAuthCredentials() {
99
+ return JSON.parse(loadNativeCore().listOauthCredentialsJson());
100
+ }
101
+ export function clearOAuthCredentials(target) {
102
+ return JSON.parse(loadNativeCore().clearOauthCredentialsJson(target ?? null));
103
+ }
@@ -0,0 +1,34 @@
1
+ export type CompressionLevel = "low" | "medium" | "high" | "max";
2
+ export interface StdioBackendConfig {
3
+ type: "stdio";
4
+ command: string;
5
+ args?: string[];
6
+ cwd?: string;
7
+ env?: Record<string, string>;
8
+ }
9
+ export interface HttpBackendConfig {
10
+ type: "http";
11
+ url: string;
12
+ headers?: Record<string, string>;
13
+ timeoutMs?: number;
14
+ }
15
+ export interface SseBackendConfig {
16
+ type: "sse";
17
+ url: string;
18
+ headers?: Record<string, string>;
19
+ timeoutMs?: number;
20
+ }
21
+ export type BackendConfig = StdioBackendConfig | HttpBackendConfig | SseBackendConfig;
22
+ export interface JsonConfigServerEntry {
23
+ command?: string;
24
+ args?: string[];
25
+ cwd?: string;
26
+ env?: Record<string, string>;
27
+ /** May be a `URL` object or a string — `normalizeConfigServer` coerces to string. */
28
+ url?: URL | string;
29
+ headers?: Record<string, string>;
30
+ transport?: "sse";
31
+ }
32
+ export interface MCPConfigShape {
33
+ mcpServers: Record<string, JsonConfigServerEntry>;
34
+ }
package/dist/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare const VERSION: `${number}.${number}.${number}`;
@@ -0,0 +1,4 @@
1
+ import { createRequire } from "node:module";
2
+ const require = createRequire(import.meta.url);
3
+ const pkg = require("../package.json");
4
+ export const VERSION = pkg.version;
@@ -0,0 +1,31 @@
1
+ /* auto-generated by NAPI-RS */
2
+ /* eslint-disable */
3
+ export declare class NativeCompressedSession {
4
+ infoJson(): string
5
+ close(): void
6
+ updateAuthProviderHeadersJson(providerIndex: number, headersJson: string): void
7
+ }
8
+
9
+ export declare function clearOauthCredentialsJson(target?: string | undefined | null): string
10
+
11
+ export declare function compressToolListingJson(level: string, toolsJson: string): string
12
+
13
+ export declare function formatToolSchemaResponseJson(toolJson: string): string
14
+
15
+ export declare function generateClientArtifactsJson(kind: string, configJson: string): string
16
+
17
+ export declare function listOauthCredentialsJson(): string
18
+
19
+ export declare function normalizeServersJson(serversJson: string): string
20
+
21
+ export declare function parseMcpConfigJson(configJson: string): string
22
+
23
+ export declare function parseToolArgvJson(toolJson: string, argvJson: string): string
24
+
25
+ export declare function rememberOauthBackendJson(backendUri: string, backendName: string, storeDir: string): void
26
+
27
+ export declare function startCompressedSessionFromMcpConfigJson(configJson: string, mcpConfigJson: string): Promise<NativeCompressedSession>
28
+
29
+ export declare function startCompressedSessionJson(configJson: string, backendsJson: string): Promise<NativeCompressedSession>
30
+
31
+ export declare function startCompressedSessionWithProviderBackendsJson(configJson: string, backendsJson: string, providersJson: string): Promise<NativeCompressedSession>
Binary file