@xpert-ai/xpert-sdk 0.0.14 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/auth/types.d.ts +1 -0
  2. package/dist/client.d.ts +34 -0
  3. package/dist/client.js +210 -25
  4. package/dist/client.js.map +1 -1
  5. package/dist/client.mjs +210 -25
  6. package/dist/client.mjs.map +1 -1
  7. package/dist/index.d.ts +4 -0
  8. package/dist/index.js +2 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.mjs +2 -0
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/mcp/apps.d.ts +11 -0
  13. package/dist/mcp/apps.js +49 -0
  14. package/dist/mcp/apps.js.map +1 -0
  15. package/dist/mcp/apps.mjs +49 -0
  16. package/dist/mcp/apps.mjs.map +1 -0
  17. package/dist/mcp/apps.test.d.ts +1 -0
  18. package/dist/mcp/apps.test.js +77 -0
  19. package/dist/mcp/apps.test.js.map +1 -0
  20. package/dist/mcp/apps.test.mjs +77 -0
  21. package/dist/mcp/apps.test.mjs.map +1 -0
  22. package/dist/mcp/index.d.ts +11 -0
  23. package/dist/mcp/index.js +13 -0
  24. package/dist/mcp/index.js.map +1 -0
  25. package/dist/mcp/index.mjs +13 -0
  26. package/dist/mcp/index.mjs.map +1 -0
  27. package/dist/mcp/publications.d.ts +27 -0
  28. package/dist/mcp/publications.js +101 -0
  29. package/dist/mcp/publications.js.map +1 -0
  30. package/dist/mcp/publications.mjs +101 -0
  31. package/dist/mcp/publications.mjs.map +1 -0
  32. package/dist/mcp/publications.test.d.ts +1 -0
  33. package/dist/mcp/publications.test.js +176 -0
  34. package/dist/mcp/publications.test.js.map +1 -0
  35. package/dist/mcp/publications.test.mjs +176 -0
  36. package/dist/mcp/publications.test.mjs.map +1 -0
  37. package/dist/mcp/transport.d.ts +10 -0
  38. package/dist/mcp/transport.js +2 -0
  39. package/dist/mcp/transport.js.map +1 -0
  40. package/dist/mcp/transport.mjs +2 -0
  41. package/dist/mcp/transport.mjs.map +1 -0
  42. package/dist/mcp/types.d.ts +326 -0
  43. package/dist/mcp/types.js +2 -0
  44. package/dist/mcp/types.js.map +1 -0
  45. package/dist/mcp/types.mjs +2 -0
  46. package/dist/mcp/types.mjs.map +1 -0
  47. package/dist/tests/fetch.test.js +16 -0
  48. package/dist/tests/fetch.test.js.map +1 -1
  49. package/dist/tests/fetch.test.mjs +16 -0
  50. package/dist/tests/fetch.test.mjs.map +1 -1
  51. package/dist/tests/view-hosts.test.d.ts +1 -0
  52. package/dist/tests/view-hosts.test.js +222 -0
  53. package/dist/tests/view-hosts.test.js.map +1 -0
  54. package/dist/tests/view-hosts.test.mjs +222 -0
  55. package/dist/tests/view-hosts.test.mjs.map +1 -0
  56. package/dist/view-extension.d.ts +428 -0
  57. package/dist/view-extension.js +10 -0
  58. package/dist/view-extension.js.map +1 -0
  59. package/dist/view-extension.mjs +10 -0
  60. package/dist/view-extension.mjs.map +1 -0
  61. package/package.json +5 -5
@@ -0,0 +1,49 @@
1
+ function id(value) {
2
+ return encodeURIComponent(value);
3
+ }
4
+ function params(query) {
5
+ if (!query)
6
+ return undefined;
7
+ return {
8
+ toolsetId: query.toolsetId,
9
+ serverName: query.serverName,
10
+ toolName: query.toolName,
11
+ toolCallId: query.toolCallId,
12
+ resourceUri: query.resourceUri,
13
+ title: query.title,
14
+ token: query.token,
15
+ messageId: query.messageId,
16
+ };
17
+ }
18
+ export class McpAppsClient {
19
+ transport;
20
+ constructor(transport) {
21
+ this.transport = transport;
22
+ }
23
+ getResource(appInstanceId, query, options) {
24
+ return this.transport.request(`/xpert-toolset/mcp-apps/${id(appInstanceId)}/resource`, { params: params(query), signal: options?.signal });
25
+ }
26
+ rpc(appInstanceId, request, query, options) {
27
+ return this.transport.request(`/xpert-toolset/mcp-apps/${id(appInstanceId)}/rpc`, {
28
+ method: 'POST',
29
+ json: request,
30
+ params: params(query),
31
+ signal: options?.signal,
32
+ });
33
+ }
34
+ approve(appInstanceId, approvalId, query, options) {
35
+ return this.transport.request(`/xpert-toolset/mcp-apps/${id(appInstanceId)}/approvals/${id(approvalId)}/approve`, { method: 'POST', params: params(query), signal: options?.signal });
36
+ }
37
+ reject(appInstanceId, approvalId, query, options) {
38
+ return this.transport.request(`/xpert-toolset/mcp-apps/${id(appInstanceId)}/approvals/${id(approvalId)}/reject`, { method: 'POST', params: params(query), signal: options?.signal });
39
+ }
40
+ async teardown(appInstanceId, query, options) {
41
+ await this.transport.request(`/xpert-toolset/mcp-apps/${id(appInstanceId)}`, {
42
+ method: 'DELETE',
43
+ params: params(query),
44
+ emptyResponse: undefined,
45
+ signal: options?.signal,
46
+ });
47
+ }
48
+ }
49
+ //# sourceMappingURL=apps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.js","sourceRoot":"","sources":["../../src/mcp/apps.ts"],"names":[],"mappings":"AAQA,SAAS,EAAE,CAAC,KAAa;IACvB,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,MAAM,CAAC,KAAyB;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAExD,WAAW,CAAC,aAAqB,EAAE,KAAyB,EAAE,OAA2B;QACvF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,2BAA2B,EAAE,CAAC,aAAa,CAAC,WAAW,EACvD,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACnD,CAAC;IACJ,CAAC;IAED,GAAG,CACD,aAAqB,EACrB,OAAgB,EAChB,KAAyB,EACzB,OAA2B;QAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAI,2BAA2B,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE;YACnF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;YACrB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CACL,aAAqB,EACrB,UAAkB,EAClB,KAAyB,EACzB,OAA2B;QAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,2BAA2B,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,UAAU,EAClF,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,CACJ,aAAqB,EACrB,UAAkB,EAClB,KAAyB,EACzB,OAA2B;QAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,2BAA2B,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,SAAS,EACjF,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACnE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,aAAqB,EAAE,KAAyB,EAAE,OAA2B;QAC1F,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;YAC3E,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;YACrB,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,49 @@
1
+ function id(value) {
2
+ return encodeURIComponent(value);
3
+ }
4
+ function params(query) {
5
+ if (!query)
6
+ return undefined;
7
+ return {
8
+ toolsetId: query.toolsetId,
9
+ serverName: query.serverName,
10
+ toolName: query.toolName,
11
+ toolCallId: query.toolCallId,
12
+ resourceUri: query.resourceUri,
13
+ title: query.title,
14
+ token: query.token,
15
+ messageId: query.messageId,
16
+ };
17
+ }
18
+ export class McpAppsClient {
19
+ transport;
20
+ constructor(transport) {
21
+ this.transport = transport;
22
+ }
23
+ getResource(appInstanceId, query, options) {
24
+ return this.transport.request(`/xpert-toolset/mcp-apps/${id(appInstanceId)}/resource`, { params: params(query), signal: options?.signal });
25
+ }
26
+ rpc(appInstanceId, request, query, options) {
27
+ return this.transport.request(`/xpert-toolset/mcp-apps/${id(appInstanceId)}/rpc`, {
28
+ method: 'POST',
29
+ json: request,
30
+ params: params(query),
31
+ signal: options?.signal,
32
+ });
33
+ }
34
+ approve(appInstanceId, approvalId, query, options) {
35
+ return this.transport.request(`/xpert-toolset/mcp-apps/${id(appInstanceId)}/approvals/${id(approvalId)}/approve`, { method: 'POST', params: params(query), signal: options?.signal });
36
+ }
37
+ reject(appInstanceId, approvalId, query, options) {
38
+ return this.transport.request(`/xpert-toolset/mcp-apps/${id(appInstanceId)}/approvals/${id(approvalId)}/reject`, { method: 'POST', params: params(query), signal: options?.signal });
39
+ }
40
+ async teardown(appInstanceId, query, options) {
41
+ await this.transport.request(`/xpert-toolset/mcp-apps/${id(appInstanceId)}`, {
42
+ method: 'DELETE',
43
+ params: params(query),
44
+ emptyResponse: undefined,
45
+ signal: options?.signal,
46
+ });
47
+ }
48
+ }
49
+ //# sourceMappingURL=apps.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.mjs","sourceRoot":"","sources":["../../src/mcp/apps.ts"],"names":[],"mappings":"AAQA,SAAS,EAAE,CAAC,KAAa;IACvB,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,MAAM,CAAC,KAAyB;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAExD,WAAW,CAAC,aAAqB,EAAE,KAAyB,EAAE,OAA2B;QACvF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,2BAA2B,EAAE,CAAC,aAAa,CAAC,WAAW,EACvD,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACnD,CAAC;IACJ,CAAC;IAED,GAAG,CACD,aAAqB,EACrB,OAAgB,EAChB,KAAyB,EACzB,OAA2B;QAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAI,2BAA2B,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE;YACnF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;YACrB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CACL,aAAqB,EACrB,UAAkB,EAClB,KAAyB,EACzB,OAA2B;QAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,2BAA2B,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,UAAU,EAClF,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,CACJ,aAAqB,EACrB,UAAkB,EAClB,KAAyB,EACzB,OAA2B;QAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,2BAA2B,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,SAAS,EACjF,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACnE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,aAAqB,EAAE,KAAyB,EAAE,OAA2B;QAC1F,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;YAC3E,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;YACrB,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,77 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { McpAppsClient } from "./apps.js";
3
+ class RecordingTransport {
4
+ requests = [];
5
+ responses = [];
6
+ request(path, options) {
7
+ this.requests.push({ path, options });
8
+ return Promise.resolve(this.responses.shift());
9
+ }
10
+ }
11
+ const reviveQuery = {
12
+ toolsetId: 'toolset/1',
13
+ serverName: 'documents',
14
+ toolName: 'search',
15
+ toolCallId: 'call/1',
16
+ resourceUri: 'ui://documents/app.html',
17
+ title: 'Documents',
18
+ token: 'runtime-token',
19
+ messageId: 'message/1',
20
+ };
21
+ describe('McpAppsClient', () => {
22
+ it('routes resource and RPC calls through the authenticated Xpert API client', async () => {
23
+ const transport = new RecordingTransport();
24
+ const client = new McpAppsClient(transport);
25
+ transport.responses.push({ uri: reviveQuery.resourceUri, text: '<html></html>' }, { jsonrpc: '2.0', id: 'rpc-1', result: {} });
26
+ await client.getResource('app/1', reviveQuery);
27
+ await client.rpc('app/1', { jsonrpc: '2.0', id: 'rpc-1', method: 'tools/call' }, reviveQuery);
28
+ expect(transport.requests).toEqual([
29
+ {
30
+ path: '/xpert-toolset/mcp-apps/app%2F1/resource',
31
+ options: { params: reviveQuery, signal: undefined },
32
+ },
33
+ {
34
+ path: '/xpert-toolset/mcp-apps/app%2F1/rpc',
35
+ options: {
36
+ method: 'POST',
37
+ json: { jsonrpc: '2.0', id: 'rpc-1', method: 'tools/call' },
38
+ params: reviveQuery,
39
+ signal: undefined,
40
+ },
41
+ },
42
+ ]);
43
+ });
44
+ it('encodes approval identifiers and tears down the exact App instance', async () => {
45
+ const transport = new RecordingTransport();
46
+ const client = new McpAppsClient(transport);
47
+ transport.responses.push({
48
+ approved: true,
49
+ approvalId: 'approval/1',
50
+ expiresAt: Date.now() + 60_000,
51
+ toolName: 'update_record',
52
+ risk: 'write',
53
+ }, undefined);
54
+ await client.approve('app/1', 'approval/1', reviveQuery);
55
+ await client.teardown('app/1', reviveQuery);
56
+ expect(transport.requests).toEqual([
57
+ {
58
+ path: '/xpert-toolset/mcp-apps/app%2F1/approvals/approval%2F1/approve',
59
+ options: {
60
+ method: 'POST',
61
+ params: reviveQuery,
62
+ signal: undefined,
63
+ },
64
+ },
65
+ {
66
+ path: '/xpert-toolset/mcp-apps/app%2F1',
67
+ options: {
68
+ method: 'DELETE',
69
+ params: reviveQuery,
70
+ emptyResponse: undefined,
71
+ signal: undefined,
72
+ },
73
+ },
74
+ ]);
75
+ });
76
+ });
77
+ //# sourceMappingURL=apps.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.test.js","sourceRoot":"","sources":["../../src/mcp/apps.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { McpAppsClient } from "./apps.mjs";
3
+ class RecordingTransport {
4
+ requests = [];
5
+ responses = [];
6
+ request(path, options) {
7
+ this.requests.push({ path, options });
8
+ return Promise.resolve(this.responses.shift());
9
+ }
10
+ }
11
+ const reviveQuery = {
12
+ toolsetId: 'toolset/1',
13
+ serverName: 'documents',
14
+ toolName: 'search',
15
+ toolCallId: 'call/1',
16
+ resourceUri: 'ui://documents/app.html',
17
+ title: 'Documents',
18
+ token: 'runtime-token',
19
+ messageId: 'message/1',
20
+ };
21
+ describe('McpAppsClient', () => {
22
+ it('routes resource and RPC calls through the authenticated Xpert API client', async () => {
23
+ const transport = new RecordingTransport();
24
+ const client = new McpAppsClient(transport);
25
+ transport.responses.push({ uri: reviveQuery.resourceUri, text: '<html></html>' }, { jsonrpc: '2.0', id: 'rpc-1', result: {} });
26
+ await client.getResource('app/1', reviveQuery);
27
+ await client.rpc('app/1', { jsonrpc: '2.0', id: 'rpc-1', method: 'tools/call' }, reviveQuery);
28
+ expect(transport.requests).toEqual([
29
+ {
30
+ path: '/xpert-toolset/mcp-apps/app%2F1/resource',
31
+ options: { params: reviveQuery, signal: undefined },
32
+ },
33
+ {
34
+ path: '/xpert-toolset/mcp-apps/app%2F1/rpc',
35
+ options: {
36
+ method: 'POST',
37
+ json: { jsonrpc: '2.0', id: 'rpc-1', method: 'tools/call' },
38
+ params: reviveQuery,
39
+ signal: undefined,
40
+ },
41
+ },
42
+ ]);
43
+ });
44
+ it('encodes approval identifiers and tears down the exact App instance', async () => {
45
+ const transport = new RecordingTransport();
46
+ const client = new McpAppsClient(transport);
47
+ transport.responses.push({
48
+ approved: true,
49
+ approvalId: 'approval/1',
50
+ expiresAt: Date.now() + 60_000,
51
+ toolName: 'update_record',
52
+ risk: 'write',
53
+ }, undefined);
54
+ await client.approve('app/1', 'approval/1', reviveQuery);
55
+ await client.teardown('app/1', reviveQuery);
56
+ expect(transport.requests).toEqual([
57
+ {
58
+ path: '/xpert-toolset/mcp-apps/app%2F1/approvals/approval%2F1/approve',
59
+ options: {
60
+ method: 'POST',
61
+ params: reviveQuery,
62
+ signal: undefined,
63
+ },
64
+ },
65
+ {
66
+ path: '/xpert-toolset/mcp-apps/app%2F1',
67
+ options: {
68
+ method: 'DELETE',
69
+ params: reviveQuery,
70
+ emptyResponse: undefined,
71
+ signal: undefined,
72
+ },
73
+ },
74
+ ]);
75
+ });
76
+ });
77
+ //# sourceMappingURL=apps.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.test.mjs","sourceRoot":"","sources":["../../src/mcp/apps.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { McpAppsClient } from './apps.js';
2
+ import { McpPublicationsClient } from './publications.js';
3
+ import type { McpTransport } from './transport.js';
4
+ export declare class McpClient {
5
+ publications: McpPublicationsClient;
6
+ apps: McpAppsClient;
7
+ constructor(transport: McpTransport);
8
+ }
9
+ export * from './apps.js';
10
+ export * from './publications.js';
11
+ export type * from './types.js';
@@ -0,0 +1,13 @@
1
+ import { McpAppsClient } from "./apps.js";
2
+ import { McpPublicationsClient } from "./publications.js";
3
+ export class McpClient {
4
+ publications;
5
+ apps;
6
+ constructor(transport) {
7
+ this.publications = new McpPublicationsClient(transport);
8
+ this.apps = new McpAppsClient(transport);
9
+ }
10
+ }
11
+ export * from "./apps.js";
12
+ export * from "./publications.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"OAAO,EAAE,aAAa,EAAE;OACjB,EAAE,qBAAqB,EAAE;AAGhC,MAAM,OAAO,SAAS;IACb,YAAY,CAAwB;IACpC,IAAI,CAAgB;IAE3B,YAAY,SAAuB;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { McpAppsClient } from "./apps.mjs";
2
+ import { McpPublicationsClient } from "./publications.mjs";
3
+ export class McpClient {
4
+ publications;
5
+ apps;
6
+ constructor(transport) {
7
+ this.publications = new McpPublicationsClient(transport);
8
+ this.apps = new McpAppsClient(transport);
9
+ }
10
+ }
11
+ export * from "./apps.mjs";
12
+ export * from "./publications.mjs";
13
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"OAAO,EAAE,aAAa,EAAE;OACjB,EAAE,qBAAqB,EAAE;AAGhC,MAAM,OAAO,SAAS;IACb,YAAY,CAAwB;IACpC,IAAI,CAAgB;IAE3B,YAAY,SAAuB;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ import type { McpTransport } from './transport.js';
2
+ import type { CreateMcpApiKeyInput, CreateMcpPublicationInput, McpAuditRequestOptions, McpApiKey, McpApiKeySecret, McpCapabilityBindingInput, McpCapabilityCatalogItem, McpConnectionInfo, McpInvocationAudit, McpOAuthPolicy, McpOAuthPolicyTestResult, McpPagination, McpPublication, McpPublicationSummary, McpPublicationTestResult, PatchMcpCapabilityBindingInput, McpRequestOptions, UpdateMcpPublicationInput, UpsertMcpOAuthPolicyInput } from './types.js';
3
+ export declare class McpPublicationsClient {
4
+ private readonly transport;
5
+ constructor(transport: McpTransport);
6
+ create(input: CreateMcpPublicationInput, options?: McpRequestOptions): Promise<McpPublication>;
7
+ list(options?: McpRequestOptions): Promise<McpPublicationSummary[]>;
8
+ get(publicationId: string, options?: McpRequestOptions): Promise<McpPublication>;
9
+ update(publicationId: string, input: UpdateMcpPublicationInput, options?: McpRequestOptions): Promise<McpPublication>;
10
+ remove(publicationId: string, options?: McpRequestOptions): Promise<void>;
11
+ enable(publicationId: string, options?: McpRequestOptions): Promise<McpPublication>;
12
+ disable(publicationId: string, options?: McpRequestOptions): Promise<McpPublication>;
13
+ availableCapabilities(publicationId: string, options?: McpRequestOptions): Promise<McpCapabilityCatalogItem[]>;
14
+ discoverToolsetCapabilities(toolsetId: string, options?: McpRequestOptions): Promise<McpCapabilityCatalogItem[]>;
15
+ replaceCapabilities(publicationId: string, input: McpCapabilityBindingInput[], options?: McpRequestOptions): Promise<import("./types.js").McpPublicationCapability[]>;
16
+ patchCapability(publicationId: string, capabilityId: string, input: PatchMcpCapabilityBindingInput, options?: McpRequestOptions): Promise<import("./types.js").McpPublicationCapability>;
17
+ createApiKey(publicationId: string, input: CreateMcpApiKeyInput, options?: McpRequestOptions): Promise<McpApiKeySecret>;
18
+ listApiKeys(publicationId: string, options?: McpRequestOptions): Promise<McpApiKey[]>;
19
+ revokeApiKey(keyId: string, options?: McpRequestOptions): Promise<McpApiKey>;
20
+ rotateApiKey(keyId: string, options?: McpRequestOptions): Promise<McpApiKeySecret>;
21
+ getOAuthPolicy(publicationId: string, options?: McpRequestOptions): Promise<McpOAuthPolicy | null>;
22
+ upsertOAuthPolicy(publicationId: string, input: UpsertMcpOAuthPolicyInput, options?: McpRequestOptions): Promise<McpOAuthPolicy>;
23
+ testOAuthPolicy(publicationId: string, options?: McpRequestOptions): Promise<McpOAuthPolicyTestResult>;
24
+ audit(publicationId: string, options?: McpAuditRequestOptions): Promise<McpPagination<McpInvocationAudit>>;
25
+ test(publicationId: string, options?: McpRequestOptions): Promise<McpPublicationTestResult>;
26
+ connectionInfo(publicationId: string, options?: McpRequestOptions): Promise<McpConnectionInfo>;
27
+ }
@@ -0,0 +1,101 @@
1
+ function id(value) {
2
+ return encodeURIComponent(value);
3
+ }
4
+ export class McpPublicationsClient {
5
+ transport;
6
+ constructor(transport) {
7
+ this.transport = transport;
8
+ }
9
+ create(input, options) {
10
+ return this.transport.request('/mcp-publications', {
11
+ method: 'POST',
12
+ json: input,
13
+ signal: options?.signal,
14
+ });
15
+ }
16
+ list(options) {
17
+ return this.transport.request('/mcp-publications', {
18
+ signal: options?.signal,
19
+ });
20
+ }
21
+ get(publicationId, options) {
22
+ return this.transport.request(`/mcp-publications/${id(publicationId)}`, {
23
+ signal: options?.signal,
24
+ });
25
+ }
26
+ update(publicationId, input, options) {
27
+ return this.transport.request(`/mcp-publications/${id(publicationId)}`, {
28
+ method: 'PATCH',
29
+ json: input,
30
+ signal: options?.signal,
31
+ });
32
+ }
33
+ async remove(publicationId, options) {
34
+ await this.transport.request(`/mcp-publications/${id(publicationId)}`, {
35
+ method: 'DELETE',
36
+ emptyResponse: undefined,
37
+ signal: options?.signal,
38
+ });
39
+ }
40
+ enable(publicationId, options) {
41
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/enable`, {
42
+ method: 'POST',
43
+ signal: options?.signal,
44
+ });
45
+ }
46
+ disable(publicationId, options) {
47
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/disable`, { method: 'POST', signal: options?.signal });
48
+ }
49
+ availableCapabilities(publicationId, options) {
50
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/available-capabilities`, { signal: options?.signal });
51
+ }
52
+ discoverToolsetCapabilities(toolsetId, options) {
53
+ return this.transport.request(`/mcp-capability-catalog/toolsets/${id(toolsetId)}/discover`, { method: 'POST', signal: options?.signal });
54
+ }
55
+ replaceCapabilities(publicationId, input, options) {
56
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/capabilities`, { method: 'PUT', json: input, signal: options?.signal });
57
+ }
58
+ patchCapability(publicationId, capabilityId, input, options) {
59
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/capabilities/${id(capabilityId)}`, { method: 'PATCH', json: input, signal: options?.signal });
60
+ }
61
+ createApiKey(publicationId, input, options) {
62
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/api-keys`, { method: 'POST', json: input, signal: options?.signal });
63
+ }
64
+ listApiKeys(publicationId, options) {
65
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/api-keys`, {
66
+ signal: options?.signal,
67
+ });
68
+ }
69
+ revokeApiKey(keyId, options) {
70
+ return this.transport.request(`/mcp-api-keys/${id(keyId)}/revoke`, {
71
+ method: 'POST',
72
+ signal: options?.signal,
73
+ });
74
+ }
75
+ rotateApiKey(keyId, options) {
76
+ return this.transport.request(`/mcp-api-keys/${id(keyId)}/rotate`, {
77
+ method: 'POST',
78
+ signal: options?.signal,
79
+ });
80
+ }
81
+ getOAuthPolicy(publicationId, options) {
82
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/oauth-policy`, { signal: options?.signal });
83
+ }
84
+ upsertOAuthPolicy(publicationId, input, options) {
85
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/oauth-policy`, { method: 'PUT', json: input, signal: options?.signal });
86
+ }
87
+ testOAuthPolicy(publicationId, options) {
88
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/oauth-policy/test`, { method: 'POST', signal: options?.signal });
89
+ }
90
+ audit(publicationId, options = {}) {
91
+ const { skip = 0, take = 10 } = options;
92
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/audit`, { params: { skip, take }, signal: options.signal });
93
+ }
94
+ test(publicationId, options) {
95
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/test`, { method: 'POST', signal: options?.signal });
96
+ }
97
+ connectionInfo(publicationId, options) {
98
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/connection-info`, { signal: options?.signal });
99
+ }
100
+ }
101
+ //# sourceMappingURL=publications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publications.js","sourceRoot":"","sources":["../../src/mcp/publications.ts"],"names":[],"mappings":"AAuBA,SAAS,EAAE,CAAC,KAAa;IACvB,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAExD,MAAM,CAAC,KAAgC,EAAE,OAA2B;QAClE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAiB,mBAAmB,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,OAA2B;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAA0B,mBAAmB,EAAE;YAC1E,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,aAAqB,EAAE,OAA2B;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAiB,qBAAqB,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;YACtF,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,aAAqB,EAAE,KAAgC,EAAE,OAA2B;QACzF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAiB,qBAAqB,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;YACtF,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,aAAqB,EAAE,OAA2B;QAC7D,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;YACrE,MAAM,EAAE,QAAQ;YAChB,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,aAAqB,EAAE,OAA2B;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAiB,qBAAqB,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE;YAC7F,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,aAAqB,EAAE,OAA2B;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,UAAU,EAChD,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAC5C,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,aAAqB,EAAE,OAA2B;QACtE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,yBAAyB,EAC/D,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAC5B,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,SAAiB,EAAE,OAA2B;QACxE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,oCAAoC,EAAE,CAAC,SAAS,CAAC,WAAW,EAC5D,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAC5C,CAAC;IACJ,CAAC;IAED,mBAAmB,CACjB,aAAqB,EACrB,KAAkC,EAClC,OAA2B;QAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,eAAe,EACrD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACxD,CAAC;IACJ,CAAC;IAED,eAAe,CACb,aAAqB,EACrB,YAAoB,EACpB,KAAqC,EACrC,OAA2B;QAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC,EAAE,EACzE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAC1D,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,aAAqB,EAAE,KAA2B,EAAE,OAA2B;QAC1F,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,WAAW,EACjD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACzD,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,aAAqB,EAAE,OAA2B;QAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAc,qBAAqB,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE;YAC5F,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,OAA2B;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAY,iBAAiB,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE;YAC5E,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,OAA2B;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAkB,iBAAiB,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE;YAClF,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,aAAqB,EAAE,OAA2B;QAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,eAAe,EACrD,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAC5B,CAAC;IACJ,CAAC;IAED,iBAAiB,CACf,aAAqB,EACrB,KAAgC,EAChC,OAA2B;QAE3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,eAAe,EACrD,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACxD,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,aAAqB,EAAE,OAA2B;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,oBAAoB,EAC1D,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAC5C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAqB,EAAE,UAAkC,EAAE;QAC/D,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,QAAQ,EAC9C,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CACnD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,aAAqB,EAAE,OAA2B;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,OAAO,EAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAC5C,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,aAAqB,EAAE,OAA2B;QAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAC3B,qBAAqB,EAAE,CAAC,aAAa,CAAC,kBAAkB,EACxD,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAC5B,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,101 @@
1
+ function id(value) {
2
+ return encodeURIComponent(value);
3
+ }
4
+ export class McpPublicationsClient {
5
+ transport;
6
+ constructor(transport) {
7
+ this.transport = transport;
8
+ }
9
+ create(input, options) {
10
+ return this.transport.request('/mcp-publications', {
11
+ method: 'POST',
12
+ json: input,
13
+ signal: options?.signal,
14
+ });
15
+ }
16
+ list(options) {
17
+ return this.transport.request('/mcp-publications', {
18
+ signal: options?.signal,
19
+ });
20
+ }
21
+ get(publicationId, options) {
22
+ return this.transport.request(`/mcp-publications/${id(publicationId)}`, {
23
+ signal: options?.signal,
24
+ });
25
+ }
26
+ update(publicationId, input, options) {
27
+ return this.transport.request(`/mcp-publications/${id(publicationId)}`, {
28
+ method: 'PATCH',
29
+ json: input,
30
+ signal: options?.signal,
31
+ });
32
+ }
33
+ async remove(publicationId, options) {
34
+ await this.transport.request(`/mcp-publications/${id(publicationId)}`, {
35
+ method: 'DELETE',
36
+ emptyResponse: undefined,
37
+ signal: options?.signal,
38
+ });
39
+ }
40
+ enable(publicationId, options) {
41
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/enable`, {
42
+ method: 'POST',
43
+ signal: options?.signal,
44
+ });
45
+ }
46
+ disable(publicationId, options) {
47
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/disable`, { method: 'POST', signal: options?.signal });
48
+ }
49
+ availableCapabilities(publicationId, options) {
50
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/available-capabilities`, { signal: options?.signal });
51
+ }
52
+ discoverToolsetCapabilities(toolsetId, options) {
53
+ return this.transport.request(`/mcp-capability-catalog/toolsets/${id(toolsetId)}/discover`, { method: 'POST', signal: options?.signal });
54
+ }
55
+ replaceCapabilities(publicationId, input, options) {
56
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/capabilities`, { method: 'PUT', json: input, signal: options?.signal });
57
+ }
58
+ patchCapability(publicationId, capabilityId, input, options) {
59
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/capabilities/${id(capabilityId)}`, { method: 'PATCH', json: input, signal: options?.signal });
60
+ }
61
+ createApiKey(publicationId, input, options) {
62
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/api-keys`, { method: 'POST', json: input, signal: options?.signal });
63
+ }
64
+ listApiKeys(publicationId, options) {
65
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/api-keys`, {
66
+ signal: options?.signal,
67
+ });
68
+ }
69
+ revokeApiKey(keyId, options) {
70
+ return this.transport.request(`/mcp-api-keys/${id(keyId)}/revoke`, {
71
+ method: 'POST',
72
+ signal: options?.signal,
73
+ });
74
+ }
75
+ rotateApiKey(keyId, options) {
76
+ return this.transport.request(`/mcp-api-keys/${id(keyId)}/rotate`, {
77
+ method: 'POST',
78
+ signal: options?.signal,
79
+ });
80
+ }
81
+ getOAuthPolicy(publicationId, options) {
82
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/oauth-policy`, { signal: options?.signal });
83
+ }
84
+ upsertOAuthPolicy(publicationId, input, options) {
85
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/oauth-policy`, { method: 'PUT', json: input, signal: options?.signal });
86
+ }
87
+ testOAuthPolicy(publicationId, options) {
88
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/oauth-policy/test`, { method: 'POST', signal: options?.signal });
89
+ }
90
+ audit(publicationId, options = {}) {
91
+ const { skip = 0, take = 10 } = options;
92
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/audit`, { params: { skip, take }, signal: options.signal });
93
+ }
94
+ test(publicationId, options) {
95
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/test`, { method: 'POST', signal: options?.signal });
96
+ }
97
+ connectionInfo(publicationId, options) {
98
+ return this.transport.request(`/mcp-publications/${id(publicationId)}/connection-info`, { signal: options?.signal });
99
+ }
100
+ }
101
+ //# sourceMappingURL=publications.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publications.mjs","sourceRoot":"","sources":["../../src/mcp/publications.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};