@llmindset/hf-mcp-server 0.1.27 → 0.1.28
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/server/application.d.ts +1 -1
- package/dist/server/application.d.ts.map +1 -1
- package/dist/server/application.js +2 -2
- package/dist/server/application.js.map +1 -1
- package/dist/server/gradio-endpoint-connector.d.ts +1 -1
- package/dist/server/gradio-endpoint-connector.d.ts.map +1 -1
- package/dist/server/gradio-endpoint-connector.js +23 -7
- package/dist/server/gradio-endpoint-connector.js.map +1 -1
- package/dist/server/mcp-proxy.d.ts +1 -1
- package/dist/server/mcp-proxy.d.ts.map +1 -1
- package/dist/server/mcp-proxy.js +1 -1
- package/dist/server/mcp-proxy.js.map +1 -1
- package/dist/server/mcp-server.d.ts +1 -1
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/mcp-server.js +2 -2
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/server/sse.js +1 -1
- package/dist/server/sse.js.map +1 -1
- package/dist/server/stdio.js +1 -1
- package/dist/server/stdio.js.map +1 -1
- package/dist/server/streamableHttp.js +1 -1
- package/dist/server/streamableHttp.js.map +1 -1
- package/dist/server/transport/base-transport.d.ts +2 -1
- package/dist/server/transport/base-transport.d.ts.map +1 -1
- package/dist/server/transport/base-transport.js +15 -6
- package/dist/server/transport/base-transport.js.map +1 -1
- package/dist/server/transport/sse-transport.js +1 -1
- package/dist/server/transport/sse-transport.js.map +1 -1
- package/dist/server/transport/stateless-http-transport.d.ts.map +1 -1
- package/dist/server/transport/stateless-http-transport.js +5 -3
- package/dist/server/transport/stateless-http-transport.js.map +1 -1
- package/dist/server/transport/stdio-transport.js +1 -1
- package/dist/server/transport/stdio-transport.js.map +1 -1
- package/dist/server/transport/streamable-http-transport.js +1 -1
- package/dist/server/transport/streamable-http-transport.js.map +1 -1
- package/dist/server/utils/api-metrics.js +1 -1
- package/dist/server/utils/api-metrics.js.map +1 -1
- package/dist/server/utils/auth-utils.js +1 -1
- package/dist/server/utils/auth-utils.js.map +1 -1
- package/dist/server/utils/gradio-utils.d.ts +3 -0
- package/dist/server/utils/gradio-utils.d.ts.map +1 -0
- package/dist/server/utils/gradio-utils.js +20 -0
- package/dist/server/utils/gradio-utils.js.map +1 -0
- package/dist/server/utils/hf-dataset-transport.d.ts.map +1 -0
- package/dist/server/utils/hf-dataset-transport.js.map +1 -0
- package/dist/server/utils/logger.d.ts.map +1 -0
- package/dist/server/utils/logger.js.map +1 -0
- package/dist/server/utils/mcp-api-client.d.ts.map +1 -0
- package/dist/server/utils/mcp-api-client.js.map +1 -0
- package/dist/server/utils/tool-selection-strategy.d.ts.map +1 -0
- package/dist/server/utils/tool-selection-strategy.js.map +1 -0
- package/dist/server/web-server.d.ts +1 -1
- package/dist/server/web-server.d.ts.map +1 -1
- package/dist/server/web-server.js +1 -1
- package/dist/server/web-server.js.map +1 -1
- package/package.json +2 -2
- package/dist/server/gradio-endpoint-connector.test.d.ts +0 -2
- package/dist/server/gradio-endpoint-connector.test.d.ts.map +0 -1
- package/dist/server/gradio-endpoint-connector.test.js +0 -313
- package/dist/server/gradio-endpoint-connector.test.js.map +0 -1
- package/dist/server/lib/hf-dataset-transport.d.ts.map +0 -1
- package/dist/server/lib/hf-dataset-transport.js.map +0 -1
- package/dist/server/lib/hf-dataset-transport.test.d.ts +0 -2
- package/dist/server/lib/hf-dataset-transport.test.d.ts.map +0 -1
- package/dist/server/lib/hf-dataset-transport.test.js +0 -195
- package/dist/server/lib/hf-dataset-transport.test.js.map +0 -1
- package/dist/server/lib/logger.d.ts.map +0 -1
- package/dist/server/lib/logger.js.map +0 -1
- package/dist/server/lib/mcp-api-client.d.ts.map +0 -1
- package/dist/server/lib/mcp-api-client.js.map +0 -1
- package/dist/server/lib/tool-selection-strategy.d.ts.map +0 -1
- package/dist/server/lib/tool-selection-strategy.js.map +0 -1
- package/dist/server/lib/tool-selection-strategy.test.d.ts +0 -2
- package/dist/server/lib/tool-selection-strategy.test.d.ts.map +0 -1
- package/dist/server/lib/tool-selection-strategy.test.js +0 -535
- package/dist/server/lib/tool-selection-strategy.test.js.map +0 -1
- package/dist/server/transport/stateless-http-transport.test.d.ts +0 -2
- package/dist/server/transport/stateless-http-transport.test.d.ts.map +0 -1
- package/dist/server/transport/stateless-http-transport.test.js +0 -58
- package/dist/server/transport/stateless-http-transport.test.js.map +0 -1
- package/dist/server/utils/browser-detection.test.d.ts +0 -2
- package/dist/server/utils/browser-detection.test.d.ts.map +0 -1
- package/dist/server/utils/browser-detection.test.js +0 -50
- package/dist/server/utils/browser-detection.test.js.map +0 -1
- package/dist/server/utils/query-params.test.d.ts +0 -2
- package/dist/server/utils/query-params.test.d.ts.map +0 -1
- package/dist/server/utils/query-params.test.js +0 -75
- package/dist/server/utils/query-params.test.js.map +0 -1
- package/dist/shared/transport-info.test.d.ts +0 -2
- package/dist/shared/transport-info.test.d.ts.map +0 -1
- package/dist/shared/transport-info.test.js +0 -90
- package/dist/shared/transport-info.test.js.map +0 -1
- package/dist/shared/transport-metrics.test.d.ts +0 -2
- package/dist/shared/transport-metrics.test.d.ts.map +0 -1
- package/dist/shared/transport-metrics.test.js +0 -10
- package/dist/shared/transport-metrics.test.js.map +0 -1
- /package/dist/server/{lib → utils}/hf-dataset-transport.d.ts +0 -0
- /package/dist/server/{lib → utils}/hf-dataset-transport.js +0 -0
- /package/dist/server/{lib → utils}/logger.d.ts +0 -0
- /package/dist/server/{lib → utils}/logger.js +0 -0
- /package/dist/server/{lib → utils}/mcp-api-client.d.ts +0 -0
- /package/dist/server/{lib → utils}/mcp-api-client.js +0 -0
- /package/dist/server/{lib → utils}/tool-selection-strategy.d.ts +0 -0
- /package/dist/server/{lib → utils}/tool-selection-strategy.js +0 -0
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { isBrowser } from './browser-detection.js';
|
|
3
|
-
describe('isBrowser', () => {
|
|
4
|
-
it('returns false when accept header is missing', () => {
|
|
5
|
-
expect(isBrowser({})).toBe(false);
|
|
6
|
-
expect(isBrowser({ 'user-agent': 'Mozilla/5.0' })).toBe(false);
|
|
7
|
-
});
|
|
8
|
-
it('returns false when accept contains text/event-stream', () => {
|
|
9
|
-
expect(isBrowser({ accept: 'text/event-stream' })).toBe(false);
|
|
10
|
-
expect(isBrowser({ accept: 'text/event-stream, text/html' })).toBe(false);
|
|
11
|
-
});
|
|
12
|
-
it('returns false when accept contains application/json', () => {
|
|
13
|
-
expect(isBrowser({ accept: 'application/json' })).toBe(false);
|
|
14
|
-
expect(isBrowser({ accept: 'application/json, text/plain' })).toBe(false);
|
|
15
|
-
});
|
|
16
|
-
it('returns true when accept contains */*', () => {
|
|
17
|
-
expect(isBrowser({ accept: '*/*' })).toBe(true);
|
|
18
|
-
expect(isBrowser({ accept: 'text/html, */*' })).toBe(true);
|
|
19
|
-
});
|
|
20
|
-
it('returns false for other accept headers', () => {
|
|
21
|
-
expect(isBrowser({ accept: 'text/html' })).toBe(false);
|
|
22
|
-
expect(isBrowser({ accept: 'text/plain' })).toBe(false);
|
|
23
|
-
expect(isBrowser({ accept: 'image/png' })).toBe(false);
|
|
24
|
-
});
|
|
25
|
-
it('handles array accept headers', () => {
|
|
26
|
-
expect(isBrowser({ accept: ['text/event-stream'] })).toBe(false);
|
|
27
|
-
expect(isBrowser({ accept: ['*/*', 'text/html'] })).toBe(true);
|
|
28
|
-
expect(isBrowser({ accept: ['application/json', 'text/plain'] })).toBe(false);
|
|
29
|
-
});
|
|
30
|
-
it('real browser examples', () => {
|
|
31
|
-
expect(isBrowser({
|
|
32
|
-
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
|
|
33
|
-
})).toBe(true);
|
|
34
|
-
expect(isBrowser({
|
|
35
|
-
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
|
36
|
-
})).toBe(true);
|
|
37
|
-
expect(isBrowser({
|
|
38
|
-
accept: 'text/event-stream',
|
|
39
|
-
})).toBe(false);
|
|
40
|
-
expect(isBrowser({
|
|
41
|
-
accept: 'text/event-stream',
|
|
42
|
-
})).toBe(false);
|
|
43
|
-
});
|
|
44
|
-
it('API client examples', () => {
|
|
45
|
-
expect(isBrowser({ accept: 'text/event-stream' })).toBe(false);
|
|
46
|
-
expect(isBrowser({ accept: 'application/json' })).toBe(false);
|
|
47
|
-
expect(isBrowser({ accept: 'application/json, text/event-stream' })).toBe(false);
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=browser-detection.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser-detection.test.js","sourceRoot":"","sources":["../../../src/server/utils/browser-detection.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query-params.test.d.ts","sourceRoot":"","sources":["../../../src/server/utils/query-params.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { extractQueryParamsToHeaders } from './query-params.js';
|
|
3
|
-
describe('extractQueryParamsToHeaders', () => {
|
|
4
|
-
it('should extract bouquet query parameter to header', () => {
|
|
5
|
-
const req = {
|
|
6
|
-
query: { bouquet: 'search' },
|
|
7
|
-
};
|
|
8
|
-
const headers = {};
|
|
9
|
-
extractQueryParamsToHeaders(req, headers);
|
|
10
|
-
expect(headers['x-mcp-bouquet']).toBe('search');
|
|
11
|
-
expect(headers['x-mcp-mix']).toBeUndefined();
|
|
12
|
-
});
|
|
13
|
-
it('should extract mix query parameter to header', () => {
|
|
14
|
-
const req = {
|
|
15
|
-
query: { mix: 'all' },
|
|
16
|
-
};
|
|
17
|
-
const headers = {};
|
|
18
|
-
extractQueryParamsToHeaders(req, headers);
|
|
19
|
-
expect(headers['x-mcp-mix']).toBe('all');
|
|
20
|
-
expect(headers['x-mcp-bouquet']).toBeUndefined();
|
|
21
|
-
});
|
|
22
|
-
it('should extract both bouquet and mix query parameters', () => {
|
|
23
|
-
const req = {
|
|
24
|
-
query: { bouquet: 'search', mix: 'hf_api' },
|
|
25
|
-
};
|
|
26
|
-
const headers = {};
|
|
27
|
-
extractQueryParamsToHeaders(req, headers);
|
|
28
|
-
expect(headers['x-mcp-bouquet']).toBe('search');
|
|
29
|
-
expect(headers['x-mcp-mix']).toBe('hf_api');
|
|
30
|
-
});
|
|
31
|
-
it('should handle empty query parameters', () => {
|
|
32
|
-
const req = {
|
|
33
|
-
query: {},
|
|
34
|
-
};
|
|
35
|
-
const headers = {};
|
|
36
|
-
extractQueryParamsToHeaders(req, headers);
|
|
37
|
-
expect(headers['x-mcp-bouquet']).toBeUndefined();
|
|
38
|
-
expect(headers['x-mcp-mix']).toBeUndefined();
|
|
39
|
-
});
|
|
40
|
-
it('should handle undefined query parameters', () => {
|
|
41
|
-
const req = {
|
|
42
|
-
query: { bouquet: undefined, mix: undefined },
|
|
43
|
-
};
|
|
44
|
-
const headers = {};
|
|
45
|
-
extractQueryParamsToHeaders(req, headers);
|
|
46
|
-
expect(headers['x-mcp-bouquet']).toBeUndefined();
|
|
47
|
-
expect(headers['x-mcp-mix']).toBeUndefined();
|
|
48
|
-
});
|
|
49
|
-
it('should not overwrite existing headers if query params are undefined', () => {
|
|
50
|
-
const req = {
|
|
51
|
-
query: { bouquet: undefined, mix: undefined },
|
|
52
|
-
};
|
|
53
|
-
const headers = {
|
|
54
|
-
'x-mcp-bouquet': 'existing',
|
|
55
|
-
'x-mcp-mix': 'existing',
|
|
56
|
-
};
|
|
57
|
-
extractQueryParamsToHeaders(req, headers);
|
|
58
|
-
expect(headers['x-mcp-bouquet']).toBe('existing');
|
|
59
|
-
expect(headers['x-mcp-mix']).toBe('existing');
|
|
60
|
-
});
|
|
61
|
-
it('should preserve other headers', () => {
|
|
62
|
-
const req = {
|
|
63
|
-
query: { bouquet: 'search' },
|
|
64
|
-
};
|
|
65
|
-
const headers = {
|
|
66
|
-
authorization: 'Bearer token123',
|
|
67
|
-
'content-type': 'application/json',
|
|
68
|
-
};
|
|
69
|
-
extractQueryParamsToHeaders(req, headers);
|
|
70
|
-
expect(headers['x-mcp-bouquet']).toBe('search');
|
|
71
|
-
expect(headers['authorization']).toBe('Bearer token123');
|
|
72
|
-
expect(headers['content-type']).toBe('application/json');
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
//# sourceMappingURL=query-params.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query-params.test.js","sourceRoot":"","sources":["../../../src/server/utils/query-params.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport-info.test.d.ts","sourceRoot":"","sources":["../../src/shared/transport-info.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { getTokenDisplayText } from './transport-info.js';
|
|
3
|
-
describe('getTokenDisplayText', () => {
|
|
4
|
-
describe('STDIO mode', () => {
|
|
5
|
-
it('should show masked token when token is set', () => {
|
|
6
|
-
const info = {
|
|
7
|
-
transport: 'stdio',
|
|
8
|
-
defaultHfTokenSet: true,
|
|
9
|
-
hfTokenMasked: 'hf_ab...xyz',
|
|
10
|
-
stdioClient: null,
|
|
11
|
-
};
|
|
12
|
-
const result = getTokenDisplayText(info);
|
|
13
|
-
expect(result.text).toBe('hf_ab...xyz');
|
|
14
|
-
expect(result.isWarning).toBe(false);
|
|
15
|
-
});
|
|
16
|
-
it('should show warning when token is not set', () => {
|
|
17
|
-
const info = {
|
|
18
|
-
transport: 'stdio',
|
|
19
|
-
defaultHfTokenSet: false,
|
|
20
|
-
stdioClient: null,
|
|
21
|
-
};
|
|
22
|
-
const result = getTokenDisplayText(info);
|
|
23
|
-
expect(result.text).toBe('Warning: No token set');
|
|
24
|
-
expect(result.isWarning).toBe(true);
|
|
25
|
-
});
|
|
26
|
-
it('should show warning when token is set but mask is missing', () => {
|
|
27
|
-
const info = {
|
|
28
|
-
transport: 'stdio',
|
|
29
|
-
defaultHfTokenSet: true,
|
|
30
|
-
hfTokenMasked: undefined,
|
|
31
|
-
stdioClient: null,
|
|
32
|
-
};
|
|
33
|
-
const result = getTokenDisplayText(info);
|
|
34
|
-
expect(result.text).toBe('Warning: No token set');
|
|
35
|
-
expect(result.isWarning).toBe(true);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
describe('Non-STDIO modes (SSE, HTTP)', () => {
|
|
39
|
-
const nonStdioModes = ['sse', 'streamableHttp', 'streamableHttpJson'];
|
|
40
|
-
nonStdioModes.forEach((transport) => {
|
|
41
|
-
describe(`${transport} mode`, () => {
|
|
42
|
-
it('should show "Using Authorization Headers" when token is not set', () => {
|
|
43
|
-
const info = {
|
|
44
|
-
transport,
|
|
45
|
-
defaultHfTokenSet: false,
|
|
46
|
-
stdioClient: null,
|
|
47
|
-
};
|
|
48
|
-
const result = getTokenDisplayText(info);
|
|
49
|
-
expect(result.text).toBe('Using Authorization Headers');
|
|
50
|
-
expect(result.isWarning).toBe(false);
|
|
51
|
-
});
|
|
52
|
-
it('should show warning with masked token when token is set', () => {
|
|
53
|
-
const info = {
|
|
54
|
-
transport,
|
|
55
|
-
defaultHfTokenSet: true,
|
|
56
|
-
hfTokenMasked: 'hf_ab...xyz',
|
|
57
|
-
stdioClient: null,
|
|
58
|
-
};
|
|
59
|
-
const result = getTokenDisplayText(info);
|
|
60
|
-
expect(result.text).toBe('⚠️ Using hf_ab...xyz as default');
|
|
61
|
-
expect(result.isWarning).toBe(true);
|
|
62
|
-
});
|
|
63
|
-
it('should show warning with fallback when token is set but mask is missing', () => {
|
|
64
|
-
const info = {
|
|
65
|
-
transport,
|
|
66
|
-
defaultHfTokenSet: true,
|
|
67
|
-
hfTokenMasked: undefined,
|
|
68
|
-
stdioClient: null,
|
|
69
|
-
};
|
|
70
|
-
const result = getTokenDisplayText(info);
|
|
71
|
-
expect(result.text).toBe('⚠️ Using token as default');
|
|
72
|
-
expect(result.isWarning).toBe(true);
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
describe('Unknown transport mode', () => {
|
|
78
|
-
it('should handle unknown transport as non-STDIO mode', () => {
|
|
79
|
-
const info = {
|
|
80
|
-
transport: 'unknown',
|
|
81
|
-
defaultHfTokenSet: false,
|
|
82
|
-
stdioClient: null,
|
|
83
|
-
};
|
|
84
|
-
const result = getTokenDisplayText(info);
|
|
85
|
-
expect(result.text).toBe('Using Authorization Headers');
|
|
86
|
-
expect(result.isWarning).toBe(false);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
//# sourceMappingURL=transport-info.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport-info.test.js","sourceRoot":"","sources":["../../src/shared/transport-info.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACpC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACrD,MAAM,IAAI,GAAkB;gBAC3B,SAAS,EAAE,OAAO;gBAClB,iBAAiB,EAAE,IAAI;gBACvB,aAAa,EAAE,aAAa;gBAC5B,WAAW,EAAE,IAAI;aACjB,CAAC;YAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,MAAM,IAAI,GAAkB;gBAC3B,SAAS,EAAE,OAAO;gBAClB,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,IAAI;aACjB,CAAC;YAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACpE,MAAM,IAAI,GAAkB;gBAC3B,SAAS,EAAE,OAAO;gBAClB,iBAAiB,EAAE,IAAI;gBACvB,aAAa,EAAE,SAAS;gBACxB,WAAW,EAAE,IAAI;aACjB,CAAC;YAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC5C,MAAM,aAAa,GAAsC,CAAC,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QAEzG,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACnC,QAAQ,CAAC,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;gBAClC,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;oBAC1E,MAAM,IAAI,GAAkB;wBAC3B,SAAS;wBACT,iBAAiB,EAAE,KAAK;wBACxB,WAAW,EAAE,IAAI;qBACjB,CAAC;oBAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAEzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;oBACxD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;oBAClE,MAAM,IAAI,GAAkB;wBAC3B,SAAS;wBACT,iBAAiB,EAAE,IAAI;wBACvB,aAAa,EAAE,aAAa;wBAC5B,WAAW,EAAE,IAAI;qBACjB,CAAC;oBAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAEzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;oBAC5D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;oBAClF,MAAM,IAAI,GAAkB;wBAC3B,SAAS;wBACT,iBAAiB,EAAE,IAAI;wBACvB,aAAa,EAAE,SAAS;wBACxB,WAAW,EAAE,IAAI;qBACjB,CAAC;oBAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAEzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;oBACtD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC5D,MAAM,IAAI,GAAkB;gBAC3B,SAAS,EAAE,SAAS;gBACpB,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,IAAI;aACjB,CAAC;YAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport-metrics.test.d.ts","sourceRoot":"","sources":["../../src/shared/transport-metrics.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { isInitializeRequest } from './transport-metrics.js';
|
|
3
|
-
describe('isInitializeRequest', () => {
|
|
4
|
-
it('should identify initialize requests', () => {
|
|
5
|
-
expect(isInitializeRequest('initialize')).toBe(true);
|
|
6
|
-
expect(isInitializeRequest('notifications/initialized')).toBe(false);
|
|
7
|
-
expect(isInitializeRequest('tools/list')).toBe(false);
|
|
8
|
-
});
|
|
9
|
-
});
|
|
10
|
-
//# sourceMappingURL=transport-metrics.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport-metrics.test.js","sourceRoot":"","sources":["../../src/shared/transport-metrics.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|