@metorial/sdk 2.0.2 → 2.1.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.
- package/dist/index.cjs +32 -240
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +21 -143
- package/dist/index.d.ts +21 -143
- package/dist/index.js +32 -243
- package/dist/index.js.map +1 -1
- package/package.json +12 -12
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
3
5
|
var core = require('@metorial/core');
|
|
4
6
|
var mcpSession = require('@metorial/mcp-session');
|
|
5
7
|
|
|
@@ -11,245 +13,68 @@ var Metorial = class {
|
|
|
11
13
|
if (mcpHost && !apiHost) {
|
|
12
14
|
apiHost = mcpHost.replace("://connect.", "://api.");
|
|
13
15
|
}
|
|
14
|
-
this.
|
|
15
|
-
this.magnetarSdk = core.createMetorialMagnetarCoreSDK({ ...init, apiHost, mcpHost });
|
|
16
|
+
this.sdk = core.createMetorialCoreSDK({ ...init, apiHost, mcpHost });
|
|
16
17
|
}
|
|
17
|
-
// ── Magnetar (default) ───────────────────────────────────────────
|
|
18
18
|
get providers() {
|
|
19
|
-
return this.
|
|
19
|
+
return this.sdk.providers;
|
|
20
20
|
}
|
|
21
21
|
get providerDeployments() {
|
|
22
|
-
let deployments = this.
|
|
22
|
+
let deployments = this.sdk.providerDeployments;
|
|
23
23
|
Object.assign(deployments.setupSessions, {
|
|
24
24
|
waitForCompletion: this.waitForSetupSession.bind(this)
|
|
25
25
|
});
|
|
26
26
|
return deployments;
|
|
27
27
|
}
|
|
28
28
|
get sessions() {
|
|
29
|
-
return this.
|
|
29
|
+
return this.sdk.sessions;
|
|
30
30
|
}
|
|
31
31
|
get sessionTemplates() {
|
|
32
|
-
return this.
|
|
32
|
+
return this.sdk.sessionTemplates;
|
|
33
33
|
}
|
|
34
34
|
get providerRuns() {
|
|
35
|
-
return this.
|
|
35
|
+
return this.sdk.providerRuns;
|
|
36
36
|
}
|
|
37
37
|
get instance() {
|
|
38
|
-
return this.
|
|
38
|
+
return this.sdk.instance;
|
|
39
39
|
}
|
|
40
40
|
get publishers() {
|
|
41
|
-
return this.
|
|
41
|
+
return this.sdk.publishers;
|
|
42
42
|
}
|
|
43
43
|
get providerCategories() {
|
|
44
|
-
return this.
|
|
44
|
+
return this.sdk.providerCategories;
|
|
45
45
|
}
|
|
46
46
|
get providerCollections() {
|
|
47
|
-
return this.
|
|
47
|
+
return this.sdk.providerCollections;
|
|
48
48
|
}
|
|
49
49
|
get providerGroups() {
|
|
50
|
-
return this.
|
|
50
|
+
return this.sdk.providerGroups;
|
|
51
51
|
}
|
|
52
52
|
get providerListings() {
|
|
53
|
-
return this.
|
|
53
|
+
return this.sdk.providerListings;
|
|
54
54
|
}
|
|
55
55
|
get providerSetupSessions() {
|
|
56
|
-
return this.
|
|
56
|
+
return this.sdk.providerSetupSessions;
|
|
57
57
|
}
|
|
58
58
|
get toolCalls() {
|
|
59
|
-
return this.
|
|
59
|
+
return this.sdk.toolCalls;
|
|
60
60
|
}
|
|
61
61
|
get customProviders() {
|
|
62
|
-
return this.
|
|
63
|
-
}
|
|
64
|
-
// ── Backward compat (Pulsar endpoints at top level) ──────────────
|
|
65
|
-
get servers() {
|
|
66
|
-
return this.pulsarSdk.servers;
|
|
67
|
-
}
|
|
68
|
-
get secrets() {
|
|
69
|
-
return this.pulsarSdk.secrets;
|
|
70
|
-
}
|
|
71
|
-
get oauth() {
|
|
72
|
-
return {
|
|
73
|
-
...this.pulsarSdk.oauth,
|
|
74
|
-
waitForCompletion: this.waitForOAuthCompletion.bind(this)
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
get _config() {
|
|
78
|
-
return this.pulsarSdk._config;
|
|
79
|
-
}
|
|
80
|
-
// ── v1 namespace (legacy Pulsar) ─────────────────────────────────
|
|
81
|
-
get v1() {
|
|
82
|
-
let pulsarSdk = this.pulsarSdk;
|
|
83
|
-
let self = this;
|
|
84
|
-
return {
|
|
85
|
-
get instance() {
|
|
86
|
-
return pulsarSdk.instance;
|
|
87
|
-
},
|
|
88
|
-
get secrets() {
|
|
89
|
-
return pulsarSdk.secrets;
|
|
90
|
-
},
|
|
91
|
-
get servers() {
|
|
92
|
-
return pulsarSdk.servers;
|
|
93
|
-
},
|
|
94
|
-
get sessions() {
|
|
95
|
-
return pulsarSdk.sessions;
|
|
96
|
-
},
|
|
97
|
-
get oauth() {
|
|
98
|
-
return self.oauth;
|
|
99
|
-
},
|
|
100
|
-
get _config() {
|
|
101
|
-
return pulsarSdk._config;
|
|
102
|
-
},
|
|
103
|
-
mcp: {
|
|
104
|
-
createSession: (init) => new mcpSession.MetorialMcpSession(pulsarSdk, init),
|
|
105
|
-
withSession: self._pulsarWithSession.bind(self),
|
|
106
|
-
withProviderSession: self._pulsarWithProviderSession.bind(self),
|
|
107
|
-
createConnection: self._pulsarCreateMcpConnection.bind(self)
|
|
108
|
-
},
|
|
109
|
-
withSession: self._pulsarWithSession.bind(self),
|
|
110
|
-
withProviderSession: self._pulsarWithProviderSession.bind(self),
|
|
111
|
-
createMcpConnection: self._pulsarCreateMcpConnection.bind(self)
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
// ── MCP (Magnetar default) ───────────────────────────────────────
|
|
115
|
-
get mcp() {
|
|
116
|
-
return {
|
|
117
|
-
createSession: (init) => new mcpSession.MetorialMagnetarMcpSession(this.magnetarSdk, init),
|
|
118
|
-
withSession: this.withSession.bind(this),
|
|
119
|
-
withProviderSession: this.withProviderSession.bind(this),
|
|
120
|
-
createConnection: this.createMcpConnection.bind(this)
|
|
121
|
-
};
|
|
62
|
+
return this.sdk.customProviders;
|
|
122
63
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
let session = new mcpSession.MetorialMagnetarMcpSession(this.magnetarSdk, init);
|
|
128
|
-
return await session.getClient();
|
|
129
|
-
}
|
|
130
|
-
async withSession(init, action) {
|
|
131
|
-
let session = new mcpSession.MetorialMagnetarMcpSession(this.magnetarSdk, init);
|
|
132
|
-
try {
|
|
133
|
-
return await action(session);
|
|
134
|
-
} finally {
|
|
135
|
-
await session.close();
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
async withProviderSession(provider, init, action) {
|
|
139
|
-
if (init.streaming) {
|
|
140
|
-
return this.withMagnetarStreamingSession(provider, init, action);
|
|
141
|
-
}
|
|
142
|
-
return this.withSession(init, async (session) => {
|
|
143
|
-
let providerData = await provider(session);
|
|
144
|
-
return action({
|
|
145
|
-
...providerData,
|
|
146
|
-
session,
|
|
147
|
-
getSession: session.getSession.bind(session),
|
|
148
|
-
getCapabilities: session.getCapabilities.bind(session),
|
|
149
|
-
getToolManager: session.getToolManager.bind(session),
|
|
150
|
-
closeSession: async () => {
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
async withMagnetarStreamingSession(provider, init, action) {
|
|
156
|
-
let session = new mcpSession.MetorialMagnetarMcpSession(this.magnetarSdk, init);
|
|
157
|
-
let sessionClosed = false;
|
|
158
|
-
const closeSession = async () => {
|
|
159
|
-
if (!sessionClosed) {
|
|
160
|
-
sessionClosed = true;
|
|
161
|
-
await session.close();
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
try {
|
|
165
|
-
let providerData = await provider(session);
|
|
166
|
-
let result = await action({
|
|
167
|
-
...providerData,
|
|
168
|
-
session,
|
|
169
|
-
getSession: session.getSession.bind(session),
|
|
170
|
-
getCapabilities: session.getCapabilities.bind(session),
|
|
171
|
-
getToolManager: session.getToolManager.bind(session),
|
|
172
|
-
closeSession
|
|
173
|
-
});
|
|
174
|
-
let timeout = setTimeout(async () => {
|
|
175
|
-
if (!sessionClosed) {
|
|
176
|
-
await closeSession();
|
|
177
|
-
}
|
|
178
|
-
}, 6e4);
|
|
179
|
-
timeout.unref();
|
|
180
|
-
return result;
|
|
181
|
-
} catch (error) {
|
|
182
|
-
await closeSession();
|
|
183
|
-
throw error;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
// ── Pulsar MCP helpers (used by v1) ──────────────────────────────
|
|
187
|
-
async _pulsarCreateMcpConnection(init) {
|
|
188
|
-
let session = new mcpSession.MetorialMcpSession(this.pulsarSdk, {
|
|
189
|
-
serverDeployments: [init]
|
|
190
|
-
});
|
|
191
|
-
let deployments = await session.getServerDeployments();
|
|
192
|
-
return await session.getClient({
|
|
193
|
-
deploymentId: deployments[0].id
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
async _pulsarWithSession(init, action) {
|
|
197
|
-
let session = new mcpSession.MetorialMcpSession(this.pulsarSdk, init);
|
|
198
|
-
try {
|
|
199
|
-
return await action(session);
|
|
200
|
-
} finally {
|
|
201
|
-
await session.close();
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
async _pulsarWithProviderSession(provider, init, action) {
|
|
205
|
-
if (init.streaming) {
|
|
206
|
-
return this.withStreamingSession(provider, init, action);
|
|
207
|
-
}
|
|
208
|
-
return this._pulsarWithSession(init, async (session) => {
|
|
209
|
-
let providerData = await provider(session);
|
|
210
|
-
return action({
|
|
211
|
-
...providerData,
|
|
212
|
-
session,
|
|
213
|
-
getSession: session.getSession.bind(session),
|
|
214
|
-
getCapabilities: session.getCapabilities.bind(session),
|
|
215
|
-
getClient: session.getClient.bind(session),
|
|
216
|
-
getServerDeployments: session.getServerDeployments.bind(session),
|
|
217
|
-
getToolManager: session.getToolManager.bind(session)
|
|
218
|
-
});
|
|
64
|
+
async connect(options) {
|
|
65
|
+
let session = await mcpSession.MetorialMcpSession.create(this.sdk, {
|
|
66
|
+
providers: options.providers,
|
|
67
|
+
client: options.client
|
|
219
68
|
});
|
|
69
|
+
return options.adapter.__resolve(session);
|
|
220
70
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
let
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
|
-
try {
|
|
231
|
-
let providerData = await provider(session);
|
|
232
|
-
let result = await action({
|
|
233
|
-
...providerData,
|
|
234
|
-
session,
|
|
235
|
-
getSession: session.getSession.bind(session),
|
|
236
|
-
getCapabilities: session.getCapabilities.bind(session),
|
|
237
|
-
getClient: session.getClient.bind(session),
|
|
238
|
-
getServerDeployments: session.getServerDeployments.bind(session),
|
|
239
|
-
getToolManager: session.getToolManager.bind(session),
|
|
240
|
-
closeSession
|
|
241
|
-
});
|
|
242
|
-
let timeout = setTimeout(async () => {
|
|
243
|
-
if (!sessionClosed) {
|
|
244
|
-
await closeSession();
|
|
245
|
-
}
|
|
246
|
-
}, 6e4);
|
|
247
|
-
timeout.unref();
|
|
248
|
-
return result;
|
|
249
|
-
} catch (error) {
|
|
250
|
-
await closeSession();
|
|
251
|
-
throw error;
|
|
252
|
-
}
|
|
71
|
+
/** @deprecated Use `metorial.connect()` instead. */
|
|
72
|
+
async withProviderSession(adapter, init, action) {
|
|
73
|
+
let session = await mcpSession.MetorialMcpSession.create(this.sdk, init);
|
|
74
|
+
let resolved = typeof adapter === "function" ? adapter() : adapter;
|
|
75
|
+
let adapterResult = await resolved.__resolve(session);
|
|
76
|
+
return action({ ...adapterResult, closeSession: async () => {
|
|
77
|
+
} });
|
|
253
78
|
}
|
|
254
79
|
async waitForSetupSession(sessions, options) {
|
|
255
80
|
var _a, _b;
|
|
@@ -266,7 +91,7 @@ var Metorial = class {
|
|
|
266
91
|
}
|
|
267
92
|
try {
|
|
268
93
|
let statuses = await Promise.all(
|
|
269
|
-
sessionList.map((s) => this.
|
|
94
|
+
sessionList.map((s) => this.sdk.providerDeployments.setupSessions.get(s.id))
|
|
270
95
|
);
|
|
271
96
|
let failed = statuses.filter((s) => s.status === "failed");
|
|
272
97
|
if (failed.length > 0) {
|
|
@@ -285,43 +110,10 @@ var Metorial = class {
|
|
|
285
110
|
}
|
|
286
111
|
}
|
|
287
112
|
}
|
|
288
|
-
async waitForOAuthCompletion(sessions, options) {
|
|
289
|
-
var _a, _b;
|
|
290
|
-
let pollInterval = Math.max((_a = options == null ? void 0 : options.pollInterval) != null ? _a : 5e3, 2e3);
|
|
291
|
-
let timeout = (_b = options == null ? void 0 : options.timeout) != null ? _b : 6e5;
|
|
292
|
-
let startTime = Date.now();
|
|
293
|
-
if (sessions.length === 0) {
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
while (true) {
|
|
297
|
-
if (Date.now() - startTime > timeout) {
|
|
298
|
-
throw new Error(`OAuth authentication timeout after ${timeout / 1e3} seconds`);
|
|
299
|
-
}
|
|
300
|
-
try {
|
|
301
|
-
let statuses = await Promise.all(
|
|
302
|
-
sessions.map((session) => this.oauth.sessions.get(session.id))
|
|
303
|
-
);
|
|
304
|
-
let allCompleted = statuses.every((status) => status.status === "completed");
|
|
305
|
-
if (allCompleted) {
|
|
306
|
-
return;
|
|
307
|
-
}
|
|
308
|
-
let failedSessions = statuses.filter((status) => status.status === "failed");
|
|
309
|
-
if (failedSessions.length > 0) {
|
|
310
|
-
throw new Error(
|
|
311
|
-
`OAuth authentication failed for ${failedSessions.length} session(s)`
|
|
312
|
-
);
|
|
313
|
-
}
|
|
314
|
-
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
315
|
-
} catch (error) {
|
|
316
|
-
if (error instanceof Error && (error.message.includes("OAuth authentication failed") || error.message.includes("OAuth authentication timeout"))) {
|
|
317
|
-
throw error;
|
|
318
|
-
}
|
|
319
|
-
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
113
|
};
|
|
114
|
+
var metorial_default = Metorial;
|
|
324
115
|
|
|
325
116
|
exports.Metorial = Metorial;
|
|
117
|
+
exports.default = metorial_default;
|
|
326
118
|
//# sourceMappingURL=index.cjs.map
|
|
327
119
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/metorial.ts"],"names":["createMetorialPulsarCoreSDK","createMetorialMagnetarCoreSDK","MetorialMcpSession","MetorialMagnetarMcpSession"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n MetorialPulsarCoreSDK,\n createMetorialPulsarCoreSDK,\n MetorialMagnetarCoreSDK,\n createMetorialMagnetarCoreSDK\n} from '@metorial/core';\nimport {\n MetorialMcpSession,\n MetorialMcpSessionInit,\n MetorialMcpSessionInitServerDeployments,\n MetorialMagnetarMcpSession,\n MetorialMagnetarMcpSessionInit\n} from '@metorial/mcp-session';\n\nexport type {\n MetorialMcpSession,\n MetorialMcpSessionInit,\n MetorialMcpSessionInitServerDeployments,\n MetorialMagnetarMcpSession,\n MetorialMagnetarMcpSessionInit\n} from '@metorial/mcp-session';\n\nexport class Metorial {\n private readonly pulsarSdk: MetorialPulsarCoreSDK;\n private readonly magnetarSdk: MetorialMagnetarCoreSDK;\n\n constructor(init: Omit<Parameters<typeof createMetorialPulsarCoreSDK>[0], 'apiVersion'>) {\n let apiHost = init.apiHost;\n let mcpHost = init.mcpHost;\n\n // Derive apiHost from mcpHost if only mcpHost is provided\n if (mcpHost && !apiHost) {\n apiHost = mcpHost.replace('://connect.', '://api.');\n }\n\n // v1 (pulsar): mcp.<domain> pattern — let mcpSession.ts derive it from apiHost\n this.pulsarSdk = createMetorialPulsarCoreSDK({ ...init, apiHost });\n\n // v2 (magnetar): connect.<domain> pattern\n this.magnetarSdk = createMetorialMagnetarCoreSDK({ ...init, apiHost, mcpHost });\n }\n\n // ── Magnetar (default) ───────────────────────────────────────────\n\n get providers() {\n return this.magnetarSdk.providers;\n }\n\n get providerDeployments() {\n let deployments = this.magnetarSdk.providerDeployments;\n Object.assign(deployments.setupSessions, {\n waitForCompletion: this.waitForSetupSession.bind(this)\n });\n return deployments;\n }\n\n get sessions() {\n return this.magnetarSdk.sessions;\n }\n\n get sessionTemplates() {\n return this.magnetarSdk.sessionTemplates;\n }\n\n get providerRuns() {\n return this.magnetarSdk.providerRuns;\n }\n\n get instance() {\n return this.magnetarSdk.instance;\n }\n\n get publishers() {\n return this.magnetarSdk.publishers;\n }\n\n get providerCategories() {\n return this.magnetarSdk.providerCategories;\n }\n\n get providerCollections() {\n return this.magnetarSdk.providerCollections;\n }\n\n get providerGroups() {\n return this.magnetarSdk.providerGroups;\n }\n\n get providerListings() {\n return this.magnetarSdk.providerListings;\n }\n\n get providerSetupSessions() {\n return this.magnetarSdk.providerSetupSessions;\n }\n\n get toolCalls() {\n return this.magnetarSdk.toolCalls;\n }\n\n get customProviders() {\n return this.magnetarSdk.customProviders;\n }\n\n // ── Backward compat (Pulsar endpoints at top level) ──────────────\n\n get servers() {\n return this.pulsarSdk.servers;\n }\n\n get secrets() {\n return this.pulsarSdk.secrets;\n }\n\n get oauth(): typeof this.pulsarSdk.oauth & {\n waitForCompletion: (\n sessions: Array<{ id: string }>,\n options?: {\n pollInterval?: number;\n timeout?: number;\n }\n ) => Promise<void>;\n } {\n return {\n ...this.pulsarSdk.oauth,\n waitForCompletion: this.waitForOAuthCompletion.bind(this)\n };\n }\n\n get _config() {\n return this.pulsarSdk._config;\n }\n\n // ── v1 namespace (legacy Pulsar) ─────────────────────────────────\n\n get v1() {\n let pulsarSdk = this.pulsarSdk;\n let self = this;\n return {\n get instance() {\n return pulsarSdk.instance;\n },\n get secrets() {\n return pulsarSdk.secrets;\n },\n get servers() {\n return pulsarSdk.servers;\n },\n get sessions() {\n return pulsarSdk.sessions;\n },\n get oauth() {\n return self.oauth;\n },\n get _config() {\n return pulsarSdk._config;\n },\n mcp: {\n createSession: (init: MetorialMcpSessionInit) =>\n new MetorialMcpSession(pulsarSdk, init),\n withSession: self._pulsarWithSession.bind(self),\n withProviderSession: self._pulsarWithProviderSession.bind(self),\n createConnection: self._pulsarCreateMcpConnection.bind(self)\n },\n withSession: self._pulsarWithSession.bind(self),\n withProviderSession: self._pulsarWithProviderSession.bind(self),\n createMcpConnection: self._pulsarCreateMcpConnection.bind(self)\n };\n }\n\n // ── MCP (Magnetar default) ───────────────────────────────────────\n\n get mcp() {\n return {\n createSession: (init: MetorialMagnetarMcpSessionInit) =>\n new MetorialMagnetarMcpSession(this.magnetarSdk, init),\n withSession: this.withSession.bind(this),\n withProviderSession: this.withProviderSession.bind(this),\n createConnection: this.createMcpConnection.bind(this)\n };\n }\n\n session(\n init: MetorialMagnetarMcpSessionInit\n ): MetorialMagnetarMcpSession {\n return new MetorialMagnetarMcpSession(this.magnetarSdk, init);\n }\n\n async createMcpConnection(\n init: MetorialMagnetarMcpSessionInit\n ) {\n let session = new MetorialMagnetarMcpSession(this.magnetarSdk, init);\n return await session.getClient();\n }\n\n async withSession<T>(\n init: MetorialMagnetarMcpSessionInit,\n action: (session: MetorialMagnetarMcpSession) => Promise<T>\n ): Promise<T> {\n let session = new MetorialMagnetarMcpSession(this.magnetarSdk, init);\n try {\n return await action(session);\n } finally {\n await session.close();\n }\n }\n\n async withProviderSession<P, T>(\n provider: (session: MetorialMagnetarMcpSession) => Promise<P>,\n init: (MetorialMagnetarMcpSessionInit) & { streaming?: boolean },\n action: (\n input: P & {\n session: MetorialMagnetarMcpSession;\n getSession: MetorialMagnetarMcpSession['getSession'];\n getCapabilities: MetorialMagnetarMcpSession['getCapabilities'];\n getToolManager: MetorialMagnetarMcpSession['getToolManager'];\n closeSession: () => Promise<void>;\n }\n ) => Promise<T>\n ): Promise<T> {\n if (init.streaming) {\n return this.withMagnetarStreamingSession(provider, init, action);\n }\n\n return this.withSession(init, async session => {\n let providerData = await provider(session);\n\n return action({\n ...providerData,\n session,\n getSession: session.getSession.bind(session),\n getCapabilities: session.getCapabilities.bind(session),\n getToolManager: session.getToolManager.bind(session),\n closeSession: async () => {}\n });\n });\n }\n\n private async withMagnetarStreamingSession<P, T>(\n provider: (session: MetorialMagnetarMcpSession) => Promise<P>,\n init: MetorialMagnetarMcpSessionInit,\n action: (\n input: P & {\n session: MetorialMagnetarMcpSession;\n getSession: MetorialMagnetarMcpSession['getSession'];\n getCapabilities: MetorialMagnetarMcpSession['getCapabilities'];\n getToolManager: MetorialMagnetarMcpSession['getToolManager'];\n closeSession: () => Promise<void>;\n }\n ) => Promise<T>\n ): Promise<T> {\n let session = new MetorialMagnetarMcpSession(this.magnetarSdk, init);\n let sessionClosed = false;\n\n const closeSession = async () => {\n if (!sessionClosed) {\n sessionClosed = true;\n await session.close();\n }\n };\n\n try {\n let providerData = await provider(session);\n\n let result = await action({\n ...providerData,\n session,\n getSession: session.getSession.bind(session),\n getCapabilities: session.getCapabilities.bind(session),\n getToolManager: session.getToolManager.bind(session),\n closeSession\n });\n\n let timeout = setTimeout(async () => {\n if (!sessionClosed) {\n await closeSession();\n }\n }, 60000);\n timeout.unref();\n\n return result;\n } catch (error) {\n await closeSession();\n throw error;\n }\n }\n\n // ── Pulsar MCP helpers (used by v1) ──────────────────────────────\n\n async _pulsarCreateMcpConnection(init: MetorialMcpSessionInitServerDeployments[number]) {\n let session = new MetorialMcpSession(this.pulsarSdk, {\n serverDeployments: [init]\n });\n\n let deployments = await session.getServerDeployments();\n\n return await session.getClient({\n deploymentId: deployments[0].id\n });\n }\n\n async _pulsarWithSession<T>(\n init: MetorialMcpSessionInit,\n action: (session: MetorialMcpSession) => Promise<T>\n ): Promise<T> {\n let session = new MetorialMcpSession(this.pulsarSdk, init);\n try {\n return await action(session);\n } finally {\n await session.close();\n }\n }\n\n async _pulsarWithProviderSession<P, T>(\n provider: (session: MetorialMcpSession) => Promise<P>,\n init: MetorialMcpSessionInit & { streaming?: boolean },\n action: (\n input: P & {\n session: MetorialMcpSession;\n getSession: MetorialMcpSession['getSession'];\n getCapabilities: MetorialMcpSession['getCapabilities'];\n getClient: MetorialMcpSession['getClient'];\n getServerDeployments: MetorialMcpSession['getServerDeployments'];\n getToolManager: MetorialMcpSession['getToolManager'];\n }\n ) => Promise<T>\n ): Promise<T> {\n if (init.streaming) {\n return this.withStreamingSession(provider, init, action);\n }\n\n return this._pulsarWithSession(init, async session => {\n let providerData = await provider(session);\n\n return action({\n ...providerData,\n session,\n getSession: session.getSession.bind(session),\n getCapabilities: session.getCapabilities.bind(session),\n getClient: session.getClient.bind(session),\n getServerDeployments: session.getServerDeployments.bind(session),\n getToolManager: session.getToolManager.bind(session)\n });\n });\n }\n\n private async withStreamingSession<P, T>(\n provider: (session: MetorialMcpSession) => Promise<P>,\n init: MetorialMcpSessionInit,\n action: (\n input: P & {\n session: MetorialMcpSession;\n getSession: MetorialMcpSession['getSession'];\n getCapabilities: MetorialMcpSession['getCapabilities'];\n getClient: MetorialMcpSession['getClient'];\n getServerDeployments: MetorialMcpSession['getServerDeployments'];\n getToolManager: MetorialMcpSession['getToolManager'];\n closeSession: () => Promise<void>;\n }\n ) => Promise<T>\n ): Promise<T> {\n let session = new MetorialMcpSession(this.pulsarSdk, init);\n let sessionClosed = false;\n\n const closeSession = async () => {\n if (!sessionClosed) {\n sessionClosed = true;\n await session.close();\n }\n };\n\n try {\n let providerData = await provider(session);\n\n let result = await action({\n ...providerData,\n session,\n getSession: session.getSession.bind(session),\n getCapabilities: session.getCapabilities.bind(session),\n getClient: session.getClient.bind(session),\n getServerDeployments: session.getServerDeployments.bind(session),\n getToolManager: session.getToolManager.bind(session),\n closeSession\n });\n\n let timeout = setTimeout(async () => {\n if (!sessionClosed) {\n await closeSession();\n }\n }, 60000);\n timeout.unref();\n\n return result;\n } catch (error) {\n await closeSession();\n throw error;\n }\n }\n\n async waitForSetupSession(\n sessions: { id: string } | Array<{ id: string }>,\n options?: {\n pollInterval?: number;\n timeout?: number;\n }\n ) {\n let sessionList = Array.isArray(sessions) ? sessions : [sessions];\n let pollInterval = Math.max(options?.pollInterval ?? 5000, 2000);\n let timeout = options?.timeout ?? 600000;\n let startTime = Date.now();\n\n if (sessionList.length === 0) {\n return [];\n }\n\n while (true) {\n if (Date.now() - startTime > timeout) {\n throw new Error(`Setup session timed out after ${timeout / 1000} seconds`);\n }\n\n try {\n let statuses = await Promise.all(\n sessionList.map(s => this.magnetarSdk.providerDeployments.setupSessions.get(s.id))\n );\n\n let failed = statuses.filter(s => s.status === 'failed');\n if (failed.length > 0) {\n throw new Error(`${failed.length} setup session(s) failed`);\n }\n\n let allCompleted = statuses.every(s => s.status === 'completed');\n if (allCompleted) {\n return statuses;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n } catch (error) {\n if (\n error instanceof Error &&\n (error.message.includes('setup session') &&\n (error.message.includes('failed') || error.message.includes('timed out')))\n ) {\n throw error;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n }\n }\n }\n\n async waitForOAuthCompletion(\n sessions: Array<{ id: string }>,\n options?: {\n pollInterval?: number;\n timeout?: number;\n }\n ): Promise<void> {\n let pollInterval = Math.max(options?.pollInterval ?? 5000, 2000); // minimum 2 seconds\n let timeout = options?.timeout ?? 600000; // 10 minutes\n let startTime = Date.now();\n\n if (sessions.length === 0) {\n return;\n }\n\n while (true) {\n if (Date.now() - startTime > timeout) {\n throw new Error(`OAuth authentication timeout after ${timeout / 1000} seconds`);\n }\n\n try {\n let statuses = await Promise.all(\n sessions.map(session => this.oauth.sessions.get(session.id))\n );\n\n let allCompleted = statuses.every(status => status.status === 'completed');\n if (allCompleted) {\n return;\n }\n\n let failedSessions = statuses.filter(status => status.status === 'failed');\n if (failedSessions.length > 0) {\n throw new Error(\n `OAuth authentication failed for ${failedSessions.length} session(s)`\n );\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n } catch (error) {\n if (\n error instanceof Error &&\n (error.message.includes('OAuth authentication failed') ||\n error.message.includes('OAuth authentication timeout'))\n ) {\n throw error;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n }\n }\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/metorial.ts"],"names":["createMetorialCoreSDK","MetorialMcpSession"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n MetorialCoreSDK,\n createMetorialCoreSDK\n} from '@metorial/core';\nimport {\n MetorialMcpSession,\n MetorialMcpSessionInit,\n MetorialMcpSessionInitProviders,\n MetorialMcpToolManager\n} from '@metorial/mcp-session';\n\nexport type {\n MetorialMcpSession,\n MetorialMcpSessionInit,\n MetorialMcpSessionInitProviders\n} from '@metorial/mcp-session';\n\ntype MetorialSession = { getToolManager(): Promise<MetorialMcpToolManager> };\n\nexport interface MetorialAdapter<T> {\n __resolve(session: MetorialSession): Promise<T>;\n}\n\nexport class Metorial {\n private readonly sdk: MetorialCoreSDK;\n\n constructor(init: Omit<Parameters<typeof createMetorialCoreSDK>[0], 'apiVersion'>) {\n let apiHost = init.apiHost;\n let mcpHost = init.mcpHost;\n\n if (mcpHost && !apiHost) {\n apiHost = mcpHost.replace('://connect.', '://api.');\n }\n\n this.sdk = createMetorialCoreSDK({ ...init, apiHost, mcpHost });\n }\n\n get providers() {\n return this.sdk.providers;\n }\n\n get providerDeployments() {\n let deployments = this.sdk.providerDeployments;\n Object.assign(deployments.setupSessions, {\n waitForCompletion: this.waitForSetupSession.bind(this)\n });\n return deployments;\n }\n\n get sessions() {\n return this.sdk.sessions;\n }\n\n get sessionTemplates() {\n return this.sdk.sessionTemplates;\n }\n\n get providerRuns() {\n return this.sdk.providerRuns;\n }\n\n get instance() {\n return this.sdk.instance;\n }\n\n get publishers() {\n return this.sdk.publishers;\n }\n\n get providerCategories() {\n return this.sdk.providerCategories;\n }\n\n get providerCollections() {\n return this.sdk.providerCollections;\n }\n\n get providerGroups() {\n return this.sdk.providerGroups;\n }\n\n get providerListings() {\n return this.sdk.providerListings;\n }\n\n get providerSetupSessions() {\n return this.sdk.providerSetupSessions;\n }\n\n get toolCalls() {\n return this.sdk.toolCalls;\n }\n\n get customProviders() {\n return this.sdk.customProviders;\n }\n\n async connect<T>(options: {\n adapter: MetorialAdapter<T>;\n providers: MetorialMcpSessionInitProviders;\n client?: { name?: string; version?: string };\n }): Promise<T> {\n let session = await MetorialMcpSession.create(this.sdk, {\n providers: options.providers,\n client: options.client\n });\n\n return options.adapter.__resolve(session);\n }\n\n /** @deprecated Use `metorial.connect()` instead. */\n async withProviderSession<P, T>(\n adapter: MetorialAdapter<P> | (() => MetorialAdapter<P>),\n init: MetorialMcpSessionInit & { streaming?: boolean },\n action: (input: P & { closeSession: () => Promise<void> }) => Promise<T>\n ): Promise<T> {\n let session = await MetorialMcpSession.create(this.sdk, init);\n let resolved = typeof adapter === 'function' ? adapter() : adapter;\n let adapterResult = await resolved.__resolve(session);\n return action({ ...adapterResult, closeSession: async () => {} });\n }\n\n async waitForSetupSession(\n sessions: { id: string } | Array<{ id: string }>,\n options?: {\n pollInterval?: number;\n timeout?: number;\n }\n ) {\n let sessionList = Array.isArray(sessions) ? sessions : [sessions];\n let pollInterval = Math.max(options?.pollInterval ?? 5000, 2000);\n let timeout = options?.timeout ?? 600000;\n let startTime = Date.now();\n\n if (sessionList.length === 0) {\n return [];\n }\n\n while (true) {\n if (Date.now() - startTime > timeout) {\n throw new Error(`Setup session timed out after ${timeout / 1000} seconds`);\n }\n\n try {\n let statuses = await Promise.all(\n sessionList.map(s => this.sdk.providerDeployments.setupSessions.get(s.id))\n );\n\n let failed = statuses.filter(s => s.status === 'failed');\n if (failed.length > 0) {\n throw new Error(`${failed.length} setup session(s) failed`);\n }\n\n let allCompleted = statuses.every(s => s.status === 'completed');\n if (allCompleted) {\n return statuses;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n } catch (error) {\n if (\n error instanceof Error &&\n (error.message.includes('setup session') &&\n (error.message.includes('failed') || error.message.includes('timed out')))\n ) {\n throw error;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n }\n }\n }\n}\n\nexport default Metorial;\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import * as _metorial_mcp_session from '@metorial/mcp-session';
|
|
2
|
-
import { MetorialMcpSessionInit, MetorialMcpSession, MetorialMcpSessionInitServerDeployments, MetorialMagnetarMcpSessionInit, MetorialMagnetarMcpSession } from '@metorial/mcp-session';
|
|
3
|
-
export { MetorialMagnetarMcpSession, MetorialMagnetarMcpSessionInit, MetorialMcpSession, MetorialMcpSessionInit, MetorialMcpSessionInitServerDeployments } from '@metorial/mcp-session';
|
|
4
|
-
import * as _metorial_generated from '@metorial/generated';
|
|
5
1
|
import * as _metorial_generated_src_mt_2026_01_01_magnetar from '@metorial/generated/src/mt_2026_01_01_magnetar';
|
|
6
|
-
import {
|
|
2
|
+
import { createMetorialCoreSDK } from '@metorial/core';
|
|
7
3
|
export * from '@metorial/core';
|
|
4
|
+
import { MetorialMcpToolManager, MetorialMcpSessionInitProviders, MetorialMcpSessionInit } from '@metorial/mcp-session';
|
|
5
|
+
export { MetorialMcpSession, MetorialMcpSessionInit, MetorialMcpSessionInitProviders } from '@metorial/mcp-session';
|
|
8
6
|
|
|
7
|
+
type MetorialSession = {
|
|
8
|
+
getToolManager(): Promise<MetorialMcpToolManager>;
|
|
9
|
+
};
|
|
10
|
+
interface MetorialAdapter<T> {
|
|
11
|
+
__resolve(session: MetorialSession): Promise<T>;
|
|
12
|
+
}
|
|
9
13
|
declare class Metorial {
|
|
10
|
-
private readonly
|
|
11
|
-
|
|
12
|
-
constructor(init: Omit<Parameters<typeof createMetorialPulsarCoreSDK>[0], 'apiVersion'>);
|
|
14
|
+
private readonly sdk;
|
|
15
|
+
constructor(init: Omit<Parameters<typeof createMetorialCoreSDK>[0], 'apiVersion'>);
|
|
13
16
|
get providers(): _metorial_generated_src_mt_2026_01_01_magnetar.MetorialProvidersEndpoint & {
|
|
14
17
|
versions: _metorial_generated_src_mt_2026_01_01_magnetar.MetorialProvidersVersionsEndpoint;
|
|
15
18
|
tools: _metorial_generated_src_mt_2026_01_01_magnetar.MetorialProvidersToolsEndpoint;
|
|
@@ -53,139 +56,20 @@ declare class Metorial {
|
|
|
53
56
|
environments: _metorial_generated_src_mt_2026_01_01_magnetar.MetorialCustomProvidersEnvironmentsEndpoint;
|
|
54
57
|
commits: _metorial_generated_src_mt_2026_01_01_magnetar.MetorialCustomProvidersCommitsEndpoint;
|
|
55
58
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
runs: _metorial_generated.MetorialServerRunsEndpoint;
|
|
63
|
-
capabilities: _metorial_generated.MetorialServersCapabilitiesEndpoint;
|
|
64
|
-
};
|
|
65
|
-
get secrets(): _metorial_generated.MetorialSecretsEndpoint;
|
|
66
|
-
get oauth(): typeof this$1.pulsarSdk.oauth & {
|
|
67
|
-
waitForCompletion: (sessions: Array<{
|
|
68
|
-
id: string;
|
|
69
|
-
}>, options?: {
|
|
70
|
-
pollInterval?: number;
|
|
71
|
-
timeout?: number;
|
|
72
|
-
}) => Promise<void>;
|
|
73
|
-
};
|
|
74
|
-
get _config(): {
|
|
75
|
-
apiVersion: "2025-01-01-pulsar";
|
|
76
|
-
apiKey: `${"metorial_uk_" | "metorial_mk_" | "metorial_sk_" | "metorial_ak_" | "metorial_pk_"}${string}` | string;
|
|
77
|
-
headers?: Record<string, string>;
|
|
78
|
-
apiHost?: string;
|
|
79
|
-
mcpHost?: string;
|
|
80
|
-
} & {
|
|
81
|
-
apiHost: string;
|
|
82
|
-
};
|
|
83
|
-
get v1(): {
|
|
84
|
-
readonly instance: _metorial_generated.MetorialInstanceEndpoint;
|
|
85
|
-
readonly secrets: _metorial_generated.MetorialSecretsEndpoint;
|
|
86
|
-
readonly servers: _metorial_generated.MetorialServersEndpoint & {
|
|
87
|
-
variants: _metorial_generated.MetorialServersVariantsEndpoint;
|
|
88
|
-
versions: _metorial_generated.MetorialServersVersionsEndpoint;
|
|
89
|
-
deployments: _metorial_generated.MetorialServersDeploymentsEndpoint;
|
|
90
|
-
implementations: _metorial_generated.MetorialServersImplementationsEndpoint;
|
|
91
|
-
errors: any;
|
|
92
|
-
runs: _metorial_generated.MetorialServerRunsEndpoint;
|
|
93
|
-
capabilities: _metorial_generated.MetorialServersCapabilitiesEndpoint;
|
|
94
|
-
};
|
|
95
|
-
readonly sessions: _metorial_generated.MetorialSessionsEndpoint & {
|
|
96
|
-
messages: _metorial_generated.MetorialSessionsMessagesEndpoint;
|
|
97
|
-
connections: _metorial_generated.MetorialSessionsConnectionsEndpoint;
|
|
59
|
+
connect<T>(options: {
|
|
60
|
+
adapter: MetorialAdapter<T>;
|
|
61
|
+
providers: MetorialMcpSessionInitProviders;
|
|
62
|
+
client?: {
|
|
63
|
+
name?: string;
|
|
64
|
+
version?: string;
|
|
98
65
|
};
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
authentications: _metorial_generated.MetorialProviderOauthConnectionsAuthenticationsEndpoint;
|
|
103
|
-
sessions: _metorial_generated.MetorialProviderOauthSessionsEndpoint;
|
|
104
|
-
} & {
|
|
105
|
-
waitForCompletion: (sessions: Array<{
|
|
106
|
-
id: string;
|
|
107
|
-
}>, options?: {
|
|
108
|
-
pollInterval?: number;
|
|
109
|
-
timeout?: number;
|
|
110
|
-
}) => Promise<void>;
|
|
111
|
-
};
|
|
112
|
-
readonly _config: {
|
|
113
|
-
apiVersion: "2025-01-01-pulsar";
|
|
114
|
-
apiKey: `${"metorial_uk_" | "metorial_mk_" | "metorial_sk_" | "metorial_ak_" | "metorial_pk_"}${string}` | string;
|
|
115
|
-
headers?: Record<string, string>;
|
|
116
|
-
apiHost?: string;
|
|
117
|
-
mcpHost?: string;
|
|
118
|
-
} & {
|
|
119
|
-
apiHost: string;
|
|
120
|
-
};
|
|
121
|
-
mcp: {
|
|
122
|
-
createSession: (init: MetorialMcpSessionInit) => MetorialMcpSession;
|
|
123
|
-
withSession: <T>(init: MetorialMcpSessionInit, action: (session: MetorialMcpSession) => Promise<T>) => Promise<T>;
|
|
124
|
-
withProviderSession: <P, T>(provider: (session: MetorialMcpSession) => Promise<P>, init: MetorialMcpSessionInit & {
|
|
125
|
-
streaming?: boolean;
|
|
126
|
-
}, action: (input: P & {
|
|
127
|
-
session: MetorialMcpSession;
|
|
128
|
-
getSession: MetorialMcpSession["getSession"];
|
|
129
|
-
getCapabilities: MetorialMcpSession["getCapabilities"];
|
|
130
|
-
getClient: MetorialMcpSession["getClient"];
|
|
131
|
-
getServerDeployments: MetorialMcpSession["getServerDeployments"];
|
|
132
|
-
getToolManager: MetorialMcpSession["getToolManager"];
|
|
133
|
-
}) => Promise<T>) => Promise<T>;
|
|
134
|
-
createConnection: (init: MetorialMcpSessionInitServerDeployments[number]) => Promise<_metorial_mcp_session.MetorialMcpClient>;
|
|
135
|
-
};
|
|
136
|
-
withSession: <T>(init: MetorialMcpSessionInit, action: (session: MetorialMcpSession) => Promise<T>) => Promise<T>;
|
|
137
|
-
withProviderSession: <P, T>(provider: (session: MetorialMcpSession) => Promise<P>, init: MetorialMcpSessionInit & {
|
|
138
|
-
streaming?: boolean;
|
|
139
|
-
}, action: (input: P & {
|
|
140
|
-
session: MetorialMcpSession;
|
|
141
|
-
getSession: MetorialMcpSession["getSession"];
|
|
142
|
-
getCapabilities: MetorialMcpSession["getCapabilities"];
|
|
143
|
-
getClient: MetorialMcpSession["getClient"];
|
|
144
|
-
getServerDeployments: MetorialMcpSession["getServerDeployments"];
|
|
145
|
-
getToolManager: MetorialMcpSession["getToolManager"];
|
|
146
|
-
}) => Promise<T>) => Promise<T>;
|
|
147
|
-
createMcpConnection: (init: MetorialMcpSessionInitServerDeployments[number]) => Promise<_metorial_mcp_session.MetorialMcpClient>;
|
|
148
|
-
};
|
|
149
|
-
get mcp(): {
|
|
150
|
-
createSession: (init: MetorialMagnetarMcpSessionInit) => MetorialMagnetarMcpSession;
|
|
151
|
-
withSession: <T>(init: MetorialMagnetarMcpSessionInit, action: (session: MetorialMagnetarMcpSession) => Promise<T>) => Promise<T>;
|
|
152
|
-
withProviderSession: <P, T>(provider: (session: MetorialMagnetarMcpSession) => Promise<P>, init: (MetorialMagnetarMcpSessionInit) & {
|
|
153
|
-
streaming?: boolean;
|
|
154
|
-
}, action: (input: P & {
|
|
155
|
-
session: MetorialMagnetarMcpSession;
|
|
156
|
-
getSession: MetorialMagnetarMcpSession["getSession"];
|
|
157
|
-
getCapabilities: MetorialMagnetarMcpSession["getCapabilities"];
|
|
158
|
-
getToolManager: MetorialMagnetarMcpSession["getToolManager"];
|
|
159
|
-
closeSession: () => Promise<void>;
|
|
160
|
-
}) => Promise<T>) => Promise<T>;
|
|
161
|
-
createConnection: (init: MetorialMagnetarMcpSessionInit) => Promise<_metorial_mcp_session.MetorialMcpClient>;
|
|
162
|
-
};
|
|
163
|
-
session(init: MetorialMagnetarMcpSessionInit): MetorialMagnetarMcpSession;
|
|
164
|
-
createMcpConnection(init: MetorialMagnetarMcpSessionInit): Promise<_metorial_mcp_session.MetorialMcpClient>;
|
|
165
|
-
withSession<T>(init: MetorialMagnetarMcpSessionInit, action: (session: MetorialMagnetarMcpSession) => Promise<T>): Promise<T>;
|
|
166
|
-
withProviderSession<P, T>(provider: (session: MetorialMagnetarMcpSession) => Promise<P>, init: (MetorialMagnetarMcpSessionInit) & {
|
|
66
|
+
}): Promise<T>;
|
|
67
|
+
/** @deprecated Use `metorial.connect()` instead. */
|
|
68
|
+
withProviderSession<P, T>(adapter: MetorialAdapter<P> | (() => MetorialAdapter<P>), init: MetorialMcpSessionInit & {
|
|
167
69
|
streaming?: boolean;
|
|
168
70
|
}, action: (input: P & {
|
|
169
|
-
session: MetorialMagnetarMcpSession;
|
|
170
|
-
getSession: MetorialMagnetarMcpSession['getSession'];
|
|
171
|
-
getCapabilities: MetorialMagnetarMcpSession['getCapabilities'];
|
|
172
|
-
getToolManager: MetorialMagnetarMcpSession['getToolManager'];
|
|
173
71
|
closeSession: () => Promise<void>;
|
|
174
72
|
}) => Promise<T>): Promise<T>;
|
|
175
|
-
private withMagnetarStreamingSession;
|
|
176
|
-
_pulsarCreateMcpConnection(init: MetorialMcpSessionInitServerDeployments[number]): Promise<_metorial_mcp_session.MetorialMcpClient>;
|
|
177
|
-
_pulsarWithSession<T>(init: MetorialMcpSessionInit, action: (session: MetorialMcpSession) => Promise<T>): Promise<T>;
|
|
178
|
-
_pulsarWithProviderSession<P, T>(provider: (session: MetorialMcpSession) => Promise<P>, init: MetorialMcpSessionInit & {
|
|
179
|
-
streaming?: boolean;
|
|
180
|
-
}, action: (input: P & {
|
|
181
|
-
session: MetorialMcpSession;
|
|
182
|
-
getSession: MetorialMcpSession['getSession'];
|
|
183
|
-
getCapabilities: MetorialMcpSession['getCapabilities'];
|
|
184
|
-
getClient: MetorialMcpSession['getClient'];
|
|
185
|
-
getServerDeployments: MetorialMcpSession['getServerDeployments'];
|
|
186
|
-
getToolManager: MetorialMcpSession['getToolManager'];
|
|
187
|
-
}) => Promise<T>): Promise<T>;
|
|
188
|
-
private withStreamingSession;
|
|
189
73
|
waitForSetupSession(sessions: {
|
|
190
74
|
id: string;
|
|
191
75
|
} | Array<{
|
|
@@ -194,12 +78,6 @@ declare class Metorial {
|
|
|
194
78
|
pollInterval?: number;
|
|
195
79
|
timeout?: number;
|
|
196
80
|
}): Promise<_metorial_generated_src_mt_2026_01_01_magnetar.DashboardInstanceProviderDeploymentsSetupSessionsGetOutput[]>;
|
|
197
|
-
waitForOAuthCompletion(sessions: Array<{
|
|
198
|
-
id: string;
|
|
199
|
-
}>, options?: {
|
|
200
|
-
pollInterval?: number;
|
|
201
|
-
timeout?: number;
|
|
202
|
-
}): Promise<void>;
|
|
203
81
|
}
|
|
204
82
|
|
|
205
|
-
export { Metorial };
|
|
83
|
+
export { Metorial, type MetorialAdapter, Metorial as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import * as _metorial_mcp_session from '@metorial/mcp-session';
|
|
2
|
-
import { MetorialMcpSessionInit, MetorialMcpSession, MetorialMcpSessionInitServerDeployments, MetorialMagnetarMcpSessionInit, MetorialMagnetarMcpSession } from '@metorial/mcp-session';
|
|
3
|
-
export { MetorialMagnetarMcpSession, MetorialMagnetarMcpSessionInit, MetorialMcpSession, MetorialMcpSessionInit, MetorialMcpSessionInitServerDeployments } from '@metorial/mcp-session';
|
|
4
|
-
import * as _metorial_generated from '@metorial/generated';
|
|
5
1
|
import * as _metorial_generated_src_mt_2026_01_01_magnetar from '@metorial/generated/src/mt_2026_01_01_magnetar';
|
|
6
|
-
import {
|
|
2
|
+
import { createMetorialCoreSDK } from '@metorial/core';
|
|
7
3
|
export * from '@metorial/core';
|
|
4
|
+
import { MetorialMcpToolManager, MetorialMcpSessionInitProviders, MetorialMcpSessionInit } from '@metorial/mcp-session';
|
|
5
|
+
export { MetorialMcpSession, MetorialMcpSessionInit, MetorialMcpSessionInitProviders } from '@metorial/mcp-session';
|
|
8
6
|
|
|
7
|
+
type MetorialSession = {
|
|
8
|
+
getToolManager(): Promise<MetorialMcpToolManager>;
|
|
9
|
+
};
|
|
10
|
+
interface MetorialAdapter<T> {
|
|
11
|
+
__resolve(session: MetorialSession): Promise<T>;
|
|
12
|
+
}
|
|
9
13
|
declare class Metorial {
|
|
10
|
-
private readonly
|
|
11
|
-
|
|
12
|
-
constructor(init: Omit<Parameters<typeof createMetorialPulsarCoreSDK>[0], 'apiVersion'>);
|
|
14
|
+
private readonly sdk;
|
|
15
|
+
constructor(init: Omit<Parameters<typeof createMetorialCoreSDK>[0], 'apiVersion'>);
|
|
13
16
|
get providers(): _metorial_generated_src_mt_2026_01_01_magnetar.MetorialProvidersEndpoint & {
|
|
14
17
|
versions: _metorial_generated_src_mt_2026_01_01_magnetar.MetorialProvidersVersionsEndpoint;
|
|
15
18
|
tools: _metorial_generated_src_mt_2026_01_01_magnetar.MetorialProvidersToolsEndpoint;
|
|
@@ -53,139 +56,20 @@ declare class Metorial {
|
|
|
53
56
|
environments: _metorial_generated_src_mt_2026_01_01_magnetar.MetorialCustomProvidersEnvironmentsEndpoint;
|
|
54
57
|
commits: _metorial_generated_src_mt_2026_01_01_magnetar.MetorialCustomProvidersCommitsEndpoint;
|
|
55
58
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
runs: _metorial_generated.MetorialServerRunsEndpoint;
|
|
63
|
-
capabilities: _metorial_generated.MetorialServersCapabilitiesEndpoint;
|
|
64
|
-
};
|
|
65
|
-
get secrets(): _metorial_generated.MetorialSecretsEndpoint;
|
|
66
|
-
get oauth(): typeof this$1.pulsarSdk.oauth & {
|
|
67
|
-
waitForCompletion: (sessions: Array<{
|
|
68
|
-
id: string;
|
|
69
|
-
}>, options?: {
|
|
70
|
-
pollInterval?: number;
|
|
71
|
-
timeout?: number;
|
|
72
|
-
}) => Promise<void>;
|
|
73
|
-
};
|
|
74
|
-
get _config(): {
|
|
75
|
-
apiVersion: "2025-01-01-pulsar";
|
|
76
|
-
apiKey: `${"metorial_uk_" | "metorial_mk_" | "metorial_sk_" | "metorial_ak_" | "metorial_pk_"}${string}` | string;
|
|
77
|
-
headers?: Record<string, string>;
|
|
78
|
-
apiHost?: string;
|
|
79
|
-
mcpHost?: string;
|
|
80
|
-
} & {
|
|
81
|
-
apiHost: string;
|
|
82
|
-
};
|
|
83
|
-
get v1(): {
|
|
84
|
-
readonly instance: _metorial_generated.MetorialInstanceEndpoint;
|
|
85
|
-
readonly secrets: _metorial_generated.MetorialSecretsEndpoint;
|
|
86
|
-
readonly servers: _metorial_generated.MetorialServersEndpoint & {
|
|
87
|
-
variants: _metorial_generated.MetorialServersVariantsEndpoint;
|
|
88
|
-
versions: _metorial_generated.MetorialServersVersionsEndpoint;
|
|
89
|
-
deployments: _metorial_generated.MetorialServersDeploymentsEndpoint;
|
|
90
|
-
implementations: _metorial_generated.MetorialServersImplementationsEndpoint;
|
|
91
|
-
errors: any;
|
|
92
|
-
runs: _metorial_generated.MetorialServerRunsEndpoint;
|
|
93
|
-
capabilities: _metorial_generated.MetorialServersCapabilitiesEndpoint;
|
|
94
|
-
};
|
|
95
|
-
readonly sessions: _metorial_generated.MetorialSessionsEndpoint & {
|
|
96
|
-
messages: _metorial_generated.MetorialSessionsMessagesEndpoint;
|
|
97
|
-
connections: _metorial_generated.MetorialSessionsConnectionsEndpoint;
|
|
59
|
+
connect<T>(options: {
|
|
60
|
+
adapter: MetorialAdapter<T>;
|
|
61
|
+
providers: MetorialMcpSessionInitProviders;
|
|
62
|
+
client?: {
|
|
63
|
+
name?: string;
|
|
64
|
+
version?: string;
|
|
98
65
|
};
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
authentications: _metorial_generated.MetorialProviderOauthConnectionsAuthenticationsEndpoint;
|
|
103
|
-
sessions: _metorial_generated.MetorialProviderOauthSessionsEndpoint;
|
|
104
|
-
} & {
|
|
105
|
-
waitForCompletion: (sessions: Array<{
|
|
106
|
-
id: string;
|
|
107
|
-
}>, options?: {
|
|
108
|
-
pollInterval?: number;
|
|
109
|
-
timeout?: number;
|
|
110
|
-
}) => Promise<void>;
|
|
111
|
-
};
|
|
112
|
-
readonly _config: {
|
|
113
|
-
apiVersion: "2025-01-01-pulsar";
|
|
114
|
-
apiKey: `${"metorial_uk_" | "metorial_mk_" | "metorial_sk_" | "metorial_ak_" | "metorial_pk_"}${string}` | string;
|
|
115
|
-
headers?: Record<string, string>;
|
|
116
|
-
apiHost?: string;
|
|
117
|
-
mcpHost?: string;
|
|
118
|
-
} & {
|
|
119
|
-
apiHost: string;
|
|
120
|
-
};
|
|
121
|
-
mcp: {
|
|
122
|
-
createSession: (init: MetorialMcpSessionInit) => MetorialMcpSession;
|
|
123
|
-
withSession: <T>(init: MetorialMcpSessionInit, action: (session: MetorialMcpSession) => Promise<T>) => Promise<T>;
|
|
124
|
-
withProviderSession: <P, T>(provider: (session: MetorialMcpSession) => Promise<P>, init: MetorialMcpSessionInit & {
|
|
125
|
-
streaming?: boolean;
|
|
126
|
-
}, action: (input: P & {
|
|
127
|
-
session: MetorialMcpSession;
|
|
128
|
-
getSession: MetorialMcpSession["getSession"];
|
|
129
|
-
getCapabilities: MetorialMcpSession["getCapabilities"];
|
|
130
|
-
getClient: MetorialMcpSession["getClient"];
|
|
131
|
-
getServerDeployments: MetorialMcpSession["getServerDeployments"];
|
|
132
|
-
getToolManager: MetorialMcpSession["getToolManager"];
|
|
133
|
-
}) => Promise<T>) => Promise<T>;
|
|
134
|
-
createConnection: (init: MetorialMcpSessionInitServerDeployments[number]) => Promise<_metorial_mcp_session.MetorialMcpClient>;
|
|
135
|
-
};
|
|
136
|
-
withSession: <T>(init: MetorialMcpSessionInit, action: (session: MetorialMcpSession) => Promise<T>) => Promise<T>;
|
|
137
|
-
withProviderSession: <P, T>(provider: (session: MetorialMcpSession) => Promise<P>, init: MetorialMcpSessionInit & {
|
|
138
|
-
streaming?: boolean;
|
|
139
|
-
}, action: (input: P & {
|
|
140
|
-
session: MetorialMcpSession;
|
|
141
|
-
getSession: MetorialMcpSession["getSession"];
|
|
142
|
-
getCapabilities: MetorialMcpSession["getCapabilities"];
|
|
143
|
-
getClient: MetorialMcpSession["getClient"];
|
|
144
|
-
getServerDeployments: MetorialMcpSession["getServerDeployments"];
|
|
145
|
-
getToolManager: MetorialMcpSession["getToolManager"];
|
|
146
|
-
}) => Promise<T>) => Promise<T>;
|
|
147
|
-
createMcpConnection: (init: MetorialMcpSessionInitServerDeployments[number]) => Promise<_metorial_mcp_session.MetorialMcpClient>;
|
|
148
|
-
};
|
|
149
|
-
get mcp(): {
|
|
150
|
-
createSession: (init: MetorialMagnetarMcpSessionInit) => MetorialMagnetarMcpSession;
|
|
151
|
-
withSession: <T>(init: MetorialMagnetarMcpSessionInit, action: (session: MetorialMagnetarMcpSession) => Promise<T>) => Promise<T>;
|
|
152
|
-
withProviderSession: <P, T>(provider: (session: MetorialMagnetarMcpSession) => Promise<P>, init: (MetorialMagnetarMcpSessionInit) & {
|
|
153
|
-
streaming?: boolean;
|
|
154
|
-
}, action: (input: P & {
|
|
155
|
-
session: MetorialMagnetarMcpSession;
|
|
156
|
-
getSession: MetorialMagnetarMcpSession["getSession"];
|
|
157
|
-
getCapabilities: MetorialMagnetarMcpSession["getCapabilities"];
|
|
158
|
-
getToolManager: MetorialMagnetarMcpSession["getToolManager"];
|
|
159
|
-
closeSession: () => Promise<void>;
|
|
160
|
-
}) => Promise<T>) => Promise<T>;
|
|
161
|
-
createConnection: (init: MetorialMagnetarMcpSessionInit) => Promise<_metorial_mcp_session.MetorialMcpClient>;
|
|
162
|
-
};
|
|
163
|
-
session(init: MetorialMagnetarMcpSessionInit): MetorialMagnetarMcpSession;
|
|
164
|
-
createMcpConnection(init: MetorialMagnetarMcpSessionInit): Promise<_metorial_mcp_session.MetorialMcpClient>;
|
|
165
|
-
withSession<T>(init: MetorialMagnetarMcpSessionInit, action: (session: MetorialMagnetarMcpSession) => Promise<T>): Promise<T>;
|
|
166
|
-
withProviderSession<P, T>(provider: (session: MetorialMagnetarMcpSession) => Promise<P>, init: (MetorialMagnetarMcpSessionInit) & {
|
|
66
|
+
}): Promise<T>;
|
|
67
|
+
/** @deprecated Use `metorial.connect()` instead. */
|
|
68
|
+
withProviderSession<P, T>(adapter: MetorialAdapter<P> | (() => MetorialAdapter<P>), init: MetorialMcpSessionInit & {
|
|
167
69
|
streaming?: boolean;
|
|
168
70
|
}, action: (input: P & {
|
|
169
|
-
session: MetorialMagnetarMcpSession;
|
|
170
|
-
getSession: MetorialMagnetarMcpSession['getSession'];
|
|
171
|
-
getCapabilities: MetorialMagnetarMcpSession['getCapabilities'];
|
|
172
|
-
getToolManager: MetorialMagnetarMcpSession['getToolManager'];
|
|
173
71
|
closeSession: () => Promise<void>;
|
|
174
72
|
}) => Promise<T>): Promise<T>;
|
|
175
|
-
private withMagnetarStreamingSession;
|
|
176
|
-
_pulsarCreateMcpConnection(init: MetorialMcpSessionInitServerDeployments[number]): Promise<_metorial_mcp_session.MetorialMcpClient>;
|
|
177
|
-
_pulsarWithSession<T>(init: MetorialMcpSessionInit, action: (session: MetorialMcpSession) => Promise<T>): Promise<T>;
|
|
178
|
-
_pulsarWithProviderSession<P, T>(provider: (session: MetorialMcpSession) => Promise<P>, init: MetorialMcpSessionInit & {
|
|
179
|
-
streaming?: boolean;
|
|
180
|
-
}, action: (input: P & {
|
|
181
|
-
session: MetorialMcpSession;
|
|
182
|
-
getSession: MetorialMcpSession['getSession'];
|
|
183
|
-
getCapabilities: MetorialMcpSession['getCapabilities'];
|
|
184
|
-
getClient: MetorialMcpSession['getClient'];
|
|
185
|
-
getServerDeployments: MetorialMcpSession['getServerDeployments'];
|
|
186
|
-
getToolManager: MetorialMcpSession['getToolManager'];
|
|
187
|
-
}) => Promise<T>): Promise<T>;
|
|
188
|
-
private withStreamingSession;
|
|
189
73
|
waitForSetupSession(sessions: {
|
|
190
74
|
id: string;
|
|
191
75
|
} | Array<{
|
|
@@ -194,12 +78,6 @@ declare class Metorial {
|
|
|
194
78
|
pollInterval?: number;
|
|
195
79
|
timeout?: number;
|
|
196
80
|
}): Promise<_metorial_generated_src_mt_2026_01_01_magnetar.DashboardInstanceProviderDeploymentsSetupSessionsGetOutput[]>;
|
|
197
|
-
waitForOAuthCompletion(sessions: Array<{
|
|
198
|
-
id: string;
|
|
199
|
-
}>, options?: {
|
|
200
|
-
pollInterval?: number;
|
|
201
|
-
timeout?: number;
|
|
202
|
-
}): Promise<void>;
|
|
203
81
|
}
|
|
204
82
|
|
|
205
|
-
export { Metorial };
|
|
83
|
+
export { Metorial, type MetorialAdapter, Metorial as default };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { MetorialMcpSession
|
|
1
|
+
import { createMetorialCoreSDK } from '@metorial/core';
|
|
2
|
+
import { MetorialMcpSession } from '@metorial/mcp-session';
|
|
3
3
|
|
|
4
4
|
// src/metorial.ts
|
|
5
5
|
var Metorial = class {
|
|
@@ -9,245 +9,68 @@ var Metorial = class {
|
|
|
9
9
|
if (mcpHost && !apiHost) {
|
|
10
10
|
apiHost = mcpHost.replace("://connect.", "://api.");
|
|
11
11
|
}
|
|
12
|
-
this.
|
|
13
|
-
this.magnetarSdk = createMetorialMagnetarCoreSDK({ ...init, apiHost, mcpHost });
|
|
12
|
+
this.sdk = createMetorialCoreSDK({ ...init, apiHost, mcpHost });
|
|
14
13
|
}
|
|
15
|
-
// ── Magnetar (default) ───────────────────────────────────────────
|
|
16
14
|
get providers() {
|
|
17
|
-
return this.
|
|
15
|
+
return this.sdk.providers;
|
|
18
16
|
}
|
|
19
17
|
get providerDeployments() {
|
|
20
|
-
let deployments = this.
|
|
18
|
+
let deployments = this.sdk.providerDeployments;
|
|
21
19
|
Object.assign(deployments.setupSessions, {
|
|
22
20
|
waitForCompletion: this.waitForSetupSession.bind(this)
|
|
23
21
|
});
|
|
24
22
|
return deployments;
|
|
25
23
|
}
|
|
26
24
|
get sessions() {
|
|
27
|
-
return this.
|
|
25
|
+
return this.sdk.sessions;
|
|
28
26
|
}
|
|
29
27
|
get sessionTemplates() {
|
|
30
|
-
return this.
|
|
28
|
+
return this.sdk.sessionTemplates;
|
|
31
29
|
}
|
|
32
30
|
get providerRuns() {
|
|
33
|
-
return this.
|
|
31
|
+
return this.sdk.providerRuns;
|
|
34
32
|
}
|
|
35
33
|
get instance() {
|
|
36
|
-
return this.
|
|
34
|
+
return this.sdk.instance;
|
|
37
35
|
}
|
|
38
36
|
get publishers() {
|
|
39
|
-
return this.
|
|
37
|
+
return this.sdk.publishers;
|
|
40
38
|
}
|
|
41
39
|
get providerCategories() {
|
|
42
|
-
return this.
|
|
40
|
+
return this.sdk.providerCategories;
|
|
43
41
|
}
|
|
44
42
|
get providerCollections() {
|
|
45
|
-
return this.
|
|
43
|
+
return this.sdk.providerCollections;
|
|
46
44
|
}
|
|
47
45
|
get providerGroups() {
|
|
48
|
-
return this.
|
|
46
|
+
return this.sdk.providerGroups;
|
|
49
47
|
}
|
|
50
48
|
get providerListings() {
|
|
51
|
-
return this.
|
|
49
|
+
return this.sdk.providerListings;
|
|
52
50
|
}
|
|
53
51
|
get providerSetupSessions() {
|
|
54
|
-
return this.
|
|
52
|
+
return this.sdk.providerSetupSessions;
|
|
55
53
|
}
|
|
56
54
|
get toolCalls() {
|
|
57
|
-
return this.
|
|
55
|
+
return this.sdk.toolCalls;
|
|
58
56
|
}
|
|
59
57
|
get customProviders() {
|
|
60
|
-
return this.
|
|
58
|
+
return this.sdk.customProviders;
|
|
61
59
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
get secrets() {
|
|
67
|
-
return this.pulsarSdk.secrets;
|
|
68
|
-
}
|
|
69
|
-
get oauth() {
|
|
70
|
-
return {
|
|
71
|
-
...this.pulsarSdk.oauth,
|
|
72
|
-
waitForCompletion: this.waitForOAuthCompletion.bind(this)
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
get _config() {
|
|
76
|
-
return this.pulsarSdk._config;
|
|
77
|
-
}
|
|
78
|
-
// ── v1 namespace (legacy Pulsar) ─────────────────────────────────
|
|
79
|
-
get v1() {
|
|
80
|
-
let pulsarSdk = this.pulsarSdk;
|
|
81
|
-
let self = this;
|
|
82
|
-
return {
|
|
83
|
-
get instance() {
|
|
84
|
-
return pulsarSdk.instance;
|
|
85
|
-
},
|
|
86
|
-
get secrets() {
|
|
87
|
-
return pulsarSdk.secrets;
|
|
88
|
-
},
|
|
89
|
-
get servers() {
|
|
90
|
-
return pulsarSdk.servers;
|
|
91
|
-
},
|
|
92
|
-
get sessions() {
|
|
93
|
-
return pulsarSdk.sessions;
|
|
94
|
-
},
|
|
95
|
-
get oauth() {
|
|
96
|
-
return self.oauth;
|
|
97
|
-
},
|
|
98
|
-
get _config() {
|
|
99
|
-
return pulsarSdk._config;
|
|
100
|
-
},
|
|
101
|
-
mcp: {
|
|
102
|
-
createSession: (init) => new MetorialMcpSession(pulsarSdk, init),
|
|
103
|
-
withSession: self._pulsarWithSession.bind(self),
|
|
104
|
-
withProviderSession: self._pulsarWithProviderSession.bind(self),
|
|
105
|
-
createConnection: self._pulsarCreateMcpConnection.bind(self)
|
|
106
|
-
},
|
|
107
|
-
withSession: self._pulsarWithSession.bind(self),
|
|
108
|
-
withProviderSession: self._pulsarWithProviderSession.bind(self),
|
|
109
|
-
createMcpConnection: self._pulsarCreateMcpConnection.bind(self)
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
// ── MCP (Magnetar default) ───────────────────────────────────────
|
|
113
|
-
get mcp() {
|
|
114
|
-
return {
|
|
115
|
-
createSession: (init) => new MetorialMagnetarMcpSession(this.magnetarSdk, init),
|
|
116
|
-
withSession: this.withSession.bind(this),
|
|
117
|
-
withProviderSession: this.withProviderSession.bind(this),
|
|
118
|
-
createConnection: this.createMcpConnection.bind(this)
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
session(init) {
|
|
122
|
-
return new MetorialMagnetarMcpSession(this.magnetarSdk, init);
|
|
123
|
-
}
|
|
124
|
-
async createMcpConnection(init) {
|
|
125
|
-
let session = new MetorialMagnetarMcpSession(this.magnetarSdk, init);
|
|
126
|
-
return await session.getClient();
|
|
127
|
-
}
|
|
128
|
-
async withSession(init, action) {
|
|
129
|
-
let session = new MetorialMagnetarMcpSession(this.magnetarSdk, init);
|
|
130
|
-
try {
|
|
131
|
-
return await action(session);
|
|
132
|
-
} finally {
|
|
133
|
-
await session.close();
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async withProviderSession(provider, init, action) {
|
|
137
|
-
if (init.streaming) {
|
|
138
|
-
return this.withMagnetarStreamingSession(provider, init, action);
|
|
139
|
-
}
|
|
140
|
-
return this.withSession(init, async (session) => {
|
|
141
|
-
let providerData = await provider(session);
|
|
142
|
-
return action({
|
|
143
|
-
...providerData,
|
|
144
|
-
session,
|
|
145
|
-
getSession: session.getSession.bind(session),
|
|
146
|
-
getCapabilities: session.getCapabilities.bind(session),
|
|
147
|
-
getToolManager: session.getToolManager.bind(session),
|
|
148
|
-
closeSession: async () => {
|
|
149
|
-
}
|
|
150
|
-
});
|
|
60
|
+
async connect(options) {
|
|
61
|
+
let session = await MetorialMcpSession.create(this.sdk, {
|
|
62
|
+
providers: options.providers,
|
|
63
|
+
client: options.client
|
|
151
64
|
});
|
|
65
|
+
return options.adapter.__resolve(session);
|
|
152
66
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
let
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
try {
|
|
163
|
-
let providerData = await provider(session);
|
|
164
|
-
let result = await action({
|
|
165
|
-
...providerData,
|
|
166
|
-
session,
|
|
167
|
-
getSession: session.getSession.bind(session),
|
|
168
|
-
getCapabilities: session.getCapabilities.bind(session),
|
|
169
|
-
getToolManager: session.getToolManager.bind(session),
|
|
170
|
-
closeSession
|
|
171
|
-
});
|
|
172
|
-
let timeout = setTimeout(async () => {
|
|
173
|
-
if (!sessionClosed) {
|
|
174
|
-
await closeSession();
|
|
175
|
-
}
|
|
176
|
-
}, 6e4);
|
|
177
|
-
timeout.unref();
|
|
178
|
-
return result;
|
|
179
|
-
} catch (error) {
|
|
180
|
-
await closeSession();
|
|
181
|
-
throw error;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
// ── Pulsar MCP helpers (used by v1) ──────────────────────────────
|
|
185
|
-
async _pulsarCreateMcpConnection(init) {
|
|
186
|
-
let session = new MetorialMcpSession(this.pulsarSdk, {
|
|
187
|
-
serverDeployments: [init]
|
|
188
|
-
});
|
|
189
|
-
let deployments = await session.getServerDeployments();
|
|
190
|
-
return await session.getClient({
|
|
191
|
-
deploymentId: deployments[0].id
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
async _pulsarWithSession(init, action) {
|
|
195
|
-
let session = new MetorialMcpSession(this.pulsarSdk, init);
|
|
196
|
-
try {
|
|
197
|
-
return await action(session);
|
|
198
|
-
} finally {
|
|
199
|
-
await session.close();
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
async _pulsarWithProviderSession(provider, init, action) {
|
|
203
|
-
if (init.streaming) {
|
|
204
|
-
return this.withStreamingSession(provider, init, action);
|
|
205
|
-
}
|
|
206
|
-
return this._pulsarWithSession(init, async (session) => {
|
|
207
|
-
let providerData = await provider(session);
|
|
208
|
-
return action({
|
|
209
|
-
...providerData,
|
|
210
|
-
session,
|
|
211
|
-
getSession: session.getSession.bind(session),
|
|
212
|
-
getCapabilities: session.getCapabilities.bind(session),
|
|
213
|
-
getClient: session.getClient.bind(session),
|
|
214
|
-
getServerDeployments: session.getServerDeployments.bind(session),
|
|
215
|
-
getToolManager: session.getToolManager.bind(session)
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
async withStreamingSession(provider, init, action) {
|
|
220
|
-
let session = new MetorialMcpSession(this.pulsarSdk, init);
|
|
221
|
-
let sessionClosed = false;
|
|
222
|
-
const closeSession = async () => {
|
|
223
|
-
if (!sessionClosed) {
|
|
224
|
-
sessionClosed = true;
|
|
225
|
-
await session.close();
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
|
-
try {
|
|
229
|
-
let providerData = await provider(session);
|
|
230
|
-
let result = await action({
|
|
231
|
-
...providerData,
|
|
232
|
-
session,
|
|
233
|
-
getSession: session.getSession.bind(session),
|
|
234
|
-
getCapabilities: session.getCapabilities.bind(session),
|
|
235
|
-
getClient: session.getClient.bind(session),
|
|
236
|
-
getServerDeployments: session.getServerDeployments.bind(session),
|
|
237
|
-
getToolManager: session.getToolManager.bind(session),
|
|
238
|
-
closeSession
|
|
239
|
-
});
|
|
240
|
-
let timeout = setTimeout(async () => {
|
|
241
|
-
if (!sessionClosed) {
|
|
242
|
-
await closeSession();
|
|
243
|
-
}
|
|
244
|
-
}, 6e4);
|
|
245
|
-
timeout.unref();
|
|
246
|
-
return result;
|
|
247
|
-
} catch (error) {
|
|
248
|
-
await closeSession();
|
|
249
|
-
throw error;
|
|
250
|
-
}
|
|
67
|
+
/** @deprecated Use `metorial.connect()` instead. */
|
|
68
|
+
async withProviderSession(adapter, init, action) {
|
|
69
|
+
let session = await MetorialMcpSession.create(this.sdk, init);
|
|
70
|
+
let resolved = typeof adapter === "function" ? adapter() : adapter;
|
|
71
|
+
let adapterResult = await resolved.__resolve(session);
|
|
72
|
+
return action({ ...adapterResult, closeSession: async () => {
|
|
73
|
+
} });
|
|
251
74
|
}
|
|
252
75
|
async waitForSetupSession(sessions, options) {
|
|
253
76
|
var _a, _b;
|
|
@@ -264,7 +87,7 @@ var Metorial = class {
|
|
|
264
87
|
}
|
|
265
88
|
try {
|
|
266
89
|
let statuses = await Promise.all(
|
|
267
|
-
sessionList.map((s) => this.
|
|
90
|
+
sessionList.map((s) => this.sdk.providerDeployments.setupSessions.get(s.id))
|
|
268
91
|
);
|
|
269
92
|
let failed = statuses.filter((s) => s.status === "failed");
|
|
270
93
|
if (failed.length > 0) {
|
|
@@ -283,43 +106,9 @@ var Metorial = class {
|
|
|
283
106
|
}
|
|
284
107
|
}
|
|
285
108
|
}
|
|
286
|
-
async waitForOAuthCompletion(sessions, options) {
|
|
287
|
-
var _a, _b;
|
|
288
|
-
let pollInterval = Math.max((_a = options == null ? void 0 : options.pollInterval) != null ? _a : 5e3, 2e3);
|
|
289
|
-
let timeout = (_b = options == null ? void 0 : options.timeout) != null ? _b : 6e5;
|
|
290
|
-
let startTime = Date.now();
|
|
291
|
-
if (sessions.length === 0) {
|
|
292
|
-
return;
|
|
293
|
-
}
|
|
294
|
-
while (true) {
|
|
295
|
-
if (Date.now() - startTime > timeout) {
|
|
296
|
-
throw new Error(`OAuth authentication timeout after ${timeout / 1e3} seconds`);
|
|
297
|
-
}
|
|
298
|
-
try {
|
|
299
|
-
let statuses = await Promise.all(
|
|
300
|
-
sessions.map((session) => this.oauth.sessions.get(session.id))
|
|
301
|
-
);
|
|
302
|
-
let allCompleted = statuses.every((status) => status.status === "completed");
|
|
303
|
-
if (allCompleted) {
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
let failedSessions = statuses.filter((status) => status.status === "failed");
|
|
307
|
-
if (failedSessions.length > 0) {
|
|
308
|
-
throw new Error(
|
|
309
|
-
`OAuth authentication failed for ${failedSessions.length} session(s)`
|
|
310
|
-
);
|
|
311
|
-
}
|
|
312
|
-
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
313
|
-
} catch (error) {
|
|
314
|
-
if (error instanceof Error && (error.message.includes("OAuth authentication failed") || error.message.includes("OAuth authentication timeout"))) {
|
|
315
|
-
throw error;
|
|
316
|
-
}
|
|
317
|
-
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
109
|
};
|
|
110
|
+
var metorial_default = Metorial;
|
|
322
111
|
|
|
323
|
-
export { Metorial };
|
|
112
|
+
export { Metorial, metorial_default as default };
|
|
324
113
|
//# sourceMappingURL=index.js.map
|
|
325
114
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/metorial.ts"],"names":[],"mappings":";;;;AAsBO,IAAM,WAAN,MAAe;AAAA,EAIpB,YAAY,IAAA,EAA6E;AACvF,IAAA,IAAI,UAAU,IAAA,CAAK,OAAA;AACnB,IAAA,IAAI,UAAU,IAAA,CAAK,OAAA;AAGnB,IAAA,IAAI,OAAA,IAAW,CAAC,OAAA,EAAS;AACvB,MAAA,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,aAAA,EAAe,SAAS,CAAA;AAAA,IACpD;AAGA,IAAA,IAAA,CAAK,YAAY,2BAAA,CAA4B,EAAE,GAAG,IAAA,EAAM,SAAS,CAAA;AAGjE,IAAA,IAAA,CAAK,cAAc,6BAAA,CAA8B,EAAE,GAAG,IAAA,EAAM,OAAA,EAAS,SAAS,CAAA;AAAA,EAChF;AAAA;AAAA,EAIA,IAAI,SAAA,GAAY;AACd,IAAA,OAAO,KAAK,WAAA,CAAY,SAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,mBAAA,GAAsB;AACxB,IAAA,IAAI,WAAA,GAAc,KAAK,WAAA,CAAY,mBAAA;AACnC,IAAA,MAAA,CAAO,MAAA,CAAO,YAAY,aAAA,EAAe;AAAA,MACvC,iBAAA,EAAmB,IAAA,CAAK,mBAAA,CAAoB,IAAA,CAAK,IAAI;AAAA,KACtD,CAAA;AACD,IAAA,OAAO,WAAA;AAAA,EACT;AAAA,EAEA,IAAI,QAAA,GAAW;AACb,IAAA,OAAO,KAAK,WAAA,CAAY,QAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,gBAAA,GAAmB;AACrB,IAAA,OAAO,KAAK,WAAA,CAAY,gBAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,YAAA,GAAe;AACjB,IAAA,OAAO,KAAK,WAAA,CAAY,YAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,QAAA,GAAW;AACb,IAAA,OAAO,KAAK,WAAA,CAAY,QAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,UAAA,GAAa;AACf,IAAA,OAAO,KAAK,WAAA,CAAY,UAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,kBAAA,GAAqB;AACvB,IAAA,OAAO,KAAK,WAAA,CAAY,kBAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,mBAAA,GAAsB;AACxB,IAAA,OAAO,KAAK,WAAA,CAAY,mBAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,cAAA,GAAiB;AACnB,IAAA,OAAO,KAAK,WAAA,CAAY,cAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,gBAAA,GAAmB;AACrB,IAAA,OAAO,KAAK,WAAA,CAAY,gBAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,qBAAA,GAAwB;AAC1B,IAAA,OAAO,KAAK,WAAA,CAAY,qBAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,SAAA,GAAY;AACd,IAAA,OAAO,KAAK,WAAA,CAAY,SAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,eAAA,GAAkB;AACpB,IAAA,OAAO,KAAK,WAAA,CAAY,eAAA;AAAA,EAC1B;AAAA;AAAA,EAIA,IAAI,OAAA,GAAU;AACZ,IAAA,OAAO,KAAK,SAAA,CAAU,OAAA;AAAA,EACxB;AAAA,EAEA,IAAI,OAAA,GAAU;AACZ,IAAA,OAAO,KAAK,SAAA,CAAU,OAAA;AAAA,EACxB;AAAA,EAEA,IAAI,KAAA,GAQF;AACA,IAAA,OAAO;AAAA,MACL,GAAG,KAAK,SAAA,CAAU,KAAA;AAAA,MAClB,iBAAA,EAAmB,IAAA,CAAK,sBAAA,CAAuB,IAAA,CAAK,IAAI;AAAA,KAC1D;AAAA,EACF;AAAA,EAEA,IAAI,OAAA,GAAU;AACZ,IAAA,OAAO,KAAK,SAAA,CAAU,OAAA;AAAA,EACxB;AAAA;AAAA,EAIA,IAAI,EAAA,GAAK;AACP,IAAA,IAAI,YAAY,IAAA,CAAK,SAAA;AACrB,IAAA,IAAI,IAAA,GAAO,IAAA;AACX,IAAA,OAAO;AAAA,MACL,IAAI,QAAA,GAAW;AACb,QAAA,OAAO,SAAA,CAAU,QAAA;AAAA,MACnB,CAAA;AAAA,MACA,IAAI,OAAA,GAAU;AACZ,QAAA,OAAO,SAAA,CAAU,OAAA;AAAA,MACnB,CAAA;AAAA,MACA,IAAI,OAAA,GAAU;AACZ,QAAA,OAAO,SAAA,CAAU,OAAA;AAAA,MACnB,CAAA;AAAA,MACA,IAAI,QAAA,GAAW;AACb,QAAA,OAAO,SAAA,CAAU,QAAA;AAAA,MACnB,CAAA;AAAA,MACA,IAAI,KAAA,GAAQ;AACV,QAAA,OAAO,IAAA,CAAK,KAAA;AAAA,MACd,CAAA;AAAA,MACA,IAAI,OAAA,GAAU;AACZ,QAAA,OAAO,SAAA,CAAU,OAAA;AAAA,MACnB,CAAA;AAAA,MACA,GAAA,EAAK;AAAA,QACH,eAAe,CAAC,IAAA,KACd,IAAI,kBAAA,CAAmB,WAAW,IAAI,CAAA;AAAA,QACxC,WAAA,EAAa,IAAA,CAAK,kBAAA,CAAmB,IAAA,CAAK,IAAI,CAAA;AAAA,QAC9C,mBAAA,EAAqB,IAAA,CAAK,0BAAA,CAA2B,IAAA,CAAK,IAAI,CAAA;AAAA,QAC9D,gBAAA,EAAkB,IAAA,CAAK,0BAAA,CAA2B,IAAA,CAAK,IAAI;AAAA,OAC7D;AAAA,MACA,WAAA,EAAa,IAAA,CAAK,kBAAA,CAAmB,IAAA,CAAK,IAAI,CAAA;AAAA,MAC9C,mBAAA,EAAqB,IAAA,CAAK,0BAAA,CAA2B,IAAA,CAAK,IAAI,CAAA;AAAA,MAC9D,mBAAA,EAAqB,IAAA,CAAK,0BAAA,CAA2B,IAAA,CAAK,IAAI;AAAA,KAChE;AAAA,EACF;AAAA;AAAA,EAIA,IAAI,GAAA,GAAM;AACR,IAAA,OAAO;AAAA,MACL,eAAe,CAAC,IAAA,KACd,IAAI,0BAAA,CAA2B,IAAA,CAAK,aAAa,IAAI,CAAA;AAAA,MACvD,WAAA,EAAa,IAAA,CAAK,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA;AAAA,MACvC,mBAAA,EAAqB,IAAA,CAAK,mBAAA,CAAoB,IAAA,CAAK,IAAI,CAAA;AAAA,MACvD,gBAAA,EAAkB,IAAA,CAAK,mBAAA,CAAoB,IAAA,CAAK,IAAI;AAAA,KACtD;AAAA,EACF;AAAA,EAEA,QACE,IAAA,EAC4B;AAC5B,IAAA,OAAO,IAAI,0BAAA,CAA2B,IAAA,CAAK,WAAA,EAAa,IAAI,CAAA;AAAA,EAC9D;AAAA,EAEA,MAAM,oBACJ,IAAA,EACA;AACA,IAAA,IAAI,OAAA,GAAU,IAAI,0BAAA,CAA2B,IAAA,CAAK,aAAa,IAAI,CAAA;AACnE,IAAA,OAAO,MAAM,QAAQ,SAAA,EAAU;AAAA,EACjC;AAAA,EAEA,MAAM,WAAA,CACJ,IAAA,EACA,MAAA,EACY;AACZ,IAAA,IAAI,OAAA,GAAU,IAAI,0BAAA,CAA2B,IAAA,CAAK,aAAa,IAAI,CAAA;AACnE,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,OAAO,OAAO,CAAA;AAAA,IAC7B,CAAA,SAAE;AACA,MAAA,MAAM,QAAQ,KAAA,EAAM;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAM,mBAAA,CACJ,QAAA,EACA,IAAA,EACA,MAAA,EASY;AACZ,IAAA,IAAI,KAAK,SAAA,EAAW;AAClB,MAAA,OAAO,IAAA,CAAK,4BAAA,CAA6B,QAAA,EAAU,IAAA,EAAM,MAAM,CAAA;AAAA,IACjE;AAEA,IAAA,OAAO,IAAA,CAAK,WAAA,CAAY,IAAA,EAAM,OAAM,OAAA,KAAW;AAC7C,MAAA,IAAI,YAAA,GAAe,MAAM,QAAA,CAAS,OAAO,CAAA;AAEzC,MAAA,OAAO,MAAA,CAAO;AAAA,QACZ,GAAG,YAAA;AAAA,QACH,OAAA;AAAA,QACA,UAAA,EAAY,OAAA,CAAQ,UAAA,CAAW,IAAA,CAAK,OAAO,CAAA;AAAA,QAC3C,eAAA,EAAiB,OAAA,CAAQ,eAAA,CAAgB,IAAA,CAAK,OAAO,CAAA;AAAA,QACrD,cAAA,EAAgB,OAAA,CAAQ,cAAA,CAAe,IAAA,CAAK,OAAO,CAAA;AAAA,QACnD,cAAc,YAAY;AAAA,QAAC;AAAA,OAC5B,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AAAA,EAEA,MAAc,4BAAA,CACZ,QAAA,EACA,IAAA,EACA,MAAA,EASY;AACZ,IAAA,IAAI,OAAA,GAAU,IAAI,0BAAA,CAA2B,IAAA,CAAK,aAAa,IAAI,CAAA;AACnE,IAAA,IAAI,aAAA,GAAgB,KAAA;AAEpB,IAAA,MAAM,eAAe,YAAY;AAC/B,MAAA,IAAI,CAAC,aAAA,EAAe;AAClB,QAAA,aAAA,GAAgB,IAAA;AAChB,QAAA,MAAM,QAAQ,KAAA,EAAM;AAAA,MACtB;AAAA,IACF,CAAA;AAEA,IAAA,IAAI;AACF,MAAA,IAAI,YAAA,GAAe,MAAM,QAAA,CAAS,OAAO,CAAA;AAEzC,MAAA,IAAI,MAAA,GAAS,MAAM,MAAA,CAAO;AAAA,QACxB,GAAG,YAAA;AAAA,QACH,OAAA;AAAA,QACA,UAAA,EAAY,OAAA,CAAQ,UAAA,CAAW,IAAA,CAAK,OAAO,CAAA;AAAA,QAC3C,eAAA,EAAiB,OAAA,CAAQ,eAAA,CAAgB,IAAA,CAAK,OAAO,CAAA;AAAA,QACrD,cAAA,EAAgB,OAAA,CAAQ,cAAA,CAAe,IAAA,CAAK,OAAO,CAAA;AAAA,QACnD;AAAA,OACD,CAAA;AAED,MAAA,IAAI,OAAA,GAAU,WAAW,YAAY;AACnC,QAAA,IAAI,CAAC,aAAA,EAAe;AAClB,UAAA,MAAM,YAAA,EAAa;AAAA,QACrB;AAAA,MACF,GAAG,GAAK,CAAA;AACR,MAAA,OAAA,CAAQ,KAAA,EAAM;AAEd,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,YAAA,EAAa;AACnB,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AAAA;AAAA,EAIA,MAAM,2BAA2B,IAAA,EAAuD;AACtF,IAAA,IAAI,OAAA,GAAU,IAAI,kBAAA,CAAmB,IAAA,CAAK,SAAA,EAAW;AAAA,MACnD,iBAAA,EAAmB,CAAC,IAAI;AAAA,KACzB,CAAA;AAED,IAAA,IAAI,WAAA,GAAc,MAAM,OAAA,CAAQ,oBAAA,EAAqB;AAErD,IAAA,OAAO,MAAM,QAAQ,SAAA,CAAU;AAAA,MAC7B,YAAA,EAAc,WAAA,CAAY,CAAC,CAAA,CAAE;AAAA,KAC9B,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,kBAAA,CACJ,IAAA,EACA,MAAA,EACY;AACZ,IAAA,IAAI,OAAA,GAAU,IAAI,kBAAA,CAAmB,IAAA,CAAK,WAAW,IAAI,CAAA;AACzD,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,OAAO,OAAO,CAAA;AAAA,IAC7B,CAAA,SAAE;AACA,MAAA,MAAM,QAAQ,KAAA,EAAM;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAM,0BAAA,CACJ,QAAA,EACA,IAAA,EACA,MAAA,EAUY;AACZ,IAAA,IAAI,KAAK,SAAA,EAAW;AAClB,MAAA,OAAO,IAAA,CAAK,oBAAA,CAAqB,QAAA,EAAU,IAAA,EAAM,MAAM,CAAA;AAAA,IACzD;AAEA,IAAA,OAAO,IAAA,CAAK,kBAAA,CAAmB,IAAA,EAAM,OAAM,OAAA,KAAW;AACpD,MAAA,IAAI,YAAA,GAAe,MAAM,QAAA,CAAS,OAAO,CAAA;AAEzC,MAAA,OAAO,MAAA,CAAO;AAAA,QACZ,GAAG,YAAA;AAAA,QACH,OAAA;AAAA,QACA,UAAA,EAAY,OAAA,CAAQ,UAAA,CAAW,IAAA,CAAK,OAAO,CAAA;AAAA,QAC3C,eAAA,EAAiB,OAAA,CAAQ,eAAA,CAAgB,IAAA,CAAK,OAAO,CAAA;AAAA,QACrD,SAAA,EAAW,OAAA,CAAQ,SAAA,CAAU,IAAA,CAAK,OAAO,CAAA;AAAA,QACzC,oBAAA,EAAsB,OAAA,CAAQ,oBAAA,CAAqB,IAAA,CAAK,OAAO,CAAA;AAAA,QAC/D,cAAA,EAAgB,OAAA,CAAQ,cAAA,CAAe,IAAA,CAAK,OAAO;AAAA,OACpD,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AAAA,EAEA,MAAc,oBAAA,CACZ,QAAA,EACA,IAAA,EACA,MAAA,EAWY;AACZ,IAAA,IAAI,OAAA,GAAU,IAAI,kBAAA,CAAmB,IAAA,CAAK,WAAW,IAAI,CAAA;AACzD,IAAA,IAAI,aAAA,GAAgB,KAAA;AAEpB,IAAA,MAAM,eAAe,YAAY;AAC/B,MAAA,IAAI,CAAC,aAAA,EAAe;AAClB,QAAA,aAAA,GAAgB,IAAA;AAChB,QAAA,MAAM,QAAQ,KAAA,EAAM;AAAA,MACtB;AAAA,IACF,CAAA;AAEA,IAAA,IAAI;AACF,MAAA,IAAI,YAAA,GAAe,MAAM,QAAA,CAAS,OAAO,CAAA;AAEzC,MAAA,IAAI,MAAA,GAAS,MAAM,MAAA,CAAO;AAAA,QACxB,GAAG,YAAA;AAAA,QACH,OAAA;AAAA,QACA,UAAA,EAAY,OAAA,CAAQ,UAAA,CAAW,IAAA,CAAK,OAAO,CAAA;AAAA,QAC3C,eAAA,EAAiB,OAAA,CAAQ,eAAA,CAAgB,IAAA,CAAK,OAAO,CAAA;AAAA,QACrD,SAAA,EAAW,OAAA,CAAQ,SAAA,CAAU,IAAA,CAAK,OAAO,CAAA;AAAA,QACzC,oBAAA,EAAsB,OAAA,CAAQ,oBAAA,CAAqB,IAAA,CAAK,OAAO,CAAA;AAAA,QAC/D,cAAA,EAAgB,OAAA,CAAQ,cAAA,CAAe,IAAA,CAAK,OAAO,CAAA;AAAA,QACnD;AAAA,OACD,CAAA;AAED,MAAA,IAAI,OAAA,GAAU,WAAW,YAAY;AACnC,QAAA,IAAI,CAAC,aAAA,EAAe;AAClB,UAAA,MAAM,YAAA,EAAa;AAAA,QACrB;AAAA,MACF,GAAG,GAAK,CAAA;AACR,MAAA,OAAA,CAAQ,KAAA,EAAM;AAEd,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,YAAA,EAAa;AACnB,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAM,mBAAA,CACJ,QAAA,EACA,OAAA,EAIA;AArZJ,IAAA,IAAA,EAAA,EAAA,EAAA;AAsZI,IAAA,IAAI,cAAc,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GAAI,QAAA,GAAW,CAAC,QAAQ,CAAA;AAChE,IAAA,IAAI,eAAe,IAAA,CAAK,GAAA,CAAA,CAAI,wCAAS,YAAA,KAAT,IAAA,GAAA,EAAA,GAAyB,KAAM,GAAI,CAAA;AAC/D,IAAA,IAAI,OAAA,GAAA,CAAU,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,OAAA,KAAT,IAAA,GAAA,EAAA,GAAoB,GAAA;AAClC,IAAA,IAAI,SAAA,GAAY,KAAK,GAAA,EAAI;AAEzB,IAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,OAAO,IAAA,EAAM;AACX,MAAA,IAAI,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA,GAAY,OAAA,EAAS;AACpC,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,8BAAA,EAAiC,OAAA,GAAU,GAAI,CAAA,QAAA,CAAU,CAAA;AAAA,MAC3E;AAEA,MAAA,IAAI;AACF,QAAA,IAAI,QAAA,GAAW,MAAM,OAAA,CAAQ,GAAA;AAAA,UAC3B,WAAA,CAAY,GAAA,CAAI,CAAA,CAAA,KAAK,IAAA,CAAK,WAAA,CAAY,oBAAoB,aAAA,CAAc,GAAA,CAAI,CAAA,CAAE,EAAE,CAAC;AAAA,SACnF;AAEA,QAAA,IAAI,SAAS,QAAA,CAAS,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,CAAE,WAAW,QAAQ,CAAA;AACvD,QAAA,IAAI,MAAA,CAAO,SAAS,CAAA,EAAG;AACrB,UAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,MAAA,CAAO,MAAM,CAAA,wBAAA,CAA0B,CAAA;AAAA,QAC5D;AAEA,QAAA,IAAI,eAAe,QAAA,CAAS,KAAA,CAAM,CAAA,CAAA,KAAK,CAAA,CAAE,WAAW,WAAW,CAAA;AAC/D,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,OAAO,QAAA;AAAA,QACT;AAEA,QAAA,MAAM,IAAI,OAAA,CAAQ,CAAA,OAAA,KAAW,UAAA,CAAW,OAAA,EAAS,YAAY,CAAC,CAAA;AAAA,MAChE,SAAS,KAAA,EAAO;AACd,QAAA,IACE,iBAAiB,KAAA,KAChB,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,eAAe,CAAA,KACpC,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA,IAAK,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA,CAAA,CAAA,EACzE;AACA,UAAA,MAAM,KAAA;AAAA,QACR;AAEA,QAAA,MAAM,IAAI,OAAA,CAAQ,CAAA,OAAA,KAAW,UAAA,CAAW,OAAA,EAAS,YAAY,CAAC,CAAA;AAAA,MAChE;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,sBAAA,CACJ,QAAA,EACA,OAAA,EAIe;AAxcnB,IAAA,IAAA,EAAA,EAAA,EAAA;AAycI,IAAA,IAAI,eAAe,IAAA,CAAK,GAAA,CAAA,CAAI,wCAAS,YAAA,KAAT,IAAA,GAAA,EAAA,GAAyB,KAAM,GAAI,CAAA;AAC/D,IAAA,IAAI,OAAA,GAAA,CAAU,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,OAAA,KAAT,IAAA,GAAA,EAAA,GAAoB,GAAA;AAClC,IAAA,IAAI,SAAA,GAAY,KAAK,GAAA,EAAI;AAEzB,IAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,MAAA;AAAA,IACF;AAEA,IAAA,OAAO,IAAA,EAAM;AACX,MAAA,IAAI,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA,GAAY,OAAA,EAAS;AACpC,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,mCAAA,EAAsC,OAAA,GAAU,GAAI,CAAA,QAAA,CAAU,CAAA;AAAA,MAChF;AAEA,MAAA,IAAI;AACF,QAAA,IAAI,QAAA,GAAW,MAAM,OAAA,CAAQ,GAAA;AAAA,UAC3B,QAAA,CAAS,IAAI,CAAA,OAAA,KAAW,IAAA,CAAK,MAAM,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,EAAE,CAAC;AAAA,SAC7D;AAEA,QAAA,IAAI,eAAe,QAAA,CAAS,KAAA,CAAM,CAAA,MAAA,KAAU,MAAA,CAAO,WAAW,WAAW,CAAA;AACzE,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA;AAAA,QACF;AAEA,QAAA,IAAI,iBAAiB,QAAA,CAAS,MAAA,CAAO,CAAA,MAAA,KAAU,MAAA,CAAO,WAAW,QAAQ,CAAA;AACzE,QAAA,IAAI,cAAA,CAAe,SAAS,CAAA,EAAG;AAC7B,UAAA,MAAM,IAAI,KAAA;AAAA,YACR,CAAA,gCAAA,EAAmC,eAAe,MAAM,CAAA,WAAA;AAAA,WAC1D;AAAA,QACF;AAEA,QAAA,MAAM,IAAI,OAAA,CAAQ,CAAA,OAAA,KAAW,UAAA,CAAW,OAAA,EAAS,YAAY,CAAC,CAAA;AAAA,MAChE,SAAS,KAAA,EAAO;AACd,QAAA,IACE,KAAA,YAAiB,KAAA,KAChB,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,6BAA6B,CAAA,IACnD,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,8BAA8B,CAAA,CAAA,EACvD;AACA,UAAA,MAAM,KAAA;AAAA,QACR;AAEA,QAAA,MAAM,IAAI,OAAA,CAAQ,CAAA,OAAA,KAAW,UAAA,CAAW,OAAA,EAAS,YAAY,CAAC,CAAA;AAAA,MAChE;AAAA,IACF;AAAA,EACF;AAEF","file":"index.js","sourcesContent":["import {\n MetorialPulsarCoreSDK,\n createMetorialPulsarCoreSDK,\n MetorialMagnetarCoreSDK,\n createMetorialMagnetarCoreSDK\n} from '@metorial/core';\nimport {\n MetorialMcpSession,\n MetorialMcpSessionInit,\n MetorialMcpSessionInitServerDeployments,\n MetorialMagnetarMcpSession,\n MetorialMagnetarMcpSessionInit\n} from '@metorial/mcp-session';\n\nexport type {\n MetorialMcpSession,\n MetorialMcpSessionInit,\n MetorialMcpSessionInitServerDeployments,\n MetorialMagnetarMcpSession,\n MetorialMagnetarMcpSessionInit\n} from '@metorial/mcp-session';\n\nexport class Metorial {\n private readonly pulsarSdk: MetorialPulsarCoreSDK;\n private readonly magnetarSdk: MetorialMagnetarCoreSDK;\n\n constructor(init: Omit<Parameters<typeof createMetorialPulsarCoreSDK>[0], 'apiVersion'>) {\n let apiHost = init.apiHost;\n let mcpHost = init.mcpHost;\n\n // Derive apiHost from mcpHost if only mcpHost is provided\n if (mcpHost && !apiHost) {\n apiHost = mcpHost.replace('://connect.', '://api.');\n }\n\n // v1 (pulsar): mcp.<domain> pattern — let mcpSession.ts derive it from apiHost\n this.pulsarSdk = createMetorialPulsarCoreSDK({ ...init, apiHost });\n\n // v2 (magnetar): connect.<domain> pattern\n this.magnetarSdk = createMetorialMagnetarCoreSDK({ ...init, apiHost, mcpHost });\n }\n\n // ── Magnetar (default) ───────────────────────────────────────────\n\n get providers() {\n return this.magnetarSdk.providers;\n }\n\n get providerDeployments() {\n let deployments = this.magnetarSdk.providerDeployments;\n Object.assign(deployments.setupSessions, {\n waitForCompletion: this.waitForSetupSession.bind(this)\n });\n return deployments;\n }\n\n get sessions() {\n return this.magnetarSdk.sessions;\n }\n\n get sessionTemplates() {\n return this.magnetarSdk.sessionTemplates;\n }\n\n get providerRuns() {\n return this.magnetarSdk.providerRuns;\n }\n\n get instance() {\n return this.magnetarSdk.instance;\n }\n\n get publishers() {\n return this.magnetarSdk.publishers;\n }\n\n get providerCategories() {\n return this.magnetarSdk.providerCategories;\n }\n\n get providerCollections() {\n return this.magnetarSdk.providerCollections;\n }\n\n get providerGroups() {\n return this.magnetarSdk.providerGroups;\n }\n\n get providerListings() {\n return this.magnetarSdk.providerListings;\n }\n\n get providerSetupSessions() {\n return this.magnetarSdk.providerSetupSessions;\n }\n\n get toolCalls() {\n return this.magnetarSdk.toolCalls;\n }\n\n get customProviders() {\n return this.magnetarSdk.customProviders;\n }\n\n // ── Backward compat (Pulsar endpoints at top level) ──────────────\n\n get servers() {\n return this.pulsarSdk.servers;\n }\n\n get secrets() {\n return this.pulsarSdk.secrets;\n }\n\n get oauth(): typeof this.pulsarSdk.oauth & {\n waitForCompletion: (\n sessions: Array<{ id: string }>,\n options?: {\n pollInterval?: number;\n timeout?: number;\n }\n ) => Promise<void>;\n } {\n return {\n ...this.pulsarSdk.oauth,\n waitForCompletion: this.waitForOAuthCompletion.bind(this)\n };\n }\n\n get _config() {\n return this.pulsarSdk._config;\n }\n\n // ── v1 namespace (legacy Pulsar) ─────────────────────────────────\n\n get v1() {\n let pulsarSdk = this.pulsarSdk;\n let self = this;\n return {\n get instance() {\n return pulsarSdk.instance;\n },\n get secrets() {\n return pulsarSdk.secrets;\n },\n get servers() {\n return pulsarSdk.servers;\n },\n get sessions() {\n return pulsarSdk.sessions;\n },\n get oauth() {\n return self.oauth;\n },\n get _config() {\n return pulsarSdk._config;\n },\n mcp: {\n createSession: (init: MetorialMcpSessionInit) =>\n new MetorialMcpSession(pulsarSdk, init),\n withSession: self._pulsarWithSession.bind(self),\n withProviderSession: self._pulsarWithProviderSession.bind(self),\n createConnection: self._pulsarCreateMcpConnection.bind(self)\n },\n withSession: self._pulsarWithSession.bind(self),\n withProviderSession: self._pulsarWithProviderSession.bind(self),\n createMcpConnection: self._pulsarCreateMcpConnection.bind(self)\n };\n }\n\n // ── MCP (Magnetar default) ───────────────────────────────────────\n\n get mcp() {\n return {\n createSession: (init: MetorialMagnetarMcpSessionInit) =>\n new MetorialMagnetarMcpSession(this.magnetarSdk, init),\n withSession: this.withSession.bind(this),\n withProviderSession: this.withProviderSession.bind(this),\n createConnection: this.createMcpConnection.bind(this)\n };\n }\n\n session(\n init: MetorialMagnetarMcpSessionInit\n ): MetorialMagnetarMcpSession {\n return new MetorialMagnetarMcpSession(this.magnetarSdk, init);\n }\n\n async createMcpConnection(\n init: MetorialMagnetarMcpSessionInit\n ) {\n let session = new MetorialMagnetarMcpSession(this.magnetarSdk, init);\n return await session.getClient();\n }\n\n async withSession<T>(\n init: MetorialMagnetarMcpSessionInit,\n action: (session: MetorialMagnetarMcpSession) => Promise<T>\n ): Promise<T> {\n let session = new MetorialMagnetarMcpSession(this.magnetarSdk, init);\n try {\n return await action(session);\n } finally {\n await session.close();\n }\n }\n\n async withProviderSession<P, T>(\n provider: (session: MetorialMagnetarMcpSession) => Promise<P>,\n init: (MetorialMagnetarMcpSessionInit) & { streaming?: boolean },\n action: (\n input: P & {\n session: MetorialMagnetarMcpSession;\n getSession: MetorialMagnetarMcpSession['getSession'];\n getCapabilities: MetorialMagnetarMcpSession['getCapabilities'];\n getToolManager: MetorialMagnetarMcpSession['getToolManager'];\n closeSession: () => Promise<void>;\n }\n ) => Promise<T>\n ): Promise<T> {\n if (init.streaming) {\n return this.withMagnetarStreamingSession(provider, init, action);\n }\n\n return this.withSession(init, async session => {\n let providerData = await provider(session);\n\n return action({\n ...providerData,\n session,\n getSession: session.getSession.bind(session),\n getCapabilities: session.getCapabilities.bind(session),\n getToolManager: session.getToolManager.bind(session),\n closeSession: async () => {}\n });\n });\n }\n\n private async withMagnetarStreamingSession<P, T>(\n provider: (session: MetorialMagnetarMcpSession) => Promise<P>,\n init: MetorialMagnetarMcpSessionInit,\n action: (\n input: P & {\n session: MetorialMagnetarMcpSession;\n getSession: MetorialMagnetarMcpSession['getSession'];\n getCapabilities: MetorialMagnetarMcpSession['getCapabilities'];\n getToolManager: MetorialMagnetarMcpSession['getToolManager'];\n closeSession: () => Promise<void>;\n }\n ) => Promise<T>\n ): Promise<T> {\n let session = new MetorialMagnetarMcpSession(this.magnetarSdk, init);\n let sessionClosed = false;\n\n const closeSession = async () => {\n if (!sessionClosed) {\n sessionClosed = true;\n await session.close();\n }\n };\n\n try {\n let providerData = await provider(session);\n\n let result = await action({\n ...providerData,\n session,\n getSession: session.getSession.bind(session),\n getCapabilities: session.getCapabilities.bind(session),\n getToolManager: session.getToolManager.bind(session),\n closeSession\n });\n\n let timeout = setTimeout(async () => {\n if (!sessionClosed) {\n await closeSession();\n }\n }, 60000);\n timeout.unref();\n\n return result;\n } catch (error) {\n await closeSession();\n throw error;\n }\n }\n\n // ── Pulsar MCP helpers (used by v1) ──────────────────────────────\n\n async _pulsarCreateMcpConnection(init: MetorialMcpSessionInitServerDeployments[number]) {\n let session = new MetorialMcpSession(this.pulsarSdk, {\n serverDeployments: [init]\n });\n\n let deployments = await session.getServerDeployments();\n\n return await session.getClient({\n deploymentId: deployments[0].id\n });\n }\n\n async _pulsarWithSession<T>(\n init: MetorialMcpSessionInit,\n action: (session: MetorialMcpSession) => Promise<T>\n ): Promise<T> {\n let session = new MetorialMcpSession(this.pulsarSdk, init);\n try {\n return await action(session);\n } finally {\n await session.close();\n }\n }\n\n async _pulsarWithProviderSession<P, T>(\n provider: (session: MetorialMcpSession) => Promise<P>,\n init: MetorialMcpSessionInit & { streaming?: boolean },\n action: (\n input: P & {\n session: MetorialMcpSession;\n getSession: MetorialMcpSession['getSession'];\n getCapabilities: MetorialMcpSession['getCapabilities'];\n getClient: MetorialMcpSession['getClient'];\n getServerDeployments: MetorialMcpSession['getServerDeployments'];\n getToolManager: MetorialMcpSession['getToolManager'];\n }\n ) => Promise<T>\n ): Promise<T> {\n if (init.streaming) {\n return this.withStreamingSession(provider, init, action);\n }\n\n return this._pulsarWithSession(init, async session => {\n let providerData = await provider(session);\n\n return action({\n ...providerData,\n session,\n getSession: session.getSession.bind(session),\n getCapabilities: session.getCapabilities.bind(session),\n getClient: session.getClient.bind(session),\n getServerDeployments: session.getServerDeployments.bind(session),\n getToolManager: session.getToolManager.bind(session)\n });\n });\n }\n\n private async withStreamingSession<P, T>(\n provider: (session: MetorialMcpSession) => Promise<P>,\n init: MetorialMcpSessionInit,\n action: (\n input: P & {\n session: MetorialMcpSession;\n getSession: MetorialMcpSession['getSession'];\n getCapabilities: MetorialMcpSession['getCapabilities'];\n getClient: MetorialMcpSession['getClient'];\n getServerDeployments: MetorialMcpSession['getServerDeployments'];\n getToolManager: MetorialMcpSession['getToolManager'];\n closeSession: () => Promise<void>;\n }\n ) => Promise<T>\n ): Promise<T> {\n let session = new MetorialMcpSession(this.pulsarSdk, init);\n let sessionClosed = false;\n\n const closeSession = async () => {\n if (!sessionClosed) {\n sessionClosed = true;\n await session.close();\n }\n };\n\n try {\n let providerData = await provider(session);\n\n let result = await action({\n ...providerData,\n session,\n getSession: session.getSession.bind(session),\n getCapabilities: session.getCapabilities.bind(session),\n getClient: session.getClient.bind(session),\n getServerDeployments: session.getServerDeployments.bind(session),\n getToolManager: session.getToolManager.bind(session),\n closeSession\n });\n\n let timeout = setTimeout(async () => {\n if (!sessionClosed) {\n await closeSession();\n }\n }, 60000);\n timeout.unref();\n\n return result;\n } catch (error) {\n await closeSession();\n throw error;\n }\n }\n\n async waitForSetupSession(\n sessions: { id: string } | Array<{ id: string }>,\n options?: {\n pollInterval?: number;\n timeout?: number;\n }\n ) {\n let sessionList = Array.isArray(sessions) ? sessions : [sessions];\n let pollInterval = Math.max(options?.pollInterval ?? 5000, 2000);\n let timeout = options?.timeout ?? 600000;\n let startTime = Date.now();\n\n if (sessionList.length === 0) {\n return [];\n }\n\n while (true) {\n if (Date.now() - startTime > timeout) {\n throw new Error(`Setup session timed out after ${timeout / 1000} seconds`);\n }\n\n try {\n let statuses = await Promise.all(\n sessionList.map(s => this.magnetarSdk.providerDeployments.setupSessions.get(s.id))\n );\n\n let failed = statuses.filter(s => s.status === 'failed');\n if (failed.length > 0) {\n throw new Error(`${failed.length} setup session(s) failed`);\n }\n\n let allCompleted = statuses.every(s => s.status === 'completed');\n if (allCompleted) {\n return statuses;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n } catch (error) {\n if (\n error instanceof Error &&\n (error.message.includes('setup session') &&\n (error.message.includes('failed') || error.message.includes('timed out')))\n ) {\n throw error;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n }\n }\n }\n\n async waitForOAuthCompletion(\n sessions: Array<{ id: string }>,\n options?: {\n pollInterval?: number;\n timeout?: number;\n }\n ): Promise<void> {\n let pollInterval = Math.max(options?.pollInterval ?? 5000, 2000); // minimum 2 seconds\n let timeout = options?.timeout ?? 600000; // 10 minutes\n let startTime = Date.now();\n\n if (sessions.length === 0) {\n return;\n }\n\n while (true) {\n if (Date.now() - startTime > timeout) {\n throw new Error(`OAuth authentication timeout after ${timeout / 1000} seconds`);\n }\n\n try {\n let statuses = await Promise.all(\n sessions.map(session => this.oauth.sessions.get(session.id))\n );\n\n let allCompleted = statuses.every(status => status.status === 'completed');\n if (allCompleted) {\n return;\n }\n\n let failedSessions = statuses.filter(status => status.status === 'failed');\n if (failedSessions.length > 0) {\n throw new Error(\n `OAuth authentication failed for ${failedSessions.length} session(s)`\n );\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n } catch (error) {\n if (\n error instanceof Error &&\n (error.message.includes('OAuth authentication failed') ||\n error.message.includes('OAuth authentication timeout'))\n ) {\n throw error;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n }\n }\n }\n\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/metorial.ts"],"names":[],"mappings":";;;;AAuBO,IAAM,WAAN,MAAe;AAAA,EAGpB,YAAY,IAAA,EAAuE;AACjF,IAAA,IAAI,UAAU,IAAA,CAAK,OAAA;AACnB,IAAA,IAAI,UAAU,IAAA,CAAK,OAAA;AAEnB,IAAA,IAAI,OAAA,IAAW,CAAC,OAAA,EAAS;AACvB,MAAA,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,aAAA,EAAe,SAAS,CAAA;AAAA,IACpD;AAEA,IAAA,IAAA,CAAK,MAAM,qBAAA,CAAsB,EAAE,GAAG,IAAA,EAAM,OAAA,EAAS,SAAS,CAAA;AAAA,EAChE;AAAA,EAEA,IAAI,SAAA,GAAY;AACd,IAAA,OAAO,KAAK,GAAA,CAAI,SAAA;AAAA,EAClB;AAAA,EAEA,IAAI,mBAAA,GAAsB;AACxB,IAAA,IAAI,WAAA,GAAc,KAAK,GAAA,CAAI,mBAAA;AAC3B,IAAA,MAAA,CAAO,MAAA,CAAO,YAAY,aAAA,EAAe;AAAA,MACvC,iBAAA,EAAmB,IAAA,CAAK,mBAAA,CAAoB,IAAA,CAAK,IAAI;AAAA,KACtD,CAAA;AACD,IAAA,OAAO,WAAA;AAAA,EACT;AAAA,EAEA,IAAI,QAAA,GAAW;AACb,IAAA,OAAO,KAAK,GAAA,CAAI,QAAA;AAAA,EAClB;AAAA,EAEA,IAAI,gBAAA,GAAmB;AACrB,IAAA,OAAO,KAAK,GAAA,CAAI,gBAAA;AAAA,EAClB;AAAA,EAEA,IAAI,YAAA,GAAe;AACjB,IAAA,OAAO,KAAK,GAAA,CAAI,YAAA;AAAA,EAClB;AAAA,EAEA,IAAI,QAAA,GAAW;AACb,IAAA,OAAO,KAAK,GAAA,CAAI,QAAA;AAAA,EAClB;AAAA,EAEA,IAAI,UAAA,GAAa;AACf,IAAA,OAAO,KAAK,GAAA,CAAI,UAAA;AAAA,EAClB;AAAA,EAEA,IAAI,kBAAA,GAAqB;AACvB,IAAA,OAAO,KAAK,GAAA,CAAI,kBAAA;AAAA,EAClB;AAAA,EAEA,IAAI,mBAAA,GAAsB;AACxB,IAAA,OAAO,KAAK,GAAA,CAAI,mBAAA;AAAA,EAClB;AAAA,EAEA,IAAI,cAAA,GAAiB;AACnB,IAAA,OAAO,KAAK,GAAA,CAAI,cAAA;AAAA,EAClB;AAAA,EAEA,IAAI,gBAAA,GAAmB;AACrB,IAAA,OAAO,KAAK,GAAA,CAAI,gBAAA;AAAA,EAClB;AAAA,EAEA,IAAI,qBAAA,GAAwB;AAC1B,IAAA,OAAO,KAAK,GAAA,CAAI,qBAAA;AAAA,EAClB;AAAA,EAEA,IAAI,SAAA,GAAY;AACd,IAAA,OAAO,KAAK,GAAA,CAAI,SAAA;AAAA,EAClB;AAAA,EAEA,IAAI,eAAA,GAAkB;AACpB,IAAA,OAAO,KAAK,GAAA,CAAI,eAAA;AAAA,EAClB;AAAA,EAEA,MAAM,QAAW,OAAA,EAIF;AACb,IAAA,IAAI,OAAA,GAAU,MAAM,kBAAA,CAAmB,MAAA,CAAO,KAAK,GAAA,EAAK;AAAA,MACtD,WAAW,OAAA,CAAQ,SAAA;AAAA,MACnB,QAAQ,OAAA,CAAQ;AAAA,KACjB,CAAA;AAED,IAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,SAAA,CAAU,OAAO,CAAA;AAAA,EAC1C;AAAA;AAAA,EAGA,MAAM,mBAAA,CACJ,OAAA,EACA,IAAA,EACA,MAAA,EACY;AACZ,IAAA,IAAI,UAAU,MAAM,kBAAA,CAAmB,MAAA,CAAO,IAAA,CAAK,KAAK,IAAI,CAAA;AAC5D,IAAA,IAAI,QAAA,GAAW,OAAO,OAAA,KAAY,UAAA,GAAa,SAAQ,GAAI,OAAA;AAC3D,IAAA,IAAI,aAAA,GAAgB,MAAM,QAAA,CAAS,SAAA,CAAU,OAAO,CAAA;AACpD,IAAA,OAAO,MAAA,CAAO,EAAE,GAAG,aAAA,EAAe,cAAc,YAAY;AAAA,IAAC,GAAG,CAAA;AAAA,EAClE;AAAA,EAEA,MAAM,mBAAA,CACJ,QAAA,EACA,OAAA,EAIA;AAhIJ,IAAA,IAAA,EAAA,EAAA,EAAA;AAiII,IAAA,IAAI,cAAc,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GAAI,QAAA,GAAW,CAAC,QAAQ,CAAA;AAChE,IAAA,IAAI,eAAe,IAAA,CAAK,GAAA,CAAA,CAAI,wCAAS,YAAA,KAAT,IAAA,GAAA,EAAA,GAAyB,KAAM,GAAI,CAAA;AAC/D,IAAA,IAAI,OAAA,GAAA,CAAU,EAAA,GAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,OAAA,KAAT,IAAA,GAAA,EAAA,GAAoB,GAAA;AAClC,IAAA,IAAI,SAAA,GAAY,KAAK,GAAA,EAAI;AAEzB,IAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,OAAO,IAAA,EAAM;AACX,MAAA,IAAI,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA,GAAY,OAAA,EAAS;AACpC,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,8BAAA,EAAiC,OAAA,GAAU,GAAI,CAAA,QAAA,CAAU,CAAA;AAAA,MAC3E;AAEA,MAAA,IAAI;AACF,QAAA,IAAI,QAAA,GAAW,MAAM,OAAA,CAAQ,GAAA;AAAA,UAC3B,WAAA,CAAY,GAAA,CAAI,CAAA,CAAA,KAAK,IAAA,CAAK,GAAA,CAAI,oBAAoB,aAAA,CAAc,GAAA,CAAI,CAAA,CAAE,EAAE,CAAC;AAAA,SAC3E;AAEA,QAAA,IAAI,SAAS,QAAA,CAAS,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,CAAE,WAAW,QAAQ,CAAA;AACvD,QAAA,IAAI,MAAA,CAAO,SAAS,CAAA,EAAG;AACrB,UAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,MAAA,CAAO,MAAM,CAAA,wBAAA,CAA0B,CAAA;AAAA,QAC5D;AAEA,QAAA,IAAI,eAAe,QAAA,CAAS,KAAA,CAAM,CAAA,CAAA,KAAK,CAAA,CAAE,WAAW,WAAW,CAAA;AAC/D,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,OAAO,QAAA;AAAA,QACT;AAEA,QAAA,MAAM,IAAI,OAAA,CAAQ,CAAA,OAAA,KAAW,UAAA,CAAW,OAAA,EAAS,YAAY,CAAC,CAAA;AAAA,MAChE,SAAS,KAAA,EAAO;AACd,QAAA,IACE,iBAAiB,KAAA,KAChB,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,eAAe,CAAA,KACpC,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA,IAAK,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA,CAAA,CAAA,EACzE;AACA,UAAA,MAAM,KAAA;AAAA,QACR;AAEA,QAAA,MAAM,IAAI,OAAA,CAAQ,CAAA,OAAA,KAAW,UAAA,CAAW,OAAA,EAAS,YAAY,CAAC,CAAA;AAAA,MAChE;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,gBAAA,GAAQ","file":"index.js","sourcesContent":["import {\n MetorialCoreSDK,\n createMetorialCoreSDK\n} from '@metorial/core';\nimport {\n MetorialMcpSession,\n MetorialMcpSessionInit,\n MetorialMcpSessionInitProviders,\n MetorialMcpToolManager\n} from '@metorial/mcp-session';\n\nexport type {\n MetorialMcpSession,\n MetorialMcpSessionInit,\n MetorialMcpSessionInitProviders\n} from '@metorial/mcp-session';\n\ntype MetorialSession = { getToolManager(): Promise<MetorialMcpToolManager> };\n\nexport interface MetorialAdapter<T> {\n __resolve(session: MetorialSession): Promise<T>;\n}\n\nexport class Metorial {\n private readonly sdk: MetorialCoreSDK;\n\n constructor(init: Omit<Parameters<typeof createMetorialCoreSDK>[0], 'apiVersion'>) {\n let apiHost = init.apiHost;\n let mcpHost = init.mcpHost;\n\n if (mcpHost && !apiHost) {\n apiHost = mcpHost.replace('://connect.', '://api.');\n }\n\n this.sdk = createMetorialCoreSDK({ ...init, apiHost, mcpHost });\n }\n\n get providers() {\n return this.sdk.providers;\n }\n\n get providerDeployments() {\n let deployments = this.sdk.providerDeployments;\n Object.assign(deployments.setupSessions, {\n waitForCompletion: this.waitForSetupSession.bind(this)\n });\n return deployments;\n }\n\n get sessions() {\n return this.sdk.sessions;\n }\n\n get sessionTemplates() {\n return this.sdk.sessionTemplates;\n }\n\n get providerRuns() {\n return this.sdk.providerRuns;\n }\n\n get instance() {\n return this.sdk.instance;\n }\n\n get publishers() {\n return this.sdk.publishers;\n }\n\n get providerCategories() {\n return this.sdk.providerCategories;\n }\n\n get providerCollections() {\n return this.sdk.providerCollections;\n }\n\n get providerGroups() {\n return this.sdk.providerGroups;\n }\n\n get providerListings() {\n return this.sdk.providerListings;\n }\n\n get providerSetupSessions() {\n return this.sdk.providerSetupSessions;\n }\n\n get toolCalls() {\n return this.sdk.toolCalls;\n }\n\n get customProviders() {\n return this.sdk.customProviders;\n }\n\n async connect<T>(options: {\n adapter: MetorialAdapter<T>;\n providers: MetorialMcpSessionInitProviders;\n client?: { name?: string; version?: string };\n }): Promise<T> {\n let session = await MetorialMcpSession.create(this.sdk, {\n providers: options.providers,\n client: options.client\n });\n\n return options.adapter.__resolve(session);\n }\n\n /** @deprecated Use `metorial.connect()` instead. */\n async withProviderSession<P, T>(\n adapter: MetorialAdapter<P> | (() => MetorialAdapter<P>),\n init: MetorialMcpSessionInit & { streaming?: boolean },\n action: (input: P & { closeSession: () => Promise<void> }) => Promise<T>\n ): Promise<T> {\n let session = await MetorialMcpSession.create(this.sdk, init);\n let resolved = typeof adapter === 'function' ? adapter() : adapter;\n let adapterResult = await resolved.__resolve(session);\n return action({ ...adapterResult, closeSession: async () => {} });\n }\n\n async waitForSetupSession(\n sessions: { id: string } | Array<{ id: string }>,\n options?: {\n pollInterval?: number;\n timeout?: number;\n }\n ) {\n let sessionList = Array.isArray(sessions) ? sessions : [sessions];\n let pollInterval = Math.max(options?.pollInterval ?? 5000, 2000);\n let timeout = options?.timeout ?? 600000;\n let startTime = Date.now();\n\n if (sessionList.length === 0) {\n return [];\n }\n\n while (true) {\n if (Date.now() - startTime > timeout) {\n throw new Error(`Setup session timed out after ${timeout / 1000} seconds`);\n }\n\n try {\n let statuses = await Promise.all(\n sessionList.map(s => this.sdk.providerDeployments.setupSessions.get(s.id))\n );\n\n let failed = statuses.filter(s => s.status === 'failed');\n if (failed.length > 0) {\n throw new Error(`${failed.length} setup session(s) failed`);\n }\n\n let allCompleted = statuses.every(s => s.status === 'completed');\n if (allCompleted) {\n return statuses;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n } catch (error) {\n if (\n error instanceof Error &&\n (error.message.includes('setup session') &&\n (error.message.includes('failed') || error.message.includes('timed out')))\n ) {\n throw error;\n }\n\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n }\n }\n }\n}\n\nexport default Metorial;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metorial/sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"author": "Metorial Inc.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -29,17 +29,17 @@
|
|
|
29
29
|
"dist"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@metorial/core": "^2.0
|
|
33
|
-
"@metorial/mcp-session": "^2.0
|
|
34
|
-
"@metorial/util-endpoint": "^2.
|
|
35
|
-
"@metorial/anthropic": "^2.
|
|
36
|
-
"@metorial/deepseek": "^2.
|
|
37
|
-
"@metorial/google": "^2.
|
|
38
|
-
"@metorial/mistral": "^2.
|
|
39
|
-
"@metorial/openai": "^2.
|
|
40
|
-
"@metorial/openai-compatible": "^2.
|
|
41
|
-
"@metorial/togetherai": "^2.
|
|
42
|
-
"@metorial/xai": "^2.
|
|
32
|
+
"@metorial/core": "^2.1.0",
|
|
33
|
+
"@metorial/mcp-session": "^2.1.0",
|
|
34
|
+
"@metorial/util-endpoint": "^2.1.0",
|
|
35
|
+
"@metorial/anthropic": "^2.1.0",
|
|
36
|
+
"@metorial/deepseek": "^2.1.0",
|
|
37
|
+
"@metorial/google": "^2.1.0",
|
|
38
|
+
"@metorial/mistral": "^2.1.0",
|
|
39
|
+
"@metorial/openai": "^2.1.0",
|
|
40
|
+
"@metorial/openai-compatible": "^2.1.0",
|
|
41
|
+
"@metorial/togetherai": "^2.1.0",
|
|
42
|
+
"@metorial/xai": "^2.1.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@anthropic-ai/sdk": "^0.30.0",
|